Files
Iris/mopidy_iris/static/app/app.min.js
2019-04-13 13:20:20 +12:00

94 lines
1.3 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};__webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=91)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(92)},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},storage=(exports.isTouchDevice=function(){return"ontouchstart"in document.documentElement},exports.debounce=function(fn,wait,immediate){var timeout;return function(){var context=this,args=arguments,later=function(){timeout=null,immediate||fn.apply(context,args)},callNow=immediate&&!timeout;clearTimeout(timeout),timeout=setTimeout(later,wait),callNow&&fn.apply(context,args)}},exports.throttle=function(fn,delay){var lastCall=0;return function(){var now=(new Date).getTime();if(!(now-lastCall<delay))return lastCall=now,fn.apply(void 0,arguments)}},function(){var storage,result,uid=new Date;try{return(storage=window.localStorage).setItem(uid,uid),result=storage.getItem(uid)==uid,storage.removeItem(uid),result&&storage}catch(exception){}}()),formatImages=(exports.getStorage=function(key){var default_value=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(storage){var value=storage.getItem(key);return value?JSON.parse(value):default_value}return console.warn("localStorage not available. Using default value for '"+key+"'."),default_value},exports.setStorage=function(key,value){var replace=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(storage){var stored_value=storage.getItem(key);if(!stored_value||replace)var new_value=value;else var new_value=Object.assign({},JSON.parse(stored_value),value);return void storage.setItem(key,JSON.stringify(new_value))}return void console.warn("localStorage not available. '"+key+"'' will not perist when you close your browser.")},exports.isCached=function(url){var image=new Image;return image.src=url,image.complete},exports.digestMopidyImages=function(mopidy,images){for(var digested=[],i=0;i<images.length;i++){if("object"===_typeof(images[i])){var url=images[i].url;!url&&images[i].uri&&(url=images[i].uri),images[i].url=url,url&&url.startsWith("/images/")&&(url="//"+mopidy.host+":"+mopidy.port+url)}else"string"==typeof images[i]&&images[i].startsWith("/images/")&&(images[i]="//"+mopidy.host+":"+mopidy.port+images[i]);digested.push(images[i])}return digested},exports.generateGuid=function(){if("numeric"==(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"numeric")){var date=(new Date).valueOf().toString(),random_number=Math.floor(100*Math.random()).toString();return parseInt(date+random_number)}return"xxxxxxxxxx".replace(/[xy]/g,function(c){var r=16*Math.random()|0;return("x"==c?r:3&r|8).toString(16)})},exports.getCurrentPusherConnection=function(connections,connectionid){function isCurrentConnection(connection){return connection.connectionid==newProps.pusher.connectionid}var currentConnection=newProps.pusher.connections.find(isCurrentConnection);return currentConnection||!1},exports.getTrackIcon=function(){var current_track=arguments.length>0&&void 0!==arguments[0]&&arguments[0],core=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!core)return!1;if(!current_track)return!1;if(void 0===current_track.uri)return!1;if(void 0===core.tracks[current_track.uri])return!1;var track=core.tracks[current_track.uri];return!!track.images&&formatImages(track.images).small},exports.formatImages=function(data){var sizes={formatted:!0,small:null,medium:null,large:null,huge:null};if(!data)return sizes;if(Array.isArray(data)){if(data.length<=0)return sizes;for(var i=0;i<data.length;i++){var image=data[i];if(image.formatted)return image;if(image.__model__&&"Image"==image.__model__)image.width<400?sizes.small=image.url:image.width<800?sizes.medium=image.url:image.width<1e3?sizes.large=image.url:sizes.huge=image.url;else if("string"==typeof image)sizes.small=image;else if(void 0!==image.width)image.width<400?sizes.small=image.url:image.width<800?sizes.medium=image.url:image.width<1e3?sizes.large=image.url:sizes.huge=image.url;else if(void 0!==image.size)switch(image.size){case"mega":case"extralarge":case"large":sizes.medium=image["#text"];break;case"medium":case"small":sizes.small=image["#text"]}}}else data.small&&(sizes.small=data.small.url),data.medium&&(sizes.medium=data.medium.url),data.large&&(sizes.large=data.large.url),data.huge&&(sizes.huge=data.huge.url);return sizes.small||(sizes.medium?sizes.small=sizes.medium:sizes.large?sizes.small=sizes.large:sizes.huge?sizes.small=sizes.huge:sizes.small=null),sizes.medium||(sizes.large?sizes.medium=sizes.large:sizes.huge?sizes.medium=sizes.huge:sizes.medium=sizes.small),sizes.large||(sizes.large=sizes.medium),sizes.huge||(sizes.huge=sizes.large),sizes}),formatAlbum=(exports.formatSimpleObject=function(data){var simple_object={},fields=["uri","name"],_iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=fields[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var field=_step.value;data.hasOwnProperty(field)&&(simple_object[field]=data[field])}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}return simple_object},exports.formatTracks=function(){var records=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],formatted=[],_iteratorNormalCompletion2=!0,_didIteratorError2=!1,_iteratorError2=void 0;try{for(var _step2,_iterator2=records[Symbol.iterator]();!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=!0){var record=_step2.value;formatted.push(formatTrack(record))}}catch(err){_didIteratorError2=!0,_iteratorError2=err}finally{try{!_iteratorNormalCompletion2&&_iterator2.return&&_iterator2.return()}finally{if(_didIteratorError2)throw _iteratorError2}}return formatted},exports.formatAlbums=function(){var records=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],formatted=[],_iteratorNormalCompletion3=!0,_didIteratorError3=!1,_iteratorError3=void 0;try{for(var _step3,_iterator3=records[Symbol.iterator]();!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=!0){var record=_step3.value;formatted.push(formatAlbum(record))}}catch(err){_didIteratorError3=!0,_iteratorError3=err}finally{try{!_iteratorNormalCompletion3&&_iterator3.return&&_iterator3.return()}finally{if(_didIteratorError3)throw _iteratorError3}}return formatted},exports.formatArtists=function(){var records=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],formatted=[],_iteratorNormalCompletion4=!0,_didIteratorError4=!1,_iteratorError4=void 0;try{for(var _step4,_iterator4=records[Symbol.iterator]();!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=!0){var record=_step4.value;formatted.push(formatArtist(record))}}catch(err){_didIteratorError4=!0,_iteratorError4=err}finally{try{!_iteratorNormalCompletion4&&_iterator4.return&&_iterator4.return()}finally{if(_didIteratorError4)throw _iteratorError4}}return formatted},exports.formatPlaylists=function(){var records=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],formatted=[],_iteratorNormalCompletion5=!0,_didIteratorError5=!1,_iteratorError5=void 0;try{for(var _step5,_iterator5=records[Symbol.iterator]();!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=!0){var record=_step5.value;formatted.push(formatTrack(record))}}catch(err){_didIteratorError5=!0,_iteratorError5=err}finally{try{!_iteratorNormalCompletion5&&_iterator5.return&&_iterator5.return()}finally{if(_didIteratorError5)throw _iteratorError5}}return formatted},exports.formatUsers=function(){var records=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],formatted=[],_iteratorNormalCompletion6=!0,_didIteratorError6=!1,_iteratorError6=void 0;try{for(var _step6,_iterator6=records[Symbol.iterator]();!(_iteratorNormalCompletion6=(_step6=_iterator6.next()).done);_iteratorNormalCompletion6=!0){var record=_step6.value;formatted.push(formatUser(record))}}catch(err){_didIteratorError6=!0,_iteratorError6=err}finally{try{!_iteratorNormalCompletion6&&_iterator6.return&&_iterator6.return()}finally{if(_didIteratorError6)throw _iteratorError6}}return formatted},exports.formatAlbum=function(data){var album={},fields=["uri","provider","name","type","added_at","release_date","listeners","play_count","wiki","wiki_publish_date","popularity","images","artists_uris","tracks_uris","artists"],_iteratorNormalCompletion7=!0,_didIteratorError7=!1,_iteratorError7=void 0;try{for(var _step7,_iterator7=fields[Symbol.iterator]();!(_iteratorNormalCompletion7=(_step7=_iterator7.next()).done);_iteratorNormalCompletion7=!0){var field=_step7.value;data.hasOwnProperty(field)&&(album[field]=data[field])}}catch(err){_didIteratorError7=!0,_iteratorError7=err}finally{try{!_iteratorNormalCompletion7&&_iterator7.return&&_iterator7.return()}finally{if(_didIteratorError7)throw _iteratorError7}}return album.images&&!album.images.formatted&&(album.images=formatImages(album.images)),data.date&&!album.date&&(album.release_date=data.date),data.album_type&&(album.type=data.album_type),void 0===album.provider&&void 0!==album.uri&&(album.provider=uriSource(album.uri)),album}),formatArtist=exports.formatArtist=function(data){var artist={},fields=["uri","provider","mbid","name","type","popularity","followers","listeners","added_at","biography","biography_link","biography_publish_date","related_artists_uris","albums_uris","albums_total","albums_more","tracks_uris","tracks_total","tracks_more"],_iteratorNormalCompletion8=!0,_didIteratorError8=!1,_iteratorError8=void 0;try{for(var _step8,_iterator8=fields[Symbol.iterator]();!(_iteratorNormalCompletion8=(_step8=_iterator8.next()).done);_iteratorNormalCompletion8=!0){var field=_step8.value;data.hasOwnProperty(field)&&(artist[field]=data[field])}}catch(err){_didIteratorError8=!0,_iteratorError8=err}finally{try{!_iteratorNormalCompletion8&&_iterator8.return&&_iterator8.return()}finally{if(_didIteratorError8)throw _iteratorError8}}return data.images&&data.images.length>0&&(artist.images=[formatImages(data.images)]),data.followers&&void 0!==data.followers.total&&(artist.followers=data.followers.total),data.bio&&(data.bio.content&&!artist.biography&&(artist.biography=data.bio.content),data.bio.links&&data.bio.links.link&&data.bio.links.link.href&&!artist.biography_link&&(artist.biography_link=data.bio.links.link.href),data.bio.published&&!artist.biography_publish_date&&(artist.biography_publish_date=data.bio.published)),void 0===artist.provider&&void 0!==artist.uri&&(artist.provider=uriSource(artist.uri)),artist},formatUser=(exports.formatPlaylist=function(data){var playlist={},fields=["uri","snapshot_id","provider","type","collaborative","public","name","description","images","popularity","followers","added_at","last_modified_date","can_edit","owner","user_uri","tracks_uris","tracks_total","tracks_more"],_iteratorNormalCompletion9=!0,_didIteratorError9=!1,_iteratorError9=void 0;try{for(var _step9,_iterator9=fields[Symbol.iterator]();!(_iteratorNormalCompletion9=(_step9=_iterator9.next()).done);_iteratorNormalCompletion9=!0){var field=_step9.value;data.hasOwnProperty(field)&&(playlist[field]=data[field])}}catch(err){_didIteratorError9=!0,_iteratorError9=err}finally{try{!_iteratorNormalCompletion9&&_iterator9.return&&_iterator9.return()}finally{if(_didIteratorError9)throw _iteratorError9}}return playlist.images&&!playlist.images.formatted&&(playlist.images=formatImages(playlist.images)),data.followers&&void 0!==data.followers.total&&(playlist.followers=data.followers.total),data.tracks&&void 0!==data.tracks.total&&(playlist.tracks_total=data.tracks.total),data.owner&&(playlist.owner={id:data.owner.id,uri:data.owner.uri,name:data.owner.display_name?data.owner.display_name:null},playlist.user_uri=data.owner.uri),playlist.uri=upgradeSpotifyPlaylistUri(playlist.uri),void 0===playlist.provider&&void 0!==playlist.uri&&(playlist.provider=uriSource(playlist.uri)),playlist},exports.formatUser=function(data){var user={},fields=["id","uri","provider","name","images","followers","playlists_uris","playlists_total","playlists_more"],_iteratorNormalCompletion10=!0,_didIteratorError10=!1,_iteratorError10=void 0;try{for(var _step10,_iterator10=fields[Symbol.iterator]();!(_iteratorNormalCompletion10=(_step10=_iterator10.next()).done);_iteratorNormalCompletion10=!0){var field=_step10.value;data.hasOwnProperty(field)&&(user[field]=data[field])}}catch(err){_didIteratorError10=!0,_iteratorError10=err}finally{try{!_iteratorNormalCompletion10&&_iterator10.return&&_iterator10.return()}finally{if(_didIteratorError10)throw _iteratorError10}}return!user.images&&data.image?user.images=formatImages(data.image):!user.images&&data.avatar?user.images=formatImages(data.avatar):user.images&&!user.images.formatted&&(user.images=formatImages(user.images)),data.followers&&void 0!==data.followers.total&&(user.followers=data.followers.total),data.realname&&(user.name=data.realname),data.display_name&&!user.name&&(user.name=data.display_name),data.id&&!user.name&&(user.name=data.id),void 0===user.provider&&void 0!==user.uri&&(user.provider=uriSource(user.uri)),user}),formatTrack=exports.formatTrack=function(data){var track={},fields=["uri","tlid","provider","name","images","release_date","disc_number","track_number","duration","followers","popularity","userloved","is_explicit","is_local","lyrics","lyrics_path","lyrics_results","artists","album"];data&&data.track&&isObject(data.track)&&(data.added_by&&(data.track.added_by=data.added_by),data.added_at&&(data.track.added_at=data.added_at),data.tlid&&(data.track.tlid=data.tlid),data=data.track);var _iteratorNormalCompletion11=!0,_didIteratorError11=!1,_iteratorError11=void 0;try{for(var _step11,_iterator11=fields[Symbol.iterator]();!(_iteratorNormalCompletion11=(_step11=_iterator11.next()).done);_iteratorNormalCompletion11=!0){var field=_step11.value;data.hasOwnProperty(field)&&(track[field]=data[field])}}catch(err){_didIteratorError11=!0,_iteratorError11=err}finally{try{!_iteratorNormalCompletion11&&_iterator11.return&&_iterator11.return()}finally{if(_didIteratorError11)throw _iteratorError11}}return data.followers&&data.followers.total&&(track.followers=data.followers.total),void 0===track.duration&&void 0!==data.duration_ms?track.duration=data.duration_ms:void 0===track.duration&&void 0!==data.length&&(track.duration=data.length),void 0===track.track_number&&void 0!==data.track_no&&(track.track_number=data.track_no),void 0===track.disc_number&&void 0!==data.disc_no&&(track.disc_number=data.disc_no),void 0===track.release_date&&void 0!==data.date&&(track.release_date=data.date),void 0===track.explicit&&void 0!==data.explicit&&(track.is_explicit=data.explicit),data.album&&data.album.images&&(void 0!==track.images&&track.images.formatted||(track.images=formatImages(data.album.images))),void 0===track.provider&&void 0!==track.uri&&(track.provider=uriSource(track.uri)),track},uriSource=(exports.formatClient=function(data){var client={},fields=["id","connected","name","host_name","volume","mute","latency","power_on_command","power_off_command"],_iteratorNormalCompletion12=!0,_didIteratorError12=!1,_iteratorError12=void 0;try{for(var _step12,_iterator12=fields[Symbol.iterator]();!(_iteratorNormalCompletion12=(_step12=_iterator12.next()).done);_iteratorNormalCompletion12=!0){var field=_step12.value;data.hasOwnProperty(field)&&(client[field]=data[field])}}catch(err){_didIteratorError12=!0,_iteratorError12=err}finally{try{!_iteratorNormalCompletion12&&_iterator12.return&&_iterator12.return()}finally{if(_didIteratorError12)throw _iteratorError12}}return data.config&&(void 0===client.latency&&void 0!==data.config.latency&&(client.latency=data.config.latency),!client.name&&data.config.name&&(client.name=data.config.name),data.config.volume&&(data.config.volume.percent&&(client.volume=data.config.volume.percent),data.config.volume.muted&&(client.mute=data.config.volume.muted))),void 0===client.name&&data.host&&data.host.name&&(client.name=data.host.name),client},exports.formatGroup=function(data){var group={},fields=["id","name","mute","stream_id","clients_ids"],_iteratorNormalCompletion13=!0,_didIteratorError13=!1,_iteratorError13=void 0;try{for(var _step13,_iterator13=fields[Symbol.iterator]();!(_iteratorNormalCompletion13=(_step13=_iterator13.next()).done);_iteratorNormalCompletion13=!0){var field=_step13.value;data.hasOwnProperty(field)&&(group[field]=data[field])}}catch(err){_didIteratorError13=!0,_iteratorError13=err}finally{try{!_iteratorNormalCompletion13&&_iterator13.return&&_iterator13.return()}finally{if(_didIteratorError13)throw _iteratorError13}}return void 0!==group.name&&""!==group.name||(group.name="Group "+data.id.substring(0,3)),void 0===group.mute&&void 0!==data.mute&&(group.mute=data.mute),group},exports.collate=function(obj){var indexes=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(obj=Object.assign({},obj),void 0!==obj.artists_uris&&(obj.artists=[]),void 0!==obj.albums_uris&&(obj.albums=[]),void 0!==obj.tracks_uris&&(obj.tracks=[]),void 0!==obj.users_uris&&(obj.users=[]),void 0!==obj.playlists_uris&&(obj.playlists=[]),void 0!==obj.related_artists_uris&&(obj.related_artists=[]),void 0!==obj.clients_ids&&(obj.clients=[]),indexes.artists){if(obj.artists_uris){var _iteratorNormalCompletion14=!0,_didIteratorError14=!1,_iteratorError14=void 0;try{for(var _step14,_iterator14=obj.artists_uris[Symbol.iterator]();!(_iteratorNormalCompletion14=(_step14=_iterator14.next()).done);_iteratorNormalCompletion14=!0){var uri=_step14.value;indexes.artists[uri]&&obj.artists.push(indexes.artists[uri])}}catch(err){_didIteratorError14=!0,_iteratorError14=err}finally{try{!_iteratorNormalCompletion14&&_iterator14.return&&_iterator14.return()}finally{if(_didIteratorError14)throw _iteratorError14}}}if(obj.related_artists_uris){var _iteratorNormalCompletion15=!0,_didIteratorError15=!1,_iteratorError15=void 0;try{for(var _step15,_iterator15=obj.related_artists_uris[Symbol.iterator]();!(_iteratorNormalCompletion15=(_step15=_iterator15.next()).done);_iteratorNormalCompletion15=!0){var uri=_step15.value;indexes.artists[uri]&&obj.related_artists.push(indexes.artists[uri])}}catch(err){_didIteratorError15=!0,_iteratorError15=err}finally{try{!_iteratorNormalCompletion15&&_iterator15.return&&_iterator15.return()}finally{if(_didIteratorError15)throw _iteratorError15}}}obj.artist_uri&&indexes.artists[obj.artist_uri]&&(obj.artist=indexes.artists[obj.artist_uri])}if(indexes.albums){if(obj.albums_uris){var _iteratorNormalCompletion16=!0,_didIteratorError16=!1,_iteratorError16=void 0;try{for(var _step16,_iterator16=obj.albums_uris[Symbol.iterator]();!(_iteratorNormalCompletion16=(_step16=_iterator16.next()).done);_iteratorNormalCompletion16=!0){var uri=_step16.value;indexes.albums[uri]&&obj.albums.push(indexes.albums[uri])}}catch(err){_didIteratorError16=!0,_iteratorError16=err}finally{try{!_iteratorNormalCompletion16&&_iterator16.return&&_iterator16.return()}finally{if(_didIteratorError16)throw _iteratorError16}}}obj.album_uri&&indexes.albums[obj.album_uri]&&(obj.album=indexes.albums[obj.album_uri])}if(indexes.tracks){if(obj.tracks_uris){var _iteratorNormalCompletion17=!0,_didIteratorError17=!1,_iteratorError17=void 0;try{for(var _step17,_iterator17=obj.tracks_uris[Symbol.iterator]();!(_iteratorNormalCompletion17=(_step17=_iterator17.next()).done);_iteratorNormalCompletion17=!0){var uri=_step17.value;indexes.tracks[uri]&&obj.tracks.push(indexes.tracks[uri])}}catch(err){_didIteratorError17=!0,_iteratorError17=err}finally{try{!_iteratorNormalCompletion17&&_iterator17.return&&_iterator17.return()}finally{if(_didIteratorError17)throw _iteratorError17}}}obj.track_uri&&indexes.tracks[obj.track_uri]&&(obj.track=indexes.tracks[obj.track_uri])}if(indexes.users){if(obj.users_uris){var _iteratorNormalCompletion18=!0,_didIteratorError18=!1,_iteratorError18=void 0;try{for(var _step18,_iterator18=obj.users_uris[Symbol.iterator]();!(_iteratorNormalCompletion18=(_step18=_iterator18.next()).done);_iteratorNormalCompletion18=!0){var uri=_step18.value;indexes.users[uri]&&obj.users.push(indexes.users[uri])}}catch(err){_didIteratorError18=!0,_iteratorError18=err}finally{try{!_iteratorNormalCompletion18&&_iterator18.return&&_iterator18.return()}finally{if(_didIteratorError18)throw _iteratorError18}}}obj.user_uri&&indexes.users[obj.user_uri]&&(obj.user=indexes.users[obj.user_uri])}if(indexes.playlists){if(obj.playlists_uris){var _iteratorNormalCompletion19=!0,_didIteratorError19=!1,_iteratorError19=void 0;try{for(var _step19,_iterator19=obj.playlists_uris[Symbol.iterator]();!(_iteratorNormalCompletion19=(_step19=_iterator19.next()).done);_iteratorNormalCompletion19=!0){var uri=_step19.value;indexes.playlists[uri]&&obj.playlists.push(indexes.playlists[uri])}}catch(err){_didIteratorError19=!0,_iteratorError19=err}finally{try{!_iteratorNormalCompletion19&&_iterator19.return&&_iterator19.return()}finally{if(_didIteratorError19)throw _iteratorError19}}}obj.playlist_uri&&indexes.playlists[obj.playlist_uri]&&(obj.playlist=indexes.playlists[obj.playlist_uri])}if(indexes.clients&&obj.clients_ids){var _iteratorNormalCompletion20=!0,_didIteratorError20=!1,_iteratorError20=void 0;try{for(var _step20,_iterator20=obj.clients_ids[Symbol.iterator]();!(_iteratorNormalCompletion20=(_step20=_iterator20.next()).done);_iteratorNormalCompletion20=!0){var id=_step20.value;indexes.clients[id]&&obj.clients.push(indexes.clients[id])}}catch(err){_didIteratorError20=!0,_iteratorError20=err}finally{try{!_iteratorNormalCompletion20&&_iterator20.return&&_iterator20.return()}finally{if(_didIteratorError20)throw _iteratorError20}}}return obj},exports.uriSource=function(uri){return!!uri&&uri.split(":")[0]}),uriType=exports.uriType=function(uri){if(!uri)return null;var exploded=uri.split(":");if("m3u"==exploded[0])return"playlist";if("iris"==exploded[0])switch(exploded[1]){case"search":case"discover":case"browse":return exploded[1]}switch(exploded[1]){case"track":case"artist":case"album":case"playlist":case"genre":return exploded[1];case"user":return exploded.length>3&&"playlist"==exploded[3]?"playlist":exploded[1]}},isObject=(exports.sourceIcon=function(uri){var source=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;switch(uri&&(source=uriSource(uri)),source){case"local":case"m3u":return"folder";case"gmusic":return"google";case"podcast":case"podcast+file":case"podcast+http":case"podcast+https":case"podcast+itunes":return"podcast";case"tunein":case"somafm":case"dirble":return"microphone";default:return source}},exports.getFromUri=function(element){var uri=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",exploded=uri.split(":");exploded[0];switch(element){case"mbid":var index=exploded.indexOf("mbid");if(index>-1)return exploded[index+1];break;case"artistid":if("artist"==exploded[1])return exploded[2];break;case"albumid":if("album"==exploded[1])return exploded[2];break;case"playlistid":if("playlist"==exploded[1])return exploded[2];if("user"==exploded[1]&&"playlist"==exploded[3])return exploded[4];break;case"playlistowner":if("user"==exploded[1]&&"playlist"==exploded[3])return exploded[2];break;case"trackid":if("track"==exploded[1])return exploded[2];break;case"userid":if("user"==exploded[1])return exploded[2];break;case"genreid":if("genre"==exploded[1])return exploded[2];break;case"seeds":if("discover"==exploded[1])return exploded[2];break;case"searchtype":if("search"==exploded[0])return exploded[1];break;case"searchterm":if("search"==exploded[0])return exploded[2]}return null},exports.buildLink=function(uri){var type=uriType(uri),link="/"+type+"/";return uri=encodeURIComponent(uri),link+=uri},exports.arrayOf=function(property,items){var array=[],_iteratorNormalCompletion21=!0,_didIteratorError21=!1,_iteratorError21=void 0;try{for(var _step21,_iterator21=items[Symbol.iterator]();!(_iteratorNormalCompletion21=(_step21=_iterator21.next()).done);_iteratorNormalCompletion21=!0){var item=_step21.value;void 0!==item[property]&&null!=item[property]&&array.push(item[property])}}catch(err){_didIteratorError21=!0,_iteratorError21=err}finally{try{!_iteratorNormalCompletion21&&_iterator21.return&&_iterator21.return()}finally{if(_didIteratorError21)throw _iteratorError21}}return array},exports.mergeDuplicates=function(list,key){var clean_list=[],keyed_list={};for(var i in list){var item=list[i];item[key]in keyed_list&&(item=Object.assign({},keyed_list[item[key]],item)),keyed_list[item[key]]=item}for(i in keyed_list)clean_list.push(keyed_list[i]);return clean_list},exports.removeDuplicates=function(array){var unique=[];for(var i in array)unique.indexOf(array[i])<=-1&&unique.push(array[i]);return unique},exports.applyFilter=function(field,value,array){for(var singular=arguments.length>3&&void 0!==arguments[3]&&arguments[3],results=[],i=0;i<array.length;i++)if(array[i][field]&&String(array[i][field]).toLowerCase().includes(String(value).toLowerCase())){if(singular)return array[i];results.push(array[i])}return results},exports.createRange=function(indexes){function sortAsc(a,b){return a-b}indexes.sort(sortAsc);for(var first_bunch=[],previous_index=!1,i=0;i<indexes.length;i++)previous_index&&previous_index!=indexes[i]-1||(first_bunch.push(indexes[i]),previous_index=indexes[i]);return{start:first_bunch[0],length:first_bunch.length}},exports.sortItems=function(array,property){function get_value(value){var split=property.split("."),_iteratorNormalCompletion22=!0,_didIteratorError22=!1,_iteratorError22=void 0;try{for(var _step22,_iterator22=split[Symbol.iterator]();!(_iteratorNormalCompletion22=(_step22=_iterator22.next()).done);_iteratorNormalCompletion22=!0){var property_element=_step22.value;if("first"==property_element){if(Array.isArray(value)&&value.length>0){value=value[0];continue}return null}if("length"==property_element)return Array.isArray(value)?value.length:0;if(void 0===value[property_element])return null;value=value[property_element]}}catch(err){_didIteratorError22=!0,_iteratorError22=err}finally{try{!_iteratorNormalCompletion22&&_iterator22.return&&_iterator22.return()}finally{if(_didIteratorError22)throw _iteratorError22}}return value}function compare(a,b){var a_value=get_value(a),b_value=get_value(b);if("uri"==property&&(a_value=uriSource(a_value),b_value=uriSource(b_value)),!sort_map)return"boolean"==typeof a_value&&"boolean"==typeof b_value?a_value&&!b_value?-1:!a_value&&b_value?1:0:"number"==typeof a_value&&"number"==typeof b_value?null==a_value&&null==b_value?0:null==a_value?-1:null==b_value?1:parseInt(a_value)>parseInt(b_value)?1:parseInt(a_value)<parseInt(b_value)?-1:0:a_value&&!b_value?-1:!a_value&&b_value?1:a_value||b_value?a_value.toLowerCase()>b_value.toLowerCase()?1:a_value.toLowerCase()<b_value.toLowerCase()?-1:0:0;var a_index=sort_map.indexOf(a_value+":"),b_index=sort_map.indexOf(b_value+":");return a_index<b_index?1:a_index>b_index?-1:void 0}var reverse=arguments.length>2&&void 0!==arguments[2]&&arguments[2],sort_map=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(!array||array.length<=0)return[];var sorted=Object.assign([],array.sort(compare));return reverse&&sorted.reverse(),sorted},exports.shuffle=function(array){var j,x,i;for(i=array.length-1;i>0;i--)j=Math.floor(Math.random()*(i+1)),x=array[i],array[i]=array[j],array[j]=x;return array},exports.isNumeric=function(value){return!isNaN(parseFloat(value))&&isFinite(value)},exports.isObject=function(value){return value instanceof Object&&value.constructor===Object}),upgradeSpotifyPlaylistUris=(exports.isLoading=function(){var load_queue=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],keys=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];for(var load_queue_key in load_queue)if(load_queue.hasOwnProperty(load_queue_key))for(var i=0;i<keys.length;i++)if(load_queue[load_queue_key].includes(keys[i]))return!0;return!1},exports.isHosted=function(){var hosts=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["jaedb.github.io"],hostname=window.location.hostname;return hosts.includes(hostname)},exports.getIndexedRecords=function(index,uris){var records=[];!uris instanceof Array&&(uris=[uris]);for(var i=0;i<uris.length;i++)index.hasOwnProperty(uris[i])&&records.push(index[uris[i]]);return records},exports.titleCase=function(string){return string.charAt(0).toUpperCase()+string.slice(1)},exports.scrollTo=function(){var target=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,smooth_scroll=arguments.length>1&&void 0!==arguments[1]&&arguments[1],main=document.getElementById("main");if(smooth_scroll||main.classList.remove("smooth-scroll"),target&&Number.isInteger(target))"function"==typeof main.scrollTo&&(main.scrollTop=target);else if(target){var element=null;"#"==target.charAt(0)?element=document.getElementById(target.substring(1)):"."==target.charAt(0)?(element=document.getElementsByClassName(target.substring(1)),element.length>0&&(element=element[0])):console.error("Invalid target type '"+target+"'. Must start with '#' or '.'."),element&&"function"==typeof element.scrollIntoView&&element.scrollIntoView()}else main.scrollTop=0;smooth_scroll||main.classList.add("smooth-scroll")},exports.upgradeSpotifyPlaylistUris=function(uris){var upgraded=[],_iteratorNormalCompletion23=!0,_didIteratorError23=!1,_iteratorError23=void 0;try{for(var _step23,_iterator23=uris[Symbol.iterator]();!(_iteratorNormalCompletion23=(_step23=_iterator23.next()).done);_iteratorNormalCompletion23=!0){var uri=_step23.value;uri.includes("spotify:user:")&&(uri=uri.replace(/spotify:user:([^:]*?):/i,"spotify:")),upgraded.push(uri)}}catch(err){_didIteratorError23=!0,_iteratorError23=err}finally{try{!_iteratorNormalCompletion23&&_iterator23.return&&_iterator23.return()}finally{if(_didIteratorError23)throw _iteratorError23}}return upgraded}),upgradeSpotifyPlaylistUri=exports.upgradeSpotifyPlaylistUri=function(uri){return upgradeSpotifyPlaylistUris([uri])[0]}},function(module,exports,__webpack_require__){"use strict";function setWindowTitle(){return{type:"SET_WINDOW_TITLE",title:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,play_state:arguments.length>1&&void 0!==arguments[1]?arguments[1]:null}}function setCurrentTrackTransition(current_track_transition){return{type:"SET_CURRENT_TRACK_TRANSITION",current_track_transition:current_track_transition}}function setSelectedTracks(){var keys=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return"string"==typeof keys&&(keys=[keys]),{type:"SET_SELECTED_TRACKS",keys:keys}}function showContextMenu(data){return data.e.changedTouches?(data.position_x=data.e.changedTouches[0].clientX,data.position_y=data.e.changedTouches[0].clientY):data.e.touches?(data.position_x=data.e.touches[0].clientX,data.position_y=data.e.touches[0].clientY):(data.position_x=data.e.clientX,data.position_y=data.e.clientY),{type:"SHOW_CONTEXT_MENU",data:data}}function setSlimMode(slim_mode){return{type:"SET_SLIM_MODE",slim_mode:slim_mode}}function setWindowFocus(window_focus){return{type:"SET_WINDOW_FOCUS",window_focus:window_focus}}function hideContextMenu(){return{type:"HIDE_CONTEXT_MENU"}}function removeContextMenu(){return{type:"REMOVE_CONTEXT_MENU"}}function showTouchContextMenu(data){return{type:"SHOW_TOUCH_CONTEXT_MENU",data:data}}function hideTouchContextMenu(){return{type:"HIDE_TOUCH_CONTEXT_MENU"}}function removeTouchContextMenu(){return{type:"REMOVE_TOUCH_CONTEXT_MENU"}}function lazyLoading(start){return{type:"LAZY_LOADING",start:start}}function toggleSidebar(){var new_state=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"toggle",action={type:"TOGGLE_SIDEBAR"};return"toggle"!=new_state&&(action.new_state=new_state),action}function dragStart(e,context){return{type:"DRAG_START",context:context,from_uri:arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,victims:arguments[3],victims_indexes:arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,start_x:e.clientX,start_y:e.clientY}}function dragActive(){return{type:"DRAG_ACTIVE"}}function dragEnd(){return{type:"DRAG_END"}}function set(data){return{type:"UI_SET",data:data}}function installPrompt(event){return{type:"INSTALL_PROMPT",event:event}}function createBrowserNotification(data){return{type:"BROWSER_NOTIFICATION",data:data}}function createNotification(data){return data.message&&(data.content=data.message),{type:"CREATE_NOTIFICATION",notification:Object.assign({key:helpers.generateGuid(),duration:5,type:"default",title:null,content:null,description:null,sticky:!1,closing:!1,render_content:!1},data)}}function closeNotification(key){return{type:"CLOSE_NOTIFICATION",key:key}}function removeNotification(key){return{type:"REMOVE_NOTIFICATION",key:key,manual:arguments.length>1&&void 0!==arguments[1]&&arguments[1]}}function startLoading(key,source){return{type:"START_LOADING",source:source,key:key}}function stopLoading(key){return{type:"STOP_LOADING",key:key}}function startProcess(key,message){return{type:"START_PROCESS",key:key,message:message,data:arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}}}function resumeProcess(key,message){arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:"RESUME_PROCESS",key:key}}function updateProcess(key,message){return{type:"UPDATE_PROCESS",key:key,message:message,data:arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}}}function runProcess(key){return{type:key,data:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}}}function cancelProcess(key){return{type:"CANCEL_PROCESS",key:key}}function processCancelled(key){return{type:"PROCESS_CANCELLED",key:key}}function processFinishing(key){return{type:"PROCESS_FINISHING",key:key}}function processFinished(key){return{type:"PROCESS_FINISHED",key:key}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.setWindowTitle=setWindowTitle,exports.setCurrentTrackTransition=setCurrentTrackTransition,exports.setSelectedTracks=setSelectedTracks,exports.showContextMenu=showContextMenu,exports.setSlimMode=setSlimMode,exports.setWindowFocus=setWindowFocus,exports.hideContextMenu=hideContextMenu,exports.removeContextMenu=removeContextMenu,exports.showTouchContextMenu=showTouchContextMenu,exports.hideTouchContextMenu=hideTouchContextMenu,exports.removeTouchContextMenu=removeTouchContextMenu,exports.lazyLoading=lazyLoading,exports.toggleSidebar=toggleSidebar,exports.dragStart=dragStart,exports.dragActive=dragActive,exports.dragEnd=dragEnd,exports.set=set,exports.installPrompt=installPrompt,exports.createBrowserNotification=createBrowserNotification,exports.createNotification=createNotification,exports.closeNotification=closeNotification,exports.removeNotification=removeNotification,exports.startLoading=startLoading,exports.stopLoading=stopLoading,exports.startProcess=startProcess,exports.resumeProcess=resumeProcess,exports.updateProcess=updateProcess,exports.runProcess=runProcess,exports.cancelProcess=cancelProcess,exports.processCancelled=processCancelled,exports.processFinishing=processFinishing,exports.processFinished=processFinished;var _helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers)},function(module,__webpack_exports__,__webpack_require__){"use strict";function isPlainObject(obj){if("object"!=typeof obj||null===obj)return!1;for(var proto=obj;null!==Object.getPrototypeOf(proto);)proto=Object.getPrototypeOf(proto);return Object.getPrototypeOf(obj)===proto}function createStore(reducer,preloadedState,enhancer){function ensureCanMutateNextListeners(){nextListeners===currentListeners&&(nextListeners=currentListeners.slice())}function getState(){if(isDispatching)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return currentState}function subscribe(listener){if("function"!=typeof listener)throw new Error("Expected the listener to be a function.");if(isDispatching)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var isSubscribed=!0;return ensureCanMutateNextListeners(),nextListeners.push(listener),function(){if(isSubscribed){if(isDispatching)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");isSubscribed=!1,ensureCanMutateNextListeners();var index=nextListeners.indexOf(listener);nextListeners.splice(index,1)}}}function dispatch(action){if(!isPlainObject(action))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===action.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(isDispatching)throw new Error("Reducers may not dispatch actions.");try{isDispatching=!0,currentState=currentReducer(currentState,action)}finally{isDispatching=!1}for(var listeners=currentListeners=nextListeners,i=0;i<listeners.length;i++){(0,listeners[i])()}return action}function replaceReducer(nextReducer){if("function"!=typeof nextReducer)throw new Error("Expected the nextReducer to be a function.");currentReducer=nextReducer,dispatch({type:ActionTypes.REPLACE})}function observable(){var _ref,outerSubscribe=subscribe;return _ref={subscribe:function(observer){function observeState(){observer.next&&observer.next(getState())}if("object"!=typeof observer||null===observer)throw new TypeError("Expected the observer to be an object.");return observeState(),{unsubscribe:outerSubscribe(observeState)}}},_ref[__WEBPACK_IMPORTED_MODULE_0_symbol_observable__.a]=function(){return this},_ref}var _ref2;if("function"==typeof preloadedState&&"function"==typeof enhancer||"function"==typeof enhancer&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function");if("function"==typeof preloadedState&&void 0===enhancer&&(enhancer=preloadedState,preloadedState=void 0),void 0!==enhancer){if("function"!=typeof enhancer)throw new Error("Expected the enhancer to be a function.");return enhancer(createStore)(reducer,preloadedState)}if("function"!=typeof reducer)throw new Error("Expected the reducer to be a function.");var currentReducer=reducer,currentState=preloadedState,currentListeners=[],nextListeners=currentListeners,isDispatching=!1;return dispatch({type:ActionTypes.INIT}),_ref2={dispatch:dispatch,subscribe:subscribe,getState:getState,replaceReducer:replaceReducer},_ref2[__WEBPACK_IMPORTED_MODULE_0_symbol_observable__.a]=observable,_ref2}function getUndefinedStateErrorMessage(key,action){var actionType=action&&action.type;return"Given "+(actionType&&'action "'+String(actionType)+'"'||"an action")+', reducer "'+key+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function assertReducerShape(reducers){Object.keys(reducers).forEach(function(key){var reducer=reducers[key];if(void 0===reducer(void 0,{type:ActionTypes.INIT}))throw new Error('Reducer "'+key+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===reducer(void 0,{type:ActionTypes.PROBE_UNKNOWN_ACTION()}))throw new Error('Reducer "'+key+"\" returned undefined when probed with a random type. Don't try to handle "+ActionTypes.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')})}function combineReducers(reducers){for(var reducerKeys=Object.keys(reducers),finalReducers={},i=0;i<reducerKeys.length;i++){var key=reducerKeys[i];"function"==typeof reducers[key]&&(finalReducers[key]=reducers[key])}var shapeAssertionError,finalReducerKeys=Object.keys(finalReducers);try{assertReducerShape(finalReducers)}catch(e){shapeAssertionError=e}return function(state,action){if(void 0===state&&(state={}),shapeAssertionError)throw shapeAssertionError;for(var hasChanged=!1,nextState={},_i=0;_i<finalReducerKeys.length;_i++){var _key=finalReducerKeys[_i],reducer=finalReducers[_key],previousStateForKey=state[_key],nextStateForKey=reducer(previousStateForKey,action);if(void 0===nextStateForKey){var errorMessage=getUndefinedStateErrorMessage(_key,action);throw new Error(errorMessage)}nextState[_key]=nextStateForKey,hasChanged=hasChanged||nextStateForKey!==previousStateForKey}return hasChanged?nextState:state}}function bindActionCreator(actionCreator,dispatch){return function(){return dispatch(actionCreator.apply(this,arguments))}}function bindActionCreators(actionCreators,dispatch){if("function"==typeof actionCreators)return bindActionCreator(actionCreators,dispatch);if("object"!=typeof actionCreators||null===actionCreators)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===actionCreators?"null":typeof actionCreators)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');for(var keys=Object.keys(actionCreators),boundActionCreators={},i=0;i<keys.length;i++){var key=keys[i],actionCreator=actionCreators[key];"function"==typeof actionCreator&&(boundActionCreators[key]=bindActionCreator(actionCreator,dispatch))}return boundActionCreators}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{},ownKeys=Object.keys(source);"function"==typeof Object.getOwnPropertySymbols&&(ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))),ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function compose(){for(var _len=arguments.length,funcs=new Array(_len),_key=0;_key<_len;_key++)funcs[_key]=arguments[_key];return 0===funcs.length?function(arg){return arg}:1===funcs.length?funcs[0]:funcs.reduce(function(a,b){return function(){return a(b.apply(void 0,arguments))}})}function applyMiddleware(){for(var _len=arguments.length,middlewares=new Array(_len),_key=0;_key<_len;_key++)middlewares[_key]=arguments[_key];return function(createStore){return function(){var store=createStore.apply(void 0,arguments),_dispatch=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},middlewareAPI={getState:store.getState,dispatch:function(){return _dispatch.apply(void 0,arguments)}},chain=middlewares.map(function(middleware){return middleware(middlewareAPI)});return _dispatch=compose.apply(void 0,chain)(store.dispatch),_objectSpread({},store,{dispatch:_dispatch})}}}Object.defineProperty(__webpack_exports__,"__esModule",{value:!0}),__webpack_require__.d(__webpack_exports__,"createStore",function(){return createStore}),__webpack_require__.d(__webpack_exports__,"combineReducers",function(){return combineReducers}),__webpack_require__.d(__webpack_exports__,"bindActionCreators",function(){return bindActionCreators}),__webpack_require__.d(__webpack_exports__,"applyMiddleware",function(){return applyMiddleware}),__webpack_require__.d(__webpack_exports__,"compose",function(){return compose}),__webpack_require__.d(__webpack_exports__,"__DO_NOT_USE__ActionTypes",function(){return ActionTypes});var __WEBPACK_IMPORTED_MODULE_0_symbol_observable__=__webpack_require__(105),randomString=function(){return Math.random().toString(36).substring(7).split("").join(".")},ActionTypes={INIT:"@@redux/INIT"+randomString(),REPLACE:"@@redux/REPLACE"+randomString(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+randomString()}}},function(module,__webpack_exports__,__webpack_require__){"use strict";Object.defineProperty(__webpack_exports__,"__esModule",{value:!0});var __WEBPACK_IMPORTED_MODULE_0__components_Provider__=__webpack_require__(96),__WEBPACK_IMPORTED_MODULE_1__components_connectAdvanced__=__webpack_require__(65),__WEBPACK_IMPORTED_MODULE_2__components_Context__=__webpack_require__(47),__WEBPACK_IMPORTED_MODULE_3__connect_connect__=__webpack_require__(102);__webpack_require__.d(__webpack_exports__,"Provider",function(){return __WEBPACK_IMPORTED_MODULE_0__components_Provider__.a}),__webpack_require__.d(__webpack_exports__,"connectAdvanced",function(){return __WEBPACK_IMPORTED_MODULE_1__components_connectAdvanced__.a}),__webpack_require__.d(__webpack_exports__,"ReactReduxContext",function(){return __WEBPACK_IMPORTED_MODULE_2__components_Context__.a}),__webpack_require__.d(__webpack_exports__,"connect",function(){return __WEBPACK_IMPORTED_MODULE_3__connect_connect__.a})},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactFontawesome=__webpack_require__(179),_reactFontawesome2=_interopRequireDefault(_reactFontawesome);exports.default=(0,_react.memo)(function(props){if(!props.name||""===props.name)return null;var className="icon icon--"+(props.type?props.type:"material");switch(props.className&&(className+=" "+props.className),props.type){case"svg":return _react2.default.createElement("img",{className:className,src:"/iris/assets/icons/"+props.name+".svg",onClick:function(e){return props.onClick?props.onClick(e):null}});case"gif":return _react2.default.createElement("img",{className:className,src:"/iris/assets/icons/"+props.name+".gif",onClick:function(e){return props.onClick?props.onClick(e):null}});case"fontawesome":return _react2.default.createElement(_reactFontawesome2.default,{className:className,type:"fontawesome",name:props.name,onClick:function(e){return props.onClick?props.onClick(e):null}});case"css":switch(props.name){case"playing":return _react2.default.createElement("i",{className:className+" icon--playing"},_react2.default.createElement("span",null),_react2.default.createElement("span",null),_react2.default.createElement("span",null))}default:return _react2.default.createElement("i",{className:className,onClick:function(e){return props.onClick?props.onClick(e):null}},props.name)}})},function(module,exports,__webpack_require__){"use strict";function set(data){return{type:"MOPIDY_SET",data:data}}function request(method){return{type:"MOPIDY_REQUEST",method:method,params:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},response_callback:arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,error_callback:arguments.length>3&&void 0!==arguments[3]?arguments[3]:null}}function connect(){return{type:"MOPIDY_CONNECT"}}function connecting(){return{type:"MOPIDY_CONNECTING"}}function disconnect(){return{type:"MOPIDY_DISCONNECT"}}function debug(call,value){return{type:"MOPIDY_DEBUG",call:call,value:value}}function restartStarted(){return{type:"MOPIDY_RESTART_STARTED"}}function restartFinished(){return{type:"MOPIDY_RESTART_FINISHED"}}function upgradeStarted(){return{type:"MOPIDY_UPGRADE_STARTED"}}function upgradeFinished(){return{type:"MOPIDY_UPGRADE_FINISHED"}}function localScanStarted(){return{type:"MOPIDY_LOCAL_SCAN_STARTED"}}function localScanFinished(){return{type:"MOPIDY_LOCAL_SCAN_FINISHED"}}function getPlayState(){return{type:"MOPIDY_GET_PLAY_STATE"}}function play(){return{type:"MOPIDY_PLAY"}}function pause(){return{type:"MOPIDY_PAUSE"}}function stop(){return{type:"MOPIDY_STOP"}}function next(){return{type:"MOPIDY_NEXT"}}function previous(){return{type:"MOPIDY_PREVIOUS"}}function getMute(){return{type:"MOPIDY_GET_MUTE"}}function setMute(mute){return{type:"MOPIDY_SET_MUTE",mute:mute}}function getVolume(){return{type:"MOPIDY_GET_VOLUME"}}function setVolume(volume){return{type:"MOPIDY_SET_VOLUME",volume:volume}}function getConsume(){return{type:"MOPIDY_GET_CONSUME"}}function setConsume(consume){return{type:"MOPIDY_SET_CONSUME",consume:consume}}function getRepeat(){return{type:"MOPIDY_GET_REPEAT"}}function setRepeat(repeat){return{type:"MOPIDY_SET_REPEAT",repeat:repeat}}function getRandom(){return{type:"MOPIDY_GET_RANDOM"}}function setRandom(random){return{type:"MOPIDY_SET_RANDOM",random:random}}function getTimePosition(){return{type:"MOPIDY_GET_TIME_POSITION"}}function setTimePosition(time_position){return{type:"MOPIDY_SET_TIME_POSITION",time_position:parseInt(time_position)}}function timePosition(time_position){return{type:"MOPIDY_TIME_POSITION",time_position:parseInt(time_position)}}function getUriSchemes(){return{type:"MOPIDY_GET_URI_SCHEMES"}}function getCurrentTrack(){return{type:"MOPIDY_GET_CURRENT_TRACK"}}function currentTrackLoaded(tl_track){return{type:"MOPIDY_CURRENT_TRACK_LOADED",tl_track:tl_track}}function getNextTrack(){return{type:"MOPIDY_GET_NEXT_TRACK"}}function clearCurrentTrack(){return{type:"CLEAR_CURRENT_TRACK"}}function getQueue(){return{type:"MOPIDY_GET_QUEUE"}}function changeTrack(tlid){return{type:"MOPIDY_CHANGE_TRACK",tlid:tlid}}function playURIs(){var uris=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],from_uri=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:"MOPIDY_PLAY_URIS",uris:uris,from_uri:from_uri}}function playAlbum(uri){return{type:"MOPIDY_PLAY_ALBUM",uri:uri}}function playPlaylist(uri){return{type:"MOPIDY_PLAY_PLAYLIST",uri:uri}}function enqueueURIs(){var uris=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],from_uri=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,play_next=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:"MOPIDY_ENQUEUE_URIS",uris:uris,from_uri:from_uri,at_position:arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,play_next:play_next,offset:arguments.length>4&&void 0!==arguments[4]?arguments[4]:0}}function enqueueAlbum(uri){return{type:"MOPIDY_ENQUEUE_ALBUM",uri:uri,next:arguments.length>1&&void 0!==arguments[1]&&arguments[1],at_position:arguments.length>2&&void 0!==arguments[2]?arguments[2]:null}}function enqueuePlaylist(uri){return{type:"MOPIDY_ENQUEUE_PLAYLIST",uri:uri,play_next:arguments.length>1&&void 0!==arguments[1]&&arguments[1],at_position:arguments.length>2&&void 0!==arguments[2]?arguments[2]:null}}function enqueueURIsBatchDone(){return{type:"MOPIDY_ENQUEUE_URIS_BATCH_DONE"}}function removeTracks(tlids){return{type:"MOPIDY_REMOVE_TRACKS",tlids:tlids}}function reorderTracklist(indexes,insert_before){var range=helpers.createRange(indexes);return insert_before>range.start&&(insert_before-=range.length),{type:"MOPIDY_REORDER_TRACKLIST",range_start:range.start,range_length:range.length,insert_before:insert_before}}function clearTracklist(){return{type:"MOPIDY_CLEAR_TRACKLIST"}}function getImages(context,uris){return{type:"MOPIDY_GET_IMAGES",context:context,uris:uris}}function createPlaylist(name,scheme){return{type:"MOPIDY_CREATE_PLAYLIST",name:name,scheme:scheme}}function deletePlaylist(uri){return{type:"MOPIDY_DELETE_PLAYLIST",uri:uri}}function getLibraryPlaylists(){return{type:"MOPIDY_GET_LIBRARY_PLAYLISTS"}}function getPlaylist(uri){return{type:"MOPIDY_GET_PLAYLIST",data:{uri:uri}}}function getPlaylists(uris){return{type:"MOPIDY_GET_PLAYLISTS",uris:uris,processor:arguments.length>1&&void 0!==arguments[1]?arguments[1]:null}}function getDirectory(uri){return{type:"MOPIDY_GET_DIRECTORY",data:{uri:uri}}}function getTrack(uri){return{type:"MOPIDY_GET_TRACK",data:{uri:uri}}}function getLibraryArtists(){return{type:"MOPIDY_GET_LIBRARY_ARTISTS",uri:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}function clearLibraryArtists(){return{type:"MOPIDY_CLEAR_LIBRARY_ARTISTS"}}function getArtist(uri){return{type:"MOPIDY_GET_ARTIST",data:{uri:uri}}}function getArtists(uris){return{type:"MOPIDY_GET_ARTISTS",uris:uris,processor:arguments.length>1&&void 0!==arguments[1]?arguments[1]:null}}function getAlbum(uri){return{type:"MOPIDY_GET_ALBUM",data:{uri:uri}}}function getAlbums(uris){return{type:"MOPIDY_GET_ALBUMS",uris:uris,processor:arguments.length>1&&void 0!==arguments[1]?arguments[1]:null}}function getLibraryAlbums(){return{type:"MOPIDY_GET_LIBRARY_ALBUMS",uri:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}function clearLibraryAlbums(){return{type:"MOPIDY_CLEAR_LIBRARY_ALBUMS"}}function runProcessor(processor){return{type:processor}}function cancelProcessor(processor){return{type:processor+"_CANCEL"}}function clearSearchResults(){return{type:"MOPIDY_CLEAR_SEARCH_RESULTS"}}function getSearchResults(context,query){return{type:"MOPIDY_GET_SEARCH_RESULTS",context:context,query:query,limit:arguments.length>2&&void 0!==arguments[2]?arguments[2]:100}}function getQueueHistory(){return{type:"MOPIDY_GET_QUEUE_HISTORY"}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.set=set,exports.request=request,exports.connect=connect,exports.connecting=connecting,exports.disconnect=disconnect,exports.debug=debug,exports.restartStarted=restartStarted,exports.restartFinished=restartFinished,exports.upgradeStarted=upgradeStarted,exports.upgradeFinished=upgradeFinished,exports.localScanStarted=localScanStarted,exports.localScanFinished=localScanFinished,exports.getPlayState=getPlayState,exports.play=play,exports.pause=pause,exports.stop=stop,exports.next=next,exports.previous=previous,exports.getMute=getMute,exports.setMute=setMute,exports.getVolume=getVolume,exports.setVolume=setVolume,exports.getConsume=getConsume,exports.setConsume=setConsume,exports.getRepeat=getRepeat,exports.setRepeat=setRepeat,exports.getRandom=getRandom,exports.setRandom=setRandom,exports.getTimePosition=getTimePosition,exports.setTimePosition=setTimePosition,exports.timePosition=timePosition,exports.getUriSchemes=getUriSchemes,exports.getCurrentTrack=getCurrentTrack,exports.currentTrackLoaded=currentTrackLoaded,exports.getNextTrack=getNextTrack,exports.clearCurrentTrack=clearCurrentTrack,exports.getQueue=getQueue,exports.changeTrack=changeTrack,exports.playURIs=playURIs,exports.playAlbum=playAlbum,exports.playPlaylist=playPlaylist,exports.enqueueURIs=enqueueURIs,exports.enqueueAlbum=enqueueAlbum,exports.enqueuePlaylist=enqueuePlaylist,exports.enqueueURIsBatchDone=enqueueURIsBatchDone,exports.removeTracks=removeTracks,exports.reorderTracklist=reorderTracklist,exports.clearTracklist=clearTracklist,exports.getImages=getImages,exports.createPlaylist=createPlaylist,exports.deletePlaylist=deletePlaylist,exports.getLibraryPlaylists=getLibraryPlaylists,exports.getPlaylist=getPlaylist,exports.getPlaylists=getPlaylists,exports.getDirectory=getDirectory,exports.getTrack=getTrack,exports.getLibraryArtists=getLibraryArtists,exports.clearLibraryArtists=clearLibraryArtists,exports.getArtist=getArtist,exports.getArtists=getArtists,exports.getAlbum=getAlbum,exports.getAlbums=getAlbums,exports.getLibraryAlbums=getLibraryAlbums,exports.clearLibraryAlbums=clearLibraryAlbums,exports.runProcessor=runProcessor,exports.cancelProcessor=cancelProcessor,exports.clearSearchResults=clearSearchResults,exports.getSearchResults=getSearchResults,exports.getQueueHistory=getQueueHistory;var _helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers)},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_react),_reactRouter=__webpack_require__(33),_reactRouterDom=__webpack_require__(29),_helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers),CustomLink=function(_React$Component){function CustomLink(props){return _classCallCheck(this,CustomLink),_possibleConstructorReturn(this,(CustomLink.__proto__||Object.getPrototypeOf(CustomLink)).call(this,props))}return _inherits(CustomLink,_React$Component),_createClass(CustomLink,[{key:"handleClick",value:function(e){var main=document.getElementById("main"),state=this.props.location&&this.props.location.state?this.props.location.state:{};state.scroll_position=main.scrollTop,this.props.history.replace({state:state}),this.props.retainScroll||helpers.scrollTo(this.props.scrollTo,this.props.scrollTo)}},{key:"handleContextMenu",value:function(e){this.props.onContextMenu&&this.props.onContextMenu(e)}},{key:"isLinkActive",value:function(link){link=decodeURIComponent(link);var current_link=decodeURIComponent(this.props.history.location.pathname);return this.props.exact?current_link===link:current_link.startsWith(link)}},{key:"render",value:function(){var _this2=this,className="";return this.props.className&&(className+=this.props.className),this.props.to?(void 0!==this.props.history&&this.isLinkActive(this.props.to)&&(this.props.activeClassName?className+=" "+this.props.activeClassName:className+=" active"),_react2.default.createElement(_reactRouterDom.Link,{onClick:function(e){return _this2.handleClick(e)},onContextMenu:function(e){return _this2.handleContextMenu(e)},className:className,to:this.props.to},this.props.children)):_react2.default.createElement("span",{className:className},this.props.children)}}]),CustomLink}(_react2.default.Component);exports.default=(0,_reactRouter.withRouter)(CustomLink)},function(module,exports,__webpack_require__){"use strict";(function($){function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}function getToken(dispatch,getState){return new Promise(function(resolve,reject){if(getState().spotify.token_expiry&&(new Date).getTime()<getState().spotify.token_expiry)return void resolve(getState().spotify.access_token);void 0!==getState().ui.load_queue.spotify_refresh_token?setTimeout(function(){return getToken(dispatch,getState)},1e3):refreshToken(dispatch,getState).then(function(response){resolve(response.access_token)},function(error){reject(error)})})}function refreshToken(dispatch,getState){return new Promise(function(resolve,reject){var loader_key=helpers.generateGuid();if(dispatch(uiActions.startLoading(loader_key,"spotify_refresh_token")),getState().spotify.authorization){var config={method:"GET",url:getState().spotify.authorization_url+"?action=refresh&refresh_token="+getState().spotify.refresh_token,dataType:"json",timeout:1e4};$.ajax(config).then(function(response){dispatch(uiActions.stopLoading(loader_key)),response.token_expiry=(new Date).getTime()+1e3*response.expires_in,response.source="spotify",dispatch({type:"SPOTIFY_TOKEN_REFRESHED",data:response}),resolve(response)},function(xhr,status,error){dispatch(uiActions.stopLoading(loader_key)),reject({config:config,xhr:xhr,status:status,error:error})})}else{var config={method:"GET",url:"//"+getState().mopidy.host+":"+getState().mopidy.port+"/iris/http/refresh_spotify_token",dataType:"json",timeout:1e4};$.ajax(config).then(function(response,status,xhr){if(dispatch(uiActions.stopLoading(loader_key)),response.error)reject({config:config,xhr:xhr,status:status,error:response.error});else{var token=response.result.spotify_token;token.token_expiry=(new Date).getTime()+1e3*token.expires_in,token.source="mopidy",dispatch({type:"SPOTIFY_TOKEN_REFRESHED",access_token_provider:"backend",data:token}),resolve(token)}},function(xhr,status,error){dispatch(uiActions.stopLoading(loader_key)),reject({config:config,xhr:xhr,status:status,error:error})})}})}function set(data){return{type:"SPOTIFY_SET",data:data}}function connect(){return function(dispatch,getState){dispatch({type:"SPOTIFY_CONNECTING"}),dispatch(getMe())}}function authorizationGranted(data){return data.token_expiry=(new Date).getTime()+data.expires_in,{type:"SPOTIFY_AUTHORIZATION_GRANTED",data:data}}function revokeAuthorization(){return{type:"SPOTIFY_AUTHORIZATION_REVOKED"}}function refreshingToken(){return function(dispatch,getState){dispatch({type:"SPOTIFY_TOKEN_REFRESHING"}),refreshToken(dispatch,getState)}}function tokenChanged(spotify_token){return{type:"SPOTIFY_TOKEN_CHANGED",spotify_token:spotify_token}}function importAuthorization(authorization){return{type:"SPOTIFY_IMPORT_AUTHORIZATION",authorization:authorization}}function getMe(){return function(dispatch,getState){request(dispatch,getState,"me").then(function(response){dispatch({type:"SPOTIFY_ME_LOADED",me:response})},function(error){dispatch(coreActions.handleException("Could not load your profile",error))})}}function getTrack(uri){return function(dispatch,getState){request(dispatch,getState,"tracks/"+helpers.getFromUri("trackid",uri)).then(function(response){dispatch(coreActions.trackLoaded(response))},function(error){dispatch(coreActions.handleException("Could not load track",error))})}}function getLibraryTracks(){return function(dispatch,getState){request(dispatch,getState,"me/tracks?limit=50").then(function(response){dispatch({type:"SPOTIFY_LIBRARY_TRACKS_LOADED",data:response})},function(error){dispatch(coreActions.handleException("Could not get library tracks",error))})}}function getFeaturedPlaylists(){return function(dispatch,getState){dispatch({type:"SPOTIFY_FEATURED_PLAYLISTS_LOADED",data:!1});var date=new Date;date.setHours(date.getHours());var year=date.getFullYear(),month=date.getMonth();month<10&&(month="0"+month);var day=date.getDay();day<10&&(day="0"+day);var hour=date.getHours();hour<10&&(hour="0"+hour);var min=date.getMinutes();min<10&&(min="0"+min);var sec=date.getSeconds();sec<10&&(sec="0"+sec);var timestamp=year+"-"+month+"-"+day+"T"+hour+":"+min+":"+sec;request(dispatch,getState,"browse/featured-playlists?limit=50&country="+getState().spotify.country+"&locale="+getState().spotify.locale+"timestamp="+timestamp).then(function(response){for(var playlists=[],i=0;i<response.playlists.items.length;i++)playlists.push(Object.assign({},response.playlists.items[i],{is_completely_loaded:!1,can_edit:getState().spotify.me&&response.playlists.items[i].owner.id==getState().spotify.me.id,tracks_total:response.playlists.items[i].tracks.total}));dispatch({type:"PLAYLISTS_LOADED",playlists:playlists}),dispatch({type:"SPOTIFY_FEATURED_PLAYLISTS_LOADED",data:{message:response.message,playlists:helpers.upgradeSpotifyPlaylistUris(helpers.arrayOf("uri",response.playlists.items))}})},function(error){dispatch(coreActions.handleException("Could not load featured playlists",error))})}}function getCategories(){return function(dispatch,getState){request(dispatch,getState,"browse/categories?limit=50&country="+getState().spotify.country+"&locale="+getState().spotify.locale).then(function(response){dispatch({type:"SPOTIFY_CATEGORIES_LOADED",categories:response.categories.items})},function(error){dispatch(coreActions.handleException("Could not load categories",error))})}}function getCategory(id){return function(dispatch,getState){request(dispatch,getState,"browse/categories/"+id+"?country="+getState().spotify.country+"&locale="+getState().spotify.locale).then(function(response){dispatch({type:"SPOTIFY_CATEGORY_LOADED",category:Object.assign({uri:"category:"+response.id,playlist_uris:[]},response)})},function(error){dispatch(coreActions.handleException("Could not load category",error))})}}function getCategoryPlaylists(id){return function(dispatch,getState){request(dispatch,getState,"browse/categories/"+id+"/playlists?limit=50&country="+getState().spotify.country+"&locale="+getState().spotify.locale).then(function(response){dispatch({type:"SPOTIFY_CATEGORY_PLAYLISTS_LOADED",uri:"category:"+id,playlists:response.playlists})},function(error){dispatch(coreActions.handleException("Could not load category playlists",error))})}}function getNewReleases(){return function(dispatch,getState){request(dispatch,getState,"browse/new-releases?country="+getState().spotify.country+"&limit=50").then(function(response){dispatch({type:"SPOTIFY_NEW_RELEASES_LOADED",data:response})},function(error){dispatch(coreActions.handleException("Could not load new releases",error))})}}function getURL(url,action_name){var key=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(dispatch,getState){request(dispatch,getState,url).then(function(response){dispatch({type:action_name,key:key,data:response})},function(error){dispatch(coreActions.handleException("Could not load URL",error))})}}function getMore(url){var core_action=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,custom_action=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return function(dispatch,getState){request(dispatch,getState,url).then(function(response){core_action?dispatch(coreActions.loadedMore(core_action.parent_type,core_action.parent_key,core_action.records_type,response)):custom_action?(custom_action.data=response,dispatch(custom_action)):dispatch(coreActions.handleException("No callback handler for loading more items"))},function(error){dispatch(coreActions.handleException("Could not load more "+callback_action.parent_type+" "+callback_action.records_type+"s",error))})}}function clearSearchResults(){return{type:"SPOTIFY_CLEAR_SEARCH_RESULTS"}}function getSearchResults(type,query){var limit=arguments.length>2&&void 0!==arguments[2]?arguments[2]:50,offset=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return function(dispatch,getState){dispatch(uiActions.startProcess("SPOTIFY_GET_SEARCH_RESULTS_PROCESSOR","Searching Spotify")),"all"==(type=type.replace(/s+$/,""))&&(type="album,artist,playlist,track");var url="search?q="+query;url+="&type="+type,url+="&country="+getState().spotify.country,url+="&limit="+limit,url+="&offset="+offset,request(dispatch,getState,url).then(function(response){if(void 0!==response.tracks&&dispatch({type:"SPOTIFY_SEARCH_RESULTS_LOADED",context:"tracks",results:helpers.formatTracks(response.tracks.items),more:response.tracks.next}),void 0!==response.artists&&(dispatch({type:"ARTISTS_LOADED",artists:response.artists.items}),dispatch({type:"SPOTIFY_SEARCH_RESULTS_LOADED",context:"artists",results:helpers.arrayOf("uri",response.artists.items),more:response.artists.next})),void 0!==response.albums&&(dispatch({type:"ALBUMS_LOADED",albums:response.albums.items}),dispatch({type:"SPOTIFY_SEARCH_RESULTS_LOADED",context:"albums",results:helpers.arrayOf("uri",response.albums.items),more:response.albums.next})),void 0!==response.playlists){var playlists=[],_iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=response.playlists.items[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var playlist=_step.value;playlists.push(Object.assign({},helpers.formatPlaylist(playlist),{can_edit:getState().spotify.me&&playlist.owner.id==getState().spotify.me.id,tracks_total:playlist.tracks.total}))}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}dispatch({type:"PLAYLISTS_LOADED",playlists:playlists}),dispatch({type:"SPOTIFY_SEARCH_RESULTS_LOADED",context:"playlists",results:helpers.arrayOf("uri",playlists),more:response.playlists.next})}dispatch(uiActions.processFinishing("SPOTIFY_GET_SEARCH_RESULTS_PROCESSOR"))},function(error){dispatch(coreActions.handleException("Could not load search results",error))})}}function getAutocompleteResults(field_id,query){var types=arguments.length>2&&void 0!==arguments[2]?arguments[2]:["album","artist","playlist","track"];return function(dispatch,getState){dispatch({type:"SPOTIFY_AUTOCOMPLETE_LOADING",field_id:field_id});var genre_included=types.includes("genre");if(genre_included){var index=types.indexOf("genre");types.splice(index,1)}var endpoint="search?q="+query;endpoint+="&type="+types.join(","),endpoint+="&country="+getState().spotify.country,request(dispatch,getState,endpoint).then(function(response){var genres=[];if(genre_included){var available_genres=getState().spotify.genres;if(available_genres)for(var i=0;i<available_genres.length;i++)if(available_genres[i].includes(query)){var genre=available_genres[i];genres.push({name:(genre.charAt(0).toUpperCase()+genre.slice(1)).replace("-"," "),uri:"spotify:genre:"+genre})}}response.artists&&response.artists.items&&dispatch(coreActions.artistsLoaded(response.artists.items)),response.albums&&response.albums.items&&dispatch(coreActions.albumsLoaded(response.albums.items)),response.playlists&&response.playlists.items&&dispatch(coreActions.playlistsLoaded(response.playlists.items)),response.tracks&&response.tracks.items&&dispatch(coreActions.tracksLoaded(response.tracks.items)),dispatch({type:"SPOTIFY_AUTOCOMPLETE_LOADED",field_id:field_id,results:{artists:response.artists?response.artists.items:[],albums:response.albums?response.albums.items:[],playlists:response.playlists?response.playlists.items:[],tracks:response.tracks?response.tracks.items:[],genres:genres}})},function(error){dispatch(coreActions.handleException("Could not load autocomplete results",error))})}}function clearAutocompleteResults(){return{type:"SPOTIFY_AUTOCOMPLETE_CLEAR",field_id:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}function following(uri){var method=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET";return function(dispatch,getState){if("PUT"==method)var is_following=!0;if("DELETE"==method)var is_following=!1;var endpoint,data,asset_name=helpers.uriType(uri);switch(asset_name){case"track":endpoint="GET"==method?"me/tracks/contains/?ids="+helpers.getFromUri("trackid",uri):"me/tracks/?ids="+helpers.getFromUri("trackid",uri);break;case"album":endpoint="GET"==method?"me/albums/contains/?ids="+helpers.getFromUri("albumid",uri):"me/albums/?ids="+helpers.getFromUri("albumid",uri);break;case"artist":"GET"==method?endpoint="me/following/contains?type=artist&ids="+helpers.getFromUri("artistid",uri):(endpoint="me/following?type=artist&ids="+helpers.getFromUri("artistid",uri),data={});break;case"user":"GET"==method?endpoint="me/following/contains?type=user&ids="+helpers.getFromUri("userid",uri):(endpoint="me/following?type=user&ids="+helpers.getFromUri("userid",uri),data={});break;case"playlist":endpoint="GET"==method?"playlists/"+helpers.getFromUri("playlistid",uri)+"/followers/contains?ids="+getState().spotify.me.id:"playlists/"+helpers.getFromUri("playlistid",uri)+"/followers"}request(dispatch,getState,endpoint,method,data).then(function(response){response&&(is_following=response),"object"===(void 0===is_following?"undefined":_typeof(is_following))&&(is_following=is_following[0]),dispatch({type:"SPOTIFY_LIBRARY_"+asset_name.toUpperCase()+"_CHECK",key:uri,in_library:is_following})},function(error){dispatch(coreActions.handleException("Could not follow/unfollow",error))})}}function resolveRadioSeeds(radio){return function(dispatch,getState){if(radio.seed_artists.length>0){for(var artist_ids="",i=0;i<radio.seed_artists.length;i++)i>0&&(artist_ids+=","),artist_ids+=helpers.getFromUri("artistid",radio.seed_artists[i]);request(dispatch,getState,"artists?ids="+artist_ids).then(function(response){response&&response.artists?dispatch({type:"ARTISTS_LOADED",artists:response.artists}):console.error("No Spotify artists returned",artist_ids)},function(error){dispatch(coreActions.handleException("Could not resolve radio artist seeds",error))})}if(radio.seed_tracks.length>0){for(var track_ids="",i=0;i<radio.seed_tracks.length;i++)i>0&&(track_ids+=","),track_ids+=helpers.getFromUri("trackid",radio.seed_tracks[i]);request(dispatch,getState,"tracks?ids="+track_ids).then(function(response){dispatch({type:"TRACKS_LOADED",tracks:response.tracks})},function(error){dispatch(coreActions.handleException("Could not load radio track seeds",error))})}}}function getFavorites(){var limit=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50,term=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"long_term";return function(dispatch,getState){dispatch({type:"SPOTIFY_FAVORITES_LOADED",artists:[],tracks:[]}),$.when(request(dispatch,getState,"me/top/artists?limit="+limit+"&time_range="+term),request(dispatch,getState,"me/top/tracks?limit="+limit+"&time_range="+term)).then(function(artists_response,tracks_response){dispatch({type:"SPOTIFY_FAVORITES_LOADED",artists:artists_response.items,tracks:tracks_response.items})},function(artists_error,tracks_error){dispatch(coreActions.handleException("Could not load favorites",Object.assign({},artists_error,tracks_error)))})}}function getRecommendations(){var uris=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],limit=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,tunabilities=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return function(dispatch,getState){dispatch({type:"CLEAR_SPOTIFY_RECOMMENDATIONS"});for(var artists_ids=[],tracks_ids=[],genres=[],i=0;i<uris.length;i++){var uri=uris[i];switch(helpers.uriType(uri)){case"artist":artists_ids.push(helpers.getFromUri("artistid",uri));break;case"track":tracks_ids.push(helpers.getFromUri("trackid",uri));break;case"genre":genres.push(helpers.getFromUri("genreid",uri));break;case"default":genres.push(uri)}}var endpoint="recommendations";if(endpoint+="?seed_artists="+artists_ids.join(","),endpoint+="&seed_tracks="+tracks_ids.join(","),endpoint+="&seed_genres="+genres.join(","),endpoint+="&limit="+limit,tunabilities)for(var key in tunabilities)tunabilities.hasOwnProperty(key)&&(endpoint+="&"+key+"="+tunabilities[key]);request(dispatch,getState,endpoint).then(function(response){var tracks=Object.assign([],response.tracks),artists_uris=[];if(tracks.length>artists_ids.length&&tracks.length>10)for(;artists_uris.length<6;){var random_index=Math.round(Math.random()*(tracks.length-1)),artist=tracks[random_index].artists[0];artists_uris.includes(artist.uri)||artists_ids.includes(artist.id)||(artists_uris.push(artist.uri),dispatch(getArtist(artist.uri)))}var albums=[],albums_uris=[];if(tracks.length>10)for(;albums.length<6;){var random_index=Math.round(Math.random()*(tracks.length-1)),album=tracks[random_index].album;albums_uris.includes(album.uri)||(albums_uris.push(album.uri),albums.push(album))}albums.length>0&&dispatch(coreActions.albumsLoaded(albums)),tracks.length>0&&dispatch(coreActions.tracksLoaded(tracks)),dispatch({type:"SPOTIFY_RECOMMENDATIONS_LOADED",seeds_uris:uris,tracks_uris:helpers.arrayOf("uri",tracks),artists_uris:artists_uris,albums_uris:helpers.arrayOf("uri",albums)})},function(error){dispatch(coreActions.handleException("Could not load recommendations",error))})}}function getGenres(){return function(dispatch,getState){request(dispatch,getState,"recommendations/available-genre-seeds").then(function(response){dispatch({type:"SPOTIFY_GENRES_LOADED",genres:response.genres})},function(error){dispatch(coreActions.handleException("Could not load genres",error))})}}function getArtist(uri){var full=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(dispatch,getState){var artist={},requests=[request(dispatch,getState,"artists/"+helpers.getFromUri("artistid",uri)).then(function(response){Object.assign(artist,response)},function(error){dispatch(coreActions.handleException("Could not load artist",error))})];full&&(requests.push(request(dispatch,getState,"artists/"+helpers.getFromUri("artistid",uri)+"/top-tracks?country="+getState().spotify.country).then(function(response){Object.assign(artist,response)},function(error){dispatch(coreActions.handleException("Could not load artist's top tracks",error))})),requests.push(request(dispatch,getState,"artists/"+helpers.getFromUri("artistid",uri)+"/related-artists").then(function(response){dispatch(coreActions.artistsLoaded(response.artists)),Object.assign(artist,{related_artists_uris:helpers.arrayOf("uri",response.artists)})},function(error){dispatch(coreActions.handleException("Could not load artist's related artists",error))}))),$.when.apply($,requests).then(function(){dispatch(artist.musicbrainz_id?lastfmActions.getArtist(artist.uri,!1,artist.musicbrainz_id):lastfmActions.getArtist(artist.uri,artist.name.replace("&","and"))),dispatch(coreActions.artistLoaded(artist)),full&&request(dispatch,getState,"artists/"+helpers.getFromUri("artistid",uri)+"/albums?market="+getState().spotify.country).then(function(response){dispatch({type:"SPOTIFY_ARTIST_ALBUMS_LOADED",artist_uri:uri,data:response})},function(error){dispatch(coreActions.handleException("Could not load artist's albums",error))})})}}function getArtists(uris){return function(dispatch,getState){for(var ids="",i=0;i<uris.length;i++)""!=ids&&(ids+=","),ids+=helpers.getFromUri("artistid",uris[i]);request(dispatch,getState,"artists/?ids="+ids).then(function(response){for(var i=i;i<response.length;i++){for(var artist=response,i=0;i<artist.albums.length;i++)dispatch({type:"ALBUM_LOADED",album:artist.albums[i]});artist.albums_uris=helpers.arrayOf("uri",artist.albums),artist.albums_more=artist.albums.next,dispatch(coreActions.artistLoaded(artist))}},function(error){dispatch(coreActions.handleException("Could not load artists",error))})}}function playArtistTopTracks(uri){return function(dispatch,getState){var artists=getState().core.artists;if(void 0!==artists[uri]&&void 0!==artists[uri].tracks){var uris=helpers.arrayOf("uri",artists[uri].tracks);dispatch(mopidyActions.playURIs(uris,uri))}else request(dispatch,getState,"artists/"+helpers.getFromUri("artistid",uri)+"/top-tracks?country="+getState().spotify.country).then(function(response){var uris=helpers.arrayOf("uri",response.tracks);dispatch(mopidyActions.playURIs(uris,uri))},function(error){dispatch(coreActions.handleException("Could not play artist's top tracks",error))})}}function getUser(uri){return function(dispatch,getState){request(dispatch,getState,"users/"+helpers.getFromUri("userid",uri)).then(function(response){dispatch(coreActions.userLoaded(helpers.formatUser(response)))},function(error){dispatch(coreActions.handleException("Could not load user",error))})}}function getUserPlaylists(uri){return function(dispatch,getState){request(dispatch,getState,"users/"+helpers.getFromUri("userid",uri)+"/playlists?limit=40").then(function(response){var playlists=[],_iteratorNormalCompletion2=!0,_didIteratorError2=!1,_iteratorError2=void 0;try{for(var _step2,_iterator2=response.items[Symbol.iterator]();!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=!0){var raw_playlist=_step2.value,can_edit=!1;getState().spotify.me&&raw_playlist.owner.id==getState().spotify.me.id&&(can_edit=!0);var playlist=Object.assign({},helpers.formatPlaylist(raw_playlist),{can_edit:can_edit,tracks_total:raw_playlist.tracks.total});playlists.push(playlist)}}catch(err){_didIteratorError2=!0,_iteratorError2=err}finally{try{!_iteratorNormalCompletion2&&_iterator2.return&&_iterator2.return()}finally{if(_didIteratorError2)throw _iteratorError2}}dispatch(coreActions.userPlaylistsLoaded(uri,playlists,response.next,response.total))},function(error){dispatch(coreActions.handleException("Could not load user's playlists",error))})}}function getAlbum(uri){return function(dispatch,getState){request(dispatch,getState,"albums/"+helpers.getFromUri("albumid",uri)).then(function(response){dispatch(coreActions.artistsLoaded(response.artists));for(var tracks=Object.assign([],response.tracks.items),album=Object.assign({},helpers.formatAlbum(response),{artists_uris:helpers.arrayOf("uri",response.artists),tracks_uris:helpers.arrayOf("uri",tracks),tracks_more:response.tracks.next,tracks_total:response.tracks.total}),i=0;i<tracks.length;i++)tracks[i].album={name:album.name,uri:album.uri};dispatch(coreActions.albumLoaded(album)),dispatch(coreActions.tracksLoaded(tracks));for(var artist_ids=[],i=0;i<response.artists.length;i++)artist_ids.push(helpers.getFromUri("artistid",response.artists[i].uri));request(dispatch,getState,"artists/?ids="+artist_ids).then(function(response){dispatch(coreActions.artistsLoaded(response.artists))},function(error){dispatch(coreActions.handleException("Could not load album's artists",error))})},function(error){dispatch(coreActions.handleException("Could not load album",error))})}}function toggleAlbumInLibrary(uri,method){if("PUT"==method)var new_state=1;if("DELETE"==method)var new_state=0;return function(dispatch,getState){request(dispatch,getState,"me/albums?ids="+helpers.getFromUri("albumid",uri),method).then(function(response){dispatch({type:"SPOTIFY_ALBUM_FOLLOWING",key:uri,data:new_state})},function(error){dispatch(coreActions.handleException("Could not add/remove library album",error))})}}function createPlaylist(name,description,is_public,is_collaborative){return function(dispatch,getState){var data={name:name,description:description,public:is_public,collaborative:is_collaborative};request(dispatch,getState,"users/"+getState().spotify.me.id+"/playlists/","POST",data).then(function(response){dispatch({type:"PLAYLIST_LOADED",key:response.uri,playlist:Object.assign({},response,{can_edit:!0,tracks:[],tracks_more:null,tracks_total:0})}),dispatch({type:"LIBRARY_PLAYLISTS_LOADED",uris:[response.uri]}),dispatch(uiActions.createNotification({type:"info",content:"Created playlist"}))},function(error){dispatch(coreActions.handleException("Could not create playlist",error))})}}function savePlaylist(uri,name,description,is_public,is_collaborative,image){return function(dispatch,getState){var data={name:name,description:description,public:is_public,collaborative:is_collaborative};request(dispatch,getState,"users/"+getState().spotify.me.id+"/playlists/"+helpers.getFromUri("playlistid",uri),"PUT",data).then(function(response){dispatch(uiActions.createNotification({type:"info",content:"Playlist saved"})),image?request(dispatch,getState,"users/"+getState().spotify.me.id+"/playlists/"+helpers.getFromUri("playlistid",uri)+"/images","PUT",image).then(function(response){dispatch({type:"PLAYLIST_UPDATED",key:uri,playlist:{name:name,public:is_public,collaborative:is_collaborative,description:description}})},function(error){dispatch(coreActions.handleException("Could not save image",error))}):dispatch({type:"PLAYLIST_UPDATED",key:uri,playlist:{name:name,public:is_public,collaborative:is_collaborative,description:description}})},function(error){dispatch(coreActions.handleException("Could not save playlist",error))})}}function getPlaylist(uri){return function(dispatch,getState){request(dispatch,getState,"playlists/"+helpers.getFromUri("playlistid",uri)+"?market="+getState().spotify.country).then(function(response){var description=null;response.description&&(description=response.description,description=description.split('<a href="spotify:artist:').join('<a href="#/artist/spotify:artist:'),description=description.split('<a href="spotify:album:').join('<a href="#/album/spotify:album:'),description=description.split('<a href="spotify:user:').join('<a href="#/user/spotify:user:'));var tracks=helpers.formatTracks(response.tracks.items),playlist=Object.assign({},helpers.formatPlaylist(response),{is_completely_loaded:!0,user_uri:response.owner.uri,tracks_uris:helpers.arrayOf("uri",tracks),tracks_more:response.tracks.next,tracks_total:response.tracks.total,description:description});dispatch(coreActions.userLoaded(helpers.formatUser(response.owner))),dispatch(coreActions.tracksLoaded(tracks)),dispatch(coreActions.playlistLoaded(playlist))},function(error){dispatch(coreActions.handleException("Could not load playlist",error))})}}function getLibraryTracksAndPlay(uri){return function(dispatch,getState){dispatch(uiActions.startProcess("SPOTIFY_GET_LIBRARY_TRACKS_AND_PLAY_PROCESSOR","Loading library tracks",{uri:uri,next:"me/tracks"}))}}function getLibraryTracksAndPlayProcessor(data){return function(dispatch,getState){request(dispatch,getState,data.next).then(function(response){if(void 0!==getState().ui.processes.SPOTIFY_GET_LIBRARY_TRACKS_AND_PLAY_PROCESSOR){if("cancelling"==getState().ui.processes.SPOTIFY_GET_LIBRARY_TRACKS_AND_PLAY_PROCESSOR.status)return dispatch(uiActions.processCancelled("SPOTIFY_GET_LIBRARY_TRACKS_AND_PLAY_PROCESSOR")),!1}for(var uris=[],new_uris=[],i=0;i<response.items.length;i++)new_uris.push(response.items[i].track.uri);uris=data.uris?[].concat(_toConsumableArray(data.uris),new_uris):new_uris,response.next?(dispatch(uiActions.updateProcess("SPOTIFY_GET_LIBRARY_TRACKS_AND_PLAY_PROCESSOR","Loading "+(response.total-uris.length)+" library tracks",{next:response.next,total:response.total,remaining:response.total-uris.length})),dispatch(uiActions.runProcess("SPOTIFY_GET_LIBRARY_TRACKS_AND_PLAY_PROCESSOR",{next:response.next,uris:uris}))):(dispatch(mopidyActions.playURIs(uris,data.uri)),dispatch(uiActions.processFinishing("SPOTIFY_GET_LIBRARY_TRACKS_AND_PLAY_PROCESSOR")))},function(error){dispatch(coreActions.handleException("Could not load library tracks",error))})}}function getAllPlaylistTracks(uri){var shuffle=arguments.length>1&&void 0!==arguments[1]&&arguments[1],callback_action=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,play_next=arguments.length>3&&void 0!==arguments[3]&&arguments[3],at_position=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,offset=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;return function(dispatch,getState){dispatch(uiActions.startProcess("SPOTIFY_GET_ALL_PLAYLIST_TRACKS_PROCESSOR","Loading playlist tracks",{uri:uri,next:"playlists/"+helpers.getFromUri("playlistid",uri)+"/tracks?market="+getState().spotify.country,shuffle:shuffle,play_next:play_next,at_position:at_position,offset:offset,callback_action:callback_action}))}}function getAllPlaylistTracksProcessor(data){return function(dispatch,getState){request(dispatch,getState,data.next).then(function(response){if(void 0!==getState().ui.processes.SPOTIFY_GET_ALL_PLAYLIST_TRACKS_PROCESSOR){if("cancelling"==getState().ui.processes.SPOTIFY_GET_ALL_PLAYLIST_TRACKS_PROCESSOR.status)return dispatch(uiActions.processCancelled("SPOTIFY_GET_ALL_PLAYLIST_TRACKS_PROCESSOR")),!1}var uris=[],new_uris=[],_iteratorNormalCompletion3=!0,_didIteratorError3=!1,_iteratorError3=void 0;try{for(var _step3,_iterator3=response.items[Symbol.iterator]();!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=!0){var item=_step3.value;item.track&&new_uris.push(item.track.uri)}}catch(err){_didIteratorError3=!0,_iteratorError3=err}finally{try{!_iteratorNormalCompletion3&&_iterator3.return&&_iterator3.return()}finally{if(_didIteratorError3)throw _iteratorError3}}uris=data.uris?[].concat(_toConsumableArray(data.uris),new_uris):new_uris,response.next?(dispatch(uiActions.updateProcess("SPOTIFY_GET_ALL_PLAYLIST_TRACKS_PROCESSOR","Loading "+(response.total-uris.length)+" playlist tracks",Object.assign({},data,{next:response.next,total:response.total,remaining:response.total-uris.length}))),dispatch(uiActions.runProcess("SPOTIFY_GET_ALL_PLAYLIST_TRACKS_PROCESSOR",Object.assign({},data,{next:response.next,uris:uris})))):(data.shuffle&&(uris=helpers.shuffle(uris)),dispatch(uiActions.processFinished("SPOTIFY_GET_ALL_PLAYLIST_TRACKS_PROCESSOR")),dispatch("enqueue"==data.callback_action?mopidyActions.enqueueURIs(uris,data.uri,data.play_next,data.at_position,data.offset):mopidyActions.playURIs(uris,data.uri)))},function(error){dispatch(coreActions.handleException("Could not load tracks to play playlist",error))})}}function toggleFollowingPlaylist(uri,method){if("PUT"==method)var new_state=1;if("DELETE"==method)var new_state=0;return function(dispatch,getState){request(dispatch,getState,"playlists/"+helpers.getFromUri("playlistid",uri)+"/followers",method).then(function(response){dispatch({type:"SPOTIFY_PLAYLIST_FOLLOWING_LOADED",key:uri,is_following:new_state})},function(error){dispatch(coreActions.handleException("Could not add/remove library playlist",error))})}}function addTracksToPlaylist(uri,tracks_uris){return function(dispatch,getState){request(dispatch,getState,"playlists/"+helpers.getFromUri("playlistid",uri)+"/tracks","POST",{uris:tracks_uris}).then(function(response){dispatch({type:"PLAYLIST_TRACKS_ADDED",key:uri,tracks_uris:tracks_uris,snapshot_id:response.snapshot_id})},function(error){dispatch(coreActions.handleException("Could not add tracks to playlist",error))})}}function deleteTracksFromPlaylist(uri,snapshot_id,tracks_indexes){return function(dispatch,getState){request(dispatch,getState,"playlists/"+helpers.getFromUri("playlistid",uri)+"/tracks","DELETE",{snapshot_id:snapshot_id,positions:tracks_indexes}).then(function(response){dispatch({type:"PLAYLIST_TRACKS_REMOVED",key:uri,tracks_indexes:tracks_indexes,snapshot_id:response.snapshot_id})},function(error){dispatch(coreActions.handleException("Could not remove tracks from playlist",error))})}}function reorderPlaylistTracks(uri,range_start,range_length,insert_before,snapshot_id){return function(dispatch,getState){request(dispatch,getState,"playlists/"+helpers.getFromUri("playlistid",uri)+"/tracks","PUT",{uri:uri,range_start:range_start,range_length:range_length,insert_before:insert_before,snapshot_id:snapshot_id}).then(function(response){dispatch({type:"PLAYLIST_TRACKS_REORDERED",key:uri,range_start:range_start,range_length:range_length,insert_before:insert_before,snapshot_id:response.snapshot_id})},function(error){dispatch(coreActions.handleException("Could not reorder playlist tracks",error))})}}function flushLibrary(){return{type:"SPOTIFY_FLUSH_LIBRARY"}}function getLibraryPlaylists(){return function(dispatch,getState){var last_run=getState().ui.processes.SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR;last_run?"cancelled"==last_run.status?dispatch(uiActions.resumeProcess("SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR")):"finished"!=last_run.status||getState().spotify.library_playlists_loaded_all||dispatch(uiActions.startProcess("SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR","Loading Spotify playlists",{next:"me/playlists?limit=50"})):dispatch(uiActions.startProcess("SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR","Loading Spotify playlists",{next:"me/playlists?limit=50"}))}}function getLibraryPlaylistsProcessor(data){return function(dispatch,getState){request(dispatch,getState,data.next).then(function(response){if(dispatch({type:"SPOTIFY_LIBRARY_PLAYLISTS_LOADED",playlists:response.items}),void 0!==getState().ui.processes.SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR){if("cancelling"==getState().ui.processes.SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR.status)return dispatch(uiActions.processCancelled("SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR")),!1}if(response.next){var total=response.total,loaded=getState().spotify.library_playlists.length,remaining=total-loaded;dispatch(uiActions.updateProcess("SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR","Loading "+remaining+" Spotify playlists",{next:response.next,total:response.total,remaining:remaining})),dispatch(uiActions.runProcess("SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR",{next:response.next}))}else dispatch(uiActions.processFinishing("SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR")),dispatch({type:"SPOTIFY_LIBRARY_PLAYLISTS_LOADED_ALL"})},function(error){dispatch(coreActions.handleException("Could not load library playlists",error))})}}function getLibraryArtists(){return function(dispatch,getState){var last_run=getState().ui.processes.SPOTIFY_GET_LIBRARY_ARTISTS_PROCESSOR;last_run?"cancelled"==last_run.status?dispatch(uiActions.resumeProcess("SPOTIFY_GET_LIBRARY_ARTISTS_PROCESSOR")):"finished"!=last_run.status||getState().spotify.library_artists_loaded_all||dispatch(uiActions.startProcess("SPOTIFY_GET_LIBRARY_ARTISTS_PROCESSOR","Loading Spotify artists",{next:"me/following?type=artist&limit=50"})):dispatch(uiActions.startProcess("SPOTIFY_GET_LIBRARY_ARTISTS_PROCESSOR","Loading Spotify artists",{next:"me/following?type=artist&limit=50"}))}}function getLibraryArtistsProcessor(data){return function(dispatch,getState){request(dispatch,getState,data.next).then(function(response){if(dispatch({type:"SPOTIFY_LIBRARY_ARTISTS_LOADED",artists:response.artists.items}),void 0!==getState().ui.processes.SPOTIFY_GET_LIBRARY_ARTISTS_PROCESSOR){if("cancelling"==getState().ui.processes.SPOTIFY_GET_LIBRARY_ARTISTS_PROCESSOR.status)return dispatch(uiActions.processCancelled("SPOTIFY_GET_LIBRARY_ARTISTS_PROCESSOR")),!1}if(response.artists.next){var total=response.artists.total,loaded=getState().spotify.library_artists.length,remaining=total-loaded;dispatch(uiActions.updateProcess("SPOTIFY_GET_LIBRARY_ARTISTS_PROCESSOR","Loading "+remaining+" Spotify artists",{next:response.artists.next,total:response.artists.total,remaining:remaining})),dispatch(uiActions.runProcess("SPOTIFY_GET_LIBRARY_ARTISTS_PROCESSOR",{next:response.artists.next}))}else dispatch(uiActions.processFinishing("SPOTIFY_GET_LIBRARY_ARTISTS_PROCESSOR"))},function(error){dispatch(coreActions.handleException("Could not load library artists",error))})}}function getLibraryAlbums(){return function(dispatch,getState){var last_run=getState().ui.processes.SPOTIFY_GET_LIBRARY_ALBUMS_PROCESSOR;last_run?"cancelled"==last_run.status?dispatch(uiActions.updateProcess("SPOTIFY_GET_LIBRARY_ALBUMS_PROCESSOR","Loading Spotify albums",{next:"me/albums?limit=50"})):"finished"!=last_run.status||getState().spotify.library_albums_loaded_all||dispatch(uiActions.startProcess("SPOTIFY_GET_LIBRARY_ALBUMS_PROCESSOR","Loading Spotify albums",{next:"me/albums?limit=50"})):dispatch(uiActions.startProcess("SPOTIFY_GET_LIBRARY_ALBUMS_PROCESSOR","Loading Spotify albums",{next:"me/albums?limit=50"}))}}function getLibraryAlbumsProcessor(data){return function(dispatch,getState){request(dispatch,getState,data.next).then(function(response){if(dispatch({type:"SPOTIFY_LIBRARY_ALBUMS_LOADED",albums:response.items}),void 0!==getState().ui.processes.SPOTIFY_GET_LIBRARY_ALBUMS_PROCESSOR){if("cancelling"==getState().ui.processes.SPOTIFY_GET_LIBRARY_ALBUMS_PROCESSOR.status)return dispatch(uiActions.processCancelled("SPOTIFY_GET_LIBRARY_ALBUMS_PROCESSOR")),!1}if(response.next){var total=response.total,loaded=getState().spotify.library_albums.length,remaining=total-loaded;dispatch(uiActions.updateProcess("SPOTIFY_GET_LIBRARY_ALBUMS_PROCESSOR","Loading "+remaining+" Spotify albums",{next:response.next,total:response.total,remaining:remaining})),dispatch(uiActions.runProcess("SPOTIFY_GET_LIBRARY_ALBUMS_PROCESSOR",{next:response.next}))}else dispatch(uiActions.processFinishing("SPOTIFY_GET_LIBRARY_ALBUMS_PROCESSOR"))},function(error){dispatch(coreActions.handleException("Could not load library albums",error))})}}Object.defineProperty(exports,"__esModule",{value:!0});var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};exports.set=set,exports.connect=connect,exports.authorizationGranted=authorizationGranted,exports.revokeAuthorization=revokeAuthorization,exports.refreshingToken=refreshingToken,exports.tokenChanged=tokenChanged,exports.importAuthorization=importAuthorization,exports.getMe=getMe,exports.getTrack=getTrack,exports.getLibraryTracks=getLibraryTracks,exports.getFeaturedPlaylists=getFeaturedPlaylists,exports.getCategories=getCategories,exports.getCategory=getCategory,exports.getCategoryPlaylists=getCategoryPlaylists,exports.getNewReleases=getNewReleases,exports.getURL=getURL,exports.getMore=getMore,exports.clearSearchResults=clearSearchResults,exports.getSearchResults=getSearchResults,exports.getAutocompleteResults=getAutocompleteResults,exports.clearAutocompleteResults=clearAutocompleteResults,exports.following=following,exports.resolveRadioSeeds=resolveRadioSeeds,exports.getFavorites=getFavorites,exports.getRecommendations=getRecommendations,exports.getGenres=getGenres,exports.getArtist=getArtist,exports.getArtists=getArtists,exports.playArtistTopTracks=playArtistTopTracks,exports.getUser=getUser,exports.getUserPlaylists=getUserPlaylists,exports.getAlbum=getAlbum,exports.toggleAlbumInLibrary=toggleAlbumInLibrary,exports.createPlaylist=createPlaylist,exports.savePlaylist=savePlaylist,exports.getPlaylist=getPlaylist,exports.getLibraryTracksAndPlay=getLibraryTracksAndPlay,exports.getLibraryTracksAndPlayProcessor=getLibraryTracksAndPlayProcessor,exports.getAllPlaylistTracks=getAllPlaylistTracks,exports.getAllPlaylistTracksProcessor=getAllPlaylistTracksProcessor,exports.toggleFollowingPlaylist=toggleFollowingPlaylist,exports.addTracksToPlaylist=addTracksToPlaylist,exports.deleteTracksFromPlaylist=deleteTracksFromPlaylist,exports.reorderPlaylistTracks=reorderPlaylistTracks,exports.flushLibrary=flushLibrary,exports.getLibraryPlaylists=getLibraryPlaylists,exports.getLibraryPlaylistsProcessor=getLibraryPlaylistsProcessor,exports.getLibraryArtists=getLibraryArtists,exports.getLibraryArtistsProcessor=getLibraryArtistsProcessor,exports.getLibraryAlbums=getLibraryAlbums,exports.getLibraryAlbumsProcessor=getLibraryAlbumsProcessor;var coreActions=__webpack_require__(9),uiActions=__webpack_require__(2),mopidyActions=__webpack_require__(6),lastfmActions=__webpack_require__(16),helpers=__webpack_require__(1),request=function(dispatch,getState,endpoint){var method=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"GET",data=arguments.length>4&&void 0!==arguments[4]&&arguments[4],loader_key=helpers.generateGuid();return dispatch(uiActions.startLoading(loader_key,"spotify_"+endpoint)),new Promise(function(resolve,reject){getToken(dispatch,getState).then(function(response){var url="https://api.spotify.com/v1/"+endpoint;endpoint.startsWith("https://api.spotify.com/")&&(url=endpoint);var config={method:method,url:url,cached:!0,timeout:3e4,headers:{Authorization:"Bearer "+response,Accept:"application/json"}};data&&(config.data="string"==typeof data?data:JSON.stringify(data)),$.ajax(config).then(function(response){dispatch(uiActions.stopLoading(loader_key)),resolve(response)},function(xhr,status,error){dispatch(uiActions.stopLoading(loader_key)),429==xhr.status&&alert("You hit the Spotify API rate limiter"),xhr.responseJSON&&xhr.responseJSON.error&&"The access token expired"==xhr.responseJSON.error.message&&dispatch(refreshToken(dispatch,getState)),reject({config:config,xhr:xhr,status:status,error:error})})},function(error){dispatch(coreActions.handleException(error.error)),reject(error)})})}}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";(function($){function getBroadcasts(){return function(dispatch,getState){var config={method:"GET",timeout:15e3};getState().ui.test_mode?config.url="https://gist.githubusercontent.com/jaedb/cb3a5ee6909632abb2e0fe66d4c8c311/raw":config.url="https://gist.githubusercontent.com/jaedb/b677dccf80daf3ccb2ef12e96e495677/raw",$.ajax(config).then(function(response){dispatch({type:"BROADCASTS_LOADED",broadcasts:JSON.parse(response)})},function(xhr,status,error){dispatch(handleException("Could not fetch broadcasts from GitHub",{config:config,xhr:xhr,status:status,error:error},null,!1))})}}function startSearch(search_type,query){return{type:"SEARCH_STARTED",search_type:search_type,query:query,only_mopidy:arguments.length>2&&void 0!==arguments[2]&&arguments[2]}}function handleException(message){var data=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{type:"HANDLE_EXCEPTION",message:message,description:arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,data:data,show_notification:!(arguments.length>3&&void 0!==arguments[3])||arguments[3]}}function debugResponse(response){return{type:"DEBUG",response:response}}function set(data){return{type:"CORE_SET",data:data}}function clearCurrentTrack(){return{type:"CLEAR_CURRENT_TRACK"}}function cachebustHttpStream(){return{type:"CACHEBUST_HTTP_STREAM"}}function loadTrack(uri){return{type:"LOAD_TRACK",uri:uri,force_reload:arguments.length>1&&void 0!==arguments[1]&&arguments[1]}}function loadAlbum(uri){return{type:"LOAD_ALBUM",uri:uri,force_reload:arguments.length>1&&void 0!==arguments[1]&&arguments[1]}}function loadArtist(uri){return{type:"LOAD_ARTIST",uri:uri,force_reload:arguments.length>1&&void 0!==arguments[1]&&arguments[1]}}function loadPlaylist(uri){return{type:"LOAD_PLAYLIST",uri:uri,force_reload:arguments.length>1&&void 0!==arguments[1]&&arguments[1]}}function loadUser(uri){return{type:"LOAD_USER",uri:uri,force_reload:arguments.length>1&&void 0!==arguments[1]&&arguments[1]}}function loadUserPlaylists(uri){return{type:"LOAD_USER_PLAYLISTS",uri:uri,force_reload:arguments.length>1&&void 0!==arguments[1]&&arguments[1]}}function trackLoaded(track){return tracksLoaded([track])}function tracksLoaded(tracks){return{type:"TRACKS_LOADED",tracks:tracks}}function artistLoaded(artist){return artistsLoaded([artist])}function artistsLoaded(artists){return{type:"ARTISTS_LOADED",artists:artists}}function albumLoaded(album){return albumsLoaded([album])}function albumsLoaded(albums){return{type:"ALBUMS_LOADED",albums:albums}}function playlistLoaded(playlist){return playlistsLoaded([playlist])}function playlistsLoaded(playlists){return{type:"PLAYLISTS_LOADED",playlists:playlists}}function userLoaded(user){return usersLoaded([user])}function usersLoaded(users){return{type:"USERS_LOADED",users:users}}function userPlaylistsLoaded(uri,playlists){return{type:"USER_PLAYLISTS_LOADED",uri:uri,playlists:playlists,more:arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,total:arguments.length>3&&void 0!==arguments[3]?arguments[3]:null}}function loadedMore(parent_type,parent_key,records_type,records_data){return{type:"LOADED_MORE",parent_type:parent_type,parent_key:parent_key,records_type:records_type,records_data:records_data}}function removeFromIndex(index_name,key){return{type:"REMOVE_FROM_INDEX",index_name:index_name,key:key,new_key:arguments.length>2&&void 0!==arguments[2]?arguments[2]:null}}function reorderPlaylistTracks(uri,indexes,insert_before){var snapshot_id=arguments.length>3&&void 0!==arguments[3]&&arguments[3],range=helpers.createRange(indexes);switch(helpers.uriSource(uri)){case"spotify":return{type:"SPOTIFY_REORDER_PLAYLIST_TRACKS",key:uri,range_start:range.start,range_length:range.length,insert_before:insert_before,snapshot_id:snapshot_id};case"m3u":return{type:"MOPIDY_REORDER_PLAYLIST_TRACKS",key:uri,range_start:range.start,range_length:range.length,insert_before:insert_before}}}function savePlaylist(uri,name){var description=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",is_public=arguments.length>3&&void 0!==arguments[3]&&arguments[3],is_collaborative=arguments.length>4&&void 0!==arguments[4]&&arguments[4],image=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null;switch(helpers.uriSource(uri)){case"spotify":return{type:"SPOTIFY_SAVE_PLAYLIST",key:uri,name:name,description:""==description?null:description,image:image,is_public:is_public,is_collaborative:is_collaborative};case"m3u":return{type:"MOPIDY_SAVE_PLAYLIST",key:uri,name:name}}return!1}function createPlaylist(scheme,name){var description=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",is_public=arguments.length>3&&void 0!==arguments[3]&&arguments[3],is_collaborative=arguments.length>4&&void 0!==arguments[4]&&arguments[4];switch(scheme){case"spotify":return""==description&&(description=null),spotifyActions.createPlaylist(name,description,is_public,is_collaborative);default:return mopidyActions.createPlaylist(name,scheme)}return!1}function deletePlaylist(uri){switch(helpers.uriSource(uri)){case"spotify":return spotifyActions.following(uri,"DELETE");default:return mopidyActions.deletePlaylist(uri)}return!1}function removeTracksFromPlaylist(uri,tracks_indexes){switch(helpers.uriSource(uri)){case"spotify":return{type:"SPOTIFY_REMOVE_PLAYLIST_TRACKS",key:uri,tracks_indexes:tracks_indexes};case"m3u":return{type:"MOPIDY_REMOVE_PLAYLIST_TRACKS",key:uri,tracks_indexes:tracks_indexes}}}function addTracksToPlaylist(uri,tracks_uris){switch(helpers.uriSource(uri)){case"spotify":return{type:"SPOTIFY_ADD_PLAYLIST_TRACKS",key:uri,tracks_uris:tracks_uris};case"m3u":return{type:"MOPIDY_ADD_PLAYLIST_TRACKS",key:uri,tracks_uris:tracks_uris}}}function getLibraryPlaylists(){return{type:"GET_LIBRARY_PLAYLISTS"}}function getLibraryAlbums(){return{type:"GET_LIBRARY_ALBUMS"}}function getLibraryArtists(){return{type:"GET_LIBRARY_ARTISTS"}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBroadcasts=getBroadcasts,exports.startSearch=startSearch,exports.handleException=handleException,exports.debugResponse=debugResponse,exports.set=set,exports.clearCurrentTrack=clearCurrentTrack,exports.cachebustHttpStream=cachebustHttpStream,exports.loadTrack=loadTrack,exports.loadAlbum=loadAlbum,exports.loadArtist=loadArtist,exports.loadPlaylist=loadPlaylist,exports.loadUser=loadUser,exports.loadUserPlaylists=loadUserPlaylists,exports.trackLoaded=trackLoaded,exports.tracksLoaded=tracksLoaded,exports.artistLoaded=artistLoaded,exports.artistsLoaded=artistsLoaded,exports.albumLoaded=albumLoaded,exports.albumsLoaded=albumsLoaded,exports.playlistLoaded=playlistLoaded,exports.playlistsLoaded=playlistsLoaded,exports.userLoaded=userLoaded,exports.usersLoaded=usersLoaded,exports.userPlaylistsLoaded=userPlaylistsLoaded,exports.loadedMore=loadedMore,exports.removeFromIndex=removeFromIndex,exports.reorderPlaylistTracks=reorderPlaylistTracks,exports.savePlaylist=savePlaylist,exports.createPlaylist=createPlaylist,exports.deletePlaylist=deletePlaylist,exports.removeTracksFromPlaylist=removeTracksFromPlaylist,exports.addTracksToPlaylist=addTracksToPlaylist,exports.getLibraryPlaylists=getLibraryPlaylists,exports.getLibraryAlbums=getLibraryAlbums,exports.getLibraryArtists=getLibraryArtists;var _helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers),spotifyActions=__webpack_require__(8),mopidyActions=__webpack_require__(6)}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Link=__webpack_require__(7),_Link2=_interopRequireDefault(_Link),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon);exports.default=(0,_react.memo)(function(props){var image=function(){if(props.image)return props.image;if(props.images){var images=props.images;Array.isArray(images)&&images.length>0&&(images=images[0]);var size="medium";if(props.size&&(size=props.size),images[size])return images[size]}return null}(),class_name="thumbnail thumbnail--loaded";props.size&&(class_name+=" thumbnail--"+props.size),props.circle&&(class_name+=" thumbnail--circle"),props.className&&(class_name+=" "+props.className);var zoom_icon=null;return props.canZoom&&image&&(zoom_icon=_react2.default.createElement(_Link2.default,{className:"thumbnail__zoom",to:"/image-zoom?url="+image},_react2.default.createElement(_Icon2.default,{name:"search"}))),_react2.default.createElement("div",{className:class_name},_react2.default.createElement("div",{className:"thumbnail__image",style:{backgroundImage:'url("'+(image||"/iris/assets/no-image.svg")+'")'}}),zoom_icon)})},function(module,exports,__webpack_require__){module.exports=__webpack_require__(97)()},function(module,exports,__webpack_require__){"use strict";function setPort(port){return{type:"PUSHER_SET_PORT",port:port}}function setUsername(username){var force=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:"PUSHER_SET_USERNAME",username:username.replace(/[\W_]+/g,""),force:force}}function connect(){return{type:"PUSHER_CONNECT"}}function disconnect(){return{type:"PUSHER_DISCONNECT"}}function upgrade(){return{type:"PUSHER_UPGRADE"}}function reload(){return{type:"PUSHER_RELOAD"}}function restart(){return{type:"PUSHER_RESTART"}}function localScan(){return{type:"PUSHER_LOCAL_SCAN"}}function getConnections(){return{type:"PUSHER_GET_CONNECTIONS"}}function connectionAdded(connection){return{type:"PUSHER_CONNECTION_ADDED",connection:connection}}function connectionChanged(connection){return{type:"PUSHER_CONNECTION_CHANGED",connection:connection}}function connectionRemoved(connection){return{type:"PUSHER_CONNECTION_REMOVED",connection:connection}}function request(method){return{type:"PUSHER_REQUEST",method:method,params:arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,response_callback:arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,error_callback:arguments.length>3&&void 0!==arguments[3]?arguments[3]:null}}function getConfig(){return{type:"PUSHER_GET_CONFIG"}}function getVersion(){return{type:"PUSHER_GET_VERSION"}}function deliverBroadcast(method,params){return{type:"PUSHER_DELIVER_BROADCAST",data:{method:method,params:params}}}function deliverMessage(recipient,method,params){return{type:"PUSHER_DELIVER_MESSAGE",data:{recipient:recipient,method:method,params:params}}}function getRadio(){return{type:"PUSHER_GET_RADIO"}}function startRadio(uris){return{type:"PUSHER_START_RADIO",uris:uris}}function updateRadio(uris){return{type:"PUSHER_UPDATE_RADIO",uris:uris}}function stopRadio(){return{type:"PUSHER_STOP_RADIO"}}function radioStarted(radio){return{type:"PUSHER_RADIO_STARTED",radio:radio}}function radioChanged(radio){return{type:"PUSHER_RADIO_CHANGED",radio:radio}}function radioStopped(){return{type:"PUSHER_RADIO_STOPPED"}}function debug(){return{type:"PUSHER_DEBUG",message:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}function getQueueMetadata(){return{type:"PUSHER_GET_QUEUE_METADATA"}}function queueMetadataChanged(queue_metadata){return{type:"PUSHER_QUEUE_METADATA_CHANGED",queue_metadata:queue_metadata}}function addQueueMetadata(){return{type:"PUSHER_ADD_QUEUE_METADATA",tlids:arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],from_uri:arguments.length>1&&void 0!==arguments[1]?arguments[1]:null}}function getCommands(){return{type:"PUSHER_GET_COMMANDS"}}function setCommand(command){return{type:"PUSHER_SET_COMMAND",command:command}}function removeCommand(id){return{type:"PUSHER_REMOVE_COMMAND",id:id}}function sendCommand(id){return{type:"PUSHER_SEND_COMMAND",id:id,notify:arguments.length>1&&void 0!==arguments[1]&&arguments[1]}}function commandsUpdated(commands){return{type:"PUSHER_COMMANDS_UPDATED",commands:commands}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.setPort=setPort,exports.setUsername=setUsername,exports.connect=connect,exports.disconnect=disconnect,exports.upgrade=upgrade,exports.reload=reload,exports.restart=restart,exports.localScan=localScan,exports.getConnections=getConnections,exports.connectionAdded=connectionAdded,exports.connectionChanged=connectionChanged,exports.connectionRemoved=connectionRemoved,exports.request=request,exports.getConfig=getConfig,exports.getVersion=getVersion,exports.deliverBroadcast=deliverBroadcast,exports.deliverMessage=deliverMessage,exports.getRadio=getRadio,exports.startRadio=startRadio,exports.updateRadio=updateRadio,exports.stopRadio=stopRadio,exports.radioStarted=radioStarted,exports.radioChanged=radioChanged,exports.radioStopped=radioStopped,exports.debug=debug,exports.getQueueMetadata=getQueueMetadata,exports.queueMetadataChanged=queueMetadataChanged,exports.addQueueMetadata=addQueueMetadata,exports.getCommands=getCommands,exports.setCommand=setCommand,exports.removeCommand=removeCommand,exports.sendCommand=sendCommand,exports.commandsUpdated=commandsUpdated},function(module,__webpack_exports__,__webpack_require__){"use strict";function _objectWithoutProperties(source,excluded){if(null==source)return{};var key,i,target=_objectWithoutPropertiesLoose(source,excluded);if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++)key=sourceSymbolKeys[i],excluded.indexOf(key)>=0||Object.prototype.propertyIsEnumerable.call(source,key)&&(target[key]=source[key])}return target}function _objectWithoutPropertiesLoose(source,excluded){if(null==source)return{};var key,i,target={},sourceKeys=Object.keys(source);for(i=0;i<sourceKeys.length;i++)key=sourceKeys[i],excluded.indexOf(key)>=0||(target[key]=source[key]);return target}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{},ownKeys=Object.keys(source);"function"==typeof Object.getOwnPropertySymbols&&(ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))),ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _typeof(obj){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj})(obj)}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function _iterableToArray(iter){if(Symbol.iterator in Object(iter)||"[object Arguments]"===Object.prototype.toString.call(iter))return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr)){for(var i=0,arr2=new Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}}function _format(s){return Object(__WEBPACK_IMPORTED_MODULE_0__utils_format__.a)(s,_titleCase)}function _gaCommand(trackerNames){for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var command=args[0];if("function"==typeof internalGa){if("string"!=typeof command)return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("ga command must be a string");!_alwaysSendToDefaultTracker&&Array.isArray(trackerNames)||internalGa.apply(void 0,args),Array.isArray(trackerNames)&&trackerNames.forEach(function(name){internalGa.apply(void 0,_toConsumableArray(["".concat(name,".").concat(command)].concat(args.slice(1))))})}}function _initialize(gaTrackingID,options){if(!gaTrackingID)return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("gaTrackingID is required in initialize()");options&&(options.debug&&!0===options.debug&&(_debug=!0),!1===options.titleCase&&(_titleCase=!1)),options&&options.gaOptions?internalGa("create",gaTrackingID,options.gaOptions):internalGa("create",gaTrackingID,"auto")}function initialize(configsOrTrackingId,options){if(options&&!0===options.testMode)_testMode=!0;else{if("undefined"==typeof window)return!1;options&&!0===options.standardImplementation||Object(__WEBPACK_IMPORTED_MODULE_3__utils_loadGA__.a)(options)}return _alwaysSendToDefaultTracker=!options||"boolean"!=typeof options.alwaysSendToDefaultTracker||options.alwaysSendToDefaultTracker,Array.isArray(configsOrTrackingId)?configsOrTrackingId.forEach(function(config){if("object"!==_typeof(config))return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("All configs must be an object");_initialize(config.trackingId,config)}):_initialize(configsOrTrackingId,options),!0}function ga(){for(var _len2=arguments.length,args=new Array(_len2),_key2=0;_key2<_len2;_key2++)args[_key2]=arguments[_key2];return args.length>0&&(internalGa.apply(void 0,args),_debug&&(Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("called ga('arguments');"),Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("with arguments: ".concat(JSON.stringify(args))))),window.ga}function set(fieldsObject,trackerNames){return fieldsObject?"object"!==_typeof(fieldsObject)?void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("Expected `fieldsObject` arg to be an Object"):(0===Object.keys(fieldsObject).length&&Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("empty `fieldsObject` given to .set()"),_gaCommand(trackerNames,"set",fieldsObject),void(_debug&&(Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("called ga('set', fieldsObject);"),Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("with fieldsObject: ".concat(JSON.stringify(fieldsObject)))))):void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("`fieldsObject` is required in .set()")}function send(fieldObject,trackerNames){_gaCommand(trackerNames,"send",fieldObject),_debug&&(Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("called ga('send', fieldObject);"),Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("with fieldObject: ".concat(JSON.stringify(fieldObject))),Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("with trackers: ".concat(JSON.stringify(trackerNames))))}function pageview(rawPath,trackerNames,title){if(!rawPath)return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("path is required in .pageview()");var path=Object(__WEBPACK_IMPORTED_MODULE_2__utils_trim__.a)(rawPath);if(""===path)return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("path cannot be an empty string in .pageview()");var extraFields={};if(title&&(extraFields.title=title),"function"==typeof ga&&(_gaCommand(trackerNames,"send",_objectSpread({hitType:"pageview",page:path},extraFields)),_debug)){Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("called ga('send', 'pageview', path);");var extraLog="";title&&(extraLog=" and title: ".concat(title)),Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("with path: ".concat(path).concat(extraLog))}}function modalview(rawModalName,trackerNames){if(!rawModalName)return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("modalName is required in .modalview(modalName)");var modalName=Object(__WEBPACK_IMPORTED_MODULE_1__utils_removeLeadingSlash__.a)(Object(__WEBPACK_IMPORTED_MODULE_2__utils_trim__.a)(rawModalName));if(""===modalName)return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("modalName cannot be an empty string or a single / in .modalview()");if("function"==typeof ga){var path="/modal/".concat(modalName);_gaCommand(trackerNames,"send","pageview",path),_debug&&(Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("called ga('send', 'pageview', path);"),Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("with path: ".concat(path)))}}function timing(){var _ref=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},category=_ref.category,variable=_ref.variable,value=_ref.value,label=_ref.label,trackerNames=arguments.length>1?arguments[1]:void 0;if("function"==typeof ga){if(!category||!variable||!value||"number"!=typeof value)return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("args.category, args.variable AND args.value are required in timing() AND args.value has to be a number");var fieldObject={hitType:"timing",timingCategory:_format(category),timingVar:_format(variable),timingValue:value};label&&(fieldObject.timingLabel=_format(label)),send(fieldObject,trackerNames)}}function event(){var _ref2=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},category=_ref2.category,action=_ref2.action,label=_ref2.label,value=_ref2.value,nonInteraction=_ref2.nonInteraction,transport=_ref2.transport,args=_objectWithoutProperties(_ref2,["category","action","label","value","nonInteraction","transport"]),trackerNames=arguments.length>1?arguments[1]:void 0;if("function"==typeof ga){if(!category||!action)return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("args.category AND args.action are required in event()");var fieldObject={hitType:"event",eventCategory:_format(category),eventAction:_format(action)};label&&(fieldObject.eventLabel=_format(label)),void 0!==value&&("number"!=typeof value?Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("Expected `args.value` arg to be a Number."):fieldObject.eventValue=value),void 0!==nonInteraction&&("boolean"!=typeof nonInteraction?Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("`args.nonInteraction` must be a boolean."):fieldObject.nonInteraction=nonInteraction),void 0!==transport&&("string"!=typeof transport?Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("`args.transport` must be a string."):(-1===["beacon","xhr","image"].indexOf(transport)&&Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("`args.transport` must be either one of these values: `beacon`, `xhr` or `image`"),fieldObject.transport=transport)),Object.keys(args).filter(function(key){return"dimension"===key.substr(0,"dimension".length)}).forEach(function(key){fieldObject[key]=args[key]}),Object.keys(args).filter(function(key){return"metric"===key.substr(0,"metric".length)}).forEach(function(key){fieldObject[key]=args[key]}),send(fieldObject,trackerNames)}}function exception(_ref3,trackerNames){var description=_ref3.description,fatal=_ref3.fatal;if("function"==typeof ga){var fieldObject={hitType:"exception"};description&&(fieldObject.exDescription=_format(description)),void 0!==fatal&&("boolean"!=typeof fatal?Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("`args.fatal` must be a boolean."):fieldObject.exFatal=fatal),send(fieldObject,trackerNames)}}function outboundLink(args,hitCallback,trackerNames){if("function"!=typeof hitCallback)return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("hitCallback function is required");if("function"==typeof ga){if(!args||!args.label)return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("args.label is required in outboundLink()");var fieldObject={hitType:"event",eventCategory:"Outbound",eventAction:"Click",eventLabel:_format(args.label)},safetyCallbackCalled=!1,safetyCallback=function(){safetyCallbackCalled=!0,hitCallback()},t=setTimeout(safetyCallback,250),clearableCallbackForGA=function(){clearTimeout(t),safetyCallbackCalled||hitCallback()};fieldObject.hitCallback=clearableCallbackForGA,send(fieldObject,trackerNames)}else setTimeout(hitCallback,0)}Object.defineProperty(__webpack_exports__,"__esModule",{value:!0}),__webpack_exports__.initialize=initialize,__webpack_exports__.ga=ga,__webpack_exports__.set=set,__webpack_exports__.send=send,__webpack_exports__.pageview=pageview,__webpack_exports__.modalview=modalview,__webpack_exports__.timing=timing,__webpack_exports__.event=event,__webpack_exports__.exception=exception,__webpack_require__.d(__webpack_exports__,"plugin",function(){return plugin}),__webpack_exports__.outboundLink=outboundLink,__webpack_require__.d(__webpack_exports__,"OutboundLink",function(){return OutboundLink}),__webpack_require__.d(__webpack_exports__,"testModeAPI",function(){return testModeAPI});var __WEBPACK_IMPORTED_MODULE_0__utils_format__=__webpack_require__(142),__WEBPACK_IMPORTED_MODULE_1__utils_removeLeadingSlash__=__webpack_require__(145),__WEBPACK_IMPORTED_MODULE_2__utils_trim__=__webpack_require__(79),__WEBPACK_IMPORTED_MODULE_3__utils_loadGA__=__webpack_require__(146),__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__=__webpack_require__(52),__WEBPACK_IMPORTED_MODULE_5__utils_console_log__=__webpack_require__(147),__WEBPACK_IMPORTED_MODULE_6__utils_testModeAPI__=__webpack_require__(148),__WEBPACK_IMPORTED_MODULE_7__components_OutboundLink__=__webpack_require__(149),_debug=!1,_titleCase=!0,_testMode=!1,_alwaysSendToDefaultTracker=!0,internalGa=function(){var _window;return _testMode?__WEBPACK_IMPORTED_MODULE_6__utils_testModeAPI__.a.ga.apply(__WEBPACK_IMPORTED_MODULE_6__utils_testModeAPI__.a,arguments):"undefined"!=typeof window&&(window.ga?(_window=window).ga.apply(_window,arguments):Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually"))},plugin={require:function(rawName,options){if("function"==typeof ga){if(!rawName)return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("`name` is required in .require()");var name=Object(__WEBPACK_IMPORTED_MODULE_2__utils_trim__.a)(rawName);if(""===name)return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("`name` cannot be an empty string in .require()");if(options){if("object"!==_typeof(options))return void Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("Expected `options` arg to be an Object");0===Object.keys(options).length&&Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("Empty `options` given to .require()"),ga("require",name,options),_debug&&Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("called ga('require', '".concat(name,"', ").concat(JSON.stringify(options)))}else ga("require",name),_debug&&Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("called ga('require', '".concat(name,"');"))}},execute:function(pluginName,action){var payload,actionType;if(1==(arguments.length<=2?0:arguments.length-2)?payload=arguments.length<=2?void 0:arguments[2]:(actionType=arguments.length<=2?void 0:arguments[2],payload=arguments.length<=3?void 0:arguments[3]),"function"==typeof ga)if("string"!=typeof pluginName)Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("Expected `pluginName` arg to be a String.");else if("string"!=typeof action)Object(__WEBPACK_IMPORTED_MODULE_4__utils_console_warn__.a)("Expected `action` arg to be a String.");else{var command="".concat(pluginName,":").concat(action);payload=payload||null,actionType&&payload?(ga(command,actionType,payload),_debug&&(Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("called ga('".concat(command,"');")),Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)('actionType: "'.concat(actionType,'" with payload: ').concat(JSON.stringify(payload))))):payload?(ga(command,payload),_debug&&(Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("called ga('".concat(command,"');")),Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("with payload: ".concat(JSON.stringify(payload))))):(ga(command),_debug&&Object(__WEBPACK_IMPORTED_MODULE_5__utils_console_log__.a)("called ga('".concat(command,"');")))}}};__WEBPACK_IMPORTED_MODULE_7__components_OutboundLink__.a.origTrackLink=__WEBPACK_IMPORTED_MODULE_7__components_OutboundLink__.a.trackLink,__WEBPACK_IMPORTED_MODULE_7__components_OutboundLink__.a.trackLink=outboundLink;var OutboundLink=__WEBPACK_IMPORTED_MODULE_7__components_OutboundLink__.a,testModeAPI=__WEBPACK_IMPORTED_MODULE_6__utils_testModeAPI__.a;__webpack_exports__.default={initialize:initialize,ga:ga,set:set,send:send,pageview:pageview,modalview:modalview,timing:timing,event:event,exception:exception,plugin:plugin,outboundLink:outboundLink,OutboundLink:OutboundLink,testModeAPI:__WEBPACK_IMPORTED_MODULE_6__utils_testModeAPI__.a}},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Icon=__webpack_require__(5),_ContextMenuTrigger=(_interopRequireDefault(_Icon),__webpack_require__(22)),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),Header=function(_React$Component){function Header(props){_classCallCheck(this,Header);var _this=_possibleConstructorReturn(this,(Header.__proto__||Object.getPrototypeOf(Header)).call(this,props));return _this.state={expanded:!1},_this}return _inherits(Header,_React$Component),_createClass(Header,[{key:"handleContextMenuTrigger",value:function(e,options){if(this.props.handleContextMenuTrigger)return this.props.handleContextMenuTrigger(e);e.preventDefault();var data={e:e,context:"custom",title:this.props.title,options:options};this.props.uiActions.showContextMenu(data)}},{key:"renderContextMenuTrigger",value:function(){var _this2=this;return this.props.handleContextMenuTrigger||this.props.options?_react2.default.createElement(_ContextMenuTrigger2.default,{onTrigger:function(e){return _this2.handleContextMenuTrigger(e,_this2.props.options)}}):null}},{key:"renderOptions",value:function(){return this.props.options||this.props.handleContextMenuTrigger?_react2.default.createElement("div",{className:"options"},this.renderContextMenuTrigger(),_react2.default.createElement("span",{className:"items"},_react2.default.createElement("span",{className:"liner"},this.props.options?this.props.options:null))):null}},{key:"render",value:function(){return _react2.default.createElement("header",{className:this.props.className?this.props.className:null},_react2.default.createElement("h1",null,this.props.children?this.props.children:null),this.renderOptions())}}]),Header}(_react2.default.Component);exports.default=Header},function(module,exports){module.exports=function(){throw new Error("define cannot be used indirect")}},function(module,exports,__webpack_require__){"use strict";(function($){function set(data){return{type:"LASTFM_SET",data:data}}function authorizationGranted(data){return data.session.expiry=(new Date).getTime()+3600,{type:"LASTFM_AUTHORIZATION_GRANTED",data:data}}function revokeAuthorization(){return{type:"LASTFM_AUTHORIZATION_REVOKED"}}function importAuthorization(authorization){return{type:"LASTFM_IMPORT_AUTHORIZATION",authorization:authorization}}function getMe(){return function(dispatch,getState){var params="method=user.getInfo&user="+getState().lastfm.authorization.name;sendRequest(dispatch,getState,params).then(function(response){response.user&&dispatch({type:"LASTFM_ME_LOADED",me:response.user})})}}function getTrack(uri){return function(dispatch,getState){if(void 0===getState().core.tracks[uri])return void dispatch(coreActions.handleException("Could not get LastFM track",{},"Could not find track in index"));var track=getState().core.tracks[uri];if(!track.artists)return void dispatch(coreActions.handleException("Could not get LastFM track",{},"Track has no artists"));var track_name=track.name,artist_name=encodeURIComponent(track.artists[0].name),params="method=track.getInfo&track="+track_name+"&artist="+artist_name;getState().lastfm.authorization&&(params+="&username="+getState().lastfm.authorization.name),sendRequest(dispatch,getState,params).then(function(response){if(response.track){var merged_track=Object.assign({},{uri:track.uri},response.track,track);dispatch(coreActions.trackLoaded(merged_track))}})}}function getArtist(uri,artist){var mbid=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(dispatch,getState){if(mbid)var params="method=artist.getInfo&mbid="+mbid;else{artist=artist.replace("&","and"),artist=encodeURIComponent(artist);var params="method=artist.getInfo&artist="+artist}sendRequest(dispatch,getState,params).then(function(response){if(response.artist){var artist={uri:uri,images:response.artist.image,mbid:response.artist.mbid,biography:response.artist.bio.content,biography_publish_date:response.artist.bio.published,biography_link:response.artist.bio.links.link.href,listeners:parseInt(response.artist.stats.listeners)};dispatch(coreActions.artistLoaded(artist))}})}}function getAlbum(uri,artist,album){var mbid=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function(dispatch,getState){if(mbid)var params="method=album.getInfo&mbid="+mbid;else{artist=encodeURIComponent(artist),album=encodeURIComponent(album);var params="method=album.getInfo&album="+album+"&artist="+artist}sendRequest(dispatch,getState,params).then(function(response){if(response.album){var existing_album=getState().core.albums[uri],album={uri:uri,images:response.album.image,listeners:parseInt(response.album.listeners),play_count:parseInt(response.album.playcount),mbid:response.album.mbid,wiki:response.album.wiki?response.album.wiki.content:null,wiki_publish_date:response.album.wiki?response.album.wiki.published:null};existing_album&&existing_album.images&&delete album.images,dispatch(coreActions.albumLoaded(album))}})}}function getImages(context,uri){return function(dispatch,getState){var record=getState().core[context][uri];if(record)switch(context){case"tracks":if(record.mbid)var params="method=album.getInfo&mbid="+record.mbid;else if(record.artists&&record.artists.length>0&&record.album)var artist=encodeURIComponent(record.artists[0].name),album=encodeURIComponent(record.album.name),params="method=album.getInfo&album="+album+"&artist="+artist;params&&sendRequest(dispatch,getState,params).then(function(response){if(response.album){var images=helpers.formatImages(response.album.image);dispatch(coreActions.trackLoaded({uri:uri,images:images}))}});break;case"albums":if(record.mbid)var params="method=album.getInfo&mbid="+record.mbid;else if(record.artists&&record.artists.length>0)var artist=encodeURIComponent(record.artists[0].name),album=encodeURIComponent(record.name),params="method=album.getInfo&album="+album+"&artist="+artist;params&&sendRequest(dispatch,getState,params).then(function(response){response.album&&(record=Object.assign({},record,{images:response.album.image}),dispatch(coreActions.albumLoaded(record)))})}}}function loveTrack(uri){return function(dispatch,getState){if(void 0===getState().core.tracks[uri])return void dispatch(coreActions.handleException("Could not love LastFM track",track,"Could not find track in index"));var track=getState().core.tracks[uri];if(!track.artists)return void dispatch(coreActions.handleException("Could not love LastFM track",track,"Track has no artists"));var artist=encodeURIComponent(track.artists[0].name),params="method=track.love&track="+track.name+"&artist="+artist;sendSignedRequest(dispatch,getState,params).then(function(response){track=Object.assign({},track,{userloved:!0}),dispatch({type:"TRACKS_LOADED",tracks:[track]})})}}function unloveTrack(uri){return function(dispatch,getState){if(void 0===getState().core.tracks[uri])return void dispatch(coreActions.handleException("Could not unlove LastFM track",track,"Could not find track in index"));var track=getState().core.tracks[uri];if(!track.artists)return void dispatch(coreActions.handleException("Could not unlove LastFM track",track,"Track has no artists"));var artist=encodeURIComponent(track.artists[0].name),params="method=track.unlove&track="+track.name+"&artist="+artist;sendSignedRequest(dispatch,getState,params).then(function(response){track=Object.assign({},track,{userloved:!1}),dispatch({type:"TRACKS_LOADED",tracks:[track]})})}}function scrobble(track){return function(dispatch,getState){var track_name=track.name,artist_name="Unknown";track.artists&&(artist_name=track.artists[0].name);var artist_name=encodeURIComponent(artist_name),params="method=track.scrobble";params+="&track="+track_name+"&artist="+artist_name,params+="&timestamp="+Math.floor(Date.now()/1e3),sendSignedRequest(dispatch,getState,params).then(function(response){},function(error){dispatch(coreActions.handleException("Could not scrobble LastFM track",error,error.description?error.description:null))})}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.set=set,exports.authorizationGranted=authorizationGranted,exports.revokeAuthorization=revokeAuthorization,exports.importAuthorization=importAuthorization,exports.getMe=getMe,exports.getTrack=getTrack,exports.getArtist=getArtist,exports.getAlbum=getAlbum,exports.getImages=getImages,exports.loveTrack=loveTrack,exports.unloveTrack=unloveTrack,exports.scrobble=scrobble;var coreActions=__webpack_require__(9),uiActions=__webpack_require__(2),helpers=__webpack_require__(1),sendRequest=function(dispatch,getState,params){var signed=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return new Promise(function(resolve,reject){var loader_key=helpers.generateGuid(),method=params.substring(params.indexOf("method=")+7,params.length);method=method.substring(0,method.indexOf("&")),dispatch(uiActions.startLoading(loader_key,"lastfm_"+method));var config={method:"GET",cache:!0,timeout:3e4,url:"https://ws.audioscrobbler.com/2.0/?format=json&"+params};signed?config.method="POST":config.url+="&api_key=4320a3ef51c9b3d69de552ac083c55e3",$.ajax(config).then(function(response){dispatch(uiActions.stopLoading(loader_key)),response.error?reject({config:config,error:response}):resolve(response)},function(xhr,status,error){dispatch(uiActions.stopLoading(loader_key));var description=null;xhr&&xhr.responseJSON&&xhr.responseJSON.message&&(description=xhr.responseJSON.message),reject({config:config,error:error,description:description,status:status,xhr:xhr})})})},sendSignedRequest=function(dispatch,getState,params){return new Promise(function(resolve,reject){getState().lastfm.authorization||reject({params:params,error:"No active LastFM authorization (session)"});var loader_key=helpers.generateGuid(),method=params.substring(params.indexOf("method=")+7,params.length);method=method.substring(0,method.indexOf("&")),dispatch(uiActions.startLoading(loader_key,"lastfm_"+method)),params+="&sk="+getState().lastfm.authorization.key;var config={method:"GET",cache:!1,timeout:3e4,url:getState().lastfm.authorization_url+"?action=sign_request&"+params};$.ajax(config).then(function(response){dispatch(uiActions.stopLoading(loader_key)),sendRequest(dispatch,getState,response.params,!0).then(function(response){resolve(response)},function(error){reject(error)})},function(xhr,status,error){dispatch(uiActions.stopLoading(loader_key)),reject(error)})})}}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;/*!
* jQuery JavaScript Library v3.3.1
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2018-01-20T17:24Z
*/
!function(global,factory){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=global.document?factory(global,!0):function(w){if(!w.document)throw new Error("jQuery requires a window with a document");return factory(w)}:factory(global)}("undefined"!=typeof window?window:this,function(window,noGlobal){"use strict";function DOMEval(code,doc,node){doc=doc||document;var i,script=doc.createElement("script");if(script.text=code,node)for(i in preservedScriptAttributes)node[i]&&(script[i]=node[i]);doc.head.appendChild(script).parentNode.removeChild(script)}function toType(obj){return null==obj?obj+"":"object"==typeof obj||"function"==typeof obj?class2type[toString.call(obj)]||"object":typeof obj}function isArrayLike(obj){var length=!!obj&&"length"in obj&&obj.length,type=toType(obj);return!isFunction(obj)&&!isWindow(obj)&&("array"===type||0===length||"number"==typeof length&&length>0&&length-1 in obj)}function nodeName(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase()}function winnow(elements,qualifier,not){return isFunction(qualifier)?jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not}):qualifier.nodeType?jQuery.grep(elements,function(elem){return elem===qualifier!==not}):"string"!=typeof qualifier?jQuery.grep(elements,function(elem){return indexOf.call(qualifier,elem)>-1!==not}):jQuery.filter(qualifier,elements,not)}function sibling(cur,dir){for(;(cur=cur[dir])&&1!==cur.nodeType;);return cur}function createOptions(options){var object={};return jQuery.each(options.match(rnothtmlwhite)||[],function(_,flag){object[flag]=!0}),object}function Identity(v){return v}function Thrower(ex){throw ex}function adoptValue(value,resolve,reject,noValue){var method;try{value&&isFunction(method=value.promise)?method.call(value).done(resolve).fail(reject):value&&isFunction(method=value.then)?method.call(value,resolve,reject):resolve.apply(void 0,[value].slice(noValue))}catch(value){reject.apply(void 0,[value])}}function completed(){document.removeEventListener("DOMContentLoaded",completed),window.removeEventListener("load",completed),jQuery.ready()}function fcamelCase(all,letter){return letter.toUpperCase()}function camelCase(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase)}function Data(){this.expando=jQuery.expando+Data.uid++}function getData(data){return"true"===data||"false"!==data&&("null"===data?null:data===+data+""?+data:rbrace.test(data)?JSON.parse(data):data)}function dataAttr(elem,key,data){var name;if(void 0===data&&1===elem.nodeType)if(name="data-"+key.replace(rmultiDash,"-$&").toLowerCase(),"string"==typeof(data=elem.getAttribute(name))){try{data=getData(data)}catch(e){}dataUser.set(elem,key,data)}else data=void 0;return data}function adjustCSS(elem,prop,valueParts,tween){var adjusted,scale,maxIterations=20,currentValue=tween?function(){return tween.cur()}:function(){return jQuery.css(elem,prop,"")},initial=currentValue(),unit=valueParts&&valueParts[3]||(jQuery.cssNumber[prop]?"":"px"),initialInUnit=(jQuery.cssNumber[prop]||"px"!==unit&&+initial)&&rcssNum.exec(jQuery.css(elem,prop));if(initialInUnit&&initialInUnit[3]!==unit){for(initial/=2,unit=unit||initialInUnit[3],initialInUnit=+initial||1;maxIterations--;)jQuery.style(elem,prop,initialInUnit+unit),(1-scale)*(1-(scale=currentValue()/initial||.5))<=0&&(maxIterations=0),initialInUnit/=scale;initialInUnit*=2,jQuery.style(elem,prop,initialInUnit+unit),valueParts=valueParts||[]}return valueParts&&(initialInUnit=+initialInUnit||+initial||0,adjusted=valueParts[1]?initialInUnit+(valueParts[1]+1)*valueParts[2]:+valueParts[2],tween&&(tween.unit=unit,tween.start=initialInUnit,tween.end=adjusted)),adjusted}function getDefaultDisplay(elem){var temp,doc=elem.ownerDocument,nodeName=elem.nodeName,display=defaultDisplayMap[nodeName];return display||(temp=doc.body.appendChild(doc.createElement(nodeName)),display=jQuery.css(temp,"display"),temp.parentNode.removeChild(temp),"none"===display&&(display="block"),defaultDisplayMap[nodeName]=display,display)}function showHide(elements,show){for(var display,elem,values=[],index=0,length=elements.length;index<length;index++)elem=elements[index],elem.style&&(display=elem.style.display,show?("none"===display&&(values[index]=dataPriv.get(elem,"display")||null,values[index]||(elem.style.display="")),""===elem.style.display&&isHiddenWithinTree(elem)&&(values[index]=getDefaultDisplay(elem))):"none"!==display&&(values[index]="none",dataPriv.set(elem,"display",display)));for(index=0;index<length;index++)null!=values[index]&&(elements[index].style.display=values[index]);return elements}function getAll(context,tag){var ret;return ret=void 0!==context.getElementsByTagName?context.getElementsByTagName(tag||"*"):void 0!==context.querySelectorAll?context.querySelectorAll(tag||"*"):[],void 0===tag||tag&&nodeName(context,tag)?jQuery.merge([context],ret):ret}function setGlobalEval(elems,refElements){for(var i=0,l=elems.length;i<l;i++)dataPriv.set(elems[i],"globalEval",!refElements||dataPriv.get(refElements[i],"globalEval"))}function buildFragment(elems,context,scripts,selection,ignored){for(var elem,tmp,tag,wrap,contains,j,fragment=context.createDocumentFragment(),nodes=[],i=0,l=elems.length;i<l;i++)if((elem=elems[i])||0===elem)if("object"===toType(elem))jQuery.merge(nodes,elem.nodeType?[elem]:elem);else if(rhtml.test(elem)){for(tmp=tmp||fragment.appendChild(context.createElement("div")),tag=(rtagName.exec(elem)||["",""])[1].toLowerCase(),wrap=wrapMap[tag]||wrapMap._default,tmp.innerHTML=wrap[1]+jQuery.htmlPrefilter(elem)+wrap[2],j=wrap[0];j--;)tmp=tmp.lastChild;jQuery.merge(nodes,tmp.childNodes),tmp=fragment.firstChild,tmp.textContent=""}else nodes.push(context.createTextNode(elem));for(fragment.textContent="",i=0;elem=nodes[i++];)if(selection&&jQuery.inArray(elem,selection)>-1)ignored&&ignored.push(elem);else if(contains=jQuery.contains(elem.ownerDocument,elem),tmp=getAll(fragment.appendChild(elem),"script"),contains&&setGlobalEval(tmp),scripts)for(j=0;elem=tmp[j++];)rscriptType.test(elem.type||"")&&scripts.push(elem);return fragment}function returnTrue(){return!0}function returnFalse(){return!1}function safeActiveElement(){try{return document.activeElement}catch(err){}}function on(elem,types,selector,data,fn,one){var origFn,type;if("object"==typeof types){"string"!=typeof selector&&(data=data||selector,selector=void 0);for(type in types)on(elem,type,selector,data,types[type],one);return elem}if(null==data&&null==fn?(fn=selector,data=selector=void 0):null==fn&&("string"==typeof selector?(fn=data,data=void 0):(fn=data,data=selector,selector=void 0)),!1===fn)fn=returnFalse;else if(!fn)return elem;return 1===one&&(origFn=fn,fn=function(event){return jQuery().off(event),origFn.apply(this,arguments)},fn.guid=origFn.guid||(origFn.guid=jQuery.guid++)),elem.each(function(){jQuery.event.add(this,types,fn,data,selector)})}function manipulationTarget(elem,content){return nodeName(elem,"table")&&nodeName(11!==content.nodeType?content:content.firstChild,"tr")?jQuery(elem).children("tbody")[0]||elem:elem}function disableScript(elem){return elem.type=(null!==elem.getAttribute("type"))+"/"+elem.type,elem}function restoreScript(elem){return"true/"===(elem.type||"").slice(0,5)?elem.type=elem.type.slice(5):elem.removeAttribute("type"),elem}function cloneCopyEvent(src,dest){var i,l,type,pdataOld,pdataCur,udataOld,udataCur,events;if(1===dest.nodeType){if(dataPriv.hasData(src)&&(pdataOld=dataPriv.access(src),pdataCur=dataPriv.set(dest,pdataOld),events=pdataOld.events)){delete pdataCur.handle,pdataCur.events={};for(type in events)for(i=0,l=events[type].length;i<l;i++)jQuery.event.add(dest,type,events[type][i])}dataUser.hasData(src)&&(udataOld=dataUser.access(src),udataCur=jQuery.extend({},udataOld),dataUser.set(dest,udataCur))}}function fixInput(src,dest){var nodeName=dest.nodeName.toLowerCase();"input"===nodeName&&rcheckableType.test(src.type)?dest.checked=src.checked:"input"!==nodeName&&"textarea"!==nodeName||(dest.defaultValue=src.defaultValue)}function domManip(collection,args,callback,ignored){args=concat.apply([],args);var fragment,first,scripts,hasScripts,node,doc,i=0,l=collection.length,iNoClone=l-1,value=args[0],valueIsFunction=isFunction(value);if(valueIsFunction||l>1&&"string"==typeof value&&!support.checkClone&&rchecked.test(value))return collection.each(function(index){var self=collection.eq(index);valueIsFunction&&(args[0]=value.call(this,index,self.html())),domManip(self,args,callback,ignored)});if(l&&(fragment=buildFragment(args,collection[0].ownerDocument,!1,collection,ignored),first=fragment.firstChild,1===fragment.childNodes.length&&(fragment=first),first||ignored)){for(scripts=jQuery.map(getAll(fragment,"script"),disableScript),hasScripts=scripts.length;i<l;i++)node=fragment,i!==iNoClone&&(node=jQuery.clone(node,!0,!0),hasScripts&&jQuery.merge(scripts,getAll(node,"script"))),callback.call(collection[i],node,i);if(hasScripts)for(doc=scripts[scripts.length-1].ownerDocument,jQuery.map(scripts,restoreScript),i=0;i<hasScripts;i++)node=scripts[i],rscriptType.test(node.type||"")&&!dataPriv.access(node,"globalEval")&&jQuery.contains(doc,node)&&(node.src&&"module"!==(node.type||"").toLowerCase()?jQuery._evalUrl&&jQuery._evalUrl(node.src):DOMEval(node.textContent.replace(rcleanScript,""),doc,node))}return collection}function remove(elem,selector,keepData){for(var node,nodes=selector?jQuery.filter(selector,elem):elem,i=0;null!=(node=nodes[i]);i++)keepData||1!==node.nodeType||jQuery.cleanData(getAll(node)),node.parentNode&&(keepData&&jQuery.contains(node.ownerDocument,node)&&setGlobalEval(getAll(node,"script")),node.parentNode.removeChild(node));return elem}function curCSS(elem,name,computed){var width,minWidth,maxWidth,ret,style=elem.style;return computed=computed||getStyles(elem),computed&&(ret=computed.getPropertyValue(name)||computed[name],""!==ret||jQuery.contains(elem.ownerDocument,elem)||(ret=jQuery.style(elem,name)),!support.pixelBoxStyles()&&rnumnonpx.test(ret)&&rboxStyle.test(name)&&(width=style.width,minWidth=style.minWidth,maxWidth=style.maxWidth,style.minWidth=style.maxWidth=style.width=ret,ret=computed.width,style.width=width,style.minWidth=minWidth,style.maxWidth=maxWidth)),void 0!==ret?ret+"":ret}function addGetHookIf(conditionFn,hookFn){return{get:function(){return conditionFn()?void delete this.get:(this.get=hookFn).apply(this,arguments)}}}function vendorPropName(name){if(name in emptyStyle)return name;for(var capName=name[0].toUpperCase()+name.slice(1),i=cssPrefixes.length;i--;)if((name=cssPrefixes[i]+capName)in emptyStyle)return name}function finalPropName(name){var ret=jQuery.cssProps[name];return ret||(ret=jQuery.cssProps[name]=vendorPropName(name)||name),ret}function setPositiveNumber(elem,value,subtract){var matches=rcssNum.exec(value);return matches?Math.max(0,matches[2]-(subtract||0))+(matches[3]||"px"):value}function boxModelAdjustment(elem,dimension,box,isBorderBox,styles,computedVal){var i="width"===dimension?1:0,extra=0,delta=0;if(box===(isBorderBox?"border":"content"))return 0;for(;i<4;i+=2)"margin"===box&&(delta+=jQuery.css(elem,box+cssExpand[i],!0,styles)),isBorderBox?("content"===box&&(delta-=jQuery.css(elem,"padding"+cssExpand[i],!0,styles)),"margin"!==box&&(delta-=jQuery.css(elem,"border"+cssExpand[i]+"Width",!0,styles))):(delta+=jQuery.css(elem,"padding"+cssExpand[i],!0,styles),"padding"!==box?delta+=jQuery.css(elem,"border"+cssExpand[i]+"Width",!0,styles):extra+=jQuery.css(elem,"border"+cssExpand[i]+"Width",!0,styles));return!isBorderBox&&computedVal>=0&&(delta+=Math.max(0,Math.ceil(elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-computedVal-delta-extra-.5))),delta}function getWidthOrHeight(elem,dimension,extra){var styles=getStyles(elem),val=curCSS(elem,dimension,styles),isBorderBox="border-box"===jQuery.css(elem,"boxSizing",!1,styles),valueIsBorderBox=isBorderBox;if(rnumnonpx.test(val)){if(!extra)return val;val="auto"}return valueIsBorderBox=valueIsBorderBox&&(support.boxSizingReliable()||val===elem.style[dimension]),("auto"===val||!parseFloat(val)&&"inline"===jQuery.css(elem,"display",!1,styles))&&(val=elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)],valueIsBorderBox=!0),(val=parseFloat(val)||0)+boxModelAdjustment(elem,dimension,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles,val)+"px"}function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing)}function schedule(){inProgress&&(!1===document.hidden&&window.requestAnimationFrame?window.requestAnimationFrame(schedule):window.setTimeout(schedule,jQuery.fx.interval),jQuery.fx.tick())}function createFxNow(){return window.setTimeout(function(){fxNow=void 0}),fxNow=Date.now()}function genFx(type,includeWidth){var which,i=0,attrs={height:type};for(includeWidth=includeWidth?1:0;i<4;i+=2-includeWidth)which=cssExpand[i],attrs["margin"+which]=attrs["padding"+which]=type;return includeWidth&&(attrs.opacity=attrs.width=type),attrs}function createTween(value,prop,animation){for(var tween,collection=(Animation.tweeners[prop]||[]).concat(Animation.tweeners["*"]),index=0,length=collection.length;index<length;index++)if(tween=collection[index].call(animation,prop,value))return tween}function defaultPrefilter(elem,props,opts){var prop,value,toggle,hooks,oldfire,propTween,restoreDisplay,display,isBox="width"in props||"height"in props,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHiddenWithinTree(elem),dataShow=dataPriv.get(elem,"fxshow");opts.queue||(hooks=jQuery._queueHooks(elem,"fx"),null==hooks.unqueued&&(hooks.unqueued=0,oldfire=hooks.empty.fire,hooks.empty.fire=function(){hooks.unqueued||oldfire()}),hooks.unqueued++,anim.always(function(){anim.always(function(){hooks.unqueued--,jQuery.queue(elem,"fx").length||hooks.empty.fire()})}));for(prop in props)if(value=props[prop],rfxtypes.test(value)){if(delete props[prop],toggle=toggle||"toggle"===value,value===(hidden?"hide":"show")){if("show"!==value||!dataShow||void 0===dataShow[prop])continue;hidden=!0}orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop)}if((propTween=!jQuery.isEmptyObject(props))||!jQuery.isEmptyObject(orig)){isBox&&1===elem.nodeType&&(opts.overflow=[style.overflow,style.overflowX,style.overflowY],restoreDisplay=dataShow&&dataShow.display,null==restoreDisplay&&(restoreDisplay=dataPriv.get(elem,"display")),display=jQuery.css(elem,"display"),"none"===display&&(restoreDisplay?display=restoreDisplay:(showHide([elem],!0),restoreDisplay=elem.style.display||restoreDisplay,display=jQuery.css(elem,"display"),showHide([elem]))),("inline"===display||"inline-block"===display&&null!=restoreDisplay)&&"none"===jQuery.css(elem,"float")&&(propTween||(anim.done(function(){style.display=restoreDisplay}),null==restoreDisplay&&(display=style.display,restoreDisplay="none"===display?"":display)),style.display="inline-block")),opts.overflow&&(style.overflow="hidden",anim.always(function(){style.overflow=opts.overflow[0],style.overflowX=opts.overflow[1],style.overflowY=opts.overflow[2]})),propTween=!1;for(prop in orig)propTween||(dataShow?"hidden"in dataShow&&(hidden=dataShow.hidden):dataShow=dataPriv.access(elem,"fxshow",{display:restoreDisplay}),toggle&&(dataShow.hidden=!hidden),hidden&&showHide([elem],!0),anim.done(function(){hidden||showHide([elem]),dataPriv.remove(elem,"fxshow");for(prop in orig)jQuery.style(elem,prop,orig[prop])})),propTween=createTween(hidden?dataShow[prop]:0,prop,anim),prop in dataShow||(dataShow[prop]=propTween.start,hidden&&(propTween.end=propTween.start,propTween.start=0))}}function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props)if(name=camelCase(index),easing=specialEasing[name],value=props[index],Array.isArray(value)&&(easing=value[1],value=props[index]=value[0]),index!==name&&(props[name]=value,delete props[index]),(hooks=jQuery.cssHooks[name])&&"expand"in hooks){value=hooks.expand(value),delete props[name];for(index in value)index in props||(props[index]=value[index],specialEasing[index]=easing)}else specialEasing[name]=easing}function Animation(elem,properties,options){var result,stopped,index=0,length=Animation.prefilters.length,deferred=jQuery.Deferred().always(function(){delete tick.elem}),tick=function(){if(stopped)return!1;for(var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining/animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;index<length;index++)animation.tweens[index].run(percent);return deferred.notifyWith(elem,[animation,percent,remaining]),percent<1&&length?remaining:(length||deferred.notifyWith(elem,[animation,1,0]),deferred.resolveWith(elem,[animation]),!1)},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(!0,{specialEasing:{},easing:jQuery.easing._default},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);return animation.tweens.push(tween),tween},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped)return this;for(stopped=!0;index<length;index++)animation.tweens[index].run(1);return gotoEnd?(deferred.notifyWith(elem,[animation,1,0]),deferred.resolveWith(elem,[animation,gotoEnd])):deferred.rejectWith(elem,[animation,gotoEnd]),this}}),props=animation.props;for(propFilter(props,animation.opts.specialEasing);index<length;index++)if(result=Animation.prefilters[index].call(animation,elem,props,animation.opts))return isFunction(result.stop)&&(jQuery._queueHooks(animation.elem,animation.opts.queue).stop=result.stop.bind(result)),result;return jQuery.map(props,createTween,animation),isFunction(animation.opts.start)&&animation.opts.start.call(elem,animation),animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always),jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue})),animation}function stripAndCollapse(value){return(value.match(rnothtmlwhite)||[]).join(" ")}function getClass(elem){return elem.getAttribute&&elem.getAttribute("class")||""}function classesToArray(value){return Array.isArray(value)?value:"string"==typeof value?value.match(rnothtmlwhite)||[]:[]}function buildParams(prefix,obj,traditional,add){var name;if(Array.isArray(obj))jQuery.each(obj,function(i,v){traditional||rbracket.test(prefix)?add(prefix,v):buildParams(prefix+"["+("object"==typeof v&&null!=v?i:"")+"]",v,traditional,add)});else if(traditional||"object"!==toType(obj))add(prefix,obj);else for(name in obj)buildParams(prefix+"["+name+"]",obj[name],traditional,add)}function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){"string"!=typeof dataTypeExpression&&(func=dataTypeExpression,dataTypeExpression="*");var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnothtmlwhite)||[];if(isFunction(func))for(;dataType=dataTypes[i++];)"+"===dataType[0]?(dataType=dataType.slice(1)||"*",(structure[dataType]=structure[dataType]||[]).unshift(func)):(structure[dataType]=structure[dataType]||[]).push(func)}}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){function inspect(dataType){var selected;return inspected[dataType]=!0,jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);return"string"!=typeof dataTypeOrTransport||seekingTransport||inspected[dataTypeOrTransport]?seekingTransport?!(selected=dataTypeOrTransport):void 0:(options.dataTypes.unshift(dataTypeOrTransport),inspect(dataTypeOrTransport),!1)}),selected}var inspected={},seekingTransport=structure===transports;return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*")}function ajaxExtend(target,src){var key,deep,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src)void 0!==src[key]&&((flatOptions[key]?target:deep||(deep={}))[key]=src[key]);return deep&&jQuery.extend(!0,target,deep),target}function ajaxHandleResponses(s,jqXHR,responses){for(var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;"*"===dataTypes[0];)dataTypes.shift(),void 0===ct&&(ct=s.mimeType||jqXHR.getResponseHeader("Content-Type"));if(ct)for(type in contents)if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break}if(dataTypes[0]in responses)finalDataType=dataTypes[0];else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break}firstDataType||(firstDataType=type)}finalDataType=finalDataType||firstDataType}if(finalDataType)return finalDataType!==dataTypes[0]&&dataTypes.unshift(finalDataType),responses[finalDataType]}function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1])for(conv in s.converters)converters[conv.toLowerCase()]=s.converters[conv];for(current=dataTypes.shift();current;)if(s.responseFields[current]&&(jqXHR[s.responseFields[current]]=response),!prev&&isSuccess&&s.dataFilter&&(response=s.dataFilter(response,s.dataType)),prev=current,current=dataTypes.shift())if("*"===current)current=prev;else if("*"!==prev&&prev!==current){if(!(conv=converters[prev+" "+current]||converters["* "+current]))for(conv2 in converters)if(tmp=conv2.split(" "),tmp[1]===current&&(conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]])){!0===conv?conv=converters[conv2]:!0!==converters[conv2]&&(current=tmp[0],dataTypes.unshift(tmp[1]));break}if(!0!==conv)if(conv&&s.throws)response=conv(response);else try{response=conv(response)}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current}}}return{state:"success",data:response}}var arr=[],document=window.document,getProto=Object.getPrototypeOf,slice=arr.slice,concat=arr.concat,push=arr.push,indexOf=arr.indexOf,class2type={},toString=class2type.toString,hasOwn=class2type.hasOwnProperty,fnToString=hasOwn.toString,ObjectFunctionString=fnToString.call(Object),support={},isFunction=function(obj){return"function"==typeof obj&&"number"!=typeof obj.nodeType},isWindow=function(obj){return null!=obj&&obj===obj.window},preservedScriptAttributes={type:!0,src:!0,noModule:!0},jQuery=function(selector,context){return new jQuery.fn.init(selector,context)},rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;jQuery.fn=jQuery.prototype={jquery:"3.3.1",constructor:jQuery,length:0,toArray:function(){return slice.call(this)},get:function(num){return null==num?slice.call(this):num<0?this[num+this.length]:this[num]},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);return ret.prevObject=this,ret},each:function(callback){return jQuery.each(this,callback)},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},slice:function(){return this.pushStack(slice.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[])},end:function(){return this.prevObject||this.constructor()},push:push,sort:arr.sort,splice:arr.splice},jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=!1;for("boolean"==typeof target&&(deep=target,target=arguments[i]||{},i++),"object"==typeof target||isFunction(target)||(target={}),i===length&&(target=this,i--);i<length;i++)if(null!=(options=arguments[i]))for(name in options)src=target[name],copy=options[name],target!==copy&&(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=Array.isArray(copy)))?(copyIsArray?(copyIsArray=!1,clone=src&&Array.isArray(src)?src:[]):clone=src&&jQuery.isPlainObject(src)?src:{},target[name]=jQuery.extend(deep,clone,copy)):void 0!==copy&&(target[name]=copy));return target},jQuery.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(msg){throw new Error(msg)},noop:function(){},isPlainObject:function(obj){var proto,Ctor;return!(!obj||"[object Object]"!==toString.call(obj))&&(!(proto=getProto(obj))||"function"==typeof(Ctor=hasOwn.call(proto,"constructor")&&proto.constructor)&&fnToString.call(Ctor)===ObjectFunctionString)},isEmptyObject:function(obj){var name;for(name in obj)return!1;return!0},globalEval:function(code){DOMEval(code)},each:function(obj,callback){var length,i=0;if(isArrayLike(obj))for(length=obj.length;i<length&&!1!==callback.call(obj[i],i,obj[i]);i++);else for(i in obj)if(!1===callback.call(obj[i],i,obj[i]))break;return obj},trim:function(text){return null==text?"":(text+"").replace(rtrim,"")},makeArray:function(arr,results){var ret=results||[];return null!=arr&&(isArrayLike(Object(arr))?jQuery.merge(ret,"string"==typeof arr?[arr]:arr):push.call(ret,arr)),ret},inArray:function(elem,arr,i){return null==arr?-1:indexOf.call(arr,elem,i)},merge:function(first,second){for(var len=+second.length,j=0,i=first.length;j<len;j++)first[i++]=second[j];return first.length=i,first},grep:function(elems,callback,invert){for(var matches=[],i=0,length=elems.length,callbackExpect=!invert;i<length;i++)!callback(elems[i],i)!==callbackExpect&&matches.push(elems[i]);return matches},map:function(elems,callback,arg){var length,value,i=0,ret=[];if(isArrayLike(elems))for(length=elems.length;i<length;i++)null!=(value=callback(elems[i],i,arg))&&ret.push(value);else for(i in elems)null!=(value=callback(elems[i],i,arg))&&ret.push(value);return concat.apply([],ret)},guid:1,support:support}),"function"==typeof Symbol&&(jQuery.fn[Symbol.iterator]=arr[Symbol.iterator]),jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase()});var Sizzle=/*!
* Sizzle CSS Selector Engine v2.3.3
* https://sizzlejs.com/
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2016-08-08
*/
function(window){function Sizzle(selector,context,results,seed){var m,i,elem,nid,match,groups,newSelector,newContext=context&&context.ownerDocument,nodeType=context?context.nodeType:9;if(results=results||[],"string"!=typeof selector||!selector||1!==nodeType&&9!==nodeType&&11!==nodeType)return results;if(!seed&&((context?context.ownerDocument||context:preferredDoc)!==document&&setDocument(context),context=context||document,documentIsHTML)){if(11!==nodeType&&(match=rquickExpr.exec(selector)))if(m=match[1]){if(9===nodeType){if(!(elem=context.getElementById(m)))return results;if(elem.id===m)return results.push(elem),results}else if(newContext&&(elem=newContext.getElementById(m))&&contains(context,elem)&&elem.id===m)return results.push(elem),results}else{if(match[2])return push.apply(results,context.getElementsByTagName(selector)),results;if((m=match[3])&&support.getElementsByClassName&&context.getElementsByClassName)return push.apply(results,context.getElementsByClassName(m)),results}if(support.qsa&&!compilerCache[selector+" "]&&(!rbuggyQSA||!rbuggyQSA.test(selector))){if(1!==nodeType)newContext=context,newSelector=selector;else if("object"!==context.nodeName.toLowerCase()){for((nid=context.getAttribute("id"))?nid=nid.replace(rcssescape,fcssescape):context.setAttribute("id",nid=expando),groups=tokenize(selector),i=groups.length;i--;)groups[i]="#"+nid+" "+toSelector(groups[i]);newSelector=groups.join(","),newContext=rsibling.test(selector)&&testContext(context.parentNode)||context}if(newSelector)try{return push.apply(results,newContext.querySelectorAll(newSelector)),results}catch(qsaError){}finally{nid===expando&&context.removeAttribute("id")}}}return select(selector.replace(rtrim,"$1"),context,results,seed)}function createCache(){function cache(key,value){return keys.push(key+" ")>Expr.cacheLength&&delete cache[keys.shift()],cache[key+" "]=value}var keys=[];return cache}function markFunction(fn){return fn[expando]=!0,fn}function assert(fn){var el=document.createElement("fieldset");try{return!!fn(el)}catch(e){return!1}finally{el.parentNode&&el.parentNode.removeChild(el),el=null}}function addHandle(attrs,handler){for(var arr=attrs.split("|"),i=arr.length;i--;)Expr.attrHandle[arr[i]]=handler}function siblingCheck(a,b){var cur=b&&a,diff=cur&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(diff)return diff;if(cur)for(;cur=cur.nextSibling;)if(cur===b)return-1;return a?1:-1}function createDisabledPseudo(disabled){return function(elem){return"form"in elem?elem.parentNode&&!1===elem.disabled?"label"in elem?"label"in elem.parentNode?elem.parentNode.disabled===disabled:elem.disabled===disabled:elem.isDisabled===disabled||elem.isDisabled!==!disabled&&disabledAncestor(elem)===disabled:elem.disabled===disabled:"label"in elem&&elem.disabled===disabled}}function createPositionalPseudo(fn){return markFunction(function(argument){return argument=+argument,markFunction(function(seed,matches){for(var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;i--;)seed[j=matchIndexes[i]]&&(seed[j]=!(matches[j]=seed[j]))})})}function testContext(context){return context&&void 0!==context.getElementsByTagName&&context}function setFilters(){}function toSelector(tokens){for(var i=0,len=tokens.length,selector="";i<len;i++)selector+=tokens[i].value;return selector}function addCombinator(matcher,combinator,base){var dir=combinator.dir,skip=combinator.next,key=skip||dir,checkNonElements=base&&"parentNode"===key,doneName=done++;return combinator.first?function(elem,context,xml){for(;elem=elem[dir];)if(1===elem.nodeType||checkNonElements)return matcher(elem,context,xml);return!1}:function(elem,context,xml){var oldCache,uniqueCache,outerCache,newCache=[dirruns,doneName];if(xml){for(;elem=elem[dir];)if((1===elem.nodeType||checkNonElements)&&matcher(elem,context,xml))return!0}else for(;elem=elem[dir];)if(1===elem.nodeType||checkNonElements)if(outerCache=elem[expando]||(elem[expando]={}),uniqueCache=outerCache[elem.uniqueID]||(outerCache[elem.uniqueID]={}),skip&&skip===elem.nodeName.toLowerCase())elem=elem[dir]||elem;else{if((oldCache=uniqueCache[key])&&oldCache[0]===dirruns&&oldCache[1]===doneName)return newCache[2]=oldCache[2];if(uniqueCache[key]=newCache,newCache[2]=matcher(elem,context,xml))return!0}return!1}}function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){for(var i=matchers.length;i--;)if(!matchers[i](elem,context,xml))return!1;return!0}:matchers[0]}function multipleContexts(selector,contexts,results){for(var i=0,len=contexts.length;i<len;i++)Sizzle(selector,contexts[i],results);return results}function condense(unmatched,map,filter,context,xml){for(var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=null!=map;i<len;i++)(elem=unmatched[i])&&(filter&&!filter(elem,context,xml)||(newUnmatched.push(elem),mapped&&map.push(i)));return newUnmatched}function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){return postFilter&&!postFilter[expando]&&(postFilter=setMatcher(postFilter)),postFinder&&!postFinder[expando]&&(postFinder=setMatcher(postFinder,postSelector)),markFunction(function(seed,results,context,xml){var temp,i,elem,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=!preFilter||!seed&&selector?elems:condense(elems,preMap,preFilter,context,xml),matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher&&matcher(matcherIn,matcherOut,context,xml),postFilter)for(temp=condense(matcherOut,postMap),postFilter(temp,[],context,xml),i=temp.length;i--;)(elem=temp[i])&&(matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem));if(seed){if(postFinder||preFilter){if(postFinder){for(temp=[],i=matcherOut.length;i--;)(elem=matcherOut[i])&&temp.push(matcherIn[i]=elem);postFinder(null,matcherOut=[],temp,xml)}for(i=matcherOut.length;i--;)(elem=matcherOut[i])&&(temp=postFinder?indexOf(seed,elem):preMap[i])>-1&&(seed[temp]=!(results[temp]=elem))}}else matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut),postFinder?postFinder(null,results,matcherOut,xml):push.apply(results,matcherOut)})}function matcherFromTokens(tokens){for(var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext},implicitRelative,!0),matchAnyContext=addCombinator(function(elem){return indexOf(checkContext,elem)>-1},implicitRelative,!0),matchers=[function(elem,context,xml){var ret=!leadingRelative&&(xml||context!==outermostContext)||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));return checkContext=null,ret}];i<len;i++)if(matcher=Expr.relative[tokens[i].type])matchers=[addCombinator(elementMatcher(matchers),matcher)];else{if(matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches),matcher[expando]){for(j=++i;j<len&&!Expr.relative[tokens[j].type];j++);return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:" "===tokens[i-2].type?"*":""})).replace(rtrim,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens(tokens=tokens.slice(j)),j<len&&toSelector(tokens))}matchers.push(matcher)}return elementMatcher(matchers)}function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find.TAG("*",outermost),dirrunsUnique=dirruns+=null==contextBackup?1:Math.random()||.1,len=elems.length;for(outermost&&(outermostContext=context===document||context||outermost);i!==len&&null!=(elem=elems[i]);i++){if(byElement&&elem){for(j=0,context||elem.ownerDocument===document||(setDocument(elem),xml=!documentIsHTML);matcher=elementMatchers[j++];)if(matcher(elem,context||document,xml)){results.push(elem);break}outermost&&(dirruns=dirrunsUnique)}bySet&&((elem=!matcher&&elem)&&matchedCount--,seed&&unmatched.push(elem))}if(matchedCount+=i,bySet&&i!==matchedCount){for(j=0;matcher=setMatchers[j++];)matcher(unmatched,setMatched,context,xml);if(seed){if(matchedCount>0)for(;i--;)unmatched[i]||setMatched[i]||(setMatched[i]=pop.call(results));setMatched=condense(setMatched)}push.apply(results,setMatched),outermost&&!seed&&setMatched.length>0&&matchedCount+setMatchers.length>1&&Sizzle.uniqueSort(results)}return outermost&&(dirruns=dirrunsUnique,outermostContext=contextBackup),unmatched};return bySet?markFunction(superMatcher):superMatcher}var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando="sizzle"+1*new Date,preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),sortOrder=function(a,b){return a===b&&(hasDuplicate=!0),0},hasOwn={}.hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,indexOf=function(list,elem){for(var i=0,len=list.length;i<len;i++)if(list[i]===elem)return i;return-1},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",whitespace="[\\x20\\t\\r\\n\\f]",identifier="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",attributes="\\["+whitespace+"*("+identifier+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+whitespace+"*\\]",pseudos=":("+identifier+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|.*)\\)|)",rwhitespace=new RegExp(whitespace+"+","g"),rtrim=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rcombinators=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rattributeQuotes=new RegExp("="+whitespace+"*([^\\]'\"]*?)"+whitespace+"*\\]","g"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={ID:new RegExp("^#("+identifier+")"),CLASS:new RegExp("^\\.("+identifier+")"),TAG:new RegExp("^("+identifier+"|[*])"),ATTR:new RegExp("^"+attributes),PSEUDO:new RegExp("^"+pseudos),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),bool:new RegExp("^(?:"+booleans+")$","i"),needsContext:new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rnative=/^[^{]+\{\s*\[native \w/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,runescape=new RegExp("\\\\([\\da-f]{1,6}"+whitespace+"?|("+whitespace+")|.)","ig"),funescape=function(_,escaped,escapedWhitespace){var high="0x"+escaped-65536;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,1023&high|56320)},rcssescape=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,fcssescape=function(ch,asCodePoint){return asCodePoint?"\0"===ch?"<22>":ch.slice(0,-1)+"\\"+ch.charCodeAt(ch.length-1).toString(16)+" ":"\\"+ch},unloadHandler=function(){setDocument()},disabledAncestor=addCombinator(function(elem){return!0===elem.disabled&&("form"in elem||"label"in elem)},{dir:"parentNode",next:"legend"});try{push.apply(arr=slice.call(preferredDoc.childNodes),preferredDoc.childNodes),arr[preferredDoc.childNodes.length].nodeType}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els))}:function(target,els){for(var j=target.length,i=0;target[j++]=els[i++];);target.length=j-1}}}support=Sizzle.support={},isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return!!documentElement&&"HTML"!==documentElement.nodeName},setDocument=Sizzle.setDocument=function(node){var hasCompare,subWindow,doc=node?node.ownerDocument||node:preferredDoc;return doc!==document&&9===doc.nodeType&&doc.documentElement?(document=doc,docElem=document.documentElement,documentIsHTML=!isXML(document),preferredDoc!==document&&(subWindow=document.defaultView)&&subWindow.top!==subWindow&&(subWindow.addEventListener?subWindow.addEventListener("unload",unloadHandler,!1):subWindow.attachEvent&&subWindow.attachEvent("onunload",unloadHandler)),support.attributes=assert(function(el){return el.className="i",!el.getAttribute("className")}),support.getElementsByTagName=assert(function(el){return el.appendChild(document.createComment("")),!el.getElementsByTagName("*").length}),support.getElementsByClassName=rnative.test(document.getElementsByClassName),support.getById=assert(function(el){return docElem.appendChild(el).id=expando,!document.getElementsByName||!document.getElementsByName(expando).length}),support.getById?(Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId}},Expr.find.ID=function(id,context){if(void 0!==context.getElementById&&documentIsHTML){var elem=context.getElementById(id);return elem?[elem]:[]}}):(Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=void 0!==elem.getAttributeNode&&elem.getAttributeNode("id");return node&&node.value===attrId}},Expr.find.ID=function(id,context){if(void 0!==context.getElementById&&documentIsHTML){var node,i,elems,elem=context.getElementById(id);if(elem){if((node=elem.getAttributeNode("id"))&&node.value===id)return[elem];for(elems=context.getElementsByName(id),i=0;elem=elems[i++];)if((node=elem.getAttributeNode("id"))&&node.value===id)return[elem]}return[]}}),Expr.find.TAG=support.getElementsByTagName?function(tag,context){return void 0!==context.getElementsByTagName?context.getElementsByTagName(tag):support.qsa?context.querySelectorAll(tag):void 0}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if("*"===tag){for(;elem=results[i++];)1===elem.nodeType&&tmp.push(elem);return tmp}return results},Expr.find.CLASS=support.getElementsByClassName&&function(className,context){if(void 0!==context.getElementsByClassName&&documentIsHTML)return context.getElementsByClassName(className)},rbuggyMatches=[],rbuggyQSA=[],(support.qsa=rnative.test(document.querySelectorAll))&&(assert(function(el){docElem.appendChild(el).innerHTML="<a id='"+expando+"'></a><select id='"+expando+"-\r\\' msallowcapture=''><option selected=''></option></select>",el.querySelectorAll("[msallowcapture^='']").length&&rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")"),el.querySelectorAll("[selected]").length||rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")"),el.querySelectorAll("[id~="+expando+"-]").length||rbuggyQSA.push("~="),el.querySelectorAll(":checked").length||rbuggyQSA.push(":checked"),el.querySelectorAll("a#"+expando+"+*").length||rbuggyQSA.push(".#.+[+~]")}),assert(function(el){el.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var input=document.createElement("input");input.setAttribute("type","hidden"),el.appendChild(input).setAttribute("name","D"),el.querySelectorAll("[name=d]").length&&rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?="),2!==el.querySelectorAll(":enabled").length&&rbuggyQSA.push(":enabled",":disabled"),docElem.appendChild(el).disabled=!0,2!==el.querySelectorAll(":disabled").length&&rbuggyQSA.push(":enabled",":disabled"),el.querySelectorAll("*,:x"),rbuggyQSA.push(",.*:")})),(support.matchesSelector=rnative.test(matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector))&&assert(function(el){support.disconnectedMatch=matches.call(el,"*"),matches.call(el,"[s!='']:x"),rbuggyMatches.push("!=",pseudos)}),rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|")),rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|")),hasCompare=rnative.test(docElem.compareDocumentPosition),contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=9===a.nodeType?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!(!bup||1!==bup.nodeType||!(adown.contains?adown.contains(bup):a.compareDocumentPosition&&16&a.compareDocumentPosition(bup)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},sortOrder=hasCompare?function(a,b){if(a===b)return hasDuplicate=!0,0;var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;return compare||(compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&compare||!support.sortDetached&&b.compareDocumentPosition(a)===compare?a===document||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)?-1:b===document||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0:4&compare?-1:1)}:function(a,b){if(a===b)return hasDuplicate=!0,0;var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup)return a===document?-1:b===document?1:aup?-1:bup?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0;if(aup===bup)return siblingCheck(a,b);for(cur=a;cur=cur.parentNode;)ap.unshift(cur);for(cur=b;cur=cur.parentNode;)bp.unshift(cur);for(;ap[i]===bp[i];)i++;return i?siblingCheck(ap[i],bp[i]):ap[i]===preferredDoc?-1:bp[i]===preferredDoc?1:0},document):document},Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements)},Sizzle.matchesSelector=function(elem,expr){if((elem.ownerDocument||elem)!==document&&setDocument(elem),expr=expr.replace(rattributeQuotes,"='$1']"),support.matchesSelector&&documentIsHTML&&!compilerCache[expr+" "]&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr)))try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&11!==elem.document.nodeType)return ret}catch(e){}return Sizzle(expr,document,null,[elem]).length>0},Sizzle.contains=function(context,elem){return(context.ownerDocument||context)!==document&&setDocument(context),contains(context,elem)},Sizzle.attr=function(elem,name){(elem.ownerDocument||elem)!==document&&setDocument(elem);var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):void 0;return void 0!==val?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null},Sizzle.escape=function(sel){return(sel+"").replace(rcssescape,fcssescape)},Sizzle.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg)},Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;if(hasDuplicate=!support.detectDuplicates,sortInput=!support.sortStable&&results.slice(0),results.sort(sortOrder),hasDuplicate){for(;elem=results[i++];)elem===results[i]&&(j=duplicates.push(i));for(;j--;)results.splice(duplicates[j],1)}return sortInput=null,results},getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(nodeType){if(1===nodeType||9===nodeType||11===nodeType){if("string"==typeof elem.textContent)return elem.textContent;for(elem=elem.firstChild;elem;elem=elem.nextSibling)ret+=getText(elem)}else if(3===nodeType||4===nodeType)return elem.nodeValue}else for(;node=elem[i++];)ret+=getText(node);return ret},Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(match){return match[1]=match[1].replace(runescape,funescape),match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape),"~="===match[2]&&(match[3]=" "+match[3]+" "),match.slice(0,4)},CHILD:function(match){return match[1]=match[1].toLowerCase(),"nth"===match[1].slice(0,3)?(match[3]||Sizzle.error(match[0]),match[4]=+(match[4]?match[5]+(match[6]||1):2*("even"===match[3]||"odd"===match[3])),match[5]=+(match[7]+match[8]||"odd"===match[3])):match[3]&&Sizzle.error(match[0]),match},PSEUDO:function(match){var excess,unquoted=!match[6]&&match[2];return matchExpr.CHILD.test(match[0])?null:(match[3]?match[2]=match[4]||match[5]||"":unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,!0))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)&&(match[0]=match[0].slice(0,excess),match[2]=unquoted.slice(0,excess)),match.slice(0,3))}},filter:{TAG:function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return"*"===nodeNameSelector?function(){return!0}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName}},CLASS:function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test("string"==typeof elem.className&&elem.className||void 0!==elem.getAttribute&&elem.getAttribute("class")||"")})},ATTR:function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);return null==result?"!="===operator:!operator||(result+="","="===operator?result===check:"!="===operator?result!==check:"^="===operator?check&&0===result.indexOf(check):"*="===operator?check&&result.indexOf(check)>-1:"$="===operator?check&&result.slice(-check.length)===check:"~="===operator?(" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1:"|="===operator&&(result===check||result.slice(0,check.length+1)===check+"-"))}},CHILD:function(type,what,argument,first,last){var simple="nth"!==type.slice(0,3),forward="last"!==type.slice(-4),ofType="of-type"===what;return 1===first&&0===last?function(elem){return!!elem.parentNode}:function(elem,context,xml){var cache,uniqueCache,outerCache,node,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType,diff=!1;if(parent){if(simple){for(;dir;){for(node=elem;node=node[dir];)if(ofType?node.nodeName.toLowerCase()===name:1===node.nodeType)return!1;start=dir="only"===type&&!start&&"nextSibling"}return!0}if(start=[forward?parent.firstChild:parent.lastChild],forward&&useCache){for(node=parent,outerCache=node[expando]||(node[expando]={}),uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={}),cache=uniqueCache[type]||[],nodeIndex=cache[0]===dirruns&&cache[1],diff=nodeIndex&&cache[2],node=nodeIndex&&parent.childNodes[nodeIndex];node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop();)if(1===node.nodeType&&++diff&&node===elem){uniqueCache[type]=[dirruns,nodeIndex,diff];break}}else if(useCache&&(node=elem,outerCache=node[expando]||(node[expando]={}),uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={}),cache=uniqueCache[type]||[],nodeIndex=cache[0]===dirruns&&cache[1],diff=nodeIndex),!1===diff)for(;(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())&&((ofType?node.nodeName.toLowerCase()!==name:1!==node.nodeType)||!++diff||(useCache&&(outerCache=node[expando]||(node[expando]={}),uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={}),uniqueCache[type]=[dirruns,diff]),node!==elem)););return(diff-=last)===first||diff%first==0&&diff/first>=0}}},PSEUDO:function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);return fn[expando]?fn(argument):fn.length>1?(args=[pseudo,pseudo,"",argument],Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){for(var idx,matched=fn(seed,argument),i=matched.length;i--;)idx=indexOf(seed,matched[i]),seed[idx]=!(matches[idx]=matched[i])}):function(elem){return fn(elem,0,args)}):fn}},pseudos:{not:markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,"$1"));return matcher[expando]?markFunction(function(seed,matches,context,xml){for(var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;i--;)(elem=unmatched[i])&&(seed[i]=!(matches[i]=elem))}):function(elem,context,xml){return input[0]=elem,matcher(input,null,xml,results),input[0]=null,!results.pop()}}),has:markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0}}),contains:markFunction(function(text){return text=text.replace(runescape,funescape),function(elem){return(elem.textContent||elem.innerText||getText(elem)).indexOf(text)>-1}}),lang:markFunction(function(lang){return ridentifier.test(lang||"")||Sizzle.error("unsupported lang: "+lang),lang=lang.replace(runescape,funescape).toLowerCase(),function(elem){var elemLang;do{if(elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang"))return(elemLang=elemLang.toLowerCase())===lang||0===elemLang.indexOf(lang+"-")}while((elem=elem.parentNode)&&1===elem.nodeType);return!1}}),target:function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id},root:function(elem){return elem===docElem},focus:function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex)},enabled:createDisabledPseudo(!1),disabled:createDisabledPseudo(!0),checked:function(elem){var nodeName=elem.nodeName.toLowerCase();return"input"===nodeName&&!!elem.checked||"option"===nodeName&&!!elem.selected},selected:function(elem){return elem.parentNode&&elem.parentNode.selectedIndex,!0===elem.selected},empty:function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling)if(elem.nodeType<6)return!1;return!0},parent:function(elem){return!Expr.pseudos.empty(elem)},header:function(elem){return rheader.test(elem.nodeName)},input:function(elem){return rinputs.test(elem.nodeName)},button:function(elem){var name=elem.nodeName.toLowerCase();return"input"===name&&"button"===elem.type||"button"===name},text:function(elem){var attr;return"input"===elem.nodeName.toLowerCase()&&"text"===elem.type&&(null==(attr=elem.getAttribute("type"))||"text"===attr.toLowerCase())},first:createPositionalPseudo(function(){return[0]}),last:createPositionalPseudo(function(matchIndexes,length){return[length-1]}),eq:createPositionalPseudo(function(matchIndexes,length,argument){return[argument<0?argument+length:argument]}),even:createPositionalPseudo(function(matchIndexes,length){for(var i=0;i<length;i+=2)matchIndexes.push(i);return matchIndexes}),odd:createPositionalPseudo(function(matchIndexes,length){for(var i=1;i<length;i+=2)matchIndexes.push(i);return matchIndexes}),lt:createPositionalPseudo(function(matchIndexes,length,argument){for(var i=argument<0?argument+length:argument;--i>=0;)matchIndexes.push(i);return matchIndexes}),gt:createPositionalPseudo(function(matchIndexes,length,argument){for(var i=argument<0?argument+length:argument;++i<length;)matchIndexes.push(i);return matchIndexes})}},Expr.pseudos.nth=Expr.pseudos.eq;for(i in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})Expr.pseudos[i]=function(type){return function(elem){return"input"===elem.nodeName.toLowerCase()&&elem.type===type}}(i);for(i in{submit:!0,reset:!0})Expr.pseudos[i]=function(type){return function(elem){var name=elem.nodeName.toLowerCase();return("input"===name||"button"===name)&&elem.type===type}}(i);return setFilters.prototype=Expr.filters=Expr.pseudos,Expr.setFilters=new setFilters,tokenize=Sizzle.tokenize=function(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+" "];if(cached)return parseOnly?0:cached.slice(0);for(soFar=selector,groups=[],preFilters=Expr.preFilter;soFar;){matched&&!(match=rcomma.exec(soFar))||(match&&(soFar=soFar.slice(match[0].length)||soFar),groups.push(tokens=[])),matched=!1,(match=rcombinators.exec(soFar))&&(matched=match.shift(),tokens.push({value:matched,type:match[0].replace(rtrim," ")}),soFar=soFar.slice(matched.length));for(type in Expr.filter)!(match=matchExpr[type].exec(soFar))||preFilters[type]&&!(match=preFilters[type](match))||(matched=match.shift(),tokens.push({value:matched,type:type,matches:match}),soFar=soFar.slice(matched.length));if(!matched)break}return parseOnly?soFar.length:soFar?Sizzle.error(selector):tokenCache(selector,groups).slice(0)},compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){for(match||(match=tokenize(selector)),i=match.length;i--;)cached=matcherFromTokens(match[i]),cached[expando]?setMatchers.push(cached):elementMatchers.push(cached);cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers)),cached.selector=selector}return cached},select=Sizzle.select=function(selector,context,results,seed){var i,tokens,token,type,find,compiled="function"==typeof selector&&selector,match=!seed&&tokenize(selector=compiled.selector||selector);if(results=results||[],1===match.length){if(tokens=match[0]=match[0].slice(0),tokens.length>2&&"ID"===(token=tokens[0]).type&&9===context.nodeType&&documentIsHTML&&Expr.relative[tokens[1].type]){if(!(context=(Expr.find.ID(token.matches[0].replace(runescape,funescape),context)||[])[0]))return results;compiled&&(context=context.parentNode),selector=selector.slice(tokens.shift().value.length)}for(i=matchExpr.needsContext.test(selector)?0:tokens.length;i--&&(token=tokens[i],!Expr.relative[type=token.type]);)if((find=Expr.find[type])&&(seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context))){if(tokens.splice(i,1),!(selector=seed.length&&toSelector(tokens)))return push.apply(results,seed),results;break}}return(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,!context||rsibling.test(selector)&&testContext(context.parentNode)||context),results},support.sortStable=expando.split("").sort(sortOrder).join("")===expando,support.detectDuplicates=!!hasDuplicate,setDocument(),support.sortDetached=assert(function(el){return 1&el.compareDocumentPosition(document.createElement("fieldset"))}),assert(function(el){return el.innerHTML="<a href='#'></a>","#"===el.firstChild.getAttribute("href")})||addHandle("type|href|height|width",function(elem,name,isXML){if(!isXML)return elem.getAttribute(name,"type"===name.toLowerCase()?1:2)}),support.attributes&&assert(function(el){return el.innerHTML="<input/>",el.firstChild.setAttribute("value",""),""===el.firstChild.getAttribute("value")})||addHandle("value",function(elem,name,isXML){if(!isXML&&"input"===elem.nodeName.toLowerCase())return elem.defaultValue}),assert(function(el){return null==el.getAttribute("disabled")})||addHandle(booleans,function(elem,name,isXML){var val;if(!isXML)return!0===elem[name]?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null}),Sizzle}(window);jQuery.find=Sizzle,jQuery.expr=Sizzle.selectors,jQuery.expr[":"]=jQuery.expr.pseudos,jQuery.uniqueSort=jQuery.unique=Sizzle.uniqueSort,jQuery.text=Sizzle.getText,jQuery.isXMLDoc=Sizzle.isXML,jQuery.contains=Sizzle.contains,jQuery.escapeSelector=Sizzle.escape;var dir=function(elem,dir,until){for(var matched=[],truncate=void 0!==until;(elem=elem[dir])&&9!==elem.nodeType;)if(1===elem.nodeType){if(truncate&&jQuery(elem).is(until))break;matched.push(elem)}return matched},siblings=function(n,elem){for(var matched=[];n;n=n.nextSibling)1===n.nodeType&&n!==elem&&matched.push(n);return matched},rneedsContext=jQuery.expr.match.needsContext,rsingleTag=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;jQuery.filter=function(expr,elems,not){var elem=elems[0];return not&&(expr=":not("+expr+")"),1===elems.length&&1===elem.nodeType?jQuery.find.matchesSelector(elem,expr)?[elem]:[]:jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return 1===elem.nodeType}))},jQuery.fn.extend({find:function(selector){var i,ret,len=this.length,self=this;if("string"!=typeof selector)return this.pushStack(jQuery(selector).filter(function(){for(i=0;i<len;i++)if(jQuery.contains(self[i],this))return!0}));for(ret=this.pushStack([]),i=0;i<len;i++)jQuery.find(selector,self[i],ret);return len>1?jQuery.uniqueSort(ret):ret},filter:function(selector){return this.pushStack(winnow(this,selector||[],!1))},not:function(selector){return this.pushStack(winnow(this,selector||[],!0))},is:function(selector){return!!winnow(this,"string"==typeof selector&&rneedsContext.test(selector)?jQuery(selector):selector||[],!1).length}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(jQuery.fn.init=function(selector,context,root){var match,elem;if(!selector)return this;if(root=root||rootjQuery,"string"==typeof selector){if(!(match="<"===selector[0]&&">"===selector[selector.length-1]&&selector.length>=3?[null,selector,null]:rquickExpr.exec(selector))||!match[1]&&context)return!context||context.jquery?(context||root).find(selector):this.constructor(context).find(selector);if(match[1]){if(context=context instanceof jQuery?context[0]:context,jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,!0)),rsingleTag.test(match[1])&&jQuery.isPlainObject(context))for(match in context)isFunction(this[match])?this[match](context[match]):this.attr(match,context[match]);return this}return elem=document.getElementById(match[2]),elem&&(this[0]=elem,this.length=1),this}return selector.nodeType?(this[0]=selector,this.length=1,this):isFunction(selector)?void 0!==root.ready?root.ready(selector):selector(jQuery):jQuery.makeArray(selector,this)}).prototype=jQuery.fn,rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:!0,contents:!0,next:!0,prev:!0};jQuery.fn.extend({has:function(target){var targets=jQuery(target,this),l=targets.length;return this.filter(function(){for(var i=0;i<l;i++)if(jQuery.contains(this,targets[i]))return!0})},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],targets="string"!=typeof selectors&&jQuery(selectors);if(!rneedsContext.test(selectors))for(;i<l;i++)for(cur=this[i];cur&&cur!==context;cur=cur.parentNode)if(cur.nodeType<11&&(targets?targets.index(cur)>-1:1===cur.nodeType&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break}return this.pushStack(matched.length>1?jQuery.uniqueSort(matched):matched)},index:function(elem){return elem?"string"==typeof elem?indexOf.call(jQuery(elem),this[0]):indexOf.call(this,elem.jquery?elem[0]:elem):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(selector,context){return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(),jQuery(selector,context))))},addBack:function(selector){return this.add(null==selector?this.prevObject:this.prevObject.filter(selector))}}),jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&11!==parent.nodeType?parent:null},parents:function(elem){return dir(elem,"parentNode")},parentsUntil:function(elem,i,until){return dir(elem,"parentNode",until)},next:function(elem){return sibling(elem,"nextSibling")},prev:function(elem){return sibling(elem,"previousSibling")},nextAll:function(elem){return dir(elem,"nextSibling")},prevAll:function(elem){return dir(elem,"previousSibling")},nextUntil:function(elem,i,until){return dir(elem,"nextSibling",until)},prevUntil:function(elem,i,until){return dir(elem,"previousSibling",until)},siblings:function(elem){return siblings((elem.parentNode||{}).firstChild,elem)},children:function(elem){return siblings(elem.firstChild)},contents:function(elem){return nodeName(elem,"iframe")?elem.contentDocument:(nodeName(elem,"template")&&(elem=elem.content||elem),jQuery.merge([],elem.childNodes))}},function(name,fn){jQuery.fn[name]=function(until,selector){var matched=jQuery.map(this,fn,until);return"Until"!==name.slice(-5)&&(selector=until),selector&&"string"==typeof selector&&(matched=jQuery.filter(selector,matched)),this.length>1&&(guaranteedUnique[name]||jQuery.uniqueSort(matched),rparentsprev.test(name)&&matched.reverse()),this.pushStack(matched)}});var rnothtmlwhite=/[^\x20\t\r\n\f]+/g;jQuery.Callbacks=function(options){options="string"==typeof options?createOptions(options):jQuery.extend({},options);var firing,memory,fired,locked,list=[],queue=[],firingIndex=-1,fire=function(){for(locked=locked||options.once,fired=firing=!0;queue.length;firingIndex=-1)for(memory=queue.shift();++firingIndex<list.length;)!1===list[firingIndex].apply(memory[0],memory[1])&&options.stopOnFalse&&(firingIndex=list.length,memory=!1);options.memory||(memory=!1),firing=!1,locked&&(list=memory?[]:"")},self={add:function(){return list&&(memory&&!firing&&(firingIndex=list.length-1,queue.push(memory)),function add(args){jQuery.each(args,function(_,arg){isFunction(arg)?options.unique&&self.has(arg)||list.push(arg):arg&&arg.length&&"string"!==toType(arg)&&add(arg)})}(arguments),memory&&!firing&&fire()),this},remove:function(){return jQuery.each(arguments,function(_,arg){for(var index;(index=jQuery.inArray(arg,list,index))>-1;)list.splice(index,1),index<=firingIndex&&firingIndex--}),this},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:list.length>0},empty:function(){return list&&(list=[]),this},disable:function(){return locked=queue=[],list=memory="",this},disabled:function(){return!list},lock:function(){return locked=queue=[],memory||firing||(list=memory=""),this},locked:function(){return!!locked},fireWith:function(context,args){return locked||(args=args||[],args=[context,args.slice?args.slice():args],queue.push(args),firing||fire()),this},fire:function(){return self.fireWith(this,arguments),this},fired:function(){return!!fired}};return self},jQuery.extend({Deferred:function(func){var tuples=[["notify","progress",jQuery.Callbacks("memory"),jQuery.Callbacks("memory"),2],["resolve","done",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),0,"resolved"],["reject","fail",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),1,"rejected"]],state="pending",promise={state:function(){return state},always:function(){return deferred.done(arguments).fail(arguments),this},catch:function(fn){return promise.then(null,fn)},pipe:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(i,tuple){var fn=isFunction(fns[tuple[4]])&&fns[tuple[4]];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);returned&&isFunction(returned.promise)?returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject):newDefer[tuple[0]+"With"](this,fn?[returned]:arguments)})}),fns=null}).promise()},then:function(onFulfilled,onRejected,onProgress){function resolve(depth,deferred,handler,special){return function(){var that=this,args=arguments,mightThrow=function(){var returned,then;if(!(depth<maxDepth)){if((returned=handler.apply(that,args))===deferred.promise())throw new TypeError("Thenable self-resolution");then=returned&&("object"==typeof returned||"function"==typeof returned)&&returned.then,isFunction(then)?special?then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special)):(maxDepth++,then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special),resolve(maxDepth,deferred,Identity,deferred.notifyWith))):(handler!==Identity&&(that=void 0,args=[returned]),(special||deferred.resolveWith)(that,args))}},process=special?mightThrow:function(){try{mightThrow()}catch(e){jQuery.Deferred.exceptionHook&&jQuery.Deferred.exceptionHook(e,process.stackTrace),depth+1>=maxDepth&&(handler!==Thrower&&(that=void 0,args=[e]),deferred.rejectWith(that,args))}};depth?process():(jQuery.Deferred.getStackHook&&(process.stackTrace=jQuery.Deferred.getStackHook()),window.setTimeout(process))}}var maxDepth=0;return jQuery.Deferred(function(newDefer){tuples[0][3].add(resolve(0,newDefer,isFunction(onProgress)?onProgress:Identity,newDefer.notifyWith)),tuples[1][3].add(resolve(0,newDefer,isFunction(onFulfilled)?onFulfilled:Identity)),tuples[2][3].add(resolve(0,newDefer,isFunction(onRejected)?onRejected:Thrower))}).promise()},promise:function(obj){return null!=obj?jQuery.extend(obj,promise):promise}},deferred={};return jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[5];promise[tuple[1]]=list.add,stateString&&list.add(function(){state=stateString},tuples[3-i][2].disable,tuples[3-i][3].disable,tuples[0][2].lock,tuples[0][3].lock),list.add(tuple[3].fire),deferred[tuple[0]]=function(){return deferred[tuple[0]+"With"](this===deferred?void 0:this,arguments),this},deferred[tuple[0]+"With"]=list.fireWith}),promise.promise(deferred),func&&func.call(deferred,deferred),deferred},when:function(singleValue){var remaining=arguments.length,i=remaining,resolveContexts=Array(i),resolveValues=slice.call(arguments),master=jQuery.Deferred(),updateFunc=function(i){return function(value){resolveContexts[i]=this,resolveValues[i]=arguments.length>1?slice.call(arguments):value,--remaining||master.resolveWith(resolveContexts,resolveValues)}};if(remaining<=1&&(adoptValue(singleValue,master.done(updateFunc(i)).resolve,master.reject,!remaining),"pending"===master.state()||isFunction(resolveValues[i]&&resolveValues[i].then)))return master.then();for(;i--;)adoptValue(resolveValues[i],updateFunc(i),master.reject);return master.promise()}});var rerrorNames=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;jQuery.Deferred.exceptionHook=function(error,stack){window.console&&window.console.warn&&error&&rerrorNames.test(error.name)&&window.console.warn("jQuery.Deferred exception: "+error.message,error.stack,stack)},jQuery.readyException=function(error){window.setTimeout(function(){throw error})};var readyList=jQuery.Deferred();jQuery.fn.ready=function(fn){return readyList.then(fn).catch(function(error){jQuery.readyException(error)}),this},jQuery.extend({isReady:!1,readyWait:1,ready:function(wait){(!0===wait?--jQuery.readyWait:jQuery.isReady)||(jQuery.isReady=!0,!0!==wait&&--jQuery.readyWait>0||readyList.resolveWith(document,[jQuery]))}}),jQuery.ready.then=readyList.then,"complete"===document.readyState||"loading"!==document.readyState&&!document.documentElement.doScroll?window.setTimeout(jQuery.ready):(document.addEventListener("DOMContentLoaded",completed),window.addEventListener("load",completed));var access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=null==key;if("object"===toType(key)){chainable=!0;for(i in key)access(elems,fn,i,key[i],!0,emptyGet,raw)}else if(void 0!==value&&(chainable=!0,isFunction(value)||(raw=!0),bulk&&(raw?(fn.call(elems,value),fn=null):(bulk=fn,fn=function(elem,key,value){return bulk.call(jQuery(elem),value)})),fn))for(;i<len;i++)fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)));return chainable?elems:bulk?fn.call(elems):len?fn(elems[0],key):emptyGet},rmsPrefix=/^-ms-/,rdashAlpha=/-([a-z])/g,acceptData=function(owner){return 1===owner.nodeType||9===owner.nodeType||!+owner.nodeType};Data.uid=1,Data.prototype={cache:function(owner){var value=owner[this.expando];return value||(value={},acceptData(owner)&&(owner.nodeType?owner[this.expando]=value:Object.defineProperty(owner,this.expando,{value:value,configurable:!0}))),value},set:function(owner,data,value){var prop,cache=this.cache(owner);if("string"==typeof data)cache[camelCase(data)]=value;else for(prop in data)cache[camelCase(prop)]=data[prop];return cache},get:function(owner,key){return void 0===key?this.cache(owner):owner[this.expando]&&owner[this.expando][camelCase(key)]},access:function(owner,key,value){return void 0===key||key&&"string"==typeof key&&void 0===value?this.get(owner,key):(this.set(owner,key,value),void 0!==value?value:key)},remove:function(owner,key){var i,cache=owner[this.expando];if(void 0!==cache){if(void 0!==key){Array.isArray(key)?key=key.map(camelCase):(key=camelCase(key),key=key in cache?[key]:key.match(rnothtmlwhite)||[]),i=key.length;for(;i--;)delete cache[key[i]]}(void 0===key||jQuery.isEmptyObject(cache))&&(owner.nodeType?owner[this.expando]=void 0:delete owner[this.expando])}},hasData:function(owner){var cache=owner[this.expando];return void 0!==cache&&!jQuery.isEmptyObject(cache)}};var dataPriv=new Data,dataUser=new Data,rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/[A-Z]/g;jQuery.extend({hasData:function(elem){return dataUser.hasData(elem)||dataPriv.hasData(elem)},data:function(elem,name,data){return dataUser.access(elem,name,data)},removeData:function(elem,name){dataUser.remove(elem,name)},_data:function(elem,name,data){return dataPriv.access(elem,name,data)},_removeData:function(elem,name){dataPriv.remove(elem,name)}}),jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(void 0===key){if(this.length&&(data=dataUser.get(elem),1===elem.nodeType&&!dataPriv.get(elem,"hasDataAttrs"))){for(i=attrs.length;i--;)attrs[i]&&(name=attrs[i].name,0===name.indexOf("data-")&&(name=camelCase(name.slice(5)),dataAttr(elem,name,data[name])));dataPriv.set(elem,"hasDataAttrs",!0)}return data}return"object"==typeof key?this.each(function(){dataUser.set(this,key)}):access(this,function(value){var data;if(elem&&void 0===value){if(void 0!==(data=dataUser.get(elem,key)))return data;if(void 0!==(data=dataAttr(elem,key)))return data}else this.each(function(){dataUser.set(this,key,value)})},null,value,arguments.length>1,null,!0)},removeData:function(key){return this.each(function(){dataUser.remove(this,key)})}}),jQuery.extend({queue:function(elem,type,data){var queue;if(elem)return type=(type||"fx")+"queue",queue=dataPriv.get(elem,type),data&&(!queue||Array.isArray(data)?queue=dataPriv.access(elem,type,jQuery.makeArray(data)):queue.push(data)),queue||[]},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type)};"inprogress"===fn&&(fn=queue.shift(),startLength--),fn&&("fx"===type&&queue.unshift("inprogress"),delete hooks.stop,fn.call(elem,next,hooks)),!startLength&&hooks&&hooks.empty.fire()},_queueHooks:function(elem,type){var key=type+"queueHooks";return dataPriv.get(elem,key)||dataPriv.access(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){dataPriv.remove(elem,[type+"queue",key])})})}}),jQuery.fn.extend({queue:function(type,data){var setter=2;return"string"!=typeof type&&(data=type,type="fx",setter--),arguments.length<setter?jQuery.queue(this[0],type):void 0===data?this:this.each(function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type),"fx"===type&&"inprogress"!==queue[0]&&jQuery.dequeue(this,type)})},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type)})},clearQueue:function(type){return this.queue(type||"fx",[])},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){--count||defer.resolveWith(elements,[elements])};for("string"!=typeof type&&(obj=type,type=void 0),type=type||"fx";i--;)(tmp=dataPriv.get(elements[i],type+"queueHooks"))&&tmp.empty&&(count++,tmp.empty.add(resolve));return resolve(),defer.promise(obj)}});var pnum=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,rcssNum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i"),cssExpand=["Top","Right","Bottom","Left"],isHiddenWithinTree=function(elem,el){return elem=el||elem,"none"===elem.style.display||""===elem.style.display&&jQuery.contains(elem.ownerDocument,elem)&&"none"===jQuery.css(elem,"display")},swap=function(elem,options,callback,args){var ret,name,old={};for(name in options)old[name]=elem.style[name],elem.style[name]=options[name];ret=callback.apply(elem,args||[]);for(name in options)elem.style[name]=old[name];return ret},defaultDisplayMap={};jQuery.fn.extend({show:function(){return showHide(this,!0)},hide:function(){return showHide(this)},toggle:function(state){return"boolean"==typeof state?state?this.show():this.hide():this.each(function(){isHiddenWithinTree(this)?jQuery(this).show():jQuery(this).hide()})}});var rcheckableType=/^(?:checkbox|radio)$/i,rtagName=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,rscriptType=/^$|^module$|\/(?:java|ecma)script/i,wrapMap={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};wrapMap.optgroup=wrapMap.option,wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead,wrapMap.th=wrapMap.td;var rhtml=/<|&#?\w+;/;!function(){var fragment=document.createDocumentFragment(),div=fragment.appendChild(document.createElement("div")),input=document.createElement("input");input.setAttribute("type","radio"),input.setAttribute("checked","checked"),input.setAttribute("name","t"),div.appendChild(input),support.checkClone=div.cloneNode(!0).cloneNode(!0).lastChild.checked,div.innerHTML="<textarea>x</textarea>",support.noCloneChecked=!!div.cloneNode(!0).lastChild.defaultValue}();var documentElement=document.documentElement,rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,rtypenamespace=/^([^.]*)(?:\.(.+)|)/;jQuery.event={global:{},add:function(elem,types,handler,data,selector){var handleObjIn,eventHandle,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.get(elem);if(elemData)for(handler.handler&&(handleObjIn=handler,handler=handleObjIn.handler,selector=handleObjIn.selector),selector&&jQuery.find.matchesSelector(documentElement,selector),handler.guid||(handler.guid=jQuery.guid++),(events=elemData.events)||(events=elemData.events={}),(eventHandle=elemData.handle)||(eventHandle=elemData.handle=function(e){return void 0!==jQuery&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):void 0}),types=(types||"").match(rnothtmlwhite)||[""],t=types.length;t--;)tmp=rtypenamespace.exec(types[t])||[],type=origType=tmp[1],namespaces=(tmp[2]||"").split(".").sort(),type&&(special=jQuery.event.special[type]||{},type=(selector?special.delegateType:special.bindType)||type,special=jQuery.event.special[type]||{},handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn),(handlers=events[type])||(handlers=events[type]=[],handlers.delegateCount=0,special.setup&&!1!==special.setup.call(elem,data,namespaces,eventHandle)||elem.addEventListener&&elem.addEventListener(type,eventHandle)),special.add&&(special.add.call(elem,handleObj),handleObj.handler.guid||(handleObj.handler.guid=handler.guid)),selector?handlers.splice(handlers.delegateCount++,0,handleObj):handlers.push(handleObj),jQuery.event.global[type]=!0)},remove:function(elem,types,handler,selector,mappedTypes){var j,origCount,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.hasData(elem)&&dataPriv.get(elem);if(elemData&&(events=elemData.events)){for(types=(types||"").match(rnothtmlwhite)||[""],t=types.length;t--;)if(tmp=rtypenamespace.exec(types[t])||[],type=origType=tmp[1],namespaces=(tmp[2]||"").split(".").sort(),type){for(special=jQuery.event.special[type]||{},type=(selector?special.delegateType:special.bindType)||type,handlers=events[type]||[],tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"),origCount=j=handlers.length;j--;)handleObj=handlers[j],!mappedTypes&&origType!==handleObj.origType||handler&&handler.guid!==handleObj.guid||tmp&&!tmp.test(handleObj.namespace)||selector&&selector!==handleObj.selector&&("**"!==selector||!handleObj.selector)||(handlers.splice(j,1),handleObj.selector&&handlers.delegateCount--,special.remove&&special.remove.call(elem,handleObj));origCount&&!handlers.length&&(special.teardown&&!1!==special.teardown.call(elem,namespaces,elemData.handle)||jQuery.removeEvent(elem,type,elemData.handle),delete events[type])}else for(type in events)jQuery.event.remove(elem,type+types[t],handler,selector,!0);jQuery.isEmptyObject(events)&&dataPriv.remove(elem,"handle events")}},dispatch:function(nativeEvent){var i,j,ret,matched,handleObj,handlerQueue,event=jQuery.event.fix(nativeEvent),args=new Array(arguments.length),handlers=(dataPriv.get(this,"events")||{})[event.type]||[],special=jQuery.event.special[event.type]||{};for(args[0]=event,i=1;i<arguments.length;i++)args[i]=arguments[i];if(event.delegateTarget=this,!special.preDispatch||!1!==special.preDispatch.call(this,event)){for(handlerQueue=jQuery.event.handlers.call(this,event,handlers),i=0;(matched=handlerQueue[i++])&&!event.isPropagationStopped();)for(event.currentTarget=matched.elem,j=0;(handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped();)event.rnamespace&&!event.rnamespace.test(handleObj.namespace)||(event.handleObj=handleObj,event.data=handleObj.data,void 0!==(ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args))&&!1===(event.result=ret)&&(event.preventDefault(),event.stopPropagation()));return special.postDispatch&&special.postDispatch.call(this,event),event.result}},handlers:function(event,handlers){var i,handleObj,sel,matchedHandlers,matchedSelectors,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&!("click"===event.type&&event.button>=1))for(;cur!==this;cur=cur.parentNode||this)if(1===cur.nodeType&&("click"!==event.type||!0!==cur.disabled)){for(matchedHandlers=[],matchedSelectors={},i=0;i<delegateCount;i++)handleObj=handlers[i],sel=handleObj.selector+" ",void 0===matchedSelectors[sel]&&(matchedSelectors[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>-1:jQuery.find(sel,this,null,[cur]).length),matchedSelectors[sel]&&matchedHandlers.push(handleObj);matchedHandlers.length&&handlerQueue.push({elem:cur,handlers:matchedHandlers})}return cur=this,delegateCount<handlers.length&&handlerQueue.push({elem:cur,handlers:handlers.slice(delegateCount)}),handlerQueue},addProp:function(name,hook){Object.defineProperty(jQuery.Event.prototype,name,{enumerable:!0,configurable:!0,get:isFunction(hook)?function(){if(this.originalEvent)return hook(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[name]},set:function(value){Object.defineProperty(this,name,{enumerable:!0,configurable:!0,writable:!0,value:value})}})},fix:function(originalEvent){return originalEvent[jQuery.expando]?originalEvent:new jQuery.Event(originalEvent)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==safeActiveElement()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===safeActiveElement()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&nodeName(this,"input"))return this.click(),!1},_default:function(event){return nodeName(event.target,"a")}},beforeunload:{postDispatch:function(event){void 0!==event.result&&event.originalEvent&&(event.originalEvent.returnValue=event.result)}}}},jQuery.removeEvent=function(elem,type,handle){elem.removeEventListener&&elem.removeEventListener(type,handle)},jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event))return new jQuery.Event(src,props);src&&src.type?(this.originalEvent=src,this.type=src.type,this.isDefaultPrevented=src.defaultPrevented||void 0===src.defaultPrevented&&!1===src.returnValue?returnTrue:returnFalse,this.target=src.target&&3===src.target.nodeType?src.target.parentNode:src.target,this.currentTarget=src.currentTarget,this.relatedTarget=src.relatedTarget):this.type=src,props&&jQuery.extend(this,props),this.timeStamp=src&&src.timeStamp||Date.now(),this[jQuery.expando]=!0},jQuery.Event.prototype={constructor:jQuery.Event,isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},jQuery.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(event){var button=event.button;return null==event.which&&rkeyEvent.test(event.type)?null!=event.charCode?event.charCode:event.keyCode:!event.which&&void 0!==button&&rmouseEvent.test(event.type)?1&button?1:2&button?3:4&button?2:0:event.which}},jQuery.event.addProp),jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(orig,fix){jQuery.event.special[orig]={delegateType:fix,bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;return related&&(related===target||jQuery.contains(target,related))||(event.type=handleObj.origType,ret=handleObj.handler.apply(this,arguments),event.type=fix),ret}}}),jQuery.fn.extend({on:function(types,selector,data,fn){return on(this,types,selector,data,fn)},one:function(types,selector,data,fn){return on(this,types,selector,data,fn,1)},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj)return handleObj=types.handleObj,jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler),this;if("object"==typeof types){for(type in types)this.off(type,selector,types[type]);return this}return!1!==selector&&"function"!=typeof selector||(fn=selector,selector=void 0),!1===fn&&(fn=returnFalse),this.each(function(){jQuery.event.remove(this,types,fn,selector)})}});var rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,rnoInnerhtml=/<script|<style|<link/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rcleanScript=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;jQuery.extend({htmlPrefilter:function(html){return html.replace(rxhtmlTag,"<$1></$2>")},clone:function(elem,dataAndEvents,deepDataAndEvents){var i,l,srcElements,destElements,clone=elem.cloneNode(!0),inPage=jQuery.contains(elem.ownerDocument,elem);if(!(support.noCloneChecked||1!==elem.nodeType&&11!==elem.nodeType||jQuery.isXMLDoc(elem)))for(destElements=getAll(clone),srcElements=getAll(elem),i=0,l=srcElements.length;i<l;i++)fixInput(srcElements[i],destElements[i]);if(dataAndEvents)if(deepDataAndEvents)for(srcElements=srcElements||getAll(elem),destElements=destElements||getAll(clone),i=0,l=srcElements.length;i<l;i++)cloneCopyEvent(srcElements[i],destElements[i]);else cloneCopyEvent(elem,clone);return destElements=getAll(clone,"script"),destElements.length>0&&setGlobalEval(destElements,!inPage&&getAll(elem,"script")),clone},cleanData:function(elems){for(var data,elem,type,special=jQuery.event.special,i=0;void 0!==(elem=elems[i]);i++)if(acceptData(elem)){if(data=elem[dataPriv.expando]){if(data.events)for(type in data.events)special[type]?jQuery.event.remove(elem,type):jQuery.removeEvent(elem,type,data.handle);elem[dataPriv.expando]=void 0}elem[dataUser.expando]&&(elem[dataUser.expando]=void 0)}}}),jQuery.fn.extend({detach:function(selector){return remove(this,selector,!0)},remove:function(selector){return remove(this,selector)},text:function(value){return access(this,function(value){return void 0===value?jQuery.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=value)})},null,value,arguments.length)},append:function(){return domManip(this,arguments,function(elem){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){manipulationTarget(this,elem).appendChild(elem)}})},prepend:function(){return domManip(this,arguments,function(elem){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild)}})},before:function(){return domManip(this,arguments,function(elem){this.parentNode&&this.parentNode.insertBefore(elem,this)})},after:function(){return domManip(this,arguments,function(elem){this.parentNode&&this.parentNode.insertBefore(elem,this.nextSibling)})},empty:function(){for(var elem,i=0;null!=(elem=this[i]);i++)1===elem.nodeType&&(jQuery.cleanData(getAll(elem,!1)),elem.textContent="");return this},clone:function(dataAndEvents,deepDataAndEvents){return dataAndEvents=null!=dataAndEvents&&dataAndEvents,deepDataAndEvents=null==deepDataAndEvents?dataAndEvents:deepDataAndEvents,this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents)})},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(void 0===value&&1===elem.nodeType)return elem.innerHTML;if("string"==typeof value&&!rnoInnerhtml.test(value)&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=jQuery.htmlPrefilter(value);try{for(;i<l;i++)elem=this[i]||{},1===elem.nodeType&&(jQuery.cleanData(getAll(elem,!1)),elem.innerHTML=value);elem=0}catch(e){}}elem&&this.empty().append(value)},null,value,arguments.length)},replaceWith:function(){var ignored=[];return domManip(this,arguments,function(elem){var parent=this.parentNode;jQuery.inArray(this,ignored)<0&&(jQuery.cleanData(getAll(this)),parent&&parent.replaceChild(elem,this))},ignored)}}),jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){for(var elems,ret=[],insert=jQuery(selector),last=insert.length-1,i=0;i<=last;i++)elems=i===last?this:this.clone(!0),jQuery(insert[i])[original](elems),push.apply(ret,elems.get());return this.pushStack(ret)}});var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i"),getStyles=function(elem){var view=elem.ownerDocument.defaultView;return view&&view.opener||(view=window),view.getComputedStyle(elem)},rboxStyle=new RegExp(cssExpand.join("|"),"i");!function(){function computeStyleTests(){if(div){container.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",div.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",documentElement.appendChild(container).appendChild(div);var divStyle=window.getComputedStyle(div);pixelPositionVal="1%"!==divStyle.top,reliableMarginLeftVal=12===roundPixelMeasures(divStyle.marginLeft),div.style.right="60%",pixelBoxStylesVal=36===roundPixelMeasures(divStyle.right),boxSizingReliableVal=36===roundPixelMeasures(divStyle.width),div.style.position="absolute",scrollboxSizeVal=36===div.offsetWidth||"absolute",documentElement.removeChild(container),div=null}}function roundPixelMeasures(measure){return Math.round(parseFloat(measure))}var pixelPositionVal,boxSizingReliableVal,scrollboxSizeVal,pixelBoxStylesVal,reliableMarginLeftVal,container=document.createElement("div"),div=document.createElement("div");div.style&&(div.style.backgroundClip="content-box",div.cloneNode(!0).style.backgroundClip="",support.clearCloneStyle="content-box"===div.style.backgroundClip,jQuery.extend(support,{boxSizingReliable:function(){return computeStyleTests(),boxSizingReliableVal},pixelBoxStyles:function(){return computeStyleTests(),pixelBoxStylesVal},pixelPosition:function(){return computeStyleTests(),pixelPositionVal},reliableMarginLeft:function(){return computeStyleTests(),reliableMarginLeftVal},scrollboxSize:function(){return computeStyleTests(),scrollboxSizeVal}}))}();var rdisplayswap=/^(none|table(?!-c[ea]).+)/,rcustomProp=/^--/,cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"},cssPrefixes=["Webkit","Moz","ms"],emptyStyle=document.createElement("div").style;jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return""===ret?"1":ret}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(elem,name,value,extra){if(elem&&3!==elem.nodeType&&8!==elem.nodeType&&elem.style){var ret,type,hooks,origName=camelCase(name),isCustomProp=rcustomProp.test(name),style=elem.style;if(isCustomProp||(name=finalPropName(origName)),hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName],void 0===value)return hooks&&"get"in hooks&&void 0!==(ret=hooks.get(elem,!1,extra))?ret:style[name];type=typeof value,"string"===type&&(ret=rcssNum.exec(value))&&ret[1]&&(value=adjustCSS(elem,name,ret),type="number"),null!=value&&value===value&&("number"===type&&(value+=ret&&ret[3]||(jQuery.cssNumber[origName]?"":"px")),support.clearCloneStyle||""!==value||0!==name.indexOf("background")||(style[name]="inherit"),hooks&&"set"in hooks&&void 0===(value=hooks.set(elem,value,extra))||(isCustomProp?style.setProperty(name,value):style[name]=value))}},css:function(elem,name,extra,styles){var val,num,hooks,origName=camelCase(name);return rcustomProp.test(name)||(name=finalPropName(origName)),hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName],hooks&&"get"in hooks&&(val=hooks.get(elem,!0,extra)),void 0===val&&(val=curCSS(elem,name,styles)),"normal"===val&&name in cssNormalTransform&&(val=cssNormalTransform[name]),""===extra||extra?(num=parseFloat(val),!0===extra||isFinite(num)?num||0:val):val}}),jQuery.each(["height","width"],function(i,dimension){jQuery.cssHooks[dimension]={get:function(elem,computed,extra){if(computed)return!rdisplayswap.test(jQuery.css(elem,"display"))||elem.getClientRects().length&&elem.getBoundingClientRect().width?getWidthOrHeight(elem,dimension,extra):swap(elem,cssShow,function(){return getWidthOrHeight(elem,dimension,extra)})},set:function(elem,value,extra){var matches,styles=getStyles(elem),isBorderBox="border-box"===jQuery.css(elem,"boxSizing",!1,styles),subtract=extra&&boxModelAdjustment(elem,dimension,extra,isBorderBox,styles);return isBorderBox&&support.scrollboxSize()===styles.position&&(subtract-=Math.ceil(elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-parseFloat(styles[dimension])-boxModelAdjustment(elem,dimension,"border",!1,styles)-.5)),subtract&&(matches=rcssNum.exec(value))&&"px"!==(matches[3]||"px")&&(elem.style[dimension]=value,value=jQuery.css(elem,dimension)),setPositiveNumber(elem,value,subtract)}}}),jQuery.cssHooks.marginLeft=addGetHookIf(support.reliableMarginLeft,function(elem,computed){if(computed)return(parseFloat(curCSS(elem,"marginLeft"))||elem.getBoundingClientRect().left-swap(elem,{marginLeft:0},function(){return elem.getBoundingClientRect().left}))+"px"}),jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){for(var i=0,expanded={},parts="string"==typeof value?value.split(" "):[value];i<4;i++)expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0];return expanded}},"margin"!==prefix&&(jQuery.cssHooks[prefix+suffix].set=setPositiveNumber)}),jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(Array.isArray(name)){for(styles=getStyles(elem),len=name.length;i<len;i++)map[name[i]]=jQuery.css(elem,name[i],!1,styles);return map}return void 0!==value?jQuery.style(elem,name,value):jQuery.css(elem,name)},name,value,arguments.length>1)}}),jQuery.Tween=Tween,Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem,this.prop=prop,this.easing=easing||jQuery.easing._default,this.options=options,this.start=this.now=this.cur(),this.end=end,this.unit=unit||(jQuery.cssNumber[prop]?"":"px")},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this)},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];return this.options.duration?this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration):this.pos=eased=percent,this.now=(this.end-this.start)*eased+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),hooks&&hooks.set?hooks.set(this):Tween.propHooks._default.set(this),this}},Tween.prototype.init.prototype=Tween.prototype,Tween.propHooks={_default:{get:function(tween){var result;return 1!==tween.elem.nodeType||null!=tween.elem[tween.prop]&&null==tween.elem.style[tween.prop]?tween.elem[tween.prop]:(result=jQuery.css(tween.elem,tween.prop,""),result&&"auto"!==result?result:0)},set:function(tween){jQuery.fx.step[tween.prop]?jQuery.fx.step[tween.prop](tween):1!==tween.elem.nodeType||null==tween.elem.style[jQuery.cssProps[tween.prop]]&&!jQuery.cssHooks[tween.prop]?tween.elem[tween.prop]=tween.now:jQuery.style(tween.elem,tween.prop,tween.now+tween.unit)}}},Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){tween.elem.nodeType&&tween.elem.parentNode&&(tween.elem[tween.prop]=tween.now)}},jQuery.easing={linear:function(p){return p},swing:function(p){return.5-Math.cos(p*Math.PI)/2},_default:"swing"},jQuery.fx=Tween.prototype.init,jQuery.fx.step={};var fxNow,inProgress,rfxtypes=/^(?:toggle|show|hide)$/,rrun=/queueHooks$/;jQuery.Animation=jQuery.extend(Animation,{tweeners:{"*":[function(prop,value){var tween=this.createTween(prop,value);return adjustCSS(tween.elem,prop,rcssNum.exec(value),tween),tween}]},tweener:function(props,callback){isFunction(props)?(callback=props,props=["*"]):props=props.match(rnothtmlwhite);for(var prop,index=0,length=props.length;index<length;index++)prop=props[index],Animation.tweeners[prop]=Animation.tweeners[prop]||[],Animation.tweeners[prop].unshift(callback)},prefilters:[defaultPrefilter],prefilter:function(callback,prepend){prepend?Animation.prefilters.unshift(callback):Animation.prefilters.push(callback)}}),jQuery.speed=function(speed,easing,fn){var opt=speed&&"object"==typeof speed?jQuery.extend({},speed):{complete:fn||!fn&&easing||isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!isFunction(easing)&&easing};return jQuery.fx.off?opt.duration=0:"number"!=typeof opt.duration&&(opt.duration in jQuery.fx.speeds?opt.duration=jQuery.fx.speeds[opt.duration]:opt.duration=jQuery.fx.speeds._default),null!=opt.queue&&!0!==opt.queue||(opt.queue="fx"),opt.old=opt.complete,opt.complete=function(){isFunction(opt.old)&&opt.old.call(this),opt.queue&&jQuery.dequeue(this,opt.queue)},opt},jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHiddenWithinTree).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback)},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);(empty||dataPriv.get(this,"finish"))&&anim.stop(!0)};return doAnimation.finish=doAnimation,empty||!1===optall.queue?this.each(doAnimation):this.queue(optall.queue,doAnimation)},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop,stop(gotoEnd)};return"string"!=typeof type&&(gotoEnd=clearQueue,clearQueue=type,type=void 0),clearQueue&&!1!==type&&this.queue(type||"fx",[]),this.each(function(){var dequeue=!0,index=null!=type&&type+"queueHooks",timers=jQuery.timers,data=dataPriv.get(this);if(index)data[index]&&data[index].stop&&stopQueue(data[index]);else for(index in data)data[index]&&data[index].stop&&rrun.test(index)&&stopQueue(data[index]);for(index=timers.length;index--;)timers[index].elem!==this||null!=type&&timers[index].queue!==type||(timers[index].anim.stop(gotoEnd),dequeue=!1,timers.splice(index,1));!dequeue&&gotoEnd||jQuery.dequeue(this,type)})},finish:function(type){return!1!==type&&(type=type||"fx"),this.each(function(){var index,data=dataPriv.get(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;for(data.finish=!0,jQuery.queue(this,type,[]),hooks&&hooks.stop&&hooks.stop.call(this,!0),index=timers.length;index--;)timers[index].elem===this&&timers[index].queue===type&&(timers[index].anim.stop(!0),timers.splice(index,1));for(index=0;index<length;index++)queue[index]&&queue[index].finish&&queue[index].finish.call(this);delete data.finish})}}),jQuery.each(["toggle","show","hide"],function(i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return null==speed||"boolean"==typeof speed?cssFn.apply(this,arguments):this.animate(genFx(name,!0),speed,easing,callback)}}),jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback)}}),jQuery.timers=[],jQuery.fx.tick=function(){var timer,i=0,timers=jQuery.timers;for(fxNow=Date.now();i<timers.length;i++)(timer=timers[i])()||timers[i]!==timer||timers.splice(i--,1);timers.length||jQuery.fx.stop(),fxNow=void 0},jQuery.fx.timer=function(timer){jQuery.timers.push(timer),jQuery.fx.start()},jQuery.fx.interval=13,jQuery.fx.start=function(){inProgress||(inProgress=!0,schedule())},jQuery.fx.stop=function(){inProgress=null},jQuery.fx.speeds={slow:600,fast:200,_default:400},jQuery.fn.delay=function(time,type){return time=jQuery.fx?jQuery.fx.speeds[time]||time:time,type=type||"fx",this.queue(type,function(next,hooks){var timeout=window.setTimeout(next,time);hooks.stop=function(){window.clearTimeout(timeout)}})},function(){var input=document.createElement("input"),select=document.createElement("select"),opt=select.appendChild(document.createElement("option"));input.type="checkbox",support.checkOn=""!==input.value,support.optSelected=opt.selected,input=document.createElement("input"),input.value="t",input.type="radio",support.radioValue="t"===input.value}();var boolHook,attrHandle=jQuery.expr.attrHandle;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1)},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name)})}}),jQuery.extend({attr:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(3!==nType&&8!==nType&&2!==nType)return void 0===elem.getAttribute?jQuery.prop(elem,name,value):(1===nType&&jQuery.isXMLDoc(elem)||(hooks=jQuery.attrHooks[name.toLowerCase()]||(jQuery.expr.match.bool.test(name)?boolHook:void 0)),void 0!==value?null===value?void jQuery.removeAttr(elem,name):hooks&&"set"in hooks&&void 0!==(ret=hooks.set(elem,value,name))?ret:(elem.setAttribute(name,value+""),value):hooks&&"get"in hooks&&null!==(ret=hooks.get(elem,name))?ret:(ret=jQuery.find.attr(elem,name),null==ret?void 0:ret))},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&"radio"===value&&nodeName(elem,"input")){var val=elem.value;return elem.setAttribute("type",value),val&&(elem.value=val),value}}}},removeAttr:function(elem,value){var name,i=0,attrNames=value&&value.match(rnothtmlwhite);if(attrNames&&1===elem.nodeType)for(;name=attrNames[i++];)elem.removeAttribute(name)}}),boolHook={set:function(elem,value,name){return!1===value?jQuery.removeAttr(elem,name):elem.setAttribute(name,name),name}},jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=function(elem,name,isXML){var ret,handle,lowercaseName=name.toLowerCase();return isXML||(handle=attrHandle[lowercaseName],attrHandle[lowercaseName]=ret,ret=null!=getter(elem,name,isXML)?lowercaseName:null,attrHandle[lowercaseName]=handle),ret}});var rfocusable=/^(?:input|select|textarea|button)$/i,rclickable=/^(?:a|area)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1)},removeProp:function(name){return this.each(function(){delete this[jQuery.propFix[name]||name]})}}),jQuery.extend({prop:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(3!==nType&&8!==nType&&2!==nType)return 1===nType&&jQuery.isXMLDoc(elem)||(name=jQuery.propFix[name]||name,hooks=jQuery.propHooks[name]),void 0!==value?hooks&&"set"in hooks&&void 0!==(ret=hooks.set(elem,value,name))?ret:elem[name]=value:hooks&&"get"in hooks&&null!==(ret=hooks.get(elem,name))?ret:elem[name]},propHooks:{tabIndex:{get:function(elem){var tabindex=jQuery.find.attr(elem,"tabindex");return tabindex?parseInt(tabindex,10):rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),support.optSelected||(jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;return parent&&parent.parentNode&&parent.parentNode.selectedIndex,null},set:function(elem){var parent=elem.parentNode;parent&&(parent.selectedIndex,parent.parentNode&&parent.parentNode.selectedIndex)}}),jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this}),jQuery.fn.extend({addClass:function(value){var classes,elem,cur,curValue,clazz,j,finalValue,i=0;if(isFunction(value))return this.each(function(j){jQuery(this).addClass(value.call(this,j,getClass(this)))});if(classes=classesToArray(value),classes.length)for(;elem=this[i++];)if(curValue=getClass(elem),cur=1===elem.nodeType&&" "+stripAndCollapse(curValue)+" "){for(j=0;clazz=classes[j++];)cur.indexOf(" "+clazz+" ")<0&&(cur+=clazz+" ");finalValue=stripAndCollapse(cur),curValue!==finalValue&&elem.setAttribute("class",finalValue)}return this},removeClass:function(value){var classes,elem,cur,curValue,clazz,j,finalValue,i=0;if(isFunction(value))return this.each(function(j){jQuery(this).removeClass(value.call(this,j,getClass(this)))});if(!arguments.length)return this.attr("class","");if(classes=classesToArray(value),classes.length)for(;elem=this[i++];)if(curValue=getClass(elem),cur=1===elem.nodeType&&" "+stripAndCollapse(curValue)+" "){for(j=0;clazz=classes[j++];)for(;cur.indexOf(" "+clazz+" ")>-1;)cur=cur.replace(" "+clazz+" "," ");finalValue=stripAndCollapse(cur),curValue!==finalValue&&elem.setAttribute("class",finalValue)}return this},toggleClass:function(value,stateVal){var type=typeof value,isValidValue="string"===type||Array.isArray(value);return"boolean"==typeof stateVal&&isValidValue?stateVal?this.addClass(value):this.removeClass(value):isFunction(value)?this.each(function(i){jQuery(this).toggleClass(value.call(this,i,getClass(this),stateVal),stateVal)}):this.each(function(){var className,i,self,classNames;if(isValidValue)for(i=0,self=jQuery(this),classNames=classesToArray(value);className=classNames[i++];)self.hasClass(className)?self.removeClass(className):self.addClass(className);else void 0!==value&&"boolean"!==type||(className=getClass(this),className&&dataPriv.set(this,"__className__",className),this.setAttribute&&this.setAttribute("class",className||!1===value?"":dataPriv.get(this,"__className__")||""))})},hasClass:function(selector){var className,elem,i=0;for(className=" "+selector+" ";elem=this[i++];)if(1===elem.nodeType&&(" "+stripAndCollapse(getClass(elem))+" ").indexOf(className)>-1)return!0;return!1}});var rreturn=/\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,valueIsFunction,elem=this[0];{if(arguments.length)return valueIsFunction=isFunction(value),this.each(function(i){var val;1===this.nodeType&&(val=valueIsFunction?value.call(this,i,jQuery(this).val()):value,null==val?val="":"number"==typeof val?val+="":Array.isArray(val)&&(val=jQuery.map(val,function(value){return null==value?"":value+""})),(hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()])&&"set"in hooks&&void 0!==hooks.set(this,val,"value")||(this.value=val))});if(elem)return(hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()])&&"get"in hooks&&void 0!==(ret=hooks.get(elem,"value"))?ret:(ret=elem.value,"string"==typeof ret?ret.replace(rreturn,""):null==ret?"":ret)}}}),jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return null!=val?val:stripAndCollapse(jQuery.text(elem))}},select:{get:function(elem){var value,option,i,options=elem.options,index=elem.selectedIndex,one="select-one"===elem.type,values=one?null:[],max=one?index+1:options.length;for(i=index<0?max:one?index:0;i<max;i++)if(option=options[i],(option.selected||i===index)&&!option.disabled&&(!option.parentNode.disabled||!nodeName(option.parentNode,"optgroup"))){if(value=jQuery(option).val(),one)return value;values.push(value)}return values},set:function(elem,value){for(var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;i--;)option=options[i],(option.selected=jQuery.inArray(jQuery.valHooks.option.get(option),values)>-1)&&(optionSet=!0);return optionSet||(elem.selectedIndex=-1),values}}}}),jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(Array.isArray(value))return elem.checked=jQuery.inArray(jQuery(elem).val(),value)>-1}},support.checkOn||(jQuery.valHooks[this].get=function(elem){return null===elem.getAttribute("value")?"on":elem.value})}),support.focusin="onfocusin"in window;var rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,stopPropagationCallback=function(e){e.stopPropagation()};jQuery.extend(jQuery.event,{trigger:function(event,data,elem,onlyHandlers){var i,cur,tmp,bubbleType,ontype,handle,special,lastElement,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];if(cur=lastElement=tmp=elem=elem||document,3!==elem.nodeType&&8!==elem.nodeType&&!rfocusMorph.test(type+jQuery.event.triggered)&&(type.indexOf(".")>-1&&(namespaces=type.split("."),type=namespaces.shift(),namespaces.sort()),ontype=type.indexOf(":")<0&&"on"+type,event=event[jQuery.expando]?event:new jQuery.Event(type,"object"==typeof event&&event),event.isTrigger=onlyHandlers?2:3,event.namespace=namespaces.join("."),event.rnamespace=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,event.result=void 0,event.target||(event.target=elem),data=null==data?[event]:jQuery.makeArray(data,[event]),special=jQuery.event.special[type]||{},onlyHandlers||!special.trigger||!1!==special.trigger.apply(elem,data))){if(!onlyHandlers&&!special.noBubble&&!isWindow(elem)){for(bubbleType=special.delegateType||type,rfocusMorph.test(bubbleType+type)||(cur=cur.parentNode);cur;cur=cur.parentNode)eventPath.push(cur),tmp=cur;tmp===(elem.ownerDocument||document)&&eventPath.push(tmp.defaultView||tmp.parentWindow||window)}for(i=0;(cur=eventPath[i++])&&!event.isPropagationStopped();)lastElement=cur,event.type=i>1?bubbleType:special.bindType||type,handle=(dataPriv.get(cur,"events")||{})[event.type]&&dataPriv.get(cur,"handle"),handle&&handle.apply(cur,data),(handle=ontype&&cur[ontype])&&handle.apply&&acceptData(cur)&&(event.result=handle.apply(cur,data),!1===event.result&&event.preventDefault());return event.type=type,onlyHandlers||event.isDefaultPrevented()||special._default&&!1!==special._default.apply(eventPath.pop(),data)||!acceptData(elem)||ontype&&isFunction(elem[type])&&!isWindow(elem)&&(tmp=elem[ontype],tmp&&(elem[ontype]=null),jQuery.event.triggered=type,event.isPropagationStopped()&&lastElement.addEventListener(type,stopPropagationCallback),elem[type](),event.isPropagationStopped()&&lastElement.removeEventListener(type,stopPropagationCallback),jQuery.event.triggered=void 0,tmp&&(elem[ontype]=tmp)),event.result}},simulate:function(type,elem,event){var e=jQuery.extend(new jQuery.Event,event,{type:type,isSimulated:!0});jQuery.event.trigger(e,null,elem)}}),jQuery.fn.extend({trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){var elem=this[0];if(elem)return jQuery.event.trigger(type,data,elem,!0)}}),support.focusin||jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event))};jQuery.event.special[fix]={setup:function(){var doc=this.ownerDocument||this,attaches=dataPriv.access(doc,fix);attaches||doc.addEventListener(orig,handler,!0),dataPriv.access(doc,fix,(attaches||0)+1)},teardown:function(){var doc=this.ownerDocument||this,attaches=dataPriv.access(doc,fix)-1;attaches?dataPriv.access(doc,fix,attaches):(doc.removeEventListener(orig,handler,!0),dataPriv.remove(doc,fix))}}});var location=window.location,nonce=Date.now(),rquery=/\?/;jQuery.parseXML=function(data){var xml;if(!data||"string"!=typeof data)return null;try{xml=(new window.DOMParser).parseFromString(data,"text/xml")}catch(e){xml=void 0}return xml&&!xml.getElementsByTagName("parsererror").length||jQuery.error("Invalid XML: "+data),xml};var rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,valueOrFunction){var value=isFunction(valueOrFunction)?valueOrFunction():valueOrFunction;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(null==value?"":value)};if(Array.isArray(a)||a.jquery&&!jQuery.isPlainObject(a))jQuery.each(a,function(){add(this.name,this.value)});else for(prefix in a)buildParams(prefix,a[prefix],traditional,add);return s.join("&")},jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type))}).map(function(i,elem){var val=jQuery(this).val();return null==val?null:Array.isArray(val)?jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")}}):{name:elem.name,value:val.replace(rCRLF,"\r\n")}}).get()}});var r20=/%20/g,rhash=/#.*$/,rantiCache=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/gm,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,prefilters={},transports={},allTypes="*/".concat("*"),originAnchor=document.createElement("a");originAnchor.href=location.href,jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:location.href,type:"GET",isLocal:rlocalProtocol.test(location.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":jQuery.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target)},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;completed||(completed=!0,timeoutTimer&&window.clearTimeout(timeoutTimer),transport=void 0,responseHeadersString=headers||"",jqXHR.readyState=status>0?4:0,isSuccess=status>=200&&status<300||304===status,responses&&(response=ajaxHandleResponses(s,jqXHR,responses)),response=ajaxConvert(s,response,jqXHR,isSuccess),isSuccess?(s.ifModified&&(modified=jqXHR.getResponseHeader("Last-Modified"),modified&&(jQuery.lastModified[cacheURL]=modified),(modified=jqXHR.getResponseHeader("etag"))&&(jQuery.etag[cacheURL]=modified)),204===status||"HEAD"===s.type?statusText="nocontent":304===status?statusText="notmodified":(statusText=response.state,success=response.data,error=response.error,isSuccess=!error)):(error=statusText,!status&&statusText||(statusText="error",status<0&&(status=0))),jqXHR.status=status,jqXHR.statusText=(nativeStatusText||statusText)+"",isSuccess?deferred.resolveWith(callbackContext,[success,statusText,jqXHR]):deferred.rejectWith(callbackContext,[jqXHR,statusText,error]),jqXHR.statusCode(statusCode),statusCode=void 0,fireGlobals&&globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error]),completeDeferred.fireWith(callbackContext,[jqXHR,statusText]),fireGlobals&&(globalEventContext.trigger("ajaxComplete",[jqXHR,s]),--jQuery.active||jQuery.event.trigger("ajaxStop")))}"object"==typeof url&&(options=url,url=void 0),options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,urlAnchor,completed,fireGlobals,i,uncached,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(completed){if(!responseHeaders)for(responseHeaders={};match=rheaders.exec(responseHeadersString);)responseHeaders[match[1].toLowerCase()]=match[2];match=responseHeaders[key.toLowerCase()]}return null==match?null:match},getAllResponseHeaders:function(){return completed?responseHeadersString:null},setRequestHeader:function(name,value){return null==completed&&(name=requestHeadersNames[name.toLowerCase()]=requestHeadersNames[name.toLowerCase()]||name,requestHeaders[name]=value),this},overrideMimeType:function(type){return null==completed&&(s.mimeType=type),this},statusCode:function(map){var code;if(map)if(completed)jqXHR.always(map[jqXHR.status]);else for(code in map)statusCode[code]=[statusCode[code],map[code]];return this},abort:function(statusText){var finalText=statusText||strAbort;return transport&&transport.abort(finalText),done(0,finalText),this}};if(deferred.promise(jqXHR),s.url=((url||s.url||location.href)+"").replace(rprotocol,location.protocol+"//"),s.type=options.method||options.type||s.method||s.type,s.dataTypes=(s.dataType||"*").toLowerCase().match(rnothtmlwhite)||[""],null==s.crossDomain){urlAnchor=document.createElement("a");try{urlAnchor.href=s.url,urlAnchor.href=urlAnchor.href,s.crossDomain=originAnchor.protocol+"//"+originAnchor.host!=urlAnchor.protocol+"//"+urlAnchor.host}catch(e){s.crossDomain=!0}}if(s.data&&s.processData&&"string"!=typeof s.data&&(s.data=jQuery.param(s.data,s.traditional)),inspectPrefiltersOrTransports(prefilters,s,options,jqXHR),completed)return jqXHR;fireGlobals=jQuery.event&&s.global,fireGlobals&&0==jQuery.active++&&jQuery.event.trigger("ajaxStart"),s.type=s.type.toUpperCase(),s.hasContent=!rnoContent.test(s.type),cacheURL=s.url.replace(rhash,""),s.hasContent?s.data&&s.processData&&0===(s.contentType||"").indexOf("application/x-www-form-urlencoded")&&(s.data=s.data.replace(r20,"+")):(uncached=s.url.slice(cacheURL.length),s.data&&(s.processData||"string"==typeof s.data)&&(cacheURL+=(rquery.test(cacheURL)?"&":"?")+s.data,delete s.data),!1===s.cache&&(cacheURL=cacheURL.replace(rantiCache,"$1"),uncached=(rquery.test(cacheURL)?"&":"?")+"_="+nonce+++uncached),s.url=cacheURL+uncached),s.ifModified&&(jQuery.lastModified[cacheURL]&&jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL]),jQuery.etag[cacheURL]&&jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL])),(s.data&&s.hasContent&&!1!==s.contentType||options.contentType)&&jqXHR.setRequestHeader("Content-Type",s.contentType),jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+("*"!==s.dataTypes[0]?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers)jqXHR.setRequestHeader(i,s.headers[i]);if(s.beforeSend&&(!1===s.beforeSend.call(callbackContext,jqXHR,s)||completed))return jqXHR.abort();if(strAbort="abort",completeDeferred.add(s.complete),jqXHR.done(s.success),jqXHR.fail(s.error),transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR)){if(jqXHR.readyState=1,fireGlobals&&globalEventContext.trigger("ajaxSend",[jqXHR,s]),completed)return jqXHR;s.async&&s.timeout>0&&(timeoutTimer=window.setTimeout(function(){jqXHR.abort("timeout")},s.timeout));try{completed=!1,transport.send(requestHeaders,done)}catch(e){if(completed)throw e;done(-1,e)}}else done(-1,"No Transport");return jqXHR},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json")},getScript:function(url,callback){return jQuery.get(url,void 0,callback,"script")}}),jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){return isFunction(data)&&(type=type||callback,callback=data,data=void 0),jQuery.ajax(jQuery.extend({url:url,type:method,dataType:type,data:data,success:callback},jQuery.isPlainObject(url)&&url))}}),jQuery._evalUrl=function(url){return jQuery.ajax({url:url,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},jQuery.fn.extend({wrapAll:function(html){var wrap;return this[0]&&(isFunction(html)&&(html=html.call(this[0])),wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&wrap.insertBefore(this[0]),wrap.map(function(){for(var elem=this;elem.firstElementChild;)elem=elem.firstElementChild;return elem}).append(this)),this},wrapInner:function(html){return isFunction(html)?this.each(function(i){jQuery(this).wrapInner(html.call(this,i))}):this.each(function(){var self=jQuery(this),contents=self.contents();contents.length?contents.wrapAll(html):self.append(html)})},wrap:function(html){var htmlIsFunction=isFunction(html);return this.each(function(i){jQuery(this).wrapAll(htmlIsFunction?html.call(this,i):html)})},unwrap:function(selector){return this.parent(selector).not("body").each(function(){jQuery(this).replaceWith(this.childNodes)}),this}}),jQuery.expr.pseudos.hidden=function(elem){return!jQuery.expr.pseudos.visible(elem)},jQuery.expr.pseudos.visible=function(elem){return!!(elem.offsetWidth||elem.offsetHeight||elem.getClientRects().length)},jQuery.ajaxSettings.xhr=function(){try{return new window.XMLHttpRequest}catch(e){}};var xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();support.cors=!!xhrSupported&&"withCredentials"in xhrSupported,support.ajax=xhrSupported=!!xhrSupported,jQuery.ajaxTransport(function(options){var callback,errorCallback;if(support.cors||xhrSupported&&!options.crossDomain)return{send:function(headers,complete){var i,xhr=options.xhr();if(xhr.open(options.type,options.url,options.async,options.username,options.password),options.xhrFields)for(i in options.xhrFields)xhr[i]=options.xhrFields[i];options.mimeType&&xhr.overrideMimeType&&xhr.overrideMimeType(options.mimeType),options.crossDomain||headers["X-Requested-With"]||(headers["X-Requested-With"]="XMLHttpRequest");for(i in headers)xhr.setRequestHeader(i,headers[i]);callback=function(type){return function(){callback&&(callback=errorCallback=xhr.onload=xhr.onerror=xhr.onabort=xhr.ontimeout=xhr.onreadystatechange=null,"abort"===type?xhr.abort():"error"===type?"number"!=typeof xhr.status?complete(0,"error"):complete(xhr.status,xhr.statusText):complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,"text"!==(xhr.responseType||"text")||"string"!=typeof xhr.responseText?{binary:xhr.response}:{text:xhr.responseText},xhr.getAllResponseHeaders()))}},xhr.onload=callback(),errorCallback=xhr.onerror=xhr.ontimeout=callback("error"),void 0!==xhr.onabort?xhr.onabort=errorCallback:xhr.onreadystatechange=function(){4===xhr.readyState&&window.setTimeout(function(){callback&&errorCallback()})},callback=callback("abort");try{xhr.send(options.hasContent&&options.data||null)}catch(e){if(callback)throw e}},abort:function(){callback&&callback()}}}),jQuery.ajaxPrefilter(function(s){s.crossDomain&&(s.contents.script=!1)}),jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(text){return jQuery.globalEval(text),text}}}),jQuery.ajaxPrefilter("script",function(s){void 0===s.cache&&(s.cache=!1),s.crossDomain&&(s.type="GET")}),jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,callback;return{send:function(_,complete){script=jQuery("<script>").prop({charset:s.scriptCharset,src:s.url}).on("load error",callback=function(evt){script.remove(),callback=null,evt&&complete("error"===evt.type?404:200,evt.type)}),document.head.appendChild(script[0])},abort:function(){callback&&callback()}}}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||jQuery.expando+"_"+nonce++;return this[callback]=!0,callback}}),jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=!1!==s.jsonp&&(rjsonp.test(s.url)?"url":"string"==typeof s.data&&0===(s.contentType||"").indexOf("application/x-www-form-urlencoded")&&rjsonp.test(s.data)&&"data");if(jsonProp||"jsonp"===s.dataTypes[0])return callbackName=s.jsonpCallback=isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback,jsonProp?s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName):!1!==s.jsonp&&(s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName),s.converters["script json"]=function(){return responseContainer||jQuery.error(callbackName+" was not called"),responseContainer[0]},s.dataTypes[0]="json",overwritten=window[callbackName],window[callbackName]=function(){responseContainer=arguments},jqXHR.always(function(){void 0===overwritten?jQuery(window).removeProp(callbackName):window[callbackName]=overwritten,s[callbackName]&&(s.jsonpCallback=originalSettings.jsonpCallback,oldCallbacks.push(callbackName)),responseContainer&&isFunction(overwritten)&&overwritten(responseContainer[0]),responseContainer=overwritten=void 0}),"script"}),support.createHTMLDocument=function(){var body=document.implementation.createHTMLDocument("").body;return body.innerHTML="<form></form><form></form>",2===body.childNodes.length}(),jQuery.parseHTML=function(data,context,keepScripts){if("string"!=typeof data)return[];"boolean"==typeof context&&(keepScripts=context,context=!1);var base,parsed,scripts;return context||(support.createHTMLDocument?(context=document.implementation.createHTMLDocument(""),base=context.createElement("base"),base.href=document.location.href,context.head.appendChild(base)):context=document),parsed=rsingleTag.exec(data),scripts=!keepScripts&&[],parsed?[context.createElement(parsed[1])]:(parsed=buildFragment([data],context,scripts),scripts&&scripts.length&&jQuery(scripts).remove(),jQuery.merge([],parsed.childNodes))},jQuery.fn.load=function(url,params,callback){var selector,type,response,self=this,off=url.indexOf(" ");return off>-1&&(selector=stripAndCollapse(url.slice(off)),url=url.slice(0,off)),isFunction(params)?(callback=params,params=void 0):params&&"object"==typeof params&&(type="POST"),self.length>0&&jQuery.ajax({url:url,type:type||"GET",dataType:"html",data:params}).done(function(responseText){response=arguments,self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText)}).always(callback&&function(jqXHR,status){self.each(function(){callback.apply(this,response||[jqXHR.responseText,status,jqXHR])})}),this},jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(i,type){jQuery.fn[type]=function(fn){return this.on(type,fn)}}),jQuery.expr.pseudos.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem}).length},jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};"static"===position&&(elem.style.position="relative"),curOffset=curElem.offset(),curCSSTop=jQuery.css(elem,"top"),curCSSLeft=jQuery.css(elem,"left"),calculatePosition=("absolute"===position||"fixed"===position)&&(curCSSTop+curCSSLeft).indexOf("auto")>-1,calculatePosition?(curPosition=curElem.position(),curTop=curPosition.top,curLeft=curPosition.left):(curTop=parseFloat(curCSSTop)||0,curLeft=parseFloat(curCSSLeft)||0),isFunction(options)&&(options=options.call(elem,i,jQuery.extend({},curOffset))),null!=options.top&&(props.top=options.top-curOffset.top+curTop),null!=options.left&&(props.left=options.left-curOffset.left+curLeft),"using"in options?options.using.call(elem,props):curElem.css(props)}},jQuery.fn.extend({offset:function(options){if(arguments.length)return void 0===options?this:this.each(function(i){jQuery.offset.setOffset(this,options,i)});var rect,win,elem=this[0];if(elem)return elem.getClientRects().length?(rect=elem.getBoundingClientRect(),win=elem.ownerDocument.defaultView,{top:rect.top+win.pageYOffset,left:rect.left+win.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var offsetParent,offset,doc,elem=this[0],parentOffset={top:0,left:0};if("fixed"===jQuery.css(elem,"position"))offset=elem.getBoundingClientRect();else{for(offset=this.offset(),doc=elem.ownerDocument,offsetParent=elem.offsetParent||doc.documentElement;offsetParent&&(offsetParent===doc.body||offsetParent===doc.documentElement)&&"static"===jQuery.css(offsetParent,"position");)offsetParent=offsetParent.parentNode;offsetParent&&offsetParent!==elem&&1===offsetParent.nodeType&&(parentOffset=jQuery(offsetParent).offset(),parentOffset.top+=jQuery.css(offsetParent,"borderTopWidth",!0),parentOffset.left+=jQuery.css(offsetParent,"borderLeftWidth",!0))}return{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",!0),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var offsetParent=this.offsetParent;offsetParent&&"static"===jQuery.css(offsetParent,"position");)offsetParent=offsetParent.offsetParent;return offsetParent||documentElement})}}),jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){var top="pageYOffset"===prop;jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win;if(isWindow(elem)?win=elem:9===elem.nodeType&&(win=elem.defaultView),void 0===val)return win?win[prop]:elem[method];win?win.scrollTo(top?win.pageXOffset:val,top?val:win.pageYOffset):elem[method]=val},method,val,arguments.length)}}),jQuery.each(["top","left"],function(i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed)return computed=curCSS(elem,prop),rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed})}),jQuery.each({Height:"height",Width:"width"},function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||"boolean"!=typeof margin),extra=defaultExtra||(!0===margin||!0===value?"margin":"border");return access(this,function(elem,type,value){var doc;return isWindow(elem)?0===funcName.indexOf("outer")?elem["inner"+name]:elem.document.documentElement["client"+name]:9===elem.nodeType?(doc=elem.documentElement,Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name])):void 0===value?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra)},type,chainable?margin:void 0,chainable)}})}),jQuery.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name)}}),jQuery.fn.extend({hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver)}}),jQuery.fn.extend({bind:function(types,data,fn){return this.on(types,null,data,fn)},unbind:function(types,fn){return this.off(types,null,fn)},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn)},undelegate:function(selector,types,fn){return 1===arguments.length?this.off(selector,"**"):this.off(types,selector||"**",fn)}}),jQuery.proxy=function(fn,context){var tmp,args,proxy;if("string"==typeof context&&(tmp=fn[context],context=fn,fn=tmp),isFunction(fn))return args=slice.call(arguments,2),proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)))},proxy.guid=fn.guid=fn.guid||jQuery.guid++,proxy},jQuery.holdReady=function(hold){hold?jQuery.readyWait++:jQuery.ready(!0)},jQuery.isArray=Array.isArray,jQuery.parseJSON=JSON.parse,jQuery.nodeName=nodeName,jQuery.isFunction=isFunction,jQuery.isWindow=isWindow,jQuery.camelCase=camelCase,jQuery.type=toType,jQuery.now=Date.now,jQuery.isNumeric=function(obj){var type=jQuery.type(obj);return("number"===type||"string"===type)&&!isNaN(obj-parseFloat(obj))},__WEBPACK_AMD_DEFINE_ARRAY__=[],void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){return jQuery}.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__);var _jQuery=window.jQuery,_$=window.$;return jQuery.noConflict=function(deep){return window.$===jQuery&&(window.$=_$),deep&&window.jQuery===jQuery&&(window.jQuery=_jQuery),jQuery},noGlobal||(window.jQuery=window.$=jQuery),jQuery})},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Link=__webpack_require__(7),_Link2=_interopRequireDefault(_Link);exports.default=(0,_react.memo)(function(props){var to=null,uri=props.uri;switch(props.unencoded||(uri=encodeURIComponent(uri)),props.type){case"playlist":to="/playlist/"+uri;break;case"artist":to="/artist/"+uri;break;case"album":to="/album/"+uri;break;case"track":to="/track/"+uri;break;case"user":to="/user/"+uri;break;case"browse":to="/library/browse/"+uri;break;case"recommendations":to="/discover/recommendations/"+uri;break;case"search":var exploded=uri.split("%3A");to="/search/"+exploded[1]+"/"+exploded[2];break;default:to=null}return uri?_react2.default.createElement(_Link2.default,{className:props.className?props.className:null,to:to,onContextMenu:function(e){return props.handleContextMenu?props.handleContextMenu(e):null}},props.children):_react2.default.createElement("span",{className:props.className?props.className:null},props.children)})},function(module,exports,__webpack_require__){"use strict";(function($){function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Track=__webpack_require__(186),_Track2=_interopRequireDefault(_Track),_ContextMenuTrigger=__webpack_require__(22),_helpers=(_interopRequireDefault(_ContextMenuTrigger),__webpack_require__(1)),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),TrackList=function(_React$Component){function TrackList(props){_classCallCheck(this,TrackList);var _this=_possibleConstructorReturn(this,(TrackList.__proto__||Object.getPrototypeOf(TrackList)).call(this,props));return _this.touch_dragging_tracks_keys=!1,_this.handleKeyDown=_this.handleKeyDown.bind(_this),_this.handleTouchMove=_this.handleTouchMove.bind(_this),_this.handleTouchEnd=_this.handleTouchEnd.bind(_this),_this}return _inherits(TrackList,_React$Component),_createClass(TrackList,[{key:"componentWillMount",value:function(){window.addEventListener("keydown",this.handleKeyDown,!1),window.addEventListener("touchmove",this.handleTouchMove,!1),window.addEventListener("touchend",this.handleTouchEnd,!1)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("keydown",this.handleKeyDown,!1),window.removeEventListener("touchmove",this.handleTouchMove,!1),window.removeEventListener("touchend",this.handleTouchEnd,!1)}},{key:"handleKeyDown",value:function(e){if(["INPUT","TEXTAREA"].indexOf(e.target.nodeName)>-1)return!1;var tracks_keys=this.digestTracksKeys();switch(e.keyCode){case 13:tracks_keys&&tracks_keys.length>0&&this.playTracks();break;case 46:tracks_keys&&tracks_keys.length>0&&this.removeTracks();break;case 65:if(e.ctrlKey||e.metaKey){e.preventDefault();for(var all_tracks=[],i=0;i<this.props.tracks.length;i++)all_tracks.push(this.buildTrackKey(this.props.tracks[i],i));return this.props.uiActions.setSelectedTracks(all_tracks),!1}}}},{key:"handleDrag",value:function(e,track_key){var selected_tracks=[];this.props.selected_tracks.includes(track_key)?selected_tracks=this.digestTracksKeys():(this.props.uiActions.setSelectedTracks([track_key]),selected_tracks=this.digestTracksKeys([track_key]));var selected_tracks_indexes=helpers.arrayOf("index",selected_tracks);this.props.uiActions.dragStart(e,this.props.track_context,this.props.uri,selected_tracks,selected_tracks_indexes)}},{key:"handleDrop",value:function(e,track_key){if(this.props.dragger&&this.props.dragger.active&&void 0!==this.props.reorderTracks){var indexes=this.props.dragger.victims_indexes,tracks=this.digestTracksKeys([track_key]);return this.props.reorderTracks(indexes,tracks[0].index)}this.touch_dragging_tracks_keys=!1}},{key:"handleTouchDrag",value:function(e,track_key){this.props.selected_tracks.includes(track_key)?this.touch_dragging_tracks_keys=this.props.selected_tracks:(this.touch_dragging_tracks_keys=[track_key],this.props.uiActions.setSelectedTracks([track_key]))}},{key:"handleTouchMove",value:function(e){if(this.touch_dragging_tracks_keys){var touch=e.touches[0],over=$(document.elementFromPoint(touch.clientX,touch.clientY));return over.is(".track")||(over=over.closest(".list__item--track")),$(document).find(".touch-drag-hover").removeClass("touch-drag-hover"),over.length>0&&over.addClass("touch-drag-hover"),e.returnValue=!1,e.cancelBubble=!0,e.preventDefault(),e.stopPropagation(),!1}}},{key:"handleTouchEnd",value:function(e){if(this.touch_dragging_tracks_keys){var touch=e.changedTouches[0],over=$(document.elementFromPoint(touch.clientX,touch.clientY));if(over.is(".list__item--track")||(over=over.closest(".list__item--track")),over.length>0){var siblings=over.parent().children(".list__item--track"),dropped_at=siblings.index(over);void 0!==this.props.reorderTracks&&(this.props.reorderTracks(helpers.arrayOf("index",this.digestTracksKeys()),dropped_at),this.props.uiActions.setSelectedTracks([]))}$(document).find(".touch-drag-hover").removeClass("touch-drag-hover"),$("body").removeClass("touch-dragging")}this.touch_dragging_tracks_keys=!1}},{key:"handleTap",value:function(e,track_key){this.updateSelection(e,track_key,!0)}},{key:"handleDoubleTap",value:function(e,track_key){this.playTracks([track_key]),this.updateSelection(e,track_key)}},{key:"handleClick",value:function(e,track_key){this.updateSelection(e,track_key)}},{key:"handleDoubleClick",value:function(e,track_key){this.props.context_menu&&this.props.uiActions.hideContextMenu(),this.playTracks([track_key]),this.updateSelection(e,track_key)}},{key:"handleContextMenu",value:function(e){var track_key=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0;var selected_tracks=this.props.selected_tracks;track_key&&!selected_tracks.includes(track_key)&&(selected_tracks=[track_key],this.props.uiActions.setSelectedTracks(selected_tracks));var selected_tracks_digested=this.digestTracksKeys(selected_tracks),selected_tracks_uris=helpers.arrayOf("uri",selected_tracks_digested),selected_tracks_indexes=helpers.arrayOf("index",selected_tracks_digested),data={e:e,context:this.props.track_context?this.props.track_context+"-track":"track",tracklist_uri:this.props.uri?this.props.uri:null,items:selected_tracks_digested,uris:selected_tracks_uris,indexes:selected_tracks_indexes};this.props.uiActions.showContextMenu(data)}},{key:"updateSelection",value:function(e,track_key){var touched=arguments.length>2&&void 0!==arguments[2]&&arguments[2],selected_tracks=this.props.selected_tracks;if(e.ctrlKey||e.metaKey||touched)if(selected_tracks.includes(track_key)){var index=selected_tracks.indexOf(track_key);selected_tracks.splice(index,1)}else selected_tracks.push(track_key);else if(e.shiftKey){var last_selected_track=this.digestTracksKeys(selected_tracks[selected_tracks.length-1]),last_selected_track_index=last_selected_track.index,newly_selected_track=this.digestTracksKeys(track_key),newly_selected_track_index=newly_selected_track.index;if(last_selected_track_index<newly_selected_track_index)var start=last_selected_track_index+1,end=newly_selected_track_index;else var start=newly_selected_track_index,end=last_selected_track_index-1;if(!1!==start&&start>=0&&!1!==end&&end>=0)for(var i=start;i<=end;i++)selected_tracks.push(this.buildTrackKey(this.props.tracks[i],i))}else selected_tracks=[track_key];this.props.uiActions.setSelectedTracks(selected_tracks)}},{key:"isRightClick",value:function(e){return"which"in e?3==e.which:"button"in e&&2==e.button}},{key:"playTracks",value:function(){var tracks_keys=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(null!==tracks_keys)var selected_tracks=this.digestTracksKeys(tracks_keys);else var selected_tracks=this.digestTracksKeys();helpers.arrayOf("index",selected_tracks);if(selected_tracks.length<=0)return this.props.uiActions.createNotification({content:"No tracks selected",type:"bad"});if(void 0!==this.props.playTracks)return this.props.playTracks(selected_tracks);var selected_tracks_uris=helpers.arrayOf("uri",selected_tracks);return this.props.mopidyActions.playURIs(selected_tracks_uris,this.props.uri)}},{key:"removeTracks",value:function(){if(void 0!==this.props.removeTracks){var selected_tracks=this.digestTracksKeys(),selected_tracks_indexes=helpers.arrayOf("index",selected_tracks);return this.props.removeTracks(selected_tracks_indexes)}}},{key:"buildTrackKey",value:function(track,index){var key=index;return key+="@@"+(track.tlid?track.tlid:"none"),key+="@@"+track.uri,key+="@@"+(this.props.uri?this.props.uri:"none"),key+="@@"+(this.props.track_context?this.props.track_context:"none")}},{key:"digestTracksKeys",value:function(){var keys=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.selected_tracks,indexes_only=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!keys)return!1;var singleton=!1;keys instanceof Array||(singleton=!0,keys=[keys]);var array=[],_iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=keys[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var key=_step.value,key_components=key.split("@@");indexes_only?array.push(key_components[0]):array.push({key:key,index:parseInt(key_components[0]),tlid:parseInt(key_components[1]),uri:key_components[2],context:key_components[3],context_uri:key_components[4]})}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}return singleton&&array.length>0?array[0]:array}},{key:"render",value:function(){var _this2=this;if(!this.props.tracks||"[object Array]"!==Object.prototype.toString.call(this.props.tracks))return null;var className="list list--tracks "+this.props.track_context;return this.props.className&&(className+=" "+this.props.className),_react2.default.createElement("div",{className:className},this.props.tracks.map(function(track,index){var track_key=_this2.buildTrackKey(track,index);return track.key=track_key,_react2.default.createElement(_Track2.default,{show_source_icon:_this2.props.show_source_icon,key:track_key,mini_zones:_this2.props.slim_mode||helpers.isTouchDevice(),track:track,track_context:_this2.props.track_context,can_sort:"queue"==_this2.props.track_context||"editable-playlist"==_this2.props.track_context,selected:_this2.props.selected_tracks.includes(track_key),play_state:_this2.props.play_state,dragger:_this2.props.dragger,handleClick:function(e){return _this2.handleClick(e,track_key)},handleDoubleClick:function(e){return _this2.handleDoubleClick(e,track_key)},handleContextMenu:function(e){return _this2.handleContextMenu(e,track_key)},handleDrag:function(e){return _this2.handleDrag(e,track_key)},handleDrop:function(e){return _this2.handleDrop(e,track_key)},handleTap:function(e){return _this2.handleTap(e,track_key)},handleDoubleTap:function(e){return _this2.handleDoubleTap(e,track_key)},handleTouchDrag:function(e){return _this2.handleTouchDrag(e,track_key)}})}))}}]),TrackList}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{play_state:state.mopidy.play_state,slim_mode:state.ui.slim_mode,selected_tracks:state.ui.selected_tracks,dragger:state.ui.dragger,current_track:state.core.current_track,context_menu:state.ui.context_menu}},mapDispatchToProps=function(dispatch){return{mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(TrackList)}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_URILink=__webpack_require__(18),_URILink2=_interopRequireDefault(_URILink);exports.default=(0,_react.memo)(function(props){return props.artists?_react2.default.createElement("span",{className:props.className?props.className+" artist-sentence":"artist-sentence"},props.artists.map(function(artist,index){if(!artist)return _react2.default.createElement("span",null,"-");var separator=null;if(index==props.artists.length-2?separator=" and ":index<props.artists.length-2&&(separator=", "),artist.name)if(!artist.uri||props.nolinks)var content=_react2.default.createElement("span",null,artist.name);else var content=_react2.default.createElement(_URILink2.default,{className:"artist",type:"artist",uri:artist.uri},artist.name);else var content=_react2.default.createElement("span",null,"-");return _react2.default.createElement("span",{key:"index_"+artist.uri},content,separator)})):_react2.default.createElement("span",{className:props.className?props.className+" artist-sentence":"artist-sentence"},"-")})},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_react),_helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers),LazyLoadListener=function(_React$Component){function LazyLoadListener(props){_classCallCheck(this,LazyLoadListener);var _this=_possibleConstructorReturn(this,(LazyLoadListener.__proto__||Object.getPrototypeOf(LazyLoadListener)).call(this,props));return _this.state={listening:!!_this.props.loadKey,loadKey:_this.props.loadKey},_this.handleScroll=helpers.throttle(_this.handleScroll.bind(_this),50),_this}return _inherits(LazyLoadListener,_React$Component),_createClass(LazyLoadListener,[{key:"componentDidMount",value:function(){this.element=document.getElementById("main"),this.element.addEventListener("scroll",this.handleScroll,!1)}},{key:"componentWillUnmount",value:function(){this.element.removeEventListener("scroll",this.handleScroll,!1)}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.loadKey&&nextProps.loadKey!==this.state.loadKey&&this.setState({loadKey:nextProps.loadKey,listening:!0})}},{key:"handleScroll",value:function(e){var _this2=this;if(this.state.listening){var window_height=Math.max(document.documentElement.clientHeight,window.innerHeight||0);this.element.scrollTop>this.element.scrollHeight-this.element.offsetHeight-window_height/2&&this.setState({listening:!1},function(){_this2.props.loadMore()})}}},{key:"render",value:function(){return _react2.default.createElement("div",{className:"lazy-loader body-loader"+(this.props.showLoader?" loading":"")},this.props.showLoader?_react2.default.createElement("div",{className:"loader"}):null)}}]),LazyLoadListener}(_react2.default.Component);exports.default=LazyLoadListener},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon);exports.default=(0,_react.memo)(function(props){var handleClick=function(e){e.preventDefault(),e.stopPropagation(),props.onTrigger(e)},className="context-menu-trigger mouse-contextable touch-contextable";return props.className&&(className+=" "+props.className),_react2.default.createElement("span",{className:className,onClick:function(e){return handleClick(e)}},_react2.default.createElement(_Icon2.default,{name:"more_horiz"}))})},function(module,exports,__webpack_require__){"use strict";(function($){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_helpers=(__webpack_require__(3),__webpack_require__(1)),_Icon=(function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);newObj.default=obj}(_helpers),__webpack_require__(5)),_Icon2=_interopRequireDefault(_Icon),Modal=function(_React$Component){function Modal(props){_classCallCheck(this,Modal);var _this=_possibleConstructorReturn(this,(Modal.__proto__||Object.getPrototypeOf(Modal)).call(this,props));return _this.handleKeyUp=_this.handleKeyUp.bind(_this),_this}return _inherits(Modal,_React$Component),_createClass(Modal,[{key:"componentWillMount",value:function(){$("body").addClass("modal-open"),window.addEventListener("keyup",this.handleKeyUp,!1)}},{key:"componentWillUnmount",value:function(){$("body").removeClass("modal-open"),window.removeEventListener("keyup",this.handleKeyUp,!1)}},{key:"handleKeyUp",value:function(e){this.props.shortkeys_enabled&&27==e.keyCode&&window.history.back()}},{key:"render",value:function(){var className="modal";return this.props.className&&(className+=" "+this.props.className),_react2.default.createElement("div",{className:className},_react2.default.createElement("div",{className:"controls"},this.props.noclose?null:_react2.default.createElement("div",{className:"control close",onClick:function(e){return window.history.back()}},_react2.default.createElement(_Icon2.default,{name:"close",className:"white"}))),_react2.default.createElement("div",{className:"content"},this.props.children))}}]),Modal}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{shortkeys_enabled:state.ui.shortkeys_enabled}},mapDispatchToProps=function(dispatch){return{}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Modal)}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0),durationTime=(function(obj){obj&&obj.__esModule}(_react),function(){var milliseconds=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!milliseconds)return null;var total_hours,total_minutes,total_seconds,minutes,seconds,string="";return total_seconds=Math.floor(milliseconds/1e3),total_minutes=Math.floor(milliseconds/6e4),total_hours=Math.floor(milliseconds/36e5),seconds=total_seconds-60*total_minutes,seconds<=9&&(seconds="0"+seconds),0==seconds&&(seconds="00"),minutes=total_minutes-60*total_hours,minutes<=9&&total_hours&&(minutes="0"+minutes),0==minutes&&(minutes="0"),total_hours&&(string+=total_hours+":"),minutes&&(string+=minutes+":"),seconds&&(string+=seconds),string}),durationSentence=function(){var milliseconds=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!milliseconds)return null;var total_hours,total_minutes,total_seconds;return total_seconds=Math.floor(milliseconds/1e3),total_minutes=Math.floor(milliseconds/6e4),total_hours=Math.floor(milliseconds/36e5),total_hours>1?total_hours+"+ hrs":total_minutes>1?total_minutes+" mins":total_seconds?total_seconds+" sec":void 0};exports.default=(0,_react.memo)(function(props){if(!props.data)return null;switch(props.type){case"total-time":for(var duration=0,tracks=props.data,i=0;i<tracks.length;i++)tracks[i].duration&&(duration+=parseInt(tracks[i].duration));return durationSentence(duration);case"length":return durationTime(props.data);case"date":if(4==props.data.length)return props.data;var date=new Date(props.data);return date.getDate()+"/"+(date.getMonth()+1)+"/"+date.getFullYear();case"ago":var date=new Date(props.data),diff=new Date-date,seconds=Math.floor(diff/1e3),minutes=Math.floor(diff/6e4),hours=Math.floor(diff/36e5),days=Math.floor(diff/864e5);return seconds<60?seconds+" seconds":minutes<60?minutes+" minutes":hours<24?hours+" hours":days+" days";default:return null}})},function(module,exports,__webpack_require__){"use strict";(function($){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Icon=(__webpack_require__(4),__webpack_require__(3),__webpack_require__(5)),_Icon2=_interopRequireDefault(_Icon),DropdownField=function(_React$Component){function DropdownField(props){_classCallCheck(this,DropdownField);var _this=_possibleConstructorReturn(this,(DropdownField.__proto__||Object.getPrototypeOf(DropdownField)).call(this,props));return _this.uid=_this.props.name.replace(" ","_").toLowerCase(),_this.props.uid&&(_this.uid+="_"+_this.props.uid),_this.state={expanded:!1},_this.handleClick=_this.handleClick.bind(_this),_this}return _inherits(DropdownField,_React$Component),_createClass(DropdownField,[{key:"componentDidMount",value:function(){window.addEventListener("click",this.handleClick,!1)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("click",this.handleClick,!1)}},{key:"setExpanded",value:function(){var expanded=arguments.length>0&&void 0!==arguments[0]?arguments[0]:!this.state.expanded;expanded?(this.setState({expanded:expanded}),window.addEventListener("click",this.handleClick,!1)):(this.setState({expanded:expanded}),window.removeEventListener("click",this.handleClick,!1))}},{key:"handleClick",value:function(e){$(e.target).closest(".dropdown-field").attr("data-uid")!=this.uid&&this.state.expanded&&this.setExpanded(!1)}},{key:"handleChange",value:function(value,is_selected){var current_value=this.props.value;if(this.isMultiSelect())if("select-all"==value)for(var new_value=[],i=0;i<this.props.options.length;i++)new_value.push(this.props.options[i].value);else if(is_selected){var index=current_value.indexOf(value);current_value.splice(index,1);var new_value=current_value}else{current_value.push(value);var new_value=current_value}else{var new_value=value;this.setExpanded(!1)}return this.props.handleChange(new_value)}},{key:"isMultiSelect",value:function(){return this.props.value instanceof Array}},{key:"render",value:function(){var _this2=this;if(!this.props.options)return null;var className="dropdown-field";this.state.expanded&&(className+=" expanded"),this.props.no_status_icon&&(className+=" no-status-icon"),this.props.no_label&&(className+=" no-label"),this.props.button&&(className+=" buttonify"),this.props.className&&(className+=" "+this.props.className);var current_value=null;void 0!==this.props.value?current_value=this.props.value:this.props.options.length>0&&(current_value=this.props.options[0].value);var selected_icon=_react2.default.createElement(_Icon2.default,{name:"check"});this.props.selected_icon&&(selected_icon=_react2.default.createElement(_Icon2.default,{name:this.props.selected_icon}));var options=Object.assign([],this.props.options);return this.isMultiSelect()&&options.push({value:"select-all",label:"Select all",className:"mid_grey-text"}),_react2.default.createElement("div",{className:className,"data-uid":this.uid},_react2.default.createElement("div",{className:"label"+(this.props.button?" button "+this.props.button:""),onClick:function(e){return _this2.setExpanded()}},this.props.icon?_react2.default.createElement(_Icon2.default,{name:this.props.icon,type:this.props.icon_type?this.props.icon_type:"material"}):null,_react2.default.createElement("span",{className:"text"},this.props.name,this.isMultiSelect()?" ("+current_value.length+")":null)),_react2.default.createElement("div",{className:"options"},_react2.default.createElement("div",{className:"liner"},options.map(function(option){if(_this2.isMultiSelect())var is_selected=current_value.indexOf(option.value)>-1;else var is_selected=current_value===option.value;return _react2.default.createElement("div",{className:"option "+(option.className?option.className:""),key:option.value,onClick:function(e){return _this2.handleChange(option.value,is_selected)}},!_this2.props.no_status_icon&&is_selected?selected_icon:null,option.label)}))))}}]),DropdownField}(_react2.default.Component);exports.default=DropdownField}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";var invariant=function(condition,format,a,b,c,d,e,f){if(!condition){var error;if(void 0===format)error=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var args=[a,b,c,d,e,f],argIndex=0;error=new Error(format.replace(/%s/g,function(){return args[argIndex++]})),error.name="Invariant Violation"}throw error.framesToPop=1,error}};module.exports=invariant},function(module,exports,__webpack_require__){"use strict";var warning=function(){};module.exports=warning},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_react),_helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers),Parallax=function(_React$Component){function Parallax(props){_classCallCheck(this,Parallax);var _this=_possibleConstructorReturn(this,(Parallax.__proto__||Object.getPrototypeOf(Parallax)).call(this,props));return _this.state={loaded:!1,url:null},_this}return _inherits(Parallax,_React$Component),_createClass(Parallax,[{key:"componentWillMount",value:function(){this.props.image&&this.loadImage(this.props.image)}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.image!=this.state.url&&this.loadImage(nextProps.image)}},{key:"loadImage",value:function(url){if(url&&""!==url){this.setState({loaded:helpers.isCached(url),url:url});var self=this,imageObject=new Image;imageObject.src=url,imageObject.onload=function(){self.setState({loaded:!0,url:url})}}else this.setState({loaded:!1,url:null})}},{key:"render",value:function(){var class_name="parallax preserve-3d";this.props.blur&&(class_name+=" parallax--blur"),this.state.loaded&&(class_name+=" parallax--loaded"),this.props.fixedHeight?class_name+=" parallax--fixed-height":class_name+=" parallax--flexible-height";var style={};return this.state.loaded&&this.state.url&&(style={backgroundImage:"url("+this.state.url+")"}),_react2.default.createElement("div",{className:class_name},_react2.default.createElement("div",{className:"parallax__layer preserve-3d"},_react2.default.createElement("div",{className:"parallax__image",style:style}),_react2.default.createElement("div",{className:"parallax__overlay"})))}}]),Parallax}(_react2.default.Component);exports.default=Parallax},function(module,__webpack_exports__,__webpack_require__){"use strict";Object.defineProperty(__webpack_exports__,"__esModule",{value:!0});var __WEBPACK_IMPORTED_MODULE_0__BrowserRouter__=__webpack_require__(113);__webpack_require__.d(__webpack_exports__,"BrowserRouter",function(){return __WEBPACK_IMPORTED_MODULE_0__BrowserRouter__.a});var __WEBPACK_IMPORTED_MODULE_1__HashRouter__=__webpack_require__(118);__webpack_require__.d(__webpack_exports__,"HashRouter",function(){return __WEBPACK_IMPORTED_MODULE_1__HashRouter__.a});var __WEBPACK_IMPORTED_MODULE_2__Link__=__webpack_require__(70);__webpack_require__.d(__webpack_exports__,"Link",function(){return __WEBPACK_IMPORTED_MODULE_2__Link__.a});var __WEBPACK_IMPORTED_MODULE_3__MemoryRouter__=__webpack_require__(119);__webpack_require__.d(__webpack_exports__,"MemoryRouter",function(){return __WEBPACK_IMPORTED_MODULE_3__MemoryRouter__.a});var __WEBPACK_IMPORTED_MODULE_4__NavLink__=__webpack_require__(120);__webpack_require__.d(__webpack_exports__,"NavLink",function(){return __WEBPACK_IMPORTED_MODULE_4__NavLink__.a});var __WEBPACK_IMPORTED_MODULE_5__Prompt__=__webpack_require__(122);__webpack_require__.d(__webpack_exports__,"Prompt",function(){return __WEBPACK_IMPORTED_MODULE_5__Prompt__.a});var __WEBPACK_IMPORTED_MODULE_6__Redirect__=__webpack_require__(123);__webpack_require__.d(__webpack_exports__,"Redirect",function(){return __WEBPACK_IMPORTED_MODULE_6__Redirect__.a});var __WEBPACK_IMPORTED_MODULE_7__Route__=__webpack_require__(72);__webpack_require__.d(__webpack_exports__,"Route",function(){return __WEBPACK_IMPORTED_MODULE_7__Route__.a});var __WEBPACK_IMPORTED_MODULE_8__Router__=__webpack_require__(49);__webpack_require__.d(__webpack_exports__,"Router",function(){return __WEBPACK_IMPORTED_MODULE_8__Router__.a});var __WEBPACK_IMPORTED_MODULE_9__StaticRouter__=__webpack_require__(124);__webpack_require__.d(__webpack_exports__,"StaticRouter",function(){return __WEBPACK_IMPORTED_MODULE_9__StaticRouter__.a});var __WEBPACK_IMPORTED_MODULE_10__Switch__=__webpack_require__(125);__webpack_require__.d(__webpack_exports__,"Switch",function(){return __WEBPACK_IMPORTED_MODULE_10__Switch__.a});var __WEBPACK_IMPORTED_MODULE_11__generatePath__=__webpack_require__(126);__webpack_require__.d(__webpack_exports__,"generatePath",function(){return __WEBPACK_IMPORTED_MODULE_11__generatePath__.a});var __WEBPACK_IMPORTED_MODULE_12__matchPath__=__webpack_require__(127);__webpack_require__.d(__webpack_exports__,"matchPath",function(){return __WEBPACK_IMPORTED_MODULE_12__matchPath__.a});var __WEBPACK_IMPORTED_MODULE_13__withRouter__=__webpack_require__(128);__webpack_require__.d(__webpack_exports__,"withRouter",function(){return __WEBPACK_IMPORTED_MODULE_13__withRouter__.a})},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0),_react2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_react);exports.default=(0,_react.memo)(function(props){return _react2.default.createElement("div",{className:"error-message"+(props.type?" error-message--"+props.type:"")},_react2.default.createElement("i",{className:"error-message__icon icon icon--material"},"error"),_react2.default.createElement("h4",{className:"error-message__title"},props.title?props.title:"Unknown error"),_react2.default.createElement("div",{className:"error-message__content"},props.children))})},function(module,__webpack_exports__,__webpack_require__){"use strict";function addLeadingSlash(path){return"/"===path.charAt(0)?path:"/"+path}function stripLeadingSlash(path){return"/"===path.charAt(0)?path.substr(1):path}function hasBasename(path,prefix){return new RegExp("^"+prefix+"(\\/|\\?|#|$)","i").test(path)}function stripBasename(path,prefix){return hasBasename(path,prefix)?path.substr(prefix.length):path}function stripTrailingSlash(path){return"/"===path.charAt(path.length-1)?path.slice(0,-1):path}function parsePath(path){var pathname=path||"/",search="",hash="",hashIndex=pathname.indexOf("#");-1!==hashIndex&&(hash=pathname.substr(hashIndex),pathname=pathname.substr(0,hashIndex));var searchIndex=pathname.indexOf("?");return-1!==searchIndex&&(search=pathname.substr(searchIndex),pathname=pathname.substr(0,searchIndex)),{pathname:pathname,search:"?"===search?"":search,hash:"#"===hash?"":hash}}function createPath(location){var pathname=location.pathname,search=location.search,hash=location.hash,path=pathname||"/";return search&&"?"!==search&&(path+="?"===search.charAt(0)?search:"?"+search),hash&&"#"!==hash&&(path+="#"===hash.charAt(0)?hash:"#"+hash),path}function createLocation(path,state,key,currentLocation){var location;"string"==typeof path?(location=parsePath(path),location.state=state):(location=Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__.a)({},path),void 0===location.pathname&&(location.pathname=""),location.search?"?"!==location.search.charAt(0)&&(location.search="?"+location.search):location.search="",location.hash?"#"!==location.hash.charAt(0)&&(location.hash="#"+location.hash):location.hash="",void 0!==state&&void 0===location.state&&(location.state=state));try{location.pathname=decodeURI(location.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+location.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return key&&(location.key=key),currentLocation?location.pathname?"/"!==location.pathname.charAt(0)&&(location.pathname=Object(__WEBPACK_IMPORTED_MODULE_1_resolve_pathname__.a)(location.pathname,currentLocation.pathname)):location.pathname=currentLocation.pathname:location.pathname||(location.pathname="/"),location}function locationsAreEqual(a,b){return a.pathname===b.pathname&&a.search===b.search&&a.hash===b.hash&&a.key===b.key&&Object(__WEBPACK_IMPORTED_MODULE_2_value_equal__.a)(a.state,b.state)}function createTransitionManager(){function setPrompt(nextPrompt){return prompt=nextPrompt,function(){prompt===nextPrompt&&(prompt=null)}}function confirmTransitionTo(location,action,getUserConfirmation,callback){if(null!=prompt){var result="function"==typeof prompt?prompt(location,action):prompt;"string"==typeof result?"function"==typeof getUserConfirmation?getUserConfirmation(result,callback):callback(!0):callback(!1!==result)}else callback(!0)}function appendListener(fn){function listener(){isActive&&fn.apply(void 0,arguments)}var isActive=!0;return listeners.push(listener),function(){isActive=!1,listeners=listeners.filter(function(item){return item!==listener})}}function notifyListeners(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];listeners.forEach(function(listener){return listener.apply(void 0,args)})}var prompt=null,listeners=[];return{setPrompt:setPrompt,confirmTransitionTo:confirmTransitionTo,appendListener:appendListener,notifyListeners:notifyListeners}}function getConfirmation(message,callback){callback(window.confirm(message))}function supportsHistory(){var ua=window.navigator.userAgent;return(-1===ua.indexOf("Android 2.")&&-1===ua.indexOf("Android 4.0")||-1===ua.indexOf("Mobile Safari")||-1!==ua.indexOf("Chrome")||-1!==ua.indexOf("Windows Phone"))&&(window.history&&"pushState"in window.history)}function supportsPopStateOnHashChange(){return-1===window.navigator.userAgent.indexOf("Trident")}function supportsGoWithoutReloadUsingHash(){return-1===window.navigator.userAgent.indexOf("Firefox")}function isExtraneousPopstateEvent(event){void 0===event.state&&navigator.userAgent.indexOf("CriOS")}function getHistoryState(){try{return window.history.state||{}}catch(e){return{}}}function createBrowserHistory(props){function getDOMLocation(historyState){var _ref=historyState||{},key=_ref.key,state=_ref.state,_window$location=window.location,pathname=_window$location.pathname,search=_window$location.search,hash=_window$location.hash,path=pathname+search+hash;return basename&&(path=stripBasename(path,basename)),createLocation(path,state,key)}function createKey(){return Math.random().toString(36).substr(2,keyLength)}function setState(nextState){Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__.a)(history,nextState),history.length=globalHistory.length,transitionManager.notifyListeners(history.location,history.action)}function handlePopState(event){isExtraneousPopstateEvent(event)||handlePop(getDOMLocation(event.state))}function handleHashChange(){handlePop(getDOMLocation(getHistoryState()))}function handlePop(location){if(forceNextPop)forceNextPop=!1,setState();else{transitionManager.confirmTransitionTo(location,"POP",getUserConfirmation,function(ok){ok?setState({action:"POP",location:location}):revertPop(location)})}}function revertPop(fromLocation){var toLocation=history.location,toIndex=allKeys.indexOf(toLocation.key);-1===toIndex&&(toIndex=0);var fromIndex=allKeys.indexOf(fromLocation.key);-1===fromIndex&&(fromIndex=0);var delta=toIndex-fromIndex;delta&&(forceNextPop=!0,go(delta))}function createHref(location){return basename+createPath(location)}function push(path,state){var location=createLocation(path,state,createKey(),history.location);transitionManager.confirmTransitionTo(location,"PUSH",getUserConfirmation,function(ok){if(ok){var href=createHref(location),key=location.key,state=location.state;if(canUseHistory)if(globalHistory.pushState({key:key,state:state},null,href),forceRefresh)window.location.href=href;else{var prevIndex=allKeys.indexOf(history.location.key),nextKeys=allKeys.slice(0,-1===prevIndex?0:prevIndex+1);nextKeys.push(location.key),allKeys=nextKeys,setState({action:"PUSH",location:location})}else window.location.href=href}})}function replace(path,state){var location=createLocation(path,state,createKey(),history.location);transitionManager.confirmTransitionTo(location,"REPLACE",getUserConfirmation,function(ok){if(ok){var href=createHref(location),key=location.key,state=location.state;if(canUseHistory)if(globalHistory.replaceState({key:key,state:state},null,href),forceRefresh)window.location.replace(href);else{var prevIndex=allKeys.indexOf(history.location.key);-1!==prevIndex&&(allKeys[prevIndex]=location.key),setState({action:"REPLACE",location:location})}else window.location.replace(href)}})}function go(n){globalHistory.go(n)}function goBack(){go(-1)}function goForward(){go(1)}function checkDOMListeners(delta){listenerCount+=delta,1===listenerCount&&1===delta?(window.addEventListener(PopStateEvent,handlePopState),needsHashChangeListener&&window.addEventListener(HashChangeEvent,handleHashChange)):0===listenerCount&&(window.removeEventListener(PopStateEvent,handlePopState),needsHashChangeListener&&window.removeEventListener(HashChangeEvent,handleHashChange))}function block(prompt){void 0===prompt&&(prompt=!1);var unblock=transitionManager.setPrompt(prompt);return isBlocked||(checkDOMListeners(1),isBlocked=!0),function(){return isBlocked&&(isBlocked=!1,checkDOMListeners(-1)),unblock()}}function listen(listener){var unlisten=transitionManager.appendListener(listener);return checkDOMListeners(1),function(){checkDOMListeners(-1),unlisten()}}void 0===props&&(props={}),canUseDOM||Object(__WEBPACK_IMPORTED_MODULE_4_tiny_invariant__.a)(!1);var globalHistory=window.history,canUseHistory=supportsHistory(),needsHashChangeListener=!supportsPopStateOnHashChange(),_props=props,_props$forceRefresh=_props.forceRefresh,forceRefresh=void 0!==_props$forceRefresh&&_props$forceRefresh,_props$getUserConfirm=_props.getUserConfirmation,getUserConfirmation=void 0===_props$getUserConfirm?getConfirmation:_props$getUserConfirm,_props$keyLength=_props.keyLength,keyLength=void 0===_props$keyLength?6:_props$keyLength,basename=props.basename?stripTrailingSlash(addLeadingSlash(props.basename)):"",transitionManager=createTransitionManager(),forceNextPop=!1,initialLocation=getDOMLocation(getHistoryState()),allKeys=[initialLocation.key],listenerCount=0,isBlocked=!1,history={length:globalHistory.length,action:"POP",location:initialLocation,createHref:createHref,push:push,replace:replace,go:go,goBack:goBack,goForward:goForward,block:block,listen:listen};return history}function getHashPath(){var href=window.location.href,hashIndex=href.indexOf("#");return-1===hashIndex?"":href.substring(hashIndex+1)}function pushHashPath(path){window.location.hash=path}function replaceHashPath(path){var hashIndex=window.location.href.indexOf("#");window.location.replace(window.location.href.slice(0,hashIndex>=0?hashIndex:0)+"#"+path)}function createHashHistory(props){function getDOMLocation(){var path=decodePath(getHashPath());return basename&&(path=stripBasename(path,basename)),createLocation(path)}function setState(nextState){Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__.a)(history,nextState),history.length=globalHistory.length,transitionManager.notifyListeners(history.location,history.action)}function handleHashChange(){var path=getHashPath(),encodedPath=encodePath(path);if(path!==encodedPath)replaceHashPath(encodedPath);else{var location=getDOMLocation(),prevLocation=history.location;if(!forceNextPop&&locationsAreEqual(prevLocation,location))return;if(ignorePath===createPath(location))return;ignorePath=null,handlePop(location)}}function handlePop(location){if(forceNextPop)forceNextPop=!1,setState();else{transitionManager.confirmTransitionTo(location,"POP",getUserConfirmation,function(ok){ok?setState({action:"POP",location:location}):revertPop(location)})}}function revertPop(fromLocation){var toLocation=history.location,toIndex=allPaths.lastIndexOf(createPath(toLocation));-1===toIndex&&(toIndex=0);var fromIndex=allPaths.lastIndexOf(createPath(fromLocation));-1===fromIndex&&(fromIndex=0);var delta=toIndex-fromIndex;delta&&(forceNextPop=!0,go(delta))}function createHref(location){return"#"+encodePath(basename+createPath(location))}function push(path,state){var location=createLocation(path,void 0,void 0,history.location);transitionManager.confirmTransitionTo(location,"PUSH",getUserConfirmation,function(ok){if(ok){var path=createPath(location),encodedPath=encodePath(basename+path);if(getHashPath()!==encodedPath){ignorePath=path,pushHashPath(encodedPath);var prevIndex=allPaths.lastIndexOf(createPath(history.location)),nextPaths=allPaths.slice(0,-1===prevIndex?0:prevIndex+1);nextPaths.push(path),allPaths=nextPaths,setState({action:"PUSH",location:location})}else setState()}})}function replace(path,state){var location=createLocation(path,void 0,void 0,history.location);transitionManager.confirmTransitionTo(location,"REPLACE",getUserConfirmation,function(ok){if(ok){var path=createPath(location),encodedPath=encodePath(basename+path);getHashPath()!==encodedPath&&(ignorePath=path,replaceHashPath(encodedPath));var prevIndex=allPaths.indexOf(createPath(history.location));-1!==prevIndex&&(allPaths[prevIndex]=path),setState({action:"REPLACE",location:location})}})}function go(n){globalHistory.go(n)}function goBack(){go(-1)}function goForward(){go(1)}function checkDOMListeners(delta){listenerCount+=delta,1===listenerCount&&1===delta?window.addEventListener(HashChangeEvent$1,handleHashChange):0===listenerCount&&window.removeEventListener(HashChangeEvent$1,handleHashChange)}function block(prompt){void 0===prompt&&(prompt=!1);var unblock=transitionManager.setPrompt(prompt);return isBlocked||(checkDOMListeners(1),isBlocked=!0),function(){return isBlocked&&(isBlocked=!1,checkDOMListeners(-1)),unblock()}}function listen(listener){var unlisten=transitionManager.appendListener(listener);return checkDOMListeners(1),function(){checkDOMListeners(-1),unlisten()}}void 0===props&&(props={}),canUseDOM||Object(__WEBPACK_IMPORTED_MODULE_4_tiny_invariant__.a)(!1);var globalHistory=window.history,_props=(supportsGoWithoutReloadUsingHash(),props),_props$getUserConfirm=_props.getUserConfirmation,getUserConfirmation=void 0===_props$getUserConfirm?getConfirmation:_props$getUserConfirm,_props$hashType=_props.hashType,hashType=void 0===_props$hashType?"slash":_props$hashType,basename=props.basename?stripTrailingSlash(addLeadingSlash(props.basename)):"",_HashPathCoders$hashT=HashPathCoders[hashType],encodePath=_HashPathCoders$hashT.encodePath,decodePath=_HashPathCoders$hashT.decodePath,transitionManager=createTransitionManager(),forceNextPop=!1,ignorePath=null,path=getHashPath(),encodedPath=encodePath(path);path!==encodedPath&&replaceHashPath(encodedPath);var initialLocation=getDOMLocation(),allPaths=[createPath(initialLocation)],listenerCount=0,isBlocked=!1,history={length:globalHistory.length,action:"POP",location:initialLocation,createHref:createHref,push:push,replace:replace,go:go,goBack:goBack,goForward:goForward,block:block,listen:listen};return history}function clamp(n,lowerBound,upperBound){return Math.min(Math.max(n,lowerBound),upperBound)}function createMemoryHistory(props){function setState(nextState){Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__.a)(history,nextState),history.length=history.entries.length,transitionManager.notifyListeners(history.location,history.action)}function createKey(){return Math.random().toString(36).substr(2,keyLength)}function push(path,state){var location=createLocation(path,state,createKey(),history.location);transitionManager.confirmTransitionTo(location,"PUSH",getUserConfirmation,function(ok){if(ok){var prevIndex=history.index,nextIndex=prevIndex+1,nextEntries=history.entries.slice(0);nextEntries.length>nextIndex?nextEntries.splice(nextIndex,nextEntries.length-nextIndex,location):nextEntries.push(location),setState({action:"PUSH",location:location,index:nextIndex,entries:nextEntries})}})}function replace(path,state){var location=createLocation(path,state,createKey(),history.location);transitionManager.confirmTransitionTo(location,"REPLACE",getUserConfirmation,function(ok){ok&&(history.entries[history.index]=location,setState({action:"REPLACE",location:location}))})}function go(n){var nextIndex=clamp(history.index+n,0,history.entries.length-1),location=history.entries[nextIndex];transitionManager.confirmTransitionTo(location,"POP",getUserConfirmation,function(ok){ok?setState({action:"POP",location:location,index:nextIndex}):setState()})}function goBack(){go(-1)}function goForward(){go(1)}function canGo(n){var nextIndex=history.index+n;return nextIndex>=0&&nextIndex<history.entries.length}function block(prompt){return void 0===prompt&&(prompt=!1),transitionManager.setPrompt(prompt)}function listen(listener){return transitionManager.appendListener(listener)}void 0===props&&(props={});var _props=props,getUserConfirmation=_props.getUserConfirmation,_props$initialEntries=_props.initialEntries,initialEntries=void 0===_props$initialEntries?["/"]:_props$initialEntries,_props$initialIndex=_props.initialIndex,initialIndex=void 0===_props$initialIndex?0:_props$initialIndex,_props$keyLength=_props.keyLength,keyLength=void 0===_props$keyLength?6:_props$keyLength,transitionManager=createTransitionManager(),index=clamp(initialIndex,0,initialEntries.length-1),entries=initialEntries.map(function(entry){return"string"==typeof entry?createLocation(entry,void 0,createKey()):createLocation(entry,void 0,entry.key||createKey())}),createHref=createPath,history={length:entries.length,action:"POP",location:entries[index],index:index,entries:entries,createHref:createHref,push:push,replace:replace,go:go,goBack:goBack,goForward:goForward,canGo:canGo,block:block,listen:listen};return history}__webpack_require__.d(__webpack_exports__,"a",function(){return createBrowserHistory}),__webpack_require__.d(__webpack_exports__,"b",function(){return createHashHistory}),__webpack_require__.d(__webpack_exports__,"d",function(){return createMemoryHistory}),__webpack_require__.d(__webpack_exports__,"c",function(){return createLocation}),__webpack_require__.d(__webpack_exports__,"f",function(){return locationsAreEqual}),__webpack_require__.d(__webpack_exports__,"e",function(){return createPath});var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__=__webpack_require__(41),__WEBPACK_IMPORTED_MODULE_1_resolve_pathname__=__webpack_require__(114),__WEBPACK_IMPORTED_MODULE_2_value_equal__=__webpack_require__(115),__WEBPACK_IMPORTED_MODULE_4_tiny_invariant__=(__webpack_require__(116),__webpack_require__(117)),canUseDOM=!("undefined"==typeof window||!window.document||!window.document.createElement),PopStateEvent="popstate",HashChangeEvent="hashchange",HashChangeEvent$1="hashchange",HashPathCoders={hashbang:{encodePath:function(path){return"!"===path.charAt(0)?path:"!/"+stripLeadingSlash(path)},decodePath:function(path){return"!"===path.charAt(0)?path.substr(1):path}},noslash:{encodePath:stripLeadingSlash,decodePath:addLeadingSlash},slash:{encodePath:addLeadingSlash,decodePath:addLeadingSlash}}},function(module,exports,__webpack_require__){"use strict";(function($){function set(data){return{type:"GENIUS_SET",data:data}}function authorizationGranted(data){return{type:"GENIUS_AUTHORIZATION_GRANTED",data:data}}function revokeAuthorization(){return{type:"GENIUS_AUTHORIZATION_REVOKED"}}function importAuthorization(authorization){return{type:"GENIUS_IMPORT_AUTHORIZATION",authorization:authorization}}function getMe(){return function(dispatch,getState){sendRequest(dispatch,getState,"account").then(function(response){dispatch({type:"GENIUS_ME_LOADED",me:response.user})},function(error){dispatch(coreActions.handleException("Could not load your Genius profile",error))})}}function getTrackLyrics(uri,path){return function(dispatch,getState){dispatch(coreActions.trackLoaded({uri:uri,lyrics:null,lyrics_path:null}));var config={method:"GET",url:"//"+getState().mopidy.host+":"+getState().mopidy.port+"/iris/http/get_lyrics?path="+path+"&connection_id="+getState().pusher.connection_id,timeout:1e4},loader_key=helpers.generateGuid();dispatch(uiActions.startLoading(loader_key,"genius_get_lyrics")),$.ajax(config).then(function(response,status,xhr){if(dispatch(uiActions.stopLoading(loader_key)),response&&response.result){var html=$(response.result),lyrics=html.find(".lyrics");if(lyrics.length>0){lyrics=lyrics.first(),lyrics.find("a").replaceWith(function(){return this.innerHTML});var lyrics_html=lyrics.html();lyrics_html=lyrics_html.replace(/(\[)/g,'<span class="mid_grey-text">['),lyrics_html=lyrics_html.replace(/(\])/g,"]</span>"),dispatch(coreActions.trackLoaded({uri:uri,lyrics:lyrics_html,lyrics_path:path}))}}else dispatch(coreActions.handleException("Could not get track lyrics",response.error))},function(xhr,status,error){dispatch(uiActions.stopLoading(loader_key)),dispatch(coreActions.handleException("Could not get track lyrics",error))})}}function findTrackLyrics(track){return function(dispatch,getState){var query="";query+=track.artists[0].name+" ",query+=track.name,query=query.toLowerCase(),query=query.replace(/\([^)]*\) */g,""),query=query.replace(/\([^[]*\] */g,""),sendRequest(dispatch,getState,"search","GET","q="+encodeURIComponent(query)).then(function(response){if(response.hits&&response.hits.length>0){for(var lyrics_results=[],i=0;i<response.hits.length;i++)lyrics_results.push({title:response.hits[i].result.full_title,url:response.hits[i].result.url,path:response.hits[i].result.path});dispatch(coreActions.trackLoaded({uri:track.uri,lyrics_results:lyrics_results}));var lyrics_result=lyrics_results[0];dispatch(getTrackLyrics(track.uri,lyrics_result.path))}},function(error){dispatch(coreActions.handleException("Could not search for track lyrics",error))})}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.set=set,exports.authorizationGranted=authorizationGranted,exports.revokeAuthorization=revokeAuthorization,exports.importAuthorization=importAuthorization,exports.getMe=getMe,exports.getTrackLyrics=getTrackLyrics,exports.findTrackLyrics=findTrackLyrics;var coreActions=__webpack_require__(9),uiActions=__webpack_require__(2),helpers=__webpack_require__(1),sendRequest=function(dispatch,getState,endpoint){var method=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"GET",data=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new Promise(function(resolve,reject){if(endpoint.startsWith("https://")||endpoint.startsWith("http://"))var url=endpoint;else{var url="https://api.genius.com/"+endpoint;getState().genius.access_token&&(url+="?access_token="+getState().genius.access_token)}var config={method:method,url:url,timeout:3e4,crossDomain:!0};data&&(config.data="string"==typeof data?data:JSON.stringify(data));var loader_key=helpers.generateGuid();dispatch(uiActions.startLoading(loader_key,"genius_"+endpoint)),$.ajax(config).then(function(response){dispatch(uiActions.stopLoading(loader_key)),response.meta&&response.meta.status>=200&&response.meta.status<300&&response.response?resolve(response.response):reject({config:config,xhr:xhr,status:status,error:error})},function(xhr,status,error){dispatch(uiActions.stopLoading(loader_key)),reject({config:config,xhr:xhr,status:status,error:error})})})}}).call(exports,__webpack_require__(17))},function(module,__webpack_exports__,__webpack_require__){"use strict";Object.defineProperty(__webpack_exports__,"__esModule",{value:!0});var __WEBPACK_IMPORTED_MODULE_0__MemoryRouter__=__webpack_require__(71);__webpack_require__.d(__webpack_exports__,"MemoryRouter",function(){return __WEBPACK_IMPORTED_MODULE_0__MemoryRouter__.a});var __WEBPACK_IMPORTED_MODULE_1__Prompt__=__webpack_require__(74);__webpack_require__.d(__webpack_exports__,"Prompt",function(){return __WEBPACK_IMPORTED_MODULE_1__Prompt__.a});var __WEBPACK_IMPORTED_MODULE_2__Redirect__=__webpack_require__(75);__webpack_require__.d(__webpack_exports__,"Redirect",function(){return __WEBPACK_IMPORTED_MODULE_2__Redirect__.a});var __WEBPACK_IMPORTED_MODULE_3__Route__=__webpack_require__(50);__webpack_require__.d(__webpack_exports__,"Route",function(){return __WEBPACK_IMPORTED_MODULE_3__Route__.a});var __WEBPACK_IMPORTED_MODULE_4__Router__=__webpack_require__(42);__webpack_require__.d(__webpack_exports__,"Router",function(){return __WEBPACK_IMPORTED_MODULE_4__Router__.a});var __WEBPACK_IMPORTED_MODULE_5__StaticRouter__=__webpack_require__(76);__webpack_require__.d(__webpack_exports__,"StaticRouter",function(){return __WEBPACK_IMPORTED_MODULE_5__StaticRouter__.a});var __WEBPACK_IMPORTED_MODULE_6__Switch__=__webpack_require__(77);__webpack_require__.d(__webpack_exports__,"Switch",function(){return __WEBPACK_IMPORTED_MODULE_6__Switch__.a});var __WEBPACK_IMPORTED_MODULE_7__generatePath__=__webpack_require__(51);__webpack_require__.d(__webpack_exports__,"generatePath",function(){return __WEBPACK_IMPORTED_MODULE_7__generatePath__.a});var __WEBPACK_IMPORTED_MODULE_8__matchPath__=__webpack_require__(43);__webpack_require__.d(__webpack_exports__,"matchPath",function(){return __WEBPACK_IMPORTED_MODULE_8__matchPath__.a});var __WEBPACK_IMPORTED_MODULE_9__withRouter__=__webpack_require__(78);__webpack_require__.d(__webpack_exports__,"withRouter",function(){return __WEBPACK_IMPORTED_MODULE_9__withRouter__.a})},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Thumbnail=__webpack_require__(10),_GridItem=(_interopRequireDefault(_Thumbnail),__webpack_require__(35)),_GridItem2=_interopRequireDefault(_GridItem),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(16),lastfmActions=_interopRequireWildcard(_actions2),ArtistGrid=function(_React$Component){function ArtistGrid(props){return _classCallCheck(this,ArtistGrid),_possibleConstructorReturn(this,(ArtistGrid.__proto__||Object.getPrototypeOf(ArtistGrid)).call(this,props))}return _inherits(ArtistGrid,_React$Component),_createClass(ArtistGrid,[{key:"handleContextMenu",value:function(e,item){e.preventDefault();var data={e:e,context:"artist",uris:[item.uri],items:[item]};this.props.uiActions.showContextMenu(data)}},{key:"render",value:function(){var _this2=this;if(this.props.artists){var className="grid grid--artists";return this.props.className&&(className+=" "+this.props.className),this.props.single_row&&(className+=" grid--single-row"),this.props.mini&&(className+=" grid--mini"),_react2.default.createElement("div",{className:className},this.props.artists.map(function(item){var artist=helpers.collate(item,{albums:_this2.props.albums});return _react2.default.createElement(_GridItem2.default,{key:artist.uri,type:"artist",item:artist,show_source_icon:_this2.props.show_source_icon,onClick:function(e){_this2.props.history.push("/artist/"+encodeURIComponent(artist.uri))},lastfmActions:_this2.props.lastfmActions,onContextMenu:function(e){return _this2.handleContextMenu(e,artist)}})}))}return null}}]),ArtistGrid}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{albums:state.core.albums}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),lastfmActions:(0,_redux.bindActionCreators)(lastfmActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(ArtistGrid)},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers),_Link=__webpack_require__(7),_Link2=_interopRequireDefault(_Link),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),GridItem=function(_React$Component){function GridItem(props){return _classCallCheck(this,GridItem),_possibleConstructorReturn(this,(GridItem.__proto__||Object.getPrototypeOf(GridItem)).call(this,props))}return _inherits(GridItem,_React$Component),_createClass(GridItem,[{key:"componentDidMount",value:function(){if(this.props.item){var item=this.props.item;if(!item.images&&this.props.lastfmActions)switch(helpers.uriType(item.uri)){case"artist":this.props.lastfmActions.getArtist(item.uri,item.name);break;case"album":item.artists&&item.artists.length>0&&this.props.lastfmActions.getAlbum(item.uri,item.artists[0].name,item.name,item.mbid?item.mbid:null)}}}},{key:"onContextMenu",value:function(e){this.props.onContextMenu&&this.props.onContextMenu(e)}},{key:"shouldComponentUpdate",value:function(nextProps,nextState){return nextProps.item!=this.props.item}},{key:"renderSecondary",value:function(item){switch(helpers.uriType(item.uri)){case"playlist":if(item.tracks_total)return _react2.default.createElement("span",{className:"grid__item__secondary__content"},item.tracks_total," tracks");break;case"artist":return _react2.default.createElement("span",{className:"grid__item__secondary__content"},void 0!==item.followers?item.followers.toLocaleString()+" followers ":null,void 0!==item.albums_uris?item.albums_uris.length+" albums":null);case"album":return _react2.default.createElement("span",{className:"grid__item__secondary__content"},void 0!==item.artists?_react2.default.createElement(_ArtistSentence2.default,{nolinks:!0,artists:item.artists}):null);default:return _react2.default.createElement("span",{className:"grid__item__secondary__content"},void 0!==item.artists?_react2.default.createElement(_ArtistSentence2.default,{nolinks:!0,artists:item.artists}):null,void 0!==item.followers?item.followers.toLocaleString()+" followers":null)}return""}},{key:"render",value:function(){var _this2=this;if(!this.props.item)return null;var item=this.props.item;void 0!==item.album&&(item.album.added_at=item.added_at,item=item.album);var images=null;if(this.props.item.images?images=Array.isArray(this.props.item.images)?this.props.item.images[0]:this.props.item.images:this.props.item.icons&&(images=this.props.item.icons),this.props.link)var link=this.props.link;else var link="/"+this.props.type+"/"+encodeURIComponent(item.uri);return _react2.default.createElement(_Link2.default,{className:"grid__item grid__item--"+this.props.type,to:link,onClick:function(e){return helpers.scrollTo()},onContextMenu:function(e){return _this2.onContextMenu(e)}},_react2.default.createElement(_Thumbnail2.default,{size:"medium",className:"grid__item__thumbnail",images:images}),_react2.default.createElement("div",{className:"grid__item__name"},item.name?item.name:_react2.default.createElement("span",{className:"opaque-text"},item.uri)),_react2.default.createElement("div",{className:"grid__item__secondary"},this.props.show_source_icon?_react2.default.createElement(_Icon2.default,{name:helpers.sourceIcon(item.uri),type:"fontawesome",className:"source"}):null,this.renderSecondary(item)))}}]),GridItem}(_react2.default.Component);exports.default=GridItem},function(module,exports,__webpack_require__){"use strict";function getServer(){return{type:"SNAPCAST_GET_SERVER"}}function setClientName(id,name){return{type:"SNAPCAST_SET_CLIENT_NAME",id:id,name:name}}function setClientMute(id,mute){return{type:"SNAPCAST_SET_CLIENT_MUTE",id:id,mute:mute}}function setClientVolume(id,volume){return{type:"SNAPCAST_SET_CLIENT_VOLUME",id:id,volume:volume}}function setClientLatency(id,latency){return{type:"SNAPCAST_SET_CLIENT_LATENCY",id:id,latency:latency}}function setClientGroup(id,group_id){return{type:"SNAPCAST_SET_CLIENT_GROUP",id:id,group_id:group_id}}function deleteClient(id){return{type:"SNAPCAST_DELETE_CLIENT",id:id}}function setGroupStream(id,stream_id){return{type:"SNAPCAST_SET_GROUP_STREAM",id:id,stream_id:stream_id}}function setGroupMute(id,mute){return{type:"SNAPCAST_SET_GROUP_MUTE",id:id,mute:mute}}function setGroupVolume(id,percent){return{type:"SNAPCAST_SET_GROUP_VOLUME",id:id,percent:percent,old_percent:arguments.length>2&&void 0!==arguments[2]?arguments[2]:0}}function eventReceived(message){return{type:"SNAPCAST_EVENT_RECEIVED",method:message.method,params:message.params}}function serverLoaded(server){return{type:"SNAPCAST_SERVER_LOADED",server:server}}function clientLoaded(client){return clientsLoaded([client])}function clientsLoaded(clients){return{type:"SNAPCAST_CLIENTS_LOADED",clients:clients,flush:arguments.length>1&&void 0!==arguments[1]&&arguments[1]}}function groupLoaded(group){return groupsLoaded([group])}function groupsLoaded(groups){return{type:"SNAPCAST_GROUPS_LOADED",groups:groups,flush:arguments.length>1&&void 0!==arguments[1]&&arguments[1]}}function streamLoaded(stream){return streamsLoaded([stream])}function streamsLoaded(streams){return{type:"SNAPCAST_STREAMS_LOADED",streams:streams,flush:arguments.length>1&&void 0!==arguments[1]&&arguments[1]}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getServer=getServer,exports.setClientName=setClientName,exports.setClientMute=setClientMute,exports.setClientVolume=setClientVolume,exports.setClientLatency=setClientLatency,exports.setClientGroup=setClientGroup,exports.deleteClient=deleteClient,exports.setGroupStream=setGroupStream,exports.setGroupMute=setGroupMute,exports.setGroupVolume=setGroupVolume,exports.eventReceived=eventReceived,exports.serverLoaded=serverLoaded,exports.clientLoaded=clientLoaded,exports.clientsLoaded=clientsLoaded,exports.groupLoaded=groupLoaded,exports.groupsLoaded=groupsLoaded,exports.streamLoaded=streamLoaded,exports.streamsLoaded=streamsLoaded},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_helpers=(_interopRequireDefault(_Link),__webpack_require__(1)),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(2)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions2),FollowButton=function(_React$Component){function FollowButton(props){return _classCallCheck(this,FollowButton),_possibleConstructorReturn(this,(FollowButton.__proto__||Object.getPrototypeOf(FollowButton)).call(this,props))}return _inherits(FollowButton,_React$Component),_createClass(FollowButton,[{key:"remove",value:function(){this.props.spotifyActions.following(this.props.uri,"DELETE")}},{key:"add",value:function(){this.props.spotifyActions.following(this.props.uri,"PUT")}},{key:"render",value:function(){var _this2=this;if(!this.props.uri)return!1;var className="button";return this.props.className&&(className+=" "+this.props.className),this.props.spotify_authorized?!0===this.props.is_following?_react2.default.createElement("button",{className:className+" button--destructive",onClick:function(e){return _this2.remove()}},this.props.removeText):_react2.default.createElement("button",{className:className+" button--default",onClick:function(e){return _this2.add()}},this.props.addText):_react2.default.createElement("button",{className:className+" button--disabled",onClick:function(e){return _this2.props.uiActions.createNotification({content:"You must authorize Spotify first",type:"warning"})}},this.props.addText)}}]),FollowButton}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{load_queue:state.ui.load_queue,spotify_authorized:state.spotify.authorization}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(FollowButton)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(16),lastfmActions=_interopRequireWildcard(_actions2),_GridItem=__webpack_require__(35),_GridItem2=_interopRequireDefault(_GridItem),AlbumGrid=function(_React$Component){function AlbumGrid(props){return _classCallCheck(this,AlbumGrid),_possibleConstructorReturn(this,(AlbumGrid.__proto__||Object.getPrototypeOf(AlbumGrid)).call(this,props))}return _inherits(AlbumGrid,_React$Component),_createClass(AlbumGrid,[{key:"handleContextMenu",value:function(e,item){e.preventDefault();var data={e:e,context:"album",uris:[item.uri],items:[item],tracklist_uri:item.uri};this.props.uiActions.showContextMenu(data)}},{key:"render",value:function(){var _this2=this;if(this.props.albums){var className="grid grid--albums";return this.props.className&&(className+=" "+this.props.className),this.props.single_row&&(className+=" grid--single-row"),this.props.mini&&(className+=" grid--mini"),_react2.default.createElement("div",{className:className},this.props.albums.map(function(item){var album=helpers.collate(item,{artists:_this2.props.artists});return _react2.default.createElement(_GridItem2.default,{key:album.uri,type:"album",item:album,lastfmActions:_this2.props.lastfmActions,show_source_icon:_this2.props.show_source_icon,onContextMenu:function(e){return _this2.handleContextMenu(e,album)}})}))}return null}}]),AlbumGrid}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{artists:state.core.artists}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),lastfmActions:(0,_redux.bindActionCreators)(lastfmActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(AlbumGrid)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_helpers=__webpack_require__(1),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(2)),uiActions=_interopRequireWildcard(_actions),_GridItem=__webpack_require__(35),_GridItem2=_interopRequireDefault(_GridItem),PlaylistGrid=function(_React$Component){function PlaylistGrid(props){return _classCallCheck(this,PlaylistGrid),_possibleConstructorReturn(this,(PlaylistGrid.__proto__||Object.getPrototypeOf(PlaylistGrid)).call(this,props))}return _inherits(PlaylistGrid,_React$Component),_createClass(PlaylistGrid,[{key:"handleContextMenu",value:function(e,item){e.preventDefault();var data={e:e,context:"playlist",uris:[item.uri],items:[item],tracklist_uri:item.uri};this.props.uiActions.showContextMenu(data)}},{key:"render",value:function(){var _this2=this;if(!this.props.playlists)return null;var className="grid grid--playlists";return this.props.className&&(className+=" "+this.props.className),this.props.single_row&&(className+=" grid--single-row"),this.props.mini&&(className+=" grid--mini"),_react2.default.createElement("div",{className:className},this.props.playlists.map(function(playlist){return _react2.default.createElement(_GridItem2.default,{key:playlist.uri,type:"playlist",item:playlist,show_source_icon:_this2.props.show_source_icon,onClick:function(e){_this2.props.history.push("/playlist/"+encodeURIComponent(playlist.uri))},onContextMenu:function(e){return _this2.handleContextMenu(e,playlist)}})}))}}]),PlaylistGrid}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(PlaylistGrid)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_reactRouter=__webpack_require__(33),_ListItem=__webpack_require__(236),_ListItem2=_interopRequireDefault(_ListItem),_helpers=__webpack_require__(1),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(2)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(16),lastfmActions=_interopRequireWildcard(_actions2),List=function(_React$Component){function List(props){return _classCallCheck(this,List),_possibleConstructorReturn(this,(List.__proto__||Object.getPrototypeOf(List)).call(this,props))}return _inherits(List,_React$Component),_createClass(List,[{key:"handleContextMenu",value:function(e,item){this.props.handleContextMenu&&(e.preventDefault(),this.props.handleContextMenu(e,item))}},{key:"render",value:function(){var _this2=this;if(!this.props.rows)return null;var className="list";return this.props.className&&(className+=" "+this.props.className),_react2.default.createElement("div",{className:className},this.props.rows.map(function(item,index){return _react2.default.createElement(_ListItem2.default,{key:index,item:item,lastfmActions:_this2.props.lastfmActions,history:_this2.props.history,link_prefix:_this2.props.link_prefix,handleContextMenu:function(e){return _this2.handleContextMenu(e,item)},thumbnail:_this2.props.thumbnail,details:_this2.props.details,nocontext:_this2.props.nocontext})}))}}]),List}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),lastfmActions:(0,_redux.bindActionCreators)(lastfmActions,dispatch)}};exports.default=(0,_reactRouter.withRouter)((0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(List))},function(module,__webpack_exports__,__webpack_require__){"use strict";function _extends(){return _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_extends.apply(this,arguments)}__webpack_exports__.a=_extends},function(module,__webpack_exports__,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var __WEBPACK_IMPORTED_MODULE_0_warning__=__webpack_require__(27),__WEBPACK_IMPORTED_MODULE_0_warning___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__),__WEBPACK_IMPORTED_MODULE_1_invariant__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_1_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__),__WEBPACK_IMPORTED_MODULE_2_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_2_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__),__WEBPACK_IMPORTED_MODULE_3_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_3_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__),_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},Router=function(_React$Component){function Router(){var _temp,_this,_ret;_classCallCheck(this,Router);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,_React$Component.call.apply(_React$Component,[this].concat(args))),_this.state={match:_this.computeMatch(_this.props.history.location.pathname)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(Router,_React$Component),Router.prototype.getChildContext=function(){return{router:_extends({},this.context.router,{history:this.props.history,route:{location:this.props.history.location,match:this.state.match}})}},Router.prototype.computeMatch=function(pathname){return{path:"/",url:"/",params:{},isExact:"/"===pathname}},Router.prototype.componentWillMount=function(){var _this2=this,_props=this.props,children=_props.children,history=_props.history;__WEBPACK_IMPORTED_MODULE_1_invariant___default()(null==children||1===__WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.count(children),"A <Router> may have only one child element"),this.unlisten=history.listen(function(){_this2.setState({match:_this2.computeMatch(history.location.pathname)})})},Router.prototype.componentWillReceiveProps=function(nextProps){__WEBPACK_IMPORTED_MODULE_0_warning___default()(this.props.history===nextProps.history,"You cannot change <Router history>")},Router.prototype.componentWillUnmount=function(){this.unlisten()},Router.prototype.render=function(){var children=this.props.children;return children?__WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.only(children):null},Router}(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);Router.propTypes={history:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,children:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node},Router.contextTypes={router:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object},Router.childContextTypes={router:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired},__webpack_exports__.a=Router},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_path_to_regexp__=__webpack_require__(73),__WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_path_to_regexp__),patternCache={},cacheCount=0,compilePath=function(pattern,options){var cacheKey=""+options.end+options.strict+options.sensitive,cache=patternCache[cacheKey]||(patternCache[cacheKey]={});if(cache[pattern])return cache[pattern];var keys=[],re=__WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default()(pattern,keys,options),compiledPattern={re:re,keys:keys};return cacheCount<1e4&&(cache[pattern]=compiledPattern,cacheCount++),compiledPattern},matchPath=function(pathname){var options=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},parent=arguments[2];"string"==typeof options&&(options={path:options});var _options=options,path=_options.path,_options$exact=_options.exact,exact=void 0!==_options$exact&&_options$exact,_options$strict=_options.strict,strict=void 0!==_options$strict&&_options$strict,_options$sensitive=_options.sensitive,sensitive=void 0!==_options$sensitive&&_options$sensitive;if(null==path)return parent;var _compilePath=compilePath(path,{end:exact,strict:strict,sensitive:sensitive}),re=_compilePath.re,keys=_compilePath.keys,match=re.exec(pathname);if(!match)return null;var url=match[0],values=match.slice(1),isExact=pathname===url;return exact&&!isExact?null:{path:path,url:"/"===path&&""===url?"/":url,isExact:isExact,params:keys.reduce(function(memo,key,index){return memo[key.name]=values[index],memo},{})}};__webpack_exports__.a=matchPath},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_ErrorMessage=__webpack_require__(30),_ErrorMessage2=_interopRequireDefault(_ErrorMessage),ErrorBoundary=function(_React$Component){function ErrorBoundary(props){_classCallCheck(this,ErrorBoundary);var _this=_possibleConstructorReturn(this,(ErrorBoundary.__proto__||Object.getPrototypeOf(ErrorBoundary)).call(this,props));return _this.state={hasError:!1,error:null,info:null},_this}return _inherits(ErrorBoundary,_React$Component),_createClass(ErrorBoundary,[{key:"componentDidCatch",value:function(error,info){this.setState({hasError:!0,error:error,info:info}),console.error(error,info)}},{key:"render",value:function(){return this.state.hasError?_react2.default.createElement(_ErrorMessage2.default,{type:"error-boundary"},this.state.info?_react2.default.createElement("pre",{className:"error-message__trace"},this.state.info.componentStack):null):this.props.children}}]),ErrorBoundary}(_react2.default.Component);exports.default=ErrorBoundary},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _captialize=__webpack_require__(216);Object.defineProperty(exports,"captialize",{enumerable:!0,get:function(){return _interopRequireDefault(_captialize).default}});var _clamp=__webpack_require__(217);Object.defineProperty(exports,"clamp",{enumerable:!0,get:function(){return _interopRequireDefault(_clamp).default}});var _distanceTo=__webpack_require__(218);Object.defineProperty(exports,"distanceTo",{enumerable:!0,get:function(){return _interopRequireDefault(_distanceTo).default}});var _isDefined=__webpack_require__(219);Object.defineProperty(exports,"isDefined",{enumerable:!0,get:function(){return _interopRequireDefault(_isDefined).default}});var _isNumber=__webpack_require__(220);Object.defineProperty(exports,"isNumber",{enumerable:!0,get:function(){return _interopRequireDefault(_isNumber).default}});var _isObject=__webpack_require__(221);Object.defineProperty(exports,"isObject",{enumerable:!0,get:function(){return _interopRequireDefault(_isObject).default}});var _length=__webpack_require__(222);Object.defineProperty(exports,"length",{enumerable:!0,get:function(){return _interopRequireDefault(_length).default}})},function(module,exports){var g;g=function(){return this}();try{g=g||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(g=window)}module.exports=g},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",function(){return ReactReduxContext});var __WEBPACK_IMPORTED_MODULE_0_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_0_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__),ReactReduxContext=__WEBPACK_IMPORTED_MODULE_0_react___default.a.createContext(null)},function(module,__webpack_exports__,__webpack_require__){"use strict";function _objectWithoutPropertiesLoose(source,excluded){if(null==source)return{};var key,i,target={},sourceKeys=Object.keys(source);for(i=0;i<sourceKeys.length;i++)key=sourceKeys[i],excluded.indexOf(key)>=0||(target[key]=source[key]);return target}__webpack_exports__.a=_objectWithoutPropertiesLoose},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Router__=__webpack_require__(42);__webpack_exports__.a=__WEBPACK_IMPORTED_MODULE_0_react_router_es_Router__.a},function(module,__webpack_exports__,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var __WEBPACK_IMPORTED_MODULE_0_warning__=__webpack_require__(27),__WEBPACK_IMPORTED_MODULE_0_warning___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__),__WEBPACK_IMPORTED_MODULE_1_invariant__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_1_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__),__WEBPACK_IMPORTED_MODULE_2_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_2_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__),__WEBPACK_IMPORTED_MODULE_3_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_3_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__),__WEBPACK_IMPORTED_MODULE_4__matchPath__=__webpack_require__(43),_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},isEmptyChildren=function(children){return 0===__WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.count(children)},Route=function(_React$Component){function Route(){var _temp,_this,_ret;_classCallCheck(this,Route);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,_React$Component.call.apply(_React$Component,[this].concat(args))),_this.state={match:_this.computeMatch(_this.props,_this.context.router)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(Route,_React$Component),Route.prototype.getChildContext=function(){return{router:_extends({},this.context.router,{route:{location:this.props.location||this.context.router.route.location,match:this.state.match}})}},Route.prototype.computeMatch=function(_ref,router){var computedMatch=_ref.computedMatch,location=_ref.location,path=_ref.path,strict=_ref.strict,exact=_ref.exact,sensitive=_ref.sensitive;if(computedMatch)return computedMatch;__WEBPACK_IMPORTED_MODULE_1_invariant___default()(router,"You should not use <Route> or withRouter() outside a <Router>");var route=router.route,pathname=(location||route.location).pathname;return Object(__WEBPACK_IMPORTED_MODULE_4__matchPath__.a)(pathname,{path:path,strict:strict,exact:exact,sensitive:sensitive},route.match)},Route.prototype.componentWillMount=function(){__WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.component&&this.props.render),"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored"),__WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.component&&this.props.children&&!isEmptyChildren(this.props.children)),"You should not use <Route component> and <Route children> in the same route; <Route children> will be ignored"),__WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.render&&this.props.children&&!isEmptyChildren(this.props.children)),"You should not use <Route render> and <Route children> in the same route; <Route children> will be ignored")},Route.prototype.componentWillReceiveProps=function(nextProps,nextContext){__WEBPACK_IMPORTED_MODULE_0_warning___default()(!(nextProps.location&&!this.props.location),'<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.'),__WEBPACK_IMPORTED_MODULE_0_warning___default()(!(!nextProps.location&&this.props.location),'<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.'),this.setState({match:this.computeMatch(nextProps,nextContext.router)})},Route.prototype.render=function(){var match=this.state.match,_props=this.props,children=_props.children,component=_props.component,render=_props.render,_context$router=this.context.router,history=_context$router.history,route=_context$router.route,staticContext=_context$router.staticContext,location=this.props.location||route.location,props={match:match,location:location,history:history,staticContext:staticContext};return component?match?__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(component,props):null:render?match?render(props):null:"function"==typeof children?children(props):children&&!isEmptyChildren(children)?__WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.only(children):null},Route}(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);Route.propTypes={computedMatch:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object,path:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,exact:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,strict:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,sensitive:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,component:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,render:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,children:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node]),location:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object},Route.contextTypes={router:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape({history:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,route:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,staticContext:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object})},Route.childContextTypes={router:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired},__webpack_exports__.a=Route},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_path_to_regexp__=__webpack_require__(73),__WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_path_to_regexp__),patternCache={},cacheCount=0,compileGenerator=function(pattern){var cacheKey=pattern,cache=patternCache[cacheKey]||(patternCache[cacheKey]={});if(cache[pattern])return cache[pattern];var compiledGenerator=__WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default.a.compile(pattern);return cacheCount<1e4&&(cache[pattern]=compiledGenerator,cacheCount++),compiledGenerator},generatePath=function(){var pattern=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",params=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"/"===pattern?pattern:compileGenerator(pattern)(params,{pretty:!0})};__webpack_exports__.a=generatePath},function(module,__webpack_exports__,__webpack_require__){"use strict";function warn(s){console.warn("[react-ga]",s)}__webpack_exports__.a=warn},function(module,exports,__webpack_require__){(function(process){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(require){var MutationObs,capturedSetTimeout="undefined"!=typeof setTimeout&&setTimeout,setTimer=function(f,ms){return setTimeout(f,ms)},clearTimer=function(t){return clearTimeout(t)},asap=function(f){return capturedSetTimeout(f,0)};if(function(){return void 0!==process&&"[object process]"===Object.prototype.toString.call(process)}())asap=function(f){return process.nextTick(f)};else if(MutationObs=function(){return"undefined"!=typeof MutationObserver&&MutationObserver||"undefined"!=typeof WebKitMutationObserver&&WebKitMutationObserver}())asap=function(MutationObserver){function run(){var f=scheduled;scheduled=void 0,f()}var scheduled,node=document.createTextNode("");new MutationObserver(run).observe(node,{characterData:!0});var i=0;return function(f){scheduled=f,node.data=i^=1}}(MutationObs);else if(!capturedSetTimeout){var vertx=__webpack_require__(158);setTimer=function(f,ms){return vertx.setTimer(ms,f)},clearTimer=vertx.cancelTimer,asap=vertx.runOnLoop||vertx.runOnContext}return{setTimer:setTimer,clearTimer:clearTimer,asap:asap}}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))}).call(exports,__webpack_require__(54))},function(module,exports){function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(fun){if(cachedSetTimeout===setTimeout)return setTimeout(fun,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(fun,0);try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout)return clearTimeout(marker);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(marker);try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}function cleanUpNextTick(){draining&&currentQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var timeout=runTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue&&currentQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,runClearTimeout(timeout)}}function Item(fun,array){this.fun=fun,this.array=array}function noop(){}var cachedSetTimeout,cachedClearTimeout,process=module.exports={};!function(){try{cachedSetTimeout="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(e){cachedSetTimeout=defaultSetTimout}try{cachedClearTimeout="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(e){cachedClearTimeout=defaultClearTimeout}}();var currentQueue,queue=[],draining=!1,queueIndex=-1;process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),1!==queue.length||draining||runTimeout(drainQueue)},Item.prototype.run=function(){this.fun.apply(null,this.array)},process.title="browser",process.browser=!0,process.env={},process.argv=[],process.version="",process.versions={},process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.prependListener=noop,process.prependOnceListener=noop,process.listeners=function(name){return[]},process.binding=function(name){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(dir){throw new Error("process.chdir is not supported")},process.umask=function(){return 0}},function(module,exports,__webpack_require__){"use strict";function set(data){return{type:"GOOGLE_SET",data:data}}function getLibraryArtists(){return{type:"GOOGLE_GET_LIBRARY_ARTISTS"}}function clearLibraryArtists(){return{type:"GOOGLE_CLEAR_LIBRARY_ARTISTS"}}function getLibraryAlbums(){return{type:"GOOGLE_GET_LIBRARY_ALBUMS"}}function clearLibraryAlbums(){return{type:"GOOGLE_CLEAR_LIBRARY_ALBUMS"}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.set=set,exports.getLibraryArtists=getLibraryArtists,exports.clearLibraryArtists=clearLibraryArtists,exports.getLibraryAlbums=getLibraryAlbums,exports.clearLibraryAlbums=clearLibraryAlbums},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Icon=__webpack_require__(5),_helpers=(_interopRequireDefault(_Icon),__webpack_require__(1)),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers),VolumeControl=function(_React$Component){function VolumeControl(props){_classCallCheck(this,VolumeControl);var _this=_possibleConstructorReturn(this,(VolumeControl.__proto__||Object.getPrototypeOf(VolumeControl)).call(this,props));return _this.handleChange=helpers.throttle(_this.handleChange.bind(_this),100),_this}return _inherits(VolumeControl,_React$Component),_createClass(VolumeControl,[{key:"handleChange",value:function(value){this.props.onVolumeChange(value,this.props.volume)}},{key:"render",value:function(){var _this2=this;return _react2.default.createElement("div",{className:"slider__wrapper "+(this.props.className?this.props.className:"")},_react2.default.createElement("div",{className:"slider slider--volume "+(this.props.mute?"slider--muted":"")},_react2.default.createElement("input",{className:"slider__input",type:"range",min:"0",max:"25",value:this.props.volume/4,onChange:function(e){return _this2.handleChange(4*parseInt(e.target.value))}}),_react2.default.createElement("div",{className:"slider__track"},_react2.default.createElement("div",{className:"slider__track__progress",style:{width:this.props.volume+"%"}}))))}}]),VolumeControl}(_react2.default.Component);exports.default=VolumeControl},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon);exports.default=(0,_react.memo)(function(props){return props.mute?_react2.default.createElement("a",{className:"control mute-control "+(props.noTooltip?"":"tooltip ")+(props.className?props.className:""),onClick:function(){return props.onMuteChange(!1)}},_react2.default.createElement(_Icon2.default,{className:"red-text",name:"volume_off"}),props.noTooltip?null:_react2.default.createElement("span",{className:"tooltip__content"},"Unmute")):_react2.default.createElement("a",{className:"control mute-control "+(props.noTooltip?"":"tooltip ")+(props.className?props.className:""),onClick:function(){return props.onMuteChange(!0)}},_react2.default.createElement(_Icon2.default,{className:"muted",name:"volume_mute"}),props.noTooltip?null:_react2.default.createElement("span",{className:"tooltip__content"},"Mute"))})},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0),_react2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_react);exports.default=(0,_react.memo)(function(props){return void 0===props.popularity||null===props.popularity?null:_react2.default.createElement("span",{className:"popularity"},_react2.default.createElement("span",{className:"popularity-bars"},_react2.default.createElement("span",{className:"bar"+(props.popularity>10?" filled":"")}),_react2.default.createElement("span",{className:"bar"+(props.popularity>30?" filled":"")}),_react2.default.createElement("span",{className:"bar"+(props.popularity>50?" filled":"")}),_react2.default.createElement("span",{className:"bar"+(props.popularity>70?" filled":"")}),_react2.default.createElement("span",{className:"bar"+(props.popularity>90?" filled":"")})),_react2.default.createElement("span",{className:"popularity-value"},props.popularity,"% popularity"))})},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0);!function(obj){obj&&obj.__esModule}(_react);exports.default=(0,_react.memo)(function(props){var formatted=parseInt(props.value);return formatted>1e6?(formatted/=1e6,formatted=Math.round(10*formatted)/10,formatted+="m"):formatted>1e3?(formatted/=1e3,formatted=Math.round(10*formatted)/10,formatted+="k"):formatted=formatted.toLocaleString(),formatted})},function(module,exports,__webpack_require__){"use strict";function autobind(){for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return 1===args.length?boundClass.apply(void 0,args):boundMethod.apply(void 0,args)}function boundClass(target){var keys=void 0;return"undefined"!=typeof Reflect&&"function"==typeof Reflect.ownKeys?keys=Reflect.ownKeys(target.prototype):(keys=Object.getOwnPropertyNames(target.prototype),"function"==typeof Object.getOwnPropertySymbols&&(keys=keys.concat(Object.getOwnPropertySymbols(target.prototype)))),keys.forEach(function(key){if("constructor"!==key){var descriptor=Object.getOwnPropertyDescriptor(target.prototype,key);"function"==typeof descriptor.value&&Object.defineProperty(target.prototype,key,boundMethod(target,key,descriptor))}}),target}function boundMethod(target,key,descriptor){var fn=descriptor.value;if("function"!=typeof fn)throw new Error("@autobind decorator can only be applied to methods not: "+typeof fn);var definingProperty=!1;return{configurable:!0,get:function(){if(definingProperty||this===target.prototype||this.hasOwnProperty(key))return fn;var boundFn=fn.bind(this);return definingProperty=!0,Object.defineProperty(this,key,{value:boundFn,configurable:!0,writable:!0}),definingProperty=!1,boundFn}}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=autobind,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Link=__webpack_require__(7),_Icon=(_interopRequireDefault(_Link),__webpack_require__(5)),_Icon2=_interopRequireDefault(_Icon),FilterField=function(_React$Component){function FilterField(props){_classCallCheck(this,FilterField);var _this=_possibleConstructorReturn(this,(FilterField.__proto__||Object.getPrototypeOf(FilterField)).call(this,props));return _this.state={value:"",active:!!_this.props.slim_mode},_this.handleKeyUp=_this.handleKeyUp.bind(_this),_this}return _inherits(FilterField,_React$Component),_createClass(FilterField,[{key:"componentWillMount",value:function(){window.addEventListener("keyup",this.handleKeyUp,!1),this.setState({value:this.props.initialValue})}},{key:"componentWillUnmount",value:function(){window.removeEventListener("keyup",this.handleKeyUp,!1)}},{key:"handleKeyUp",value:function(e){27!=e.keyCode||this.props.slim_mode||(e.preventDefault(),this.setState({value:"",active:!1}),this.handleChange(""))}},{key:"activate",value:function(){this.setState({active:!0})}},{key:"handleChange",value:function(value){this.setState({value:value,active:!!this.props.slim_mode||""!=value}),this.props.handleChange(value)}},{key:"handleBlur",value:function(){""!=this.state.value||this.props.slim_mode||this.setState({active:!1})}},{key:"render",value:function(){var _this2=this;return _react2.default.createElement("span",{className:"filter-field "+(this.state.active?"active":""),onClick:function(e){return _this2.activate()}},_react2.default.createElement("form",null,_react2.default.createElement("input",{type:"text",placeholder:"Filter",value:this.state.value,onFocus:function(e){return _this2.activate()},onBlur:function(e){return _this2.handleBlur()},onChange:function(e){return _this2.handleChange(e.target.value)}}),_react2.default.createElement(_Icon2.default,{name:"search",type:"material"})))}}]),FilterField}(_react2.default.Component);exports.default=FilterField},function(module,exports,__webpack_require__){"use strict";function toObject(val){if(null===val||void 0===val)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(val)}/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
var getOwnPropertySymbols=Object.getOwnPropertySymbols,hasOwnProperty=Object.prototype.hasOwnProperty,propIsEnumerable=Object.prototype.propertyIsEnumerable;module.exports=function(){try{if(!Object.assign)return!1;var test1=new String("abc");if(test1[5]="de","5"===Object.getOwnPropertyNames(test1)[0])return!1;for(var test2={},i=0;i<10;i++)test2["_"+String.fromCharCode(i)]=i;if("0123456789"!==Object.getOwnPropertyNames(test2).map(function(n){return test2[n]}).join(""))return!1;var test3={};return"abcdefghijklmnopqrst".split("").forEach(function(letter){test3[letter]=letter}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},test3)).join("")}catch(err){return!1}}()?Object.assign:function(target,source){for(var from,symbols,to=toObject(target),s=1;s<arguments.length;s++){from=Object(arguments[s]);for(var key in from)hasOwnProperty.call(from,key)&&(to[key]=from[key]);if(getOwnPropertySymbols){symbols=getOwnPropertySymbols(from);for(var i=0;i<symbols.length;i++)propIsEnumerable.call(from,symbols[i])&&(to[symbols[i]]=from[symbols[i]])}}return to}},function(module,exports,__webpack_require__){"use strict";function checkDCE(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(err){console.error(err)}}checkDCE(),module.exports=__webpack_require__(93)},function(module,__webpack_exports__,__webpack_require__){"use strict";function _inheritsLoose(subClass,superClass){subClass.prototype=Object.create(superClass.prototype),subClass.prototype.constructor=subClass,subClass.__proto__=superClass}__webpack_exports__.a=_inheritsLoose},function(module,__webpack_exports__,__webpack_require__){"use strict";function connectAdvanced(selectorFactory,_ref){void 0===_ref&&(_ref={});var _ref2=_ref,_ref2$getDisplayName=_ref2.getDisplayName,getDisplayName=void 0===_ref2$getDisplayName?function(name){return"ConnectAdvanced("+name+")"}:_ref2$getDisplayName,_ref2$methodName=_ref2.methodName,methodName=void 0===_ref2$methodName?"connectAdvanced":_ref2$methodName,_ref2$renderCountProp=_ref2.renderCountProp,renderCountProp=void 0===_ref2$renderCountProp?void 0:_ref2$renderCountProp,_ref2$shouldHandleSta=_ref2.shouldHandleStateChanges,shouldHandleStateChanges=void 0===_ref2$shouldHandleSta||_ref2$shouldHandleSta,_ref2$storeKey=_ref2.storeKey,storeKey=void 0===_ref2$storeKey?"store":_ref2$storeKey,_ref2$withRef=_ref2.withRef,withRef=void 0!==_ref2$withRef&&_ref2$withRef,_ref2$forwardRef=_ref2.forwardRef,forwardRef=void 0!==_ref2$forwardRef&&_ref2$forwardRef,_ref2$context=_ref2.context,context=void 0===_ref2$context?__WEBPACK_IMPORTED_MODULE_8__Context__.a:_ref2$context,connectOptions=Object(__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__.a)(_ref2,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"]);__WEBPACK_IMPORTED_MODULE_5_invariant___default()(void 0===renderCountProp,"renderCountProp is removed. render counting is built into the latest React dev tools profiling extension"),__WEBPACK_IMPORTED_MODULE_5_invariant___default()(!withRef,"withRef is removed. To access the wrapped instance, use a ref on the connected component");var customStoreWarningMessage="To use a custom Redux store for specific components, create a custom React context with React.createContext(), and pass the context object to React Redux's Provider and specific components like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. You may also pass a {context : MyContext} option to connect";__WEBPACK_IMPORTED_MODULE_5_invariant___default()("store"===storeKey,"storeKey has been removed and does not do anything. "+customStoreWarningMessage);var Context=context;return function(WrappedComponent){function makeDerivedPropsSelector(){var lastProps,lastState,lastDerivedProps,lastStore,lastSelectorFactoryOptions,sourceSelector;return function(state,props,store,selectorFactoryOptions){if(pure&&lastProps===props&&lastState===state)return lastDerivedProps;store===lastStore&&lastSelectorFactoryOptions===selectorFactoryOptions||(lastStore=store,lastSelectorFactoryOptions=selectorFactoryOptions,sourceSelector=selectorFactory(store.dispatch,selectorFactoryOptions)),lastProps=props,lastState=state;var nextProps=sourceSelector(state,props);return lastDerivedProps=nextProps}}function makeChildElementSelector(){var lastChildProps,lastForwardRef,lastChildElement,lastComponent;return function(WrappedComponent,childProps,forwardRef){return childProps===lastChildProps&&forwardRef===lastForwardRef&&lastComponent===WrappedComponent||(lastChildProps=childProps,lastForwardRef=forwardRef,lastComponent=WrappedComponent,lastChildElement=__WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(WrappedComponent,Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_extends__.a)({},childProps,{ref:forwardRef}))),lastChildElement}}var wrappedComponentName=WrappedComponent.displayName||WrappedComponent.name||"Component",displayName=getDisplayName(wrappedComponentName),selectorFactoryOptions=Object(__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_extends__.a)({},connectOptions,{getDisplayName:getDisplayName,methodName:methodName,renderCountProp:renderCountProp,shouldHandleStateChanges:shouldHandleStateChanges,storeKey:storeKey,displayName:displayName,wrappedComponentName:wrappedComponentName,WrappedComponent:WrappedComponent}),pure=connectOptions.pure,OuterBaseComponent=__WEBPACK_IMPORTED_MODULE_6_react__.Component;pure&&(OuterBaseComponent=__WEBPACK_IMPORTED_MODULE_6_react__.PureComponent);var Connect=function(_OuterBaseComponent){function Connect(props){var _this;return _this=_OuterBaseComponent.call(this,props)||this,__WEBPACK_IMPORTED_MODULE_5_invariant___default()(forwardRef?!props.wrapperProps[storeKey]:!props[storeKey],"Passing redux store in props has been removed and does not do anything. "+customStoreWarningMessage),_this.selectDerivedProps=makeDerivedPropsSelector(),_this.selectChildElement=makeChildElementSelector(),_this.indirectRenderWrappedComponent=_this.indirectRenderWrappedComponent.bind(Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_assertThisInitialized__.a)(_this)),_this}Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_inheritsLoose__.a)(Connect,_OuterBaseComponent);var _proto=Connect.prototype;return _proto.indirectRenderWrappedComponent=function(value){return this.renderWrappedComponent(value)},_proto.renderWrappedComponent=function(value){__WEBPACK_IMPORTED_MODULE_5_invariant___default()(value,'Could not find "store" in the context of "'+displayName+'". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to '+displayName+" in connect options.");var forwardedRef,storeState=value.storeState,store=value.store,wrapperProps=this.props;forwardRef&&(wrapperProps=this.props.wrapperProps,forwardedRef=this.props.forwardedRef);var derivedProps=this.selectDerivedProps(storeState,wrapperProps,store,selectorFactoryOptions);return this.selectChildElement(WrappedComponent,derivedProps,forwardedRef)},_proto.render=function(){var ContextToUse=this.props.context&&this.props.context.Consumer&&Object(__WEBPACK_IMPORTED_MODULE_7_react_is__.isContextConsumer)(__WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(this.props.context.Consumer,null))?this.props.context:Context;return __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(ContextToUse.Consumer,null,this.indirectRenderWrappedComponent)},Connect}(OuterBaseComponent);if(Connect.WrappedComponent=WrappedComponent,Connect.displayName=displayName,forwardRef){var forwarded=__WEBPACK_IMPORTED_MODULE_6_react___default.a.forwardRef(function(props,ref){return __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(Connect,{wrapperProps:props,forwardedRef:ref})});return forwarded.displayName=displayName,forwarded.WrappedComponent=WrappedComponent,__WEBPACK_IMPORTED_MODULE_4_hoist_non_react_statics___default()(forwarded,WrappedComponent)}return __WEBPACK_IMPORTED_MODULE_4_hoist_non_react_statics___default()(Connect,WrappedComponent)}}__webpack_exports__.a=connectAdvanced;var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_assertThisInitialized__=__webpack_require__(99),__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_inheritsLoose__=__webpack_require__(64),__WEBPACK_IMPORTED_MODULE_2__babel_runtime_helpers_esm_extends__=__webpack_require__(41),__WEBPACK_IMPORTED_MODULE_3__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__=__webpack_require__(48),__WEBPACK_IMPORTED_MODULE_4_hoist_non_react_statics__=__webpack_require__(100),__WEBPACK_IMPORTED_MODULE_4_hoist_non_react_statics___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_hoist_non_react_statics__),__WEBPACK_IMPORTED_MODULE_5_invariant__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_5_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_invariant__),__WEBPACK_IMPORTED_MODULE_6_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_6_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__),__WEBPACK_IMPORTED_MODULE_7_react_is__=__webpack_require__(66),__WEBPACK_IMPORTED_MODULE_8__Context__=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_is__),__webpack_require__(47))},function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(101)},function(module,__webpack_exports__,__webpack_require__){"use strict";function wrapMapToPropsConstant(getConstant){return function(dispatch,options){function constantSelector(){return constant}var constant=getConstant(dispatch,options);return constantSelector.dependsOnOwnProps=!1,constantSelector}}function getDependsOnOwnProps(mapToProps){return null!==mapToProps.dependsOnOwnProps&&void 0!==mapToProps.dependsOnOwnProps?Boolean(mapToProps.dependsOnOwnProps):1!==mapToProps.length}function wrapMapToPropsFunc(mapToProps,methodName){return function(dispatch,_ref){var proxy=(_ref.displayName,function(stateOrDispatch,ownProps){return proxy.dependsOnOwnProps?proxy.mapToProps(stateOrDispatch,ownProps):proxy.mapToProps(stateOrDispatch)});return proxy.dependsOnOwnProps=!0,proxy.mapToProps=function(stateOrDispatch,ownProps){proxy.mapToProps=mapToProps,proxy.dependsOnOwnProps=getDependsOnOwnProps(mapToProps);var props=proxy(stateOrDispatch,ownProps);return"function"==typeof props&&(proxy.mapToProps=props,proxy.dependsOnOwnProps=getDependsOnOwnProps(props),props=proxy(stateOrDispatch,ownProps)),props},proxy}}__webpack_exports__.a=wrapMapToPropsConstant,__webpack_exports__.b=wrapMapToPropsFunc;__webpack_require__(68)},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__(108),__webpack_require__(69)},function(module,__webpack_exports__,__webpack_require__){"use strict";function warning(message){"undefined"!=typeof console&&"function"==typeof console.error&&console.error(message);try{throw new Error(message)}catch(e){}}__webpack_exports__.a=warning},function(module,__webpack_exports__,__webpack_require__){"use strict";function _objectWithoutProperties(obj,keys){var target={};for(var i in obj)keys.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(obj,i)&&(target[i]=obj[i]);return target}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var __WEBPACK_IMPORTED_MODULE_0_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_0_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__),__WEBPACK_IMPORTED_MODULE_1_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_1_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__),__WEBPACK_IMPORTED_MODULE_2_invariant__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_2_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_invariant__),__WEBPACK_IMPORTED_MODULE_3_history__=__webpack_require__(31),_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},isModifiedEvent=function(event){return!!(event.metaKey||event.altKey||event.ctrlKey||event.shiftKey)},Link=function(_React$Component){function Link(){var _temp,_this,_ret;_classCallCheck(this,Link);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,_React$Component.call.apply(_React$Component,[this].concat(args))),_this.handleClick=function(event){if(_this.props.onClick&&_this.props.onClick(event),!event.defaultPrevented&&0===event.button&&!_this.props.target&&!isModifiedEvent(event)){event.preventDefault();var history=_this.context.router.history,_this$props=_this.props,replace=_this$props.replace,to=_this$props.to;replace?history.replace(to):history.push(to)}},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(Link,_React$Component),Link.prototype.render=function(){var _props=this.props,to=(_props.replace,_props.to),innerRef=_props.innerRef,props=_objectWithoutProperties(_props,["replace","to","innerRef"]);__WEBPACK_IMPORTED_MODULE_2_invariant___default()(this.context.router,"You should not use <Link> outside a <Router>"),__WEBPACK_IMPORTED_MODULE_2_invariant___default()(void 0!==to,'You must specify the "to" property');var history=this.context.router.history,location="string"==typeof to?Object(__WEBPACK_IMPORTED_MODULE_3_history__.c)(to,null,null,history.location):to,href=history.createHref(location);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("a",_extends({},props,{onClick:this.handleClick,href:href,ref:innerRef}))},Link}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);Link.propTypes={onClick:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,target:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,replace:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,to:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]).isRequired,innerRef:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func])},Link.defaultProps={replace:!1},Link.contextTypes={router:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({history:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({push:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,replace:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,createHref:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired}).isRequired}).isRequired},__webpack_exports__.a=Link},function(module,__webpack_exports__,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var __WEBPACK_IMPORTED_MODULE_0_warning__=__webpack_require__(27),__WEBPACK_IMPORTED_MODULE_0_warning___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__),__WEBPACK_IMPORTED_MODULE_1_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_1_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__),__WEBPACK_IMPORTED_MODULE_2_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_2_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__),__WEBPACK_IMPORTED_MODULE_3_history__=__webpack_require__(31),__WEBPACK_IMPORTED_MODULE_4__Router__=__webpack_require__(42),MemoryRouter=function(_React$Component){function MemoryRouter(){var _temp,_this,_ret;_classCallCheck(this,MemoryRouter);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,_React$Component.call.apply(_React$Component,[this].concat(args))),_this.history=Object(__WEBPACK_IMPORTED_MODULE_3_history__.d)(_this.props),_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(MemoryRouter,_React$Component),MemoryRouter.prototype.componentWillMount=function(){__WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history,"<MemoryRouter> ignores the history prop. To use a custom history, use `import { Router }` instead of `import { MemoryRouter as Router }`.")},MemoryRouter.prototype.render=function(){return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Router__.a,{history:this.history,children:this.props.children})},MemoryRouter}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);MemoryRouter.propTypes={initialEntries:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.array,initialIndex:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,getUserConfirmation:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,keyLength:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,children:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node},__webpack_exports__.a=MemoryRouter},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Route__=__webpack_require__(50);__webpack_exports__.a=__WEBPACK_IMPORTED_MODULE_0_react_router_es_Route__.a},function(module,exports,__webpack_require__){function parse(str,options){for(var res,tokens=[],key=0,index=0,path="",defaultDelimiter=options&&options.delimiter||"/";null!=(res=PATH_REGEXP.exec(str));){var m=res[0],escaped=res[1],offset=res.index;if(path+=str.slice(index,offset),index=offset+m.length,escaped)path+=escaped[1];else{var next=str[index],prefix=res[2],name=res[3],capture=res[4],group=res[5],modifier=res[6],asterisk=res[7];path&&(tokens.push(path),path="");var partial=null!=prefix&&null!=next&&next!==prefix,repeat="+"===modifier||"*"===modifier,optional="?"===modifier||"*"===modifier,delimiter=res[2]||defaultDelimiter,pattern=capture||group;tokens.push({name:name||key++,prefix:prefix||"",delimiter:delimiter,optional:optional,repeat:repeat,partial:partial,asterisk:!!asterisk,pattern:pattern?escapeGroup(pattern):asterisk?".*":"[^"+escapeString(delimiter)+"]+?"})}}return index<str.length&&(path+=str.substr(index)),path&&tokens.push(path),tokens}function compile(str,options){return tokensToFunction(parse(str,options))}function encodeURIComponentPretty(str){return encodeURI(str).replace(/[\/?#]/g,function(c){return"%"+c.charCodeAt(0).toString(16).toUpperCase()})}function encodeAsterisk(str){return encodeURI(str).replace(/[?#]/g,function(c){return"%"+c.charCodeAt(0).toString(16).toUpperCase()})}function tokensToFunction(tokens){for(var matches=new Array(tokens.length),i=0;i<tokens.length;i++)"object"==typeof tokens[i]&&(matches[i]=new RegExp("^(?:"+tokens[i].pattern+")$"));return function(obj,opts){for(var path="",data=obj||{},options=opts||{},encode=options.pretty?encodeURIComponentPretty:encodeURIComponent,i=0;i<tokens.length;i++){var token=tokens[i];if("string"!=typeof token){var segment,value=data[token.name];if(null==value){if(token.optional){token.partial&&(path+=token.prefix);continue}throw new TypeError('Expected "'+token.name+'" to be defined')}if(isarray(value)){if(!token.repeat)throw new TypeError('Expected "'+token.name+'" to not repeat, but received `'+JSON.stringify(value)+"`");if(0===value.length){if(token.optional)continue;throw new TypeError('Expected "'+token.name+'" to not be empty')}for(var j=0;j<value.length;j++){if(segment=encode(value[j]),!matches[i].test(segment))throw new TypeError('Expected all "'+token.name+'" to match "'+token.pattern+'", but received `'+JSON.stringify(segment)+"`");path+=(0===j?token.prefix:token.delimiter)+segment}}else{if(segment=token.asterisk?encodeAsterisk(value):encode(value),!matches[i].test(segment))throw new TypeError('Expected "'+token.name+'" to match "'+token.pattern+'", but received "'+segment+'"');path+=token.prefix+segment}}else path+=token}return path}}function escapeString(str){return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function escapeGroup(group){return group.replace(/([=!:$\/()])/g,"\\$1")}function attachKeys(re,keys){return re.keys=keys,re}function flags(options){return options.sensitive?"":"i"}function regexpToRegexp(path,keys){var groups=path.source.match(/\((?!\?)/g);if(groups)for(var i=0;i<groups.length;i++)keys.push({name:i,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return attachKeys(path,keys)}function arrayToRegexp(path,keys,options){for(var parts=[],i=0;i<path.length;i++)parts.push(pathToRegexp(path[i],keys,options).source);return attachKeys(new RegExp("(?:"+parts.join("|")+")",flags(options)),keys)}function stringToRegexp(path,keys,options){return tokensToRegExp(parse(path,options),keys,options)}function tokensToRegExp(tokens,keys,options){isarray(keys)||(options=keys||options,keys=[]),options=options||{};for(var strict=options.strict,end=!1!==options.end,route="",i=0;i<tokens.length;i++){var token=tokens[i];if("string"==typeof token)route+=escapeString(token);else{var prefix=escapeString(token.prefix),capture="(?:"+token.pattern+")";keys.push(token),token.repeat&&(capture+="(?:"+prefix+capture+")*"),capture=token.optional?token.partial?prefix+"("+capture+")?":"(?:"+prefix+"("+capture+"))?":prefix+"("+capture+")",route+=capture}}var delimiter=escapeString(options.delimiter||"/"),endsWithDelimiter=route.slice(-delimiter.length)===delimiter;return strict||(route=(endsWithDelimiter?route.slice(0,-delimiter.length):route)+"(?:"+delimiter+"(?=$))?"),route+=end?"$":strict&&endsWithDelimiter?"":"(?="+delimiter+"|$)",attachKeys(new RegExp("^"+route,flags(options)),keys)}function pathToRegexp(path,keys,options){return isarray(keys)||(options=keys||options,keys=[]),options=options||{},path instanceof RegExp?regexpToRegexp(path,keys):isarray(path)?arrayToRegexp(path,keys,options):stringToRegexp(path,keys,options)}var isarray=__webpack_require__(121);module.exports=pathToRegexp,module.exports.parse=parse,module.exports.compile=compile,module.exports.tokensToFunction=tokensToFunction,module.exports.tokensToRegExp=tokensToRegExp;var PATH_REGEXP=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g")},function(module,__webpack_exports__,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var __WEBPACK_IMPORTED_MODULE_0_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_0_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__),__WEBPACK_IMPORTED_MODULE_1_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_1_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__),__WEBPACK_IMPORTED_MODULE_2_invariant__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_2_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_invariant__),Prompt=function(_React$Component){function Prompt(){return _classCallCheck(this,Prompt),_possibleConstructorReturn(this,_React$Component.apply(this,arguments))}return _inherits(Prompt,_React$Component),Prompt.prototype.enable=function(message){this.unblock&&this.unblock(),this.unblock=this.context.router.history.block(message)},Prompt.prototype.disable=function(){this.unblock&&(this.unblock(),this.unblock=null)},Prompt.prototype.componentWillMount=function(){__WEBPACK_IMPORTED_MODULE_2_invariant___default()(this.context.router,"You should not use <Prompt> outside a <Router>"),this.props.when&&this.enable(this.props.message)},Prompt.prototype.componentWillReceiveProps=function(nextProps){nextProps.when?this.props.when&&this.props.message===nextProps.message||this.enable(nextProps.message):this.disable()},Prompt.prototype.componentWillUnmount=function(){this.disable()},Prompt.prototype.render=function(){return null},Prompt}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);Prompt.propTypes={when:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,message:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string]).isRequired},Prompt.defaultProps={when:!0},Prompt.contextTypes={router:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({history:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({block:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired}).isRequired}).isRequired},__webpack_exports__.a=Prompt},function(module,__webpack_exports__,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var __WEBPACK_IMPORTED_MODULE_0_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_0_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__),__WEBPACK_IMPORTED_MODULE_1_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_1_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__),__WEBPACK_IMPORTED_MODULE_2_warning__=__webpack_require__(27),__WEBPACK_IMPORTED_MODULE_2_warning___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__),__WEBPACK_IMPORTED_MODULE_3_invariant__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_3_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_invariant__),__WEBPACK_IMPORTED_MODULE_4_history__=__webpack_require__(31),__WEBPACK_IMPORTED_MODULE_5__generatePath__=__webpack_require__(51),_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},Redirect=function(_React$Component){function Redirect(){return _classCallCheck(this,Redirect),_possibleConstructorReturn(this,_React$Component.apply(this,arguments))}return _inherits(Redirect,_React$Component),Redirect.prototype.isStatic=function(){return this.context.router&&this.context.router.staticContext},Redirect.prototype.componentWillMount=function(){__WEBPACK_IMPORTED_MODULE_3_invariant___default()(this.context.router,"You should not use <Redirect> outside a <Router>"),this.isStatic()&&this.perform()},Redirect.prototype.componentDidMount=function(){this.isStatic()||this.perform()},Redirect.prototype.componentDidUpdate=function(prevProps){var prevTo=Object(__WEBPACK_IMPORTED_MODULE_4_history__.c)(prevProps.to),nextTo=Object(__WEBPACK_IMPORTED_MODULE_4_history__.c)(this.props.to);if(Object(__WEBPACK_IMPORTED_MODULE_4_history__.f)(prevTo,nextTo))return void __WEBPACK_IMPORTED_MODULE_2_warning___default()(!1,"You tried to redirect to the same route you're currently on: \""+nextTo.pathname+nextTo.search+'"');this.perform()},Redirect.prototype.computeTo=function(_ref){var computedMatch=_ref.computedMatch,to=_ref.to;return computedMatch?"string"==typeof to?Object(__WEBPACK_IMPORTED_MODULE_5__generatePath__.a)(to,computedMatch.params):_extends({},to,{pathname:Object(__WEBPACK_IMPORTED_MODULE_5__generatePath__.a)(to.pathname,computedMatch.params)}):to},Redirect.prototype.perform=function(){var history=this.context.router.history,push=this.props.push,to=this.computeTo(this.props);push?history.push(to):history.replace(to)},Redirect.prototype.render=function(){return null},Redirect}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);Redirect.propTypes={computedMatch:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,push:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,from:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,to:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]).isRequired},Redirect.defaultProps={push:!1},Redirect.contextTypes={router:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({history:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({push:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,replace:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired}).isRequired,staticContext:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object}).isRequired},__webpack_exports__.a=Redirect},function(module,__webpack_exports__,__webpack_require__){"use strict";function _objectWithoutProperties(obj,keys){var target={};for(var i in obj)keys.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(obj,i)&&(target[i]=obj[i]);return target}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var __WEBPACK_IMPORTED_MODULE_0_warning__=__webpack_require__(27),__WEBPACK_IMPORTED_MODULE_0_warning___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__),__WEBPACK_IMPORTED_MODULE_1_invariant__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_1_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__),__WEBPACK_IMPORTED_MODULE_2_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_2_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__),__WEBPACK_IMPORTED_MODULE_3_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_3_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__),__WEBPACK_IMPORTED_MODULE_4_history__=__webpack_require__(31),__WEBPACK_IMPORTED_MODULE_5__Router__=__webpack_require__(42),_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},addLeadingSlash=function(path){return"/"===path.charAt(0)?path:"/"+path},addBasename=function(basename,location){return basename?_extends({},location,{pathname:addLeadingSlash(basename)+location.pathname}):location},stripBasename=function(basename,location){if(!basename)return location;var base=addLeadingSlash(basename);return 0!==location.pathname.indexOf(base)?location:_extends({},location,{pathname:location.pathname.substr(base.length)})},createURL=function(location){return"string"==typeof location?location:Object(__WEBPACK_IMPORTED_MODULE_4_history__.e)(location)},staticHandler=function(methodName){return function(){__WEBPACK_IMPORTED_MODULE_1_invariant___default()(!1,"You cannot %s with <StaticRouter>",methodName)}},noop=function(){},StaticRouter=function(_React$Component){function StaticRouter(){var _temp,_this,_ret;_classCallCheck(this,StaticRouter);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,_React$Component.call.apply(_React$Component,[this].concat(args))),_this.createHref=function(path){return addLeadingSlash(_this.props.basename+createURL(path))},_this.handlePush=function(location){var _this$props=_this.props,basename=_this$props.basename,context=_this$props.context;context.action="PUSH",context.location=addBasename(basename,Object(__WEBPACK_IMPORTED_MODULE_4_history__.c)(location)),context.url=createURL(context.location)},_this.handleReplace=function(location){var _this$props2=_this.props,basename=_this$props2.basename,context=_this$props2.context;context.action="REPLACE",context.location=addBasename(basename,Object(__WEBPACK_IMPORTED_MODULE_4_history__.c)(location)),context.url=createURL(context.location)},_this.handleListen=function(){return noop},_this.handleBlock=function(){return noop},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(StaticRouter,_React$Component),StaticRouter.prototype.getChildContext=function(){return{router:{staticContext:this.props.context}}},StaticRouter.prototype.componentWillMount=function(){__WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history,"<StaticRouter> ignores the history prop. To use a custom history, use `import { Router }` instead of `import { StaticRouter as Router }`.")},StaticRouter.prototype.render=function(){var _props=this.props,basename=_props.basename,location=(_props.context,_props.location),props=_objectWithoutProperties(_props,["basename","context","location"]),history={createHref:this.createHref,action:"POP",location:stripBasename(basename,Object(__WEBPACK_IMPORTED_MODULE_4_history__.c)(location)),push:this.handlePush,replace:this.handleReplace,go:staticHandler("go"),goBack:staticHandler("goBack"),goForward:staticHandler("goForward"),listen:this.handleListen,block:this.handleBlock};return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__Router__.a,_extends({},props,{history:history}))},StaticRouter}(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);StaticRouter.propTypes={basename:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,context:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,location:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object])},StaticRouter.defaultProps={basename:"",location:"/"},StaticRouter.childContextTypes={router:__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired},__webpack_exports__.a=StaticRouter},function(module,__webpack_exports__,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var __WEBPACK_IMPORTED_MODULE_0_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_0_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__),__WEBPACK_IMPORTED_MODULE_1_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_1_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__),__WEBPACK_IMPORTED_MODULE_2_warning__=__webpack_require__(27),__WEBPACK_IMPORTED_MODULE_2_warning___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__),__WEBPACK_IMPORTED_MODULE_3_invariant__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_3_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_invariant__),__WEBPACK_IMPORTED_MODULE_4__matchPath__=__webpack_require__(43),Switch=function(_React$Component){function Switch(){return _classCallCheck(this,Switch),_possibleConstructorReturn(this,_React$Component.apply(this,arguments))}return _inherits(Switch,_React$Component),Switch.prototype.componentWillMount=function(){__WEBPACK_IMPORTED_MODULE_3_invariant___default()(this.context.router,"You should not use <Switch> outside a <Router>")},Switch.prototype.componentWillReceiveProps=function(nextProps){__WEBPACK_IMPORTED_MODULE_2_warning___default()(!(nextProps.location&&!this.props.location),'<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.'),__WEBPACK_IMPORTED_MODULE_2_warning___default()(!(!nextProps.location&&this.props.location),'<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.')},Switch.prototype.render=function(){var route=this.context.router.route,children=this.props.children,location=this.props.location||route.location,match=void 0,child=void 0;return __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children,function(element){if(null==match&&__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(element)){var _element$props=element.props,pathProp=_element$props.path,exact=_element$props.exact,strict=_element$props.strict,sensitive=_element$props.sensitive,from=_element$props.from,path=pathProp||from;child=element,match=Object(__WEBPACK_IMPORTED_MODULE_4__matchPath__.a)(location.pathname,{path:path,exact:exact,strict:strict,sensitive:sensitive},route.match)}}),match?__WEBPACK_IMPORTED_MODULE_0_react___default.a.cloneElement(child,{location:location,computedMatch:match}):null},Switch}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);Switch.contextTypes={router:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({route:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object.isRequired}).isRequired},Switch.propTypes={children:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node,location:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object},__webpack_exports__.a=Switch},function(module,__webpack_exports__,__webpack_require__){"use strict";function _objectWithoutProperties(obj,keys){var target={};for(var i in obj)keys.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(obj,i)&&(target[i]=obj[i]);return target}var __WEBPACK_IMPORTED_MODULE_0_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_0_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__),__WEBPACK_IMPORTED_MODULE_1_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_1_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__),__WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics__=__webpack_require__(129),__WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics__),__WEBPACK_IMPORTED_MODULE_3__Route__=__webpack_require__(50),_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},withRouter=function(Component){var C=function(props){var wrappedComponentRef=props.wrappedComponentRef,remainingProps=_objectWithoutProperties(props,["wrappedComponentRef"]);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__Route__.a,{children:function(routeComponentProps){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(Component,_extends({},remainingProps,routeComponentProps,{ref:wrappedComponentRef}))}})};return C.displayName="withRouter("+(Component.displayName||Component.name)+")",C.WrappedComponent=Component,C.propTypes={wrappedComponentRef:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func},__WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics___default()(C,Component)};__webpack_exports__.a=withRouter},function(module,__webpack_exports__,__webpack_require__){"use strict";function trim(s){return s.replace(/^\s+|\s+$/g,"")}__webpack_exports__.a=trim},function(module,exports){(function(__webpack_amd_options__){module.exports=__webpack_amd_options__}).call(exports,{})},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){function TimeoutError(message){Error.call(this),this.message=message,this.name=TimeoutError.name,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,TimeoutError)}return TimeoutError.prototype=Object.create(Error.prototype),TimeoutError.prototype.constructor=TimeoutError,TimeoutError}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){function toPendingState(){return{state:"pending"}}function toRejectedState(e){return{state:"rejected",reason:e}}function toFulfilledState(x){return{state:"fulfilled",value:x}}function inspect(handler){var state=handler.state();return 0===state?toPendingState():state>0?toFulfilledState(handler.value):toRejectedState(handler.value)}return{pending:toPendingState,fulfilled:toFulfilledState,rejected:toRejectedState,inspect:inspect}}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){function makeApply(Promise,call){function apply(f,thisArg,args){var p=Promise._defer(),l=args.length;return callAndResolve({f:f,thisArg:thisArg,args:args,params:new Array(l),i:l-1,call:call},p._handler),p}function callAndResolve(c,h){if(c.i<0)return call(c.f,c.thisArg,c.params,h);Promise._handler(c.args[c.i]).fold(callAndResolveNext,c,void 0,h)}function callAndResolveNext(c,x,h){c.params[c.i]=x,c.i-=1,callAndResolve(c,h)}return arguments.length<2&&(call=tryCatchResolve),apply}function tryCatchResolve(f,thisArg,args,resolver){try{resolver.resolve(f.apply(thisArg,args))}catch(e){resolver.reject(e)}}return makeApply.tryCatchResolve=tryCatchResolve,makeApply}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){(function(process,global){var __WEBPACK_AMD_DEFINE_RESULT__;/**
* [js-sha256]{@link https://github.com/emn178/js-sha256}
*
* @version 0.9.0
* @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2014-2017
* @license MIT
*/
!function(){"use strict";function Sha256(is224,sharedMemory){sharedMemory?(blocks[0]=blocks[16]=blocks[1]=blocks[2]=blocks[3]=blocks[4]=blocks[5]=blocks[6]=blocks[7]=blocks[8]=blocks[9]=blocks[10]=blocks[11]=blocks[12]=blocks[13]=blocks[14]=blocks[15]=0,this.blocks=blocks):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],is224?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=is224}function HmacSha256(key,is224,sharedMemory){var i,type=typeof key;if("string"===type){var code,bytes=[],length=key.length,index=0;for(i=0;i<length;++i)code=key.charCodeAt(i),code<128?bytes[index++]=code:code<2048?(bytes[index++]=192|code>>6,bytes[index++]=128|63&code):code<55296||code>=57344?(bytes[index++]=224|code>>12,bytes[index++]=128|code>>6&63,bytes[index++]=128|63&code):(code=65536+((1023&code)<<10|1023&key.charCodeAt(++i)),bytes[index++]=240|code>>18,bytes[index++]=128|code>>12&63,bytes[index++]=128|code>>6&63,bytes[index++]=128|63&code);key=bytes}else{if("object"!==type)throw new Error(ERROR);if(null===key)throw new Error(ERROR);if(ARRAY_BUFFER&&key.constructor===ArrayBuffer)key=new Uint8Array(key);else if(!(Array.isArray(key)||ARRAY_BUFFER&&ArrayBuffer.isView(key)))throw new Error(ERROR)}key.length>64&&(key=new Sha256(is224,!0).update(key).array());var oKeyPad=[],iKeyPad=[];for(i=0;i<64;++i){var b=key[i]||0;oKeyPad[i]=92^b,iKeyPad[i]=54^b}Sha256.call(this,is224,sharedMemory),this.update(iKeyPad),this.oKeyPad=oKeyPad,this.inner=!0,this.sharedMemory=sharedMemory}var ERROR="input is invalid type",WINDOW="object"==typeof window,root=WINDOW?window:{};root.JS_SHA256_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&"object"==typeof self,NODE_JS=!root.JS_SHA256_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;NODE_JS?root=global:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_SHA256_NO_COMMON_JS&&"object"==typeof module&&module.exports,AMD=__webpack_require__(80),ARRAY_BUFFER=!root.JS_SHA256_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks=[];!root.JS_SHA256_NO_NODE_JS&&Array.isArray||(Array.isArray=function(obj){return"[object Array]"===Object.prototype.toString.call(obj)}),!ARRAY_BUFFER||!root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(obj){return"object"==typeof obj&&obj.buffer&&obj.buffer.constructor===ArrayBuffer});var createOutputMethod=function(outputType,is224){return function(message){return new Sha256(is224,!0).update(message)[outputType]()}},createMethod=function(is224){var method=createOutputMethod("hex",is224);NODE_JS&&(method=nodeWrap(method,is224)),method.create=function(){return new Sha256(is224)},method.update=function(message){return method.create().update(message)};for(var i=0;i<OUTPUT_TYPES.length;++i){var type=OUTPUT_TYPES[i];method[type]=createOutputMethod(type,is224)}return method},nodeWrap=function(method,is224){var crypto=eval("require('crypto')"),Buffer=eval("require('buffer').Buffer"),algorithm=is224?"sha224":"sha256",nodeMethod=function(message){if("string"==typeof message)return crypto.createHash(algorithm).update(message,"utf8").digest("hex");if(null===message||void 0===message)throw new Error(ERROR);return message.constructor===ArrayBuffer&&(message=new Uint8Array(message)),Array.isArray(message)||ArrayBuffer.isView(message)||message.constructor===Buffer?crypto.createHash(algorithm).update(new Buffer(message)).digest("hex"):method(message)};return nodeMethod},createHmacOutputMethod=function(outputType,is224){return function(key,message){return new HmacSha256(key,is224,!0).update(message)[outputType]()}},createHmacMethod=function(is224){var method=createHmacOutputMethod("hex",is224);method.create=function(key){return new HmacSha256(key,is224)},method.update=function(key,message){return method.create(key).update(message)};for(var i=0;i<OUTPUT_TYPES.length;++i){var type=OUTPUT_TYPES[i];method[type]=createHmacOutputMethod(type,is224)}return method};Sha256.prototype.update=function(message){if(!this.finalized){var notString,type=typeof message;if("string"!==type){if("object"!==type)throw new Error(ERROR);if(null===message)throw new Error(ERROR);if(ARRAY_BUFFER&&message.constructor===ArrayBuffer)message=new Uint8Array(message);else if(!(Array.isArray(message)||ARRAY_BUFFER&&ArrayBuffer.isView(message)))throw new Error(ERROR);notString=!0}for(var code,i,index=0,length=message.length,blocks=this.blocks;index<length;){if(this.hashed&&(this.hashed=!1,blocks[0]=this.block,blocks[16]=blocks[1]=blocks[2]=blocks[3]=blocks[4]=blocks[5]=blocks[6]=blocks[7]=blocks[8]=blocks[9]=blocks[10]=blocks[11]=blocks[12]=blocks[13]=blocks[14]=blocks[15]=0),notString)for(i=this.start;index<length&&i<64;++index)blocks[i>>2]|=message[index]<<SHIFT[3&i++];else for(i=this.start;index<length&&i<64;++index)code=message.charCodeAt(index),code<128?blocks[i>>2]|=code<<SHIFT[3&i++]:code<2048?(blocks[i>>2]|=(192|code>>6)<<SHIFT[3&i++],blocks[i>>2]|=(128|63&code)<<SHIFT[3&i++]):code<55296||code>=57344?(blocks[i>>2]|=(224|code>>12)<<SHIFT[3&i++],blocks[i>>2]|=(128|code>>6&63)<<SHIFT[3&i++],blocks[i>>2]|=(128|63&code)<<SHIFT[3&i++]):(code=65536+((1023&code)<<10|1023&message.charCodeAt(++index)),blocks[i>>2]|=(240|code>>18)<<SHIFT[3&i++],blocks[i>>2]|=(128|code>>12&63)<<SHIFT[3&i++],blocks[i>>2]|=(128|code>>6&63)<<SHIFT[3&i++],blocks[i>>2]|=(128|63&code)<<SHIFT[3&i++]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=64?(this.block=blocks[16],this.start=i-64,this.hash(),this.hashed=!0):this.start=i}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var blocks=this.blocks,i=this.lastByteIndex;blocks[16]=this.block,blocks[i>>2]|=EXTRA[3&i],this.block=blocks[16],i>=56&&(this.hashed||this.hash(),blocks[0]=this.block,blocks[16]=blocks[1]=blocks[2]=blocks[3]=blocks[4]=blocks[5]=blocks[6]=blocks[7]=blocks[8]=blocks[9]=blocks[10]=blocks[11]=blocks[12]=blocks[13]=blocks[14]=blocks[15]=0),blocks[14]=this.hBytes<<3|this.bytes>>>29,blocks[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var j,s0,s1,maj,t1,t2,ch,ab,da,cd,bc,a=this.h0,b=this.h1,c=this.h2,d=this.h3,e=this.h4,f=this.h5,g=this.h6,h=this.h7,blocks=this.blocks;for(j=16;j<64;++j)t1=blocks[j-15],s0=(t1>>>7|t1<<25)^(t1>>>18|t1<<14)^t1>>>3,t1=blocks[j-2],s1=(t1>>>17|t1<<15)^(t1>>>19|t1<<13)^t1>>>10,blocks[j]=blocks[j-16]+s0+blocks[j-7]+s1<<0;for(bc=b&c,j=0;j<64;j+=4)this.first?(this.is224?(ab=300032,t1=blocks[0]-1413257819,h=t1-150054599<<0,d=t1+24177077<<0):(ab=704751109,t1=blocks[0]-210244248,h=t1-1521486534<<0,d=t1+143694565<<0),this.first=!1):(s0=(a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10),s1=(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7),ab=a&b,maj=ab^a&c^bc,ch=e&f^~e&g,t1=h+s1+ch+K[j]+blocks[j],t2=s0+maj,h=d+t1<<0,d=t1+t2<<0),s0=(d>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10),s1=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),da=d&a,maj=da^d&b^ab,ch=h&e^~h&f,t1=g+s1+ch+K[j+1]+blocks[j+1],t2=s0+maj,g=c+t1<<0,c=t1+t2<<0,s0=(c>>>2|c<<30)^(c>>>13|c<<19)^(c>>>22|c<<10),s1=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7),cd=c&d,maj=cd^c&a^da,ch=g&h^~g&e,t1=f+s1+ch+K[j+2]+blocks[j+2],t2=s0+maj,f=b+t1<<0,b=t1+t2<<0,s0=(b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10),s1=(f>>>6|f<<26)^(f>>>11|f<<21)^(f>>>25|f<<7),bc=b&c,maj=bc^b&d^cd,ch=f&g^~f&h,t1=e+s1+ch+K[j+3]+blocks[j+3],t2=s0+maj,e=a+t1<<0,a=t1+t2<<0;this.h0=this.h0+a<<0,this.h1=this.h1+b<<0,this.h2=this.h2+c<<0,this.h3=this.h3+d<<0,this.h4=this.h4+e<<0,this.h5=this.h5+f<<0,this.h6=this.h6+g<<0,this.h7=this.h7+h<<0},Sha256.prototype.hex=function(){this.finalize();var h0=this.h0,h1=this.h1,h2=this.h2,h3=this.h3,h4=this.h4,h5=this.h5,h6=this.h6,h7=this.h7,hex=HEX_CHARS[h0>>28&15]+HEX_CHARS[h0>>24&15]+HEX_CHARS[h0>>20&15]+HEX_CHARS[h0>>16&15]+HEX_CHARS[h0>>12&15]+HEX_CHARS[h0>>8&15]+HEX_CHARS[h0>>4&15]+HEX_CHARS[15&h0]+HEX_CHARS[h1>>28&15]+HEX_CHARS[h1>>24&15]+HEX_CHARS[h1>>20&15]+HEX_CHARS[h1>>16&15]+HEX_CHARS[h1>>12&15]+HEX_CHARS[h1>>8&15]+HEX_CHARS[h1>>4&15]+HEX_CHARS[15&h1]+HEX_CHARS[h2>>28&15]+HEX_CHARS[h2>>24&15]+HEX_CHARS[h2>>20&15]+HEX_CHARS[h2>>16&15]+HEX_CHARS[h2>>12&15]+HEX_CHARS[h2>>8&15]+HEX_CHARS[h2>>4&15]+HEX_CHARS[15&h2]+HEX_CHARS[h3>>28&15]+HEX_CHARS[h3>>24&15]+HEX_CHARS[h3>>20&15]+HEX_CHARS[h3>>16&15]+HEX_CHARS[h3>>12&15]+HEX_CHARS[h3>>8&15]+HEX_CHARS[h3>>4&15]+HEX_CHARS[15&h3]+HEX_CHARS[h4>>28&15]+HEX_CHARS[h4>>24&15]+HEX_CHARS[h4>>20&15]+HEX_CHARS[h4>>16&15]+HEX_CHARS[h4>>12&15]+HEX_CHARS[h4>>8&15]+HEX_CHARS[h4>>4&15]+HEX_CHARS[15&h4]+HEX_CHARS[h5>>28&15]+HEX_CHARS[h5>>24&15]+HEX_CHARS[h5>>20&15]+HEX_CHARS[h5>>16&15]+HEX_CHARS[h5>>12&15]+HEX_CHARS[h5>>8&15]+HEX_CHARS[h5>>4&15]+HEX_CHARS[15&h5]+HEX_CHARS[h6>>28&15]+HEX_CHARS[h6>>24&15]+HEX_CHARS[h6>>20&15]+HEX_CHARS[h6>>16&15]+HEX_CHARS[h6>>12&15]+HEX_CHARS[h6>>8&15]+HEX_CHARS[h6>>4&15]+HEX_CHARS[15&h6];return this.is224||(hex+=HEX_CHARS[h7>>28&15]+HEX_CHARS[h7>>24&15]+HEX_CHARS[h7>>20&15]+HEX_CHARS[h7>>16&15]+HEX_CHARS[h7>>12&15]+HEX_CHARS[h7>>8&15]+HEX_CHARS[h7>>4&15]+HEX_CHARS[15&h7]),hex},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var h0=this.h0,h1=this.h1,h2=this.h2,h3=this.h3,h4=this.h4,h5=this.h5,h6=this.h6,h7=this.h7,arr=[h0>>24&255,h0>>16&255,h0>>8&255,255&h0,h1>>24&255,h1>>16&255,h1>>8&255,255&h1,h2>>24&255,h2>>16&255,h2>>8&255,255&h2,h3>>24&255,h3>>16&255,h3>>8&255,255&h3,h4>>24&255,h4>>16&255,h4>>8&255,255&h4,h5>>24&255,h5>>16&255,h5>>8&255,255&h5,h6>>24&255,h6>>16&255,h6>>8&255,255&h6];return this.is224||arr.push(h7>>24&255,h7>>16&255,h7>>8&255,255&h7),arr},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var buffer=new ArrayBuffer(this.is224?28:32),dataView=new DataView(buffer);return dataView.setUint32(0,this.h0),dataView.setUint32(4,this.h1),dataView.setUint32(8,this.h2),dataView.setUint32(12,this.h3),dataView.setUint32(16,this.h4),dataView.setUint32(20,this.h5),dataView.setUint32(24,this.h6),this.is224||dataView.setUint32(28,this.h7),buffer},HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var innerHash=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(innerHash),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224,AMD&&void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){return exports}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}()}).call(exports,__webpack_require__(54),__webpack_require__(46))},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions),ProgressSlider=function(_React$Component){function ProgressSlider(props){_classCallCheck(this,ProgressSlider);var _this=_possibleConstructorReturn(this,(ProgressSlider.__proto__||Object.getPrototypeOf(ProgressSlider)).call(this,props));return _this.handleChange=helpers.throttle(_this.handleChange.bind(_this),250),_this}return _inherits(ProgressSlider,_React$Component),_createClass(ProgressSlider,[{key:"handleChange",value:function(value){this.props.mopidyActions.setTimePosition(this.props.current_track.duration*(value/100))}},{key:"render",value:function(){var _this2=this,percent=0;return this.props.connected&&this.props.time_position&&this.props.current_track&&this.props.current_track.duration&&(percent=this.props.time_position/this.props.current_track.duration,(percent*=100)>1e3&&(percent=100)),_react2.default.createElement("div",{className:"slider slider--playback-progress slider--"+this.props.play_state},_react2.default.createElement("div",{className:"slider__track"},_react2.default.createElement("input",{type:"range",min:"0",max:"100",value:percent,className:"slider__input",onChange:function(e){return _this2.handleChange(parseInt(e.target.value))}}),_react2.default.createElement("div",{className:"slider__track__progress",style:{width:percent+"%"}})))}}]),ProgressSlider}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{current_track:state.core.current_track&&void 0!==state.core.tracks[state.core.current_track.uri]?state.core.tracks[state.core.current_track.uri]:null,connected:state.mopidy.connected,time_position:state.mopidy.time_position,play_state:state.mopidy.play_state}},mapDispatchToProps=function(dispatch){return{mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(ProgressSlider)},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_URILink=__webpack_require__(18),_URILink2=_interopRequireDefault(_URILink);exports.default=(0,_react.memo)(function(props){return props.artists?_react2.default.createElement("div",{className:"related-artists"},props.artists.map(function(artist,index){var images=artist.images;return Array.isArray(images)&&(images=images[0]),artist.uri?_react2.default.createElement(_URILink2.default,{type:"artist",uri:artist.uri,key:artist.uri,className:"related-artists__item related-artists__item--link"},_react2.default.createElement(_Thumbnail2.default,{className:"related-artists__item__thumbnail",circle:!0,size:"small",images:images}),_react2.default.createElement("span",{className:"related-artists__item__name"},artist.name)):_react2.default.createElement("span",{key:artist.uri,className:"related-artists__item"},_react2.default.createElement(_Thumbnail2.default,{className:"related-artists__item__thumbnail",circle:!0,size:"small",images:images}),_react2.default.createElement("span",{className:"related-artists__item__name"},artist.name))})):null})},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_react),ConfirmationButton=function(_React$Component){function ConfirmationButton(props){_classCallCheck(this,ConfirmationButton);var _this=_possibleConstructorReturn(this,(ConfirmationButton.__proto__||Object.getPrototypeOf(ConfirmationButton)).call(this,props));return _this.state={timing_out:!1,confirming:!1},_this.confirming=!1,_this.unconfirmTimer=!1,_this}return _inherits(ConfirmationButton,_React$Component),_createClass(ConfirmationButton,[{key:"componentWillUnmount",value:function(){clearTimeout(this.unconfirmTimer)}},{key:"handleClick",value:function(e){this.state.confirming?(this.setState({confirming:!1}),this.props.onConfirm()):this.setState({confirming:!0})}},{key:"handleMouseEnter",value:function(e){this.setState({timing_out:!1}),clearTimeout(this.unconfirmTimer)}},{key:"handleMouseLeave",value:function(e){this.state.confirming&&(this.setState({timing_out:!0}),this.unconfirmTimer=setTimeout(function(){this.setState({confirming:!1})}.bind(this),2e3))}},{key:"render",value:function(){var _this2=this,className="button",content=this.props.content;return this.state.confirming&&(className+=" button--confirming",content=this.props.confirmingContent,this.state.timing_out&&(className+=" button--timing-out")),this.props.working&&(className+=" button--working",this.props.workingContent&&(content=this.props.workingContent)),this.props.className&&(className+=" "+this.props.className),_react2.default.createElement("button",{className:className,onClick:function(e){return _this2.handleClick(e)},onMouseLeave:function(e){return _this2.handleMouseLeave(e)},onMouseEnter:function(e){return _this2.handleMouseEnter(e)}},content)}}]),ConfirmationButton}(_react2.default.Component);exports.default=ConfirmationButton},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_reactGa=__webpack_require__(13),_Thumbnail=(_interopRequireDefault(_reactGa),__webpack_require__(10)),_actions=(_interopRequireDefault(_Thumbnail),__webpack_require__(2)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions2),SpotifyAuthenticationFrame=function(_React$Component){function SpotifyAuthenticationFrame(props){_classCallCheck(this,SpotifyAuthenticationFrame);var _this=_possibleConstructorReturn(this,(SpotifyAuthenticationFrame.__proto__||Object.getPrototypeOf(SpotifyAuthenticationFrame)).call(this,props));return _this.state={authorizing:!1},_this}return _inherits(SpotifyAuthenticationFrame,_React$Component),_createClass(SpotifyAuthenticationFrame,[{key:"componentDidMount",value:function(){var self=this;window.addEventListener("message",function(event){try{var data=JSON.parse(event.data)}catch(e){return void console.error("Failed to parse JSON",e,event)}"auth_spotify"==data.origin&&self.handleMessage(event,data)},!1)}},{key:"handleMessage",value:function(event,data){var authorization_domain=this.props.authorization_url.substring(0,this.props.authorization_url.indexOf("/",8));if(event.origin!=authorization_domain)return this.props.uiActions.createNotification({content:"Authorization failed. "+event.origin+" is not the configured authorization_url.",type:"bad"}),!1;void 0!==data.error?this.props.uiActions.createNotification({content:data.error,type:"bad"}):(this.props.spotifyActions.authorizationGranted(data),this.props.spotifyActions.getMe()),this.setState({authorizing:!1})}},{key:"startAuthorization",value:function(){function checkPopup(){void 0!==popup&&popup?popup.closed&&(self.setState({authorizing:!1}),clearInterval(timer)):(self.props.uiActions.createNotification({content:"Popup blocked. Please allow popups and try again.",type:"bad"}),self.setState({authorizing:!1}),clearInterval(timer))}var self=this;this.setState({authorizing:!0});var url=this.props.authorization_url+"?action=authorize",scopes=["playlist-modify-private","playlist-modify-public","playlist-read-private","playlist-modify-private","user-library-read","user-library-modify","user-follow-modify","user-follow-read","user-read-email","user-top-read","user-read-currently-playing","user-read-playback-state","playlist-read-collaborative","ugc-image-upload"],popup=window.open(url+"&scope="+scopes.join("%20"),"popup","height=580,width=350"),timer=setInterval(checkPopup,1e3)}},{key:"render",value:function(){var _this2=this;return this.state.authorizing?_react2.default.createElement("button",{className:"button button--working"},"Authorizing..."):this.props.authorized?_react2.default.createElement("button",{className:"button button--destructive",onClick:function(){return _this2.props.spotifyActions.revokeAuthorization()}},"Log out"):_react2.default.createElement("button",{className:"button button--primary",onClick:function(){return _this2.startAuthorization()}},"Log in")}}]),SpotifyAuthenticationFrame}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{authorization_url:state.spotify.authorization_url,authorized:state.spotify.authorization,authorizing:state.spotify.authorizing}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(SpotifyAuthenticationFrame)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_reactGa=__webpack_require__(13),_Thumbnail=(_interopRequireDefault(_reactGa),__webpack_require__(10)),_actions=(_interopRequireDefault(_Thumbnail),__webpack_require__(2)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(16),lastfmActions=_interopRequireWildcard(_actions2),LastfmAuthenticationFrame=function(_React$Component){function LastfmAuthenticationFrame(props){_classCallCheck(this,LastfmAuthenticationFrame);var _this=_possibleConstructorReturn(this,(LastfmAuthenticationFrame.__proto__||Object.getPrototypeOf(LastfmAuthenticationFrame)).call(this,props));return _this.state={authorizing:!1},_this}return _inherits(LastfmAuthenticationFrame,_React$Component),_createClass(LastfmAuthenticationFrame,[{key:"componentDidMount",value:function(){var self=this;window.addEventListener("message",function(event){try{var data=JSON.parse(event.data)}catch(e){return void console.error("Failed to parse JSON",e,event)}"auth_lastfm"==data.origin&&self.handleMessage(event,data)},!1)}},{key:"handleMessage",value:function(event,data){var authorization_domain=this.props.authorization_url.substring(0,this.props.authorization_url.indexOf("/",8));if(event.origin!=authorization_domain)return this.props.uiActions.createNotification({content:"Authorization failed. "+event.origin+" is not the configured authorization_url.",type:"bad"}),!1;void 0!==data.error?this.props.uiActions.createNotification({content:data.message,type:"bad"}):(this.props.lastfmActions.authorizationGranted(data),this.props.lastfmActions.getMe()),this.setState({authorizing:!1})}},{key:"startAuthorization",value:function(){function checkPopup(){void 0!==popup&&popup?popup.closed&&(self.setState({authorizing:!1}),clearInterval(timer)):(self.props.uiActions.createNotification({content:"Popup blocked. Please allow popups and try again.",type:"bad"}),self.setState({authorizing:!1}),clearInterval(timer))}var self=this;this.setState({authorizing:!0});var url=this.props.authorization_url+"?action=authorize",popup=window.open(url,"popup","height=580,width=350");popup.name="LastfmAuthenticationWindow";var timer=setInterval(checkPopup,1e3)}},{key:"render",value:function(){var _this2=this;return this.state.authorizing?_react2.default.createElement("button",{className:"button button--working"},"Authorizing..."):this.props.authorization?_react2.default.createElement("button",{className:"button button--destructive",onClick:function(){return _this2.props.lastfmActions.revokeAuthorization()}},"Log out"):_react2.default.createElement("button",{className:"button button--primary",onClick:function(){return _this2.startAuthorization()}},"Log in")}}]),LastfmAuthenticationFrame}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{authorization_url:state.lastfm.authorization_url,authorization:state.lastfm.authorization,authorizing:state.lastfm.authorizing}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),lastfmActions:(0,_redux.bindActionCreators)(lastfmActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(LastfmAuthenticationFrame)},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function Label(props){var labelValue=props.formatLabel?props.formatLabel(props.children,props.type):props.children;return _react2.default.createElement("span",{className:props.classNames[props.type+"Label"]},_react2.default.createElement("span",{className:props.classNames.labelContainer},labelValue))}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=Label;var _react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_propTypes=__webpack_require__(11),_propTypes2=_interopRequireDefault(_propTypes);Label.propTypes={children:_propTypes2.default.node.isRequired,classNames:_propTypes2.default.objectOf(_propTypes2.default.string).isRequired,formatLabel:_propTypes2.default.func,type:_propTypes2.default.string.isRequired},module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var _react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactDom=__webpack_require__(63),_reactDom2=_interopRequireDefault(_reactDom),_reactRedux=__webpack_require__(4),_reactRouterDom=(__webpack_require__(3),__webpack_require__(29)),_store=__webpack_require__(130),_store2=_interopRequireDefault(_store),_App=__webpack_require__(177),_App2=_interopRequireDefault(_App);__webpack_require__(254),_reactDom2.default.render(_react2.default.createElement(_reactRedux.Provider,{store:_store2.default},_react2.default.createElement(_reactRouterDom.BrowserRouter,{basename:"/iris"},_react2.default.createElement(_reactRouterDom.Route,{path:"/",component:_App2.default}))),document.getElementById("app"))},function(module,exports,__webpack_require__){"use strict";function ca(a,b,d,c,e,g,h,f){if(!a){if(a=void 0,void 0===b)a=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[d,c,e,g,h,f],m=0;a=Error(b.replace(/%s/g,function(){return l[m++]})),a.name="Invariant Violation"}throw a.framesToPop=1,a}}function B(a){for(var b=arguments.length-1,d="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=0;c<b;c++)d+="&args[]="+encodeURIComponent(arguments[c+1]);ca(!1,"Minified React error #"+a+"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",d)}function E(a,b,d){this.props=a,this.context=b,this.refs=D,this.updater=d||C}function F(){}function G(a,b,d){this.props=a,this.context=b,this.refs=D,this.updater=d||C}function M(a,b,d){var c=void 0,e={},g=null,h=null;if(null!=b)for(c in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(g=""+b.key),b)K.call(b,c)&&!L.hasOwnProperty(c)&&(e[c]=b[c]);var f=arguments.length-2;if(1===f)e.children=d;else if(1<f){for(var l=Array(f),m=0;m<f;m++)l[m]=arguments[m+2];e.children=l}if(a&&a.defaultProps)for(c in f=a.defaultProps)void 0===e[c]&&(e[c]=f[c]);return{$$typeof:p,type:a,key:g,ref:h,props:e,_owner:J.current}}function da(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function N(a){return"object"==typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={"=":"=0",":":"=2"};return"$"+(""+a).replace(/[=:]/g,function(a){return b[a]})}function Q(a,b,d,c){if(P.length){var e=P.pop();return e.result=a,e.keyPrefix=b,e.func=d,e.context=c,e.count=0,e}return{result:a,keyPrefix:b,func:d,context:c,count:0}}function R(a){a.result=null,a.keyPrefix=null,a.func=null,a.context=null,a.count=0,10>P.length&&P.push(a)}function S(a,b,d,c){var e=typeof a;"undefined"!==e&&"boolean"!==e||(a=null);var g=!1;if(null===a)g=!0;else switch(e){case"string":case"number":g=!0;break;case"object":switch(a.$$typeof){case p:case q:g=!0}}if(g)return d(c,a,""===b?"."+T(a,0):b),1;if(g=0,b=""===b?".":b+":",Array.isArray(a))for(var h=0;h<a.length;h++){e=a[h];var f=b+T(e,h);g+=S(e,f,d,c)}else if(null===a||"object"!=typeof a?f=null:(f=A&&a[A]||a["@@iterator"],f="function"==typeof f?f:null),"function"==typeof f)for(a=f.call(a),h=0;!(e=a.next()).done;)e=e.value,f=b+T(e,h++),g+=S(e,f,d,c);else"object"===e&&(d=""+a,B("31","[object Object]"===d?"object with keys {"+Object.keys(a).join(", ")+"}":d,""));return g}function U(a,b,d){return null==a?0:S(a,"",b,d)}function T(a,b){return"object"==typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function ea(a,b){a.func.call(a.context,b,a.count++)}function fa(a,b,d){var c=a.result,e=a.keyPrefix;a=a.func.call(a.context,b,a.count++),Array.isArray(a)?V(a,c,d,function(a){return a}):null!=a&&(N(a)&&(a=da(a,e+(!a.key||b&&b.key===a.key?"":(""+a.key).replace(O,"$&/")+"/")+d)),c.push(a))}function V(a,b,d,c,e){var g="";null!=d&&(g=(""+d).replace(O,"$&/")+"/"),b=Q(b,g,c,e),U(a,fa,b),R(b)}function W(){var a=I.current;return null===a&&B("321"),a}/** @license React v16.8.5
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var k=__webpack_require__(62),n="function"==typeof Symbol&&Symbol.for,p=n?Symbol.for("react.element"):60103,q=n?Symbol.for("react.portal"):60106,r=n?Symbol.for("react.fragment"):60107,t=n?Symbol.for("react.strict_mode"):60108,u=n?Symbol.for("react.profiler"):60114,v=n?Symbol.for("react.provider"):60109,w=n?Symbol.for("react.context"):60110,x=n?Symbol.for("react.concurrent_mode"):60111,y=n?Symbol.for("react.forward_ref"):60112,z=n?Symbol.for("react.suspense"):60113,aa=n?Symbol.for("react.memo"):60115,ba=n?Symbol.for("react.lazy"):60116,A="function"==typeof Symbol&&Symbol.iterator,C={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},D={};E.prototype.isReactComponent={},E.prototype.setState=function(a,b){"object"!=typeof a&&"function"!=typeof a&&null!=a&&B("85"),this.updater.enqueueSetState(this,a,b,"setState")},E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,"forceUpdate")},F.prototype=E.prototype;var H=G.prototype=new F;H.constructor=G,k(H,E.prototype),H.isPureReactComponent=!0;var I={current:null},J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0},O=/\/+/g,P=[],X={Children:{map:function(a,b,d){if(null==a)return a;var c=[];return V(a,c,null,b,d),c},forEach:function(a,b,d){if(null==a)return a;b=Q(null,null,b,d),U(a,ea,b),R(b)},count:function(a){return U(a,function(){return null},null)},toArray:function(a){var b=[];return V(a,b,null,function(a){return a}),b},only:function(a){return N(a)||B("143"),a}},createRef:function(){return{current:null}},Component:E,PureComponent:G,createContext:function(a,b){return void 0===b&&(b=null),a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null},a.Provider={$$typeof:v,_context:a},a.Consumer=a},forwardRef:function(a){return{$$typeof:y,render:a}},lazy:function(a){return{$$typeof:ba,_ctor:a,_status:-1,_result:null}},memo:function(a,b){return{$$typeof:aa,type:a,compare:void 0===b?null:b}},useCallback:function(a,b){return W().useCallback(a,b)},useContext:function(a,b){return W().useContext(a,b)},useEffect:function(a,b){return W().useEffect(a,b)},useImperativeHandle:function(a,b,d){return W().useImperativeHandle(a,b,d)},useDebugValue:function(){},useLayoutEffect:function(a,b){return W().useLayoutEffect(a,b)},useMemo:function(a,b){return W().useMemo(a,b)},useReducer:function(a,b,d){return W().useReducer(a,b,d)},useRef:function(a){return W().useRef(a)},useState:function(a){return W().useState(a)},Fragment:r,StrictMode:t,Suspense:z,createElement:M,cloneElement:function(a,b,d){(null===a||void 0===a)&&B("267",a);var c=void 0,e=k({},a.props),g=a.key,h=a.ref,f=a._owner;if(null!=b){void 0!==b.ref&&(h=b.ref,f=J.current),void 0!==b.key&&(g=""+b.key);var l=void 0;a.type&&a.type.defaultProps&&(l=a.type.defaultProps);for(c in b)K.call(b,c)&&!L.hasOwnProperty(c)&&(e[c]=void 0===b[c]&&void 0!==l?l[c]:b[c])}if(1===(c=arguments.length-2))e.children=d;else if(1<c){l=Array(c);for(var m=0;m<c;m++)l[m]=arguments[m+2];e.children=l}return{$$typeof:p,type:a.type,key:g,ref:h,props:e,_owner:f}},createFactory:function(a){var b=M.bind(null,a);return b.type=a,b},isValidElement:N,version:"16.8.5",unstable_ConcurrentMode:x,unstable_Profiler:u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentDispatcher:I,ReactCurrentOwner:J,assign:k}},Y={default:X},Z=Y&&X||Y;module.exports=Z.default||Z},function(module,exports,__webpack_require__){"use strict";function ba(a,b,c,d,e,f,g,h){if(!a){if(a=void 0,void 0===b)a=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[c,d,e,f,g,h],k=0;a=Error(b.replace(/%s/g,function(){return l[k++]})),a.name="Invariant Violation"}throw a.framesToPop=1,a}}function x(a){for(var b=arguments.length-1,c="https://reactjs.org/docs/error-decoder.html?invariant="+a,d=0;d<b;d++)c+="&args[]="+encodeURIComponent(arguments[d+1]);ba(!1,"Minified React error #"+a+"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",c)}function ca(a,b,c,d,e,f,g,h,l){var k=Array.prototype.slice.call(arguments,3);try{b.apply(c,k)}catch(m){this.onError(m)}}function ja(a,b,c,d,e,f,g,h,l){da=!1,ea=null,ca.apply(ia,arguments)}function ka(a,b,c,d,e,f,g,h,l){if(ja.apply(this,arguments),da){if(da){var k=ea;da=!1,ea=null}else x("198"),k=void 0;fa||(fa=!0,ha=k)}}function na(){if(la)for(var a in ma){var b=ma[a],c=la.indexOf(a);if(-1<c||x("96",a),!oa[c]){b.extractEvents||x("97",a),oa[c]=b,c=b.eventTypes;for(var d in c){var e=void 0,f=c[d],g=b,h=d;pa.hasOwnProperty(h)&&x("99",h),pa[h]=f;var l=f.phasedRegistrationNames;if(l){for(e in l)l.hasOwnProperty(e)&&qa(l[e],g,h);e=!0}else f.registrationName?(qa(f.registrationName,g,h),e=!0):e=!1;e||x("98",d,a)}}}}function qa(a,b,c){ra[a]&&x("100",a),ra[a]=b,sa[a]=b.eventTypes[c].dependencies}function wa(a,b,c){var d=a.type||"unknown-event";a.currentTarget=va(c),ka(d,b,void 0,a),a.currentTarget=null}function xa(a,b){return null==b&&x("30"),null==a?b:Array.isArray(a)?Array.isArray(b)?(a.push.apply(a,b),a):(a.push(b),a):Array.isArray(b)?[a].concat(b):[a,b]}function ya(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}function Aa(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;d<b.length&&!a.isPropagationStopped();d++)wa(a,b[d],c[d]);else b&&wa(a,b,c);a._dispatchListeners=null,a._dispatchInstances=null,a.isPersistent()||a.constructor.release(a)}}function Ca(a,b){var c=a.stateNode;if(!c)return null;var d=ta(c);if(!d)return null;c=d[b];a:switch(b){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":(d=!d.disabled)||(a=a.type,d=!("button"===a||"input"===a||"select"===a||"textarea"===a)),a=!d;break a;default:a=!1}return a?null:(c&&"function"!=typeof c&&x("231",b,typeof c),c)}function Da(a){if(null!==a&&(za=xa(za,a)),a=za,za=null,a&&(ya(a,Aa),za&&x("95"),fa))throw a=ha,fa=!1,ha=null,a}function Ha(a){if(a[Fa])return a[Fa];for(;!a[Fa];){if(!a.parentNode)return null;a=a.parentNode}return a=a[Fa],5===a.tag||6===a.tag?a:null}function Ia(a){return a=a[Fa],!a||5!==a.tag&&6!==a.tag?null:a}function Ja(a){if(5===a.tag||6===a.tag)return a.stateNode;x("33")}function Ka(a){return a[Ga]||null}function La(a){do{a=a.return}while(a&&5!==a.tag);return a||null}function Ma(a,b,c){(b=Ca(a,c.dispatchConfig.phasedRegistrationNames[b]))&&(c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a))}function Na(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=La(b);for(b=c.length;0<b--;)Ma(c[b],"captured",a);for(b=0;b<c.length;b++)Ma(c[b],"bubbled",a)}}function Oa(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Ca(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a))}function Pa(a){a&&a.dispatchConfig.registrationName&&Oa(a._targetInst,null,a)}function Qa(a){ya(a,Na)}function Sa(a,b){var c={};return c[a.toLowerCase()]=b.toLowerCase(),c["Webkit"+a]="webkit"+b,c["Moz"+a]="moz"+b,c}function Wa(a){if(Ua[a])return Ua[a];if(!Ta[a])return a;var c,b=Ta[a];for(c in b)if(b.hasOwnProperty(c)&&c in Va)return Ua[a]=b[c];return a}function eb(){if(db)return db;var a,d,b=cb,c=b.length,e="value"in bb?bb.value:bb.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return db=e.slice(a,1<d?1-d:void 0)}function fb(){return!0}function gb(){return!1}function y(a,b,c,d){this.dispatchConfig=a,this._targetInst=b,this.nativeEvent=c,a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):"target"===e?this.target=d:this[e]=c[e]);return this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?fb:gb,this.isPropagationStopped=gb,this}function ib(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();return this.call(e,a,b,c,d),e}return new this(a,b,c,d)}function jb(a){a instanceof this||x("279"),a.destructor(),10>this.eventPool.length&&this.eventPool.push(a)}function hb(a){a.eventPool=[],a.getPooled=ib,a.release=jb}function ub(a,b){switch(a){case"keyup":return-1!==mb.indexOf(b.keyCode);case"keydown":return 229!==b.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function vb(a){return a=a.detail,"object"==typeof a&&"data"in a?a.data:null}function xb(a,b){switch(a){case"compositionend":return vb(b);case"keypress":return 32!==b.which?null:(tb=!0,rb);case"textInput":return a=b.data,a===rb&&tb?null:a;default:return null}}function yb(a,b){if(wb)return"compositionend"===a||!nb&&ub(a,b)?(a=eb(),db=cb=bb=null,wb=!1,a):null;switch(a){case"paste":return null;case"keypress":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case"compositionend":return qb&&"ko"!==b.locale?null:b.data;default:return null}}function Db(a){if(a=ua(a)){"function"!=typeof Ab&&x("280");var b=ta(a.stateNode);Ab(a.stateNode,a.type,b)}}function Eb(a){Bb?Cb?Cb.push(a):Cb=[a]:Bb=a}function Fb(){if(Bb){var a=Bb,b=Cb;if(Cb=Bb=null,Db(a),b)for(a=0;a<b.length;a++)Db(b[a])}}function Gb(a,b){return a(b)}function Hb(a,b,c){return a(b,c)}function Ib(){}function Kb(a,b){if(Jb)return a(b);Jb=!0;try{return Gb(a,b)}finally{Jb=!1,(null!==Bb||null!==Cb)&&(Ib(),Fb())}}function Mb(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return"input"===b?!!Lb[a.type]:"textarea"===b}function Nb(a){return a=a.target||a.srcElement||window,a.correspondingUseElement&&(a=a.correspondingUseElement),3===a.nodeType?a.parentNode:a}function Ob(a){if(!Ra)return!1;a="on"+a;var b=a in document;return b||(b=document.createElement("div"),b.setAttribute(a,"return;"),b="function"==typeof b[a]),b}function Pb(a){var b=a.type;return(a=a.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===b||"radio"===b)}function Qb(a){var b=Pb(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=""+a[b];if(!a.hasOwnProperty(b)&&void 0!==c&&"function"==typeof c.get&&"function"==typeof c.set){var e=c.get,f=c.set;return Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=""+a,f.call(this,a)}}),Object.defineProperty(a,b,{enumerable:c.enumerable}),{getValue:function(){return d},setValue:function(a){d=""+a},stopTracking:function(){a._valueTracker=null,delete a[b]}}}}function Rb(a){a._valueTracker||(a._valueTracker=Qb(a))}function Sb(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue(),d="";return a&&(d=Pb(a)?a.checked?"true":"false":a.value),(a=d)!==c&&(b.setValue(a),!0)}function hc(a){return null===a||"object"!=typeof a?null:(a=gc&&a[gc]||a["@@iterator"],"function"==typeof a?a:null)}function ic(a){if(null==a)return null;if("function"==typeof a)return a.displayName||a.name||null;if("string"==typeof a)return a;switch(a){case bc:return"ConcurrentMode";case Xb:return"Fragment";case Wb:return"Portal";case Zb:return"Profiler";case Yb:return"StrictMode";case dc:return"Suspense"}if("object"==typeof a)switch(a.$$typeof){case ac:return"Context.Consumer";case $b:return"Context.Provider";case cc:var b=a.render;return b=b.displayName||b.name||"",a.displayName||(""!==b?"ForwardRef("+b+")":"ForwardRef");case ec:return ic(a.type);case fc:if(a=1===a._status?a._result:null)return ic(a)}return null}function jc(a){var b="";do{a:switch(a.tag){case 3:case 4:case 6:case 7:case 10:case 9:var c="";break a;default:var d=a._debugOwner,e=a._debugSource,f=ic(a.type);c=null,d&&(c=ic(d.type)),d=f,f="",e?f=" (at "+e.fileName.replace(Ub,"")+":"+e.lineNumber+")":c&&(f=" (created by "+c+")"),c="\n in "+(d||"Unknown")+f}b+=c,a=a.return}while(a);return b}function oc(a){return!!lc.call(nc,a)||!lc.call(mc,a)&&(kc.test(a)?nc[a]=!0:(mc[a]=!0,!1))}function pc(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case"function":case"symbol":return!0;case"boolean":return!d&&(null!==c?!c.acceptsBooleans:"data-"!==(a=a.toLowerCase().slice(0,5))&&"aria-"!==a);default:return!1}}function qc(a,b,c,d){if(null===b||void 0===b||pc(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function C(a,b,c,d,e){this.acceptsBooleans=2===b||3===b||4===b,this.attributeName=d,this.attributeNamespace=e,this.mustUseProperty=c,this.propertyName=a,this.type=b}function sc(a){return a[1].toUpperCase()}function tc(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;(null!==e?0===e.type:!d&&(2<b.length&&("o"===b[0]||"O"===b[0])&&("n"===b[1]||"N"===b[1])))||(qc(b,c,e,d)&&(c=null),d||null===e?oc(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,""+c)):e.mustUseProperty?a[e.propertyName]=null===c?3!==e.type&&"":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?"":""+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}function uc(a){switch(typeof a){case"boolean":case"number":case"object":case"string":case"undefined":return a;default:return""}}function vc(a,b){var c=b.checked;return n({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function wc(a,b){var c=null==b.defaultValue?"":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=uc(null!=b.value?b.value:c),a._wrapperState={initialChecked:d,initialValue:c,controlled:"checkbox"===b.type||"radio"===b.type?null!=b.checked:null!=b.value}}function xc(a,b){null!=(b=b.checked)&&tc(a,"checked",b,!1)}function yc(a,b){xc(a,b);var c=uc(b.value),d=b.type;if(null!=c)"number"===d?(0===c&&""===a.value||a.value!=c)&&(a.value=""+c):a.value!==""+c&&(a.value=""+c);else if("submit"===d||"reset"===d)return void a.removeAttribute("value");b.hasOwnProperty("value")?zc(a,b.type,c):b.hasOwnProperty("defaultValue")&&zc(a,b.type,uc(b.defaultValue)),null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}function Ac(a,b,c){if(b.hasOwnProperty("value")||b.hasOwnProperty("defaultValue")){var d=b.type;if(!("submit"!==d&&"reset"!==d||void 0!==b.value&&null!==b.value))return;b=""+a._wrapperState.initialValue,c||b===a.value||(a.value=b),a.defaultValue=b}c=a.name,""!==c&&(a.name=""),a.defaultChecked=!a.defaultChecked,a.defaultChecked=!!a._wrapperState.initialChecked,""!==c&&(a.name=c)}function zc(a,b,c){"number"===b&&a.ownerDocument.activeElement===a||(null==c?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c))}function Cc(a,b,c){return a=y.getPooled(Bc.change,a,b,c),a.type="change",Eb(c),Qa(a),a}function Fc(a){Da(a)}function Gc(a){if(Sb(Ja(a)))return a}function Hc(a,b){if("change"===a)return b}function Jc(){Dc&&(Dc.detachEvent("onpropertychange",Kc),Ec=Dc=null)}function Kc(a){"value"===a.propertyName&&Gc(Ec)&&(a=Cc(Ec,a,Nb(a)),Kb(Fc,a))}function Lc(a,b,c){"focus"===a?(Jc(),Dc=b,Ec=c,Dc.attachEvent("onpropertychange",Kc)):"blur"===a&&Jc()}function Mc(a){if("selectionchange"===a||"keyup"===a||"keydown"===a)return Gc(Ec)}function Nc(a,b){if("click"===a)return Gc(b)}function Oc(a,b){if("input"===a||"change"===a)return Gc(b)}function Sc(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):!!(a=Rc[a])&&!!b[a]}function Tc(){return Sc}function bd(a,b){return a===b&&(0!==a||1/a==1/b)||a!==a&&b!==b}function dd(a,b){if(bd(a,b))return!0;if("object"!=typeof a||null===a||"object"!=typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!cd.call(b,c[d])||!bd(a[c[d]],b[c[d]]))return!1;return!0}function ed(a){var b=a;if(a.alternate)for(;b.return;)b=b.return;else{if(0!=(2&b.effectTag))return 1;for(;b.return;)if(b=b.return,0!=(2&b.effectTag))return 1}return 3===b.tag?2:3}function fd(a){2!==ed(a)&&x("188")}function gd(a){var b=a.alternate;if(!b)return b=ed(a),3===b&&x("188"),1===b?null:a;for(var c=a,d=b;;){var e=c.return,f=e?e.alternate:null;if(!e||!f)break;if(e.child===f.child){for(var g=e.child;g;){if(g===c)return fd(e),a;if(g===d)return fd(e),b;g=g.sibling}x("188")}if(c.return!==d.return)c=e,d=f;else{g=!1;for(var h=e.child;h;){if(h===c){g=!0,c=e,d=f;break}if(h===d){g=!0,d=e,c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===c){g=!0,c=f,d=e;break}if(h===d){g=!0,d=f,c=e;break}h=h.sibling}g||x("189")}}c.alternate!==d&&x("190")}return 3!==c.tag&&x("188"),c.stateNode.current===c?a:b}function hd(a){if(!(a=gd(a)))return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return,b=b.sibling}}return null}function ld(a){var b=a.keyCode;return"charCode"in a?0===(a=a.charCode)&&13===b&&(a=13):a=b,10===a&&(a=13),32<=a||13===a?a:0}function wd(a,b){var c=a[0];a=a[1];var d="on"+(a[0].toUpperCase()+a.slice(1));b={phasedRegistrationNames:{bubbled:d,captured:d+"Capture"},dependencies:[c],isInteractive:b},ud[a]=b,vd[c]=b}function Ad(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d;for(d=c;d.return;)d=d.return;if(!(d=3!==d.tag?null:d.stateNode.containerInfo))break;a.ancestors.push(c),c=Ha(d)}while(c);for(c=0;c<a.ancestors.length;c++){b=a.ancestors[c];var e=Nb(a.nativeEvent);d=a.topLevelType;for(var f=a.nativeEvent,g=null,h=0;h<oa.length;h++){var l=oa[h];l&&(l=l.extractEvents(d,b,f,e))&&(g=xa(g,l))}Da(g)}}function E(a,b){if(!b)return null;var c=(yd(a)?Cd:Dd).bind(null,a);b.addEventListener(a,c,!1)}function Ed(a,b){if(!b)return null;var c=(yd(a)?Cd:Dd).bind(null,a);b.addEventListener(a,c,!0)}function Cd(a,b){Hb(Dd,a,b)}function Dd(a,b){if(Bd){var c=Nb(b);if(c=Ha(c),null===c||"number"!=typeof c.tag||2===ed(c)||(c=null),zd.length){var d=zd.pop();d.topLevelType=a,d.nativeEvent=b,d.targetInst=c,a=d}else a={topLevelType:a,nativeEvent:b,targetInst:c,ancestors:[]};try{Kb(Ad,a)}finally{a.topLevelType=null,a.nativeEvent=null,a.targetInst=null,a.ancestors.length=0,10>zd.length&&zd.push(a)}}}function Id(a){return Object.prototype.hasOwnProperty.call(a,Hd)||(a[Hd]=Gd++,Fd[a[Hd]]={}),Fd[a[Hd]]}function Jd(a){if(void 0===(a=a||("undefined"!=typeof document?document:void 0)))return null;try{return a.activeElement||a.body}catch(b){return a.body}}function Kd(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function Ld(a,b){var c=Kd(a);a=0;for(var d;c;){if(3===c.nodeType){if(d=a+c.textContent.length,a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Kd(c)}}function Md(a,b){return!(!a||!b)&&(a===b||(!a||3!==a.nodeType)&&(b&&3===b.nodeType?Md(a,b.parentNode):"contains"in a?a.contains(b):!!a.compareDocumentPosition&&!!(16&a.compareDocumentPosition(b))))}function Nd(){for(var a=window,b=Jd();b instanceof a.HTMLIFrameElement;){try{a=b.contentDocument.defaultView}catch(c){break}b=Jd(a.document)}return b}function Od(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b||"true"===a.contentEditable)}function Pd(){var a=Nd();if(Od(a)){if("selectionStart"in a)var b={start:a.selectionStart,end:a.selectionEnd};else a:{b=(b=a.ownerDocument)&&b.defaultView||window;var c=b.getSelection&&b.getSelection();if(c&&0!==c.rangeCount){b=c.anchorNode;var d=c.anchorOffset,e=c.focusNode;c=c.focusOffset;try{b.nodeType,e.nodeType}catch(A){b=null;break a}var f=0,g=-1,h=-1,l=0,k=0,m=a,p=null;b:for(;;){for(var t;m!==b||0!==d&&3!==m.nodeType||(g=f+d),m!==e||0!==c&&3!==m.nodeType||(h=f+c),3===m.nodeType&&(f+=m.nodeValue.length),null!==(t=m.firstChild);)p=m,m=t;for(;;){if(m===a)break b;if(p===b&&++l===d&&(g=f),p===e&&++k===c&&(h=f),null!==(t=m.nextSibling))break;m=p,p=m.parentNode}m=t}b=-1===g||-1===h?null:{start:g,end:h}}else b=null}b=b||{start:0,end:0}}else b=null;return{focusedElem:a,selectionRange:b}}function Qd(a){var b=Nd(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Md(c.ownerDocument.documentElement,c)){if(null!==d&&Od(c))if(b=d.start,a=d.end,void 0===a&&(a=b),"selectionStart"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e),!a.extend&&f>d&&(e=d,d=f,f=e),e=Ld(c,f);var g=Ld(c,d);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}for(b=[],a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});for("function"==typeof c.focus&&c.focus(),c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}function Xd(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;return Wd||null==Td||Td!==Jd(c)?null:(c=Td,"selectionStart"in c&&Od(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}),Vd&&dd(Vd,c)?null:(Vd=c,a=y.getPooled(Sd.select,Ud,a,b),a.type="select",a.target=Td,Qa(a),a))}function Zd(a){var b="";return aa.Children.forEach(a,function(a){null!=a&&(b+=a)}),b}function $d(a,b){return a=n({children:void 0},b),(b=Zd(b.children))&&(a.children=b),a}function ae(a,b,c,d){if(a=a.options,b){b={};for(var e=0;e<c.length;e++)b["$"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty("$"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{for(c=""+uc(c),b=null,e=0;e<a.length;e++){if(a[e].value===c)return a[e].selected=!0,void(d&&(a[e].defaultSelected=!0));null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}function be(a,b){return null!=b.dangerouslySetInnerHTML&&x("91"),n({},b,{value:void 0,defaultValue:void 0,children:""+a._wrapperState.initialValue})}function ce(a,b){var c=b.value;null==c&&(c=b.defaultValue,b=b.children,null!=b&&(null!=c&&x("92"),Array.isArray(b)&&(1>=b.length||x("93"),b=b[0]),c=b),null==c&&(c="")),a._wrapperState={initialValue:uc(c)}}function de(a,b){var c=uc(b.value),d=uc(b.defaultValue);null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c)),null!=d&&(a.defaultValue=""+d)}function ee(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}function ge(a){switch(a){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function he(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?ge(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a}function ke(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType)return void(c.nodeValue=b)}a.textContent=b}function ne(a,b,c){return null==b||"boolean"==typeof b||""===b?"":c||"number"!=typeof b||0===b||le.hasOwnProperty(a)&&le[a]?(""+b).trim():b+"px"}function oe(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf("--"),e=ne(c,b[c],d);"float"===c&&(c="cssFloat"),d?a.setProperty(c,e):a[c]=e}}function qe(a,b){b&&(pe[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML)&&x("137",a,""),null!=b.dangerouslySetInnerHTML&&(null!=b.children&&x("60"),"object"==typeof b.dangerouslySetInnerHTML&&"__html"in b.dangerouslySetInnerHTML||x("61")),null!=b.style&&"object"!=typeof b.style&&x("62",""))}function re(a,b){if(-1===a.indexOf("-"))return"string"==typeof b.is;switch(a){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function se(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Id(a);b=sa[b];for(var d=0;d<b.length;d++){var e=b[d];if(!c.hasOwnProperty(e)||!c[e]){switch(e){case"scroll":Ed("scroll",a);break;case"focus":case"blur":Ed("focus",a),Ed("blur",a),c.blur=!0,c.focus=!0;break;case"cancel":case"close":Ob(e)&&Ed(e,a);break;case"invalid":case"submit":case"reset":break;default:-1===ab.indexOf(e)&&E(e,a)}c[e]=!0}}}function te(){}function we(a,b){switch(a){case"button":case"input":case"select":case"textarea":return!!b.autoFocus}return!1}function xe(a,b){return"textarea"===a||"option"===a||"noscript"===a||"string"==typeof b.children||"number"==typeof b.children||"object"==typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}function Ce(a,b,c,d,e){a[Ga]=e,"input"===c&&"radio"===e.type&&null!=e.name&&xc(a,e),re(c,d),d=re(c,e);for(var f=0;f<b.length;f+=2){var g=b[f],h=b[f+1];"style"===g?oe(a,h):"dangerouslySetInnerHTML"===g?je(a,h):"children"===g?ke(a,h):tc(a,g,h,d)}switch(c){case"input":yc(a,e);break;case"textarea":de(a,e);break;case"select":b=a._wrapperState.wasMultiple,a._wrapperState.wasMultiple=!!e.multiple,c=e.value,null!=c?ae(a,!!e.multiple,c,!1):b!==!!e.multiple&&(null!=e.defaultValue?ae(a,!!e.multiple,e.defaultValue,!0):ae(a,!!e.multiple,e.multiple?[]:"",!1))}}function De(a){for(a=a.nextSibling;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a}function Ee(a){for(a=a.firstChild;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a}function F(a){0>Ge||(a.current=Fe[Ge],Fe[Ge]=null,Ge--)}function G(a,b){Ge++,Fe[Ge]=a.current,a.current=b}function Je(a,b){var c=a.type.contextTypes;if(!c)return He;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var f,e={};for(f in c)e[f]=b[f];return d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e),e}function J(a){return null!==(a=a.childContextTypes)&&void 0!==a}function Ke(a){F(I,a),F(H,a)}function Le(a){F(I,a),F(H,a)}function Me(a,b,c){H.current!==He&&x("168"),G(H,b,a),G(I,c,a)}function Ne(a,b,c){var d=a.stateNode;if(a=b.childContextTypes,"function"!=typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)e in a||x("108",ic(b)||"Unknown",e);return n({},c,d)}function Oe(a){var b=a.stateNode;return b=b&&b.__reactInternalMemoizedMergedChildContext||He,Ie=H.current,G(H,b,a),G(I,I.current,a),!0}function Pe(a,b,c){var d=a.stateNode;d||x("169"),c?(b=Ne(a,b,Ie),d.__reactInternalMemoizedMergedChildContext=b,F(I,a),F(H,a),G(H,b,a)):F(I,a),G(I,c,a)}function Se(a){return function(b){try{return a(b)}catch(c){}}}function Te(a){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Qe=Se(function(a){return b.onCommitFiberRoot(c,a)}),Re=Se(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}function Ue(a,b,c,d){this.tag=a,this.key=c,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=b,this.contextDependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=d,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function K(a,b,c,d){return new Ue(a,b,c,d)}function Ve(a){return!(!(a=a.prototype)||!a.isReactComponent)}function We(a){if("function"==typeof a)return Ve(a)?1:0;if(void 0!==a&&null!==a){if((a=a.$$typeof)===cc)return 11;if(a===ec)return 14}return 2}function Xe(a,b){var c=a.alternate;return null===c?(c=K(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null),c.childExpirationTime=a.childExpirationTime,c.expirationTime=a.expirationTime,c.child=a.child,c.memoizedProps=a.memoizedProps,c.memoizedState=a.memoizedState,c.updateQueue=a.updateQueue,c.contextDependencies=a.contextDependencies,c.sibling=a.sibling,c.index=a.index,c.ref=a.ref,c}function Ye(a,b,c,d,e,f){var g=2;if(d=a,"function"==typeof a)Ve(a)&&(g=1);else if("string"==typeof a)g=5;else a:switch(a){case Xb:return Ze(c.children,e,f,b);case bc:return $e(c,3|e,f,b);case Yb:return $e(c,2|e,f,b);case Zb:return a=K(12,c,b,4|e),a.elementType=Zb,a.type=Zb,a.expirationTime=f,a;case dc:return a=K(13,c,b,e),a.elementType=dc,a.type=dc,a.expirationTime=f,a;default:if("object"==typeof a&&null!==a)switch(a.$$typeof){case $b:g=10;break a;case ac:g=9;break a;case cc:g=11;break a;case ec:g=14;break a;case fc:g=16,d=null;break a}x("130",null==a?a:typeof a,"")}return b=K(g,c,b,e),b.elementType=a,b.type=d,b.expirationTime=f,b}function Ze(a,b,c,d){return a=K(7,a,d,b),a.expirationTime=c,a}function $e(a,b,c,d){return a=K(8,a,d,b),b=0==(1&b)?Yb:bc,a.elementType=b,a.type=b,a.expirationTime=c,a}function af(a,b,c){return a=K(6,a,null,b),a.expirationTime=c,a}function bf(a,b,c){return b=K(4,null!==a.children?a.children:[],a.key,b),b.expirationTime=c,b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation},b}function cf(a,b){a.didError=!1;var c=a.earliestPendingTime;0===c?a.earliestPendingTime=a.latestPendingTime=b:c<b?a.earliestPendingTime=b:a.latestPendingTime>b&&(a.latestPendingTime=b),df(b,a)}function ef(a,b){if(a.didError=!1,0===b)a.earliestPendingTime=0,a.latestPendingTime=0,a.earliestSuspendedTime=0,a.latestSuspendedTime=0,a.latestPingedTime=0;else{b<a.latestPingedTime&&(a.latestPingedTime=0);var c=a.latestPendingTime;0!==c&&(c>b?a.earliestPendingTime=a.latestPendingTime=0:a.earliestPendingTime>b&&(a.earliestPendingTime=a.latestPendingTime)),c=a.earliestSuspendedTime,0===c?cf(a,b):b<a.latestSuspendedTime?(a.earliestSuspendedTime=0,a.latestSuspendedTime=0,a.latestPingedTime=0,cf(a,b)):b>c&&cf(a,b)}df(0,a)}function ff(a,b){a.didError=!1,a.latestPingedTime>=b&&(a.latestPingedTime=0);var c=a.earliestPendingTime,d=a.latestPendingTime;c===b?a.earliestPendingTime=d===b?a.latestPendingTime=0:d:d===b&&(a.latestPendingTime=c),c=a.earliestSuspendedTime,d=a.latestSuspendedTime,0===c?a.earliestSuspendedTime=a.latestSuspendedTime=b:c<b?a.earliestSuspendedTime=b:d>b&&(a.latestSuspendedTime=b),df(b,a)}function gf(a,b){var c=a.earliestPendingTime;return a=a.earliestSuspendedTime,c>b&&(b=c),a>b&&(b=a),b}function df(a,b){var c=b.earliestSuspendedTime,d=b.latestSuspendedTime,e=b.earliestPendingTime,f=b.latestPingedTime;e=0!==e?e:f,0===e&&(0===a||d<a)&&(e=d),a=e,0!==a&&c>a&&(a=c),b.nextExpirationTimeToWorkOn=e,b.expirationTime=a}function L(a,b){if(a&&a.defaultProps){b=n({},b),a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}function hf(a){var b=a._result;switch(a._status){case 1:return b;case 2:case 0:throw b;default:switch(a._status=0,b=a._ctor,b=b(),b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)}),a._status){case 1:return a._result;case 2:throw a._result}throw a._result=b,b}}function kf(a,b,c,d){b=a.memoizedState,c=c(d,b),c=null===c||void 0===c?b:n({},b,c),a.memoizedState=c,null!==(d=a.updateQueue)&&0===a.expirationTime&&(d.baseState=c)}function uf(a,b,c,d,e,f,g){return a=a.stateNode,"function"==typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):!b.prototype||!b.prototype.isPureReactComponent||(!dd(c,d)||!dd(e,f))}function vf(a,b,c){var d=!1,e=He,f=b.contextType;return"object"==typeof f&&null!==f?f=M(f):(e=J(b)?Ie:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Je(a,e):He),b=new b(c,f),a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null,b.updater=tf,a.stateNode=b,b._reactInternalFiber=a,d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f),b}function wf(a,b,c,d){a=b.state,"function"==typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d),"function"==typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d),b.state!==a&&tf.enqueueReplaceState(b,b.state,null)}function xf(a,b,c,d){var e=a.stateNode;e.props=c,e.state=a.memoizedState,e.refs=jf;var f=b.contextType;"object"==typeof f&&null!==f?e.context=M(f):(f=J(b)?Ie:H.current,e.context=Je(a,f)),f=a.updateQueue,null!==f&&(yf(a,f,c,e,d),e.state=a.memoizedState),f=b.getDerivedStateFromProps,"function"==typeof f&&(kf(a,b,f,c),e.state=a.memoizedState),"function"==typeof b.getDerivedStateFromProps||"function"==typeof e.getSnapshotBeforeUpdate||"function"!=typeof e.UNSAFE_componentWillMount&&"function"!=typeof e.componentWillMount||(b=e.state,"function"==typeof e.componentWillMount&&e.componentWillMount(),"function"==typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&tf.enqueueReplaceState(e,e.state,null),null!==(f=a.updateQueue)&&(yf(a,f,c,e,d),e.state=a.memoizedState)),"function"==typeof e.componentDidMount&&(a.effectTag|=4)}function Af(a,b,c){if(null!==(a=c.ref)&&"function"!=typeof a&&"object"!=typeof a){if(c._owner){c=c._owner;var d=void 0;c&&(1!==c.tag&&x("309"),d=c.stateNode),d||x("147",a);var e=""+a;return null!==b&&null!==b.ref&&"function"==typeof b.ref&&b.ref._stringRef===e?b.ref:(b=function(a){var b=d.refs;b===jf&&(b=d.refs={}),null===a?delete b[e]:b[e]=a},b._stringRef=e,b)}"string"!=typeof a&&x("284"),c._owner||x("290",a)}return a}function Bf(a,b){"textarea"!==a.type&&x("31","[object Object]"===Object.prototype.toString.call(b)?"object with keys {"+Object.keys(b).join(", ")+"}":b,"")}function Cf(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c,c.nextEffect=null,c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b,c){return a=Xe(a,b,c),a.index=0,a.sibling=null,a}function f(b,c,d){return b.index=d,a?null!==(d=b.alternate)?(d=d.index,d<c?(b.effectTag=2,c):d):(b.effectTag=2,c):c}function g(b){return a&&null===b.alternate&&(b.effectTag=2),b}function h(a,b,c,d){return null===b||6!==b.tag?(b=af(c,a.mode,d),b.return=a,b):(b=e(b,c,d),b.return=a,b)}function l(a,b,c,d){return null!==b&&b.elementType===c.type?(d=e(b,c.props,d),d.ref=Af(a,b,c),d.return=a,d):(d=Ye(c.type,c.key,c.props,null,a.mode,d),d.ref=Af(a,b,c),d.return=a,d)}function k(a,b,c,d){return null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation?(b=bf(c,a.mode,d),b.return=a,b):(b=e(b,c.children||[],d),b.return=a,b)}function m(a,b,c,d,f){return null===b||7!==b.tag?(b=Ze(c,a.mode,d,f),b.return=a,b):(b=e(b,c,d),b.return=a,b)}function p(a,b,c){if("string"==typeof b||"number"==typeof b)return b=af(""+b,a.mode,c),b.return=a,b;if("object"==typeof b&&null!==b){switch(b.$$typeof){case Vb:return c=Ye(b.type,b.key,b.props,null,a.mode,c),c.ref=Af(a,null,b),c.return=a,c;case Wb:return b=bf(b,a.mode,c),b.return=a,b}if(zf(b)||hc(b))return b=Ze(b,a.mode,c,null),b.return=a,b;Bf(a,b)}return null}function t(a,b,c,d){var e=null!==b?b.key:null;if("string"==typeof c||"number"==typeof c)return null!==e?null:h(a,b,""+c,d);if("object"==typeof c&&null!==c){switch(c.$$typeof){case Vb:return c.key===e?c.type===Xb?m(a,b,c.props.children,d,e):l(a,b,c,d):null;case Wb:return c.key===e?k(a,b,c,d):null}if(zf(c)||hc(c))return null!==e?null:m(a,b,c,d,null);Bf(a,c)}return null}function A(a,b,c,d,e){if("string"==typeof d||"number"==typeof d)return a=a.get(c)||null,h(b,a,""+d,e);if("object"==typeof d&&null!==d){switch(d.$$typeof){case Vb:return a=a.get(null===d.key?c:d.key)||null,d.type===Xb?m(b,a,d.props.children,e,d.key):l(b,a,d,e);case Wb:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e)}if(zf(d)||hc(d))return a=a.get(c)||null,m(b,a,d,e,null);Bf(b,d)}return null}function v(e,g,h,k){for(var l=null,m=null,q=g,u=g=0,B=null;null!==q&&u<h.length;u++){q.index>u?(B=q,q=null):B=q.sibling;var w=t(e,q,h[u],k);if(null===w){null===q&&(q=B);break}a&&q&&null===w.alternate&&b(e,q),g=f(w,g,u),null===m?l=w:m.sibling=w,m=w,q=B}if(u===h.length)return c(e,q),l;if(null===q){for(;u<h.length;u++)(q=p(e,h[u],k))&&(g=f(q,g,u),null===m?l=q:m.sibling=q,m=q);return l}for(q=d(e,q);u<h.length;u++)(B=A(q,e,u,h[u],k))&&(a&&null!==B.alternate&&q.delete(null===B.key?u:B.key),g=f(B,g,u),null===m?l=B:m.sibling=B,m=B);return a&&q.forEach(function(a){return b(e,a)}),l}function R(e,g,h,k){var l=hc(h);"function"!=typeof l&&x("150"),null==(h=l.call(h))&&x("151");for(var m=l=null,q=g,u=g=0,B=null,w=h.next();null!==q&&!w.done;u++,w=h.next()){q.index>u?(B=q,q=null):B=q.sibling;var v=t(e,q,w.value,k);if(null===v){q||(q=B);break}a&&q&&null===v.alternate&&b(e,q),g=f(v,g,u),null===m?l=v:m.sibling=v,m=v,q=B}if(w.done)return c(e,q),l;if(null===q){for(;!w.done;u++,w=h.next())null!==(w=p(e,w.value,k))&&(g=f(w,g,u),null===m?l=w:m.sibling=w,m=w);return l}for(q=d(e,q);!w.done;u++,w=h.next())null!==(w=A(q,e,u,w.value,k))&&(a&&null!==w.alternate&&q.delete(null===w.key?u:w.key),g=f(w,g,u),null===m?l=w:m.sibling=w,m=w);return a&&q.forEach(function(a){return b(e,a)}),l}return function(a,d,f,h){var k="object"==typeof f&&null!==f&&f.type===Xb&&null===f.key;k&&(f=f.props.children);var l="object"==typeof f&&null!==f;if(l)switch(f.$$typeof){case Vb:a:{for(l=f.key,k=d;null!==k;){if(k.key===l){if(7===k.tag?f.type===Xb:k.elementType===f.type){c(a,k.sibling),d=e(k,f.type===Xb?f.props.children:f.props,h),d.ref=Af(a,k,f),d.return=a,a=d;break a}c(a,k);break}b(a,k),k=k.sibling}f.type===Xb?(d=Ze(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ye(f.type,f.key,f.props,null,a.mode,h),h.ref=Af(a,d,f),h.return=a,a=h)}return g(a);case Wb:a:{for(k=f.key;null!==d;){if(d.key===k){if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling),d=e(d,f.children||[],h),d.return=a,a=d;break a}c(a,d);break}b(a,d),d=d.sibling}d=bf(f,a.mode,h),d.return=a,a=d}return g(a)}if("string"==typeof f||"number"==typeof f)return f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=af(f,a.mode,h),d.return=a,a=d),g(a);if(zf(f))return v(a,d,f,h);if(hc(f))return R(a,d,f,h);if(l&&Bf(a,f),void 0===f&&!k)switch(a.tag){case 1:case 0:h=a.type,x("152",h.displayName||h.name||"Component")}return c(a,d)}}function If(a){return a===Ff&&x("174"),a}function Jf(a,b){G(Hf,b,a),G(Gf,a,a),G(N,Ff,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:he(null,"");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=he(b,c)}F(N,a),G(N,b,a)}function Kf(a){F(N,a),F(Gf,a),F(Hf,a)}function Lf(a){If(Hf.current);var b=If(N.current),c=he(b,a.type);b!==c&&(G(Gf,a,a),G(N,c,a))}function Mf(a){Gf.current===a&&(F(N,a),F(Gf,a))}function fg(){x("321")}function gg(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!bd(a[c],b[c]))return!1;return!0}function hg(a,b,c,d,e,f){if(Wf=f,Xf=b,P=null!==a?a.memoizedState:null,Vf.current=null===P?ig:jg,b=c(d,e),cg){do{cg=!1,eg+=1,P=null!==a?a.memoizedState:null,Zf=Yf,ag=Q=O=null,Vf.current=jg,b=c(d,e)}while(cg);dg=null,eg=0}return Vf.current=kg,a=Xf,a.memoizedState=Yf,a.expirationTime=$f,a.updateQueue=ag,a.effectTag|=bg,a=null!==O&&null!==O.next,Wf=0,Zf=Q=Yf=P=O=Xf=null,$f=0,ag=null,bg=0,a&&x("300"),b}function lg(){Vf.current=kg,Wf=0,Zf=Q=Yf=P=O=Xf=null,$f=0,ag=null,bg=0,cg=!1,dg=null,eg=0}function mg(){var a={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return null===Q?Yf=Q=a:Q=Q.next=a,Q}function ng(){if(null!==Zf)Q=Zf,Zf=Q.next,O=P,P=null!==O?O.next:null;else{null===P&&x("310"),O=P;var a={memoizedState:O.memoizedState,baseState:O.baseState,queue:O.queue,baseUpdate:O.baseUpdate,next:null};Q=null===Q?Yf=a:Q.next=a,P=O.next}return Q}function og(a,b){return"function"==typeof b?b(a):b}function pg(a){var b=ng(),c=b.queue;if(null===c&&x("311"),0<eg){var d=c.dispatch;if(null!==dg){var e=dg.get(c);if(void 0!==e){dg.delete(c);var f=b.memoizedState;do{f=a(f,e.action),e=e.next}while(null!==e);return bd(f,b.memoizedState)||(qg=!0),b.memoizedState=f,b.baseUpdate===c.last&&(b.baseState=f),c.eagerReducer=a,c.eagerState=f,[f,d]}}return[b.memoizedState,d]}d=c.last;var g=b.baseUpdate;if(f=b.baseState,null!==g?(null!==d&&(d.next=null),d=g.next):d=null!==d?d.next:null,null!==d){var h=e=null,l=d,k=!1;do{var m=l.expirationTime;m<Wf?(k||(k=!0,h=g,e=f),m>$f&&($f=m)):f=l.eagerReducer===a?l.eagerState:a(f,l.action),g=l,l=l.next}while(null!==l&&l!==d);k||(h=g,e=f),bd(f,b.memoizedState)||(qg=!0),b.memoizedState=f,b.baseUpdate=h,b.baseState=e,c.eagerReducer=a,c.eagerState=f}return[b.memoizedState,c.dispatch]}function rg(a,b,c,d){return a={tag:a,create:b,destroy:c,deps:d,next:null},null===ag?(ag={lastEffect:null},ag.lastEffect=a.next=a):(b=ag.lastEffect,null===b?ag.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,ag.lastEffect=a)),a}function sg(a,b,c,d){var e=mg();bg|=a,e.memoizedState=rg(b,c,void 0,void 0===d?null:d)}function tg(a,b,c,d){var e=ng();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;if(f=g.destroy,null!==d&&gg(d,g.deps))return void rg(Nf,c,f,d)}bg|=a,e.memoizedState=rg(b,c,f,d)}function ug(a,b){return"function"==typeof b?(a=a(),b(a),function(){b(null)}):null!==b&&void 0!==b?(a=a(),b.current=a,function(){b.current=null}):void 0}function vg(){}function wg(a,b,c){25>eg||x("301");var d=a.alternate;if(a===Xf||null!==d&&d===Xf)if(cg=!0,a={expirationTime:Wf,action:c,eagerReducer:null,eagerState:null,next:null},null===dg&&(dg=new Map),void 0===(c=dg.get(b)))dg.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{of();var e=lf();e=mf(e,a);var f={expirationTime:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.last;if(null===g)f.next=f;else{var h=g.next;null!==h&&(f.next=h),g.next=f}if(b.last=f,0===a.expirationTime&&(null===d||0===d.expirationTime)&&null!==(d=b.eagerReducer))try{var l=b.eagerState,k=d(l,c);if(f.eagerReducer=d,f.eagerState=k,bd(k,l))return}catch(m){}qf(a,e)}}function Ag(a,b){var c=K(5,null,null,0);c.elementType="DELETED",c.type="DELETED",c.stateNode=b,c.return=a,c.effectTag=8,null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function Bg(a,b){switch(a.tag){case 5:var c=a.type;return null!==(b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b)&&(a.stateNode=b,!0);case 6:return null!==(b=""===a.pendingProps||3!==b.nodeType?null:b)&&(a.stateNode=b,!0);case 13:default:return!1}}function Cg(a){if(zg){var b=yg;if(b){var c=b;if(!Bg(a,b)){if(!(b=De(c))||!Bg(a,b))return a.effectTag|=2,zg=!1,void(xg=a);Ag(xg,c)}xg=a,yg=Ee(b)}else a.effectTag|=2,zg=!1,xg=a}}function Dg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&18!==a.tag;)a=a.return;xg=a}function Eg(a){if(a!==xg)return!1;if(!zg)return Dg(a),zg=!0,!1;var b=a.type;if(5!==a.tag||"head"!==b&&"body"!==b&&!xe(b,a.memoizedProps))for(b=yg;b;)Ag(a,b),b=De(b);return Dg(a),yg=xg?De(a.stateNode):null,!0}function Fg(){yg=xg=null,zg=!1}function S(a,b,c,d){b.child=null===a?Ef(b,null,c,d):Df(b,a.child,c,d)}function Hg(a,b,c,d,e){c=c.render;var f=b.ref;return Ig(b,e),d=hg(a,b,c,d,f,e),null===a||qg?(b.effectTag|=1,S(a,b,d,e),b.child):(b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),Jg(a,b,e))}function Kg(a,b,c,d,e,f){if(null===a){var g=c.type;return"function"!=typeof g||Ve(g)||void 0!==g.defaultProps||null!==c.compare||void 0!==c.defaultProps?(a=Ye(c.type,null,d,null,b.mode,f),a.ref=b.ref,a.return=b,b.child=a):(b.tag=15,b.type=g,Lg(a,b,g,d,e,f))}return g=a.child,e<f&&(e=g.memoizedProps,c=c.compare,(c=null!==c?c:dd)(e,d)&&a.ref===b.ref)?Jg(a,b,f):(b.effectTag|=1,a=Xe(g,d,f),a.ref=b.ref,a.return=b,b.child=a)}function Lg(a,b,c,d,e,f){return null!==a&&dd(a.memoizedProps,d)&&a.ref===b.ref&&(qg=!1,e<f)?Jg(a,b,f):Mg(a,b,c,d,f)}function Ng(a,b){var c=b.ref;(null===a&&null!==c||null!==a&&a.ref!==c)&&(b.effectTag|=128)}function Mg(a,b,c,d,e){var f=J(c)?Ie:H.current;return f=Je(b,f),Ig(b,e),c=hg(a,b,c,d,f,e),null===a||qg?(b.effectTag|=1,S(a,b,c,e),b.child):(b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),Jg(a,b,e))}function Og(a,b,c,d,e){if(J(c)){var f=!0;Oe(b)}else f=!1;if(Ig(b,e),null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),vf(b,c,d,e),xf(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var l=g.context,k=c.contextType;"object"==typeof k&&null!==k?k=M(k):(k=J(c)?Ie:H.current,k=Je(b,k));var m=c.getDerivedStateFromProps,p="function"==typeof m||"function"==typeof g.getSnapshotBeforeUpdate;p||"function"!=typeof g.UNSAFE_componentWillReceiveProps&&"function"!=typeof g.componentWillReceiveProps||(h!==d||l!==k)&&wf(b,g,d,k),Pg=!1;var t=b.memoizedState;l=g.state=t;var A=b.updateQueue;null!==A&&(yf(b,A,d,g,e),l=b.memoizedState),h!==d||t!==l||I.current||Pg?("function"==typeof m&&(kf(b,c,m,d),l=b.memoizedState),(h=Pg||uf(b,c,h,d,t,l,k))?(p||"function"!=typeof g.UNSAFE_componentWillMount&&"function"!=typeof g.componentWillMount||("function"==typeof g.componentWillMount&&g.componentWillMount(),"function"==typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),"function"==typeof g.componentDidMount&&(b.effectTag|=4)):("function"==typeof g.componentDidMount&&(b.effectTag|=4),b.memoizedProps=d,b.memoizedState=l),g.props=d,g.state=l,g.context=k,d=h):("function"==typeof g.componentDidMount&&(b.effectTag|=4),d=!1)}else g=b.stateNode,h=b.memoizedProps,g.props=b.type===b.elementType?h:L(b.type,h),l=g.context,k=c.contextType,"object"==typeof k&&null!==k?k=M(k):(k=J(c)?Ie:H.current,k=Je(b,k)),m=c.getDerivedStateFromProps,(p="function"==typeof m||"function"==typeof g.getSnapshotBeforeUpdate)||"function"!=typeof g.UNSAFE_componentWillReceiveProps&&"function"!=typeof g.componentWillReceiveProps||(h!==d||l!==k)&&wf(b,g,d,k),Pg=!1,l=b.memoizedState,t=g.state=l,A=b.updateQueue,null!==A&&(yf(b,A,d,g,e),t=b.memoizedState),h!==d||l!==t||I.current||Pg?("function"==typeof m&&(kf(b,c,m,d),t=b.memoizedState),(m=Pg||uf(b,c,h,d,l,t,k))?(p||"function"!=typeof g.UNSAFE_componentWillUpdate&&"function"!=typeof g.componentWillUpdate||("function"==typeof g.componentWillUpdate&&g.componentWillUpdate(d,t,k),"function"==typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,t,k)),"function"==typeof g.componentDidUpdate&&(b.effectTag|=4),"function"==typeof g.getSnapshotBeforeUpdate&&(b.effectTag|=256)):("function"!=typeof g.componentDidUpdate||h===a.memoizedProps&&l===a.memoizedState||(b.effectTag|=4),"function"!=typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&l===a.memoizedState||(b.effectTag|=256),b.memoizedProps=d,b.memoizedState=t),g.props=d,g.state=t,g.context=k,d=m):("function"!=typeof g.componentDidUpdate||h===a.memoizedProps&&l===a.memoizedState||(b.effectTag|=4),"function"!=typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&l===a.memoizedState||(b.effectTag|=256),d=!1);return Qg(a,b,c,d,f,e)}function Qg(a,b,c,d,e,f){Ng(a,b);var g=0!=(64&b.effectTag);if(!d&&!g)return e&&Pe(b,c,!1),Jg(a,b,f);d=b.stateNode,Gg.current=b;var h=g&&"function"!=typeof c.getDerivedStateFromError?null:d.render();return b.effectTag|=1,null!==a&&g?(b.child=Df(b,a.child,null,f),b.child=Df(b,null,h,f)):S(a,b,h,f),b.memoizedState=d.state,e&&Pe(b,c,!0),b.child}function Rg(a){var b=a.stateNode;b.pendingContext?Me(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Me(a,b.context,!1),Jf(a,b.containerInfo)}function Sg(a,b,c){var d=b.mode,e=b.pendingProps,f=b.memoizedState;if(0==(64&b.effectTag)){f=null;var g=!1}else f={timedOutAt:null!==f?f.timedOutAt:0},g=!0,b.effectTag&=-65;if(null===a)if(g){var h=e.fallback;a=Ze(null,d,0,null),0==(1&b.mode)&&(a.child=null!==b.memoizedState?b.child.child:b.child),d=Ze(h,d,c,null),a.sibling=d,c=a,c.return=d.return=b}else c=d=Ef(b,null,e.children,c);else null!==a.memoizedState?(d=a.child,h=d.sibling,g?(c=e.fallback,e=Xe(d,d.pendingProps,0),0==(1&b.mode)&&(g=null!==b.memoizedState?b.child.child:b.child)!==d.child&&(e.child=g),d=e.sibling=Xe(h,c,h.expirationTime),c=e,e.childExpirationTime=0,c.return=d.return=b):c=d=Df(b,d.child,e.children,c)):(h=a.child,g?(g=e.fallback,e=Ze(null,d,0,null),e.child=h,0==(1&b.mode)&&(e.child=null!==b.memoizedState?b.child.child:b.child),d=e.sibling=Ze(g,d,c,null),d.effectTag|=2,c=e,e.childExpirationTime=0,c.return=d.return=b):d=c=Df(b,h,e.children,c)),b.stateNode=a.stateNode;return b.memoizedState=f,b.child=c,d}function Jg(a,b,c){if(null!==a&&(b.contextDependencies=a.contextDependencies),b.childExpirationTime<c)return null;if(null!==a&&b.child!==a.child&&x("153"),null!==b.child){for(a=b.child,c=Xe(a,a.pendingProps,a.expirationTime),b.child=c,c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Xe(a,a.pendingProps,a.expirationTime),c.return=b;c.sibling=null}return b.child}function Tg(a,b,c){var d=b.expirationTime;if(null!==a){if(a.memoizedProps!==b.pendingProps||I.current)qg=!0;else if(d<c){switch(qg=!1,b.tag){case 3:Rg(b),Fg();break;case 5:Lf(b);break;case 1:J(b.type)&&Oe(b);break;case 4:Jf(b,b.stateNode.containerInfo);break;case 10:Ug(b,b.memoizedProps.value);break;case 13:if(null!==b.memoizedState)return 0!==(d=b.child.childExpirationTime)&&d>=c?Sg(a,b,c):(b=Jg(a,b,c),null!==b?b.sibling:null)}return Jg(a,b,c)}}else qg=!1;switch(b.expirationTime=0,b.tag){case 2:d=b.elementType,null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),a=b.pendingProps;var e=Je(b,H.current);if(Ig(b,c),e=hg(null,b,d,a,e,c),b.effectTag|=1,"object"==typeof e&&null!==e&&"function"==typeof e.render&&void 0===e.$$typeof){if(b.tag=1,lg(),J(d)){var f=!0;Oe(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;"function"==typeof g&&kf(b,d,g,a),e.updater=tf,b.stateNode=e,e._reactInternalFiber=b,xf(b,d,a,c),b=Qg(null,b,d,!0,f,c)}else b.tag=0,S(null,b,e,c),b=b.child;return b;case 16:switch(e=b.elementType,null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),f=b.pendingProps,a=hf(e),b.type=a,e=b.tag=We(a),f=L(a,f),g=void 0,e){case 0:g=Mg(null,b,a,f,c);break;case 1:g=Og(null,b,a,f,c);break;case 11:g=Hg(null,b,a,f,c);break;case 14:g=Kg(null,b,a,L(a.type,f),d,c);break;default:x("306",a,"")}return g;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:L(d,e),Mg(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:L(d,e),Og(a,b,d,e,c);case 3:return Rg(b),d=b.updateQueue,null===d&&x("282"),e=b.memoizedState,e=null!==e?e.element:null,yf(b,d,b.pendingProps,null,c),d=b.memoizedState.element,d===e?(Fg(),b=Jg(a,b,c)):(e=b.stateNode,(e=(null===a||null===a.child)&&e.hydrate)&&(yg=Ee(b.stateNode.containerInfo),xg=b,e=zg=!0),e?(b.effectTag|=2,b.child=Ef(b,null,d,c)):(S(a,b,d,c),Fg()),b=b.child),b;case 5:return Lf(b),null===a&&Cg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,xe(d,e)?g=null:null!==f&&xe(d,f)&&(b.effectTag|=16),Ng(a,b),1!==c&&1&b.mode&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(S(a,b,g,c),b=b.child),b;case 6:return null===a&&Cg(b),null;case 13:return Sg(a,b,c);case 4:return Jf(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Df(b,null,d,c):S(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:L(d,e),Hg(a,b,d,e,c);case 7:return S(a,b,b.pendingProps,c),b.child;case 8:case 12:return S(a,b,b.pendingProps.children,c),b.child;case 10:a:{if(d=b.type._context,e=b.pendingProps,g=b.memoizedProps,f=e.value,Ug(b,f),null!==g){var h=g.value;if(0===(f=bd(h,f)?0:0|("function"==typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823))){if(g.children===e.children&&!I.current){b=Jg(a,b,c);break a}}else for(null!==(h=b.child)&&(h.return=b);null!==h;){var l=h.contextDependencies;if(null!==l){g=h.child;for(var k=l.first;null!==k;){if(k.context===d&&0!=(k.observedBits&f)){1===h.tag&&(k=nf(c),k.tag=sf,pf(h,k)),h.expirationTime<c&&(h.expirationTime=c),k=h.alternate,null!==k&&k.expirationTime<c&&(k.expirationTime=c),k=c;for(var m=h.return;null!==m;){var p=m.alternate;if(m.childExpirationTime<k)m.childExpirationTime=k,null!==p&&p.childExpirationTime<k&&(p.childExpirationTime=k);else{if(!(null!==p&&p.childExpirationTime<k))break;p.childExpirationTime=k}m=m.return}l.expirationTime<c&&(l.expirationTime=c);break}k=k.next}}else g=10===h.tag&&h.type===b.type?null:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}if(null!==(h=g.sibling)){h.return=g.return,g=h;break}g=g.return}h=g}}S(a,b,e.children,c),b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,Ig(b,c),e=M(e,f.unstable_observedBits),d=d(e),b.effectTag|=1,S(a,b,d,c),b.child;case 14:return e=b.type,f=L(e,b.pendingProps),f=L(e.type,f),Kg(a,b,e,f,d,c);case 15:return Lg(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:L(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),b.tag=1,J(d)?(a=!0,Oe(b)):a=!1,Ig(b,c),vf(b,d,e,c),xf(b,d,e,c),Qg(null,b,d,!0,a,c)}x("156")}function Ug(a,b){var c=a.type._context;G(Vg,c._currentValue,a),c._currentValue=b}function Zg(a){var b=Vg.current;F(Vg,a),a.type._context._currentValue=b}function Ig(a,b){Wg=a,Yg=Xg=null;var c=a.contextDependencies;null!==c&&c.expirationTime>=b&&(qg=!0),a.contextDependencies=null}function M(a,b){return Yg!==a&&!1!==b&&0!==b&&("number"==typeof b&&1073741823!==b||(Yg=a,b=1073741823),b={context:a,observedBits:b,next:null},null===Xg?(null===Wg&&x("308"),Xg=b,Wg.contextDependencies={first:b,expirationTime:0}):Xg=Xg.next=b),a._currentValue}function bh(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function ch(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function nf(a){return{expirationTime:a,tag:$g,payload:null,callback:null,next:null,nextEffect:null}}function dh(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}function pf(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue,e=null;null===d&&(d=a.updateQueue=bh(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=bh(a.memoizedState),e=c.updateQueue=bh(c.memoizedState)):d=a.updateQueue=ch(e):null===e&&(e=c.updateQueue=ch(d));null===e||d===e?dh(d,b):null===d.lastUpdate||null===e.lastUpdate?(dh(d,b),dh(e,b)):(dh(d,b),e.lastUpdate=b)}function eh(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=bh(a.memoizedState):fh(a,c),null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function fh(a,b){var c=a.alternate;return null!==c&&b===c.updateQueue&&(b=a.updateQueue=ch(b)),b}function gh(a,b,c,d,e,f){switch(c.tag){case rf:return a=c.payload,"function"==typeof a?a.call(f,d,e):a;case ah:a.effectTag=-2049&a.effectTag|64;case $g:if(a=c.payload,null===(e="function"==typeof a?a.call(f,d,e):a)||void 0===e)break;return n({},d,e);case sf:Pg=!0}return d}function yf(a,b,c,d,e){Pg=!1,b=fh(a,b);for(var f=b.baseState,g=null,h=0,l=b.firstUpdate,k=f;null!==l;){var m=l.expirationTime;m<e?(null===g&&(g=l,f=k),h<m&&(h=m)):(k=gh(a,b,l,k,c,d),null!==l.callback&&(a.effectTag|=32,l.nextEffect=null,null===b.lastEffect?b.firstEffect=b.lastEffect=l:(b.lastEffect.nextEffect=l,b.lastEffect=l))),l=l.next}for(m=null,l=b.firstCapturedUpdate;null!==l;){var p=l.expirationTime;p<e?(null===m&&(m=l,null===g&&(f=k)),h<p&&(h=p)):(k=gh(a,b,l,k,c,d),null!==l.callback&&(a.effectTag|=32,l.nextEffect=null,null===b.lastCapturedEffect?b.firstCapturedEffect=b.lastCapturedEffect=l:(b.lastCapturedEffect.nextEffect=l,b.lastCapturedEffect=l))),l=l.next}null===g&&(b.lastUpdate=null),null===m?b.lastCapturedUpdate=null:a.effectTag|=32,null===g&&null===m&&(f=k),b.baseState=f,b.firstUpdate=g,b.firstCapturedUpdate=m,a.expirationTime=h,a.memoizedState=k}function hh(a,b,c){null!==b.firstCapturedUpdate&&(null!==b.lastUpdate&&(b.lastUpdate.next=b.firstCapturedUpdate,b.lastUpdate=b.lastCapturedUpdate),b.firstCapturedUpdate=b.lastCapturedUpdate=null),ih(b.firstEffect,c),b.firstEffect=b.lastEffect=null,ih(b.firstCapturedEffect,c),b.firstCapturedEffect=b.lastCapturedEffect=null}function ih(a,b){for(;null!==a;){var c=a.callback;if(null!==c){a.callback=null;var d=b;"function"!=typeof c&&x("191",c),c.call(d)}a=a.nextEffect}}function jh(a,b){return{value:a,source:b,stack:jc(b)}}function kh(a){a.effectTag|=4}function qh(a,b){var c=b.source,d=b.stack;null===d&&null!==c&&(d=jc(c)),null!==c&&ic(c.type),b=b.value,null!==a&&1===a.tag&&ic(a.type);try{console.error(b)}catch(e){setTimeout(function(){throw e})}}function rh(a){var b=a.ref;if(null!==b)if("function"==typeof b)try{b(null)}catch(c){sh(a,c)}else b.current=null}function th(a,b,c){if(c=c.updateQueue,null!==(c=null!==c?c.lastEffect:null)){var d=c=c.next;do{if((d.tag&a)!==Nf){var e=d.destroy;d.destroy=void 0,void 0!==e&&e()}(d.tag&b)!==Nf&&(e=d.create,d.destroy=e()),d=d.next}while(d!==c)}}function uh(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d.style.display="none";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty("display")?e.display:null,d.style.display=ne("display",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?"":c.memoizedProps;else{if(13===c.tag&&null!==c.memoizedState){d=c.child.sibling,d.return=c,c=d;continue}if(null!==c.child){c.child.return=c,c=c.child;continue}}if(c===a)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return,c=c.sibling}}function vh(a){switch("function"==typeof Re&&Re(a),a.tag){case 0:case 11:case 14:case 15:var b=a.updateQueue;if(null!==b&&null!==(b=b.lastEffect)){var c=b=b.next;do{var d=c.destroy;if(void 0!==d){var e=a;try{d()}catch(f){sh(e,f)}}c=c.next}while(c!==b)}break;case 1:if(rh(a),b=a.stateNode,"function"==typeof b.componentWillUnmount)try{b.props=a.memoizedProps,b.state=a.memoizedState,b.componentWillUnmount()}catch(f){sh(a,f)}break;case 5:rh(a);break;case 4:wh(a)}}function xh(a){return 5===a.tag||3===a.tag||4===a.tag}function yh(a){a:{for(var b=a.return;null!==b;){if(xh(b)){var c=b;break a}b=b.return}x("160"),c=void 0}var d=b=void 0;switch(c.tag){case 5:b=c.stateNode,d=!1;break;case 3:case 4:b=c.stateNode.containerInfo,d=!0;break;default:x("161")}16&c.effectTag&&(ke(b,""),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||xh(c.return)){c=null;break a}c=c.return}for(c.sibling.return=c.return,c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(2&c.effectTag)continue b;if(null===c.child||4===c.tag)continue b;c.child.return=c,c=c.child}if(!(2&c.effectTag)){c=c.stateNode;break a}}for(var e=a;;){if(5===e.tag||6===e.tag)if(c)if(d){var f=b,g=e.stateNode,h=c;8===f.nodeType?f.parentNode.insertBefore(g,h):f.insertBefore(g,h)}else b.insertBefore(e.stateNode,c);else d?(g=b,h=e.stateNode,8===g.nodeType?(f=g.parentNode,f.insertBefore(h,g)):(f=g,f.appendChild(h)),null!==(g=g._reactRootContainer)&&void 0!==g||null!==f.onclick||(f.onclick=te)):b.appendChild(e.stateNode);else if(4!==e.tag&&null!==e.child){e.child.return=e,e=e.child;continue}if(e===a)break;for(;null===e.sibling;){if(null===e.return||e.return===a)return;e=e.return}e.sibling.return=e.return,e=e.sibling}}function wh(a){for(var b=a,c=!1,d=void 0,e=void 0;;){if(!c){c=b.return;a:for(;;){switch(null===c&&x("160"),c.tag){case 5:d=c.stateNode,e=!1;break a;case 3:case 4:d=c.stateNode.containerInfo,e=!0;break a}c=c.return}c=!0}if(5===b.tag||6===b.tag){a:for(var f=b,g=f;;)if(vh(g),null!==g.child&&4!==g.tag)g.child.return=g,g=g.child;else{if(g===f)break;for(;null===g.sibling;){if(null===g.return||g.return===f)break a;g=g.return}g.sibling.return=g.return,g=g.sibling}e?(f=d,g=b.stateNode,8===f.nodeType?f.parentNode.removeChild(g):f.removeChild(g)):d.removeChild(b.stateNode)}else if(4===b.tag){if(null!==b.child){d=b.stateNode.containerInfo,e=!0,b.child.return=b,b=b.child;continue}}else if(vh(b),null!==b.child){b.child.return=b,b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return;b=b.return,4===b.tag&&(c=!1)}b.sibling.return=b.return,b=b.sibling}}function zh(a,b){switch(b.tag){case 0:case 11:case 14:case 15:th(Pf,Qf,b);break;case 1:break;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps;a=null!==a?a.memoizedProps:d;var e=b.type,f=b.updateQueue;b.updateQueue=null,null!==f&&Ce(c,f,e,a,d,b)}break;case 6:null===b.stateNode&&x("162"),b.stateNode.nodeValue=b.memoizedProps;break;case 3:case 12:break;case 13:if(c=b.memoizedState,d=void 0,a=b,null===c?d=!1:(d=!0,a=b.child,0===c.timedOutAt&&(c.timedOutAt=lf())),null!==a&&uh(a,d),null!==(c=b.updateQueue)){b.updateQueue=null;var g=b.stateNode;null===g&&(g=b.stateNode=new ph),c.forEach(function(a){var c=Ah.bind(null,b,a);g.has(a)||(g.add(a),a.then(c,c))})}break;case 17:break;default:x("163")}}function Ch(a,b,c){c=nf(c),c.tag=ah,c.payload={element:null};var d=b.value;return c.callback=function(){Dh(d),qh(a,b)},c}function Eh(a,b,c){c=nf(c),c.tag=ah;var d=a.type.getDerivedStateFromError;if("function"==typeof d){var e=b.value;c.payload=function(){return d(e)}}var f=a.stateNode;return null!==f&&"function"==typeof f.componentDidCatch&&(c.callback=function(){"function"!=typeof d&&(null===Fh?Fh=new Set([this]):Fh.add(this));var c=b.value,e=b.stack;qh(a,b),this.componentDidCatch(c,{componentStack:null!==e?e:""})}),c}function Gh(a){switch(a.tag){case 1:J(a.type)&&Ke(a);var b=a.effectTag;return 2048&b?(a.effectTag=-2049&b|64,a):null;case 3:return Kf(a),Le(a),b=a.effectTag,0!=(64&b)&&x("285"),a.effectTag=-2049&b|64,a;case 5:return Mf(a),null;case 13:return b=a.effectTag,2048&b?(a.effectTag=-2049&b|64,a):null;case 18:return null;case 4:return Kf(a),null;case 10:return Zg(a),null;default:return null}}function Sh(){if(null!==T)for(var a=T.return;null!==a;){var b=a;switch(b.tag){case 1:var c=b.type.childContextTypes;null!==c&&void 0!==c&&Ke(b);break;case 3:Kf(b),Le(b);break;case 5:Mf(b);break;case 4:Kf(b);break;case 10:Zg(b)}a=a.return}Lh=null,U=0,Mh=-1,Nh=!1,T=null}function Th(){for(;null!==V;){var a=V.effectTag;if(16&a&&ke(V.stateNode,""),128&a){var b=V.alternate;null!==b&&null!==(b=b.ref)&&("function"==typeof b?b(null):b.current=null)}switch(14&a){case 2:yh(V),V.effectTag&=-3;break;case 6:yh(V),V.effectTag&=-3,zh(V.alternate,V);break;case 4:zh(V.alternate,V);break;case 8:a=V,wh(a),a.return=null,a.child=null,a.memoizedState=null,a.updateQueue=null,null!==(a=a.alternate)&&(a.return=null,a.child=null,a.memoizedState=null,a.updateQueue=null)}V=V.nextEffect}}function Uh(){for(;null!==V;){if(256&V.effectTag)a:{var a=V.alternate,b=V;switch(b.tag){case 0:case 11:case 15:th(Of,Nf,b);break a;case 1:if(256&b.effectTag&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode,b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:L(b.type,c),d),a.__reactInternalSnapshotBeforeUpdate=b}break a;case 3:case 5:case 6:case 4:case 17:break a;default:x("163")}}V=V.nextEffect}}function Vh(a,b){for(;null!==V;){var c=V.effectTag;if(36&c){var d=V.alternate,e=V,f=b;switch(e.tag){case 0:case 11:case 15:th(Rf,Sf,e);break;case 1:var g=e.stateNode;if(4&e.effectTag)if(null===d)g.componentDidMount();else{var h=e.elementType===e.type?d.memoizedProps:L(e.type,d.memoizedProps);g.componentDidUpdate(h,d.memoizedState,g.__reactInternalSnapshotBeforeUpdate)}d=e.updateQueue,null!==d&&hh(e,d,g,f);break;case 3:if(null!==(d=e.updateQueue)){if(g=null,null!==e.child)switch(e.child.tag){case 5:g=e.child.stateNode;break;case 1:g=e.child.stateNode}hh(e,d,g,f)}break;case 5:f=e.stateNode,null===d&&4&e.effectTag&&we(e.type,e.memoizedProps)&&f.focus();break;case 6:case 4:case 12:case 13:case 17:break;default:x("163")}}128&c&&null!==(e=V.ref)&&(f=V.stateNode,"function"==typeof e?e(f):e.current=f),512&c&&(Ph=a),V=V.nextEffect}}function Wh(a,b){Rh=Qh=Ph=null;var c=W;W=!0;do{if(512&b.effectTag){var d=!1,e=void 0;try{var f=b;th(Uf,Nf,f),th(Nf,Tf,f)}catch(g){d=!0,e=g}d&&sh(b,e)}b=b.nextEffect}while(null!==b);W=c,c=a.expirationTime,0!==c&&Xh(a,c),X||W||Yh(1073741823,!1)}function of(){null!==Qh&&Be(Qh),null!==Rh&&Rh()}function Zh(a,b){Oh=Kh=!0,a.current===b&&x("177");var c=a.pendingCommitExpirationTime;0===c&&x("261"),a.pendingCommitExpirationTime=0;var d=b.expirationTime,e=b.childExpirationTime;for(ef(a,e>d?e:d),Ih.current=null,d=void 0,1<b.effectTag?null!==b.lastEffect?(b.lastEffect.nextEffect=b,d=b.firstEffect):d=b:d=b.firstEffect,ue=Bd,ve=Pd(),Bd=!1,V=d;null!==V;){e=!1;var f=void 0;try{Uh()}catch(h){e=!0,f=h}e&&(null===V&&x("178"),sh(V,f),null!==V&&(V=V.nextEffect))}for(V=d;null!==V;){e=!1,f=void 0;try{Th()}catch(h){e=!0,f=h}e&&(null===V&&x("178"),sh(V,f),null!==V&&(V=V.nextEffect))}for(Qd(ve),ve=null,Bd=!!ue,ue=null,a.current=b,V=d;null!==V;){e=!1,f=void 0;try{Vh(a,c)}catch(h){e=!0,f=h}e&&(null===V&&x("178"),sh(V,f),null!==V&&(V=V.nextEffect))}if(null!==d&&null!==Ph){var g=Wh.bind(null,a,d);Qh=r.unstable_runWithPriority(r.unstable_NormalPriority,function(){return Ae(g)}),Rh=g}Kh=Oh=!1,"function"==typeof Qe&&Qe(b.stateNode),c=b.expirationTime,b=b.childExpirationTime,b=b>c?b:c,0===b&&(Fh=null),$h(a,b)}function ai(a){for(;;){var b=a.alternate,c=a.return,d=a.sibling;if(0==(1024&a.effectTag)){T=a;a:{var e=b;b=a;var f=U,g=b.pendingProps;switch(b.tag){case 2:case 16:break;case 15:case 0:break;case 1:J(b.type)&&Ke(b);break;case 3:Kf(b),Le(b),g=b.stateNode,g.pendingContext&&(g.context=g.pendingContext,g.pendingContext=null),null!==e&&null!==e.child||(Eg(b),b.effectTag&=-3),mh(b);break;case 5:Mf(b);var h=If(Hf.current);if(f=b.type,null!==e&&null!=b.stateNode)nh(e,b,f,g,h),e.ref!==b.ref&&(b.effectTag|=128);else if(g){var l=If(N.current);if(Eg(b)){g=b,e=g.stateNode;var k=g.type,m=g.memoizedProps,p=h;switch(e[Fa]=g,e[Ga]=m,f=void 0,h=k){case"iframe":case"object":E("load",e);break;case"video":case"audio":for(k=0;k<ab.length;k++)E(ab[k],e);break;case"source":E("error",e);break;case"img":case"image":case"link":E("error",e),E("load",e);break;case"form":E("reset",e),E("submit",e);break;case"details":E("toggle",e);break;case"input":wc(e,m),E("invalid",e),se(p,"onChange");break;case"select":e._wrapperState={wasMultiple:!!m.multiple},E("invalid",e),se(p,"onChange");break;case"textarea":ce(e,m),E("invalid",e),se(p,"onChange")}qe(h,m),k=null;for(f in m)m.hasOwnProperty(f)&&(l=m[f],"children"===f?"string"==typeof l?e.textContent!==l&&(k=["children",l]):"number"==typeof l&&e.textContent!==""+l&&(k=["children",""+l]):ra.hasOwnProperty(f)&&null!=l&&se(p,f));switch(h){case"input":Rb(e),Ac(e,m,!0);break;case"textarea":Rb(e),ee(e,m);break;case"select":case"option":break;default:"function"==typeof m.onClick&&(e.onclick=te)}f=k,g.updateQueue=f,g=null!==f,g&&kh(b)}else{m=b,p=f,e=g,k=9===h.nodeType?h:h.ownerDocument,l===fe.html&&(l=ge(p)),l===fe.html?"script"===p?(e=k.createElement("div"),e.innerHTML="<script><\/script>",k=e.removeChild(e.firstChild)):"string"==typeof e.is?k=k.createElement(p,{is:e.is}):(k=k.createElement(p),"select"===p&&(p=k,e.multiple?p.multiple=!0:e.size&&(p.size=e.size))):k=k.createElementNS(l,p),e=k,e[Fa]=m,e[Ga]=g,lh(e,b,!1,!1),p=e,k=f,m=g;var t=h,A=re(k,m);switch(k){case"iframe":case"object":E("load",p),h=m;break;case"video":case"audio":for(h=0;h<ab.length;h++)E(ab[h],p);h=m;break;case"source":E("error",p),h=m;break;case"img":case"image":case"link":E("error",p),E("load",p),h=m;break;case"form":E("reset",p),E("submit",p),h=m;break;case"details":E("toggle",p),h=m;break;case"input":wc(p,m),h=vc(p,m),E("invalid",p),se(t,"onChange");break;case"option":h=$d(p,m);break;case"select":p._wrapperState={wasMultiple:!!m.multiple},h=n({},m,{value:void 0}),E("invalid",p),se(t,"onChange");break;case"textarea":ce(p,m),h=be(p,m),E("invalid",p),se(t,"onChange");break;default:h=m}qe(k,h),l=void 0;var v=k,R=p,u=h;for(l in u)if(u.hasOwnProperty(l)){var q=u[l];"style"===l?oe(R,q):"dangerouslySetInnerHTML"===l?null!=(q=q?q.__html:void 0)&&je(R,q):"children"===l?"string"==typeof q?("textarea"!==v||""!==q)&&ke(R,q):"number"==typeof q&&ke(R,""+q):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(ra.hasOwnProperty(l)?null!=q&&se(t,l):null!=q&&tc(R,l,q,A))}switch(k){case"input":Rb(p),Ac(p,m,!1);break;case"textarea":Rb(p),ee(p,m);break;case"option":null!=m.value&&p.setAttribute("value",""+uc(m.value));break;case"select":h=p,h.multiple=!!m.multiple,p=m.value,null!=p?ae(h,!!m.multiple,p,!1):null!=m.defaultValue&&ae(h,!!m.multiple,m.defaultValue,!0);break;default:"function"==typeof h.onClick&&(p.onclick=te)}(g=we(f,g))&&kh(b),b.stateNode=e}null!==b.ref&&(b.effectTag|=128)}else null===b.stateNode&&x("166");break;case 6:e&&null!=b.stateNode?oh(e,b,e.memoizedProps,g):("string"!=typeof g&&(null===b.stateNode&&x("166")),e=If(Hf.current),If(N.current),Eg(b)?(g=b,f=g.stateNode,e=g.memoizedProps,f[Fa]=g,(g=f.nodeValue!==e)&&kh(b)):(f=b,g=(9===e.nodeType?e:e.ownerDocument).createTextNode(g),g[Fa]=b,f.stateNode=g));break;case 11:break;case 13:if(g=b.memoizedState,0!=(64&b.effectTag)){b.expirationTime=f,T=b;break a}g=null!==g,f=null!==e&&null!==e.memoizedState,null!==e&&!g&&f&&null!==(e=e.child.sibling)&&(h=b.firstEffect,null!==h?(b.firstEffect=e,e.nextEffect=h):(b.firstEffect=b.lastEffect=e,e.nextEffect=null),e.effectTag=8),(g||f)&&(b.effectTag|=4);break;case 7:case 8:case 12:break;case 4:Kf(b),mh(b);break;case 10:Zg(b);break;case 9:case 14:break;case 17:J(b.type)&&Ke(b);break;case 18:break;default:x("156")}T=null}if(b=a,1===U||1!==b.childExpirationTime){for(g=0,f=b.child;null!==f;)e=f.expirationTime,h=f.childExpirationTime,e>g&&(g=e),h>g&&(g=h),f=f.sibling;b.childExpirationTime=g}if(null!==T)return T;null!==c&&0==(1024&c.effectTag)&&(null===c.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1<a.effectTag&&(null!==c.lastEffect?c.lastEffect.nextEffect=a:c.firstEffect=a,c.lastEffect=a))}else{if(null!==(a=Gh(a,U)))return a.effectTag&=1023,a;null!==c&&(c.firstEffect=c.lastEffect=null,c.effectTag|=1024)}if(null!==d)return d;if(null===c)break;a=c}return null}function bi(a){var b=Tg(a.alternate,a,U);return a.memoizedProps=a.pendingProps,null===b&&(b=ai(a)),Ih.current=null,b}function ci(a,b){Kh&&x("243"),of(),Kh=!0;var c=Hh.current;Hh.current=kg;var d=a.nextExpirationTimeToWorkOn;d===U&&a===Lh&&null!==T||(Sh(),Lh=a,U=d,T=Xe(Lh.current,null,U),a.pendingCommitExpirationTime=0);for(var e=!1;;){try{if(b)for(;null!==T&&!di();)T=bi(T);else for(;null!==T;)T=bi(T)}catch(u){if(Yg=Xg=Wg=null,lg(),null===T)e=!0,Dh(u);else{null===T&&x("271");var f=T,g=f.return;if(null!==g){a:{var h=a,l=g,k=f,m=u;if(g=U,k.effectTag|=1024,k.firstEffect=k.lastEffect=null,null!==m&&"object"==typeof m&&"function"==typeof m.then){var p=m;m=l;var t=-1,A=-1;do{if(13===m.tag){var v=m.alternate;if(null!==v&&null!==(v=v.memoizedState)){A=10*(1073741822-v.timedOutAt);break}v=m.pendingProps.maxDuration,"number"==typeof v&&(0>=v?t=0:(-1===t||v<t)&&(t=v))}m=m.return}while(null!==m);m=l;do{if((v=13===m.tag)&&(v=void 0!==m.memoizedProps.fallback&&null===m.memoizedState),v){if(l=m.updateQueue,null===l?(l=new Set,l.add(p),m.updateQueue=l):l.add(p),0==(1&m.mode)){m.effectTag|=64,k.effectTag&=-1957,1===k.tag&&(null===k.alternate?k.tag=17:(g=nf(1073741823),g.tag=sf,pf(k,g))),k.expirationTime=1073741823;break a}k=h,l=g;var R=k.pingCache;null===R?(R=k.pingCache=new Bh,v=new Set,R.set(p,v)):void 0===(v=R.get(p))&&(v=new Set,R.set(p,v)),v.has(l)||(v.add(l),k=ei.bind(null,k,p,l),p.then(k,k)),-1===t?h=1073741823:(-1===A&&(A=10*(1073741822-gf(h,g))-5e3),h=A+t),0<=h&&Mh<h&&(Mh=h),m.effectTag|=2048,m.expirationTime=g;break a}m=m.return}while(null!==m);m=Error((ic(k.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display."+jc(k))}Nh=!0,m=jh(m,k),h=l;do{switch(h.tag){case 3:h.effectTag|=2048,h.expirationTime=g,g=Ch(h,m,g),eh(h,g);break a;case 1:if(t=m,A=h.type,k=h.stateNode,0==(64&h.effectTag)&&("function"==typeof A.getDerivedStateFromError||null!==k&&"function"==typeof k.componentDidCatch&&(null===Fh||!Fh.has(k)))){h.effectTag|=2048,h.expirationTime=g,g=Eh(h,t,g),eh(h,g);break a}}h=h.return}while(null!==h)}T=ai(f);continue}e=!0,Dh(u)}}break}if(Kh=!1,Hh.current=c,Yg=Xg=Wg=null,lg(),e)Lh=null,a.finishedWork=null;else if(null!==T)a.finishedWork=null;else{if(c=a.current.alternate,null===c&&x("281"),Lh=null,Nh){if(e=a.latestPendingTime,f=a.latestSuspendedTime,g=a.latestPingedTime,0!==e&&e<d||0!==f&&f<d||0!==g&&g<d)return ff(a,d),void fi(a,c,d,a.expirationTime,-1);if(!a.didError&&b)return a.didError=!0,d=a.nextExpirationTimeToWorkOn=d,b=a.expirationTime=1073741823,void fi(a,c,d,b,-1)}b&&-1!==Mh?(ff(a,d),b=10*(1073741822-gf(a,d)),b<Mh&&(Mh=b),b=10*(1073741822-lf()),b=Mh-b,fi(a,c,d,a.expirationTime,0>b?0:b)):(a.pendingCommitExpirationTime=d,a.finishedWork=c)}}function sh(a,b){for(var c=a.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if("function"==typeof c.type.getDerivedStateFromError||"function"==typeof d.componentDidCatch&&(null===Fh||!Fh.has(d)))return a=jh(b,a),a=Eh(c,a,1073741823),pf(c,a),void qf(c,1073741823);break;case 3:return a=jh(b,a),a=Ch(c,a,1073741823),pf(c,a),void qf(c,1073741823)}c=c.return}3===a.tag&&(c=jh(b,a),c=Ch(a,c,1073741823),pf(a,c),qf(a,1073741823))}function mf(a,b){var c=r.unstable_getCurrentPriorityLevel(),d=void 0;if(0==(1&b.mode))d=1073741823;else if(Kh&&!Oh)d=U;else{switch(c){case r.unstable_ImmediatePriority:d=1073741823;break;case r.unstable_UserBlockingPriority:d=1073741822-10*(1+((1073741822-a+15)/10|0));break;case r.unstable_NormalPriority:d=1073741822-25*(1+((1073741822-a+500)/25|0));break;case r.unstable_LowPriority:case r.unstable_IdlePriority:d=1;break;default:x("313")}null!==Lh&&d===U&&--d}return c===r.unstable_UserBlockingPriority&&(0===gi||d<gi)&&(gi=d),d}function ei(a,b,c){var d=a.pingCache;null!==d&&d.delete(b),null!==Lh&&U===c?Lh=null:(b=a.earliestSuspendedTime,d=a.latestSuspendedTime,0!==b&&c<=b&&c>=d&&(a.didError=!1,b=a.latestPingedTime,(0===b||b>c)&&(a.latestPingedTime=c),df(c,a),0!==(c=a.expirationTime)&&Xh(a,c)))}function Ah(a,b){var c=a.stateNode;null!==c&&c.delete(b),b=lf(),b=mf(b,a),null!==(a=hi(a,b))&&(cf(a,b),0!==(b=a.expirationTime)&&Xh(a,b))}function hi(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);var d=a.return,e=null;if(null===d&&3===a.tag)e=a.stateNode;else for(;null!==d;){if(c=d.alternate,d.childExpirationTime<b&&(d.childExpirationTime=b),null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b),null===d.return&&3===d.tag){e=d.stateNode;break}d=d.return}return e}function qf(a,b){null!==(a=hi(a,b))&&(!Kh&&0!==U&&b>U&&Sh(),cf(a,b),Kh&&!Oh&&Lh===a||Xh(a,a.expirationTime),ii>ji&&(ii=0,x("185")))}function ki(a,b,c,d,e){return r.unstable_runWithPriority(r.unstable_ImmediatePriority,function(){return a(b,c,d,e)})}function xi(){ui=1073741822-((r.unstable_now()-ti)/10|0)}function yi(a,b){if(0!==mi){if(b<mi)return;null!==ni&&r.unstable_cancelCallback(ni)}mi=b,a=r.unstable_now()-ti,ni=r.unstable_scheduleCallback(zi,{timeout:10*(1073741822-b)-a})}function fi(a,b,c,d,e){a.expirationTime=d,0!==e||di()?0<e&&(a.timeoutHandle=ye(Ai.bind(null,a,b,c),e)):(a.pendingCommitExpirationTime=c,a.finishedWork=b)}function Ai(a,b,c){a.pendingCommitExpirationTime=c,a.finishedWork=b,xi(),vi=ui,Bi(a,c)}function $h(a,b){a.expirationTime=b,a.finishedWork=null}function lf(){return W?vi:(Ci(),0!==Z&&1!==Z||(xi(),vi=ui),vi)}function Xh(a,b){null===a.nextScheduledRoot?(a.expirationTime=b,null===Y?(li=Y=a,a.nextScheduledRoot=a):(Y=Y.nextScheduledRoot=a,Y.nextScheduledRoot=li)):b>a.expirationTime&&(a.expirationTime=b),W||(X?ri&&(oi=a,Z=1073741823,Di(a,1073741823,!1)):1073741823===b?Yh(1073741823,!1):yi(a,b))}function Ci(){var a=0,b=null;if(null!==Y)for(var c=Y,d=li;null!==d;){var e=d.expirationTime;if(0===e){if((null===c||null===Y)&&x("244"),d===d.nextScheduledRoot){li=Y=d.nextScheduledRoot=null;break}if(d===li)li=e=d.nextScheduledRoot,Y.nextScheduledRoot=e,d.nextScheduledRoot=null;else{if(d===Y){Y=c,Y.nextScheduledRoot=li,d.nextScheduledRoot=null;break}c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null}d=c.nextScheduledRoot}else{if(e>a&&(a=e,b=d),d===Y)break;if(1073741823===a)break;c=d,d=d.nextScheduledRoot}}oi=b,Z=a}function di(){return!!Ei||!!r.unstable_shouldYield()&&(Ei=!0)}function zi(){try{if(!di()&&null!==li){xi();var a=li;do{var b=a.expirationTime;0!==b&&ui<=b&&(a.nextExpirationTimeToWorkOn=ui),a=a.nextScheduledRoot}while(a!==li)}Yh(0,!0)}finally{Ei=!1}}function Yh(a,b){if(Ci(),b)for(xi(),vi=ui;null!==oi&&0!==Z&&a<=Z&&!(Ei&&ui>Z);)Di(oi,Z,ui>Z),Ci(),xi(),vi=ui;else for(;null!==oi&&0!==Z&&a<=Z;)Di(oi,Z,!1),Ci();if(b&&(mi=0,ni=null),0!==Z&&yi(oi,Z),ii=0,wi=null,null!==si)for(a=si,si=null,b=0;b<a.length;b++){var c=a[b];try{c._onComplete()}catch(d){pi||(pi=!0,qi=d)}}if(pi)throw a=qi,qi=null,pi=!1,a}function Bi(a,b){W&&x("253"),oi=a,Z=b,Di(a,b,!1),Yh(1073741823,!1)}function Di(a,b,c){if(W&&x("245"),W=!0,c){var d=a.finishedWork;null!==d?Fi(a,d,b):(a.finishedWork=null,d=a.timeoutHandle,-1!==d&&(a.timeoutHandle=-1,ze(d)),ci(a,c),null!==(d=a.finishedWork)&&(di()?a.finishedWork=d:Fi(a,d,b)))}else d=a.finishedWork,null!==d?Fi(a,d,b):(a.finishedWork=null,d=a.timeoutHandle,-1!==d&&(a.timeoutHandle=-1,ze(d)),ci(a,c),null!==(d=a.finishedWork)&&Fi(a,d,b));W=!1}function Fi(a,b,c){var d=a.firstBatch;if(null!==d&&d._expirationTime>=c&&(null===si?si=[d]:si.push(d),d._defer))return a.finishedWork=b,void(a.expirationTime=0);a.finishedWork=null,a===wi?ii++:(wi=a,ii=0),r.unstable_runWithPriority(r.unstable_ImmediatePriority,function(){Zh(a,b)})}function Dh(a){null===oi&&x("246"),oi.expirationTime=0,pi||(pi=!0,qi=a)}function Gi(a,b){var c=X;X=!0;try{return a(b)}finally{(X=c)||W||Yh(1073741823,!1)}}function Hi(a,b){if(X&&!ri){ri=!0;try{return a(b)}finally{ri=!1}}return a(b)}function Ii(a,b,c){X||W||0===gi||(Yh(gi,!1),gi=0);var d=X;X=!0;try{return r.unstable_runWithPriority(r.unstable_UserBlockingPriority,function(){return a(b,c)})}finally{(X=d)||W||Yh(1073741823,!1)}}function Ji(a,b,c,d,e){var f=b.current;a:if(c){c=c._reactInternalFiber;b:{2===ed(c)&&1===c.tag||x("170");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(J(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);x("171"),g=void 0}if(1===c.tag){var h=c.type;if(J(h)){c=Ne(c,h,g);break a}}c=g}else c=He;return null===b.context?b.context=c:b.pendingContext=c,b=e,e=nf(d),e.payload={element:a},b=void 0===b?null:b,null!==b&&(e.callback=b),of(),pf(f,e),qf(f,d),d}function Ki(a,b,c,d){var e=b.current;return e=mf(lf(),e),Ji(a,b,c,e,d)}function Li(a){if(a=a.current,!a.child)return null;switch(a.child.tag){case 5:default:return a.child.stateNode}}function Mi(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Wb,key:null==d?null:""+d,children:a,containerInfo:b,implementation:c}}function Ni(a){var b=1073741822-25*(1+((1073741822-lf()+500)/25|0));b>=Jh&&(b=Jh-1),this._expirationTime=Jh=b,this._root=a,this._callbacks=this._next=null,this._hasChildren=this._didComplete=!1,this._children=null,this._defer=!0}function Oi(){this._callbacks=null,this._didCommit=!1,this._onCommit=this._onCommit.bind(this)}function Pi(a,b,c){b=K(3,null,null,b?3:0),a={current:b,containerInfo:a,pendingChildren:null,pingCache:null,earliestPendingTime:0,latestPendingTime:0,earliestSuspendedTime:0,latestSuspendedTime:0,latestPingedTime:0,didError:!1,pendingCommitExpirationTime:0,finishedWork:null,timeoutHandle:-1,context:null,pendingContext:null,hydrate:c,nextExpirationTimeToWorkOn:0,expirationTime:0,firstBatch:null,nextScheduledRoot:null},this._internalRoot=b.stateNode=a}function Qi(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||" react-mount-point-unstable "!==a.nodeValue))}function Ri(a,b){if(b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute("data-reactroot"))),!b)for(var c;c=a.lastChild;)a.removeChild(c);return new Pi(a,!1,b)}function Si(a,b,c,d,e){var f=c._reactRootContainer;if(f){if("function"==typeof e){var g=e;e=function(){var a=Li(f._internalRoot);g.call(a)}}null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)}else{if(f=c._reactRootContainer=Ri(c,d),"function"==typeof e){var h=e;e=function(){var a=Li(f._internalRoot);h.call(a)}}Hi(function(){null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)})}return Li(f._internalRoot)}function Ti(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;return Qi(b)||x("200"),Mi(a,b,null,c)}function Ui(a,b){return Qi(a)||x("299","unstable_createRoot"),new Pi(a,!0,null!=b&&!0===b.hydrate)}/** @license React v16.8.5
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var aa=__webpack_require__(0),n=__webpack_require__(62),r=__webpack_require__(94);aa||x("227");var da=!1,ea=null,fa=!1,ha=null,ia={onError:function(a){da=!0,ea=a}},la=null,ma={},oa=[],pa={},ra={},sa={},ta=null,ua=null,va=null,za=null,Ba={injectEventPluginOrder:function(a){la&&x("101"),la=Array.prototype.slice.call(a),na()},injectEventPluginsByName:function(a){var c,b=!1;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];ma.hasOwnProperty(c)&&ma[c]===d||(ma[c]&&x("102",c),ma[c]=d,b=!0)}b&&na()}},Ea=Math.random().toString(36).slice(2),Fa="__reactInternalInstance$"+Ea,Ga="__reactEventHandlers$"+Ea,Ra=!("undefined"==typeof window||!window.document||!window.document.createElement),Ta={animationend:Sa("Animation","AnimationEnd"),animationiteration:Sa("Animation","AnimationIteration"),animationstart:Sa("Animation","AnimationStart"),transitionend:Sa("Transition","TransitionEnd")},Ua={},Va={};Ra&&(Va=document.createElement("div").style,"AnimationEvent"in window||(delete Ta.animationend.animation,delete Ta.animationiteration.animation,delete Ta.animationstart.animation),"TransitionEvent"in window||delete Ta.transitionend.transition);var Xa=Wa("animationend"),Ya=Wa("animationiteration"),Za=Wa("animationstart"),$a=Wa("transitionend"),ab="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),bb=null,cb=null,db=null;n(y.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():"unknown"!=typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=fb)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():"unknown"!=typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=fb)},persist:function(){this.isPersistent=fb},isPersistent:gb,destructor:function(){var b,a=this.constructor.Interface;for(b in a)this[b]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=gb,this._dispatchInstances=this._dispatchListeners=null}}),y.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},y.extend=function(a){function b(){}function c(){return d.apply(this,arguments)}var d=this;b.prototype=d.prototype;var e=new b;return n(e,c.prototype),c.prototype=e,c.prototype.constructor=c,c.Interface=n({},d.Interface,a),c.extend=d.extend,hb(c),c},hb(y);var kb=y.extend({data:null}),lb=y.extend({data:null}),mb=[9,13,27,32],nb=Ra&&"CompositionEvent"in window,ob=null;Ra&&"documentMode"in document&&(ob=document.documentMode);var pb=Ra&&"TextEvent"in window&&!ob,qb=Ra&&(!nb||ob&&8<ob&&11>=ob),rb=String.fromCharCode(32),sb={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},tb=!1,wb=!1,zb={eventTypes:sb,extractEvents:function(a,b,c,d){var e=void 0,f=void 0;if(nb)b:{switch(a){case"compositionstart":e=sb.compositionStart;break b;case"compositionend":e=sb.compositionEnd;break b;case"compositionupdate":e=sb.compositionUpdate;break b}e=void 0}else wb?ub(a,c)&&(e=sb.compositionEnd):"keydown"===a&&229===c.keyCode&&(e=sb.compositionStart);return e?(qb&&"ko"!==c.locale&&(wb||e!==sb.compositionStart?e===sb.compositionEnd&&wb&&(f=eb()):(bb=d,cb="value"in bb?bb.value:bb.textContent,wb=!0)),e=kb.getPooled(e,b,c,d),f?e.data=f:null!==(f=vb(c))&&(e.data=f),Qa(e),f=e):f=null,(a=pb?xb(a,c):yb(a,c))?(b=lb.getPooled(sb.beforeInput,b,c,d),b.data=a,Qa(b)):b=null,null===f?b:null===b?f:[f,b]}},Ab=null,Bb=null,Cb=null,Jb=!1,Lb={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},Tb=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Tb.hasOwnProperty("ReactCurrentDispatcher")||(Tb.ReactCurrentDispatcher={current:null});var Ub=/^(.*)[\\\/]/,z="function"==typeof Symbol&&Symbol.for,Vb=z?Symbol.for("react.element"):60103,Wb=z?Symbol.for("react.portal"):60106,Xb=z?Symbol.for("react.fragment"):60107,Yb=z?Symbol.for("react.strict_mode"):60108,Zb=z?Symbol.for("react.profiler"):60114,$b=z?Symbol.for("react.provider"):60109,ac=z?Symbol.for("react.context"):60110,bc=z?Symbol.for("react.concurrent_mode"):60111,cc=z?Symbol.for("react.forward_ref"):60112,dc=z?Symbol.for("react.suspense"):60113,ec=z?Symbol.for("react.memo"):60115,fc=z?Symbol.for("react.lazy"):60116,gc="function"==typeof Symbol&&Symbol.iterator,kc=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,lc=Object.prototype.hasOwnProperty,mc={},nc={},D={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){D[a]=new C(a,0,!1,a,null)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];D[b]=new C(b,1,!1,a[1],null)}),["contentEditable","draggable","spellCheck","value"].forEach(function(a){D[a]=new C(a,2,!1,a.toLowerCase(),null)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){D[a]=new C(a,2,!1,a,null)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){D[a]=new C(a,3,!1,a.toLowerCase(),null)}),["checked","multiple","muted","selected"].forEach(function(a){D[a]=new C(a,3,!0,a,null)}),["capture","download"].forEach(function(a){D[a]=new C(a,4,!1,a,null)}),["cols","rows","size","span"].forEach(function(a){D[a]=new C(a,6,!1,a,null)}),["rowSpan","start"].forEach(function(a){D[a]=new C(a,5,!1,a.toLowerCase(),null)});var rc=/[\-:]([a-z])/g;"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a){var b=a.replace(rc,sc);D[b]=new C(b,1,!1,a,null)}),"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var b=a.replace(rc,sc);D[b]=new C(b,1,!1,a,"http://www.w3.org/1999/xlink")}),["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(rc,sc);D[b]=new C(b,1,!1,a,"http://www.w3.org/XML/1998/namespace")}),["tabIndex","crossOrigin"].forEach(function(a){D[a]=new C(a,1,!1,a.toLowerCase(),null)});var Bc={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}},Dc=null,Ec=null,Ic=!1;Ra&&(Ic=Ob("input")&&(!document.documentMode||9<document.documentMode));var Pc={eventTypes:Bc,_isInputEventSupported:Ic,extractEvents:function(a,b,c,d){var e=b?Ja(b):window,f=void 0,g=void 0,h=e.nodeName&&e.nodeName.toLowerCase();if("select"===h||"input"===h&&"file"===e.type?f=Hc:Mb(e)?Ic?f=Oc:(f=Mc,g=Lc):(h=e.nodeName)&&"input"===h.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)&&(f=Nc),f&&(f=f(a,b)))return Cc(f,c,d);g&&g(a,e,b),"blur"===a&&(a=e._wrapperState)&&a.controlled&&"number"===e.type&&zc(e,"number",e.value)}},Qc=y.extend({view:null,detail:null}),Rc={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"},Uc=0,Vc=0,Wc=!1,Xc=!1,Yc=Qc.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Tc,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if("movementX"in a)return a.movementX;var b=Uc;return Uc=a.screenX,Wc?"mousemove"===a.type?a.screenX-b:0:(Wc=!0,0)},movementY:function(a){if("movementY"in a)return a.movementY;var b=Vc;return Vc=a.screenY,Xc?"mousemove"===a.type?a.screenY-b:0:(Xc=!0,0)}}),Zc=Yc.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),$c={mouseEnter:{registrationName:"onMouseEnter",dependencies:["mouseout","mouseover"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["mouseout","mouseover"]},pointerEnter:{registrationName:"onPointerEnter",dependencies:["pointerout","pointerover"]},pointerLeave:{registrationName:"onPointerLeave",dependencies:["pointerout","pointerover"]}},ad={eventTypes:$c,extractEvents:function(a,b,c,d){var e="mouseover"===a||"pointerover"===a,f="mouseout"===a||"pointerout"===a;if(e&&(c.relatedTarget||c.fromElement)||!f&&!e)return null;if(e=d.window===d?d:(e=d.ownerDocument)?e.defaultView||e.parentWindow:window,f?(f=b,b=(b=c.relatedTarget||c.toElement)?Ha(b):null):f=null,f===b)return null;var g=void 0,h=void 0,l=void 0,k=void 0;"mouseout"===a||"mouseover"===a?(g=Yc,h=$c.mouseLeave,l=$c.mouseEnter,k="mouse"):"pointerout"!==a&&"pointerover"!==a||(g=Zc,h=$c.pointerLeave,l=$c.pointerEnter,k="pointer");var m=null==f?e:Ja(f);if(e=null==b?e:Ja(b),a=g.getPooled(h,f,c,d),a.type=k+"leave",a.target=m,a.relatedTarget=e,c=g.getPooled(l,b,c,d),c.type=k+"enter",c.target=e,c.relatedTarget=m,d=b,f&&d)a:{for(b=f,e=d,k=0,g=b;g;g=La(g))k++;for(g=0,l=e;l;l=La(l))g++;for(;0<k-g;)b=La(b),k--;for(;0<g-k;)e=La(e),g--;for(;k--;){if(b===e||b===e.alternate)break a;b=La(b),e=La(e)}b=null}else b=null;for(e=b,b=[];f&&f!==e&&(null===(k=f.alternate)||k!==e);)b.push(f),f=La(f);for(f=[];d&&d!==e&&(null===(k=d.alternate)||k!==e);)f.push(d),d=La(d);for(d=0;d<b.length;d++)Oa(b[d],"bubbled",a);for(d=f.length;0<d--;)Oa(f[d],"captured",c);return[a,c]}},cd=Object.prototype.hasOwnProperty,id=y.extend({animationName:null,elapsedTime:null,pseudoElement:null}),jd=y.extend({clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}}),kd=Qc.extend({relatedTarget:null}),md={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},nd={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},od=Qc.extend({key:function(a){if(a.key){var b=md[a.key]||a.key;if("Unidentified"!==b)return b}return"keypress"===a.type?(a=ld(a),13===a?"Enter":String.fromCharCode(a)):"keydown"===a.type||"keyup"===a.type?nd[a.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Tc,charCode:function(a){return"keypress"===a.type?ld(a):0},keyCode:function(a){return"keydown"===a.type||"keyup"===a.type?a.keyCode:0},which:function(a){return"keypress"===a.type?ld(a):"keydown"===a.type||"keyup"===a.type?a.keyCode:0}}),pd=Yc.extend({dataTransfer:null}),qd=Qc.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Tc}),rd=y.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),sd=Yc.extend({deltaX:function(a){return"deltaX"in a?a.deltaX:"wheelDeltaX"in a?-a.wheelDeltaX:0},deltaY:function(a){return"deltaY"in a?a.deltaY:"wheelDeltaY"in a?-a.wheelDeltaY:"wheelDelta"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),td=[["abort","abort"],[Xa,"animationEnd"],[Ya,"animationIteration"],[Za,"animationStart"],["canplay","canPlay"],["canplaythrough","canPlayThrough"],["drag","drag"],["dragenter","dragEnter"],["dragexit","dragExit"],["dragleave","dragLeave"],["dragover","dragOver"],["durationchange","durationChange"],["emptied","emptied"],["encrypted","encrypted"],["ended","ended"],["error","error"],["gotpointercapture","gotPointerCapture"],["load","load"],["loadeddata","loadedData"],["loadedmetadata","loadedMetadata"],["loadstart","loadStart"],["lostpointercapture","lostPointerCapture"],["mousemove","mouseMove"],["mouseout","mouseOut"],["mouseover","mouseOver"],["playing","playing"],["pointermove","pointerMove"],["pointerout","pointerOut"],["pointerover","pointerOver"],["progress","progress"],["scroll","scroll"],["seeking","seeking"],["stalled","stalled"],["suspend","suspend"],["timeupdate","timeUpdate"],["toggle","toggle"],["touchmove","touchMove"],[$a,"transitionEnd"],["waiting","waiting"],["wheel","wheel"]],ud={},vd={};[["blur","blur"],["cancel","cancel"],["click","click"],["close","close"],["contextmenu","contextMenu"],["copy","copy"],["cut","cut"],["auxclick","auxClick"],["dblclick","doubleClick"],["dragend","dragEnd"],["dragstart","dragStart"],["drop","drop"],["focus","focus"],["input","input"],["invalid","invalid"],["keydown","keyDown"],["keypress","keyPress"],["keyup","keyUp"],["mousedown","mouseDown"],["mouseup","mouseUp"],["paste","paste"],["pause","pause"],["play","play"],["pointercancel","pointerCancel"],["pointerdown","pointerDown"],["pointerup","pointerUp"],["ratechange","rateChange"],["reset","reset"],["seeked","seeked"],["submit","submit"],["touchcancel","touchCancel"],["touchend","touchEnd"],["touchstart","touchStart"],["volumechange","volumeChange"]].forEach(function(a){wd(a,!0)}),td.forEach(function(a){wd(a,!1)});var xd={eventTypes:ud,isInteractiveTopLevelEventType:function(a){return void 0!==(a=vd[a])&&!0===a.isInteractive},extractEvents:function(a,b,c,d){var e=vd[a];if(!e)return null;switch(a){case"keypress":if(0===ld(c))return null;case"keydown":case"keyup":a=od;break;case"blur":case"focus":a=kd;break;case"click":if(2===c.button)return null;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":a=Yc;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":a=pd;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":a=qd;break;case Xa:case Ya:case Za:a=id;break;case $a:a=rd;break;case"scroll":a=Qc;break;case"wheel":a=sd;break;case"copy":case"cut":case"paste":a=jd;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":a=Zc;break;default:a=y}return b=a.getPooled(e,b,c,d),Qa(b),b}},yd=xd.isInteractiveTopLevelEventType,zd=[],Bd=!0,Fd={},Gd=0,Hd="_reactListenersID"+(""+Math.random()).slice(2),Rd=Ra&&"documentMode"in document&&11>=document.documentMode,Sd={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Td=null,Ud=null,Vd=null,Wd=!1,Yd={eventTypes:Sd,extractEvents:function(a,b,c,d){var f,e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument;if(!(f=!e)){a:{e=Id(e),f=sa.onSelect;for(var g=0;g<f.length;g++){var h=f[g];if(!e.hasOwnProperty(h)||!e[h]){e=!1;break a}}e=!0}f=!e}if(f)return null;switch(e=b?Ja(b):window,a){case"focus":(Mb(e)||"true"===e.contentEditable)&&(Td=e,Ud=b,Vd=null);break;case"blur":Vd=Ud=Td=null;break;case"mousedown":Wd=!0;break;case"contextmenu":case"mouseup":case"dragend":return Wd=!1,Xd(c,d);case"selectionchange":if(Rd)break;case"keydown":case"keyup":return Xd(c,d)}return null}};Ba.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),ta=Ka,ua=Ia,va=Ja,Ba.injectEventPluginsByName({SimpleEventPlugin:xd,EnterLeaveEventPlugin:ad,ChangeEventPlugin:Pc,SelectEventPlugin:Yd,BeforeInputEventPlugin:zb});var fe={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"},ie=void 0,je=function(a){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c)})}:a}(function(a,b){if(a.namespaceURI!==fe.svg||"innerHTML"in a)a.innerHTML=b;else{for(ie=ie||document.createElement("div"),ie.innerHTML="<svg>"+b+"</svg>",b=ie.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}}),le={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];Object.keys(le).forEach(function(a){me.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1),le[b]=le[a]})});var pe=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),ue=null,ve=null,ye="function"==typeof setTimeout?setTimeout:void 0,ze="function"==typeof clearTimeout?clearTimeout:void 0,Ae=r.unstable_scheduleCallback,Be=r.unstable_cancelCallback;new Set;var Fe=[],Ge=-1,He={},H={current:He},I={current:!1},Ie=He,Qe=null,Re=null,jf=(new aa.Component).refs,tf={isMounted:function(a){return!!(a=a._reactInternalFiber)&&2===ed(a)},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=lf();d=mf(d,a);var e=nf(d);e.payload=b,void 0!==c&&null!==c&&(e.callback=c),of(),pf(a,e),qf(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=lf();d=mf(d,a);var e=nf(d);e.tag=rf,e.payload=b,void 0!==c&&null!==c&&(e.callback=c),of(),pf(a,e),qf(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=lf();c=mf(c,a);var d=nf(c);d.tag=sf,void 0!==b&&null!==b&&(d.callback=b),of(),pf(a,d),qf(a,c)}},zf=Array.isArray,Df=Cf(!0),Ef=Cf(!1),Ff={},N={current:Ff},Gf={current:Ff},Hf={current:Ff},Nf=0,Of=2,Pf=4,Qf=8,Rf=16,Sf=32,Tf=64,Uf=128,Vf=Tb.ReactCurrentDispatcher,Wf=0,Xf=null,O=null,P=null,Yf=null,Q=null,Zf=null,$f=0,ag=null,bg=0,cg=!1,dg=null,eg=0,kg={readContext:M,useCallback:fg,useContext:fg,useEffect:fg,useImperativeHandle:fg,useLayoutEffect:fg,useMemo:fg,useReducer:fg,useRef:fg,useState:fg,useDebugValue:fg},ig={readContext:M,useCallback:function(a,b){return mg().memoizedState=[a,void 0===b?null:b],a},useContext:M,useEffect:function(a,b){return sg(516,Uf|Tf,a,b)},useImperativeHandle:function(a,b,c){return c=null!==c&&void 0!==c?c.concat([a]):null,sg(4,Pf|Sf,ug.bind(null,b,a),c)},useLayoutEffect:function(a,b){return sg(4,Pf|Sf,a,b)},useMemo:function(a,b){var c=mg();return b=void 0===b?null:b,a=a(),c.memoizedState=[a,b],a},useReducer:function(a,b,c){var d=mg();return b=void 0!==c?c(b):b,d.memoizedState=d.baseState=b,a=d.queue={last:null,dispatch:null,eagerReducer:a,eagerState:b},a=a.dispatch=wg.bind(null,Xf,a),[d.memoizedState,a]},useRef:function(a){var b=mg();return a={current:a},b.memoizedState=a},useState:function(a){var b=mg();return"function"==typeof a&&(a=a()),b.memoizedState=b.baseState=a,a=b.queue={last:null,dispatch:null,eagerReducer:og,eagerState:a},a=a.dispatch=wg.bind(null,Xf,a),[b.memoizedState,a]},useDebugValue:vg},jg={readContext:M,useCallback:function(a,b){var c=ng();b=void 0===b?null:b;var d=c.memoizedState;return null!==d&&null!==b&&gg(b,d[1])?d[0]:(c.memoizedState=[a,b],a)},useContext:M,useEffect:function(a,b){return tg(516,Uf|Tf,a,b)},useImperativeHandle:function(a,b,c){return c=null!==c&&void 0!==c?c.concat([a]):null,tg(4,Pf|Sf,ug.bind(null,b,a),c)},useLayoutEffect:function(a,b){return tg(4,Pf|Sf,a,b)},useMemo:function(a,b){var c=ng();b=void 0===b?null:b;var d=c.memoizedState;return null!==d&&null!==b&&gg(b,d[1])?d[0]:(a=a(),c.memoizedState=[a,b],a)},useReducer:pg,useRef:function(){return ng().memoizedState},useState:function(a){return pg(og)},useDebugValue:vg},xg=null,yg=null,zg=!1,Gg=Tb.ReactCurrentOwner,qg=!1,Vg={current:null},Wg=null,Xg=null,Yg=null,$g=0,rf=1,sf=2,ah=3,Pg=!1,lh=void 0,mh=void 0,nh=void 0,oh=void 0;lh=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c,c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return,c=c.sibling}},mh=function(){},nh=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){var g=b.stateNode;switch(If(N.current),a=null,c){case"input":f=vc(g,f),d=vc(g,d),a=[];break;case"option":f=$d(g,f),d=$d(g,d),a=[];break;case"select":f=n({},f,{value:void 0}),d=n({},d,{value:void 0}),a=[];break;case"textarea":f=be(g,f),d=be(g,d),a=[];break;default:"function"!=typeof f.onClick&&"function"==typeof d.onClick&&(g.onclick=te)}qe(c,d),g=c=void 0;var h=null;for(c in f)if(!d.hasOwnProperty(c)&&f.hasOwnProperty(c)&&null!=f[c])if("style"===c){var l=f[c];for(g in l)l.hasOwnProperty(g)&&(h||(h={}),h[g]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(ra.hasOwnProperty(c)?a||(a=[]):(a=a||[]).push(c,null));for(c in d){var k=d[c];if(l=null!=f?f[c]:void 0,d.hasOwnProperty(c)&&k!==l&&(null!=k||null!=l))if("style"===c)if(l){for(g in l)!l.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(h||(h={}),h[g]="");for(g in k)k.hasOwnProperty(g)&&l[g]!==k[g]&&(h||(h={}),h[g]=k[g])}else h||(a||(a=[]),a.push(c,h)),h=k;else"dangerouslySetInnerHTML"===c?(k=k?k.__html:void 0,l=l?l.__html:void 0,null!=k&&l!==k&&(a=a||[]).push(c,""+k)):"children"===c?l===k||"string"!=typeof k&&"number"!=typeof k||(a=a||[]).push(c,""+k):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(ra.hasOwnProperty(c)?(null!=k&&se(e,c),a||l===k||(a=[])):(a=a||[]).push(c,k))}h&&(a=a||[]).push("style",h),e=a,(b.updateQueue=e)&&kh(b)}},oh=function(a,b,c,d){c!==d&&kh(b)};var ph="function"==typeof WeakSet?WeakSet:Set,Bh="function"==typeof WeakMap?WeakMap:Map,Hh=Tb.ReactCurrentDispatcher,Ih=Tb.ReactCurrentOwner,Jh=1073741822,Kh=!1,T=null,Lh=null,U=0,Mh=-1,Nh=!1,V=null,Oh=!1,Ph=null,Qh=null,Rh=null,Fh=null,li=null,Y=null,mi=0,ni=void 0,W=!1,oi=null,Z=0,gi=0,pi=!1,qi=null,X=!1,ri=!1,si=null,ti=r.unstable_now(),ui=1073741822-(ti/10|0),vi=ui,ji=50,ii=0,wi=null,Ei=!1;Ab=function(a,b,c){switch(b){case"input":if(yc(a,c),b=c.name,"radio"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;for(c=c.querySelectorAll("input[name="+JSON.stringify(""+b)+'][type="radio"]'),b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Ka(d);e||x("90"),Sb(d),yc(d,e)}}}break;case"textarea":de(a,c);break;case"select":null!=(b=c.value)&&ae(a,!!c.multiple,b,!1)}},Ni.prototype.render=function(a){this._defer||x("250"),this._hasChildren=!0,this._children=a;var b=this._root._internalRoot,c=this._expirationTime,d=new Oi;return Ji(a,b,null,c,d._onCommit),d},Ni.prototype.then=function(a){if(this._didComplete)a();else{var b=this._callbacks;null===b&&(b=this._callbacks=[]),b.push(a)}},Ni.prototype.commit=function(){var a=this._root._internalRoot,b=a.firstBatch;if(this._defer&&null!==b||x("251"),this._hasChildren){var c=this._expirationTime;if(b!==this){this._hasChildren&&(c=this._expirationTime=b._expirationTime,this.render(this._children));for(var d=null,e=b;e!==this;)d=e,e=e._next;null===d&&x("251"),d._next=e._next,this._next=b,a.firstBatch=this}this._defer=!1,Bi(a,c),b=this._next,this._next=null,b=a.firstBatch=b,null!==b&&b._hasChildren&&b.render(b._children)}else this._next=null,this._defer=!1},Ni.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var a=this._callbacks;if(null!==a)for(var b=0;b<a.length;b++)(0,a[b])()}},Oi.prototype.then=function(a){if(this._didCommit)a();else{var b=this._callbacks;null===b&&(b=this._callbacks=[]),b.push(a)}},Oi.prototype._onCommit=function(){if(!this._didCommit){this._didCommit=!0;var a=this._callbacks;if(null!==a)for(var b=0;b<a.length;b++){var c=a[b];"function"!=typeof c&&x("191",c),c()}}},Pi.prototype.render=function(a,b){var c=this._internalRoot,d=new Oi;return b=void 0===b?null:b,null!==b&&d.then(b),Ki(a,c,null,d._onCommit),d},Pi.prototype.unmount=function(a){var b=this._internalRoot,c=new Oi;return a=void 0===a?null:a,null!==a&&c.then(a),Ki(null,b,null,c._onCommit),c},Pi.prototype.legacy_renderSubtreeIntoContainer=function(a,b,c){var d=this._internalRoot,e=new Oi;return c=void 0===c?null:c,null!==c&&e.then(c),Ki(b,d,a,e._onCommit),e},Pi.prototype.createBatch=function(){var a=new Ni(this),b=a._expirationTime,c=this._internalRoot,d=c.firstBatch;if(null===d)c.firstBatch=a,a._next=null;else{for(c=null;null!==d&&d._expirationTime>=b;)c=d,d=d._next;a._next=d,null!==c&&(c._next=a)}return a},Gb=Gi,Hb=Ii,Ib=function(){W||0===gi||(Yh(gi,!1),gi=0)};var Vi={createPortal:Ti,findDOMNode:function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;return void 0===b&&("function"==typeof a.render?x("188"):x("268",Object.keys(a))),a=hd(b),a=null===a?null:a.stateNode},hydrate:function(a,b,c){return Qi(b)||x("200"),Si(null,a,b,!0,c)},render:function(a,b,c){return Qi(b)||x("200"),Si(null,a,b,!1,c)},unstable_renderSubtreeIntoContainer:function(a,b,c,d){return Qi(c)||x("200"),(null==a||void 0===a._reactInternalFiber)&&x("38"),Si(a,b,c,!1,d)},unmountComponentAtNode:function(a){return Qi(a)||x("40"),!!a._reactRootContainer&&(Hi(function(){Si(null,null,a,!1,function(){a._reactRootContainer=null})}),!0)},unstable_createPortal:function(){return Ti.apply(void 0,arguments)},unstable_batchedUpdates:Gi,unstable_interactiveUpdates:Ii,flushSync:function(a,b){W&&x("187");var c=X;X=!0;try{return ki(a,b)}finally{X=c,Yh(1073741823,!1)}},unstable_createRoot:Ui,unstable_flushControlled:function(a){var b=X;X=!0;try{ki(a)}finally{(X=b)||W||Yh(1073741823,!1)}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[Ia,Ja,Ka,Ba.injectEventPluginsByName,pa,Qa,function(a){ya(a,Pa)},Eb,Fb,Dd,Da]}};!function(a){var b=a.findFiberByHostInstance;Te(n({},a,{overrideProps:null,currentDispatcherRef:Tb.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){return a=hd(a),null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null}}))}({findFiberByHostInstance:Ha,bundleType:0,version:"16.8.5",rendererPackageName:"react-dom"});var Wi={default:Vi},Xi=Wi&&Vi||Wi;module.exports=Xi.default||Xi},function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(95)},function(module,exports,__webpack_require__){"use strict";(function(global){function p(){if(!m){var a=d.expirationTime;n?q():n=!0,r(t,a)}}function u(){var a=d,b=d.next;if(d===b)d=null;else{var c=d.previous;d=c.next=b,b.previous=c}a.next=a.previous=null,c=a.callback,b=a.expirationTime,a=a.priorityLevel;var f=g,Q=l;g=a,l=b;try{var h=c()}finally{g=f,l=Q}if("function"==typeof h)if(h={callback:h,priorityLevel:a,expirationTime:b,next:null,previous:null},null===d)d=h.next=h.previous=h;else{c=null,a=d;do{if(a.expirationTime>=b){c=a;break}a=a.next}while(a!==d);null===c?c=d:c===d&&(d=h,p()),b=c.previous,b.next=c.previous=h,h.next=c,h.previous=b}}function v(){if(-1===k&&null!==d&&1===d.priorityLevel){m=!0;try{do{u()}while(null!==d&&1===d.priorityLevel)}finally{m=!1,null!==d?p():n=!1}}}function t(a){m=!0;var b=e;e=a;try{if(a)for(;null!==d;){var c=exports.unstable_now();if(!(d.expirationTime<=c))break;do{u()}while(null!==d&&d.expirationTime<=c)}else if(null!==d)do{u()}while(null!==d&&!w())}finally{m=!1,e=b,null!==d?p():n=!1,v()}}function E(a){C=A(function(b){z(D),a(b)}),D=y(function(){B(C),a(exports.unstable_now())},100)}/** @license React v0.13.5
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
Object.defineProperty(exports,"__esModule",{value:!0});var C,D,d=null,e=!1,g=3,k=-1,l=-1,m=!1,n=!1,x=Date,y="function"==typeof setTimeout?setTimeout:void 0,z="function"==typeof clearTimeout?clearTimeout:void 0,A="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,B="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;if("object"==typeof performance&&"function"==typeof performance.now){var F=performance;exports.unstable_now=function(){return F.now()}}else exports.unstable_now=function(){return x.now()};var r,q,w,G=null;if("undefined"!=typeof window?G=window:void 0!==global&&(G=global),G&&G._schedMock){var H=G._schedMock;r=H[0],q=H[1],w=H[2],exports.unstable_now=H[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var I=null,J=function(a){if(null!==I)try{I(a)}finally{I=null}};r=function(a){null!==I?setTimeout(r,0,a):(I=a,setTimeout(J,0,!1))},q=function(){I=null},w=function(){return!1}}else{"undefined"!=typeof console&&("function"!=typeof A&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof B&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));var K=null,L=!1,M=-1,N=!1,O=!1,P=0,R=33,S=33;w=function(){return P<=exports.unstable_now()};var T=new MessageChannel,U=T.port2;T.port1.onmessage=function(){L=!1;var a=K,b=M;K=null,M=-1;var c=exports.unstable_now(),f=!1;if(0>=P-c){if(!(-1!==b&&b<=c))return N||(N=!0,E(V)),K=a,void(M=b);f=!0}if(null!==a){O=!0;try{a(f)}finally{O=!1}}};var V=function(a){if(null!==K){E(V);var b=a-P+S;b<S&&R<S?(8>b&&(b=8),S=b<R?R:b):R=b,P=a+S,L||(L=!0,U.postMessage(void 0))}else N=!1};r=function(a,b){K=a,M=b,O||0>b?U.postMessage(void 0):N||(N=!0,E(V))},q=function(){K=null,L=!1,M=-1}}exports.unstable_ImmediatePriority=1,exports.unstable_UserBlockingPriority=2,exports.unstable_NormalPriority=3,exports.unstable_IdlePriority=5,exports.unstable_LowPriority=4,exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=g,f=k;g=a,k=exports.unstable_now();try{return b()}finally{g=c,k=f,v()}},exports.unstable_next=function(a){switch(g){case 1:case 2:case 3:var b=3;break;default:b=g}var c=g,f=k;g=b,k=exports.unstable_now();try{return a()}finally{g=c,k=f,v()}},exports.unstable_scheduleCallback=function(a,b){var c=-1!==k?k:exports.unstable_now();if("object"==typeof b&&null!==b&&"number"==typeof b.timeout)b=c+b.timeout;else switch(g){case 1:b=c+-1;break;case 2:b=c+250;break;case 5:b=c+1073741823;break;case 4:b=c+1e4;break;default:b=c+5e3}if(a={callback:a,priorityLevel:g,expirationTime:b,next:null,previous:null},null===d)d=a.next=a.previous=a,p();else{c=null;var f=d;do{if(f.expirationTime>b){c=f;break}f=f.next}while(f!==d);null===c?c=d:c===d&&(d=a,p()),b=c.previous,b.next=c.previous=a,a.next=c,a.previous=b}return a},exports.unstable_cancelCallback=function(a){var b=a.next;if(null!==b){if(b===a)d=null;else{a===d&&(d=b);var c=a.previous;c.next=b,b.previous=c}a.next=a.previous=null}},exports.unstable_wrapCallback=function(a){var b=g;return function(){var c=g,f=k;g=b,k=exports.unstable_now();try{return a.apply(this,arguments)}finally{g=c,k=f,v()}}},exports.unstable_getCurrentPriorityLevel=function(){return g},exports.unstable_shouldYield=function(){return!e&&(null!==d&&d.expirationTime<l||w())},exports.unstable_continueExecution=function(){null!==d&&p()},exports.unstable_pauseExecution=function(){},exports.unstable_getFirstCallbackNode=function(){return d}}).call(exports,__webpack_require__(46))},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_inheritsLoose__=__webpack_require__(64),__WEBPACK_IMPORTED_MODULE_1_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_1_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__),__WEBPACK_IMPORTED_MODULE_2_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_2_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__),__WEBPACK_IMPORTED_MODULE_3__Context__=__webpack_require__(47),Provider=function(_Component){function Provider(props){var _this;_this=_Component.call(this,props)||this;var store=props.store;return _this.state={storeState:store.getState(),store:store},_this}Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_inheritsLoose__.a)(Provider,_Component);var _proto=Provider.prototype;return _proto.componentDidMount=function(){this._isMounted=!0,this.subscribe()},_proto.componentWillUnmount=function(){this.unsubscribe&&this.unsubscribe(),this._isMounted=!1},_proto.componentDidUpdate=function(prevProps){this.props.store!==prevProps.store&&(this.unsubscribe&&this.unsubscribe(),this.subscribe())},_proto.subscribe=function(){var _this2=this,store=this.props.store;this.unsubscribe=store.subscribe(function(){var newStoreState=store.getState();_this2._isMounted&&_this2.setState(function(providerState){return providerState.storeState===newStoreState?null:{storeState:newStoreState}})});var postMountStoreState=store.getState();postMountStoreState!==this.state.storeState&&this.setState({storeState:postMountStoreState})},_proto.render=function(){var Context=this.props.context||__WEBPACK_IMPORTED_MODULE_3__Context__.a;return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(Context.Provider,{value:this.state},this.props.children)},Provider}(__WEBPACK_IMPORTED_MODULE_1_react__.Component);Provider.propTypes={store:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.shape({subscribe:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func.isRequired,dispatch:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func.isRequired,getState:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func.isRequired}),context:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.object,children:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.any},__webpack_exports__.a=Provider},function(module,exports,__webpack_require__){"use strict";function emptyFunction(){}function emptyFunctionWithReset(){}var ReactPropTypesSecret=__webpack_require__(98);emptyFunctionWithReset.resetWarningCache=emptyFunction,module.exports=function(){function shim(props,propName,componentName,location,propFullName,secret){if(secret!==ReactPropTypesSecret){var err=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw err.name="Invariant Violation",err}}function getShim(){return shim}shim.isRequired=shim;var ReactPropTypes={array:shim,bool:shim,func:shim,number:shim,object:shim,string:shim,symbol:shim,any:shim,arrayOf:getShim,element:shim,elementType:shim,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim,exact:getShim,checkPropTypes:emptyFunctionWithReset,resetWarningCache:emptyFunction};return ReactPropTypes.PropTypes=ReactPropTypes,ReactPropTypes}},function(module,exports,__webpack_require__){"use strict";module.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(module,__webpack_exports__,__webpack_require__){"use strict";function _assertThisInitialized(self){if(void 0===self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return self}__webpack_exports__.a=_assertThisInitialized},function(module,exports,__webpack_require__){"use strict";function getStatics(component){return ReactIs.isMemo(component)?MEMO_STATICS:TYPE_STATICS[component.$$typeof]||REACT_STATICS}function hoistNonReactStatics(targetComponent,sourceComponent,blacklist){if("string"!=typeof sourceComponent){if(objectPrototype){var inheritedComponent=getPrototypeOf(sourceComponent);inheritedComponent&&inheritedComponent!==objectPrototype&&hoistNonReactStatics(targetComponent,inheritedComponent,blacklist)}var keys=getOwnPropertyNames(sourceComponent);getOwnPropertySymbols&&(keys=keys.concat(getOwnPropertySymbols(sourceComponent)));for(var targetStatics=getStatics(targetComponent),sourceStatics=getStatics(sourceComponent),i=0;i<keys.length;++i){var key=keys[i];if(!(KNOWN_STATICS[key]||blacklist&&blacklist[key]||sourceStatics&&sourceStatics[key]||targetStatics&&targetStatics[key])){var descriptor=getOwnPropertyDescriptor(sourceComponent,key);try{defineProperty(targetComponent,key,descriptor)}catch(e){}}}return targetComponent}return targetComponent}var ReactIs=__webpack_require__(66),REACT_STATICS={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},KNOWN_STATICS={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},FORWARD_REF_STATICS={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},MEMO_STATICS={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},TYPE_STATICS={};TYPE_STATICS[ReactIs.ForwardRef]=FORWARD_REF_STATICS;var defineProperty=Object.defineProperty,getOwnPropertyNames=Object.getOwnPropertyNames,getOwnPropertySymbols=Object.getOwnPropertySymbols,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,getPrototypeOf=Object.getPrototypeOf,objectPrototype=Object.prototype;module.exports=hoistNonReactStatics},function(module,exports,__webpack_require__){"use strict";function t(a){if("object"==typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}/** @license React v16.8.5
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
Object.defineProperty(exports,"__esModule",{value:!0});var b="function"==typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.memo"):60115,r=b?Symbol.for("react.lazy"):60116;exports.typeOf=t,exports.AsyncMode=l,exports.ConcurrentMode=m,exports.ContextConsumer=k,exports.ContextProvider=h,exports.Element=c,exports.ForwardRef=n,exports.Fragment=e,exports.Lazy=r,exports.Memo=q,exports.Portal=d,exports.Profiler=g,exports.StrictMode=f,exports.Suspense=p,exports.isValidElementType=function(a){return"string"==typeof a||"function"==typeof a||a===e||a===m||a===g||a===f||a===p||"object"==typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)},exports.isAsyncMode=function(a){return v(a)||t(a)===l},exports.isConcurrentMode=v,exports.isContextConsumer=function(a){return t(a)===k},exports.isContextProvider=function(a){return t(a)===h},exports.isElement=function(a){return"object"==typeof a&&null!==a&&a.$$typeof===c},exports.isForwardRef=function(a){return t(a)===n},exports.isFragment=function(a){return t(a)===e},exports.isLazy=function(a){return t(a)===r},exports.isMemo=function(a){return t(a)===q},exports.isPortal=function(a){return t(a)===d},exports.isProfiler=function(a){return t(a)===g},exports.isStrictMode=function(a){return t(a)===f},exports.isSuspense=function(a){return t(a)===p}},function(module,__webpack_exports__,__webpack_require__){"use strict";function match(arg,factories,name){for(var i=factories.length-1;i>=0;i--){var result=factories[i](arg);if(result)return result}return function(dispatch,options){throw new Error("Invalid value of type "+typeof arg+" for "+name+" argument when connecting component "+options.wrappedComponentName+".")}}function strictEqual(a,b){return a===b}var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__=__webpack_require__(41),__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__=__webpack_require__(48),__WEBPACK_IMPORTED_MODULE_2__components_connectAdvanced__=__webpack_require__(65),__WEBPACK_IMPORTED_MODULE_3__utils_shallowEqual__=__webpack_require__(103),__WEBPACK_IMPORTED_MODULE_4__mapDispatchToProps__=__webpack_require__(104),__WEBPACK_IMPORTED_MODULE_5__mapStateToProps__=__webpack_require__(109),__WEBPACK_IMPORTED_MODULE_6__mergeProps__=__webpack_require__(110),__WEBPACK_IMPORTED_MODULE_7__selectorFactory__=__webpack_require__(111);__webpack_exports__.a=function(_temp){var _ref=void 0===_temp?{}:_temp,_ref$connectHOC=_ref.connectHOC,connectHOC=void 0===_ref$connectHOC?__WEBPACK_IMPORTED_MODULE_2__components_connectAdvanced__.a:_ref$connectHOC,_ref$mapStateToPropsF=_ref.mapStateToPropsFactories,mapStateToPropsFactories=void 0===_ref$mapStateToPropsF?__WEBPACK_IMPORTED_MODULE_5__mapStateToProps__.a:_ref$mapStateToPropsF,_ref$mapDispatchToPro=_ref.mapDispatchToPropsFactories,mapDispatchToPropsFactories=void 0===_ref$mapDispatchToPro?__WEBPACK_IMPORTED_MODULE_4__mapDispatchToProps__.a:_ref$mapDispatchToPro,_ref$mergePropsFactor=_ref.mergePropsFactories,mergePropsFactories=void 0===_ref$mergePropsFactor?__WEBPACK_IMPORTED_MODULE_6__mergeProps__.a:_ref$mergePropsFactor,_ref$selectorFactory=_ref.selectorFactory,selectorFactory=void 0===_ref$selectorFactory?__WEBPACK_IMPORTED_MODULE_7__selectorFactory__.a:_ref$selectorFactory;return function(mapStateToProps,mapDispatchToProps,mergeProps,_ref2){void 0===_ref2&&(_ref2={});var _ref3=_ref2,_ref3$pure=_ref3.pure,pure=void 0===_ref3$pure||_ref3$pure,_ref3$areStatesEqual=_ref3.areStatesEqual,areStatesEqual=void 0===_ref3$areStatesEqual?strictEqual:_ref3$areStatesEqual,_ref3$areOwnPropsEqua=_ref3.areOwnPropsEqual,areOwnPropsEqual=void 0===_ref3$areOwnPropsEqua?__WEBPACK_IMPORTED_MODULE_3__utils_shallowEqual__.a:_ref3$areOwnPropsEqua,_ref3$areStatePropsEq=_ref3.areStatePropsEqual,areStatePropsEqual=void 0===_ref3$areStatePropsEq?__WEBPACK_IMPORTED_MODULE_3__utils_shallowEqual__.a:_ref3$areStatePropsEq,_ref3$areMergedPropsE=_ref3.areMergedPropsEqual,areMergedPropsEqual=void 0===_ref3$areMergedPropsE?__WEBPACK_IMPORTED_MODULE_3__utils_shallowEqual__.a:_ref3$areMergedPropsE,extraOptions=Object(__WEBPACK_IMPORTED_MODULE_1__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__.a)(_ref3,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),initMapStateToProps=match(mapStateToProps,mapStateToPropsFactories,"mapStateToProps"),initMapDispatchToProps=match(mapDispatchToProps,mapDispatchToPropsFactories,"mapDispatchToProps"),initMergeProps=match(mergeProps,mergePropsFactories,"mergeProps");return connectHOC(selectorFactory,Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__.a)({methodName:"connect",getDisplayName:function(name){return"Connect("+name+")"},shouldHandleStateChanges:Boolean(mapStateToProps),initMapStateToProps:initMapStateToProps,initMapDispatchToProps:initMapDispatchToProps,initMergeProps:initMergeProps,pure:pure,areStatesEqual:areStatesEqual,areOwnPropsEqual:areOwnPropsEqual,areStatePropsEqual:areStatePropsEqual,areMergedPropsEqual:areMergedPropsEqual},extraOptions))}}()},function(module,__webpack_exports__,__webpack_require__){"use strict";function is(x,y){return x===y?0!==x||0!==y||1/x==1/y:x!==x&&y!==y}function shallowEqual(objA,objB){if(is(objA,objB))return!0;if("object"!=typeof objA||null===objA||"object"!=typeof objB||null===objB)return!1;var keysA=Object.keys(objA),keysB=Object.keys(objB);if(keysA.length!==keysB.length)return!1;for(var i=0;i<keysA.length;i++)if(!hasOwn.call(objB,keysA[i])||!is(objA[keysA[i]],objB[keysA[i]]))return!1;return!0}__webpack_exports__.a=shallowEqual;var hasOwn=Object.prototype.hasOwnProperty},function(module,__webpack_exports__,__webpack_require__){"use strict";function whenMapDispatchToPropsIsFunction(mapDispatchToProps){return"function"==typeof mapDispatchToProps?Object(__WEBPACK_IMPORTED_MODULE_1__wrapMapToProps__.b)(mapDispatchToProps,"mapDispatchToProps"):void 0}function whenMapDispatchToPropsIsMissing(mapDispatchToProps){return mapDispatchToProps?void 0:Object(__WEBPACK_IMPORTED_MODULE_1__wrapMapToProps__.a)(function(dispatch){return{dispatch:dispatch}})}function whenMapDispatchToPropsIsObject(mapDispatchToProps){return mapDispatchToProps&&"object"==typeof mapDispatchToProps?Object(__WEBPACK_IMPORTED_MODULE_1__wrapMapToProps__.a)(function(dispatch){return Object(__WEBPACK_IMPORTED_MODULE_0_redux__.bindActionCreators)(mapDispatchToProps,dispatch)}):void 0}var __WEBPACK_IMPORTED_MODULE_0_redux__=__webpack_require__(3),__WEBPACK_IMPORTED_MODULE_1__wrapMapToProps__=__webpack_require__(67);__webpack_exports__.a=[whenMapDispatchToPropsIsFunction,whenMapDispatchToPropsIsMissing,whenMapDispatchToPropsIsObject]},function(module,__webpack_exports__,__webpack_require__){"use strict";(function(global,module){var root,__WEBPACK_IMPORTED_MODULE_0__ponyfill_js__=__webpack_require__(107);root="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==global?global:module;var result=Object(__WEBPACK_IMPORTED_MODULE_0__ponyfill_js__.a)(root);__webpack_exports__.a=result}).call(__webpack_exports__,__webpack_require__(46),__webpack_require__(106)(module))},function(module,exports){module.exports=function(originalModule){if(!originalModule.webpackPolyfill){var module=Object.create(originalModule);module.children||(module.children=[]),Object.defineProperty(module,"loaded",{enumerable:!0,get:function(){return module.l}}),Object.defineProperty(module,"id",{enumerable:!0,get:function(){return module.i}}),Object.defineProperty(module,"exports",{enumerable:!0}),module.webpackPolyfill=1}return module}},function(module,__webpack_exports__,__webpack_require__){"use strict";function symbolObservablePonyfill(root){var result,Symbol=root.Symbol;return"function"==typeof Symbol?Symbol.observable?result=Symbol.observable:(result=Symbol("observable"),Symbol.observable=result):result="@@observable",result}__webpack_exports__.a=symbolObservablePonyfill},function(module,__webpack_exports__,__webpack_require__){"use strict";function isPlainObject(obj){if("object"!=typeof obj||null===obj)return!1;var proto=Object.getPrototypeOf(obj);if(null===proto)return!0;for(var baseProto=proto;null!==Object.getPrototypeOf(baseProto);)baseProto=Object.getPrototypeOf(baseProto);return proto===baseProto}__webpack_exports__.a=isPlainObject},function(module,__webpack_exports__,__webpack_require__){"use strict";function whenMapStateToPropsIsFunction(mapStateToProps){return"function"==typeof mapStateToProps?Object(__WEBPACK_IMPORTED_MODULE_0__wrapMapToProps__.b)(mapStateToProps,"mapStateToProps"):void 0}function whenMapStateToPropsIsMissing(mapStateToProps){return mapStateToProps?void 0:Object(__WEBPACK_IMPORTED_MODULE_0__wrapMapToProps__.a)(function(){return{}})}var __WEBPACK_IMPORTED_MODULE_0__wrapMapToProps__=__webpack_require__(67);__webpack_exports__.a=[whenMapStateToPropsIsFunction,whenMapStateToPropsIsMissing]},function(module,__webpack_exports__,__webpack_require__){"use strict";function defaultMergeProps(stateProps,dispatchProps,ownProps){return Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__.a)({},ownProps,stateProps,dispatchProps)}function wrapMergePropsFunc(mergeProps){return function(dispatch,_ref){var mergedProps,pure=(_ref.displayName,_ref.pure),areMergedPropsEqual=_ref.areMergedPropsEqual,hasRunOnce=!1;return function(stateProps,dispatchProps,ownProps){var nextMergedProps=mergeProps(stateProps,dispatchProps,ownProps);return hasRunOnce?pure&&areMergedPropsEqual(nextMergedProps,mergedProps)||(mergedProps=nextMergedProps):(hasRunOnce=!0,mergedProps=nextMergedProps),mergedProps}}}function whenMergePropsIsFunction(mergeProps){return"function"==typeof mergeProps?wrapMergePropsFunc(mergeProps):void 0}function whenMergePropsIsOmitted(mergeProps){return mergeProps?void 0:function(){return defaultMergeProps}}var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_extends__=__webpack_require__(41);__webpack_require__(68);__webpack_exports__.a=[whenMergePropsIsFunction,whenMergePropsIsOmitted]},function(module,__webpack_exports__,__webpack_require__){"use strict";function impureFinalPropsSelectorFactory(mapStateToProps,mapDispatchToProps,mergeProps,dispatch){return function(state,ownProps){return mergeProps(mapStateToProps(state,ownProps),mapDispatchToProps(dispatch,ownProps),ownProps)}}function pureFinalPropsSelectorFactory(mapStateToProps,mapDispatchToProps,mergeProps,dispatch,_ref){function handleFirstCall(firstState,firstOwnProps){return state=firstState,ownProps=firstOwnProps,stateProps=mapStateToProps(state,ownProps),dispatchProps=mapDispatchToProps(dispatch,ownProps),mergedProps=mergeProps(stateProps,dispatchProps,ownProps),hasRunAtLeastOnce=!0,mergedProps}function handleNewPropsAndNewState(){return stateProps=mapStateToProps(state,ownProps),mapDispatchToProps.dependsOnOwnProps&&(dispatchProps=mapDispatchToProps(dispatch,ownProps)),mergedProps=mergeProps(stateProps,dispatchProps,ownProps)}function handleNewProps(){return mapStateToProps.dependsOnOwnProps&&(stateProps=mapStateToProps(state,ownProps)),mapDispatchToProps.dependsOnOwnProps&&(dispatchProps=mapDispatchToProps(dispatch,ownProps)),mergedProps=mergeProps(stateProps,dispatchProps,ownProps)}function handleNewState(){var nextStateProps=mapStateToProps(state,ownProps),statePropsChanged=!areStatePropsEqual(nextStateProps,stateProps);return stateProps=nextStateProps,statePropsChanged&&(mergedProps=mergeProps(stateProps,dispatchProps,ownProps)),mergedProps}function handleSubsequentCalls(nextState,nextOwnProps){var propsChanged=!areOwnPropsEqual(nextOwnProps,ownProps),stateChanged=!areStatesEqual(nextState,state);return state=nextState,ownProps=nextOwnProps,propsChanged&&stateChanged?handleNewPropsAndNewState():propsChanged?handleNewProps():stateChanged?handleNewState():mergedProps}var state,ownProps,stateProps,dispatchProps,mergedProps,areStatesEqual=_ref.areStatesEqual,areOwnPropsEqual=_ref.areOwnPropsEqual,areStatePropsEqual=_ref.areStatePropsEqual,hasRunAtLeastOnce=!1;return function(nextState,nextOwnProps){return hasRunAtLeastOnce?handleSubsequentCalls(nextState,nextOwnProps):handleFirstCall(nextState,nextOwnProps)}}function finalPropsSelectorFactory(dispatch,_ref2){var initMapStateToProps=_ref2.initMapStateToProps,initMapDispatchToProps=_ref2.initMapDispatchToProps,initMergeProps=_ref2.initMergeProps,options=Object(__WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__.a)(_ref2,["initMapStateToProps","initMapDispatchToProps","initMergeProps"]),mapStateToProps=initMapStateToProps(dispatch,options),mapDispatchToProps=initMapDispatchToProps(dispatch,options),mergeProps=initMergeProps(dispatch,options);return(options.pure?pureFinalPropsSelectorFactory:impureFinalPropsSelectorFactory)(mapStateToProps,mapDispatchToProps,mergeProps,dispatch,options)}__webpack_exports__.a=finalPropsSelectorFactory;var __WEBPACK_IMPORTED_MODULE_0__babel_runtime_helpers_esm_objectWithoutPropertiesLoose__=__webpack_require__(48);__webpack_require__(112)},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__(69)},function(module,__webpack_exports__,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var __WEBPACK_IMPORTED_MODULE_0_warning__=__webpack_require__(27),__WEBPACK_IMPORTED_MODULE_0_warning___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__),__WEBPACK_IMPORTED_MODULE_1_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_1_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__),__WEBPACK_IMPORTED_MODULE_2_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_2_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__),__WEBPACK_IMPORTED_MODULE_3_history__=__webpack_require__(31),__WEBPACK_IMPORTED_MODULE_4__Router__=__webpack_require__(49),BrowserRouter=function(_React$Component){function BrowserRouter(){var _temp,_this,_ret;_classCallCheck(this,BrowserRouter);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,_React$Component.call.apply(_React$Component,[this].concat(args))),_this.history=Object(__WEBPACK_IMPORTED_MODULE_3_history__.a)(_this.props),_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(BrowserRouter,_React$Component),BrowserRouter.prototype.componentWillMount=function(){__WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history,"<BrowserRouter> ignores the history prop. To use a custom history, use `import { Router }` instead of `import { BrowserRouter as Router }`.")},BrowserRouter.prototype.render=function(){return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Router__.a,{history:this.history,children:this.props.children})},BrowserRouter}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);BrowserRouter.propTypes={basename:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string,forceRefresh:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,getUserConfirmation:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,keyLength:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,children:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node},__webpack_exports__.a=BrowserRouter},function(module,__webpack_exports__,__webpack_require__){"use strict";function isAbsolute(pathname){return"/"===pathname.charAt(0)}function spliceOne(list,index){for(var i=index,k=i+1,n=list.length;k<n;i+=1,k+=1)list[i]=list[k];list.pop()}function resolvePathname(to){var from=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",toParts=to&&to.split("/")||[],fromParts=from&&from.split("/")||[],isToAbs=to&&isAbsolute(to),isFromAbs=from&&isAbsolute(from),mustEndAbs=isToAbs||isFromAbs;if(to&&isAbsolute(to)?fromParts=toParts:toParts.length&&(fromParts.pop(),fromParts=fromParts.concat(toParts)),!fromParts.length)return"/";var hasTrailingSlash=void 0;if(fromParts.length){var last=fromParts[fromParts.length-1];hasTrailingSlash="."===last||".."===last||""===last}else hasTrailingSlash=!1;for(var up=0,i=fromParts.length;i>=0;i--){var part=fromParts[i];"."===part?spliceOne(fromParts,i):".."===part?(spliceOne(fromParts,i),up++):up&&(spliceOne(fromParts,i),up--)}if(!mustEndAbs)for(;up--;up)fromParts.unshift("..");!mustEndAbs||""===fromParts[0]||fromParts[0]&&isAbsolute(fromParts[0])||fromParts.unshift("");var result=fromParts.join("/");return hasTrailingSlash&&"/"!==result.substr(-1)&&(result+="/"),result}__webpack_exports__.a=resolvePathname},function(module,__webpack_exports__,__webpack_require__){"use strict";function valueEqual(a,b){if(a===b)return!0;if(null==a||null==b)return!1;if(Array.isArray(a))return Array.isArray(b)&&a.length===b.length&&a.every(function(item,index){return valueEqual(item,b[index])});var aType=void 0===a?"undefined":_typeof(a);if(aType!==(void 0===b?"undefined":_typeof(b)))return!1;if("object"===aType){var aValue=a.valueOf(),bValue=b.valueOf();if(aValue!==a||bValue!==b)return valueEqual(aValue,bValue);var aKeys=Object.keys(a),bKeys=Object.keys(b);return aKeys.length===bKeys.length&&aKeys.every(function(key){return valueEqual(a[key],b[key])})}return!1}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};__webpack_exports__.a=valueEqual},function(module,__webpack_exports__,__webpack_require__){"use strict"},function(module,__webpack_exports__,__webpack_require__){"use strict";function invariant(condition,message){if(!condition)throw isProduction?new Error(prefix):new Error(prefix+": "+(message||""))}var isProduction=!0,prefix="Invariant failed";__webpack_exports__.a=invariant},function(module,__webpack_exports__,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var __WEBPACK_IMPORTED_MODULE_0_warning__=__webpack_require__(27),__WEBPACK_IMPORTED_MODULE_0_warning___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__),__WEBPACK_IMPORTED_MODULE_1_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_1_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__),__WEBPACK_IMPORTED_MODULE_2_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_2_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__),__WEBPACK_IMPORTED_MODULE_3_history__=__webpack_require__(31),__WEBPACK_IMPORTED_MODULE_4__Router__=__webpack_require__(49),HashRouter=function(_React$Component){function HashRouter(){var _temp,_this,_ret;_classCallCheck(this,HashRouter);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,_React$Component.call.apply(_React$Component,[this].concat(args))),_this.history=Object(__WEBPACK_IMPORTED_MODULE_3_history__.b)(_this.props),_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(HashRouter,_React$Component),HashRouter.prototype.componentWillMount=function(){__WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history,"<HashRouter> ignores the history prop. To use a custom history, use `import { Router }` instead of `import { HashRouter as Router }`.")},HashRouter.prototype.render=function(){return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Router__.a,{history:this.history,children:this.props.children})},HashRouter}(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);HashRouter.propTypes={basename:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string,getUserConfirmation:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,hashType:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(["hashbang","noslash","slash"]),children:__WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node},__webpack_exports__.a=HashRouter},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_react_router_es_MemoryRouter__=__webpack_require__(71);__webpack_exports__.a=__WEBPACK_IMPORTED_MODULE_0_react_router_es_MemoryRouter__.a},function(module,__webpack_exports__,__webpack_require__){"use strict";function _objectWithoutProperties(obj,keys){var target={};for(var i in obj)keys.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(obj,i)&&(target[i]=obj[i]);return target}var __WEBPACK_IMPORTED_MODULE_0_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_0_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__),__WEBPACK_IMPORTED_MODULE_1_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_1_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__),__WEBPACK_IMPORTED_MODULE_2__Route__=__webpack_require__(72),__WEBPACK_IMPORTED_MODULE_3__Link__=__webpack_require__(70),_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},NavLink=function(_ref){var to=_ref.to,exact=_ref.exact,strict=_ref.strict,location=_ref.location,activeClassName=_ref.activeClassName,className=_ref.className,activeStyle=_ref.activeStyle,style=_ref.style,getIsActive=_ref.isActive,ariaCurrent=_ref["aria-current"],rest=_objectWithoutProperties(_ref,["to","exact","strict","location","activeClassName","className","activeStyle","style","isActive","aria-current"]),path="object"===(void 0===to?"undefined":_typeof(to))?to.pathname:to,escapedPath=path&&path.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1");return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__Route__.a,{path:escapedPath,exact:exact,strict:strict,location:location,children:function(_ref2){var location=_ref2.location,match=_ref2.match,isActive=!!(getIsActive?getIsActive(match,location):match);return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__Link__.a,_extends({to:to,className:isActive?[className,activeClassName].filter(function(i){return i}).join(" "):className,style:isActive?_extends({},style,activeStyle):style,"aria-current":isActive&&ariaCurrent||null},rest))}})};NavLink.propTypes={to:__WEBPACK_IMPORTED_MODULE_3__Link__.a.propTypes.to,exact:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,strict:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,location:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,activeClassName:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,className:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,activeStyle:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,style:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,isActive:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,"aria-current":__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(["page","step","location","date","time","true"])},NavLink.defaultProps={activeClassName:"active","aria-current":"page"},__webpack_exports__.a=NavLink},function(module,exports){module.exports=Array.isArray||function(arr){return"[object Array]"==Object.prototype.toString.call(arr)}},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Prompt__=__webpack_require__(74);__webpack_exports__.a=__WEBPACK_IMPORTED_MODULE_0_react_router_es_Prompt__.a},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Redirect__=__webpack_require__(75);__webpack_exports__.a=__WEBPACK_IMPORTED_MODULE_0_react_router_es_Redirect__.a},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_react_router_es_StaticRouter__=__webpack_require__(76);__webpack_exports__.a=__WEBPACK_IMPORTED_MODULE_0_react_router_es_StaticRouter__.a},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Switch__=__webpack_require__(77);__webpack_exports__.a=__WEBPACK_IMPORTED_MODULE_0_react_router_es_Switch__.a},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_react_router_es_generatePath__=__webpack_require__(51);__webpack_exports__.a=__WEBPACK_IMPORTED_MODULE_0_react_router_es_generatePath__.a},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_react_router_es_matchPath__=__webpack_require__(43);__webpack_exports__.a=__WEBPACK_IMPORTED_MODULE_0_react_router_es_matchPath__.a},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_react_router_es_withRouter__=__webpack_require__(78);__webpack_exports__.a=__WEBPACK_IMPORTED_MODULE_0_react_router_es_withRouter__.a},function(module,exports,__webpack_require__){"use strict";function hoistNonReactStatics(targetComponent,sourceComponent,blacklist){if("string"!=typeof sourceComponent){if(objectPrototype){var inheritedComponent=getPrototypeOf(sourceComponent);inheritedComponent&&inheritedComponent!==objectPrototype&&hoistNonReactStatics(targetComponent,inheritedComponent,blacklist)}var keys=getOwnPropertyNames(sourceComponent);getOwnPropertySymbols&&(keys=keys.concat(getOwnPropertySymbols(sourceComponent)));for(var i=0;i<keys.length;++i){var key=keys[i];if(!(REACT_STATICS[key]||KNOWN_STATICS[key]||blacklist&&blacklist[key])){var descriptor=getOwnPropertyDescriptor(sourceComponent,key);try{defineProperty(targetComponent,key,descriptor)}catch(e){}}}return targetComponent}return targetComponent}var REACT_STATICS={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},KNOWN_STATICS={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},defineProperty=Object.defineProperty,getOwnPropertyNames=Object.getOwnPropertyNames,getOwnPropertySymbols=Object.getOwnPropertySymbols,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,getPrototypeOf=Object.getPrototypeOf,objectPrototype=getPrototypeOf&&getPrototypeOf(Object);module.exports=hoistNonReactStatics},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.state=void 0;var _redux=__webpack_require__(3),_helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers),_reducer=__webpack_require__(131),_reducer2=_interopRequireDefault(_reducer),_reducer3=__webpack_require__(132),_reducer4=_interopRequireDefault(_reducer3),_reducer5=__webpack_require__(133),_reducer6=_interopRequireDefault(_reducer5),_reducer7=__webpack_require__(134),_reducer8=_interopRequireDefault(_reducer7),_reducer9=__webpack_require__(135),_reducer10=_interopRequireDefault(_reducer9),_reducer11=__webpack_require__(136),_reducer12=_interopRequireDefault(_reducer11),_reducer13=__webpack_require__(137),_reducer14=_interopRequireDefault(_reducer13),_reducer15=__webpack_require__(138),_reducer16=_interopRequireDefault(_reducer15),_reducer17=__webpack_require__(139),_reducer18=_interopRequireDefault(_reducer17),_reduxThunk=__webpack_require__(140),_reduxThunk2=_interopRequireDefault(_reduxThunk),_middleware=__webpack_require__(141),_middleware2=_interopRequireDefault(_middleware),_middleware3=__webpack_require__(150),_middleware4=_interopRequireDefault(_middleware3),_middleware5=__webpack_require__(151),_middleware6=_interopRequireDefault(_middleware5),_middleware7=__webpack_require__(152),_middleware8=_interopRequireDefault(_middleware7),_middleware9=__webpack_require__(171),_middleware10=_interopRequireDefault(_middleware9),_middleware11=__webpack_require__(172),_middleware12=_interopRequireDefault(_middleware11),_middleware13=__webpack_require__(173),_middleware14=_interopRequireDefault(_middleware13),_middleware15=__webpack_require__(174),_middleware16=_interopRequireDefault(_middleware15),_middleware17=__webpack_require__(175),_middleware18=_interopRequireDefault(_middleware17),_middleware19=__webpack_require__(176),_middleware20=_interopRequireDefault(_middleware19),state=exports.state={core:{outputs:[],queue:[],queue_metadata:{},current_track:null,albums:{},artists:{},playlists:{},users:{},tracks:{},http_streaming_enabled:!1,http_streaming_cachebuster:null,http_streaming_url:"http://"+window.location.hostname+":8000/mopidy"},ui:{theme:"dark",smooth_scrolling_enabled:!0,shortkeys_enabled:!0,allow_reporting:!0,window_focus:!0,slim_mode:!1,selected_tracks:[],notifications:{},processes:{}},mopidy:{connected:!1,host:window.location.hostname,port:window.location.port?window.location.port:"https:"===window.location.protocol?"443":"80",ssl:"https:"===window.location.protocol,mute:!1,volume:0,progress:0,play_state:null,uri_schemes:[],library_albums_uri:"local:directory?type=album",library_artists_uri:"local:directory?type=artist"},pusher:{connected:!1,username:null,connections:{},version:{current:null},config:{}},lastfm:{me:null,authorization_url:"https://jamesbarnsley.co.nz/iris/auth_lastfm.php"},genius:{me:null,authorization_url:"https://jamesbarnsley.co.nz/iris/auth_genius.php"},spotify:{me:null,autocomplete_results:{},authorization_url:"https://jamesbarnsley.co.nz/iris/auth_spotify.php"},google:{enabled:!1},snapcast:{streams:{},groups:{},clients:{},server:null,commands:{}}};state.core=Object.assign({},state.core,helpers.getStorage("core")),state.ui=Object.assign({},state.ui,helpers.getStorage("ui")),state.mopidy=Object.assign({},state.mopidy,helpers.getStorage("mopidy")),state.pusher=Object.assign({},state.pusher,helpers.getStorage("pusher")),state.spotify=Object.assign({},state.spotify,helpers.getStorage("spotify")),state.lastfm=Object.assign({},state.lastfm,helpers.getStorage("lastfm")),state.genius=Object.assign({},state.genius,helpers.getStorage("genius")),state.google=Object.assign({},state.google,helpers.getStorage("google")),state.snapcast=Object.assign({},state.snapcast,helpers.getStorage("snapcast"));var reducers=(0,_redux.combineReducers)({core:_reducer2.default,ui:_reducer4.default,pusher:_reducer6.default,mopidy:_reducer8.default,lastfm:_reducer10.default,genius:_reducer18.default,spotify:_reducer12.default,google:_reducer16.default,snapcast:_reducer14.default});exports.default=(0,_redux.createStore)(reducers,state,(0,_redux.applyMiddleware)(_reduxThunk2.default,_middleware20.default,_middleware2.default,_middleware4.default,_middleware8.default,_middleware6.default,_middleware14.default,_middleware10.default,_middleware12.default,_middleware16.default,_middleware18.default))},function(module,exports,__webpack_require__){"use strict";function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}function reducer(){var core=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},action=arguments[1];switch(action.type){case"CORE_SET":return Object.assign({},core,action.data);case"CACHEBUST_HTTP_STREAM":return Object.assign({},core,{http_streaming_cachebuster:(new Date).getTime()});case"CURRENT_TRACK_LOADED":return Object.assign({},core,{current_track:action.track,current_track_uri:action.uri});case"CLEAR_CURRENT_TRACK":return Object.assign({},core,{current_track:null,current_track_uri:null});case"NEXT_TRACK_LOADED":return Object.assign({},core,{next_track_uri:action.uri});case"QUEUE_LOADED":return Object.assign({},core,{queue:action.tracks});case"PUSHER_QUEUE_METADATA":case"PUSHER_QUEUE_METADATA_CHANGED":for(var tracklist=Object.assign([],core.current_tracklist),i=0;i<tracklist.length;i++)void 0!==action.queue_metadata["tlid_"+tracklist[i].tlid]&&(tracklist[i]=Object.assign({},tracklist[i],action.queue_metadata["tlid_"+tracklist[i].tlid]));return Object.assign({},core,{current_tracklist:tracklist,queue_metadata:action.queue_metadata});case"PUSHER_RADIO_LOADED":case"PUSHER_RADIO_STARTED":case"PUSHER_RADIO_CHANGED":case"PUSHER_RADIO_STOPPED":return Object.assign({},core,{seeds_resolved:!1},{radio:action.radio});case"RADIO_SEEDS_RESOLVED":var radio=Object.assign({},core.radio,{resolved_seeds:action.resolved_seeds});return Object.assign({},core,{radio:radio});case"TRACKS_LOADED":var tracks=Object.assign({},core.tracks),_iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=action.tracks[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var track=_step.value;tracks[track.uri]=track}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}return Object.assign({},core,{tracks:tracks});case"ALBUMS_LOADED":var albums=Object.assign({},core.albums),_iteratorNormalCompletion2=!0,_didIteratorError2=!1,_iteratorError2=void 0;try{for(var _step2,_iterator2=action.albums[Symbol.iterator]();!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=!0){var album=_step2.value;albums[album.uri]=album}}catch(err){_didIteratorError2=!0,_iteratorError2=err}finally{try{!_iteratorNormalCompletion2&&_iterator2.return&&_iterator2.return()}finally{if(_didIteratorError2)throw _iteratorError2}}return Object.assign({},core,{albums:albums});case"ARTISTS_LOADED":var artists=Object.assign({},core.artists),_iteratorNormalCompletion3=!0,_didIteratorError3=!1,_iteratorError3=void 0;try{for(var _step3,_iterator3=action.artists[Symbol.iterator]();!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=!0){var artist=_step3.value;artists[artist.uri]=artist}}catch(err){_didIteratorError3=!0,_iteratorError3=err}finally{try{!_iteratorNormalCompletion3&&_iterator3.return&&_iterator3.return()}finally{if(_didIteratorError3)throw _iteratorError3}}return Object.assign({},core,{artists:artists});case"PLAYLISTS_LOADED":var playlists=Object.assign({},core.playlists),_iteratorNormalCompletion4=!0,_didIteratorError4=!1,_iteratorError4=void 0;try{for(var _step4,_iterator4=action.playlists[Symbol.iterator]();!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=!0){var playlist=_step4.value;playlists[playlist.uri]=playlist}}catch(err){_didIteratorError4=!0,_iteratorError4=err}finally{try{!_iteratorNormalCompletion4&&_iterator4.return&&_iterator4.return()}finally{if(_didIteratorError4)throw _iteratorError4}}return Object.assign({},core,{playlists:playlists});case"USERS_LOADED":var users=Object.assign({},core.users),_iteratorNormalCompletion5=!0,_didIteratorError5=!1,_iteratorError5=void 0;try{for(var _step5,_iterator5=action.users[Symbol.iterator]();!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=!0){var user=_step5.value;users[user.uri]=user}}catch(err){_didIteratorError5=!0,_iteratorError5=err}finally{try{!_iteratorNormalCompletion5&&_iterator5.return&&_iterator5.return()}finally{if(_didIteratorError5)throw _iteratorError5}}return Object.assign({},core,{users:users});case"ARTIST_ALBUMS_LOADED":var artists=Object.assign({},core.artists),albums_uris=[];artists[action.artist_uri].albums_uris&&(albums_uris=artists[action.artist_uri].albums_uris);var artist=Object.assign({},artists[action.artist_uri],{albums_uris:[].concat(_toConsumableArray(albums_uris),_toConsumableArray(action.albums_uris)),albums_more:action.more,albums_total:action.total});return artists[action.artist_uri]=artist,Object.assign({},core,{artists:artists});case"USER_PLAYLISTS_LOADED":var users=Object.assign({},core.users),existing_playlists_uris=[];users[action.uri]&&users[action.uri].playlists_uris&&(existing_playlists_uris=users[action.uri].playlists_uris);var playlists_uris=[].concat(_toConsumableArray(existing_playlists_uris),_toConsumableArray(helpers.arrayOf("uri",action.playlists))),user=Object.assign({},users[action.uri],{playlists_uris:playlists_uris,playlists_more:action.more,playlists_total:action.total});return users[action.uri]=user,Object.assign({},core,{users:users});case"REMOVE_FROM_INDEX":var index=Object.assign({},core[action.index_name]);action.new_key?index[action.key]={moved_to:action.new_key}:delete index[action.key];var updated_core={};return updated_core[action.index_name]=index,Object.assign({},core,updated_core);case"PLAYLIST_TRACKS":var playlists=Object.assign({},core.playlists),playlist=Object.assign({},playlists[action.key],{tracks_uris:action.tracks_uris});return playlists[action.key]=playlist,Object.assign({},core,{playlists:playlists});case"LIBRARY_PLAYLISTS_LOADED":if(core.library_playlists)var library_playlists=[].concat(_toConsumableArray(core.library_playlists),_toConsumableArray(action.uris));else var library_playlists=action.uris;return library_playlists=helpers.removeDuplicates(library_playlists),Object.assign({},core,{library_playlists:library_playlists,library_playlists_started:!0});case"SPOTIFY_GENRES_LOADED":return Object.assign({},core,{genres:action.genres});case"SEARCH_STARTED":return Object.assign({},core,{search_results:{artists_uris:[],albums_uris:[],playlists_uris:[],tracks:[]}});case"SEARCH_RESULTS_LOADED":if(core.search_results&&core.search_results.artists_uris)var artists_uris=core.search_results.artists_uris;else var artists_uris=[];if(action.artists_uris&&(artists_uris=[].concat(_toConsumableArray(artists_uris),_toConsumableArray(action.artists_uris))),void 0!==action.artists_more)var artists_more=action.artists_more;else if(core.search_results&&core.search_results.artists_more)var artists_more=core.search_results.artists_more;else var artists_more=null;if(core.search_results&&core.search_results.albums_uris)var albums_uris=core.search_results.albums_uris;else var albums_uris=[];if(action.albums_uris&&(albums_uris=[].concat(_toConsumableArray(albums_uris),_toConsumableArray(action.albums_uris))),void 0!==action.albums_more)var albums_more=action.albums_more;else if(core.search_results&&core.search_results.albums_more)var albums_more=core.search_results.albums_more;else var albums_more=null;if(core.search_results&&core.search_results.playlists_uris)var playlists_uris=core.search_results.playlists_uris;else var playlists_uris=[];if(action.playlists_uris&&(playlists_uris=[].concat(_toConsumableArray(playlists_uris),_toConsumableArray(action.playlists_uris))),void 0!==action.playlists_more)var playlists_more=action.playlists_more;else if(core.search_results&&core.search_results.playlists_more)var playlists_more=core.search_results.playlists_more;else var playlists_more=null;if(core.search_results&&core.search_results.tracks)var tracks=core.search_results.tracks;else var tracks=[];if(action.tracks&&(tracks=[].concat(_toConsumableArray(tracks),_toConsumableArray(helpers.formatTracks(action.tracks)))),void 0!==action.tracks_more)var tracks_more=action.tracks_more;else if(core.search_results&&core.search_results.tracks_more)var tracks_more=core.search_results.tracks_more;else var tracks_more=null;return Object.assign({},core,{search_results:{artists_more:artists_more,artists_uris:helpers.removeDuplicates(artists_uris),albums_more:albums_more,albums_uris:helpers.removeDuplicates(albums_uris),playlists_more:playlists_more,playlists_uris:helpers.removeDuplicates(playlists_uris),tracks:tracks,tracks_more:tracks_more}});default:return core}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=reducer;var _helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers)},function(module,exports,__webpack_require__){"use strict";function reducer(){var ui=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},action=arguments[1];switch(action.type){case"LAZY_LOADING":return Object.assign({},ui,{lazy_loading:action.start});case"SET_SLIM_MODE":return Object.assign({},ui,{slim_mode:action.slim_mode});case"SET_WINDOW_FOCUS":return Object.assign({},ui,{window_focus:action.window_focus});case"DEBUG":return Object.assign({},ui,{debug_response:action.response});case"UI_SET":return Object.assign({},ui,action.data);case"SET_WINDOW_TITLE":return action.title?Object.assign({},ui,{window_title:action.title}):ui;case"TOGGLE_SIDEBAR":var new_state=!ui.sidebar_open;return void 0!==action.new_state&&(new_state=action.new_state),Object.assign({},ui,{sidebar_open:new_state});case"SET_CURRENT_TRACK_TRANSITION":return Object.assign({},ui,{current_track_transition:action.current_track_transition});case"SET_SELECTED_TRACKS":return Object.assign({},ui,{selected_tracks:Object.assign([],action.keys)});case"ICON_LOADED":var icons=Object.assign({},ui.icons);return icons[action.key]=action.icon,Object.assign({},ui,{icons:icons});case"INSTALL_PROMPT":return Object.assign({},ui,{install_prompt:action.event});case"SHOW_CONTEXT_MENU":return Object.assign({},ui,{context_menu:action.data});case"HIDE_CONTEXT_MENU":return Object.assign({},ui,{context_menu:Object.assign({},ui.context_menu,{closing:!0})});case"REMOVE_CONTEXT_MENU":return Object.assign({},ui,{context_menu:null});case"SHOW_TOUCH_CONTEXT_MENU":return Object.assign({},ui,{touch_context_menu:action.data});case"HIDE_TOUCH_CONTEXT_MENU":return Object.assign({},ui,{touch_context_menu:Object.assign({},ui.touch_context_menu,{closing:!0})});case"REMOVE_TOUCH_CONTEXT_MENU":return Object.assign({},ui,{touch_context_menu:null});case"DRAG_START":return Object.assign({},ui,{dragger:{dragging:!0,active:!1,context:action.context,from_uri:action.from_uri,victims:action.victims,victims_indexes:action.victims_indexes,start_x:action.start_x,start_y:action.start_y}});case"DRAG_ACTIVE":var dragger=Object.assign({},ui.dragger,{active:!0});return Object.assign({},ui,{dragger:dragger});case"DRAG_END":return Object.assign({},ui,{dragger:!1});case"OPEN_MODAL":return Object.assign({},ui,{modal:action.modal});case"CLOSE_MODAL":return Object.assign({},ui,{modal:!1});case"CREATE_NOTIFICATION":var notifications=Object.assign({},ui.notifications);return notifications[action.notification.key]=action.notification,Object.assign({},ui,{notifications:notifications});case"CLOSE_NOTIFICATION":var notifications=Object.assign({},ui.notifications);return notifications[action.key]&&(notifications[action.key].closing=!0),Object.assign({},ui,{notifications:notifications});case"REMOVE_NOTIFICATION":var notifications=Object.assign({},ui.notifications);return delete notifications[action.key],Object.assign({},ui,{notifications:notifications});case"START_LOADING":var load_queue=Object.assign({},ui.load_queue?ui.load_queue:{});return load_queue[action.key]=action.source,Object.assign({},ui,{load_queue:load_queue});case"STOP_LOADING":var load_queue=Object.assign({},ui.load_queue?ui.load_queue:{});return load_queue[action.key]&&delete load_queue[action.key],Object.assign({},ui,{load_queue:load_queue});case"START_PROCESS":case"UPDATE_PROCESS":var processes=Object.assign({},ui.processes?ui.processes:[]);if(processes[action.key])var data=Object.assign({},processes[action.key].data,action.data);else var data=action.data;return processes[action.key]={key:action.key,message:action.message,status:"running",data:data},Object.assign({},ui,{processes:processes});case"RESUME_PROCESS":var processes=Object.assign({},ui.processes?ui.processes:{});return processes[action.key]&&(processes[action.key]=Object.assign({},processes[action.key],{status:"running"})),Object.assign({},ui,{processes:processes});case"CANCEL_PROCESS":var processes=Object.assign({},ui.processes?ui.processes:{});return processes[action.key]&&(processes[action.key]=Object.assign({},processes[action.key],{status:"cancelling"})),Object.assign({},ui,{processes:processes});case"PROCESS_CANCELLED":var processes=Object.assign({},ui.processes?ui.processes:{});return processes[action.key]&&(processes[action.key]=Object.assign({},processes[action.key],{status:"cancelled"})),Object.assign({},ui,{processes:processes});case"PROCESS_FINISHING":var processes=Object.assign({},ui.processes?ui.processes:{});return processes[action.key]&&(processes[action.key]=Object.assign({},processes[action.key],{closing:!0})),Object.assign({},ui,{processes:processes});case"PROCESS_FINISHED":var processes=Object.assign({},ui.processes?ui.processes:{});return processes[action.key]&&(processes[action.key]=Object.assign({},processes[action.key],{status:"finished",closing:!1})),Object.assign({},ui,{processes:processes});default:return ui}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=reducer;var _helpers=__webpack_require__(1);!function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);newObj.default=obj}(_helpers)},function(module,exports,__webpack_require__){"use strict";function reducer(){var pusher=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},action=arguments[1];switch(action.type){case"PUSHER_CONNECT":case"PUSHER_CONNECTING":return Object.assign({},pusher,{connected:!1,connecting:!0});case"PUSHER_CONNECTED":return Object.assign({},pusher,{connected:!0,connecting:!1,connection_id:action.connection_id,client_id:action.client_id,username:action.username});case"PUSHER_DISCONNECTED":return Object.assign({},pusher,{connected:!1,connecting:!1});case"PUSHER_SET_PORT":return Object.assign({},pusher,{port:action.port});case"PUSHER_USERNAME_CHANGED":return Object.assign({},pusher,{username:action.username});case"PUSHER_CONNECTIONS":for(var connections={},i=0;i<action.connections.length;i++)connections[action.connections[i].connection_id]=action.connections[i];return Object.assign({},pusher,{connections:connections});case"PUSHER_CONNECTION_ADDED":case"PUSHER_CONNECTION_CHANGED":var connections=Object.assign({},pusher.connections);return connections[action.connection.connection_id]=action.connection,Object.assign({},pusher,{connections:connections});case"PUSHER_CONNECTION_REMOVED":var connections=Object.assign({},pusher.connections);return delete connections[action.connection.connection_id],Object.assign({},pusher,{connections:connections});case"PUSHER_VERSION":return Object.assign({},pusher,{version:action.version,upgrading:!1});case"PUSHER_START_UPGRADE":return Object.assign({},pusher,{upgrading:!0});case"PUSHER_CONFIG":return Object.assign({},pusher,{config:action.config});case"PUSHER_COMMANDS_UPDATED":return Object.assign({},pusher,{commands:action.commands});default:return pusher}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=reducer},function(module,exports,__webpack_require__){"use strict";function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}function reducer(){var mopidy=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},action=arguments[1];switch(action.type){case"MOPIDY_SET":return Object.assign({},mopidy,action.data);case"MOPIDY_CONNECT":case"MOPIDY_CONNECTING":return Object.assign({},mopidy,{connected:!1,connecting:!0});case"MOPIDY_CONNECTED":return Object.assign({},mopidy,{connected:!0,connecting:!1,restart_running:!1,upgrade_running:!1});case"MOPIDY_DISCONNECTED":return Object.assign({},mopidy,{connected:!1,connecting:!1});case"MOPIDY_CHANGE_TRACK":return Object.assign({},mopidy,{tlid:action.tlid});case"MOPIDY_URI_SCHEMES":return Object.assign({},mopidy,{uri_schemes:action.uri_schemes});case"MOPIDY_RESTART_STARTED":return Object.assign({},mopidy,{restart_running:!0});case"MOPIDY_RESTART_FINISHED":return Object.assign({},mopidy,{restart_running:!1});case"MOPIDY_UPGRADE_STARTED":return Object.assign({},mopidy,{upgrade_running:!0});case"MOPIDY_UPGRADE_FINISHED":return Object.assign({},mopidy,{upgrade_running:!1});case"MOPIDY_LOCAL_SCAN_STARTED":return Object.assign({},mopidy,{local_scan_running:!0});case"MOPIDY_LOCAL_SCAN_FINISHED":return Object.assign({},mopidy,{local_scan_running:!1});case"MOPIDY_PLAY_STATE":return Object.assign({},mopidy,{play_state:action.play_state});case"MOPIDY_CONSUME":return Object.assign({},mopidy,{consume:action.consume});case"MOPIDY_RANDOM":return Object.assign({},mopidy,{random:action.random});case"MOPIDY_REPEAT":return Object.assign({},mopidy,{repeat:action.repeat});case"MOPIDY_VOLUME":return Object.assign({},mopidy,{volume:action.volume});case"MOPIDY_MUTE":return Object.assign({},mopidy,{mute:action.mute});case"MOPIDY_TIME_POSITION":return Object.assign({},mopidy,{time_position:action.time_position});case"MOPIDY_QUEUE_HISTORY":for(var history=[],i=0;i<action.tracks.length;i++)history.push(Object.assign({},action.tracks[i][1],{played_at:action.tracks[i][0],type:"history"}));return Object.assign({},mopidy,{queue_history:history});case"MOPIDY_DIRECTORY_FLUSH":return Object.assign({},mopidy,{directory:null});case"MOPIDY_DIRECTORY_LOADED":return Object.assign({},mopidy,{directory:action.directory});case"MOPIDY_LIBRARY_PLAYLISTS_LOADED":if(mopidy.library_playlists)var uris=[].concat(_toConsumableArray(mopidy.library_playlists),_toConsumableArray(action.uris));else var uris=action.uris;return Object.assign({},mopidy,{library_playlists:helpers.removeDuplicates(uris)});case"MOPIDY_LIBRARY_PLAYLISTS_LOADED_ALL":return Object.assign({},mopidy,{library_playlists_loaded_all:!0});case"MOPIDY_LIBRARY_PLAYLIST_CREATED":var library_playlists=[];return mopidy.library_playlists&&(library_playlists=Object.assign([],mopidy.library_playlists)),library_playlists.push(action.key),Object.assign({},mopidy,{library_playlists:library_playlists});case"MOPIDY_LIBRARY_PLAYLIST_DELETED":var library_playlists=[];return mopidy.library_playlists&&(library_playlists=Object.assign([],mopidy.library_playlists),library_playlists.splice(library_playlists.indexOf(action.uri),1)),Object.assign({},mopidy,{library_playlists:library_playlists});case"MOPIDY_LIBRARY_ARTISTS_LOADED":if(mopidy.library_artists)var uris=[].concat(_toConsumableArray(mopidy.library_artists),_toConsumableArray(action.uris));else var uris=action.uris;return Object.assign({},mopidy,{library_artists:helpers.removeDuplicates(uris)});case"MOPIDY_CLEAR_LIBRARY_ARTISTS":return Object.assign({},mopidy,{library_artists:null});case"MOPIDY_LIBRARY_ALBUMS_LOADED":if(mopidy.library_albums)var uris=[].concat(_toConsumableArray(mopidy.library_albums),_toConsumableArray(action.uris));else var uris=action.uris;return Object.assign({},mopidy,{library_albums:helpers.removeDuplicates(uris)});case"MOPIDY_CLEAR_LIBRARY_ALBUMS":return Object.assign({},mopidy,{library_albums:null});case"MOPIDY_CLEAR_SEARCH_RESULTS":return Object.assign({},mopidy,{search_results:{}});case"MOPIDY_SEARCH_RESULTS_LOADED":if(mopidy.search_results)var search_results=Object.assign({},mopidy.search_results);else var search_results={};return search_results[action.context]?search_results[action.context]=[].concat(_toConsumableArray(search_results[action.context]),_toConsumableArray(action.results)):search_results[action.context]=action.results,Object.assign({},mopidy,{search_results:search_results});default:return mopidy}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=reducer;var _helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers)},function(module,exports,__webpack_require__){"use strict";function reducer(){var lastfm=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},action=arguments[1];switch(action.type){case"LASTFM_CONNECT":case"LASTFM_CONNECTING":return Object.assign({},lastfm,{connected:!1,connecting:!0});case"LASTFM_CONNECTED":return Object.assign({},lastfm,{connected:!0,connecting:!1});case"LASTFM_SET":return Object.assign({},lastfm,action.data);case"LASTFM_ME_LOADED":return Object.assign({},lastfm,{me:action.me});case"LASTFM_AUTHORIZATION_GRANTED":return Object.assign({},lastfm,{authorizing:!1,authorization:action.data.session});case"LASTFM_AUTHORIZATION_REVOKED":return Object.assign({},lastfm,{authorizing:!1,authorization:!1,me:null});case"LASTFM_IMPORT_AUTHORIZATION":return Object.assign({},lastfm,{authorizing:!1,authorization:action.authorization,me:null});default:return lastfm}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=reducer},function(module,exports,__webpack_require__){"use strict";function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}function reducer(){var spotify=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},action=arguments[1];switch(action.type){case"SPOTIFY_SET":return Object.assign({},spotify,action.data);case"PUSHER_SPOTIFY_TOKEN":return spotify.authorization?spotify:Object.assign({},spotify,{authorizing:!1,authorization:!1,access_token:action.data.access_token,token_expiry:action.data.token_expiry});case"SPOTIFY_AUTHORIZATION_GRANTED":return Object.assign({},spotify,{enabled:!0,authorizing:!1,authorization:action.data,access_token:action.data.access_token,refresh_token:action.data.refresh_token,token_expiry:action.data.token_expiry});case"SPOTIFY_AUTHORIZATION_REVOKED":return Object.assign({},spotify,{authorizing:!1,authorization:!1,access_token:!1,refresh_token:!1,token_expiry:0,me:!1});case"SPOTIFY_IMPORT_AUTHORIZATION":return Object.assign({},spotify,{authorizing:!1,authorization:action.authorization,access_token:action.authorization.access_token,refresh_token:action.authorization.refresh_token,token_expiry:action.authorization.token_expiry,me:action.me});case"SPOTIFY_TOKEN_REFRESHING":return Object.assign({},spotify,{refreshing_token:!0});case"SPOTIFY_TOKEN_REFRESHED":return Object.assign({},spotify,{refreshing_token:!1,access_token:action.data.access_token,token_expiry:action.data.token_expiry});case"SPOTIFY_TOKEN_CHANGED":return Object.assign({},spotify,{access_token:action.spotify_token.access_token,token_expiry:action.spotify_token.token_expiry});case"SPOTIFY_ME_LOADED":return Object.assign({},spotify,{me:action.me});case"SPOTIFY_FEATURED_PLAYLISTS_LOADED":return Object.assign({},spotify,{featured_playlists:action.data});case"SPOTIFY_NEW_RELEASES_LOADED":var new_releases=[];return spotify.new_releases&&(new_releases=Object.assign([],spotify.new_releases)),Object.assign({},spotify,{new_releases:helpers.removeDuplicates([].concat(_toConsumableArray(new_releases),_toConsumableArray(action.uris))),new_releases_more:action.more,new_releases_total:action.total});case"SPOTIFY_DISCOVER_LOADED":return action.data?Object.assign({},spotify,{discover:[].concat(_toConsumableArray(spotify.discover),[action.data])}):Object.assign({},spotify,{discover:[]});case"CLEAR_SPOTIFY_RECOMMENDATIONS":return Object.assign({},spotify,{recommendations:{artists_uris:[],albums_uris:[],tracks_uris:[]}});case"SPOTIFY_RECOMMENDATIONS_LOADED":return Object.assign({},spotify,{recommendations:{artists_uris:action.artists_uris,albums_uris:action.albums_uris,tracks_uris:action.tracks_uris}});case"SPOTIFY_FAVORITES_LOADED":return Object.assign({},spotify,{favorite_artists:action.artists_uris,favorite_tracks:action.tracks_uris});case"SPOTIFY_AUTOCOMPLETE_LOADING":var autocomplete_results=spotify.autocomplete_results;return autocomplete_results[action.field_id]={loading:!0},Object.assign({},spotify,{autocomplete_results:autocomplete_results});case"SPOTIFY_AUTOCOMPLETE_LOADED":var autocomplete_results=spotify.autocomplete_results;return autocomplete_results[action.field_id]=action.results,autocomplete_results[action.field_id].loading=!1,Object.assign({},spotify,{autocomplete_results:autocomplete_results});case"SPOTIFY_AUTOCOMPLETE_CLEAR":var autocomplete_results=spotify.autocomplete_results;return void 0!==autocomplete_results[action.field_id]&&delete autocomplete_results[action.field_id],Object.assign({},spotify,{autocomplete_results:autocomplete_results});case"SPOTIFY_GENRES_LOADED":return Object.assign({},spotify,{genres:action.genres});case"SPOTIFY_CATEGORIES_LOADED":var categories=Object.assign({},spotify.categories),_iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=action.categories[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var category=_step.value;categories[category.uri]=category}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}return Object.assign({},spotify,{categories:categories});case"SPOTIFY_CATEGORY_PLAYLISTS_LOADED":var categories=Object.assign({},spotify.categories),playlists_uris=[];categories[action.uri].playlists_uris&&(playlists_uris=categories[action.uri].playlists_uris);var category=Object.assign({},categories[action.uri],{playlists_uris:[].concat(_toConsumableArray(playlists_uris),_toConsumableArray(action.uris)),playlists_more:action.more,playlists_total:action.total});return categories[action.uri]=category,Object.assign({},spotify,{categories:categories});case"SPOTIFY_FLUSH_LIBRARY":return Object.assign({},spotify,{library_playlists:null,library_playlists_loaded_all:null,library_playlists_status:null,library_albums:null,library_albums_status:null,library_albums_loaded_all:null,library_artists:null,library_artists_status:null,library_artists_loaded_all:null,library_tracks:null,library_tracks_status:null,library_tracks_loaded_all:null});case"SPOTIFY_LIBRARY_PLAYLISTS_LOADED":if(spotify.library_playlists)var uris=[].concat(_toConsumableArray(spotify.library_playlists),_toConsumableArray(action.uris));else var uris=action.uris;return Object.assign({},spotify,{library_playlists:helpers.removeDuplicates(uris)});case"SPOTIFY_LIBRARY_ARTISTS_LOADED":if(spotify.library_artists)var uris=[].concat(_toConsumableArray(spotify.library_artists),_toConsumableArray(action.uris));else var uris=action.uris;return Object.assign({},spotify,{library_artists:helpers.removeDuplicates(uris)});case"SPOTIFY_LIBRARY_ALBUMS_LOADED":if(spotify.library_albums)var uris=[].concat(_toConsumableArray(spotify.library_albums),_toConsumableArray(action.uris));else var uris=action.uris;return Object.assign({},spotify,{library_albums:helpers.removeDuplicates(uris)});case"SPOTIFY_LIBRARY_TRACKS_LOADED":case"SPOTIFY_LIBRARY_TRACKS_LOADED_MORE":var tracks=action.data.items,uris=[];return tracks&&(tracks=helpers.formatTracks(tracks),uris=helpers.arrayOf("uri",tracks),spotify.library_tracks&&(uris=[].concat(_toConsumableArray(spotify.library_tracks),_toConsumableArray(uris)))),Object.assign({},spotify,{library_tracks:helpers.removeDuplicates(uris),library_tracks_more:action.data.next});case"SPOTIFY_LIBRARY_PLAYLISTS_LOADED_ALL":return Object.assign({},spotify,{library_playlists_loaded_all:!0});case"SPOTIFY_LIBRARY_PLAYLISTS_CLEAR":return Object.assign({},spotify,{library_playlists:[]});case"SPOTIFY_LIBRARY_ARTISTS_CLEAR":return Object.assign({},spotify,{library_artists:[]});case"SPOTIFY_LIBRARY_ALBUMS_CLEAR":return Object.assign({},spotify,{library_albums:[]});case"SPOTIFY_LIBRARY_ALBUM_CHECK":var items=Object.assign([],spotify.library_albums),index=items.indexOf(action.key);return index>-1&&!action.in_library?items.splice(index,1):index<0&&action.in_library&&items.push(action.key),Object.assign({},spotify,{library_albums:items});case"SPOTIFY_LIBRARY_ARTIST_CHECK":var items=Object.assign([],spotify.library_artists),index=items.indexOf(action.key);return index>-1&&!action.in_library?items.splice(index,1):index<0&&action.in_library&&items.push(action.key),Object.assign({},spotify,{library_artists:items});case"SPOTIFY_LIBRARY_PLAYLIST_CHECK":var items=Object.assign([],spotify.library_playlists),index=items.indexOf(action.key);return index>-1&&!action.in_library?items.splice(index,1):index<0&&action.in_library&&items.push(action.key),Object.assign({},spotify,{library_playlists:items});case"SPOTIFY_LIBRARY_TRACK_CHECK":var items=Object.assign([],spotify.library_tracks),index=items.indexOf(action.key);return index>-1&&!action.in_library?items.splice(index,1):index<0&&action.in_library&&items.push(action.key),Object.assign({},spotify,{library_tracks:items});case"SPOTIFY_CLEAR_SEARCH_RESULTS":return Object.assign({},spotify,{search_results:{}});case"SPOTIFY_SEARCH_RESULTS_LOADED":if(spotify.search_results)var search_results=Object.assign({},spotify.search_results);else var search_results={};return search_results.results?search_results[action.context]=[].concat(_toConsumableArray(search_results[action.context]),_toConsumableArray(action.results)):search_results[action.context]=action.results,action.more?search_results[action.context+"_more"]=action.more:search_results[action.context+"_more"]=null,Object.assign({},spotify,{search_results:search_results});default:return spotify}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=reducer;var _helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers)},function(module,exports,__webpack_require__){"use strict";function reducer(){var snapcast=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},action=arguments[1];switch(action.type){case"SNAPCAST_SERVER_LOADED":var server=Object.assign({},action.server);return Object.assign({},snapcast,{server:server});case"SNAPCAST_CLIENTS_LOADED":if(action.flush)var clients={};else var clients=Object.assign({},snapcast.clients);var _iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=action.clients[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var client=_step.value;clients[client.id]=client}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}return Object.assign({},snapcast,{clients:clients});case"SNAPCAST_GROUPS_LOADED":if(action.flush)var groups={};else var groups=Object.assign({},snapcast.groups);var _iteratorNormalCompletion2=!0,_didIteratorError2=!1,_iteratorError2=void 0;try{for(var _step2,_iterator2=action.groups[Symbol.iterator]();!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=!0){var group=_step2.value;groups[group.id]=group}}catch(err){_didIteratorError2=!0,_iteratorError2=err}finally{try{!_iteratorNormalCompletion2&&_iterator2.return&&_iterator2.return()}finally{if(_didIteratorError2)throw _iteratorError2}}return Object.assign({},snapcast,{groups:groups});case"SNAPCAST_STREAMS_LOADED":if(action.flush)var streams={};else var streams=Object.assign({},snapcast.streams);var _iteratorNormalCompletion3=!0,_didIteratorError3=!1,_iteratorError3=void 0;try{for(var _step3,_iterator3=action.streams[Symbol.iterator]();!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=!0){var stream=_step3.value;streams[stream.id]=stream}}catch(err){_didIteratorError3=!0,_iteratorError3=err}finally{try{!_iteratorNormalCompletion3&&_iterator3.return&&_iterator3.return()}finally{if(_didIteratorError3)throw _iteratorError3}}return Object.assign({},snapcast,{streams:streams});default:return snapcast}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=reducer},function(module,exports,__webpack_require__){"use strict";function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}function reducer(){var google=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},action=arguments[1];switch(action.type){case"GOOGLE_SET":return Object.assign({},google,action.data);case"GOOGLE_LIBRARY_ARTISTS_LOADED":if(google.library_artists)var uris=[].concat(_toConsumableArray(google.library_artists),_toConsumableArray(action.uris));else var uris=action.uris;return Object.assign({},google,{library_artists:helpers.removeDuplicates(uris)});case"GOOGLE_CLEAR_LIBRARY_ARTISTS":return Object.assign({},google,{library_artists:null});case"GOOGLE_LIBRARY_ALBUMS_LOADED":if(google.library_albums)var uris=[].concat(_toConsumableArray(google.library_albums),_toConsumableArray(action.uris));else var uris=action.uris;return Object.assign({},google,{library_albums:helpers.removeDuplicates(uris)});case"GOOGLE_CLEAR_LIBRARY_ALBUMS":return Object.assign({},google,{library_albums:null});default:return google}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=reducer;var _helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers)},function(module,exports,__webpack_require__){"use strict";function reducer(){var genius=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},action=arguments[1];switch(action.type){case"GENIUS_SET":return Object.assign({},genius,action.data);case"GENIUS_ME_LOADED":return Object.assign({},genius,{me:action.me});case"GENIUS_AUTHORIZATION_GRANTED":return Object.assign({},genius,{authorizing:!1,authorization:action.data,authorization_code:action.data.authorization_code,access_token:action.data.access_token});case"GENIUS_AUTHORIZATION_REVOKED":return Object.assign({},genius,{authorizing:!1,authorization:null,authorization_code:null,access_token:null,me:null});case"GENIUS_IMPORT_AUTHORIZATION":return Object.assign({},genius,{authorizing:!1,authorization:action.authorization,authorization_code:action.authorization.authorization_code,access_token:action.authorization.access_token,me:null});default:return genius}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=reducer},function(module,__webpack_exports__,__webpack_require__){"use strict";function createThunkMiddleware(extraArgument){return function(_ref){var dispatch=_ref.dispatch,getState=_ref.getState;return function(next){return function(action){return"function"==typeof action?action(dispatch,getState,extraArgument):next(action)}}}}Object.defineProperty(__webpack_exports__,"__esModule",{value:!0});var thunk=createThunkMiddleware();thunk.withExtraArgument=createThunkMiddleware,__webpack_exports__.default=thunk},function(module,exports,__webpack_require__){"use strict";function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}Object.defineProperty(exports,"__esModule",{value:!0});var _reactGa=__webpack_require__(13),_reactGa2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_reactGa),coreActions=__webpack_require__(9),uiActions=__webpack_require__(2),mopidyActions=(__webpack_require__(12),__webpack_require__(6)),spotifyActions=__webpack_require__(8),helpers=(__webpack_require__(16),__webpack_require__(1)),CoreMiddleware=function(){return function(store){return function(next){return function(action){var core=store.getState().core;switch(action.type){case"HANDLE_EXCEPTION":var message=action.message;if(action.description)var description=action.description;else if(action.data.xhr&&action.data.xhr.responseText){var xhr_response=JSON.parse(action.data.xhr.responseText);if(xhr_response.error&&xhr_response.error.message)var description=xhr_response.error.message}else if(action.data.xhr)var description=action.data.xhr.status+" "+action.data.xhr.statusText;else var description=null;var state=store.getState(),exported_state={core:Object.assign({},state.core),ui:Object.assign({},state.ui),spotify:Object.assign({},state.spotify),mopidy:Object.assign({},state.mopidy),pusher:Object.assign({},state.pusher)};delete exported_state.core.albums,delete exported_state.core.artists,delete exported_state.core.playlists,delete exported_state.core.users,delete exported_state.core.queue_metadata,delete exported_state.core.current_tracklist,delete exported_state.spotify.library_albums,delete exported_state.spotify.library_artists,delete exported_state.spotify.library_playlists,delete exported_state.spotify.autocomplete_results,delete exported_state.mopidy.library_albums,delete exported_state.mopidy.library_artists,delete exported_state.mopidy.library_playlists;var data=Object.assign({},action.data,{message:message,description:description,state:exported_state});store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Error",action:message,label:description,nonInteraction:!0}),action.show_notification&&store.dispatch(uiActions.createNotification({content:message,type:"bad",description:description})),console.error(message,description,data);break;case"PLAY_PLAYLIST":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Playlist",action:"Play",label:action.uri}),next(action);break;case"SAVE_PLAYLIST":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Playlist",action:"Save",label:action.key}),next(action);break;case"CREATE_PLAYLIST":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Playlist",action:"Create",label:+action.name}),next(action);break;case"REORDER_PLAYLIST_TRACKS":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Playlist",action:"Reorder tracks",label:action.key}),next(action);break;case"ADD_PLAYLIST_TRACKS":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Playlist",action:"Add tracks",label:action.playlist_uri}),next(action);break;case"REMOVE_PLAYLIST_TRACKS":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Playlist",action:"Remove tracks",label:action.playlist_uri}),next(action);break;case"DELETE_PLAYLIST":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Playlist",action:"Delete",label:action.uri}),next(action);break;case"SEARCH_STARTED":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Search",action:"Started",label:action.type+": "+action.query}),next(action);var state=store.getState();if(state.ui.search_uri_schemes)var uri_schemes=state.ui.search_uri_schemes;else var uri_schemes=state.mopidy.uri_schemes;for(var available_full_uri_schemes=["local:","file:","gmusic:"],full_uri_schemes=[],i=0;i<available_full_uri_schemes.length;i++){uri_schemes.indexOf(available_full_uri_schemes[i])>-1&&full_uri_schemes.push(available_full_uri_schemes[i])}action.only_mopidy||state.ui.search_settings&&!state.ui.search_settings.spotify||store.dispatch(spotifyActions.getSearchResults(action.query)),state.mopidy.connected&&store.dispatch(mopidyActions.getSearchResults(action.search_type,action.query,100,full_uri_schemes));break;case"GET_LIBRARY_PLAYLISTS":store.getState().spotify.connected&&store.dispatch(spotifyActions.getLibraryPlaylists()),store.getState().mopidy.connected&&store.dispatch(mopidyActions.getLibraryPlaylists()),next(action);break;case"GET_LIBRARY_ALBUMS":store.getState().spotify.connected&&store.dispatch(spotifyActions.getLibraryAlbums()),store.getState().mopidy.connected&&store.dispatch(mopidyActions.getLibraryAlbums()),next(action);break;case"GET_LIBRARY_ARTISTS":store.getState().spotify.connected&&store.dispatch(spotifyActions.getLibraryArtists()),store.getState().mopidy.connected&&store.dispatch(mopidyActions.getLibraryArtists()),next(action);break;case"RESTART":location.reload();break;case"PLAYLIST_TRACKS":var tracks=helpers.formatTracks(action.tracks);action.tracks_uris=helpers.arrayOf("uri",tracks),store.dispatch({type:"TRACKS_LOADED",tracks:tracks}),next(action);break;case"PLAYLIST_TRACKS_ADDED":switch(store.dispatch(uiActions.createNotification({type:"info",content:"Added "+action.tracks_uris.length+" tracks to playlist"})),helpers.uriSource(action.key)){case"spotify":store.dispatch(spotifyActions.getPlaylist(action.key));break;case"m3u":store.getState().mopidy.connected&&store.dispatch(mopidyActions.getPlaylist(action.key))}next(action);break;case"PLAYLIST_TRACKS_REORDERED":var playlists=Object.assign({},core.playlists),playlist=Object.assign({},playlists[action.key]),tracks_uris=Object.assign([],playlist.tracks_uris),insert_before=action.insert_before;insert_before>action.range_start&&(insert_before-=action.range_length);var tracks_to_move=tracks_uris.splice(action.range_start,action.range_length);for(tracks_to_move.reverse(),i=0;i<tracks_to_move.length;i++)tracks_uris.splice(insert_before,0,tracks_to_move[i]);var snapshot_id=null;action.snapshot_id&&(snapshot_id=action.snapshot_id),playlist.tracks_uris=tracks_uris,playlist.snapshot_id=snapshot_id,store.dispatch({type:"PLAYLISTS_LOADED",playlists:[playlist]});break;case"PLAYLIST_TRACKS_REMOVED":for(var playlists=Object.assign({},core.playlists),playlist=Object.assign({},playlists[action.key]),tracks_uris=Object.assign([],playlist.tracks_uris),indexes=action.tracks_indexes.reverse(),i=0;i<indexes.length;i++)tracks_uris.splice(indexes[i],1);var snapshot_id=null;action.snapshot_id&&(snapshot_id=action.snapshot_id),playlist.tracks_uris=tracks_uris,playlist.snapshot_id=snapshot_id,store.dispatch({type:"PLAYLISTS_LOADED",playlists:[playlist]});break;case"LOAD_TRACK":if(!action.force_reload&&store.getState().core.tracks[action.uri])break;switch(helpers.uriSource(action.uri)){case"spotify":store.dispatch(spotifyActions.getTrack(action.uri)),store.getState().spotify.me&&store.dispatch(spotifyActions.following(action.uri));break;default:store.getState().mopidy.connected&&store.dispatch(mopidyActions.getTrack(action.uri))}next(action);break;case"LOAD_ALBUM":if(!action.force_reload&&store.getState().core.albums[action.uri]&&store.getState().core.albums[action.uri].tracks_uris)break;switch(helpers.uriSource(action.uri)){case"spotify":store.dispatch(spotifyActions.getAlbum(action.uri)),store.getState().spotify.me&&store.dispatch(spotifyActions.following(action.uri));break;default:store.getState().mopidy.connected&&store.dispatch(mopidyActions.getAlbum(action.uri))}next(action);break;case"LOAD_ARTIST":if(!action.force_reload&&store.getState().core.artists[action.uri]&&store.getState().core.artists[action.uri].albums_uris&&store.getState().core.artists[action.uri].tracks_uris)break;switch(helpers.uriSource(action.uri)){case"spotify":store.dispatch(spotifyActions.getArtist(action.uri,!0)),store.getState().spotify.me&&store.dispatch(spotifyActions.following(action.uri));break;default:store.getState().mopidy.connected&&store.dispatch(mopidyActions.getArtist(action.uri))}next(action);break;case"LOAD_PLAYLIST":if(!action.force_reload&&store.getState().core.playlists[action.uri]&&store.getState().core.playlists[action.uri].tracks_uris)break;switch(helpers.uriSource(action.uri)){case"spotify":store.dispatch(spotifyActions.getPlaylist(action.uri)),store.getState().spotify.me&&store.dispatch(spotifyActions.following(action.uri));break;default:store.getState().mopidy.connected&&store.dispatch(mopidyActions.getPlaylist(action.uri))}next(action);break;case"LOAD_USER":if(!action.force_reload&&store.getState().core.users[action.uri]&&store.getState().core.users[action.uri].playlists_uris)break;switch(helpers.uriSource(action.uri)){case"spotify":store.dispatch(spotifyActions.getUser(action.uri)),store.getState().spotify.me&&store.dispatch(spotifyActions.following(action.uri))}next(action);break;case"LOAD_USER_PLAYLISTS":if(!action.force_reload&&store.getState().core.users[action.uri]&&store.getState().core.users[action.uri].playlists_uris)break;switch(helpers.uriSource(action.uri)){case"spotify":store.dispatch(spotifyActions.getUserPlaylists(action.uri))}next(action);break;case"CURRENT_TRACK_LOADED":store.dispatch(coreActions.trackLoaded(action.track)),action.track=helpers.formatTrack(action.track),next(action);break;case"QUEUE_LOADED":store.dispatch(coreActions.tracksLoaded(action.tracks)),action.tracks=helpers.formatTracks(action.tracks),next(action);break;case"TRACKS_LOADED":var tracks_index=Object.assign({},core.tracks),artists_index=core.artists,albums_index=core.albums,tracks_loaded=[],artists_loaded=[],albums_loaded=[],_iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=action.tracks[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var raw_track=_step.value,track=helpers.formatTrack(raw_track);if(void 0!==tracks_index[track.uri]&&(track=Object.assign({},tracks_index[track.uri],track)),raw_track.album&&(track.album=helpers.formatSimpleObject(raw_track.album),albums_index[raw_track.album.uri]||albums_loaded.push(raw_track.album)),raw_track.artists&&raw_track.artists.length>0){track.artists=[];var _iteratorNormalCompletion2=!0,_didIteratorError2=!1,_iteratorError2=void 0;try{for(var _step2,_iterator2=raw_track.artists[Symbol.iterator]();!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=!0){var artist=_step2.value;track.artists.push(helpers.formatSimpleObject(artist)),artists_index[artist.uri]||artists_loaded.push(artist)}}catch(err){_didIteratorError2=!0,_iteratorError2=err}finally{try{!_iteratorNormalCompletion2&&_iterator2.return&&_iterator2.return()}finally{if(_didIteratorError2)throw _iteratorError2}}}tracks_loaded.push(track)}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}action.tracks=tracks_loaded,artists_loaded.length>0&&store.dispatch(coreActions.artistsLoaded(artists_loaded)),albums_loaded.length>0&&store.dispatch(coreActions.albumsLoaded(albums_loaded)),next(action);break;case"ALBUMS_LOADED":var albums_index=Object.assign({},core.albums),albums_loaded=[],artists_loaded=[],tracks_loaded=[],_iteratorNormalCompletion3=!0,_didIteratorError3=!1,_iteratorError3=void 0;try{for(var _step3,_iterator3=action.albums[Symbol.iterator]();!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=!0){var raw_album=_step3.value,album=helpers.formatAlbum(raw_album);if(albums_index[album.uri]&&(album=Object.assign({},albums_index[album.uri],album)),raw_album.tracks){album.tracks_uris=[];var _iteratorNormalCompletion4=!0,_didIteratorError4=!1,_iteratorError4=void 0;try{for(var _step4,_iterator4=raw_album.tracks[Symbol.iterator]();!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=!0){var track=_step4.value;track.album||(track.album=helpers.formatSimpleObject(album)),album.tracks_uris.push(track.uri),tracks_loaded.push(track)}}catch(err){_didIteratorError4=!0,_iteratorError4=err}finally{try{!_iteratorNormalCompletion4&&_iterator4.return&&_iterator4.return()}finally{if(_didIteratorError4)throw _iteratorError4}}}raw_album.artists&&(album.artists_uris=helpers.arrayOf("uri",raw_album.artists),artists_loaded=[].concat(_toConsumableArray(artists_loaded),_toConsumableArray(raw_album.artists))),albums_loaded.push(album)}}catch(err){_didIteratorError3=!0,_iteratorError3=err}finally{try{!_iteratorNormalCompletion3&&_iterator3.return&&_iterator3.return()}finally{if(_didIteratorError3)throw _iteratorError3}}action.albums=albums_loaded,artists_loaded.length>0&&store.dispatch(coreActions.artistsLoaded(artists_loaded)),tracks_loaded.length>0&&store.dispatch(coreActions.tracksLoaded(tracks_loaded)),next(action);break;case"ARTISTS_LOADED":var artists_index=Object.assign({},core.artists),artists_loaded=[],tracks_loaded=[],_iteratorNormalCompletion5=!0,_didIteratorError5=!1,_iteratorError5=void 0;try{for(var _step5,_iterator5=action.artists[Symbol.iterator]();!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=!0){var raw_artist=_step5.value,artist=helpers.formatArtist(raw_artist);if(artists_index[artist.uri]){if(artists_index[artist.uri].images&&artist.images){var existing_images=artists_index[artist.uri].images,are_new_images=!0,_iteratorNormalCompletion6=!0,_didIteratorError6=!1,_iteratorError6=void 0;try{for(var _step6,_iterator6=existing_images[Symbol.iterator]();!(_iteratorNormalCompletion6=(_step6=_iterator6.next()).done);_iteratorNormalCompletion6=!0){_step6.value.huge==artist.images[0].huge&&(are_new_images=!1)}}catch(err){_didIteratorError6=!0,_iteratorError6=err}finally{try{!_iteratorNormalCompletion6&&_iterator6.return&&_iterator6.return()}finally{if(_didIteratorError6)throw _iteratorError6}}are_new_images&&(artist.images=Object.assign([],[].concat(_toConsumableArray(existing_images),_toConsumableArray(artist.images))))}artist=Object.assign({},artists_index[artist.uri],artist)}if(raw_artist.tracks){var tracks=helpers.formatTracks(raw_artist.tracks),tracks_uris=helpers.arrayOf("uri",tracks);artist.tracks_uris=tracks_uris,tracks_loaded=[].concat(_toConsumableArray(tracks_loaded),_toConsumableArray(tracks))}artists_loaded.push(artist)}}catch(err){_didIteratorError5=!0,_iteratorError5=err}finally{try{!_iteratorNormalCompletion5&&_iterator5.return&&_iterator5.return()}finally{if(_didIteratorError5)throw _iteratorError5}}action.artists=artists_loaded,tracks_loaded.length>0&&store.dispatch(coreActions.tracksLoaded(tracks_loaded)),next(action);break;case"PLAYLISTS_LOADED":var playlists_index=Object.assign({},core.playlists),playlists_loaded=[],tracks_loaded=[],_iteratorNormalCompletion7=!0,_didIteratorError7=!1,_iteratorError7=void 0;try{for(var _step7,_iterator7=action.playlists[Symbol.iterator]();!(_iteratorNormalCompletion7=(_step7=_iterator7.next()).done);_iteratorNormalCompletion7=!0){var playlist=_step7.value;switch(playlist=helpers.formatPlaylist(playlist),helpers.uriSource(playlist.uri)){case"m3u":playlist.can_edit=!0;break;case"spotify":store.getState().spotify.authorization&&store.getState().spotify.me&&(playlist.can_edit=playlist.owner.id==store.getState().spotify.me.id)}if(playlists_index[playlist.uri]&&(playlist=Object.assign({},playlists_index[playlist.uri],playlist),void 0===playlist.tracks_uris&&(playlist.tracks_uris=[])),playlist.tracks){var tracks=helpers.formatTracks(playlist.tracks),tracks_uris=helpers.arrayOf("uri",tracks);playlist.tracks_uris=tracks_uris,delete playlist.tracks,tracks_loaded=[].concat(_toConsumableArray(tracks_loaded),_toConsumableArray(tracks))}playlists_loaded.push(playlist)}}catch(err){_didIteratorError7=!0,_iteratorError7=err}finally{try{!_iteratorNormalCompletion7&&_iterator7.return&&_iterator7.return()}finally{if(_didIteratorError7)throw _iteratorError7}}action.playlists=playlists_loaded,tracks_loaded.length>0&&store.dispatch(coreActions.tracksLoaded(tracks_loaded)),next(action);break;case"USERS_LOADED":var users_index=Object.assign({},core.users),users_loaded=[],_iteratorNormalCompletion8=!0,_didIteratorError8=!1,_iteratorError8=void 0;try{for(var _step8,_iterator8=action.users[Symbol.iterator]();!(_iteratorNormalCompletion8=(_step8=_iterator8.next()).done);_iteratorNormalCompletion8=!0){var user=_step8.value;user=helpers.formatUser(user),users_index[user.uri]&&(user=Object.assign({},users_index[user.uri],user)),users_loaded.push(user)}}catch(err){_didIteratorError8=!0,_iteratorError8=err}finally{try{!_iteratorNormalCompletion8&&_iterator8.return&&_iterator8.return()}finally{if(_didIteratorError8)throw _iteratorError8}}action.users=users_loaded,next(action);break;case"USER_PLAYLISTS_LOADED":store.dispatch(coreActions.playlistsLoaded(action.playlists)),next(action);break;case"LOADED_MORE":var parent_type_plural=action.parent_type+"s",parent_index=Object.assign({},core[action.parent_type+"s"]),parent=Object.assign({},parent_index[action.parent_key]);if(void 0!==action.records_data.items)var records=action.records_data.items;else if(void 0!==action.records_data.tracks)var records=action.records_data.tracks;else if(void 0!==action.records_data.artists)var records=action.records_data.artists;else if(void 0!==action.records_data.albums)var records=action.records_data.albums;else if(void 0!==action.records_data.playlists)var records=action.records_data.playlists;else var records=action.records_data;"track"==action.records_type&&(records=helpers.formatTracks(records));var records_type_plural=action.records_type+"s",records_uris=helpers.arrayOf("uri",records);"playlist"==action.records_type&&(records_uris=helpers.upgradeSpotifyPlaylistUris(records_uris));var uris=records_uris;void 0!==parent[records_type_plural+"_uris"]&&(uris=[].concat(_toConsumableArray(parent[records_type_plural+"_uris"]),_toConsumableArray(uris))),parent[records_type_plural+"_uris"]=uris,void 0!==action.records_data.next&&(parent[records_type_plural+"_more"]=action.records_data.next);var parent_action={type:parent_type_plural.toUpperCase()+"_LOADED"};parent_action[parent_type_plural]=[parent],store.dispatch(parent_action);var records_action={type:records_type_plural.toUpperCase()+"_LOADED"};records_action[records_type_plural]=records,store.dispatch(records_action),next(action);break;default:return next(action)}}}}}();exports.default=CoreMiddleware},function(module,__webpack_exports__,__webpack_require__){"use strict";function format(s,titleCase){return Object(__WEBPACK_IMPORTED_MODULE_0__mightBeEmail__.a)(s)?(Object(__WEBPACK_IMPORTED_MODULE_2__console_warn__.a)("This arg looks like an email address, redacting."),redacted):titleCase?Object(__WEBPACK_IMPORTED_MODULE_1__toTitleCase__.a)(s):s}__webpack_exports__.a=format;var __WEBPACK_IMPORTED_MODULE_0__mightBeEmail__=__webpack_require__(143),__WEBPACK_IMPORTED_MODULE_1__toTitleCase__=__webpack_require__(144),__WEBPACK_IMPORTED_MODULE_2__console_warn__=__webpack_require__(52),redacted="REDACTED (Potential Email Address)"},function(module,__webpack_exports__,__webpack_require__){"use strict";function mightBeEmail(s){return/[^@]+@[^@]+/.test(s)}__webpack_exports__.a=mightBeEmail},function(module,__webpack_exports__,__webpack_require__){"use strict";function toTitleCase(string){return Object(__WEBPACK_IMPORTED_MODULE_0__trim__.a)(string).replace(/[A-Za-z0-9\u00C0-\u00FF]+[^\s-]*/g,function(match,index,title){return index>0&&index+match.length!==title.length&&match.search(smallWords)>-1&&":"!==title.charAt(index-2)&&("-"!==title.charAt(index+match.length)||"-"===title.charAt(index-1))&&title.charAt(index-1).search(/[^\s-]/)<0?match.toLowerCase():match.substr(1).search(/[A-Z]|\../)>-1?match:match.charAt(0).toUpperCase()+match.substr(1)})}__webpack_exports__.a=toTitleCase;var __WEBPACK_IMPORTED_MODULE_0__trim__=__webpack_require__(79),smallWords=/^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\.?|via)$/i},function(module,__webpack_exports__,__webpack_require__){"use strict";function removeLeadingSlash(string){return"/"===string.substring(0,1)?string.substring(1):string}__webpack_exports__.a=removeLeadingSlash},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_exports__.a=function(options){var gaAddress="https://www.google-analytics.com/analytics.js";options&&options.gaAddress?gaAddress=options.gaAddress:options&&options.debug&&(gaAddress="https://www.google-analytics.com/analytics_debug.js"),function(i,s,o,g,r,a,m){i.GoogleAnalyticsObject=r,i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date,a=s.createElement(o),m=s.getElementsByTagName(o)[0],a.async=1,a.src=g,m.parentNode.insertBefore(a,m)}(window,document,"script",gaAddress,"ga")}},function(module,__webpack_exports__,__webpack_require__){"use strict";function log(s){}__webpack_exports__.a=log},function(module,__webpack_exports__,__webpack_require__){"use strict";var gaCalls=[];__webpack_exports__.a={calls:gaCalls,ga:function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];gaCalls.push(args.concat())},resetCalls:function(){gaCalls.length=0}}},function(module,__webpack_exports__,__webpack_require__){"use strict";function _typeof(obj){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj})(obj)}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{},ownKeys=Object.keys(source);"function"==typeof Object.getOwnPropertySymbols&&(ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))),ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function _objectWithoutProperties(source,excluded){if(null==source)return{};var key,i,target=_objectWithoutPropertiesLoose(source,excluded);if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++)key=sourceSymbolKeys[i],excluded.indexOf(key)>=0||Object.prototype.propertyIsEnumerable.call(source,key)&&(target[key]=source[key])}return target}function _objectWithoutPropertiesLoose(source,excluded){if(null==source)return{};var key,i,target={},sourceKeys=Object.keys(source);for(i=0;i<sourceKeys.length;i++)key=sourceKeys[i],excluded.indexOf(key)>=0||(target[key]=source[key]);return target}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}function _possibleConstructorReturn(self,call){return!call||"object"!==_typeof(call)&&"function"!=typeof call?_assertThisInitialized(self):call}function _getPrototypeOf(o){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(o){return o.__proto__||Object.getPrototypeOf(o)})(o)}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function");subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:!0,configurable:!0}}),superClass&&_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){return(_setPrototypeOf=Object.setPrototypeOf||function(o,p){return o.__proto__=p,o})(o,p)}function _assertThisInitialized(self){if(void 0===self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return self}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}__webpack_require__.d(__webpack_exports__,"a",function(){return OutboundLink});var __WEBPACK_IMPORTED_MODULE_0_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_0_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__),__WEBPACK_IMPORTED_MODULE_1_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_1_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__),__WEBPACK_IMPORTED_MODULE_2__utils_console_warn__=__webpack_require__(52),NEWTAB="_blank",MIDDLECLICK=1,OutboundLink=function(_Component){function OutboundLink(){var _getPrototypeOf2,_this;_classCallCheck(this,OutboundLink);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _this=_possibleConstructorReturn(this,(_getPrototypeOf2=_getPrototypeOf(OutboundLink)).call.apply(_getPrototypeOf2,[this].concat(args))),_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)),"handleClick",function(event){var _this$props=_this.props,target=_this$props.target,eventLabel=_this$props.eventLabel,to=_this$props.to,onClick=_this$props.onClick,eventMeta={label:eventLabel},sameTarget=target!==NEWTAB,normalClick=!(event.ctrlKey||event.shiftKey||event.metaKey||event.button===MIDDLECLICK);sameTarget&&normalClick?(event.preventDefault(),OutboundLink.trackLink(eventMeta,function(){window.location.href=to})):OutboundLink.trackLink(eventMeta,function(){}),onClick&&onClick(event)}),_this}return _inherits(OutboundLink,_Component),_createClass(OutboundLink,[{key:"render",value:function(){var _this$props2=this.props,href=_this$props2.to,oldProps=_objectWithoutProperties(_this$props2,["to"]),props=_objectSpread({},oldProps,{href:href,onClick:this.handleClick});return this.props.target===NEWTAB&&(props.rel="noopener noreferrer"),delete props.eventLabel,__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("a",props)}}]),OutboundLink}(__WEBPACK_IMPORTED_MODULE_0_react__.Component);_defineProperty(OutboundLink,"trackLink",function(){Object(__WEBPACK_IMPORTED_MODULE_2__utils_console_warn__.a)("ga tracking not enabled")}),_defineProperty(OutboundLink,"propTypes",{eventLabel:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,target:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,to:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,onClick:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func}),_defineProperty(OutboundLink,"defaultProps",{target:null,to:null,onClick:null})},function(module,exports,__webpack_require__){"use strict";(function($){Object.defineProperty(exports,"__esModule",{value:!0});var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_reactGa=__webpack_require__(13),_reactGa2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_reactGa),uiActions=__webpack_require__(2),UIMiddleware=(__webpack_require__(6),__webpack_require__(1),function(){return function(store){return function(next){return function(action){switch(action.type){case"MOPIDY_STATE":var tracks=store.getState().core.tracks,current_track_uri=store.getState().core.current_track;void 0!==tracks[current_track_uri]&&tracks[current_track_uri],next(action);break;case"SET_WINDOW_TITLE":var window_title="";if(action.play_state)var play_state=action.play_state;else var play_state=store.getState().mopidy.play_state;if(window_title="playing"==play_state?"▶":"■",action.title)var title=action.title;else var title=store.getState().ui.window_title;document.title=window_title+" "+title,next(action);break;case"OPEN_MODAL":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Modal",action:"Opened",label:action.modal.name}),$("body").addClass("modal-open"),store.dispatch(uiActions.hideContextMenu()),store.dispatch(uiActions.hideTouchContextMenu()),next(action);break;case"CLOSE_MODAL":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Modal",action:"Closed",label:null}),$("body").removeClass("modal-open"),next(action);break;case"HIDE_CONTEXT_MENU":store.getState().ui.context_menu&&(setTimeout(function(){store.dispatch(uiActions.removeContextMenu())},200),next(action));break;case"HIDE_TOUCH_CONTEXT_MENU":store.getState().ui.context_menu&&(setTimeout(function(){store.dispatch(uiActions.removeTouchContextMenu())},200),next(action));break;case"BROWSER_NOTIFICATION":var notification=window.Notification||window.mozNotification||window.webkitNotification;if(void 0===notification)return!1;void 0!==notification&&notification.requestPermission(function(permission){});var data={};_typeof(action.data)&&(data=action.data),_typeof(data.data)&&(data=Object.assign({},data,data.data));var title="",options={body:"",dir:"auto",lang:"EN",tag:"iris"};data.title&&(title=data.title),data.body&&(options.body=data.body),data.icon&&(options.icon=data.icon);var notification=new notification(title,options);break;case"CREATE_NOTIFICATION":if(!action.notification.sticky){setTimeout(function(){store.dispatch(uiActions.closeNotification(action.notification.key))},1e3*action.notification.duration)}next(action);break;case"CLOSE_NOTIFICATION":var notifications=Object.assign({},store.getState().ui.notifications);setTimeout(function(){store.dispatch(uiActions.removeNotification(action.key))},200);next(action);break;case"REMOVE_NOTIFICATION":if(action.manual){var notifications=Object.assign({},store.getState().ui.notifications);notifications[action.key]&&"broadcast"==notifications[action.key].type&&store.dispatch({type:"SUPPRESS_BROADCAST",key:action.key})}next(action);break;case"BROADCASTS_LOADED":var suppressed_broadcasts=[];void 0!==store.getState().ui.suppressed_broadcasts&&(suppressed_broadcasts=store.getState().ui.suppressed_broadcasts);for(var i=0;i<action.broadcasts.length;i++){var broadcast=action.broadcasts[i];if(!suppressed_broadcasts.includes(broadcast.key)&&broadcast.message){var data={key:broadcast.key?broadcast.key:null,title:broadcast.title?broadcast.title:null,content:broadcast.message?broadcast.message:null,links:broadcast.links?broadcast.links:null,type:"broadcast",sticky:!0};store.dispatch(uiActions.createNotification(data))}}next(action);break;case"START_PROCESS":store.dispatch({type:action.key,data:action.data}),store.dispatch({type:action.key+"_STARTED"}),next(action);break;case"RESUME_PROCESS":store.dispatch({type:action.key,data:store.getState().ui.processes[action.key].data}),next(action);break;case"PROCESS_CANCELLED":store.dispatch({type:action.key+"_CANCELLED"}),next(action);break;case"PROCESS_FINISHING":setTimeout(function(){store.dispatch(uiActions.processFinished(action.key))},200);next(action);break;case"PROCESS_FINISHED":store.dispatch({type:action.key+"_FINISHED"}),next(action);break;default:return next(action)}}}}}());exports.default=UIMiddleware}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";(function($){Object.defineProperty(exports,"__esModule",{value:!0});var _reactGa=__webpack_require__(13),_reactGa2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_reactGa),helpers=__webpack_require__(1),coreActions=__webpack_require__(9),uiActions=__webpack_require__(2),pusherActions=(__webpack_require__(6),__webpack_require__(12)),lastfmActions=__webpack_require__(16),geniusActions=__webpack_require__(32),spotifyActions=__webpack_require__(8),snapcastActions=__webpack_require__(36),PusherMiddleware=function(){var _this=this,socket=null,deferredRequests=[],handleMessage=function(ws,store,message){store.getState().ui.log_pusher&&console.log("Pusher log (incoming)",message);var id=null;if(message.id?id=message.id:message.error&&message.error.id&&(id=message.error.id),id)void 0!==deferredRequests[id]?(store.dispatch(uiActions.stopLoading(id)),void 0!==message.error?deferredRequests[id].reject(message.error):deferredRequests[id].resolve(message.result)):store.dispatch(coreActions.handleException("Pusher: Response received with no matching request",message));else if(void 0!==message.error)store.dispatch(coreActions.handleException("Pusher: "+message.error.message,message,void 0!==message.error.data&&void 0!==message.error.data.description?message.error.data.description:null));else{switch(message.method){case"connection_added":store.dispatch(pusherActions.connectionAdded(message.params.connection));break;case"connection_changed":store.dispatch(pusherActions.connectionChanged(message.params.connection));break;case"connection_removed":store.dispatch(pusherActions.connectionRemoved(message.params.connection));break;case"queue_metadata_changed":store.dispatch(pusherActions.queueMetadataChanged(message.params.queue_metadata));break;case"spotify_token_changed":store.dispatch(spotifyActions.tokenChanged(message.params.spotify_token));break;case"share_configuration_received":store.dispatch(uiActions.createNotification({type:"share-configuration-received",configuration:message.params,sticky:!0}));break;case"notification":store.dispatch(uiActions.createNotification(message.params.notification));break;case"radio_started":store.dispatch(pusherActions.radioStarted(message.params.radio));break;case"radio_changed":store.dispatch(pusherActions.radioChanged(message.params.radio));break;case"radio_stopped":store.dispatch(pusherActions.radioStopped());break;case"commands_changed":store.dispatch(pusherActions.commandsUpdated(message.params.commands));break;case"reload":window.location.reload(!0);break;case"local_scan_started":store.dispatch(uiActions.updateProcess("local_scan","Scanning local library"));break;case"local_scan_finished":store.dispatch(uiActions.processFinished("local_scan")),store.dispatch(uiActions.createNotification({key:"local_scan",type:"info",content:"Local scan finished",description:message.params.output}));break;case"local_scan_error":store.dispatch(uiActions.processFinished("local_scan")),store.dispatch(uiActions.createNotification({type:"bad",content:message.params.message,description:message.params.description}));break;case"upgrade_started":store.dispatch(uiActions.updateProcess("upgrade","Upgrading"));break;case"upgrade_finished":store.dispatch(uiActions.updateProcess("upgrade","Restarting to complete upgrade"));break;case"upgrade_error":store.dispatch(uiActions.processFinished("upgrade")),store.dispatch(uiActions.createNotification({type:"bad",content:message.params.message,description:message.params.description}));break;case"restart_started":store.dispatch(uiActions.processFinished("upgrade")),store.dispatch(uiActions.createNotification({type:"info",content:"Restarting server..."}));break;case"restart_error":store.dispatch(uiActions.processFinished("upgrade")),store.dispatch(uiActions.createNotification({type:"bad",content:message.params.message,description:message.params.description}));break;case"test_started":store.dispatch(uiActions.updateProcess("test","Running test"));break;case"test_finished":store.dispatch(uiActions.processFinished("test")),store.dispatch(uiActions.createNotification({type:"info",content:"Test finished",description:message.params.output}));break;case"test_error":store.dispatch(uiActions.processFinished("test")),store.dispatch(uiActions.createNotification({type:"bad",content:message.params.message,description:message.params.description}))}message.method.startsWith("snapcast_")&&store.dispatch(snapcastActions.eventReceived(message))}},request=function(store,method){var params=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return new Promise(function(resolve,reject){var id=helpers.generateGuid(),message={jsonrpc:"2.0",id:id,method:method};params&&(message.params=params),store.getState().ui.log_pusher&&console.log("Pusher log (outgoing)",message),socket.send(JSON.stringify(message)),store.dispatch(uiActions.startLoading(id,"pusher_"+method));setTimeout(function(){store.dispatch(uiActions.stopLoading(id)),reject({id:id,code:32300,message:"Request timed out"})},3e4);deferredRequests[id]={resolve:resolve,reject:reject}})};return function(store){return function(next){return function(action){var pusher=store.getState().pusher;switch(action.type){case"PUSHER_CONNECT":null!=socket&&socket.close(),store.dispatch({type:"PUSHER_CONNECTING"});var state=store.getState(),connection={client_id:helpers.generateGuid(),connection_id:helpers.generateGuid(),username:"Anonymous"};state.pusher.username&&(connection.username=state.pusher.username),connection.username=connection.username.replace(/\W/g,""),socket=new WebSocket("ws"+("https:"===window.location.protocol?"s":"")+"://"+state.mopidy.host+":"+state.mopidy.port+"/iris/ws/",[connection.client_id,connection.connection_id,connection.username]),socket.onopen=function(){store.dispatch({type:"PUSHER_CONNECTED",connection_id:connection.connection_id,client_id:connection.client_id,username:connection.username})},socket.onclose=function(){store.dispatch({type:"PUSHER_DISCONNECTED"}),setTimeout(function(){store.dispatch(pusherActions.connect())},5e3)},socket.onmessage=function(message){var message=JSON.parse(message.data);handleMessage(0,store,message)};break;case"PUSHER_CONNECTED":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Pusher",action:"Connected",label:action.username}),store.dispatch(pusherActions.getConfig()),store.dispatch(pusherActions.getRadio()),store.dispatch(pusherActions.getCommands()),store.dispatch(pusherActions.getQueueMetadata()),setTimeout(function(){store.dispatch(pusherActions.getVersion())},500),next(action);break;case"PUSHER_REQUEST":request(store,action.method,action.params).then(function(response){action.response_callback&&action.response_callback.call(_this,response)},function(error){action.error_callback?action.error_callback.call(_this,error):store.dispatch(coreActions.handleException("Pusher request failed",error,action.method,action))});break;case"PUSHER_DELIVER_MESSAGE":request(store,"send_message",action.data).then(function(response){store.dispatch(uiActions.createNotification({type:"info",content:"Message delivered"}))},function(error){store.dispatch(coreActions.handleException("Could not deliver message",error))});break;case"PUSHER_DELIVER_BROADCAST":request(store,"broadcast",action.data);break;case"PUSHER_GET_QUEUE_METADATA":request(store,"get_queue_metadata").then(function(response){response.type="PUSHER_QUEUE_METADATA",store.dispatch(response)},function(error){store.dispatch(coreActions.handleException("Could not load queue metadata",error))});break;case"PUSHER_ADD_QUEUE_METADATA":request(store,"add_queue_metadata",{tlids:action.tlids,added_from:action.from_uri,added_by:pusher.username});break;case"PUSHER_SET_USERNAME":return request(store,"set_username",{username:action.username}).then(function(response){response.type="PUSHER_USERNAME_CHANGED",store.dispatch(response)},function(error){store.dispatch(coreActions.handleException("Could not set username",error)),action.force&&(response.type="PUSHER_USERNAME_CHANGED",store.dispatch(response))}),next(action);case"PUSHER_GET_VERSION":request(store,"get_version").then(function(response){store.dispatch({type:"PUSHER_VERSION",version:response.version})},function(error){store.dispatch(coreActions.handleException("Could not load version",error))});break;case"PUSHER_GET_CONFIG":request(store,"get_config").then(function(response){store.dispatch({type:"PUSHER_CONFIG",config:response.config})},function(error){store.dispatch(coreActions.handleException("Could not load config",error))});break;case"PUSHER_GET_CONNECTIONS":return request(store,"get_connections").then(function(response){store.dispatch({type:"PUSHER_CONNECTIONS",connections:response.connections})},function(error){store.dispatch(coreActions.handleException("Could not load connections",error))}),next(action);case"PUSHER_GET_COMMANDS":request(store,"get_commands").then(function(response){store.dispatch(pusherActions.commandsUpdated(response.commands))},function(error){}),next(action);break;case"PUSHER_SET_COMMAND":var commands_index=Object.assign({},pusher.commands);if(commands_index[action.command.id])var command=Object.assign({},commands_index[action.command.id],action.command);else var command=action.command;commands_index[action.command.id]=command,request(store,"set_commands",{commands:commands_index}).then(function(response){},function(error){store.dispatch(coreActions.handleException("Could not set commands",error))}),next(action);break;case"PUSHER_REMOVE_COMMAND":var commands_index=Object.assign({},pusher.commands);delete commands_index[action.id],request(store,"set_commands",{commands:commands_index}).then(function(response){},function(error){store.dispatch(coreActions.handleException("Could not remove command",error))}),next(action);break;case"PUSHER_SEND_COMMAND":var command=Object.assign({},pusher.commands[action.id]),notification_key="command_"+action.id;action.notify&&store.dispatch(uiActions.startProcess(notification_key,"Sending command"));try{var ajax_settings=JSON.parse(command.command)}catch(error){store.dispatch(uiActions.createNotification({key:notification_key,type:"bad",content:"Command failed",description:error}));break}ajax_settings.success=function(response){action.notify&&(store.dispatch(uiActions.processFinished(notification_key)),store.dispatch(uiActions.createNotification({key:notification_key,type:"info",content:"Command sent"})))},ajax_settings.error=function(xhr,status,error){console.error("Command failed, response was:",xhr,error),store.dispatch(uiActions.processFinished(notification_key)),store.dispatch(uiActions.createNotification({key:notification_key,type:"bad",content:"Command failed",description:xhr.status+": "+error}))},$.ajax(ajax_settings);break;case"PUSHER_GET_RADIO":request(store,"get_radio").then(function(response){store.dispatch({type:"PUSHER_RADIO_LOADED",radio:response.radio})},function(error){store.dispatch(coreActions.handleException("Could not load radio",error))});break;case"PUSHER_START_RADIO":case"PUSHER_UPDATE_RADIO":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Pusher",action:"Start radio",label:action.uris.join()}),"PUSHER_UPDATE_RADIO"==action.type?store.dispatch(uiActions.startProcess("PUSHER_RADIO_PROCESS","Updating radio")):store.dispatch(uiActions.startProcess("PUSHER_RADIO_PROCESS","Starting radio"));for(var data={reset:"PUSHER_START_RADIO"==action.type,seed_artists:[],seed_genres:[],seed_tracks:[]},i=0;i<action.uris.length;i++)switch(helpers.uriType(action.uris[i])){case"artist":data.seed_artists.push(action.uris[i]);break;case"track":data.seed_tracks.push(action.uris[i]);break;case"genre":data.seed_genres.push(action.uris[i])}"PUSHER_START_RADIO"==action.type&&store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{type:"info",content:pusher.username+" is starting radio mode"}})),request(store,"change_radio",data).then(function(response){store.dispatch(uiActions.processFinishing("PUSHER_RADIO_PROCESS")),0==response.status&&store.dispatch(uiActions.createNotification({content:response.message,type:"bad"})),store.dispatch(pusherActions.radioChanged(response.radio))},function(error){store.dispatch(uiActions.processFinishing("PUSHER_RADIO_PROCESS")),store.dispatch(coreActions.handleException("Could not change radio",error))});break;case"PUSHER_STOP_RADIO":store.dispatch(uiActions.createNotification({content:"Stopping radio"})),store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Pusher",action:"Stop radio"}),store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{type:"info",content:pusher.username+" stopped radio mode"}}));var data={seed_artists:[],seed_genres:[],seed_tracks:[]};request(store,"stop_radio",data).then(function(response){store.dispatch(pusherActions.radioStopped())},function(error){store.dispatch(coreActions.handleException("Could not stop radio",error))});break;case"PUSHER_BROWSER_NOTIFICATION":store.dispatch(uiActions.createBrowserNotification(action));break;case"PUSHER_NOTIFICATION":var data=Object.assign({},action,{type:action.notification_type});store.dispatch(uiActions.createNotification(data));break;case"PUSHER_RELOAD":window.location.reload(!0);break;case"PUSHER_RESTART":request(store,"restart"),next(action);break;case"PUSHER_UPGRADE":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Pusher",action:"Upgrade",label:""}),request(store,"upgrade");break;case"PUSHER_LOCAL_SCAN":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Pusher",action:"Local scan",label:""}),request(store,"local_scan");break;case"PUSHER_TEST":request(store,"test");break;case"PUSHER_VERSION":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Pusher",action:"Version",label:action.version.current}),next(action);break;case"PUSHER_CONFIG":var spotify=store.getState().spotify,spotify_updated=!1,spotify_updates={};!spotify.country&&action.config.country&&(spotify_updates.country=action.config.country,spotify_updated=!0),!spotify.locale&&action.config.locale&&(spotify_updates.locale=action.config.locale,spotify_updated=!0),action.config.spotify_authorization_url&&(spotify_updates.authorization_url=action.config.spotify_authorization_url,spotify_updated=!0),spotify_updated&&store.dispatch(spotifyActions.set(spotify_updates)),store.dispatch(lastfmActions.set({authorization_url:action.config.lastfm_authorization_url?action.config.lastfm_authorization_url:null})),store.dispatch(geniusActions.set({authorization_url:action.config.genius_authorization_url?action.config.genius_authorization_url:null})),next(action);break;case"PUSHER_DEBUG":request(store,action.message.method,action.message.data).then(function(response){store.dispatch({type:"DEBUG",response:response})},function(error){store.dispatch(coreActions.handleException("Could not debug",error,error.message))});break;case"PUSHER_ERROR":store.dispatch(uiActions.createNotification(action.message,"bad")),store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Pusher",action:"Error",label:action.message});break;default:return next(action)}}}}}();exports.default=PusherMiddleware}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}Object.defineProperty(exports,"__esModule",{value:!0});var _reactGa=__webpack_require__(13),_reactGa2=_interopRequireDefault(_reactGa),_mopidy=__webpack_require__(153),_mopidy2=_interopRequireDefault(_mopidy),_jsSha=__webpack_require__(84),_helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers),mopidyActions=__webpack_require__(6),coreActions=__webpack_require__(9),uiActions=__webpack_require__(2),spotifyActions=__webpack_require__(8),pusherActions=__webpack_require__(12),googleActions=__webpack_require__(55),lastfmActions=__webpack_require__(16),MopidyMiddleware=function(){var _this=this,socket=null,progress_interval=null,progress_interval_counter=0,handleMessage=function(ws,store,type,data){switch(store.getState().ui.log_mopidy,type){case"state:online":store.dispatch({type:"MOPIDY_CONNECTED"}),store.dispatch(mopidyActions.getPlayState()),store.dispatch(mopidyActions.getVolume()),store.dispatch(mopidyActions.getMute()),store.dispatch(mopidyActions.getConsume()),store.dispatch(mopidyActions.getRandom()),store.dispatch(mopidyActions.getRepeat()),store.dispatch(mopidyActions.getQueue()),store.dispatch(mopidyActions.getCurrentTrack()),store.dispatch(mopidyActions.getTimePosition()),store.dispatch(mopidyActions.getUriSchemes()),progress_interval=setInterval(function(){"playing"==store.getState().mopidy.play_state&&(progress_interval_counter%5==0&&!0===store.getState().ui.window_focus?store.dispatch(mopidyActions.getTimePosition()):store.dispatch(mopidyActions.timePosition(store.getState().mopidy.time_position+1e3)),progress_interval_counter++)},1e3);break;case"state:offline":store.dispatch({type:"MOPIDY_DISCONNECTED"}),store.dispatch(mopidyActions.clearCurrentTrack()),clearInterval(progress_interval),progress_interval_counter=0;break;case"event:tracklistChanged":store.dispatch(mopidyActions.getQueue()),setTimeout(function(){store.dispatch(mopidyActions.getNextTrack())},1e3);break;case"event:playbackStateChanged":store.dispatch({type:"MOPIDY_PLAY_STATE",play_state:data.new_state}),store.dispatch(mopidyActions.getTimePosition());break;case"event:seeked":store.dispatch({type:"MOPIDY_TIME_POSITION",time_position:data.time_position});break;case"event:trackPlaybackEnded":store.dispatch(mopidyActions.clearCurrentTrack()),store.dispatch({type:"MOPIDY_TIME_POSITION",time_position:0});break;case"event:trackPlaybackStarted":store.dispatch(mopidyActions.currentTrackLoaded(data.tl_track)),setTimeout(function(){store.dispatch(mopidyActions.getNextTrack())},1e3);break;case"event:volumeChanged":store.dispatch({type:"MOPIDY_VOLUME",volume:data.volume});break;case"event:muteChanged":store.dispatch({type:"MOPIDY_MUTE",mute:data.mute});break;case"event:optionsChanged":store.dispatch(mopidyActions.getConsume()),store.dispatch(mopidyActions.getRandom()),store.dispatch(mopidyActions.getRepeat())}},request=function(ws,store,call){var value=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(!store.getState().mopidy.connected)return!1;var callParts=call.split("."),model=callParts[0],method=callParts[1];return new Promise(function(resolve,reject){if(method in ws[model])var mopidyObject=ws[model][method],property=method;else var mopidyObject=ws[model],property=model;if(!mopidyObject||"function"!=typeof mopidyObject){var error={message:"Call to an invalid object. Check you are calling a valid Mopidy object.",call:call,value:value};store.dispatch(coreActions.handleException("Mopidy: "+error.message,error)),reject(error)}var loader_key=helpers.generateGuid();store.dispatch(uiActions.startLoading(loader_key,"mopidy_"+property));var timeout=setTimeout(function(){store.dispatch(uiActions.stopLoading(loader_key)),reject({message:"Request timed out",call:call,value:value})},3e4);mopidyObject(value).then(function(response){clearTimeout(timeout),store.dispatch(uiActions.stopLoading(loader_key)),resolve(response)},function(error){clearTimeout(timeout),store.dispatch(uiActions.stopLoading(loader_key)),reject(error)})})};return function(store){return function(next){return function(action){switch(action.type){case"MOPIDY_CONNECT":null!=socket&&socket.close(),store.dispatch({type:"MOPIDY_CONNECTING"});var state=store.getState();socket=new _mopidy2.default({webSocketUrl:"ws"+("https:"===window.location.protocol?"s":"")+"://"+state.mopidy.host+":"+state.mopidy.port+"/mopidy/ws/",callingConvention:"by-position-or-by-name"}),socket.on(function(type,data){return handleMessage(0,store,type,data)});break;case"MOPIDY_CONNECTED":if(store.getState().ui.allow_reporting){var hashed_hostname=(0,_jsSha.sha256)(window.location.hostname);_reactGa2.default.event({category:"Mopidy",action:"Connected",label:hashed_hostname})}store.dispatch(uiActions.createNotification({content:"Mopidy connected"})),next(action);break;case"MOPIDY_DISCONNECT":null!=socket&&socket.close(),socket=null,store.dispatch({type:"MOPIDY_DISCONNECTED"});break;case"MOPIDY_DISCONNECTED":store.dispatch(uiActions.createNotification({type:"bad",content:"Mopidy disconnected"}));break;case"MOPIDY_DEBUG":request(socket,store,action.call,action.value).then(function(response){store.dispatch({type:"DEBUG",response:response})});break;case"SET_WINDOW_FOCUS":!0===action.window_focus&&(store.dispatch(mopidyActions.getPlayState()),store.dispatch(mopidyActions.getVolume()),store.dispatch(mopidyActions.getMute()),store.dispatch(mopidyActions.getConsume()),store.dispatch(mopidyActions.getRandom()),store.dispatch(mopidyActions.getRepeat()),store.dispatch(mopidyActions.getCurrentTrack()),store.dispatch(mopidyActions.getTimePosition()));break;case"MOPIDY_REQUEST":request(socket,store,action.method,action.params).then(function(response){action.response_callback&&store.dispatch(action.response_callback.call(_this,response))},function(error){action.error_callback?store.dispatch(action.error_callback.call(_this,error)):store.dispatch(coreActions.handleException("Mopidy request failed",error,action.method,action))});break;case"MOPIDY_PLAY_STATE":store.dispatch(uiActions.setWindowTitle(null,action.play_state)),next(action);break;case"MOPIDY_GET_PLAY_STATE":request(socket,store,"playback.getState").then(function(response){store.dispatch({type:"MOPIDY_PLAY_STATE",play_state:response})});break;case"MOPIDY_PLAY":request(socket,store,"playback.play").then(function(response){store.dispatch({type:"MOPIDY_PLAY_STATE",play_state:"playing"})}),store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{content:store.getState().pusher.username+("paused"==store.getState().mopidy.play_state?" resumed":" started")+" playback",icon:!!store.getState().core.current_track&&helpers.getTrackIcon(store.getState().core.current_track,store.getState().core)}}));break;case"MOPIDY_PAUSE":request(socket,store,"playback.pause").then(function(response){store.dispatch({type:"MOPIDY_PLAY_STATE",play_state:"paused"}),store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{content:store.getState().pusher.username+" paused playback",icon:!!store.getState().core.current_track&&helpers.getTrackIcon(store.getState().core.current_track,store.getState().core)}}))});break;case"MOPIDY_PREVIOUS":store.dispatch(uiActions.setCurrentTrackTransition("previous")),request(socket,store,"playback.previous");break;case"MOPIDY_NEXT":store.dispatch(uiActions.setCurrentTrackTransition("next")),request(socket,store,"playback.next").then(function(response){store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{content:store.getState().pusher.username+' skipped "'+store.getState().core.current_track.name+'"',icon:!!store.getState().core.current_track&&helpers.getTrackIcon(store.getState().core.current_track,store.getState().core)}}))});break;case"MOPIDY_STOP":request(socket,store,"playback.stop").then(function(response){store.dispatch(mopidyActions.clearCurrentTrack()),store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{content:store.getState().pusher.username+" stopped playback",icon:!!store.getState().core.current_track&&helpers.getTrackIcon(store.getState().core.current_track,store.getState().core)}}))});break;case"MOPIDY_CHANGE_TRACK":request(socket,store,"playback.play",{tlid:action.tlid}).then(function(response){store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{content:store.getState().pusher.username+" changed track"}}))});break;case"MOPIDY_REMOVE_TRACKS":request(socket,store,"tracklist.remove",{tlid:action.tlids}).then(function(response){store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{content:store.getState().pusher.username+" removed "+action.tlids.length+" tracks"}}))});break;case"MOPIDY_GET_REPEAT":request(socket,store,"tracklist.getRepeat").then(function(response){store.dispatch({type:"MOPIDY_REPEAT",repeat:response})});break;case"MOPIDY_SET_REPEAT":request(socket,store,"tracklist.setRepeat",[action.repeat]);break;case"MOPIDY_GET_RANDOM":request(socket,store,"tracklist.getRandom").then(function(response){store.dispatch({type:"MOPIDY_RANDOM",random:response})});break;case"MOPIDY_SET_RANDOM":request(socket,store,"tracklist.setRandom",[action.random]);break;case"MOPIDY_GET_CONSUME":request(socket,store,"tracklist.getConsume").then(function(response){store.dispatch({type:"MOPIDY_CONSUME",consume:response})});break;case"MOPIDY_SET_CONSUME":request(socket,store,"tracklist.setConsume",[action.consume]);break;case"MOPIDY_GET_MUTE":request(socket,store,"mixer.getMute").then(function(response){store.dispatch({type:"MOPIDY_MUTE",mute:response})});break;case"MOPIDY_SET_MUTE":request(socket,store,"mixer.setMute",[action.mute]).then(function(response){store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{content:store.getState().pusher.username+(action.mute?" muted":" unmuted")+" playback"}}))});break;case"MOPIDY_GET_VOLUME":request(socket,store,"playback.getVolume").then(function(response){store.dispatch({type:"MOPIDY_VOLUME",volume:response})});break;case"MOPIDY_SET_VOLUME":request(socket,store,"playback.setVolume",{volume:action.volume}).then(function(response){store.dispatch({type:"MOPIDY_VOLUME",volume:action.volume})});break;case"MOPIDY_SET_TIME_POSITION":request(socket,store,"playback.seek",{time_position:action.time_position}).then(function(response){store.dispatch({type:"MOPIDY_TIME_POSITION",time_position:action.time_position})});break;case"MOPIDY_GET_TIME_POSITION":request(socket,store,"playback.getTimePosition").then(function(response){store.dispatch({type:"MOPIDY_TIME_POSITION",time_position:response})});break;case"MOPIDY_GET_URI_SCHEMES":request(socket,store,"getUriSchemes").then(function(response){for(var uri_schemes=response,remove=["http","https","mms","rtmp","rtmps","rtsp","sc","yt"],i=0;i<remove.length;i++){var index=uri_schemes.indexOf(remove[i]);index>-1&&uri_schemes.splice(index,1)}for(var i=0;i<uri_schemes.length;i++)uri_schemes[i]=uri_schemes[i]+":";store.dispatch(spotifyActions.set({enabled:uri_schemes.includes("spotify:")})),store.dispatch(googleActions.set({enabled:uri_schemes.includes("gmusic:")})),void 0===store.getState().ui.uri_schemes_search_enabled&&store.dispatch(uiActions.set({uri_schemes_search_enabled:uri_schemes})),store.dispatch({type:"MOPIDY_URI_SCHEMES",uri_schemes:uri_schemes})});break;case"MOPIDY_PLAY_PLAYLIST":var playlist=store.getState().core.playlists[action.uri];if(playlist&&playlist.tracks_uris&&playlist.tracks_uris.length>0){if(playlist.tracks_total==playlist.tracks_uris.length){store.dispatch(mopidyActions.playURIs(playlist.tracks_uris,action.uri,action.shuffle));break}if("spotify"==playlist.provider){store.dispatch(spotifyActions.getAllPlaylistTracks(action.uri,action.shuffle,"play"));break}}else if("spotify"==helpers.uriSource(action.uri)&&store.getState().spotify.enabled){store.dispatch(spotifyActions.getAllPlaylistTracks(action.uri,action.shuffle,"play"));break}request(socket,store,"playlists.lookup",{uri:action.uri}).then(function(response){if(response&&void 0!==response.tracks&&response.tracks){var tracks_uris=helpers.arrayOf("uri",response.tracks);action.shuffle&&(tracks_uris=helpers.shuffle(tracks_uris)),store.dispatch(mopidyActions.playURIs(tracks_uris,action.uri))}else store.dispatch(uiActions.createNotification({content:"Failed to load playlist tracks",type:"bad"}))},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Lookup failed"),error))});break;case"MOPIDY_ENQUEUE_PLAYLIST":var playlist=store.getState().core.playlists[action.uri];if(playlist&&playlist.tracks_uris&&playlist.tracks_uris.length>0){if(playlist.tracks_total==playlist.tracks_uris.length){var tracks_uris=Object.assign([],playlist.tracks_uris);action.shuffle&&(tracks_uris=helpers.shuffle(tracks_uris)),store.dispatch(mopidyActions.enqueueURIs(tracks_uris,action.uri,action.play_next,action.at_position,action.offset));break}if("spotify"==playlist.provider){store.dispatch(spotifyActions.getAllPlaylistTracks(action.uri,action.shuffle,"enqueue",action.play_next));break}}else if("spotify"==helpers.uriSource(action.uri)&&store.getState().spotify.enabled){store.dispatch(spotifyActions.getAllPlaylistTracks(action.uri,action.shuffle,"enqueue",action.play_next));break}request(socket,store,"playlists.lookup",{uri:action.uri}).then(function(response){if(void 0===response.tracks)store.dispatch(uiActions.createNotification({content:"Failed to load playlist tracks",type:"bad"}));else{var tracks_uris=helpers.arrayOf("uri",response.tracks);action.shuffle&&(tracks_uris=helpers.shuffle(tracks_uris)),store.dispatch(mopidyActions.enqueueURIs(tracks_uris,action.uri,action.play_next,action.at_position,action.offset))}},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Lookup failed"),error))});break;case"MOPIDY_ENQUEUE_URIS":if(!action.uris||action.uris.length<=0){_this.props.uiActions.createNotification({content:"No URIs to enqueue",type:"warning"});break}store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{content:store.getState().pusher.username+" is adding "+action.uris.length+" URIs to queue",icon:!!store.getState().core.current_track&&helpers.getTrackIcon(store.getState().core.current_track,store.getState().core)}}));for(var uris=Object.assign([],action.uris),batches=[];uris.length>0;)batches.push({uris:uris.splice(0,5),at_position:action.at_position,play_next:action.play_next,offset:action.offset+5*batches.length,from_uri:action.from_uri});action.batches=batches,next(action),store.dispatch(uiActions.startProcess("MOPIDY_ENQUEUE_URIS_PROCESSOR","Adding "+action.uris.length+" URI(s)",{batches:batches,remaining:action.uris.length,total:action.uris.length}));break;case"MOPIDY_ENQUEUE_URIS_PROCESSOR":var last_run=store.getState().ui.processes.MOPIDY_ENQUEUE_URIS_PROCESSOR;if(last_run&&"cancelling"==last_run.status)return void store.dispatch(uiActions.processCancelled("MOPIDY_ENQUEUE_URIS_PROCESSOR"));if(!(action.data.batches&&action.data.batches.length>0)){store.dispatch(uiActions.processFinishing("MOPIDY_ENQUEUE_URIS_PROCESSOR"));break}for(var batches=Object.assign([],action.data.batches),batch=batches[0],total_uris=0,i=0;i<batches.length;i++)total_uris+=batches[i].uris.length;batches.shift(),store.dispatch(uiActions.updateProcess("MOPIDY_ENQUEUE_URIS_PROCESSOR","Adding "+total_uris+" URI(s)",{remaining:total_uris}));var current_track=store.getState().core.current_track,queue=store.getState().core.queue,current_track_index=-1;if(current_track)for(var i=0;i<queue.length;i++)if(queue[i].tlid==current_track.tlid){current_track_index=i;break}var params={uris:batch.uris};batch.play_next?params.at_position=current_track_index>-1?current_track_index+batch.offset+1:0+batch.offset:batch.at_position&&(params.at_position=batch.at_position+batch.offset),request(socket,store,"tracklist.add",params).then(function(response){for(var tlids=[],i=0;i<response.length;i++)tlids.push(response[i].tlid);store.dispatch(pusherActions.addQueueMetadata(tlids,batch.from_uri)),setTimeout(function(){store.dispatch(uiActions.runProcess(action.type,{batches:batches}))},100)},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Adding tracks failed"),error))});break;case"MOPIDY_PLAY_URIS":if(!action.uris||action.uris.length<=0){_this.props.uiActions.createNotification({content:"No URIs to play",type:"warning"});break}if(store.getState().core.radio&&store.getState().core.radio.enabled&&store.dispatch(pusherActions.stopRadio()),store.getState().ui.clear_tracklist_on_play&&store.dispatch(mopidyActions.clearTracklist()),store.getState().mopidy.random)var first_uri_index=Math.floor(Math.random()*action.uris.length);else var first_uri_index=0;var first_uri=action.uris[first_uri_index];request(socket,store,"tracklist.add",{uri:first_uri,at_position:0}).then(function(response){if(response.length>0){store.dispatch(mopidyActions.changeTrack(response[0].tlid));for(var tlids=[],i=0;i<response.length;i++)tlids.push(response[i].tlid);store.dispatch(pusherActions.addQueueMetadata(tlids,action.from_uri))}else store.dispatch(coreActions.handleException("Mopidy: Failed to add some tracks",response));action.uris.splice(first_uri_index,1),action.uris.length>0&&setTimeout(function(){store.dispatch(mopidyActions.enqueueURIs(action.uris,action.from_uri,null,1))},100)},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Adding tracks failed"),error))});break;case"MOPIDY_REORDER_TRACKLIST":request(socket,store,"tracklist.move",{start:action.range_start,end:action.range_start+action.range_length,to_position:action.insert_before}).then(function(response){},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Reorder failed"),error))});break;case"MOPIDY_CLEAR_TRACKLIST":request(socket,store,"tracklist.clear").then(function(response){store.dispatch(coreActions.clearCurrentTrack()),store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{content:store.getState().pusher.username+" cleared queue"}}))});break;case"MOPIDY_GET_SEARCH_RESULTS":store.dispatch({type:"MOPIDY_CLEAR_SEARCH_RESULTS"});for(var uri_schemes_to_ignore=["spotify:"],uri_schemes=Object.assign([],store.getState().ui.uri_schemes_search_enabled),i=0;i<uri_schemes.length;i++)uri_schemes_to_ignore.includes(uri_schemes[i])&&uri_schemes.splice(i,1);var uri_schemes_total=uri_schemes.length,uri_scheme=uri_schemes.shift();uri_schemes_total<=0?store.dispatch(uiActions.createNotification({content:"No sources selected",type:"warning"})):store.dispatch(uiActions.startProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR","Searching "+uri_schemes_total+" Mopidy providers",{context:action.context,query:action.query,limit:action.limit,total:uri_schemes_total,remaining:uri_schemes.length,uri_scheme:uri_scheme,uri_schemes:uri_schemes}));break;case"MOPIDY_GET_SEARCH_RESULTS_PROCESSOR":var last_run=store.getState().ui.processes.MOPIDY_GET_SEARCH_RESULTS_PROCESSOR;if(last_run&&"cancelling"==last_run.status)return void store.dispatch(uiActions.processCancelled("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR"));if(!action.data.uri_scheme)return void store.dispatch(uiActions.processFinishing("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR"));var next_uri_schemes=Object.assign([],action.data.uri_schemes),next_uri_scheme=next_uri_schemes.shift();switch(store.dispatch(uiActions.updateProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR","Searching "+action.data.uri_scheme.replace(":",""),{remaining:action.data.uri_schemes.length})),action.data.context){case"albums":var last_run=store.getState().ui.processes.MOPIDY_GET_SEARCH_RESULTS_PROCESSOR;if(last_run&&"cancelling"==last_run.status)return void store.dispatch(uiActions.processCancelled("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR"));store.dispatch(uiActions.updateProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR","Searching "+action.data.uri_scheme.replace(":","")));var continue_process=function(){store.dispatch(uiActions.runProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR",{context:action.data.context,query:action.data.query,limit:action.data.limit,uri_scheme:next_uri_scheme,uri_schemes:next_uri_schemes}))};request(socket,store,"library.search",{query:{album:[action.data.query]},uris:[action.data.uri_scheme]}).then(function(response){if(response.length>0){var albums=[];if(response[0].albums&&(albums=[].concat(_toConsumableArray(response[0].albums),_toConsumableArray(albums))),response[0].tracks)for(var i=0;i<response[0].tracks.length;i++)void 0!==response[0].tracks[i].album&&void 0!==response[0].tracks[i].album.uri&&albums.push(response[0].tracks[i].album);var albums_uris=helpers.arrayOf("uri",albums);albums_uris=helpers.removeDuplicates(albums_uris),store.dispatch(coreActions.albumsLoaded(albums)),store.dispatch({type:"MOPIDY_SEARCH_RESULTS_LOADED",context:action.data.context,results:albums_uris})}continue_process()},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Search failed"),error)),continue_process()});break;case"artists":var last_run=store.getState().ui.processes.MOPIDY_GET_SEARCH_RESULTS_PROCESSOR;if(last_run&&"cancelling"==last_run.status)return void store.dispatch(uiActions.processCancelled("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR"));store.dispatch(uiActions.updateProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR","Searching "+action.data.uri_scheme.replace(":","")));var continue_process=function(){store.dispatch(uiActions.runProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR",{context:action.data.context,query:action.data.query,limit:action.data.limit,uri_scheme:next_uri_scheme,uri_schemes:next_uri_schemes}))};request(socket,store,"library.search",{query:{artist:[action.data.query]},uris:[action.data.uri_scheme]}).then(function(response){if(response.length>0){var artists_uris=[];if(response[0].artists)for(var i=0;i<response[0].artists.length;i++)artists_uris.push(response[0].artists.uri);if(response[0].tracks)for(var i=0;i<response[0].tracks.length;i++)if(response[0].tracks[i].artists)for(var j=0;j<response[0].tracks[i].artists.length;j++){var artist=response[0].tracks[i].artists[j];artist.uri&&artists_uris.push(artist.uri)}artists_uris=helpers.removeDuplicates(artists_uris);for(var i=0;i<artists_uris.length;i++)store.dispatch(mopidyActions.getArtist(artists_uris[i]));store.dispatch({type:"MOPIDY_SEARCH_RESULTS_LOADED",context:action.data.context,results:artists_uris})}continue_process()},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Search failed"),error)),continue_process()});break;case"playlists":var last_run=store.getState().ui.processes.MOPIDY_GET_SEARCH_RESULTS_PROCESSOR;if(last_run&&"cancelling"==last_run.status)return void store.dispatch(uiActions.processCancelled("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR"));store.dispatch(uiActions.updateProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR","Searching playlists"));var continue_process=function(){store.dispatch(uiActions.processFinishing("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR"))};request(socket,store,"playlists.asList").then(function(response){if(response.length>0){for(var playlists_uris=[],i=0;i<response.length;i++){var playlist=response[i];playlist.name.includes(action.data.query)&&action.data.uri_schemes.includes(helpers.uriSource(playlist.uri)+":")&&playlists_uris.push(playlist.uri)}for(var i=0;i<playlists_uris.length;i++)store.dispatch(mopidyActions.getPlaylist(playlists_uris[i]));store.dispatch({type:"MOPIDY_SEARCH_RESULTS_LOADED",context:action.data.context,results:playlists_uris})}continue_process()},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Search failed"),error)),continue_process()});break;case"tracks":var last_run=store.getState().ui.processes.MOPIDY_GET_SEARCH_RESULTS_PROCESSOR;if(last_run&&"cancelling"==last_run.status)return void store.dispatch(uiActions.processCancelled("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR"));store.dispatch(uiActions.updateProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR","Searching "+action.data.uri_scheme.replace(":","")));var continue_process=function(){store.dispatch(uiActions.runProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR",{context:action.data.context,query:action.data.query,limit:action.data.limit,uri_scheme:next_uri_scheme,uri_schemes:next_uri_schemes}))};request(socket,store,"library.search",{query:{any:[action.data.query]},uris:[action.data.uri_scheme]}).then(function(response){if(response.length>0&&void 0!==response[0].tracks){var tracks=response[0].tracks;store.dispatch({type:"MOPIDY_SEARCH_RESULTS_LOADED",context:action.data.context,results:helpers.formatTracks(tracks)})}continue_process()},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Search failed"),error)),continue_process()});break;case"all":default:var process_albums=function(){var last_run=store.getState().ui.processes.MOPIDY_GET_SEARCH_RESULTS_PROCESSOR;if(last_run&&"cancelling"==last_run.status)return void store.dispatch(uiActions.processCancelled("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR"));store.dispatch(uiActions.updateProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR","Searching "+action.data.uri_scheme.replace(":","")+" albums",{remaining:action.data.uri_schemes.length+.75})),request(socket,store,"library.search",{query:{album:[action.data.query]},uris:[action.data.uri_scheme]}).then(function(response){if(response.length>0){var albums=[];if(response[0].albums&&(albums=[].concat(_toConsumableArray(response[0].albums),_toConsumableArray(albums))),response[0].tracks)for(var i=0;i<response[0].tracks.length;i++)void 0!==response[0].tracks[i].album&&void 0!==response[0].tracks[i].album.uri&&albums.push(response[0].tracks[i].album);var albums_uris=helpers.arrayOf("uri",albums);albums_uris=helpers.removeDuplicates(albums_uris),store.dispatch(coreActions.albumsLoaded(albums)),store.dispatch({type:"MOPIDY_SEARCH_RESULTS_LOADED",context:"albums",results:albums_uris})}process_artists()},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Search failed"),error)),process_artists()})},process_artists=function(){var last_run=store.getState().ui.processes.MOPIDY_GET_SEARCH_RESULTS_PROCESSOR;if(last_run&&"cancelling"==last_run.status)return void store.dispatch(uiActions.processCancelled("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR"));store.dispatch(uiActions.updateProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR","Searching "+action.data.uri_scheme.replace(":","")+" artists",{remaining:action.data.uri_schemes.length+.5})),request(socket,store,"library.search",{query:{artist:[action.data.query]},uris:[action.data.uri_scheme]}).then(function(response){if(response.length>0){var artists_uris=[];if(response[0].artists)for(var i=0;i<response[0].artists.length;i++)artists_uris.push(response[0].artists.uri);if(response[0].tracks)for(var i=0;i<response[0].tracks.length;i++)if(response[0].tracks[i].artists)for(var j=0;j<response[0].tracks[i].artists.length;j++){var artist=response[0].tracks[i].artists[j];artist.uri&&artists_uris.push(artist.uri)}artists_uris=helpers.removeDuplicates(artists_uris);for(var i=0;i<artists_uris.length;i++)store.dispatch(mopidyActions.getArtist(artists_uris[i]));store.dispatch({type:"MOPIDY_SEARCH_RESULTS_LOADED",context:"artists",results:artists_uris})}process_playlists()},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Search failed"),error)),process_playlists()})},process_playlists=function(){var last_run=store.getState().ui.processes.MOPIDY_GET_SEARCH_RESULTS_PROCESSOR;if(last_run&&"cancelling"==last_run.status)return void store.dispatch(uiActions.processCancelled("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR"));"m3u:"==action.data.uri_scheme?(store.dispatch(uiActions.updateProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR","Searching "+action.data.uri_scheme.replace(":","")+" playlists",{remaining:action.data.uri_schemes.length+.25})),request(socket,store,"playlists.asList").then(function(response){if(response.length>0){for(var playlists_uris=[],i=0;i<response.length;i++){var playlist=response[i];playlist.name.includes(action.data.query)&&action.data.uri_schemes.includes(helpers.uriSource(playlist.uri)+":")&&playlists_uris.push(playlist.uri)}playlists_uris=playlists_uris;for(var i=0;i<playlists_uris.length;i++)store.dispatch(mopidyActions.getPlaylist(playlists_uris[i]));store.dispatch({type:"MOPIDY_SEARCH_RESULTS_LOADED",context:"playlists",results:playlists_uris})}finished()},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Search failed"),error)),finished()})):finished()},finished=function(){store.dispatch(uiActions.runProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR",{context:action.data.context,query:action.data.query,limit:action.data.limit,uri_scheme:next_uri_scheme,uri_schemes:next_uri_schemes,remaining:action.data.uri_schemes.length}))};!function(){var last_run=store.getState().ui.processes.MOPIDY_GET_SEARCH_RESULTS_PROCESSOR;if(last_run&&"cancelling"==last_run.status)return void store.dispatch(uiActions.processCancelled("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR"));store.dispatch(uiActions.updateProcess("MOPIDY_GET_SEARCH_RESULTS_PROCESSOR","Searching "+action.data.uri_scheme.replace(":","")+" tracks",{remaining:action.data.uri_schemes.length+1})),request(socket,store,"library.search",{query:{any:[action.data.query]},uris:[action.data.uri_scheme]}).then(function(response){if(response.length>0&&void 0!==response[0].tracks){var tracks=response[0].tracks;store.dispatch({type:"MOPIDY_SEARCH_RESULTS_LOADED",context:"tracks",results:helpers.formatTracks(tracks)})}process_albums()},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Search failed"),error)),process_albums()})}()}break;case"MOPIDY_GET_LIBRARY_PLAYLISTS":request(socket,store,"playlists.asList").then(function(response){for(var playlist_uris=helpers.arrayOf("uri",response),playlist_uris_filtered=[],i=0;i<playlist_uris.length;i++)"spotify"!=helpers.uriSource(playlist_uris[i])&&playlist_uris_filtered.push(playlist_uris[i]);store.dispatch({type:"MOPIDY_LIBRARY_PLAYLISTS_LOADED",uris:playlist_uris_filtered}),store.dispatch({type:"MOPIDY_LIBRARY_PLAYLISTS_LOADED_ALL"});for(var i=0;i<playlist_uris_filtered.length;i++)request(socket,store,"playlists.lookup",{uri:playlist_uris_filtered[i]}).then(function(response){var source=helpers.uriSource(response.uri),playlist=Object.assign({},{type:"playlist",name:response.name,uri:response.uri,source:source,provider:"mopidy",last_modified:response.last_modified,tracks_total:response.tracks?response.tracks.length:0});store.dispatch(coreActions.playlistLoaded(playlist))})});break;case"MOPIDY_GET_PLAYLIST":request(socket,store,"playlists.lookup",action.data).then(function(response){var playlist=Object.assign({},response,{uri:response.uri,type:"playlist",is_completely_loaded:!0,provider:"mopidy",tracks:response.tracks?response.tracks:[],tracks_total:response.tracks?response.tracks.length:0});playlist.tracks.length>0&&store.dispatch({type:"MOPIDY_RESOLVE_PLAYLIST_TRACKS",tracks:playlist.tracks,key:playlist.uri}),store.dispatch(coreActions.playlistLoaded(playlist))});break;case"MOPIDY_RESOLVE_PLAYLIST_TRACKS":var tracks=Object.assign([],action.tracks),uris=helpers.arrayOf("uri",tracks);request(socket,store,"library.lookup",{uris:uris}).then(function(response){for(var uri in response)if(response.hasOwnProperty(uri)){var track=response[uri][0];if(track)for(var getByURI=function(trackReference){return track.uri==trackReference.uri},trackReferences=tracks.filter(getByURI),j=0;j<trackReferences.length;j++){var key=tracks.indexOf(trackReferences[j]);tracks[key]=track}}store.dispatch({type:"PLAYLIST_TRACKS",tracks:tracks,key:action.key})});break;case"MOPIDY_ADD_PLAYLIST_TRACKS":request(socket,store,"playlists.lookup",{uri:action.key}).then(function(response){for(var tracks=[],i=0;i<action.tracks_uris.length;i++)tracks.push({__model__:"Track",uri:action.tracks_uris[i]});var playlist=Object.assign({},response);playlist.tracks?playlist.tracks=[].concat(_toConsumableArray(playlist.tracks),tracks):playlist.tracks=tracks,request(socket,store,"playlists.save",{playlist:playlist}).then(function(response){store.dispatch({type:"PLAYLIST_TRACKS_ADDED",key:action.key,tracks_uris:action.tracks_uris})})});break;case"MOPIDY_REMOVE_PLAYLIST_TRACKS":var descending=function(a,b){return b-a},indexes=Object.assign([],action.tracks_indexes);indexes.sort(descending),request(socket,store,"playlists.lookup",{uri:action.key}).then(function(response){for(var playlist=Object.assign({},response),i=0;i<indexes.length;i++)playlist.tracks.splice(indexes[i],1);request(socket,store,"playlists.save",{playlist:playlist}).then(function(response){store.dispatch({type:"PLAYLIST_TRACKS_REMOVED",key:action.key,tracks_indexes:action.tracks_indexes})})});break;case"MOPIDY_SAVE_PLAYLIST":request(socket,store,"playlists.lookup",{uri:action.key}).then(function(response){var mopidy_playlist=Object.assign({},response,{name:action.name});request(socket,store,"playlists.save",{playlist:mopidy_playlist}).then(function(response){var playlist=Object.assign({},store.getState().core.playlists[action.key],{uri:response.uri,name:response.name});action.key!==playlist.uri&&store.dispatch(coreActions.removeFromIndex("playlists",action.key,playlist.uri)),store.dispatch(coreActions.playlistLoaded(playlist)),store.dispatch(uiActions.createNotification({type:"info",content:"Playlist saved"}))})});break;case"MOPIDY_REORDER_PLAYLIST_TRACKS":request(socket,store,"playlists.lookup",{uri:action.key}).then(function(response){var playlist=Object.assign({},response),tracks=Object.assign([],playlist.tracks),tracks_to_move=[],range_start=action.range_start,range_length=action.range_length,insert_before=action.insert_before;insert_before>range_start&&(insert_before-=range_length);for(var i=0;i<range_length;i++)tracks_to_move.unshift(tracks[range_start+i]);tracks.splice(range_start,range_length);for(var i=0;i<tracks_to_move.length;i++)tracks.splice(insert_before,0,tracks_to_move[i]);playlist=Object.assign({},playlist,{tracks:tracks}),request(socket,store,"playlists.save",{playlist:playlist}).then(function(response){store.dispatch({type:"MOPIDY_RESOLVE_PLAYLIST_TRACKS",tracks:playlist.tracks,key:playlist.uri})})});break;case"MOPIDY_CREATE_PLAYLIST":request(socket,store,"playlists.create",{name:action.name,uri_scheme:action.scheme}).then(function(response){store.dispatch(uiActions.createNotification({type:"info",content:"Created playlist"})),store.dispatch(coreActions.playlistLoaded(response)),store.dispatch({type:"MOPIDY_LIBRARY_PLAYLIST_CREATED",key:response.uri})});break;case"MOPIDY_DELETE_PLAYLIST":request(socket,store,"playlists.delete",{uri:action.uri}).then(function(response){store.dispatch(uiActions.createNotification({content:"Deleted playlist"})),store.dispatch(coreActions.removeFromIndex("playlists",action.uri)),store.dispatch({type:"MOPIDY_LIBRARY_PLAYLIST_DELETED",key:action.uri})});break;case"MOPIDY_GET_LIBRARY_ALBUMS":var last_run=store.getState().ui.processes.MOPIDY_LIBRARY_ALBUMS_PROCESSOR;last_run?"cancelled"==last_run.status?store.dispatch(uiActions.resumeProcess("MOPIDY_LIBRARY_ALBUMS_PROCESSOR")):last_run.status:request(socket,store,"library.browse",{uri:store.getState().mopidy.library_albums_uri}).then(function(response){if(!(response.length<=0)){var uris=helpers.arrayOf("uri",response);store.dispatch({type:"MOPIDY_LIBRARY_ALBUMS_LOADED",uris:uris}),store.dispatch(uiActions.startProcess("MOPIDY_LIBRARY_ALBUMS_PROCESSOR","Loading "+uris.length+" local albums",{uris:uris,total:uris.length,remaining:uris.length}))}});break;case"MOPIDY_LIBRARY_ALBUMS_PROCESSOR":if(void 0!==store.getState().ui.processes.MOPIDY_LIBRARY_ALBUMS_PROCESSOR){if("cancelling"==store.getState().ui.processes.MOPIDY_LIBRARY_ALBUMS_PROCESSOR.status)return store.dispatch(uiActions.processCancelled("MOPIDY_LIBRARY_ALBUMS_PROCESSOR")),!1}var uris=Object.assign([],action.data.uris),uris_to_load=uris.splice(0,50);uris_to_load.length>0?(store.dispatch(uiActions.updateProcess("MOPIDY_LIBRARY_ALBUMS_PROCESSOR","Loading "+uris.length+" local albums",{uris:uris,remaining:uris.length})),store.dispatch(mopidyActions.getAlbums(uris_to_load,{name:"MOPIDY_LIBRARY_ALBUMS_PROCESSOR",data:{uris:uris}}))):store.dispatch(uiActions.processFinishing("MOPIDY_LIBRARY_ALBUMS_PROCESSOR"));break;case"MOPIDY_GET_ALBUMS":request(socket,store,"library.lookup",{uris:action.uris}).then(function(response){if(!(response.length<=0)){var albums_loaded=[],artists_loaded=[],tracks_loaded=[];for(var uri in response)if(response.hasOwnProperty(uri)&&response[uri].length>0&&response[uri][0].album){var tracks=response[uri],artists_uris=[];if(tracks[0].artists){var _iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=response[uri][0].artists[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var artist=_step.value;artists_uris.push(artist.uri),artists_loaded.push(artist)}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}}var tracks_uris=[],_iteratorNormalCompletion2=!0,_didIteratorError2=!1,_iteratorError2=void 0;try{for(var _step2,_iterator2=tracks[Symbol.iterator]();!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=!0){var track=_step2.value;tracks_uris.push(track.uri),tracks_loaded.push(track)}}catch(err){_didIteratorError2=!0,_iteratorError2=err}finally{try{!_iteratorNormalCompletion2&&_iterator2.return&&_iterator2.return()}finally{if(_didIteratorError2)throw _iteratorError2}}var album=Object.assign({},{source:"local",artists_uris:artists_uris,tracks_uris:tracks_uris,tracks_total:tracks_uris.length},tracks[0].album);albums_loaded.push(album)}store.dispatch(coreActions.albumsLoaded(albums_loaded)),store.dispatch(coreActions.artistsLoaded(artists_loaded)),store.dispatch(coreActions.tracksLoaded(tracks_loaded)),action.processor&&setTimeout(function(){store.dispatch(uiActions.runProcess(action.processor.name,action.processor.data))},10)}});break;case"MOPIDY_GET_ALBUM":request(socket,store,"library.lookup",action.data).then(function(response){if(response&&!(response.length<=0)){var artists=[];if(response[0].artists){var _iteratorNormalCompletion3=!0,_didIteratorError3=!1,_iteratorError3=void 0;try{for(var _step3,_iterator3=response[0].artists[Symbol.iterator]();!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=!0){var artist=_step3.value;artists.push(artist)}}catch(err){_didIteratorError3=!0,_iteratorError3=err}finally{try{!_iteratorNormalCompletion3&&_iterator3.return&&_iterator3.return()}finally{if(_didIteratorError3)throw _iteratorError3}}}var album=Object.assign({},response[0].album,{source:"local",artists_uris:helpers.arrayOf("uri",artists),tracks_uris:helpers.arrayOf("uri",response),tracks_total:response.length});if(store.dispatch(coreActions.albumLoaded(album)),store.dispatch(coreActions.artistsLoaded(artists)),!response[0].album.images){var mbid=helpers.getFromUri("mbid",album.uri);mbid?store.dispatch(lastfmActions.getAlbum(album.uri,!1,!1,mbid)):artists&&artists.length>0&&store.dispatch(lastfmActions.getAlbum(album.uri,artists[0].name,album.name))}request(socket,store,"library.lookup",{uris:album.tracks_uris}).then(function(response){var tracks_loaded=[];for(var uri in response)response.hasOwnProperty(uri)&&tracks_loaded.push(response[uri][0]);store.dispatch(coreActions.tracksLoaded(tracks_loaded))})}});break;case"MOPIDY_GET_LIBRARY_ARTISTS":request(socket,store,"library.browse",{uri:store.getState().mopidy.library_artists_uri}).then(function(response){if(!(response.length<=0)){for(var uris=[],i=0;i<response.length;i++)response[i].uri=response[i].uri.replace("local:directory?albumartist=",""),uris.push(response[i].uri);store.dispatch(coreActions.artistsLoaded(response)),store.dispatch({type:"MOPIDY_LIBRARY_ARTISTS_LOADED",uris:uris})}});break;case"MOPIDY_GET_ARTIST":request(socket,store,"library.lookup",action.data).then(function(response){if(!(response.length<=0)){for(var albums=[],i=0;i<response.length;i++)if(response[i].album){var album=Object.assign({},response[i].album,{uri:response[i].album.uri});if(album){var getByURI=function(albumToCheck){return album.uri==albumToCheck.uri},existingAlbum=albums.find(getByURI);existingAlbum||albums.push(album)}}albums&&store.dispatch(coreActions.albumsLoaded(albums));var artist={uri:action.data.uri,provider:"mopidy"},_iteratorNormalCompletion4=!0,_didIteratorError4=!1,_iteratorError4=void 0;try{for(var _step4,_iterator4=response[0].artists[Symbol.iterator]();!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=!0){var raw_artist=_step4.value;raw_artist.uri===artist.uri&&(artist=Object.assign({},raw_artist))}}catch(err){_didIteratorError4=!0,_iteratorError4=err}finally{try{!_iteratorNormalCompletion4&&_iterator4.return&&_iterator4.return()}finally{if(_didIteratorError4)throw _iteratorError4}}artist.albums_uris=helpers.arrayOf("uri",albums),artist.tracks=response,store.dispatch(coreActions.artistLoaded(artist));var existing_artist=store.getState().core.artists[artist.uri];existing_artist&&!existing_artist.images&&(artist.musicbrainz_id?store.dispatch(lastfmActions.getArtist(artist.uri,!1,artist.musicbrainz_id)):store.dispatch(lastfmActions.getArtist(artist.uri,artist.name)))}});break;case"MOPIDY_GET_ARTISTS":request(socket,store,"library.lookup",{uris:action.uris}).then(function(response){if(!(response.length<=0)){var artists=[];for(var uri in response)if(response.hasOwnProperty(uri)&&response[uri].length>0&&response[uri][0].artists){var artist=Object.assign({},response?response[uri][0].artists[0]:{},{provider:"mopidy"});artists.push(artist)}store.dispatch(coreActions.artistsLoaded(artists)),action.processor&&setTimeout(function(){store.dispatch(uiActions.runProcess(action.processor.name,action.processor.data))},100)}});break;case"MOPIDY_GET_QUEUE":request(socket,store,"tracklist.getTlTracks").then(function(response){store.dispatch({type:"QUEUE_LOADED",tracks:response})});break;case"MOPIDY_GET_QUEUE_HISTORY":request(socket,store,"history.getHistory").then(function(response){store.dispatch({type:"MOPIDY_QUEUE_HISTORY",tracks:response})});break;case"MOPIDY_GET_CURRENT_TRACK":request(socket,store,"playback.getCurrentTlTrack").then(function(response){response&&response.track&&store.dispatch(mopidyActions.currentTrackLoaded(response))});break;case"MOPIDY_CURRENT_TRACK_LOADED":store.dispatch(uiActions.setCurrentTrackTransition(!1));var track=helpers.formatTrack(action.tl_track);track.uri&&(store.dispatch({type:"CURRENT_TRACK_LOADED",track:track,uri:track.uri}),void 0!==store.getState().core.tracks[track.uri]&&void 0!==store.getState().core.tracks[track.uri].images||(store.getState().spotify.enabled&&"spotify"==helpers.uriSource(track.uri)?store.dispatch(spotifyActions.getTrack(track.uri)):store.dispatch(mopidyActions.getImages("tracks",[track.uri]))));break;case"MOPIDY_GET_NEXT_TRACK":request(socket,store,"tracklist.getNextTlid").then(function(response){if(response&&response>=0){var track=helpers.applyFilter("tlid",response,store.getState().core.queue,!0);track&&track.uri&&(store.dispatch({type:"NEXT_TRACK_LOADED",uri:track.uri}),void 0!==store.getState().core.tracks[track.uri]&&void 0!==store.getState().core.tracks[track.uri].images||(store.getState().spotify.enabled&&"spotify"==helpers.uriSource(track.uri)?store.dispatch(spotifyActions.getTrack(track.uri)):store.dispatch(mopidyActions.getImages("tracks",[track.uri]))))}});break;case"MOPIDY_GET_TRACK":request(socket,store,"library.lookup",action.data).then(function(response){if(response.length>0){var track=Object.assign({},response[0]);store.dispatch(coreActions.trackLoaded(track))}},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Could not get track"),error))});break;case"MOPIDY_GET_IMAGES":action.uris&&request(socket,store,"library.getImages",{uris:action.uris}).then(function(response){var records=[];for(var uri in response)if(response.hasOwnProperty(uri)){var images=response[uri];images=helpers.digestMopidyImages(store.getState().mopidy,images),images&&images.length>0?records.push({uri:uri,images:images}):store.dispatch(lastfmActions.getImages(action.context,uri))}var action_data={type:(action.context+"_LOADED").toUpperCase()};action_data[action.context]=records,store.dispatch(action_data)}),next(action);break;case"MOPIDY_GET_DIRECTORY":store.dispatch({type:"MOPIDY_DIRECTORY_FLUSH"}),request(socket,store,"library.browse",action.data).then(function(response){var tracks_uris=[],subdirectories=[],_iteratorNormalCompletion5=!0,_didIteratorError5=!1,_iteratorError5=void 0;try{for(var _step5,_iterator5=response[Symbol.iterator]();!(_iteratorNormalCompletion5=(_step5=_iterator5.next()).done);_iteratorNormalCompletion5=!0){var item=_step5.value;"track"===item.type?tracks_uris.push(item.uri):subdirectories.push(item)}}catch(err){_didIteratorError5=!0,_iteratorError5=err}finally{try{!_iteratorNormalCompletion5&&_iterator5.return&&_iterator5.return()}finally{if(_didIteratorError5)throw _iteratorError5}}tracks_uris.length>0?request(socket,store,"library.lookup",{uris:tracks_uris}).then(function(response){if(!(response.length<=0)){var tracks=[];for(var uri in response)response.hasOwnProperty(uri)&&response[uri].length>0&&tracks.push(helpers.formatTrack(response[uri][0]));store.dispatch({type:"MOPIDY_DIRECTORY_LOADED",directory:{tracks:tracks,subdirectories:subdirectories}})}}):store.dispatch({type:"MOPIDY_DIRECTORY_LOADED",directory:{tracks:tracks,subdirectories:subdirectories}})});break;case"MOPIDY_DIRECTORY":store.getState().ui.allow_reporting&&action.data&&_reactGa2.default.event({category:"Directory",action:"Load",label:action.data.uri}),next(action);break;default:return next(action)}}}}}();exports.default=MopidyMiddleware},function(module,exports,__webpack_require__){function Mopidy(settings){if(!(this instanceof Mopidy))return new Mopidy(settings);this._console=this._getConsole(settings||{}),this._settings=this._configure(settings||{}),this._backoffDelay=this._settings.backoffDelayMin,this._pendingRequests={},this._webSocket=null,bane.createEventEmitter(this),this._delegateEvents(),this._settings.autoConnect&&this.connect()}var bane=__webpack_require__(154),websocket=__webpack_require__(155),when=__webpack_require__(156);Mopidy.ConnectionError=function(message){this.name="ConnectionError",this.message=message},Mopidy.ConnectionError.prototype=Object.create(Error.prototype),Mopidy.ConnectionError.prototype.constructor=Mopidy.ConnectionError,Mopidy.ServerError=function(message){this.name="ServerError",this.message=message},Mopidy.ServerError.prototype=Object.create(Error.prototype),Mopidy.ServerError.prototype.constructor=Mopidy.ServerError,Mopidy.WebSocket=websocket.Client,Mopidy.when=when,Mopidy.prototype._getConsole=function(settings){if(void 0!==settings.console)return settings.console;var con="undefined"!=typeof console&&console||{};return con.log=con.log||function(){},con.warn=con.warn||function(){},con.error=con.error||function(){},con},Mopidy.prototype._configure=function(settings){var protocol="undefined"!=typeof document&&"https:"===document.location.protocol?"wss://":"ws://",currentHost="undefined"!=typeof document&&document.location.host||"localhost";return settings.webSocketUrl=settings.webSocketUrl||protocol+currentHost+"/mopidy/ws",!1!==settings.autoConnect&&(settings.autoConnect=!0),settings.backoffDelayMin=settings.backoffDelayMin||1e3,settings.backoffDelayMax=settings.backoffDelayMax||64e3,void 0===settings.callingConvention&&this._console.warn("Mopidy.js is using the default calling convention. The default will change in the future. You should explicitly specify which calling convention you use."),settings.callingConvention=settings.callingConvention||"by-position-only",settings},Mopidy.prototype._delegateEvents=function(){this.off("websocket:close"),this.off("websocket:error"),this.off("websocket:incomingMessage"),this.off("websocket:open"),this.off("state:offline"),this.on("websocket:close",this._cleanup),this.on("websocket:error",this._handleWebSocketError),this.on("websocket:incomingMessage",this._handleMessage),this.on("websocket:open",this._resetBackoffDelay),this.on("websocket:open",this._getApiSpec),this.on("state:offline",this._reconnect)},Mopidy.prototype.connect=function(){if(this._webSocket){if(this._webSocket.readyState===Mopidy.WebSocket.OPEN)return;this._webSocket.close()}this._webSocket=this._settings.webSocket||new Mopidy.WebSocket(this._settings.webSocketUrl),this._webSocket.onclose=function(close){this.emit("websocket:close",close)}.bind(this),this._webSocket.onerror=function(error){this.emit("websocket:error",error)}.bind(this),this._webSocket.onopen=function(){this.emit("websocket:open")}.bind(this),this._webSocket.onmessage=function(message){this.emit("websocket:incomingMessage",message)}.bind(this)},Mopidy.prototype._cleanup=function(closeEvent){Object.keys(this._pendingRequests).forEach(function(requestId){var resolver=this._pendingRequests[requestId];delete this._pendingRequests[requestId];var error=new Mopidy.ConnectionError("WebSocket closed");error.closeEvent=closeEvent,resolver.reject(error)}.bind(this)),this.emit("state:offline")},Mopidy.prototype._reconnect=function(){this.emit("reconnectionPending",{timeToAttempt:this._backoffDelay}),setTimeout(function(){this.emit("reconnecting"),this.connect()}.bind(this),this._backoffDelay),this._backoffDelay=2*this._backoffDelay,this._backoffDelay>this._settings.backoffDelayMax&&(this._backoffDelay=this._settings.backoffDelayMax)},Mopidy.prototype._resetBackoffDelay=function(){this._backoffDelay=this._settings.backoffDelayMin},Mopidy.prototype.close=function(){this.off("state:offline",this._reconnect),this._webSocket.close()},Mopidy.prototype._handleWebSocketError=function(error){this._console.warn("WebSocket error:",error.stack||error)},Mopidy.prototype._send=function(message){switch(this._webSocket.readyState){case Mopidy.WebSocket.CONNECTING:return when.reject(new Mopidy.ConnectionError("WebSocket is still connecting"));case Mopidy.WebSocket.CLOSING:return when.reject(new Mopidy.ConnectionError("WebSocket is closing"));case Mopidy.WebSocket.CLOSED:return when.reject(new Mopidy.ConnectionError("WebSocket is closed"));default:var deferred=when.defer();return message.jsonrpc="2.0",message.id=this._nextRequestId(),this._pendingRequests[message.id]=deferred.resolver,this._webSocket.send(JSON.stringify(message)),this.emit("websocket:outgoingMessage",message),deferred.promise}},Mopidy.prototype._nextRequestId=function(){var lastUsed=-1;return function(){return lastUsed+=1}}(),Mopidy.prototype._handleMessage=function(message){try{var data=JSON.parse(message.data);data.hasOwnProperty("id")?this._handleResponse(data):data.hasOwnProperty("event")?this._handleEvent(data):this._console.warn("Unknown message type received. Message was: "+message.data)}catch(error){if(!(error instanceof SyntaxError))throw error;this._console.warn("WebSocket message parsing failed. Message was: "+message.data)}},Mopidy.prototype._handleResponse=function(responseMessage){if(!this._pendingRequests.hasOwnProperty(responseMessage.id))return void this._console.warn("Unexpected response received. Message was:",responseMessage);var error,resolver=this._pendingRequests[responseMessage.id];delete this._pendingRequests[responseMessage.id],responseMessage.hasOwnProperty("result")?resolver.resolve(responseMessage.result):responseMessage.hasOwnProperty("error")?(error=new Mopidy.ServerError(responseMessage.error.message),error.code=responseMessage.error.code,error.data=responseMessage.error.data,resolver.reject(error),this._console.warn("Server returned error:",responseMessage.error)):(error=new Error("Response without 'result' or 'error' received"),error.data={response:responseMessage},resolver.reject(error),this._console.warn("Response without 'result' or 'error' received. Message was:",responseMessage))},Mopidy.prototype._handleEvent=function(eventMessage){var type=eventMessage.event,data=eventMessage;delete data.event,this.emit("event:"+this._snakeToCamel(type),data)},Mopidy.prototype._getApiSpec=function(){return this._send({method:"core.describe"}).then(this._createApi.bind(this)).catch(this._handleWebSocketError)},Mopidy.prototype._createApi=function(methods){var byPositionOrByName="by-position-or-by-name"===this._settings.callingConvention,caller=function(method){return function(){var message={method:method};return 0===arguments.length?this._send(message):byPositionOrByName?arguments.length>1?when.reject(new Error("Expected zero arguments, a single array, or a single object.")):Array.isArray(arguments[0])||arguments[0]===Object(arguments[0])?(message.params=arguments[0],this._send(message)):when.reject(new TypeError("Expected an array or an object.")):(message.params=Array.prototype.slice.call(arguments),this._send(message))}.bind(this)}.bind(this),getPath=function(fullName){var path=fullName.split(".");return path.length>=1&&"core"===path[0]&&(path=path.slice(1)),path},createObjects=function(objPath){var parentObj=this;return objPath.forEach(function(objName){objName=this._snakeToCamel(objName),parentObj[objName]=parentObj[objName]||{},parentObj=parentObj[objName]}.bind(this)),parentObj}.bind(this),createMethod=function(fullMethodName){var methodPath=getPath(fullMethodName),methodName=this._snakeToCamel(methodPath.slice(-1)[0]),object=createObjects(methodPath.slice(0,-1));object[methodName]=caller(fullMethodName),object[methodName].description=methods[fullMethodName].description,object[methodName].params=methods[fullMethodName].params}.bind(this);Object.keys(methods).forEach(createMethod),this.emit("state:online")},Mopidy.prototype._snakeToCamel=function(name){return name.replace(/(_[a-z])/g,function(match){return match.toUpperCase().replace("_","")})},module.exports=Mopidy},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__;(__webpack_require__(80)&&function(m){__WEBPACK_AMD_DEFINE_FACTORY__=m,void 0!==(__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof __WEBPACK_AMD_DEFINE_FACTORY__?__WEBPACK_AMD_DEFINE_FACTORY__.call(exports,__webpack_require__,exports,module):__WEBPACK_AMD_DEFINE_FACTORY__)&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}||"object"==typeof module&&function(m){module.exports=m()}||function(m){this.bane=m()})(function(){"use strict";function handleError(event,error,errbacks){var i,l=errbacks.length;if(l>0)for(i=0;i<l;++i)errbacks[i](event,error);else setTimeout(function(){throw error.message=event+" listener threw error: "+error.message,error},0)}function assertFunction(fn){if("function"!=typeof fn)throw new TypeError("Listener is not function");return fn}function supervisors(object){return object.supervisors||(object.supervisors=[]),object.supervisors}function listeners(object,event){return object.listeners||(object.listeners={}),event&&!object.listeners[event]&&(object.listeners[event]=[]),event?object.listeners[event]:object.listeners}function errbacks(object){return object.errbacks||(object.errbacks=[]),object.errbacks}function createEventEmitter(object){function notifyListener(event,listener,args){try{listener.listener.apply(listener.thisp||object,args)}catch(e){handleError(event,e,errbacks(object))}}return object=object||{},object.on=function(event,listener,thisp){if("function"==typeof event)return supervisors(this).push({listener:event,thisp:listener});listeners(this,event).push({listener:assertFunction(listener),thisp:thisp})},object.off=function(event,listener){var fns,events,i,l;if(!event){fns=supervisors(this),fns.splice(0,fns.length),events=listeners(this);for(i in events)events.hasOwnProperty(i)&&(fns=listeners(this,i),fns.splice(0,fns.length));return fns=errbacks(this),void fns.splice(0,fns.length)}if("function"==typeof event?(fns=supervisors(this),listener=event):fns=listeners(this,event),!listener)return void fns.splice(0,fns.length);for(i=0,l=fns.length;i<l;++i)if(fns[i].listener===listener)return void fns.splice(i,1)},object.once=function(event,listener,thisp){var wrapper=function(){object.off(event,wrapper),listener.apply(this,arguments)};object.on(event,wrapper,thisp)},object.bind=function(object,events){var prop,i,l;if(events)for(i=0,l=events.length;i<l;++i){if("function"!=typeof object[events[i]])throw new Error("No such method "+events[i]);this.on(events[i],object[events[i]],object)}else for(prop in object)"function"==typeof object[prop]&&this.on(prop,object[prop],object);return object},object.emit=function(event){var i,l,toNotify=supervisors(this),args=slice.call(arguments);for(i=0,l=toNotify.length;i<l;++i)notifyListener(event,toNotify[i],args);for(toNotify=listeners(this,event).slice(),args=slice.call(arguments,1),i=0,l=toNotify.length;i<l;++i)notifyListener(event,toNotify[i],args)},object.errback=function(listener){this.errbacks||(this.errbacks=[]),this.errbacks.push(assertFunction(listener))},object}var slice=Array.prototype.slice;return{createEventEmitter:createEventEmitter,aggregate:function(emitters){var aggregate=createEventEmitter();return emitters.forEach(function(emitter){emitter.on(function(event,data){aggregate.emit(event,data)})}),aggregate}}})},function(module,exports){module.exports={Client:window.WebSocket}},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(require){function when(x,onFulfilled,onRejected,onProgress){var p=Promise.resolve(x);return arguments.length<2?p:p.then(onFulfilled,onRejected,onProgress)}function promise(resolver){return new Promise(resolver)}function lift(f){return function(){for(var i=0,l=arguments.length,a=new Array(l);i<l;++i)a[i]=arguments[i];return apply(f,this,a)}}function attempt(f){for(var i=0,l=arguments.length-1,a=new Array(l);i<l;++i)a[i]=arguments[i+1];return apply(f,this,a)}function defer(){return new Deferred}function Deferred(){function resolve(x){p._handler.resolve(x)}function reject(x){p._handler.reject(x)}function notify(x){p._handler.notify(x)}var p=Promise._defer();this.promise=p,this.resolve=resolve,this.reject=reject,this.notify=notify,this.resolver={resolve:resolve,reject:reject,notify:notify}}function isPromiseLike(x){return x&&"function"==typeof x.then}function join(){return Promise.all(arguments)}function all(promises){return when(promises,Promise.all)}function settle(promises){return when(promises,Promise.settle)}function map(promises,mapFunc){return when(promises,function(promises){return Promise.map(promises,mapFunc)})}function filter(promises,predicate){return when(promises,function(promises){return Promise.filter(promises,predicate)})}var timed=__webpack_require__(157),array=__webpack_require__(159),flow=__webpack_require__(160),fold=__webpack_require__(161),inspect=__webpack_require__(162),generate=__webpack_require__(163),progress=__webpack_require__(164),withThis=__webpack_require__(165),unhandledRejection=__webpack_require__(166),TimeoutError=__webpack_require__(81),Promise=[array,flow,fold,generate,progress,inspect,withThis,timed,unhandledRejection].reduce(function(Promise,feature){return feature(Promise)},__webpack_require__(168)),apply=__webpack_require__(83)(Promise);return when.promise=promise,when.resolve=Promise.resolve,when.reject=Promise.reject,when.lift=lift,when.try=attempt,when.attempt=attempt,when.iterate=Promise.iterate,when.unfold=Promise.unfold,when.join=join,when.all=all,when.settle=settle,when.any=lift(Promise.any),when.some=lift(Promise.some),when.race=lift(Promise.race),when.map=map,when.filter=filter,when.reduce=lift(Promise.reduce),when.reduceRight=lift(Promise.reduceRight),when.isPromiseLike=isPromiseLike,when.Promise=Promise,when.defer=defer,when.TimeoutError=TimeoutError,when}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(require){function setTimeout(f,ms,x,y){return env.setTimer(function(){f(x,y,ms)},ms)}var env=__webpack_require__(53),TimeoutError=__webpack_require__(81);return function(Promise){function handleDelay(ms,x,h){setTimeout(resolveDelay,ms,x,h)}function resolveDelay(x,h){h.resolve(x)}function onTimeout(reason,h,ms){var e=void 0===reason?new TimeoutError("timed out after "+ms+"ms"):reason;h.reject(e)}return Promise.prototype.delay=function(ms){var p=this._beget();return this._handler.fold(handleDelay,ms,void 0,p._handler),p},Promise.prototype.timeout=function(ms,reason){var p=this._beget(),h=p._handler,t=setTimeout(onTimeout,ms,reason,p._handler);return this._handler.visit(h,function(x){env.clearTimer(t),this.resolve(x)},function(x){env.clearTimer(t),this.reject(x)},h.notify),p},Promise}}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports){},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(require){var state=__webpack_require__(82),applier=__webpack_require__(83);return function(Promise){function any(promises){function handleFulfill(x){errors=null,this.resolve(x)}function handleReject(e){this.resolved||(errors.push(e),0==--pending&&this.reject(errors))}for(var h,x,p=Promise._defer(),resolver=p._handler,l=promises.length>>>0,pending=l,errors=[],i=0;i<l;++i)if(void 0!==(x=promises[i])||i in promises){if(h=Promise._handler(x),h.state()>0){resolver.become(h),Promise._visitRemaining(promises,i,h);break}h.visit(resolver,handleFulfill,handleReject)}else--pending;return 0===pending&&resolver.reject(new RangeError("any(): array must not be empty")),p}function some(promises,n){function fulfill(x){this.resolved||(results.push(x),0==--nFulfill&&(errors=null,this.resolve(results)))}function reject(e){this.resolved||(errors.push(e),0==--nReject&&(results=null,this.reject(errors)))}var nReject,x,i,p=Promise._defer(),resolver=p._handler,results=[],errors=[],l=promises.length>>>0,nFulfill=0;for(i=0;i<l;++i)(void 0!==(x=promises[i])||i in promises)&&++nFulfill;for(n=Math.max(n,0),nReject=nFulfill-n+1,nFulfill=Math.min(n,nFulfill),n>nFulfill?resolver.reject(new RangeError("some(): array must contain at least "+n+" item(s), but had "+nFulfill)):0===nFulfill&&resolver.resolve(results),i=0;i<l;++i)(void 0!==(x=promises[i])||i in promises)&&Promise._handler(x).visit(resolver,fulfill,reject,resolver.notify);return p}function map(promises,f){return Promise._traverse(f,promises)}function filter(promises,predicate){var a=slice.call(promises);return Promise._traverse(predicate,a).then(function(keep){return filterSync(a,keep)})}function filterSync(promises,keep){for(var l=keep.length,filtered=new Array(l),i=0,j=0;i<l;++i)keep[i]&&(filtered[j++]=Promise._handler(promises[i]).value);return filtered.length=j,filtered}function settle(promises){return all(promises.map(settleOne))}function settleOne(p){var handler;return p instanceof Promise&&(handler=p._handler.join()),handler&&0===handler.state()||!handler?toPromise(p).then(state.fulfilled,state.rejected):(handler._unreport(),state.inspect(handler))}function reduce(promises,f){return arguments.length>2?ar.call(promises,liftCombine(f),arguments[2]):ar.call(promises,liftCombine(f))}function reduceRight(promises,f){return arguments.length>2?arr.call(promises,liftCombine(f),arguments[2]):arr.call(promises,liftCombine(f))}function liftCombine(f){return function(z,x,i){return applyFold(f,void 0,[z,x,i])}}var applyFold=applier(Promise),toPromise=Promise.resolve,all=Promise.all,ar=Array.prototype.reduce,arr=Array.prototype.reduceRight,slice=Array.prototype.slice;return Promise.any=any,Promise.some=some,Promise.settle=settle,Promise.map=map,Promise.filter=filter,Promise.reduce=reduce,Promise.reduceRight=reduceRight,Promise.prototype.spread=function(onFulfilled){return this.then(all).then(function(array){return onFulfilled.apply(this,array)})},Promise}}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){function rejectInvalidPredicate(){throw new TypeError("catch predicate must be a function")}function evaluatePredicate(e,predicate){return isError(predicate)?e instanceof predicate:predicate(e)}function isError(predicate){return predicate===Error||null!=predicate&&predicate.prototype instanceof Error}function maybeThenable(x){return("object"==typeof x||"function"==typeof x)&&null!==x}function identity(x){return x}return function(Promise){function createCatchFilter(handler,predicate){return function(e){return evaluatePredicate(e,predicate)?handler.call(this,e):reject(e)}}function runSideEffect(handler,thisArg,propagate,value){var result=handler.call(thisArg);return maybeThenable(result)?propagateValue(result,propagate,value):propagate(value)}function propagateValue(result,propagate,x){return resolve(result).then(function(){return propagate(x)})}var resolve=Promise.resolve,reject=Promise.reject,origCatch=Promise.prototype.catch;return Promise.prototype.done=function(onResult,onError){this._handler.visit(this._handler.receiver,onResult,onError)},Promise.prototype.catch=Promise.prototype.otherwise=function(onRejected){return arguments.length<2?origCatch.call(this,onRejected):"function"!=typeof onRejected?this.ensure(rejectInvalidPredicate):origCatch.call(this,createCatchFilter(arguments[1],onRejected))},Promise.prototype.finally=Promise.prototype.ensure=function(handler){return"function"!=typeof handler?this:this.then(function(x){return runSideEffect(handler,this,identity,x)},function(e){return runSideEffect(handler,this,reject,e)})},Promise.prototype.else=Promise.prototype.orElse=function(defaultValue){return this.then(void 0,function(){return defaultValue})},Promise.prototype.yield=function(value){return this.then(function(){return value})},Promise.prototype.tap=function(onFulfilledSideEffect){return this.then(onFulfilledSideEffect).yield(this)},Promise}}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){return function(Promise){return Promise.prototype.fold=function(f,z){var promise=this._beget();return this._handler.fold(function(z,x,to){Promise._handler(z).fold(function(x,z,to){to.resolve(f.call(this,z,x))},x,this,to)},z,promise._handler.receiver,promise._handler),promise},Promise}}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(require){var inspect=__webpack_require__(82).inspect;return function(Promise){return Promise.prototype.inspect=function(){return inspect(Promise._handler(this))},Promise}}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){return function(Promise){function iterate(f,condition,handler,x){return unfold(function(x){return[x,f(x)]},condition,handler,x)}function unfold(unspool,condition,handler,x){function next(item,newSeed){return resolve(handler(item)).then(function(){return unfold(unspool,condition,handler,newSeed)})}return resolve(x).then(function(seed){return resolve(condition(seed)).then(function(done){return done?seed:resolve(unspool(seed)).spread(next)})})}var resolve=Promise.resolve;return Promise.iterate=iterate,Promise.unfold=unfold,Promise}}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){return function(Promise){return Promise.prototype.progress=function(onProgress){return this.then(void 0,void 0,onProgress)},Promise}}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){return function(Promise){return Promise.prototype.with=Promise.prototype.withThis=function(receiver){var p=this._beget(),child=p._handler;return child.receiver=receiver,this._handler.chain(child,receiver),p},Promise}}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(require){function throwit(e){throw e}function noop(){}var setTimer=__webpack_require__(53).setTimer,format=__webpack_require__(167);return function(Promise){function report(r){r.handled||(reported.push(r),logError("Potentially unhandled rejection ["+r.id+"] "+format.formatError(r.value)))}function unreport(r){var i=reported.indexOf(r);i>=0&&(reported.splice(i,1),logInfo("Handled previous rejection ["+r.id+"] "+format.formatObject(r.value)))}function enqueue(f,x){tasks.push(f,x),null===running&&(running=setTimer(flush,0))}function flush(){for(running=null;tasks.length>0;)tasks.shift()(tasks.shift())}var localConsole,logError=noop,logInfo=noop;"undefined"!=typeof console&&(localConsole=console,logError=void 0!==localConsole.error?function(e){localConsole.error(e)}:function(e){localConsole.log(e)},logInfo=void 0!==localConsole.info?function(e){localConsole.info(e)}:function(e){localConsole.log(e)}),Promise.onPotentiallyUnhandledRejection=function(rejection){enqueue(report,rejection)},Promise.onPotentiallyUnhandledRejectionHandled=function(rejection){enqueue(unreport,rejection)},Promise.onFatalRejection=function(rejection){enqueue(throwit,rejection.value)};var tasks=[],reported=[],running=null;return Promise}}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){function formatError(e){var s="object"==typeof e&&null!==e&&(e.stack||e.message)?e.stack||e.message:formatObject(e);return e instanceof Error?s:s+" (WARNING: non-Error used)"}function formatObject(o){var s=String(o);return"[object Object]"===s&&"undefined"!=typeof JSON&&(s=tryStringify(o,s)),s}function tryStringify(x,defaultValue){try{return JSON.stringify(x)}catch(e){return defaultValue}}return{formatError:formatError,formatObject:formatObject,tryStringify:tryStringify}}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(require){return __webpack_require__(169)({scheduler:new(__webpack_require__(170))(__webpack_require__(53).asap)})}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){(function(process){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){return function(environment){function Promise(resolver,handler){this._handler=resolver===Handler?handler:init(resolver)}function init(resolver){function promiseResolve(x){handler.resolve(x)}function promiseReject(reason){handler.reject(reason)}function promiseNotify(x){handler.notify(x)}var handler=new Pending;try{resolver(promiseResolve,promiseReject,promiseNotify)}catch(e){promiseReject(e)}return handler}function resolve(x){return isPromise(x)?x:new Promise(Handler,new Async(getHandler(x)))}function reject(x){return new Promise(Handler,new Async(new Rejected(x)))}function never(){return foreverPendingPromise}function defer(){return new Promise(Handler,new Pending)}function begetFrom(parent,Promise){return new Promise(Handler,new Pending(parent.receiver,parent.join().context))}function all(promises){return traverseWith(snd,null,promises)}function traverse(f,promises){return traverseWith(tryCatch2,f,promises)}function traverseWith(tryMap,f,promises){function mapAt(i,x,resolver){resolver.resolved||traverseAt(promises,settleAt,i,tryMap(f,x,i),resolver)}function settleAt(i,x,resolver){results[i]=x,0==--pending&&resolver.become(new Fulfilled(results))}for(var x,handler="function"==typeof f?mapAt:settleAt,resolver=new Pending,pending=promises.length>>>0,results=new Array(pending),i=0;i<promises.length&&!resolver.resolved;++i)x=promises[i],void 0!==x||i in promises?traverseAt(promises,handler,i,x,resolver):--pending;return 0===pending&&resolver.become(new Fulfilled(results)),new Promise(Handler,resolver)}function traverseAt(promises,handler,i,x,resolver){if(maybeThenable(x)){var h=getHandlerMaybeThenable(x),s=h.state();0===s?h.fold(handler,i,void 0,resolver):s>0?handler(i,h.value,resolver):(resolver.become(h),visitRemaining(promises,i+1,h))}else handler(i,x,resolver)}function visitRemaining(promises,start,handler){for(var i=start;i<promises.length;++i)markAsHandled(getHandler(promises[i]),handler)}function markAsHandled(h,handler){if(h!==handler){var s=h.state();0===s?h.visit(h,void 0,h._unreport):s<0&&h._unreport()}}function race(promises){return"object"!=typeof promises||null===promises?reject(new TypeError("non-iterable passed to race()")):0===promises.length?never():1===promises.length?resolve(promises[0]):runRace(promises)}function runRace(promises){var i,x,h,resolver=new Pending;for(i=0;i<promises.length;++i)if(void 0!==(x=promises[i])||i in promises){if(h=getHandler(x),0!==h.state()){resolver.become(h),visitRemaining(promises,i+1,h);break}h.visit(resolver,resolver.resolve,resolver.reject)}return new Promise(Handler,resolver)}function getHandler(x){return isPromise(x)?x._handler.join():maybeThenable(x)?getHandlerUntrusted(x):new Fulfilled(x)}function getHandlerMaybeThenable(x){return isPromise(x)?x._handler.join():getHandlerUntrusted(x)}function getHandlerUntrusted(x){try{var untrustedThen=x.then;return"function"==typeof untrustedThen?new Thenable(untrustedThen,x):new Fulfilled(x)}catch(e){return new Rejected(e)}}function Handler(){}function FailIfRejected(){}function Pending(receiver,inheritedContext){Promise.createContext(this,inheritedContext),this.consumers=void 0,this.receiver=receiver,this.handler=void 0,this.resolved=!1}function Async(handler){this.handler=handler}function Thenable(then,thenable){Pending.call(this),tasks.enqueue(new AssimilateTask(then,thenable,this))}function Fulfilled(x){Promise.createContext(this),this.value=x}function Rejected(x){Promise.createContext(this),this.id=++errorId,this.value=x,this.handled=!1,this.reported=!1,this._report()}function ReportTask(rejection,context){this.rejection=rejection,this.context=context}function UnreportTask(rejection){this.rejection=rejection}function cycle(){return new Rejected(new TypeError("Promise cycle"))}function ContinuationTask(continuation,handler){this.continuation=continuation,this.handler=handler}function ProgressTask(value,handler){this.handler=handler,this.value=value}function AssimilateTask(then,thenable,resolver){this._then=then,this.thenable=thenable,this.resolver=resolver}function tryAssimilate(then,thenable,resolve,reject,notify){try{then.call(thenable,resolve,reject,notify)}catch(e){reject(e)}}function Fold(f,z,c,to){this.f=f,this.z=z,this.c=c,this.to=to,this.resolver=failIfRejected,this.receiver=this}function isPromise(x){return x instanceof Promise}function maybeThenable(x){return("object"==typeof x||"function"==typeof x)&&null!==x}function runContinuation1(f,h,receiver,next){if("function"!=typeof f)return next.become(h);Promise.enterContext(h),tryCatchReject(f,h.value,receiver,next),Promise.exitContext()}function runContinuation3(f,x,h,receiver,next){if("function"!=typeof f)return next.become(h);Promise.enterContext(h),tryCatchReject3(f,x,h.value,receiver,next),Promise.exitContext()}function runNotify(f,x,h,receiver,next){if("function"!=typeof f)return next.notify(x);Promise.enterContext(h),tryCatchReturn(f,x,receiver,next),Promise.exitContext()}function tryCatch2(f,a,b){try{return f(a,b)}catch(e){return reject(e)}}function tryCatchReject(f,x,thisArg,next){try{next.become(getHandler(f.call(thisArg,x)))}catch(e){next.become(new Rejected(e))}}function tryCatchReject3(f,x,y,thisArg,next){try{f.call(thisArg,x,y,next)}catch(e){next.become(new Rejected(e))}}function tryCatchReturn(f,x,thisArg,next){try{next.notify(f.call(thisArg,x))}catch(e){next.notify(e)}}function inherit(Parent,Child){Child.prototype=objectCreate(Parent.prototype),Child.prototype.constructor=Child}function snd(x,y){return y}function noop(){}function hasCustomEvent(){if("function"==typeof CustomEvent)try{return new CustomEvent("unhandledRejection")instanceof CustomEvent}catch(ignoredException){}return!1}function hasInternetExplorerCustomEvent(){if("undefined"!=typeof document&&"function"==typeof document.createEvent)try{return document.createEvent("CustomEvent").initCustomEvent("eventType",!1,!0,{}),!0}catch(ignoredException){}return!1}var tasks=environment.scheduler,emitRejection=function(){return void 0!==process&&null!==process&&"function"==typeof process.emit?function(type,rejection){return"unhandledRejection"===type?process.emit(type,rejection.value,rejection):process.emit(type,rejection)}:"undefined"!=typeof self&&hasCustomEvent()?function(self,CustomEvent){return function(type,rejection){var ev=new CustomEvent(type,{detail:{reason:rejection.value,key:rejection},bubbles:!1,cancelable:!0});return!self.dispatchEvent(ev)}}(self,CustomEvent):"undefined"!=typeof self&&hasInternetExplorerCustomEvent()?function(self,document){return function(type,rejection){var ev=document.createEvent("CustomEvent");return ev.initCustomEvent(type,!1,!0,{reason:rejection.value,key:rejection}),!self.dispatchEvent(ev)}}(self,document):noop}(),objectCreate=Object.create||function(proto){function Child(){}return Child.prototype=proto,new Child};Promise.resolve=resolve,Promise.reject=reject,Promise.never=never,Promise._defer=defer,Promise._handler=getHandler,Promise.prototype.then=function(onFulfilled,onRejected,onProgress){var parent=this._handler,state=parent.join().state();if("function"!=typeof onFulfilled&&state>0||"function"!=typeof onRejected&&state<0)return new this.constructor(Handler,parent);var p=this._beget(),child=p._handler;return parent.chain(child,parent.receiver,onFulfilled,onRejected,onProgress),p},Promise.prototype.catch=function(onRejected){return this.then(void 0,onRejected)},Promise.prototype._beget=function(){return begetFrom(this._handler,this.constructor)},Promise.all=all,Promise.race=race,Promise._traverse=traverse,Promise._visitRemaining=visitRemaining,Handler.prototype.when=Handler.prototype.become=Handler.prototype.notify=Handler.prototype.fail=Handler.prototype._unreport=Handler.prototype._report=noop,Handler.prototype._state=0,Handler.prototype.state=function(){return this._state},Handler.prototype.join=function(){for(var h=this;void 0!==h.handler;)h=h.handler;return h},Handler.prototype.chain=function(to,receiver,fulfilled,rejected,progress){this.when({resolver:to,receiver:receiver,fulfilled:fulfilled,rejected:rejected,progress:progress})},Handler.prototype.visit=function(receiver,fulfilled,rejected,progress){this.chain(failIfRejected,receiver,fulfilled,rejected,progress)},Handler.prototype.fold=function(f,z,c,to){this.when(new Fold(f,z,c,to))},inherit(Handler,FailIfRejected),FailIfRejected.prototype.become=function(h){h.fail()};var failIfRejected=new FailIfRejected;inherit(Handler,Pending),Pending.prototype._state=0,Pending.prototype.resolve=function(x){this.become(getHandler(x))},Pending.prototype.reject=function(x){this.resolved||this.become(new Rejected(x))},Pending.prototype.join=function(){if(!this.resolved)return this;for(var h=this;void 0!==h.handler;)if((h=h.handler)===this)return this.handler=cycle();return h},Pending.prototype.run=function(){var q=this.consumers,handler=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var i=0;i<q.length;++i)handler.when(q[i])},Pending.prototype.become=function(handler){this.resolved||(this.resolved=!0,this.handler=handler,void 0!==this.consumers&&tasks.enqueue(this),void 0!==this.context&&handler._report(this.context))},Pending.prototype.when=function(continuation){this.resolved?tasks.enqueue(new ContinuationTask(continuation,this.handler)):void 0===this.consumers?this.consumers=[continuation]:this.consumers.push(continuation)},Pending.prototype.notify=function(x){this.resolved||tasks.enqueue(new ProgressTask(x,this))},Pending.prototype.fail=function(context){var c=void 0===context?this.context:context;this.resolved&&this.handler.join().fail(c)},Pending.prototype._report=function(context){this.resolved&&this.handler.join()._report(context)},Pending.prototype._unreport=function(){this.resolved&&this.handler.join()._unreport()},inherit(Handler,Async),Async.prototype.when=function(continuation){tasks.enqueue(new ContinuationTask(continuation,this))},Async.prototype._report=function(context){this.join()._report(context)},Async.prototype._unreport=function(){this.join()._unreport()},inherit(Pending,Thenable),inherit(Handler,Fulfilled),Fulfilled.prototype._state=1,Fulfilled.prototype.fold=function(f,z,c,to){runContinuation3(f,z,this,c,to)},Fulfilled.prototype.when=function(cont){runContinuation1(cont.fulfilled,this,cont.receiver,cont.resolver)};var errorId=0;inherit(Handler,Rejected),Rejected.prototype._state=-1,Rejected.prototype.fold=function(f,z,c,to){to.become(this)},Rejected.prototype.when=function(cont){"function"==typeof cont.rejected&&this._unreport(),runContinuation1(cont.rejected,this,cont.receiver,cont.resolver)},Rejected.prototype._report=function(context){tasks.afterQueue(new ReportTask(this,context))},Rejected.prototype._unreport=function(){this.handled||(this.handled=!0,tasks.afterQueue(new UnreportTask(this)))},Rejected.prototype.fail=function(context){this.reported=!0,emitRejection("unhandledRejection",this),Promise.onFatalRejection(this,void 0===context?this.context:context)},ReportTask.prototype.run=function(){this.rejection.handled||this.rejection.reported||(this.rejection.reported=!0,emitRejection("unhandledRejection",this.rejection)||Promise.onPotentiallyUnhandledRejection(this.rejection,this.context))},UnreportTask.prototype.run=function(){this.rejection.reported&&(emitRejection("rejectionHandled",this.rejection)||Promise.onPotentiallyUnhandledRejectionHandled(this.rejection))},Promise.createContext=Promise.enterContext=Promise.exitContext=Promise.onPotentiallyUnhandledRejection=Promise.onPotentiallyUnhandledRejectionHandled=Promise.onFatalRejection=noop;var foreverPendingHandler=new Handler,foreverPendingPromise=new Promise(Handler,foreverPendingHandler);return ContinuationTask.prototype.run=function(){this.handler.join().when(this.continuation)},ProgressTask.prototype.run=function(){var q=this.handler.consumers;if(void 0!==q)for(var c,i=0;i<q.length;++i)c=q[i],runNotify(c.progress,this.value,this.handler,c.receiver,c.resolver)},AssimilateTask.prototype.run=function(){function _resolve(x){h.resolve(x)}function _reject(x){h.reject(x)}function _notify(x){h.notify(x)}var h=this.resolver;tryAssimilate(this._then,this.thenable,_resolve,_reject,_notify)},Fold.prototype.fulfilled=function(x){this.f.call(this.c,this.z,x,this.to)},Fold.prototype.rejected=function(x){this.to.reject(x)},Fold.prototype.progress=function(x){this.to.notify(x)},Promise}}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))}).call(exports,__webpack_require__(54))},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/** @license MIT License (c) copyright 2010-2014 original author or authors */
!function(define){"use strict";void 0!==(__WEBPACK_AMD_DEFINE_RESULT__=function(){function Scheduler(async){this._async=async,this._running=!1,this._queue=this,this._queueLen=0,this._afterQueue={},this._afterQueueLen=0;var self=this;this.drain=function(){self._drain()}}return Scheduler.prototype.enqueue=function(task){this._queue[this._queueLen++]=task,this.run()},Scheduler.prototype.afterQueue=function(task){this._afterQueue[this._afterQueueLen++]=task,this.run()},Scheduler.prototype.run=function(){this._running||(this._running=!0,this._async(this.drain))},Scheduler.prototype._drain=function(){for(var i=0;i<this._queueLen;++i)this._queue[i].run(),this._queue[i]=void 0;for(this._queueLen=0,this._running=!1,i=0;i<this._afterQueueLen;++i)this._afterQueue[i].run(),this._afterQueue[i]=void 0;this._afterQueueLen=0},Scheduler}.call(exports,__webpack_require__,exports,module))&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(__webpack_require__(15))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var helpers=__webpack_require__(1),coreActions=__webpack_require__(9),lastfmActions=__webpack_require__(16),LastfmMiddleware=function(){return function(store){return function(next){return function(action){switch(action.type){case"LASTFM_ME_LOADED":var me=helpers.formatUser(action.me);Object.assign(me,{uri:"lastfm:user:"+me.name}),store.dispatch(coreActions.userLoaded(me)),action.me=me,next(action);break;case"LASTFM_IMPORT_AUTHORIZATION":setTimeout(function(){store.dispatch(lastfmActions.getMe())},100),next(action);break;default:return next(action)}}}}}();exports.default=LastfmMiddleware},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var helpers=__webpack_require__(1),coreActions=__webpack_require__(9),geniusActions=__webpack_require__(32),GeniusMiddleware=function(){return function(store){return function(next){return function(action){store.getState();switch(action.type){case"GENIUS_ME_LOADED":var me=helpers.formatUser(action.me);Object.assign(me,{uri:"genius:user:"+me.id}),store.dispatch({type:"GENIUS_USER_LOADED",user:action.me}),action.me=me,next(action);break;case"GENIUS_USER_LOADED":var user=helpers.formatUser(action.user);Object.assign(user,{uri:"genius:user:"+user.id}),store.dispatch(coreActions.userLoaded(user)),action.user=user,next(action);break;case"GENIUS_IMPORT_AUTHORIZATION":setTimeout(function(){store.dispatch(geniusActions.getMe())},100),next(action);break;default:return next(action)}}}}}();exports.default=GeniusMiddleware},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _reactGa=__webpack_require__(13),_reactGa2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_reactGa),_jsSha=__webpack_require__(84),helpers=__webpack_require__(1),coreActions=__webpack_require__(9),spotifyActions=__webpack_require__(8),pusherActions=(__webpack_require__(2),__webpack_require__(12)),SpotifyMiddleware=function(){return function(store){return function(next){return function(action){var spotify=store.getState().spotify;switch(action.type){case"SPOTIFY_AUTHORIZATION_GRANTED":store.getState().ui.allow_reporting&&_reactGa2.default.event({category:"Spotify",action:"Authorization granted"}),store.dispatch(spotifyActions.flushLibrary()),next(action);break;case"SPOTIFY_AUTHORIZATION_REVOKED":if(store.getState().ui.allow_reporting){var hashed_username=null;store.getState().spotify.me&&(hashed_username=(0,_jsSha.sha256)(store.getState().spotify.me),_reactGa2.default.set({userId:hashed_username})),_reactGa2.default.event({category:"Spotify",action:"Authorization revoked",label:hashed_username})}next(action),store.dispatch(spotifyActions.getMe()),store.dispatch(spotifyActions.flushLibrary());break;case"SPOTIFY_IMPORT_AUTHORIZATION":store.dispatch(spotifyActions.flushLibrary()),setTimeout(function(){store.dispatch(spotifyActions.getMe())},100),next(action);break;case"SPOTIFY_RECOMMENDATIONS_LOADED":store.getState().ui.allow_reporting&&action.seeds_uris&&_reactGa2.default.event({category:"Spotify",action:"Recommendations",label:action.seeds_uris.join(",")}),next(action);break;case"SPOTIFY_USER_LOADED":store.getState().ui.allow_reporting&&action.data&&_reactGa2.default.event({category:"User",action:"Load",label:action.data.uri}),next(action);break;case"SPOTIFY_CREATE_PLAYLIST":store.dispatch(spotifyActions.createPlaylist(action.name,action.description,action.is_private,action.is_collaborative));break;case"SPOTIFY_REMOVE_PLAYLIST_TRACKS":var playlist=Object.assign({},store.getState().core.playlists[action.key]);store.dispatch(spotifyActions.deleteTracksFromPlaylist(playlist.uri,playlist.snapshot_id,action.tracks_indexes));break;case"SPOTIFY_ADD_PLAYLIST_TRACKS":store.dispatch(spotifyActions.addTracksToPlaylist(action.key,action.tracks_uris));break;case"SPOTIFY_REORDER_PLAYLIST_TRACKS":store.dispatch(spotifyActions.reorderPlaylistTracks(action.key,action.range_start,action.range_length,action.insert_before,action.snapshot_id));break;case"SPOTIFY_SAVE_PLAYLIST":store.dispatch(spotifyActions.savePlaylist(action.key,action.name,action.description,action.is_public,action.is_collaborative,action.image));break;case"SPOTIFY_NEW_RELEASES_LOADED":store.dispatch({type:"ALBUMS_LOADED",albums:action.data.albums.items}),action.uris=helpers.arrayOf("uri",action.data.albums.items),action.more=action.data.albums.next,action.total=action.data.albums.total,next(action);break;case"SPOTIFY_ARTIST_ALBUMS_LOADED":store.dispatch(coreActions.albumsLoaded(action.data.items)),store.dispatch({type:"ARTIST_ALBUMS_LOADED",artist_uri:action.artist_uri,albums_uris:helpers.arrayOf("uri",action.data.items),more:action.data.next,total:action.data.total});break;case"SPOTIFY_USER_PLAYLISTS_LOADED":for(var playlists=[],i=0;i<action.data.items.length;i++){var playlist=Object.assign({},action.data.items[i],{tracks_total:action.data.items[i].tracks.total});delete playlist.tracks,playlists.push(playlist)}store.dispatch({type:"PLAYLISTS_LOADED",playlists:playlists}),store.dispatch({type:"USER_PLAYLISTS_LOADED",key:action.key,uris:helpers.arrayOf("uri",playlists),more:action.data.next,total:action.data.total});break;case"SPOTIFY_CATEGORY_PLAYLISTS_LOADED":store.dispatch(coreActions.playlistsLoaded(action.playlists.items)),action.uris=helpers.arrayOf("uri",action.playlists.items),action.more=action.playlists.next,action.total=action.playlists.total,delete action.playlists,action.uris=helpers.upgradeSpotifyPlaylistUris(action.uris),next(action);break;case"SPOTIFY_CATEGORY_PLAYLISTS_LOADED_MORE":store.dispatch({type:"SPOTIFY_CATEGORY_PLAYLISTS_LOADED",uri:action.uri,playlists:action.data.playlists});break;case"SPOTIFY_CATEGORY_LOADED":store.dispatch({type:"SPOTIFY_CATEGORIES_LOADED",categories:[action.category]});break;case"SPOTIFY_CATEGORIES_LOADED":var categories_index=Object.assign({},spotify.categories),categories_loaded=[],_iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=action.categories[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var raw_category=_step.value,category=Object.assign({},raw_category);category.uri||(category.uri="category:"+category.id),void 0!==categories_index[category.uri]&&(category=Object.assign({},categories_index[category.uri],category)),category.icons&&(category.icons=helpers.formatImages(category.icons)),categories_loaded.push(category)}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}action.categories=categories_loaded,next(action);break;case"SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR":store.dispatch(spotifyActions.getLibraryPlaylistsProcessor(action.data));break;case"SPOTIFY_LIBRARY_PLAYLISTS_LOADED":var playlists=[],_iteratorNormalCompletion2=!0,_didIteratorError2=!1,_iteratorError2=void 0;try{for(var _step2,_iterator2=action.playlists[Symbol.iterator]();!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=!0){var playlist=_step2.value;Object.assign(playlist,{uri:playlist.uri.replace(/spotify:user:([^:]*?):/i,"spotify:"),can_edit:store.getState().spotify.me&&store.getState().spotify.me.id==playlist.owner.id,source:"spotify",in_library:!0,tracks_total:playlist.tracks.total}),delete playlist.tracks,playlists.push(playlist)}}catch(err){_didIteratorError2=!0,_iteratorError2=err}finally{try{!_iteratorNormalCompletion2&&_iterator2.return&&_iterator2.return()}finally{if(_didIteratorError2)throw _iteratorError2}}store.dispatch({type:"PLAYLISTS_LOADED",playlists:playlists}),action.uris=helpers.arrayOf("uri",playlists),next(action);break;case"SPOTIFY_GET_LIBRARY_ARTISTS_PROCESSOR":store.dispatch(spotifyActions.getLibraryArtistsProcessor(action.data));break;case"SPOTIFY_LIBRARY_ARTISTS_LOADED":for(var artists=[],i=0;i<action.artists.length;i++)artists.push(Object.assign({},action.artists[i],{source:"spotify",in_library:!0}));store.dispatch({type:"ARTISTS_LOADED",artists:artists}),action.uris=helpers.arrayOf("uri",artists),next(action);break;case"SPOTIFY_GET_LIBRARY_ALBUMS_PROCESSOR":store.dispatch(spotifyActions.getLibraryAlbumsProcessor(action.data));break;case"SPOTIFY_GET_LIBRARY_TRACKS_AND_PLAY_PROCESSOR":store.dispatch(spotifyActions.getLibraryTracksAndPlayProcessor(action.data));break;case"SPOTIFY_GET_ALL_PLAYLIST_TRACKS_PROCESSOR":store.dispatch(spotifyActions.getAllPlaylistTracksProcessor(action.data));break;case"SPOTIFY_LIBRARY_ALBUMS_LOADED":for(var albums=[],i=0;i<action.albums.length;i++)albums.push(Object.assign({},action.albums[i].album,{in_library:!0,source:"spotify",added_at:action.albums[i].added_at,tracks:action.albums[i].album.tracks.items,tracks_more:action.albums[i].album.tracks.next,tracks_total:action.albums[i].album.tracks.total}));store.dispatch({type:"ALBUMS_LOADED",albums:albums}),action.uris=helpers.arrayOf("uri",albums),next(action);break;case"SPOTIFY_FAVORITES_LOADED":action.artists.length>0&&(store.dispatch({type:"ARTISTS_LOADED",artists:action.artists}),action.artists_uris=helpers.arrayOf("uri",action.artists)),action.tracks.length>0&&(store.dispatch({type:"TRACKS_LOADED",tracks:action.tracks}),action.tracks_uris=helpers.arrayOf("uri",action.tracks)),next(action);break;case"SPOTIFY_LIBRARY_TRACKS_LOADED":case"SPOTIFY_LIBRARY_TRACKS_LOADED_MORE":action.data&&store.dispatch({type:"TRACKS_LOADED",tracks:action.data.items}),next(action);break;case"SPOTIFY_TRACK_LOADED":store.dispatch({type:"TRACKS_LOADED",tracks:[action.data]}),next(action);break;case"SEARCH_STARTED":store.dispatch({type:"SPOTIFY_CLEAR_SEARCH_RESULTS"}),next(action);break;case"SPOTIFY_SEARCH_RESULTS_LOADED_MORE_TRACKS":store.dispatch({type:"SPOTIFY_SEARCH_RESULTS_LOADED",context:"tracks",results:helpers.formatTracks(action.data.tracks.items),more:action.data.tracks.next});break;case"SPOTIFY_SEARCH_RESULTS_LOADED_MORE_ARTISTS":store.dispatch({type:"ARTISTS_LOADED",artists:action.data.artists.items}),store.dispatch({type:"SPOTIFY_SEARCH_RESULTS_LOADED",context:"artists",results:helpers.arrayOf("uri",action.data.playlists.items),more:action.data.playlists.next});break;case"SPOTIFY_SEARCH_RESULTS_LOADED_MORE_ALBUMS":store.dispatch({type:"ALBUMS_LOADED",albums:action.data.albums.items}),store.dispatch({type:"SPOTIFY_SEARCH_RESULTS_LOADED",context:"playlists",results:helpers.arrayOf("uri",action.data.albums.items),more:action.data.albums.next});break;case"SPOTIFY_SEARCH_RESULTS_LOADED_MORE_PLAYLISTS":for(var playlists=[],i=0;i<action.data.playlists.items.length;i++)playlists.push(Object.assign({},action.data.playlists.items[i],{tracks_total:action.data.playlists.items[i].tracks.total}));store.dispatch({type:"PLAYLISTS_LOADED",playlists:playlists}),store.dispatch({type:"SPOTIFY_SEARCH_RESULTS_LOADED",context:"playlists",results:helpers.arrayOf("uri",action.data.playlists.items),more:action.data.playlists.next});break;case"SPOTIFY_ME_LOADED":var me=Object.assign({},helpers.formatUser(action.me));if("Anonymous"==store.getState().pusher.username&&store.dispatch(pusherActions.setUsername(me.name)),store.getState().ui.allow_reporting){var hashed_username=(0,_jsSha.sha256)(me.id);_reactGa2.default.set({userId:hashed_username}),_reactGa2.default.event({category:"Spotify",action:"Authorization verified",label:hashed_username})}store.dispatch(coreActions.userLoaded(me)),action.me=me,next(action);break;default:return next(action)}}}}}();exports.default=SpotifyMiddleware},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _reactGa=__webpack_require__(13),helpers=(function(obj){obj&&obj.__esModule}(_reactGa),__webpack_require__(1)),coreActions=__webpack_require__(9),mopidyActions=__webpack_require__(6),uiActions=__webpack_require__(2),GoogleMiddleware=function(){var request=function(store,method){var params=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,response_callback=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,error_callback=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;store.dispatch(mopidyActions.request(method,params,response_callback,error_callback))};return function(store){return function(next){return function(action){store.getState().google;switch(action.type){case"GOOGLE_GET_LIBRARY_ALBUMS":var last_run=store.getState().ui.processes.GOOGLE_LIBRARY_ALBUMS_PROCESSOR;last_run?"cancelled"==last_run.status?store.dispatch(uiActions.resumeProcess("GOOGLE_LIBRARY_ALBUMS_PROCESSOR")):last_run.status:request(store,"library.browse",{uri:"gmusic:album"},function(response){if(!(response.length<=0)){var uris=helpers.arrayOf("uri",response);store.dispatch({type:"GOOGLE_LIBRARY_ALBUMS_LOADED",uris:uris}),store.dispatch(uiActions.startProcess("GOOGLE_LIBRARY_ALBUMS_PROCESSOR","Loading "+uris.length+" Google albums",{uris:uris,total:uris.length,remaining:uris.length}))}});break;case"GOOGLE_LIBRARY_ALBUMS_PROCESSOR":if(void 0!==store.getState().ui.processes.GOOGLE_LIBRARY_ALBUMS_PROCESSOR){if("cancelling"==store.getState().ui.processes.GOOGLE_LIBRARY_ALBUMS_PROCESSOR.status)return store.dispatch(uiActions.processCancelled("GOOGLE_LIBRARY_ALBUMS_PROCESSOR")),!1}var uris=Object.assign([],action.data.uris),uris_to_load=uris.splice(0,50);uris_to_load.length>0?(store.dispatch(uiActions.updateProcess("GOOGLE_LIBRARY_ALBUMS_PROCESSOR","Loading "+uris.length+" Google albums",{uris:uris,remaining:uris.length})),store.dispatch(mopidyActions.getAlbums(uris_to_load,{name:"GOOGLE_LIBRARY_ALBUMS_PROCESSOR",data:{uris:uris}}))):store.dispatch(uiActions.processFinishing("GOOGLE_LIBRARY_ALBUMS_PROCESSOR"));break;case"GOOGLE_GET_LIBRARY_ARTISTS":request(store,"library.browse",{uri:"gmusic:artist"},function(response){if(!(response.length<=0)){for(var uris=[],i=0;i<response.length;i++)response[i].uri=response[i].uri.replace("local:directory?albumartist=",""),uris.push(response[i].uri);store.dispatch(coreActions.artistsLoaded(response)),store.dispatch({type:"GOOGLE_LIBRARY_ARTISTS_LOADED",uris:uris})}},function(error){store.dispatch(coreActions.handleException("Could not load Google artists",error))});break;default:return next(action)}}}}}();exports.default=GoogleMiddleware},function(module,exports,__webpack_require__){"use strict";function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}Object.defineProperty(exports,"__esModule",{value:!0});var _reactGa=__webpack_require__(13),helpers=(function(obj){obj&&obj.__esModule}(_reactGa),__webpack_require__(1)),coreActions=__webpack_require__(9),pusherActions=(__webpack_require__(2),__webpack_require__(12)),snapcastActions=__webpack_require__(36),SnapcastMiddleware=function(){var request=function(store){var params=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,response_callback=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,error_callback=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;store.dispatch(pusherActions.request("snapcast",params,response_callback,error_callback))};return function(store){return function(next){return function(action){var snapcast=store.getState().snapcast;switch(action.type){case"SNAPCAST_GET_SERVER":request(store,{method:"Server.GetStatus"},function(response){store.dispatch(snapcastActions.serverLoaded(response.server))},function(error){store.dispatch(coreActions.handleException("Could not get server",error))});break;case"SNAPCAST_SERVER_LOADED":store.dispatch(snapcastActions.groupsLoaded(action.server.groups,!0)),store.dispatch(snapcastActions.streamsLoaded(action.server.streams,!0)),action.server=action.server.server,next(action);break;case"SNAPCAST_GROUPS_LOADED":var groups_index=Object.assign({},snapcast.groups),groups_loaded=[],clients_loaded=[],_iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=action.groups[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var raw_group=_step.value,group=helpers.formatGroup(raw_group);groups_index[group.id]&&(group=Object.assign({},groups_index[group.id],group)),raw_group.clients&&(group.clients_ids=helpers.arrayOf("id",raw_group.clients),clients_loaded=[].concat(_toConsumableArray(clients_loaded),_toConsumableArray(raw_group.clients))),groups_loaded.push(group)}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}action.groups=groups_loaded,clients_loaded.length>0&&store.dispatch(snapcastActions.clientsLoaded(clients_loaded,action.flush)),next(action);break;case"SNAPCAST_CLIENTS_LOADED":var clients_index=Object.assign({},snapcast.clients),clients_loaded=[],_iteratorNormalCompletion2=!0,_didIteratorError2=!1,_iteratorError2=void 0;try{for(var _step2,_iterator2=action.clients[Symbol.iterator]();!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=!0){var raw_client=_step2.value,client=helpers.formatClient(raw_client);clients_index[client.id]&&(client=Object.assign({},clients_index[client.id],client)),clients_loaded.push(client)}}catch(err){_didIteratorError2=!0,_iteratorError2=err}finally{try{!_iteratorNormalCompletion2&&_iterator2.return&&_iterator2.return()}finally{if(_didIteratorError2)throw _iteratorError2}}action.clients=clients_loaded,next(action);break;case"SNAPCAST_SET_CLIENT_NAME":var client=snapcast.clients[action.id],data={method:"Client.SetName",params:{id:action.id,name:action.name}};request(store,data,function(response){store.dispatch(snapcastActions.clientLoaded({id:action.id,name:response.name}))});break;case"SNAPCAST_SET_CLIENT_MUTE":var client=store.getState().snapcast.clients[action.id],data={method:"Client.SetVolume",params:{id:action.id,volume:{muted:action.mute,percent:client.volume}}};request(store,data,function(response){store.dispatch(snapcastActions.clientLoaded({id:action.id,volume:response.volume.percent,mute:response.volume.muted}))},function(error){store.dispatch(coreActions.handleException("Error",error,error.message))});break;case"SNAPCAST_SET_CLIENT_VOLUME":var client=snapcast.clients[action.id],data={method:"Client.SetVolume",params:{id:action.id,volume:{muted:client.mute,percent:action.volume}}};request(store,data,function(response){store.dispatch(snapcastActions.clientLoaded({id:action.id,volume:response.volume.percent}))},function(error){store.dispatch(coreActions.handleException("Error",error,error.message))});break;case"SNAPCAST_SET_CLIENT_LATENCY":var client=store.getState().snapcast.clients[action.id],data={method:"Client.SetLatency",params:{id:action.id,latency:action.latency}};request(store,data,function(response){store.dispatch(snapcastActions.clientLoaded({id:action.id,latency:response.latency}))},function(error){store.dispatch(coreActions.handleException("Error",error,error.message))});break;case"SNAPCAST_SET_CLIENT_GROUP":var group=snapcast.groups[action.group_id],clients_ids=group.clients_ids,clients_ids_index=clients_ids.indexOf(action.id);clients_ids_index<=-1?clients_ids.push(action.id):clients_ids.splice(clients_ids_index,1);var data={method:"Group.SetClients",params:{id:action.group_id,clients:clients_ids}};request(store,data,function(response){store.dispatch(snapcastActions.serverLoaded(response.server))},function(error){store.dispatch(coreActions.handleException("Error",error,error.message))});break;case"SNAPCAST_DELETE_CLIENT":var data={method:"Server.DeleteClient",params:{id:action.id}};request(store,data,function(response){store.dispatch({type:"SNAPCAST_CLIENT_REMOVED",key:action.data.params.id})},function(error){store.dispatch(coreActions.handleException("Error",error,error.message))});break;case"SNAPCAST_SET_GROUP_STREAM":var group=store.getState().snapcast.groups[action.id],data={method:"Group.SetStream",params:{id:action.id,stream_id:action.stream_id}};request(store,data,function(response){store.dispatch(snapcastActions.groupLoaded({id:action.id,stream_id:action.stream_id}))},function(error){store.dispatch(coreActions.handleException("Could not change stream",error,error.message))});break;case"SNAPCAST_SET_GROUP_MUTE":var group=store.getState().snapcast.groups[action.id],data={method:"Group.SetMute",params:{id:action.id,mute:action.mute}};request(store,data,function(response){store.dispatch(snapcastActions.groupLoaded({id:action.id,muted:response.mute}))},function(error){store.dispatch(coreActions.handleException("Could not toggle mute",error,error.message))});break;case"SNAPCAST_SET_GROUP_VOLUME":var clients_to_update=[],group=snapcast.groups[action.id],change=action.percent-action.old_percent,_iteratorNormalCompletion3=!0,_didIteratorError3=!1,_iteratorError3=void 0;try{for(var _step3,_iterator3=group.clients_ids[Symbol.iterator]();!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=!0){var client_id=_step3.value,client=snapcast.clients[client_id],current_volume=client.volume,new_volume=current_volume+change;(change>0&&current_volume<100||change<0&&current_volume>0)&&clients_to_update.push({id:client.id,volume:new_volume})}}catch(err){_didIteratorError3=!0,_iteratorError3=err}finally{try{!_iteratorNormalCompletion3&&_iterator3.return&&_iterator3.return()}finally{if(_didIteratorError3)throw _iteratorError3}}var _iteratorNormalCompletion4=!0,_didIteratorError4=!1,_iteratorError4=void 0;try{for(var _step4,_iterator4=clients_to_update[Symbol.iterator]();!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=!0){var client_to_update=_step4.value,volume=client_to_update.volume+(group.clients_ids.length-clients_to_update.length)*change;volume<0?volume=0:volume>100&&(volume=100),store.dispatch(snapcastActions.setClientVolume(client_to_update.id,volume))}}catch(err){_didIteratorError4=!0,_iteratorError4=err}finally{try{!_iteratorNormalCompletion4&&_iterator4.return&&_iterator4.return()}finally{if(_didIteratorError4)throw _iteratorError4}}break;case"SNAPCAST_EVENT_RECEIVED":switch(action.method=action.method.replace("snapcast_",""),action.method){case"Client.OnConnect":store.dispatch(snapcastActions.clientLoaded({id:action.params.client.id,name:action.params.client.name,volume:action.params.client.volume.percent,mute:action.params.client.volume.muted,connected:action.params.client.connected}));break;case"Client.OnDisconnect":store.dispatch(snapcastActions.clientLoaded({id:action.params.client.id,connected:action.params.client.connected}));break;case"Client.OnVolumeChanged":store.dispatch(snapcastActions.clientLoaded({id:action.params.id,mute:action.params.volume.muted,volume:action.params.volume.percent}));break;case"Client.OnLatencyChanged":store.dispatch(snapcastActions.clientLoaded({id:action.params.id,latency:action.params.latency}));break;case"Client.OnNameChanged":store.dispatch(snapcastActions.clientLoaded({id:action.params.id,name:action.params.name}));break;case"Group.OnMute":store.dispatch(snapcastActions.groupLoaded({id:action.params.id,mute:action.params.mute}));break;case"Server.OnUpdate":store.dispatch(snapcastActions.serverLoaded(action.params))}break;default:return next(action)}}}}}();exports.default=SnapcastMiddleware},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var helpers=__webpack_require__(1),localstorageMiddleware=function(){return function(store){return function(next){return function(action){if(next(action),window._store=store,store.getState().ui.log_actions){["START_LOADING","STOP_LOADING"].includes(action.type)||console.log(action)}switch(action.type){case"PUSHER_CONNECTED":helpers.setStorage("pusher",{connection_id:action.connection_id});break;case"PUSHER_SET_PORT":helpers.setStorage("pusher",{port:action.port});break;case"PUSHER_USERNAME_CHANGED":helpers.setStorage("pusher",{username:action.username});break;case"MOPIDY_URISCHEMES_FILTERED":helpers.setStorage("mopidy",{uri_schemes:action.data});break;case"SPOTIFY_AUTHORIZATION_GRANTED":if(void 0!==action.authorization)var authorization=action.authorization;else if(action.data)var authorization=action.data;helpers.setStorage("spotify",{authorization:authorization,access_token:authorization.access_token,refresh_token:authorization.refresh_token,token_expiry:authorization.token_expiry});break;case"SPOTIFY_IMPORT_AUTHORIZATION":helpers.setStorage("spotify",{authorization:action.authorization,access_token:action.authorization.access_token,refresh_token:action.authorization.refresh_token,token_expiry:action.authorization.token_expiry,me:null});break;case"SPOTIFY_AUTHORIZATION_REVOKED":helpers.setStorage("spotify",{authorization:null,access_token:null,refresh_token:null,token_expiry:null,me:null});break;case"SPOTIFY_TOKEN_REFRESHED":helpers.setStorage("spotify",{access_token:action.data.access_token,token_expiry:action.data.token_expiry,provider:action.provider});break;case"SPOTIFY_ME_LOADED":helpers.setStorage("spotify",{me:action.me});break;case"LASTFM_ME_LOADED":helpers.setStorage("lastfm",{me:action.me});break;case"LASTFM_AUTHORIZATION_GRANTED":helpers.setStorage("lastfm",{authorization:action.data.session});break;case"LASTFM_AUTHORIZATION_REVOKED":helpers.setStorage("lastfm",{authorization:null,me:null});break;case"LASTFM_IMPORT_AUTHORIZATION":helpers.setStorage("lastfm",{authorization:action.authorization,me:null});break;case"GENIUS_ME_LOADED":helpers.setStorage("genius",{me:action.me});break;case"GENIUS_AUTHORIZATION_GRANTED":helpers.setStorage("genius",{authorization:action.data,authorization_code:action.data.authorization_code,access_token:action.data.access_token});break;case"GENIUS_AUTHORIZATION_REVOKED":helpers.setStorage("genius",{me:null,authorization:null,authorization_code:null,access_token:null});break;case"GENIUS_IMPORT_AUTHORIZATION":helpers.setStorage("genius",{authorization:action.authorization,authorization_code:action.authorization.authorization_code,access_token:action.authorization.access_token,me:null});break;case"CORE_SET":helpers.setStorage("core",action.data);break;case"UI_SET":helpers.setStorage("ui",action.data);break;case"MOPIDY_SET":helpers.setStorage("mopidy",action.data);break;case"SPOTIFY_SET":helpers.setStorage("spotify",action.data);break;case"SNAPCAST_COMMANDS_UPDATED":helpers.setStorage("snapcast",{commands:action.commands});break;case"SUPPRESS_BROADCAST":var ui=helpers.getStorage("ui");if(void 0!==ui.suppressed_broadcasts)var suppressed_broadcasts=ui.suppressed_broadcasts;else var suppressed_broadcasts=[];suppressed_broadcasts.push(action.key),helpers.setStorage("ui",{suppressed_broadcasts:suppressed_broadcasts})}}}}}();exports.default=localstorageMiddleware},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.App=void 0;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactDom=__webpack_require__(63),_redux=(_interopRequireDefault(_reactDom),__webpack_require__(3)),_reactRouterDom=__webpack_require__(29),_reactRedux=__webpack_require__(4),_reactGa=__webpack_require__(13),_reactGa2=_interopRequireDefault(_reactGa),_Sidebar=__webpack_require__(178),_Sidebar2=_interopRequireDefault(_Sidebar),_PlaybackControls=__webpack_require__(183),_PlaybackControls2=_interopRequireDefault(_PlaybackControls),_ContextMenu=__webpack_require__(185),_ContextMenu2=_interopRequireDefault(_ContextMenu),_Dragger=__webpack_require__(187),_Dragger2=_interopRequireDefault(_Dragger),_Notifications=__webpack_require__(188),_Notifications2=_interopRequireDefault(_Notifications),_DebugInfo=__webpack_require__(189),_DebugInfo2=_interopRequireDefault(_DebugInfo),_ErrorBoundary=__webpack_require__(44),_ErrorMessage=(_interopRequireDefault(_ErrorBoundary),__webpack_require__(30)),_ErrorMessage2=_interopRequireDefault(_ErrorMessage),_Album=__webpack_require__(190),_Album2=_interopRequireDefault(_Album),_Artist=__webpack_require__(191),_Artist2=_interopRequireDefault(_Artist),_Playlist=__webpack_require__(192),_Playlist2=_interopRequireDefault(_Playlist),_User=__webpack_require__(193),_User2=_interopRequireDefault(_User),_Track=__webpack_require__(194),_Track2=_interopRequireDefault(_Track),_Queue=__webpack_require__(196),_Queue2=_interopRequireDefault(_Queue),_QueueHistory=__webpack_require__(197),_QueueHistory2=_interopRequireDefault(_QueueHistory),_Debug=__webpack_require__(198),_Debug2=_interopRequireDefault(_Debug),_Search=__webpack_require__(199),_Search2=_interopRequireDefault(_Search),_Settings=__webpack_require__(201),_Settings2=_interopRequireDefault(_Settings),_DiscoverRecommendations=__webpack_require__(212),_DiscoverRecommendations2=_interopRequireDefault(_DiscoverRecommendations),_DiscoverFeatured=__webpack_require__(230),_DiscoverFeatured2=_interopRequireDefault(_DiscoverFeatured),_DiscoverCategories=__webpack_require__(231),_DiscoverCategories2=_interopRequireDefault(_DiscoverCategories),_DiscoverCategory=__webpack_require__(233),_DiscoverCategory2=_interopRequireDefault(_DiscoverCategory),_DiscoverNewReleases=__webpack_require__(234),_DiscoverNewReleases2=_interopRequireDefault(_DiscoverNewReleases),_LibraryArtists=__webpack_require__(235),_LibraryArtists2=_interopRequireDefault(_LibraryArtists),_LibraryAlbums=__webpack_require__(237),_LibraryAlbums2=_interopRequireDefault(_LibraryAlbums),_LibraryTracks=__webpack_require__(238),_LibraryTracks2=_interopRequireDefault(_LibraryTracks),_LibraryPlaylists=__webpack_require__(239),_LibraryPlaylists2=_interopRequireDefault(_LibraryPlaylists),_LibraryBrowse=__webpack_require__(240),_LibraryBrowse2=_interopRequireDefault(_LibraryBrowse),_LibraryBrowseDirectory=__webpack_require__(241),_LibraryBrowseDirectory2=_interopRequireDefault(_LibraryBrowseDirectory),_EditPlaylist=__webpack_require__(242),_EditPlaylist2=_interopRequireDefault(_EditPlaylist),_CreatePlaylist=__webpack_require__(243),_CreatePlaylist2=_interopRequireDefault(_CreatePlaylist),_EditRadio=__webpack_require__(244),_EditRadio2=_interopRequireDefault(_EditRadio),_AddToQueue=__webpack_require__(245),_AddToQueue2=_interopRequireDefault(_AddToQueue),_InitialSetup=__webpack_require__(246),_InitialSetup2=_interopRequireDefault(_InitialSetup),_KioskMode=__webpack_require__(247),_KioskMode2=_interopRequireDefault(_KioskMode),_ShareConfiguration=__webpack_require__(248),_ShareConfiguration2=_interopRequireDefault(_ShareConfiguration),_AddToPlaylist=__webpack_require__(249),_AddToPlaylist2=_interopRequireDefault(_AddToPlaylist),_ImageZoom=__webpack_require__(250),_ImageZoom2=_interopRequireDefault(_ImageZoom),_EditCommand=__webpack_require__(251),_EditCommand2=_interopRequireDefault(_EditCommand),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions5),_actions6=__webpack_require__(16),lastfmActions=_interopRequireWildcard(_actions6),_actions7=__webpack_require__(32),geniusActions=_interopRequireWildcard(_actions7),_actions8=__webpack_require__(36),snapcastActions=_interopRequireWildcard(_actions8),App=exports.App=function(_React$Component){function App(props){_classCallCheck(this,App);var _this=_possibleConstructorReturn(this,(App.__proto__||Object.getPrototypeOf(App)).call(this,props));return _this.handleKeyUp=_this.handleKeyUp.bind(_this),_this.handleKeyDown=_this.handleKeyDown.bind(_this),_this.handleWindowResize=_this.handleWindowResize.bind(_this),_this.handleInstallPrompt=_this.handleInstallPrompt.bind(_this),_this.handleFocusAndBlur=_this.handleFocusAndBlur.bind(_this),_this}return _inherits(App,_React$Component),_createClass(App,[{key:"componentWillMount",value:function(){window.addEventListener("keyup",this.handleKeyUp,!1),window.addEventListener("keydown",this.handleKeyDown,!1),window.addEventListener("resize",this.handleWindowResize,!1),window.addEventListener("beforeinstallprompt",this.handleInstallPrompt,!1),window.addEventListener("focus",this.handleFocusAndBlur,!1),window.addEventListener("blur",this.handleFocusAndBlur,!1)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("keyup",this.handleKeyUp,!1),window.removeEventListener("keydown",this.handleKeyDown,!1),window.removeEventListener("resize",this.handleWindowResize,!1),window.removeEventListener("beforeinstallprompt",this.handleInstallPrompt,!1),window.removeEventListener("focus",this.handleFocusAndBlur,!1),window.removeEventListener("blur",this.handleFocusAndBlur,!1)}},{key:"componentDidMount",value:function(){var _this2=this;this.props.allow_reporting&&_reactGa2.default.initialize("UA-64701652-3"),this.props.mopidyActions.connect(),this.props.pusherActions.connect(),this.props.coreActions.getBroadcasts(),this.handleWindowResize(null);var url_vars=this.props.location.query;if(url_vars){var has_values=!1,values={};void 0!==url_vars.host&&(has_values=!0,values.host=url_vars.host),void 0!==url_vars.port&&(has_values=!0,values.port=url_vars.port),has_values&&(this.props.mopidyActions.set(values),setTimeout(function(){_this2.props.history.push("/")},100))}this.props.initial_setup_complete||this.props.history.push("/initial-setup")}},{key:"componentDidUpdate",value:function(prevProps){if(this.props.location!==prevProps.location){this.props.allow_reporting&&(_reactGa2.default.set({page:this.props.location.pathname}),_reactGa2.default.pageview(this.props.location.pathname));var location_state=this.props.location.state?this.props.location.state:{};location_state.scroll_position&&helpers.scrollTo(parseInt(location_state.scroll_position),!1),this.props.uiActions.toggleSidebar(!1),this.props.uiActions.setSelectedTracks([]),this.props.context_menu&&this.props.uiActions.hideContextMenu()}}},{key:"shouldTriggerShortcut",value:function(e){if(!this.props.shortkeys_enabled)return!1;var keyCode=e.keyCode||e.which;if(["INPUT","TEXTAREA"].indexOf(e.target.nodeName)>-1)return!1;if([27,32,191].indexOf(keyCode)>-1)return e.preventDefault(),!0;var hokeys_with_alt=[37,38,39,40];if(e.altKey&&hokeys_with_alt.indexOf(keyCode)>-1)return e.preventDefault(),!0;var hokeys_with_alt_and_shift=[70];return e.altKey&&e.shiftKey&&hokeys_with_alt_and_shift.indexOf(keyCode)>-1?(e.preventDefault(),!0):void 0}},{key:"handleFocusAndBlur",value:function(e){this.props.uiActions.setWindowFocus(document.hasFocus())}},{key:"handleInstallPrompt",value:function(e){e.preventDefault(),this.props.uiActions.installPrompt(e)}},{key:"handleWindowResize",value:function(e){var width=Math.max(document.documentElement.clientWidth,window.innerWidth||0);Math.max(document.documentElement.clientHeight,window.innerHeight||0);width<=800?this.props.slim_mode||this.props.uiActions.setSlimMode(!0):this.props.slim_mode&&this.props.uiActions.setSlimMode(!1)}},{key:"handleKeyDown",value:function(e){this.shouldTriggerShortcut(e)}},{key:"handleKeyUp",value:function(e){if(this.shouldTriggerShortcut(e))switch(e.keyCode||e.which){case 32:e.ctrlKey||e.metaKey?(this.props.mopidyActions.stop(),this.props.uiActions.createNotification({content:"stop",type:"shortcut",key:"shortcut",duration:1})):"playing"==this.props.play_state?(this.props.mopidyActions.pause(),this.props.uiActions.createNotification({content:"pause",type:"shortcut",key:"shortcut",duration:1})):(this.props.mopidyActions.play(),this.props.uiActions.createNotification({content:"play",type:"shortcut",key:"shortcut",duration:1}));break;case 27:this.props.dragger&&this.props.dragger.dragging&&this.props.uiActions.dragEnd();break;case 40:if(e.altKey&&e.shiftKey)this.props.mopidyActions.setMute(!0),this.props.uiActions.createNotification({content:"volume-off",type:"shortcut",key:"shortcut",duration:1});else if(e.altKey){var volume=this.props.volume;"false"!==volume&&(volume-=5,volume<0&&(volume=0),this.props.mopidyActions.setVolume(volume),this.props.mute&&this.props.mopidyActions.setMute(!1),this.props.uiActions.createNotification({content:"volume-down",type:"shortcut",key:"shortcut",duration:1}))}break;case 38:if(e.altKey&&e.shiftKey)this.props.mopidyActions.setVolume(100),this.props.mute&&this.props.mopidyActions.setMute(!1),this.props.uiActions.createNotification({content:"volume-up",type:"shortcut",key:"shortcut",duration:1});else if(e.altKey){var volume=this.props.volume;"false"!==volume&&(volume+=5,volume>100&&(volume=100),this.props.mopidyActions.setVolume(volume),this.props.mute&&this.props.mopidyActions.setMute(!1),this.props.uiActions.createNotification({content:"volume-up",type:"shortcut",key:"shortcut",duration:1}))}break;case 37:if(e.altKey&&e.shiftKey){var new_position=this.props.play_time_position-3e4;new_position<0&&(new_position=0),this.props.mopidyActions.setTimePosition(new_position),this.props.uiActions.createNotification({content:"fast-backward",type:"shortcut",key:"shortcut",duration:1})}else e.altKey&&(this.props.mopidyActions.previous(),this.props.uiActions.createNotification({content:"step-backward",type:"shortcut",key:"shortcut",duration:1}));break;case 39:e.altKey&&e.shiftKey?(this.props.mopidyActions.setTimePosition(this.props.play_time_position+3e4),this.props.uiActions.createNotification({content:"fast-forward",type:"shortcut",key:"shortcut",duration:1})):e.altKey&&(this.props.mopidyActions.next(),this.props.uiActions.createNotification({content:"step-forward",type:"shortcut",key:"shortcut",duration:1}));break;case 70:e.altKey&&e.shiftKey&&this.props.history.push("/kiosk-mode")}}},{key:"render",value:function(){var className=this.props.theme+"-theme";return this.props.dragger&&this.props.dragger.active&&(className+=" dragging"),this.props.sidebar_open&&(className+=" sidebar-open"),this.props.touch_dragging&&(className+=" touch-dragging"),this.props.context_menu&&(className+=" context-menu-open"),this.props.slim_mode&&(className+=" slim-mode"),this.props.smooth_scrolling_enabled&&(className+=" smooth-scrolling-enabled"),helpers.isTouchDevice()?className+=" touch":className+=" notouch",_react2.default.createElement("div",{className:className},_react2.default.createElement("div",{className:"body"},_react2.default.createElement(_reactRouterDom.Switch,null,_react2.default.createElement(_reactRouterDom.Route,{path:"/initial-setup",component:_InitialSetup2.default}),_react2.default.createElement(_reactRouterDom.Route,{path:"/kiosk-mode",component:_KioskMode2.default}),_react2.default.createElement(_reactRouterDom.Route,{path:"/add-to-playlist/:uris",component:_AddToPlaylist2.default}),_react2.default.createElement(_reactRouterDom.Route,{path:"/image-zoom",component:_ImageZoom2.default}),_react2.default.createElement(_reactRouterDom.Route,{path:"/share-configuration",component:_ShareConfiguration2.default}),_react2.default.createElement(_reactRouterDom.Route,{path:"/edit-command/:id?",component:_EditCommand2.default}),_react2.default.createElement(_reactRouterDom.Route,{path:"/queue/radio",component:_EditRadio2.default}),_react2.default.createElement(_reactRouterDom.Route,{path:"/queue/add-uri",component:_AddToQueue2.default}),_react2.default.createElement(_reactRouterDom.Route,{path:"/playlist/create",component:_CreatePlaylist2.default}),_react2.default.createElement(_reactRouterDom.Route,{path:"/playlist/:uri/edit",component:_EditPlaylist2.default}),_react2.default.createElement(_reactRouterDom.Route,null,_react2.default.createElement("div",null,_react2.default.createElement(_Sidebar2.default,null),_react2.default.createElement(_PlaybackControls2.default,{history:this.props.history}),_react2.default.createElement("main",{id:"main",className:"smooth-scroll"},_react2.default.createElement(_reactRouterDom.Switch,null,_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/",component:_Queue2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/queue",component:_Queue2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/queue/history",component:_QueueHistory2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/settings/debug",component:_Debug2.default}),_react2.default.createElement(_reactRouterDom.Route,{path:"/settings",component:_Settings2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/search/:type?/:term?",component:_Search2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/album/:uri",component:_Album2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/artist/:uri/:sub_view?",component:_Artist2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/playlist/:uri",component:_Playlist2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/user/:uri",component:_User2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/track/:uri",component:_Track2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/discover/recommendations/:seeds?",component:_DiscoverRecommendations2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/discover/featured",component:_DiscoverFeatured2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/discover/categories/:id",component:_DiscoverCategory2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/discover/categories",component:_DiscoverCategories2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/discover/new-releases",component:_DiscoverNewReleases2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/library/artists",component:_LibraryArtists2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/library/albums",component:_LibraryAlbums2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/library/tracks",component:_LibraryTracks2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/library/playlists",component:_LibraryPlaylists2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/library/browse",component:_LibraryBrowse2.default}),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/library/browse/:uri",component:_LibraryBrowseDirectory2.default}),_react2.default.createElement(_reactRouterDom.Route,null,_react2.default.createElement(_ErrorMessage2.default,{type:"not-found",title:"Not found"},_react2.default.createElement("p",null,"Oops, that link could not be found"))))))))),_react2.default.createElement(_ContextMenu2.default,null),_react2.default.createElement(_Dragger2.default,null),_react2.default.createElement(_Notifications2.default,{uiActions:this.props.uiActions,spotifyActions:this.props.spotifyActions,geniusActions:this.props.geniusActions,lastfmActions:this.props.lastfmActions,snapcastActions:this.props.snapcastActions,notifications:this.props.notifications,processes:this.props.processes,broadcasts:this.props.broadcasts}),this.props.debug_info?_react2.default.createElement(_DebugInfo2.default,null):null)}}]),App}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{theme:state.ui.theme,smooth_scrolling_enabled:state.ui.smooth_scrolling_enabled,shortkeys_enabled:state.ui.shortkeys_enabled,allow_reporting:state.ui.allow_reporting,touch_dragging:state.ui.touch_dragging,initial_setup_complete:state.ui.initial_setup_complete,slim_mode:state.ui.slim_mode,broadcasts:state.ui.broadcasts?state.ui.broadcasts:[],volume:!!state.mopidy.volume&&state.mopidy.volume,notifications:state.ui.notifications?state.ui.notifications:[],processes:state.ui.processes?state.ui.processes:{},load_queue:state.ui.load_queue?state.ui.load_queue:{},mopidy_connected:state.mopidy.connected,spotify_authorized:state.spotify.authorization,play_state:state.mopidy.play_state,play_time_position:parseInt(state.mopidy.time_position),mute:state.mopidy.mute,sidebar_open:state.ui.sidebar_open,dragger:state.ui.dragger,context_menu:state.ui.context_menu,debug_info:state.ui.debug_info}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch),lastfmActions:(0,_redux.bindActionCreators)(lastfmActions,dispatch),geniusActions:(0,_redux.bindActionCreators)(geniusActions,dispatch),snapcastActions:(0,_redux.bindActionCreators)(snapcastActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(App)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_reactRouter=__webpack_require__(33),_Link=__webpack_require__(7),_Link2=_interopRequireDefault(_Link),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_Dropzones=__webpack_require__(181),_Dropzones2=_interopRequireDefault(_Dropzones),_Thumbnail=__webpack_require__(10),_actions=(_interopRequireDefault(_Thumbnail),__webpack_require__(2)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions2),Sidebar=function(_React$Component){function Sidebar(props){return _classCallCheck(this,Sidebar),_possibleConstructorReturn(this,(Sidebar.__proto__||Object.getPrototypeOf(Sidebar)).call(this,props))}return _inherits(Sidebar,_React$Component),_createClass(Sidebar,[{key:"render",value:function(){var _this2=this;return _react2.default.createElement("aside",{className:"sidebar"},_react2.default.createElement("div",{className:"sidebar__liner"},_react2.default.createElement("nav",{className:"sidebar__menu"},_react2.default.createElement("section",{className:"sidebar__menu__section"},_react2.default.createElement(_Link2.default,{to:"/queue",history:this.props.history,className:"sidebar__menu__item",activeClassName:"sidebar__menu__item--active"},_react2.default.createElement(_Icon2.default,{name:"play_arrow",type:"material"}),"Now playing"),_react2.default.createElement(_Link2.default,{to:"/search",history:this.props.history,className:"sidebar__menu__item",activeClassName:"sidebar__menu__item--active"},_react2.default.createElement(_Icon2.default,{name:"search",type:"material"}),"Search")),this.props.spotify_enabled?_react2.default.createElement("section",{className:"sidebar__menu__section"},_react2.default.createElement("title",{className:"sidebar__menu__section__title"},"Discover"),_react2.default.createElement(_Link2.default,{to:"/discover/recommendations",history:this.props.history,className:"sidebar__menu__item",activeClassName:"sidebar__menu__item--active"},_react2.default.createElement(_Icon2.default,{name:"explore",type:"material"}),"Discover"),_react2.default.createElement(_Link2.default,{to:"/discover/categories",history:this.props.history,className:"sidebar__menu__item",activeClassName:"sidebar__menu__item--active"},_react2.default.createElement(_Icon2.default,{name:"mood",type:"material"}),"Genre / Mood"),_react2.default.createElement(_Link2.default,{to:"/discover/featured",history:this.props.history,className:"sidebar__menu__item",activeClassName:"sidebar__menu__item--active"},_react2.default.createElement(_Icon2.default,{name:"star",type:"material"}),"Featured playlists"),_react2.default.createElement(_Link2.default,{to:"/discover/new-releases",history:this.props.history,className:"sidebar__menu__item",activeClassName:"sidebar__menu__item--active"},_react2.default.createElement(_Icon2.default,{name:"new_releases",type:"material"}),"New releases")):null,_react2.default.createElement("section",{className:"sidebar__menu__section"},_react2.default.createElement("title",{className:"sidebar__menu__section__title"},"My Music"),_react2.default.createElement(_Link2.default,{to:"/library/playlists",history:this.props.history,className:"sidebar__menu__item",activeClassName:"sidebar__menu__item--active"},_react2.default.createElement(_Icon2.default,{name:"queue_music",type:"material"}),"Playlists"),_react2.default.createElement(_Link2.default,{to:"/library/artists",history:this.props.history,className:"sidebar__menu__item",activeClassName:"sidebar__menu__item--active"},_react2.default.createElement(_Icon2.default,{name:"recent_actors",type:"material"}),"Artists"),_react2.default.createElement(_Link2.default,{to:"/library/albums",history:this.props.history,className:"sidebar__menu__item",activeClassName:"sidebar__menu__item--active"},_react2.default.createElement(_Icon2.default,{name:"album",type:"material"}),"Albums"),_react2.default.createElement(_Link2.default,{to:"/library/tracks",history:this.props.history,className:"sidebar__menu__item",activeClassName:"sidebar__menu__item--active"},_react2.default.createElement(_Icon2.default,{name:"music_note",type:"material"}),"Tracks"),_react2.default.createElement(_Link2.default,{to:"/library/browse",history:this.props.history,className:"sidebar__menu__item",activeClassName:"sidebar__menu__item--active"},_react2.default.createElement(_Icon2.default,{name:"folder",type:"material"}),"Browse")),_react2.default.createElement("section",{className:"sidebar__menu__section"},_react2.default.createElement(_Link2.default,{to:"/settings",history:this.props.history,className:"sidebar__menu__item",activeClassName:"sidebar__menu__item--active"},_react2.default.createElement(_Icon2.default,{name:"settings",type:"material"}),"Settings",this.props.update_available?_react2.default.createElement("span",{className:"status tooltip tooltip--right"},_react2.default.createElement(_Icon2.default,{name:"cloud_download",className:"green-text"}),_react2.default.createElement("span",{className:"tooltip__content"},"Update available")):null,this.props.mopidy_connected&&this.props.pusher_connected?null:_react2.default.createElement("span",{className:"status tooltip tooltip--right"},_react2.default.createElement(_Icon2.default,{name:"warning",className:"red-text"}),_react2.default.createElement("span",{className:"tooltip__content"},this.props.mopidy_connected?null:_react2.default.createElement("span",null,"Mopidy not connected",_react2.default.createElement("br",null)),this.props.pusher_connected?null:_react2.default.createElement("span",null,"Pusher not connected",_react2.default.createElement("br",null)))))))),_react2.default.createElement(_Dropzones2.default,null),_react2.default.createElement("div",{className:"close",onClick:function(e){return _this2.props.uiActions.toggleSidebar(!1)}},_react2.default.createElement(_Icon2.default,{name:"close"})))}}]),Sidebar}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{mopidy_connected:state.mopidy.connected,pusher_connected:state.pusher.connected,spotify_enabled:state.spotify.enabled,spotify_authorized:state.spotify.authorization,update_available:!(!state.pusher.version||!state.pusher.version.update_available)&&state.pusher.version.update_available,test_mode:!!state.ui.test_mode&&state.ui.test_mode,dragger:state.ui.dragger}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)((0,_reactRouter.withRouter)(Sidebar))},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj)keys.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(obj,i)&&(target[i]=obj[i]);return target}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_propTypes=__webpack_require__(11),_propTypes2=_interopRequireDefault(_propTypes),_screenReaderStyles=__webpack_require__(180),_screenReaderStyles2=_interopRequireDefault(_screenReaderStyles),FontAwesome=function(_React$Component){function FontAwesome(){_classCallCheck(this,FontAwesome);var _this=_possibleConstructorReturn(this,(FontAwesome.__proto__||Object.getPrototypeOf(FontAwesome)).call(this));return _this.displayName="FontAwesome",_this}return _inherits(FontAwesome,_React$Component),_createClass(FontAwesome,[{key:"render",value:function(){var _props=this.props,border=_props.border,cssModule=_props.cssModule,className=_props.className,fixedWidth=_props.fixedWidth,flip=_props.flip,inverse=_props.inverse,name=_props.name,pulse=_props.pulse,rotate=_props.rotate,size=_props.size,spin=_props.spin,stack=_props.stack,_props$tag=_props.tag,tag=void 0===_props$tag?"span":_props$tag,ariaLabel=_props.ariaLabel,props=_objectWithoutProperties(_props,["border","cssModule","className","fixedWidth","flip","inverse","name","pulse","rotate","size","spin","stack","tag","ariaLabel"]),classNames=[];return cssModule?(classNames.push(cssModule.fa),classNames.push(cssModule["fa-"+name]),size&&classNames.push(cssModule["fa-"+size]),spin&&classNames.push(cssModule["fa-spin"]),pulse&&classNames.push(cssModule["fa-pulse"]),border&&classNames.push(cssModule["fa-border"]),fixedWidth&&classNames.push(cssModule["fa-fw"]),inverse&&classNames.push(cssModule["fa-inverse"]),flip&&classNames.push(cssModule["fa-flip-"+flip]),rotate&&classNames.push(cssModule["fa-rotate-"+rotate]),stack&&classNames.push(cssModule["fa-stack-"+stack])):(classNames.push("fa"),classNames.push("fa-"+name),size&&classNames.push("fa-"+size),spin&&classNames.push("fa-spin"),pulse&&classNames.push("fa-pulse"),border&&classNames.push("fa-border"),fixedWidth&&classNames.push("fa-fw"),inverse&&classNames.push("fa-inverse"),flip&&classNames.push("fa-flip-"+flip),rotate&&classNames.push("fa-rotate-"+rotate),stack&&classNames.push("fa-stack-"+stack)),className&&classNames.push(className),_react2.default.createElement(tag,_extends({},props,{"aria-hidden":!0,className:classNames.join(" ")}),ariaLabel?_react2.default.createElement("span",{style:_screenReaderStyles2.default},ariaLabel):null)}}]),FontAwesome}(_react2.default.Component);FontAwesome.propTypes={ariaLabel:_propTypes2.default.string,border:_propTypes2.default.bool,className:_propTypes2.default.string,cssModule:_propTypes2.default.object,fixedWidth:_propTypes2.default.bool,flip:_propTypes2.default.oneOf(["horizontal","vertical"]),inverse:_propTypes2.default.bool,name:_propTypes2.default.string.isRequired,pulse:_propTypes2.default.bool,rotate:_propTypes2.default.oneOf([90,180,270]),size:_propTypes2.default.oneOf(["lg","2x","3x","4x","5x"]),spin:_propTypes2.default.bool,stack:_propTypes2.default.oneOf(["1x","2x"]),tag:_propTypes2.default.string},exports.default=FontAwesome,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default={position:"absolute",width:"1px",height:"1px",padding:"0px",margin:"-1px",overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",border:"0px"},module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_reactRouter=__webpack_require__(33),_Dropzone=__webpack_require__(182),_Dropzone2=_interopRequireDefault(_Dropzone),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions3),Dropzones=function(_React$Component){function Dropzones(props){_classCallCheck(this,Dropzones);var _this=_possibleConstructorReturn(this,(Dropzones.__proto__||Object.getPrototypeOf(Dropzones)).call(this,props));return _this._zones=[{title:"Add to queue",icon:"play_arrow",action:"enqueue"},{title:"Play next",icon:"play_arrow",action:"enqueue_next"},{title:"Add to playlist",icon:"playlist_add",action:"add_to_playlist",accepts:["tltrack","track","album","playlist","artist"]}],_this}return _inherits(Dropzones,_React$Component),_createClass(Dropzones,[{key:"handleMouseMove",value:function(e){if(!this.props.dragger||!this.props.dragger.active)return null;this.props.uiActions.dragMove(e)}},{key:"handleMouseUp",value:function(e,index){for(var target=this._zones[index],victims=this.props.dragger.victims,uris=[],i=0;i<victims.length;i++)uris.push(victims[i].uri);switch(target.action){case"enqueue":this.props.mopidyActions.enqueueURIs(uris,this.props.dragger.from_uri);break;case"enqueue_next":this.props.mopidyActions.enqueueURIs(uris,this.props.dragger.from_uri,!0);break;case"add_to_playlist":this.props.history.push("/add-to-playlist/"+encodeURIComponent(uris.join(",")))}}},{key:"render",value:function(){var _this2=this;return this.props.dragger&&this.props.dragger.active?_react2.default.createElement("div",{className:"dropzones"},this._zones.map(function(zone,index){return _react2.default.createElement(_Dropzone2.default,{key:index,data:zone,handleMouseUp:function(e){return _this2.handleMouseUp(e,index)}})})):null}}]),Dropzones}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{dragger:state.ui.dragger}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch)}};exports.default=(0,_reactRouter.withRouter)((0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Dropzones))},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Icon=(__webpack_require__(4),__webpack_require__(3),__webpack_require__(5)),_Icon2=_interopRequireDefault(_Icon),Dropzone=function(_React$Component){function Dropzone(props){_classCallCheck(this,Dropzone);var _this=_possibleConstructorReturn(this,(Dropzone.__proto__||Object.getPrototypeOf(Dropzone)).call(this,props));return _this.state={hover:!1},_this.handleMouseOver=_this.handleMouseOver.bind(_this),_this.handleMouseOut=_this.handleMouseOut.bind(_this),_this}return _inherits(Dropzone,_React$Component),_createClass(Dropzone,[{key:"componentWillMount",value:function(){window.addEventListener("mouseover",this.handleMouseOver,!1),window.addEventListener("mouseout",this.handleMouseOut,!1)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("mouseover",this.handleMouseOver,!1),window.removeEventListener("mouseout",this.handleMouseOut,!1)}},{key:"handleMouseOver",value:function(e){this.setState({hover:!0})}},{key:"handleMouseOut",value:function(e){this.setState({hover:!1})}},{key:"render",value:function(){var _this2=this;return this.props.data?_react2.default.createElement("div",{className:this.state.hover?"dropzone hover":"dropzone",onMouseUp:function(e){return _this2.props.handleMouseUp(e)}},_react2.default.createElement(_Icon2.default,{name:this.props.data.icon}),_react2.default.createElement("span",{className:"title"},this.props.data.title)):null}}]),Dropzone}(_react2.default.Component);exports.default=Dropzone},function(module,exports,__webpack_require__){"use strict";(function($){function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_Link2=_interopRequireDefault(_Link),_ProgressSlider=__webpack_require__(85),_ProgressSlider2=_interopRequireDefault(_ProgressSlider),_VolumeControl=__webpack_require__(56),_VolumeControl2=_interopRequireDefault(_VolumeControl),_MuteControl=__webpack_require__(57),_MuteControl2=_interopRequireDefault(_MuteControl),_OutputControl=__webpack_require__(184),_OutputControl2=_interopRequireDefault(_OutputControl),_Dater=__webpack_require__(24),_Dater2=_interopRequireDefault(_Dater),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),PlaybackControls=function(_React$Component){function PlaybackControls(props){_classCallCheck(this,PlaybackControls);var _this=_possibleConstructorReturn(this,(PlaybackControls.__proto__||Object.getPrototypeOf(PlaybackControls)).call(this,props));return _this.stream=null,_this.state={expanded:!1,current_track:null,transition_track:null,transition_direction:null},_this}return _inherits(PlaybackControls,_React$Component),_createClass(PlaybackControls,[{key:"componentDidMount",value:function(){this.props.http_streaming_enabled&&this.props.coreActions.cachebustHttpStream(),this.props.current_track&&this.setState({current_track:this.props.current_track})}},{key:"playStream",value:function(){var props=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;if(this.stream?this.stream.src=null:this.stream=new Audio,!props.http_streaming_enabled||!props.http_streaming_url)return!1;this.stream.src=props.http_streaming_url+"?cb="+props.http_streaming_cachebuster,this.stream.muted=props.http_streaming_mute,this.stream.volume=props.http_streaming_volume/100,this.stream.play()}},{key:"componentWillReceiveProps",value:function(nextProps){this.props.http_streaming_cachebuster!==nextProps.http_streaming_cachebuster&&this.playStream(nextProps),!this.props.http_streaming_enabled&&nextProps.http_streaming_enabled&&this.playStream(nextProps),this.stream&&(this.props.http_streaming_mute!==nextProps.http_streaming_mute&&(this.stream.muted=nextProps.http_streaming_mute),this.props.http_streaming_volume!==nextProps.http_streaming_volume&&(this.stream.volume=nextProps.http_streaming_volume/100),nextProps.http_streaming_enabled||(this.stream=null)),(!this.props.current_track&&nextProps.current_track||this.props.current_track&&!nextProps.current_track)&&this.setState({current_track:nextProps.current_track}),this.props.current_track&&nextProps.current_track&&this.props.current_track.uri!==nextProps.current_track.uri&&this.setState({current_track:nextProps.current_track}),this.props.current_track&&nextProps.current_track&&(this.props.current_track.images&&!nextProps.current_track.images||!this.props.current_track.images&&nextProps.current_track.images)&&this.setState({current_track:nextProps.current_track})}},{key:"handleTouchStart",value:function(e){var timestamp=($(e.target),Math.floor(Date.now()));return this.start_time=timestamp,this.start_position={x:e.touches[0].clientX},!1}},{key:"handleTouchEnd",value:function(e){var timestamp=($(e.target),Math.floor(Date.now())),end_position={x:e.changedTouches[0].clientX};if(this.start_time+200<timestamp)return!1;this.start_position.x+10>end_position.x&&this.start_position.x-10<end_position.x?(helpers.scrollTo(null,!1),this.props.history.push("/queue")):this.start_position.x<end_position.x?(this.setTransition("previous"),this.props.mopidyActions.previous()):this.start_position.x>end_position.x&&(this.setTransition("next"),this.props.mopidyActions.next()),this.end_time=timestamp}},{key:"setTransition",value:function(direction){var _this2=this;this.setState({current_track:null,transition_track:this.state.current_track,transition_direction:direction});setTimeout(function(){_this2.setState({transition_track:null,transition_direction:null})},250)}},{key:"renderPlayButton",value:function(){var _this3=this,button=_react2.default.createElement("a",{className:"control play",onClick:function(){return _this3.props.mopidyActions.play()}},_react2.default.createElement(_Icon2.default,{name:"play_circle_filled",type:"material"}));return"playing"==this.props.play_state&&(button=_react2.default.createElement("a",{className:"control play",onClick:function(){return _this3.props.mopidyActions.pause()}},_react2.default.createElement(_Icon2.default,{name:"pause_circle_filled",type:"material"}))),button}},{key:"renderConsumeButton",value:function(){var _this4=this,button=_react2.default.createElement("a",{className:"control tooltip",onClick:function(){return _this4.props.mopidyActions.setConsume(!0)}},_react2.default.createElement(_Icon2.default,{name:"restaurant",type:"material"}),_react2.default.createElement("span",{className:"tooltip__content"},"Consume"));return this.props.consume&&(button=_react2.default.createElement("a",{className:"control control--active tooltip",onClick:function(){return _this4.props.mopidyActions.setConsume(!1)}},_react2.default.createElement(_Icon2.default,{name:"restaurant",type:"material"}),_react2.default.createElement("span",{className:"tooltip__content"},"Consume"))),button}},{key:"renderRandomButton",value:function(){var _this5=this,button=_react2.default.createElement("a",{className:"control tooltip",onClick:function(){return _this5.props.mopidyActions.setRandom(!0)}},_react2.default.createElement(_Icon2.default,{name:"shuffle",type:"material"}),_react2.default.createElement("span",{className:"tooltip__content"},"Shuffle"));return this.props.random&&(button=_react2.default.createElement("a",{className:"control control--active tooltip",onClick:function(){return _this5.props.mopidyActions.setRandom(!1)}},_react2.default.createElement(_Icon2.default,{name:"shuffle",type:"material"}),_react2.default.createElement("span",{className:"tooltip__content"},"Shuffle"))),button}},{key:"renderRepeatButton",value:function(){var _this6=this,button=_react2.default.createElement("a",{className:"control tooltip",onClick:function(){return _this6.props.mopidyActions.setRepeat(!0)}},_react2.default.createElement(_Icon2.default,{name:"repeat"}),_react2.default.createElement("span",{className:"tooltip__content"},"Repeat"));return this.props.repeat&&(button=_react2.default.createElement("a",{className:"control control--active tooltip",onClick:function(){return _this6.props.mopidyActions.setRepeat(!1)}},_react2.default.createElement(_Icon2.default,{name:"repeat"}),_react2.default.createElement("span",{className:"tooltip__content"},"Repeat"))),button}},{key:"render",value:function(){var _this7=this,images=!1;return this.state.current_track&&this.state.current_track.images&&(images=this.state.current_track.images),_react2.default.createElement("div",{className:this.state.expanded?"playback-controls--expanded playback-controls":"playback-controls"},this.props.next_track&&this.props.next_track.images?_react2.default.createElement(_Thumbnail2.default,{className:"hide",size:"large",images:this.props.next_track.images}):null,this.state.transition_track&&this.state.transition_direction?_react2.default.createElement("div",{className:"current-track current-track__transition current-track__transition--"+this.state.transition_direction},_react2.default.createElement("div",{className:"text"},_react2.default.createElement("div",{className:"title"},this.state.transition_track.name),_react2.default.createElement("div",{className:"artist"},_react2.default.createElement(_ArtistSentence2.default,{artists:this.state.transition_track.artists,nolinks:!0})))):null,_react2.default.createElement("div",{className:this.state.transition_track&&this.state.transition_direction?"current-track current-track--transitioning":"current-track",onTouchStart:function(e){return _this7.handleTouchStart(e)},onTouchEnd:function(e){return _this7.handleTouchEnd(e)}},_react2.default.createElement(_Link2.default,{className:"thumbnail-wrapper",to:"/kiosk-mode"},_react2.default.createElement(_Thumbnail2.default,{size:"small",images:images})),_react2.default.createElement("div",{className:"text"},_react2.default.createElement("div",{className:"title"},this.state.current_track?this.state.current_track.name:_react2.default.createElement("span",null,"-")),_react2.default.createElement("div",{className:"artist"},this.state.current_track?_react2.default.createElement(_ArtistSentence2.default,{artists:this.state.current_track.artists,nolinks:this.props.slim_mode}):_react2.default.createElement(_ArtistSentence2.default,null)))),_react2.default.createElement("section",{className:"playback"},_react2.default.createElement("a",{className:"control previous",onClick:function(){return _this7.props.mopidyActions.previous()}},_react2.default.createElement(_Icon2.default,{name:"skip_previous",type:"material"})),this.renderPlayButton(),_react2.default.createElement("a",{className:"control stop",onClick:function(){return _this7.props.mopidyActions.stop()}},_react2.default.createElement(_Icon2.default,{name:"stop",type:"material"})),_react2.default.createElement("a",{className:"control next",onClick:function(){return _this7.props.mopidyActions.next()}},_react2.default.createElement(_Icon2.default,{name:"skip_next",type:"material"}))),_react2.default.createElement("section",{className:"settings"},this.renderConsumeButton(),this.renderRandomButton(),this.renderRepeatButton(),_react2.default.createElement(_OutputControl2.default,{force_expanded:this.state.expanded})),_react2.default.createElement("section",{className:"progress"},_react2.default.createElement(_ProgressSlider2.default,null),_react2.default.createElement("span",{className:"current"},this.props.time_position?_react2.default.createElement(_Dater2.default,{type:"length",data:this.props.time_position}):"-"),_react2.default.createElement("span",{className:"total"},this.state.current_track?_react2.default.createElement(_Dater2.default,{type:"length",data:this.state.current_track.duration}):"-")),_react2.default.createElement("section",{className:"volume"},_react2.default.createElement(_MuteControl2.default,{mute:this.props.mute,onMuteChange:function(mute){return _this7.props.mopidyActions.setMute(mute)}}),_react2.default.createElement(_VolumeControl2.default,{scrollWheel:!0,volume:this.props.volume,mute:this.props.mute,onVolumeChange:function(percent){return _this7.props.mopidyActions.setVolume(percent)}})),_react2.default.createElement("section",{className:"triggers"},_react2.default.createElement("a",{className:"control expanded-controls",onClick:function(e){return _this7.setState({expanded:!_this7.state.expanded})}},this.state.expanded?_react2.default.createElement(_Icon2.default,{name:"expand_more",type:"material"}):_react2.default.createElement(_Icon2.default,{name:"expand_less",type:"material"})),_react2.default.createElement("a",{className:"control sidebar-toggle"+(this.props.sidebar_open?" open":""),onClick:function(e){return _this7.props.uiActions.toggleSidebar()}},_react2.default.createElement(_Icon2.default,{className:"open",name:"menu",type:"material"}))))}}]),PlaybackControls}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{snapcast_enabled:state.pusher.config.snapcast_enabled,http_streaming_enabled:state.core.http_streaming_enabled,http_streaming_volume:state.core.http_streaming_volume?state.core.http_streaming_volume:50,http_streaming_mute:!!state.core.http_streaming_mute&&state.core.http_streaming_mute,http_streaming_url:state.core.http_streaming_url?state.core.http_streaming_url:null,http_streaming_cachebuster:state.core.http_streaming_cachebuster,current_track:state.core.current_track&&void 0!==state.core.tracks[state.core.current_track.uri]?state.core.tracks[state.core.current_track.uri]:null,next_track:state.core.next_track_uri&&void 0!==state.core.tracks[state.core.next_track_uri]?state.core.tracks[state.core.next_track_uri]:null,radio_enabled:!(!state.ui.radio||!state.ui.radio.enabled),play_state:state.mopidy.play_state,time_position:state.mopidy.time_position,consume:state.mopidy.consume,repeat:state.mopidy.repeat,random:state.mopidy.random,volume:state.mopidy.volume,mute:state.mopidy.mute,sidebar_open:state.ui.sidebar_open,slim_mode:state.ui.slim_mode}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(PlaybackControls)}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";(function($){function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_VolumeControl=__webpack_require__(56),_VolumeControl2=_interopRequireDefault(_VolumeControl),_MuteControl=__webpack_require__(57),_MuteControl2=_interopRequireDefault(_MuteControl),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(36),snapcastActions=_interopRequireWildcard(_actions3),OutputControl=function(_React$Component){function OutputControl(props){_classCallCheck(this,OutputControl);var _this=_possibleConstructorReturn(this,(OutputControl.__proto__||Object.getPrototypeOf(OutputControl)).call(this,props));return _this.state={expanded:!1},_this.handleClick=_this.handleClick.bind(_this),_this}return _inherits(OutputControl,_React$Component),_createClass(OutputControl,[{key:"handleClick",value:function(e){!this.props.force_expanded&&$(e.target).closest(".output-control").length<=0&&this.setExpanded(!1)}},{key:"componentWillReceiveProps",value:function(nextProps){!this.props.force_expanded&&nextProps.force_expanded&&this.setExpanded(!0,nextProps)}},{key:"setExpanded",value:function(){var expanded=arguments.length>0&&void 0!==arguments[0]?arguments[0]:!this.state.expanded,props=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.props;expanded?(this.setState({expanded:expanded}),window.addEventListener("click",this.handleClick,!1),props.pusher_connected&&props.snapcast_enabled&&this.props.snapcastActions.getServer()):(this.setState({expanded:expanded}),window.removeEventListener("click",this.handleClick,!1))}},{key:"renderOutputs",value:function(){var _this2=this,has_outputs=!1,clients=[];for(var key in this.props.snapcast_clients)if(this.props.snapcast_clients.hasOwnProperty(key)){var client=this.props.snapcast_clients[key];(client.connected||this.props.show_disconnected_clients)&&clients.push(client)}var snapcast_clients=null;clients.length>0&&(has_outputs=!0,snapcast_clients=_react2.default.createElement("div",null,clients.map(function(client){return _react2.default.createElement("div",{className:"output-control__item outputs__item--snapcast",key:client.id},_react2.default.createElement("div",{className:"output-control__item__name"},client.name),_react2.default.createElement("div",{className:"output-control__item__controls"},_react2.default.createElement(_MuteControl2.default,{className:"output-control__item__mute",noTooltip:!0,mute:client.mute,onMuteChange:function(mute){return _this2.props.snapcastActions.setClientMute(client.id,mute)}}),_react2.default.createElement(_VolumeControl2.default,{className:"output-control__item__volume",volume:client.volume,mute:client.mute,onVolumeChange:function(percent){return _this2.props.snapcastActions.setClientVolume(client.id,percent)}})))})));var local_streaming=null;this.props.http_streaming_enabled&&(has_outputs=!0,local_streaming=_react2.default.createElement("div",{className:"output-control__item outputs__item--icecast"},_react2.default.createElement("div",{className:"output-control__item__actions"},_react2.default.createElement("span",{className:"output-control__item__action",onClick:function(e){return _this2.props.coreActions.cachebustHttpStream()}},_react2.default.createElement(_Icon2.default,{name:"refresh"}))),_react2.default.createElement("div",{className:"output-control__item__name"},"Local browser"),_react2.default.createElement("div",{className:"output-control__item__details"},_react2.default.createElement(_VolumeControl2.default,{className:"output-control__item__volume",volume:this.props.http_streaming_volume,mute:this.props.http_streaming_mute,onVolumeChange:function(percent){return _this2.props.coreActions.set({http_streaming_volume:percent})},onMuteChange:function(mute){return _this2.props.coreActions.set({http_streaming_mute:mute})}}))));var commands=null;if(this.props.pusher_commands){var commands_items=[];for(var key in this.props.pusher_commands)this.props.pusher_commands.hasOwnProperty(key)&&commands_items.push(this.props.pusher_commands[key]);commands_items.length>0&&(has_outputs=!0,commands=_react2.default.createElement("div",{className:"output-control__item output-control__item--commands commands"},commands_items.map(function(command){return _react2.default.createElement("div",{key:command.id,className:"commands__item commands__item--interactive",onClick:function(e){return _this2.props.pusherActions.sendCommand(command.id)}},_react2.default.createElement(_Icon2.default,{className:"commands__item__icon",name:command.icon}),_react2.default.createElement("span",{className:command.colour+"-background commands__item__background"}))})))}return has_outputs?_react2.default.createElement("div",{className:"output-control__items"},commands,local_streaming,snapcast_clients):_react2.default.createElement("div",{className:"output-control__items output-control__items--no-results"},_react2.default.createElement("p",{className:"no-results"},"No outputs"))}},{key:"render",value:function(){var _this3=this;return this.state.expanded?_react2.default.createElement("span",{className:"output-control"},_react2.default.createElement("a",{className:"control speakers active",onClick:function(e){return _this3.setExpanded()}},_react2.default.createElement(_Icon2.default,{name:"speaker"})),this.renderOutputs()):this.props.http_streaming_enabled||this.props.snapcast_enabled?_react2.default.createElement("span",{className:"output-control"},_react2.default.createElement("a",{className:"control speakers",onClick:function(e){return _this3.setExpanded()}},_react2.default.createElement(_Icon2.default,{name:"speaker"}))):_react2.default.createElement("span",{className:"output-control disabled"},_react2.default.createElement("a",{className:"control speakers"},_react2.default.createElement(_Icon2.default,{name:"speaker"})))}}]),OutputControl}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{http_streaming_enabled:state.core.http_streaming_enabled,http_streaming_volume:state.core.http_streaming_volume,http_streaming_mute:state.core.http_streaming_mute,pusher_connected:state.pusher.connected,snapcast_enabled:state.pusher.config?state.pusher.config.snapcast_enabled:null,show_disconnected_clients:void 0!==state.ui.snapcast_show_disconnected_clients&&state.ui.snapcast_show_disconnected_clients,snapcast_clients:state.snapcast.clients,pusher_commands:state.pusher.commands?state.pusher.commands:{}}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),snapcastActions:(0,_redux.bindActionCreators)(snapcastActions,dispatch),pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(OutputControl)}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";(function($){function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_reactRouter=__webpack_require__(33),_Link=__webpack_require__(7),_Link2=_interopRequireDefault(_Link),_TrackList=__webpack_require__(19),_Icon=(_interopRequireDefault(_TrackList),__webpack_require__(5)),_Icon2=_interopRequireDefault(_Icon),_Thumbnail=__webpack_require__(10),_URILink=(_interopRequireDefault(_Thumbnail),__webpack_require__(18)),_URILink2=_interopRequireDefault(_URILink),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(16),lastfmActions=_interopRequireWildcard(_actions5),_actions6=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions6),ContextMenu=function(_React$Component){function ContextMenu(props){_classCallCheck(this,ContextMenu);var _this=_possibleConstructorReturn(this,(ContextMenu.__proto__||Object.getPrototypeOf(ContextMenu)).call(this,props));return _this.state={submenu:null},_this.handleScroll=_this.handleScroll.bind(_this),_this.handleMouseDown=_this.handleMouseDown.bind(_this),_this.handleTouchStart=_this.handleTouchStart.bind(_this),_this}return _inherits(ContextMenu,_React$Component),_createClass(ContextMenu,[{key:"componentDidMount",value:function(){window.addEventListener("scroll",this.handleScroll,!1),window.addEventListener("mousedown",this.handleMouseDown,!1),window.addEventListener("touchstart",this.handleTouchStart,!1)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("scroll",this.handleScroll,!1),window.removeEventListener("mousedown",this.handleMouseDown,!1),window.removeEventListener("touchstart",this.handleTouchStart,!1)}},{key:"componentWillReceiveProps",value:function(nextProps){if(nextProps.menu&&!this.props.menu){this.setState({submenu:null});var context=this.getContext(nextProps);if(nextProps.spotify_authorized&&"spotify"==context.source)switch(nextProps.menu.context){case"artist":case"album":case"playlist":case"editable-playlist":case"track":case"playlist-track":case"editable-playlist-track":case"queue-track":this.props.spotifyActions.following(nextProps.menu.items[0].uri)}nextProps.lastfm_authorized&&context.is_track&&1==context.items_count&&nextProps.menu.items[0].uri&&void 0!==this.props.tracks[nextProps.menu.items[0].uri]&&void 0===this.props.tracks[nextProps.menu.items[0].uri].userloved&&this.props.lastfmActions.getTrack(nextProps.menu.items[0].uri)}}},{key:"handleScroll",value:function(e){this.props.menu&&this.props.uiActions.hideContextMenu()}},{key:"handleMouseDown",value:function(e){$(e.target).closest(".context-menu").length<=0&&$(e.target).closest(".context-menu-trigger").length<=0&&this.props.uiActions.hideContextMenu()}},{key:"handleTouchStart",value:function(e){$(e.target).closest(".context-menu").length<=0&&$(e.target).closest(".context-menu-trigger").length<=0&&this.props.uiActions.hideContextMenu()}},{key:"getContext",value:function(){var props=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,context={name:null,nice_name:"Unknown",is_track:!1};if(props.menu&&props.menu.context){switch(context.name=props.menu.context,context.nice_name=props.menu.context,props.menu.context){case"playlist":case"editable-playlist":context.nice_name="playlist";break;case"track":case"queue-track":case"playlist-track":case"editable-playlist-track":context.nice_name="track",context.is_track=!0}if(props.menu.items&&props.menu.items.length>0){var item=props.menu.items[0];context.item=item,context.items_count=props.menu.items.length,context.source=helpers.uriSource(item.uri),context.type=helpers.uriType(item.uri),context.in_library=this.inLibrary(item),context.is_loved=this.isLoved(item)}}return context}},{key:"inLibrary",value:function(){var item=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!item)return!1;switch(helpers.uriType(item.uri)){case"artist":return this.props.spotify_library_artists&&this.props.spotify_library_artists.indexOf(item.uri)>-1;case"album":return this.props.spotify_library_albums&&this.props.spotify_library_albums.indexOf(item.uri)>-1;case"playlist":return this.props.spotify_library_playlists&&this.props.spotify_library_playlists.indexOf(item.uri)>-1;case"track":return this.props.spotify_library_tracks&&this.props.spotify_library_tracks.indexOf(item.uri)>-1}return!1}},{key:"isLoved",value:function(){var item=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!item)return!1;if(void 0===this.props.tracks[item.uri])return!1;var track=this.props.tracks[item.uri];return void 0!==track.userloved&&"1"==track.userloved}},{key:"canBeInLibrary",value:function(){return!!this.props.spotify_authorized&&"spotify"==helpers.uriSource(this.props.menu.items[0].uri)}},{key:"toggleInLibrary",value:function(e,in_library){this.props.uiActions.hideContextMenu(),in_library?this.props.spotifyActions.following(this.props.menu.items[0].uri,"DELETE"):this.props.spotifyActions.following(this.props.menu.items[0].uri,"PUT")}},{key:"playQueueItem",value:function(e){this.props.uiActions.hideContextMenu();var tracks=this.props.menu.items;this.props.mopidyActions.changeTrack(tracks[0].tlid)}},{key:"removeFromQueue",value:function(e){this.props.uiActions.hideContextMenu();for(var tracks=this.props.menu.items,tracks_tlids=[],i=0;i<tracks.length;i++)tracks_tlids.push(tracks[i].tlid);this.props.mopidyActions.removeTracks(tracks_tlids)}},{key:"playURIs",value:function(e){this.props.uiActions.hideContextMenu(),this.props.mopidyActions.playURIs(this.props.menu.uris,this.props.menu.tracklist_uri)}},{key:"playPlaylist",value:function(e){this.props.uiActions.hideContextMenu(),this.props.mopidyActions.playPlaylist(this.props.menu.uris[0])}},{key:"enqueuePlaylist",value:function(e){var play_next=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.props.uiActions.hideContextMenu(),this.props.mopidyActions.enqueuePlaylist(this.props.menu.uris[0],play_next)}},{key:"shufflePlayPlaylist",value:function(e){this.props.uiActions.hideContextMenu(),this.props.mopidyActions.playPlaylist(this.props.menu.uris[0],!0)}},{key:"playArtistTopTracks",value:function(e){this.props.uiActions.hideContextMenu(),this.props.spotifyActions.playArtistTopTracks(this.props.menu.uris[0])}},{key:"addToQueue",value:function(e){var play_next=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.props.uiActions.hideContextMenu(),this.props.mopidyActions.enqueueURIs(this.props.menu.uris,this.props.menu.tracklist_uri,play_next)}},{key:"addTracksToPlaylist",value:function(e,playlist_uri){this.props.uiActions.hideContextMenu(),this.props.coreActions.addTracksToPlaylist(playlist_uri,this.props.menu.uris)}},{key:"toggleLoved",value:function(e,is_loved){this.props.uiActions.hideContextMenu(),is_loved?this.props.lastfmActions.unloveTrack(this.props.menu.items[0].uri):this.props.lastfmActions.loveTrack(this.props.menu.items[0].uri)}},{key:"unloveTrack",value:function(e){this.props.uiActions.hideContextMenu(),this.props.lastfmActions.unloveTrack(this.props.menu.items[0])}},{key:"removeFromPlaylist",value:function(e){this.props.uiActions.hideContextMenu(),this.props.coreActions.removeTracksFromPlaylist(this.props.menu.tracklist_uri,this.props.menu.indexes)}},{key:"deletePlaylist",value:function(e){this.props.uiActions.hideContextMenu(),this.props.coreActions.deletePlaylist(this.props.menu.uris[0])}},{key:"startRadio",value:function(e){this.props.uiActions.hideContextMenu(),this.props.pusherActions.startRadio(this.props.menu.uris)}},{key:"goToRecommendations",value:function(e){this.props.uiActions.hideContextMenu();var uris_string=helpers.arrayOf("uri",this.props.menu.items).join(",");this.props.history.push("/discover/recommendations/"+uris_string)}},{key:"goToArtist",value:function(e){if(!this.props.menu.items||this.props.menu.items.length<=0||!this.props.menu.items[0].artists_uris||this.props.menu.items[0].artists_uris.length<=0)return null;this.props.uiActions.hideContextMenu(),this.props.history.push(helpers.buildLink(this.props.menu.items[0].artists_uris[0]))}},{key:"goToUser",value:function(e){if(!this.props.menu.items||this.props.menu.items.length<=0||!this.props.menu.items[0].user_uri)return null;this.props.uiActions.hideContextMenu(),this.props.history.push(helpers.buildLink(this.props.menu.items[0].user_uri))}},{key:"goToTrack",value:function(e){if(!this.props.menu.items||this.props.menu.items.length<=0)return null;this.props.uiActions.hideContextMenu(),this.props.history.push(helpers.buildLink(this.props.menu.items[0].uri))}},{key:"copyURIs",value:function(e){var temp=$("<input>");$("body").append(temp),temp.val(this.props.menu.uris.join(",")).select(),document.execCommand("copy"),temp.remove(),this.props.uiActions.createNotification({content:"Copied "+this.props.menu.uris.length+" URIs"}),this.props.uiActions.hideContextMenu()}},{key:"renderTitle",value:function(){var _this2=this,context=this.getContext();if(context.items_count>1)return _react2.default.createElement("div",{className:"context-menu__title"},_react2.default.createElement("div",{className:"context-menu__title__text"},context.items_count," ",context.nice_name,context.items_count>1?"s":null," selected ",_react2.default.createElement("span",{className:"context-menu__title__deselect",onClick:function(e){_this2.props.uiActions.setSelectedTracks([]),_this2.props.uiActions.hideContextMenu()}},_react2.default.createElement(_Icon2.default,{name:"close"}))));if(1==context.items_count&&"queue-track"==context.name&&void 0!==context.item&&void 0!==this.props.queue_metadata["tlid_"+context.item.tlid]){var metadata=this.props.queue_metadata["tlid_"+context.item.tlid];if(metadata.added_from&&metadata.added_by){var type=metadata.added_from?helpers.uriType(metadata.added_from):null;switch(type){case"discover":var link=_react2.default.createElement(_URILink2.default,{type:"recommendations",uri:helpers.getFromUri("seeds",metadata.added_from)},"discover");break;case"browse":var link=_react2.default.createElement(_URILink2.default,{type:"browse",uri:metadata.added_from.replace("iris:browse:","")},"browse");break;case"search":var link=_react2.default.createElement(_URILink2.default,{type:"search",uri:metadata.added_from.replace("iris:","")},"search");break;default:var link=_react2.default.createElement(_URILink2.default,{type:type,uri:metadata.added_from},type)}return _react2.default.createElement("div",{className:"context-menu__title"},_react2.default.createElement("div",{className:"context-menu__title__text"},metadata.added_by," added from ",link))}}return"custom"==context.name?this.props.menu.title?_react2.default.createElement("div",{className:"context-menu__title"},_react2.default.createElement("div",{className:"context-menu__title__text"},this.props.menu.title)):null:void 0}},{key:"setSubmenu",value:function(name){this.state.submenu!==name&&"add-to-playlist"==name&&(this.props.spotify_library_playlists_loaded_all||this.props.spotifyActions.getLibraryPlaylists(),this.props.mopidy_library_playlists_loaded_all||this.props.mopidyActions.getLibraryPlaylists()),this.setState({submenu:name})}},{key:"renderSubmenu",value:function(){var _this3=this,list=null,loader=null;switch(this.state.submenu){case"add-to-playlist":var playlists=[];for(var uri in this.props.playlists)this.props.playlists[uri].can_edit&&playlists.push(this.props.playlists[uri]);playlists=helpers.sortItems(playlists,"name"),this.props.processes.SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR&&"running"==this.props.processes.SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR.status&&(loader=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("div",{className:"context-menu__item mini-loader loading"},_react2.default.createElement("div",{className:"loader"})))),list=_react2.default.createElement("span",{className:"context-menu__item"},_react2.default.createElement("span",{className:"context-menu__item mid_grey-text"},"No writable playlists")),playlists.length>0&&(list=playlists.map(function(playlist){return _react2.default.createElement("span",{className:"context-menu__item",key:playlist.uri},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this3.addTracksToPlaylist(e,playlist.uri)}},_react2.default.createElement("span",{className:"context-menu__item__label"},playlist.name)))}))}return _react2.default.createElement("div",{className:"context-menu__section context-menu__section--submenu"},_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link context-menu__item__link--close-submenu",onClick:function(e){return _this3.setState({submenu:null})}},_react2.default.createElement("span",{className:"context-menu__item__label"},_react2.default.createElement(_Icon2.default,{name:"arrow_back"})," Back"))),list,loader)}},{key:"renderItems",value:function(){var _this4=this,context=this.getContext(),play_uris=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.playURIs(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Play"))),play_playlist=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.playPlaylist(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Play"))),shuffle_play_playlist=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.shufflePlayPlaylist(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Shuffle play"))),play_queue_item=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.playQueueItem(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Play"))),play_uris_next=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.addToQueue(e,!0)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Play next"))),play_artist_top_tracks=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.playArtistTopTracks(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Play top tracks"))),add_to_queue=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.addToQueue(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Add to queue"))),add_playlist_to_queue=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.enqueuePlaylist(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Add to queue"))),play_playlist_next=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.enqueuePlaylist(e,!0)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Play next"))),add_to_playlist=_react2.default.createElement("div",{className:"context-menu__item context-menu__item--has-submenu"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.setSubmenu("add-to-playlist")}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Add to playlist"),_react2.default.createElement(_Icon2.default,{className:"submenu-icon",name:"arrow_forward"}))),toggle_in_library=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.toggleInLibrary(e,context.in_library)}},_react2.default.createElement("span",{className:"context-menu__item__label"},context.in_library?"Remove from library":"Add to library")));if(this.props.spotify_authorized)if(helpers.isLoading(this.props.load_queue,["spotify_me/tracks/contains","spotify_me/playlists/contains","spotify_me/albums/contains","spotify_me/artists/contains"]))var toggle_in_library=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link"},_react2.default.createElement("span",{className:"context-menu__item__label mid_grey-text"},"Add to library")));else var toggle_in_library=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.toggleInLibrary(e,context.in_library)}},_react2.default.createElement("span",{className:"context-menu__item__label"},context.in_library?"Remove from library":"Add to library")));else var toggle_in_library=null;if(this.props.lastfm_authorized)if(helpers.isLoading(this.props.load_queue,["lastfm_track.getInfo"]))var toggle_loved=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link"},_react2.default.createElement("span",{className:"context-menu__item__label mid_grey-text"},"Love track")));else var toggle_loved=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.toggleLoved(e,context.is_loved)}},_react2.default.createElement("span",{className:"context-menu__item__label"},context.is_loved?"Unlove":"Love"," track")));else var toggle_loved=null;var go_to_artist=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.goToArtist(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Go to artist"))),go_to_user=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.goToUser(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Go to user"))),go_to_track=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.goToTrack(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Track info"))),go_to_recommendations=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.goToRecommendations(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Discover similar"))),start_radio=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.startRadio(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Start radio"))),remove_from_queue=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.removeFromQueue(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Remove"))),remove_from_playlist=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.removeFromPlaylist(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Remove"))),edit_playlist=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement(_Link2.default,{className:"context-menu__item__link",to:"/playlist/"+context.item.uri+"/edit"},_react2.default.createElement("span",{className:"context-menu__item__label"},"Edit"))),delete_playlist=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.deletePlaylist(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Delete"))),copy_uris=_react2.default.createElement("div",{className:"context-menu__item"},_react2.default.createElement("a",{className:"context-menu__item__link",onClick:function(e){return _this4.copyURIs(e)}},_react2.default.createElement("span",{className:"context-menu__item__label"},"Copy URI",context.items_count>1?"s":"")));switch(context.name){case"album":return _react2.default.createElement("div",null,play_uris,play_uris_next,add_to_queue,this.canBeInLibrary()?_react2.default.createElement("div",{className:"context-menu__divider"}):null,this.canBeInLibrary()?toggle_in_library:null,_react2.default.createElement("div",{className:"context-menu__divider"}),go_to_artist,copy_uris);case"artist":return _react2.default.createElement("div",null,"spotify"==context.source?play_artist_top_tracks:null,"spotify"==context.source?start_radio:null,this.canBeInLibrary()?_react2.default.createElement("div",{className:"context-menu__divider"}):null,this.canBeInLibrary()?toggle_in_library:null,_react2.default.createElement("div",{className:"context-menu__divider"}),"spotify"==context.source?go_to_recommendations:null,copy_uris);case"playlist":return _react2.default.createElement("div",null,play_playlist,play_playlist_next,shuffle_play_playlist,add_playlist_to_queue,this.canBeInLibrary()?_react2.default.createElement("div",{className:"context-menu__divider"}):null,this.canBeInLibrary()?toggle_in_library:null,_react2.default.createElement("div",{className:"context-menu__divider"}),"spotify"==context.source?go_to_user:null,copy_uris,1==context.items_count&&context.item.can_edit?_react2.default.createElement("div",null,_react2.default.createElement("div",{className:"context-menu__divider"}),edit_playlist,delete_playlist):null);case"queue-track":return _react2.default.createElement("div",null,1==context.items_count?play_queue_item:null,_react2.default.createElement("div",{className:"context-menu__divider"}),add_to_playlist,this.canBeInLibrary()?toggle_in_library:null,toggle_loved,_react2.default.createElement("div",{className:"context-menu__divider"}),"spotify"==context.source&&context.items_count<=5?go_to_recommendations:null,1==context.items_count?go_to_track:null,copy_uris,_react2.default.createElement("div",{className:"context-menu__divider"}),remove_from_queue);case"editable-playlist-track":return _react2.default.createElement("div",null,play_uris,play_uris_next,add_to_queue,"spotify"==context.source&&1==context.items_count?start_radio:null,_react2.default.createElement("div",{className:"context-menu__divider"}),add_to_playlist,this.canBeInLibrary()?toggle_in_library:null,toggle_loved,_react2.default.createElement("div",{className:"context-menu__divider"}),"spotify"==context.source&&context.items_count<=5?go_to_recommendations:null,1==context.items_count?go_to_track:null,copy_uris,_react2.default.createElement("div",{className:"context-menu__divider"}),remove_from_playlist);default:return _react2.default.createElement("div",null,play_uris,play_uris_next,add_to_queue,"spotify"==context.source&&1==context.items_count?start_radio:null,_react2.default.createElement("div",{className:"context-menu__divider"}),add_to_playlist,this.canBeInLibrary()?toggle_in_library:null,toggle_loved,_react2.default.createElement("div",{className:"context-menu__divider"}),"spotify"==context.source&&context.items_count<=5?go_to_recommendations:null,1==context.items_count?go_to_track:null,_react2.default.createElement("div",{className:"context-menu__divider"}),copy_uris)}}},{key:"render",value:function(){var _this5=this;if(!this.props.menu)return null;var style={left:this.props.menu.position_x,top:this.props.menu.position_y},className="context-menu "+this.props.menu.context;return this.state.submenu&&(className+=" context-menu--submenu-expanded"),this.props.menu.closing&&(className+=" context-menu--closing"),this.props.menu.position_x>window.innerWidth-174&&(style.left="auto",style.right=10),this.props.menu.position_y>window.innerHeight-200&&(style.top="auto",style.bottom=10),_react2.default.createElement("div",{id:"context-menu",className:className,style:style},_react2.default.createElement("div",{className:"context-menu__section context-menu__section--items"},this.renderTitle(),"custom"==this.props.menu.context?this.props.menu.options:this.renderItems()),this.renderSubmenu(),_react2.default.createElement("div",{className:"context-menu__background",onClick:function(e){return _this5.props.uiActions.hideContextMenu()}}))}}]),ContextMenu}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{menu:state.ui.context_menu,load_queue:state.ui.load_queue,processes:state.ui.processes,current_track:state.core.current_track,current_tracklist:state.core.current_tracklist,queue_metadata:state.core.queue_metadata,spotify_library_playlists:state.spotify.library_playlists,spotify_library_playlists_loaded_all:state.spotify.library_playlists_loaded_all,mopidy_library_playlists:state.mopidy.library_playlists,mopidy_library_playlists_loaded_all:state.mopidy.library_playlists_loaded_all,spotify_library_artists:state.spotify.library_artists,mopidy_library_artists:state.mopidy.library_artists,spotify_library_albums:state.spotify.library_albums,mopidy_library_albums:state.mopidy.library_albums,spotify_library_tracks:state.spotify.library_tracks,playlists:state.core.playlists,tracks:state.core.tracks,spotify_authorized:state.spotify.authorization,lastfm_authorized:state.lastfm.authorization}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch),lastfmActions:(0,_redux.bindActionCreators)(lastfmActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)((0,_reactRouter.withRouter)(ContextMenu))}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";(function($){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Link=__webpack_require__(7),_Icon=(_interopRequireDefault(_Link),__webpack_require__(5)),_Icon2=_interopRequireDefault(_Icon),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_Dater=__webpack_require__(24),_Dater2=_interopRequireDefault(_Dater),_URILink=__webpack_require__(18),_URILink2=_interopRequireDefault(_URILink),_ContextMenuTrigger=__webpack_require__(22),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_Popularity=__webpack_require__(58),_ErrorBoundary=(_interopRequireDefault(_Popularity),__webpack_require__(44)),_ErrorBoundary2=_interopRequireDefault(_ErrorBoundary),_helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers),Track=function(_React$Component){function Track(props){_classCallCheck(this,Track);var _this=_possibleConstructorReturn(this,(Track.__proto__||Object.getPrototypeOf(Track)).call(this,props));return _this.state={hover:!1},_this.start_time=0,_this.end_time=0,_this.start_position=!1,_this}return _inherits(Track,_React$Component),_createClass(Track,[{key:"handleMouseEnter",value:function(e){this.setState({hover:!0})}},{key:"handleMouseLeave",value:function(e){this.setState({hover:!1})}},{key:"handleMouseDown",value:function(e){if($(e.target).is("a"))return!1;0===e.button?this.start_position={x:e.pageX,y:e.pageY}:this.start_position=!1}},{key:"handleMouseMove",value:function(e){$(e.target);if(void 0===this.props.handleDrag)return!1;if(this.start_position){var start_x=this.start_position.x,start_y=this.start_position.y;(e.pageX>start_x+5||e.pageX<start_x-5||e.pageY>start_y+5||e.pageY<start_y-5)&&(this.props.handleDrag(e),this.start_position=!1)}}},{key:"handleMouseUp",value:function(e){var target=$(e.target);if(0!==e.button)return this.start_position=!1,!1;this.props.dragger?(e.preventDefault(),void 0!==this.props.handleDrop&&this.props.handleDrop(e)):!target.is("a")&&target.closest("a").length<=0&&(this.props.handleClick(e),this.start_position=!1)}},{key:"handleDoubleClick",value:function(e){this.props.handleDoubleClick(e)}},{key:"handleTouchStart",value:function(e){var target=$(e.target),timestamp=Math.floor(Date.now());return target.hasClass("drag-zone")&&(this.props.handleTouchDrag(e),e.preventDefault()),this.start_time=timestamp,this.start_position={x:e.touches[0].clientX,y:e.touches[0].clientY},!1}},{key:"handleTouchEnd",value:function(e){var target=$(e.target),timestamp=Math.floor(Date.now()),end_position={x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY};if(this.start_time+200<timestamp)return!1;if(this.start_position.x+10>end_position.x&&this.start_position.x-10<end_position.x&&this.start_position.y+10>end_position.y&&this.start_position.y-10<end_position.y){if(target.is("a")||e.preventDefault(),target.hasClass("touch-contextable"))return this.props.handleContextMenu(e),!1;if(timestamp-this.end_time>0&&timestamp-this.end_time<=300)return this.props.handleDoubleTap(e),e.preventDefault(),!1;this.props.handleTap(e)}this.end_time=timestamp}},{key:"render",value:function(){var _this2=this;if(!this.props.track)return null;var track=this.props.track,className="list__item list__item--track mouse-draggable mouse-selectable mouse-contextable",track_details=[];if(track.artists&&track_details.push(_react2.default.createElement("li",{className:"details__item details__item--artists",key:"artists"},track.artists?_react2.default.createElement(_ArtistSentence2.default,{artists:track.artists}):"-")),track.album){if(track.album.uri)var album=_react2.default.createElement(_URILink2.default,{type:"album",uri:track.album.uri},track.album.name);else var album=_react2.default.createElement("span",null,track.album.name);track_details.push(_react2.default.createElement("li",{className:"details__item details__item--album",key:"album"},album))}if("history"==this.props.track_context)var track_middle_column=_react2.default.createElement("div",{className:"list__item__column__item list__item__column__item--played_at"},track.played_at?_react2.default.createElement("span",null,_react2.default.createElement(_Dater2.default,{type:"ago",data:track.played_at})," ago"):"-");else if("queue"==this.props.track_context)if(track.added_from&&track.added_by){var type=track.added_from?helpers.uriType(track.added_from):null;switch(type){case"discover":var link=_react2.default.createElement(_URILink2.default,{type:"recommendations",uri:helpers.getFromUri("seeds",track.added_from)},"discover");break;case"browse":var link=_react2.default.createElement(_URILink2.default,{type:"browse",uri:track.added_from.replace("iris:browse:","")},"browse");break;case"search":var link=_react2.default.createElement(_URILink2.default,{type:"search",uri:track.added_from.replace("iris:","")},"search");break;default:var link=_react2.default.createElement(_URILink2.default,{type:type,uri:track.added_from},type)}var track_middle_column=_react2.default.createElement("div",{className:"list__item__column__item list__item__column__item--added"},_react2.default.createElement("span",{className:"by"},track.added_by," "),_react2.default.createElement("span",{className:"from"},"from ",link))}else if(track.added_by)var track_middle_column=_react2.default.createElement("div",{className:"list__item__column__item list__item__column__item--added"},_react2.default.createElement("span",{className:"by"},track.added_by));var drag_zone=null;return helpers.isTouchDevice()&&this.props.can_sort&&(className+=" list__item--has-drag-zone",drag_zone=_react2.default.createElement("span",{className:"list__item__column__item list__item__column__item--drag-zone drag-zone touch-draggable mouse-draggable",key:"drag-zone"},_react2.default.createElement(_Icon2.default,{name:"drag_indicator"}))),this.props.selected&&(className+=" list__item--selected"),this.props.can_sort&&(className+=" list__item--can-sort"),void 0!==track.type&&(className+=" list__item--"+track.type),track.playing&&(className+=" list__item--playing"),this.state.hover&&(className+=" list__item--hover"),track_middle_column&&(className+=" list__item--has-middle-column"),track_details.length>0&&(className+=" list__item--has-details"),_react2.default.createElement(_ErrorBoundary2.default,null,_react2.default.createElement("div",{className:className,onMouseEnter:function(e){return _this2.handleMouseEnter(e)},onMouseLeave:function(e){return _this2.handleMouseLeave(e)},onMouseDown:function(e){return _this2.handleMouseDown(e)},onMouseUp:function(e){return _this2.handleMouseUp(e)},onMouseMove:function(e){return _this2.handleMouseMove(e)},onDoubleClick:function(e){return _this2.handleDoubleClick(e)},onContextMenu:function(e){return _this2.props.handleContextMenu(e)},onTouchStart:function(e){return _this2.handleTouchStart(e)},onTouchEnd:function(e){return _this2.handleTouchEnd(e)}},_react2.default.createElement("div",{className:"list__item__column list__item__column--right"},drag_zone,_react2.default.createElement("span",{className:"list__item__column__item list__item__column__item--duration"},track.duration?_react2.default.createElement(_Dater2.default,{type:"length",data:track.duration}):"-"),this.props.show_source_icon?_react2.default.createElement("span",{className:"list__item__column__item list__item__column__item--source"},_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:helpers.sourceIcon(track.uri),fixedWidth:!0})):null,_react2.default.createElement(_ContextMenuTrigger2.default,{className:"list__item__column__item--context-menu-trigger subtle",onTrigger:function(e){return _this2.props.handleContextMenu(e)}})),_react2.default.createElement("div",{className:"list__item__column list__item__column--name"},_react2.default.createElement("div",{className:"list__item__column__item--name"},track.name?track.name:_react2.default.createElement("span",{className:"mid_grey-text"},track.uri),track.explicit?_react2.default.createElement("span",{className:"flag dark"},"EXPLICIT"):null,track.playing?_react2.default.createElement(_Icon2.default,{className:"js--"+this.props.play_state,name:"playing",type:"css"}):null),track_details?_react2.default.createElement("ul",{className:"list__item__column__item--details"},track_details):null),track_middle_column?_react2.default.createElement("div",{className:"list__item__column list__item__column--middle"},track_middle_column):null))}}]),Track}(_react2.default.Component);exports.default=Track}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions3),Dragger=function(_React$Component){function Dragger(props){_classCallCheck(this,Dragger);var _this=_possibleConstructorReturn(this,(Dragger.__proto__||Object.getPrototypeOf(Dragger)).call(this,props));return _this.handleMouseMove=_this.handleMouseMove.bind(_this),_this.handleMouseUp=_this.handleMouseUp.bind(_this),_this.state={active:!1,position_x:0,position_y:0},_this}return _inherits(Dragger,_React$Component),_createClass(Dragger,[{key:"componentDidMount",value:function(){window.addEventListener("mousemove",this.handleMouseMove,!1),window.addEventListener("mouseup",this.handleMouseUp,!1)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("mousemove",this.handleMouseMove,!1),window.removeEventListener("mouseup",this.handleMouseUp,!1)}},{key:"handleMouseMove",value:function(e){if(!this.props.dragger)return null;if(e.clientX>this.props.dragger.start_x+10||e.clientX<this.props.dragger.start_x-10||e.clientY>this.props.dragger.start_y+10||e.clientY<this.props.dragger.start_y-10){this.setState({position_x:e.clientX,position_y:e.clientY});for(var dropzones=document.getElementsByClassName("dropzone"),i=0;i<dropzones.length;i++)dropzones[i].classList.remove("hover");e.target.classList.contains("dropzone")&&!e.target.classList.contains("hover")&&(e.target.className+=" hover"),this.props.dragger.active||this.props.uiActions.dragActive()}}},{key:"handleMouseUp",value:function(e){if(!this.props.dragger)return null;this.props.uiActions.dragEnd(e)}},{key:"render",value:function(){if(!this.props.dragger||!this.props.dragger.active)return null;var style={left:this.state.position_x,top:this.state.position_y};return _react2.default.createElement("div",{className:"dragger",style:style},"Dragging ",this.props.dragger.victims.length," things")}}]),Dragger}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{dragger:state.ui.dragger}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Dragger)},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Link=__webpack_require__(7),_Icon=(_interopRequireDefault(_Link),__webpack_require__(5)),_Icon2=_interopRequireDefault(_Icon),Notifications=function(_React$Component){function Notifications(props){return _classCallCheck(this,Notifications),_possibleConstructorReturn(this,(Notifications.__proto__||Object.getPrototypeOf(Notifications)).call(this,props))}return _inherits(Notifications,_React$Component),_createClass(Notifications,[{key:"importConfiguration",value:function(notification_key,configuration){configuration.interface&&this.props.uiActions.set(configuration.interface),configuration.spotify&&this.props.spotifyActions.importAuthorization(configuration.spotify.authorization,configuration.spotify.me),configuration.lastfm&&this.props.lastfmActions.importAuthorization(configuration.lastfm.authorization,configuration.lastfm.me),configuration.genius&&this.props.geniusActions.importAuthorization(configuration.genius.authorization,configuration.genius.me),this.props.uiActions.removeNotification(notification_key,!0),this.props.uiActions.createNotification({type:"info",content:"Import successful"})}},{key:"renderNotifications",value:function(){var _this2=this;if(!this.props.notifications||this.props.notifications.length<=0)return null;var notifications=[];for(var key in this.props.notifications)this.props.notifications.hasOwnProperty(key)&&notifications.push(this.props.notifications[key]);return _react2.default.createElement("span",null,notifications.map(function(notification){switch(notification.type){case"shortcut":return _react2.default.createElement("div",{className:"notification notification--shortcut"+(notification.closing?" closing":""),key:notification.key,"data-duration":notification.duration},_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:notification.content}));case"share-configuration-received":return _react2.default.createElement("div",{className:"notification notification--info",key:notification.key,"data-key":notification.key,"data-duration":notification.duration},_react2.default.createElement(_Icon2.default,{name:"close",className:"notification__close-button",onClick:function(e){return _this2.props.uiActions.removeNotification(notification.key,!0)}}),_react2.default.createElement("h4",{className:"notification__title"},"Configuration shared"),_react2.default.createElement("div",{className:"notification__content"},_react2.default.createElement("p",null,"Another user has shared their configuration with you. This includes:"),_react2.default.createElement("ul",null,notification.configuration.ui?_react2.default.createElement("li",null,"User interface"):null,notification.configuration.spotify?_react2.default.createElement("li",null,"Spotify"):null,notification.configuration.lastfm?_react2.default.createElement("li",null,"LastFM"):null,notification.configuration.genius?_react2.default.createElement("li",null,"Genius"):null),_react2.default.createElement("p",null,"Do you want to import this?")),_react2.default.createElement("div",{className:"notification__actions"},_react2.default.createElement("a",{className:"notification__actions__item button button--default",onClick:function(e){return _this2.importConfiguration(notification.key,notification.configuration)}},"Import")));default:return _react2.default.createElement("div",{className:"notification notification--"+notification.type+(notification.closing?" closing":""),key:notification.key,"data-key":notification.key,"data-duration":notification.duration},_react2.default.createElement(_Icon2.default,{name:"close",className:"notification__close-button",onClick:function(e){return _this2.props.uiActions.removeNotification(notification.key,!0)}}),notification.title?_react2.default.createElement("h4",{className:"notification__title"},notification.title):null,notification.content?_react2.default.createElement("div",{className:"notification__content"},notification.content):null,notification.description?_react2.default.createElement("div",{className:"notification__description"},notification.description):null,notification.links?_react2.default.createElement("div",{className:"notification__actions"},notification.links.map(function(link,i){return _react2.default.createElement("a",{className:"notification__actions__item button button--secondary",href:link.url,target:link.new_window?"_blank":"self",key:i},link.text)})):null)}}))}},{key:"renderProcess",value:function(process){var _this3=this,progress=0;switch(process.data.total&&process.data.remaining&&(progress=((process.data.total-process.data.remaining)/process.data.total*100).toFixed()),process.status){case"running":return _react2.default.createElement("div",{className:"notification notification--process"+(process.closing?" closing":""),key:process.key},_react2.default.createElement("div",{className:"loader"},_react2.default.createElement("div",{className:"progress"},_react2.default.createElement("div",{className:"fill",style:{width:progress+"%"}}))),process.message,_react2.default.createElement(_Icon2.default,{name:"close",className:"notification__close-button",onClick:function(e){_this3.props.uiActions.cancelProcess(process.key)}}));case"cancelling":return _react2.default.createElement("div",{className:"notification notification--process cancelling"+(process.closing?" closing":""),key:process.key},_react2.default.createElement("div",{className:"loader"}),"Cancelling");case"cancelled":case"finished":return null}}},{key:"renderProcesses",value:function(){var _this4=this;if(!this.props.processes||this.props.processes.length<=0)return null;var processes=[];for(var key in this.props.processes)this.props.processes.hasOwnProperty(key)&&processes.push(this.props.processes[key]);return _react2.default.createElement("span",null,processes.map(function(process){return _this4.renderProcess(process)}))}},{key:"renderLoader",value:function(){if(!this.props.load_queue)return null;var load_queue=this.props.load_queue,load_count=0;for(var key in load_queue)load_queue.hasOwnProperty(key)&&load_count++;if(load_count>0){var className="loading ";return className+=load_count>20?"high":load_count>5?"medium":"low",_react2.default.createElement("div",{className:className})}return null}},{key:"render",value:function(){return _react2.default.createElement("div",{className:"notifications"},this.renderLoader(),this.renderNotifications(),this.renderProcesses())}}]),Notifications}(_react2.default.Component);exports.default=Notifications},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_Link=__webpack_require__(7),_redux=(_interopRequireDefault(_Link),__webpack_require__(3)),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),DebugInfo=function(_React$Component){function DebugInfo(props){return _classCallCheck(this,DebugInfo),_possibleConstructorReturn(this,(DebugInfo.__proto__||Object.getPrototypeOf(DebugInfo)).call(this,props))}return _inherits(DebugInfo,_React$Component),_createClass(DebugInfo,[{key:"localStorageSize",value:function(){var data="";for(var key in window.localStorage)window.localStorage.hasOwnProperty(key)&&(data+=window.localStorage[key]);var used=0;return""!==data&&(used=(16*data.length/8192).toFixed(2)),{used:used,percent:(used/5e3*100).toFixed(2)}}},{key:"renderLoadQueue",value:function(){if(!this.props.ui.load_queue)return null;var queue=(this.props.ui.load_queue,[]);return _react2.default.createElement("div",{className:"debug-info-item"},queue)}},{key:"renderLoadQueue",value:function(){if(!this.props.ui.load_queue)return _react2.default.createElement("div",{className:"debug-info-item mid_grey-text"},"Nothing loading");var load_queue=this.props.ui.load_queue,queue=[];for(var key in load_queue)load_queue.hasOwnProperty(key)&&queue.push(_react2.default.createElement("div",{key:key},load_queue[key]));return queue.length>0?_react2.default.createElement("div",{className:"debug-info-item"},queue):_react2.default.createElement("div",{className:"debug-info-item mid_grey-text"},"Nothing loading")}},{key:"render",value:function(){var localStorageUsage=this.localStorageSize();return _react2.default.createElement("div",{className:"debug-info"},_react2.default.createElement("div",{className:"debug-info-section"},_react2.default.createElement("h5",null,"Indexes"),_react2.default.createElement("div",{className:"debug-info-item"},"Albums: ",this.props.core.albums?Object.keys(this.props.core.albums).length:"0"),_react2.default.createElement("div",{className:"debug-info-item"},"Artists: ",this.props.core.artists?Object.keys(this.props.core.artists).length:"0"),_react2.default.createElement("div",{className:"debug-info-item"},"Playlists: ",this.props.core.playlists?Object.keys(this.props.core.playlists).length:"0"),_react2.default.createElement("div",{className:"debug-info-item"},"Tracks: ",this.props.core.tracks?Object.keys(this.props.core.tracks).length:"0"),_react2.default.createElement("div",{className:"debug-info-item"},"Users: ",this.props.core.users?Object.keys(this.props.core.users).length:"0"),_react2.default.createElement("div",{className:"debug-info-item"},"Notifications: ",this.props.ui.notifications?Object.keys(this.props.ui.notifications).length:"0"),_react2.default.createElement("div",{className:"debug-info-item"},"Processes: ",this.props.ui.processes?Object.keys(this.props.ui.processes).length:"0"),_react2.default.createElement("div",{className:"debug-info-item"},"Enqueue batches: ",this.props.mopidy.enqueue_uris_batches?this.props.mopidy.enqueue_uris_batches.length:"0")),_react2.default.createElement("div",{className:"debug-info-section"},_react2.default.createElement("h5",null,"Config"),_react2.default.createElement("div",{className:"debug-info-item"},"Slim mode: ",this.props.ui.slim_mode?"on":"off"),_react2.default.createElement("div",{className:"debug-info-item"},"Test mode: ",this.props.ui.test_mode?"on":"off"),_react2.default.createElement("div",{className:"debug-info-item"},"Touch: ",helpers.isTouchDevice()?"on":"off"),_react2.default.createElement("div",{className:"debug-info-item"},"LocalStorage usage: ",localStorageUsage.used,"kb (~",localStorageUsage.percent,"%)"),_react2.default.createElement("div",{className:"debug-info-item"},"Selected tracks: ",this.props.ui.selected_tracks.length,_react2.default.createElement("br",null),this.props.ui.selected_tracks.map(function(track_key,index){return _react2.default.createElement("div",{key:track_key+"_"+index},track_key)}))),_react2.default.createElement("div",{className:"debug-info-section"},_react2.default.createElement("h5",null,"Load queue"),this.renderLoadQueue()))}}]),DebugInfo}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{core:state.core,ui:state.ui,mopidy:state.mopidy}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(DebugInfo)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.Album=void 0;var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_ErrorMessage=__webpack_require__(30),_ErrorMessage2=_interopRequireDefault(_ErrorMessage),_Header=__webpack_require__(14),_TrackList=(_interopRequireDefault(_Header),__webpack_require__(19)),_TrackList2=_interopRequireDefault(_TrackList),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Parallax=__webpack_require__(28),_Parallax2=_interopRequireDefault(_Parallax),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_ArtistGrid=__webpack_require__(34),_FollowButton=(_interopRequireDefault(_ArtistGrid),__webpack_require__(37)),_FollowButton2=_interopRequireDefault(_FollowButton),_NiceNumber=__webpack_require__(59),_NiceNumber2=_interopRequireDefault(_NiceNumber),_Dater=__webpack_require__(24),_Dater2=_interopRequireDefault(_Dater),_LazyLoadListener=__webpack_require__(21),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_ContextMenuTrigger=__webpack_require__(22),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(16),lastfmActions=_interopRequireWildcard(_actions5),Album=exports.Album=function(_React$Component){function Album(props){return _classCallCheck(this,Album),_possibleConstructorReturn(this,(Album.__proto__||Object.getPrototypeOf(Album)).call(this,props))}return _inherits(Album,_React$Component),_createClass(Album,[{key:"componentDidMount",value:function(){this.setWindowTitle(),this.props.coreActions.loadAlbum(this.props.uri),this.props.album&&this.props.album.artists&&void 0===this.props.album.wiki&&this.props.lastfmActions.getAlbum(this.props.album.uri,this.props.album.artists[0].name,this.props.album.name)}},{key:"handleContextMenu",value:function(e){e.preventDefault();var data={uris:[this.props.uri]};this.props.uiActions.showContextMenu(e,data,"album","click")}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.uri!=this.props.uri?this.props.coreActions.loadAlbum(nextProps.uri):!this.props.mopidy_connected&&nextProps.mopidy_connected&&"spotify"!=helpers.uriSource(nextProps.uri)&&this.props.coreActions.loadAlbum(nextProps.uri),(!this.props.album&&nextProps.album||!this.props.album.artists&&nextProps.album.artists)&&void 0===nextProps.album.wiki&&nextProps.artists.length>0&&this.props.lastfmActions.getAlbum(nextProps.album.uri,nextProps.album.artists[0].name,nextProps.album.name),!this.props.album&&nextProps.album&&this.setWindowTitle(nextProps.album)}},{key:"setWindowTitle",value:function(){var album=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.album;if(album){var artists="";if(album.artists_uris&&this.props.artists)for(var i=0;i<album.artists_uris.length;i++){var uri=album.artists_uris[i];this.props.artists.hasOwnProperty(uri)&&(""!=artists&&(artists+=", "),artists+=this.props.artists[uri].name)}this.props.uiActions.setWindowTitle(album.name+" by "+artists+" (album)")}else this.props.uiActions.setWindowTitle("Album")}},{key:"handleContextMenu",value:function(e){var data={e:e,context:"album",items:[this.props.album],uris:[this.props.uri]};this.props.uiActions.showContextMenu(data)}},{key:"loadMore",value:function(){this.props.spotifyActions.getMore(this.props.album.tracks_more,{parent_type:"album",parent_key:this.props.album.uri,records_type:"track"})}},{key:"play",value:function(){this.props.mopidyActions.playURIs([this.props.uri],this.props.uri)}},{key:"inLibrary",value:function(){var library=helpers.uriSource(this.props.uri)+"_library_albums";return this.props[library]&&this.props[library].indexOf(this.props.uri)>-1}},{key:"render",value:function(){var _this2=this;if(!this.props.album)return helpers.isLoading(this.props.load_queue,["spotify_albums/"+helpers.getFromUri("albumid",this.props.uri)])?_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})):_react2.default.createElement(_ErrorMessage2.default,{type:"not-found",title:"Not found"},_react2.default.createElement("p",null,'Could not find album with URI "',encodeURIComponent(this.props.uri),'"'));var album=helpers.collate(this.props.album,{tracks:this.props.tracks,artists:this.props.artists});if(!album.tracks_uris||album.tracks_uris&&!album.tracks||album.tracks_uris.length!==album.tracks.length)var is_loading_tracks=!0;else var is_loading_tracks=!1;return _react2.default.createElement("div",{className:"view album-view content-wrapper preserve-3d"},_react2.default.createElement(_Parallax2.default,{image:album.images?album.images.huge:null,blur:!0}),_react2.default.createElement("div",{className:"thumbnail-wrapper"},_react2.default.createElement(_Thumbnail2.default,{size:"large",canZoom:!0,images:album.images})),_react2.default.createElement("div",{className:"title"},_react2.default.createElement("h1",null,album.name),_react2.default.createElement("ul",{className:"details"},this.props.slim_mode?null:_react2.default.createElement("li",{className:"source"},_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:helpers.sourceIcon(album.uri)})),album.artists&&album.artists.length>0?_react2.default.createElement("li",null,_react2.default.createElement(_ArtistSentence2.default,{artists:album.artists})):null,album.release_date?_react2.default.createElement("li",null,_react2.default.createElement(_Dater2.default,{type:"date",data:album.release_date})):null,album.tracks?_react2.default.createElement("li",null,album.tracks.length," tracks"):null,!this.props.slim_mode&&album.tracks?_react2.default.createElement("li",null,_react2.default.createElement(_Dater2.default,{type:"total-time",data:album.tracks})):null,!this.props.slim_mode&&album.play_count?_react2.default.createElement("li",null,_react2.default.createElement(_NiceNumber2.default,{value:album.play_count})," plays"):null,!this.props.slim_mode&&album.listeners?_react2.default.createElement("li",null,_react2.default.createElement(_NiceNumber2.default,{value:album.listeners})," listeners"):null)),_react2.default.createElement("div",{className:"actions"},_react2.default.createElement("button",{className:"button button--primary",onClick:function(e){return _this2.play()}},"Play"),"spotify"==helpers.uriSource(this.props.uri)?_react2.default.createElement(_FollowButton2.default,{className:"secondary",uri:this.props.uri,addText:"Add to library",removeText:"Remove from library",is_following:this.inLibrary()}):null,_react2.default.createElement(_ContextMenuTrigger2.default,{onTrigger:function(e){return _this2.handleContextMenu(e)}})),_react2.default.createElement("section",{className:"list-wrapper"},_react2.default.createElement(_TrackList2.default,{className:"album-track-list",tracks:album.tracks,uri:album.uri}),_react2.default.createElement(_LazyLoadListener2.default,{loadKey:album.tracks_more,showLoader:is_loading_tracks,loadMore:function(){return _this2.loadMore()}})),album.wiki?_react2.default.createElement("section",{className:"wiki"},_react2.default.createElement("h4",{className:"wiki__title"},"About"),_react2.default.createElement("div",{className:"wiki__text"},_react2.default.createElement("p",null,album.wiki),_react2.default.createElement("br",null),_react2.default.createElement("div",{className:"mid_grey-text"},"Published: ",album.wiki_publish_date))):null)}}]),Album}(_react2.default.Component),mapStateToProps=function(state,ownProps){var uri=decodeURIComponent(ownProps.match.params.uri);return{uri:uri,slim_mode:state.ui.slim_mode,load_queue:state.ui.load_queue,tracks:state.core.tracks,artists:state.core.artists,album:!(!state.core.albums||void 0===state.core.albums[uri])&&state.core.albums[uri],albums:state.core.albums,spotify_library_albums:state.spotify.library_albums,local_library_albums:state.mopidy.library_albums,spotify_authorized:state.spotify.authorization,mopidy_connected:state.mopidy.connected}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch),lastfmActions:(0,_redux.bindActionCreators)(lastfmActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Album)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_reactRouterDom=(__webpack_require__(33),__webpack_require__(29)),_ErrorMessage=__webpack_require__(30),_ErrorMessage2=_interopRequireDefault(_ErrorMessage),_Link=__webpack_require__(7),_Link2=_interopRequireDefault(_Link),_LazyLoadListener=__webpack_require__(21),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_TrackList=__webpack_require__(19),_TrackList2=_interopRequireDefault(_TrackList),_AlbumGrid=__webpack_require__(38),_AlbumGrid2=_interopRequireDefault(_AlbumGrid),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Parallax=__webpack_require__(28),_Parallax2=_interopRequireDefault(_Parallax),_ArtistGrid=__webpack_require__(34),_ArtistGrid2=_interopRequireDefault(_ArtistGrid),_RelatedArtists=__webpack_require__(86),_RelatedArtists2=_interopRequireDefault(_RelatedArtists),_FollowButton=__webpack_require__(37),_FollowButton2=_interopRequireDefault(_FollowButton),_ContextMenuTrigger=__webpack_require__(22),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_DropdownField=__webpack_require__(25),_DropdownField2=_interopRequireDefault(_DropdownField),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(16),lastfmActions=_interopRequireWildcard(_actions5),_actions6=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions6),Artist=function(_React$Component){function Artist(props){return _classCallCheck(this,Artist),_possibleConstructorReturn(this,(Artist.__proto__||Object.getPrototypeOf(Artist)).call(this,props))}return _inherits(Artist,_React$Component),_createClass(Artist,[{key:"componentDidMount",value:function(){this.setWindowTitle(),this.props.coreActions.loadArtist(this.props.uri)}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.uri!=this.props.uri?this.props.coreActions.loadArtist(nextProps.uri):!this.props.mopidy_connected&&nextProps.mopidy_connected&&"spotify"!=helpers.uriSource(this.props.uri)&&this.props.coreActions.loadArtist(nextProps.uri),!this.props.artist&&nextProps.artist&&this.setWindowTitle(nextProps.artist),this.props.uri!==nextProps.uri&&nextProps.artist&&this.setWindowTitle(nextProps.artist)}},{key:"setWindowTitle",value:function(){var artist=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.artist;artist?this.props.uiActions.setWindowTitle(artist.name+" (artist)"):this.props.uiActions.setWindowTitle("Artist")}},{key:"handleContextMenu",value:function(e){var data={e:e,context:"artist",items:[this.props.artist],uris:[this.props.uri]};this.props.uiActions.showContextMenu(data)}},{key:"loadMore",value:function(){this.props.spotifyActions.getMore(this.props.artist.albums_more,{parent_type:"artist",parent_key:this.props.uri,records_type:"album"})}},{key:"inLibrary",value:function(){var library=helpers.uriSource(this.props.uri)+"_library_artists";return this.props[library]&&this.props[library].indexOf(this.props.uri)>-1}},{key:"setSort",value:function(value){var reverse=!1;null!==value&&this.props.sort==value&&(reverse=!this.props.sort_reverse);var data={artist_albums_sort_reverse:reverse,artist_albums_sort:value};this.props.uiActions.set(data)}},{key:"setFilter",value:function(value){this.props.uiActions.set({artist_albums_filter:value})}},{key:"renderOverview",value:function(){var _this2=this,artist=helpers.collate(this.props.artist,{artists:this.props.artists,albums:this.props.albums,tracks:this.props.tracks});this.props.sort&&artist.albums&&(artist.albums=helpers.sortItems(artist.albums,this.props.sort,this.props.sort_reverse)),this.props.filter&&artist.albums&&(artist.albums=helpers.applyFilter("type",this.props.filter,artist.albums));var sort_options=[{value:null,label:"Default"},{value:"name",label:"Name"},{value:"release_date",label:"Date"},{value:"tracks_uris.length",label:"Tracks"}],filter_options=[{value:null,label:"All"},{value:"album",label:"Albums"},{value:"single",label:"Singles"},{value:"compilation",label:"Compilations"}];if(!artist.tracks_uris||artist.tracks_uris&&!artist.tracks||artist.tracks_uris.length!==artist.tracks.length)var is_loading_tracks=!0;else var is_loading_tracks=!1;return _react2.default.createElement("div",{className:"body overview"},_react2.default.createElement("div",{className:"top-tracks col col--w"+(artist.related_artists&&artist.related_artists.length>0?"70":"100")},artist.tracks?_react2.default.createElement("h4",null,"Top tracks"):null,_react2.default.createElement("div",{className:"list-wrapper"},_react2.default.createElement(_TrackList2.default,{className:"artist-track-list",uri:artist.uri,tracks:artist.tracks?artist.tracks.splice(0,10):[]}),_react2.default.createElement(_LazyLoadListener2.default,{showLoader:is_loading_tracks}))),_react2.default.createElement("div",{className:"col col--w5"}),artist.related_artists&&artist.related_artists.length>0?_react2.default.createElement("div",{className:"col col--w25 related-artists"},_react2.default.createElement("h4",null,"Related artists"),_react2.default.createElement("div",{className:"list-wrapper"},_react2.default.createElement(_RelatedArtists2.default,{artists:artist.related_artists.slice(0,6)})),_react2.default.createElement(_Link2.default,{to:"/artist/"+encodeURIComponent(this.props.uri)+"/related-artists",scrollTo:"#sub-views-menu",className:"button button--default"},"All related artists")):null,_react2.default.createElement("div",{className:"cf"}),artist.albums?_react2.default.createElement("div",{className:"albums"},_react2.default.createElement("h4",null,"Albums",_react2.default.createElement(_DropdownField2.default,{icon:"sort",name:"Sort",value:this.props.sort,options:sort_options,selected_icon:this.props.sort?this.props.sort_reverse?"keyboard_arrow_up":"keyboard_arrow_down":null,handleChange:function(value){_this2.setSort(value),_this2.props.uiActions.hideContextMenu()}}),_react2.default.createElement(_DropdownField2.default,{icon:"filter_list",name:"Filter",value:this.props.filter,options:filter_options,handleChange:function(value){_this2.setFilter(value),_this2.props.uiActions.hideContextMenu()}}),this.props.sort||this.props.filter?_react2.default.createElement("a",{className:"button button--discrete button--small",onClick:function(e){_this2.setFilter(null),_this2.setSort(null)}},_react2.default.createElement(_Icon2.default,{name:"clear"}),"Reset"):null),_react2.default.createElement("section",{className:"grid-wrapper no-top-padding"},_react2.default.createElement(_AlbumGrid2.default,{albums:artist.albums}),_react2.default.createElement(_LazyLoadListener2.default,{loadKey:artist.albums_more,showLoader:artist.albums_more,loadMore:function(){return _this2.loadMore()}}))):null)}},{key:"renderTracks",value:function(){var artist=helpers.collate(this.props.artist,{artists:this.props.artists,tracks:this.props.tracks});if(!artist.tracks_uris||artist.tracks_uris&&!artist.tracks||artist.tracks_uris.length!==artist.tracks.length)var is_loading_tracks=!0;else var is_loading_tracks=!1;return _react2.default.createElement("div",{className:"body related-artists"},_react2.default.createElement("section",{className:"list-wrapper no-top-padding"},_react2.default.createElement(_TrackList2.default,{className:"artist-track-list",uri:artist.uri,tracks:artist.tracks}),_react2.default.createElement(_LazyLoadListener2.default,{showLoader:is_loading_tracks})))}},{key:"renderRelatedArtists",value:function(){var artist=helpers.collate(this.props.artist,{artists:this.props.artists});return _react2.default.createElement("div",{className:"body related-artists"},_react2.default.createElement("section",{className:"grid-wrapper no-top-padding"},_react2.default.createElement(_ArtistGrid2.default,{artists:artist.related_artists})))}},{key:"renderAbout",value:function(){var artist=helpers.collate(this.props.artist,{artists:this.props.artists}),thumbnails=[];if(artist.images&&artist.images.length>0){var _iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=artist.images[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var images=_step.value;images.huge&&thumbnails.push(_react2.default.createElement("div",{className:"tile thumbnail-wrapper",key:images.huge},_react2.default.createElement(_Thumbnail2.default,{size:"huge",canZoom:!0,images:images})))}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}}return _react2.default.createElement("div",{className:"body about"},_react2.default.createElement("div",{className:"col col--w40 tiles artist-stats"},thumbnails,artist.followers?_react2.default.createElement("div",{className:"tile"},_react2.default.createElement("span",{className:"content"},_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:"users"}),artist.followers.toLocaleString()," followers")):null,artist.popularity?_react2.default.createElement("div",{className:"tile"},_react2.default.createElement("span",{className:"content"},_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:"fire"}),artist.popularity,"% popularity")):null,artist.listeners?_react2.default.createElement("div",{className:"tile"},_react2.default.createElement("span",{className:"content"},_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:"headphones"}),artist.listeners.toLocaleString()," listeners")):null),_react2.default.createElement("div",{className:"col col--w60 biography"},_react2.default.createElement("section",null,artist.biography?_react2.default.createElement("div",{className:"biography-text"},_react2.default.createElement("p",null,artist.biography),_react2.default.createElement("br",null),_react2.default.createElement("div",{className:"mid_grey-text"},"Published: ",artist.biography_publish_date),_react2.default.createElement("div",{className:"mid_grey-text"},"Origin: ",_react2.default.createElement("a",{href:artist.biography_link,target:"_blank"},artist.biography_link))):null)))}},{key:"render",value:function(){var _this3=this,scheme=helpers.uriSource(this.props.uri);if(!this.props.artist)return helpers.isLoading(this.props.load_queue,["spotify_artists/"+helpers.getFromUri("artistid",this.props.uri),"lastfm_method=artist.getInfo"])?_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})):_react2.default.createElement(_ErrorMessage2.default,{type:"not-found",title:"Not found"},_react2.default.createElement("p",null,'Could not find artist with URI "',encodeURIComponent(this.props.uri),'"'));if(this.props.artist&&this.props.artist.images&&this.props.artist.images.length>0)var image=this.props.artist.images[0].huge;else var image=null;var is_spotify="spotify"==scheme;if(this.props.artist.tracks_uris&&this.props.artist.tracks_uris.length>0)var uris_to_play=this.props.artist.tracks_uris;else var uris_to_play=this.props.artist.albums_uris;return _react2.default.createElement("div",{className:"view artist-view preserve-3d"},_react2.default.createElement("div",{className:"intro preserve-3d"},_react2.default.createElement(_Parallax2.default,{image:image,fixedHeight:!0}),_react2.default.createElement("div",{className:"liner"},_react2.default.createElement("h1",null,this.props.artist?this.props.artist.name:null),_react2.default.createElement("div",{className:"actions"},_react2.default.createElement("button",{className:"button button--primary",onClick:function(e){return _this3.props.mopidyActions.playURIs(uris_to_play,_this3.props.artist.uri)}},"Play"),is_spotify?_react2.default.createElement(_FollowButton2.default,{uri:this.props.uri,removeText:"Remove from library",addText:"Add to library",is_following:this.inLibrary()}):null,_react2.default.createElement(_ContextMenuTrigger2.default,{className:"white",onTrigger:function(e){return _this3.handleContextMenu(e)}})),_react2.default.createElement("div",{className:"sub-views",id:"sub-views-menu"},_react2.default.createElement(_Link2.default,{exact:!0,history:this.props.history,activeClassName:"sub-views__option--active",className:"sub-views__option",to:"/artist/"+encodeURIComponent(this.props.uri),scrollTo:"#sub-views-menu"},_react2.default.createElement("h4",null,"Overview")),this.props.artist.tracks_uris&&this.props.artist.tracks_uris.length>10?_react2.default.createElement(_Link2.default,{exact:!0,history:this.props.history,activeClassName:"sub-views__option--active",className:"sub-views__option",to:"/artist/"+encodeURIComponent(this.props.uri)+"/tracks",scrollTo:"#sub-views-menu"},_react2.default.createElement("h4",null,"Tracks")):null,this.props.artist.related_artists_uris?_react2.default.createElement(_Link2.default,{exact:!0,history:this.props.history,activeClassName:"sub-views__option--active",className:"sub-views__option",to:"/artist/"+encodeURIComponent(this.props.uri)+"/related-artists",scrollTo:"#sub-views-menu"},_react2.default.createElement("h4",null,"Related artists")):null,_react2.default.createElement(_Link2.default,{exact:!0,history:this.props.history,activeClassName:"sub-views__option--active",className:"sub-views__option",to:"/artist/"+encodeURIComponent(this.props.uri)+"/about",scrollTo:"#sub-views-menu"},_react2.default.createElement("h4",null,"About"))))),_react2.default.createElement("div",{className:"content-wrapper"},_react2.default.createElement(_reactRouterDom.Switch,null,_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/artist/:id/related-artists"},this.renderRelatedArtists()),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/artist/:id/tracks"},this.renderTracks()),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/artist/:id/about"},this.renderAbout()),_react2.default.createElement(_reactRouterDom.Route,{exact:!0,path:"/artist/:id"},this.renderOverview()))))}}]),Artist}(_react2.default.Component),mapStateToProps=function(state,ownProps){var uri=decodeURIComponent(ownProps.match.params.uri);return{uri:uri,theme:state.ui.theme,slim_mode:state.ui.slim_mode,load_queue:state.ui.load_queue,artist:void 0!==state.core.artists[uri]&&state.core.artists[uri],tracks:state.core.tracks,artists:state.core.artists,spotify_library_artists:state.spotify.library_artists,local_library_artists:state.mopidy.library_artists,albums:state.core.albums?state.core.albums:[],filter:state.ui.artist_albums_filter?state.ui.artist_albums_filter:null,sort:state.ui.artist_albums_sort?state.ui.artist_albums_sort:null,sort_reverse:!!state.ui.artist_albums_sort_reverse,spotify_authorized:state.spotify.authorization,mopidy_connected:state.mopidy.connected}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch),lastfmActions:(0,_redux.bindActionCreators)(lastfmActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Artist)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_reactGa=__webpack_require__(13),_reactGa2=_interopRequireDefault(_reactGa),_ErrorMessage=__webpack_require__(30),_ErrorMessage2=_interopRequireDefault(_ErrorMessage),_Link=__webpack_require__(7),_Link2=_interopRequireDefault(_Link),_TrackList=__webpack_require__(19),_TrackList2=_interopRequireDefault(_TrackList),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Parallax=__webpack_require__(28),_Parallax2=_interopRequireDefault(_Parallax),_NiceNumber=__webpack_require__(59),_NiceNumber2=_interopRequireDefault(_NiceNumber),_Dater=__webpack_require__(24),_Dater2=_interopRequireDefault(_Dater),_ConfirmationButton=__webpack_require__(87),_LazyLoadListener=(_interopRequireDefault(_ConfirmationButton),__webpack_require__(21)),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_FollowButton=__webpack_require__(37),_FollowButton2=_interopRequireDefault(_FollowButton),_Header=__webpack_require__(14),_ContextMenuTrigger=(_interopRequireDefault(_Header),__webpack_require__(22)),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_URILink=__webpack_require__(18),_URILink2=_interopRequireDefault(_URILink),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions4),Playlist=function(_React$Component){function Playlist(props){return _classCallCheck(this,Playlist),_possibleConstructorReturn(this,(Playlist.__proto__||Object.getPrototypeOf(Playlist)).call(this,props))}return _inherits(Playlist,_React$Component),_createClass(Playlist,[{key:"componentWillMount",value:function(){var uri=this.props.uri;uri.includes("spotify:user:")&&(uri=uri.replace(/spotify:user:([^:]*?):/i,"spotify:"),this.props.history.push("/playlist/"+encodeURIComponent(uri)))}},{key:"componentDidMount",value:function(){this.setWindowTitle(),this.props.coreActions.loadPlaylist(this.props.uri)}},{key:"componentWillReceiveProps",value:function(nextProps){this.props.playlist&&nextProps.playlist&&this.props.playlist.moved_to!=nextProps.playlist.moved_to&&this.props.history.push("/playlist/"+encodeURIComponent(nextProps.playlist.moved_to)),nextProps.uri!=this.props.uri?this.props.coreActions.loadPlaylist(nextProps.uri):!this.props.mopidy_connected&&nextProps.mopidy_connected&&"spotify"!=helpers.uriSource(this.props.uri)&&this.props.coreActions.loadPlaylist(nextProps.uri),!this.props.playlist&&nextProps.playlist&&this.setWindowTitle(nextProps.playlist),this.props.uri!==nextProps.uri&&nextProps.playlist&&this.setWindowTitle(nextProps.playlist)}},{key:"setWindowTitle",value:function(){var playlist=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.playlist;playlist?this.props.uiActions.setWindowTitle(playlist.name+" (playlist)"):this.props.uiActions.setWindowTitle("Playlist")}},{key:"loadMore",value:function(){this.props.spotifyActions.getMore(this.props.playlist.tracks_more,{parent_type:"playlist",parent_key:this.props.playlist.uri,records_type:"track"})}},{key:"handleContextMenu",value:function(e){var data={e:e,context:"playlist",items:[this.props.playlist],uris:[this.props.uri]};this.props.uiActions.showContextMenu(data)}},{key:"play",value:function(){this.props.mopidyActions.playPlaylist(this.props.playlist.uri)}},{key:"follow",value:function(){this.props.allow_reporting&&_reactGa2.default.event({category:"Playlist",action:"Follow",label:this.props.playlist.uri}),this.props.spotifyActions.toggleFollowingPlaylist(this.props.playlist.uri,"PUT")}},{key:"unfollow",value:function(){this.props.allow_reporting&&_reactGa2.default.event({category:"Playlist",action:"Unfollow",label:this.props.playlist.uri}),this.props.spotifyActions.toggleFollowingPlaylist(this.props.playlist.uri,"DELETE")}},{key:"delete",value:function(){this.props.mopidyActions.deletePlaylist(this.props.playlist.uri)}},{key:"reorderTracks",value:function(indexes,index){this.props.coreActions.reorderPlaylistTracks(this.props.playlist.uri,indexes,index,this.props.playlist.snapshot_id)}},{key:"removeTracks",value:function(tracks_indexes){this.props.coreActions.removeTracksFromPlaylist(this.props.playlist.uri,tracks_indexes)}},{key:"inLibrary",value:function(){var library=helpers.uriSource(this.props.uri)+"_library_playlists";return this.props[library]&&this.props[library].indexOf(this.props.uri)>-1}},{key:"renderActions",value:function(){var _this2=this;switch(helpers.uriSource(this.props.uri)){case"m3u":return _react2.default.createElement("div",{className:"actions"},_react2.default.createElement("button",{className:"button button--primary",onClick:function(e){return _this2.play()}},"Play"),_react2.default.createElement(_Link2.default,{className:"button button--default",to:"/playlist/"+encodeURIComponent(this.props.uri)+"/edit"},"Edit"),_react2.default.createElement(_ContextMenuTrigger2.default,{onTrigger:function(e){return _this2.handleContextMenu(e)}}));case"spotify":return this.props.playlist.can_edit?_react2.default.createElement("div",{className:"actions"},_react2.default.createElement("button",{className:"button button--primary",onClick:function(e){return _this2.play()}},"Play"),_react2.default.createElement(_Link2.default,{className:"button button--default",to:"/playlist/"+encodeURIComponent(this.props.uri)+"/edit"},"Edit"),_react2.default.createElement(_ContextMenuTrigger2.default,{onTrigger:function(e){return _this2.handleContextMenu(e)}})):_react2.default.createElement("div",{className:"actions"},_react2.default.createElement("button",{className:"button button--primary",onClick:function(e){return _this2.play()}},"Play"),_react2.default.createElement(_FollowButton2.default,{uri:this.props.uri,addText:"Add to library",removeText:"Remove from library",is_following:this.inLibrary()}),_react2.default.createElement(_ContextMenuTrigger2.default,{onTrigger:function(e){return _this2.handleContextMenu(e)}}));default:return _react2.default.createElement("div",{className:"actions"},_react2.default.createElement("button",{className:"button button--primary",onClick:function(e){return _this2.play()}},"Play"),_react2.default.createElement(_ContextMenuTrigger2.default,{onTrigger:function(e){return _this2.handleContextMenu(e)}}))}}},{key:"render",value:function(){var _this3=this,playlist_id=helpers.getFromUri("playlistid",this.props.uri);if(!this.props.playlist)return helpers.isLoading(this.props.load_queue,["spotify_playlists/"+playlist_id+"?"])?_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})):_react2.default.createElement(_ErrorMessage2.default,{type:"not-found",title:"Not found"},_react2.default.createElement("p",null,'Could not find playlist with URI "',encodeURIComponent(this.props.uri),'"'));var playlist=helpers.collate(this.props.playlist,{tracks:this.props.tracks,users:this.props.users}),context="playlist";if(playlist.can_edit&&(context="editable-playlist"),0===playlist.tracks_total||playlist.tracks_uris&&(!playlist.tracks_uris||playlist.tracks)&&playlist.tracks_uris.length===playlist.tracks.length)var is_loading_tracks=!1;else var is_loading_tracks=!0;return _react2.default.createElement("div",{className:"view playlist-view content-wrapper preserve-3d"},_react2.default.createElement(_Parallax2.default,{image:playlist.images?playlist.images.huge:null,blur:!0}),_react2.default.createElement("div",{className:"thumbnail-wrapper"},_react2.default.createElement(_Thumbnail2.default,{size:"large",canZoom:!0,images:playlist.images})),_react2.default.createElement("div",{className:"title"},_react2.default.createElement("h1",null,playlist.name),playlist.description?_react2.default.createElement("h2",{className:"description mid_grey-text",dangerouslySetInnerHTML:{__html:playlist.description}}):null,_react2.default.createElement("ul",{className:"details"},this.props.slim_mode?null:_react2.default.createElement("li",{className:"source"},_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:helpers.sourceIcon(playlist.uri)})),playlist.user_uri?_react2.default.createElement("li",null,_react2.default.createElement(_URILink2.default,{type:"user",uri:playlist.user_uri},playlist.user?playlist.user.name:helpers.getFromUri("userid",playlist.user_uri))):null,_react2.default.createElement("li",null,playlist.tracks_total?playlist.tracks_total:"0"," tracks"),!this.props.slim_mode&&playlist.tracks&&playlist.tracks_total>0?_react2.default.createElement("li",null,_react2.default.createElement(_Dater2.default,{type:"total-time",data:playlist.tracks})):null,this.props.slim_mode||void 0===playlist.followers?null:_react2.default.createElement("li",null,_react2.default.createElement(_NiceNumber2.default,{value:playlist.followers})," followers"),!this.props.slim_mode&&playlist.last_modified_date?_react2.default.createElement("li",null,"Edited ",_react2.default.createElement(_Dater2.default,{type:"ago",data:playlist.last_modified_date})):null)),this.renderActions(),_react2.default.createElement("section",{className:"list-wrapper"},_react2.default.createElement(_TrackList2.default,{uri:playlist.uri,className:"playlist-track-list",track_context:context,tracks:playlist.tracks,removeTracks:function(tracks_indexes){return _this3.removeTracks(tracks_indexes)},reorderTracks:function(indexes,index){return _this3.reorderTracks(indexes,index)}}),_react2.default.createElement(_LazyLoadListener2.default,{loadKey:playlist.tracks_more,showLoader:is_loading_tracks||playlist.tracks_more,loadMore:function(){return _this3.loadMore()}})))}}]),Playlist}(_react2.default.Component),mapStateToProps=function(state,ownProps){var uri=decodeURIComponent(ownProps.match.params.uri);return uri=uri.replace(/\s/g,"%20"),uri=uri.replace(/\[/g,"%5B"),uri=uri.replace(/\]/g,"%5D"),uri=uri.replace(/\(/g,"%28"),uri=uri.replace(/\)/g,"%29"),uri=uri.replace(/\#/g,"%23"),{uri:uri,allow_reporting:state.ui.allow_reporting,slim_mode:state.ui.slim_mode,load_queue:state.ui.load_queue,users:state.core.users,tracks:state.core.tracks,playlist:void 0!==state.core.playlists[uri]&&state.core.playlists[uri],spotify_library_playlists:state.spotify.library_playlists,local_library_playlists:state.mopidy.library_playlists,mopidy_connected:state.mopidy.connected,spotify_authorized:state.spotify.authorization,spotify_userid:state.spotify.me&&state.spotify.me.id?state.spotify.me.id:null}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Playlist)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_ErrorMessage=__webpack_require__(30),_ErrorMessage2=_interopRequireDefault(_ErrorMessage),_Thumbnail=__webpack_require__(10),_PlaylistGrid=(_interopRequireDefault(_Thumbnail),__webpack_require__(39)),_PlaylistGrid2=_interopRequireDefault(_PlaylistGrid),_FollowButton=__webpack_require__(37),_FollowButton2=_interopRequireDefault(_FollowButton),_LazyLoadListener=__webpack_require__(21),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_Parallax=__webpack_require__(28),_Parallax2=_interopRequireDefault(_Parallax),_NiceNumber=__webpack_require__(59),_NiceNumber2=_interopRequireDefault(_NiceNumber),_ContextMenuTrigger=__webpack_require__(22),_Icon=(_interopRequireDefault(_ContextMenuTrigger),__webpack_require__(5)),_Icon2=_interopRequireDefault(_Icon),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),_actions4=(_interopRequireWildcard(_actions3),__webpack_require__(8)),spotifyActions=_interopRequireWildcard(_actions4),User=function(_React$Component){function User(props){return _classCallCheck(this,User),_possibleConstructorReturn(this,(User.__proto__||Object.getPrototypeOf(User)).call(this,props))}return _inherits(User,_React$Component),_createClass(User,[{key:"componentDidMount",value:function(){this.setWindowTitle(),this.props.coreActions.loadUser(this.props.uri),this.props.coreActions.loadUserPlaylists(this.props.uri)}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.uri!=this.props.uri&&(this.props.coreActions.loadUser(nextProps.uri),this.props.coreActions.loadUserPlaylists(this.props.uri)),!this.props.user&&nextProps.user&&this.setWindowTitle(nextProps.user)}},{key:"setWindowTitle",value:function(){var user=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.user;user?this.props.uiActions.setWindowTitle(user.name+" (user)"):this.props.uiActions.setWindowTitle("User")}},{key:"loadMore",value:function(){this.props.spotifyActions.getMore(this.props.user.playlists_more,{parent_type:"user",parent_key:this.props.uri,records_type:"playlist"})}},{key:"isMe",value:function(){var userid=helpers.getFromUri("userid",this.props.uri);return this.props.me&&this.props.me.id&&this.props.me.id==userid}},{key:"render",value:function(){var _this2=this,user_id=helpers.getFromUri("userid",this.props.uri);if(!this.props.user)return helpers.isLoading(this.props.load_queue,["spotify_users/"+user_id,"spotify_users/"+user_id+"/playlists/?"])?_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})):_react2.default.createElement(_ErrorMessage2.default,{type:"not-found",title:"Not found"},_react2.default.createElement("p",null,'Could not find user with URI "',encodeURIComponent(this.props.uri),'"'));var user=helpers.collate(this.props.user,{playlists:this.props.playlists});if(user&&user.images)var image=user.images.huge;else var image=null;return _react2.default.createElement("div",{className:"view user-view preserve-3d"},_react2.default.createElement("div",{className:"intro preserve-3d"},_react2.default.createElement(_Parallax2.default,{image:image,fixedHeight:!0}),_react2.default.createElement("div",{className:"liner"},_react2.default.createElement("h1",null,user.name),_react2.default.createElement("h2",null,_react2.default.createElement("ul",{className:"details"},this.props.slim_mode?null:_react2.default.createElement("li",{className:"source"},_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:helpers.sourceIcon(user.uri)})),user.playlists_total?_react2.default.createElement("li",null,_react2.default.createElement(_NiceNumber2.default,{value:user.playlists_total})," playlists"):null,user.followers?_react2.default.createElement("li",null,_react2.default.createElement(_NiceNumber2.default,{value:user.followers})," followers"):null,this.isMe()?_react2.default.createElement("li",null,_react2.default.createElement("span",{className:"blue-text"},"You")):null)),_react2.default.createElement("div",{className:"actions"},_react2.default.createElement(_FollowButton2.default,{className:"primary",uri:user.uri,addText:"Follow",removeText:"Unfollow"})))),_react2.default.createElement("div",{className:"content-wrapper"},_react2.default.createElement("section",{className:"grid-wrapper"},_react2.default.createElement("h4",null,"Playlists"),_react2.default.createElement(_PlaylistGrid2.default,{playlists:user.playlists}),_react2.default.createElement(_LazyLoadListener2.default,{loadKey:user.playlists_more,showLoader:user.playlists_more,loadMore:function(){return _this2.loadMore()}}))))}}]),User}(_react2.default.Component),mapStateToProps=function(state,ownProps){var uri=decodeURIComponent(ownProps.match.params.uri);return{uri:uri,me:state.spotify.me,load_queue:state.ui.load_queue,spotify_authorized:state.spotify.authorization,playlists:state.core.playlists,user:void 0!==state.core.users[uri]&&state.core.users[uri]}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(User)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_Link2=_interopRequireDefault(_Link),_ErrorMessage=__webpack_require__(30),_ErrorMessage2=_interopRequireDefault(_ErrorMessage),_Header=__webpack_require__(14),_Header2=_interopRequireDefault(_Header),_TrackList=__webpack_require__(19),_Thumbnail=(_interopRequireDefault(_TrackList),__webpack_require__(10)),_Thumbnail2=_interopRequireDefault(_Thumbnail),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_ArtistGrid=__webpack_require__(34),_FollowButton=(_interopRequireDefault(_ArtistGrid),__webpack_require__(37)),_LastfmLoveButton=(_interopRequireDefault(_FollowButton),__webpack_require__(195)),_LastfmLoveButton2=_interopRequireDefault(_LastfmLoveButton),_Dater=__webpack_require__(24),_Dater2=_interopRequireDefault(_Dater),_LazyLoadListener=__webpack_require__(21),_ContextMenuTrigger=(_interopRequireDefault(_LazyLoadListener),__webpack_require__(22)),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_URILink=__webpack_require__(18),_Icon=(_interopRequireDefault(_URILink),__webpack_require__(5)),_Icon2=_interopRequireDefault(_Icon),_Popularity=__webpack_require__(58),_helpers=(_interopRequireDefault(_Popularity),__webpack_require__(1)),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(16),lastfmActions=_interopRequireWildcard(_actions5),_actions6=__webpack_require__(32),geniusActions=_interopRequireWildcard(_actions6),Track=function(_React$Component){function Track(props){return _classCallCheck(this,Track),_possibleConstructorReturn(this,(Track.__proto__||Object.getPrototypeOf(Track)).call(this,props))}return _inherits(Track,_React$Component),_createClass(Track,[{key:"componentDidMount",value:function(){this.props.coreActions.loadTrack(this.props.uri),this.props.track&&(this.setWindowTitle(this.props.track),this.props.genius_authorized&&this.props.track.artists&&!this.props.track.lyrics_results&&this.props.geniusActions.findTrackLyrics(this.props.track))}},{key:"handleContextMenu",value:function(e){e.preventDefault();var data={uris:[this.props.uri]};this.props.uiActions.showContextMenu(e,data,"track","click")}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.uri!=this.props.uri?(this.props.coreActions.loadTrack(nextProps.uri),nextProps.genius_authorized&&nextProps.tracks.artists&&this.props.geniusActions.findTrackLyrics(nextProps.track)):!this.props.mopidy_connected&&nextProps.mopidy_connected&&"spotify"!=helpers.uriSource(this.props.uri)&&this.props.coreActions.loadTrack(nextProps.uri),(!this.props.track&&nextProps.track||!this.props.track.artists&&nextProps.track.artists)&&(this.setWindowTitle(nextProps.track),nextProps.lastfm_authorized&&this.props.lastfmActions.getTrack(nextProps.track.uri),nextProps.genius_authorized&&!nextProps.track.lyrics_results&&this.props.geniusActions.findTrackLyrics(nextProps.track)),!this.props.track&&nextProps.track&&this.setWindowTitle(nextProps.track)}},{key:"setWindowTitle",value:function(){var track=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.track;if(track){for(var artists="",i=0;i<track.artists.length;i++)""!=artists&&(artists+=", "),artists+=track.artists[i].name;this.props.uiActions.setWindowTitle(track.name+" by "+artists+" (track)")}else this.props.uiActions.setWindowTitle("Track")}},{key:"handleContextMenu",value:function(e){var data={e:e,context:"track",items:[this.props.track],uris:[this.props.uri]};this.props.uiActions.showContextMenu(data)}},{key:"play",value:function(){this.props.mopidyActions.playURIs([this.props.uri],this.props.uri)}},{key:"renderLyricsSelector",value:function(){var _this2=this;return void 0===this.props.track.lyrics_results||null===this.props.track.lyrics_results?null:this.props.track.lyrics_results.length<=0?_react2.default.createElement("div",{className:"field lyrics-selector"},_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",disabled:"disabled",value:"No results"}),_react2.default.createElement("div",{className:"description"},"Switch to another lyrics seach result"))):_react2.default.createElement("div",{className:"field lyrics-selector"},_react2.default.createElement("div",{className:"input"},_react2.default.createElement("select",{onChange:function(e){return _this2.props.geniusActions.getTrackLyrics(_this2.props.track.uri,e.target.value)}},this.props.track.lyrics_results.map(function(result){return _react2.default.createElement("option",{key:result.path,value:result.path,defaultValue:result.path==_this2.props.track.lyrics_path},result.title)})),_react2.default.createElement("div",{className:"description"},"Switch to another lyrics seach result")))}},{key:"renderLyrics",value:function(){return helpers.isLoading(this.props.load_queue,["genius_"])?_react2.default.createElement("div",{className:"lyrics"},_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"}))):this.props.track.lyrics?_react2.default.createElement("div",{className:"lyrics"},_react2.default.createElement("div",{className:"content",dangerouslySetInnerHTML:{__html:this.props.track.lyrics}}),_react2.default.createElement("div",{className:"origin mid_grey-text"},"Origin: ",_react2.default.createElement("a",{href:"https://genius.com"+this.props.track.lyrics_path,target:"_blank"},"https://genius.com"+this.props.track.lyrics_path))):_react2.default.createElement(_ErrorMessage2.default,{type:"not-found",title:"Not found"},_react2.default.createElement("p",null,'Could not find track with URI "',encodeURIComponent(this.props.uri),'"'))}},{key:"render",value:function(){var _this3=this;if(helpers.isLoading(this.props.load_queue,["spotify_track/"+helpers.getFromUri("trackid",this.props.uri)]))return _react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"}));if(!this.props.track)return null;var track=this.props.track;if(track.album){var album=this.props.albums[track.album.uri];album&&album.images&&(track.images=album.images)}return _react2.default.createElement("div",{className:"view track-view content-wrapper"},this.props.slim_mode?_react2.default.createElement(_Header2.default,{icon:"music",title:"Track",handleContextMenuTrigger:function(e){return _this3.handleContextMenu(e)},uiActions:this.props.uiActions}):null,_react2.default.createElement("div",{className:"thumbnail-wrapper"},_react2.default.createElement(_Thumbnail2.default,{size:"large",canZoom:!0,images:track.images})),_react2.default.createElement("div",{className:"title"},_react2.default.createElement("h1",null,track.name),_react2.default.createElement("h2",{className:"mid_grey-text"},track.album&&track.album.uri?_react2.default.createElement(_Link2.default,{to:"/album/"+track.album.uri},track.album.name):null,track.album&&!track.album.uri?track.album.name:null,track.album?null:"Unknown album"," by ",_react2.default.createElement(_ArtistSentence2.default,{artists:track.artists})),_react2.default.createElement("ul",{className:"details"},this.props.slim_mode?null:_react2.default.createElement("li",{className:"source"},_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:helpers.sourceIcon(this.props.uri)})),track.date?_react2.default.createElement("li",null,_react2.default.createElement(_Dater2.default,{type:"date",data:track.date})):null,track.explicit?_react2.default.createElement("li",null,_react2.default.createElement("span",{className:"flag dark"},"EXPLICIT")):null,_react2.default.createElement("li",null,track.disc_number?_react2.default.createElement("span",null,"Disc ",track.disc_number):null,track.disc_number&&track.track_number?_react2.default.createElement("span",null,", "):null,track.track_number?_react2.default.createElement("span",null,"Track ",track.track_number):null),track.duration?_react2.default.createElement("li",null,_react2.default.createElement(_Dater2.default,{type:"length",data:track.duration})):null,track.popularity?_react2.default.createElement("li",null,track.popularity,"% popularity"):null)),_react2.default.createElement("div",{className:"actions"},_react2.default.createElement("button",{className:"button button--primary",onClick:function(e){return _this3.play()}},"Play"),_react2.default.createElement(_LastfmLoveButton2.default,{uri:this.props.uri,artist:this.props.track.artists?this.props.track.artists[0].name:null,track:this.props.track.name,addText:"Love",removeText:"Unlove",is_loved:this.props.track.userloved}),_react2.default.createElement(_ContextMenuTrigger2.default,{onTrigger:function(e){return _this3.handleContextMenu(e)}})),this.props.genius_authorized?null:_react2.default.createElement("p",{className:"no-results"},"Want track lyrics? Authorize Genius under ",_react2.default.createElement(_Link2.default,{to:"/settings/genius",scrollTo:"#services-menu"},"Settings"),"."),this.props.genius_authorized?this.renderLyricsSelector():null,this.props.genius_authorized?this.renderLyrics():null)}}]),Track}(_react2.default.Component),rebuildUri=function(uri){var rebuilt_uri=helpers.uriSource(uri)+":"+helpers.uriType(uri)+":",id=helpers.getFromUri("trackid",uri);return id=encodeURIComponent(id).replace(/[!'()*]/g,escape),id=id.replace(/%2F/g,"/"),rebuilt_uri+id},mapStateToProps=function(state,ownProps){var uri=decodeURIComponent(ownProps.match.params.uri);return uri=rebuildUri(uri),{uri:uri,slim_mode:state.ui.slim_mode,load_queue:state.ui.load_queue,track:!(!state.core.tracks||void 0===state.core.tracks[uri])&&state.core.tracks[uri],tracks:state.core.tracks,artists:state.core.artists,albums:state.core.albums,spotify_library_albums:state.spotify.library_albums,local_library_albums:state.mopidy.library_albums,lastfm_authorized:state.lastfm.authorization,spotify_authorized:state.spotify.authorization,genius_authorized:state.genius.authorization,mopidy_connected:state.mopidy.connected}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),lastfmActions:(0,_redux.bindActionCreators)(lastfmActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch),geniusActions:(0,_redux.bindActionCreators)(geniusActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Track)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_helpers=(_interopRequireDefault(_Link),__webpack_require__(1)),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(2)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(16),lastfmActions=_interopRequireWildcard(_actions2),FollowButton=function(_React$Component){function FollowButton(props){return _classCallCheck(this,FollowButton),_possibleConstructorReturn(this,(FollowButton.__proto__||Object.getPrototypeOf(FollowButton)).call(this,props))}return _inherits(FollowButton,_React$Component),_createClass(FollowButton,[{key:"remove",value:function(){this.props.lastfmActions.unloveTrack(this.props.uri,this.props.artist,this.props.track)}},{key:"add",value:function(){this.props.lastfmActions.loveTrack(this.props.uri,this.props.artist,this.props.track)}},{key:"render",value:function(){var _this2=this;if(!this.props.uri)return!1;var className="button";return this.props.className&&(className+=" "+this.props.className),this.props.lastfm_authorized?this.props.is_loved&&"0"!==this.props.is_loved?_react2.default.createElement("button",{className:className+" button--destructive",onClick:function(e){return _this2.remove()}},this.props.removeText):_react2.default.createElement("button",{className:className+" button--default",onClick:function(e){return _this2.add()}},this.props.addText):_react2.default.createElement("button",{className:className+" button--disabled",onClick:function(e){return _this2.props.uiActions.createNotification({content:"You must authorize LastFM first",type:"warning"})}},this.props.addText)}}]),FollowButton}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{load_queue:state.ui.load_queue,lastfm_authorized:state.lastfm.authorization}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),lastfmActions:(0,_redux.bindActionCreators)(lastfmActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(FollowButton)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_Link2=_interopRequireDefault(_Link),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_Parallax=__webpack_require__(28),_Parallax2=_interopRequireDefault(_Parallax),_TrackList=__webpack_require__(19),_TrackList2=_interopRequireDefault(_TrackList),_Dater=__webpack_require__(24),_Dater2=_interopRequireDefault(_Dater),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Header=__webpack_require__(14),_Header2=_interopRequireDefault(_Header),_URILink=__webpack_require__(18),_URILink2=_interopRequireDefault(_URILink),_helpers=__webpack_require__(1),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(2)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions4),Queue=function(_React$Component){function Queue(props){return _classCallCheck(this,Queue),_possibleConstructorReturn(this,(Queue.__proto__||Object.getPrototypeOf(Queue)).call(this,props))}return _inherits(Queue,_React$Component),_createClass(Queue,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Now playing")}},{key:"removeTracks",value:function(track_indexes){for(var tlids=[],i=0;i<track_indexes.length;i++){var track=this.props.queue[track_indexes[i]];void 0!==track.tlid&&tlids.push(track.tlid)}tlids.length>0&&this.props.mopidyActions.removeTracks(tlids)}},{key:"playTrack",value:function(track){this.props.mopidyActions.changeTrack(track.tlid)}},{key:"playTracks",value:function(tracks){this.props.mopidyActions.changeTrack(tracks[0].tlid)}},{key:"reorderTracks",value:function(indexes,index){this.props.mopidyActions.reorderTracklist(indexes,index)}},{key:"renderQueueStats",value:function(){return _react2.default.createElement("div",{className:"queue-stats mid_grey-text"},_react2.default.createElement("span",null,this.props.current_tracklist.length," tracks"),"  |  ",this.props.current_tracklist.length>0?_react2.default.createElement(_Dater2.default,{type:"total-time",data:this.props.current_tracklist}):_react2.default.createElement("span",null,"0 mins"))}},{key:"renderArtwork",value:function(image){if(!image)return _react2.default.createElement("span",{className:this.props.radio_enabled?"artwork radio-enabled":"artwork"},this.props.radio_enabled?_react2.default.createElement("img",{className:"radio-overlay",src:"/iris/assets/radio-overlay.png"}):null,_react2.default.createElement(_Thumbnail2.default,{circle:this.props.radio_enabled}));var uri=null;return this.props.current_track.album&&this.props.current_track.album.uri&&(uri=this.props.current_track.album.uri),_react2.default.createElement(_URILink2.default,{className:this.props.radio_enabled?"artwork radio-enabled":"artwork",type:"album",uri:uri},this.props.radio_enabled?_react2.default.createElement("img",{className:"radio-overlay",src:"/iris/assets/radio-overlay.png"}):null,_react2.default.createElement(_Thumbnail2.default,{image:image,circle:this.props.radio_enabled}))}},{key:"render",value:function(){var _this2=this,current_track=null,tracks=[];if(this.props.queue&&this.props.tracks)for(var i=0;i<this.props.queue.length;i++){var track=this.props.queue[i];this.props.tracks.hasOwnProperty(track.uri)&&(track=Object.assign({},this.props.tracks[track.uri],track,{playing:this.props.current_track&&this.props.current_track.tlid==track.tlid})),void 0!==this.props.queue_metadata["tlid_"+track.tlid]&&(track=Object.assign({},track,this.props.queue_metadata["tlid_"+track.tlid])),this.props.current_track&&this.props.current_track.uri==track.uri&&(current_track=track),tracks.push(track)}var current_track_image=null;current_track&&this.props.current_track_uri&&void 0!==current_track.images&&current_track.images&&(current_track_image=current_track.images.large);var options=_react2.default.createElement("span",null,this.props.spotify_enabled?_react2.default.createElement(_Link2.default,{className:"button button--no-hover",to:"/queue/radio"},_react2.default.createElement(_Icon2.default,{name:"radio"}),"Radio",this.props.radio&&this.props.radio.enabled?_react2.default.createElement("span",{className:"flag blue"},"On"):null):null,_react2.default.createElement(_Link2.default,{className:"button button--no-hover",to:"/queue/history"},_react2.default.createElement(_Icon2.default,{name:"history"}),"History"),_react2.default.createElement("a",{className:"button button--no-hover",onClick:function(e){_this2.props.mopidyActions.clearTracklist(),_this2.props.uiActions.hideContextMenu()}},_react2.default.createElement(_Icon2.default,{name:"delete_sweep"}),"Clear"),_react2.default.createElement(_Link2.default,{className:"button button--no-hover",to:"/queue/add-uri"},_react2.default.createElement(_Icon2.default,{name:"playlist_add"}),"Add URI"));return _react2.default.createElement("div",{className:"view queue-view preserve-3d"},_react2.default.createElement(_Header2.default,{options:options,uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"play_arrow",type:"material"}),"Now playing"),_react2.default.createElement(_Parallax2.default,{blur:!0,image:current_track_image}),_react2.default.createElement("div",{className:"content-wrapper"},_react2.default.createElement("div",{className:"current-track"},this.renderArtwork(current_track_image),_react2.default.createElement("div",{className:"title"},current_track?_react2.default.createElement(_URILink2.default,{type:"track",uri:current_track.uri},current_track.name):_react2.default.createElement("span",null,"-")),current_track?_react2.default.createElement(_ArtistSentence2.default,{artists:current_track.artists}):_react2.default.createElement(_ArtistSentence2.default,null)),_react2.default.createElement("section",{className:"list-wrapper"},_react2.default.createElement(_TrackList2.default,{show_source_icon:!0,track_context:"queue",className:"queue-track-list",tracks:tracks,removeTracks:function(track_indexes){return _this2.removeTracks(track_indexes)},playTracks:function(tracks){return _this2.playTracks(tracks)},playTrack:function(track){return _this2.playTrack(track)},reorderTracks:function(indexes,index){return _this2.reorderTracks(indexes,index)}}))))}}]),Queue}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{theme:state.ui.theme,spotify_enabled:state.spotify.enabled,radio:state.core.radio,radio_enabled:!(!state.core.radio||!state.core.radio.enabled),tracks:state.core.tracks,artists:state.core.artists,albums:state.core.albums,queue:state.core.queue,queue_tlids:state.core.queue_tlids,queue_metadata:state.core.queue_metadata,current_track_uri:state.core.current_track_uri,current_track:state.core.current_track}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Queue)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_TrackList=__webpack_require__(19),_TrackList2=_interopRequireDefault(_TrackList),_Header=__webpack_require__(14),_Header2=_interopRequireDefault(_Header),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions4),QueueHistory=function(_React$Component){function QueueHistory(props){return _classCallCheck(this,QueueHistory),_possibleConstructorReturn(this,(QueueHistory.__proto__||Object.getPrototypeOf(QueueHistory)).call(this,props))}return _inherits(QueueHistory,_React$Component),_createClass(QueueHistory,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Queue history"),this.loadHistory()}},{key:"componentWillReceiveProps",value:function(nextProps){!this.props.mopidy_connected&&nextProps.mopidy_connected&&this.loadHistory(nextProps)}},{key:"loadHistory",value:function(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props).mopidy_connected&&this.props.mopidyActions.getQueueHistory()}},{key:"render",value:function(){for(var _this2=this,options=_react2.default.createElement("a",{className:"button button--no-hover",onClick:function(e){return _this2.props.history.push("/queue")}},_react2.default.createElement(_Icon2.default,{name:"keyboard_backspace"}),"  Back"),tracks=[],i=0;i<this.props.queue_history.length;i++){var track=Object.assign({},this.props.queue_history[i]);void 0!==this.props.tracks[track.uri]&&(track=Object.assign({},track,this.props.tracks[track.uri])),tracks.push(track)}return _react2.default.createElement("div",{className:"view queue-history-view"},_react2.default.createElement(_Header2.default,{options:options,uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"play_arrow",type:"material"}),"Playback history"),_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_TrackList2.default,{className:"queue-history-track-list",track_context:"history",tracks:tracks,show_source_icon:!0})))}}]),QueueHistory}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{mopidy_connected:state.mopidy.connected,tracks:state.core.tracks?state.core.tracks:{},queue_history:state.mopidy.queue_history?state.mopidy.queue_history:[]}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(QueueHistory)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Header=__webpack_require__(14),_Header2=_interopRequireDefault(_Header),_Thumbnail=__webpack_require__(10),_Icon=(_interopRequireDefault(_Thumbnail),__webpack_require__(5)),_Icon2=_interopRequireDefault(_Icon),_Link=__webpack_require__(7),_actions=(_interopRequireDefault(_Link),__webpack_require__(2)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions4),Debug=function(_React$Component){function Debug(props){_classCallCheck(this,Debug);var _this=_possibleConstructorReturn(this,(Debug.__proto__||Object.getPrototypeOf(Debug)).call(this,props));return _this.state={mopidy_call:"playlists.asList",mopidy_data:"{}",pusher_data:'{"method":"get_config"}',access_token:_this.props.access_token,toggling_test_mode:!1},_this}return _inherits(Debug,_React$Component),_createClass(Debug,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Debug")}},{key:"callMopidy",value:function(e){e.preventDefault(),this.props.mopidyActions.debug(this.state.mopidy_call,JSON.parse(this.state.mopidy_data))}},{key:"callPusher",value:function(e){e.preventDefault(),this.props.pusherActions.debug(JSON.parse(this.state.pusher_data))}},{key:"toggleTestMode",value:function(e){this.setState({toggling_test_mode:!0}),this.props.uiActions.set({test_mode:!this.props.test_mode}),setTimeout(location.reload(),1e3)}},{key:"render",value:function(){var _this2=this,options=_react2.default.createElement("a",{className:"button button--default button--no-hover",onClick:function(e){return _this2.props.history.push("/settings")}},_react2.default.createElement(_Icon2.default,{name:"keyboard_backspace"}),"Back");return _react2.default.createElement("div",{className:"view debugger-view"},_react2.default.createElement(_Header2.default,{options:options,uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"settings",type:"material"}),"Debug"),_react2.default.createElement("div",{className:"content-wrapper"},_react2.default.createElement("h4",{className:"underline"},"User interface"),_react2.default.createElement("form",null,_react2.default.createElement("div",{className:"field checkbox"},_react2.default.createElement("div",{className:"name"},"Test mode"),_react2.default.createElement("div",{className:"input"},this.state.toggling_test_mode?_react2.default.createElement("span",{className:"button button--working"},"Applying..."):this.props.test_mode?_react2.default.createElement("span",{className:"button button--destructive",onClick:function(e){return _this2.toggleTestMode(e)}},"Disable"):_react2.default.createElement("span",{className:"button button--primary",onClick:function(e){return _this2.toggleTestMode(e)}},"Enable"))),_react2.default.createElement("div",{className:"field checkbox"},_react2.default.createElement("div",{className:"name"},"Debug"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"debug_info",checked:this.props.debug_info,onChange:function(e){return _this2.props.uiActions.set({debug_info:!_this2.props.debug_info})}}),_react2.default.createElement("span",{className:"label"},"Show debug overlay")))),_react2.default.createElement("div",{className:"field checkbox"},_react2.default.createElement("div",{className:"name"},"Logging"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"log_actions",checked:this.props.log_actions,onChange:function(e){return _this2.props.uiActions.set({log_actions:!_this2.props.log_actions})}}),_react2.default.createElement("span",{className:"label"},"Log actions")),_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"log_mopidy",checked:this.props.log_mopidy,onChange:function(e){return _this2.props.uiActions.set({log_mopidy:!_this2.props.log_mopidy})}}),_react2.default.createElement("span",{className:"label"},"Log Mopidy")),_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"log_pusher",checked:this.props.log_pusher,onChange:function(e){return _this2.props.uiActions.set({log_pusher:!_this2.props.log_pusher})}}),_react2.default.createElement("span",{className:"label"},"Log Pusher")))),_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"}),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("a",{className:"button button--default",onClick:function(e){return _this2.props.uiActions.createNotification({content:"Test notification"})}},"Create notification"),_react2.default.createElement("a",{className:"button button--default",onClick:function(e){return _this2.props.pusherActions.request("test")}},"Run test process")))),_react2.default.createElement("h4",{className:"underline"},"Spotify"),_react2.default.createElement("label",{className:"field"},_react2.default.createElement("div",{className:"name"},"Access token"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.props.spotifyActions.authorizationGranted({access_token:e.target.value})},value:this.state.access_token}))),_react2.default.createElement("h4",{className:"underline"},"Mopidy"),_react2.default.createElement("form",{onSubmit:function(e){return _this2.callMopidy(e)}},_react2.default.createElement("label",{className:"field"},_react2.default.createElement("div",{className:"name"},"Call"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.setState({mopidy_call:e.target.value})},value:this.state.mopidy_call}))),_react2.default.createElement("label",{className:"field"},_react2.default.createElement("div",{className:"name"},"Data"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("textarea",{onChange:function(e){return _this2.setState({mopidy_data:e.target.value})},value:this.state.mopidy_data}))),_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"}),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("button",{type:"submit",className:"button button--default"},"Send")))),_react2.default.createElement("h4",{className:"underline"},"Pusher"),_react2.default.createElement("form",{onSubmit:function(e){return _this2.callPusher(e)}},_react2.default.createElement("label",{className:"field"},_react2.default.createElement("div",{className:"name"},"Examples"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("select",{onChange:function(e){return _this2.setState({pusher_data:e.target.value})}},_react2.default.createElement("option",{value:'{"method":"get_config"}'},"Get config"),_react2.default.createElement("option",{value:'{"method":"get_version"}'},"Get version"),_react2.default.createElement("option",{value:'{"method":"get_connections"}'},"Get connections"),_react2.default.createElement("option",{value:'{"method":"get_radio"}'},"Get radio"),_react2.default.createElement("option",{value:'{"method":"get_queue_metadata"}'},"Get queue metadata"),_react2.default.createElement("option",{value:'{"method":"broadcast","data":{"method":"notification","params":{"notification":{"type":"info","title":"Testing","content":"This is my message"}}}}'},"Broadcast to all clients"),_react2.default.createElement("option",{value:'{"method":"send_message","data":{"method":"notification","params":{"notification":{"type":"info","title":"Testing","content":"This is my message"}}}}'},"Broadcast to one client"),_react2.default.createElement("option",{value:'{"method":"set_username","data":{"connection_id":"CONNECTION_ID_HERE","username":"NewUsername"}}'},"Change username"),_react2.default.createElement("option",{value:'{"method":"refresh_spotify_token"}'},"Refresh Spotify token"),_react2.default.createElement("option",{value:'{"method":"broadcast","data":{"method":"reload","params":{}}}'},"Forced reload for all connected clients"),_react2.default.createElement("option",{value:'{"method":"perform_upgrade"}'},"Perform upgrade (beta)")))),_react2.default.createElement("label",{className:"field"},_react2.default.createElement("div",{className:"name"},"Data"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("textarea",{onChange:function(e){return _this2.setState({pusher_data:e.target.value})},value:this.state.pusher_data}))),_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"}),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("button",{type:"submit",className:"button button--default"},"Send")))),_react2.default.createElement("h4",{className:"underline"},"Response"),_react2.default.createElement("pre",null,this.props.debug_response?JSON.stringify(this.props.debug_response,null,2):null)))}}]),Debug}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{connection_id:state.pusher.connection_id,access_token:state.spotify.access_token?state.spotify.access_token:"",log_actions:!!state.ui.log_actions&&state.ui.log_actions,log_pusher:!!state.ui.log_pusher&&state.ui.log_pusher,log_mopidy:!!state.ui.log_mopidy&&state.ui.log_mopidy,test_mode:!!state.ui.test_mode&&state.ui.test_mode,debug_info:!!state.ui.debug_info&&state.ui.debug_info,debug_response:state.ui.debug_response}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Debug)},function(module,exports,__webpack_require__){"use strict";(function($){function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_reactRouterDom=__webpack_require__(29),_Link=__webpack_require__(7),_Header=(_interopRequireDefault(_Link),__webpack_require__(14)),_Header2=_interopRequireDefault(_Header),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_DropdownField=__webpack_require__(25),_DropdownField2=_interopRequireDefault(_DropdownField),_TrackList=__webpack_require__(19),_TrackList2=_interopRequireDefault(_TrackList),_ArtistGrid=__webpack_require__(34),_ArtistGrid2=_interopRequireDefault(_ArtistGrid),_AlbumGrid=__webpack_require__(38),_AlbumGrid2=_interopRequireDefault(_AlbumGrid),_PlaylistGrid=__webpack_require__(39),_PlaylistGrid2=_interopRequireDefault(_PlaylistGrid),_LazyLoadListener=__webpack_require__(21),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_SearchForm=__webpack_require__(200),_SearchForm2=_interopRequireDefault(_SearchForm),_URILink=__webpack_require__(18),_URILink2=_interopRequireDefault(_URILink),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions4),Search=function(_React$Component){function Search(props){_classCallCheck(this,Search);var _this=_possibleConstructorReturn(this,(Search.__proto__||Object.getPrototypeOf(Search)).call(this,props));return _this.state={type:"all",term:""},_this}return _inherits(Search,_React$Component),_createClass(Search,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Search"),$(document).find(".search-form input").focus(),this.digestUri()}},{key:"componentWillUnmount",value:function(){this.props.mopidyActions.clearSearchResults(),this.props.spotifyActions.clearSearchResults()}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.term===this.props.term&&nextProps.type===this.props.type||this.digestUri(nextProps),!this.props.mopidy_connected&&nextProps.mopidy_connected&&nextProps.uri_schemes_search_enabled&&(this.search(this.state.type,this.state.term,"mopidy"),nextProps.uri_schemes_search_enabled.includes("spotify:")&&this.search(this.state.type,this.state.term,"spotify"))}},{key:"digestUri",value:function(){var props=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;props.type&&props.term&&(this.setState({type:props.type,term:props.term}),this.search(props.type,props.term))}},{key:"search",value:function(){var type=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state.type,term=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state.term,provider=arguments[2];this.props.uiActions.setWindowTitle("Search: "+term),this.props.mopidyActions.clearSearchResults(),this.props.spotifyActions.clearSearchResults(),type&&term&&(("mopidy"==provider||this.props.mopidy_connected&&this.props.uri_schemes_search_enabled)&&this.props.mopidyActions.getSearchResults(type,term),("spotify"==provider||this.props.mopidy_connected&&this.props.uri_schemes_search_enabled&&this.props.uri_schemes_search_enabled.includes("spotify:"))&&this.props.spotifyActions.getSearchResults(type,term))}},{key:"loadMore",value:function(type){alert("load more: "+type)}},{key:"setSort",value:function(value){var reverse=!1;this.props.sort==value&&(reverse=!this.props.sort_reverse);var data={search_results_sort_reverse:reverse,search_results_sort:value};this.props.uiActions.set(data)}},{key:"renderArtists",value:function(artists,spotify_search_enabled){var _this2=this;return _react2.default.createElement("div",null,_react2.default.createElement("h4",null,_react2.default.createElement(_URILink2.default,{type:"search",uri:"search:all:"+this.state.term},"Search"),"  ",_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:"angle-right"}),"  Artists"),_react2.default.createElement("section",{className:"grid-wrapper"},_react2.default.createElement(_ArtistGrid2.default,{artists:artists,show_source_icon:!0}),_react2.default.createElement(_LazyLoadListener2.default,{enabled:this.props.artists_more&&spotify_search_enabled,loadMore:function(){return _this2.loadMore("artists")}})))}},{key:"renderAlbums",value:function(albums,spotify_search_enabled){var _this3=this;return _react2.default.createElement("div",null,_react2.default.createElement("h4",null,_react2.default.createElement(_URILink2.default,{type:"search",uri:"search:all:"+this.state.term},"Search"),"  ",_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:"angle-right"}),"  Albums"),_react2.default.createElement("section",{className:"grid-wrapper"},_react2.default.createElement(_AlbumGrid2.default,{albums:albums,show_source_icon:!0}),_react2.default.createElement(_LazyLoadListener2.default,{enabled:this.props.albums_more&&spotify_search_enabled,loadMore:function(){return _this3.loadMore("albums")}})))}},{key:"renderPlaylists",value:function(playlists,spotify_search_enabled){var _this4=this;return _react2.default.createElement("div",null,_react2.default.createElement("h4",null,_react2.default.createElement(_URILink2.default,{type:"search",uri:"search:all:"+this.state.term},"Search"),"  ",_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:"angle-right"}),"  Playlists"),_react2.default.createElement("section",{className:"grid-wrapper"},_react2.default.createElement(_PlaylistGrid2.default,{playlists:playlists,show_source_icon:!0}),_react2.default.createElement(_LazyLoadListener2.default,{enabled:this.props.playlists_more&&spotify_search_enabled,loadMore:function(){return _this4.loadMore("playlists")}})))}},{key:"renderTracks",value:function(tracks,spotify_search_enabled){var _this5=this;return _react2.default.createElement("div",null,_react2.default.createElement("h4",null,_react2.default.createElement(_URILink2.default,{type:"search",uri:"search:all:"+this.state.term},"Search"),"  ",_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:"angle-right"}),"  Tracks"),_react2.default.createElement("section",{className:"list-wrapper"},_react2.default.createElement(_TrackList2.default,{tracks:tracks,uri:"iris:search:"+this.state.type+":"+this.state.term,show_source_icon:!0}),_react2.default.createElement(_LazyLoadListener2.default,{enabled:this.props.tracks_more&&spotify_search_enabled,loadMore:function(){return _this5.loadMore("tracks")}})))}},{key:"renderAll",value:function(artists,albums,playlists,tracks,spotify_search_enabled){var _this6=this;if(artists.length>0)var artists_section=_react2.default.createElement("section",null,_react2.default.createElement("div",{className:"inner"},_react2.default.createElement(_URILink2.default,{type:"search",uri:"search:artist:"+this.state.term},_react2.default.createElement("h4",null,"Artists")),_react2.default.createElement(_ArtistGrid2.default,{mini:!0,show_source_icon:!0,artists:artists.slice(0,6)}),artists.length>=6?_react2.default.createElement(_URILink2.default,{type:"search",uri:"search:artist:"+this.state.term,className:"button button--default"},"All artists (",artists.length,")"):null));else var artists_section=null;if(albums.length>0)var albums_section=_react2.default.createElement("section",null,_react2.default.createElement("div",{className:"inner"},_react2.default.createElement(_URILink2.default,{type:"search",uri:"search:album:"+this.state.term},_react2.default.createElement("h4",null,"Albums")),_react2.default.createElement(_AlbumGrid2.default,{mini:!0,show_source_icon:!0,albums:albums.slice(0,6)}),albums.length>=6?_react2.default.createElement(_URILink2.default,{type:"search",uri:"search:album:"+this.state.term,className:"button button--default"},"All albums (",albums.length,")"):null));else var albums_section=null;if(playlists.length>0)var playlists_section=_react2.default.createElement("section",null,_react2.default.createElement("div",{className:"inner"},_react2.default.createElement(_URILink2.default,{type:"search",uri:"search:playlist:"+this.state.term},_react2.default.createElement("h4",null,"Playlists")),_react2.default.createElement(_PlaylistGrid2.default,{mini:!0,show_source_icon:!0,playlists:playlists.slice(0,6)}),playlists.length>=6?_react2.default.createElement(_URILink2.default,{type:"search",uri:"search:playlist:"+this.state.term,className:"button button--default"},"All playlists (",playlists.length,")"):null));else var playlists_section=null;if(tracks.length>0)var tracks_section=_react2.default.createElement("section",{className:"list-wrapper"},_react2.default.createElement(_TrackList2.default,{tracks:tracks,uri:"iris:search:"+this.state.type+":"+this.state.term,show_source_icon:!0}),_react2.default.createElement(_LazyLoadListener2.default,{loading:this.props.tracks_more&&spotify_search_enabled,loadMore:function(){return _this6.loadMore("tracks")}}));else var tracks_section=null;return _react2.default.createElement("div",null,_react2.default.createElement("div",{className:"search-result-sections cf"},artists_section,albums_section,playlists_section),tracks_section)}},{key:"render",value:function(){for(var _this7=this,sort_options=[{value:"followers",label:"Popularity"},{value:"name",label:"Name"},{value:"artists.name",label:"Artist"},{value:"duration",label:"Duration"},{value:"uri",label:"Source"}],provider_options=[],i=0;i<this.props.uri_schemes.length;i++)provider_options.push({value:this.props.uri_schemes[i],label:helpers.titleCase(this.props.uri_schemes[i].replace(":","").replace("+"," "))});var spotify_search_enabled=this.props.search_settings&&this.props.search_settings.spotify,sort=this.props.sort,sort_reverse=this.props.sort_reverse,sort_map=null;switch(this.props.sort){case"uri":sort_map=this.props.uri_schemes_priority;break;case"followers":sort_reverse=!sort_reverse}var artists=[];this.props.mopidy_search_results.artists&&(artists=[].concat(_toConsumableArray(artists),_toConsumableArray(helpers.getIndexedRecords(this.props.artists,this.props.mopidy_search_results.artists)))),this.props.spotify_search_results.artists&&(artists=[].concat(_toConsumableArray(artists),_toConsumableArray(helpers.getIndexedRecords(this.props.artists,this.props.spotify_search_results.artists)))),artists=helpers.sortItems(artists,sort,sort_reverse,sort_map);var albums=[];this.props.mopidy_search_results.albums&&(albums=[].concat(_toConsumableArray(albums),_toConsumableArray(helpers.getIndexedRecords(this.props.albums,this.props.mopidy_search_results.albums)))),this.props.spotify_search_results.albums&&(albums=[].concat(_toConsumableArray(albums),_toConsumableArray(helpers.getIndexedRecords(this.props.albums,this.props.spotify_search_results.albums)))),albums=helpers.sortItems(albums,sort,sort_reverse,sort_map);var playlists=[];this.props.mopidy_search_results.playlists&&(playlists=[].concat(_toConsumableArray(playlists),_toConsumableArray(helpers.getIndexedRecords(this.props.playlists,this.props.mopidy_search_results.playlists)))),this.props.spotify_search_results.playlists&&(playlists=[].concat(_toConsumableArray(playlists),_toConsumableArray(helpers.getIndexedRecords(this.props.playlists,this.props.spotify_search_results.playlists)))),playlists=helpers.sortItems(playlists,sort,sort_reverse,sort_map);var tracks=[];this.props.mopidy_search_results.tracks&&(tracks=[].concat(_toConsumableArray(tracks),_toConsumableArray(this.props.mopidy_search_results.tracks))),this.props.spotify_search_results.tracks&&(tracks=[].concat(_toConsumableArray(tracks),_toConsumableArray(this.props.spotify_search_results.tracks))),tracks=helpers.sortItems(tracks,"followers"==sort?"popularity":sort,sort_reverse,sort_map);var options=_react2.default.createElement("span",null,_react2.default.createElement(_DropdownField2.default,{icon:"sort",name:"Sort",value:this.props.sort,options:sort_options,selected_icon:this.props.sort_reverse?"keyboard_arrow_up":"keyboard_arrow_down",handleChange:function(value){_this7.setSort(value),_this7.props.uiActions.hideContextMenu()}}),_react2.default.createElement(_DropdownField2.default,{icon:"cloud",name:"Sources",value:this.props.uri_schemes_search_enabled,options:provider_options,handleChange:function(value){_this7.props.uiActions.set({uri_schemes_search_enabled:value}),_this7.props.uiActions.hideContextMenu()}}));return _react2.default.createElement("div",{className:"view search-view"},_react2.default.createElement(_Header2.default,{options:options,uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"search",type:"material"})),_react2.default.createElement(_SearchForm2.default,{history:this.props.history,term:this.state.term,onBlur:function(term){return _this7.setState({term:term})},onSubmit:function(term){return _this7.search(_this7.state.type,term)}}),_react2.default.createElement("div",{className:"content-wrapper"},_react2.default.createElement(_reactRouterDom.Switch,null,_react2.default.createElement(_reactRouterDom.Route,{path:"/search/artist/:term"},this.renderArtists(artists,spotify_search_enabled)),_react2.default.createElement(_reactRouterDom.Route,{path:"/search/album/:term"},this.renderAlbums(albums,spotify_search_enabled)),_react2.default.createElement(_reactRouterDom.Route,{path:"/search/playlist/:term"},this.renderPlaylists(playlists,spotify_search_enabled)),_react2.default.createElement(_reactRouterDom.Route,{path:"/search/track/:term"},this.renderTracks(tracks,spotify_search_enabled)),_react2.default.createElement(_reactRouterDom.Route,{path:"/search"},this.renderAll(artists,albums,playlists,tracks,spotify_search_enabled)))))}}]),Search}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{type:ownProps.match.params.type,term:ownProps.match.params.term,mopidy_connected:state.mopidy.connected,albums:state.core.albums?state.core.albums:[],artists:state.core.artists?state.core.artists:[],playlists:state.core.playlists?state.core.playlists:[],tracks:state.core.tracks?state.core.tracks:[],uri_schemes_search_enabled:state.ui.uri_schemes_search_enabled?state.ui.uri_schemes_search_enabled:[],uri_schemes_priority:state.ui.uri_schemes_priority?state.ui.uri_schemes_priority:[],uri_schemes:state.mopidy.uri_schemes?state.mopidy.uri_schemes:[],mopidy_search_results:state.mopidy.search_results?state.mopidy.search_results:{},spotify_search_results:state.spotify.search_results?state.spotify.search_results:{},sort:state.ui.search_results_sort?state.ui.search_results_sort:"followers.total",sort_reverse:!!state.ui.search_results_sort_reverse}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Search)}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),SearchForm=function(_React$Component){function SearchForm(props){_classCallCheck(this,SearchForm);var _this=_possibleConstructorReturn(this,(SearchForm.__proto__||Object.getPrototypeOf(SearchForm)).call(this,props));return _this.state={term:_this.props.term},_this}return _inherits(SearchForm,_React$Component),_createClass(SearchForm,[{key:"handleSubmit",value:function(e){switch(e.preventDefault(),helpers.uriType(this.state.term)){case"album":this.props.history.push("/album/"+encodeURIComponent(this.state.term));break;case"artist":this.props.history.push("/artist/"+encodeURIComponent(this.state.term));break;case"playlist":this.props.history.push("/playlist/"+encodeURIComponent(this.state.term));break;case"track":this.props.history.push("/track/"+encodeURIComponent(this.state.term));break;default:this.props.onSubmit(this.state.term)}return!1}},{key:"render",value:function(){var _this2=this;return _react2.default.createElement("form",{className:"search-form",onSubmit:function(e){return _this2.handleSubmit(e)}},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"text",placeholder:this.props.term?this.props.term:"Search...",onChange:function(e){return _this2.setState({term:e.target.value})},onBlur:function(e){return _this2.props.onBlur(_this2.state.term)},value:this.state.term})))}}]),SearchForm}(_react2.default.Component),mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapDispatchToProps)(SearchForm)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_reactRouterDom=__webpack_require__(29),_ConfirmationButton=__webpack_require__(87),_ConfirmationButton2=_interopRequireDefault(_ConfirmationButton),_PusherConnectionList=__webpack_require__(202),_PusherConnectionList2=_interopRequireDefault(_PusherConnectionList),_SourcesPriority=__webpack_require__(203),_SourcesPriority2=_interopRequireDefault(_SourcesPriority),_Header=__webpack_require__(14),_Header2=_interopRequireDefault(_Header),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_Thumbnail=__webpack_require__(10),_URILink=(_interopRequireDefault(_Thumbnail),__webpack_require__(18)),_Services=(_interopRequireDefault(_URILink),__webpack_require__(207)),_Services2=_interopRequireDefault(_Services),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(16),lastfmActions=_interopRequireWildcard(_actions5),_actions6=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions6),Settings=function(_React$Component){function Settings(props){_classCallCheck(this,Settings);var _this=_possibleConstructorReturn(this,(Settings.__proto__||Object.getPrototypeOf(Settings)).call(this,props));return _this.state={mopidy_host:_this.props.mopidy.host,mopidy_port:_this.props.mopidy.port,mopidy_library_artists_uri:_this.props.mopidy.library_artists_uri,mopidy_library_albums_uri:_this.props.mopidy.library_albums_uri,pusher_username:_this.props.pusher.username,input_in_focus:null},_this}return _inherits(Settings,_React$Component),_createClass(Settings,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Settings")}},{key:"componentWillReceiveProps",value:function(nextProps){var changed=!1,state=this.state;nextProps.pusher.username!=this.state.pusher_username&&"pusher_username"!=this.state.input_in_focus&&(state.pusher_username=nextProps.pusher.username,changed=!0),changed&&this.setState(state)}},{key:"resetAllSettings",value:function(){return localStorage.clear(),window.location="#",window.location.reload(!0),!1}},{key:"setConfig",value:function(e){return this.setState({input_in_focus:null}),e.preventDefault(),this.props.mopidyActions.set({host:this.state.mopidy_host,port:this.state.mopidy_port}),window.location.reload(!0),!1}},{key:"handleBlur",value:function(service,name,value){this.setState({input_in_focus:null});var data={};switch(data[name]=value,this.props[service+"Actions"].set(data),name){case"library_albums_uri":this.props.mopidyActions.clearLibraryAlbums();break;case"library_artists_uri":this.props.mopidyActions.clearLibraryArtists()}}},{key:"handleUsernameChange",value:function(username){this.setState({pusher_username:username.replace(/\W/g,"")})}},{key:"handleUsernameBlur",value:function(e){this.setState({input_in_focus:null}),this.props.pusherActions.setUsername(this.state.pusher_username)}},{key:"renderApplyButton",value:function(){return this.props.mopidy.host==this.state.mopidy_host&&this.props.mopidy.port==this.state.mopidy_port?null:_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"}),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("button",{type:"submit",className:"button button--secondary"},"Apply and reload")))}},{key:"renderServerStatus",value:function(){var colour="grey",icon="help",status="Unknown",className=null;return this.props.mopidy.connecting||this.props.pusher.connecting?(icon="autorenew",status="Connecting...",className="icon--spin"):this.props.mopidy.connected&&this.props.pusher.connected?this.props.mopidy.connected&&this.props.pusher.connected&&(colour="green",icon="check",status="Connected"):(colour="red",icon="close",status="Disconnected"),_react2.default.createElement("span",{className:colour+"-text"},_react2.default.createElement(_Icon2.default,{className:className,name:icon}),status)}},{key:"renderCommands",value:function(){var _this2=this,commands=[];if(this.props.pusher.commands)for(var id in this.props.pusher.commands)if(this.props.pusher.commands.hasOwnProperty(id)){var command=Object.assign({},this.props.pusher.commands[id]);try{command.command=JSON.parse(command.command)}catch(error){command.command=null}commands.push(command)}return commands.length<=0?null:_react2.default.createElement("div",{className:"list commands-setup"},commands.map(function(command){return _react2.default.createElement("div",{className:"list__item commands-setup__item list__item--no-interaction",key:command.id},_react2.default.createElement("div",{className:"col col--w90"},_react2.default.createElement("div",{className:"commands__item commands__item--interactive",onClick:function(e){return _this2.props.pusherActions.sendCommand(command.id,!0)}},_react2.default.createElement(_Icon2.default,{className:"commands__item__icon",name:command.icon}),_react2.default.createElement("span",{className:command.colour+"-background commands__item__background"})),_react2.default.createElement("div",{className:"commands-setup__item__url commands__item__url"},command.command&&command.command.url?command.command.url:"-")),_react2.default.createElement("div",{className:"commands-setup__item__actions"},_react2.default.createElement(_reactRouterDom.Link,{className:"commands-setup__item__edit-button action",to:"/edit-command/"+command.id},_react2.default.createElement(_Icon2.default,{name:"edit"}))))}))}},{key:"render",value:function(){var _this3=this,options=_react2.default.createElement("span",null,_react2.default.createElement("a",{className:"button button--default button--no-hover",onClick:function(e){return _this3.props.history.push("/settings/debug")}},_react2.default.createElement(_Icon2.default,{name:"code"}),"Debug"),_react2.default.createElement("a",{className:"button button--default button--no-hover",href:"https://github.com/jaedb/Iris/wiki",target:"_blank"},_react2.default.createElement(_Icon2.default,{name:"help"}),"Help"));return _react2.default.createElement("div",{className:"view settings-view"},_react2.default.createElement(_Header2.default,{options:options,uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"settings",type:"material"}),"Settings"),_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement("h4",{className:"underline"},"Server",_react2.default.createElement("a",{name:"server"})),_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"},"Status"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("div",{className:"text"},this.renderServerStatus()))),_react2.default.createElement("label",{className:"field"},_react2.default.createElement("div",{className:"name"},"Username"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this3.handleUsernameChange(e.target.value)},onFocus:function(e){return _this3.setState({input_in_focus:"pusher_username"})},onBlur:function(e){return _this3.handleUsernameBlur(e)},value:this.state.pusher_username}),_react2.default.createElement("div",{className:"description"},"A non-unique string used to identify this client (no special characters)"))),_react2.default.createElement("form",{onSubmit:function(e){return _this3.setConfig(e)}},_react2.default.createElement("label",{className:"field"},_react2.default.createElement("div",{className:"name"},"Host"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this3.setState({mopidy_host:e.target.value})},onFocus:function(e){return _this3.setState({input_in_focus:"mopidy_host"})},onBlur:function(e){return _this3.setState({input_in_focus:null})},value:this.state.mopidy_host}))),_react2.default.createElement("label",{className:"field"},_react2.default.createElement("div",{className:"name"},"Port"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this3.setState({mopidy_port:e.target.value})},onFocus:function(e){return _this3.setState({input_in_focus:"mopidy_port"})},onBlur:function(e){return _this3.setState({input_in_focus:null})},value:this.state.mopidy_port}))),this.renderApplyButton()),_react2.default.createElement("h4",{className:"underline"},"Services",_react2.default.createElement("a",{name:"services"})),_react2.default.createElement(_reactRouterDom.Route,{path:"/settings/:service?",component:_Services2.default}),_react2.default.createElement("h4",{className:"underline"},"Interface",_react2.default.createElement("a",{name:"interface"})),_react2.default.createElement("div",{className:"field radio"},_react2.default.createElement("div",{className:"name"},"Theme"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"radio",name:"theme",value:"dark",checked:"dark"==this.props.ui.theme,onChange:function(e){return _this3.props.uiActions.set({theme:e.target.value})}}),_react2.default.createElement("span",{className:"label"},"Dark")),_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"radio",name:"theme",value:"light",checked:"light"==this.props.ui.theme,onChange:function(e){return _this3.props.uiActions.set({theme:e.target.value})}}),_react2.default.createElement("span",{className:"label"},"Light")))),_react2.default.createElement("div",{className:"field checkbox"},_react2.default.createElement("div",{className:"name"},"Behavior"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"log_actions",checked:this.props.ui.clear_tracklist_on_play,onChange:function(e){return _this3.props.uiActions.set({clear_tracklist_on_play:!_this3.props.ui.clear_tracklist_on_play})}}),_react2.default.createElement("span",{className:"label tooltip"},"Clear tracklist on play of URI(s)",_react2.default.createElement("span",{className:"tooltip__content"},"Playing one or more URIs will clear the current play queue first"))),_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"shortkeys_enabled",checked:this.props.ui.shortkeys_enabled,onChange:function(e){return _this3.props.uiActions.set({shortkeys_enabled:!_this3.props.ui.shortkeys_enabled})}}),_react2.default.createElement("span",{className:"label"},"Enable shortkeys")),_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"smooth_scrolling_enabled",checked:this.props.ui.smooth_scrolling_enabled,onChange:function(e){return _this3.props.uiActions.set({smooth_scrolling_enabled:!_this3.props.ui.smooth_scrolling_enabled})}}),_react2.default.createElement("span",{className:"label"},"Enable smooth scrolling")))),_react2.default.createElement("div",{className:"field sources-priority"},_react2.default.createElement("div",{className:"name"},"Sources priority"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement(_SourcesPriority2.default,{uri_schemes:this.props.mopidy.uri_schemes?this.props.mopidy.uri_schemes:[],uri_schemes_priority:this.props.ui.uri_schemes_priority?this.props.ui.uri_schemes_priority:[],uiActions:this.props.uiActions}),_react2.default.createElement("div",{className:"description"},"Drag-and-drop to prioritize search providers and results"))),helpers.isHosted()?null:_react2.default.createElement("div",{className:"field checkbox"},_react2.default.createElement("div",{className:"name"},"Reporting"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"allow_reporting",checked:this.props.ui.allow_reporting,onChange:function(e){return _this3.props.uiActions.set({allow_reporting:!_this3.props.ui.allow_reporting})}}),_react2.default.createElement("span",{className:"label"},"Allow reporting of anonymous usage statistics")),_react2.default.createElement("div",{className:"description"},"This helps identify errors and potential features that make Iris better for everyone. See ",_react2.default.createElement("a",{href:"https://github.com/jaedb/Iris/wiki/Terms-of-use#privacy-policy",target:"_blank"},"privacy policy"),"."))),_react2.default.createElement("div",{className:"field commands-setup",id:"commands-setup"},_react2.default.createElement("div",{className:"name"},"Commands"),_react2.default.createElement("div",{className:"input"},this.renderCommands(),_react2.default.createElement(_reactRouterDom.Link,{to:"/edit-command",className:"button button--default"},"Add new"))),_react2.default.createElement("h4",{className:"underline"},"Advanced",_react2.default.createElement("a",{name:"advanced"})),_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"},"Artist library URI"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",value:this.state.mopidy_library_artists_uri,onChange:function(e){return _this3.setState({mopidy_library_artists_uri:e.target.value})},onBlur:function(e){return _this3.handleBlur("mopidy","library_artists_uri",e.target.value)}}),_react2.default.createElement("div",{className:"description"},"URI used for collecting library artists"))),_react2.default.createElement("label",{className:"field"},_react2.default.createElement("div",{className:"name"},"Album library URI"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",value:this.state.mopidy_library_albums_uri,onChange:function(e){return _this3.setState({mopidy_library_albums_uri:e.target.value})},onBlur:function(e){return _this3.handleBlur("mopidy","library_albums_uri",e.target.value)}}),_react2.default.createElement("div",{className:"description"},"URI used for collecting library albums"))),_react2.default.createElement("div",{className:"field pusher-connections"},_react2.default.createElement("div",{className:"name"},"Connections"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("div",{className:"text"},_react2.default.createElement(_PusherConnectionList2.default,null)))),_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"},"Version"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("span",{className:"text"},this.props.pusher.version.current," installed ",this.props.pusher.version.upgrade_available?_react2.default.createElement("span",{className:"flag dark"},_react2.default.createElement(_Icon2.default,{name:"cloud_download",className:"blue-text"}),"  Upgrade available"):_react2.default.createElement("span",{className:"flag dark"},_react2.default.createElement(_Icon2.default,{name:"check",className:"green-text"}),"  Up-to-date")))),_react2.default.createElement("div",{className:"field"},_react2.default.createElement("button",{className:"button button--default",onClick:function(e){return _this3.props.pusherActions.localScan()}},"Run local scan"),_react2.default.createElement(_reactRouterDom.Link,{className:"button button--default",to:"/share-configuration"},"Share configuration")),_react2.default.createElement("div",{className:"field"},this.props.pusher.version.upgrade_available?_react2.default.createElement("button",{className:"button button--secondary",onClick:function(e){return _this3.props.pusherActions.upgrade()}},"Upgrade to ",this.props.pusher.version.latest):null,_react2.default.createElement("button",{className:"button button--destructive"+(this.props.mopidy.restarting?" button--working":""),onClick:function(e){return _this3.props.pusherActions.restart()}},"Restart server"),_react2.default.createElement(_ConfirmationButton2.default,{className:"button--destructive",content:"Reset all settings",confirmingContent:"Are you sure?",onConfirm:function(){return _this3.resetAllSettings()}})),_react2.default.createElement("h4",{className:"underline"},"About",_react2.default.createElement("a",{name:"about"})),_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",null,_react2.default.createElement("em",null,_react2.default.createElement("a",{href:"https://github.com/jaedb/Iris",target:"_blank"},"Iris"))," is an open-source project by ",_react2.default.createElement("a",{href:"https://github.com/jaedb",target:"_blank"},"James Barnsley"),". It is provided free and with absolutely no warranty. If you paid someone for this software, please let me know."),_react2.default.createElement("br",null),_react2.default.createElement("br",null),_react2.default.createElement("div",null,_react2.default.createElement("a",{className:"button button--default",href:"https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=james%40barnsley%2enz&lc=NZ&item_name=James%20Barnsley&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted",target:"_blank"},_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:"paypal"})," Donate"),_react2.default.createElement("a",{className:"button button--default",href:"https://github.com/jaedb/Iris",target:"_blank"},_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:"github"})," GitHub"),_react2.default.createElement("a",{className:"button button--default",href:"http://creativecommons.org/licenses/by-nc/4.0/",target:"_blank"},_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:"creative-commons"})," Licence")))))}}]),Settings}(_react2.default.Component),mapStateToProps=function(state,ownProps){return state},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),lastfmActions:(0,_redux.bindActionCreators)(lastfmActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Settings)},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_actions=__webpack_require__(12),pusherActions=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_actions),PusherConnectionList=function(_React$Component){function PusherConnectionList(props){return _classCallCheck(this,PusherConnectionList),_possibleConstructorReturn(this,(PusherConnectionList.__proto__||Object.getPrototypeOf(PusherConnectionList)).call(this,props))}return _inherits(PusherConnectionList,_React$Component),_createClass(PusherConnectionList,[{key:"componentDidMount",value:function(){this.props.connected&&this.props.pusherActions.getConnections()}},{key:"componentWillReceiveProps",value:function(newProps){!this.props.connected&&newProps.connected&&this.props.pusherActions.getConnections()}},{key:"render",value:function(){var _this2=this;if(!this.props.connected)return _react2.default.createElement("div",{className:"pusher-connection-list mid_grey-text"},"Not connected");var connections=[];for(var connection_id in this.props.connections)this.props.connections.hasOwnProperty(connection_id)&&connections.push(this.props.connections[connection_id]);return connections.length<=0?_react2.default.createElement("div",{className:"pusher-connection-list mid_grey-text"},"No connections"):_react2.default.createElement("div",{className:"pusher-connection-list"},connections.map(function(connection){var is_me=!1;return connection.connection_id==_this2.props.connection_id&&(is_me=!0),_react2.default.createElement("div",{className:is_me?"connection cf me":"connection cf",key:connection.connection_id},_react2.default.createElement("div",{className:"col col--w30"},connection.username," ",is_me?_react2.default.createElement("span",null,"(you)"):null),_react2.default.createElement("div",{className:"col col--w70"},connection.ip,_react2.default.createElement("span",{className:"mid_grey-text"}," (",connection.connection_id,")")))}))}}]),PusherConnectionList}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{connected:state.pusher.connected,connection_id:state.pusher.connection_id,connections:state.pusher.connections}},mapDispatchToProps=function(dispatch){return{pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(PusherConnectionList)},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactSortablejs=__webpack_require__(204),_reactSortablejs2=_interopRequireDefault(_reactSortablejs),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers),SourcesPriority=function(_React$Component){function SourcesPriority(props){return _classCallCheck(this,SourcesPriority),_possibleConstructorReturn(this,(SourcesPriority.__proto__||Object.getPrototypeOf(SourcesPriority)).call(this,props))}return _inherits(SourcesPriority,_React$Component),_createClass(SourcesPriority,[{key:"handleSort",value:function(order){this.props.uiActions.set({uri_schemes_priority:order})}},{key:"render",value:function(){for(var _this2=this,ordered_schemes=[],unordered_schemes=[],i=0;i<this.props.uri_schemes.length;i++){var index=this.props.uri_schemes_priority.indexOf(this.props.uri_schemes[i]);index>-1?ordered_schemes[index]=this.props.uri_schemes[i]:unordered_schemes.push(this.props.uri_schemes[i])}for(var i=0;i<unordered_schemes.length;i++)ordered_schemes.push(unordered_schemes[i]);return _react2.default.createElement(_reactSortablejs2.default,{className:"sources-priority-field",onChange:function(order,sortable,e){_this2.handleSort(order)}},ordered_schemes.map(function(scheme){var name=helpers.titleCase(scheme.replace(":","").replace("+"," "));return _react2.default.createElement("span",{className:"source flag grey",key:scheme,"data-id":scheme},_react2.default.createElement(_Icon2.default,{name:"drag_indicator"}),name)}))}}]),SourcesPriority}(_react2.default.Component);exports.default=SourcesPriority},function(module,exports,__webpack_require__){"use strict";var Sortable=__webpack_require__(205).default;module.exports=Sortable},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){return _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_extends.apply(this,arguments)}function _objectWithoutProperties(source,excluded){if(null==source)return{};var key,i,target=_objectWithoutPropertiesLoose(source,excluded);if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++)key=sourceSymbolKeys[i],excluded.indexOf(key)>=0||Object.prototype.propertyIsEnumerable.call(source,key)&&(target[key]=source[key])}return target}function _objectWithoutPropertiesLoose(source,excluded){if(null==source)return{};var key,i,target={},sourceKeys=Object.keys(source);for(i=0;i<sourceKeys.length;i++)key=sourceKeys[i],excluded.indexOf(key)>=0||(target[key]=source[key]);return target}function _typeof(obj){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj})(obj)}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{},ownKeys=Object.keys(source);"function"==typeof Object.getOwnPropertySymbols&&(ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))),ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}function _possibleConstructorReturn(self,call){return!call||"object"!==_typeof(call)&&"function"!=typeof call?_assertThisInitialized(self):call}function _getPrototypeOf(o){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(o){return o.__proto__||Object.getPrototypeOf(o)})(o)}function _assertThisInitialized(self){if(void 0===self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return self}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function");subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:!0,configurable:!0}}),superClass&&_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){return(_setPrototypeOf=Object.setPrototypeOf||function(o,p){return o.__proto__=p,o})(o,p)}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=_interopRequireDefault(__webpack_require__(11)),_react=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):{};desc.get||desc.set?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}return newObj.default=obj,newObj}(__webpack_require__(0)),_sortablejs=_interopRequireDefault(__webpack_require__(206)),store={nextSibling:null,activeComponent:null},Sortable=function(_Component){function Sortable(){var _getPrototypeOf2,_this;_classCallCheck(this,Sortable);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _this=_possibleConstructorReturn(this,(_getPrototypeOf2=_getPrototypeOf(Sortable)).call.apply(_getPrototypeOf2,[this].concat(args))),_defineProperty(_assertThisInitialized(_this),"sortable",null),_this}return _inherits(Sortable,_Component),_createClass(Sortable,[{key:"componentDidMount",value:function(){var _this2=this,options=_objectSpread({},this.props.options);["onChoose","onStart","onEnd","onAdd","onUpdate","onSort","onRemove","onFilter","onMove","onClone"].forEach(function(name){var eventHandler=options[name];options[name]=function(){for(var _len2=arguments.length,params=new Array(_len2),_key2=0;_key2<_len2;_key2++)params[_key2]=arguments[_key2];var evt=params[0];if("onChoose"===name)store.nextSibling=evt.item.nextElementSibling,store.activeComponent=_this2;else if(("onAdd"===name||"onUpdate"===name)&&_this2.props.onChange){var items=_this2.sortable.toArray(),remote=store.activeComponent,remoteItems=remote.sortable.toArray(),referenceNode=store.nextSibling&&null!==store.nextSibling.parentNode?store.nextSibling:null;if(evt.from.insertBefore(evt.item,referenceNode),remote!==_this2){var remoteOptions=remote.props.options||{};"object"===_typeof(remoteOptions.group)&&"clone"===remoteOptions.group.pull&&evt.item.parentNode.removeChild(evt.item),remote.props.onChange&&remote.props.onChange(remoteItems,remote.sortable,evt)}_this2.props.onChange&&_this2.props.onChange(items,_this2.sortable,evt)}if("move"===evt.type){var _evt=params[0],originalEvent=params[1];return!eventHandler||eventHandler(_evt,originalEvent)}setTimeout(function(){eventHandler&&eventHandler(evt)},0)}}),this.sortable=_sortablejs.default.create(this.node,options)}},{key:"shouldComponentUpdate",value:function(nextProps){return!!nextProps.onChange}},{key:"componentWillUnmount",value:function(){this.sortable&&(this.sortable.destroy(),this.sortable=null)}},{key:"render",value:function(){var _this3=this,_this$props=this.props,Component=_this$props.tag,props=(_this$props.options,_this$props.onChange,_objectWithoutProperties(_this$props,["tag","options","onChange"]));return _react.default.createElement(Component,_extends({},props,{ref:function(node){_this3.node=node}}))}}]),Sortable}(_react.Component);_defineProperty(Sortable,"propTypes",{options:_propTypes.default.object,onChange:_propTypes.default.func,tag:_propTypes.default.oneOfType([_propTypes.default.string,_propTypes.default.func]),style:_propTypes.default.object}),_defineProperty(Sortable,"defaultProps",{options:{},tag:"div",style:{}});var _default=Sortable;exports.default=_default},function(module,exports,__webpack_require__){(function(__webpack_provided_window_dot_jQuery){var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__;/**!
* Sortable
* @author RubaXa <trash@rubaxa.org>
* @author owenm <owen23355@gmail.com>
* @license MIT
*/
!function(factory){"use strict";__WEBPACK_AMD_DEFINE_FACTORY__=factory,void 0!==(__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof __WEBPACK_AMD_DEFINE_FACTORY__?__WEBPACK_AMD_DEFINE_FACTORY__.call(exports,__webpack_require__,exports,module):__WEBPACK_AMD_DEFINE_FACTORY__)&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(function(){"use strict";function Sortable(el,options){if(!el||!el.nodeType||1!==el.nodeType)throw"Sortable: `el` must be HTMLElement, not "+{}.toString.call(el);this.el=el,this.options=options=_extend({},options),el[expando]=this;var defaults={group:null,sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0,draggable:/[uo]l/i.test(el.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return _detectDirection(el,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(dataTransfer,dragEl){dataTransfer.setData("Text",dragEl.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,touchStartThreshold:parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Sortable.supportPointer&&("PointerEvent"in window||window.navigator&&"msPointerEnabled"in window.navigator),emptyInsertThreshold:5};for(var name in defaults)!(name in options)&&(options[name]=defaults[name]);_prepareGroup(options);for(var fn in this)"_"===fn.charAt(0)&&"function"==typeof this[fn]&&(this[fn]=this[fn].bind(this));this.nativeDraggable=!options.forceFallback&&supportDraggable,this.nativeDraggable&&(this.options.touchStartThreshold=1),options.supportPointer?_on(el,"pointerdown",this._onTapStart):(_on(el,"mousedown",this._onTapStart),_on(el,"touchstart",this._onTapStart)),this.nativeDraggable&&(_on(el,"dragover",this),_on(el,"dragenter",this)),sortables.push(this.el),options.store&&options.store.get&&this.sort(options.store.get(this)||[])}function _closest(el,selector,ctx,includeCTX){if(el){ctx=ctx||document;do{if(null!=selector&&(">"===selector[0]&&el.parentNode===ctx&&_matches(el,selector.substring(1))||_matches(el,selector))||includeCTX&&el===ctx)return el;if(el===ctx)break}while(el=_getParentOrHost(el))}return null}function _getParentOrHost(el){return el.host&&el!==document&&el.host.nodeType?el.host:el.parentNode}function _globalDragOver(evt){evt.dataTransfer&&(evt.dataTransfer.dropEffect="move"),evt.cancelable&&evt.preventDefault()}function _on(el,event,fn){el.addEventListener(event,fn,captureMode)}function _off(el,event,fn){el.removeEventListener(event,fn,captureMode)}function _toggleClass(el,name,state){if(el&&name)if(el.classList)el.classList[state?"add":"remove"](name);else{var className=(" "+el.className+" ").replace(R_SPACE," ").replace(" "+name+" "," ");el.className=(className+(state?" "+name:"")).replace(R_SPACE," ")}}function _css(el,prop,val){var style=el&&el.style;if(style){if(void 0===val)return document.defaultView&&document.defaultView.getComputedStyle?val=document.defaultView.getComputedStyle(el,""):el.currentStyle&&(val=el.currentStyle),void 0===prop?val:val[prop];prop in style||-1!==prop.indexOf("webkit")||(prop="-webkit-"+prop),style[prop]=val+("string"==typeof val?"":"px")}}function _matrix(el){var appliedTransforms="";do{var transform=_css(el,"transform");transform&&"none"!==transform&&(appliedTransforms=transform+" "+appliedTransforms)}while(el=el.parentNode);return window.DOMMatrix?new DOMMatrix(appliedTransforms):window.WebKitCSSMatrix?new WebKitCSSMatrix(appliedTransforms):window.CSSMatrix?new CSSMatrix(appliedTransforms):void 0}function _find(ctx,tagName,iterator){if(ctx){var list=ctx.getElementsByTagName(tagName),i=0,n=list.length;if(iterator)for(;i<n;i++)iterator(list[i],i);return list}return[]}function _dispatchEvent(sortable,rootEl,name,targetEl,toEl,fromEl,startIndex,newIndex,originalEvt){sortable=sortable||rootEl[expando];var evt,options=sortable.options,onName="on"+name.charAt(0).toUpperCase()+name.substr(1);!window.CustomEvent||IE11OrLess||Edge?(evt=document.createEvent("Event"),evt.initEvent(name,!0,!0)):evt=new CustomEvent(name,{bubbles:!0,cancelable:!0}),evt.to=toEl||rootEl,evt.from=fromEl||rootEl,evt.item=targetEl||rootEl,evt.clone=cloneEl,evt.oldIndex=startIndex,evt.newIndex=newIndex,evt.originalEvent=originalEvt,evt.pullMode=putSortable?putSortable.lastPutMode:void 0,rootEl&&rootEl.dispatchEvent(evt),options[onName]&&options[onName].call(sortable,evt)}function _onMove(fromEl,toEl,dragEl,dragRect,targetEl,targetRect,originalEvt,willInsertAfter){var evt,retVal,sortable=fromEl[expando],onMoveFn=sortable.options.onMove;return!window.CustomEvent||IE11OrLess||Edge?(evt=document.createEvent("Event"),evt.initEvent("move",!0,!0)):evt=new CustomEvent("move",{bubbles:!0,cancelable:!0}),evt.to=toEl,evt.from=fromEl,evt.dragged=dragEl,evt.draggedRect=dragRect,evt.related=targetEl||toEl,evt.relatedRect=targetRect||_getRect(toEl),evt.willInsertAfter=willInsertAfter,evt.originalEvent=originalEvt,fromEl.dispatchEvent(evt),onMoveFn&&(retVal=onMoveFn.call(sortable,evt,originalEvt)),retVal}function _disableDraggable(el){el.draggable=!1}function _unsilent(){_silent=!1}function _getChild(el,childNum,options){for(var currentChild=0,i=0,children=el.children;i<children.length;){if("none"!==children[i].style.display&&children[i]!==ghostEl&&children[i]!==dragEl&&_closest(children[i],options.draggable,el,!1)){if(currentChild===childNum)return children[i];currentChild++}i++}return null}function _lastChild(el){for(var last=el.lastElementChild;last&&(last===ghostEl||"none"===last.style.display);)last=last.previousElementSibling;return last||null}function _ghostIsLast(evt,axis,el){var elRect=_getRect(_lastChild(el)),mouseOnAxis="vertical"===axis?evt.clientY:evt.clientX,mouseOnOppAxis="vertical"===axis?evt.clientX:evt.clientY,targetS2="vertical"===axis?elRect.bottom:elRect.right,targetS1Opp="vertical"===axis?elRect.left:elRect.top,targetS2Opp="vertical"===axis?elRect.right:elRect.bottom;return"vertical"===axis?mouseOnOppAxis>targetS2Opp+10||mouseOnOppAxis<=targetS2Opp&&mouseOnAxis>targetS2&&mouseOnOppAxis>=targetS1Opp:mouseOnAxis>targetS2&&mouseOnOppAxis>targetS1Opp||mouseOnAxis<=targetS2&&mouseOnOppAxis>targetS2Opp+10}function _getSwapDirection(evt,target,axis,swapThreshold,invertedSwapThreshold,invertSwap,isLastTarget){var targetRect=_getRect(target),mouseOnAxis="vertical"===axis?evt.clientY:evt.clientX,targetLength="vertical"===axis?targetRect.height:targetRect.width,targetS1="vertical"===axis?targetRect.top:targetRect.left,targetS2="vertical"===axis?targetRect.bottom:targetRect.right,dragRect=_getRect(dragEl),invert=!1;if(!invertSwap)if(isLastTarget&&targetMoveDistance<targetLength*swapThreshold)if(!pastFirstInvertThresh&&(1===lastDirection?mouseOnAxis>targetS1+targetLength*invertedSwapThreshold/2:mouseOnAxis<targetS2-targetLength*invertedSwapThreshold/2)&&(pastFirstInvertThresh=!0),pastFirstInvertThresh)invert=!0;else{"vertical"===axis?dragRect.top:dragRect.left,"vertical"===axis?dragRect.bottom:dragRect.right;if(1===lastDirection?mouseOnAxis<targetS1+targetMoveDistance:mouseOnAxis>targetS2-targetMoveDistance)return-1*lastDirection}else if(mouseOnAxis>targetS1+targetLength*(1-swapThreshold)/2&&mouseOnAxis<targetS2-targetLength*(1-swapThreshold)/2)return _getInsertDirection(target);return invert=invert||invertSwap,invert&&(mouseOnAxis<targetS1+targetLength*invertedSwapThreshold/2||mouseOnAxis>targetS2-targetLength*invertedSwapThreshold/2)?mouseOnAxis>targetS1+targetLength/2?1:-1:0}function _getInsertDirection(target){return _index(dragEl)<_index(target)?1:-1}function _generateId(el){for(var str=el.tagName+el.className+el.src+el.href+el.textContent,i=str.length,sum=0;i--;)sum+=str.charCodeAt(i);return sum.toString(36)}function _index(el,selector){var index=0;if(!el||!el.parentNode)return-1;for(;el&&(el=el.previousElementSibling);)"TEMPLATE"!==el.nodeName.toUpperCase()&&el!==cloneEl&&index++;return index}function _matches(el,selector){if(el)try{if(el.matches)return el.matches(selector);if(el.msMatchesSelector)return el.msMatchesSelector(selector);if(el.webkitMatchesSelector)return el.webkitMatchesSelector(selector)}catch(_){return!1}return!1}function _throttle(callback,ms){return function(){if(!_throttleTimeout){var args=arguments,_this=this;_throttleTimeout=setTimeout(function(){1===args.length?callback.call(_this,args[0]):callback.apply(_this,args),_throttleTimeout=void 0},ms)}}}function _cancelThrottle(){clearTimeout(_throttleTimeout),_throttleTimeout=void 0}function _extend(dst,src){if(dst&&src)for(var key in src)src.hasOwnProperty(key)&&(dst[key]=src[key]);return dst}function _clone(el){return Polymer&&Polymer.dom?Polymer.dom(el).cloneNode(!0):$?$(el).clone(!0)[0]:el.cloneNode(!0)}function _saveInputCheckedState(root){savedInputChecked.length=0;for(var inputs=root.getElementsByTagName("input"),idx=inputs.length;idx--;){var el=inputs[idx];el.checked&&savedInputChecked.push(el)}}function _nextTick(fn){return setTimeout(fn,0)}function _cancelNextTick(id){return clearTimeout(id)}function _getRect(el,adjustForTransform,container,adjustForFixed){if(el.getBoundingClientRect||el===win){var elRect,top,left,bottom,right,height,width;if(el!==win&&el!==_getWindowScrollingElement()?(elRect=el.getBoundingClientRect(),top=elRect.top,left=elRect.left,bottom=elRect.bottom,right=elRect.right,height=elRect.height,width=elRect.width):(top=0,left=0,bottom=window.innerHeight,right=window.innerWidth,height=window.innerHeight,width=window.innerWidth),adjustForFixed&&el!==win&&(container=container||el.parentNode,!IE11OrLess))do{if(container&&container.getBoundingClientRect&&"none"!==_css(container,"transform")){var containerRect=container.getBoundingClientRect();top-=containerRect.top+parseInt(_css(container,"border-top-width")),left-=containerRect.left+parseInt(_css(container,"border-left-width")),bottom=top+elRect.height,right=left+elRect.width;break}}while(container=container.parentNode);if(adjustForTransform&&el!==win){var matrix=_matrix(container||el),scaleX=matrix&&matrix.a,scaleY=matrix&&matrix.d;matrix&&(top/=scaleY,left/=scaleX,width/=scaleX,height/=scaleY,bottom=top+height,right=left+width)}return{top:top,left:left,bottom:bottom,right:right,width:width,height:height}}}function _isScrolledPast(el,side){for(var parent=_getParentAutoScrollElement(el,!0),elSide=_getRect(el)[side];parent;){var parentSide=_getRect(parent)[side];if(!("top"===side||"left"===side?elSide>=parentSide:elSide<=parentSide))return parent;if(parent===_getWindowScrollingElement())break;parent=_getParentAutoScrollElement(parent,!1)}return!1}function _getRelativeScrollOffset(el){var offsetLeft=0,offsetTop=0,winScroller=_getWindowScrollingElement();if(el)do{var matrix=_matrix(el),scaleX=matrix.a,scaleY=matrix.d;offsetLeft+=el.scrollLeft*scaleX,offsetTop+=el.scrollTop*scaleY}while(el!==winScroller&&(el=el.parentNode));return[offsetLeft,offsetTop]}if("undefined"==typeof window||!window.document)return function(){throw new Error("Sortable.js requires a window with a document")};var dragEl,parentEl,ghostEl,cloneEl,rootEl,nextEl,lastDownEl,scrollEl,scrollParentEl,scrollCustomFn,oldIndex,newIndex,activeGroup,putSortable,pointerElemChangedInterval,lastPointerElemX,lastPointerElemY,tapEvt,touchEvt,moved,lastTarget,lastDirection,lastMode,targetMoveDistance,ghostRelativeParent,forRepaintDummy,realDragElRect,autoScrolls=[],scrolling=!1,awaitingDragStarted=!1,ignoreNextClick=!1,sortables=[],pastFirstInvertThresh=!1,isCircumstantialInvert=!1,ghostRelativeParentInitialScroll=[],R_SPACE=/\s+/g,expando="Sortable"+(new Date).getTime(),win=window,document=win.document,parseInt=win.parseInt,setTimeout=win.setTimeout,$=__webpack_provided_window_dot_jQuery||win.Zepto,Polymer=win.Polymer,captureMode={capture:!1,passive:!1},IE11OrLess=!!navigator.userAgent.match(/(?:Trident.*rv[ :]?11\.|msie|iemobile)/i),Edge=!!navigator.userAgent.match(/Edge/i),FireFox=!!navigator.userAgent.match(/firefox/i),Safari=!(!navigator.userAgent.match(/safari/i)||navigator.userAgent.match(/chrome/i)||navigator.userAgent.match(/android/i)),IOS=!!navigator.userAgent.match(/iP(ad|od|hone)/i),PositionGhostAbsolutely=IOS,CSSFloatProperty=Edge||IE11OrLess?"cssFloat":"float",supportDraggable="draggable"in document.createElement("div"),supportCssPointerEvents=function(){if(IE11OrLess)return!1;var el=document.createElement("x");return el.style.cssText="pointer-events:auto","auto"===el.style.pointerEvents}(),_silent=!1,_alignedSilent=!1,abs=Math.abs,min=Math.min,max=Math.max,savedInputChecked=[],_detectDirection=function(el,options){var elCSS=_css(el),elWidth=parseInt(elCSS.width)-parseInt(elCSS.paddingLeft)-parseInt(elCSS.paddingRight)-parseInt(elCSS.borderLeftWidth)-parseInt(elCSS.borderRightWidth),child1=_getChild(el,0,options),child2=_getChild(el,1,options),firstChildCSS=child1&&_css(child1),secondChildCSS=child2&&_css(child2),firstChildWidth=firstChildCSS&&parseInt(firstChildCSS.marginLeft)+parseInt(firstChildCSS.marginRight)+_getRect(child1).width,secondChildWidth=secondChildCSS&&parseInt(secondChildCSS.marginLeft)+parseInt(secondChildCSS.marginRight)+_getRect(child2).width;if("flex"===elCSS.display)return"column"===elCSS.flexDirection||"column-reverse"===elCSS.flexDirection?"vertical":"horizontal";if("grid"===elCSS.display)return elCSS.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(child1&&"none"!==firstChildCSS.float){var touchingSideChild2="left"===firstChildCSS.float?"left":"right";return!child2||"both"!==secondChildCSS.clear&&secondChildCSS.clear!==touchingSideChild2?"horizontal":"vertical"}return child1&&("block"===firstChildCSS.display||"flex"===firstChildCSS.display||"table"===firstChildCSS.display||"grid"===firstChildCSS.display||firstChildWidth>=elWidth&&"none"===elCSS[CSSFloatProperty]||child2&&"none"===elCSS[CSSFloatProperty]&&firstChildWidth+secondChildWidth>elWidth)?"vertical":"horizontal"},_detectNearestEmptySortable=function(x,y){for(var i=0;i<sortables.length;i++)if(!_lastChild(sortables[i])){var rect=_getRect(sortables[i]),threshold=sortables[i][expando].options.emptyInsertThreshold,insideHorizontally=x>=rect.left-threshold&&x<=rect.right+threshold,insideVertically=y>=rect.top-threshold&&y<=rect.bottom+threshold;if(insideHorizontally&&insideVertically)return sortables[i]}},_isClientInRowColumn=function(x,y,el,axis,options){var targetRect=_getRect(el),targetS1Opp="vertical"===axis?targetRect.left:targetRect.top,targetS2Opp="vertical"===axis?targetRect.right:targetRect.bottom,mouseOnOppAxis="vertical"===axis?x:y;return targetS1Opp<mouseOnOppAxis&&mouseOnOppAxis<targetS2Opp},_isElInRowColumn=function(el1,el2,axis){var el1Rect=el1===dragEl&&realDragElRect||_getRect(el1),el2Rect=el2===dragEl&&realDragElRect||_getRect(el2),el1S1Opp="vertical"===axis?el1Rect.left:el1Rect.top,el1S2Opp="vertical"===axis?el1Rect.right:el1Rect.bottom,el1OppLength="vertical"===axis?el1Rect.width:el1Rect.height,el2S1Opp="vertical"===axis?el2Rect.left:el2Rect.top,el2S2Opp="vertical"===axis?el2Rect.right:el2Rect.bottom,el2OppLength="vertical"===axis?el2Rect.width:el2Rect.height;return el1S1Opp===el2S1Opp||el1S2Opp===el2S2Opp||el1S1Opp+el1OppLength/2===el2S1Opp+el2OppLength/2},_getParentAutoScrollElement=function(el,includeSelf){if(!el||!el.getBoundingClientRect)return _getWindowScrollingElement();var elem=el,gotSelf=!1;do{if(elem.clientWidth<elem.scrollWidth||elem.clientHeight<elem.scrollHeight){var elemCSS=_css(elem);if(elem.clientWidth<elem.scrollWidth&&("auto"==elemCSS.overflowX||"scroll"==elemCSS.overflowX)||elem.clientHeight<elem.scrollHeight&&("auto"==elemCSS.overflowY||"scroll"==elemCSS.overflowY)){if(!elem||!elem.getBoundingClientRect||elem===document.body)return _getWindowScrollingElement();if(gotSelf||includeSelf)return elem;gotSelf=!0}}}while(elem=elem.parentNode);return _getWindowScrollingElement()},_getWindowScrollingElement=function(){return IE11OrLess?document.documentElement:document.scrollingElement},_scrollBy=function(el,x,y){el.scrollLeft+=x,el.scrollTop+=y},_autoScroll=_throttle(function(evt,options,rootEl,isFallback){if(options.scroll){var _this=rootEl?rootEl[expando]:window,sens=options.scrollSensitivity,speed=options.scrollSpeed,x=evt.clientX,y=evt.clientY,winScroller=_getWindowScrollingElement(),scrollThisInstance=!1;scrollParentEl!==rootEl&&(_clearAutoScrolls(),scrollEl=options.scroll,scrollCustomFn=options.scrollFn,!0===scrollEl&&(scrollEl=_getParentAutoScrollElement(rootEl,!0),scrollParentEl=scrollEl));var layersOut=0,currentParent=scrollEl;do{var scrollWidth,scrollHeight,css,vx,vy,canScrollX,canScrollY,scrollPosX,scrollPosY,el=currentParent,rect=_getRect(el),top=rect.top,bottom=rect.bottom,left=rect.left,right=rect.right,width=rect.width,height=rect.height;if(scrollWidth=el.scrollWidth,scrollHeight=el.scrollHeight,css=_css(el),scrollPosX=el.scrollLeft,scrollPosY=el.scrollTop,el===winScroller?(canScrollX=width<scrollWidth&&("auto"===css.overflowX||"scroll"===css.overflowX||"visible"===css.overflowX),canScrollY=height<scrollHeight&&("auto"===css.overflowY||"scroll"===css.overflowY||"visible"===css.overflowY)):(canScrollX=width<scrollWidth&&("auto"===css.overflowX||"scroll"===css.overflowX),canScrollY=height<scrollHeight&&("auto"===css.overflowY||"scroll"===css.overflowY)),vx=canScrollX&&(abs(right-x)<=sens&&scrollPosX+width<scrollWidth)-(abs(left-x)<=sens&&!!scrollPosX),vy=canScrollY&&(abs(bottom-y)<=sens&&scrollPosY+height<scrollHeight)-(abs(top-y)<=sens&&!!scrollPosY),!autoScrolls[layersOut])for(var i=0;i<=layersOut;i++)autoScrolls[i]||(autoScrolls[i]={});autoScrolls[layersOut].vx==vx&&autoScrolls[layersOut].vy==vy&&autoScrolls[layersOut].el===el||(autoScrolls[layersOut].el=el,autoScrolls[layersOut].vx=vx,autoScrolls[layersOut].vy=vy,clearInterval(autoScrolls[layersOut].pid),!el||0==vx&&0==vy||(scrollThisInstance=!0,autoScrolls[layersOut].pid=setInterval(function(){isFallback&&0===this.layer&&(Sortable.active._emulateDragOver(!0),Sortable.active._onTouchMove(touchEvt,!0));var scrollOffsetY=autoScrolls[this.layer].vy?autoScrolls[this.layer].vy*speed:0,scrollOffsetX=autoScrolls[this.layer].vx?autoScrolls[this.layer].vx*speed:0;"function"==typeof scrollCustomFn&&"continue"!==scrollCustomFn.call(_this,scrollOffsetX,scrollOffsetY,evt,touchEvt,autoScrolls[this.layer].el)||_scrollBy(autoScrolls[this.layer].el,scrollOffsetX,scrollOffsetY)}.bind({layer:layersOut}),24))),layersOut++}while(options.bubbleScroll&&currentParent!==winScroller&&(currentParent=_getParentAutoScrollElement(currentParent,!1)));scrolling=scrollThisInstance}},30),_clearAutoScrolls=function(){autoScrolls.forEach(function(autoScroll){clearInterval(autoScroll.pid)}),autoScrolls=[]},_prepareGroup=function(options){function toFn(value,pull){return function(to,from,dragEl,evt){var sameGroup=to.options.group.name&&from.options.group.name&&to.options.group.name===from.options.group.name;if(null==value&&(pull||sameGroup))return!0;if(null==value||!1===value)return!1;if(pull&&"clone"===value)return value;if("function"==typeof value)return toFn(value(to,from,dragEl,evt),pull)(to,from,dragEl,evt);var otherGroup=(pull?to:from).options.group.name;return!0===value||"string"==typeof value&&value===otherGroup||value.join&&value.indexOf(otherGroup)>-1}}var group={},originalGroup=options.group;originalGroup&&"object"==typeof originalGroup||(originalGroup={name:originalGroup}),group.name=originalGroup.name,group.checkPull=toFn(originalGroup.pull,!0),group.checkPut=toFn(originalGroup.put),group.revertClone=originalGroup.revertClone,options.group=group},_checkAlignment=function(evt){dragEl&&dragEl.parentNode&&dragEl.parentNode[expando]&&dragEl.parentNode[expando]._computeIsAligned(evt)},_isTrueParentSortable=function(el,target){for(var trueParent=target;!trueParent[expando];)trueParent=trueParent.parentNode;return el===trueParent},_artificalBubble=function(sortable,originalEvt,method){for(var nextParent=sortable.parentNode;nextParent&&!nextParent[expando];)nextParent=nextParent.parentNode;nextParent&&nextParent[expando][method](_extend(originalEvt,{artificialBubble:!0}))},_hideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&_css(ghostEl,"display","none")},_unhideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&_css(ghostEl,"display","")};document.addEventListener("click",function(evt){if(ignoreNextClick)return evt.preventDefault(),evt.stopPropagation&&evt.stopPropagation(),evt.stopImmediatePropagation&&evt.stopImmediatePropagation(),ignoreNextClick=!1,!1},!0);var nearestEmptyInsertDetectEvent=function(evt){if(evt=evt.touches?evt.touches[0]:evt,dragEl){var nearest=_detectNearestEmptySortable(evt.clientX,evt.clientY);nearest&&nearest[expando]._onDragOver({clientX:evt.clientX,clientY:evt.clientY,target:nearest,rootEl:nearest})}};_on(document,"dragover",nearestEmptyInsertDetectEvent),_on(document,"mousemove",nearestEmptyInsertDetectEvent),_on(document,"touchmove",nearestEmptyInsertDetectEvent),Sortable.prototype={constructor:Sortable,_computeIsAligned:function(evt){var target;if(ghostEl&&!supportCssPointerEvents?(_hideGhostForTarget(),target=document.elementFromPoint(evt.clientX,evt.clientY),_unhideGhostForTarget()):target=evt.target,target=_closest(target,this.options.draggable,this.el,!1),!_alignedSilent&&dragEl&&dragEl.parentNode===this.el){for(var children=this.el.children,i=0;i<children.length;i++)_closest(children[i],this.options.draggable,this.el,!1)&&children[i]!==target&&(children[i].sortableMouseAligned=_isClientInRowColumn(evt.clientX,evt.clientY,children[i],this._getDirection(evt,null),this.options));_closest(target,this.options.draggable,this.el,!0)||(lastTarget=null),_alignedSilent=!0,setTimeout(function(){_alignedSilent=!1},30)}},_getDirection:function(evt,target){return"function"==typeof this.options.direction?this.options.direction.call(this,evt,target,dragEl):this.options.direction},_onTapStart:function(evt){if(evt.cancelable){var startIndex,_this=this,el=this.el,options=this.options,preventOnFilter=options.preventOnFilter,type=evt.type,touch=evt.touches&&evt.touches[0],target=(touch||evt).target,originalTarget=evt.target.shadowRoot&&(evt.path&&evt.path[0]||evt.composedPath&&evt.composedPath()[0])||target,filter=options.filter;if(_saveInputCheckedState(el),(!IE11OrLess||evt.artificialBubble||_isTrueParentSortable(el,target))&&!dragEl&&!(/mousedown|pointerdown/.test(type)&&0!==evt.button||options.disabled||originalTarget.isContentEditable)){if(!(target=_closest(target,options.draggable,el,!1)))return void(IE11OrLess&&_artificalBubble(el,evt,"_onTapStart"));if(lastDownEl!==target){if(startIndex=_index(target,options.draggable),"function"==typeof filter){if(filter.call(this,evt,target,this))return _dispatchEvent(_this,originalTarget,"filter",target,el,el,startIndex),void(preventOnFilter&&evt.cancelable&&evt.preventDefault())}else if(filter&&(filter=filter.split(",").some(function(criteria){if(criteria=_closest(originalTarget,criteria.trim(),el,!1))return _dispatchEvent(_this,criteria,"filter",target,el,el,startIndex),!0})))return void(preventOnFilter&&evt.cancelable&&evt.preventDefault());options.handle&&!_closest(originalTarget,options.handle,el,!1)||this._prepareDragStart(evt,touch,target,startIndex)}}}},_handleAutoScroll:function(evt,fallback){if(dragEl&&this.options.scroll){var x=evt.clientX,y=evt.clientY,elem=document.elementFromPoint(x,y),_this=this;if(fallback||Edge||IE11OrLess||Safari){_autoScroll(evt,_this.options,elem,fallback);var ogElemScroller=_getParentAutoScrollElement(elem,!0);!scrolling||pointerElemChangedInterval&&x===lastPointerElemX&&y===lastPointerElemY||(pointerElemChangedInterval&&clearInterval(pointerElemChangedInterval),pointerElemChangedInterval=setInterval(function(){if(dragEl){var newElem=_getParentAutoScrollElement(document.elementFromPoint(x,y),!0);newElem!==ogElemScroller&&(ogElemScroller=newElem,_clearAutoScrolls(),_autoScroll(evt,_this.options,ogElemScroller,fallback))}},10),lastPointerElemX=x,lastPointerElemY=y)}else{if(!_this.options.bubbleScroll||_getParentAutoScrollElement(elem,!0)===_getWindowScrollingElement())return void _clearAutoScrolls();_autoScroll(evt,_this.options,_getParentAutoScrollElement(elem,!1),!1)}}},_prepareDragStart:function(evt,touch,target,startIndex){var dragStartFn,_this=this,el=_this.el,options=_this.options,ownerDocument=el.ownerDocument;target&&!dragEl&&target.parentNode===el&&(rootEl=el,dragEl=target,parentEl=dragEl.parentNode,nextEl=dragEl.nextSibling,lastDownEl=target,activeGroup=options.group,oldIndex=startIndex,tapEvt={target:dragEl,clientX:(touch||evt).clientX,clientY:(touch||evt).clientY},this._lastX=(touch||evt).clientX,this._lastY=(touch||evt).clientY,dragEl.style["will-change"]="all",dragEl.style.transition="",dragEl.style.transform="",dragStartFn=function(){_this._disableDelayedDragEvents(),!FireFox&&_this.nativeDraggable&&(dragEl.draggable=!0),_this._triggerDragStart(evt,touch),_dispatchEvent(_this,rootEl,"choose",dragEl,rootEl,rootEl,oldIndex),_toggleClass(dragEl,options.chosenClass,!0)},options.ignore.split(",").forEach(function(criteria){_find(dragEl,criteria.trim(),_disableDraggable)}),options.supportPointer?_on(ownerDocument,"pointerup",_this._onDrop):(_on(ownerDocument,"mouseup",_this._onDrop),_on(ownerDocument,"touchend",_this._onDrop),_on(ownerDocument,"touchcancel",_this._onDrop)),FireFox&&this.nativeDraggable&&(this.options.touchStartThreshold=4,dragEl.draggable=!0),!options.delay||this.nativeDraggable&&(Edge||IE11OrLess)?dragStartFn():(_on(ownerDocument,"mouseup",_this._disableDelayedDrag),_on(ownerDocument,"touchend",_this._disableDelayedDrag),_on(ownerDocument,"touchcancel",_this._disableDelayedDrag),_on(ownerDocument,"mousemove",_this._delayedDragTouchMoveHandler),_on(ownerDocument,"touchmove",_this._delayedDragTouchMoveHandler),options.supportPointer&&_on(ownerDocument,"pointermove",_this._delayedDragTouchMoveHandler),_this._dragStartTimer=setTimeout(dragStartFn,options.delay)))},_delayedDragTouchMoveHandler:function(e){var touch=e.touches?e.touches[0]:e;max(abs(touch.clientX-this._lastX),abs(touch.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){dragEl&&_disableDraggable(dragEl),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var ownerDocument=this.el.ownerDocument;_off(ownerDocument,"mouseup",this._disableDelayedDrag),_off(ownerDocument,"touchend",this._disableDelayedDrag),_off(ownerDocument,"touchcancel",this._disableDelayedDrag),_off(ownerDocument,"mousemove",this._delayedDragTouchMoveHandler),_off(ownerDocument,"touchmove",this._delayedDragTouchMoveHandler),_off(ownerDocument,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(evt,touch){touch=touch||("touch"==evt.pointerType?evt:null),!this.nativeDraggable||touch?this.options.supportPointer?_on(document,"pointermove",this._onTouchMove):touch?_on(document,"touchmove",this._onTouchMove):_on(document,"mousemove",this._onTouchMove):(_on(dragEl,"dragend",this),_on(rootEl,"dragstart",this._onDragStart));try{document.selection?_nextTick(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(err){}},_dragStarted:function(fallback,evt){if(awaitingDragStarted=!1,rootEl&&dragEl){this.nativeDraggable&&(_on(document,"dragover",this._handleAutoScroll),_on(document,"dragover",_checkAlignment));var options=this.options;!fallback&&_toggleClass(dragEl,options.dragClass,!1),_toggleClass(dragEl,options.ghostClass,!0),_css(dragEl,"transform",""),Sortable.active=this,fallback&&this._appendGhost(),_dispatchEvent(this,rootEl,"start",dragEl,rootEl,rootEl,oldIndex,void 0,evt)}else this._nulling()},_emulateDragOver:function(forAutoScroll){if(touchEvt){if(this._lastX===touchEvt.clientX&&this._lastY===touchEvt.clientY&&!forAutoScroll)return;this._lastX=touchEvt.clientX,this._lastY=touchEvt.clientY,_hideGhostForTarget();for(var target=document.elementFromPoint(touchEvt.clientX,touchEvt.clientY),parent=target;target&&target.shadowRoot;)target=target.shadowRoot.elementFromPoint(touchEvt.clientX,touchEvt.clientY),parent=target;if(parent)do{if(parent[expando]){if(parent[expando]._onDragOver({clientX:touchEvt.clientX,clientY:touchEvt.clientY,target:target,rootEl:parent})&&!this.options.dragoverBubble)break}target=parent}while(parent=parent.parentNode);dragEl.parentNode[expando]._computeIsAligned(touchEvt),_unhideGhostForTarget()}},_onTouchMove:function(evt,forAutoScroll){if(tapEvt){var options=this.options,fallbackTolerance=options.fallbackTolerance,fallbackOffset=options.fallbackOffset,touch=evt.touches?evt.touches[0]:evt,matrix=ghostEl&&_matrix(ghostEl),scaleX=ghostEl&&matrix&&matrix.a,scaleY=ghostEl&&matrix&&matrix.d,relativeScrollOffset=PositionGhostAbsolutely&&ghostRelativeParent&&_getRelativeScrollOffset(ghostRelativeParent),dx=(touch.clientX-tapEvt.clientX+fallbackOffset.x)/(scaleX||1)+(relativeScrollOffset?relativeScrollOffset[0]-ghostRelativeParentInitialScroll[0]:0)/(scaleX||1),dy=(touch.clientY-tapEvt.clientY+fallbackOffset.y)/(scaleY||1)+(relativeScrollOffset?relativeScrollOffset[1]-ghostRelativeParentInitialScroll[1]:0)/(scaleY||1),translate3d=evt.touches?"translate3d("+dx+"px,"+dy+"px,0)":"translate("+dx+"px,"+dy+"px)";if(!Sortable.active&&!awaitingDragStarted){if(fallbackTolerance&&min(abs(touch.clientX-this._lastX),abs(touch.clientY-this._lastY))<fallbackTolerance)return;this._onDragStart(evt,!0)}!forAutoScroll&&this._handleAutoScroll(touch,!0),moved=!0,touchEvt=touch,_css(ghostEl,"webkitTransform",translate3d),_css(ghostEl,"mozTransform",translate3d),_css(ghostEl,"msTransform",translate3d),_css(ghostEl,"transform",translate3d),evt.cancelable&&evt.preventDefault()}},_appendGhost:function(){if(!ghostEl){var container=this.options.fallbackOnBody?document.body:rootEl,rect=_getRect(dragEl,!0,container,!PositionGhostAbsolutely),options=(_css(dragEl),this.options);if(PositionGhostAbsolutely){for(ghostRelativeParent=container;"static"===_css(ghostRelativeParent,"position")&&"none"===_css(ghostRelativeParent,"transform")&&ghostRelativeParent!==document;)ghostRelativeParent=ghostRelativeParent.parentNode;if(ghostRelativeParent!==document){var ghostRelativeParentRect=_getRect(ghostRelativeParent,!0);rect.top-=ghostRelativeParentRect.top,rect.left-=ghostRelativeParentRect.left}ghostRelativeParent!==document.body&&ghostRelativeParent!==document.documentElement?(ghostRelativeParent===document&&(ghostRelativeParent=_getWindowScrollingElement()),rect.top+=ghostRelativeParent.scrollTop,rect.left+=ghostRelativeParent.scrollLeft):ghostRelativeParent=_getWindowScrollingElement(),ghostRelativeParentInitialScroll=_getRelativeScrollOffset(ghostRelativeParent)}ghostEl=dragEl.cloneNode(!0),_toggleClass(ghostEl,options.ghostClass,!1),_toggleClass(ghostEl,options.fallbackClass,!0),_toggleClass(ghostEl,options.dragClass,!0),_css(ghostEl,"box-sizing","border-box"),_css(ghostEl,"margin",0),_css(ghostEl,"top",rect.top),_css(ghostEl,"left",rect.left),_css(ghostEl,"width",rect.width),_css(ghostEl,"height",rect.height),_css(ghostEl,"opacity","0.8"),_css(ghostEl,"position",PositionGhostAbsolutely?"absolute":"fixed"),_css(ghostEl,"zIndex","100000"),_css(ghostEl,"pointerEvents","none"),container.appendChild(ghostEl)}},_onDragStart:function(evt,fallback){var _this=this,dataTransfer=evt.dataTransfer,options=_this.options;cloneEl=_clone(dragEl),cloneEl.draggable=!1,cloneEl.style["will-change"]="",this._hideClone(),_toggleClass(cloneEl,_this.options.chosenClass,!1),_this._cloneId=_nextTick(function(){_this.options.removeCloneOnHide||rootEl.insertBefore(cloneEl,dragEl),_dispatchEvent(_this,rootEl,"clone",dragEl)}),!fallback&&_toggleClass(dragEl,options.dragClass,!0),fallback?(ignoreNextClick=!0,_this._loopId=setInterval(_this._emulateDragOver,50)):(_off(document,"mouseup",_this._onDrop),_off(document,"touchend",_this._onDrop),_off(document,"touchcancel",_this._onDrop),dataTransfer&&(dataTransfer.effectAllowed="move",options.setData&&options.setData.call(_this,dataTransfer,dragEl)),_on(document,"drop",_this),_css(dragEl,"transform","translateZ(0)")),awaitingDragStarted=!0,_this._dragStartId=_nextTick(_this._dragStarted.bind(_this,fallback,evt)),_on(document,"selectstart",_this),Safari&&_css(document.body,"user-select","none")},_onDragOver:function(evt){function completed(insertion){return insertion&&(isOwner?activeSortable._hideClone():activeSortable._showClone(_this),activeSortable&&(_toggleClass(dragEl,putSortable?putSortable.options.ghostClass:activeSortable.options.ghostClass,!1),_toggleClass(dragEl,options.ghostClass,!0)),putSortable!==_this&&_this!==Sortable.active?putSortable=_this:_this===Sortable.active&&(putSortable=null),dragRect&&_this._animate(dragRect,dragEl),target&&targetRect&&_this._animate(targetRect,target)),(target===dragEl&&!dragEl.animated||target===el&&!target.animated)&&(lastTarget=null),options.dragoverBubble||evt.rootEl||target===document||(_this._handleAutoScroll(evt),dragEl.parentNode[expando]._computeIsAligned(evt)),!options.dragoverBubble&&evt.stopPropagation&&evt.stopPropagation(),!0}function changed(){_dispatchEvent(_this,rootEl,"change",target,el,rootEl,oldIndex,_index(dragEl,options.draggable),evt)}var dragRect,targetRect,revert,el=this.el,target=evt.target,options=this.options,group=options.group,activeSortable=Sortable.active,isOwner=activeGroup===group,canSort=options.sort,_this=this;if(!_silent&&(!IE11OrLess||evt.rootEl||evt.artificialBubble||_isTrueParentSortable(el,target))){if(void 0!==evt.preventDefault&&evt.cancelable&&evt.preventDefault(),moved=!0,target=_closest(target,options.draggable,el,!0),_closest(evt.target,null,dragEl,!0)||target.animated)return completed(!1);if(target!==dragEl&&(ignoreNextClick=!1),activeSortable&&!options.disabled&&(isOwner?canSort||(revert=!rootEl.contains(dragEl)):putSortable===this||(this.lastPutMode=activeGroup.checkPull(this,activeSortable,dragEl,evt))&&group.checkPut(this,activeSortable,dragEl,evt))){var axis=this._getDirection(evt,target);if(dragRect=_getRect(dragEl),revert)return this._hideClone(),parentEl=rootEl,nextEl?rootEl.insertBefore(dragEl,nextEl):rootEl.appendChild(dragEl),completed(!0);var elLastChild=_lastChild(el);if(!elLastChild||_ghostIsLast(evt,axis,el)&&!elLastChild.animated){if(elLastChild&&el===evt.target&&(target=elLastChild),target&&(targetRect=_getRect(target)),isOwner?activeSortable._hideClone():activeSortable._showClone(this),!1!==_onMove(rootEl,el,dragEl,dragRect,target,targetRect,evt,!!target))return el.appendChild(dragEl),parentEl=el,realDragElRect=null,changed(),completed(!0)}else if(target&&target!==dragEl&&target.parentNode===el){var targetBeforeFirstSwap,direction=0,aligned=target.sortableMouseAligned,differentLevel=dragEl.parentNode!==el,side1="vertical"===axis?"top":"left",scrolledPastTop=_isScrolledPast(target,"top")||_isScrolledPast(dragEl,"top"),scrollBefore=scrolledPastTop?scrolledPastTop.scrollTop:void 0;if(lastTarget!==target&&(lastMode=null,targetBeforeFirstSwap=_getRect(target)[side1],pastFirstInvertThresh=!1),_isElInRowColumn(dragEl,target,axis)&&aligned||differentLevel||scrolledPastTop||options.invertSwap||"insert"===lastMode||"swap"===lastMode?("swap"!==lastMode&&(isCircumstantialInvert=options.invertSwap||differentLevel),direction=_getSwapDirection(evt,target,axis,options.swapThreshold,null==options.invertedSwapThreshold?options.swapThreshold:options.invertedSwapThreshold,isCircumstantialInvert,lastTarget===target),lastMode="swap"):(direction=_getInsertDirection(target),lastMode="insert"),0===direction)return completed(!1);realDragElRect=null,lastTarget=target,lastDirection=direction,targetRect=_getRect(target);var nextSibling=target.nextElementSibling,after=!1;after=1===direction;var moveVector=_onMove(rootEl,el,dragEl,dragRect,target,targetRect,evt,after);if(!1!==moveVector)return 1!==moveVector&&-1!==moveVector||(after=1===moveVector),_silent=!0,setTimeout(_unsilent,30),isOwner?activeSortable._hideClone():activeSortable._showClone(this),after&&!nextSibling?el.appendChild(dragEl):target.parentNode.insertBefore(dragEl,after?nextSibling:target),scrolledPastTop&&_scrollBy(scrolledPastTop,0,scrollBefore-scrolledPastTop.scrollTop),parentEl=dragEl.parentNode,void 0===targetBeforeFirstSwap||isCircumstantialInvert||(targetMoveDistance=abs(targetBeforeFirstSwap-_getRect(target)[side1])),changed(),completed(!0)}if(el.contains(dragEl))return completed(!1)}return IE11OrLess&&!evt.rootEl&&_artificalBubble(el,evt,"_onDragOver"),!1}},_animate:function(prevRect,target){var ms=this.options.animation;if(ms){var currentRect=_getRect(target);if(target===dragEl&&(realDragElRect=currentRect),1===prevRect.nodeType&&(prevRect=_getRect(prevRect)),prevRect.left+prevRect.width/2!==currentRect.left+currentRect.width/2||prevRect.top+prevRect.height/2!==currentRect.top+currentRect.height/2){var matrix=_matrix(this.el),scaleX=matrix&&matrix.a,scaleY=matrix&&matrix.d;_css(target,"transition","none"),_css(target,"transform","translate3d("+(prevRect.left-currentRect.left)/(scaleX||1)+"px,"+(prevRect.top-currentRect.top)/(scaleY||1)+"px,0)"),forRepaintDummy=target.offsetWidth,_css(target,"transition","transform "+ms+"ms"+(this.options.easing?" "+this.options.easing:"")),_css(target,"transform","translate3d(0,0,0)")}"number"==typeof target.animated&&clearTimeout(target.animated),target.animated=setTimeout(function(){_css(target,"transition",""),_css(target,"transform",""),target.animated=!1},ms)}},_offUpEvents:function(){var ownerDocument=this.el.ownerDocument;_off(document,"touchmove",this._onTouchMove),_off(document,"pointermove",this._onTouchMove),_off(ownerDocument,"mouseup",this._onDrop),_off(ownerDocument,"touchend",this._onDrop),_off(ownerDocument,"pointerup",this._onDrop),_off(ownerDocument,"touchcancel",this._onDrop),_off(document,"selectstart",this)},_onDrop:function(evt){var el=this.el,options=this.options;awaitingDragStarted=!1,scrolling=!1,isCircumstantialInvert=!1,pastFirstInvertThresh=!1,clearInterval(this._loopId),clearInterval(pointerElemChangedInterval),_clearAutoScrolls(),_cancelThrottle(),clearTimeout(this._dragStartTimer),_cancelNextTick(this._cloneId),_cancelNextTick(this._dragStartId),_off(document,"mousemove",this._onTouchMove),this.nativeDraggable&&(_off(document,"drop",this),_off(el,"dragstart",this._onDragStart),_off(document,"dragover",this._handleAutoScroll),_off(document,"dragover",_checkAlignment)),Safari&&_css(document.body,"user-select",""),this._offUpEvents(),evt&&(moved&&(evt.cancelable&&evt.preventDefault(),!options.dropBubble&&evt.stopPropagation()),ghostEl&&ghostEl.parentNode&&ghostEl.parentNode.removeChild(ghostEl),(rootEl===parentEl||putSortable&&"clone"!==putSortable.lastPutMode)&&cloneEl&&cloneEl.parentNode&&cloneEl.parentNode.removeChild(cloneEl),dragEl&&(this.nativeDraggable&&_off(dragEl,"dragend",this),_disableDraggable(dragEl),dragEl.style["will-change"]="",_toggleClass(dragEl,putSortable?putSortable.options.ghostClass:this.options.ghostClass,!1),_toggleClass(dragEl,this.options.chosenClass,!1),_dispatchEvent(this,rootEl,"unchoose",dragEl,parentEl,rootEl,oldIndex,null,evt),rootEl!==parentEl?(newIndex=_index(dragEl,options.draggable),newIndex>=0&&(_dispatchEvent(null,parentEl,"add",dragEl,parentEl,rootEl,oldIndex,newIndex,evt),_dispatchEvent(this,rootEl,"remove",dragEl,parentEl,rootEl,oldIndex,newIndex,evt),_dispatchEvent(null,parentEl,"sort",dragEl,parentEl,rootEl,oldIndex,newIndex,evt),_dispatchEvent(this,rootEl,"sort",dragEl,parentEl,rootEl,oldIndex,newIndex,evt)),putSortable&&putSortable.save()):dragEl.nextSibling!==nextEl&&(newIndex=_index(dragEl,options.draggable))>=0&&(_dispatchEvent(this,rootEl,"update",dragEl,parentEl,rootEl,oldIndex,newIndex,evt),_dispatchEvent(this,rootEl,"sort",dragEl,parentEl,rootEl,oldIndex,newIndex,evt)),Sortable.active&&(null!=newIndex&&-1!==newIndex||(newIndex=oldIndex),_dispatchEvent(this,rootEl,"end",dragEl,parentEl,rootEl,oldIndex,newIndex,evt),this.save()))),this._nulling()},_nulling:function(){rootEl=dragEl=parentEl=ghostEl=nextEl=cloneEl=lastDownEl=scrollEl=scrollParentEl=autoScrolls.length=pointerElemChangedInterval=lastPointerElemX=lastPointerElemY=tapEvt=touchEvt=moved=newIndex=oldIndex=lastTarget=lastDirection=forRepaintDummy=realDragElRect=putSortable=activeGroup=Sortable.active=null,savedInputChecked.forEach(function(el){el.checked=!0}),savedInputChecked.length=0},handleEvent:function(evt){switch(evt.type){case"drop":case"dragend":this._onDrop(evt);break;case"dragenter":case"dragover":dragEl&&(this._onDragOver(evt),_globalDragOver(evt));break;case"selectstart":evt.preventDefault()}},toArray:function(){for(var el,order=[],children=this.el.children,i=0,n=children.length,options=this.options;i<n;i++)el=children[i],_closest(el,options.draggable,this.el,!1)&&order.push(el.getAttribute(options.dataIdAttr)||_generateId(el));return order},sort:function(order){var items={},rootEl=this.el;this.toArray().forEach(function(id,i){var el=rootEl.children[i];_closest(el,this.options.draggable,rootEl,!1)&&(items[id]=el)},this),order.forEach(function(id){items[id]&&(rootEl.removeChild(items[id]),rootEl.appendChild(items[id]))})},save:function(){var store=this.options.store;store&&store.set&&store.set(this)},closest:function(el,selector){return _closest(el,selector||this.options.draggable,this.el,!1)},option:function(name,value){var options=this.options;if(void 0===value)return options[name];options[name]=value,"group"===name&&_prepareGroup(options)},destroy:function(){var el=this.el;el[expando]=null,_off(el,"mousedown",this._onTapStart),_off(el,"touchstart",this._onTapStart),_off(el,"pointerdown",this._onTapStart),this.nativeDraggable&&(_off(el,"dragover",this),_off(el,"dragenter",this)),Array.prototype.forEach.call(el.querySelectorAll("[draggable]"),function(el){el.removeAttribute("draggable")}),this._onDrop(),sortables.splice(sortables.indexOf(this.el),1),this.el=el=null},_hideClone:function(){cloneEl.cloneHidden||(_css(cloneEl,"display","none"),cloneEl.cloneHidden=!0,cloneEl.parentNode&&this.options.removeCloneOnHide&&cloneEl.parentNode.removeChild(cloneEl))},_showClone:function(putSortable){if("clone"!==putSortable.lastPutMode)return void this._hideClone();cloneEl.cloneHidden&&(rootEl.contains(dragEl)&&!this.options.group.revertClone?rootEl.insertBefore(cloneEl,dragEl):nextEl?rootEl.insertBefore(cloneEl,nextEl):rootEl.appendChild(cloneEl),this.options.group.revertClone&&this._animate(dragEl,cloneEl),_css(cloneEl,"display",""),cloneEl.cloneHidden=!1)}};var _throttleTimeout;return _on(document,"touchmove",function(evt){(Sortable.active||awaitingDragStarted)&&evt.cancelable&&evt.preventDefault()}),Sortable.utils={on:_on,off:_off,css:_css,find:_find,is:function(el,selector){return!!_closest(el,selector,el,!1)},extend:_extend,throttle:_throttle,closest:_closest,toggleClass:_toggleClass,clone:_clone,index:_index,nextTick:_nextTick,cancelNextTick:_cancelNextTick,detectDirection:_detectDirection,getChild:_getChild},Sortable.create=function(el,options){return new Sortable(el,options)},Sortable.version="1.8.4",Sortable})}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_Link=__webpack_require__(7),_Link2=_interopRequireDefault(_Link),_redux=__webpack_require__(3),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_URILink=__webpack_require__(18),_URILink2=_interopRequireDefault(_URILink),_SpotifyAuthenticationFrame=__webpack_require__(88),_SpotifyAuthenticationFrame2=_interopRequireDefault(_SpotifyAuthenticationFrame),_LastfmAuthenticationFrame=__webpack_require__(89),_LastfmAuthenticationFrame2=_interopRequireDefault(_LastfmAuthenticationFrame),_GeniusAuthenticationFrame=__webpack_require__(208),_GeniusAuthenticationFrame2=_interopRequireDefault(_GeniusAuthenticationFrame),_Snapcast=__webpack_require__(209),_Snapcast2=_interopRequireDefault(_Snapcast),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions5),_actions6=__webpack_require__(16),lastfmActions=_interopRequireWildcard(_actions6),_actions7=__webpack_require__(32),geniusActions=_interopRequireWildcard(_actions7),Services=function(_React$Component){function Services(props){_classCallCheck(this,Services);var _this=_possibleConstructorReturn(this,(Services.__proto__||Object.getPrototypeOf(Services)).call(this,props));return _this.state={country:_this.props.spotify.country,locale:_this.props.spotify.locale,input_in_focus:null},_this}return _inherits(Services,_React$Component),_createClass(Services,[{key:"componentDidMount",value:function(){!this.props.spotify.enabled&&!this.props.spotify.authorization||this.props.spotify.me&&void 0!==this.props.core.users[this.props.spotify.me.id]||this.props.spotifyActions.getMe(),this.props.lastfm.authorization&&void 0===this.props.core.users["lastfm:user:"+this.props.lastfm.authorization.name]&&this.props.lastfmActions.getMe(),!this.props.genius.authorization||this.props.genius.me&&void 0!==this.props.core.users["genius:user:"+this.props.genius.me.id]||this.props.geniusActions.getMe()}},{key:"componentWillReceiveProps",value:function(newProps){var changed=!1,state=this.state;newProps.spotify.country!=this.state.country&&"country"!=this.state.input_in_focus&&(state.country=newProps.spotify.country,changed=!0),newProps.spotify.locale!=this.state.locale&&"locale"!=this.state.input_in_focus&&(state.locale=newProps.spotify.locale,changed=!0),changed&&this.setState(state)}},{key:"handleBlur",value:function(name,value){this.setState({input_in_focus:null});var data={};data[name]=value,this.props.coreActions.set(data)}},{key:"renderSpotify",value:function(){var _this2=this,user_object=this.props.spotify.me&&this.props.core.users[this.props.spotify.me.uri]?this.props.core.users[this.props.spotify.me.uri]:null;if(user_object)var user=_react2.default.createElement(_URILink2.default,{className:"user",type:"user",uri:user_object.uri},_react2.default.createElement(_Thumbnail2.default,{circle:!0,size:"small",images:user_object.images}),_react2.default.createElement("span",{className:"user-name"},user_object.name?user_object.name:user_object.id,this.props.spotify.authorization?null:_react2.default.createElement("span",{className:"mid_grey-text"},"  (Limited access)")));else var user=_react2.default.createElement(_URILink2.default,{className:"user"},_react2.default.createElement(_Thumbnail2.default,{circle:!0,size:"small"}),_react2.default.createElement("span",{className:"user-name"},"Unknown"));var not_installed=null;return this.props.mopidy.uri_schemes&&this.props.mopidy.uri_schemes.includes("spotify:")||(not_installed=_react2.default.createElement("div",null,_react2.default.createElement("p",{className:"message warning"},_react2.default.createElement("em",null,"Mopidy-Spotify")," extension is not running - you will not be able to play any Spotify tracks"),_react2.default.createElement("br",null))),_react2.default.createElement("div",null,not_installed,_react2.default.createElement("label",{className:"field"},_react2.default.createElement("div",{className:"name"},"Country"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.setState({country:e.target.value})},onFocus:function(e){return _this2.setState({input_in_focus:"country"})},onBlur:function(e){return _this2.props.spotifyActions.set({country:e.target.value})},value:this.state.country}),_react2.default.createElement("div",{className:"description"},"An ",_react2.default.createElement("a",{href:"http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2",target:"_blank"},"ISO 3166-1 alpha-2")," country code (eg ",_react2.default.createElement("em",null,"NZ"),")"))),_react2.default.createElement("label",{className:"field"},_react2.default.createElement("div",{className:"name"},"Locale"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.setState({locale:e.target.value})},onFocus:function(e){return _this2.setState({input_in_focus:"locale"})},onBlur:function(e){return _this2.props.spotifyActions.set({locale:e.target.value})},value:this.state.locale}),_react2.default.createElement("div",{className:"description"},"Lowercase ",_react2.default.createElement("a",{href:"http://en.wikipedia.org/wiki/ISO_639",target:"_blank"},"ISO 639 language code")," and an uppercase ",_react2.default.createElement("a",{href:"http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2",target:"_blank"},"ISO 3166-1 alpha-2 country code"),", joined by an underscore (eg ",_react2.default.createElement("em",null,"en_NZ"),")"))),_react2.default.createElement("div",{className:"field current-user"},_react2.default.createElement("div",{className:"name"},"Current user"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("div",{className:"text"},user))),_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"},"Authorization"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement(_SpotifyAuthenticationFrame2.default,null),this.props.spotify.refreshing_token?_react2.default.createElement("a",{className:"button button--working"},"Refreshing..."):_react2.default.createElement("a",{className:"button button--default",onClick:function(e){return _this2.props.spotifyActions.refreshingToken()}},"Force token refresh"))))}},{key:"renderLastfm",value:function(){var user_object=this.props.lastfm.me?this.props.core.users["lastfm:user:"+this.props.lastfm.me.name]:null;if(user_object)var user=_react2.default.createElement("span",{className:"user"},_react2.default.createElement(_Thumbnail2.default,{circle:!0,size:"small",images:user_object.images}),_react2.default.createElement("span",{className:"user-name"},user_object.name));else var user=_react2.default.createElement("span",{className:"user"},_react2.default.createElement(_Thumbnail2.default,{circle:!0,size:"small"}),_react2.default.createElement("span",{className:"user-name"},"Unknown"));return _react2.default.createElement("div",null,this.props.lastfm.authorization?_react2.default.createElement("div",{className:"field current-user"},_react2.default.createElement("div",{className:"name"},"Current user"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("div",{className:"text"},user))):null,_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"},"Authorization"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement(_LastfmAuthenticationFrame2.default,null))))}},{key:"renderGenius",value:function(){var user_object=this.props.genius.me?this.props.core.users[this.props.genius.me.uri]:null;if(user_object)var user=_react2.default.createElement("span",{className:"user"},_react2.default.createElement(_Thumbnail2.default,{circle:!0,size:"small",images:user_object.images}),_react2.default.createElement("span",{className:"user-name"},user_object.name));else var user=_react2.default.createElement("span",{className:"user"},_react2.default.createElement(_Thumbnail2.default,{circle:!0,size:"small"}),_react2.default.createElement("span",{className:"user-name"},"Unknown"));return _react2.default.createElement("div",null,this.props.genius.authorization?_react2.default.createElement("div",{className:"field current-user"},_react2.default.createElement("div",{className:"name"},"Current user"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("div",{className:"text"},user))):null,_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"},"Authorization"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement(_GeniusAuthenticationFrame2.default,null))))}},{key:"renderIcecast",value:function(){var _this3=this;return _react2.default.createElement("div",null,_react2.default.createElement("div",{className:"field checkbox"},_react2.default.createElement("div",{className:"name"},"Enable"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"ssl",checked:this.props.core.http_streaming_enabled,onChange:function(e){return _this3.props.coreActions.set({http_streaming_enabled:!_this3.props.core.http_streaming_enabled})}}),_react2.default.createElement("span",{className:"label"},"Stream audio to this browser")))),_react2.default.createElement("label",{className:"field"},_react2.default.createElement("div",{className:"name"},"Location"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this3.props.coreActions.set({http_streaming_url:e.target.value})},value:this.props.core.http_streaming_url}),_react2.default.createElement("div",{className:"description"},"The full URL to your stream endpoint"))))}},{key:"renderMenu",value:function(){if(this.props.spotify.me&&this.props.core.users[this.props.spotify.me.uri])var spotify_icon=_react2.default.createElement(_Thumbnail2.default,{className:"menu-item__thumbnail",circle:!0,size:"small",images:this.props.core.users[this.props.spotify.me.uri].images});else var spotify_icon=_react2.default.createElement(_Thumbnail2.default,{className:"menu-item__thumbnail",circle:!0,size:"small"});if(this.props.lastfm.me&&this.props.core.users[this.props.lastfm.me.uri])var lastfm_icon=_react2.default.createElement(_Thumbnail2.default,{className:"menu-item__thumbnail",circle:!0,size:"small",images:this.props.core.users[this.props.lastfm.me.uri].images});else var lastfm_icon=_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:"lastfm",className:"menu-item__icon"});if(this.props.genius.me&&this.props.core.users[this.props.genius.me.uri])var genius_icon=_react2.default.createElement(_Thumbnail2.default,{className:"menu-item__thumbnail",circle:!0,size:"small",images:this.props.core.users[this.props.genius.me.uri].images});else var genius_icon=_react2.default.createElement(_Icon2.default,{name:"genius",type:"svg",className:"menu-item__icon"});return _react2.default.createElement("div",{className:"menu",id:"services-menu"},_react2.default.createElement("div",{className:"menu__inner"},_react2.default.createElement(_Link2.default,{history:this.props.history,className:"menu-item menu-item--spotify",activeClassName:"menu-item--active",to:"/settings/spotify",scrollTo:"#services-menu"},_react2.default.createElement("div",{className:"menu-item__inner"},spotify_icon,_react2.default.createElement("div",{className:"menu-item__title"},"Spotify"),this.props.spotify.authorization?_react2.default.createElement("span",{className:"status green-text"},"Authorized"):_react2.default.createElement("span",{className:"status mid_grey-text"},"Read-only"))),_react2.default.createElement(_Link2.default,{history:this.props.history,className:"menu-item menu-item--lastfm",activeClassName:"menu-item--active",to:"/settings/lastfm",scrollTo:"#services-menu"},_react2.default.createElement("div",{className:"menu-item__inner"},lastfm_icon,_react2.default.createElement("div",{className:"menu-item__title"},"LastFM"),this.props.lastfm.authorization?_react2.default.createElement("span",{className:"status green-text"},"Authorized"):_react2.default.createElement("span",{className:"status mid_grey-text"},"Read-only"))),_react2.default.createElement(_Link2.default,{history:this.props.history,className:"menu-item menu-item--genius",activeClassName:"menu-item--active",to:"/settings/genius",scrollTo:"#services-menu"},_react2.default.createElement("div",{className:"menu-item__inner"},genius_icon,_react2.default.createElement("div",{className:"menu-item__title"},"Genius"),this.props.genius.authorization?_react2.default.createElement("span",{className:"status green-text"},"Authorized"):_react2.default.createElement("span",{className:"status mid_grey-text"},"Unauthorized"))),_react2.default.createElement(_Link2.default,{history:this.props.history,className:"menu-item menu-item--snapcast",activeClassName:"menu-item--active",to:"/settings/snapcast",scrollTo:"#services-menu"},_react2.default.createElement("div",{className:"menu-item__inner"},_react2.default.createElement(_Icon2.default,{className:"menu-item__icon",name:"devices"}),_react2.default.createElement("div",{className:"menu-item__title"},"Snapcast"),this.props.pusher.config.snapcast_enabled?_react2.default.createElement("span",{className:"status green-text"},"Enabled"):_react2.default.createElement("span",{className:"status mid_grey-text"},"Disabled"))),_react2.default.createElement(_Link2.default,{history:this.props.history,className:"menu-item menu-item--icecast",activeClassName:"menu-item--active",to:"/settings/icecast",scrollTo:"#services-menu"},_react2.default.createElement("div",{className:"menu-item__inner"},_react2.default.createElement(_Icon2.default,{className:"menu-item__icon",name:"wifi_tethering"}),_react2.default.createElement("div",{className:"menu-item__title"},"Icecast"),this.props.core.http_streaming_enabled?_react2.default.createElement("span",{className:"status green-text"},"Enabled"):_react2.default.createElement("span",{className:"status mid_grey-text"},"Disabled")))))}},{key:"renderService",value:function(){var service=null;switch(this.props.match.params.service){case"spotify":service=this.renderSpotify();break;case"lastfm":service=this.renderLastfm();break;case"genius":service=this.renderGenius();break;case"icecast":service=this.renderIcecast();break;case"snapcast":service=_react2.default.createElement(_Snapcast2.default,null)}return service?_react2.default.createElement("div",{className:"service"},service):null}},{key:"render",value:function(){return _react2.default.createElement("div",{className:"services"},this.renderMenu(),this.renderService())}}]),Services}(_react2.default.Component),mapStateToProps=function(state,ownProps){return state},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch),lastfmActions:(0,_redux.bindActionCreators)(lastfmActions,dispatch),geniusActions:(0,_redux.bindActionCreators)(geniusActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Services)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_reactGa=__webpack_require__(13),_Thumbnail=(_interopRequireDefault(_reactGa),__webpack_require__(10)),_actions=(_interopRequireDefault(_Thumbnail),__webpack_require__(2)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(32),geniusActions=_interopRequireWildcard(_actions2),GeniusAuthenticationFrame=function(_React$Component){function GeniusAuthenticationFrame(props){_classCallCheck(this,GeniusAuthenticationFrame);var _this=_possibleConstructorReturn(this,(GeniusAuthenticationFrame.__proto__||Object.getPrototypeOf(GeniusAuthenticationFrame)).call(this,props));return _this.state={authorizing:!1},_this}return _inherits(GeniusAuthenticationFrame,_React$Component),_createClass(GeniusAuthenticationFrame,[{key:"componentDidMount",value:function(){var self=this;window.addEventListener("message",function(event){try{var data=JSON.parse(event.data)}catch(e){return void console.error("Failed to parse JSON",e,event)}"auth_genius"==data.origin&&self.handleMessage(event,data)},!1)}},{key:"handleMessage",value:function(event,data){var authorization_domain=this.props.authorization_url.substring(0,this.props.authorization_url.indexOf("/",8));if(event.origin!=authorization_domain)return this.props.uiActions.createNotification({content:"Authorization failed. "+event.origin+" is not the configured authorization_url.",type:"bad"}),!1;void 0!==data.error?this.props.uiActions.createNotification({content:data.message,type:"bad"}):(this.props.geniusActions.authorizationGranted(data),this.props.geniusActions.getMe()),this.setState({authorizing:!1})}},{key:"startAuthorization",value:function(){function checkPopup(){void 0!==popup&&popup?popup.closed&&(self.setState({authorizing:!1}),clearInterval(timer)):(self.props.uiActions.createNotification({content:"Popup blocked. Please allow popups and try again.",type:"bad"}),self.setState({authorizing:!1}),clearInterval(timer))}var self=this;this.setState({authorizing:!0});var url=this.props.authorization_url+"?action=authorize&scope=me",popup=window.open(url,"popup","height=580,width=350");popup.name="GeniusAuthenticationWindow";var timer=setInterval(checkPopup,1e3)}},{key:"render",value:function(){var _this2=this;return this.state.authorizing?_react2.default.createElement("button",{className:"button button--working"},"Authorizing..."):this.props.authorized?_react2.default.createElement("button",{className:"button button--destructive",onClick:function(){return _this2.props.geniusActions.revokeAuthorization()}},"Log out"):_react2.default.createElement("button",{className:"button button--primary",onClick:function(){return _this2.startAuthorization()}},"Log in")}}]),GeniusAuthenticationFrame}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{authorization_url:state.genius.authorization_url,authorized:state.genius.authorization,authorizing:state.genius.authorizing}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),geniusActions:(0,_redux.bindActionCreators)(geniusActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(GeniusAuthenticationFrame)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_VolumeControl=(_interopRequireDefault(_Link),__webpack_require__(56)),_VolumeControl2=_interopRequireDefault(_VolumeControl),_MuteControl=__webpack_require__(57),_MuteControl2=_interopRequireDefault(_MuteControl),_LatencyControl=__webpack_require__(210),_LatencyControl2=_interopRequireDefault(_LatencyControl),_TextField=__webpack_require__(211),_TextField2=_interopRequireDefault(_TextField),_DropdownField=__webpack_require__(25),_Icon=(_interopRequireDefault(_DropdownField),__webpack_require__(5)),_Icon2=_interopRequireDefault(_Icon),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(36),snapcastActions=_interopRequireWildcard(_actions4),Snapcast=function(_React$Component){function Snapcast(props){_classCallCheck(this,Snapcast);var _this=_possibleConstructorReturn(this,(Snapcast.__proto__||Object.getPrototypeOf(Snapcast)).call(this,props));return _this.state={clients_expanded:[]},_this}return _inherits(Snapcast,_React$Component),_createClass(Snapcast,[{key:"componentDidMount",value:function(){this.props.pusher_connected&&this.props.snapcast_enabled&&this.props.snapcastActions.getServer()}},{key:"componentWillReceiveProps",value:function(newProps){newProps.snapcast_enabled&&!this.props.pusher_connected&&newProps.pusher_connected?this.props.snapcastActions.getServer():!this.props.snapcast_enabled&&newProps.snapcast_enabled&&newProps.pusher_connected&&this.props.snapcastActions.getServer()}},{key:"toggleClientExpanded",value:function(client_id){var clients_expanded=this.state.clients_expanded,index=clients_expanded.indexOf(client_id);index>=0?clients_expanded.splice(index,1):clients_expanded.push(client_id),this.setState({clients_expanded:clients_expanded})}},{key:"renderClientsList",value:function(group,groups){var _this2=this;if(!this.props.show_disconnected_clients&&group.clients)var clients=helpers.applyFilter("connected",!0,group.clients);else var clients=group.clients;return!clients||clients.length<=0?_react2.default.createElement("div",{className:"text mid_grey-text"},"No clients"):_react2.default.createElement("div",{className:"list snapcast__clients"},clients.map(function(client){var class_name="list__item list__item--no-interaction snapcast__client";return client.connected?class_name+=" snapcast__client--connected":class_name+=" snapcast__client--disconnected",_this2.state.clients_expanded.includes(client.id)?_react2.default.createElement("div",{className:class_name+" snapcast__client--expanded",key:client.id},_react2.default.createElement("div",{className:"snapcast__client__header",onClick:function(e){return _this2.toggleClientExpanded(client.id)}},client.name,_react2.default.createElement("div",{className:"snapcast__client__header__icons"},client.connected?null:_react2.default.createElement(_Icon2.default,{name:"power_off",className:"disconnected"}),_react2.default.createElement(_Icon2.default,{name:"expand_less"}))),_react2.default.createElement("div",{className:"snapcast__client__details"},_react2.default.createElement("label",{className:"field"},_react2.default.createElement("div",{className:"name"},"Name"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement(_TextField2.default,{onChange:function(value){return _this2.props.snapcastActions.setClientName(client.id,value)},value:client.name}))),_react2.default.createElement("label",{className:"field dropdown"},_react2.default.createElement("div",{className:"name"},"Group"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("select",{onChange:function(e){return _this2.props.snapcastActions.setClientGroup(client.id,e.target.value)},value:group.id},groups.map(function(group){return _react2.default.createElement("option",{value:group.id,key:group.id},group.name?group.name:"Group "+group.id.substring(0,3))}),_react2.default.createElement("option",{value:group.id},"New group")))),_react2.default.createElement("div",{className:"snapcast__client__volume field"},_react2.default.createElement("div",{className:"name"},"Volume"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement(_MuteControl2.default,{className:"snapcast__client__mute-control",mute:client.mute,onMuteChange:function(mute){return _this2.props.snapcastActions.setClientMute(client.id,mute)}}),_react2.default.createElement(_VolumeControl2.default,{className:"snapcast__client__volume-control",volume:client.volume,onVolumeChange:function(percent){return _this2.props.snapcastActions.setClientVolume(client.id,percent)}}))),_react2.default.createElement("div",{className:"snapcast__client__latency field"},_react2.default.createElement("div",{className:"name"},"Latency"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement(_LatencyControl2.default,{max:"150",value:client.latency,onChange:function(value){return _this2.props.snapcastActions.setClientLatency(client.id,parseInt(value))}}),_react2.default.createElement(_TextField2.default,{className:"tiny",type:"number",onChange:function(value){return _this2.props.snapcastActions.setClientLatency(client.id,parseInt(value))},value:String(client.latency)}))))):_react2.default.createElement("div",{className:class_name+" snapcast__client--collapsed",key:client.id},_react2.default.createElement("div",{className:"snapcast__client__header",onClick:function(e){return _this2.toggleClientExpanded(client.id)}},client.name,_react2.default.createElement("div",{className:"snapcast__client__header__icons"},client.connected?null:_react2.default.createElement(_Icon2.default,{name:"power_off",className:"disconnected"}),_react2.default.createElement(_Icon2.default,{name:"expand_more"}))))}))}},{key:"render",value:function(){var _this3=this;if(!this.props.snapcast_enabled)return _react2.default.createElement("p",{className:"message warning"},"To enable Snapcast, edit your ",_react2.default.createElement("code",null,"mopidy.conf")," file");var streams=[];for(var id in this.props.streams)this.props.streams.hasOwnProperty(id)&&streams.push(this.props.streams[id]);var groups=[];for(var id in this.props.groups)this.props.groups.hasOwnProperty(id)&&groups.push(this.props.groups[id]);return _react2.default.createElement("div",{className:"snapcast"},_react2.default.createElement("div",{className:"field checkbox"},_react2.default.createElement("div",{className:"name"},"Display"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("button",{className:"button button--default button--small",onClick:function(e){return _this3.props.snapcastActions.getServer()}},"Refresh"),_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"show_disconnected_clients",checked:this.props.show_disconnected_clients,onChange:function(e){return _this3.props.uiActions.set({snapcast_show_disconnected_clients:!_this3.props.show_disconnected_clients})}}),_react2.default.createElement("span",{className:"label"},"Show disconnected clients")))),_react2.default.createElement("div",{className:"snapcast__groups"},groups.map(function(group){group=helpers.collate(group,{clients:_this3.props.clients});for(var group_volume=0,i=0;i<group.clients.length;i++){group_volume+=group.clients[i].volume}return group_volume/=group.clients.length,_react2.default.createElement("div",{className:"snapcast__group",key:group.id},_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"},"Name"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("div",{className:"text"},group.name,"  ",_react2.default.createElement("span",{className:"mid_grey-text"},"(",group.id,")")))),_react2.default.createElement("div",{className:"field dropdown"},_react2.default.createElement("div",{className:"name"},"Stream"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("select",{onChange:function(e){return _this3.props.snapcastActions.setGroupStream(group.id,e.target.value)},value:group.stream_id},streams.map(function(stream){return _react2.default.createElement("option",{value:stream.id,key:stream.id},stream.id," (",stream.status,")")})))),_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"},"Volume"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement(_MuteControl2.default,{className:"snapcast__group__mute-control",mute:group.muted,onMuteChange:function(mute){return _this3.props.snapcastActions.setGroupMute(group.id,mute)}}),_react2.default.createElement(_VolumeControl2.default,{className:"snapcast__group__volume-control",volume:group_volume,onVolumeChange:function(percent,old_percent){return _this3.props.snapcastActions.setGroupVolume(group.id,percent,old_percent)}}))),_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"},"Clients"),_react2.default.createElement("div",{className:"input"},_this3.renderClientsList(group,groups))))})))}}]),Snapcast}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{snapcast_enabled:state.pusher.config.snapcast_enabled,pusher_connected:state.pusher.connected,show_disconnected_clients:void 0!==state.ui.snapcast_show_disconnected_clients&&state.ui.snapcast_show_disconnected_clients,streams:state.snapcast.streams?state.snapcast.streams:null,groups:state.snapcast.groups?state.snapcast.groups:null,clients:state.snapcast.clients?state.snapcast.clients:null}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),snapcastActions:(0,_redux.bindActionCreators)(snapcastActions,dispatch),pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Snapcast)},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_react),_helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers),LatencyControl=function(_React$Component){function LatencyControl(props){_classCallCheck(this,LatencyControl);var _this=_possibleConstructorReturn(this,(LatencyControl.__proto__||Object.getPrototypeOf(LatencyControl)).call(this,props));return _this.handleChange=helpers.throttle(_this.handleChange.bind(_this),100),_this}return _inherits(LatencyControl,_React$Component),_createClass(LatencyControl,[{key:"handleChange",value:function(value){this.props.onChange(value,this.props.value)}},{key:"render",value:function(){var _this2=this;if(this.props.value>=0){var value=this.props.value;value>this.props.max&&(value=this.props.max);var percentage=Math.round(value/this.props.max*100/2),left=50,width=percentage,negative=!1;width>this.props.max/2&&(width=this.props.max/2)}else{var value=-this.props.value;value<-this.props.max&&(value=-this.props.max);var percentage=Math.round(value/this.props.max*100/2),left=50-percentage,width=percentage,negative=!0;left<0&&(left=0),width>this.props.max/2&&(width=this.props.max/2)}return _react2.default.createElement("span",{className:"latency-control"},_react2.default.createElement("div",{className:"slider__wrapper"},_react2.default.createElement("div",{className:"slider slider--latency"},_react2.default.createElement("input",{type:"range",min:-this.props.max,max:this.props.max,className:"slider__input",value:this.props.value,onChange:function(e){return _this2.handleChange(parseInt(e.target.value))}}),_react2.default.createElement("div",{className:"zero"}),_react2.default.createElement("div",{className:"slider__track"},_react2.default.createElement("div",{className:"slider__track__progress slider__track__progress--"+(negative?"negative":"positive"),style:{width:width+"%",left:left+"%"}})))))}}]),LatencyControl}(_react2.default.Component);exports.default=LatencyControl},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_react),TextField=function(_React$Component){function TextField(props){_classCallCheck(this,TextField);var _this=_possibleConstructorReturn(this,(TextField.__proto__||Object.getPrototypeOf(TextField)).call(this,props));return _this.state={in_focus:!1,value:_this.props.value?_this.props.value:""},_this}return _inherits(TextField,_React$Component),_createClass(TextField,[{key:"componentWillReceiveProps",value:function(newProps){this.state.in_focus||this.setState({value:newProps.value})}},{key:"handleChange",value:function(e){this.setState({value:e.target.value})}},{key:"handleFocus",value:function(e){this.setState({in_focus:!0})}},{key:"handleBlur",value:function(e){this.setState({in_focus:!1}),this.state.value!==this.props.value&&this.props.onChange(this.state.value)}},{key:"render",value:function(){var _this2=this;return _react2.default.createElement("input",{className:this.props.className?this.props.className:"",type:this.props.type?this.props.type:"text",onChange:function(e){return _this2.handleChange(e)},onFocus:function(e){return _this2.handleFocus(e)},onBlur:function(e){return _this2.handleBlur(e)},value:this.state.value,placeholder:this.props.placeholder?this.props.placeholder:null})}}]),TextField}(_react2.default.Component);exports.default=TextField},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_reactInputRange=__webpack_require__(213),_reactInputRange2=_interopRequireDefault(_reactInputRange),_Header=__webpack_require__(14),_ArtistSentence=(_interopRequireDefault(_Header),__webpack_require__(20)),_ArtistGrid=(_interopRequireDefault(_ArtistSentence),__webpack_require__(34)),_AlbumGrid=(_interopRequireDefault(_ArtistGrid),__webpack_require__(38)),_AlbumGrid2=_interopRequireDefault(_AlbumGrid),_TrackList=__webpack_require__(19),_TrackList2=_interopRequireDefault(_TrackList),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Parallax=__webpack_require__(28),_Parallax2=_interopRequireDefault(_Parallax),_DropdownField=__webpack_require__(25),_DropdownField2=_interopRequireDefault(_DropdownField),_AddSeedField=__webpack_require__(229),_AddSeedField2=_interopRequireDefault(_AddSeedField),_URILink=__webpack_require__(18),_URILink2=_interopRequireDefault(_URILink),_ContextMenuTrigger=__webpack_require__(22),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_RelatedArtists=__webpack_require__(86),_RelatedArtists2=_interopRequireDefault(_RelatedArtists),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions3),Discover=function(_React$Component){function Discover(props){_classCallCheck(this,Discover);var _this=_possibleConstructorReturn(this,(Discover.__proto__||Object.getPrototypeOf(Discover)).call(this,props));return _this._autocomplete_timer=!1,_this.state={add_seed:"",adding_seed:!1,seeds:[],tunabilities:{acousticness:{enabled:!1,convert_to_decimal:!0,min:0,max:100,value:{min:25,max:75}},danceability:{enabled:!1,convert_to_decimal:!0,min:0,max:100,value:{min:25,max:75}},energy:{enabled:!1,convert_to_decimal:!0,min:0,max:100,value:{min:25,max:75}},instrumentalness:{enabled:!1,convert_to_decimal:!0,min:0,max:100,value:{min:25,max:75}},key:{enabled:!1,min:0,max:11,value:{min:3,max:8}},liveness:{enabled:!1,convert_to_decimal:!0,min:0,max:100,value:{min:25,max:75}},loudness:{enabled:!1,convert_to_decimal:!0,min:0,max:100,value:{min:25,max:75}},popularity:{enabled:!1,min:0,max:100,value:{min:0,max:100}},speechiness:{enabled:!1,convert_to_decimal:!0,description:"The presence of spoken words in a track",min:0,max:100,value:{min:25,max:75}},tempo:{enabled:!1,convert_to_decimal:!0,min:0,max:100,value:{min:25,max:75}},valence:{enabled:!1,convert_to_decimal:!0,description:"The musical positiveness conveyed by a track",min:0,max:100,value:{min:25,max:75}}}},_this}return _inherits(Discover,_React$Component),_createClass(Discover,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Discover"),this.props.match.params.seeds&&this.handleURLSeeds(this.props.match.params.seeds)}},{key:"componentWillReceiveProps",value:function(newProps,newState){newProps.match.params.seeds!=this.props.match.params.seeds&&this.handleURLSeeds(newProps.match.params.seeds)}},{key:"handleContextMenu",value:function(e){var uri="iris:discover";if(this.state.seeds){uri+=":";for(var i=0;i<this.state.seeds.length;i++)i>0&&(uri+=","),uri+=this.state.seeds[i].split(":").join("_")}var tracks=[];if(this.props.recommendations.tracks_uris&&this.props.tracks)for(var i=0;i<this.props.recommendations.tracks_uris.length;i++){var uri=this.props.recommendations.tracks_uris[i];this.props.tracks.hasOwnProperty(uri)&&tracks.push(this.props.tracks[uri])}var data={e:e,context:"track",items:tracks,uris:helpers.arrayOf("uri",tracks)};this.props.uiActions.showContextMenu(data)}},{key:"handleURLSeeds",value:function(){for(var seeds_string=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.match.params.seeds,seeds=seeds_string.split("_").join(":").split(","),i=0;i<seeds.length;i++)switch(helpers.uriType(seeds[i])){case"artist":this.props.spotifyActions.getArtist(seeds[i]);break;case"track":this.props.spotifyActions.getTrack(seeds[i])}this.setState({seeds:seeds}),this.getRecommendations(seeds)}},{key:"getRecommendations",value:function(){var seeds=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state.seeds,tunabilities=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state.tunabilities;if(seeds.length>0){var digested_tunabilities={};for(var key in tunabilities)if(tunabilities.hasOwnProperty(key)&&tunabilities[key].enabled){var tunability=tunabilities[key],max=tunability.value.max,min=tunability.value.min;tunability.convert_to_decimal&&(max/=100,min/=100),digested_tunabilities[key+"_max"]=max.toString(),digested_tunabilities[key+"_min"]=min.toString()}this.props.spotifyActions.getRecommendations(seeds,50,digested_tunabilities)}}},{key:"playTracks",value:function(){this.props.mopidyActions.playURIs(this.props.recommendations.tracks_uris)}},{key:"removeSeed",value:function(index){var seeds=this.state.seeds;seeds.splice(index,1),this.setState({seeds:seeds})}},{key:"handleSelect",value:function(e,uri){var seeds=this.state.seeds;seeds.push(uri),this.setState({seeds:seeds})}},{key:"renderSeeds",value:function(){var _this2=this,seeds_objects=[];if(this.state.seeds.length>0)for(var i=0;i<this.state.seeds.length;i++){var uri=this.state.seeds[i];switch(helpers.uriType(uri)){case"track":void 0!==this.props.tracks[uri]?seeds_objects.push(this.props.tracks[uri]):seeds_objects.push({name:"Loading...",uri:uri});break;case"artist":void 0!==this.props.artists[uri]?seeds_objects.push(this.props.artists[uri]):seeds_objects.push({name:"Loading...",uri:uri});break;case"genre":var name=helpers.getFromUri("genreid",uri);seeds_objects.push({name:(name.charAt(0).toUpperCase()+name.slice(1)).replace("-"," "),uri:uri})}}return _react2.default.createElement("div",{className:"seeds"},seeds_objects.map(function(seed,index){var type=helpers.uriType(seed.uri),images=null;return seed.images&&("artist"==type?seed.images.length>0&&(images=seed.images[0]):images=seed.images),_react2.default.createElement("div",{className:"seed"+(seed.images?" has-thumbnail":""),key:seed.uri},images?_react2.default.createElement(_URILink2.default,{className:"thumbnail-wrapper",type:type,uri:seed.uri},_react2.default.createElement(_Thumbnail2.default,{images:images,circle:"artist"==seed.type,size:"small"})):null,_react2.default.createElement("div",{className:"label"},helpers.titleCase(type),_react2.default.createElement(_Icon2.default,{name:"close",className:"remove",onClick:function(){return _this2.removeSeed(index)}})),_react2.default.createElement("div",{className:"name"},seed.name))}))}},{key:"setTunability",value:function(name,value){var tunabilities=this.state.tunabilities;tunabilities[name].value=value,this.setState({tunabilities:tunabilities})}},{key:"toggleTunability",value:function(name){var tunabilities=this.state.tunabilities;tunabilities[name].enabled=!tunabilities[name].enabled,this.setState({tunabilities:tunabilities})}},{key:"renderTunabilities",value:function(){var _this3=this,addable_tunabilities=[],enabled_tunabilities=[];for(var key in this.state.tunabilities)if(this.state.tunabilities.hasOwnProperty(key)){var tunability=Object.assign({},this.state.tunabilities[key],{name:key});tunability.enabled?enabled_tunabilities.push(tunability):addable_tunabilities.push({label:helpers.titleCase(tunability.name),value:tunability.name})}return _react2.default.createElement("div",{className:"tunabilities"},enabled_tunabilities.map(function(tunability){return _react2.default.createElement("div",{className:"field tunability range",key:tunability.name},_react2.default.createElement("div",{className:"label"},helpers.titleCase(tunability.name),_react2.default.createElement("span",{className:"remove",onClick:function(e){return _this3.toggleTunability(tunability.name)}},_react2.default.createElement(_Icon2.default,{name:"close"}))),_react2.default.createElement("div",{className:"input"},_react2.default.createElement(_reactInputRange2.default,{disabled:!tunability.enabled,minValue:tunability.min,maxValue:tunability.max,value:tunability.value,onChange:function(value){return _this3.setTunability(tunability.name,value)}})))}))}},{key:"renderResults",value:function(){var _this4=this;if(!this.props.recommendations||void 0===this.props.recommendations.albums_uris||void 0===this.props.recommendations.artists_uris)return _react2.default.createElement("div",{className:"content-wrapper recommendations-results"});var tracks=[];if(this.props.recommendations.tracks_uris&&this.props.tracks)for(var i=0;i<this.props.recommendations.tracks_uris.length;i++){var uri=this.props.recommendations.tracks_uris[i];this.props.tracks.hasOwnProperty(uri)&&tracks.push(this.props.tracks[uri])}var artists=[];if(this.props.recommendations.artists_uris&&this.props.artists)for(var i=0;i<this.props.recommendations.artists_uris.length;i++){var uri=this.props.recommendations.artists_uris[i];this.props.artists.hasOwnProperty(uri)&&artists.push(this.props.artists[uri])}var albums=[];if(this.props.recommendations.albums_uris&&this.props.albums)for(var i=0;i<this.props.recommendations.albums_uris.length;i++){var uri=this.props.recommendations.albums_uris[i];this.props.albums.hasOwnProperty(uri)&&albums.push(this.props.albums[uri])}if(tracks.length<=0&&artists.length<=0&&albums.length<=0)return null;var uri="iris:discover";if(this.state.seeds){uri+=":";for(var i=0;i<this.state.seeds.length;i++)i>0&&(uri+=","),uri+=this.state.seeds[i].split(":").join("_")}return _react2.default.createElement("div",{className:"content-wrapper recommendations-results"},_react2.default.createElement("section",{className:"col col--w70 tracks"},_react2.default.createElement("h4",null,"Tracks",_react2.default.createElement("div",{className:"pull-right"},_react2.default.createElement(_ContextMenuTrigger2.default,{onTrigger:function(e){return _this4.handleContextMenu(e)}}),_react2.default.createElement("button",{className:"button button--primary",onClick:function(e){return _this4.playTracks(e)}},"Play all"))),_react2.default.createElement(_TrackList2.default,{className:"discover-track-list",uri:uri,tracks:tracks})),_react2.default.createElement("div",{className:"col col--w5"}),_react2.default.createElement("div",{className:"col col--w25 others"},_react2.default.createElement("section",null,_react2.default.createElement("h4",null,"Artists"),_react2.default.createElement(_RelatedArtists2.default,{artists:artists})),_react2.default.createElement("br",null),_react2.default.createElement("br",null),_react2.default.createElement("section",null,_react2.default.createElement("h4",null,"Albums"),_react2.default.createElement(_AlbumGrid2.default,{className:"grid--mini",albums:albums}))))}},{key:"render",value:function(){var _this5=this,is_loading=helpers.isLoading(this.props.load_queue,["spotify_recommendations"]),addable_tunabilities=[];for(var key in this.state.tunabilities)if(this.state.tunabilities.hasOwnProperty(key)){var tunability=Object.assign({},this.state.tunabilities[key],{name:key});tunability.enabled||addable_tunabilities.push({label:helpers.titleCase(tunability.name),value:tunability.name})}return _react2.default.createElement("div",{className:"view discover-view preserve-3d"},_react2.default.createElement("div",{className:"intro preserve-3d"},_react2.default.createElement(_Parallax2.default,{image:"/iris/assets/backgrounds/discover.jpg"}),_react2.default.createElement("div",{className:"intro__liner"},_react2.default.createElement("h1",null,"Explore new music"),_react2.default.createElement("h2",null,"Add seeds and musical properties below to build your sound"),_react2.default.createElement("div",{className:"intro__parameters"},this.renderSeeds(),this.renderTunabilities(),this.state.seeds.length>5?_react2.default.createElement("p",{className:"message error"},"Too many seeds! You can use up to a total of 5 seed tracks, artists and genres."):null),_react2.default.createElement("div",{className:"intro__actions"},_react2.default.createElement(_AddSeedField2.default,{onSelect:function(e,uri){return _this5.handleSelect(e,uri)}}),_react2.default.createElement(_DropdownField2.default,{className:"add-properties",name:"Properties",options:addable_tunabilities,no_status_icon:!0,button:"default",handleChange:function(val){_this5.toggleTunability(val)}}),_react2.default.createElement("span",{className:"submit button button--primary button--large"+(is_loading?" button--working":""),onClick:function(e){return _this5.getRecommendations()}},_react2.default.createElement(_Icon2.default,{name:"explore"}),"  Find recommendations")))),this.renderResults())}}]),Discover}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{theme:state.ui.theme,albums:state.core.albums,artists:state.core.artists,tracks:state.core.tracks,genres:state.core.genres?state.core.genres:[],authorized:state.spotify.authorization,load_queue:state.ui.load_queue,quick_search_results:state.spotify.quick_search_results?state.spotify.quick_search_results:{artists:[],tracks:[]},recommendations:state.spotify.recommendations?state.spotify.recommendations:{}}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Discover)},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _inputRange=__webpack_require__(214),_inputRange2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_inputRange);exports.default=_inputRange2.default,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}function _applyDecoratedDescriptor(target,property,decorators,descriptor,context){var desc={};return Object.keys(descriptor).forEach(function(key){desc[key]=descriptor[key]}),desc.enumerable=!!desc.enumerable,desc.configurable=!!desc.configurable,("value"in desc||desc.initializer)&&(desc.writable=!0),desc=decorators.slice().reverse().reduce(function(desc,decorator){return decorator(target,property,desc)||desc},desc),context&&void 0!==desc.initializer&&(desc.value=desc.initializer?desc.initializer.call(context):void 0,desc.initializer=void 0),void 0===desc.initializer&&(Object.defineProperty(target,property,desc),desc=null),desc}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _class,_createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_propTypes=__webpack_require__(11),_propTypes2=_interopRequireDefault(_propTypes),_autobindDecorator=__webpack_require__(60),_autobindDecorator2=_interopRequireDefault(_autobindDecorator),_valueTransformer=__webpack_require__(215),valueTransformer=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_valueTransformer),_defaultClassNames=__webpack_require__(223),_defaultClassNames2=_interopRequireDefault(_defaultClassNames),_label=__webpack_require__(90),_label2=_interopRequireDefault(_label),_rangePropType=__webpack_require__(224),_rangePropType2=_interopRequireDefault(_rangePropType),_valuePropType=__webpack_require__(225),_valuePropType2=_interopRequireDefault(_valuePropType),_slider=__webpack_require__(226),_slider2=_interopRequireDefault(_slider),_track=__webpack_require__(227),_track2=_interopRequireDefault(_track),_utils=__webpack_require__(45),_keyCodes=__webpack_require__(228),InputRange=(_class=function(_React$Component){function InputRange(props){_classCallCheck(this,InputRange);var _this=_possibleConstructorReturn(this,(InputRange.__proto__||Object.getPrototypeOf(InputRange)).call(this,props));return _this.startValue=null,_this.node=null,_this.trackNode=null,_this.isSliderDragging=!1,_this.lastKeyMoved=null,_this}return _inherits(InputRange,_React$Component),_createClass(InputRange,null,[{key:"propTypes",get:function(){return{allowSameValues:_propTypes2.default.bool,ariaLabelledby:_propTypes2.default.string,ariaControls:_propTypes2.default.string,classNames:_propTypes2.default.objectOf(_propTypes2.default.string),disabled:_propTypes2.default.bool,draggableTrack:_propTypes2.default.bool,formatLabel:_propTypes2.default.func,maxValue:_rangePropType2.default,minValue:_rangePropType2.default,name:_propTypes2.default.string,onChangeStart:_propTypes2.default.func,onChange:_propTypes2.default.func.isRequired,onChangeComplete:_propTypes2.default.func,step:_propTypes2.default.number,value:_valuePropType2.default}}},{key:"defaultProps",get:function(){return{allowSameValues:!1,classNames:_defaultClassNames2.default,disabled:!1,maxValue:10,minValue:0,step:1}}}]),_createClass(InputRange,[{key:"componentWillUnmount",value:function(){this.removeDocumentMouseUpListener(),this.removeDocumentTouchEndListener()}},{key:"getComponentClassName",value:function(){return this.props.disabled?this.props.classNames.disabledInputRange:this.props.classNames.inputRange}},{key:"getTrackClientRect",value:function(){return this.trackNode.getClientRect()}},{key:"getKeyByPosition",value:function(position){var values=valueTransformer.getValueFromProps(this.props,this.isMultiValue()),positions=valueTransformer.getPositionsFromValues(values,this.props.minValue,this.props.maxValue,this.getTrackClientRect());if(this.isMultiValue()){if((0,_utils.distanceTo)(position,positions.min)<(0,_utils.distanceTo)(position,positions.max))return"min"}return"max"}},{key:"getKeys",value:function(){return this.isMultiValue()?["min","max"]:["max"]}},{key:"hasStepDifference",value:function(values){var currentValues=valueTransformer.getValueFromProps(this.props,this.isMultiValue());return(0,_utils.length)(values.min,currentValues.min)>=this.props.step||(0,_utils.length)(values.max,currentValues.max)>=this.props.step}},{key:"isMultiValue",value:function(){return(0,_utils.isObject)(this.props.value)}},{key:"isWithinRange",value:function(values){return this.isMultiValue()?values.min>=this.props.minValue&&values.max<=this.props.maxValue&&this.props.allowSameValues?values.min<=values.max:values.min<values.max:values.max>=this.props.minValue&&values.max<=this.props.maxValue}},{key:"shouldUpdate",value:function(values){return this.isWithinRange(values)&&this.hasStepDifference(values)}},{key:"updatePosition",value:function(key,position){var values=valueTransformer.getValueFromProps(this.props,this.isMultiValue()),positions=valueTransformer.getPositionsFromValues(values,this.props.minValue,this.props.maxValue,this.getTrackClientRect());positions[key]=position,this.lastKeyMoved=key,this.updatePositions(positions)}},{key:"updatePositions",value:function(positions){var values={min:valueTransformer.getValueFromPosition(positions.min,this.props.minValue,this.props.maxValue,this.getTrackClientRect()),max:valueTransformer.getValueFromPosition(positions.max,this.props.minValue,this.props.maxValue,this.getTrackClientRect())},transformedValues={min:valueTransformer.getStepValueFromValue(values.min,this.props.step),max:valueTransformer.getStepValueFromValue(values.max,this.props.step)};this.updateValues(transformedValues)}},{key:"updateValue",value:function(key,value){var values=valueTransformer.getValueFromProps(this.props,this.isMultiValue());values[key]=value,this.updateValues(values)}},{key:"updateValues",value:function(values){this.shouldUpdate(values)&&this.props.onChange(this.isMultiValue()?values:values.max)}},{key:"incrementValue",value:function(key){var values=valueTransformer.getValueFromProps(this.props,this.isMultiValue()),value=values[key]+this.props.step;this.updateValue(key,value)}},{key:"decrementValue",value:function(key){var values=valueTransformer.getValueFromProps(this.props,this.isMultiValue()),value=values[key]-this.props.step;this.updateValue(key,value)}},{key:"addDocumentMouseUpListener",value:function(){this.removeDocumentMouseUpListener(),this.node.ownerDocument.addEventListener("mouseup",this.handleMouseUp)}},{key:"addDocumentTouchEndListener",value:function(){this.removeDocumentTouchEndListener(),this.node.ownerDocument.addEventListener("touchend",this.handleTouchEnd)}},{key:"removeDocumentMouseUpListener",value:function(){this.node.ownerDocument.removeEventListener("mouseup",this.handleMouseUp)}},{key:"removeDocumentTouchEndListener",value:function(){this.node.ownerDocument.removeEventListener("touchend",this.handleTouchEnd)}},{key:"handleSliderDrag",value:function(event,key){var _this2=this;if(!this.props.disabled){var position=valueTransformer.getPositionFromEvent(event,this.getTrackClientRect());this.isSliderDragging=!0,requestAnimationFrame(function(){return _this2.updatePosition(key,position)})}}},{key:"handleTrackDrag",value:function(event,prevEvent){if(!this.props.disabled&&this.props.draggableTrack&&!this.isSliderDragging){var _props=this.props,maxValue=_props.maxValue,minValue=_props.minValue,_props$value=_props.value,max=_props$value.max,min=_props$value.min,position=valueTransformer.getPositionFromEvent(event,this.getTrackClientRect()),value=valueTransformer.getValueFromPosition(position,minValue,maxValue,this.getTrackClientRect()),stepValue=valueTransformer.getStepValueFromValue(value,this.props.step),prevPosition=valueTransformer.getPositionFromEvent(prevEvent,this.getTrackClientRect()),prevValue=valueTransformer.getValueFromPosition(prevPosition,minValue,maxValue,this.getTrackClientRect()),prevStepValue=valueTransformer.getStepValueFromValue(prevValue,this.props.step),offset=prevStepValue-stepValue,transformedValues={min:min-offset,max:max-offset};this.updateValues(transformedValues)}}},{key:"handleSliderKeyDown",value:function(event,key){if(!this.props.disabled)switch(event.keyCode){case _keyCodes.LEFT_ARROW:case _keyCodes.DOWN_ARROW:event.preventDefault(),this.decrementValue(key);break;case _keyCodes.RIGHT_ARROW:case _keyCodes.UP_ARROW:event.preventDefault(),this.incrementValue(key)}}},{key:"handleTrackMouseDown",value:function(event,position){if(!this.props.disabled){var _props2=this.props,maxValue=_props2.maxValue,minValue=_props2.minValue,_props2$value=_props2.value,max=_props2$value.max,min=_props2$value.min;event.preventDefault();var value=valueTransformer.getValueFromPosition(position,minValue,maxValue,this.getTrackClientRect()),stepValue=valueTransformer.getStepValueFromValue(value,this.props.step);(!this.props.draggableTrack||stepValue>max||stepValue<min)&&this.updatePosition(this.getKeyByPosition(position),position)}}},{key:"handleInteractionStart",value:function(){this.props.onChangeStart&&this.props.onChangeStart(this.props.value),this.props.onChangeComplete&&!(0,_utils.isDefined)(this.startValue)&&(this.startValue=this.props.value)}},{key:"handleInteractionEnd",value:function(){this.isSliderDragging&&(this.isSliderDragging=!1),this.props.onChangeComplete&&(0,_utils.isDefined)(this.startValue)&&(this.startValue!==this.props.value&&this.props.onChangeComplete(this.props.value),this.startValue=null)}},{key:"handleKeyDown",value:function(event){this.handleInteractionStart(event)}},{key:"handleKeyUp",value:function(event){this.handleInteractionEnd(event)}},{key:"handleMouseDown",value:function(event){this.handleInteractionStart(event),this.addDocumentMouseUpListener()}},{key:"handleMouseUp",value:function(event){this.handleInteractionEnd(event),this.removeDocumentMouseUpListener()}},{key:"handleTouchStart",value:function(event){this.handleInteractionStart(event),this.addDocumentTouchEndListener()}},{key:"handleTouchEnd",value:function(event){this.handleInteractionEnd(event),this.removeDocumentTouchEndListener()}},{key:"renderSliders",value:function(){var _this3=this,values=valueTransformer.getValueFromProps(this.props,this.isMultiValue()),percentages=valueTransformer.getPercentagesFromValues(values,this.props.minValue,this.props.maxValue);return(this.props.allowSameValues&&"min"===this.lastKeyMoved?this.getKeys().reverse():this.getKeys()).map(function(key){var value=values[key],percentage=percentages[key],_props3=_this3.props,maxValue=_props3.maxValue,minValue=_props3.minValue;return"min"===key?maxValue=values.max:minValue=values.min,_react2.default.createElement(_slider2.default,{ariaLabelledby:_this3.props.ariaLabelledby,ariaControls:_this3.props.ariaControls,classNames:_this3.props.classNames,formatLabel:_this3.props.formatLabel,key:key,maxValue:maxValue,minValue:minValue,onSliderDrag:_this3.handleSliderDrag,onSliderKeyDown:_this3.handleSliderKeyDown,percentage:percentage,type:key,value:value})})}},{key:"renderHiddenInputs",value:function(){var _this4=this;if(!this.props.name)return[];var isMultiValue=this.isMultiValue(),values=valueTransformer.getValueFromProps(this.props,isMultiValue);return this.getKeys().map(function(key){var value=values[key],name=isMultiValue?""+_this4.props.name+(0,_utils.captialize)(key):_this4.props.name;return _react2.default.createElement("input",{key:key,type:"hidden",name:name,value:value})})}},{key:"render",value:function(){var _this5=this,componentClassName=this.getComponentClassName(),values=valueTransformer.getValueFromProps(this.props,this.isMultiValue()),percentages=valueTransformer.getPercentagesFromValues(values,this.props.minValue,this.props.maxValue);return _react2.default.createElement("div",{"aria-disabled":this.props.disabled,ref:function(node){_this5.node=node},className:componentClassName,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,onMouseDown:this.handleMouseDown,onTouchStart:this.handleTouchStart},_react2.default.createElement(_label2.default,{classNames:this.props.classNames,formatLabel:this.props.formatLabel,type:"min"},this.props.minValue),_react2.default.createElement(_track2.default,{classNames:this.props.classNames,draggableTrack:this.props.draggableTrack,ref:function(trackNode){_this5.trackNode=trackNode},percentages:percentages,onTrackDrag:this.handleTrackDrag,onTrackMouseDown:this.handleTrackMouseDown},this.renderSliders()),_react2.default.createElement(_label2.default,{classNames:this.props.classNames,formatLabel:this.props.formatLabel,type:"max"},this.props.maxValue),this.renderHiddenInputs())}}]),InputRange}(_react2.default.Component),_applyDecoratedDescriptor(_class.prototype,"handleSliderDrag",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleSliderDrag"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleTrackDrag",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleTrackDrag"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleSliderKeyDown",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleSliderKeyDown"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleTrackMouseDown",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleTrackMouseDown"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleInteractionStart",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleInteractionStart"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleInteractionEnd",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleInteractionEnd"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleKeyDown",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleKeyDown"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleKeyUp",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleKeyUp"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleMouseDown",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleMouseDown"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleMouseUp",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleMouseUp"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleTouchStart",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleTouchStart"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleTouchEnd",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleTouchEnd"),_class.prototype),_class);exports.default=InputRange,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function getPercentageFromPosition(position,clientRect){var length=clientRect.width;return position.x/length||0}function getValueFromPosition(position,minValue,maxValue,clientRect){return minValue+(maxValue-minValue)*getPercentageFromPosition(position,clientRect)}function getValueFromProps(props,isMultiValue){return isMultiValue?_extends({},props.value):{min:props.minValue,max:props.value}}function getPercentageFromValue(value,minValue,maxValue){return((0,_utils.clamp)(value,minValue,maxValue)-minValue)/(maxValue-minValue)||0}function getPercentagesFromValues(values,minValue,maxValue){return{min:getPercentageFromValue(values.min,minValue,maxValue),max:getPercentageFromValue(values.max,minValue,maxValue)}}function getPositionFromValue(value,minValue,maxValue,clientRect){var length=clientRect.width;return{x:getPercentageFromValue(value,minValue,maxValue)*length,y:0}}function getPositionsFromValues(values,minValue,maxValue,clientRect){return{min:getPositionFromValue(values.min,minValue,maxValue,clientRect),max:getPositionFromValue(values.max,minValue,maxValue,clientRect)}}function getPositionFromEvent(event,clientRect){var length=clientRect.width,_ref=event.touches?event.touches[0]:event,clientX=_ref.clientX;return{x:(0,_utils.clamp)(clientX-clientRect.left,0,length),y:0}}function getStepValueFromValue(value,valuePerStep){return Math.round(value/valuePerStep)*valuePerStep}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target};exports.getPercentageFromPosition=getPercentageFromPosition,exports.getValueFromPosition=getValueFromPosition,exports.getValueFromProps=getValueFromProps,exports.getPercentageFromValue=getPercentageFromValue,exports.getPercentagesFromValues=getPercentagesFromValues,exports.getPositionFromValue=getPositionFromValue,exports.getPositionsFromValues=getPositionsFromValues,exports.getPositionFromEvent=getPositionFromEvent,exports.getStepValueFromValue=getStepValueFromValue;var _utils=__webpack_require__(45)},function(module,exports,__webpack_require__){"use strict";function captialize(string){return string.charAt(0).toUpperCase()+string.slice(1)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=captialize,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function clamp(value,min,max){return Math.min(Math.max(value,min),max)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=clamp,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function distanceTo(pointA,pointB){var xDiff=Math.pow(pointB.x-pointA.x,2),yDiff=Math.pow(pointB.y-pointA.y,2);return Math.sqrt(xDiff+yDiff)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=distanceTo,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function isDefined(value){return void 0!==value&&null!==value}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=isDefined,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function isNumber(value){return"number"==typeof value}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=isNumber,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function isObject(value){return null!==value&&"object"===(void 0===value?"undefined":_typeof(value))}Object.defineProperty(exports,"__esModule",{value:!0});var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};exports.default=isObject,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function length(numA,numB){return Math.abs(numA-numB)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=length,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var DEFAULT_CLASS_NAMES={activeTrack:"input-range__track input-range__track--active",disabledInputRange:"input-range input-range--disabled",inputRange:"input-range",labelContainer:"input-range__label-container",maxLabel:"input-range__label input-range__label--max",minLabel:"input-range__label input-range__label--min",slider:"input-range__slider",sliderContainer:"input-range__slider-container",track:"input-range__track input-range__track--background",valueLabel:"input-range__label input-range__label--value"};exports.default=DEFAULT_CLASS_NAMES,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function rangePropType(props){var maxValue=props.maxValue,minValue=props.minValue;return(0,_utils.isNumber)(minValue)&&(0,_utils.isNumber)(maxValue)?minValue>=maxValue?new Error('"minValue" must be smaller than "maxValue"'):void 0:new Error('"minValue" and "maxValue" must be a number')}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=rangePropType;var _utils=__webpack_require__(45);module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function valuePropType(props,propName){var maxValue=props.maxValue,minValue=props.minValue,value=props[propName];return(0,_utils.isNumber)(value)||(0,_utils.isObject)(value)&&(0,_utils.isNumber)(value.min)&&(0,_utils.isNumber)(value.max)?(0,_utils.isNumber)(value)&&(value<minValue||value>maxValue)?new Error('"'+propName+'" must be in between "minValue" and "maxValue"'):(0,_utils.isObject)(value)&&(value.min<minValue||value.min>maxValue||value.max<minValue||value.max>maxValue)?new Error('"'+propName+'" must be in between "minValue" and "maxValue"'):void 0:new Error('"'+propName+'" must be a number or a range object')}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=valuePropType;var _utils=__webpack_require__(45);module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}function _applyDecoratedDescriptor(target,property,decorators,descriptor,context){var desc={};return Object.keys(descriptor).forEach(function(key){desc[key]=descriptor[key]}),desc.enumerable=!!desc.enumerable,desc.configurable=!!desc.configurable,("value"in desc||desc.initializer)&&(desc.writable=!0),desc=decorators.slice().reverse().reduce(function(desc,decorator){return decorator(target,property,desc)||desc},desc),context&&void 0!==desc.initializer&&(desc.value=desc.initializer?desc.initializer.call(context):void 0,desc.initializer=void 0),void 0===desc.initializer&&(Object.defineProperty(target,property,desc),desc=null),desc}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _class,_createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_propTypes=__webpack_require__(11),_propTypes2=_interopRequireDefault(_propTypes),_autobindDecorator=__webpack_require__(60),_autobindDecorator2=_interopRequireDefault(_autobindDecorator),_label=__webpack_require__(90),_label2=_interopRequireDefault(_label),Slider=(_class=function(_React$Component){function Slider(props){_classCallCheck(this,Slider);var _this=_possibleConstructorReturn(this,(Slider.__proto__||Object.getPrototypeOf(Slider)).call(this,props));return _this.node=null,_this}return _inherits(Slider,_React$Component),_createClass(Slider,null,[{key:"propTypes",get:function(){return{ariaLabelledby:_propTypes2.default.string,ariaControls:_propTypes2.default.string,classNames:_propTypes2.default.objectOf(_propTypes2.default.string).isRequired,formatLabel:_propTypes2.default.func,maxValue:_propTypes2.default.number,minValue:_propTypes2.default.number,onSliderDrag:_propTypes2.default.func.isRequired,onSliderKeyDown:_propTypes2.default.func.isRequired,percentage:_propTypes2.default.number.isRequired,type:_propTypes2.default.string.isRequired,value:_propTypes2.default.number.isRequired}}}]),_createClass(Slider,[{key:"componentWillUnmount",value:function(){this.removeDocumentMouseMoveListener(),this.removeDocumentMouseUpListener(),this.removeDocumentTouchEndListener(),this.removeDocumentTouchMoveListener()}},{key:"getStyle",value:function(){return{position:"absolute",left:100*(this.props.percentage||0)+"%"}}},{key:"addDocumentMouseMoveListener",value:function(){this.removeDocumentMouseMoveListener(),this.node.ownerDocument.addEventListener("mousemove",this.handleMouseMove)}},{key:"addDocumentMouseUpListener",value:function(){this.removeDocumentMouseUpListener(),this.node.ownerDocument.addEventListener("mouseup",this.handleMouseUp)}},{key:"addDocumentTouchMoveListener",value:function(){this.removeDocumentTouchMoveListener(),this.node.ownerDocument.addEventListener("touchmove",this.handleTouchMove)}},{key:"addDocumentTouchEndListener",value:function(){this.removeDocumentTouchEndListener(),this.node.ownerDocument.addEventListener("touchend",this.handleTouchEnd)}},{key:"removeDocumentMouseMoveListener",value:function(){this.node.ownerDocument.removeEventListener("mousemove",this.handleMouseMove)}},{key:"removeDocumentMouseUpListener",value:function(){this.node.ownerDocument.removeEventListener("mouseup",this.handleMouseUp)}},{key:"removeDocumentTouchMoveListener",value:function(){this.node.ownerDocument.removeEventListener("touchmove",this.handleTouchMove)}},{key:"removeDocumentTouchEndListener",value:function(){this.node.ownerDocument.removeEventListener("touchend",this.handleTouchEnd)}},{key:"handleMouseDown",value:function(){this.addDocumentMouseMoveListener(),this.addDocumentMouseUpListener()}},{key:"handleMouseUp",value:function(){this.removeDocumentMouseMoveListener(),this.removeDocumentMouseUpListener()}},{key:"handleMouseMove",value:function(event){this.props.onSliderDrag(event,this.props.type)}},{key:"handleTouchStart",value:function(){this.addDocumentTouchEndListener(),this.addDocumentTouchMoveListener()}},{key:"handleTouchMove",value:function(event){this.props.onSliderDrag(event,this.props.type)}},{key:"handleTouchEnd",value:function(){this.removeDocumentTouchMoveListener(),this.removeDocumentTouchEndListener()}},{key:"handleKeyDown",value:function(event){this.props.onSliderKeyDown(event,this.props.type)}},{key:"render",value:function(){var _this2=this,style=this.getStyle();return _react2.default.createElement("span",{className:this.props.classNames.sliderContainer,ref:function(node){_this2.node=node},style:style},_react2.default.createElement(_label2.default,{classNames:this.props.classNames,formatLabel:this.props.formatLabel,type:"value"},this.props.value),_react2.default.createElement("div",{"aria-labelledby":this.props.ariaLabelledby,"aria-controls":this.props.ariaControls,"aria-valuemax":this.props.maxValue,"aria-valuemin":this.props.minValue,"aria-valuenow":this.props.value,className:this.props.classNames.slider,draggable:"false",onKeyDown:this.handleKeyDown,onMouseDown:this.handleMouseDown,onTouchStart:this.handleTouchStart,role:"slider",tabIndex:"0"}))}}]),Slider}(_react2.default.Component),_applyDecoratedDescriptor(_class.prototype,"handleMouseDown",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleMouseDown"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleMouseUp",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleMouseUp"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleMouseMove",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleMouseMove"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleTouchStart",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleTouchStart"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleTouchMove",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleTouchMove"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleTouchEnd",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleTouchEnd"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleKeyDown",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleKeyDown"),_class.prototype),_class);exports.default=Slider,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}function _applyDecoratedDescriptor(target,property,decorators,descriptor,context){var desc={};return Object.keys(descriptor).forEach(function(key){desc[key]=descriptor[key]}),desc.enumerable=!!desc.enumerable,desc.configurable=!!desc.configurable,("value"in desc||desc.initializer)&&(desc.writable=!0),desc=decorators.slice().reverse().reduce(function(desc,decorator){return decorator(target,property,desc)||desc},desc),context&&void 0!==desc.initializer&&(desc.value=desc.initializer?desc.initializer.call(context):void 0,desc.initializer=void 0),void 0===desc.initializer&&(Object.defineProperty(target,property,desc),desc=null),desc}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _class,_createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_propTypes=__webpack_require__(11),_propTypes2=_interopRequireDefault(_propTypes),_autobindDecorator=__webpack_require__(60),_autobindDecorator2=_interopRequireDefault(_autobindDecorator),Track=(_class=function(_React$Component){function Track(props){_classCallCheck(this,Track);var _this=_possibleConstructorReturn(this,(Track.__proto__||Object.getPrototypeOf(Track)).call(this,props));return _this.node=null,_this.trackDragEvent=null,_this}return _inherits(Track,_React$Component),_createClass(Track,null,[{key:"propTypes",get:function(){return{children:_propTypes2.default.node.isRequired,classNames:_propTypes2.default.objectOf(_propTypes2.default.string).isRequired,draggableTrack:_propTypes2.default.bool,onTrackDrag:_propTypes2.default.func,onTrackMouseDown:_propTypes2.default.func.isRequired,percentages:_propTypes2.default.objectOf(_propTypes2.default.number).isRequired}}}]),_createClass(Track,[{key:"getClientRect",value:function(){return this.node.getBoundingClientRect()}},{key:"getActiveTrackStyle",value:function(){var width=100*(this.props.percentages.max-this.props.percentages.min)+"%";return{left:100*this.props.percentages.min+"%",width:width}}},{key:"addDocumentMouseMoveListener",value:function(){this.removeDocumentMouseMoveListener(),this.node.ownerDocument.addEventListener("mousemove",this.handleMouseMove)}},{key:"addDocumentMouseUpListener",value:function(){this.removeDocumentMouseUpListener(),this.node.ownerDocument.addEventListener("mouseup",this.handleMouseUp)}},{key:"removeDocumentMouseMoveListener",value:function(){this.node.ownerDocument.removeEventListener("mousemove",this.handleMouseMove)}},{key:"removeDocumentMouseUpListener",value:function(){this.node.ownerDocument.removeEventListener("mouseup",this.handleMouseUp)}},{key:"handleMouseMove",value:function(event){this.props.draggableTrack&&(null!==this.trackDragEvent&&this.props.onTrackDrag(event,this.trackDragEvent),this.trackDragEvent=event)}},{key:"handleMouseUp",value:function(){this.props.draggableTrack&&(this.removeDocumentMouseMoveListener(),this.removeDocumentMouseUpListener(),this.trackDragEvent=null)}},{key:"handleMouseDown",value:function(event){var clientX=event.touches?event.touches[0].clientX:event.clientX,trackClientRect=this.getClientRect(),position={x:clientX-trackClientRect.left,y:0};this.props.onTrackMouseDown(event,position),this.props.draggableTrack&&(this.addDocumentMouseMoveListener(),this.addDocumentMouseUpListener())}},{key:"handleTouchStart",value:function(event){event.preventDefault(),this.handleMouseDown(event)}},{key:"render",value:function(){var _this2=this,activeTrackStyle=this.getActiveTrackStyle();return _react2.default.createElement("div",{className:this.props.classNames.track,onMouseDown:this.handleMouseDown,onTouchStart:this.handleTouchStart,ref:function(node){_this2.node=node}},_react2.default.createElement("div",{style:activeTrackStyle,className:this.props.classNames.activeTrack}),this.props.children)}}]),Track}(_react2.default.Component),_applyDecoratedDescriptor(_class.prototype,"handleMouseMove",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleMouseMove"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleMouseUp",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleMouseUp"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleMouseDown",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleMouseDown"),_class.prototype),_applyDecoratedDescriptor(_class.prototype,"handleTouchStart",[_autobindDecorator2.default],Object.getOwnPropertyDescriptor(_class.prototype,"handleTouchStart"),_class.prototype),_class);exports.default=Track,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.DOWN_ARROW=40,exports.LEFT_ARROW=37,exports.RIGHT_ARROW=39,exports.UP_ARROW=38},function(module,exports,__webpack_require__){"use strict";(function($){function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_ArtistSentence=(_interopRequireDefault(_Link),__webpack_require__(20)),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions3),AddSeedField=function(_React$Component){function AddSeedField(props){_classCallCheck(this,AddSeedField);var _this=_possibleConstructorReturn(this,(AddSeedField.__proto__||Object.getPrototypeOf(AddSeedField)).call(this,props));return _this.state={value:""},_this.id=helpers.generateGuid(),_this.timer=null,_this.handleClick=_this.handleClick.bind(_this),_this}return _inherits(AddSeedField,_React$Component),_createClass(AddSeedField,[{key:"componentDidMount",value:function(){window.addEventListener("click",this.handleClick,!1),this.props.genres||this.props.spotifyActions.getGenres()}},{key:"componentWillUnmount",value:function(){window.removeEventListener("click",this.handleClick,!1)}},{key:"handleClick",value:function(e){$(e.target).closest(".add-seed-field").length<=0&&this.props.spotifyActions.clearAutocompleteResults(this.id)}},{key:"handleChange",value:function(e,value){var self=this;this.setState({value:value}),clearTimeout(this.timer),this.timer=setTimeout(function(){self.setState({searching:!0}),self.props.spotifyActions.getAutocompleteResults(self.id,value,["artist","track","genre"])},500)}},{key:"handleSelect",value:function(e,item){this.setState({value:""}),this.props.onSelect(e,item.uri),this.props.spotifyActions.clearAutocompleteResults(this.id)}},{key:"results",value:function(){return void 0===this.props.results?null:void 0===this.props.results[this.id]?null:this.props.results[this.id]}},{key:"renderResults",value:function(type){var _this2=this,results=this.results();if(!results||void 0===results[type]||results[type].length<=0)return null;var items=results[type].slice(0,3);return _react2.default.createElement("div",{className:"type"},_react2.default.createElement("h4",{className:"mid_grey-text"},type),items.map(function(item){return _react2.default.createElement("div",{className:"result",key:item.uri,onClick:function(e){return _this2.handleSelect(e,item)}},item.name,"tracks"==type?_react2.default.createElement("span",{className:"mid_grey-text"}," ",_react2.default.createElement(_ArtistSentence2.default,{artists:item.artists,nolinks:!0})):null)}))}},{key:"render",value:function(){var _this3=this,className="field autocomplete-field add-seed-field";return this.results()&&this.results().loading&&(className+=" loading"),_react2.default.createElement("div",{className:className},_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",value:this.state.value,onChange:function(e){return _this3.handleChange(e,e.target.value)},placeholder:this.props.placeholder?this.props.placeholder:"Start typing..."})),_react2.default.createElement("div",{className:"results"},this.renderResults("artists"),this.renderResults("tracks"),this.renderResults("genres")))}}]),AddSeedField}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{genres:state.spotify.genres?state.spotify.genres:null,results:state.spotify.autocomplete_results?state.spotify.autocomplete_results:{}}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(AddSeedField)}).call(exports,__webpack_require__(17))},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_PlaylistGrid=(_interopRequireDefault(_Link),__webpack_require__(39)),_PlaylistGrid2=_interopRequireDefault(_PlaylistGrid),_Header=__webpack_require__(14),_Header2=_interopRequireDefault(_Header),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_Parallax=__webpack_require__(28),_Parallax2=_interopRequireDefault(_Parallax),_Thumbnail=__webpack_require__(10),_URILink=(_interopRequireDefault(_Thumbnail),__webpack_require__(18)),_Dater=(_interopRequireDefault(_URILink),__webpack_require__(24)),_helpers=(_interopRequireDefault(_Dater),__webpack_require__(1)),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions3),DiscoverFeatured=function(_React$Component){function DiscoverFeatured(props){return _classCallCheck(this,DiscoverFeatured),_possibleConstructorReturn(this,(DiscoverFeatured.__proto__||Object.getPrototypeOf(DiscoverFeatured)).call(this,props))}return _inherits(DiscoverFeatured,_React$Component),_createClass(DiscoverFeatured,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Featured playlists"),this.props.featured_playlists||this.props.spotifyActions.getFeaturedPlaylists()}},{key:"playPlaylist",value:function(e,playlist){this.props.mopidyActions.playPlaylist(playlist.uri)}},{key:"handleContextMenu",value:function(e,item){e.preventDefault();var data={e:e,context:"playlist",uris:[item.uri],items:[item]};this.props.uiActions.showContextMenu(data)}},{key:"renderIntro",value:function(){var playlist=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return playlist?_react2.default.createElement("div",{className:"intro preserve-3d"},_react2.default.createElement(_Parallax2.default,{image:playlist.images?playlist.images.large:null,blur:!0})):_react2.default.createElement("div",{className:"intro"},_react2.default.createElement(_Parallax2.default,{disabled:this.props.disable_parallax}))}},{key:"render",value:function(){var _this2=this;if(helpers.isLoading(this.props.load_queue,["spotify_browse/featured-playlists"]))return _react2.default.createElement("div",{className:"view discover-featured-view"},_react2.default.createElement(_Header2.default,{className:"overlay",uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"star",type:"material"}),"Featured playlists"),_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})));var playlists=[];if(this.props.featured_playlists)for(var i=0;i<this.props.featured_playlists.playlists.length;i++){var uri=this.props.featured_playlists.playlists[i];this.props.playlists.hasOwnProperty(uri)&&playlists.push(this.props.playlists[uri])}var first_playlist=playlists[0],options=_react2.default.createElement("a",{className:"button button--no-hover",onClick:function(e){_this2.props.uiActions.hideContextMenu(),_this2.props.spotifyActions.getFeaturedPlaylists()}},_react2.default.createElement(_Icon2.default,{name:"refresh"}),"Refresh");return _react2.default.createElement("div",{className:"view discover-featured-view preserve-3d"},_react2.default.createElement(_Header2.default,{className:"overlay",options:options},_react2.default.createElement(_Icon2.default,{name:"star",type:"material"}),"Featured playlists"),this.renderIntro(first_playlist),_react2.default.createElement("section",{className:"content-wrapper grid-wrapper"},playlists?_react2.default.createElement(_PlaylistGrid2.default,{playlists:playlists}):null))}}]),DiscoverFeatured}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{theme:state.ui.theme,load_queue:state.ui.load_queue,featured_playlists:state.spotify.featured_playlists,playlists:state.core.playlists}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(DiscoverFeatured)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Header=__webpack_require__(14),_Header2=_interopRequireDefault(_Header),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_CategoryGrid=__webpack_require__(232),_CategoryGrid2=_interopRequireDefault(_CategoryGrid),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions2),DiscoverCategories=function(_React$Component){function DiscoverCategories(props){return _classCallCheck(this,DiscoverCategories),_possibleConstructorReturn(this,(DiscoverCategories.__proto__||Object.getPrototypeOf(DiscoverCategories)).call(this,props))}return _inherits(DiscoverCategories,_React$Component),_createClass(DiscoverCategories,[{key:"componentDidMount",value:function(){(!this.props.categories||Object.keys(this.props.categories).length<=1)&&this.props.spotifyActions.getCategories(),this.props.uiActions.setWindowTitle("Genre / Mood")}},{key:"render",value:function(){if(helpers.isLoading(this.props.load_queue,["spotify_browse/categories"]))return _react2.default.createElement("div",{className:"view discover-categories-view"},_react2.default.createElement(_Header2.default,{icon:"grid",title:"Genre / Mood"}),_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})));var categories=[];if(this.props.categories)for(var key in this.props.categories)this.props.categories.hasOwnProperty(key)&&categories.push(this.props.categories[key]);return _react2.default.createElement("div",{className:"view discover-categories-view"},_react2.default.createElement(_Header2.default,{uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"mood",type:"material"}),"Genre / Mood"),_react2.default.createElement("section",{className:"content-wrapper grid-wrapper"},_react2.default.createElement(_CategoryGrid2.default,{categories:categories})))}}]),DiscoverCategories}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{categories:state.spotify.categories,load_queue:state.ui.load_queue}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(DiscoverCategories)},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_GridItem=__webpack_require__(35),_GridItem2=_interopRequireDefault(_GridItem);exports.default=(0,_react.memo)(function(props){if(!props.categories)return null;var className="grid grid--tiles";return props.className&&(className+=" "+props.className),props.mini&&(className+=" grid--mini"),_react2.default.createElement("div",{className:className},props.categories.map(function(category){return _react2.default.createElement(_GridItem2.default,{key:category.id,type:"category",item:category,link:"/discover/categories/"+encodeURIComponent(category.id)})}))})},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Header=__webpack_require__(14),_Header2=_interopRequireDefault(_Header),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_PlaylistGrid=__webpack_require__(39),_PlaylistGrid2=_interopRequireDefault(_PlaylistGrid),_LazyLoadListener=__webpack_require__(21),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions2),DiscoverCategory=function(_React$Component){function DiscoverCategory(props){return _classCallCheck(this,DiscoverCategory),_possibleConstructorReturn(this,(DiscoverCategory.__proto__||Object.getPrototypeOf(DiscoverCategory)).call(this,props))}return _inherits(DiscoverCategory,_React$Component),_createClass(DiscoverCategory,[{key:"componentDidMount",value:function(){this.loadCategory(),this.setWindowTitle()}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.match.params.id!=this.props.match.params.id&&this.loadCategory(),!this.props.category&&nextProps.category&&this.setWindowTitle(nextProps.category)}},{key:"setWindowTitle",value:function(){var category=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.category;category?this.props.uiActions.setWindowTitle(category.name):this.props.uiActions.setWindowTitle("Genre / Mood")}},{key:"loadCategory",value:function(){this.props.category||this.props.spotifyActions.getCategory(this.props.match.params.id),this.props.category.playlists_uris||this.props.spotifyActions.getCategoryPlaylists(this.props.match.params.id)}},{key:"loadMore",value:function(){this.props.spotifyActions.getMore(this.props.category.playlists_more,null,{type:"SPOTIFY_CATEGORY_PLAYLISTS_LOADED_MORE",uri:"category:"+this.props.match.params.id})}},{key:"render",value:function(){var _this2=this;if(helpers.isLoading(this.props.load_queue,["spotify_browse/categories/"]))return _react2.default.createElement("div",{className:"view discover-categories-view"},_react2.default.createElement(_Header2.default,null,_react2.default.createElement(_Icon2.default,{name:"mood",type:"material"}),this.props.category?this.props.category.name:"Category"),_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})));if(!this.props.category)return null;var category=helpers.collate(this.props.category,{playlists:this.props.playlists});return _react2.default.createElement("div",{className:"view discover-categories-view"},_react2.default.createElement(_Header2.default,{uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"mood",type:"material"}),category.name),_react2.default.createElement("div",{className:"content-wrapper"},_react2.default.createElement("section",{className:"grid-wrapper"},_react2.default.createElement(_PlaylistGrid2.default,{playlists:category.playlists})),_react2.default.createElement(_LazyLoadListener2.default,{loadKey:category.playlists_more,showLoader:category.playlists_more,loadMore:function(){return _this2.loadMore()}})))}}]),DiscoverCategory}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{load_queue:state.ui.load_queue,playlists:state.core.playlists,category:!(!state.spotify.categories||void 0===state.spotify.categories["category:"+ownProps.match.params.id])&&state.spotify.categories["category:"+ownProps.match.params.id]}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(DiscoverCategory)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_Header=(_interopRequireDefault(_Link),__webpack_require__(14)),_Header2=_interopRequireDefault(_Header),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_AlbumGrid=__webpack_require__(38),_AlbumGrid2=_interopRequireDefault(_AlbumGrid),_Parallax=__webpack_require__(28),_Parallax2=_interopRequireDefault(_Parallax),_Thumbnail=__webpack_require__(10),_ArtistSentence=(_interopRequireDefault(_Thumbnail),__webpack_require__(20)),_LazyLoadListener=(_interopRequireDefault(_ArtistSentence),__webpack_require__(21)),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions3),DiscoverNewReleases=function(_React$Component){function DiscoverNewReleases(props){return _classCallCheck(this,DiscoverNewReleases),_possibleConstructorReturn(this,(DiscoverNewReleases.__proto__||Object.getPrototypeOf(DiscoverNewReleases)).call(this,props))}return _inherits(DiscoverNewReleases,_React$Component),_createClass(DiscoverNewReleases,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("New releases"),this.props.new_releases||this.props.spotifyActions.getNewReleases()}},{key:"loadMore",value:function(){this.props.spotifyActions.getMore(this.props.new_releases_more,null,{type:"SPOTIFY_NEW_RELEASES_LOADED"})}},{key:"playAlbum",value:function(e,album){this.props.mopidyActions.playURIs([album.uri],album.uri)}},{key:"handleContextMenu",value:function(e,item){e.preventDefault();var data={e:e,context:"album",uris:[item.uri],items:[item]};this.props.uiActions.showContextMenu(data)}},{key:"renderIntro",value:function(){var album=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return album?_react2.default.createElement("div",{className:"intro preserve-3d"},_react2.default.createElement(_Parallax2.default,{image:album.images?album.images.large:null,blur:!0})):_react2.default.createElement("div",{className:"intro preserve-3d"},_react2.default.createElement(_Parallax2.default,null))}},{key:"render",value:function(){var _this2=this;if(helpers.isLoading(this.props.load_queue,["spotify_browse/new-releases"]))return _react2.default.createElement("div",{className:"view discover-new-releases-view"},_react2.default.createElement(_Header2.default,null,_react2.default.createElement(_Icon2.default,{name:"new_releases",type:"material"}),"New releases"),_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})));var albums=[];if(this.props.new_releases){var _iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=this.props.new_releases[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var uri=_step.value;this.props.albums.hasOwnProperty(uri)&&albums.push(this.props.albums[uri])}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}}var first_album=albums[0];first_album&&(first_album=helpers.collate(first_album,{artists:this.props.artists}));var options=_react2.default.createElement("a",{className:"button button--no-hover",onClick:function(e){_this2.props.uiActions.hideContextMenu(),_this2.props.spotifyActions.getNewReleases()}},_react2.default.createElement(_Icon2.default,{name:"refresh"}),"Refresh");return _react2.default.createElement("div",{className:"view discover-new-releases-view preserve-3d"},_react2.default.createElement(_Header2.default,{className:"overlay",options:options,uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"new_releases",type:"material"}),"New releases"),this.renderIntro(first_album),_react2.default.createElement("section",{className:"content-wrapper grid-wrapper"},_react2.default.createElement(_AlbumGrid2.default,{albums:albums})),_react2.default.createElement(_LazyLoadListener2.default,{loadKey:this.props.new_releases_more,showLoader:this.props.new_releases_more,loadMore:function(){return _this2.loadMore()}}))}}]),DiscoverNewReleases}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{theme:state.ui.theme,load_queue:state.ui.load_queue,artists:state.core.artists,albums:state.core.albums,new_releases:state.spotify.new_releases?state.spotify.new_releases:null,new_releases_more:state.spotify.new_releases_more?state.spotify.new_releases_more:null,new_releases_total:state.spotify.new_releases_total?state.spotify.new_releases_total:null}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(DiscoverNewReleases)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_Header=(_interopRequireDefault(_Link),__webpack_require__(14)),_Header2=_interopRequireDefault(_Header),_ArtistGrid=__webpack_require__(34),_ArtistGrid2=_interopRequireDefault(_ArtistGrid),_List=__webpack_require__(40),_List2=_interopRequireDefault(_List),_DropdownField=__webpack_require__(25),_DropdownField2=_interopRequireDefault(_DropdownField),_FilterField=__webpack_require__(61),_FilterField2=_interopRequireDefault(_FilterField),_LazyLoadListener=__webpack_require__(21),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(55),googleActions=_interopRequireWildcard(_actions4),LibraryArtists=function(_React$Component){function LibraryArtists(props){_classCallCheck(this,LibraryArtists);var _this=_possibleConstructorReturn(this,(LibraryArtists.__proto__||Object.getPrototypeOf(LibraryArtists)).call(this,props));return _this.state={filter:"",limit:50,per_page:50},_this}return _inherits(LibraryArtists,_React$Component),_createClass(LibraryArtists,[{key:"componentWillMount",value:function(){var state=this.props.location.state?this.props.location.state:{};state.limit&&this.setState({limit:state.limit})}},{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Artists"),this.props.mopidy_library_artists||!this.props.mopidy_connected||"all"!=this.props.source&&"local"!=this.props.source||this.props.mopidyActions.getLibraryArtists(),!this.props.google_enabled||this.props.google_library_artists||!this.props.mopidy_connected||"all"!=this.props.source&&"google"!=this.props.source||this.props.googleActions.getLibraryArtists(),!this.props.spotify_enabled||"finished"==this.props.spotify_library_artists_status||"all"!=this.props.source&&"spotify"!=this.props.source||this.props.spotifyActions.getLibraryArtists()}},{key:"componentWillReceiveProps",value:function(newProps){!newProps.mopidy_connected||"all"!=newProps.source&&"local"!=newProps.source||(this.props.mopidy_connected||this.props.mopidyActions.getLibraryArtists(),"all"==this.props.source||"local"==this.props.source||newProps.mopidy_library_artists||this.props.mopidyActions.getLibraryArtists()),newProps.mopidy_connected&&newProps.google_enabled&&("all"==newProps.source||"google"==newProps.source)&&(this.props.google_enabled||this.props.googleActions.getLibraryArtists(),"all"==this.props.source||"google"==this.props.source||newProps.google_library_artists||this.props.googleActions.getLibraryArtists()),!newProps.spotify_enabled||"all"!=newProps.source&&"spotify"!=newProps.source||"finished"!=newProps.spotify_library_artists_status&&"started"!=newProps.spotify_library_artists_status&&this.props.spotifyActions.getLibraryArtists()}},{key:"handleContextMenu",value:function(e,item){var data={e:e,context:"artist",uris:[item.uri],items:[item]};this.props.uiActions.showContextMenu(data)}},{key:"loadMore",value:function(){var new_limit=this.state.limit+this.state.per_page;this.setState({limit:new_limit});var state=this.props.location&&this.props.location.state?this.props.location.state:{};state.limit=new_limit,this.props.history.replace({state:state})}},{key:"setSort",value:function(value){var reverse=!1;this.props.sort==value&&(reverse=!this.props.sort_reverse);var data={library_artists_sort_reverse:reverse,library_artists_sort:value};this.props.uiActions.set(data)}},{key:"renderView",value:function(){var _this2=this,artists=[];if(this.props.mopidy_library_artists&&("all"==this.props.source||"local"==this.props.source)){var _iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=this.props.mopidy_library_artists[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){uri=_step.value;var source=helpers.uriSource(uri),artist={uri:uri,source:source};this.props.artists.hasOwnProperty(uri)&&(artist=this.props.artists[uri]),artists.push(artist)}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}}if(this.props.google_library_artists&&("all"==this.props.source||"google"==this.props.source)){var _iteratorNormalCompletion2=!0,_didIteratorError2=!1,_iteratorError2=void 0;try{for(var _step2,_iterator2=this.props.google_library_artists[Symbol.iterator]();!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=!0){uri=_step2.value;var source=helpers.uriSource(uri),artist={uri:uri,source:source};this.props.artists.hasOwnProperty(uri)&&(artist=this.props.artists[uri]),artists.push(artist)}}catch(err){_didIteratorError2=!0,_iteratorError2=err}finally{try{!_iteratorNormalCompletion2&&_iterator2.return&&_iterator2.return()}finally{if(_didIteratorError2)throw _iteratorError2}}}if(this.props.spotify_library_artists&&("all"==this.props.source||"spotify"==this.props.source))for(var i=0;i<this.props.spotify_library_artists.length;i++){var uri=this.props.spotify_library_artists[i];this.props.artists.hasOwnProperty(uri)&&artists.push(this.props.artists[uri])}this.props.sort&&(artists=helpers.sortItems(artists,this.props.sort,this.props.sort_reverse)),""!==this.state.filter&&(artists=helpers.applyFilter("name",this.state.filter,artists));var total_artists=artists.length;return artists=artists.slice(0,this.state.limit),"list"==this.props.view?_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_List2.default,{handleContextMenu:function(e,item){return _this2.handleContextMenu(e,item)},rows:artists,thumbnail:!0,details:["followers"],middle_column:["source"],className:"artists",link_prefix:"/artist/"}),_react2.default.createElement(_LazyLoadListener2.default,{loadKey:total_artists>this.state.limit?this.state.limit:total_artists,showLoader:this.state.limit<total_artists,loadMore:function(){return _this2.loadMore()}})):_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_ArtistGrid2.default,{handleContextMenu:function(e,item){return _this2.handleContextMenu(e,item)},artists:artists}),_react2.default.createElement(_LazyLoadListener2.default,{loadKey:total_artists>this.state.limit?this.state.limit:total_artists,showLoader:this.state.limit<total_artists,loadMore:function(){return _this2.loadMore()}}))}},{key:"render",value:function(){var _this3=this,source_options=[{value:"all",label:"All"},{value:"local",label:"Local"}];this.props.spotify_enabled&&source_options.push({value:"spotify",label:"Spotify"}),this.props.google_enabled&&source_options.push({value:"google",label:"Google"});var view_options=[{label:"Thumbnails",value:"thumbnails"},{label:"List",value:"list"}],sort_options=[{label:"Default",value:null},{label:"Name",value:"name"},{label:"Followers",value:"followers"},{label:"Popularity",value:"popularity"}],options=_react2.default.createElement("span",null,_react2.default.createElement(_FilterField2.default,{initialValue:this.state.filter,handleChange:function(value){return _this3.setState({filter:value,limit:_this3.state.per_page})}}),_react2.default.createElement(_DropdownField2.default,{icon:"sort",name:"Sort",value:this.props.sort,options:sort_options,selected_icon:this.props.sort?this.props.sort_reverse?"keyboard_arrow_up":"keyboard_arrow_down":null,handleChange:function(value){_this3.setSort(value),_this3.props.uiActions.hideContextMenu()}}),_react2.default.createElement(_DropdownField2.default,{icon:"visibility",name:"View",value:this.props.view,options:view_options,handleChange:function(value){_this3.props.uiActions.set({library_artists_view:value}),_this3.props.uiActions.hideContextMenu()}}),_react2.default.createElement(_DropdownField2.default,{icon:"cloud",name:"Source",value:this.props.source,options:source_options,handleChange:function(value){_this3.props.uiActions.set({library_artists_source:value}),_this3.props.uiActions.hideContextMenu()}}));return _react2.default.createElement("div",{className:"view library-artists-view"},_react2.default.createElement(_Header2.default,{options:options,uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"recent_actors",type:"material"}),"My artists"),this.renderView())}}]),LibraryArtists}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{mopidy_connected:state.mopidy.connected,mopidy_uri_schemes:state.mopidy.uri_schemes,mopidy_library_artists:state.mopidy.library_artists,google_enabled:state.google.enabled,google_library_artists:state.google.library_artists,spotify_enabled:state.spotify.enabled,spotify_library_artists:state.spotify.library_artists,spotify_library_artists_status:void 0!==state.ui.processes.SPOTIFY_GET_LIBRARY_ARTISTS_PROCESSOR?state.ui.processes.SPOTIFY_GET_LIBRARY_ARTISTS_PROCESSOR.status:null,artists:state.core.artists,source:state.ui.library_artists_source?state.ui.library_artists_source:"all",sort:state.ui.library_artists_sort?state.ui.library_artists_sort:null,sort_reverse:!!state.ui.library_artists_sort_reverse&&state.ui.library_artists_sort_reverse,view:state.ui.library_artists_view}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch),googleActions:(0,_redux.bindActionCreators)(googleActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(LibraryArtists)},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_Dater=__webpack_require__(24),_Dater2=_interopRequireDefault(_Dater),_URILink=__webpack_require__(18),_URILink2=_interopRequireDefault(_URILink),_ContextMenuTrigger=__webpack_require__(22),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Popularity=__webpack_require__(58),_Popularity2=_interopRequireDefault(_Popularity),_helpers=__webpack_require__(1),helpers=function(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}(_helpers),ListItem=function(_React$Component){function ListItem(props){return _classCallCheck(this,ListItem),_possibleConstructorReturn(this,(ListItem.__proto__||Object.getPrototypeOf(ListItem)).call(this,props))}return _inherits(ListItem,_React$Component),_createClass(ListItem,[{key:"componentDidMount",value:function(){if(this.props.item){var item=this.props.item;if(!item.images&&this.props.lastfmActions)switch(helpers.uriType(item.uri)){case"artist":this.props.lastfmActions.getArtist(item.uri,item.name);break;case"album":item.artists&&item.artists.length>0&&this.props.lastfmActions.getAlbum(item.uri,item.artists[0].name,item.name,item.mbid?item.mbid:null)}}}},{key:"handleClick",value:function(e){"a"!==e.target.tagName.toLowerCase()&&(e.preventDefault(),this.props.history.push((this.props.link_prefix?this.props.link_prefix:"")+encodeURIComponent(this.props.item.uri)),helpers.scrollTo())}},{key:"handleMouseDown",value:function(e){"a"!==e.target.tagName.toLowerCase()&&(e.preventDefault(),this.props.history.push((this.props.link_prefix?this.props.link_prefix:"")+encodeURIComponent(this.props.item.uri)),helpers.scrollTo())}},{key:"handleContextMenu",value:function(e){this.props.handleContextMenu&&(e.preventDefault(),this.props.handleContextMenu(e,this.props.item))}},{key:"renderValue",value:function(key_string){for(var key=key_string.split("."),value=Object.assign(this.props.item),i=0;i<key.length;i++){if(void 0===value[key[i]])return null;if("string"==typeof value[key[i]]&&""==value[key[i]].replace(" ",""))return null;value=value[key[i]]}return"tracks_total"===key_string||"tracks_uris.length"===key_string?_react2.default.createElement("span",null,value," tracks"):"followers"===key_string?_react2.default.createElement("span",null,value.toLocaleString()," followers"):"added_at"===key_string?_react2.default.createElement("span",null,"Added ",_react2.default.createElement(_Dater2.default,{type:"ago",data:value})," ago"):"owner"===key_string?_react2.default.createElement(_URILink2.default,{type:"user",uri:value.uri},value.id):"popularity"===key_string?_react2.default.createElement(_Popularity2.default,{full:!0,popularity:value}):"artists"===key_string?_react2.default.createElement(_ArtistSentence2.default,{artists:value}):!0===value?_react2.default.createElement(_Icon2.default,{name:"check"}):"number"==typeof value?_react2.default.createElement("span",null,value.toLocaleString()):_react2.default.createElement("span",null,value)}},{key:"render",value:function(){var _this2=this,item=this.props.item;if(!item)return null;var class_name="list__item";return item.type&&(class_name+=" list__item--"+item.type),this.props.middle_column&&(class_name+=" list__item--has-middle-column"),this.props.thumbnail&&(class_name+=" list__item--has-thumbnail"),this.props.details&&(class_name+=" list__item--has-details"),_react2.default.createElement("div",{className:class_name,onClick:function(e){return _this2.handleClick(e)},onContextMenu:function(e){return _this2.handleContextMenu(e)}},_react2.default.createElement("div",{className:"list__item__column list__item__column--right"},this.props.right_column?this.props.right_column.map(function(column,index){return _react2.default.createElement("span",{className:"list__item__column__item list__item__column__item--"+column.replace(".","_"),key:index},_this2.renderValue(column,item))}):null,this.props.nocontext?null:_react2.default.createElement(_ContextMenuTrigger2.default,{className:"list__item__column__item list__item__column__item--context-menu-trigger subtle",onTrigger:function(e){return _this2.handleContextMenu(e)}})),_react2.default.createElement("div",{className:"list__item__column list__item__column--name"},this.props.thumbnail?_react2.default.createElement(_Thumbnail2.default,{className:"list__item__column__item list__item__column__item--thumbnail",images:item.images?item.images:null,size:"small"}):null,_react2.default.createElement("div",{className:"list__item__column__item list__item__column__item--name"},void 0!==item.name?this.renderValue("name"):_react2.default.createElement("span",{className:"grey-text"},item.uri)),this.props.details?_react2.default.createElement("ul",{className:"list__item__column__item list__item__column__item--details details"},this.props.details.map(function(detail,index){var value=_this2.renderValue(detail);return value?_react2.default.createElement("li",{className:"details__item details__item--"+detail.replace(".","_"),key:index},value):null})):null),this.props.middle_column?_react2.default.createElement("div",{className:"list__item__column list__item__column--middle"},this.props.middle_column?this.props.middle_column.map(function(column,index){return _react2.default.createElement("span",{className:"list__item__column__item list__item__column__item--"+column.replace(".","_"),key:index},_this2.renderValue(column))}):null):null)}}]),ListItem}(_react2.default.Component);exports.default=ListItem},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_AlbumGrid=(_interopRequireDefault(_Link),__webpack_require__(38)),_AlbumGrid2=_interopRequireDefault(_AlbumGrid),_List=__webpack_require__(40),_List2=_interopRequireDefault(_List),_Header=__webpack_require__(14),_Header2=_interopRequireDefault(_Header),_Thumbnail=__webpack_require__(10),_TrackList=(_interopRequireDefault(_Thumbnail),__webpack_require__(19)),_ArtistSentence=(_interopRequireDefault(_TrackList),__webpack_require__(20)),_DropdownField=(_interopRequireDefault(_ArtistSentence),__webpack_require__(25)),_DropdownField2=_interopRequireDefault(_DropdownField),_FilterField=__webpack_require__(61),_FilterField2=_interopRequireDefault(_FilterField),_LazyLoadListener=__webpack_require__(21),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(55),googleActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions5),LibraryAlbums=function(_React$Component){function LibraryAlbums(props){_classCallCheck(this,LibraryAlbums);var _this=_possibleConstructorReturn(this,(LibraryAlbums.__proto__||Object.getPrototypeOf(LibraryAlbums)).call(this,props));return _this.state={filter:"",limit:50,per_page:50},_this}return _inherits(LibraryAlbums,_React$Component),_createClass(LibraryAlbums,[{key:"componentWillMount",value:function(){var state=this.props.location.state?this.props.location.state:{};state.limit&&this.setState({limit:state.limit})}},{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Albums"),!this.props.mopidy_connected||"finished"==this.props.mopidy_library_albums_status||"started"==this.props.mopidy_library_albums_status||"all"!=this.props.source&&"local"!=this.props.source||this.props.mopidyActions.getLibraryAlbums(),!this.props.google_enabled||"finished"==this.props.google_library_albums_status||"started"==this.props.google_library_albums_status||"all"!=this.props.source&&"google"!=this.props.source||this.props.googleActions.getLibraryAlbums(),!this.props.spotify_enabled||"finished"==this.props.spotify_library_albums_status||"started"==this.props.spotify_library_albums_status||"all"!=this.props.source&&"spotify"!=this.props.source||this.props.spotifyActions.getLibraryAlbums()}},{key:"componentWillReceiveProps",value:function(newProps){!newProps.mopidy_connected||"all"!=newProps.source&&"local"!=newProps.source||(this.props.mopidy_connected||this.props.mopidyActions.getLibraryAlbums(),"all"!=this.props.source&&"local"!=this.props.source&&"finished"!=newProps.mopidy_library_albums_status&&"started"!=newProps.mopidy_library_albums_status&&this.props.mopidyActions.getLibraryAlbums()),!newProps.google_enabled||"all"!=newProps.source&&"google"!=newProps.source||(this.props.google_enabled||this.props.googleActions.getLibraryAlbums(),"all"!=this.props.source&&"google"!=this.props.source&&"finished"!=newProps.google_library_albums_status&&"started"!=newProps.google_library_albums_status&&this.props.googleActions.getLibraryAlbums()),!newProps.spotify_enabled||"all"!=newProps.source&&"spotify"!=newProps.source||"finished"!=newProps.spotify_library_albums_status&&"started"!=newProps.spotify_library_albums_status&&this.props.spotifyActions.getLibraryAlbums()}},{key:"handleContextMenu",value:function(e,item){var data={e:e,context:"album",uris:[item.uri],items:[item]};this.props.uiActions.showContextMenu(data)}},{key:"moreURIsToLoad",value:function(){var uris=[];if(this.props.albums&&this.props.library_albums)for(var i=0;i<this.props.library_albums.length;i++){var uri=this.props.library_albums[i];if(this.props.albums.hasOwnProperty(uri)||"local"!=helpers.uriSource(uri)||uris.push(uri),uris.length>=50)break}return uris}},{key:"loadMore",value:function(){var new_limit=this.state.limit+this.state.per_page;this.setState({limit:new_limit});var state=this.props.location&&this.props.location.state?this.props.location.state:{};state.limit=new_limit,this.props.history.replace({state:state})}},{key:"setSort",value:function(value){var reverse=!1;this.props.sort==value&&(reverse=!this.props.sort_reverse);var data={library_albums_sort_reverse:reverse,library_albums_sort:value};this.props.uiActions.set(data)}},{key:"renderView",value:function(){var _this2=this,albums=[];if(this.props.spotify_library_albums&&("all"==this.props.source||"spotify"==this.props.source)){var _iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=this.props.spotify_library_albums[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var uri=_step.value;this.props.albums.hasOwnProperty(uri)&&albums.push(this.props.albums[uri])}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}}if(this.props.mopidy_library_albums&&("all"==this.props.source||"local"==this.props.source)){var _iteratorNormalCompletion2=!0,_didIteratorError2=!1,_iteratorError2=void 0;try{for(var _step2,_iterator2=this.props.mopidy_library_albums[Symbol.iterator]();!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=!0){var uri=_step2.value,source=helpers.uriSource(uri),album={uri:uri,source:source};this.props.albums.hasOwnProperty(uri)&&albums.push(this.props.albums[uri])}}catch(err){_didIteratorError2=!0,_iteratorError2=err}finally{try{!_iteratorNormalCompletion2&&_iterator2.return&&_iterator2.return()}finally{if(_didIteratorError2)throw _iteratorError2}}}if(this.props.google_library_albums&&("all"==this.props.source||"google"==this.props.source)){var _iteratorNormalCompletion3=!0,_didIteratorError3=!1,_iteratorError3=void 0;try{for(var _step3,_iterator3=this.props.google_library_albums[Symbol.iterator]();!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=!0){var uri=_step3.value,source=helpers.uriSource(uri),album={uri:uri,source:source};this.props.albums.hasOwnProperty(uri)&&(album=this.props.albums[uri]),albums.push(album)}}catch(err){_didIteratorError3=!0,_iteratorError3=err}finally{try{!_iteratorNormalCompletion3&&_iterator3.return&&_iterator3.return()}finally{if(_didIteratorError3)throw _iteratorError3}}}this.props.sort&&(albums=helpers.sortItems(albums,this.props.sort,this.props.sort_reverse)),this.state.filter&&""!==this.state.filter&&(albums=helpers.applyFilter("name",this.state.filter,albums));var total_albums=albums.length;return albums=albums.slice(0,this.state.limit),"list"==this.props.view?_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_List2.default,{handleContextMenu:function(e,item){return _this2.handleContextMenu(e,item)},rows:albums,thumbnail:!0,details:["artists","tracks_uris.length"],right_column:["added_at"],className:"albums",link_prefix:"/album/"}),_react2.default.createElement(_LazyLoadListener2.default,{loadKey:total_albums>this.state.limit?this.state.limit:total_albums,showLoader:this.state.limit<total_albums,loadMore:function(){return _this2.loadMore()}})):_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_AlbumGrid2.default,{handleContextMenu:function(e,item){return _this2.handleContextMenu(e,item)},albums:albums}),_react2.default.createElement(_LazyLoadListener2.default,{loadKey:total_albums>this.state.limit?this.state.limit:total_albums,showLoader:this.state.limit<total_albums,loadMore:function(){return _this2.loadMore()}}))}},{key:"render",value:function(){var _this3=this,source_options=[{value:"all",label:"All"},{value:"local",label:"Local"}];this.props.spotify_enabled&&source_options.push({value:"spotify",label:"Spotify"}),this.props.google_enabled&&source_options.push({value:"google",label:"Google"});var view_options=[{value:"thumbnails",label:"Thumbnails"},{value:"list",label:"List"}],sort_options=[{value:null,label:"Default"},{value:"name",label:"Name"},{value:"artists.first.name",label:"Artist"},{value:"added_at",label:"Added"},{value:"tracks_uris.length",label:"Tracks"},{value:"uri",label:"Source"}],options=_react2.default.createElement("span",null,_react2.default.createElement(_FilterField2.default,{initialValue:this.state.filter,handleChange:function(value){return _this3.setState({filter:value,limit:_this3.state.per_page})}}),_react2.default.createElement(_DropdownField2.default,{icon:"sort",name:"Sort",value:this.props.sort,options:sort_options,selected_icon:this.props.sort?this.props.sort_reverse?"keyboard_arrow_up":"keyboard_arrow_down":null,handleChange:function(val){_this3.setSort(val),_this3.props.uiActions.hideContextMenu()}}),_react2.default.createElement(_DropdownField2.default,{icon:"visibility",name:"View",value:this.props.view,options:view_options,handleChange:function(val){_this3.props.uiActions.set({library_albums_view:val}),_this3.props.uiActions.hideContextMenu()}}),_react2.default.createElement(_DropdownField2.default,{icon:"cloud",name:"Source",value:this.props.source,options:source_options,handleChange:function(val){_this3.props.uiActions.set({library_albums_source:val}),_this3.props.uiActions.hideContextMenu()}}));return _react2.default.createElement("div",{className:"view library-albums-view"},_react2.default.createElement(_Header2.default,{options:options,uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"album",type:"material"}),"My albums"),this.renderView())}}]),LibraryAlbums}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{mopidy_connected:state.mopidy.connected,mopidy_uri_schemes:state.mopidy.uri_schemes,load_queue:state.ui.load_queue,albums:state.core.albums,mopidy_library_albums:state.mopidy.library_albums,mopidy_library_albums_status:void 0!==state.ui.processes.MOPIDY_LIBRARY_ALBUMS_PROCESSOR?state.ui.processes.MOPIDY_LIBRARY_ALBUMS_PROCESSOR.status:null,google_enabled:state.google.enabled,google_library_albums:state.google.library_albums,google_library_albums_status:void 0!==state.ui.processes.GOOGLE_LIBRARY_ALBUMS_PROCESSOR?state.ui.processes.GOOGLE_LIBRARY_ALBUMS_PROCESSOR.status:null,spotify_enabled:state.spotify.enabled,spotify_library_albums:state.spotify.library_albums,spotify_library_albums_status:void 0!==state.ui.processes.SPOTIFY_GET_LIBRARY_ALBUMS_PROCESSOR?state.ui.processes.SPOTIFY_GET_LIBRARY_ALBUMS_PROCESSOR.status:null,view:state.ui.library_albums_view,source:state.ui.library_albums_source?state.ui.library_albums_source:"all",sort:state.ui.library_albums_sort?state.ui.library_albums_sort:null,sort_reverse:!!state.ui.library_albums_sort_reverse&&state.ui.library_albums_sort_reverse}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),googleActions:(0,_redux.bindActionCreators)(googleActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(LibraryAlbums)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_TrackList=(_interopRequireDefault(_Link),__webpack_require__(19)),_TrackList2=_interopRequireDefault(_TrackList),_Header=__webpack_require__(14),_Header2=_interopRequireDefault(_Header),_LazyLoadListener=__webpack_require__(21),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions3),LibraryTracks=function(_React$Component){function LibraryTracks(props){return _classCallCheck(this,LibraryTracks),_possibleConstructorReturn(this,(LibraryTracks.__proto__||Object.getPrototypeOf(LibraryTracks)).call(this,props))}return _inherits(LibraryTracks,_React$Component),_createClass(LibraryTracks,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Tracks"),this.props.spotify_me?void 0===this.props.library_tracks&&this.props.spotifyActions.getLibraryTracks():this.props.uiActions.createNotification({type:"warning",content:"Enable Spotify to browse tracks"})}},{key:"loadMore",value:function(){this.props.spotifyActions.getMore(this.props.library_tracks_more,null,{type:"SPOTIFY_LIBRARY_TRACKS_LOADED_MORE"})}},{key:"playAll",value:function(){this.props.spotifyActions.getLibraryTracksAndPlay()}},{key:"render",value:function(){var _this2=this;if(helpers.isLoading(this.props.load_queue,["spotify_me/tracks?"]))return _react2.default.createElement("div",{className:"view library-tracks-view"},_react2.default.createElement(_Header2.default,{icon:"music",title:"My tracks"}),_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})));var tracks=[];if(this.props.library_tracks&&this.props.tracks)for(var i=0;i<this.props.library_tracks.length;i++){var uri=this.props.library_tracks[i];this.props.tracks.hasOwnProperty(uri)&&tracks.push(this.props.tracks[uri])}var options=_react2.default.createElement("a",{className:"button button--no-hover",onClick:function(e){return _this2.playAll(e)}},_react2.default.createElement(_Icon2.default,{name:"play_circle_filled"}),"Play all");return _react2.default.createElement("div",{className:"view library-tracks-view"},_react2.default.createElement(_Header2.default,{options:options,uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"music_note",type:"material"}),"My tracks"),_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_TrackList2.default,{tracks:tracks}),_react2.default.createElement(_LazyLoadListener2.default,{loadKey:this.props.library_tracks_more,showLoader:this.props.library_tracks_more,loadMore:function(){return _this2.loadMore()}})))}}]),LibraryTracks}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{load_queue:state.ui.load_queue,tracks:state.core.tracks,spotify_me:state.spotify.me,library_tracks:state.spotify.library_tracks,library_tracks_more:state.spotify.library_tracks_more}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(LibraryTracks)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_Link2=_interopRequireDefault(_Link),_PlaylistGrid=__webpack_require__(39),_PlaylistGrid2=_interopRequireDefault(_PlaylistGrid),_List=__webpack_require__(40),_List2=_interopRequireDefault(_List),_DropdownField=__webpack_require__(25),_DropdownField2=_interopRequireDefault(_DropdownField),_Header=__webpack_require__(14),_Header2=_interopRequireDefault(_Header),_FilterField=__webpack_require__(61),_FilterField2=_interopRequireDefault(_FilterField),_LazyLoadListener=__webpack_require__(21),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions4),LibraryPlaylists=function(_React$Component){function LibraryPlaylists(props){_classCallCheck(this,LibraryPlaylists);var _this=_possibleConstructorReturn(this,(LibraryPlaylists.__proto__||Object.getPrototypeOf(LibraryPlaylists)).call(this,props));return _this.state={filter:"",limit:50,per_page:50},_this}return _inherits(LibraryPlaylists,_React$Component),_createClass(LibraryPlaylists,[{key:"componentWillMount",value:function(){var state=this.props.location.state?this.props.location.state:{};state.limit&&this.setState({limit:state.limit})}},{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Playlists"),this.props.mopidy_library_playlists||!this.props.mopidy_connected||"all"!=this.props.source&&"local"!=this.props.source||this.props.mopidyActions.getLibraryPlaylists(),!this.props.spotify_enabled||"finished"===this.props.spotify_library_playlists_status||"all"!=this.props.source&&"spotify"!=this.props.source||this.props.spotifyActions.getLibraryPlaylists()}},{key:"componentWillReceiveProps",value:function(newProps){!newProps.mopidy_connected||"all"!=newProps.source&&"local"!=newProps.source||(this.props.mopidy_connected||this.props.mopidyActions.getLibraryPlaylists(),"all"==this.props.source||"local"==this.props.source||newProps.mopidy_library_playlists||this.props.mopidyActions.getLibraryPlaylists()),!newProps.spotify_enabled||"all"!=newProps.source&&"spotify"!=newProps.source||"finished"!=newProps.spotify_library_playlists_status&&"started"!=newProps.spotify_library_playlists_status&&this.props.spotifyActions.getLibraryPlaylists()}},{key:"handleContextMenu",value:function(e,item){var data={e:e,context:"playlist",uris:[item.uri],items:[item]};this.props.uiActions.showContextMenu(data)}},{key:"loadMore",value:function(){var new_limit=this.state.limit+this.state.per_page;this.setState({limit:new_limit});var state=this.props.location&&this.props.location.state?this.props.location.state:{};state.limit=new_limit,this.props.history.replace({state:state})}},{key:"setSort",value:function(value){var reverse=!1;this.props.sort==value&&(reverse=!this.props.sort_reverse);var data={library_playlists_sort_reverse:reverse,library_playlists_sort:value};this.props.uiActions.set(data)}},{key:"renderView",value:function(){var _this2=this,playlists=[];if(this.props.spotify_library_playlists&&("all"==this.props.source||"spotify"==this.props.source))for(var i=0;i<this.props.spotify_library_playlists.length;i++){var uri=this.props.spotify_library_playlists[i];this.props.playlists.hasOwnProperty(uri)&&playlists.push(this.props.playlists[uri])}if(this.props.mopidy_library_playlists&&("all"==this.props.source||"local"==this.props.source))for(var i=0;i<this.props.mopidy_library_playlists.length;i++){var uri=this.props.mopidy_library_playlists[i];this.props.playlists.hasOwnProperty(uri)&&playlists.push(this.props.playlists[uri])}this.props.sort&&(playlists=helpers.sortItems(playlists,this.props.sort,this.props.sort_reverse)),playlists=helpers.removeDuplicates(playlists),""!==this.state.filter&&(playlists=helpers.applyFilter("name",this.state.filter,playlists));var total_playlists=playlists.length;return playlists=playlists.slice(0,this.state.limit),"list"==this.props.view?_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_List2.default,{handleContextMenu:function(e,item){return _this2.handleContextMenu(e,item)},rows:playlists,thumbnail:!0,details:["owner","tracks_total"],right_column:["source"],className:"playlists",link_prefix:"/playlist/"}),_react2.default.createElement(_LazyLoadListener2.default,{loadKey:total_playlists>this.state.limit?this.state.limit:total_playlists,loading:this.state.limit<total_playlists,loadMore:function(){return _this2.loadMore()}})):_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_PlaylistGrid2.default,{handleContextMenu:function(e,item){return _this2.handleContextMenu(e,item)},playlists:playlists}),_react2.default.createElement(_LazyLoadListener2.default,{loadKey:total_playlists>this.state.limit?this.state.limit:total_playlists,loading:this.state.limit<total_playlists,loadMore:function(){return _this2.loadMore()}}))}},{key:"render",value:function(){var _this3=this,source_options=[{value:"all",label:"All"},{value:"local",label:"Local"}];this.props.spotify_enabled&&source_options.push({value:"spotify",label:"Spotify"});var view_options=[{value:"thumbnails",label:"Thumbnails"},{value:"list",label:"List"}],sort_options=[{value:null,label:"Default"},{value:"name",label:"Name"},{value:"can_edit",label:"Editable"},{value:"owner.id",label:"Owner"},{value:"tracks_total",label:"Tracks"},{value:"source",label:"Source"}],options=_react2.default.createElement("span",null,_react2.default.createElement(_FilterField2.default,{initialValue:this.state.filter,handleChange:function(value){return _this3.setState({filter:value})}}),_react2.default.createElement(_DropdownField2.default,{icon:"sort",name:"Sort",value:this.props.sort,options:sort_options,selected_icon:this.props.sort?this.props.sort_reverse?"keyboard_arrow_up":"keyboard_arrow_down":null,handleChange:function(value){_this3.setSort(value),_this3.props.uiActions.hideContextMenu()}}),_react2.default.createElement(_DropdownField2.default,{icon:"visibility",name:"View",value:this.props.view,options:view_options,handleChange:function(value){_this3.props.uiActions.set({library_playlists_view:value}),_this3.props.uiActions.hideContextMenu()}}),_react2.default.createElement(_DropdownField2.default,{icon:"cloud",name:"Source",value:this.props.source,options:source_options,handleChange:function(value){_this3.props.uiActions.set({library_playlists_source:value}),_this3.props.uiActions.hideContextMenu()}}),_react2.default.createElement(_Link2.default,{className:"button button--no-hover",to:"/playlist/create"},_react2.default.createElement(_Icon2.default,{name:"add_box"}),"New"));return _react2.default.createElement("div",{className:"view library-playlists-view"},_react2.default.createElement(_Header2.default,{options:options,uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"queue_music",type:"material"}),"My playlists"),this.renderView())}}]),LibraryPlaylists}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{slim_mode:state.ui.slim_mode,mopidy_connected:state.mopidy.connected,mopidy_uri_schemes:state.mopidy.uri_schemes,mopidy_library_playlists:state.mopidy.library_playlists,mopidy_library_playlists_status:void 0!==state.ui.processes.MOPIDY_LIBRARY_PLAYLISTS_PROCESSOR?state.ui.processes.MOPIDY_LIBRARY_PLAYLISTS_PROCESSOR.status:null,spotify_enabled:state.mopidy.uri_schemes&&state.mopidy.uri_schemes.includes("spotify:"),spotify_library_playlists:state.spotify.library_playlists,spotify_library_playlists_status:void 0!==state.ui.processes.SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR?state.ui.processes.SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR.status:null,load_queue:state.ui.load_queue,me_id:!!state.spotify.me&&state.spotify.me.id,view:state.ui.library_playlists_view,source:state.ui.library_playlists_source?state.ui.library_playlists_source:"all",sort:state.ui.library_playlists_sort?state.ui.library_playlists_sort:null,sort_reverse:!!state.ui.library_playlists_sort_reverse&&state.ui.library_playlists_sort_reverse,playlists:state.core.playlists}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(LibraryPlaylists)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=(__webpack_require__(29),__webpack_require__(7)),_Header=(_interopRequireDefault(_Link),__webpack_require__(14)),_Header2=_interopRequireDefault(_Header),_List=__webpack_require__(40),_TrackList=(_interopRequireDefault(_List),__webpack_require__(19)),_GridItem=(_interopRequireDefault(_TrackList),__webpack_require__(35)),_GridItem2=_interopRequireDefault(_GridItem),_DropdownField=__webpack_require__(25),_Icon=(_interopRequireDefault(_DropdownField),__webpack_require__(5)),_Icon2=_interopRequireDefault(_Icon),_URILink=__webpack_require__(18),_ErrorBoundary=(_interopRequireDefault(_URILink),__webpack_require__(44)),_ErrorBoundary2=_interopRequireDefault(_ErrorBoundary),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions2),LibraryBrowse=function(_React$Component){function LibraryBrowse(props){return _classCallCheck(this,LibraryBrowse),_possibleConstructorReturn(this,(LibraryBrowse.__proto__||Object.getPrototypeOf(LibraryBrowse)).call(this,props))}return _inherits(LibraryBrowse,_React$Component),_createClass(LibraryBrowse,[{key:"componentDidMount",value:function(){this.loadDirectory(),this.props.uiActions.setWindowTitle("Browse")}},{key:"componentWillReceiveProps",value:function(nextProps){!this.props.mopidy_connected&&nextProps.mopidy_connected&&this.loadDirectory(nextProps)}},{key:"loadDirectory",value:function(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props).mopidy_connected&&this.props.mopidyActions.getDirectory(null)}},{key:"render",value:function(){var grid_items=[];if(this.props.directory){var _iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=this.props.directory.subdirectories[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var subdirectory=_step.value;switch(subdirectory.name){case"Dirble":subdirectory.icons=["/iris/assets/backgrounds/browse-dirble.jpg"];break;case"Files":case"Local media":subdirectory.icons=["/iris/assets/backgrounds/browse-folders.jpg"];break;case"Spotify":case"Spotify Browse":subdirectory.icons=["/iris/assets/backgrounds/browse-spotify.jpg"];break;case"Spotify Tunigo":case"Tunigo":subdirectory.icons=["/iris/assets/backgrounds/browse-tunigo.jpg"];break;case"TuneIn":subdirectory.icons=["/iris/assets/backgrounds/browse-tunein.jpg"];break;case"SoundCloud":subdirectory.icons=["/iris/assets/backgrounds/browse-soundcloud.jpg"];break;case"iTunes Store: Podcasts":subdirectory.icons=["/iris/assets/backgrounds/browse-itunes.jpg"];break;case"Soma FM":subdirectory.icons=["/iris/assets/backgrounds/browse-somafm.jpg"];break;default:subdirectory.icons=["/iris/assets/backgrounds/browse-default.jpg"]}grid_items.push({name:subdirectory.name,link:"/library/browse/"+encodeURIComponent(subdirectory.uri),icons:helpers.formatImages(subdirectory.icons)})}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}}return _react2.default.createElement("div",{className:"view library-local-view"},_react2.default.createElement(_Header2.default,null,_react2.default.createElement(_Icon2.default,{name:"folder",type:"material"}),"Browse"),_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement("div",{className:"grid grid--tiles"},_react2.default.createElement(_ErrorBoundary2.default,null,grid_items.map(function(item,index){return _react2.default.createElement(_GridItem2.default,{item:item,key:index,link:item.link,type:"browse"})})))))}}]),LibraryBrowse}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{load_queue:state.ui.load_queue,mopidy_connected:state.mopidy.connected,directory:state.mopidy.directory,view:state.ui.library_directory_view}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(LibraryBrowse)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_Header=(_interopRequireDefault(_Link),__webpack_require__(14)),_Header2=_interopRequireDefault(_Header),_List=__webpack_require__(40),_List2=_interopRequireDefault(_List),_TrackList=__webpack_require__(19),_TrackList2=_interopRequireDefault(_TrackList),_GridItem=__webpack_require__(35),_GridItem2=_interopRequireDefault(_GridItem),_DropdownField=__webpack_require__(25),_DropdownField2=_interopRequireDefault(_DropdownField),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_URILink=__webpack_require__(18),_URILink2=_interopRequireDefault(_URILink),_ErrorBoundary=__webpack_require__(44),_ErrorBoundary2=_interopRequireDefault(_ErrorBoundary),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions3),LibraryBrowseDirectory=function(_React$Component){function LibraryBrowseDirectory(props){return _classCallCheck(this,LibraryBrowseDirectory),_possibleConstructorReturn(this,(LibraryBrowseDirectory.__proto__||Object.getPrototypeOf(LibraryBrowseDirectory)).call(this,props))}return _inherits(LibraryBrowseDirectory,_React$Component),_createClass(LibraryBrowseDirectory,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Browse"),this.loadDirectory()}},{key:"componentWillReceiveProps",value:function(nextProps){!this.props.mopidy_connected&&nextProps.mopidy_connected&&this.loadDirectory(nextProps),nextProps.uri&&nextProps.uri!==this.props.uri&&this.loadDirectory(nextProps)}},{key:"loadDirectory",value:function(){var props=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;if(props.mopidy_connected){var uri=null;void 0!==props.uri&&(uri=props.uri),this.props.mopidyActions.getDirectory(uri)}}},{key:"playAll",value:function(e,tracks){var tracks_uris=helpers.arrayOf("uri",tracks);this.props.mopidyActions.playURIs(tracks_uris,"iris:browse:"+this.props.uri),this.props.uiActions.hideContextMenu()}},{key:"goBack",value:function(e){window.history.back(),this.props.uiActions.hideContextMenu()}},{key:"renderBreadcrumbs",value:function(){if(!this.props.uri)return null;var parent_uri=this.props.uri;if(parent_uri.startsWith("file://")){var uri=parent_uri.replace("file:///",""),uri_elements=uri.split("/");return _react2.default.createElement("h4",null,uri_elements.map(function(uri_element,index){for(var uri="file://",i=0;i<=index;i++)uri+="/"+uri_elements[i];return _react2.default.createElement("span",{key:uri},index>0?_react2.default.createElement("span",null,"  ",_react2.default.createElement(_Icon2.default,{type:"fontawesome",name:"angle-right"}),"   "):null,_react2.default.createElement(_URILink2.default,{type:"browse",uri:uri},decodeURI(uri_element)))}))}return null}},{key:"renderSubdirectories",value:function(subdirectories){return"list"==this.props.view?_react2.default.createElement(_List2.default,_defineProperty({nocontext:!0,rows:subdirectories,className:"library-local-directory-list",link_prefix:"/library/browse/"},"nocontext",!0)):_react2.default.createElement("div",{className:"grid category-grid"},subdirectories.map(function(subdirectory){return _react2.default.createElement(_GridItem2.default,{key:subdirectory.uri,type:"browse",link:"/library/browse/"+encodeURIComponent(subdirectory.uri),item:subdirectory,nocontext:!0})}))}},{key:"render",value:function(){var _this2=this,title="Directory",uri_exploded=this.props.uri.split(":");if(uri_exploded.length>0&&(title=uri_exploded[0],title=title.charAt(0).toUpperCase()+title.slice(1)),!this.props.directory||helpers.isLoading(this.props.load_queue,["mopidy_browse"]))return _react2.default.createElement("div",{className:"view library-local-view"},_react2.default.createElement(_Header2.default,{icon:"music",title:title,uiActions:this.props.uiActions}),_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})));var tracks=this.props.directory.tracks&&this.props.directory.tracks.length>0?this.props.directory.tracks:null;tracks=helpers.sortItems(tracks,"name");var subdirectories=this.props.directory.subdirectories&&this.props.directory.subdirectories.length>0?this.props.directory.subdirectories:null;subdirectories=helpers.sortItems(subdirectories,"name");var view_options=[{label:"Thumbnails",value:"thumbnails"},{label:"List",value:"list"}],options=_react2.default.createElement("span",null,_react2.default.createElement(_DropdownField2.default,{icon:"visibility",name:"View",value:this.props.view,options:view_options,handleChange:function(value){_this2.props.uiActions.set({library_directory_view:value}),_this2.props.uiActions.hideContextMenu()}}),tracks?_react2.default.createElement("a",{className:"button button--no-hover",onClick:function(e){_this2.props.uiActions.hideContextMenu(),_this2.playAll(e,tracks)}},_react2.default.createElement(_Icon2.default,{name:"play_circle_filled"}),"Play all"):null,_react2.default.createElement("a",{className:"button button--no-hover",onClick:function(e){_this2.props.uiActions.hideContextMenu(),_this2.goBack(e)}},_react2.default.createElement(_Icon2.default,{name:"keyboard_backspace"}),"Back"));return _react2.default.createElement("div",{className:"view library-local-view"},_react2.default.createElement(_Header2.default,{options:options,uiActions:this.props.uiActions},_react2.default.createElement(_Icon2.default,{name:"folder",type:"material"}),title),_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_ErrorBoundary2.default,null,this.renderBreadcrumbs(),subdirectories?this.renderSubdirectories(subdirectories):null,tracks?_react2.default.createElement(_TrackList2.default,{tracks:this.props.directory.tracks,uri:"iris:browse:"+this.props.uri,className:"library-local-track-list"}):null)))}}]),LibraryBrowseDirectory}(_react2.default.Component),mapStateToProps=function(state,ownProps){var uri=decodeURIComponent(ownProps.match.params.uri);return uri=uri.replace(/\s/g,"%20"),uri=uri.replace(/&/g,"%26"),uri=uri.replace(/\[/g,"%5B"),uri=uri.replace(/\]/g,"%5D"),uri=uri.replace(/\(/g,"%28"),uri=uri.replace(/\)/g,"%29"),uri=uri.replace(/\#/g,"%23"),{uri:uri,load_queue:state.ui.load_queue,mopidy_connected:state.mopidy.connected,directory:state.mopidy.directory,view:state.ui.library_directory_view}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(LibraryBrowseDirectory)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_reactGa=(_interopRequireDefault(_Link),__webpack_require__(13)),_Modal=(_interopRequireDefault(_reactGa),__webpack_require__(23)),_Modal2=_interopRequireDefault(_Modal),_Icon=__webpack_require__(5),_actions=(_interopRequireDefault(_Icon),__webpack_require__(9)),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions4),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),EditPlaylist=function(_React$Component){function EditPlaylist(props){_classCallCheck(this,EditPlaylist);var _this=_possibleConstructorReturn(this,(EditPlaylist.__proto__||Object.getPrototypeOf(EditPlaylist)).call(this,props));return _this.state={error:null,name:"",description:"",image:null,public:!1,collaborative:!1},_this}return _inherits(EditPlaylist,_React$Component),_createClass(EditPlaylist,[{key:"componentDidMount",value:function(){if(this.props.uiActions.setWindowTitle("Edit playlist"),this.props.playlist)this.setState({name:this.props.playlist.name,description:this.props.playlist.description,public:1==this.props.playlist.public,collaborative:1==this.props.playlist.collaborative});else switch(helpers.uriSource(this.props.uri)){case"spotify":this.props.spotifyActions.getPlaylist(this.props.uri),this.props.spotifyActions.following(this.props.uri);break;default:this.props.mopidy_connected&&this.props.mopidyActions.getPlaylist(this.props.uri)}}},{key:"componentWillReceiveProps",value:function(nextProps){!this.props.playlist&&nextProps.playlist?this.setState({name:nextProps.playlist.name,description:nextProps.playlist.description,public:1==nextProps.playlist.public,collaborative:1==nextProps.playlist.collaborative}):this.props.mopidy_connected==nextProps.mopidy_connected||nextProps.playlist||this.props.mopidyActions.getPlaylist(this.props.uri)}},{key:"savePlaylist",value:function(e){return e.preventDefault(),this.state.name&&""!=this.state.name?(this.props.coreActions.savePlaylist(this.props.uri,this.state.name,this.state.description,this.state.public,this.state.collaborative,this.state.image),window.history.back(),!1):(this.setState({error:"Name is required"}),!1)}},{key:"setImage",value:function(e){var self=this,file_reader=new FileReader;file_reader.addEventListener("load",function(e){var image_base64=e.target.result.replace("data:image/jpeg;base64,","");self.setState({image:image_base64})}),file_reader.readAsDataURL(e.target.files[0])}},{key:"renderFields",value:function(){var _this2=this;switch(helpers.uriSource(this.props.uri)){case"spotify":return _react2.default.createElement("div",null,_react2.default.createElement("div",{className:"field text"},_react2.default.createElement("div",{className:"name"},"Name"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.setState({name:e.target.value})},value:this.state.name}))),_react2.default.createElement("div",{className:"field text"},_react2.default.createElement("div",{className:"name"},"Description"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.setState({description:e.target.value})},value:this.state.description}))),_react2.default.createElement("div",{className:"field file"},_react2.default.createElement("div",{className:"name"},"Cover image"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"file",placeholder:"Leave empty to keep existing image",onChange:function(e){return _this2.setImage(e)}}),_react2.default.createElement("div",{className:"description"},"JPEG only, 256kB max. Leave empty to keep cover image unchanged."))),_react2.default.createElement("div",{className:"field checkbox white"},_react2.default.createElement("div",{className:"name"},"Options"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"playlist_private",checked:this.state.public,onChange:function(e){return _this2.setState({public:!_this2.state.public})}}),_react2.default.createElement("span",{className:"label"},"Public")),_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"collaborative",checked:this.state.collaborative,onChange:function(e){return _this2.setState({collaborative:!_this2.state.collaborative})}}),_react2.default.createElement("span",{className:"label"},"Collaborative")))));default:return _react2.default.createElement("div",null,_react2.default.createElement("div",{className:"field text"},_react2.default.createElement("div",{className:"name"},"Name"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.setState({name:e.target.value})},value:this.state.name}))))}}},{key:"render",value:function(){var _this3=this;return _react2.default.createElement(_Modal2.default,{className:"modal--edit-playlist"},_react2.default.createElement("h1",null,"Edit playlist"),this.state.error?_react2.default.createElement("h3",{className:"red-text"},this.state.error):null,_react2.default.createElement("form",{onSubmit:function(e){return _this3.savePlaylist(e)}},this.renderFields(),_react2.default.createElement("div",{className:"actions centered-text"},_react2.default.createElement("button",{type:"submit",className:"button button--primary button--large"},"Save"))))}}]),EditPlaylist}(_react2.default.Component),mapStateToProps=function(state,ownProps){var uri=decodeURIComponent(ownProps.match.params.uri);return uri=uri.replace(/\s/g,"%20"),uri=uri.replace(/\[/g,"%5B"),uri=uri.replace(/\]/g,"%5D"),uri=uri.replace(/\(/g,"%28"),uri=uri.replace(/\)/g,"%29"),uri=uri.replace(/\#/g,"%23"),{uri:uri,mopidy_connected:state.mopidy.connected,playlist:void 0!==state.core.playlists[uri]?state.core.playlists[uri]:null,playlists:state.core.playlists}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(EditPlaylist)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_reactGa=(_interopRequireDefault(_Link),__webpack_require__(13)),_Modal=(_interopRequireDefault(_reactGa),__webpack_require__(23)),_Modal2=_interopRequireDefault(_Modal),_Icon=__webpack_require__(5),_actions=(_interopRequireDefault(_Icon),__webpack_require__(9)),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_helpers=__webpack_require__(1),CreatePlaylist=(_interopRequireWildcard(_helpers),function(_React$Component){function CreatePlaylist(props){_classCallCheck(this,CreatePlaylist);var _this=_possibleConstructorReturn(this,(CreatePlaylist.__proto__||Object.getPrototypeOf(CreatePlaylist)).call(this,props));return _this.state={name:"",description:"",scheme:"spotify",is_public:!0,is_collaborative:!1},_this}return _inherits(CreatePlaylist,_React$Component),_createClass(CreatePlaylist,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Create playlist")}},{key:"createPlaylist",value:function(e){return e.preventDefault(),this.state.name&&""!=this.state.name?(this.props.coreActions.createPlaylist(this.state.scheme,this.state.name,this.state.description,this.state.is_public,this.state.is_collaborative),window.history.back(),!1):(this.setState({error:"Name is required"}),!1)}},{key:"renderFields",value:function(){var _this2=this;switch(this.state.scheme){case"spotify":return _react2.default.createElement("div",null,_react2.default.createElement("div",{className:"field text"},_react2.default.createElement("div",{className:"name"},"Name"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.setState({name:e.target.value})},value:this.state.name}))),_react2.default.createElement("div",{className:"field text"},_react2.default.createElement("div",{className:"name"},"Description"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.setState({description:e.target.value})},value:this.state.description}))),_react2.default.createElement("div",{className:"field checkbox white"},_react2.default.createElement("div",{className:"name"},"Options"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"is_public",checked:this.state.is_public,onChange:function(e){return _this2.setState({is_public:!_this2.state.is_public})}}),_react2.default.createElement("span",{className:"label"},"Public")),_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"is_collaborative",checked:this.state.is_collaborative,onChange:function(e){return _this2.setState({is_collaborative:!_this2.state.is_collaborative})}}),_react2.default.createElement("span",{className:"label"},"Collaborative")))));default:return _react2.default.createElement("div",null,_react2.default.createElement("div",{className:"field text"},_react2.default.createElement("div",{className:"name"},"Name"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.setState({name:e.target.value})},value:this.state.name}))))}}},{key:"render",value:function(){var _this3=this;return _react2.default.createElement(_Modal2.default,{className:"modal--create-playlist"},_react2.default.createElement("h1",null,"Create playlist"),_react2.default.createElement("form",{onSubmit:function(e){return _this3.createPlaylist(e)}},_react2.default.createElement("div",{className:"field radio white"},_react2.default.createElement("div",{className:"name"},"Provider"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"radio",name:"scheme",value:"spotify",checked:"spotify"==this.state.scheme,onChange:function(e){return _this3.setState({scheme:e.target.value})}}),_react2.default.createElement("span",{className:"label"},"Spotify")),_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"radio",name:"scheme",value:"m3u",checked:"m3u"==this.state.scheme,onChange:function(e){return _this3.setState({scheme:e.target.value})}}),_react2.default.createElement("span",{className:"label"},"Mopidy")))),this.renderFields(),_react2.default.createElement("div",{className:"actions centered-text"},_react2.default.createElement("button",{type:"submit",className:"button button--primary button--large"},"Create playlist"))))}}]),CreatePlaylist}(_react2.default.Component)),mapStateToProps=function(state,ownProps){return{}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(CreatePlaylist)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_reactGa=(_interopRequireDefault(_Link),__webpack_require__(13)),_Modal=(_interopRequireDefault(_reactGa),__webpack_require__(23)),_Modal2=_interopRequireDefault(_Modal),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions5),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),EditRadio=function(_React$Component){function EditRadio(props){_classCallCheck(this,EditRadio);var _this=_possibleConstructorReturn(this,(EditRadio.__proto__||Object.getPrototypeOf(EditRadio)).call(this,props));return _this.state={enabled:!1,seeds:[],uri:"",error_message:null},_this}return _inherits(EditRadio,_React$Component),_createClass(EditRadio,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Edit radio"),this.props.radio&&this.props.radio.enabled&&this.loadRadio(this.props.radio)}},{key:"componentWillReceiveProps",value:function(nextProps){!this.props.radio&&nextProps.radio&&this.loadRadio(nextProps.radio)}},{key:"loadRadio",value:function(radio){var seeds=[].concat(_toConsumableArray(radio.seed_tracks),_toConsumableArray(radio.seed_artists),_toConsumableArray(radio.seed_genres));this.setState({seeds:seeds,enabled:radio.enabled}),this.props.spotifyActions.resolveRadioSeeds(radio)}},{key:"handleStart",value:function(e){e.preventDefault();for(var valid_seeds=!0,seeds=this.mapSeeds(),i=0;i<seeds.length;i++)void 0===seeds[i].unresolved||(valid_seeds=!1);valid_seeds?(this.props.pusherActions.startRadio(this.state.seeds),window.history.back()):this.setState({error_message:"Invalid seed URI(s)"})}},{key:"handleUpdate",value:function(e){e.preventDefault();for(var valid_seeds=!0,seeds=this.mapSeeds(),i=0;i<seeds.length;i++)void 0===seeds[i].unresolved||(valid_seeds=!1);valid_seeds?(this.props.pusherActions.updateRadio(this.state.seeds),this.props.uiActions.closeModal()):this.setState({error_message:"Invalid seed URI(s)"})}},{key:"handleStop",value:function(e){e.preventDefault(),this.props.pusherActions.stopRadio(),this.props.uiActions.closeModal()}},{key:"addSeed",value:function(e){if(e.preventDefault(),""==this.state.uri)return void this.setState({error_message:"Cannot be empty"});for(var seeds=Object.assign([],this.state.seeds),uris=this.state.uri.split(","),i=0;i<uris.length;i++){if("spotify"!==helpers.uriSource(uris[i]))return void this.setState({error_message:"Non-Spotify URIs not supported"});switch(seeds.indexOf(uris[i])>-1?this.setState({error_message:"URI already added"}):(seeds.push(uris[i]),this.setState({error_message:null})),helpers.uriType(uris[i])){case"track":this.props.spotifyActions.getTrack(uris[i]);break;case"artist":this.props.spotifyActions.getArtist(uris[i])}}this.setState({seeds:seeds,uri:""})}},{key:"removeSeed",value:function(uri){for(var seeds=[],i=0;i<this.state.seeds.length;i++)this.state.seeds[i]!=uri&&seeds.push(this.state.seeds[i]);this.setState({seeds:seeds})}},{key:"mapSeeds",value:function(){var seeds=[];if(this.state.seeds)for(var i=0;i<this.state.seeds.length;i++){var uri=this.state.seeds[i];uri&&("artist"==helpers.uriType(uri)?this.props.artists&&this.props.artists.hasOwnProperty(uri)?seeds.push(this.props.artists[uri]):seeds.push({unresolved:!0,uri:uri}):"track"==helpers.uriType(uri)&&(this.props.tracks&&this.props.tracks.hasOwnProperty(uri)?seeds.push(this.props.tracks[uri]):seeds.push({unresolved:!0,uri:uri})))}return seeds}},{key:"renderSeeds",value:function(){var _this2=this,seeds=this.mapSeeds();return seeds.length>0?_react2.default.createElement("div",null,_react2.default.createElement("div",{className:"list"},seeds.map(function(seed,index){return _react2.default.createElement("div",{className:"list__item",key:seed.uri},seed.unresolved?_react2.default.createElement("span",{className:"mid_grey-text"},seed.uri):_react2.default.createElement("span",null,seed.name),seed.unresolved?null:_react2.default.createElement("span",{className:"mid_grey-text"}," (",helpers.uriType(seed.uri),")"),_react2.default.createElement("span",{className:"button discrete remove-uri no-hover",onClick:function(e){return _this2.removeSeed(seed.uri)}},_react2.default.createElement(_Icon2.default,{name:"delete"}),"Remove"))}))):_react2.default.createElement("div",{className:"no-results"},"No seeds")}},{key:"render",value:function(){var _this3=this;return _react2.default.createElement(_Modal2.default,{className:"modal--edit-radio"},_react2.default.createElement("h1",null,"Radio"),_react2.default.createElement("h2",{className:"mid_grey-text"},"Add and remove seeds to shape the sound of your radio. Radio uses Spotify's recommendations engine to suggest tracks similar to your seeds."),_react2.default.createElement("form",{onSubmit:function(e){_this3.state.enabled?_this3.handleUpdate(e):_this3.handleStart(e)}},this.renderSeeds(),_react2.default.createElement("div",{className:"field text"},_react2.default.createElement("div",{className:"name"},"URI(s)"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this3.setState({uri:e.target.value,error_message:null})},value:this.state.uri}),_react2.default.createElement("span",{className:"button discrete add-uri no-hover",onClick:function(e){return _this3.addSeed(e)}},_react2.default.createElement(_Icon2.default,{name:"add"}),"Add"),this.state.error_message?_react2.default.createElement("span",{className:"description error"},this.state.error_message):null)),_react2.default.createElement("div",{className:"actions centered-text"},this.state.enabled?_react2.default.createElement("span",{className:"button button--destructive button--large",onClick:function(e){return _this3.handleStop(e)}},"Stop"):null,this.state.enabled?_react2.default.createElement("button",{className:"button button--primary button--large",onClick:function(e){return _this3.handleUpdate(e)}},"Save"):_react2.default.createElement("button",{className:"button button--primary button--large",onClick:function(e){return _this3.handleStart(e)}},"Start"))))}}]),EditRadio}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{mopidy_connected:state.mopidy.connected,radio:state.core.radio,artists:state.core.artists,tracks:state.core.tracks}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(EditRadio)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_reactGa=(_interopRequireDefault(_Link),__webpack_require__(13)),_Modal=(_interopRequireDefault(_reactGa),__webpack_require__(23)),_Modal2=_interopRequireDefault(_Modal),_Icon=__webpack_require__(5),_actions=(_interopRequireDefault(_Icon),__webpack_require__(9)),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions4),_helpers=__webpack_require__(1),AddToQueue=(_interopRequireWildcard(_helpers),function(_React$Component){function AddToQueue(props){_classCallCheck(this,AddToQueue);var _this=_possibleConstructorReturn(this,(AddToQueue.__proto__||Object.getPrototypeOf(AddToQueue)).call(this,props));return _this.state={uris:"",next:!1},_this}return _inherits(AddToQueue,_React$Component),_createClass(AddToQueue,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Add to queue")}},{key:"handleSubmit",value:function(e){e.preventDefault();var uris=this.state.uris.split(",");this.props.mopidyActions.enqueueURIs(uris,null,this.state.next),window.history.back()}},{key:"render",value:function(){var _this2=this;return _react2.default.createElement(_Modal2.default,{className:"modal--add-to-queue"},_react2.default.createElement("h1",null,"Add to queue"),_react2.default.createElement("h2",{className:"mid_grey-text"},"Add a comma-separated list of URIs to the play queue. You must have the appropriate Mopidy backend enabled for each URI schema (eg spotify:, yt:)."),_react2.default.createElement("form",{onSubmit:function(e){return _this2.handleSubmit(e)}},_react2.default.createElement("div",{className:"field text"},_react2.default.createElement("div",{className:"name"},"URI(s)"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.setState({uris:e.target.value})},value:this.state.uris}))),_react2.default.createElement("div",{className:"field radio white"},_react2.default.createElement("div",{className:"name"},"Position"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"radio",name:"next",checked:!this.state.next,onChange:function(e){return _this2.setState({next:!1})}}),_react2.default.createElement("span",{className:"label"},"End")),_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"radio",name:"next",checked:this.state.next,onChange:function(e){return _this2.setState({next:!0})}}),_react2.default.createElement("span",{className:"label"},"After current track")))),_react2.default.createElement("div",{className:"actions centered-text"},_react2.default.createElement("button",{type:"submit",className:"button button--primary button--large"},"Add"))))}}]),AddToQueue}(_react2.default.Component)),mapStateToProps=function(state,ownProps){return{mopidy_connected:state.mopidy.connected,playlist:void 0!==state.core.playlists[ownProps.match.params.uri]?state.core.playlists[ownProps.match.params.uri]:null,playlists:state.core.playlists}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(AddToQueue)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_reactGa=(_interopRequireDefault(_Link),__webpack_require__(13)),_Modal=(_interopRequireDefault(_reactGa),__webpack_require__(23)),_Modal2=_interopRequireDefault(_Modal),_Icon=__webpack_require__(5),_SpotifyAuthenticationFrame=(_interopRequireDefault(_Icon),__webpack_require__(88)),_LastfmAuthenticationFrame=(_interopRequireDefault(_SpotifyAuthenticationFrame),__webpack_require__(89)),_actions=(_interopRequireDefault(_LastfmAuthenticationFrame),__webpack_require__(9)),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions4),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),InitialSetup=function(_React$Component){function InitialSetup(props){_classCallCheck(this,InitialSetup);var _this=_possibleConstructorReturn(this,(InitialSetup.__proto__||Object.getPrototypeOf(InitialSetup)).call(this,props));return _this.state={username:_this.props.username?_this.props.username:"Anonymous",allow_reporting:_this.props.allow_reporting,host:_this.props.host,port:_this.props.port},_this}return _inherits(InitialSetup,_React$Component),_createClass(InitialSetup,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Welcome to Iris")}},{key:"handleSubmit",value:function(e){e.preventDefault();var self=this;return this.props.pusherActions.setUsername(this.state.username,!0),this.props.uiActions.set({initial_setup_complete:!0,allow_reporting:this.state.allow_reporting}),this.props.mopidyActions.set({host:this.state.host,port:this.state.port}),this.setState({saving:!0}),setTimeout(function(){self.state.host!==self.props.host||self.state.port!==self.props.port?window.location="/":self.props.history.push("/")},200),!1}},{key:"render",value:function(){var _this2=this;return _react2.default.createElement(_Modal2.default,{className:"modal--initial-setup",noclose:!0},_react2.default.createElement("h1",null,"Get started"),_react2.default.createElement("form",{onSubmit:function(e){return _this2.handleSubmit(e)}},_react2.default.createElement("div",{className:"field text"},_react2.default.createElement("div",{className:"name"},"Username"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.setState({username:e.target.value.replace(/\W/g,"")})},value:this.state.username}),_react2.default.createElement("div",{className:"description"},"A non-unique string used to identify this client (no special characters)"))),_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"},"Host"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.setState({host:e.target.value})},value:this.state.host}))),_react2.default.createElement("div",{className:"field"},_react2.default.createElement("div",{className:"name"},"Port"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("input",{type:"text",onChange:function(e){return _this2.setState({port:e.target.value})},value:this.state.port}))),helpers.isHosted()?null:_react2.default.createElement("div",{className:"field checkbox"},_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"allow_reporting",checked:this.state.allow_reporting,onChange:function(e){return _this2.setState({allow_reporting:!_this2.state.allow_reporting})}}),_react2.default.createElement("span",{className:"label"},"Allow reporting of anonymous usage statistics")),_react2.default.createElement("p",{className:"description"},"This anonymous usage data is important in identifying errors and potential features that make Iris better for everyone. Want to know more? Read the ",_react2.default.createElement("a",{href:"https://github.com/jaedb/Iris/wiki/Terms-of-use#privacy-policy",target:"_blank"},"privacy policy"),this.state.allow_reporting?null:_react2.default.createElement("span",{className:"red-text"}," Are you sure you don't want to support this?"),". "))),_react2.default.createElement("div",{className:"actions centered-text"},_react2.default.createElement("button",{className:"button button--primary button--large"+(this.state.saving?" button--working":""),onClick:function(e){return _this2.handleSubmit(e)}},this.state.saving?"Saving":"Save"))))}}]),InitialSetup}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{allow_reporting:state.ui.allow_reporting,username:state.pusher&&state.pusher.username?state.pusher.username:null,host:state.mopidy.host,port:state.mopidy.port}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(InitialSetup)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_Link=__webpack_require__(7),_redux=(_interopRequireDefault(_Link),__webpack_require__(3)),_Modal=__webpack_require__(23),_Modal2=_interopRequireDefault(_Modal),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_Dater=__webpack_require__(24),_Icon=(_interopRequireDefault(_Dater),__webpack_require__(5)),_Icon2=_interopRequireDefault(_Icon),_ProgressSlider=__webpack_require__(85),_ProgressSlider2=_interopRequireDefault(_ProgressSlider),_helpers=__webpack_require__(1),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(2)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions2),KioskMode=function(_React$Component){function KioskMode(props){return _classCallCheck(this,KioskMode),_possibleConstructorReturn(this,(KioskMode.__proto__||Object.getPrototypeOf(KioskMode)).call(this,props))}return _inherits(KioskMode,_React$Component),_createClass(KioskMode,[{key:"componentDidMount",value:function(){this.setWindowTitle()}},{key:"componentWillReceiveProps",value:function(nextProps){!this.props.current_track&&nextProps.current_track&&this.setWindowTitle(nextProps.current_track)}},{key:"setWindowTitle",value:function(){var current_track=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.current_track;if(current_track){for(var artists="",i=0;i<current_track.artists.length;i++)""!=artists&&(artists+=", "),artists+=current_track.artists[i].name;this.props.uiActions.setWindowTitle(current_track.name+" by "+artists+" (now playing)")}else this.props.uiActions.setWindowTitle("Now playing")}},{key:"togglePlay",value:function(e){"playing"==this.props.play_state?this.props.mopidyActions.pause():this.props.mopidyActions.play()}},{key:"render",value:function(){var _this2=this;if(this.props.current_track&&this.props.current_track.images)var images=this.props.current_track.images;else var images=[];return _react2.default.createElement(_Modal2.default,{className:"modal--kiosk-mode"},_react2.default.createElement(_Thumbnail2.default,{className:"background",images:images}),_react2.default.createElement("div",{className:"artwork",onClick:function(e){return _this2.togglePlay(e)}},_react2.default.createElement(_Thumbnail2.default,{images:images}),"playing"==this.props.play_state?_react2.default.createElement(_Icon2.default,{name:"pause_circle_filled"}):_react2.default.createElement(_Icon2.default,{name:"play_circle_filled"})),_react2.default.createElement("div",{className:"player"},_react2.default.createElement("div",{className:"current-track"},_react2.default.createElement("div",{className:"title"},this.props.current_track?this.props.current_track.name:_react2.default.createElement("span",null,"-")),this.props.current_track?_react2.default.createElement(_ArtistSentence2.default,{nolinks:!0,artists:this.props.current_track.artists}):_react2.default.createElement(_ArtistSentence2.default,null)),_react2.default.createElement("div",{className:"progress-wrapper"},_react2.default.createElement(_ProgressSlider2.default,null))))}}]),KioskMode}(_react2.default.Component),mapStateToProps=function(state){return{play_state:state.mopidy.play_state,current_track:state.core.current_track&&void 0!==state.core.tracks[state.core.current_track.uri]?state.core.tracks[state.core.current_track.uri]:null}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(KioskMode)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_Link=__webpack_require__(7),_redux=(_interopRequireDefault(_Link),__webpack_require__(3)),_Modal=__webpack_require__(23),_Modal2=_interopRequireDefault(_Modal),_Icon=__webpack_require__(5),_actions=(_interopRequireDefault(_Icon),__webpack_require__(2)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions2),_helpers=__webpack_require__(1),ShareConfiguration=(_interopRequireWildcard(_helpers),function(_React$Component){function ShareConfiguration(props){_classCallCheck(this,ShareConfiguration);var _this=_possibleConstructorReturn(this,(ShareConfiguration.__proto__||Object.getPrototypeOf(ShareConfiguration)).call(this,props));return _this.state={recipients:[],spotify:!1,lastfm:!1,genius:!1,ui:!1},_this}return _inherits(ShareConfiguration,_React$Component),_createClass(ShareConfiguration,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Share configuration")}},{key:"toggleRecipient",value:function(id){var recipients=this.state.recipients;if(recipients.includes(id)){var index=recipients.indexOf(id);recipients.splice(index,1)}else recipients.push(id);this.setState({recipients:recipients})}},{key:"handleSubmit",value:function(e){e.preventDefault();var configuration={};this.state.spotify&&(configuration.spotify={authorization:this.props.spotify_authorization,me:this.props.spotify_me}),this.state.genius&&(configuration.genius={authorization:this.props.genius_authorization,me:this.props.genius_me}),this.state.lastfm&&(configuration.lastfm={authorization:this.props.lastfm_authorization,me:this.props.lastfm_me}),this.state.ui&&(configuration.ui=this.props.ui);var _iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=this.state.recipients[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var recipient=_step.value;this.props.pusherActions.deliverMessage(recipient,"share_configuration_received",configuration)}}catch(err){_didIteratorError=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}window.history.back()}},{key:"render",value:function(){var _this2=this,connections=[];for(var connection_id in this.props.connections)this.props.connections.hasOwnProperty(connection_id)&&connection_id!=this.props.connection_id&&connections.push(this.props.connections[connection_id]);if(connections.length>0)var recipients=_react2.default.createElement("div",{className:"input"},connections.map(function(connection,index){return _react2.default.createElement("label",{key:connection.connection_id},_react2.default.createElement("input",{type:"checkbox",name:"connection_"+connection.connection_id,checked:_this2.state.recipients.includes(connection.connection_id),onChange:function(e){return _this2.toggleRecipient(connection.connection_id)}}),_react2.default.createElement("span",{className:"label"},_react2.default.createElement("div",{className:"title"},connection.username),_react2.default.createElement("div",{className:"description mid_grey-text"},"(",connection.ip,")")))}));else var recipients=_react2.default.createElement("div",{className:"input text"},_react2.default.createElement("span",{className:"mid_grey-text"},"No peer connections"));return _react2.default.createElement(_Modal2.default,{className:"modal--share-configuration"},_react2.default.createElement("h1",null,"Share configuration"),_react2.default.createElement("h2",null,"Push your authorizations and interface settings to another, connected user"),_react2.default.createElement("form",{onSubmit:function(e){return _this2.handleSubmit(e)}},_react2.default.createElement("div",{className:"field checkbox white"},_react2.default.createElement("div",{className:"name"},"Recipients"),recipients),_react2.default.createElement("div",{className:"field checkbox checkbox--block"},_react2.default.createElement("div",{className:"name"},"Configurations"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"interface",checked:this.state.ui,onChange:function(e){return _this2.setState({ui:!_this2.state.ui})}}),_react2.default.createElement("span",{className:"label"},_react2.default.createElement("span",{className:"title"},"UI customisation (theme, sorting, filters)"))),this.props.spotify_me&&this.props.spotify_authorization?_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"spotify",checked:this.state.spotify,onChange:function(e){return _this2.setState({spotify:!_this2.state.spotify})}}),_react2.default.createElement("span",{className:"label"},_react2.default.createElement("div",{className:"title"},"Spotify authorization"),_react2.default.createElement("div",{className:"description mid_grey-text"},"Logged in as ",this.props.spotify_me.name))):null,this.props.lastfm_me&&this.props.lastfm_authorization?_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"lastfm_authorization",checked:this.state.lastfm,onChange:function(e){return _this2.setState({lastfm:!_this2.state.lastfm})}}),_react2.default.createElement("span",{className:"label"},_react2.default.createElement("div",{className:"title"},"LastFM authorization"),_react2.default.createElement("div",{className:"description mid_grey-text"},"Logged in as ",this.props.lastfm_me.name))):null,this.props.genius_me&&this.props.genius_authorization?_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"genius_authorization",checked:this.state.genius,onChange:function(e){return _this2.setState({genius:!_this2.state.genius})}}),_react2.default.createElement("span",{className:"label"},_react2.default.createElement("div",{className:"title"},"Genius authorization"),_react2.default.createElement("div",{className:"description mid_grey-text"},"Logged in as ",this.props.genius_me.name))):null)),_react2.default.createElement("div",{className:"actions centered-text"},this.state.recipients.length>0?_react2.default.createElement("button",{className:"button button--primary button--large",onClick:function(e){return _this2.handleSubmit(e)}},"Send"):_react2.default.createElement("button",{className:"button button--primary button--large",disabled:"disabled",onClick:function(e){return _this2.handleSubmit(e)}},"Send"))))}}]),ShareConfiguration}(_react2.default.Component)),mapStateToProps=function(state,ownProps){return{spotify_authorization:state.spotify.authorization,spotify_me:state.spotify.me,genius_authorization:state.genius.authorization,genius_me:state.genius.me,lastfm_authorization:state.lastfm.authorization,lastfm_me:state.lastfm.me,ui:state.ui,connection_id:state.pusher.connection_id,connections:state.pusher.connections}},mapDispatchToProps=function(dispatch){return{pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(ShareConfiguration)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Link=__webpack_require__(7),_reactGa=(_interopRequireDefault(_Link),__webpack_require__(13)),_Modal=(_interopRequireDefault(_reactGa),__webpack_require__(23)),_Modal2=_interopRequireDefault(_Modal),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_actions=__webpack_require__(9),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(6),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),spotifyActions=_interopRequireWildcard(_actions4),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),AddToPlaylist=function(_React$Component){function AddToPlaylist(props){_classCallCheck(this,AddToPlaylist);var _this=_possibleConstructorReturn(this,(AddToPlaylist.__proto__||Object.getPrototypeOf(AddToPlaylist)).call(this,props));return _this.props.spotify_library_playlists||_this.props.spotifyActions.getLibraryPlaylists(),!_this.props.mopidy_library_playlists&&_this.props.mopidy_connected&&_this.props.mopidyActions.getLibraryPlaylists(),_this}return _inherits(AddToPlaylist,_React$Component),_createClass(AddToPlaylist,[{key:"playlistSelected",value:function(playlist_uri){this.props.coreActions.addTracksToPlaylist(playlist_uri,this.props.uris),window.history.back()}},{key:"render",value:function(){var _this2=this;if(!this.props.playlists)return _react2.default.createElement("div",{className:"empty"},"No editable playlists");var playlists=[];for(var uri in this.props.playlists)this.props.playlists[uri].can_edit&&playlists.push(this.props.playlists[uri]);playlists=helpers.sortItems(playlists,"name");var loader=null;return"running"==this.props.spotify_library_playlists_status&&(loader=_react2.default.createElement("div",{className:"lazy-loader body-loader loading"},_react2.default.createElement("div",{className:"loader"}))),_react2.default.createElement(_Modal2.default,{className:"modal--add-to-playlist"},_react2.default.createElement("h1",null,"Add to playlist"),_react2.default.createElement("h2",{className:"mid_grey-text"},"Select playlist to add ",this.props.uris.length," track",this.props.uris.length>1?"s":null," to"),playlists.length<=0?_react2.default.createElement("div",{className:"no-results"},"No playlists available"):null,_react2.default.createElement("div",{className:"list small playlists"},playlists.map(function(playlist){return _react2.default.createElement("div",{className:"list__item",key:playlist.uri,onClick:function(){return _this2.playlistSelected(playlist.uri)}},_react2.default.createElement(_Thumbnail2.default,{images:playlist.images,size:"small"}),_react2.default.createElement("h4",{className:"list__item__name"},playlist.name),_react2.default.createElement("ul",{className:"list__item__details details"},_react2.default.createElement("li",null,_react2.default.createElement(_Icon2.default,{type:"fontawesome",className:"source",name:helpers.sourceIcon(playlist.uri)})),_react2.default.createElement("li",null,playlist.tracks_total?_react2.default.createElement("span",{className:"mid_grey-text"}," ",playlist.tracks_total," tracks"):null)))})),loader)}}]),AddToPlaylist}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{uris:ownProps.match.params.uris?decodeURIComponent(ownProps.match.params.uris).split(","):[],mopidy_connected:state.mopidy.connected,mopidy_uri_schemes:state.mopidy.uri_schemes,mopidy_library_playlists:state.mopidy.library_playlists,mopidy_library_playlists_status:void 0!==state.ui.processes.MOPIDY_LIBRARY_PLAYLISTS_PROCESSOR?state.ui.processes.MOPIDY_LIBRARY_PLAYLISTS_PROCESSOR.status:null,spotify_library_playlists:state.spotify.library_playlists,spotify_library_playlists_status:void 0!==state.ui.processes.SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR?state.ui.processes.SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR.status:null,load_queue:state.ui.load_queue,me_id:!!state.spotify.me&&state.spotify.me.id,playlists:state.core.playlists}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(AddToPlaylist)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_Modal=__webpack_require__(23),_Modal2=_interopRequireDefault(_Modal),_Thumbnail=__webpack_require__(10),_helpers=(_interopRequireDefault(_Thumbnail),__webpack_require__(1)),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(2)),uiActions=_interopRequireWildcard(_actions),ImageZoom=function(_React$Component){function ImageZoom(props){return _classCallCheck(this,ImageZoom),_possibleConstructorReturn(this,(ImageZoom.__proto__||Object.getPrototypeOf(ImageZoom)).call(this,props))}return _inherits(ImageZoom,_React$Component),_createClass(ImageZoom,[{key:"componentDidMount",value:function(){this.props.uiActions.setWindowTitle("Zoomed image")}},{key:"render",value:function(){return _react2.default.createElement(_Modal2.default,{className:"modal--image-zoom"},_react2.default.createElement("img",{src:this.props.location.search.replace("?url=","")}))}}]),ImageZoom}(_react2.default.Component),mapStateToProps=function(state){return{}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(ImageZoom)},function(module,exports,__webpack_require__){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj.default=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactRedux=__webpack_require__(4),_redux=__webpack_require__(3),_reactGa=__webpack_require__(13),_Modal=(_interopRequireDefault(_reactGa),__webpack_require__(23)),_Modal2=_interopRequireDefault(_Modal),_Link=__webpack_require__(7),_Icon=(_interopRequireDefault(_Link),__webpack_require__(5)),_ColourField=(_interopRequireDefault(_Icon),__webpack_require__(252)),_ColourField2=_interopRequireDefault(_ColourField),_IconField=__webpack_require__(253),_IconField2=_interopRequireDefault(_IconField),_actions=__webpack_require__(12),pusherActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(2),uiActions=_interopRequireWildcard(_actions2),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),EditCommand=function(_React$Component){function EditCommand(props){_classCallCheck(this,EditCommand);var _this=_possibleConstructorReturn(this,(EditCommand.__proto__||Object.getPrototypeOf(EditCommand)).call(this,props));return _this.state={id:helpers.generateGuid(),icon:"power_settings_new",colour:"",command:'{"url":"https://'+window.location.hostname+'/broadlink/sendCommand/power/"}'},_this}return _inherits(EditCommand,_React$Component),_createClass(EditCommand,[{key:"componentDidMount",value:function(){this.props.command?(this.props.uiActions.setWindowTitle("Edit command"),this.setState(this.props.command)):this.props.uiActions.setWindowTitle("Create command")}},{key:"handleSubmit",value:function(e){return e.preventDefault(),this.props.pusherActions.setCommand({id:this.state.id,icon:this.state.icon,colour:this.state.colour,command:this.state.command}),window.history.back(),setTimeout(function(){helpers.scrollTo("#commands-setup")},10),!1}},{key:"handleDelete",value:function(e){this.props.pusherActions.removeCommand(this.state.id),window.history.back(),setTimeout(function(){helpers.scrollTo("#commands-setup")},10)}},{key:"render",value:function(){var _this2=this,icons=["power_settings_new","eject","grade","query_builder","settings_input_component","settings_input_hdmi","settings_input_svideo","forward_5","forward_10","forward_30","replay","replay_5","replay_10","replay_30","skip_next","skip_previous","play_arrow","pause","stop","shuffle","snooze","volume_off","volume_down","volume_up","arrow_left","arrow_drop_up","arrow_right","arrow_drop_down","done","done_all","add","remove","clear","cast","speaker","speaker_group","audiotrack","videogame_asset","computer","tv"];return _react2.default.createElement(_Modal2.default,{className:"modal--create-command"},_react2.default.createElement("h1",null,this.props.command?"Edit":"Create"," command"),_react2.default.createElement("form",{onSubmit:function(e){return _this2.handleSubmit(e)}},_react2.default.createElement("div",{className:"field radio white"},_react2.default.createElement("div",{className:"name"},"Colour"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement(_ColourField2.default,{colour:this.state.colour,onChange:function(colour){return _this2.setState({colour:colour})}}))),_react2.default.createElement("div",{className:"field radio white"},_react2.default.createElement("div",{className:"name"},"Icon"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement(_IconField2.default,{icon:this.state.icon,icons:icons,onChange:function(icon){return _this2.setState({icon:icon})}}))),_react2.default.createElement("div",{className:"field textarea white"},_react2.default.createElement("div",{className:"name"},"Command"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("textarea",{name:"command",value:this.state.command,onChange:function(e){return _this2.setState({command:e.target.value})}}),_react2.default.createElement("div",{className:"description"},"Ajax request settings. See ",_react2.default.createElement("a",{href:"http://api.jquery.com/jquery.ajax/",target:"_blank",noopener:"true"},_react2.default.createElement("code",null,"jquery.ajax")," documentation"),"."))),_react2.default.createElement("div",{className:"actions centered-text"},this.props.command?_react2.default.createElement("button",{type:"button",className:"button button--destructive button--large",onClick:function(e){return _this2.handleDelete(e)}},"Delete"):null,_react2.default.createElement("button",{type:"submit",className:"button button--primary button--large"},"Save"))))}}]),EditCommand}(_react2.default.Component),mapStateToProps=function(state,ownProps){var id=ownProps.match.params.id;return{id:id,command:id&&state.pusher.commands&&void 0!==state.pusher.commands[id]?state.pusher.commands[id]:null}},mapDispatchToProps=function(dispatch){return{pusherActions:(0,_redux.bindActionCreators)(pusherActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(EditCommand)},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon);exports.default=(0,_react.memo)(function(props){var colours=["","white","mid_grey","grey","dark_grey","black","turquoise","green","blue","light_blue","yellow","orange","red"];return _react2.default.createElement("div",{className:"colour-field"},colours.map(function(colour){var text_colour="white";switch(colour){case"yellow":case"white":case"light_blue":text_colour="black"}return _react2.default.createElement("div",{key:colour,className:"colour-field__option "+(colour?colour+"-background ":"")+(props.colour==colour?"colour-field__option--selected":""),onClick:function(e){return props.onChange(colour)}},props.colour==colour?_react2.default.createElement(_Icon2.default,{name:"check",className:"colour-field__option__icon "+text_colour+"-text"}):null)}))})},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_Icon=__webpack_require__(5),_Icon2=_interopRequireDefault(_Icon);exports.default=(0,_react.memo)(function(props){var icons=props.icons?props.icons:["3d_rotation","ac_unit","access_alarm","access_alarms","access_time","accessibility","accessible","account_balance","account_balance_wallet","account_box","account_circle","adb","add","add_a_photo","add_alarm","add_alert","add_box","add_circle","add_circle_outline","add_location","add_shopping_cart","add_to_photos","add_to_queue","adjust","airline_seat_flat","airline_seat_flat_angled","airline_seat_individual_suite","airline_seat_legroom_extra","airline_seat_legroom_normal","airline_seat_legroom_reduced","airline_seat_recline_extra","airline_seat_recline_normal","airplanemode_active","airplanemode_inactive","airplay","airport_shuttle","alarm","alarm_add","alarm_off","alarm_on","album","all_inclusive","all_out","android","announcement","apps","archive","arrow_back","arrow_downward","arrow_drop_down","arrow_drop_down_circle","arrow_drop_up","arrow_forward","arrow_upward","art_track","aspect_ratio","assessment","assignment","assignment_ind","assignment_late","assignment_return","assignment_returned","assignment_turned_in","assistant","assistant_photo","attach_file","attach_money","attachment","audiotrack","autorenew","av_timer","backspace","backup","battery_alert","battery_charging_full","battery_full","battery_std","battery_unknown","beach_access","beenhere","block","bluetooth","bluetooth_audio","bluetooth_connected","bluetooth_disabled","bluetooth_searching","blur_circular","blur_linear","blur_off","blur_on","book","bookmark","bookmark_border","border_all","border_bottom","border_clear","border_color","border_horizontal","border_inner","border_left","border_outer","border_right","border_style","border_top","border_vertical","branding_watermark","brightness_1","brightness_2","brightness_3","brightness_4","brightness_5","brightness_6","brightness_7","brightness_auto","brightness_high","brightness_low","brightness_medium","broken_image","brush","bubble_chart","bug_report","build","burst_mode","business","business_center","cached","cake","call","call_end","call_made","call_merge","call_missed","call_missed_outgoing","call_received","call_split","call_to_action","camera","camera_alt","camera_enhance","camera_front","camera_rear","camera_roll","cancel","card_giftcard","card_membership","card_travel","casino","cast","cast_connected","center_focus_strong","center_focus_weak","change_history","chat","chat_bubble","chat_bubble_outline","check","check_box","check_box_outline_blank","check_circle","chevron_left","chevron_right","child_care","child_friendly","chrome_reader_mode","class","clear","clear_all","close","closed_caption","cloud","cloud_circle","cloud_done","cloud_download","cloud_off","cloud_queue","cloud_upload","code","collections","collections_bookmark","color_lens","colorize","comment","compare","compare_arrows","computer","confirmation_number","contact_mail","contact_phone","contacts","content_copy","content_cut","content_paste","control_point","control_point_duplicate","copyright","create","create_new_folder","credit_card","crop","crop_16_9","crop_3_2","crop_5_4","crop_7_5","crop_din","crop_free","crop_landscape","crop_original","crop_portrait","crop_rotate","crop_square","dashboard","data_usage","date_range","dehaze","delete","delete_forever","delete_sweep","description","desktop_mac","desktop_windows","details","developer_board","developer_mode","device_hub","devices","devices_other","dialer_sip","dialpad","directions","directions_bike","directions_boat","directions_bus","directions_car","directions_railway","directions_run","directions_subway","directions_transit","directions_walk","disc_full","dns","do_not_disturb","do_not_disturb_alt","do_not_disturb_off","do_not_disturb_on","dock","domain","done","done_all","donut_large","donut_small","drafts","drag_handle","drive_eta","dvr","edit","edit_location","eject","email","enhanced_encryption","equalizer","error","error_outline","euro_symbol","ev_station","event","event_available","event_busy","event_note","event_seat","exit_to_app","expand_less","expand_more","explicit","explore","exposure","exposure_neg_1","exposure_neg_2","exposure_plus_1","exposure_plus_2","exposure_zero","extension","face","fast_forward","fast_rewind","favorite","favorite_border","featured_play_list","featured_video","feedback","fiber_dvr","fiber_manual_record","fiber_new","fiber_pin","fiber_smart_record","file_download","file_upload","filter","filter_1","filter_2","filter_3","filter_4","filter_5","filter_6","filter_7","filter_8","filter_9","filter_9_plus","filter_b_and_w","filter_center_focus","filter_drama","filter_frames","filter_hdr","filter_list","filter_none","filter_tilt_shift","filter_vintage","find_in_page","find_replace","fingerprint","first_page","fitness_center","flag","flare","flash_auto","flash_off","flash_on","flight","flight_land","flight_takeoff","flip","flip_to_back","flip_to_front","folder","folder_open","folder_shared","folder_special","font_download","format_align_center","format_align_justify","format_align_left","format_align_right","format_bold","format_clear","format_color_fill","format_color_reset","format_color_text","format_indent_decrease","format_indent_increase","format_italic","format_line_spacing","format_list_bulleted","format_list_numbered","format_paint","format_quote","format_shapes","format_size","format_strikethrough","format_textdirection_l_to_r","format_textdirection_r_to_l","format_underlined","forum","forward","forward_10","forward_30","forward_5","free_breakfast","fullscreen","fullscreen_exit","functions","g_translate","gamepad","games","gavel","gesture","get_app","gif","golf_course","gps_fixed","gps_not_fixed","gps_off","grade","gradient","grain","graphic_eq","grid_off","grid_on","group","group_add","group_work","hd","hdr_off","hdr_on","hdr_strong","hdr_weak","headset","headset_mic","healing","hearing","help","help_outline","high_quality","highlight","highlight_off","history","home","hot_tub","hotel","hourglass_empty","hourglass_full","http","https","image","image_aspect_ratio","import_contacts","import_export","important_devices","inbox","indeterminate_check_box","info","info_outline","input","insert_chart","insert_comment","insert_drive_file","insert_emoticon","insert_invitation","insert_link","insert_photo","invert_colors","invert_colors_off","iso","keyboard","keyboard_arrow_down","keyboard_arrow_left","keyboard_arrow_right","keyboard_arrow_up","keyboard_backspace","keyboard_capslock","keyboard_hide","keyboard_return","keyboard_tab","keyboard_voice","kitchen","label","label_outline","landscape","language","laptop","laptop_chromebook","laptop_mac","laptop_windows","last_page","launch","layers","layers_clear","leak_add","leak_remove","lens","library_add","library_books","library_music","lightbulb_outline","line_style","line_weight","linear_scale","link","linked_camera","list","live_help","live_tv","local_activity","local_airport","local_atm","local_bar","local_cafe","local_car_wash","local_convenience_store","local_dining","local_drink","local_florist","local_gas_station","local_grocery_store","local_hospital","local_hotel","local_laundry_service","local_library","local_mall","local_movies","local_offer","local_parking","local_pharmacy","local_phone","local_pizza","local_play","local_post_office","local_printshop","local_see","local_shipping","local_taxi","location_city","location_disabled","location_off","location_on","location_searching","lock","lock_open","lock_outline","looks","looks_3","looks_4","looks_5","looks_6","looks_one","looks_two","loop","loupe","low_priority","loyalty","mail","mail_outline","map","markunread","markunread_mailbox","memory","menu","merge_type","message","mic","mic_none","mic_off","mms","mode_comment","mode_edit","monetization_on","money_off","monochrome_photos","mood","mood_bad","more","more_horiz","more_vert","motorcycle","mouse","move_to_inbox","movie","movie_creation","movie_filter","multiline_chart","music_note","music_video","my_location","nature","nature_people","navigate_before","navigate_next","navigation","near_me","network_cell","network_check","network_locked","network_wifi","new_releases","next_week","nfc","no_encryption","no_sim","not_interested","note","note_add","notifications","notifications_active","notifications_none","notifications_off","notifications_paused","offline_pin","ondemand_video","opacity","open_in_browser","open_in_new","open_with","pages","pageview","palette","pan_tool","panorama","panorama_fish_eye","panorama_horizontal","panorama_vertical","panorama_wide_angle","party_mode","pause","pause_circle_filled","pause_circle_outline","payment","people","people_outline","perm_camera_mic","perm_contact_calendar","perm_data_setting","perm_device_information","perm_identity","perm_media","perm_phone_msg","perm_scan_wifi","person","person_add","person_outline","person_pin","person_pin_circle","personal_video","pets","phone","phone_android","phone_bluetooth_speaker","phone_forwarded","phone_in_talk","phone_iphone","phone_locked","phone_missed","phone_paused","phonelink","phonelink_erase","phonelink_lock","phonelink_off","phonelink_ring","phonelink_setup","photo","photo_album","photo_camera","photo_filter","photo_library","photo_size_select_actual","photo_size_select_large","photo_size_select_small","picture_as_pdf","picture_in_picture","picture_in_picture_alt","pie_chart","pie_chart_outlined","pin_drop","place","play_arrow","play_circle_filled","play_circle_outline","play_for_work","playlist_add","playlist_add_check","playlist_play","plus_one","poll","polymer","pool","portable_wifi_off","portrait","power","power_input","power_settings_new","pregnant_woman","present_to_all","print","priority_high","public","publish","query_builder","question_answer","queue","queue_music","queue_play_next","radio","radio_button_checked","radio_button_unchecked","rate_review","receipt","recent_actors","record_voice_over","redeem","redo","refresh","remove","remove_circle","remove_circle_outline","remove_from_queue","remove_red_eye","remove_shopping_cart","reorder","repeat","repeat_one","replay","replay_10","replay_30","replay_5","reply","reply_all","report","report_problem","restaurant","restaurant_menu","restore","restore_page","ring_volume","room","room_service","rotate_90_degrees_ccw","rotate_left","rotate_right","rounded_corner","router","rowing","rss_feed","rv_hookup","satellite","save","scanner","schedule","school","screen_lock_landscape","screen_lock_portrait","screen_lock_rotation","screen_rotation","screen_share","sd_card","sd_storage","search","security","select_all","send","sentiment_dissatisfied","sentiment_neutral","sentiment_satisfied","sentiment_very_dissatisfied","sentiment_very_satisfied","settings","settings_applications","settings_backup_restore","settings_bluetooth","settings_brightness","settings_cell","settings_ethernet","settings_input_antenna","settings_input_component","settings_input_composite","settings_input_hdmi","settings_input_svideo","settings_overscan","settings_phone","settings_power","settings_remote","settings_system_daydream","settings_voice","share","shop","shop_two","shopping_basket","shopping_cart","short_text","show_chart","shuffle","signal_cellular_4_bar","signal_cellular_connected_no_internet_4_bar","signal_cellular_no_sim","signal_cellular_null","signal_cellular_off","signal_wifi_4_bar","signal_wifi_4_bar_lock","signal_wifi_off","sim_card","sim_card_alert","skip_next","skip_previous","slideshow","slow_motion_video","smartphone","smoke_free","smoking_rooms","sms","sms_failed","snooze","sort","sort_by_alpha","spa","space_bar","speaker","speaker_group","speaker_notes","speaker_notes_off","speaker_phone","spellcheck","star","star_border","star_half","stars","stay_current_landscape","stay_current_portrait","stay_primary_landscape","stay_primary_portrait","stop","stop_screen_share","storage","store","store_mall_directory","straighten","streetview","strikethrough_s","style","subdirectory_arrow_left","subdirectory_arrow_right","subject","subscriptions","subtitles","subway","supervisor_account","surround_sound","swap_calls","swap_horiz","swap_vert","swap_vertical_circle","switch_camera","switch_video","sync","sync_disabled","sync_problem","system_update","system_update_alt","tab","tab_unselected","tablet","tablet_android","tablet_mac","tag_faces","tap_and_play","terrain","text_fields","text_format","textsms","texture","theaters","thumb_down","thumb_up","thumbs_up_down","time_to_leave","timelapse","timeline","timer","timer_10","timer_3","timer_off","title","toc","today","toll","tonality","touch_app","toys","track_changes","traffic","train","tram","transfer_within_a_station","transform","translate","trending_down","trending_flat","trending_up","tune","turned_in","turned_in_not","tv","unarchive","undo","unfold_less","unfold_more","update","usb","verified_user","vertical_align_bottom","vertical_align_center","vertical_align_top","vibration","video_call","video_label","video_library","videocam","videocam_off","videogame_asset","view_agenda","view_array","view_carousel","view_column","view_comfy","view_compact","view_day","view_headline","view_list","view_module","view_quilt","view_stream","view_week","vignette","visibility","visibility_off","voice_chat","voicemail","volume_down","volume_mute","volume_off","volume_up","vpn_key","vpn_lock","wallpaper","warning","watch","watch_later","wb_auto","wb_cloudy","wb_incandescent","wb_iridescent","wb_sunny","wc","web","web_asset","weekend","whatshot","widgets","wifi","wifi_lock","wifi_tethering","work","wrap_text","youtube_searched_for","zoom_in","zoom_out","zoom_out_map"];return _react2.default.createElement("div",{className:"icon-field"},icons.map(function(icon){return _react2.default.createElement("div",{key:icon,className:"icon-field__option "+(props.icon==icon?"icon-field__option--selected":""),onClick:function(e){return props.onChange(icon)}},_react2.default.createElement(_Icon2.default,{name:icon,className:"icon-field__option__icon"}))}))})},function(module,exports){}]);
//# sourceMappingURL=app.min.js.map