75 lines
1.2 MiB
Executable File
75 lines
1.2 MiB
Executable File
!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=95)}([function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(96)},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},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){}}()),sizedImages=(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.sizedImages=function(images){var sizes={small:!1,medium:!1,large:!1,huge:!1};if(images.length<=0)return sizes;for(var i=0;i<images.length;i++){var image=images[i];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"]}}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}),uriSource=(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&&sizedImages(track.images).small},exports.formatAlbum=function(album){return void 0!==album.release_date&&(album.date=album.release_date),album},exports.formatTracks=function(tracks){if(!tracks||void 0===tracks)return null;var singular=!1;tracks.constructor!==Array&&(tracks=[tracks],singular=!0);for(var formatted=[],i=0;i<tracks.length;i++){if(tracks[i].track&&isObject(tracks[i].track)){var track=Object.assign({},tracks[i].track);tracks[i].added_by&&(track.added_by=tracks[i].added_by),tracks[i].added_at&&(track.added_at=tracks[i].added_at),tracks[i].tlid&&(track.tlid=tracks[i].tlid)}else var track=Object.assign({},tracks[i]);track.duration_ms?track.duration=track.duration_ms:track.length&&(track.duration=track.length),track.track_no?track.track_number=track.track_no:track.track_number&&(track.track_number=track.track_number),track.disc_no&&(track.disc_number=track.disc_no),track.release_date&&(track.date=track.release_date),track.album&&track.album.images&&(!track.images||track.images.length>0)&&(track.images=track.album.images),formatted.push(track)}return singular?formatted[0]:formatted},exports.uriSource=function(uri){return!!uri&&uri.split(":")[0]}),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"searchcontext":if("search"==exploded[0]){if(["all","artist","album","playlist","track"].indexOf(exploded[1])>-1)return exploded[1]}break;case"searchterm":if("search"==exploded[0])return exploded[2]}return null},exports.uriType=function(uri){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]}return null},exports.indexFriendlyUri=function(uri){var output=encodeURI(uri);return output=output.replace("'","%27")},exports.arrayOf=function(property,items){for(var array=[],i=0;i<items.length;i++)array.push(items[i][property]);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 compare(a,b){for(var a_value=a,a_property_split=property.split("."),i=0;i<a_property_split.length;i++){if(void 0===a_value[a_property_split[i]]){a_value=!1;break}a_value=a_value[a_property_split[i]]}for(var b_value=b,b_property_split=property.split("."),i=0;i<b_property_split.length;i++){if(void 0===b_value[b_property_split[i]]){b_value=!1;break}b_value=b_value[b_property_split[i]]}if("uri"==property&&(a_value=uriSource(a_value),b_value=uriSource(b_value)),!sort_map)return"boolean"==typeof a_value?a_value&&!b_value?-1:!a_value&&b_value?1:0:"string"==typeof a_value?a_value&&b_value?a_value.toLowerCase()>b_value.toLowerCase()?1:a_value.toLowerCase()<b_value.toLowerCase()?-1:0:0:parseInt(a_value)>parseInt(b_value)?1:parseInt(a_value)<parseInt(b_value)?-1: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,sorted=Object.assign([],array.sort(compare));return reverse&&sorted.reverse(),sorted},exports.isNumeric=function(value){return!isNaN(parseFloat(value))&&isFinite(value)},exports.isObject=function(value){return value instanceof Object&&value.constructor===Object});exports.setWindowTitle=function(){var track=arguments.length>0&&void 0!==arguments[0]&&arguments[0],play_state=arguments.length>1&&void 0!==arguments[1]&&arguments[1],title="No track playing";if(track){var icon="■ ",artist_string="";if(track.artists)for(var i=0;i<track.artists.length;i++)""!=artist_string&&(artist_string+=", "),artist_string+=track.artists[i].name;play_state&&"playing"==play_state&&(icon="▶ "),title=icon+" "+track.name+" - "+artist_string}document.title=title},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.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)}},function(module,__webpack_exports__,__webpack_require__){"use strict";Object.defineProperty(__webpack_exports__,"__esModule",{value:!0});var __WEBPACK_IMPORTED_MODULE_0__createStore__=__webpack_require__(66),__WEBPACK_IMPORTED_MODULE_1__combineReducers__=__webpack_require__(123),__WEBPACK_IMPORTED_MODULE_2__bindActionCreators__=__webpack_require__(124),__WEBPACK_IMPORTED_MODULE_3__applyMiddleware__=__webpack_require__(125),__WEBPACK_IMPORTED_MODULE_4__compose__=__webpack_require__(70);__webpack_require__(69);__webpack_require__.d(__webpack_exports__,"createStore",function(){return __WEBPACK_IMPORTED_MODULE_0__createStore__.b}),__webpack_require__.d(__webpack_exports__,"combineReducers",function(){return __WEBPACK_IMPORTED_MODULE_1__combineReducers__.a}),__webpack_require__.d(__webpack_exports__,"bindActionCreators",function(){return __WEBPACK_IMPORTED_MODULE_2__bindActionCreators__.a}),__webpack_require__.d(__webpack_exports__,"applyMiddleware",function(){return __WEBPACK_IMPORTED_MODULE_3__applyMiddleware__.a}),__webpack_require__.d(__webpack_exports__,"compose",function(){return __WEBPACK_IMPORTED_MODULE_4__compose__.a})},function(module,__webpack_exports__,__webpack_require__){"use strict";Object.defineProperty(__webpack_exports__,"__esModule",{value:!0});var __WEBPACK_IMPORTED_MODULE_0__components_Provider__=__webpack_require__(104),__WEBPACK_IMPORTED_MODULE_1__components_connectAdvanced__=__webpack_require__(64),__WEBPACK_IMPORTED_MODULE_2__connect_connect__=__webpack_require__(108);__webpack_require__.d(__webpack_exports__,"Provider",function(){return __WEBPACK_IMPORTED_MODULE_0__components_Provider__.b}),__webpack_require__.d(__webpack_exports__,"createProvider",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__,"connect",function(){return __WEBPACK_IMPORTED_MODULE_2__connect_connect__.a})},function(module,exports,__webpack_require__){"use strict";(function($){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 hideContextMenu(){return{type:"HIDE_CONTEXT_MENU"}}function showTouchContextMenu(data){return{type:"SHOW_TOUCH_CONTEXT_MENU",data:data}}function hideTouchContextMenu(){return{type:"HIDE_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 getIcon(name){return function(dispatch,getState){var config={method:"GET",timeout:15e3,url:"assets/icons/"+name+".svg"};$.ajax(config).then(function(response){dispatch({type:"ICON_LOADED",key:name,icon:(new XMLSerializer).serializeToString(response)})},function(xhr,status,error){dispatch(handleException("Could not load "+name+" icon",{config:config,xhr:xhr,status:status,error:error}))})}}function openModal(name,data){return{type:"OPEN_MODAL",modal:{name:name,data:data}}}function closeModal(){return{type:"CLOSE_MODAL"}}function createBrowserNotification(data){return{type:"BROWSER_NOTIFICATION",data:data}}function createNotification(data){return{type:"CREATE_NOTIFICATION",notification:Object.assign({key:helpers.generateGuid(),duration:5,type:"default",title:null,content:null,description:null,sticky:!1,closing:!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.setSelectedTracks=setSelectedTracks,exports.showContextMenu=showContextMenu,exports.setSlimMode=setSlimMode,exports.hideContextMenu=hideContextMenu,exports.showTouchContextMenu=showTouchContextMenu,exports.hideTouchContextMenu=hideTouchContextMenu,exports.lazyLoading=lazyLoading,exports.toggleSidebar=toggleSidebar,exports.dragStart=dragStart,exports.dragActive=dragActive,exports.dragEnd=dragEnd,exports.set=set,exports.getIcon=getIcon,exports.openModal=openModal,exports.closeModal=closeModal,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)}).call(exports,__webpack_require__(18))},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__(206),_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,__webpack_exports__,__webpack_require__){"use strict";Object.defineProperty(__webpack_exports__,"__esModule",{value:!0});var __WEBPACK_IMPORTED_MODULE_0__Router__=__webpack_require__(139);__webpack_require__.d(__webpack_exports__,"Router",function(){return __WEBPACK_IMPORTED_MODULE_0__Router__.a});var __WEBPACK_IMPORTED_MODULE_1__Link__=__webpack_require__(77);__webpack_require__.d(__webpack_exports__,"Link",function(){return __WEBPACK_IMPORTED_MODULE_1__Link__.a});var __WEBPACK_IMPORTED_MODULE_2__IndexLink__=__webpack_require__(147);__webpack_require__.d(__webpack_exports__,"IndexLink",function(){return __WEBPACK_IMPORTED_MODULE_2__IndexLink__.a});var __WEBPACK_IMPORTED_MODULE_3__withRouter__=__webpack_require__(148);__webpack_require__.d(__webpack_exports__,"withRouter",function(){return __WEBPACK_IMPORTED_MODULE_3__withRouter__.a});var __WEBPACK_IMPORTED_MODULE_4__IndexRedirect__=__webpack_require__(149);__webpack_require__.d(__webpack_exports__,"IndexRedirect",function(){return __WEBPACK_IMPORTED_MODULE_4__IndexRedirect__.a});var __WEBPACK_IMPORTED_MODULE_5__IndexRoute__=__webpack_require__(150);__webpack_require__.d(__webpack_exports__,"IndexRoute",function(){return __WEBPACK_IMPORTED_MODULE_5__IndexRoute__.a});var __WEBPACK_IMPORTED_MODULE_6__Redirect__=__webpack_require__(78);__webpack_require__.d(__webpack_exports__,"Redirect",function(){return __WEBPACK_IMPORTED_MODULE_6__Redirect__.a});var __WEBPACK_IMPORTED_MODULE_7__Route__=__webpack_require__(151);__webpack_require__.d(__webpack_exports__,"Route",function(){return __WEBPACK_IMPORTED_MODULE_7__Route__.a});var __WEBPACK_IMPORTED_MODULE_8__RouteUtils__=__webpack_require__(28);__webpack_require__.d(__webpack_exports__,"createRoutes",function(){return __WEBPACK_IMPORTED_MODULE_8__RouteUtils__.b});var __WEBPACK_IMPORTED_MODULE_9__RouterContext__=__webpack_require__(52);__webpack_require__.d(__webpack_exports__,"RouterContext",function(){return __WEBPACK_IMPORTED_MODULE_9__RouterContext__.a});var __WEBPACK_IMPORTED_MODULE_10__PropTypes__=__webpack_require__(54);__webpack_require__.d(__webpack_exports__,"locationShape",function(){return __WEBPACK_IMPORTED_MODULE_10__PropTypes__.a}),__webpack_require__.d(__webpack_exports__,"routerShape",function(){return __WEBPACK_IMPORTED_MODULE_10__PropTypes__.b});var __WEBPACK_IMPORTED_MODULE_11__match__=__webpack_require__(152);__webpack_require__.d(__webpack_exports__,"match",function(){return __WEBPACK_IMPORTED_MODULE_11__match__.a});var __WEBPACK_IMPORTED_MODULE_12__useRouterHistory__=__webpack_require__(82);__webpack_require__.d(__webpack_exports__,"useRouterHistory",function(){return __WEBPACK_IMPORTED_MODULE_12__useRouterHistory__.a});var __WEBPACK_IMPORTED_MODULE_13__PatternUtils__=__webpack_require__(33);__webpack_require__.d(__webpack_exports__,"formatPattern",function(){return __WEBPACK_IMPORTED_MODULE_13__PatternUtils__.a});var __WEBPACK_IMPORTED_MODULE_14__applyRouterMiddleware__=__webpack_require__(157);__webpack_require__.d(__webpack_exports__,"applyRouterMiddleware",function(){return __WEBPACK_IMPORTED_MODULE_14__applyRouterMiddleware__.a});var __WEBPACK_IMPORTED_MODULE_15__browserHistory__=__webpack_require__(158);__webpack_require__.d(__webpack_exports__,"browserHistory",function(){return __WEBPACK_IMPORTED_MODULE_15__browserHistory__.a});var __WEBPACK_IMPORTED_MODULE_16__hashHistory__=__webpack_require__(161);__webpack_require__.d(__webpack_exports__,"hashHistory",function(){return __WEBPACK_IMPORTED_MODULE_16__hashHistory__.a});var __WEBPACK_IMPORTED_MODULE_17__createMemoryHistory__=__webpack_require__(79);__webpack_require__.d(__webpack_exports__,"createMemoryHistory",function(){return __WEBPACK_IMPORTED_MODULE_17__createMemoryHistory__.a})},function(module,exports,__webpack_require__){"use strict";(function($,global){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);refreshToken(dispatch,getState).then(function(response){resolve(response.access_token)},function(error){reject(error)})})}function refreshToken(dispatch,getState){return new Promise(function(resolve,reject){if(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){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){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(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){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 authorizationReceived(data){return uiActions.openModal("receive_authorization",data)}function importAuthorization(data){return{type:"SPOTIFY_IMPORT_AUTHORIZATION",user:data.user,authorization:data.authorization}}function getMe(){return function(dispatch,getState){sendRequest(dispatch,getState,"me").then(function(response){dispatch({type:"SPOTIFY_ME_LOADED",data:response})},function(error){dispatch(coreActions.handleException("Could not load your profile",error))})}}function getTrack(uri){return function(dispatch,getState){sendRequest(dispatch,getState,"tracks/"+helpers.getFromUri("trackid",uri)).then(function(response){var track=Object.assign({},response,{images:response.album.images});dispatch({type:"TRACK_LOADED",key:uri,track:track})},function(error){dispatch(coreActions.handleException("Could not load track",error))})}}function getLibraryTracks(){return function(dispatch,getState){sendRequest(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;sendRequest(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(getPlaylist(playlists[0].uri)),dispatch({type:"PLAYLISTS_LOADED",playlists:playlists}),dispatch({type:"SPOTIFY_FEATURED_PLAYLISTS_LOADED",data:{message:response.message,playlists:helpers.arrayOf("uri",response.playlists.items)}})},function(error){dispatch(coreActions.handleException("Could not load featured playlists",error))})}}function getCategories(){return function(dispatch,getState){sendRequest(dispatch,getState,"browse/categories?limit=50&country="+getState().spotify.country+"&locale="+getState().spotify.locale).then(function(response){dispatch({type:"CATEGORIES_LOADED",categories:response.categories.items})},function(error){dispatch(coreActions.handleException("Could not load categories",error))})}}function getCategory(id){return function(dispatch,getState){dispatch({type:"CATEGORY_LOADED",key:"category:"+id,category:{playlists_uris:null}}),sendRequest(dispatch,getState,"browse/categories/"+id+"?country="+getState().spotify.country+"&locale="+getState().spotify.locale).then(function(response){Object.assign({},response);dispatch({type:"CATEGORY_LOADED",key:"category:"+id,category:Object.assign({},response)})},function(error){dispatch(coreActions.handleException("Could not load category",error))}),sendRequest(dispatch,getState,"browse/categories/"+id+"/playlists?limit=50&country="+getState().spotify.country+"&locale="+getState().spotify.locale).then(function(response){for(var playlists=[],i=0;i<response.playlists.items.length;i++)playlists.push(Object.assign({},response.playlists.items[i],{tracks:null,tracks_more:null,tracks_total:response.playlists.items[i].tracks.total}));dispatch({type:"PLAYLISTS_LOADED",playlists:playlists}),dispatch({type:"SPOTIFY_CATEGORY_PLAYLISTS_LOADED",key:"category:"+id,data:response})},function(error){dispatch(coreActions.handleException("Could not load category playlists",error))})}}function getNewReleases(){return function(dispatch,getState){sendRequest(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){sendRequest(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){sendRequest(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,sendRequest(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){for(var playlists=[],i=0;i<response.playlists.items.length;i++)playlists.push(Object.assign({},response.playlists.items[i],{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_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,sendRequest(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({type:"ARTISTS_LOADED",artists:response.artists.items}),response.albums&&response.albums.items&&dispatch({type:"ALBUMS_LOADED",albums:response.albums.items}),response.playlists&&response.playlists.items&&dispatch({type:"PLAYLISTS_LOADED",playlists:response.playlists.items}),response.tracks&&response.tracks.items&&dispatch({type:"TRACKS_LOADED",tracks: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?"users/"+helpers.getFromUri("userid",uri)+"/playlists/"+helpers.getFromUri("playlistid",uri)+"/followers/contains?ids="+getState().spotify.me.id:"users/"+helpers.getFromUri("userid",uri)+"/playlists/"+helpers.getFromUri("playlistid",uri)+"/followers"}sendRequest(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]);sendRequest(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]);sendRequest(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(sendRequest(dispatch,getState,"me/top/artists?limit="+limit+"&time_range="+term),sendRequest(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]);sendRequest(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({type:"ALBUMS_LOADED",albums:albums}),tracks.length>0&&dispatch({type:"TRACKS_LOADED",tracks: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){sendRequest(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=[sendRequest(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(sendRequest(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(sendRequest(dispatch,getState,"artists/"+helpers.getFromUri("artistid",uri)+"/related-artists").then(function(response){dispatch({type:"ARTISTS_LOADED",artists: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({type:"ARTIST_LOADED",key:artist.uri,artist:artist}),full&&sendRequest(dispatch,getState,"artists/"+helpers.getFromUri("artistid",uri)+"/albums?market="+getState().spotify.country).then(function(response){dispatch({type:"SPOTIFY_ARTIST_ALBUMS_LOADED",data:response,key:uri})},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]);sendRequest(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=helpers.arrayOf("uri",artist.albums),artist.albums_more=artist.albums.next,dispatch({type:"ARTIST_LOADED",artist: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 sendRequest(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){var and_playlists=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(dispatch,getState){sendRequest(dispatch,getState,"users/"+helpers.getFromUri("userid",uri)).then(function(response){dispatch({type:"USERS_LOADED",users:[response]})},function(error){dispatch(coreActions.handleException("Could not load user",error))}),and_playlists&&dispatch(getUserPlaylists(uri))}}function getUserPlaylists(user_uri){return function(dispatch,getState){sendRequest(dispatch,getState,"users/"+helpers.getFromUri("userid",user_uri)+"/playlists?limit=40").then(function(response){for(var playlists=[],i=0;i<response.items.length;i++){var can_edit=!1;getState().spotify.me&&response.items[i].owner.id==getState().spotify.me.id&&(can_edit=!0),playlists.push(Object.assign({},response.items[i],{can_edit:can_edit,tracks_total:response.items[i].tracks.total}))}dispatch({type:"LOADED_MORE",parent_type:"user",parent_key:user_uri,records_type:"playlist",records_data:response})},function(error){dispatch(coreActions.handleException("Could not load user's playlists",error))})}}function getAlbum(uri){return function(dispatch,getState){sendRequest(dispatch,getState,"albums/"+helpers.getFromUri("albumid",uri)).then(function(response){dispatch({type:"ARTISTS_LOADED",artists:response.artists});for(var album=Object.assign({},response,{artists_uris:helpers.arrayOf("uri",response.artists),tracks:response.tracks.items,tracks_more:response.tracks.next,tracks_total:response.tracks.total}),i=0;i<album.tracks.length;i++)album.tracks[i].album={name:album.name,uri:album.uri};dispatch({type:"ALBUM_LOADED",key:album.uri,album:album});for(var artist_ids=[],i=0;i<response.artists.length;i++)artist_ids.push(helpers.getFromUri("artistid",response.artists[i].uri));sendRequest(dispatch,getState,"artists/?ids="+artist_ids).then(function(response){dispatch({type:"ARTISTS_LOADED",artists: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){sendRequest(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};sendRequest(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({content:"Created playlist"}))},function(error){dispatch(coreActions.handleException("Could not create playlist",error))})}}function savePlaylist(uri,name,description,is_public,is_collaborative){return function(dispatch,getState){var data={name:name,description:description,public:is_public,collaborative:is_collaborative};sendRequest(dispatch,getState,"users/"+getState().spotify.me.id+"/playlists/"+helpers.getFromUri("playlistid",uri),"PUT",data).then(function(response){dispatch({type:"PLAYLIST_UPDATED",key:uri,playlist:{name:name,public:is_public,collaborative:is_collaborative,description:description}}),dispatch(uiActions.createNotification({content:"Saved"}))},function(error){dispatch(coreActions.handleException("Could not save playlist",error))})}}function getPlaylist(uri){return function(dispatch,getState){sendRequest(dispatch,getState,"users/"+helpers.getFromUri("userid",uri)+"/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="#'+global.baseURL+"artist/spotify:artist:"),description=description.split('<a href="spotify:album:').join('<a href="#'+global.baseURL+"album/spotify:album:"),description=description.split('<a href="spotify:user:').join('<a href="#'+global.baseURL+"user/spotify:user:"));var playlist=Object.assign({},response,{is_completely_loaded:!0,can_edit:getState().spotify.me&&response.owner.id==getState().spotify.me.id,tracks:helpers.formatTracks(response.tracks.items),tracks_more:response.tracks.next,tracks_total:response.tracks.total,description:description});dispatch({type:"PLAYLIST_LOADED",key:playlist.uri,playlist: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){sendRequest(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 getPlaylistTracksAndPlay(uri){return function(dispatch,getState){dispatch(uiActions.startProcess("SPOTIFY_GET_PLAYLIST_TRACKS_AND_PLAY_PROCESSOR","Loading playlist tracks",{uri:uri,next:"users/"+helpers.getFromUri("userid",uri)+"/playlists/"+helpers.getFromUri("playlistid",uri)+"/tracks?market="+getState().spotify.country}))}}function getPlaylistTracksAndPlayProcessor(data){return function(dispatch,getState){sendRequest(dispatch,getState,data.next).then(function(response){if(void 0!==getState().ui.processes.SPOTIFY_GET_PLAYLIST_TRACKS_AND_PLAY_PROCESSOR){if("cancelling"==getState().ui.processes.SPOTIFY_GET_PLAYLIST_TRACKS_AND_PLAY_PROCESSOR.status)return dispatch(uiActions.processCancelled("SPOTIFY_GET_PLAYLIST_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_PLAYLIST_TRACKS_AND_PLAY_PROCESSOR","Loading "+(response.total-uris.length)+" playlist tracks",{next:response.next,total:response.total,remaining:response.total-uris.length})),dispatch(uiActions.runProcess("SPOTIFY_GET_PLAYLIST_TRACKS_AND_PLAY_PROCESSOR",{next:response.next,uris:uris}))):(dispatch(mopidyActions.playURIs(uris,data.uri)),dispatch(uiActions.processFinishing("SPOTIFY_GET_PLAYLIST_TRACKS_AND_PLAY_PROCESSOR")))},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){sendRequest(dispatch,getState,"users/"+helpers.getFromUri("userid",uri)+"/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){sendRequest(dispatch,getState,"users/"+helpers.getFromUri("userid",uri)+"/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){sendRequest(dispatch,getState,"users/"+helpers.getFromUri("userid",uri)+"/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){sendRequest(dispatch,getState,"users/"+helpers.getFromUri("userid",uri)+"/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){sendRequest(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){sendRequest(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){sendRequest(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.authorizationReceived=authorizationReceived,exports.importAuthorization=importAuthorization,exports.getMe=getMe,exports.getTrack=getTrack,exports.getLibraryTracks=getLibraryTracks,exports.getFeaturedPlaylists=getFeaturedPlaylists,exports.getCategories=getCategories,exports.getCategory=getCategory,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.getPlaylistTracksAndPlay=getPlaylistTracksAndPlay,exports.getPlaylistTracksAndPlayProcessor=getPlaylistTracksAndPlayProcessor,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__(14),uiActions=__webpack_require__(4),mopidyActions=__webpack_require__(8),lastfmActions=__webpack_require__(19),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){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));var loader_key=helpers.generateGuid();dispatch(uiActions.startLoading(loader_key,"spotify_"+endpoint)),$.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){reject(error)})})}}).call(exports,__webpack_require__(18),__webpack_require__(9))},function(module,exports,__webpack_require__){"use strict";function setConfig(config){return{type:"MOPIDY_SET_CONFIG",config:config}}function connect(){return{type:"MOPIDY_CONNECT"}}function connecting(){return{type:"MOPIDY_CONNECTING"}}function upgrading(){return{type:"MOPIDY_UPGRADING"}}function restarting(){return{type:"MOPIDY_RESTARTING"}}function disconnect(){return{type:"MOPIDY_DISCONNECT"}}function debug(call,value){return{type:"MOPIDY_DEBUG",call:call,value:value}}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(uris){return{type:"MOPIDY_PLAY_URIS",uris:uris,from_uri:arguments.length>1&&void 0!==arguments[1]?arguments[1]:null}}function enqueueURIs(uris){var from_uri=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,next=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:"MOPIDY_ENQUEUE_URIS",uris:uris,at_position:arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,next:next,from_uri:from_uri,offset:arguments.length>4&&void 0!==arguments[4]?arguments[4]:0}}function enqueueURIsBatchDone(){return{type:"MOPIDY_ENQUEUE_URIS_BATCH_DONE"}}function playPlaylist(uri){return{type:"MOPIDY_PLAY_PLAYLIST",uri:uri}}function playAlbum(uri){return{type:"MOPIDY_PLAY_ALBUM",uri:uri}}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"}}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"}}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.setConfig=setConfig,exports.connect=connect,exports.connecting=connecting,exports.upgrading=upgrading,exports.restarting=restarting,exports.disconnect=disconnect,exports.debug=debug,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.enqueueURIs=enqueueURIs,exports.enqueueURIsBatchDone=enqueueURIsBatchDone,exports.playPlaylist=playPlaylist,exports.playAlbum=playAlbum,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.getArtist=getArtist,exports.getArtists=getArtists,exports.getAlbum=getAlbum,exports.getAlbums=getAlbums,exports.getLibraryAlbums=getLibraryAlbums,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){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,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__(3),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),Thumbnail=function(_React$Component){function Thumbnail(props){return _classCallCheck(this,Thumbnail),_possibleConstructorReturn(this,(Thumbnail.__proto__||Object.getPrototypeOf(Thumbnail)).call(this,props))}return _inherits(Thumbnail,_React$Component),_createClass(Thumbnail,[{key:"mapImageSizes",value:function(){arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;if(!this.props.image&&(!this.props.images||this.props.images.length<=0))return __webpack_require__(207);if(this.props.image)return this.props.image;if(this.props.images&&this.props.images.length>0){var images=helpers.sizedImages(this.props.images),size="medium";return this.props.size&&(size=this.props.size),images[size]}}},{key:"zoom",value:function(e,image){e.preventDefault(),this.props.uiActions.openModal("image_zoom",{url:image})}},{key:"render",value:function(){var _this2=this,image=this.mapImageSizes(),class_name="thumbnail ";this.props.size&&(class_name+=" "+this.props.size),this.props.circle&&(class_name+=" circle"),this.props.className&&(class_name+=" "+this.props.className);var zoom_icon=null;return this.props.canZoom&&(zoom_icon=_react2.default.createElement("span",{className:"zoom",onClick:function(e){return _this2.zoom(e,image)}},_react2.default.createElement(_reactFontawesome2.default,{name:"search"}))),_react2.default.createElement("div",{className:class_name},_react2.default.createElement("div",{className:"image loaded",style:{backgroundImage:'url("'+image+'")'}}),zoom_icon)}}]),Thumbnail}(_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)(Thumbnail)},function(module,exports,__webpack_require__){module.exports=__webpack_require__(105)()},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__(3),_redux=__webpack_require__(2),_helpers=__webpack_require__(1),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(4)),uiActions=_interopRequireWildcard(_actions),Icon=function(_React$Component){function Icon(props){return _classCallCheck(this,Icon),_possibleConstructorReturn(this,(Icon.__proto__||Object.getPrototypeOf(Icon)).call(this,props))}return _inherits(Icon,_React$Component),_createClass(Icon,[{key:"componentDidMount",value:function(){this.props.icons[this.props.name]||this.props.uiActions.getIcon(this.props.name)}},{key:"componentWillReceiveProps",value:function(newProps){this.props.name===newProps.name||newProps.icons[newProps.name]||this.props.uiActions.getIcon(newProps.name)}},{key:"render",value:function(){var className="icon";this.props.className&&(className+=" "+this.props.className);var svg='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve"></svg>';return this.props.icons[this.props.name]&&(svg=this.props.icons[this.props.name]),_react2.default.createElement("span",{className:className,dangerouslySetInnerHTML:{__html:svg}})}}]),Icon}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{icons:state.ui.icons?state.ui.icons:{}}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Icon)},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),_reactFontawesome=__webpack_require__(5),_Icon=(_interopRequireDefault(_reactFontawesome),__webpack_require__(12)),_Icon2=_interopRequireDefault(_Icon),_ContextMenuTrigger=__webpack_require__(25),_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},this.props.icon?_react2.default.createElement(_Icon2.default,{className:"header-icon",name:this.props.icon}):null,this.props.title?_react2.default.createElement("h1",null,this.props.title):null,this.renderOptions())}}]),Header}(_react2.default.Component);exports.default=Header},function(module,exports,__webpack_require__){"use strict";(function($){function getBroadcasts(){return function(dispatch,getState){var config={method:"GET",timeout:15e3,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}))})}}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}}function debugResponse(response){return{type:"DEBUG",response:response}}function set(data){return{type:"CORE_SET",data:data}}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];switch(helpers.uriSource(uri)){case"spotify":return{type:"SPOTIFY_SAVE_PLAYLIST",key:uri,name:name,description:""==description?null:description,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"}}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 tracksLoaded(tracks){return{type:"TRACKS_LOADED",tracks:tracks}}function albumsLoaded(albums){return{type:"ALBUMS_LOADED",albums:albums}}function artistsLoaded(artists){return{type:"ARTISTS_LOADED",artists:artists}}function playlistsLoaded(playlists){return{type:"PLAYLISTS_LOADED",playlists:playlists}}function usersLoaded(users){return{type:"USERS_LOADED",users:users}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBroadcasts=getBroadcasts,exports.startSearch=startSearch,exports.handleException=handleException,exports.debugResponse=debugResponse,exports.set=set,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,exports.loadedMore=loadedMore,exports.tracksLoaded=tracksLoaded,exports.albumsLoaded=albumsLoaded,exports.artistsLoaded=artistsLoaded,exports.playlistsLoaded=playlistsLoaded,exports.usersLoaded=usersLoaded;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__(7),mopidyActions=__webpack_require__(8)}).call(exports,__webpack_require__(18))},function(module,exports){module.exports=function(){throw new Error("define cannot be used indirect")}},function(module,exports,__webpack_require__){"use strict";function setPort(port){return{type:"PUSHER_SET_PORT",port:port}}function setUsername(username){return{type:"PUSHER_SET_USERNAME",username:username.replace(/[\W_]+/g,"")}}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 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 instruct(){return{type:"PUSHER_INSTRUCT",data:arguments.length>0&&void 0!==arguments[0]?arguments[0]: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 getSnapcast(){return{type:"PUSHER_GET_SNAPCAST",data:{method:"Server.GetStatus"}}}function setSnapcastClientName(id,name){return{type:"PUSHER_SET_SNAPCAST_CLIENT_NAME",id:id,name:name}}function setSnapcastClientMute(id,mute){return{type:"PUSHER_SET_SNAPCAST_CLIENT_MUTE",id:id,mute:mute}}function setSnapcastClientVolume(id,percent){return{type:"PUSHER_SET_SNAPCAST_CLIENT_VOLUME",id:id,percent:percent}}function setSnapcastClientLatency(id,latency){return{type:"PUSHER_SET_SNAPCAST_CLIENT_LATENCY",id:id,latency:latency}}function deleteSnapcastClient(id){return{type:"PUSHER_DELETE_SNAPCAST_CLIENT",id:id}}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.getConnections=getConnections,exports.connectionAdded=connectionAdded,exports.connectionChanged=connectionChanged,exports.connectionRemoved=connectionRemoved,exports.instruct=instruct,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.getSnapcast=getSnapcast,exports.setSnapcastClientName=setSnapcastClientName,exports.setSnapcastClientMute=setSnapcastClientMute,exports.setSnapcastClientVolume=setSnapcastClientVolume,exports.setSnapcastClientLatency=setSnapcastClientLatency,exports.deleteSnapcastClient=deleteSnapcastClient},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__){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&©&&(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($){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 getMe(){return function(dispatch,getState){var params="method=user.getInfo&user="+getState().lastfm.session.name;sendRequest(dispatch,getState,params).then(function(response){response.user&&(dispatch({type:"LASTFM_USER_LOADED",user:response.user}),dispatch({type:"LASTFM_CONNECTED"}))})}}function getTrack(uri){return function(dispatch,getState){if(void 0===getState().core.tracks[uri])return void dispatch(coreActions.handleException("Could not get track",{},"Could not find track in index"));var track=getState().core.tracks[uri];if(!track.artists)return void dispatch(coreActions.handleException("Could not get 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.session&&(params+="&username="+getState().lastfm.session.name),sendRequest(dispatch,getState,params).then(function(response){if(response.track){var merged_track=Object.assign({},{uri:track.uri},response.track,track);dispatch({type:"TRACK_LOADED",track: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){response.artist&&dispatch({type:"ARTIST_LOADED",artist:{uri:uri,images:response.artist.image,mbid:response.artist.mbid,bio:response.artist.bio,listeners:parseInt(response.artist.stats.listeners),play_count:parseInt(response.artist.stats.playcount),on_tour:response.artist.stats.ontour}})})}}function getAlbum(artist,album){var mbid=arguments.length>2&&void 0!==arguments[2]&&arguments[2];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){response.album&&dispatch(coreActions.albumsLoaded([response.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){response.album&&(record=Object.assign({},record,{images:response.album.image}),dispatch(coreActions.tracksLoaded([record])),dispatch(coreActions.albumsLoaded([response.album])))});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.albumsLoaded([record])))})}}}function loveTrack(uri){return function(dispatch,getState){if(void 0===getState().core.tracks[uri])return void dispatch(coreActions.handleException("Could not love 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 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 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 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+="×tamp="+Math.floor(Date.now()/1e3),sendSignedRequest(dispatch,getState,params).then(function(response){},function(error){dispatch(coreActions.handleException("Could not scrobble track",error,error.description?error.description:null))})}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.set=set,exports.authorizationGranted=authorizationGranted,exports.revokeAuthorization=revokeAuthorization,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__(14),uiActions=__webpack_require__(4),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:"//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.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.session||reject({params:params,error:"No active LastFM 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.session.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__(18))},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),_reactFontawesome=__webpack_require__(5),_URILink=(_interopRequireDefault(_reactFontawesome),__webpack_require__(24)),_URILink2=_interopRequireDefault(_URILink),ArtistSentence=function(_React$Component){function ArtistSentence(props){return _classCallCheck(this,ArtistSentence),_possibleConstructorReturn(this,(ArtistSentence.__proto__||Object.getPrototypeOf(ArtistSentence)).call(this,props))}return _inherits(ArtistSentence,_React$Component),_createClass(ArtistSentence,[{key:"render",value:function(){var _this2=this;return this.props.artists?_react2.default.createElement("span",{className:this.props.className?this.props.className+" artist-sentence":"artist-sentence"},this.props.artists.map(function(artist,index){if(!artist)return _react2.default.createElement("span",null,"-");var separator=null;if(index==_this2.props.artists.length-2?separator=" and ":index<_this2.props.artists.length-2&&(separator=", "),artist.name)if(!artist.uri||_this2.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:this.props.className?this.props.className+" artist-sentence":"artist-sentence"},"-")}}]),ArtistSentence}(_react2.default.Component);exports.default=ArtistSentence},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__(3),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_Track=(_interopRequireDefault(_reactFontawesome),__webpack_require__(91)),_Track2=_interopRequireDefault(_Track),_ContextMenuTrigger=__webpack_require__(25),_helpers=(_interopRequireDefault(_ContextMenuTrigger),__webpack_require__(1)),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(4),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.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(".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(".track")||(over=over.closest(".track")),over.length>0){var siblings=over.parent().children(".track"),dropped_at=siblings.index(over)-1;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.context?this.props.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.context?this.props.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]);for(var array=[],i=0;i<keys.length;i++){var key=keys[i].split("@@");indexes_only?array.push(key[0]):array.push({index:parseInt(key[0]),tlid:parseInt(key[1]),uri:key[2],context:key[3],context_uri:key[4]})}return singleton&&array.length>0?array[0]:array}},{key:"renderHeader",value:function(){if(this.props.noheader)return null;switch(this.props.context){case"history":return _react2.default.createElement("div",{className:"list-item header track"},_react2.default.createElement("div",{className:"liner"},_react2.default.createElement("span",{className:"col name"},"Name"),_react2.default.createElement("span",{className:"col source"},"Source"),_react2.default.createElement("span",{className:"col played_at"},"Started playing")));case"queue":return _react2.default.createElement("div",{className:"list-item header track"},_react2.default.createElement("div",{className:"liner"},_react2.default.createElement("span",{className:"col name"},"Name"),_react2.default.createElement("span",{className:"col artists"},"Artists"),_react2.default.createElement("span",{className:"col album"},"Album"),_react2.default.createElement("span",{className:"col added"},"Added by"),_react2.default.createElement("span",{className:"col duration"},"Duration")));default:return _react2.default.createElement("div",{className:"list-item header track"},_react2.default.createElement("div",{className:"liner"},_react2.default.createElement("span",{className:"col name"},"Name"),_react2.default.createElement("span",{className:"col artists"},"Artists"),_react2.default.createElement("span",{className:"col album"},"Album"),_react2.default.createElement("span",{className:"col duration"},"Duration")))}}},{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 track-list "+this.props.context;return this.props.className&&(className+=" "+this.props.className),_react2.default.createElement("div",{className:className},this.renderHeader(),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,context:_this2.props.context,can_sort:"queue"==_this2.props.context||"editable-playlist"==_this2.props.context,selected:_this2.props.selected_tracks.includes(track_key),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{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__(18))},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),_reactFontawesome=__webpack_require__(5),LazyLoadListener=(_interopRequireDefault(_reactFontawesome),function(_React$Component){function LazyLoadListener(props){_classCallCheck(this,LazyLoadListener);var _this=_possibleConstructorReturn(this,(LazyLoadListener.__proto__||Object.getPrototypeOf(LazyLoadListener)).call(this,props));return _this.state={loading:!1},_this.handleScroll=_this.handleScroll.bind(_this),_this}return _inherits(LazyLoadListener,_React$Component),_createClass(LazyLoadListener,[{key:"componentWillMount",value:function(){window.addEventListener("scroll",this.handleScroll,!1)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("scroll",this.handleScroll,!1)}},{key:"handleScroll",value:function(e){window.innerHeight+window.scrollY>=document.body.offsetHeight-80?!this.state.loading&&this.props.loading&&(this.setState({loading:!0}),this.props.loadMore()):this.state.loading&&this.setState({loading:!1})}},{key:"render",value:function(){return _react2.default.createElement("div",{className:"lazy-loader body-loader"+(this.state.loading||this.props.forceLoader?" loading":"")},this.state.loading||this.props.forceLoader?_react2.default.createElement("div",{className:"loader"}):null)}}]),LazyLoadListener}(_react2.default.Component));exports.default=LazyLoadListener},function(module,exports,__webpack_require__){!function(root,factory){module.exports=factory(__webpack_require__(0),__webpack_require__(11))}("undefined"!=typeof self&&self,function(__WEBPACK_EXTERNAL_MODULE_11__,__WEBPACK_EXTERNAL_MODULE_12__){return 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={};return __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=2)}([function(module,exports,__webpack_require__){"use strict";function warn(s){console.warn("[react-ga]",s)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=warn},function(module,exports,__webpack_require__){"use strict";function trim(s){return s.replace(/^\s+|\s+$/g,"")}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=trim},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 _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 _format(s){return(0,_format3.default)(s,_titleCase)}function _gaCommand(trackerNames){for(var _len=arguments.length,args=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(0,_warn2.default)("ga command must be a string");internalGa.apply(void 0,args),Array.isArray(trackerNames)&&trackerNames.forEach(function(name){internalGa.apply(void 0,_toConsumableArray([name+"."+command].concat(args.slice(1))))})}}function _initialize(gaTrackingID,options){if(!gaTrackingID)return void(0,_warn2.default)("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;(0,_loadGA2.default)(options)}return Array.isArray(configsOrTrackingId)?configsOrTrackingId.forEach(function(config){if("object"!==(void 0===config?"undefined":_typeof(config)))return void(0,_warn2.default)("All configs must be an object");_initialize(config.trackingId,config)}):_initialize(configsOrTrackingId,options),!0}function ga(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2<_len2;_key2++)args[_key2]=arguments[_key2];return args.length>0&&(internalGa.apply(void 0,args),_debug&&((0,_log2.default)("called ga('arguments');"),(0,_log2.default)("with arguments: "+JSON.stringify(args)))),window.ga}function set(fieldsObject,trackerNames){return fieldsObject?"object"!==(void 0===fieldsObject?"undefined":_typeof(fieldsObject))?void(0,_warn2.default)("Expected `fieldsObject` arg to be an Object"):(0===Object.keys(fieldsObject).length&&(0,_warn2.default)("empty `fieldsObject` given to .set()"),_gaCommand(trackerNames,"set",fieldsObject),void(_debug&&((0,_log2.default)("called ga('set', fieldsObject);"),(0,_log2.default)("with fieldsObject: "+JSON.stringify(fieldsObject))))):void(0,_warn2.default)("`fieldsObject` is required in .set()")}function send(fieldObject,trackerNames){_gaCommand(trackerNames,"send",fieldObject),_debug&&((0,_log2.default)("called ga('send', fieldObject);"),(0,_log2.default)("with fieldObject: "+JSON.stringify(fieldObject)),(0,_log2.default)("with trackers: "+JSON.stringify(trackerNames)))}function pageview(rawPath,trackerNames,title){if(!rawPath)return void(0,_warn2.default)("path is required in .pageview()");var path=(0,_trim2.default)(rawPath);if(""===path)return void(0,_warn2.default)("path cannot be an empty string in .pageview()");var extraFields={};if(title&&(extraFields.title=title),"function"==typeof ga&&(_gaCommand(trackerNames,"send",_extends({hitType:"pageview",page:path},extraFields)),_debug)){(0,_log2.default)("called ga('send', 'pageview', path);");var extraLog="";title&&(extraLog=" and title: "+title),(0,_log2.default)("with path: "+path+extraLog)}}function modalview(rawModalName,trackerNames){if(!rawModalName)return void(0,_warn2.default)("modalName is required in .modalview(modalName)");var modalName=(0,_removeLeadingSlash2.default)((0,_trim2.default)(rawModalName));if(""===modalName)return void(0,_warn2.default)("modalName cannot be an empty string or a single / in .modalview()");if("function"==typeof ga){var path="/modal/"+modalName;_gaCommand(trackerNames,"send","pageview",path),_debug&&((0,_log2.default)("called ga('send', 'pageview', path);"),(0,_log2.default)("with path: "+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[1];if("function"==typeof ga){if(!category||!variable||!value||"number"!=typeof value)return void(0,_warn2.default)("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]:{},trackerNames=arguments[1],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"]);if("function"==typeof ga){if(!category||!action)return void(0,_warn2.default)("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?(0,_warn2.default)("Expected `args.value` arg to be a Number."):fieldObject.eventValue=value),void 0!==nonInteraction&&("boolean"!=typeof nonInteraction?(0,_warn2.default)("`args.nonInteraction` must be a boolean."):fieldObject.nonInteraction=nonInteraction),void 0!==transport&&("string"!=typeof transport?(0,_warn2.default)("`args.transport` must be a string."):(-1===["beacon","xhr","image"].indexOf(transport)&&(0,_warn2.default)("`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?(0,_warn2.default)("`args.fatal` must be a boolean."):fieldObject.exFatal=fatal),send(fieldObject,trackerNames)}}function outboundLink(args,hitCallback,trackerNames){if("function"!=typeof hitCallback)return void(0,_warn2.default)("hitCallback function is required");if("function"==typeof ga){if(!args||!args.label)return void(0,_warn2.default)("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(exports,"__esModule",{value:!0}),exports.testModeAPI=exports.OutboundLink=exports.plugin=void 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},_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.initialize=initialize,exports.ga=ga,exports.set=set,exports.send=send,exports.pageview=pageview,exports.modalview=modalview,exports.timing=timing,exports.event=event,exports.exception=exception,exports.outboundLink=outboundLink;var _format2=__webpack_require__(3),_format3=_interopRequireDefault(_format2),_removeLeadingSlash=__webpack_require__(6),_removeLeadingSlash2=_interopRequireDefault(_removeLeadingSlash),_trim=__webpack_require__(1),_trim2=_interopRequireDefault(_trim),_loadGA=__webpack_require__(7),_loadGA2=_interopRequireDefault(_loadGA),_warn=__webpack_require__(0),_warn2=_interopRequireDefault(_warn),_log=__webpack_require__(8),_log2=_interopRequireDefault(_log),_testModeAPI=__webpack_require__(9),_testModeAPI2=_interopRequireDefault(_testModeAPI),_OutboundLink=__webpack_require__(10),_OutboundLink2=_interopRequireDefault(_OutboundLink),_debug=!1,_titleCase=!0,_testMode=!1,internalGa=function(){var _window;return _testMode?_testModeAPI2.default.ga.apply(_testModeAPI2.default,arguments):window.ga?(_window=window).ga.apply(_window,arguments):(0,_warn2.default)("ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually")},plugin=exports.plugin={require:function(rawName,options){if("function"==typeof ga){if(!rawName)return void(0,_warn2.default)("`name` is required in .require()");var name=(0,_trim2.default)(rawName);if(""===name)return void(0,_warn2.default)("`name` cannot be an empty string in .require()");if(options){if("object"!==(void 0===options?"undefined":_typeof(options)))return void(0,_warn2.default)("Expected `options` arg to be an Object");0===Object.keys(options).length&&(0,_warn2.default)("Empty `options` given to .require()"),ga("require",name,options),_debug&&(0,_log2.default)("called ga('require', '"+name+"', "+JSON.stringify(options))}else ga("require",name),_debug&&(0,_log2.default)("called ga('require', '"+name+"');")}},execute:function(pluginName,action){var payload=void 0,actionType=void 0;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)(0,_warn2.default)("Expected `pluginName` arg to be a String.");else if("string"!=typeof action)(0,_warn2.default)("Expected `action` arg to be a String.");else{var command=pluginName+":"+action;payload=payload||null,actionType&&payload?(ga(command,actionType,payload),_debug&&((0,_log2.default)("called ga('"+command+"');"),(0,_log2.default)('actionType: "'+actionType+'" with payload: '+JSON.stringify(payload)))):payload?(ga(command,payload),_debug&&((0,_log2.default)("called ga('"+command+"');"),(0,_log2.default)("with payload: "+JSON.stringify(payload)))):(ga(command),_debug&&(0,_log2.default)("called ga('"+command+"');"))}}};_OutboundLink2.default.origTrackLink=_OutboundLink2.default.trackLink,_OutboundLink2.default.trackLink=outboundLink;var OutboundLink=exports.OutboundLink=_OutboundLink2.default;exports.testModeAPI=_testModeAPI2.default;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:_testModeAPI2.default}},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function format(s,titleCase){return(0,_mightBeEmail2.default)(s)?((0,_warn2.default)("This arg looks like an email address, redacting."),redacted):titleCase?(0,_toTitleCase2.default)(s):s}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=format;var _mightBeEmail=__webpack_require__(4),_mightBeEmail2=_interopRequireDefault(_mightBeEmail),_toTitleCase=__webpack_require__(5),_toTitleCase2=_interopRequireDefault(_toTitleCase),_warn=__webpack_require__(0),_warn2=_interopRequireDefault(_warn),redacted="REDACTED (Potential Email Address)"},function(module,exports,__webpack_require__){"use strict";function mightBeEmail(s){return/[^@]+@[^@]+/.test(s)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=mightBeEmail},function(module,exports,__webpack_require__){"use strict";function toTitleCase(string){return(0,_trim2.default)(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)})}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=toTitleCase;var _trim=__webpack_require__(1),_trim2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_trim),smallWords=/^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\.?|via)$/i},function(module,exports,__webpack_require__){"use strict";function removeLeadingSlash(string){return"/"===string.substring(0,1)?string.substring(1):string}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=removeLeadingSlash},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(options){!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",options&&options.gaAddress?options.gaAddress:"https://www.google-analytics.com/analytics.js","ga")}},function(module,exports,__webpack_require__){"use strict";function log(s){}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=log},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var gaCalls=exports.gaCalls=[];exports.default={calls:gaCalls,ga:function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];gaCalls.push([].concat(args))}}},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 _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__(11),_react2=_interopRequireDefault(_react),_propTypes=__webpack_require__(12),_propTypes2=_interopRequireDefault(_propTypes),_warn=__webpack_require__(0),_warn2=_interopRequireDefault(_warn),NEWTAB="_blank",MIDDLECLICK=1,OutboundLink=function(_Component){function OutboundLink(){var _ref,_temp,_this,_ret;_classCallCheck(this,OutboundLink);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_ref=OutboundLink.__proto__||Object.getPrototypeOf(OutboundLink)).call.apply(_ref,[this].concat(args))),_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)},_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(OutboundLink,_Component),_createClass(OutboundLink,[{key:"render",value:function(){var props=_extends({},this.props,{href:this.props.to,onClick:this.handleClick});return delete props.eventLabel,_react2.default.createElement("a",props)}}]),OutboundLink}(_react.Component);OutboundLink.propTypes={eventLabel:_propTypes2.default.string.isRequired,target:_propTypes2.default.string,to:_propTypes2.default.string,onClick:_propTypes2.default.func},OutboundLink.defaultProps={target:null,to:null,onClick:null},OutboundLink.trackLink=function(){(0,_warn2.default)("ga tracking not enabled")},exports.default=OutboundLink},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_11__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_12__}])})},function(module,exports,__webpack_require__){"use strict";(function(global){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__(6),URILink=function(_React$Component){function URILink(props){return _classCallCheck(this,URILink),_possibleConstructorReturn(this,(URILink.__proto__||Object.getPrototypeOf(URILink)).call(this,props))}return _inherits(URILink,_React$Component),_createClass(URILink,[{key:"handleContextMenu",value:function(e){this.props.onContextMenu&&this.props.onContextMenu(e)}},{key:"render",value:function(){var _this2=this,to=null,uri=this.props.uri;switch(this.props.unencoded||(uri=encodeURIComponent(uri)),this.props.type){case"playlist":to=global.baseURL+"playlist/"+uri;break;case"artist":to=global.baseURL+"artist/"+uri;break;case"album":to=global.baseURL+"album/"+uri;break;case"track":to=global.baseURL+"track/"+uri;break;case"user":to=global.baseURL+"user/"+uri;break;case"browse":to=global.baseURL+"library/browse/"+uri;break;case"recommendations":to=global.baseURL+"discover/recommendations/"+uri;break;case"search":to=global.baseURL+"search/"+uri;break;default:to=null}return uri?_react2.default.createElement(_reactRouter.Link,{className:this.props.className?this.props.className:null,to:to,onContextMenu:function(e){return _this2.handleContextMenu(e)}},this.props.children):_react2.default.createElement("span",{className:this.props.className?this.props.className:null},this.props.children)}}]),URILink}(_react2.default.Component);exports.default=URILink}).call(exports,__webpack_require__(9))},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),_reactFontawesome=__webpack_require__(5),ContextMenuTrigger=(_interopRequireDefault(_reactFontawesome),function(_React$Component){function ContextMenuTrigger(props){return _classCallCheck(this,ContextMenuTrigger),_possibleConstructorReturn(this,(ContextMenuTrigger.__proto__||Object.getPrototypeOf(ContextMenuTrigger)).call(this,props))}return _inherits(ContextMenuTrigger,_React$Component),_createClass(ContextMenuTrigger,[{key:"handleClick",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.onTrigger(e)}},{key:"render",value:function(){var _this2=this,className="context-menu-trigger mouse-contextable touch-contextable";return this.props.className&&(className+=" "+this.props.className),_react2.default.createElement("span",{className:className,onClick:function(e){return _this2.handleClick(e)}},_react2.default.createElement("span",{className:"dot"}),_react2.default.createElement("span",{className:"dot"}),_react2.default.createElement("span",{className:"dot"}))}}]),ContextMenuTrigger}(_react2.default.Component));exports.default=ContextMenuTrigger},function(module,exports,__webpack_require__){"use strict";var React=__webpack_require__(0),factory=__webpack_require__(140);if(void 0===React)throw Error("create-react-class could not find the React object. If you are using script tags, make sure that React is being loaded before create-react-class.");var ReactNoopUpdateQueue=(new React.Component).updater;module.exports=factory(React.Component,React.isValidElement,ReactNoopUpdateQueue)},function(module,exports,__webpack_require__){"use strict";var warning=function(){};module.exports=warning},function(module,__webpack_exports__,__webpack_require__){"use strict";function isValidChild(object){return null==object||__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(object)}function isReactChildren(object){return isValidChild(object)||Array.isArray(object)&&object.every(isValidChild)}function createRoute(defaultProps,props){return _extends({},defaultProps,props)}function createRouteFromReactElement(element){var type=element.type,route=createRoute(type.defaultProps,element.props);if(route.children){var childRoutes=createRoutesFromReactChildren(route.children,route);childRoutes.length&&(route.childRoutes=childRoutes),delete route.children}return route}function createRoutesFromReactChildren(children,parentRoute){var routes=[];return __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children,function(element){if(__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(element))if(element.type.createRouteFromReactElement){var route=element.type.createRouteFromReactElement(element,parentRoute);route&&routes.push(route)}else routes.push(createRouteFromReactElement(element))}),routes}function createRoutes(routes){return isReactChildren(routes)?routes=createRoutesFromReactChildren(routes):routes&&!Array.isArray(routes)&&(routes=[routes]),routes}__webpack_exports__.c=isReactChildren,__webpack_exports__.a=createRouteFromReactElement,__webpack_exports__.b=createRoutes;var __WEBPACK_IMPORTED_MODULE_0_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_0_react___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__),_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}},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.createPath=exports.parsePath=exports.getQueryStringValueFromPath=exports.stripQueryStringValueFromPath=exports.addQueryStringValueToPath=void 0;var _warning=__webpack_require__(27),extractPath=(function(obj){obj&&obj.__esModule}(_warning),exports.addQueryStringValueToPath=function(path,key,value){var _parsePath=parsePath(path),pathname=_parsePath.pathname,search=_parsePath.search,hash=_parsePath.hash;return createPath({pathname:pathname,search:search+(-1===search.indexOf("?")?"?":"&")+key+"="+value,hash:hash})},exports.stripQueryStringValueFromPath=function(path,key){var _parsePath2=parsePath(path),pathname=_parsePath2.pathname,search=_parsePath2.search,hash=_parsePath2.hash;return createPath({pathname:pathname,search:search.replace(new RegExp("([?&])"+key+"=[a-zA-Z0-9]+(&?)"),function(match,prefix,suffix){return"?"===prefix?prefix:suffix}),hash:hash})},exports.getQueryStringValueFromPath=function(path,key){var _parsePath3=parsePath(path),search=_parsePath3.search,match=search.match(new RegExp("[?&]"+key+"=([a-zA-Z0-9]+)"));return match&&match[1]},function(string){var match=string.match(/^(https?:)?\/\/[^\/]*/);return null==match?string:string.substring(match[0].length)}),parsePath=exports.parsePath=function(path){var pathname=extractPath(path),search="",hash="",hashIndex=pathname.indexOf("#");-1!==hashIndex&&(hash=pathname.substring(hashIndex),pathname=pathname.substring(0,hashIndex));var searchIndex=pathname.indexOf("?");return-1!==searchIndex&&(search=pathname.substring(searchIndex),pathname=pathname.substring(0,searchIndex)),""===pathname&&(pathname="/"),{pathname:pathname,search:search,hash:hash}},createPath=exports.createPath=function(location){if(null==location||"string"==typeof location)return location;var basename=location.basename,pathname=location.pathname,search=location.search,hash=location.hash,path=(basename||"")+pathname;return search&&"?"!==search&&(path+=search),hash&&(path+=hash),path}},function(module,exports,__webpack_require__){"use strict";(function($){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),Parallax=function(_React$Component){function Parallax(props){_classCallCheck(this,Parallax);var _this=_possibleConstructorReturn(this,(Parallax.__proto__||Object.getPrototypeOf(Parallax)).call(this,props));return _this._loading=!1,_this._loaded=!1,_this.state={scrollTop:0,windowWidth:0,windowHeight:0,canvas:{width:0,height:0},image:{},loading:!1,url:!1},_this.handleResize=_this.handleResize.bind(_this),_this.handleScroll=_this.handleScroll.bind(_this),_this}return _inherits(Parallax,_React$Component),_createClass(Parallax,[{key:"componentDidMount",value:function(){var _this2=this;this._mounted=!0,window.addEventListener("resize",this.handleResize),window.addEventListener("scroll",this.handleScroll),this.props.image?(this._loading=!0,this.setState({url:this.props.image,image:!1,loading:!0}),this.loadImage(this.props.image).then(function(response){_this2._mounted&&(_this2._loading=!1,_this2._loaded=!0,_this2.setState({url:_this2.props.image,image:response,loading:!1}),_this2.updateCanvas(response))})):(this._loaded=!0,this.state.image=!1,this.updateCanvas())}},{key:"componentWillUnmount",value:function(){this._mounted=!1,window.removeEventListener("resize",this.handleResize),window.removeEventListener("scroll",this.handleScroll)}},{key:"componentWillReceiveProps",value:function(nextProps){var _this3=this;this.state.url&&nextProps.image==this.state.url||this._loading||!nextProps.image||(this._loading=!0,this.setState({url:nextProps.image,image:!1,loading:!0}),this.loadImage(nextProps.image).then(function(response){_this3._mounted&&(_this3._loading=!1,_this3._loaded=!0,_this3.setState({url:nextProps.image,image:response,loading:!1}),_this3.updateCanvas(response))}))}},{key:"handleResize",value:function(e){this._loaded&&this.updateCanvas(this.state.image)}},{key:"handleScroll",value:function(e){this._loaded&&this.setState({scrollTop:window.scrollY},this.updateCanvas(this.state.image))}},{key:"loadImage",value:function(url){return new Promise(function(resolve,reject){var imageObject=new Image;imageObject.src=url,imageObject.onload=function(){var image={width:imageObject.naturalWidth,height:imageObject.naturalHeight,original_width:imageObject.naturalWidth,original_height:imageObject.naturalHeight,object:imageObject};resolve(image)}})}},{key:"updateCanvas",value:function(){var image=arguments.length>0&&void 0!==arguments[0]&&arguments[0],canvasWidth=$(".parallax").outerWidth(),canvasHeight=$(".parallax").outerHeight();this.state.canvas.width==canvasWidth&&this.state.canvas.height==canvasHeight||this.setState({canvas:{width:canvasWidth,height:canvasHeight}}),this.renderCanvas(image)}},{key:"renderCanvas",value:function(){var image=arguments.length>0&&void 0!==arguments[0]&&arguments[0],self=this,canvasDOM=document.getElementById("parallax-canvas"),context=canvasDOM.getContext("2d");if(context.beginPath(),context.rect(0,0,this.state.canvas.width,this.state.canvas.height),context.fillStyle="#121212",context.fill(),image&&!self.state.loading){if(image.width<this.state.canvas.width||image.width>this.state.canvas.width){var scale=this.state.canvas.width/image.width;image.width=image.width*scale,image.height=image.height*scale}if(image.height<this.state.canvas.height){var scale=this.state.canvas.height/image.height;image.width=image.width*scale,image.height=image.height*scale}var percent=Math.round(self.state.scrollTop/this.state.canvas.height*100);Math.round(this.state.canvas.height/2*(percent/100));image.x=this.state.canvas.width/2-image.width/2,image.y=this.state.canvas.height/2-image.height/2+percent/100*100,context.drawImage(image.object,image.x,image.y,image.width,image.height),self.setState({image:image})}context.rect(0,0,this.state.canvas.width,this.state.canvas.height);var gradient=context.createLinearGradient(0,0,0,this.state.canvas.height);gradient.addColorStop(0,"rgba(24,24,24,0)"),gradient.addColorStop(.9,"rgba(24,24,24,1)"),context.fillStyle=gradient,context.fill()}},{key:"render",value:function(){return _react2.default.createElement("div",{className:this.props.blur?"parallax blur":"parallax"},_react2.default.createElement("canvas",{id:"parallax-canvas",className:this.state.loading?null:"loaded",width:this.state.canvas.width,height:this.state.canvas.height}))}}]),Parallax}(_react2.default.Component);exports.default=Parallax}).call(exports,__webpack_require__(18))},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),Dater=function(_React$Component){function Dater(props){return _classCallCheck(this,Dater),_possibleConstructorReturn(this,(Dater.__proto__||Object.getPrototypeOf(Dater)).call(this,props))}return _inherits(Dater,_React$Component),_createClass(Dater,[{key:"durationTime",value:function(){var milliseconds=arguments.length>0&&void 0!==arguments[0]&&arguments[0];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}},{key:"durationSentence",value:function(){var milliseconds=arguments.length>0&&void 0!==arguments[0]&&arguments[0];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}},{key:"calculate",value:function(){switch(this.props.type){case"total-time":for(var duration=0,tracks=this.props.data,i=0;i<tracks.length;i++)tracks[i].duration&&(duration+=parseInt(tracks[i].duration));return this.durationSentence(duration);case"length":return this.durationTime(this.props.data);case"date":var date=new Date(this.props.data);return date.getDate()+"/"+date.getMonth()+"/"+date.getFullYear();case"ago":var date=new Date(this.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}}},{key:"render",value:function(){return this.props.data?_react2.default.createElement("span",{className:"dater"},this.calculate()):null}}]),Dater}(_react2.default.Component);exports.default=Dater},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_warning__=__webpack_require__(27);__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__)},function(module,__webpack_exports__,__webpack_require__){"use strict";function escapeRegExp(string){return string.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function _compilePattern(pattern){for(var regexpSource="",paramNames=[],tokens=[],match=void 0,lastIndex=0,matcher=/:([a-zA-Z_$][a-zA-Z0-9_$]*)|\*\*|\*|\(|\)|\\\(|\\\)/g;match=matcher.exec(pattern);)match.index!==lastIndex&&(tokens.push(pattern.slice(lastIndex,match.index)),regexpSource+=escapeRegExp(pattern.slice(lastIndex,match.index))),match[1]?(regexpSource+="([^/]+)",paramNames.push(match[1])):"**"===match[0]?(regexpSource+="(.*)",paramNames.push("splat")):"*"===match[0]?(regexpSource+="(.*?)",paramNames.push("splat")):"("===match[0]?regexpSource+="(?:":")"===match[0]?regexpSource+=")?":"\\("===match[0]?regexpSource+="\\(":"\\)"===match[0]&&(regexpSource+="\\)"),tokens.push(match[0]),lastIndex=matcher.lastIndex;return lastIndex!==pattern.length&&(tokens.push(pattern.slice(lastIndex,pattern.length)),regexpSource+=escapeRegExp(pattern.slice(lastIndex,pattern.length))),{pattern:pattern,regexpSource:regexpSource,paramNames:paramNames,tokens:tokens}}function compilePattern(pattern){return CompiledPatternsCache[pattern]||(CompiledPatternsCache[pattern]=_compilePattern(pattern)),CompiledPatternsCache[pattern]}function matchPattern(pattern,pathname){"/"!==pattern.charAt(0)&&(pattern="/"+pattern);var _compilePattern2=compilePattern(pattern),regexpSource=_compilePattern2.regexpSource,paramNames=_compilePattern2.paramNames,tokens=_compilePattern2.tokens;"/"!==pattern.charAt(pattern.length-1)&&(regexpSource+="/?"),"*"===tokens[tokens.length-1]&&(regexpSource+="$");var match=pathname.match(new RegExp("^"+regexpSource,"i"));if(null==match)return null;var matchedPath=match[0],remainingPathname=pathname.substr(matchedPath.length);if(remainingPathname){if("/"!==matchedPath.charAt(matchedPath.length-1))return null;remainingPathname="/"+remainingPathname}return{remainingPathname:remainingPathname,paramNames:paramNames,paramValues:match.slice(1).map(function(v){return v&&decodeURIComponent(v)})}}function getParamNames(pattern){return compilePattern(pattern).paramNames}function formatPattern(pattern,params){params=params||{};for(var _compilePattern3=compilePattern(pattern),tokens=_compilePattern3.tokens,parenCount=0,pathname="",splatIndex=0,parenHistory=[],token=void 0,paramName=void 0,paramValue=void 0,i=0,len=tokens.length;i<len;++i)if("*"===(token=tokens[i])||"**"===token)paramValue=Array.isArray(params.splat)?params.splat[splatIndex++]:params.splat,null!=paramValue||parenCount>0||__WEBPACK_IMPORTED_MODULE_0_invariant___default()(!1),null!=paramValue&&(pathname+=encodeURI(paramValue));else if("("===token)parenHistory[parenCount]="",parenCount+=1;else if(")"===token){var parenText=parenHistory.pop();parenCount-=1,parenCount?parenHistory[parenCount-1]+=parenText:pathname+=parenText}else if("\\("===token)pathname+="(";else if("\\)"===token)pathname+=")";else if(":"===token.charAt(0))if(paramName=token.substring(1),paramValue=params[paramName],null!=paramValue||parenCount>0||__WEBPACK_IMPORTED_MODULE_0_invariant___default()(!1),null==paramValue){if(parenCount){parenHistory[parenCount-1]="";for(var curTokenIdx=tokens.indexOf(token),tokensSubset=tokens.slice(curTokenIdx,tokens.length),nextParenIdx=-1,_i=0;_i<tokensSubset.length;_i++)if(")"==tokensSubset[_i]){nextParenIdx=_i;break}nextParenIdx>0||__WEBPACK_IMPORTED_MODULE_0_invariant___default()(!1),i=curTokenIdx+nextParenIdx-1}}else parenCount?parenHistory[parenCount-1]+=encodeURIComponent(paramValue):pathname+=encodeURIComponent(paramValue);else parenCount?parenHistory[parenCount-1]+=token:pathname+=token;return parenCount<=0||__WEBPACK_IMPORTED_MODULE_0_invariant___default()(!1),pathname.replace(/\/+/g,"/")}__webpack_exports__.c=matchPattern,__webpack_exports__.b=getParamNames,__webpack_exports__.a=formatPattern;var __WEBPACK_IMPORTED_MODULE_0_invariant__=__webpack_require__(17),__WEBPACK_IMPORTED_MODULE_0_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_invariant__),CompiledPatternsCache=Object.create(null)},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.__esModule=!0,exports.locationsAreEqual=exports.statesAreEqual=exports.createLocation=exports.createQuery=void 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},_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},_invariant=__webpack_require__(17),_invariant2=_interopRequireDefault(_invariant),_warning=__webpack_require__(27),_PathUtils=(_interopRequireDefault(_warning),__webpack_require__(29)),_Actions=__webpack_require__(44),isDate=(exports.createQuery=function(props){return _extends(Object.create(null),props)},exports.createLocation=function(){var input=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",action=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_Actions.POP,key=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,object="string"==typeof input?(0,_PathUtils.parsePath)(input):input;return{pathname:object.pathname||"/",search:object.search||"",hash:object.hash||"",state:object.state,action:action,key:key}},function(object){return"[object Date]"===Object.prototype.toString.call(object)}),statesAreEqual=exports.statesAreEqual=function statesAreEqual(a,b){if(a===b)return!0;var typeofA=void 0===a?"undefined":_typeof(a);if(typeofA!==(void 0===b?"undefined":_typeof(b)))return!1;if("function"===typeofA&&(0,_invariant2.default)(!1),"object"===typeofA){if(isDate(a)&&isDate(b)&&(0,_invariant2.default)(!1),!Array.isArray(a)){var keysofA=Object.keys(a),keysofB=Object.keys(b);return keysofA.length===keysofB.length&&keysofA.every(function(key){return statesAreEqual(a[key],b[key])})}return Array.isArray(b)&&a.length===b.length&&a.every(function(item,index){return statesAreEqual(item,b[index])})}return!1};exports.locationsAreEqual=function(a,b){return a.key===b.key&&a.pathname===b.pathname&&a.search===b.search&&a.hash===b.hash&&statesAreEqual(a.state,b.state)}},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_redux=__webpack_require__(2),_reactRouter=__webpack_require__(6),_reactFontawesome=__webpack_require__(5),_Thumbnail=(_interopRequireDefault(_reactFontawesome),__webpack_require__(10)),_GridItem=(_interopRequireDefault(_Thumbnail),__webpack_require__(38)),_GridItem2=_interopRequireDefault(_GridItem),_helpers=__webpack_require__(1),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(4)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(19),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 artist-grid";return this.props.className&&(className+=" "+this.props.className),this.props.single_row&&(className+=" single-row"),_react2.default.createElement("div",{className:className},this.props.artists.map(function(artist,index){return _react2.default.createElement(_GridItem2.default,{key:artist.uri,type:"artist",item:artist,show_source_icon:_this2.props.show_source_icon,onClick:function(e){_reactRouter.hashHistory.push(global.baseURL+"artist/"+encodeURIComponent(artist.uri))},onLoad:function(){return _this2.handleLoad(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{}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch),lastfmActions:(0,_redux.bindActionCreators)(lastfmActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(ArtistGrid)}).call(exports,__webpack_require__(9))},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),_reactFontawesome=(__webpack_require__(3),__webpack_require__(2),__webpack_require__(5)),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),DropdownField=function(_React$Component){function DropdownField(props){_classCallCheck(this,DropdownField);var _this=_possibleConstructorReturn(this,(DropdownField.__proto__||Object.getPrototypeOf(DropdownField)).call(this,props));return _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:"handleClick",value:function(e){$(e.target).closest(".dropdown-field").data("key")!=this.props.name.replace(" ","_").toLowerCase()&&this.state.expanded&&this.setState({expanded:!1})}},{key:"handleChange",value:function(value){return this.setState({expanded:!this.state.expanded}),this.props.handleChange(value)}},{key:"handleToggle",value:function(){this.setState({expanded:!this.state.expanded})}},{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.button&&(className+=" buttonify");var current_value=this.props.options[0].value;this.props.value&&(current_value=this.props.value);var icon=_react2.default.createElement(_reactFontawesome2.default,{name:"check"});return void 0!==this.props.reverse&&(icon=this.props.reverse?_react2.default.createElement(_reactFontawesome2.default,{className:"reverse",name:"caret-down"}):_react2.default.createElement(_reactFontawesome2.default,{className:"reverse",name:"caret-up"})),_react2.default.createElement("div",{className:className,"data-key":this.props.name.replace(" ","_").toLowerCase()},_react2.default.createElement("div",{className:"label"+(this.props.button?" button "+this.props.button:""),onClick:function(){return _this2.handleToggle()}},this.props.icon?_react2.default.createElement("span",null,_react2.default.createElement(_reactFontawesome2.default,{name:this.props.icon})," "):null,_react2.default.createElement("span",{className:"text"},this.props.name)),_react2.default.createElement("div",{className:"options"},this.props.options.map(function(option){return _react2.default.createElement("div",{className:"option",key:option.value,onClick:function(e){return _this2.handleChange(option.value)}},_this2.props.no_status_icon||option.value!=current_value?null:icon,option.label)})))}}]),DropdownField}(_react2.default.Component);exports.default=DropdownField}).call(exports,__webpack_require__(18))},function(module,__webpack_exports__,__webpack_require__){"use strict";function falsy(props,propName,componentName){if(props[propName])return new Error("<"+componentName+'> should not have a "'+propName+'" prop')}__webpack_exports__.c=falsy,__webpack_require__.d(__webpack_exports__,"a",function(){return component}),__webpack_require__.d(__webpack_exports__,"b",function(){return components}),__webpack_require__.d(__webpack_exports__,"d",function(){return routes});var __WEBPACK_IMPORTED_MODULE_0_prop_types__=__webpack_require__(11),component=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__),Object(__WEBPACK_IMPORTED_MODULE_0_prop_types__.shape)({listen:__WEBPACK_IMPORTED_MODULE_0_prop_types__.func.isRequired,push:__WEBPACK_IMPORTED_MODULE_0_prop_types__.func.isRequired,replace:__WEBPACK_IMPORTED_MODULE_0_prop_types__.func.isRequired,go:__WEBPACK_IMPORTED_MODULE_0_prop_types__.func.isRequired,goBack:__WEBPACK_IMPORTED_MODULE_0_prop_types__.func.isRequired,goForward:__WEBPACK_IMPORTED_MODULE_0_prop_types__.func.isRequired}),Object(__WEBPACK_IMPORTED_MODULE_0_prop_types__.oneOfType)([__WEBPACK_IMPORTED_MODULE_0_prop_types__.func,__WEBPACK_IMPORTED_MODULE_0_prop_types__.string])),components=Object(__WEBPACK_IMPORTED_MODULE_0_prop_types__.oneOfType)([component,__WEBPACK_IMPORTED_MODULE_0_prop_types__.object]),route=Object(__WEBPACK_IMPORTED_MODULE_0_prop_types__.oneOfType)([__WEBPACK_IMPORTED_MODULE_0_prop_types__.object,__WEBPACK_IMPORTED_MODULE_0_prop_types__.element]),routes=Object(__WEBPACK_IMPORTED_MODULE_0_prop_types__.oneOfType)([route,Object(__WEBPACK_IMPORTED_MODULE_0_prop_types__.arrayOf)(route)])},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),_reactDom=__webpack_require__(43),_reactFontawesome=(_interopRequireDefault(_reactDom),__webpack_require__(6),__webpack_require__(5)),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_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),_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&&!this.props.item.images)switch(this.props.item.type){case"artist":this.props.lastfmActions.getArtist(this.props.item.uri,this.props.item.name)}}},{key:"handleClick",value:function(e){this.props.onClick&&"a"!==e.target.tagName.toLowerCase()&&this.props.onClick(e)}},{key:"handleContextMenu",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(item.type){case"playlist":return _react2.default.createElement("span",null,item.tracks_total?item.tracks_total:0," tracks");case"artist":return _react2.default.createElement("span",null,item.followers?item.followers.total.toLocaleString()+" followers":null,item.albums_uris?item.albums_uris.length+" albums":null);case"album":return _react2.default.createElement("span",null,item.artists?_react2.default.createElement(_ArtistSentence2.default,{artists:item.artists}):null);default:return _react2.default.createElement("span",null,item.artists?_react2.default.createElement(_ArtistSentence2.default,{artists:item.artists}):null,item.followers?item.followers.total.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;return this.props.item.images?images=this.props.item.images:this.props.item.icons&&(images=this.props.item.icons),_react2.default.createElement("div",{className:"grid-item "+this.props.type+"-grid-item",onClick:function(e){return _this2.handleClick(e)},onContextMenu:function(e){return _this2.handleContextMenu(e)}},_react2.default.createElement(_Thumbnail2.default,{size:"medium",images:images}),_react2.default.createElement("div",{className:"name"},item.name?item.name:_react2.default.createElement("span",{className:"dark-grey-text"},item.uri)),_react2.default.createElement("div",{className:"secondary"},this.props.show_source_icon?_react2.default.createElement(_reactFontawesome2.default,{name:helpers.sourceIcon(item.uri),className:"source"}):null,this.renderSecondary(item)))}}]),GridItem}(_react2.default.Component);exports.default=GridItem},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__(3),_redux=(__webpack_require__(6),__webpack_require__(2)),_reactFontawesome=__webpack_require__(5),_helpers=(_interopRequireDefault(_reactFontawesome),__webpack_require__(1)),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(7),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="";return this.props.className&&(className+=" "+this.props.className),helpers.isLoading(this.props.load_queue,["/following","/followers","me/albums/contains/?ids=","me/albums/?ids="])&&(className+=" working"),this.props.spotify_authorized?!0===this.props.is_following?_react2.default.createElement("button",{className:className+" destructive",onClick:function(e){return _this2.remove()}},this.props.removeText):_react2.default.createElement("button",{className:className,onClick:function(e){return _this2.add()}},this.props.addText):_react2.default.createElement("button",{className:className+" 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(global){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__(3),_redux=__webpack_require__(2),_reactRouter=__webpack_require__(6),_reactFontawesome=__webpack_require__(5),_helpers=(_interopRequireDefault(_reactFontawesome),__webpack_require__(1)),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(4)),uiActions=_interopRequireWildcard(_actions),_GridItem=__webpack_require__(38),_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]};this.props.uiActions.showContextMenu(data)}},{key:"render",value:function(){var _this2=this;if(this.props.albums){var className="grid album-grid";return this.props.className&&(className+=" "+this.props.className),this.props.single_row&&(className+=" single-row"),_react2.default.createElement("div",{className:className},this.props.albums.map(function(album){return _react2.default.createElement(_GridItem2.default,{key:album.uri,type:"album",item:album,show_source_icon:_this2.props.show_source_icon,onClick:function(e){_reactRouter.hashHistory.push(global.baseURL+"album/"+encodeURIComponent(album.uri))},onLoad:function(){return _this2.handleLoad(album.uri)},onContextMenu:function(e){return _this2.handleContextMenu(e,album)}})}))}return null}}]),AlbumGrid}(_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)(AlbumGrid)}).call(exports,__webpack_require__(9))},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_redux=__webpack_require__(2),_reactRouter=__webpack_require__(6),_reactFontawesome=__webpack_require__(5),_helpers=(_interopRequireDefault(_reactFontawesome),__webpack_require__(1)),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(4)),uiActions=_interopRequireWildcard(_actions),_GridItem=__webpack_require__(38),_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]};this.props.uiActions.showContextMenu(data)}},{key:"render",value:function(){var _this2=this;if(!this.props.playlists)return null;var className="grid playlist-grid";return this.props.className&&(className+=" "+this.props.className),this.props.single_row&&(className+=" single-row"),_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){_reactRouter.hashHistory.push(global.baseURL+"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)}).call(exports,__webpack_require__(9))},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__(97)},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0;exports.PUSH="PUSH",exports.REPLACE="REPLACE",exports.POP="POP"},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0;exports.addEventListener=function(node,event,listener){return node.addEventListener?node.addEventListener(event,listener,!1):node.attachEvent("on"+event,listener)},exports.removeEventListener=function(node,event,listener){return node.removeEventListener?node.removeEventListener(event,listener,!1):node.detachEvent("on"+event,listener)},exports.supportsHistory=function(){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)},exports.supportsGoWithoutReloadUsingHash=function(){return-1===window.navigator.userAgent.indexOf("Firefox")},exports.supportsPopstateOnHashchange=function(){return-1===window.navigator.userAgent.indexOf("Trident")},exports.isExtraneousPopstateEvent=function(event){return void 0===event.state&&-1===navigator.userAgent.indexOf("CriOS")}},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__(253);Object.defineProperty(exports,"captialize",{enumerable:!0,get:function(){return _interopRequireDefault(_captialize).default}});var _clamp=__webpack_require__(254);Object.defineProperty(exports,"clamp",{enumerable:!0,get:function(){return _interopRequireDefault(_clamp).default}});var _distanceTo=__webpack_require__(255);Object.defineProperty(exports,"distanceTo",{enumerable:!0,get:function(){return _interopRequireDefault(_distanceTo).default}});var _isDefined=__webpack_require__(256);Object.defineProperty(exports,"isDefined",{enumerable:!0,get:function(){return _interopRequireDefault(_isDefined).default}});var _isNumber=__webpack_require__(257);Object.defineProperty(exports,"isNumber",{enumerable:!0,get:function(){return _interopRequireDefault(_isNumber).default}});var _isObject=__webpack_require__(258);Object.defineProperty(exports,"isObject",{enumerable:!0,get:function(){return _interopRequireDefault(_isObject).default}});var _length=__webpack_require__(259);Object.defineProperty(exports,"length",{enumerable:!0,get:function(){return _interopRequireDefault(_length).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__(3),_redux=__webpack_require__(2),_reactRouter=__webpack_require__(6),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_Dater=__webpack_require__(31),_Dater2=_interopRequireDefault(_Dater),_URILink=__webpack_require__(24),_URILink2=_interopRequireDefault(_URILink),_ContextMenuTrigger=__webpack_require__(25),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_helpers=__webpack_require__(1),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(4)),uiActions=_interopRequireWildcard(_actions),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:"handleClick",value:function(e,uri){"a"!==e.target.tagName.toLowerCase()&&(e.preventDefault(),_reactRouter.hashHistory.push((this.props.link_prefix?this.props.link_prefix:"")+encodeURIComponent(uri)))}},{key:"handleMouseDown",value:function(e,uri){"a"!==e.target.tagName.toLowerCase()&&(e.preventDefault(),_reactRouter.hashHistory.push((this.props.link_prefix?this.props.link_prefix:"")+encodeURIComponent(uri)))}},{key:"handleContextMenu",value:function(e,item){this.props.handleContextMenu&&(e.preventDefault(),this.props.handleContextMenu(e,item))}},{key:"renderHeader",value:function(){return!this.props.columns||this.props.noheader?null:_react2.default.createElement("div",{className:"list-item header cf"},_react2.default.createElement("div",{className:"liner"},this.props.columns.map(function(col,col_index){var className="col "+col.name.replace(".","_");return _react2.default.createElement("div",{className:className,key:col_index},col.label?col.label:col.name)})))}},{key:"renderValue",value:function(row,key_string){for(var key=key_string.split("."),value=row,i=0;i<key.length;i++){if(void 0===value[key[i]])return _react2.default.createElement("span",null,"-");if("string"==typeof value[key[i]]&&""==value[key[i]].replace(" ",""))return _react2.default.createElement("span",null,"-");value=value[key[i]]}return"added_at"===key_string?_react2.default.createElement("span",null,_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):"artists"===key[0]?_react2.default.createElement(_ArtistSentence2.default,{artists:value}):!0===value?_react2.default.createElement(_reactFontawesome2.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;if(!this.props.rows)return null;var className="list";return this.props.className&&(className+=" "+this.props.className),_react2.default.createElement("div",{className:className},this.renderHeader(),this.props.rows.map(function(row,row_index){var class_name="list-item";return row.type&&(class_name+=" "+row.type),_react2.default.createElement("div",{className:class_name,key:row_index,onClick:function(e){return _this2.handleClick(e,row.uri)},onContextMenu:function(e){return _this2.handleContextMenu(e,row)}},_this2.props.columns.map(function(col,col_index){var className="col "+col.name.replace(".","_");return _react2.default.createElement("div",{className:className,key:col_index},_this2.renderValue(row,col.name))}),_this2.props.nocontext?null:_react2.default.createElement(_ContextMenuTrigger2.default,{onTrigger:function(e){return _this2.handleContextMenu(e,row)}}))}))}}]),List}(_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)(List)},function(module,exports,__webpack_require__){"use strict";var emptyObject={};module.exports=emptyObject},function(module,exports,__webpack_require__){"use strict";function makeEmptyFunction(arg){return function(){return arg}}var emptyFunction=function(){};emptyFunction.thatReturns=makeEmptyFunction,emptyFunction.thatReturnsFalse=makeEmptyFunction(!1),emptyFunction.thatReturnsTrue=makeEmptyFunction(!0),emptyFunction.thatReturnsNull=makeEmptyFunction(null),emptyFunction.thatReturnsThis=function(){return this},emptyFunction.thatReturnsArgument=function(arg){return arg},module.exports=emptyFunction},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 loopAsync(turns,work,callback){function done(){if(isDone=!0,sync)return void(doneArgs=[].concat(Array.prototype.slice.call(arguments)));callback.apply(this,arguments)}function next(){if(!isDone&&(hasNext=!0,!sync)){for(sync=!0;!isDone&¤tTurn<turns&&hasNext;)hasNext=!1,work.call(this,currentTurn++,next,done);if(sync=!1,isDone)return void callback.apply(this,doneArgs);currentTurn>=turns&&hasNext&&(isDone=!0,callback())}}var currentTurn=0,isDone=!1,sync=!1,hasNext=!1,doneArgs=void 0;next()}function mapAsync(array,work,callback){function done(index,error,value){isDone||(error?(isDone=!0,callback(error)):(values[index]=value,(isDone=++doneCount===length)&&callback(null,values)))}var length=array.length,values=[];if(0===length)return callback(null,values);var isDone=!1,doneCount=0;array.forEach(function(item,index){work(item,index,function(error,value){done(index,error,value)})})}__webpack_exports__.a=loopAsync,__webpack_exports__.b=mapAsync},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_invariant__=__webpack_require__(17),__WEBPACK_IMPORTED_MODULE_0_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_invariant__),__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_create_react_class__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_2_create_react_class___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_create_react_class__),__WEBPACK_IMPORTED_MODULE_3_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_4__getRouteParams__=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__),__webpack_require__(146)),__WEBPACK_IMPORTED_MODULE_5__ContextUtils__=__webpack_require__(53),__WEBPACK_IMPORTED_MODULE_6__RouteUtils__=__webpack_require__(28),_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},RouterContext=__WEBPACK_IMPORTED_MODULE_2_create_react_class___default()({displayName:"RouterContext",mixins:[Object(__WEBPACK_IMPORTED_MODULE_5__ContextUtils__.a)("router")],propTypes:{router:__WEBPACK_IMPORTED_MODULE_3_prop_types__.object.isRequired,location:__WEBPACK_IMPORTED_MODULE_3_prop_types__.object.isRequired,routes:__WEBPACK_IMPORTED_MODULE_3_prop_types__.array.isRequired,params:__WEBPACK_IMPORTED_MODULE_3_prop_types__.object.isRequired,components:__WEBPACK_IMPORTED_MODULE_3_prop_types__.array.isRequired,createElement:__WEBPACK_IMPORTED_MODULE_3_prop_types__.func.isRequired},getDefaultProps:function(){return{createElement:__WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement}},childContextTypes:{router:__WEBPACK_IMPORTED_MODULE_3_prop_types__.object.isRequired},getChildContext:function(){return{router:this.props.router}},createElement:function(component,props){return null==component?null:this.props.createElement(component,props)},render:function(){var _this=this,_props=this.props,location=_props.location,routes=_props.routes,params=_props.params,components=_props.components,router=_props.router,element=null;return components&&(element=components.reduceRight(function(element,components,index){if(null==components)return element;var route=routes[index],routeParams=Object(__WEBPACK_IMPORTED_MODULE_4__getRouteParams__.a)(route,params),props={location:location,params:params,route:route,router:router,routeParams:routeParams,routes:routes};if(Object(__WEBPACK_IMPORTED_MODULE_6__RouteUtils__.c)(element))props.children=element;else if(element)for(var prop in element)Object.prototype.hasOwnProperty.call(element,prop)&&(props[prop]=element[prop]);if("object"===(void 0===components?"undefined":_typeof(components))){var elements={};for(var key in components)Object.prototype.hasOwnProperty.call(components,key)&&(elements[key]=_this.createElement(components[key],_extends({key:key},props)));return elements}return _this.createElement(components,props)},element)),null===element||!1===element||__WEBPACK_IMPORTED_MODULE_1_react___default.a.isValidElement(element)||__WEBPACK_IMPORTED_MODULE_0_invariant___default()(!1),element}});__webpack_exports__.a=RouterContext},function(module,__webpack_exports__,__webpack_require__){"use strict";function makeContextName(name){return"@@contextSubscriber/"+name}function ContextProvider(name){var _childContextTypes,_ref2,contextName=makeContextName(name),listenersKey=contextName+"/listeners",eventIndexKey=contextName+"/eventIndex",subscribeKey=contextName+"/subscribe";return _ref2={childContextTypes:(_childContextTypes={},_childContextTypes[contextName]=contextProviderShape.isRequired,_childContextTypes),getChildContext:function(){var _ref;return _ref={},_ref[contextName]={eventIndex:this[eventIndexKey],subscribe:this[subscribeKey]},_ref},componentWillMount:function(){this[listenersKey]=[],this[eventIndexKey]=0},componentWillReceiveProps:function(){this[eventIndexKey]++},componentDidUpdate:function(){var _this=this;this[listenersKey].forEach(function(listener){return listener(_this[eventIndexKey])})}},_ref2[subscribeKey]=function(listener){var _this2=this;return this[listenersKey].push(listener),function(){_this2[listenersKey]=_this2[listenersKey].filter(function(item){return item!==listener})}},_ref2}function ContextSubscriber(name){var _contextTypes,_ref4,contextName=makeContextName(name),lastRenderedEventIndexKey=contextName+"/lastRenderedEventIndex",handleContextUpdateKey=contextName+"/handleContextUpdate",unsubscribeKey=contextName+"/unsubscribe";return _ref4={contextTypes:(_contextTypes={},_contextTypes[contextName]=contextProviderShape,_contextTypes),getInitialState:function(){var _ref3;return this.context[contextName]?(_ref3={},_ref3[lastRenderedEventIndexKey]=this.context[contextName].eventIndex,_ref3):{}},componentDidMount:function(){this.context[contextName]&&(this[unsubscribeKey]=this.context[contextName].subscribe(this[handleContextUpdateKey]))},componentWillReceiveProps:function(){var _setState;this.context[contextName]&&this.setState((_setState={},_setState[lastRenderedEventIndexKey]=this.context[contextName].eventIndex,_setState))},componentWillUnmount:function(){this[unsubscribeKey]&&(this[unsubscribeKey](),this[unsubscribeKey]=null)}},_ref4[handleContextUpdateKey]=function(eventIndex){if(eventIndex!==this.state[lastRenderedEventIndexKey]){var _setState2;this.setState((_setState2={},_setState2[lastRenderedEventIndexKey]=eventIndex,_setState2))}},_ref4}__webpack_exports__.a=ContextProvider,__webpack_exports__.b=ContextSubscriber;var __WEBPACK_IMPORTED_MODULE_0_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_0_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__),contextProviderShape=__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.shape({subscribe:__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.func.isRequired,eventIndex:__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number.isRequired})},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"b",function(){return routerShape}),__webpack_require__.d(__webpack_exports__,"a",function(){return locationShape});var __WEBPACK_IMPORTED_MODULE_0_prop_types__=__webpack_require__(11),routerShape=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__),Object(__WEBPACK_IMPORTED_MODULE_0_prop_types__.shape)({push:__WEBPACK_IMPORTED_MODULE_0_prop_types__.func.isRequired,replace:__WEBPACK_IMPORTED_MODULE_0_prop_types__.func.isRequired,go:__WEBPACK_IMPORTED_MODULE_0_prop_types__.func.isRequired,goBack:__WEBPACK_IMPORTED_MODULE_0_prop_types__.func.isRequired,goForward:__WEBPACK_IMPORTED_MODULE_0_prop_types__.func.isRequired,setRouteLeaveHook:__WEBPACK_IMPORTED_MODULE_0_prop_types__.func.isRequired,isActive:__WEBPACK_IMPORTED_MODULE_0_prop_types__.func.isRequired})),locationShape=Object(__WEBPACK_IMPORTED_MODULE_0_prop_types__.shape)({pathname:__WEBPACK_IMPORTED_MODULE_0_prop_types__.string.isRequired,search:__WEBPACK_IMPORTED_MODULE_0_prop_types__.string.isRequired,state:__WEBPACK_IMPORTED_MODULE_0_prop_types__.object,action:__WEBPACK_IMPORTED_MODULE_0_prop_types__.string.isRequired,key:__WEBPACK_IMPORTED_MODULE_0_prop_types__.string})},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0;var _warning=__webpack_require__(27),runTransitionHook=(function(obj){obj&&obj.__esModule}(_warning),function(hook,location,callback){var result=hook(location,callback);hook.length<2&&callback(result)});exports.default=runTransitionHook},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0;var _AsyncUtils=__webpack_require__(156),_PathUtils=__webpack_require__(29),_runTransitionHook=__webpack_require__(55),_runTransitionHook2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_runTransitionHook),_Actions=__webpack_require__(44),_LocationUtils=__webpack_require__(34),createHistory=function(){var options=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},getCurrentLocation=options.getCurrentLocation,getUserConfirmation=options.getUserConfirmation,pushLocation=options.pushLocation,replaceLocation=options.replaceLocation,go=options.go,keyLength=options.keyLength,currentLocation=void 0,pendingLocation=void 0,beforeListeners=[],listeners=[],allKeys=[],getCurrentIndex=function(){return pendingLocation&&pendingLocation.action===_Actions.POP?allKeys.indexOf(pendingLocation.key):currentLocation?allKeys.indexOf(currentLocation.key):-1},updateLocation=function(nextLocation){var currentIndex=getCurrentIndex();currentLocation=nextLocation,currentLocation.action===_Actions.PUSH?allKeys=[].concat(allKeys.slice(0,currentIndex+1),[currentLocation.key]):currentLocation.action===_Actions.REPLACE&&(allKeys[currentIndex]=currentLocation.key),listeners.forEach(function(listener){return listener(currentLocation)})},listenBefore=function(listener){return beforeListeners.push(listener),function(){return beforeListeners=beforeListeners.filter(function(item){return item!==listener})}},listen=function(listener){return listeners.push(listener),function(){return listeners=listeners.filter(function(item){return item!==listener})}},confirmTransitionTo=function(location,callback){(0,_AsyncUtils.loopAsync)(beforeListeners.length,function(index,next,done){(0,_runTransitionHook2.default)(beforeListeners[index],location,function(result){return null!=result?done(result):next()})},function(message){getUserConfirmation&&"string"==typeof message?getUserConfirmation(message,function(ok){return callback(!1!==ok)}):callback(!1!==message)})},transitionTo=function(nextLocation){currentLocation&&(0,_LocationUtils.locationsAreEqual)(currentLocation,nextLocation)||pendingLocation&&(0,_LocationUtils.locationsAreEqual)(pendingLocation,nextLocation)||(pendingLocation=nextLocation,confirmTransitionTo(nextLocation,function(ok){if(pendingLocation===nextLocation)if(pendingLocation=null,ok){if(nextLocation.action===_Actions.PUSH){var prevPath=(0,_PathUtils.createPath)(currentLocation),nextPath=(0,_PathUtils.createPath)(nextLocation);nextPath===prevPath&&(0,_LocationUtils.statesAreEqual)(currentLocation.state,nextLocation.state)&&(nextLocation.action=_Actions.REPLACE)}nextLocation.action===_Actions.POP?updateLocation(nextLocation):nextLocation.action===_Actions.PUSH?!1!==pushLocation(nextLocation)&&updateLocation(nextLocation):nextLocation.action===_Actions.REPLACE&&!1!==replaceLocation(nextLocation)&&updateLocation(nextLocation)}else if(currentLocation&&nextLocation.action===_Actions.POP){var prevIndex=allKeys.indexOf(currentLocation.key),nextIndex=allKeys.indexOf(nextLocation.key);-1!==prevIndex&&-1!==nextIndex&&go(prevIndex-nextIndex)}}))},push=function(input){return transitionTo(createLocation(input,_Actions.PUSH))},replace=function(input){return transitionTo(createLocation(input,_Actions.REPLACE))},goBack=function(){return go(-1)},goForward=function(){return go(1)},createKey=function(){return Math.random().toString(36).substr(2,keyLength||6)},createHref=function(location){return(0,_PathUtils.createPath)(location)},createLocation=function(location,action){var key=arguments.length>2&&void 0!==arguments[2]?arguments[2]:createKey();return(0,_LocationUtils.createLocation)(location,action,key)};return{getCurrentLocation:getCurrentLocation,listenBefore:listenBefore,listen:listen,transitionTo:transitionTo,push:push,replace:replace,go:go,goBack:goBack,goForward:goForward,createKey:createKey,createPath:_PathUtils.createPath,createHref:createHref,createLocation:createLocation}};exports.default=createHistory},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0;exports.canUseDOM=!("undefined"==typeof window||!window.document||!window.document.createElement)},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.go=exports.replaceLocation=exports.pushLocation=exports.startListener=exports.getUserConfirmation=exports.getCurrentLocation=void 0;var _LocationUtils=__webpack_require__(34),_DOMUtils=__webpack_require__(45),_DOMStateStorage=__webpack_require__(83),_PathUtils=__webpack_require__(29),_ExecutionEnvironment=__webpack_require__(57),needsHashchangeListener=_ExecutionEnvironment.canUseDOM&&!(0,_DOMUtils.supportsPopstateOnHashchange)(),_createLocation=function(historyState){var key=historyState&&historyState.key;return(0,_LocationUtils.createLocation)({pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,state:key?(0,_DOMStateStorage.readState)(key):void 0},void 0,key)},getCurrentLocation=exports.getCurrentLocation=function(){var historyState=void 0;try{historyState=window.history.state||{}}catch(error){historyState={}}return _createLocation(historyState)},updateLocation=(exports.getUserConfirmation=function(message,callback){return callback(window.confirm(message))},exports.startListener=function(listener){var handlePopState=function(event){(0,_DOMUtils.isExtraneousPopstateEvent)(event)||listener(_createLocation(event.state))};(0,_DOMUtils.addEventListener)(window,"popstate",handlePopState);var handleUnpoppedHashChange=function(){return listener(getCurrentLocation())};return needsHashchangeListener&&(0,_DOMUtils.addEventListener)(window,"hashchange",handleUnpoppedHashChange),function(){(0,_DOMUtils.removeEventListener)(window,"popstate",handlePopState),needsHashchangeListener&&(0,_DOMUtils.removeEventListener)(window,"hashchange",handleUnpoppedHashChange)}},function(location,updateState){var state=location.state,key=location.key;void 0!==state&&(0,_DOMStateStorage.saveState)(key,state),updateState({key:key},(0,_PathUtils.createPath)(location))});exports.pushLocation=function(location){return updateLocation(location,function(state,path){return window.history.pushState(state,null,path)})},exports.replaceLocation=function(location){return updateLocation(location,function(state,path){return window.history.replaceState(state,null,path)})},exports.go=function(n){n&&window.history.go(n)}},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__(183);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__(85))},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),_reactFontawesome=(__webpack_require__(6),__webpack_require__(5)),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),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)}},{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(_reactFontawesome2.default,{name:"search"}),_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)}})))}}]),FilterField}(_react2.default.Component);exports.default=FilterField},function(module,exports,__webpack_require__){"use strict";function invariant(condition,format,a,b,c,d,e,f){if(validateFormat(format),!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}}var validateFormat=function(format){};module.exports=invariant},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"b",function(){return subscriptionShape}),__webpack_require__.d(__webpack_exports__,"a",function(){return storeShape});var __WEBPACK_IMPORTED_MODULE_0_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_0_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__),subscriptionShape=__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.shape({trySubscribe:__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.func.isRequired,tryUnsubscribe:__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.func.isRequired,notifyNestedSubs:__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.func.isRequired,isSubscribed:__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.func.isRequired}),storeShape=__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.shape({subscribe:__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.func.isRequired,dispatch:__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.func.isRequired,getState:__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.func.isRequired})},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)}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 noop(){}function makeSelectorStateful(sourceSelector,store){var selector={run:function(props){try{var nextProps=sourceSelector(store.getState(),props);(nextProps!==selector.props||selector.error)&&(selector.shouldComponentUpdate=!0,selector.props=nextProps,selector.error=null)}catch(error){selector.shouldComponentUpdate=!0,selector.error=error}}};return selector}function connectAdvanced(selectorFactory){var _contextTypes,_childContextTypes,_ref=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},_ref$getDisplayName=_ref.getDisplayName,getDisplayName=void 0===_ref$getDisplayName?function(name){return"ConnectAdvanced("+name+")"}:_ref$getDisplayName,_ref$methodName=_ref.methodName,methodName=void 0===_ref$methodName?"connectAdvanced":_ref$methodName,_ref$renderCountProp=_ref.renderCountProp,renderCountProp=void 0===_ref$renderCountProp?void 0:_ref$renderCountProp,_ref$shouldHandleStat=_ref.shouldHandleStateChanges,shouldHandleStateChanges=void 0===_ref$shouldHandleStat||_ref$shouldHandleStat,_ref$storeKey=_ref.storeKey,storeKey=void 0===_ref$storeKey?"store":_ref$storeKey,_ref$withRef=_ref.withRef,withRef=void 0!==_ref$withRef&&_ref$withRef,connectOptions=_objectWithoutProperties(_ref,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef"]),subscriptionKey=storeKey+"Subscription",version=hotReloadingVersion++,contextTypes=(_contextTypes={},_contextTypes[storeKey]=__WEBPACK_IMPORTED_MODULE_4__utils_PropTypes__.a,_contextTypes[subscriptionKey]=__WEBPACK_IMPORTED_MODULE_4__utils_PropTypes__.b,_contextTypes),childContextTypes=(_childContextTypes={},_childContextTypes[subscriptionKey]=__WEBPACK_IMPORTED_MODULE_4__utils_PropTypes__.b,_childContextTypes);return function(WrappedComponent){__WEBPACK_IMPORTED_MODULE_1_invariant___default()("function"==typeof WrappedComponent,"You must pass a component to the function returned by "+methodName+". Instead received "+JSON.stringify(WrappedComponent));var wrappedComponentName=WrappedComponent.displayName||WrappedComponent.name||"Component",displayName=getDisplayName(wrappedComponentName),selectorFactoryOptions=_extends({},connectOptions,{getDisplayName:getDisplayName,methodName:methodName,renderCountProp:renderCountProp,shouldHandleStateChanges:shouldHandleStateChanges,storeKey:storeKey,withRef:withRef,displayName:displayName,wrappedComponentName:wrappedComponentName,WrappedComponent:WrappedComponent}),Connect=function(_Component){function Connect(props,context){_classCallCheck(this,Connect);var _this=_possibleConstructorReturn(this,_Component.call(this,props,context));return _this.version=version,_this.state={},_this.renderCount=0,_this.store=props[storeKey]||context[storeKey],_this.propsMode=Boolean(props[storeKey]),_this.setWrappedInstance=_this.setWrappedInstance.bind(_this),__WEBPACK_IMPORTED_MODULE_1_invariant___default()(_this.store,'Could not find "'+storeKey+'" in either the context or props of "'+displayName+'". Either wrap the root component in a <Provider>, or explicitly pass "'+storeKey+'" as a prop to "'+displayName+'".'),_this.initSelector(),_this.initSubscription(),_this}return _inherits(Connect,_Component),Connect.prototype.getChildContext=function(){var _ref2,subscription=this.propsMode?null:this.subscription;return _ref2={},_ref2[subscriptionKey]=subscription||this.context[subscriptionKey],_ref2},Connect.prototype.componentDidMount=function(){shouldHandleStateChanges&&(this.subscription.trySubscribe(),this.selector.run(this.props),this.selector.shouldComponentUpdate&&this.forceUpdate())},Connect.prototype.componentWillReceiveProps=function(nextProps){this.selector.run(nextProps)},Connect.prototype.shouldComponentUpdate=function(){return this.selector.shouldComponentUpdate},Connect.prototype.componentWillUnmount=function(){this.subscription&&this.subscription.tryUnsubscribe(),this.subscription=null,this.notifyNestedSubs=noop,this.store=null,this.selector.run=noop,this.selector.shouldComponentUpdate=!1},Connect.prototype.getWrappedInstance=function(){return __WEBPACK_IMPORTED_MODULE_1_invariant___default()(withRef,"To access the wrapped instance, you need to specify { withRef: true } in the options argument of the "+methodName+"() call."),this.wrappedInstance},Connect.prototype.setWrappedInstance=function(ref){this.wrappedInstance=ref},Connect.prototype.initSelector=function(){var sourceSelector=selectorFactory(this.store.dispatch,selectorFactoryOptions);this.selector=makeSelectorStateful(sourceSelector,this.store),this.selector.run(this.props)},Connect.prototype.initSubscription=function(){if(shouldHandleStateChanges){var parentSub=(this.propsMode?this.props:this.context)[subscriptionKey];this.subscription=new __WEBPACK_IMPORTED_MODULE_3__utils_Subscription__.a(this.store,parentSub,this.onStateChange.bind(this)),this.notifyNestedSubs=this.subscription.notifyNestedSubs.bind(this.subscription)}},Connect.prototype.onStateChange=function(){this.selector.run(this.props),this.selector.shouldComponentUpdate?(this.componentDidUpdate=this.notifyNestedSubsOnComponentDidUpdate,this.setState(dummyState)):this.notifyNestedSubs()},Connect.prototype.notifyNestedSubsOnComponentDidUpdate=function(){this.componentDidUpdate=void 0,this.notifyNestedSubs()},Connect.prototype.isSubscribed=function(){return Boolean(this.subscription)&&this.subscription.isSubscribed()},Connect.prototype.addExtraProps=function(props){if(!(withRef||renderCountProp||this.propsMode&&this.subscription))return props;var withExtras=_extends({},props);return withRef&&(withExtras.ref=this.setWrappedInstance),renderCountProp&&(withExtras[renderCountProp]=this.renderCount++),this.propsMode&&this.subscription&&(withExtras[subscriptionKey]=this.subscription),withExtras},Connect.prototype.render=function(){var selector=this.selector;if(selector.shouldComponentUpdate=!1,selector.error)throw selector.error;return Object(__WEBPACK_IMPORTED_MODULE_2_react__.createElement)(WrappedComponent,this.addExtraProps(selector.props))},Connect}(__WEBPACK_IMPORTED_MODULE_2_react__.Component);return Connect.WrappedComponent=WrappedComponent,Connect.displayName=displayName,Connect.childContextTypes=childContextTypes,Connect.contextTypes=contextTypes,Connect.propTypes=contextTypes,__WEBPACK_IMPORTED_MODULE_0_hoist_non_react_statics___default()(Connect,WrappedComponent)}}__webpack_exports__.a=connectAdvanced;var __WEBPACK_IMPORTED_MODULE_0_hoist_non_react_statics__=__webpack_require__(65),__WEBPACK_IMPORTED_MODULE_0_hoist_non_react_statics___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_hoist_non_react_statics__),__WEBPACK_IMPORTED_MODULE_1_invariant__=__webpack_require__(17),__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_3__utils_Subscription__=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__),__webpack_require__(107)),__WEBPACK_IMPORTED_MODULE_4__utils_PropTypes__=__webpack_require__(63),_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},hotReloadingVersion=0,dummyState={}},function(module,exports,__webpack_require__){!function(global,factory){module.exports=factory()}(0,function(){"use strict";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);return 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}})},function(module,__webpack_exports__,__webpack_require__){"use strict";function createStore(reducer,preloadedState,enhancer){function ensureCanMutateNextListeners(){nextListeners===currentListeners&&(nextListeners=currentListeners.slice())}function getState(){return currentState}function subscribe(listener){if("function"!=typeof listener)throw new Error("Expected listener to be a function.");var isSubscribed=!0;return ensureCanMutateNextListeners(),nextListeners.push(listener),function(){if(isSubscribed){isSubscribed=!1,ensureCanMutateNextListeners();var index=nextListeners.indexOf(listener);nextListeners.splice(index,1)}}}function dispatch(action){if(!Object(__WEBPACK_IMPORTED_MODULE_0_lodash_es_isPlainObject__.a)(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.INIT})}function observable(){var _ref,outerSubscribe=subscribe;return _ref={subscribe:function(observer){function observeState(){observer.next&&observer.next(getState())}if("object"!=typeof observer)throw new TypeError("Expected the observer to be an object.");return observeState(),{unsubscribe:outerSubscribe(observeState)}}},_ref[__WEBPACK_IMPORTED_MODULE_1_symbol_observable___default.a]=function(){return this},_ref}var _ref2;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_1_symbol_observable___default.a]=observable,_ref2}__webpack_require__.d(__webpack_exports__,"a",function(){return ActionTypes}),__webpack_exports__.b=createStore;var __WEBPACK_IMPORTED_MODULE_0_lodash_es_isPlainObject__=__webpack_require__(67),__WEBPACK_IMPORTED_MODULE_1_symbol_observable__=__webpack_require__(119),__WEBPACK_IMPORTED_MODULE_1_symbol_observable___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_symbol_observable__),ActionTypes={INIT:"@@redux/INIT"}},function(module,__webpack_exports__,__webpack_require__){"use strict";function isPlainObject(value){if(!Object(__WEBPACK_IMPORTED_MODULE_2__isObjectLike_js__.a)(value)||Object(__WEBPACK_IMPORTED_MODULE_0__baseGetTag_js__.a)(value)!=objectTag)return!1;var proto=Object(__WEBPACK_IMPORTED_MODULE_1__getPrototype_js__.a)(value);if(null===proto)return!0;var Ctor=hasOwnProperty.call(proto,"constructor")&&proto.constructor;return"function"==typeof Ctor&&Ctor instanceof Ctor&&funcToString.call(Ctor)==objectCtorString}var __WEBPACK_IMPORTED_MODULE_0__baseGetTag_js__=__webpack_require__(111),__WEBPACK_IMPORTED_MODULE_1__getPrototype_js__=__webpack_require__(116),__WEBPACK_IMPORTED_MODULE_2__isObjectLike_js__=__webpack_require__(118),objectTag="[object Object]",funcProto=Function.prototype,objectProto=Object.prototype,funcToString=funcProto.toString,hasOwnProperty=objectProto.hasOwnProperty,objectCtorString=funcToString.call(Object);__webpack_exports__.a=isPlainObject},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0__root_js__=__webpack_require__(112),Symbol=__WEBPACK_IMPORTED_MODULE_0__root_js__.a.Symbol;__webpack_exports__.a=Symbol},function(module,__webpack_exports__,__webpack_require__){"use strict"},function(module,__webpack_exports__,__webpack_require__){"use strict";function compose(){for(var _len=arguments.length,funcs=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))}})}__webpack_exports__.a=compose},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__(72)},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__(126),__webpack_require__(50)},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0__root_js__=__webpack_require__(128),Symbol=__WEBPACK_IMPORTED_MODULE_0__root_js__.a.Symbol;__webpack_exports__.a=Symbol},function(module,__webpack_exports__,__webpack_require__){"use strict";function hasAnyProperties(object){for(var p in object)if(Object.prototype.hasOwnProperty.call(object,p))return!0;return!1}function createTransitionManager(history,routes){function isActive(location,indexOnly){return location=history.createLocation(location),Object(__WEBPACK_IMPORTED_MODULE_3__isActive__.a)(location,indexOnly,state.location,state.routes,state.params)}function match(location,callback){partialNextState&&partialNextState.location===location?finishMatch(partialNextState,callback):Object(__WEBPACK_IMPORTED_MODULE_5__matchRoutes__.a)(routes,location,function(error,nextState){error?callback(error):nextState?finishMatch(_extends({},nextState,{location:location}),callback):callback()})}function finishMatch(nextState,callback){function finishEnterHooks(error,redirectInfo){if(error||redirectInfo)return handleErrorOrRedirect(error,redirectInfo);Object(__WEBPACK_IMPORTED_MODULE_4__getComponents__.a)(nextState,function(error,components){error?callback(error):callback(null,null,state=_extends({},nextState,{components:components}))})}function handleErrorOrRedirect(error,redirectInfo){error?callback(error):callback(null,redirectInfo)}var _computeChangedRoutes=Object(__WEBPACK_IMPORTED_MODULE_1__computeChangedRoutes__.a)(state,nextState),leaveRoutes=_computeChangedRoutes.leaveRoutes,changeRoutes=_computeChangedRoutes.changeRoutes,enterRoutes=_computeChangedRoutes.enterRoutes;runLeaveHooks(leaveRoutes,state),leaveRoutes.filter(function(route){return-1===enterRoutes.indexOf(route)}).forEach(removeListenBeforeHooksForRoute),runChangeHooks(changeRoutes,state,nextState,function(error,redirectInfo){if(error||redirectInfo)return handleErrorOrRedirect(error,redirectInfo);runEnterHooks(enterRoutes,nextState,finishEnterHooks)})}function getRouteID(route){var create=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return route.__id__||create&&(route.__id__=RouteGuid++)}function getRouteHooksForRoutes(routes){return routes.map(function(route){return RouteHooks[getRouteID(route)]}).filter(function(hook){return hook})}function transitionHook(location,callback){Object(__WEBPACK_IMPORTED_MODULE_5__matchRoutes__.a)(routes,location,function(error,nextState){if(null==nextState)return void callback();partialNextState=_extends({},nextState,{location:location});for(var hooks=getRouteHooksForRoutes(Object(__WEBPACK_IMPORTED_MODULE_1__computeChangedRoutes__.a)(state,partialNextState).leaveRoutes),result=void 0,i=0,len=hooks.length;null==result&&i<len;++i)result=hooks[i](location);callback(result)})}function beforeUnloadHook(){if(state.routes){for(var hooks=getRouteHooksForRoutes(state.routes),message=void 0,i=0,len=hooks.length;"string"!=typeof message&&i<len;++i)message=hooks[i]();return message}}function removeListenBeforeHooksForRoute(route){var routeID=getRouteID(route);routeID&&(delete RouteHooks[routeID],hasAnyProperties(RouteHooks)||(unlistenBefore&&(unlistenBefore(),unlistenBefore=null),unlistenBeforeUnload&&(unlistenBeforeUnload(),unlistenBeforeUnload=null)))}function listenBeforeLeavingRoute(route,hook){var thereWereNoRouteHooks=!hasAnyProperties(RouteHooks),routeID=getRouteID(route,!0);return RouteHooks[routeID]=hook,thereWereNoRouteHooks&&(unlistenBefore=history.listenBefore(transitionHook),history.listenBeforeUnload&&(unlistenBeforeUnload=history.listenBeforeUnload(beforeUnloadHook))),function(){removeListenBeforeHooksForRoute(route)}}function listen(listener){function historyListener(location){state.location===location?listener(null,state):match(location,function(error,redirectLocation,nextState){error?listener(error):redirectLocation?history.replace(redirectLocation):nextState&&listener(null,nextState)})}var unsubscribe=history.listen(historyListener);return state.location?listener(null,state):historyListener(history.getCurrentLocation()),unsubscribe}var state={},_getTransitionUtils=Object(__WEBPACK_IMPORTED_MODULE_2__TransitionUtils__.a)(),runEnterHooks=_getTransitionUtils.runEnterHooks,runChangeHooks=_getTransitionUtils.runChangeHooks,runLeaveHooks=_getTransitionUtils.runLeaveHooks,partialNextState=void 0,RouteGuid=1,RouteHooks=Object.create(null),unlistenBefore=void 0,unlistenBeforeUnload=void 0;return{isActive:isActive,match:match,listenBeforeLeavingRoute:listenBeforeLeavingRoute,listen:listen}}__webpack_exports__.a=createTransitionManager;var __WEBPACK_IMPORTED_MODULE_1__computeChangedRoutes__=(__webpack_require__(32),__webpack_require__(141)),__WEBPACK_IMPORTED_MODULE_2__TransitionUtils__=__webpack_require__(142),__WEBPACK_IMPORTED_MODULE_3__isActive__=__webpack_require__(143),__WEBPACK_IMPORTED_MODULE_4__getComponents__=__webpack_require__(144),__WEBPACK_IMPORTED_MODULE_5__matchRoutes__=__webpack_require__(145),_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}},function(module,__webpack_exports__,__webpack_require__){"use strict";function isPromise(obj){return obj&&"function"==typeof obj.then}__webpack_exports__.a=isPromise},function(module,__webpack_exports__,__webpack_require__){"use strict";function createRouterObject(history,transitionManager,state){return assignRouterState(_extends({},history,{setRouteLeaveHook:transitionManager.listenBeforeLeavingRoute,isActive:transitionManager.isActive}),state)}function assignRouterState(router,_ref){var location=_ref.location,params=_ref.params,routes=_ref.routes;return router.location=location,router.params=params,router.routes=routes,router}__webpack_exports__.b=createRouterObject,__webpack_exports__.a=assignRouterState;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}},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 isLeftClickEvent(event){return 0===event.button}function isModifiedEvent(event){return!!(event.metaKey||event.altKey||event.ctrlKey||event.shiftKey)}function isEmptyObject(object){for(var p in object)if(Object.prototype.hasOwnProperty.call(object,p))return!1;return!0}function resolveToLocation(to,router){return"function"==typeof to?to(router.location):to}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_create_react_class__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_1_create_react_class___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_create_react_class__),__WEBPACK_IMPORTED_MODULE_2_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_3_invariant__=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__),__webpack_require__(17)),__WEBPACK_IMPORTED_MODULE_3_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_invariant__),__WEBPACK_IMPORTED_MODULE_4__PropTypes__=__webpack_require__(54),__WEBPACK_IMPORTED_MODULE_5__ContextUtils__=__webpack_require__(53),_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},Link=__WEBPACK_IMPORTED_MODULE_1_create_react_class___default()({displayName:"Link",mixins:[Object(__WEBPACK_IMPORTED_MODULE_5__ContextUtils__.b)("router")],contextTypes:{router:__WEBPACK_IMPORTED_MODULE_4__PropTypes__.b},propTypes:{to:Object(__WEBPACK_IMPORTED_MODULE_2_prop_types__.oneOfType)([__WEBPACK_IMPORTED_MODULE_2_prop_types__.string,__WEBPACK_IMPORTED_MODULE_2_prop_types__.object,__WEBPACK_IMPORTED_MODULE_2_prop_types__.func]),activeStyle:__WEBPACK_IMPORTED_MODULE_2_prop_types__.object,activeClassName:__WEBPACK_IMPORTED_MODULE_2_prop_types__.string,onlyActiveOnIndex:__WEBPACK_IMPORTED_MODULE_2_prop_types__.bool.isRequired,onClick:__WEBPACK_IMPORTED_MODULE_2_prop_types__.func,target:__WEBPACK_IMPORTED_MODULE_2_prop_types__.string},getDefaultProps:function(){return{onlyActiveOnIndex:!1,style:{}}},handleClick:function(event){if(this.props.onClick&&this.props.onClick(event),!event.defaultPrevented){var router=this.context.router;router||__WEBPACK_IMPORTED_MODULE_3_invariant___default()(!1),!isModifiedEvent(event)&&isLeftClickEvent(event)&&(this.props.target||(event.preventDefault(),router.push(resolveToLocation(this.props.to,router))))}},render:function(){var _props=this.props,to=_props.to,activeClassName=_props.activeClassName,activeStyle=_props.activeStyle,onlyActiveOnIndex=_props.onlyActiveOnIndex,props=_objectWithoutProperties(_props,["to","activeClassName","activeStyle","onlyActiveOnIndex"]),router=this.context.router;if(router){if(!to)return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("a",props);var toLocation=resolveToLocation(to,router);props.href=router.createHref(toLocation),(activeClassName||null!=activeStyle&&!isEmptyObject(activeStyle))&&router.isActive(toLocation,onlyActiveOnIndex)&&(activeClassName&&(props.className?props.className+=" "+activeClassName:props.className=activeClassName),activeStyle&&(props.style=_extends({},props.style,activeStyle)))}return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("a",_extends({},props,{onClick:this.handleClick}))}});__webpack_exports__.a=Link},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_create_react_class__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_0_create_react_class___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_create_react_class__),__WEBPACK_IMPORTED_MODULE_1_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_2_invariant__=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__),__webpack_require__(17)),__WEBPACK_IMPORTED_MODULE_2_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_invariant__),__WEBPACK_IMPORTED_MODULE_3__RouteUtils__=__webpack_require__(28),__WEBPACK_IMPORTED_MODULE_4__PatternUtils__=__webpack_require__(33),__WEBPACK_IMPORTED_MODULE_5__InternalPropTypes__=__webpack_require__(37),Redirect=__WEBPACK_IMPORTED_MODULE_0_create_react_class___default()({displayName:"Redirect",statics:{createRouteFromReactElement:function(element){var route=Object(__WEBPACK_IMPORTED_MODULE_3__RouteUtils__.a)(element);return route.from&&(route.path=route.from),route.onEnter=function(nextState,replace){var location=nextState.location,params=nextState.params,pathname=void 0;if("/"===route.to.charAt(0))pathname=Object(__WEBPACK_IMPORTED_MODULE_4__PatternUtils__.a)(route.to,params);else if(route.to){var routeIndex=nextState.routes.indexOf(route),parentPattern=Redirect.getRoutePattern(nextState.routes,routeIndex-1),pattern=parentPattern.replace(/\/*$/,"/")+route.to;pathname=Object(__WEBPACK_IMPORTED_MODULE_4__PatternUtils__.a)(pattern,params)}else pathname=location.pathname;replace({pathname:pathname,query:route.query||location.query,state:route.state||location.state})},route},getRoutePattern:function(routes,routeIndex){for(var parentPattern="",i=routeIndex;i>=0;i--){var route=routes[i],pattern=route.path||"";if(parentPattern=pattern.replace(/\/*$/,"/")+parentPattern,0===pattern.indexOf("/"))break}return"/"+parentPattern}},propTypes:{path:__WEBPACK_IMPORTED_MODULE_1_prop_types__.string,from:__WEBPACK_IMPORTED_MODULE_1_prop_types__.string,to:__WEBPACK_IMPORTED_MODULE_1_prop_types__.string.isRequired,query:__WEBPACK_IMPORTED_MODULE_1_prop_types__.object,state:__WEBPACK_IMPORTED_MODULE_1_prop_types__.object,onEnter:__WEBPACK_IMPORTED_MODULE_5__InternalPropTypes__.c,children:__WEBPACK_IMPORTED_MODULE_5__InternalPropTypes__.c},render:function(){__WEBPACK_IMPORTED_MODULE_2_invariant___default()(!1)}});__webpack_exports__.a=Redirect},function(module,__webpack_exports__,__webpack_require__){"use strict";function createMemoryHistory(options){var memoryHistory=__WEBPACK_IMPORTED_MODULE_2_history_lib_createMemoryHistory___default()(options),createHistory=function(){return memoryHistory};return __WEBPACK_IMPORTED_MODULE_0_history_lib_useQueries___default()(__WEBPACK_IMPORTED_MODULE_1_history_lib_useBasename___default()(createHistory))(options)}__webpack_exports__.a=createMemoryHistory;var __WEBPACK_IMPORTED_MODULE_0_history_lib_useQueries__=__webpack_require__(80),__WEBPACK_IMPORTED_MODULE_0_history_lib_useQueries___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_history_lib_useQueries__),__WEBPACK_IMPORTED_MODULE_1_history_lib_useBasename__=__webpack_require__(81),__WEBPACK_IMPORTED_MODULE_1_history_lib_useBasename___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_history_lib_useBasename__),__WEBPACK_IMPORTED_MODULE_2_history_lib_createMemoryHistory__=__webpack_require__(155),__WEBPACK_IMPORTED_MODULE_2_history_lib_createMemoryHistory___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_history_lib_createMemoryHistory__)},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!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},_queryString=__webpack_require__(153),_runTransitionHook=__webpack_require__(55),_runTransitionHook2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_runTransitionHook),_LocationUtils=__webpack_require__(34),_PathUtils=__webpack_require__(29),defaultStringifyQuery=function(query){return(0,_queryString.stringify)(query).replace(/%20/g,"+")},defaultParseQueryString=_queryString.parse,useQueries=function(createHistory){return function(){var options=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},history=createHistory(options),stringifyQuery=options.stringifyQuery,parseQueryString=options.parseQueryString;"function"!=typeof stringifyQuery&&(stringifyQuery=defaultStringifyQuery),"function"!=typeof parseQueryString&&(parseQueryString=defaultParseQueryString);var decodeQuery=function(location){return location?(null==location.query&&(location.query=parseQueryString(location.search.substring(1))),location):location},encodeQuery=function(location,query){if(null==query)return location;var object="string"==typeof location?(0,_PathUtils.parsePath)(location):location,queryString=stringifyQuery(query);return _extends({},object,{search:queryString?"?"+queryString:""})};return _extends({},history,{getCurrentLocation:function(){return decodeQuery(history.getCurrentLocation())},listenBefore:function(hook){return history.listenBefore(function(location,callback){return(0,_runTransitionHook2.default)(hook,decodeQuery(location),callback)})},listen:function(listener){return history.listen(function(location){return listener(decodeQuery(location))})},push:function(location){return history.push(encodeQuery(location,location.query))},replace:function(location){return history.replace(encodeQuery(location,location.query))},createPath:function(location){return history.createPath(encodeQuery(location,location.query))},createHref:function(location){return history.createHref(encodeQuery(location,location.query))},createLocation:function(location){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];var newLocation=history.createLocation.apply(history,[encodeQuery(location,location.query)].concat(args));return location.query&&(newLocation.query=(0,_LocationUtils.createQuery)(location.query)),decodeQuery(newLocation)}})}};exports.default=useQueries},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!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},_runTransitionHook=__webpack_require__(55),_runTransitionHook2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_runTransitionHook),_PathUtils=__webpack_require__(29),useBasename=function(createHistory){return function(){var options=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},history=createHistory(options),basename=options.basename,addBasename=function(location){return location?(basename&&null==location.basename&&(0===location.pathname.toLowerCase().indexOf(basename.toLowerCase())?(location.pathname=location.pathname.substring(basename.length),location.basename=basename,""===location.pathname&&(location.pathname="/")):location.basename=""),location):location},prependBasename=function(location){if(!basename)return location;var object="string"==typeof location?(0,_PathUtils.parsePath)(location):location,pname=object.pathname,normalizedBasename="/"===basename.slice(-1)?basename:basename+"/",normalizedPathname="/"===pname.charAt(0)?pname.slice(1):pname;return _extends({},object,{pathname:normalizedBasename+normalizedPathname})};return _extends({},history,{getCurrentLocation:function(){return addBasename(history.getCurrentLocation())},listenBefore:function(hook){return history.listenBefore(function(location,callback){return(0,_runTransitionHook2.default)(hook,addBasename(location),callback)})},listen:function(listener){return history.listen(function(location){return listener(addBasename(location))})},push:function(location){return history.push(prependBasename(location))},replace:function(location){return history.replace(prependBasename(location))},createPath:function(location){return history.createPath(prependBasename(location))},createHref:function(location){return history.createHref(prependBasename(location))},createLocation:function(location){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];return addBasename(history.createLocation.apply(history,[prependBasename(location)].concat(args)))}})}};exports.default=useBasename},function(module,__webpack_exports__,__webpack_require__){"use strict";function useRouterHistory(createHistory){return function(options){return __WEBPACK_IMPORTED_MODULE_0_history_lib_useQueries___default()(__WEBPACK_IMPORTED_MODULE_1_history_lib_useBasename___default()(createHistory))(options)}}__webpack_exports__.a=useRouterHistory;var __WEBPACK_IMPORTED_MODULE_0_history_lib_useQueries__=__webpack_require__(80),__WEBPACK_IMPORTED_MODULE_0_history_lib_useQueries___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_history_lib_useQueries__),__WEBPACK_IMPORTED_MODULE_1_history_lib_useBasename__=__webpack_require__(81),__WEBPACK_IMPORTED_MODULE_1_history_lib_useBasename___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_history_lib_useBasename__)},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.readState=exports.saveState=void 0;var _warning=__webpack_require__(27),QuotaExceededErrors=(function(obj){obj&&obj.__esModule}(_warning),{QuotaExceededError:!0,QUOTA_EXCEEDED_ERR:!0}),SecurityErrors={SecurityError:!0},createKey=function(key){return"@@History/"+key};exports.saveState=function(key,state){if(window.sessionStorage)try{null==state?window.sessionStorage.removeItem(createKey(key)):window.sessionStorage.setItem(createKey(key),JSON.stringify(state))}catch(error){if(SecurityErrors[error.name])return;if(QuotaExceededErrors[error.name]&&0===window.sessionStorage.length)return;throw error}},exports.readState=function(key){var json=void 0;try{json=window.sessionStorage.getItem(createKey(key))}catch(error){if(SecurityErrors[error.name])return}if(json)try{return JSON.parse(json)}catch(error){}}},function(module,__webpack_exports__,__webpack_require__){"use strict";function createRouterHistory(createHistory){var history=void 0;return canUseDOM&&(history=Object(__WEBPACK_IMPORTED_MODULE_0__useRouterHistory__.a)(createHistory)()),history}__webpack_exports__.a=createRouterHistory;var __WEBPACK_IMPORTED_MODULE_0__useRouterHistory__=__webpack_require__(82),canUseDOM=!("undefined"==typeof window||!window.document||!window.document.createElement)},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&¤tQueue&&(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&¤tQueue[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__){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){var charenc={utf8:{stringToBytes:function(str){return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)))},bytesToString:function(bytes){return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)))}},bin:{stringToBytes:function(str){for(var bytes=[],i=0;i<str.length;i++)bytes.push(255&str.charCodeAt(i));return bytes},bytesToString:function(bytes){for(var str=[],i=0;i<bytes.length;i++)str.push(String.fromCharCode(bytes[i]));return str.join("")}}};module.exports=charenc},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),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),VolumeControl=function(_React$Component){function VolumeControl(props){return _classCallCheck(this,VolumeControl),_possibleConstructorReturn(this,(VolumeControl.__proto__||Object.getPrototypeOf(VolumeControl)).call(this,props))}return _inherits(VolumeControl,_React$Component),_createClass(VolumeControl,[{key:"handleClick",value:function(e){var slider=e.target;"slider"!=slider.className&&(slider=slider.parentElement);var sliderX=e.clientX-slider.getBoundingClientRect().left,sliderWidth=slider.getBoundingClientRect().width,percent=Math.round(sliderX/sliderWidth*100);percent>100?percent=100:percent<0&&(percent=0),this.props.onVolumeChange(percent)}},{key:"handleWheel",value:function(e){if(this.props.scrollWheel){var direction=e.deltaY>0?-1:1,percent=this.props.volume;percent+=5*direction,percent>100?percent=100:percent<0&&(percent=0),this.props.onVolumeChange(percent),e.preventDefault()}}},{key:"renderMuteButton",value:function(){var _this2=this;return this.props.mute?_react2.default.createElement("a",{className:"control mute-control has-tooltip",onClick:function(){return _this2.props.onMuteChange(!1)}},_react2.default.createElement(_reactFontawesome2.default,{className:"red-text",name:"volume-off"}),_react2.default.createElement("span",{className:"tooltip"},"Unmute")):_react2.default.createElement("a",{className:"control mute-control has-tooltip",onClick:function(){return _this2.props.onMuteChange(!0)}},_react2.default.createElement(_reactFontawesome2.default,{className:"muted",name:"volume-off"}),_react2.default.createElement("span",{className:"tooltip"},"Mute"))}},{key:"render",value:function(){var _this3=this,className="volume-control";return this.props.mute&&(className+=" muted"),_react2.default.createElement("span",{className:className,onWheel:function(e){return _this3.handleWheel(e)}},this.renderMuteButton(),_react2.default.createElement("div",{className:"slider-wrapper"},_react2.default.createElement("div",{className:"slider horizontal",onClick:function(e){return _this3.handleClick(e)}},_react2.default.createElement("div",{className:"track"},_react2.default.createElement("div",{className:"progress",style:{width:this.props.volume+"%"}})))))}}]),VolumeControl}(_react2.default.Component);exports.default=VolumeControl},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),_reactFontawesome=(__webpack_require__(6),__webpack_require__(5)),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_Dater=__webpack_require__(31),_Dater2=_interopRequireDefault(_Dater),_URILink=__webpack_require__(24),_URILink2=_interopRequireDefault(_URILink),_ContextMenuTrigger=__webpack_require__(25),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_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};return target.is("a")||e.preventDefault(),target.hasClass("touch-contextable")?(this.props.handleContextMenu(e),!1):timestamp-this.end_time>0&×tamp-this.end_time<=300?(this.props.handleDoubleTap(e),e.preventDefault(),!1):!(this.start_time+200<timestamp)&&(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&&this.props.handleTap(e),void(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 track mouse-draggable mouse-selectable mouse-contextable";this.props.selected&&(className+=" selected"),this.props.can_sort&&(className+=" can-sort"),void 0!==track.type&&(className+=" "+track.type),track.playing&&(className+=" playing"),this.state.hover&&(className+=" hover");var album="-";track.album&&(album=track.album.uri?_react2.default.createElement(_URILink2.default,{type:"album",uri:track.album.uri},track.album.name):_react2.default.createElement("span",null,track.album.name));var track_columns=[],track_actions=[];if("history"==track.type)track_columns.push(_react2.default.createElement("span",{className:"col name",key:"name"},track.name?track.name:_react2.default.createElement("span",{className:"uri-placeholder grey-text"},track.uri))),track_columns.push(_react2.default.createElement("span",{className:"col source",key:"source"},helpers.uriSource(track.uri))),track_columns.push(_react2.default.createElement("span",{className:"col played_at",key:"played_at"},track.played_at?_react2.default.createElement("span",null,_react2.default.createElement(_Dater2.default,{type:"ago",data:track.played_at})," ago"):null));else if("queue"==this.props.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;default:var link=_react2.default.createElement(_URILink2.default,{type:type,uri:track.added_from},type)}var added=_react2.default.createElement("span",null,_react2.default.createElement("span",{className:"by"},track.added_by),_react2.default.createElement("span",{className:"grey-text from"},_react2.default.createElement("span",{className:"label"},"from "),link))}else if(track.added_by)var added=track.added_by;else var added="-";track_columns.push(_react2.default.createElement("span",{className:"col name",key:"name"},track.name?track.name:_react2.default.createElement("span",{className:"grey-text"},track.uri),track.explicit?_react2.default.createElement("span",{className:"flag dark"},"EXPLICIT"):null)),this.props.show_source_icon&&track_columns.push(_react2.default.createElement(_reactFontawesome2.default,{name:helpers.sourceIcon(track.uri),className:"source",key:"source",fixedWidth:!0})),track_columns.push(_react2.default.createElement("span",{className:"col artists",key:"artists"},track.artists?_react2.default.createElement(_ArtistSentence2.default,{artists:track.artists}):"-")),track_columns.push(_react2.default.createElement("span",{className:"col album",key:"album"},album)),track_columns.push(_react2.default.createElement("span",{className:"col added",key:"added"},added)),track_columns.push(_react2.default.createElement("span",{className:"col duration",key:"duration"},track.duration?_react2.default.createElement(_Dater2.default,{type:"length",data:track.duration}):null))}else track_columns.push(_react2.default.createElement("span",{className:"col name",key:"name"},track.name?track.name:_react2.default.createElement("span",{className:"grey-text"},track.uri),track.explicit?_react2.default.createElement("span",{className:"flag dark"},"EXPLICIT"):null)),this.props.show_source_icon&&track_columns.push(_react2.default.createElement(_reactFontawesome2.default,{name:helpers.sourceIcon(track.uri),className:"source",key:"source",fixedWidth:!0})),track_columns.push(_react2.default.createElement("span",{className:"col artists",key:"artists"},track.artists?_react2.default.createElement(_ArtistSentence2.default,{artists:track.artists}):"-")),track_columns.push(_react2.default.createElement("span",{className:"col album",key:"album"},album)),track_columns.push(_react2.default.createElement("span",{className:"col duration",key:"duration"},track.duration?_react2.default.createElement(_Dater2.default,{type:"length",data:track.duration}):"-"));return track_actions.push(_react2.default.createElement(_ContextMenuTrigger2.default,{key:"context",onTrigger:function(e){return _this2.props.handleContextMenu(e)}})),helpers.isTouchDevice()&&this.props.can_sort&&(className+=" has-touch-drag-zone",track_actions.push(_react2.default.createElement("span",{className:"drag-zone touch-draggable mouse-draggable",key:"drag-zone"},_react2.default.createElement(_reactFontawesome2.default,{name:"bars",fixedWidth:!0})))),_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)}},track_actions,track_columns)}}]),Track}(_react2.default.Component);exports.default=Track}).call(exports,__webpack_require__(18))},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),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_URILink=__webpack_require__(24),_URILink2=_interopRequireDefault(_URILink),RelatedArtists=function(_React$Component){function RelatedArtists(props){return _classCallCheck(this,RelatedArtists),_possibleConstructorReturn(this,(RelatedArtists.__proto__||Object.getPrototypeOf(RelatedArtists)).call(this,props))}return _inherits(RelatedArtists,_React$Component),_createClass(RelatedArtists,[{key:"render",value:function(){return this.props.artists?_react2.default.createElement("div",{className:"list related-artist-list"},this.props.artists.map(function(artist,index){return artist.uri?_react2.default.createElement(_URILink2.default,{type:"artist",uri:artist.uri,key:artist.uri,className:"artist"},_react2.default.createElement(_Thumbnail2.default,{circle:!0,size:"small",images:artist.images}),_react2.default.createElement("span",{className:"name"},artist.name)):_react2.default.createElement("span",{key:artist.uri,className:"artist"},_react2.default.createElement(_Thumbnail2.default,{circle:!0,size:"small",images:artist.images}),_react2.default.createElement("span",{className:"name"},artist.name))})):null}}]),RelatedArtists}(_react2.default.Component);exports.default=RelatedArtists},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),_reactFontawesome=__webpack_require__(5),ConfirmationButton=(_interopRequireDefault(_reactFontawesome),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+=" confirming",content=this.props.confirmingContent,this.state.timing_out&&(className+=" timing-out")),this.props.working&&(className+=" 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 _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(global){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function handleUpdate(){_reactGa2.default.set({page:window.location.hash}),_reactGa2.default.pageview(window.location.hash)}var _react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactDom=__webpack_require__(43),_reactDom2=_interopRequireDefault(_reactDom),_reactRedux=__webpack_require__(3),_reactRouter=(__webpack_require__(2),__webpack_require__(6)),_reactGa=__webpack_require__(23),_reactGa2=_interopRequireDefault(_reactGa),_bootstrap=__webpack_require__(164),_bootstrap2=_interopRequireDefault(_bootstrap),_App=__webpack_require__(202),_App2=_interopRequireDefault(_App),_Album=__webpack_require__(229),_Album2=_interopRequireDefault(_Album),_Artist=__webpack_require__(230),_Artist2=_interopRequireDefault(_Artist),_Playlist=__webpack_require__(231),_Playlist2=_interopRequireDefault(_Playlist),_User=__webpack_require__(232),_User2=_interopRequireDefault(_User),_Track=__webpack_require__(233),_Track2=_interopRequireDefault(_Track),_Queue=__webpack_require__(236),_Queue2=_interopRequireDefault(_Queue),_QueueHistory=__webpack_require__(237),_QueueHistory2=_interopRequireDefault(_QueueHistory),_Debug=__webpack_require__(238),_Debug2=_interopRequireDefault(_Debug),_Search=__webpack_require__(239),_Search2=_interopRequireDefault(_Search),_Settings=__webpack_require__(241),_Settings2=_interopRequireDefault(_Settings),_DiscoverRecommendations=__webpack_require__(249),_DiscoverRecommendations2=_interopRequireDefault(_DiscoverRecommendations),_DiscoverFeatured=__webpack_require__(267),_DiscoverFeatured2=_interopRequireDefault(_DiscoverFeatured),_DiscoverCategories=__webpack_require__(268),_DiscoverCategories2=_interopRequireDefault(_DiscoverCategories),_DiscoverCategory=__webpack_require__(270),_DiscoverCategory2=_interopRequireDefault(_DiscoverCategory),_DiscoverNewReleases=__webpack_require__(271),_DiscoverNewReleases2=_interopRequireDefault(_DiscoverNewReleases),_LibraryArtists=__webpack_require__(272),_LibraryArtists2=_interopRequireDefault(_LibraryArtists),_LibraryAlbums=__webpack_require__(273),_LibraryAlbums2=_interopRequireDefault(_LibraryAlbums),_LibraryTracks=__webpack_require__(274),_LibraryTracks2=_interopRequireDefault(_LibraryTracks),_LibraryPlaylists=__webpack_require__(275),_LibraryPlaylists2=_interopRequireDefault(_LibraryPlaylists),_LibraryBrowse=__webpack_require__(276),_LibraryBrowse2=_interopRequireDefault(_LibraryBrowse);__webpack_require__(277),_reactGa2.default.initialize("UA-64701652-3"),global.baseURL="/",_reactDom2.default.render(_react2.default.createElement(_reactRedux.Provider,{store:_bootstrap2.default},_react2.default.createElement(_reactRouter.Router,{history:_reactRouter.hashHistory,onUpdate:handleUpdate},_react2.default.createElement(_reactRouter.Route,{path:global.baseURL,component:_App2.default},_react2.default.createElement(_reactRouter.IndexRoute,{component:_Queue2.default}),_react2.default.createElement(_reactRouter.Route,{path:"queue",component:_Queue2.default}),_react2.default.createElement(_reactRouter.Route,{path:"queue/history",component:_QueueHistory2.default}),_react2.default.createElement(_reactRouter.Route,{path:"settings/debug",component:_Debug2.default}),_react2.default.createElement(_reactRouter.Route,{path:"settings(/service/:sub_view)",component:_Settings2.default}),_react2.default.createElement(_reactRouter.Route,{path:"search(/:query)",component:_Search2.default}),_react2.default.createElement(_reactRouter.Route,{path:"album/:uri",component:_Album2.default}),_react2.default.createElement(_reactRouter.Route,{path:"artist/:uri(/:sub_view)",component:_Artist2.default}),_react2.default.createElement(_reactRouter.Route,{path:"playlist/:uri",component:_Playlist2.default}),_react2.default.createElement(_reactRouter.Route,{path:"user/:uri",component:_User2.default}),_react2.default.createElement(_reactRouter.Route,{path:"track/:uri",component:_Track2.default}),_react2.default.createElement(_reactRouter.Route,{path:"discover/recommendations(/:seeds)",component:_DiscoverRecommendations2.default}),_react2.default.createElement(_reactRouter.Route,{path:"discover/featured",component:_DiscoverFeatured2.default}),_react2.default.createElement(_reactRouter.Route,{path:"discover/categories",component:_DiscoverCategories2.default}),_react2.default.createElement(_reactRouter.Route,{path:"discover/categories/:id",component:_DiscoverCategory2.default}),_react2.default.createElement(_reactRouter.Route,{path:"discover/new-releases",component:_DiscoverNewReleases2.default}),_react2.default.createElement(_reactRouter.Route,{path:"library/artists",component:_LibraryArtists2.default}),_react2.default.createElement(_reactRouter.Route,{path:"library/albums",component:_LibraryAlbums2.default}),_react2.default.createElement(_reactRouter.Route,{path:"library/tracks",component:_LibraryTracks2.default}),_react2.default.createElement(_reactRouter.Route,{path:"library/playlists",component:_LibraryPlaylists2.default}),_react2.default.createElement(_reactRouter.Route,{path:"library/browse(/:uri)",component:_LibraryBrowse2.default})))),document.getElementById("app"))}).call(exports,__webpack_require__(9))},function(module,exports,__webpack_require__){"use strict";function B(a){for(var b=arguments.length-1,e="Minified React error #"+a+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+a,c=0;c<b;c++)e+="&args[]="+encodeURIComponent(arguments[c+1]);throw b=Error(e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."),b.name="Invariant Violation",b.framesToPop=1,b}function D(a,b,e){this.props=a,this.context=b,this.refs=n,this.updater=e||C}function E(){}function F(a,b,e){this.props=a,this.context=b,this.refs=n,this.updater=e||C}function K(a,b,e){var c=void 0,d={},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)I.call(b,c)&&!J.hasOwnProperty(c)&&(d[c]=b[c]);var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){for(var k=Array(f),l=0;l<f;l++)k[l]=arguments[l+2];d.children=k}if(a&&a.defaultProps)for(c in f=a.defaultProps)void 0===d[c]&&(d[c]=f[c]);return{$$typeof:r,type:a,key:g,ref:h,props:d,_owner:H.current}}function L(a){return"object"==typeof a&&null!==a&&a.$$typeof===r}function escape(a){var b={"=":"=0",":":"=2"};return"$"+(""+a).replace(/[=:]/g,function(a){return b[a]})}function O(a,b,e,c){if(N.length){var d=N.pop();return d.result=a,d.keyPrefix=b,d.func=e,d.context=c,d.count=0,d}return{result:a,keyPrefix:b,func:e,context:c,count:0}}function P(a){a.result=null,a.keyPrefix=null,a.func=null,a.context=null,a.count=0,10>N.length&&N.push(a)}function Q(a,b,e,c){var d=typeof a;"undefined"!==d&&"boolean"!==d||(a=null);var g=!1;if(null===a)g=!0;else switch(d){case"string":case"number":g=!0;break;case"object":switch(a.$$typeof){case r:case t:g=!0}}if(g)return e(c,a,""===b?"."+R(a,0):b),1;if(g=0,b=""===b?".":b+":",Array.isArray(a))for(var h=0;h<a.length;h++){d=a[h];var f=b+R(d,h);g+=Q(d,f,e,c)}else if(null===a||void 0===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;!(d=a.next()).done;)d=d.value,f=b+R(d,h++),g+=Q(d,f,e,c);else"object"===d&&(e=""+a,B("31","[object Object]"===e?"object with keys {"+Object.keys(a).join(", ")+"}":e,""));return g}function R(a,b){return"object"==typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function S(a,b){a.func.call(a.context,b,a.count++)}function T(a,b,e){var c=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++),Array.isArray(a)?U(a,c,e,p.thatReturnsArgument):null!=a&&(L(a)&&(b=d+(!a.key||b&&b.key===a.key?"":(""+a.key).replace(M,"$&/")+"/")+e,a={$$typeof:r,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}),c.push(a))}function U(a,b,e,c,d){var g="";null!=e&&(g=(""+e).replace(M,"$&/")+"/"),b=O(b,g,c,d),null==a||Q(a,"",T,b),P(b)}/** @license React v16.3.0
|
||
* react.production.min.js
|
||
*
|
||
* Copyright (c) 2013-present, Facebook, Inc.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
var m=__webpack_require__(42),n=__webpack_require__(48),p=__webpack_require__(49),q="function"==typeof Symbol&&Symbol.for,r=q?Symbol.for("react.element"):60103,t=q?Symbol.for("react.portal"):60106,u=q?Symbol.for("react.fragment"):60107,v=q?Symbol.for("react.strict_mode"):60108,w=q?Symbol.for("react.provider"):60109,x=q?Symbol.for("react.context"):60110,y=q?Symbol.for("react.async_mode"):60111,z=q?Symbol.for("react.forward_ref"):60112,A="function"==typeof Symbol&&Symbol.iterator,C={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}};D.prototype.isReactComponent={},D.prototype.setState=function(a,b){"object"!=typeof a&&"function"!=typeof a&&null!=a&&B("85"),this.updater.enqueueSetState(this,a,b,"setState")},D.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,"forceUpdate")},E.prototype=D.prototype;var G=F.prototype=new E;G.constructor=F,m(G,D.prototype),G.isPureReactComponent=!0;var H={current:null},I=Object.prototype.hasOwnProperty,J={key:!0,ref:!0,__self:!0,__source:!0},M=/\/+/g,N=[],V={Children:{map:function(a,b,e){if(null==a)return a;var c=[];return U(a,c,null,b,e),c},forEach:function(a,b,e){if(null==a)return a;b=O(null,null,b,e),null==a||Q(a,"",S,b),P(b)},count:function(a){return null==a?0:Q(a,"",p.thatReturnsNull,null)},toArray:function(a){var b=[];return U(a,b,null,p.thatReturnsArgument),b},only:function(a){return L(a)||B("143"),a}},createRef:function(){return{current:null}},Component:D,PureComponent:F,createContext:function(a,b){return void 0===b&&(b=null),a={$$typeof:x,_calculateChangedBits:b,_defaultValue:a,_currentValue:a,_changedBits:0,Provider:null,Consumer:null},a.Provider={$$typeof:w,context:a},a.Consumer=a},forwardRef:function(a){return{$$typeof:z,render:a}},Fragment:u,StrictMode:v,unstable_AsyncMode:y,createElement:K,cloneElement:function(a,b,e){var c=void 0,d=m({},a.props),g=a.key,h=a.ref,f=a._owner;if(null!=b){void 0!==b.ref&&(h=b.ref,f=H.current),void 0!==b.key&&(g=""+b.key);var k=void 0;a.type&&a.type.defaultProps&&(k=a.type.defaultProps);for(c in b)I.call(b,c)&&!J.hasOwnProperty(c)&&(d[c]=void 0===b[c]&&void 0!==k?k[c]:b[c])}if(1===(c=arguments.length-2))d.children=e;else if(1<c){k=Array(c);for(var l=0;l<c;l++)k[l]=arguments[l+2];d.children=k}return{$$typeof:r,type:a.type,key:g,ref:h,props:d,_owner:f}},createFactory:function(a){var b=K.bind(null,a);return b.type=a,b},isValidElement:L,version:"16.3.0",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:H,assign:m}},W=Object.freeze({default:V}),X=W&&V||W;module.exports=X.default?X.default:X},function(module,exports,__webpack_require__){"use strict";function D(a){for(var b=arguments.length-1,c="Minified React error #"+a+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+a,d=0;d<b;d++)c+="&args[]="+encodeURIComponent(arguments[d+1]);throw b=Error(c+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."),b.name="Invariant Violation",b.framesToPop=1,b}function ka(a,b,c,d,e,f,h,g,k){this._hasCaughtError=!1,this._caughtError=null;var v=Array.prototype.slice.call(arguments,3);try{b.apply(c,v)}catch(l){this._caughtError=l,this._hasCaughtError=!0}}function ma(){if(E._hasRethrowError){var a=E._rethrowError;throw E._rethrowError=null,E._hasRethrowError=!1,a}}function pa(){if(na)for(var a in oa){var b=oa[a],c=na.indexOf(a);if(-1<c||D("96",a),!qa[c]){b.extractEvents||D("97",a),qa[c]=b,c=b.eventTypes;for(var d in c){var e=void 0,f=c[d],h=b,g=d;ra.hasOwnProperty(g)&&D("99",g),ra[g]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&sa(k[e],h,g);e=!0}else f.registrationName?(sa(f.registrationName,h,g),e=!0):e=!1;e||D("98",d,a)}}}}function sa(a,b,c){ta[a]&&D("100",a),ta[a]=b,ua[a]=b.eventTypes[c].dependencies}function va(a){na&&D("101"),na=Array.prototype.slice.call(a),pa()}function wa(a){var c,b=!1;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];oa.hasOwnProperty(c)&&oa[c]===d||(oa[c]&&D("102",c),oa[c]=d,b=!0)}b&&pa()}function Fa(a,b,c,d){b=a.type||"unknown-event",a.currentTarget=Ea(d),E.invokeGuardedCallbackAndCatchFirstError(b,c,void 0,a),a.currentTarget=null}function Ga(a,b){return null==b&&D("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 Ha(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}function Ja(a,b){if(a){var c=a._dispatchListeners,d=a._dispatchInstances;if(Array.isArray(c))for(var e=0;e<c.length&&!a.isPropagationStopped();e++)Fa(a,b,c[e],d[e]);else c&&Fa(a,b,c,d);a._dispatchListeners=null,a._dispatchInstances=null,a.isPersistent()||a.constructor.release(a)}}function Ka(a){return Ja(a,!0)}function La(a){return Ja(a,!1)}function Na(a,b){var c=a.stateNode;if(!c)return null;var d=Ca(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&&D("231",b,typeof c),c)}function Oa(a,b){null!==a&&(Ia=Ga(Ia,a)),a=Ia,Ia=null,a&&(b?Ha(a,Ka):Ha(a,La),Ia&&D("95"),E.rethrowCaughtError())}function Pa(a,b,c,d){for(var e=null,f=0;f<qa.length;f++){var h=qa[f];h&&(h=h.extractEvents(a,b,c,d))&&(e=Ga(e,h))}Oa(e,!1)}function Ta(a){if(a[F])return a[F];for(;!a[F];){if(!a.parentNode)return null;a=a.parentNode}return a=a[F],5===a.tag||6===a.tag?a:null}function Ua(a){if(5===a.tag||6===a.tag)return a.stateNode;D("33")}function Va(a){return a[Sa]||null}function L(a){do{a=a.return}while(a&&5!==a.tag);return a||null}function bb(a,b,c){for(var d=[];a;)d.push(a),a=L(a);for(a=d.length;0<a--;)b(d[a],"captured",c);for(a=0;a<d.length;a++)b(d[a],"bubbled",c)}function cb(a,b,c){(b=Na(a,c.dispatchConfig.phasedRegistrationNames[b]))&&(c._dispatchListeners=Ga(c._dispatchListeners,b),c._dispatchInstances=Ga(c._dispatchInstances,a))}function db(a){a&&a.dispatchConfig.phasedRegistrationNames&&bb(a._targetInst,cb,a)}function eb(a){if(a&&a.dispatchConfig.phasedRegistrationNames){var b=a._targetInst;b=b?L(b):null,bb(b,cb,a)}}function fb(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Na(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=Ga(c._dispatchListeners,b),c._dispatchInstances=Ga(c._dispatchInstances,a))}function gb(a){a&&a.dispatchConfig.registrationName&&fb(a._targetInst,null,a)}function hb(a){Ha(a,db)}function ib(a,b,c,d){if(c&&d)a:{for(var e=c,f=d,h=0,g=e;g;g=L(g))h++;g=0;for(var k=f;k;k=L(k))g++;for(;0<h-g;)e=L(e),h--;for(;0<g-h;)f=L(f),g--;for(;h--;){if(e===f||e===f.alternate)break a;e=L(e),f=L(f)}e=null}else e=null;for(f=e,e=[];c&&c!==f&&(null===(h=c.alternate)||h!==f);)e.push(c),c=L(c);for(c=[];d&&d!==f&&(null===(h=d.alternate)||h!==f);)c.push(d),d=L(d);for(d=0;d<e.length;d++)fb(e[d],"bubbled",a);for(a=c.length;0<a--;)fb(c[a],"captured",b)}function lb(){return!kb&&m.canUseDOM&&(kb="textContent"in document.documentElement?"textContent":"innerText"),kb}function mb(){if(M._fallbackText)return M._fallbackText;var a,d,b=M._startText,c=b.length,e=nb(),f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var h=c-a;for(d=1;d<=h&&b[c-d]===e[f-d];d++);return M._fallbackText=e.slice(a,1<d?1-d:void 0),M._fallbackText}function nb(){return"value"in M._root?M._root.value:M._root[lb()]}function N(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)?C.thatReturnsTrue:C.thatReturnsFalse,this.isPropagationStopped=C.thatReturnsFalse,this}function rb(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 sb(a){a instanceof this||D("223"),a.destructor(),10>this.eventPool.length&&this.eventPool.push(a)}function qb(a){a.eventPool=[],a.getPooled=rb,a.release=sb}function Lb(a,b){switch(a){case"topKeyUp":return-1!==vb.indexOf(b.keyCode);case"topKeyDown":return 229!==b.keyCode;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function Mb(a){return a=a.detail,"object"==typeof a&&"data"in a?a.data:null}function Ob(a,b){switch(a){case"topCompositionEnd":return Mb(b);case"topKeyPress":return 32!==b.which?null:(Kb=!0,Ab);case"topTextInput":return a=b.data,a===Ab&&Kb?null:a;default:return null}}function Pb(a,b){if(Nb)return"topCompositionEnd"===a||!wb&&Lb(a,b)?(a=mb(),M._root=null,M._startText=null,M._fallbackText=null,Nb=!1,a):null;switch(a){case"topPaste":return null;case"topKeyPress":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"topCompositionEnd":return zb?null:b.data;default:return null}}function Ub(a){if(a=Da(a)){Rb&&"function"==typeof Rb.restoreControlledState||D("194");var b=Ca(a.stateNode);Rb.restoreControlledState(a.stateNode,a.type,b)}}function Wb(a){Sb?Tb?Tb.push(a):Tb=[a]:Sb=a}function Xb(){return null!==Sb||null!==Tb}function Yb(){if(Sb){var a=Sb,b=Tb;if(Tb=Sb=null,Ub(a),b)for(a=0;a<b.length;a++)Ub(b[a])}}function $b(a,b){return a(b)}function ac(a,b,c){return a(b,c)}function bc(){}function dc(a,b){if(cc)return a(b);cc=!0;try{return $b(a,b)}finally{cc=!1,Xb()&&(bc(),Yb())}}function fc(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return"input"===b?!!ec[a.type]:"textarea"===b}function gc(a){return a=a.target||window,a.correspondingUseElement&&(a=a.correspondingUseElement),3===a.nodeType?a.parentNode:a}function hc(a,b){return!(!m.canUseDOM||b&&!("addEventListener"in document))&&(a="on"+a,b=a in document,b||(b=document.createElement("div"),b.setAttribute(a,"return;"),b="function"==typeof b[a]),b)}function ic(a){var b=a.type;return(a=a.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===b||"radio"===b)}function jc(a){var b=ic(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=""+a[b];if(!a.hasOwnProperty(b)&&"function"==typeof c.get&&"function"==typeof c.set)return Object.defineProperty(a,b,{configurable:!0,get:function(){return c.get.call(this)},set:function(a){d=""+a,c.set.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 kc(a){a._valueTracker||(a._valueTracker=jc(a))}function lc(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue(),d="";return a&&(d=ic(a)?a.checked?"true":"false":a.value),(a=d)!==c&&(b.setValue(a),!0)}function yc(a){return null===a||void 0===a?null:(a=xc&&a[xc]||a["@@iterator"],"function"==typeof a?a:null)}function zc(a){if("function"==typeof(a=a.type))return a.displayName||a.name;if("string"==typeof a)return a;switch(a){case rc:return"ReactFragment";case qc:return"ReactPortal";case oc:return"ReactCall";case pc:return"ReactReturn"}return null}function Ac(a){var b="";do{a:switch(a.tag){case 0:case 1:case 2:case 5:var c=a._debugOwner,d=a._debugSource,e=zc(a),f=null;c&&(f=zc(c)),c=d,e="\n in "+(e||"Unknown")+(c?" (at "+c.fileName.replace(/^.*[\\\/]/,"")+":"+c.lineNumber+")":f?" (created by "+f+")":"");break a;default:e=""}b+=e,a=a.return}while(a);return b}function Ec(a){return!!Dc.hasOwnProperty(a)||!Cc.hasOwnProperty(a)&&(Bc.test(a)?Dc[a]=!0:(Cc[a]=!0,!1))}function Fc(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 Gc(a,b,c,d){if(null===b||void 0===b||Fc(a,b,c,d))return!0;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 U(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=V.hasOwnProperty(b)?V[b]:null;(null!==e?0===e.type:!d&&(2<b.length&&("o"===b[0]||"O"===b[0])&&("n"===b[1]||"N"===b[1])))||(Gc(b,c,e,d)&&(c=null),d||null===e?Ec(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,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Vc(a,b){var c=null==b.defaultValue?"":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Wc(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=Wc(b.value);null!=c&&("number"===b.type?(0===c&&""===a.value||a.value!=c)&&(a.value=""+c):a.value!==""+c&&(a.value=""+c)),b.hasOwnProperty("value")?Zc(a,b.type,c):b.hasOwnProperty("defaultValue")&&Zc(a,b.type,Wc(b.defaultValue)),null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}function $c(a,b){(b.hasOwnProperty("value")||b.hasOwnProperty("defaultValue"))&&(""===a.value&&(a.value=""+a._wrapperState.initialValue),a.defaultValue=""+a._wrapperState.initialValue),b=a.name,""!==b&&(a.name=""),a.defaultChecked=!a.defaultChecked,a.defaultChecked=!a.defaultChecked,""!==b&&(a.name=b)}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 Wc(a){switch(typeof a){case"boolean":case"number":case"object":case"string":case"undefined":return a;default:return""}}function bd(a,b,c){return a=N.getPooled(ad.change,a,b,c),a.type="change",Wb(c),hb(a),a}function ed(a){Oa(a,!1)}function fd(a){if(lc(Ua(a)))return a}function gd(a,b){if("topChange"===a)return b}function id(){cd&&(cd.detachEvent("onpropertychange",jd),dd=cd=null)}function jd(a){"value"===a.propertyName&&fd(dd)&&(a=bd(dd,a,gc(a)),dc(ed,a))}function kd(a,b,c){"topFocus"===a?(id(),cd=b,dd=c,cd.attachEvent("onpropertychange",jd)):"topBlur"===a&&id()}function ld(a){if("topSelectionChange"===a||"topKeyUp"===a||"topKeyDown"===a)return fd(dd)}function md(a,b){if("topClick"===a)return fd(b)}function nd(a,b){if("topInput"===a||"topChange"===a)return fd(b)}function rd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):!!(a=qd[a])&&!!b[a]}function sd(){return rd}function wd(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 xd(a){return!!(a=a._reactInternalFiber)&&2===wd(a)}function yd(a){2!==wd(a)&&D("188")}function zd(a){var b=a.alternate;if(!b)return b=wd(a),3===b&&D("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 h=e.child;h;){if(h===c)return yd(e),a;if(h===d)return yd(e),b;h=h.sibling}D("188")}if(c.return!==d.return)c=e,d=f;else{h=!1;for(var g=e.child;g;){if(g===c){h=!0,c=e,d=f;break}if(g===d){h=!0,d=e,c=f;break}g=g.sibling}if(!h){for(g=f.child;g;){if(g===c){h=!0,c=f,d=e;break}if(g===d){h=!0,d=f,c=e;break}g=g.sibling}h||D("189")}}c.alternate!==d&&D("190")}return 3!==c.tag&&D("188"),c.stateNode.current===c?a:b}function Ad(a){if(!(a=zd(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 Bd(a){if(!(a=zd(a)))return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child&&4!==b.tag)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 Fd(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 Pd(a,b){var c=a[0].toUpperCase()+a.slice(1),d="on"+c;c="top"+c,b={phasedRegistrationNames:{bubbled:d,captured:d+"Capture"},dependencies:[c],isInteractive:b},Nd[a]=b,Od[c]=b}function Td(a){var b=a.targetInst;do{if(!b){a.ancestors.push(b);break}var c;for(c=b;c.return;)c=c.return;if(!(c=3!==c.tag?null:c.stateNode.containerInfo))break;a.ancestors.push(b),b=Ta(c)}while(b);for(c=0;c<a.ancestors.length;c++)b=a.ancestors[c],Pa(a.topLevelType,b,a.nativeEvent,gc(a.nativeEvent))}function Vd(a){Ud=!!a}function W(a,b,c){if(!c)return null;a=(Rd(a)?Wd:Xd).bind(null,a),c.addEventListener(b,a,!1)}function Yd(a,b,c){if(!c)return null;a=(Rd(a)?Wd:Xd).bind(null,a),c.addEventListener(b,a,!0)}function Wd(a,b){ac(Xd,a,b)}function Xd(a,b){if(Ud){var c=gc(b);if(c=Ta(c),null!==c&&"number"==typeof c.tag&&2!==wd(c)&&(c=null),Sd.length){var d=Sd.pop();d.topLevelType=a,d.nativeEvent=b,d.targetInst=c,a=d}else a={topLevelType:a,nativeEvent:b,targetInst:c,ancestors:[]};try{dc(Td,a)}finally{a.topLevelType=null,a.nativeEvent=null,a.targetInst=null,a.ancestors.length=0,10>Sd.length&&Sd.push(a)}}}function $d(a,b){var c={};return c[a.toLowerCase()]=b.toLowerCase(),c["Webkit"+a]="webkit"+b,c["Moz"+a]="moz"+b,c["ms"+a]="MS"+b,c["O"+a]="o"+b.toLowerCase(),c}function de(a){if(be[a])return be[a];if(!ae[a])return a;var c,b=ae[a];for(c in b)if(b.hasOwnProperty(c)&&c in ce)return be[a]=b[c];return a}function je(a){return Object.prototype.hasOwnProperty.call(a,ie)||(a[ie]=he++,ge[a[ie]]={}),ge[a[ie]]}function ke(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function le(a,b){var c=ke(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=ke(c)}}function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&"text"===a.type||"textarea"===b||"true"===a.contentEditable)}function ue(a,b){if(se||null==pe||pe!==ea())return null;var c=pe;return"selectionStart"in c&&me(c)?c={start:c.selectionStart,end:c.selectionEnd}:window.getSelection?(c=window.getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}):c=void 0,re&&fa(re,c)?null:(re=c,a=N.getPooled(oe.select,qe,a,b),a.type="select",a.target=pe,hb(a),a)}function xe(a,b,c,d){this.tag=a,this.key=c,this.stateNode=this.type=null,this.sibling=this.child=this.return=null,this.index=0,this.ref=null,this.pendingProps=b,this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=d,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.expirationTime=0,this.alternate=null}function ye(a,b,c){var d=a.alternate;return null===d?(d=new xe(a.tag,b,a.key,a.mode),d.type=a.type,d.stateNode=a.stateNode,d.alternate=a,a.alternate=d):(d.pendingProps=b,d.effectTag=0,d.nextEffect=null,d.firstEffect=null,d.lastEffect=null),d.expirationTime=c,d.child=a.child,d.memoizedProps=a.memoizedProps,d.memoizedState=a.memoizedState,d.updateQueue=a.updateQueue,d.sibling=a.sibling,d.index=a.index,d.ref=a.ref,d}function ze(a,b,c){var d=a.type,e=a.key;a=a.props;var f=void 0;if("function"==typeof d)f=d.prototype&&d.prototype.isReactComponent?2:0;else if("string"==typeof d)f=5;else switch(d){case rc:return Ae(a.children,b,c,e);case vc:f=11,b|=3;break;case sc:f=11,b|=2;break;case oc:f=7;break;case pc:f=9;break;default:if("object"==typeof d&&null!==d)switch(d.$$typeof){case tc:f=13;break;case uc:f=12;break;case wc:f=14;break;default:if("number"==typeof d.tag)return b=d,b.pendingProps=a,b.expirationTime=c,b;D("130",null==d?d:typeof d,"")}else D("130",null==d?d:typeof d,"")}return b=new xe(f,a,e,b),b.type=d,b.expirationTime=c,b}function Ae(a,b,c,d){return a=new xe(10,a,d,b),a.expirationTime=c,a}function Be(a,b,c){return a=new xe(6,a,null,b),a.expirationTime=c,a}function Ce(a,b,c){return b=new xe(4,null!==a.children?a.children:[],a.key,b),b.expirationTime=c,b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation},b}function Fe(a){return function(b){try{return a(b)}catch(c){}}}function Ge(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);De=Fe(function(a){return b.onCommitFiberRoot(c,a)}),Ee=Fe(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}function He(a){"function"==typeof De&&De(a)}function Ie(a){"function"==typeof Ee&&Ee(a)}function Je(a){return{baseState:a,expirationTime:0,first:null,last:null,callbackList:null,hasForceUpdate:!1,isInitialized:!1,capturedValues:null}}function Ke(a,b){null===a.last?a.first=a.last=b:(a.last.next=b,a.last=b),(0===a.expirationTime||a.expirationTime>b.expirationTime)&&(a.expirationTime=b.expirationTime)}function Ne(a){Le=Me=null;var b=a.alternate,c=a.updateQueue;null===c&&(c=a.updateQueue=Je(null)),null!==b?null===(a=b.updateQueue)&&(a=b.updateQueue=Je(null)):a=null,Le=c,Me=a!==c?a:null}function Oe(a,b){Ne(a),a=Le;var c=Me;null===c?Ke(a,b):null===a.last||null===c.last?(Ke(a,b),Ke(c,b)):(Ke(a,b),c.last=b)}function Pe(a,b,c,d){return a=a.partialState,"function"==typeof a?a.call(b,c,d):a}function Qe(a,b,c,d,e,f){null!==a&&a.updateQueue===c&&(c=b.updateQueue={baseState:c.baseState,expirationTime:c.expirationTime,first:c.first,last:c.last,isInitialized:c.isInitialized,capturedValues:c.capturedValues,callbackList:null,hasForceUpdate:!1}),c.expirationTime=0,c.isInitialized?a=c.baseState:(a=c.baseState=b.memoizedState,c.isInitialized=!0);for(var h=!0,g=c.first,k=!1;null!==g;){var v=g.expirationTime;if(v>f){var l=c.expirationTime;(0===l||l>v)&&(c.expirationTime=v),k||(k=!0,c.baseState=a)}else k||(c.first=g.next,null===c.first&&(c.last=null)),g.isReplace?(a=Pe(g,d,a,e),h=!0):(v=Pe(g,d,a,e))&&(a=h?A({},a,v):A(a,v),h=!1),g.isForced&&(c.hasForceUpdate=!0),null!==g.callback&&(v=c.callbackList,null===v&&(v=c.callbackList=[]),v.push(g)),null!==g.capturedValue&&(v=c.capturedValues,null===v?c.capturedValues=[g.capturedValue]:v.push(g.capturedValue));g=g.next}return null!==c.callbackList?b.effectTag|=32:null!==c.first||c.hasForceUpdate||null!==c.capturedValues||(b.updateQueue=null),k||(c.baseState=a),a}function Re(a,b){var c=a.callbackList;if(null!==c)for(a.callbackList=null,a=0;a<c.length;a++){var d=c[a],e=d.callback;d.callback=null,"function"!=typeof e&&D("191",e),e.call(b)}}function Se(a,b,c,d,e){function f(a,b,c,d,e,f){if(null===b||null!==a.updateQueue&&a.updateQueue.hasForceUpdate)return!0;var n=a.stateNode;return a=a.type,"function"==typeof n.shouldComponentUpdate?n.shouldComponentUpdate(c,e,f):!a.prototype||!a.prototype.isPureReactComponent||(!fa(b,c)||!fa(d,e))}function h(a,b){b.updater=r,a.stateNode=b,b._reactInternalFiber=a}function g(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&&r.enqueueReplaceState(b,b.state,null)}function k(a,b,c,d){if(a=a.type,"function"==typeof a.getDerivedStateFromProps)return a.getDerivedStateFromProps.call(null,c,d)}var v=a.cacheContext,l=a.getMaskedContext,p=a.getUnmaskedContext,y=a.isContextConsumer,B=a.hasContextChanged,r={isMounted:xd,enqueueSetState:function(a,d,e){a=a._reactInternalFiber,e=void 0===e?null:e;var f=c(a);Oe(a,{expirationTime:f,partialState:d,callback:e,isReplace:!1,isForced:!1,capturedValue:null,next:null}),b(a,f)},enqueueReplaceState:function(a,d,e){a=a._reactInternalFiber,e=void 0===e?null:e;var f=c(a);Oe(a,{expirationTime:f,partialState:d,callback:e,isReplace:!0,isForced:!1,capturedValue:null,next:null}),b(a,f)},enqueueForceUpdate:function(a,d){a=a._reactInternalFiber,d=void 0===d?null:d;var e=c(a);Oe(a,{expirationTime:e,partialState:null,callback:d,isReplace:!1,isForced:!0,capturedValue:null,next:null}),b(a,e)}};return{adoptClassInstance:h,callGetDerivedStateFromProps:k,constructClassInstance:function(a,b){var c=a.type,d=p(a),e=y(a),f=e?l(a,d):ja;c=new c(b,f);var n=null!==c.state&&void 0!==c.state?c.state:null;return h(a,c),a.memoizedState=n,b=k(a,c,b,n),null!==b&&void 0!==b&&(a.memoizedState=A({},a.memoizedState,b)),e&&v(a,d,f),c},mountClassInstance:function(a,b){var c=a.type,d=a.alternate,e=a.stateNode,f=a.pendingProps,n=p(a);e.props=f,e.state=a.memoizedState,e.refs=ja,e.context=l(a,n),"function"==typeof c.getDerivedStateFromProps||"function"==typeof e.getSnapshotBeforeUpdate||"function"!=typeof e.UNSAFE_componentWillMount&&"function"!=typeof e.componentWillMount||(c=e.state,"function"==typeof e.componentWillMount&&e.componentWillMount(),"function"==typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),c!==e.state&&r.enqueueReplaceState(e,e.state,null),null!==(c=a.updateQueue)&&(e.state=Qe(d,a,c,e,f,b))),"function"==typeof e.componentDidMount&&(a.effectTag|=4)},resumeMountClassInstance:function(a,b){var c=a.type,n=a.stateNode;n.props=a.memoizedProps,n.state=a.memoizedState;var h=a.memoizedProps,r=a.pendingProps,y=n.context,q=p(a);q=l(a,q),(c="function"==typeof c.getDerivedStateFromProps||"function"==typeof n.getSnapshotBeforeUpdate)||"function"!=typeof n.UNSAFE_componentWillReceiveProps&&"function"!=typeof n.componentWillReceiveProps||(h!==r||y!==q)&&g(a,n,r,q),y=a.memoizedState,b=null!==a.updateQueue?Qe(null,a,a.updateQueue,n,r,b):y;var t=void 0;return h!==r&&(t=k(a,n,r,b)),null!==t&&void 0!==t&&(b=null===b||void 0===b?t:A({},b,t)),h!==r||y!==b||B()||null!==a.updateQueue&&a.updateQueue.hasForceUpdate?((h=f(a,h,r,y,b,q))?(c||"function"!=typeof n.UNSAFE_componentWillMount&&"function"!=typeof n.componentWillMount||("function"==typeof n.componentWillMount&&n.componentWillMount(),"function"==typeof n.UNSAFE_componentWillMount&&n.UNSAFE_componentWillMount()),"function"==typeof n.componentDidMount&&(a.effectTag|=4)):("function"==typeof n.componentDidMount&&(a.effectTag|=4),d(a,r),e(a,b)),n.props=r,n.state=b,n.context=q,h):("function"==typeof n.componentDidMount&&(a.effectTag|=4),!1)},updateClassInstance:function(a,b,c){var n=b.type,x=b.stateNode;x.props=b.memoizedProps,x.state=b.memoizedState;var h=b.memoizedProps,r=b.pendingProps,q=x.context,t=p(b);t=l(b,t),(n="function"==typeof n.getDerivedStateFromProps||"function"==typeof x.getSnapshotBeforeUpdate)||"function"!=typeof x.UNSAFE_componentWillReceiveProps&&"function"!=typeof x.componentWillReceiveProps||(h!==r||q!==t)&&g(b,x,r,t),q=b.memoizedState,c=null!==b.updateQueue?Qe(a,b,b.updateQueue,x,r,c):q;var u=void 0;return h!==r&&(u=k(b,x,r,c)),null!==u&&void 0!==u&&(c=null===c||void 0===c?u:A({},c,u)),h!==r||q!==c||B()||null!==b.updateQueue&&b.updateQueue.hasForceUpdate?((u=f(b,h,r,q,c,t))?(n||"function"!=typeof x.UNSAFE_componentWillUpdate&&"function"!=typeof x.componentWillUpdate||("function"==typeof x.componentWillUpdate&&x.componentWillUpdate(r,c,t),"function"==typeof x.UNSAFE_componentWillUpdate&&x.UNSAFE_componentWillUpdate(r,c,t)),"function"==typeof x.componentDidUpdate&&(b.effectTag|=4),"function"==typeof x.getSnapshotBeforeUpdate&&(b.effectTag|=2048)):("function"!=typeof x.componentDidUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.effectTag|=4),"function"!=typeof x.getSnapshotBeforeUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.effectTag|=2048),d(b,r),e(b,c)),x.props=r,x.state=c,x.context=t,u):("function"!=typeof x.componentDidUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.effectTag|=4),"function"!=typeof x.getSnapshotBeforeUpdate||h===a.memoizedProps&&q===a.memoizedState||(b.effectTag|=2048),!1)}}}function Ue(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&&(2!==c.tag&&D("110"),d=c.stateNode),d||D("147",a);var e=""+a;return null!==b&&null!==b.ref&&b.ref._stringRef===e?b.ref:(b=function(a){var b=d.refs===ja?d.refs={}:d.refs;null===a?delete b[e]:b[e]=a},b._stringRef=e,b)}"string"!=typeof a&&D("148"),c._owner||D("254",a)}return a}function Ve(a,b){"textarea"!==a.type&&D("31","[object Object]"===Object.prototype.toString.call(b)?"object with keys {"+Object.keys(b).join(", ")+"}":b,"")}function We(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=ye(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 h(b){return a&&null===b.alternate&&(b.effectTag=2),b}function g(a,b,c,d){return null===b||6!==b.tag?(b=Be(c,a.mode,d),b.return=a,b):(b=e(b,c,d),b.return=a,b)}function k(a,b,c,d){return null!==b&&b.type===c.type?(d=e(b,c.props,d),d.ref=Ue(a,b,c),d.return=a,d):(d=ze(c,a.mode,d),d.ref=Ue(a,b,c),d.return=a,d)}function v(a,b,c,d){return null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation?(b=Ce(c,a.mode,d),b.return=a,b):(b=e(b,c.children||[],d),b.return=a,b)}function l(a,b,c,d,f){return null===b||10!==b.tag?(b=Ae(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=Be(""+b,a.mode,c),b.return=a,b;if("object"==typeof b&&null!==b){switch(b.$$typeof){case nc:return c=ze(b,a.mode,c),c.ref=Ue(a,null,b),c.return=a,c;case qc:return b=Ce(b,a.mode,c),b.return=a,b}if(Te(b)||yc(b))return b=Ae(b,a.mode,c,null),b.return=a,b;Ve(a,b)}return null}function y(a,b,c,d){var e=null!==b?b.key:null;if("string"==typeof c||"number"==typeof c)return null!==e?null:g(a,b,""+c,d);if("object"==typeof c&&null!==c){switch(c.$$typeof){case nc:return c.key===e?c.type===rc?l(a,b,c.props.children,d,e):k(a,b,c,d):null;case qc:return c.key===e?v(a,b,c,d):null}if(Te(c)||yc(c))return null!==e?null:l(a,b,c,d,null);Ve(a,c)}return null}function B(a,b,c,d,e){if("string"==typeof d||"number"==typeof d)return a=a.get(c)||null,g(b,a,""+d,e);if("object"==typeof d&&null!==d){switch(d.$$typeof){case nc:return a=a.get(null===d.key?c:d.key)||null,d.type===rc?l(b,a,d.props.children,e,d.key):k(b,a,d,e);case qc:return a=a.get(null===d.key?c:d.key)||null,v(b,a,d,e)}if(Te(d)||yc(d))return a=a.get(c)||null,l(b,a,d,e,null);Ve(b,d)}return null}function r(e,g,l,h){for(var r=null,k=null,q=g,t=g=0,u=null;null!==q&&t<l.length;t++){q.index>t?(u=q,q=null):u=q.sibling;var n=y(e,q,l[t],h);if(null===n){null===q&&(q=u);break}a&&q&&null===n.alternate&&b(e,q),g=f(n,g,t),null===k?r=n:k.sibling=n,k=n,q=u}if(t===l.length)return c(e,q),r;if(null===q){for(;t<l.length;t++)(q=p(e,l[t],h))&&(g=f(q,g,t),null===k?r=q:k.sibling=q,k=q);return r}for(q=d(e,q);t<l.length;t++)(u=B(q,e,t,l[t],h))&&(a&&null!==u.alternate&&q.delete(null===u.key?t:u.key),g=f(u,g,t),null===k?r=u:k.sibling=u,k=u);return a&&q.forEach(function(a){return b(e,a)}),r}function Q(e,g,l,h){var r=yc(l);"function"!=typeof r&&D("150"),null==(l=r.call(l))&&D("151");for(var k=r=null,q=g,t=g=0,u=null,n=l.next();null!==q&&!n.done;t++,n=l.next()){q.index>t?(u=q,q=null):u=q.sibling;var H=y(e,q,n.value,h);if(null===H){q||(q=u);break}a&&q&&null===H.alternate&&b(e,q),g=f(H,g,t),null===k?r=H:k.sibling=H,k=H,q=u}if(n.done)return c(e,q),r;if(null===q){for(;!n.done;t++,n=l.next())null!==(n=p(e,n.value,h))&&(g=f(n,g,t),null===k?r=n:k.sibling=n,k=n);return r}for(q=d(e,q);!n.done;t++,n=l.next())null!==(n=B(q,e,t,n.value,h))&&(a&&null!==n.alternate&&q.delete(null===n.key?t:n.key),g=f(n,g,t),null===k?r=n:k.sibling=n,k=n);return a&&q.forEach(function(a){return b(e,a)}),r}return function(a,d,f,g){"object"==typeof f&&null!==f&&f.type===rc&&null===f.key&&(f=f.props.children);var l="object"==typeof f&&null!==f;if(l)switch(f.$$typeof){case nc:a:{var k=f.key;for(l=d;null!==l;){if(l.key===k){if(10===l.tag?f.type===rc:l.type===f.type){c(a,l.sibling),d=e(l,f.type===rc?f.props.children:f.props,g),d.ref=Ue(a,l,f),d.return=a,a=d;break a}c(a,l);break}b(a,l),l=l.sibling}f.type===rc?(d=Ae(f.props.children,a.mode,g,f.key),d.return=a,a=d):(g=ze(f,a.mode,g),g.ref=Ue(a,d,f),g.return=a,a=g)}return h(a);case qc:a:{for(l=f.key;null!==d;){if(d.key===l){if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling),d=e(d,f.children||[],g),d.return=a,a=d;break a}c(a,d);break}b(a,d),d=d.sibling}d=Ce(f,a.mode,g),d.return=a,a=d}return h(a)}if("string"==typeof f||"number"==typeof f)return f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,g)):(c(a,d),d=Be(f,a.mode,g)),d.return=a,a=d,h(a);if(Te(f))return r(a,d,f,g);if(yc(f))return Q(a,d,f,g);if(l&&Ve(a,f),void 0===f)switch(a.tag){case 2:case 1:g=a.type,D("152",g.displayName||g.name||"Component")}return c(a,d)}}function Ze(a,b,c,d,e,f,h){function g(a,b,c){k(a,b,c,b.expirationTime)}function k(a,b,c,d){b.child=null===a?Ye(b,null,c,d):Xe(b,a.child,c,d)}function v(a,b){var c=b.ref;(null===a&&null!==c||null!==a&&a.ref!==c)&&(b.effectTag|=128)}function l(a,b,c,d,e,f){if(v(a,b),!c&&!e)return d&&z(b,!1),r(a,b);c=b.stateNode,mc.current=b;var g=e?null:c.render();return b.effectTag|=1,e&&(k(a,b,null,f),b.child=null),k(a,b,g,f),b.memoizedState=c.state,b.memoizedProps=c.props,d&&z(b,!0),b.child}function p(a){var b=a.stateNode;b.pendingContext?u(a,b.pendingContext,b.pendingContext!==b.context):b.context&&u(a,b.context,!1),Y(a,b.containerInfo)}function y(a,b,c,d){var e=a.child;for(null!==e&&(e.return=a);null!==e;){switch(e.tag){case 12:var f=0|e.stateNode;if(e.type===b&&0!=(f&c)){for(f=e;null!==f;){var g=f.alternate;if(0===f.expirationTime||f.expirationTime>d)f.expirationTime=d,null!==g&&(0===g.expirationTime||g.expirationTime>d)&&(g.expirationTime=d);else{if(null===g||!(0===g.expirationTime||g.expirationTime>d))break;g.expirationTime=d}f=f.return}f=null}else f=e.child;break;case 13:f=e.type===a.type?null:e.child;break;default:f=e.child}if(null!==f)f.return=e;else for(f=e;null!==f;){if(f===a){f=null;break}if(null!==(e=f.sibling)){f=e;break}f=f.return}e=f}}function B(a,b,c){var d=b.type.context,e=b.pendingProps,f=b.memoizedProps;if(!q()&&f===e)return b.stateNode=0,G(b),r(a,b);var l=e.value;if(b.memoizedProps=e,null===f)l=1073741823;else if(f.value===e.value){if(f.children===e.children)return b.stateNode=0,G(b),r(a,b);l=0}else{var t=f.value;if(t===l&&(0!==t||1/t==1/l)||t!==t&&l!==l){if(f.children===e.children)return b.stateNode=0,G(b),r(a,b);l=0}else if(l="function"==typeof d._calculateChangedBits?d._calculateChangedBits(t,l):1073741823,0===(l|=0)){if(f.children===e.children)return b.stateNode=0,G(b),r(a,b)}else y(b,d,l,c)}return b.stateNode=l,G(b),g(a,b,e.children),b.child}function r(a,b){if(null!==a&&b.child!==a.child&&D("153"),null!==b.child){a=b.child;var c=ye(a,a.pendingProps,a.expirationTime);for(b.child=c,c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=ye(a,a.pendingProps,a.expirationTime),c.return=b;c.sibling=null}return b.child}var Q=a.shouldSetTextContent,n=a.shouldDeprioritizeSubtree,x=b.pushHostContext,Y=b.pushHostContainer,G=d.pushProvider,R=c.getMaskedContext,S=c.getUnmaskedContext,q=c.hasContextChanged,t=c.pushContextProvider,u=c.pushTopLevelContextObject,z=c.invalidateContextProvider,H=e.enterHydrationState,Wa=e.resetHydrationState,Bb=e.tryToClaimNextHydratableInstance;a=Se(c,f,h,function(a,b){a.memoizedProps=b},function(a,b){a.memoizedState=b});var Jc=a.adoptClassInstance,Kc=a.callGetDerivedStateFromProps,Lc=a.constructClassInstance,Cb=a.mountClassInstance,Mc=a.resumeMountClassInstance,Db=a.updateClassInstance;return{beginWork:function(a,b,c){if(0===b.expirationTime||b.expirationTime>c){switch(b.tag){case 3:p(b);break;case 2:t(b);break;case 4:Y(b,b.stateNode.containerInfo);break;case 13:G(b)}return null}switch(b.tag){case 0:null!==a&&D("155");var d=b.type,e=b.pendingProps,f=S(b);return f=R(b,f),d=d(e,f),b.effectTag|=1,"object"==typeof d&&null!==d&&"function"==typeof d.render&&void 0===d.$$typeof?(f=b.type,b.tag=2,b.memoizedState=null!==d.state&&void 0!==d.state?d.state:null,"function"==typeof f.getDerivedStateFromProps&&null!==(e=Kc(b,d,e,b.memoizedState))&&void 0!==e&&(b.memoizedState=A({},b.memoizedState,e)),e=t(b),Jc(b,d),Cb(b,c),a=l(a,b,!0,e,!1,c)):(b.tag=1,g(a,b,d),b.memoizedProps=e,a=b.child),a;case 1:return e=b.type,c=b.pendingProps,q()||b.memoizedProps!==c?(d=S(b),d=R(b,d),e=e(c,d),b.effectTag|=1,g(a,b,e),b.memoizedProps=c,a=b.child):a=r(a,b),a;case 2:e=t(b),null===a?null===b.stateNode?(Lc(b,b.pendingProps),Cb(b,c),d=!0):d=Mc(b,c):d=Db(a,b,c),f=!1;var h=b.updateQueue;return null!==h&&null!==h.capturedValues&&(f=d=!0),l(a,b,d,e,f,c);case 3:a:if(p(b),null!==(d=b.updateQueue)){if(f=b.memoizedState,e=Qe(a,b,d,null,null,c),b.memoizedState=e,null!==(d=b.updateQueue)&&null!==d.capturedValues)d=null;else{if(f===e){Wa(),a=r(a,b);break a}d=e.element}f=b.stateNode,(null===a||null===a.child)&&f.hydrate&&H(b)?(b.effectTag|=2,b.child=Ye(b,null,d,c)):(Wa(),g(a,b,d)),b.memoizedState=e,a=b.child}else Wa(),a=r(a,b);return a;case 5:return x(b),null===a&&Bb(b),e=b.type,h=b.memoizedProps,d=b.pendingProps,f=null!==a?a.memoizedProps:null,q()||h!==d||((h=1&b.mode&&n(e,d))&&(b.expirationTime=1073741823),h&&1073741823===c)?(h=d.children,Q(e,d)?h=null:f&&Q(e,f)&&(b.effectTag|=16),v(a,b),1073741823!==c&&1&b.mode&&n(e,d)?(b.expirationTime=1073741823,b.memoizedProps=d,a=null):(g(a,b,h),b.memoizedProps=d,a=b.child)):a=r(a,b),a;case 6:return null===a&&Bb(b),b.memoizedProps=b.pendingProps,null;case 8:b.tag=7;case 7:return e=b.pendingProps,q()||b.memoizedProps!==e||(e=b.memoizedProps),d=e.children,b.stateNode=null===a?Ye(b,b.stateNode,d,c):Xe(b,a.stateNode,d,c),b.memoizedProps=e,b.stateNode;case 9:return null;case 4:return Y(b,b.stateNode.containerInfo),e=b.pendingProps,q()||b.memoizedProps!==e?(null===a?b.child=Xe(b,null,e,c):g(a,b,e),b.memoizedProps=e,a=b.child):a=r(a,b),a;case 14:return c=b.type.render,c=c(b.pendingProps,b.ref),g(a,b,c),b.memoizedProps=c,b.child;case 10:return c=b.pendingProps,q()||b.memoizedProps!==c?(g(a,b,c),b.memoizedProps=c,a=b.child):a=r(a,b),a;case 11:return c=b.pendingProps.children,q()||null!==c&&b.memoizedProps!==c?(g(a,b,c),b.memoizedProps=c,a=b.child):a=r(a,b),a;case 13:return B(a,b,c);case 12:d=b.type,f=b.pendingProps;var u=b.memoizedProps;return e=d._currentValue,h=d._changedBits,q()||0!==h||u!==f?(b.memoizedProps=f,u=f.unstable_observedBits,void 0!==u&&null!==u||(u=1073741823),b.stateNode=u,0!=(h&u)&&y(b,d,h,c),c=f.children,c=c(e),g(a,b,c),a=b.child):a=r(a,b),a;default:D("156")}}}}function $e(a,b,c,d,e){function f(a){a.effectTag|=4}var h=a.createInstance,g=a.createTextInstance,k=a.appendInitialChild,v=a.finalizeInitialChildren,l=a.prepareUpdate,p=a.persistence,y=b.getRootHostContainer,B=b.popHostContext,r=b.getHostContext,Q=b.popHostContainer,n=c.popContextProvider,x=c.popTopLevelContextObject,Y=d.popProvider,G=e.prepareToHydrateHostInstance,R=e.prepareToHydrateHostTextInstance,S=e.popHydrationState,q=void 0,t=void 0,u=void 0;return a.mutation?(q=function(){},t=function(a,b,c){(b.updateQueue=c)&&f(b)},u=function(a,b,c,d){c!==d&&f(b)}):D(p?"235":"236"),{completeWork:function(a,b,c){var d=b.pendingProps;switch(b.tag){case 1:return null;case 2:return n(b),a=b.stateNode,d=b.updateQueue,null!==d&&null!==d.capturedValues&&(b.effectTag&=-65,"function"==typeof a.componentDidCatch?b.effectTag|=256:d.capturedValues=null),null;case 3:return Q(b),x(b),d=b.stateNode,d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null),null!==a&&null!==a.child||(S(b),b.effectTag&=-3),q(b),a=b.updateQueue,null!==a&&null!==a.capturedValues&&(b.effectTag|=256),null;case 5:B(b),c=y();var e=b.type;if(null!==a&&null!=b.stateNode){var p=a.memoizedProps,H=b.stateNode,z=r();H=l(H,e,p,d,c,z),t(a,b,H,e,p,d,c,z),a.ref!==b.ref&&(b.effectTag|=128)}else{if(!d)return null===b.stateNode&&D("166"),null;if(a=r(),S(b))G(b,c,a)&&f(b);else{p=h(e,d,c,a,b);a:for(z=b.child;null!==z;){if(5===z.tag||6===z.tag)k(p,z.stateNode);else if(4!==z.tag&&null!==z.child){z.child.return=z,z=z.child;continue}if(z===b)break;for(;null===z.sibling;){if(null===z.return||z.return===b)break a;z=z.return}z.sibling.return=z.return,z=z.sibling}v(p,e,d,c,a)&&f(b),b.stateNode=p}null!==b.ref&&(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)u(a,b,a.memoizedProps,d);else{if("string"!=typeof d)return null===b.stateNode&&D("166"),null;a=y(),c=r(),S(b)?R(b)&&f(b):b.stateNode=g(d,a,c,b)}return null;case 7:(d=b.memoizedProps)||D("165"),b.tag=8,e=[];a:for((p=b.stateNode)&&(p.return=b);null!==p;){if(5===p.tag||6===p.tag||4===p.tag)D("247");else if(9===p.tag)e.push(p.pendingProps.value);else if(null!==p.child){p.child.return=p,p=p.child;continue}for(;null===p.sibling;){if(null===p.return||p.return===b)break a;p=p.return}p.sibling.return=p.return,p=p.sibling}return p=d.handler,d=p(d.props,e),b.child=Xe(b,null!==a?a.child:null,d,c),b.child;case 8:return b.tag=7,null;case 9:case 14:case 10:case 11:return null;case 4:return Q(b),q(b),null;case 13:return Y(b),null;case 12:return null;case 0:D("167");default:D("156")}}}}function af(a,b,c,d,e){var f=a.popHostContainer,h=a.popHostContext,g=b.popContextProvider,k=b.popTopLevelContextObject,v=c.popProvider;return{throwException:function(a,b,c){b.effectTag|=512,b.firstEffect=b.lastEffect=null,b={value:c,source:b,stack:Ac(b)};do{switch(a.tag){case 3:return Ne(a),a.updateQueue.capturedValues=[b],void(a.effectTag|=1024);case 2:if(c=a.stateNode,0==(64&a.effectTag)&&null!==c&&"function"==typeof c.componentDidCatch&&!e(c)){Ne(a),c=a.updateQueue;var d=c.capturedValues;return null===d?c.capturedValues=[b]:d.push(b),void(a.effectTag|=1024)}}a=a.return}while(null!==a)},unwindWork:function(a){switch(a.tag){case 2:g(a);var b=a.effectTag;return 1024&b?(a.effectTag=-1025&b|64,a):null;case 3:return f(a),k(a),b=a.effectTag,1024&b?(a.effectTag=-1025&b|64,a):null;case 5:return h(a),null;case 4:return f(a),null;case 13:return v(a),null;default:return null}},unwindInterruptedWork:function(a){switch(a.tag){case 2:g(a);break;case 3:f(a),k(a);break;case 5:h(a);break;case 4:f(a);break;case 13:v(a)}}}}function bf(a,b){var c=b.source;null===b.stack&&Ac(c),null!==c&&zc(c),b=b.value,null!==a&&2===a.tag&&zc(a);try{b&&b.suppressReactErrorLogging||console.error(b)}catch(d){d&&d.suppressReactErrorLogging||console.error(d)}}function cf(a,b,c,d,e){function f(a){var c=a.ref;if(null!==c)if("function"==typeof c)try{c(null)}catch(u){b(a,u)}else c.current=null}function h(a){switch("function"==typeof Ie&&Ie(a),a.tag){case 2:f(a);var c=a.stateNode;if("function"==typeof c.componentWillUnmount)try{c.props=a.memoizedProps,c.state=a.memoizedState,c.componentWillUnmount()}catch(u){b(a,u)}break;case 5:f(a);break;case 7:g(a.stateNode);break;case 4:p&&v(a)}}function g(a){for(var b=a;;)if(h(b),null===b.child||p&&4===b.tag){if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return;b=b.return}b.sibling.return=b.return,b=b.sibling}else b.child.return=b,b=b.child}function k(a){return 5===a.tag||3===a.tag||4===a.tag}function v(a){for(var b=a,c=!1,d=void 0,e=void 0;;){if(!c){c=b.return;a:for(;;){switch(null===c&&D("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)g(b),e?S(d,b.stateNode):R(d,b.stateNode);else if(4===b.tag?d=b.stateNode.containerInfo:h(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}}var l=a.getPublicInstance,p=a.mutation;a=a.persistence,p||D(a?"235":"236");var y=p.commitMount,B=p.commitUpdate,r=p.resetTextContent,Q=p.commitTextUpdate,n=p.appendChild,x=p.appendChildToContainer,Y=p.insertBefore,G=p.insertInContainerBefore,R=p.removeChild,S=p.removeChildFromContainer;return{commitBeforeMutationLifeCycles:function(a,b){switch(b.tag){case 2:if(2048&b.effectTag&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode,a.props=b.memoizedProps,a.state=b.memoizedState,b=a.getSnapshotBeforeUpdate(c,d),a.__reactInternalSnapshotBeforeUpdate=b}break;case 3:case 5:case 6:case 4:break;default:D("163")}},commitResetTextContent:function(a){r(a.stateNode)},commitPlacement:function(a){a:{for(var b=a.return;null!==b;){if(k(b)){var c=b;break a}b=b.return}D("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:D("161")}16&c.effectTag&&(r(b),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||k(c.return)){c=null;break a}c=c.return}for(c.sibling.return=c.return,c=c.sibling;5!==c.tag&&6!==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)c?d?G(b,e.stateNode,c):Y(b,e.stateNode,c):d?x(b,e.stateNode):n(b,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}},commitDeletion:function(a){v(a),a.return=null,a.child=null,a.alternate&&(a.alternate.child=null,a.alternate.return=null)},commitWork:function(a,b){switch(b.tag){case 2: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&&B(c,f,e,a,d,b)}break;case 6:null===b.stateNode&&D("162"),c=b.memoizedProps,Q(b.stateNode,null!==a?a.memoizedProps:c,c);break;case 3:break;default:D("163")}},commitLifeCycles:function(a,b,c){switch(c.tag){case 2:if(a=c.stateNode,4&c.effectTag)if(null===b)a.props=c.memoizedProps,a.state=c.memoizedState,a.componentDidMount();else{var d=b.memoizedProps;b=b.memoizedState,a.props=c.memoizedProps,a.state=c.memoizedState,a.componentDidUpdate(d,b,a.__reactInternalSnapshotBeforeUpdate)}c=c.updateQueue,null!==c&&Re(c,a);break;case 3:if(null!==(b=c.updateQueue)){if(a=null,null!==c.child)switch(c.child.tag){case 5:a=l(c.child.stateNode);break;case 2:a=c.child.stateNode}Re(b,a)}break;case 5:a=c.stateNode,null===b&&4&c.effectTag&&y(a,c.type,c.memoizedProps,c);break;case 6:case 4:break;default:D("163")}},commitErrorLogging:function(a,b){switch(a.tag){case 2:var c=a.type;b=a.stateNode;var d=a.updateQueue;(null===d||null===d.capturedValues)&&D("264");var f=d.capturedValues;for(d.capturedValues=null,"function"!=typeof c.getDerivedStateFromCatch&&e(b),b.props=a.memoizedProps,b.state=a.memoizedState,c=0;c<f.length;c++){d=f[c];var g=d.value,h=d.stack;bf(a,d),b.componentDidCatch(g,{componentStack:null!==h?h:""})}break;case 3:for(c=a.updateQueue,(null===c||null===c.capturedValues)&&D("264"),f=c.capturedValues,c.capturedValues=null,c=0;c<f.length;c++)d=f[c],bf(a,d),b(d.value);break;default:D("265")}},commitAttachRef:function(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=l(c);break;default:a=c}"function"==typeof b?b(a):b.current=a}},commitDetachRef:function(a){null!==(a=a.ref)&&("function"==typeof a?a(null):a.current=null)}}}function ef(a,b){function c(a){return a===df&&D("174"),a}var d=a.getChildHostContext,e=a.getRootHostContext;a=b.createCursor;var f=b.push,h=b.pop,g=a(df),k=a(df),v=a(df);return{getHostContext:function(){return c(g.current)},getRootHostContainer:function(){return c(v.current)},popHostContainer:function(a){h(g,a),h(k,a),h(v,a)},popHostContext:function(a){k.current===a&&(h(g,a),h(k,a))},pushHostContainer:function(a,b){f(v,b,a),b=e(b),f(k,a,a),f(g,b,a)},pushHostContext:function(a){var b=c(v.current),e=c(g.current);b=d(e,a.type,b),e!==b&&(f(k,a,a),f(g,b,a))}}}function ff(a){function b(a,b){var c=new xe(5,null,null,0);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 c(a,b){switch(a.tag){case 5:return null!==(b=f(b,a.type,a.pendingProps))&&(a.stateNode=b,!0);case 6:return null!==(b=h(b,a.pendingProps))&&(a.stateNode=b,!0);default:return!1}}function d(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag;)a=a.return;p=a}var e=a.shouldSetTextContent;if(!(a=a.hydration))return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){D("175")},prepareToHydrateHostTextInstance:function(){D("176")},popHydrationState:function(){return!1}};var f=a.canHydrateInstance,h=a.canHydrateTextInstance,g=a.getNextHydratableSibling,k=a.getFirstHydratableChild,v=a.hydrateInstance,l=a.hydrateTextInstance,p=null,y=null,B=!1;return{enterHydrationState:function(a){return y=k(a.stateNode.containerInfo),p=a,B=!0},resetHydrationState:function(){y=p=null,B=!1},tryToClaimNextHydratableInstance:function(a){if(B){var d=y;if(d){if(!c(a,d)){if(!(d=g(d))||!c(a,d))return a.effectTag|=2,B=!1,void(p=a);b(p,y)}p=a,y=k(d)}else a.effectTag|=2,B=!1,p=a}},prepareToHydrateHostInstance:function(a,b,c){return b=v(a.stateNode,a.type,a.memoizedProps,b,c,a),a.updateQueue=b,null!==b},prepareToHydrateHostTextInstance:function(a){return l(a.stateNode,a.memoizedProps,a)},popHydrationState:function(a){if(a!==p)return!1;if(!B)return d(a),B=!0,!1;var c=a.type;if(5!==a.tag||"head"!==c&&"body"!==c&&!e(c,a.memoizedProps))for(c=y;c;)b(a,c),c=g(c);return d(a),y=p?g(a.stateNode):null,!0}}}function gf(a){function b(a,b,c){a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=c}function c(a){return 2===a.tag&&null!=a.type.childContextTypes}function d(a,b){var c=a.stateNode,d=a.type.childContextTypes;if("function"!=typeof c.getChildContext)return b;c=c.getChildContext();for(var e in c)e in d||D("108",zc(a)||"Unknown",e);return A({},b,c)}var e=a.createCursor,f=a.push,h=a.pop,g=e(ja),k=e(!1),v=ja;return{getUnmaskedContext:function(a){return c(a)?v:g.current},cacheContext:b,getMaskedContext:function(a,c){var d=a.type.contextTypes;if(!d)return ja;var e=a.stateNode;if(e&&e.__reactInternalMemoizedUnmaskedChildContext===c)return e.__reactInternalMemoizedMaskedChildContext;var g,f={};for(g in d)f[g]=c[g];return e&&b(a,c,f),f},hasContextChanged:function(){return k.current},isContextConsumer:function(a){return 2===a.tag&&null!=a.type.contextTypes},isContextProvider:c,popContextProvider:function(a){c(a)&&(h(k,a),h(g,a))},popTopLevelContextObject:function(a){h(k,a),h(g,a)},pushTopLevelContextObject:function(a,b,c){null!=g.cursor&&D("168"),f(g,b,a),f(k,c,a)},processChildContext:d,pushContextProvider:function(a){if(!c(a))return!1;var b=a.stateNode;return b=b&&b.__reactInternalMemoizedMergedChildContext||ja,v=g.current,f(g,b,a),f(k,k.current,a),!0},invalidateContextProvider:function(a,b){var c=a.stateNode;if(c||D("169"),b){var e=d(a,v);c.__reactInternalMemoizedMergedChildContext=e,h(k,a),h(g,a),f(g,e,a)}else h(k,a);f(k,b,a)},findCurrentUnmaskedContext:function(a){for(2!==wd(a)||2!==a.tag?D("170"):void 0;3!==a.tag;){if(c(a))return a.stateNode.__reactInternalMemoizedMergedChildContext;(a=a.return)||D("171")}return a.stateNode.context}}}function hf(a){var b=a.createCursor,c=a.push,d=a.pop,e=b(null),f=b(null),h=b(0);return{pushProvider:function(a){var b=a.type.context;c(h,b._changedBits,a),c(f,b._currentValue,a),c(e,a,a),b._currentValue=a.pendingProps.value,b._changedBits=a.stateNode},popProvider:function(a){var b=h.current,c=f.current;d(e,a),d(f,a),d(h,a),a=a.type.context,a._currentValue=c,a._changedBits=b}}}function jf(){var a=[],b=-1;return{createCursor:function(a){return{current:a}},isEmpty:function(){return-1===b},pop:function(c){0>b||(c.current=a[b],a[b]=null,b--)},push:function(c,d){b++,a[b]=c.current,c.current=d},checkThatStackIsEmpty:function(){},resetStackAfterFatalErrorInDev:function(){}}}function kf(a){function b(){if(null!==I)for(var a=I.return;null!==a;)Lc(a),a=a.return;Xa=null,Z=0,I=null,Nc=!1}function c(a){return null!==ya&&ya.has(a)}function d(a){for(;;){var b=a.alternate,c=a.return,d=a.sibling;if(0==(512&a.effectTag)){b=Bb(b,a,Z);var e=a;if(1073741823===Z||1073741823!==e.expirationTime){b:switch(e.tag){case 3:case 2:var f=e.updateQueue;f=null===f?0:f.expirationTime;break b;default:f=0}for(var g=e.child;null!==g;)0!==g.expirationTime&&(0===f||f>g.expirationTime)&&(f=g.expirationTime),g=g.sibling;e.expirationTime=f}if(null!==b)return b;if(null!==c&&0==(512&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)),null!==d)return d;if(null===c){Nc=!0;break}a=c}else{if(null!==(a=Kc(a)))return a.effectTag&=2559,a;if(null!==c&&(c.firstEffect=c.lastEffect=null,c.effectTag|=512),null!==d)return d;if(null===c)break;a=c}}return null}function e(a){var b=Wa(a.alternate,a,Z);return null===b&&(b=d(a)),mc.current=null,b}function f(a,c,f){ca&&D("243"),ca=!0,c===Z&&a===Xa&&null!==I||(b(),Xa=a,Z=c,I=ye(Xa.current,null,Z),a.pendingCommitExpirationTime=0);for(var g=!1;;){try{if(f)for(;null!==I&&!S();)I=e(I);else for(;null!==I;)I=e(I)}catch(Oc){if(null===I){g=!0,q(Oc);break}f=I;var h=f.return;if(null===h){g=!0,q(Oc);break}Jc(h,f,Oc),I=d(f)}break}return ca=!1,g||null!==I?null:Nc?(a.pendingCommitExpirationTime=c,a.current.alternate):void D("262")}function h(a,b,c,d){a={value:c,source:a,stack:Ac(a)},Oe(b,{expirationTime:d,partialState:null,callback:null,isReplace:!1,isForced:!1,capturedValue:a,next:null}),v(b,d)}function g(a,b){a:{ca&&!Ya&&D("263");for(var d=a.return;null!==d;){switch(d.tag){case 2:var e=d.stateNode;if("function"==typeof d.type.getDerivedStateFromCatch||"function"==typeof e.componentDidCatch&&!c(e)){h(a,d,b,1),a=void 0;break a}break;case 3:h(a,d,b,1),a=void 0;break a}d=d.return}3===a.tag&&h(a,a,b,1),a=void 0}return a}function k(a){return a=0!==ia?ia:ca?Ya?1:Z:1&a.mode?za?10*(1+((l()+50)/10|0)):25*(1+((l()+500)/25|0)):1,za&&(0===da||a>da)&&(da=a),a}function v(a,c){a:{for(;null!==a;){if((0===a.expirationTime||a.expirationTime>c)&&(a.expirationTime=c),null!==a.alternate&&(0===a.alternate.expirationTime||a.alternate.expirationTime>c)&&(a.alternate.expirationTime=c),null===a.return){if(3!==a.tag){c=void 0;break a}var d=a.stateNode;!ca&&0!==Z&&c<Z&&b(),ca&&!Ya&&Xa===d||B(d,c),Fb>wg&&D("185")}a=a.return}c=void 0}return c}function l(){return ve=Ic()-Pc,xg=2+(ve/10|0)}function p(a,b,c,d,e){var f=ia;ia=1;try{return a(b,c,d,e)}finally{ia=f}}function y(a){if(0!==Gb){if(a>Gb)return;yg(Qc)}var b=Ic()-Pc;Gb=a,Qc=lg(Q,{timeout:10*(a-2)-b})}function B(a,b){if(null===a.nextScheduledRoot)a.remainingExpirationTime=b,null===K?(la=K=a,a.nextScheduledRoot=a):(K=K.nextScheduledRoot=a,K.nextScheduledRoot=la);else{var c=a.remainingExpirationTime;(0===c||b<c)&&(a.remainingExpirationTime=b)}T||(J?Hb&&(aa=a,P=1,G(a,1,!1)):1===b?n():y(b))}function r(){var a=0,b=null;if(null!==K)for(var c=K,d=la;null!==d;){var e=d.remainingExpirationTime;if(0===e){if((null===c||null===K)&&D("244"),d===d.nextScheduledRoot){la=K=d.nextScheduledRoot=null;break}if(d===la)la=e=d.nextScheduledRoot,K.nextScheduledRoot=e,d.nextScheduledRoot=null;else{if(d===K){K=c,K.nextScheduledRoot=la,d.nextScheduledRoot=null;break}c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null}d=c.nextScheduledRoot}else{if((0===a||e<a)&&(a=e,b=d),d===K)break;c=d,d=d.nextScheduledRoot}}c=aa,null!==c&&c===b&&1===a?Fb++:Fb=0,aa=b,P=a}function Q(a){x(0,!0,a)}function n(){x(1,!1,null)}function x(a,b,c){if(Za=c,r(),b)for(;null!==aa&&0!==P&&(0===a||a>=P)&&(!Ib||l()>=P);)G(aa,P,!Ib),r();else for(;null!==aa&&0!==P&&(0===a||a>=P);)G(aa,P,!1),r();null!==Za&&(Gb=0,Qc=-1),0!==P&&y(P),Za=null,Ib=!1,Y()}function Y(){if(Fb=0,null!==Aa){var a=Aa;Aa=null;for(var b=0;b<a.length;b++){var c=a[b];try{c._onComplete()}catch(vg){Ba||(Ba=!0,Jb=vg)}}}if(Ba)throw a=Jb,Jb=null,Ba=!1,a}function G(a,b,c){T&&D("245"),T=!0,c?(c=a.finishedWork,null!==c?R(a,c,b):(a.finishedWork=null,null!==(c=f(a,b,!0))&&(S()?a.finishedWork=c:R(a,c,b)))):(c=a.finishedWork,null!==c?R(a,c,b):(a.finishedWork=null,null!==(c=f(a,b,!1))&&R(a,c,b))),T=!1}function R(a,b,c){var d=a.firstBatch;if(null!==d&&d._expirationTime<=c&&(null===Aa?Aa=[d]:Aa.push(d),d._defer))return a.finishedWork=b,void(a.remainingExpirationTime=0);a.finishedWork=null,Ya=ca=!0,c=b.stateNode,c.current===b&&D("177"),d=c.pendingCommitExpirationTime,0===d&&D("261"),c.pendingCommitExpirationTime=0;var e=l();if(mc.current=null,1<b.effectTag)if(null!==b.lastEffect){b.lastEffect.nextEffect=b;var f=b.firstEffect}else f=b;else f=b.firstEffect;for(zg(c.containerInfo),w=f;null!==w;){var h=!1,k=void 0;try{for(;null!==w;)2048&w.effectTag&&Cb(w.alternate,w),w=w.nextEffect}catch($a){h=!0,k=$a}h&&(null===w&&D("178"),g(w,k),null!==w&&(w=w.nextEffect))}for(w=f;null!==w;){h=!1,k=void 0;try{for(;null!==w;){var p=w.effectTag;if(16&p&&Mc(w),128&p){var n=w.alternate;null!==n&&kg(n)}switch(14&p){case 2:Db(w),w.effectTag&=-3;break;case 6:Db(w),w.effectTag&=-3,te(w.alternate,w);break;case 4:te(w.alternate,w);break;case 8:gg(w)}w=w.nextEffect}}catch($a){h=!0,k=$a}h&&(null===w&&D("178"),g(w,k),null!==w&&(w=w.nextEffect))}for(Ag(c.containerInfo),c.current=b,w=f;null!==w;){p=!1,n=void 0;try{for(f=c,h=e,k=d;null!==w;){var r=w.effectTag;36&r&&hg(f,w.alternate,w,h,k),256&r&&ig(w,q),128&r&&jg(w);var t=w.nextEffect;w.nextEffect=null,w=t}}catch($a){p=!0,n=$a}p&&(null===w&&D("178"),g(w,n),null!==w&&(w=w.nextEffect))}ca=Ya=!1,"function"==typeof He&&He(b.stateNode),b=c.current.expirationTime,0===b&&(ya=null),a.remainingExpirationTime=b}function S(){return!(null===Za||Za.timeRemaining()>Bg)&&(Ib=!0)}function q(a){null===aa&&D("246"),aa.remainingExpirationTime=0,Ba||(Ba=!0,Jb=a)}var t=jf(),u=ef(a,t),z=gf(t);t=hf(t);var H=ff(a),Wa=Ze(a,u,z,t,H,v,k).beginWork,Bb=$e(a,u,z,t,H).completeWork;u=af(u,z,t,v,c);var Jc=u.throwException,Kc=u.unwindWork,Lc=u.unwindInterruptedWork;u=cf(a,g,v,k,function(a){null===ya?ya=new Set([a]):ya.add(a)},l);var Cb=u.commitBeforeMutationLifeCycles,Mc=u.commitResetTextContent,Db=u.commitPlacement,gg=u.commitDeletion,te=u.commitWork,hg=u.commitLifeCycles,ig=u.commitErrorLogging,jg=u.commitAttachRef,kg=u.commitDetachRef,Ic=a.now,lg=a.scheduleDeferredCallback,yg=a.cancelDeferredCallback,zg=a.prepareForCommit,Ag=a.resetAfterCommit,Pc=Ic(),xg=2,ve=Pc,Rc=0,ia=0,ca=!1,I=null,Xa=null,Z=0,w=null,Ya=!1,Nc=!1,ya=null,la=null,K=null,Gb=0,Qc=-1,T=!1,aa=null,P=0,da=0,Ib=!1,Ba=!1,Jb=null,Za=null,J=!1,Hb=!1,za=!1,Aa=null,wg=1e3,Fb=0,Bg=1;return{recalculateCurrentTime:l,computeExpirationForFiber:k,scheduleWork:v,requestWork:B,flushRoot:function(a,b){T&&D("253"),aa=a,P=b,G(a,b,!1),n(),Y()},batchedUpdates:function(a,b){var c=J;J=!0;try{return a(b)}finally{(J=c)||T||n()}},unbatchedUpdates:function(a,b){if(J&&!Hb){Hb=!0;try{return a(b)}finally{Hb=!1}}return a(b)},flushSync:function(a,b){T&&D("187");var c=J;J=!0;try{return p(a,b)}finally{J=c,n()}},flushControlled:function(a){var b=J;J=!0;try{p(a)}finally{(J=b)||T||x(1,!1,null)}},deferredUpdates:function(a){var b=ia;ia=25*(1+((l()+500)/25|0));try{return a()}finally{ia=b}},syncUpdates:p,interactiveUpdates:function(a,b,c){if(za)return a(b,c);J||T||0===da||(x(da,!1,null),da=0);var d=za,e=J;J=za=!0;try{return a(b,c)}finally{za=d,(J=e)||T||n()}},flushInteractiveUpdates:function(){T||0===da||(x(da,!1,null),da=0)},computeUniqueAsyncExpiration:function(){var a=25*(1+((l()+500)/25|0));return a<=Rc&&(a=Rc+1),Rc=a},legacyContext:z}}function lf(a){function b(a,b,c,d,e,f){if(d=b.current,c){c=c._reactInternalFiber;var g=k(c);c=v(c)?l(c,g):g}else c=ja;return null===b.context?b.context=c:b.pendingContext=c,b=f,Oe(d,{expirationTime:e,partialState:{element:a},callback:void 0===b?null:b,isReplace:!1,isForced:!1,capturedValue:null,next:null}),h(d,e),e}function c(a){return a=Ad(a),null===a?null:a.stateNode}var d=a.getPublicInstance;a=kf(a);var e=a.recalculateCurrentTime,f=a.computeExpirationForFiber,h=a.scheduleWork,g=a.legacyContext,k=g.findCurrentUnmaskedContext,v=g.isContextProvider,l=g.processChildContext;return{createContainer:function(a,b,c){return b=new xe(3,null,null,b?3:0),a={current:b,containerInfo:a,pendingChildren:null,pendingCommitExpirationTime:0,finishedWork:null,context:null,pendingContext:null,hydrate:c,remainingExpirationTime:0,firstBatch:null,nextScheduledRoot:null},b.stateNode=a},updateContainer:function(a,c,d,g){var h=c.current,k=e();return h=f(h),b(a,c,d,k,h,g)},updateContainerAtExpirationTime:function(a,c,d,f,g){return b(a,c,d,e(),f,g)},flushRoot:a.flushRoot,requestWork:a.requestWork,computeUniqueAsyncExpiration:a.computeUniqueAsyncExpiration,batchedUpdates:a.batchedUpdates,unbatchedUpdates:a.unbatchedUpdates,deferredUpdates:a.deferredUpdates,syncUpdates:a.syncUpdates,interactiveUpdates:a.interactiveUpdates,flushInteractiveUpdates:a.flushInteractiveUpdates,flushControlled:a.flushControlled,flushSync:a.flushSync,getPublicRootInstance:function(a){if(a=a.current,!a.child)return null;switch(a.child.tag){case 5:return d(a.child.stateNode);default:return a.child.stateNode}},findHostInstance:c,findHostInstanceWithNoPortals:function(a){return a=Bd(a),null===a?null:a.stateNode},injectIntoDevTools:function(a){var b=a.findFiberByHostInstance;return Ge(A({},a,{findHostInstanceByFiber:function(a){return c(a)},findFiberByHostInstance:function(a){return b?b(a):null}}))}}}function pf(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:qc,key:null==d?null:""+d,children:a,containerInfo:b,implementation:c}}function Ef(a){var b="";return ba.Children.forEach(a,function(a){null==a||"string"!=typeof a&&"number"!=typeof a||(b+=a)}),b}function Ff(a,b){return a=A({children:void 0},b),(b=Ef(b.children))&&(a.children=b),a}function Gf(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=""+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 Hf(a,b){var c=b.value;a._wrapperState={initialValue:null!=c?c:b.defaultValue,wasMultiple:!!b.multiple}}function If(a,b){return null!=b.dangerouslySetInnerHTML&&D("91"),A({},b,{value:void 0,defaultValue:void 0,children:""+a._wrapperState.initialValue})}function Jf(a,b){var c=b.value;null==c&&(c=b.defaultValue,b=b.children,null!=b&&(null!=c&&D("92"),Array.isArray(b)&&(1>=b.length||D("93"),b=b[0]),c=""+b),null==c&&(c="")),a._wrapperState={initialValue:""+c}}function Kf(a,b){var c=b.value;null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&(a.defaultValue=c)),null!=b.defaultValue&&(a.defaultValue=b.defaultValue)}function Lf(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}function Nf(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 Of(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?Nf(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a}function Rf(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 Uf(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf("--"),e=c,f=b[c];e=null==f||"boolean"==typeof f||""===f?"":d||"number"!=typeof f||0===f||Sf.hasOwnProperty(e)&&Sf[e]?(""+f).trim():f+"px","float"===c&&(c="cssFloat"),d?a.setProperty(c,e):a[c]=e}}function Wf(a,b,c){b&&(Vf[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML)&&D("137",a,c()),null!=b.dangerouslySetInnerHTML&&(null!=b.children&&D("60"),"object"==typeof b.dangerouslySetInnerHTML&&"__html"in b.dangerouslySetInnerHTML||D("61")),null!=b.style&&"object"!=typeof b.style&&D("62",c()))}function Xf(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 $f(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=je(a);b=ua[b];for(var d=0;d<b.length;d++){var e=b[d];c.hasOwnProperty(e)&&c[e]||("topScroll"===e?Yd("topScroll","scroll",a):"topFocus"===e||"topBlur"===e?(Yd("topFocus","focus",a),Yd("topBlur","blur",a),c.topBlur=!0,c.topFocus=!0):"topCancel"===e?(hc("cancel",!0)&&Yd("topCancel","cancel",a),c.topCancel=!0):"topClose"===e?(hc("close",!0)&&Yd("topClose","close",a),c.topClose=!0):ee.hasOwnProperty(e)&&W(e,ee[e],a),c[e]=!0)}}function ag(a,b,c,d){return c=9===c.nodeType?c:c.ownerDocument,d===Yf&&(d=Nf(a)),d===Yf?"script"===a?(a=c.createElement("div"),a.innerHTML="<script><\/script>",a=a.removeChild(a.firstChild)):a="string"==typeof b.is?c.createElement(a,{is:b.is}):c.createElement(a):a=c.createElementNS(d,a),a}function bg(a,b){return(9===b.nodeType?b:b.ownerDocument).createTextNode(a)}function cg(a,b,c,d){var e=Xf(b,c);switch(b){case"iframe":case"object":W("topLoad","load",a);var f=c;break;case"video":case"audio":for(f in fe)fe.hasOwnProperty(f)&&W(f,fe[f],a);f=c;break;case"source":W("topError","error",a),f=c;break;case"img":case"image":case"link":W("topError","error",a),W("topLoad","load",a),f=c;break;case"form":W("topReset","reset",a),W("topSubmit","submit",a),f=c;break;case"details":W("topToggle","toggle",a),f=c;break;case"input":Vc(a,c),f=Uc(a,c),W("topInvalid","invalid",a),$f(d,"onChange");break;case"option":f=Ff(a,c);break;case"select":Hf(a,c),f=A({},c,{value:void 0}),W("topInvalid","invalid",a),$f(d,"onChange");break;case"textarea":Jf(a,c),f=If(a,c),W("topInvalid","invalid",a),$f(d,"onChange");break;default:f=c}Wf(b,f,Zf);var g,h=f;for(g in h)if(h.hasOwnProperty(g)){var k=h[g];"style"===g?Uf(a,k,Zf):"dangerouslySetInnerHTML"===g?null!=(k=k?k.__html:void 0)&&Qf(a,k):"children"===g?"string"==typeof k?("textarea"!==b||""!==k)&&Rf(a,k):"number"==typeof k&&Rf(a,""+k):"suppressContentEditableWarning"!==g&&"suppressHydrationWarning"!==g&&"autoFocus"!==g&&(ta.hasOwnProperty(g)?null!=k&&$f(d,g):null!=k&&Tc(a,g,k,e))}switch(b){case"input":kc(a),$c(a,c);break;case"textarea":kc(a),Lf(a,c);break;case"option":null!=c.value&&a.setAttribute("value",c.value);break;case"select":a.multiple=!!c.multiple,b=c.value,null!=b?Gf(a,!!c.multiple,b,!1):null!=c.defaultValue&&Gf(a,!!c.multiple,c.defaultValue,!0);break;default:"function"==typeof f.onClick&&(a.onclick=C)}}function dg(a,b,c,d,e){var f=null;switch(b){case"input":c=Uc(a,c),d=Uc(a,d),f=[];break;case"option":c=Ff(a,c),d=Ff(a,d),f=[];break;case"select":c=A({},c,{value:void 0}),d=A({},d,{value:void 0}),f=[];break;case"textarea":c=If(a,c),d=If(a,d),f=[];break;default:"function"!=typeof c.onClick&&"function"==typeof d.onClick&&(a.onclick=C)}Wf(b,d,Zf),b=a=void 0;var h=null;for(a in c)if(!d.hasOwnProperty(a)&&c.hasOwnProperty(a)&&null!=c[a])if("style"===a){var g=c[a];for(b in g)g.hasOwnProperty(b)&&(h||(h={}),h[b]="")}else"dangerouslySetInnerHTML"!==a&&"children"!==a&&"suppressContentEditableWarning"!==a&&"suppressHydrationWarning"!==a&&"autoFocus"!==a&&(ta.hasOwnProperty(a)?f||(f=[]):(f=f||[]).push(a,null));for(a in d){var k=d[a];if(g=null!=c?c[a]:void 0,d.hasOwnProperty(a)&&k!==g&&(null!=k||null!=g))if("style"===a)if(g){for(b in g)!g.hasOwnProperty(b)||k&&k.hasOwnProperty(b)||(h||(h={}),h[b]="");for(b in k)k.hasOwnProperty(b)&&g[b]!==k[b]&&(h||(h={}),h[b]=k[b])}else h||(f||(f=[]),f.push(a,h)),h=k;else"dangerouslySetInnerHTML"===a?(k=k?k.__html:void 0,g=g?g.__html:void 0,null!=k&&g!==k&&(f=f||[]).push(a,""+k)):"children"===a?g===k||"string"!=typeof k&&"number"!=typeof k||(f=f||[]).push(a,""+k):"suppressContentEditableWarning"!==a&&"suppressHydrationWarning"!==a&&(ta.hasOwnProperty(a)?(null!=k&&$f(e,a),f||g===k||(f=[])):(f=f||[]).push(a,k))}return h&&(f=f||[]).push("style",h),f}function eg(a,b,c,d,e){"input"===c&&"radio"===e.type&&null!=e.name&&Xc(a,e),Xf(c,d),d=Xf(c,e);for(var f=0;f<b.length;f+=2){var h=b[f],g=b[f+1];"style"===h?Uf(a,g,Zf):"dangerouslySetInnerHTML"===h?Qf(a,g):"children"===h?Rf(a,g):Tc(a,h,g,d)}switch(c){case"input":Yc(a,e);break;case"textarea":Kf(a,e);break;case"select":a._wrapperState.initialValue=void 0,b=a._wrapperState.wasMultiple,a._wrapperState.wasMultiple=!!e.multiple,c=e.value,null!=c?Gf(a,!!e.multiple,c,!1):b!==!!e.multiple&&(null!=e.defaultValue?Gf(a,!!e.multiple,e.defaultValue,!0):Gf(a,!!e.multiple,e.multiple?[]:"",!1))}}function fg(a,b,c,d,e){switch(b){case"iframe":case"object":W("topLoad","load",a);break;case"video":case"audio":for(var f in fe)fe.hasOwnProperty(f)&&W(f,fe[f],a);break;case"source":W("topError","error",a);break;case"img":case"image":case"link":W("topError","error",a),W("topLoad","load",a);break;case"form":W("topReset","reset",a),W("topSubmit","submit",a);break;case"details":W("topToggle","toggle",a);break;case"input":Vc(a,c),W("topInvalid","invalid",a),$f(e,"onChange");break;case"select":Hf(a,c),W("topInvalid","invalid",a),$f(e,"onChange");break;case"textarea":Jf(a,c),W("topInvalid","invalid",a),$f(e,"onChange")}Wf(b,c,Zf),d=null;for(var h in c)c.hasOwnProperty(h)&&(f=c[h],"children"===h?"string"==typeof f?a.textContent!==f&&(d=["children",f]):"number"==typeof f&&a.textContent!==""+f&&(d=["children",""+f]):ta.hasOwnProperty(h)&&null!=f&&$f(e,h));switch(b){case"input":kc(a),$c(a,c);break;case"textarea":kc(a),Lf(a,c);break;case"select":case"option":break;default:"function"==typeof c.onClick&&(a.onclick=C)}return d}function mg(a,b){return a.nodeValue!==b}function qg(a){this._expirationTime=X.computeUniqueAsyncExpiration(),this._root=a,this._callbacks=this._next=null,this._hasChildren=this._didComplete=!1,this._children=null,this._defer=!0}function rg(){this._callbacks=null,this._didCommit=!1,this._onCommit=this._onCommit.bind(this)}function sg(a,b,c){this._internalRoot=X.createContainer(a,b,c)}function tg(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||" react-mount-point-unstable "!==a.nodeValue))}function ug(a,b){switch(a){case"button":case"input":case"select":case"textarea":return!!b.autoFocus}return!1}function Dg(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 sg(a,!1,b)}function Eg(a,b,c,d,e){tg(c)||D("200");var f=c._reactRootContainer;if(f){if("function"==typeof e){var h=e;e=function(){var a=X.getPublicRootInstance(f._internalRoot);h.call(a)}}null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)}else{if(f=c._reactRootContainer=Dg(c,d),"function"==typeof e){var g=e;e=function(){var a=X.getPublicRootInstance(f._internalRoot);g.call(a)}}X.unbatchedUpdates(function(){null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)})}return X.getPublicRootInstance(f._internalRoot)}function Fg(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;return tg(b)||D("200"),pf(a,b,null,c)}/** @license React v16.3.0
|
||
* react-dom.production.min.js
|
||
*
|
||
* Copyright (c) 2013-present, Facebook, Inc.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
var ba=__webpack_require__(0),m=__webpack_require__(98),A=__webpack_require__(42),C=__webpack_require__(49),ea=__webpack_require__(99),fa=__webpack_require__(100),ha=__webpack_require__(101),ja=__webpack_require__(48);ba||D("227");var E={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,invokeGuardedCallback:function(a,b,c,d,e,f,h,g,k){ka.apply(E,arguments)},invokeGuardedCallbackAndCatchFirstError:function(a,b,c,d,e,f,h,g,k){if(E.invokeGuardedCallback.apply(this,arguments),E.hasCaughtError()){var v=E.clearCaughtError();E._hasRethrowError||(E._hasRethrowError=!0,E._rethrowError=v)}},rethrowCaughtError:function(){return ma.apply(E,arguments)},hasCaughtError:function(){return E._hasCaughtError},clearCaughtError:function(){if(E._hasCaughtError){var a=E._caughtError;return E._caughtError=null,E._hasCaughtError=!1,a}D("198")}},na=null,oa={},qa=[],ra={},ta={},ua={},xa=Object.freeze({plugins:qa,eventNameDispatchConfigs:ra,registrationNameModules:ta,registrationNameDependencies:ua,possibleRegistrationNames:null,injectEventPluginOrder:va,injectEventPluginsByName:wa}),Ca=null,Da=null,Ea=null,Ia=null,Ma={injectEventPluginOrder:va,injectEventPluginsByName:wa},Qa=Object.freeze({injection:Ma,getListener:Na,runEventsInBatch:Oa,runExtractedEventsInBatch:Pa}),Ra=Math.random().toString(36).slice(2),F="__reactInternalInstance$"+Ra,Sa="__reactEventHandlers$"+Ra,ab=Object.freeze({precacheFiberNode:function(a,b){b[F]=a},getClosestInstanceFromNode:Ta,getInstanceFromNode:function(a){return a=a[F],!a||5!==a.tag&&6!==a.tag?null:a},getNodeFromInstance:Ua,getFiberCurrentPropsFromNode:Va,updateFiberProps:function(a,b){a[Sa]=b}}),jb=Object.freeze({accumulateTwoPhaseDispatches:hb,accumulateTwoPhaseDispatchesSkipTarget:function(a){Ha(a,eb)},accumulateEnterLeaveDispatches:ib,accumulateDirectDispatches:function(a){Ha(a,gb)}}),kb=null,M={_root:null,_startText:null,_fallbackText:null},ob="dispatchConfig _targetInst nativeEvent isDefaultPrevented isPropagationStopped _dispatchListeners _dispatchInstances".split(" "),pb={type:null,target:null,currentTarget:C.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};A(N.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():"unknown"!=typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=C.thatReturnsTrue)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():"unknown"!=typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=C.thatReturnsTrue)},persist:function(){this.isPersistent=C.thatReturnsTrue},isPersistent:C.thatReturnsFalse,destructor:function(){var b,a=this.constructor.Interface;for(b in a)this[b]=null;for(a=0;a<ob.length;a++)this[ob[a]]=null}}),N.Interface=pb,N.extend=function(a){function b(){}function c(){return d.apply(this,arguments)}var d=this;b.prototype=d.prototype;var e=new b;return A(e,c.prototype),c.prototype=e,c.prototype.constructor=c,c.Interface=A({},d.Interface,a),c.extend=d.extend,qb(c),c},qb(N);var tb=N.extend({data:null}),ub=N.extend({data:null}),vb=[9,13,27,32],wb=m.canUseDOM&&"CompositionEvent"in window,xb=null;m.canUseDOM&&"documentMode"in document&&(xb=document.documentMode);var yb=m.canUseDOM&&"TextEvent"in window&&!xb,zb=m.canUseDOM&&(!wb||xb&&8<xb&&11>=xb),Ab=String.fromCharCode(32),Eb={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"topBlur topCompositionEnd topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"topBlur topCompositionStart topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"topBlur topCompositionUpdate topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")}},Kb=!1,Nb=!1,Qb={eventTypes:Eb,extractEvents:function(a,b,c,d){var e=void 0,f=void 0;if(wb)b:{switch(a){case"topCompositionStart":e=Eb.compositionStart;break b;case"topCompositionEnd":e=Eb.compositionEnd;break b;case"topCompositionUpdate":e=Eb.compositionUpdate;break b}e=void 0}else Nb?Lb(a,c)&&(e=Eb.compositionEnd):"topKeyDown"===a&&229===c.keyCode&&(e=Eb.compositionStart);return e?(zb&&(Nb||e!==Eb.compositionStart?e===Eb.compositionEnd&&Nb&&(f=mb()):(M._root=d,M._startText=nb(),Nb=!0)),e=tb.getPooled(e,b,c,d),f?e.data=f:null!==(f=Mb(c))&&(e.data=f),hb(e),f=e):f=null,(a=yb?Ob(a,c):Pb(a,c))?(b=ub.getPooled(Eb.beforeInput,b,c,d),b.data=a,hb(b)):b=null,null===f?b:null===b?f:[f,b]}},Rb=null,Sb=null,Tb=null,Vb={injectFiberControlledHostComponent:function(a){Rb=a}},Zb=Object.freeze({injection:Vb,enqueueStateRestore:Wb,needsStateRestore:Xb,restoreStateIfNeeded:Yb}),cc=!1,ec={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},mc=ba.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,O="function"==typeof Symbol&&Symbol.for,nc=O?Symbol.for("react.element"):60103,oc=O?Symbol.for("react.call"):60104,pc=O?Symbol.for("react.return"):60105,qc=O?Symbol.for("react.portal"):60106,rc=O?Symbol.for("react.fragment"):60107,sc=O?Symbol.for("react.strict_mode"):60108,tc=O?Symbol.for("react.provider"):60109,uc=O?Symbol.for("react.context"):60110,vc=O?Symbol.for("react.async_mode"):60111,wc=O?Symbol.for("react.forward_ref"):60112,xc="function"==typeof Symbol&&Symbol.iterator,Bc=/^[: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]*$/,Cc={},Dc={},V={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){V[a]=new U(a,0,!1,a,null)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];V[b]=new U(b,1,!1,a[1],null)}),["contentEditable","draggable","spellCheck","value"].forEach(function(a){V[a]=new U(a,2,!1,a.toLowerCase(),null)}),["autoReverse","externalResourcesRequired","preserveAlpha"].forEach(function(a){V[a]=new U(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){V[a]=new U(a,3,!1,a.toLowerCase(),null)}),["checked","multiple","muted","selected"].forEach(function(a){V[a]=new U(a,3,!0,a.toLowerCase(),null)}),["capture","download"].forEach(function(a){V[a]=new U(a,4,!1,a.toLowerCase(),null)}),["cols","rows","size","span"].forEach(function(a){V[a]=new U(a,6,!1,a.toLowerCase(),null)}),["rowSpan","start"].forEach(function(a){V[a]=new U(a,5,!1,a.toLowerCase(),null)});var Hc=/[\-\:]([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(Hc,Sc);V[b]=new U(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(Hc,Sc);V[b]=new U(b,1,!1,a,"http://www.w3.org/1999/xlink")}),["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(Hc,Sc);V[b]=new U(b,1,!1,a,"http://www.w3.org/XML/1998/namespace")}),V.tabIndex=new U("tabIndex",1,!1,"tabindex",null);var ad={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"topBlur topChange topClick topFocus topInput topKeyDown topKeyUp topSelectionChange".split(" ")}},cd=null,dd=null,hd=!1;m.canUseDOM&&(hd=hc("input")&&(!document.documentMode||9<document.documentMode));var od={eventTypes:ad,_isInputEventSupported:hd,extractEvents:function(a,b,c,d){var e=b?Ua(b):window,f=void 0,h=void 0,g=e.nodeName&&e.nodeName.toLowerCase();if("select"===g||"input"===g&&"file"===e.type?f=gd:fc(e)?hd?f=nd:(f=ld,h=kd):!(g=e.nodeName)||"input"!==g.toLowerCase()||"checkbox"!==e.type&&"radio"!==e.type||(f=md),f&&(f=f(a,b)))return bd(f,c,d);h&&h(a,e,b),"topBlur"===a&&null!=b&&(a=b._wrapperState||e._wrapperState)&&a.controlled&&"number"===e.type&&Zc(e,"number",e.value)}},pd=N.extend({view:null,detail:null}),qd={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"},td=pd.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:sd,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)}}),ud={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},vd={eventTypes:ud,extractEvents:function(a,b,c,d){if("topMouseOver"===a&&(c.relatedTarget||c.fromElement)||"topMouseOut"!==a&&"topMouseOver"!==a)return null;var e=d.window===d?d:(e=d.ownerDocument)?e.defaultView||e.parentWindow:window;if("topMouseOut"===a?(a=b,b=(b=c.relatedTarget||c.toElement)?Ta(b):null):a=null,a===b)return null;var f=null==a?e:Ua(a);e=null==b?e:Ua(b);var h=td.getPooled(ud.mouseLeave,a,c,d);return h.type="mouseleave",h.target=f,h.relatedTarget=e,c=td.getPooled(ud.mouseEnter,b,c,d),c.type="mouseenter",c.target=e,c.relatedTarget=f,ib(h,c,a,b),[h,c]}},Cd=N.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Dd=N.extend({clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}}),Ed=pd.extend({relatedTarget:null}),Gd={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Hd={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"},Id=pd.extend({key:function(a){if(a.key){var b=Gd[a.key]||a.key;if("Unidentified"!==b)return b}return"keypress"===a.type?(a=Fd(a),13===a?"Enter":String.fromCharCode(a)):"keydown"===a.type||"keyup"===a.type?Hd[a.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:sd,charCode:function(a){return"keypress"===a.type?Fd(a):0},keyCode:function(a){return"keydown"===a.type||"keyup"===a.type?a.keyCode:0},which:function(a){return"keypress"===a.type?Fd(a):"keydown"===a.type||"keyup"===a.type?a.keyCode:0}}),Jd=td.extend({dataTransfer:null}),Kd=pd.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:sd}),Ld=N.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),Md=td.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}),Nd={},Od={};"blur cancel click close contextMenu copy cut doubleClick dragEnd dragStart drop focus input invalid keyDown keyPress keyUp mouseDown mouseUp paste pause play rateChange reset seeked submit touchCancel touchEnd touchStart volumeChange".split(" ").forEach(function(a){Pd(a,!0)}),"abort animationEnd animationIteration animationStart canPlay canPlayThrough drag dragEnter dragExit dragLeave dragOver durationChange emptied encrypted ended error load loadedData loadedMetadata loadStart mouseMove mouseOut mouseOver playing progress scroll seeking stalled suspend timeUpdate toggle touchMove transitionEnd waiting wheel".split(" ").forEach(function(a){Pd(a,!1)});var Qd={eventTypes:Nd,isInteractiveTopLevelEventType:function(a){return void 0!==(a=Od[a])&&!0===a.isInteractive},extractEvents:function(a,b,c,d){var e=Od[a];if(!e)return null;switch(a){case"topKeyPress":if(0===Fd(c))return null;case"topKeyDown":case"topKeyUp":a=Id;break;case"topBlur":case"topFocus":a=Ed;break;case"topClick":if(2===c.button)return null;case"topDoubleClick":case"topMouseDown":case"topMouseMove":case"topMouseUp":case"topMouseOut":case"topMouseOver":case"topContextMenu":a=td;break;case"topDrag":case"topDragEnd":case"topDragEnter":case"topDragExit":case"topDragLeave":case"topDragOver":case"topDragStart":case"topDrop":a=Jd;break;case"topTouchCancel":case"topTouchEnd":case"topTouchMove":case"topTouchStart":a=Kd;break;case"topAnimationEnd":case"topAnimationIteration":case"topAnimationStart":a=Cd;break;case"topTransitionEnd":a=Ld;break;case"topScroll":a=pd;break;case"topWheel":a=Md;break;case"topCopy":case"topCut":case"topPaste":a=Dd;break;default:a=N}return b=a.getPooled(e,b,c,d),hb(b),b}},Rd=Qd.isInteractiveTopLevelEventType,Sd=[],Ud=!0,Zd=Object.freeze({get _enabled(){return Ud},setEnabled:Vd,isEnabled:function(){return Ud},trapBubbledEvent:W,trapCapturedEvent:Yd,dispatchEvent:Xd}),ae={animationend:$d("Animation","AnimationEnd"),animationiteration:$d("Animation","AnimationIteration"),animationstart:$d("Animation","AnimationStart"),transitionend:$d("Transition","TransitionEnd")},be={},ce={};m.canUseDOM&&(ce=document.createElement("div").style,"AnimationEvent"in window||(delete ae.animationend.animation,delete ae.animationiteration.animation,delete ae.animationstart.animation),"TransitionEvent"in window||delete ae.transitionend.transition);var ee={topAnimationEnd:de("animationend"),topAnimationIteration:de("animationiteration"),topAnimationStart:de("animationstart"),topBlur:"blur",topCancel:"cancel",topChange:"change",topClick:"click",topClose:"close",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoad:"load",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topScroll:"scroll",topSelectionChange:"selectionchange",topTextInput:"textInput",topToggle:"toggle",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topTransitionEnd:de("transitionend"),topWheel:"wheel"},fe={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},ge={},he=0,ie="_reactListenersID"+(""+Math.random()).slice(2),ne=m.canUseDOM&&"documentMode"in document&&11>=document.documentMode,oe={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"topBlur topContextMenu topFocus topKeyDown topKeyUp topMouseDown topMouseUp topSelectionChange".split(" ")}},pe=null,qe=null,re=null,se=!1,we={eventTypes:oe,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=je(e),f=ua.onSelect;for(var h=0;h<f.length;h++){var g=f[h];if(!e.hasOwnProperty(g)||!e[g]){e=!1;break a}}e=!0}f=!e}if(f)return null;switch(e=b?Ua(b):window,a){case"topFocus":(fc(e)||"true"===e.contentEditable)&&(pe=e,qe=b,re=null);break;case"topBlur":re=qe=pe=null;break;case"topMouseDown":se=!0;break;case"topContextMenu":case"topMouseUp":return se=!1,ue(c,d);case"topSelectionChange":if(ne)break;case"topKeyDown":case"topKeyUp":return ue(c,d)}return null}};Ma.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin TapEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),Ca=ab.getFiberCurrentPropsFromNode,Da=ab.getInstanceFromNode,Ea=ab.getNodeFromInstance,Ma.injectEventPluginsByName({SimpleEventPlugin:Qd,EnterLeaveEventPlugin:vd,ChangeEventPlugin:od,SelectEventPlugin:we,BeforeInputEventPlugin:Qb});var De=null,Ee=null;new Set;var Le=void 0,Me=void 0,Te=Array.isArray,Xe=We(!0),Ye=We(!1),df={},mf=Object.freeze({default:lf}),nf=mf&&lf||mf,of=nf.default?nf.default:nf,qf="object"==typeof performance&&"function"==typeof performance.now,rf=void 0;rf=qf?function(){return performance.now()}:function(){return Date.now()};var sf=void 0,tf=void 0;if(m.canUseDOM)if("function"!=typeof requestIdleCallback||"function"!=typeof cancelIdleCallback){var uf=null,vf=!1,wf=-1,xf=!1,yf=0,zf=33,Af=33,Bf=void 0;Bf=qf?{didTimeout:!1,timeRemaining:function(){var a=yf-performance.now();return 0<a?a:0}}:{didTimeout:!1,timeRemaining:function(){var a=yf-Date.now();return 0<a?a:0}};var Cf="__reactIdleCallback$"+Math.random().toString(36).slice(2);window.addEventListener("message",function(a){if(a.source===window&&a.data===Cf){if(vf=!1,a=rf(),0>=yf-a){if(!(-1!==wf&&wf<=a))return void(xf||(xf=!0,requestAnimationFrame(Df)));Bf.didTimeout=!0}else Bf.didTimeout=!1;wf=-1,a=uf,uf=null,null!==a&&a(Bf)}},!1);var Df=function(a){xf=!1;var b=a-yf+Af;b<Af&&zf<Af?(8>b&&(b=8),Af=b<zf?zf:b):zf=b,yf=a+Af,vf||(vf=!0,window.postMessage(Cf,"*"))};sf=function(a,b){return uf=a,null!=b&&"number"==typeof b.timeout&&(wf=rf()+b.timeout),xf||(xf=!0,requestAnimationFrame(Df)),0},tf=function(){uf=null,vf=!1,wf=-1}}else sf=window.requestIdleCallback,tf=window.cancelIdleCallback;else sf=function(a){return setTimeout(function(){a({timeRemaining:function(){return 1/0},didTimeout:!1})})},tf=function(a){clearTimeout(a)};var Mf={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"},Pf=void 0,Qf=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!==Mf.svg||"innerHTML"in a)a.innerHTML=b;else{for(Pf=Pf||document.createElement("div"),Pf.innerHTML="<svg>"+b+"</svg>",b=Pf.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}}),Sf={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,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},Tf=["Webkit","ms","Moz","O"];Object.keys(Sf).forEach(function(a){Tf.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1),Sf[b]=Sf[a]})});var Vf=A({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}),Yf=Mf.html,Zf=C.thatReturns(""),ng=Object.freeze({createElement:ag,createTextNode:bg,setInitialProperties:cg,diffProperties:dg,updateProperties:eg,diffHydratedProperties:fg,diffHydratedText:mg,warnForUnmatchedText:function(){},warnForDeletedHydratableElement:function(){},warnForDeletedHydratableText:function(){},warnForInsertedHydratedElement:function(){},warnForInsertedHydratedText:function(){},restoreControlledState: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=Va(d);e||D("90"),lc(d),Yc(d,e)}}}break;case"textarea":Kf(a,c);break;case"select":null!=(b=c.value)&&Gf(a,!!c.multiple,b,!1)}}});Vb.injectFiberControlledHostComponent(ng);var og=null,pg=null;qg.prototype.render=function(a){this._defer||D("250"),this._hasChildren=!0,this._children=a;var b=this._root._internalRoot,c=this._expirationTime,d=new rg;return X.updateContainerAtExpirationTime(a,b,null,c,d._onCommit),d},qg.prototype.then=function(a){if(this._didComplete)a();else{var b=this._callbacks;null===b&&(b=this._callbacks=[]),b.push(a)}},qg.prototype.commit=function(){var a=this._root._internalRoot,b=a.firstBatch;if(this._defer&&null!==b||D("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&&D("251"),d._next=e._next,this._next=b,a.firstBatch=this}this._defer=!1,X.flushRoot(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},qg.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])()}},rg.prototype.then=function(a){if(this._didCommit)a();else{var b=this._callbacks;null===b&&(b=this._callbacks=[]),b.push(a)}},rg.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&&D("191",c),c()}}},sg.prototype.render=function(a,b){var c=this._internalRoot,d=new rg;return b=void 0===b?null:b,null!==b&&d.then(b),X.updateContainer(a,c,null,d._onCommit),d},sg.prototype.unmount=function(a){var b=this._internalRoot,c=new rg;return a=void 0===a?null:a,null!==a&&c.then(a),X.updateContainer(null,b,null,c._onCommit),c},sg.prototype.legacy_renderSubtreeIntoContainer=function(a,b,c){var d=this._internalRoot,e=new rg;return c=void 0===c?null:c,null!==c&&e.then(c),X.updateContainer(b,d,a,e._onCommit),e},sg.prototype.createBatch=function(){var a=new qg(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};var X=of({getRootHostContext:function(a){var b=a.nodeType;switch(b){case 9:case 11:a=(a=a.documentElement)?a.namespaceURI:Of(null,"");break;default:b=8===b?a.parentNode:a,a=b.namespaceURI||null,b=b.tagName,a=Of(a,b)}return a},getChildHostContext:function(a,b){return Of(a,b)},getPublicInstance:function(a){return a},prepareForCommit:function(){og=Ud;var a=ea();if(me(a)){if("selectionStart"in a)var b={start:a.selectionStart,end:a.selectionEnd};else a:{var c=window.getSelection&&window.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(B){b=null;break a}var f=0,h=-1,g=-1,k=0,v=0,l=a,p=null;b:for(;;){for(var y;l!==b||0!==d&&3!==l.nodeType||(h=f+d),l!==e||0!==c&&3!==l.nodeType||(g=f+c),3===l.nodeType&&(f+=l.nodeValue.length),null!==(y=l.firstChild);)p=l,l=y;for(;;){if(l===a)break b;if(p===b&&++k===d&&(h=f),p===e&&++v===c&&(g=f),null!==(y=l.nextSibling))break;l=p,p=l.parentNode}l=y}b=-1===h||-1===g?null:{start:h,end:g}}else b=null}b=b||{start:0,end:0}}else b=null;pg={focusedElem:a,selectionRange:b},Vd(!1)},resetAfterCommit:function(){var a=pg,b=ea(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&ha(document.documentElement,c)){if(me(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(window.getSelection){b=window.getSelection();var e=c[lb()].length;a=Math.min(d.start,e),d=void 0===d.end?a:Math.min(d.end,e),!b.extend&&a>d&&(e=d,d=a,a=e),e=le(c,a);var f=le(c,d);if(e&&f&&(1!==b.rangeCount||b.anchorNode!==e.node||b.anchorOffset!==e.offset||b.focusNode!==f.node||b.focusOffset!==f.offset)){var h=document.createRange();h.setStart(e.node,e.offset),b.removeAllRanges(),a>d?(b.addRange(h),b.extend(f.node,f.offset)):(h.setEnd(f.node,f.offset),b.addRange(h))}}for(b=[],a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});for(c.focus(),c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}pg=null,Vd(og),og=null},createInstance:function(a,b,c,d,e){return a=ag(a,b,c,d),a[F]=e,a[Sa]=b,a},appendInitialChild:function(a,b){a.appendChild(b)},finalizeInitialChildren:function(a,b,c,d){return cg(a,b,c,d),ug(b,c)},prepareUpdate:function(a,b,c,d,e){return dg(a,b,c,d,e)},shouldSetTextContent:function(a,b){return"textarea"===a||"string"==typeof b.children||"number"==typeof b.children||"object"==typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&"string"==typeof b.dangerouslySetInnerHTML.__html},shouldDeprioritizeSubtree:function(a,b){return!!b.hidden},createTextInstance:function(a,b,c,d){return a=bg(a,b),a[F]=d,a},now:rf,mutation:{commitMount:function(a,b,c){ug(b,c)&&a.focus()},commitUpdate:function(a,b,c,d,e){a[Sa]=e,eg(a,b,c,d,e)},resetTextContent:function(a){Rf(a,"")},commitTextUpdate:function(a,b,c){a.nodeValue=c},appendChild:function(a,b){a.appendChild(b)},appendChildToContainer:function(a,b){8===a.nodeType?a.parentNode.insertBefore(b,a):a.appendChild(b)},insertBefore:function(a,b,c){a.insertBefore(b,c)},insertInContainerBefore:function(a,b,c){8===a.nodeType?a.parentNode.insertBefore(b,c):a.insertBefore(b,c)},removeChild:function(a,b){a.removeChild(b)},removeChildFromContainer:function(a,b){8===a.nodeType?a.parentNode.removeChild(b):a.removeChild(b)}},hydration:{canHydrateInstance:function(a,b){return 1!==a.nodeType||b.toLowerCase()!==a.nodeName.toLowerCase()?null:a},canHydrateTextInstance:function(a,b){return""===b||3!==a.nodeType?null:a},getNextHydratableSibling:function(a){for(a=a.nextSibling;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a},getFirstHydratableChild:function(a){for(a=a.firstChild;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a},hydrateInstance:function(a,b,c,d,e,f){return a[F]=f,a[Sa]=c,fg(a,b,c,e,d)},hydrateTextInstance:function(a,b,c){return a[F]=c,mg(a,b)},didNotMatchHydratedContainerTextInstance:function(){},didNotMatchHydratedTextInstance:function(){},didNotHydrateContainerInstance:function(){},didNotHydrateInstance:function(){},didNotFindHydratableContainerInstance:function(){},didNotFindHydratableContainerTextInstance:function(){},didNotFindHydratableInstance:function(){},didNotFindHydratableTextInstance:function(){}},scheduleDeferredCallback:sf,cancelDeferredCallback:tf}),Cg=X;$b=Cg.batchedUpdates,ac=Cg.interactiveUpdates,bc=Cg.flushInteractiveUpdates;var Gg={createPortal:Fg,findDOMNode:function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(b)return X.findHostInstance(b);"function"==typeof a.render?D("188"):D("213",Object.keys(a))},hydrate:function(a,b,c){return Eg(null,a,b,!0,c)},render:function(a,b,c){return Eg(null,a,b,!1,c)},unstable_renderSubtreeIntoContainer:function(a,b,c,d){return(null==a||void 0===a._reactInternalFiber)&&D("38"),Eg(a,b,c,!1,d)},unmountComponentAtNode:function(a){return tg(a)||D("40"),!!a._reactRootContainer&&(X.unbatchedUpdates(function(){Eg(null,null,a,!1,function(){a._reactRootContainer=null})}),!0)},unstable_createPortal:function(){return Fg.apply(void 0,arguments)},unstable_batchedUpdates:X.batchedUpdates,unstable_deferredUpdates:X.deferredUpdates,flushSync:X.flushSync,unstable_flushControlled:X.flushControlled,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{EventPluginHub:Qa,EventPluginRegistry:xa,EventPropagators:jb,ReactControlledComponent:Zb,ReactDOMComponentTree:ab,ReactDOMEventListener:Zd},unstable_createRoot:function(a,b){return new sg(a,!0,null!=b&&!0===b.hydrate)}};X.injectIntoDevTools({findFiberByHostInstance:Ta,bundleType:0,version:"16.3.0",rendererPackageName:"react-dom"});var Hg=Object.freeze({default:Gg}),Ig=Hg&&Gg||Hg;module.exports=Ig.default?Ig.default:Ig},function(module,exports,__webpack_require__){"use strict";var canUseDOM=!("undefined"==typeof window||!window.document||!window.document.createElement),ExecutionEnvironment={canUseDOM:canUseDOM,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:canUseDOM&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:canUseDOM&&!!window.screen,isInWorker:!canUseDOM};module.exports=ExecutionEnvironment},function(module,exports,__webpack_require__){"use strict";function getActiveElement(doc){if(void 0===(doc=doc||("undefined"!=typeof document?document:void 0)))return null;try{return doc.activeElement||doc.body}catch(e){return doc.body}}module.exports=getActiveElement},function(module,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(!hasOwnProperty.call(objB,keysA[i])||!is(objA[keysA[i]],objB[keysA[i]]))return!1;return!0}var hasOwnProperty=Object.prototype.hasOwnProperty;module.exports=shallowEqual},function(module,exports,__webpack_require__){"use strict";function containsNode(outerNode,innerNode){return!(!outerNode||!innerNode)&&(outerNode===innerNode||!isTextNode(outerNode)&&(isTextNode(innerNode)?containsNode(outerNode,innerNode.parentNode):"contains"in outerNode?outerNode.contains(innerNode):!!outerNode.compareDocumentPosition&&!!(16&outerNode.compareDocumentPosition(innerNode))))}var isTextNode=__webpack_require__(102);module.exports=containsNode},function(module,exports,__webpack_require__){"use strict";function isTextNode(object){return isNode(object)&&3==object.nodeType}var isNode=__webpack_require__(103);module.exports=isTextNode},function(module,exports,__webpack_require__){"use strict";function isNode(object){var doc=object?object.ownerDocument||object:document,defaultView=doc.defaultView||window;return!(!object||!("function"==typeof defaultView.Node?object instanceof defaultView.Node:"object"==typeof object&&"number"==typeof object.nodeType&&"string"==typeof object.nodeName))}module.exports=isNode},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)}function createProvider(){var _Provider$childContex,storeKey=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"store",subKey=arguments[1],subscriptionKey=subKey||storeKey+"Subscription",Provider=function(_Component){function Provider(props,context){_classCallCheck(this,Provider);var _this=_possibleConstructorReturn(this,_Component.call(this,props,context));return _this[storeKey]=props.store,_this}return _inherits(Provider,_Component),Provider.prototype.getChildContext=function(){var _ref;return _ref={},_ref[storeKey]=this[storeKey],_ref[subscriptionKey]=null,_ref},Provider.prototype.render=function(){return __WEBPACK_IMPORTED_MODULE_0_react__.Children.only(this.props.children)},Provider}(__WEBPACK_IMPORTED_MODULE_0_react__.Component);return Provider.propTypes={store:__WEBPACK_IMPORTED_MODULE_2__utils_PropTypes__.a.isRequired,children:__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.element.isRequired},Provider.childContextTypes=(_Provider$childContex={},_Provider$childContex[storeKey]=__WEBPACK_IMPORTED_MODULE_2__utils_PropTypes__.a.isRequired,_Provider$childContex[subscriptionKey]=__WEBPACK_IMPORTED_MODULE_2__utils_PropTypes__.b,_Provider$childContex),Provider}__webpack_exports__.a=createProvider;var __WEBPACK_IMPORTED_MODULE_0_react__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_1_prop_types__=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__),__webpack_require__(11)),__WEBPACK_IMPORTED_MODULE_1_prop_types___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__),__WEBPACK_IMPORTED_MODULE_2__utils_PropTypes__=__webpack_require__(63);__webpack_require__(50);__webpack_exports__.b=createProvider()},function(module,exports,__webpack_require__){"use strict";var emptyFunction=__webpack_require__(49),invariant=__webpack_require__(62),ReactPropTypesSecret=__webpack_require__(106);module.exports=function(){function shim(props,propName,componentName,location,propFullName,secret){secret!==ReactPropTypesSecret&&invariant(!1,"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")}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,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim,exact:getShim};return ReactPropTypes.checkPropTypes=emptyFunction,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 _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function createListenerCollection(){var current=[],next=[];return{clear:function(){next=CLEARED,current=CLEARED},notify:function(){for(var listeners=current=next,i=0;i<listeners.length;i++)listeners[i]()},get:function(){return next},subscribe:function(listener){var isSubscribed=!0;return next===current&&(next=current.slice()),next.push(listener),function(){isSubscribed&¤t!==CLEARED&&(isSubscribed=!1,next===current&&(next=current.slice()),next.splice(next.indexOf(listener),1))}}}}__webpack_require__.d(__webpack_exports__,"a",function(){return Subscription});var CLEARED=null,nullListeners={notify:function(){}},Subscription=function(){function Subscription(store,parentSub,onStateChange){_classCallCheck(this,Subscription),this.store=store,this.parentSub=parentSub,this.onStateChange=onStateChange,this.unsubscribe=null,this.listeners=nullListeners}return Subscription.prototype.addNestedSub=function(listener){return this.trySubscribe(),this.listeners.subscribe(listener)},Subscription.prototype.notifyNestedSubs=function(){this.listeners.notify()},Subscription.prototype.isSubscribed=function(){return Boolean(this.unsubscribe)},Subscription.prototype.trySubscribe=function(){this.unsubscribe||(this.unsubscribe=this.parentSub?this.parentSub.addNestedSub(this.onStateChange):this.store.subscribe(this.onStateChange),this.listeners=createListenerCollection())},Subscription.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null,this.listeners.clear(),this.listeners=nullListeners)},Subscription}()},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 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__components_connectAdvanced__=__webpack_require__(64),__WEBPACK_IMPORTED_MODULE_1__utils_shallowEqual__=__webpack_require__(109),__WEBPACK_IMPORTED_MODULE_2__mapDispatchToProps__=__webpack_require__(110),__WEBPACK_IMPORTED_MODULE_3__mapStateToProps__=__webpack_require__(135),__WEBPACK_IMPORTED_MODULE_4__mergeProps__=__webpack_require__(136),__WEBPACK_IMPORTED_MODULE_5__selectorFactory__=__webpack_require__(137),_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};__webpack_exports__.a=function(){var _ref=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},_ref$connectHOC=_ref.connectHOC,connectHOC=void 0===_ref$connectHOC?__WEBPACK_IMPORTED_MODULE_0__components_connectAdvanced__.a:_ref$connectHOC,_ref$mapStateToPropsF=_ref.mapStateToPropsFactories,mapStateToPropsFactories=void 0===_ref$mapStateToPropsF?__WEBPACK_IMPORTED_MODULE_3__mapStateToProps__.a:_ref$mapStateToPropsF,_ref$mapDispatchToPro=_ref.mapDispatchToPropsFactories,mapDispatchToPropsFactories=void 0===_ref$mapDispatchToPro?__WEBPACK_IMPORTED_MODULE_2__mapDispatchToProps__.a:_ref$mapDispatchToPro,_ref$mergePropsFactor=_ref.mergePropsFactories,mergePropsFactories=void 0===_ref$mergePropsFactor?__WEBPACK_IMPORTED_MODULE_4__mergeProps__.a:_ref$mergePropsFactor,_ref$selectorFactory=_ref.selectorFactory,selectorFactory=void 0===_ref$selectorFactory?__WEBPACK_IMPORTED_MODULE_5__selectorFactory__.a:_ref$selectorFactory;return function(mapStateToProps,mapDispatchToProps,mergeProps){var _ref2=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},_ref2$pure=_ref2.pure,pure=void 0===_ref2$pure||_ref2$pure,_ref2$areStatesEqual=_ref2.areStatesEqual,areStatesEqual=void 0===_ref2$areStatesEqual?strictEqual:_ref2$areStatesEqual,_ref2$areOwnPropsEqua=_ref2.areOwnPropsEqual,areOwnPropsEqual=void 0===_ref2$areOwnPropsEqua?__WEBPACK_IMPORTED_MODULE_1__utils_shallowEqual__.a:_ref2$areOwnPropsEqua,_ref2$areStatePropsEq=_ref2.areStatePropsEqual,areStatePropsEqual=void 0===_ref2$areStatePropsEq?__WEBPACK_IMPORTED_MODULE_1__utils_shallowEqual__.a:_ref2$areStatePropsEq,_ref2$areMergedPropsE=_ref2.areMergedPropsEqual,areMergedPropsEqual=void 0===_ref2$areMergedPropsE?__WEBPACK_IMPORTED_MODULE_1__utils_shallowEqual__.a:_ref2$areMergedPropsE,extraOptions=_objectWithoutProperties(_ref2,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),initMapStateToProps=match(mapStateToProps,mapStateToPropsFactories,"mapStateToProps"),initMapDispatchToProps=match(mapDispatchToProps,mapDispatchToPropsFactories,"mapDispatchToProps"),initMergeProps=match(mergeProps,mergePropsFactories,"mergeProps");return connectHOC(selectorFactory,_extends({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__(2),__WEBPACK_IMPORTED_MODULE_1__wrapMapToProps__=__webpack_require__(71);__webpack_exports__.a=[whenMapDispatchToPropsIsFunction,whenMapDispatchToPropsIsMissing,whenMapDispatchToPropsIsObject]},function(module,__webpack_exports__,__webpack_require__){"use strict";function baseGetTag(value){return null==value?void 0===value?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(value)?Object(__WEBPACK_IMPORTED_MODULE_1__getRawTag_js__.a)(value):Object(__WEBPACK_IMPORTED_MODULE_2__objectToString_js__.a)(value)}var __WEBPACK_IMPORTED_MODULE_0__Symbol_js__=__webpack_require__(68),__WEBPACK_IMPORTED_MODULE_1__getRawTag_js__=__webpack_require__(114),__WEBPACK_IMPORTED_MODULE_2__objectToString_js__=__webpack_require__(115),nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=__WEBPACK_IMPORTED_MODULE_0__Symbol_js__.a?__WEBPACK_IMPORTED_MODULE_0__Symbol_js__.a.toStringTag:void 0;__webpack_exports__.a=baseGetTag},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0__freeGlobal_js__=__webpack_require__(113),freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=__WEBPACK_IMPORTED_MODULE_0__freeGlobal_js__.a||freeSelf||Function("return this")();__webpack_exports__.a=root},function(module,__webpack_exports__,__webpack_require__){"use strict";(function(global){var freeGlobal="object"==typeof global&&global&&global.Object===Object&&global;__webpack_exports__.a=freeGlobal}).call(__webpack_exports__,__webpack_require__(9))},function(module,__webpack_exports__,__webpack_require__){"use strict";function getRawTag(value){var isOwn=hasOwnProperty.call(value,symToStringTag),tag=value[symToStringTag];try{value[symToStringTag]=void 0;var unmasked=!0}catch(e){}var result=nativeObjectToString.call(value);return unmasked&&(isOwn?value[symToStringTag]=tag:delete value[symToStringTag]),result}var __WEBPACK_IMPORTED_MODULE_0__Symbol_js__=__webpack_require__(68),objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,nativeObjectToString=objectProto.toString,symToStringTag=__WEBPACK_IMPORTED_MODULE_0__Symbol_js__.a?__WEBPACK_IMPORTED_MODULE_0__Symbol_js__.a.toStringTag:void 0;__webpack_exports__.a=getRawTag},function(module,__webpack_exports__,__webpack_require__){"use strict";function objectToString(value){return nativeObjectToString.call(value)}var objectProto=Object.prototype,nativeObjectToString=objectProto.toString;__webpack_exports__.a=objectToString},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0__overArg_js__=__webpack_require__(117),getPrototype=Object(__WEBPACK_IMPORTED_MODULE_0__overArg_js__.a)(Object.getPrototypeOf,Object);__webpack_exports__.a=getPrototype},function(module,__webpack_exports__,__webpack_require__){"use strict";function overArg(func,transform){return function(arg){return func(transform(arg))}}__webpack_exports__.a=overArg},function(module,__webpack_exports__,__webpack_require__){"use strict";function isObjectLike(value){return null!=value&&"object"==typeof value}__webpack_exports__.a=isObjectLike},function(module,exports,__webpack_require__){module.exports=__webpack_require__(120)},function(module,exports,__webpack_require__){"use strict";(function(global,module){Object.defineProperty(exports,"__esModule",{value:!0});var root,_ponyfill=__webpack_require__(122),_ponyfill2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_ponyfill);root="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==global?global:module;var result=(0,_ponyfill2.default)(root);exports.default=result}).call(exports,__webpack_require__(9),__webpack_require__(121)(module))},function(module,exports){module.exports=function(module){return module.webpackPolyfill||(module.deprecate=function(){},module.paths=[],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}}),module.webpackPolyfill=1),module}},function(module,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}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=symbolObservablePonyfill},function(module,__webpack_exports__,__webpack_require__){"use strict";function getUndefinedStateErrorMessage(key,action){var actionType=action&&action.type;return"Given action "+(actionType&&'"'+actionType.toString()+'"'||"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:__WEBPACK_IMPORTED_MODULE_0__createStore__.a.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:"@@redux/PROBE_UNKNOWN_ACTION_"+Math.random().toString(36).substring(7).split("").join(".")}))throw new Error('Reducer "'+key+"\" returned undefined when probed with a random type. Don't try to handle "+__WEBPACK_IMPORTED_MODULE_0__createStore__.a.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 finalReducerKeys=Object.keys(finalReducers),shapeAssertionError=void 0;try{assertReducerShape(finalReducers)}catch(e){shapeAssertionError=e}return function(){var state=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},action=arguments[1];if(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}}__webpack_exports__.a=combineReducers;var __WEBPACK_IMPORTED_MODULE_0__createStore__=__webpack_require__(66);__webpack_require__(67),__webpack_require__(69)},function(module,__webpack_exports__,__webpack_require__){"use strict";function bindActionCreator(actionCreator,dispatch){return function(){return dispatch(actionCreator.apply(void 0,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}__webpack_exports__.a=bindActionCreators},function(module,__webpack_exports__,__webpack_require__){"use strict";function applyMiddleware(){for(var _len=arguments.length,middlewares=Array(_len),_key=0;_key<_len;_key++)middlewares[_key]=arguments[_key];return function(createStore){return function(reducer,preloadedState,enhancer){var store=createStore(reducer,preloadedState,enhancer),_dispatch=store.dispatch,chain=[],middlewareAPI={getState:store.getState,dispatch:function(action){return _dispatch(action)}};return chain=middlewares.map(function(middleware){return middleware(middlewareAPI)}),_dispatch=__WEBPACK_IMPORTED_MODULE_0__compose__.a.apply(void 0,chain)(store.dispatch),_extends({},store,{dispatch:_dispatch})}}}__webpack_exports__.a=applyMiddleware;var __WEBPACK_IMPORTED_MODULE_0__compose__=__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}},function(module,__webpack_exports__,__webpack_require__){"use strict";function isPlainObject(value){if(!Object(__WEBPACK_IMPORTED_MODULE_2__isObjectLike_js__.a)(value)||Object(__WEBPACK_IMPORTED_MODULE_0__baseGetTag_js__.a)(value)!=objectTag)return!1;var proto=Object(__WEBPACK_IMPORTED_MODULE_1__getPrototype_js__.a)(value);if(null===proto)return!0;var Ctor=hasOwnProperty.call(proto,"constructor")&&proto.constructor;return"function"==typeof Ctor&&Ctor instanceof Ctor&&funcToString.call(Ctor)==objectCtorString}var __WEBPACK_IMPORTED_MODULE_0__baseGetTag_js__=__webpack_require__(127),__WEBPACK_IMPORTED_MODULE_1__getPrototype_js__=__webpack_require__(132),__WEBPACK_IMPORTED_MODULE_2__isObjectLike_js__=__webpack_require__(134),objectTag="[object Object]",funcProto=Function.prototype,objectProto=Object.prototype,funcToString=funcProto.toString,hasOwnProperty=objectProto.hasOwnProperty,objectCtorString=funcToString.call(Object);__webpack_exports__.a=isPlainObject},function(module,__webpack_exports__,__webpack_require__){"use strict";function baseGetTag(value){return null==value?void 0===value?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(value)?Object(__WEBPACK_IMPORTED_MODULE_1__getRawTag_js__.a)(value):Object(__WEBPACK_IMPORTED_MODULE_2__objectToString_js__.a)(value)}var __WEBPACK_IMPORTED_MODULE_0__Symbol_js__=__webpack_require__(73),__WEBPACK_IMPORTED_MODULE_1__getRawTag_js__=__webpack_require__(130),__WEBPACK_IMPORTED_MODULE_2__objectToString_js__=__webpack_require__(131),nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=__WEBPACK_IMPORTED_MODULE_0__Symbol_js__.a?__WEBPACK_IMPORTED_MODULE_0__Symbol_js__.a.toStringTag:void 0;__webpack_exports__.a=baseGetTag},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0__freeGlobal_js__=__webpack_require__(129),freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=__WEBPACK_IMPORTED_MODULE_0__freeGlobal_js__.a||freeSelf||Function("return this")();__webpack_exports__.a=root},function(module,__webpack_exports__,__webpack_require__){"use strict";(function(global){var freeGlobal="object"==typeof global&&global&&global.Object===Object&&global;__webpack_exports__.a=freeGlobal}).call(__webpack_exports__,__webpack_require__(9))},function(module,__webpack_exports__,__webpack_require__){"use strict";function getRawTag(value){var isOwn=hasOwnProperty.call(value,symToStringTag),tag=value[symToStringTag];try{value[symToStringTag]=void 0;var unmasked=!0}catch(e){}var result=nativeObjectToString.call(value);return unmasked&&(isOwn?value[symToStringTag]=tag:delete value[symToStringTag]),result}var __WEBPACK_IMPORTED_MODULE_0__Symbol_js__=__webpack_require__(73),objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,nativeObjectToString=objectProto.toString,symToStringTag=__WEBPACK_IMPORTED_MODULE_0__Symbol_js__.a?__WEBPACK_IMPORTED_MODULE_0__Symbol_js__.a.toStringTag:void 0;__webpack_exports__.a=getRawTag},function(module,__webpack_exports__,__webpack_require__){"use strict";function objectToString(value){return nativeObjectToString.call(value)}var objectProto=Object.prototype,nativeObjectToString=objectProto.toString;__webpack_exports__.a=objectToString},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0__overArg_js__=__webpack_require__(133),getPrototype=Object(__WEBPACK_IMPORTED_MODULE_0__overArg_js__.a)(Object.getPrototypeOf,Object);__webpack_exports__.a=getPrototype},function(module,__webpack_exports__,__webpack_require__){"use strict";function overArg(func,transform){return function(arg){return func(transform(arg))}}__webpack_exports__.a=overArg},function(module,__webpack_exports__,__webpack_require__){"use strict";function isObjectLike(value){return null!=value&&"object"==typeof value}__webpack_exports__.a=isObjectLike},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__(71);__webpack_exports__.a=[whenMapStateToPropsIsFunction,whenMapStateToPropsIsMissing]},function(module,__webpack_exports__,__webpack_require__){"use strict";function defaultMergeProps(stateProps,dispatchProps,ownProps){return _extends({},ownProps,stateProps,dispatchProps)}function wrapMergePropsFunc(mergeProps){return function(dispatch,_ref){var pure=(_ref.displayName,_ref.pure),areMergedPropsEqual=_ref.areMergedPropsEqual,hasRunOnce=!1,mergedProps=void 0;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 _extends=(__webpack_require__(72),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});__webpack_exports__.a=[whenMergePropsIsFunction,whenMergePropsIsOmitted]},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 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 areStatesEqual=_ref.areStatesEqual,areOwnPropsEqual=_ref.areOwnPropsEqual,areStatePropsEqual=_ref.areStatePropsEqual,hasRunAtLeastOnce=!1,state=void 0,ownProps=void 0,stateProps=void 0,dispatchProps=void 0,mergedProps=void 0;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=_objectWithoutProperties(_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;__webpack_require__(138)},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__(50)},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_invariant__=__webpack_require__(17),__WEBPACK_IMPORTED_MODULE_0_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_invariant__),__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_create_react_class__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_2_create_react_class___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_create_react_class__),__WEBPACK_IMPORTED_MODULE_3_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_4__createTransitionManager__=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__),__webpack_require__(74)),__WEBPACK_IMPORTED_MODULE_5__InternalPropTypes__=__webpack_require__(37),__WEBPACK_IMPORTED_MODULE_6__RouterContext__=__webpack_require__(52),__WEBPACK_IMPORTED_MODULE_7__RouteUtils__=__webpack_require__(28),__WEBPACK_IMPORTED_MODULE_8__RouterUtils__=__webpack_require__(76),_extends=(__webpack_require__(32),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}),propTypes={history:__WEBPACK_IMPORTED_MODULE_3_prop_types__.object,children:__WEBPACK_IMPORTED_MODULE_5__InternalPropTypes__.d,routes:__WEBPACK_IMPORTED_MODULE_5__InternalPropTypes__.d,render:__WEBPACK_IMPORTED_MODULE_3_prop_types__.func,createElement:__WEBPACK_IMPORTED_MODULE_3_prop_types__.func,onError:__WEBPACK_IMPORTED_MODULE_3_prop_types__.func,onUpdate:__WEBPACK_IMPORTED_MODULE_3_prop_types__.func,matchContext:__WEBPACK_IMPORTED_MODULE_3_prop_types__.object},Router=__WEBPACK_IMPORTED_MODULE_2_create_react_class___default()({displayName:"Router",propTypes:propTypes,getDefaultProps:function(){return{render:function(props){return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__RouterContext__.a,props)}}},getInitialState:function(){return{location:null,routes:null,params:null,components:null}},handleError:function(error){if(!this.props.onError)throw error;this.props.onError.call(this,error)},createRouterObject:function(state){var matchContext=this.props.matchContext;if(matchContext)return matchContext.router;var history=this.props.history;return Object(__WEBPACK_IMPORTED_MODULE_8__RouterUtils__.b)(history,this.transitionManager,state)},createTransitionManager:function(){var matchContext=this.props.matchContext;if(matchContext)return matchContext.transitionManager;var history=this.props.history,_props=this.props,routes=_props.routes,children=_props.children;return history.getCurrentLocation||__WEBPACK_IMPORTED_MODULE_0_invariant___default()(!1),Object(__WEBPACK_IMPORTED_MODULE_4__createTransitionManager__.a)(history,Object(__WEBPACK_IMPORTED_MODULE_7__RouteUtils__.b)(routes||children))},componentWillMount:function(){var _this=this;this.transitionManager=this.createTransitionManager(),this.router=this.createRouterObject(this.state),this._unlisten=this.transitionManager.listen(function(error,state){error?_this.handleError(error):(Object(__WEBPACK_IMPORTED_MODULE_8__RouterUtils__.a)(_this.router,state),_this.setState(state,_this.props.onUpdate))})},componentWillReceiveProps:function(nextProps){},componentWillUnmount:function(){this._unlisten&&this._unlisten()},render:function(){var _state=this.state,location=_state.location,routes=_state.routes,params=_state.params,components=_state.components,_props2=this.props,createElement=_props2.createElement,render=_props2.render,props=_objectWithoutProperties(_props2,["createElement","render"]);return null==location?null:(Object.keys(propTypes).forEach(function(propType){return delete props[propType]}),render(_extends({},props,{router:this.router,location:location,routes:routes,params:params,components:components,createElement:createElement})))}});__webpack_exports__.a=Router},function(module,exports,__webpack_require__){"use strict";function identity(fn){return fn}function factory(ReactComponent,isValidElement,ReactNoopUpdateQueue){function validateMethodOverride(isAlreadyDefined,name){var specPolicy=ReactClassInterface.hasOwnProperty(name)?ReactClassInterface[name]:null;ReactClassMixin.hasOwnProperty(name)&&_invariant("OVERRIDE_BASE"===specPolicy,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",name),isAlreadyDefined&&_invariant("DEFINE_MANY"===specPolicy||"DEFINE_MANY_MERGED"===specPolicy,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",name)}function mixSpecIntoComponent(Constructor,spec){if(spec){_invariant("function"!=typeof spec,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),_invariant(!isValidElement(spec),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var proto=Constructor.prototype,autoBindPairs=proto.__reactAutoBindPairs;spec.hasOwnProperty(MIXINS_KEY)&&RESERVED_SPEC_KEYS.mixins(Constructor,spec.mixins);for(var name in spec)if(spec.hasOwnProperty(name)&&name!==MIXINS_KEY){var property=spec[name],isAlreadyDefined=proto.hasOwnProperty(name);if(validateMethodOverride(isAlreadyDefined,name),RESERVED_SPEC_KEYS.hasOwnProperty(name))RESERVED_SPEC_KEYS[name](Constructor,property);else{var isReactClassMethod=ReactClassInterface.hasOwnProperty(name),isFunction="function"==typeof property,shouldAutoBind=isFunction&&!isReactClassMethod&&!isAlreadyDefined&&!1!==spec.autobind;if(shouldAutoBind)autoBindPairs.push(name,property),proto[name]=property;else if(isAlreadyDefined){var specPolicy=ReactClassInterface[name];_invariant(isReactClassMethod&&("DEFINE_MANY_MERGED"===specPolicy||"DEFINE_MANY"===specPolicy),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",specPolicy,name),"DEFINE_MANY_MERGED"===specPolicy?proto[name]=createMergedResultFunction(proto[name],property):"DEFINE_MANY"===specPolicy&&(proto[name]=createChainedFunction(proto[name],property))}else proto[name]=property}}}else;}function mixStaticSpecIntoComponent(Constructor,statics){if(statics)for(var name in statics){var property=statics[name];if(statics.hasOwnProperty(name)){var isReserved=name in RESERVED_SPEC_KEYS;_invariant(!isReserved,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',name);var isAlreadyDefined=name in Constructor;if(isAlreadyDefined){var specPolicy=ReactClassStaticInterface.hasOwnProperty(name)?ReactClassStaticInterface[name]:null;return _invariant("DEFINE_MANY_MERGED"===specPolicy,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",name),void(Constructor[name]=createMergedResultFunction(Constructor[name],property))}Constructor[name]=property}}}function mergeIntoWithNoDuplicateKeys(one,two){_invariant(one&&two&&"object"==typeof one&&"object"==typeof two,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");for(var key in two)two.hasOwnProperty(key)&&(_invariant(void 0===one[key],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",key),one[key]=two[key]);return one}function createMergedResultFunction(one,two){return function(){var a=one.apply(this,arguments),b=two.apply(this,arguments);if(null==a)return b;if(null==b)return a;var c={};return mergeIntoWithNoDuplicateKeys(c,a),mergeIntoWithNoDuplicateKeys(c,b),c}}function createChainedFunction(one,two){return function(){one.apply(this,arguments),two.apply(this,arguments)}}function bindAutoBindMethod(component,method){var boundMethod=method.bind(component);return boundMethod}function bindAutoBindMethods(component){for(var pairs=component.__reactAutoBindPairs,i=0;i<pairs.length;i+=2){var autoBindKey=pairs[i],method=pairs[i+1];component[autoBindKey]=bindAutoBindMethod(component,method)}}function createClass(spec){var Constructor=identity(function(props,context,updater){this.__reactAutoBindPairs.length&&bindAutoBindMethods(this),this.props=props,this.context=context,this.refs=emptyObject,this.updater=updater||ReactNoopUpdateQueue,this.state=null;var initialState=this.getInitialState?this.getInitialState():null;_invariant("object"==typeof initialState&&!Array.isArray(initialState),"%s.getInitialState(): must return an object or null",Constructor.displayName||"ReactCompositeComponent"),this.state=initialState});Constructor.prototype=new ReactClassComponent,Constructor.prototype.constructor=Constructor,Constructor.prototype.__reactAutoBindPairs=[],injectedMixins.forEach(mixSpecIntoComponent.bind(null,Constructor)),mixSpecIntoComponent(Constructor,IsMountedPreMixin),mixSpecIntoComponent(Constructor,spec),mixSpecIntoComponent(Constructor,IsMountedPostMixin),Constructor.getDefaultProps&&(Constructor.defaultProps=Constructor.getDefaultProps()),_invariant(Constructor.prototype.render,"createClass(...): Class specification must implement a `render` method.");for(var methodName in ReactClassInterface)Constructor.prototype[methodName]||(Constructor.prototype[methodName]=null);return Constructor}var injectedMixins=[],ReactClassInterface={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",UNSAFE_componentWillMount:"DEFINE_MANY",UNSAFE_componentWillReceiveProps:"DEFINE_MANY",UNSAFE_componentWillUpdate:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},ReactClassStaticInterface={getDerivedStateFromProps:"DEFINE_MANY_MERGED"},RESERVED_SPEC_KEYS={displayName:function(Constructor,displayName){Constructor.displayName=displayName},mixins:function(Constructor,mixins){if(mixins)for(var i=0;i<mixins.length;i++)mixSpecIntoComponent(Constructor,mixins[i])},childContextTypes:function(Constructor,childContextTypes){Constructor.childContextTypes=_assign({},Constructor.childContextTypes,childContextTypes)},contextTypes:function(Constructor,contextTypes){Constructor.contextTypes=_assign({},Constructor.contextTypes,contextTypes)},getDefaultProps:function(Constructor,getDefaultProps){Constructor.getDefaultProps?Constructor.getDefaultProps=createMergedResultFunction(Constructor.getDefaultProps,getDefaultProps):Constructor.getDefaultProps=getDefaultProps},propTypes:function(Constructor,propTypes){Constructor.propTypes=_assign({},Constructor.propTypes,propTypes)},statics:function(Constructor,statics){mixStaticSpecIntoComponent(Constructor,statics)},autobind:function(){}},IsMountedPreMixin={componentDidMount:function(){this.__isMounted=!0}},IsMountedPostMixin={componentWillUnmount:function(){this.__isMounted=!1}},ReactClassMixin={replaceState:function(newState,callback){this.updater.enqueueReplaceState(this,newState,callback)},isMounted:function(){return!!this.__isMounted}},ReactClassComponent=function(){};return _assign(ReactClassComponent.prototype,ReactComponent.prototype,ReactClassMixin),createClass}var _assign=__webpack_require__(42),emptyObject=__webpack_require__(48),_invariant=__webpack_require__(62),MIXINS_KEY="mixins";module.exports=factory},function(module,__webpack_exports__,__webpack_require__){"use strict";function routeParamsChanged(route,prevState,nextState){return!!route.path&&Object(__WEBPACK_IMPORTED_MODULE_0__PatternUtils__.b)(route.path).some(function(paramName){return prevState.params[paramName]!==nextState.params[paramName]})}function computeChangedRoutes(prevState,nextState){var prevRoutes=prevState&&prevState.routes,nextRoutes=nextState.routes,leaveRoutes=void 0,changeRoutes=void 0,enterRoutes=void 0;if(prevRoutes){var parentIsLeaving=!1;leaveRoutes=prevRoutes.filter(function(route){if(parentIsLeaving)return!0;var isLeaving=-1===nextRoutes.indexOf(route)||routeParamsChanged(route,prevState,nextState);return isLeaving&&(parentIsLeaving=!0),isLeaving}),leaveRoutes.reverse(),enterRoutes=[],changeRoutes=[],nextRoutes.forEach(function(route){var isNew=-1===prevRoutes.indexOf(route),paramsChanged=-1!==leaveRoutes.indexOf(route);isNew||paramsChanged?enterRoutes.push(route):changeRoutes.push(route)})}else leaveRoutes=[],changeRoutes=[],enterRoutes=nextRoutes;return{leaveRoutes:leaveRoutes,changeRoutes:changeRoutes,enterRoutes:enterRoutes}}var __WEBPACK_IMPORTED_MODULE_0__PatternUtils__=__webpack_require__(33);__webpack_exports__.a=computeChangedRoutes},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 getTransitionUtils(){function createTransitionHook(hook,route,asyncArity,pendingHooks){var isSync=hook.length<asyncArity,transitionHook=function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];if(hook.apply(route,args),isSync){(0,args[args.length-1])()}};return pendingHooks.add(transitionHook),transitionHook}function getEnterHooks(routes){return routes.reduce(function(hooks,route){return route.onEnter&&hooks.push(createTransitionHook(route.onEnter,route,3,enterHooks)),hooks},[])}function getChangeHooks(routes){return routes.reduce(function(hooks,route){return route.onChange&&hooks.push(createTransitionHook(route.onChange,route,4,changeHooks)),hooks},[])}function runTransitionHooks(length,iter,callback){function replace(location){redirectInfo=location}if(!length)return void callback();var redirectInfo=void 0;Object(__WEBPACK_IMPORTED_MODULE_0__AsyncUtils__.a)(length,function(index,next,done){iter(index,replace,function(error){error||redirectInfo?done(error,redirectInfo):next()})},callback)}function runEnterHooks(routes,nextState,callback){enterHooks.clear();var hooks=getEnterHooks(routes);return runTransitionHooks(hooks.length,function(index,replace,next){var wrappedNext=function(){enterHooks.has(hooks[index])&&(next.apply(void 0,arguments),enterHooks.remove(hooks[index]))};hooks[index](nextState,replace,wrappedNext)},callback)}function runChangeHooks(routes,state,nextState,callback){changeHooks.clear();var hooks=getChangeHooks(routes);return runTransitionHooks(hooks.length,function(index,replace,next){var wrappedNext=function(){changeHooks.has(hooks[index])&&(next.apply(void 0,arguments),changeHooks.remove(hooks[index]))};hooks[index](state,nextState,replace,wrappedNext)},callback)}function runLeaveHooks(routes,prevState){for(var i=0,len=routes.length;i<len;++i)routes[i].onLeave&&routes[i].onLeave.call(routes[i],prevState)}var enterHooks=new PendingHooks,changeHooks=new PendingHooks;return{runEnterHooks:runEnterHooks,runChangeHooks:runChangeHooks,runLeaveHooks:runLeaveHooks}}__webpack_exports__.a=getTransitionUtils;var __WEBPACK_IMPORTED_MODULE_0__AsyncUtils__=__webpack_require__(51),PendingHooks=function PendingHooks(){var _this=this;_classCallCheck(this,PendingHooks),this.hooks=[],this.add=function(hook){return _this.hooks.push(hook)},this.remove=function(hook){return _this.hooks=_this.hooks.filter(function(h){return h!==hook})},this.has=function(hook){return-1!==_this.hooks.indexOf(hook)},this.clear=function(){return _this.hooks=[]}}},function(module,__webpack_exports__,__webpack_require__){"use strict";function deepEqual(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 deepEqual(item,b[index])});if("object"===(void 0===a?"undefined":_typeof(a))){for(var p in a)if(Object.prototype.hasOwnProperty.call(a,p))if(void 0===a[p]){if(void 0!==b[p])return!1}else{if(!Object.prototype.hasOwnProperty.call(b,p))return!1;if(!deepEqual(a[p],b[p]))return!1}return!0}return String(a)===String(b)}function pathIsActive(pathname,currentPathname){return"/"!==currentPathname.charAt(0)&&(currentPathname="/"+currentPathname),"/"!==pathname.charAt(pathname.length-1)&&(pathname+="/"),"/"!==currentPathname.charAt(currentPathname.length-1)&&(currentPathname+="/"),currentPathname===pathname}function routeIsActive(pathname,routes,params){for(var remainingPathname=pathname,paramNames=[],paramValues=[],i=0,len=routes.length;i<len;++i){var route=routes[i],pattern=route.path||"";if("/"===pattern.charAt(0)&&(remainingPathname=pathname,paramNames=[],paramValues=[]),null!==remainingPathname&&pattern){var matched=Object(__WEBPACK_IMPORTED_MODULE_0__PatternUtils__.c)(pattern,remainingPathname);if(matched?(remainingPathname=matched.remainingPathname,paramNames=[].concat(paramNames,matched.paramNames),paramValues=[].concat(paramValues,matched.paramValues)):remainingPathname=null,""===remainingPathname)return paramNames.every(function(paramName,index){return String(paramValues[index])===String(params[paramName])})}}return!1}function queryIsActive(query,activeQuery){return null==activeQuery?null==query:null==query||deepEqual(query,activeQuery)}function isActive(_ref,indexOnly,currentLocation,routes,params){var pathname=_ref.pathname,query=_ref.query;return null!=currentLocation&&("/"!==pathname.charAt(0)&&(pathname="/"+pathname),!!(pathIsActive(pathname,currentLocation.pathname)||!indexOnly&&routeIsActive(pathname,routes,params))&&queryIsActive(query,currentLocation.query))}__webpack_exports__.a=isActive;var __WEBPACK_IMPORTED_MODULE_0__PatternUtils__=__webpack_require__(33),_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}},function(module,__webpack_exports__,__webpack_require__){"use strict";function getComponentsForRoute(nextState,route,callback){if(route.component||route.components)return void callback(null,route.component||route.components);var getComponent=route.getComponent||route.getComponents;if(getComponent){var componentReturn=getComponent.call(route,nextState,callback);Object(__WEBPACK_IMPORTED_MODULE_1__PromiseUtils__.a)(componentReturn)&&componentReturn.then(function(component){return callback(null,component)},callback)}else callback()}function getComponents(nextState,callback){Object(__WEBPACK_IMPORTED_MODULE_0__AsyncUtils__.b)(nextState.routes,function(route,index,callback){getComponentsForRoute(nextState,route,callback)},callback)}var __WEBPACK_IMPORTED_MODULE_0__AsyncUtils__=__webpack_require__(51),__WEBPACK_IMPORTED_MODULE_1__PromiseUtils__=__webpack_require__(75);__webpack_exports__.a=getComponents},function(module,__webpack_exports__,__webpack_require__){"use strict";function getChildRoutes(route,location,paramNames,paramValues,callback){if(route.childRoutes)return[null,route.childRoutes];if(!route.getChildRoutes)return[];var sync=!0,result=void 0,partialNextState={location:location,params:createParams(paramNames,paramValues)},childRoutesReturn=route.getChildRoutes(partialNextState,function(error,childRoutes){if(childRoutes=!error&&Object(__WEBPACK_IMPORTED_MODULE_4__RouteUtils__.b)(childRoutes),sync)return void(result=[error,childRoutes]);callback(error,childRoutes)});return Object(__WEBPACK_IMPORTED_MODULE_1__PromiseUtils__.a)(childRoutesReturn)&&childRoutesReturn.then(function(childRoutes){return callback(null,Object(__WEBPACK_IMPORTED_MODULE_4__RouteUtils__.b)(childRoutes))},callback),sync=!1,result}function getIndexRoute(route,location,paramNames,paramValues,callback){if(route.indexRoute)callback(null,route.indexRoute);else if(route.getIndexRoute){var partialNextState={location:location,params:createParams(paramNames,paramValues)},indexRoutesReturn=route.getIndexRoute(partialNextState,function(error,indexRoute){callback(error,!error&&Object(__WEBPACK_IMPORTED_MODULE_4__RouteUtils__.b)(indexRoute)[0])});Object(__WEBPACK_IMPORTED_MODULE_1__PromiseUtils__.a)(indexRoutesReturn)&&indexRoutesReturn.then(function(indexRoute){return callback(null,Object(__WEBPACK_IMPORTED_MODULE_4__RouteUtils__.b)(indexRoute)[0])},callback)}else if(route.childRoutes||route.getChildRoutes){var onChildRoutes=function(error,childRoutes){if(error)return void callback(error);var pathless=childRoutes.filter(function(childRoute){return!childRoute.path});Object(__WEBPACK_IMPORTED_MODULE_0__AsyncUtils__.a)(pathless.length,function(index,next,done){getIndexRoute(pathless[index],location,paramNames,paramValues,function(error,indexRoute){if(error||indexRoute){var routes=[pathless[index]].concat(Array.isArray(indexRoute)?indexRoute:[indexRoute]);done(error,routes)}else next()})},function(err,routes){callback(null,routes)})},result=getChildRoutes(route,location,paramNames,paramValues,onChildRoutes);result&&onChildRoutes.apply(void 0,result)}else callback()}function assignParams(params,paramNames,paramValues){return paramNames.reduce(function(params,paramName,index){var paramValue=paramValues&¶mValues[index];return Array.isArray(params[paramName])?params[paramName].push(paramValue):params[paramName]=paramName in params?[params[paramName],paramValue]:paramValue,params},params)}function createParams(paramNames,paramValues){return assignParams({},paramNames,paramValues)}function matchRouteDeep(route,location,remainingPathname,paramNames,paramValues,callback){var pattern=route.path||"";if("/"===pattern.charAt(0)&&(remainingPathname=location.pathname,paramNames=[],paramValues=[]),null!==remainingPathname&&pattern){try{var matched=Object(__WEBPACK_IMPORTED_MODULE_2__PatternUtils__.c)(pattern,remainingPathname);matched?(remainingPathname=matched.remainingPathname,paramNames=[].concat(paramNames,matched.paramNames),paramValues=[].concat(paramValues,matched.paramValues)):remainingPathname=null}catch(error){callback(error)}if(""===remainingPathname){var match={routes:[route],params:createParams(paramNames,paramValues)};return void getIndexRoute(route,location,paramNames,paramValues,function(error,indexRoute){if(error)callback(error);else{if(Array.isArray(indexRoute)){var _match$routes;(_match$routes=match.routes).push.apply(_match$routes,indexRoute)}else indexRoute&&match.routes.push(indexRoute);callback(null,match)}})}}if(null!=remainingPathname||route.childRoutes){var onChildRoutes=function(error,childRoutes){error?callback(error):childRoutes?matchRoutes(childRoutes,location,function(error,match){error?callback(error):match?(match.routes.unshift(route),callback(null,match)):callback()},remainingPathname,paramNames,paramValues):callback()},result=getChildRoutes(route,location,paramNames,paramValues,onChildRoutes);result&&onChildRoutes.apply(void 0,result)}else callback()}function matchRoutes(routes,location,callback,remainingPathname){var paramNames=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],paramValues=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[];void 0===remainingPathname&&("/"!==location.pathname.charAt(0)&&(location=_extends({},location,{pathname:"/"+location.pathname})),remainingPathname=location.pathname),Object(__WEBPACK_IMPORTED_MODULE_0__AsyncUtils__.a)(routes.length,function(index,next,done){matchRouteDeep(routes[index],location,remainingPathname,paramNames,paramValues,function(error,match){error||match?done(error,match):next()})},callback)}__webpack_exports__.a=matchRoutes;var __WEBPACK_IMPORTED_MODULE_0__AsyncUtils__=__webpack_require__(51),__WEBPACK_IMPORTED_MODULE_1__PromiseUtils__=__webpack_require__(75),__WEBPACK_IMPORTED_MODULE_2__PatternUtils__=__webpack_require__(33),__WEBPACK_IMPORTED_MODULE_4__RouteUtils__=(__webpack_require__(32),__webpack_require__(28)),_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}},function(module,__webpack_exports__,__webpack_require__){"use strict";function getRouteParams(route,params){var routeParams={};return route.path?(Object(__WEBPACK_IMPORTED_MODULE_0__PatternUtils__.b)(route.path).forEach(function(p){Object.prototype.hasOwnProperty.call(params,p)&&(routeParams[p]=params[p])}),routeParams):routeParams}var __WEBPACK_IMPORTED_MODULE_0__PatternUtils__=__webpack_require__(33);__webpack_exports__.a=getRouteParams},function(module,__webpack_exports__,__webpack_require__){"use strict";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_create_react_class__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_1_create_react_class___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_create_react_class__),__WEBPACK_IMPORTED_MODULE_2__Link__=__webpack_require__(77),_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},IndexLink=__WEBPACK_IMPORTED_MODULE_1_create_react_class___default()({displayName:"IndexLink",render:function(){return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__Link__.a,_extends({},this.props,{onlyActiveOnIndex:!0}))}});__webpack_exports__.a=IndexLink},function(module,__webpack_exports__,__webpack_require__){"use strict";function getDisplayName(WrappedComponent){return WrappedComponent.displayName||WrappedComponent.name||"Component"}function withRouter(WrappedComponent,options){var withRef=options&&options.withRef,WithRouter=__WEBPACK_IMPORTED_MODULE_2_create_react_class___default()({displayName:"WithRouter",mixins:[Object(__WEBPACK_IMPORTED_MODULE_4__ContextUtils__.b)("router")],contextTypes:{router:__WEBPACK_IMPORTED_MODULE_5__PropTypes__.b},propTypes:{router:__WEBPACK_IMPORTED_MODULE_5__PropTypes__.b},getWrappedInstance:function(){return withRef||__WEBPACK_IMPORTED_MODULE_0_invariant___default()(!1),this.wrappedInstance},render:function(){var _this=this,router=this.props.router||this.context.router;if(!router)return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(WrappedComponent,this.props);var params=router.params,location=router.location,routes=router.routes,props=_extends({},this.props,{router:router,params:params,location:location,routes:routes});return withRef&&(props.ref=function(c){_this.wrappedInstance=c}),__WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(WrappedComponent,props)}});return WithRouter.displayName="withRouter("+getDisplayName(WrappedComponent)+")",WithRouter.WrappedComponent=WrappedComponent,__WEBPACK_IMPORTED_MODULE_3_hoist_non_react_statics___default()(WithRouter,WrappedComponent)}__webpack_exports__.a=withRouter;var __WEBPACK_IMPORTED_MODULE_0_invariant__=__webpack_require__(17),__WEBPACK_IMPORTED_MODULE_0_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_invariant__),__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_create_react_class__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_2_create_react_class___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_create_react_class__),__WEBPACK_IMPORTED_MODULE_3_hoist_non_react_statics__=__webpack_require__(65),__WEBPACK_IMPORTED_MODULE_3_hoist_non_react_statics___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_hoist_non_react_statics__),__WEBPACK_IMPORTED_MODULE_4__ContextUtils__=__webpack_require__(53),__WEBPACK_IMPORTED_MODULE_5__PropTypes__=__webpack_require__(54),_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}},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_create_react_class__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_0_create_react_class___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_create_react_class__),__WEBPACK_IMPORTED_MODULE_1_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_3_invariant__=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__),__webpack_require__(32),__webpack_require__(17)),__WEBPACK_IMPORTED_MODULE_3_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_invariant__),__WEBPACK_IMPORTED_MODULE_4__Redirect__=__webpack_require__(78),__WEBPACK_IMPORTED_MODULE_5__InternalPropTypes__=__webpack_require__(37),IndexRedirect=__WEBPACK_IMPORTED_MODULE_0_create_react_class___default()({displayName:"IndexRedirect",statics:{createRouteFromReactElement:function(element,parentRoute){parentRoute&&(parentRoute.indexRoute=__WEBPACK_IMPORTED_MODULE_4__Redirect__.a.createRouteFromReactElement(element))}},propTypes:{to:__WEBPACK_IMPORTED_MODULE_1_prop_types__.string.isRequired,query:__WEBPACK_IMPORTED_MODULE_1_prop_types__.object,state:__WEBPACK_IMPORTED_MODULE_1_prop_types__.object,onEnter:__WEBPACK_IMPORTED_MODULE_5__InternalPropTypes__.c,children:__WEBPACK_IMPORTED_MODULE_5__InternalPropTypes__.c},render:function(){__WEBPACK_IMPORTED_MODULE_3_invariant___default()(!1)}});__webpack_exports__.a=IndexRedirect},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_create_react_class__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_0_create_react_class___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_create_react_class__),__WEBPACK_IMPORTED_MODULE_1_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_3_invariant__=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__),__webpack_require__(32),__webpack_require__(17)),__WEBPACK_IMPORTED_MODULE_3_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_invariant__),__WEBPACK_IMPORTED_MODULE_4__RouteUtils__=__webpack_require__(28),__WEBPACK_IMPORTED_MODULE_5__InternalPropTypes__=__webpack_require__(37),IndexRoute=__WEBPACK_IMPORTED_MODULE_0_create_react_class___default()({displayName:"IndexRoute",statics:{createRouteFromReactElement:function(element,parentRoute){parentRoute&&(parentRoute.indexRoute=Object(__WEBPACK_IMPORTED_MODULE_4__RouteUtils__.a)(element))}},propTypes:{path:__WEBPACK_IMPORTED_MODULE_5__InternalPropTypes__.c,component:__WEBPACK_IMPORTED_MODULE_5__InternalPropTypes__.a,components:__WEBPACK_IMPORTED_MODULE_5__InternalPropTypes__.b,getComponent:__WEBPACK_IMPORTED_MODULE_1_prop_types__.func,getComponents:__WEBPACK_IMPORTED_MODULE_1_prop_types__.func},render:function(){__WEBPACK_IMPORTED_MODULE_3_invariant___default()(!1)}});__webpack_exports__.a=IndexRoute},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_create_react_class__=__webpack_require__(26),__WEBPACK_IMPORTED_MODULE_0_create_react_class___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_create_react_class__),__WEBPACK_IMPORTED_MODULE_1_prop_types__=__webpack_require__(11),__WEBPACK_IMPORTED_MODULE_2_invariant__=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__),__webpack_require__(17)),__WEBPACK_IMPORTED_MODULE_2_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_invariant__),__WEBPACK_IMPORTED_MODULE_3__RouteUtils__=__webpack_require__(28),__WEBPACK_IMPORTED_MODULE_4__InternalPropTypes__=__webpack_require__(37),Route=__WEBPACK_IMPORTED_MODULE_0_create_react_class___default()({displayName:"Route",statics:{createRouteFromReactElement:__WEBPACK_IMPORTED_MODULE_3__RouteUtils__.a},propTypes:{path:__WEBPACK_IMPORTED_MODULE_1_prop_types__.string,component:__WEBPACK_IMPORTED_MODULE_4__InternalPropTypes__.a,components:__WEBPACK_IMPORTED_MODULE_4__InternalPropTypes__.b,getComponent:__WEBPACK_IMPORTED_MODULE_1_prop_types__.func,getComponents:__WEBPACK_IMPORTED_MODULE_1_prop_types__.func},render:function(){__WEBPACK_IMPORTED_MODULE_2_invariant___default()(!1)}});__webpack_exports__.a=Route},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 match(_ref,callback){var history=_ref.history,routes=_ref.routes,location=_ref.location,options=_objectWithoutProperties(_ref,["history","routes","location"]);history||location||__WEBPACK_IMPORTED_MODULE_1_invariant___default()(!1),history=history||Object(__WEBPACK_IMPORTED_MODULE_2__createMemoryHistory__.a)(options);var transitionManager=Object(__WEBPACK_IMPORTED_MODULE_3__createTransitionManager__.a)(history,Object(__WEBPACK_IMPORTED_MODULE_4__RouteUtils__.b)(routes));location=location?history.createLocation(location):history.getCurrentLocation(),transitionManager.match(location,function(error,redirectLocation,nextState){var renderProps=void 0;if(nextState){var router=Object(__WEBPACK_IMPORTED_MODULE_5__RouterUtils__.b)(history,transitionManager,nextState);renderProps=_extends({},nextState,{router:router,matchContext:{transitionManager:transitionManager,router:router}})}callback(error,redirectLocation&&history.createLocation(redirectLocation,__WEBPACK_IMPORTED_MODULE_0_history_lib_Actions__.REPLACE),renderProps)})}var __WEBPACK_IMPORTED_MODULE_0_history_lib_Actions__=__webpack_require__(44),__WEBPACK_IMPORTED_MODULE_1_invariant__=(__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_history_lib_Actions__),__webpack_require__(17)),__WEBPACK_IMPORTED_MODULE_1_invariant___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__),__WEBPACK_IMPORTED_MODULE_2__createMemoryHistory__=__webpack_require__(79),__WEBPACK_IMPORTED_MODULE_3__createTransitionManager__=__webpack_require__(74),__WEBPACK_IMPORTED_MODULE_4__RouteUtils__=__webpack_require__(28),__WEBPACK_IMPORTED_MODULE_5__RouterUtils__=__webpack_require__(76),_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};__webpack_exports__.a=match},function(module,exports,__webpack_require__){"use strict";function encoderForArrayFormat(opts){switch(opts.arrayFormat){case"index":return function(key,value,index){return null===value?[encode(key,opts),"[",index,"]"].join(""):[encode(key,opts),"[",encode(index,opts),"]=",encode(value,opts)].join("")};case"bracket":return function(key,value){return null===value?encode(key,opts):[encode(key,opts),"[]=",encode(value,opts)].join("")};default:return function(key,value){return null===value?encode(key,opts):[encode(key,opts),"=",encode(value,opts)].join("")}}}function parserForArrayFormat(opts){var result;switch(opts.arrayFormat){case"index":return function(key,value,accumulator){if(result=/\[(\d*)\]$/.exec(key),key=key.replace(/\[\d*\]$/,""),!result)return void(accumulator[key]=value);void 0===accumulator[key]&&(accumulator[key]={}),accumulator[key][result[1]]=value};case"bracket":return function(key,value,accumulator){return result=/(\[\])$/.exec(key),key=key.replace(/\[\]$/,""),result?void 0===accumulator[key]?void(accumulator[key]=[value]):void(accumulator[key]=[].concat(accumulator[key],value)):void(accumulator[key]=value)};default:return function(key,value,accumulator){if(void 0===accumulator[key])return void(accumulator[key]=value);accumulator[key]=[].concat(accumulator[key],value)}}}function encode(value,opts){return opts.encode?opts.strict?strictUriEncode(value):encodeURIComponent(value):value}function keysSorter(input){return Array.isArray(input)?input.sort():"object"==typeof input?keysSorter(Object.keys(input)).sort(function(a,b){return Number(a)-Number(b)}).map(function(key){return input[key]}):input}var strictUriEncode=__webpack_require__(154),objectAssign=__webpack_require__(42);exports.extract=function(str){return str.split("?")[1]||""},exports.parse=function(str,opts){opts=objectAssign({arrayFormat:"none"},opts);var formatter=parserForArrayFormat(opts),ret=Object.create(null);return"string"!=typeof str?ret:(str=str.trim().replace(/^(\?|#|&)/,""))?(str.split("&").forEach(function(param){var parts=param.replace(/\+/g," ").split("="),key=parts.shift(),val=parts.length>0?parts.join("="):void 0;val=void 0===val?null:decodeURIComponent(val),formatter(decodeURIComponent(key),val,ret)}),Object.keys(ret).sort().reduce(function(result,key){var val=ret[key];return Boolean(val)&&"object"==typeof val&&!Array.isArray(val)?result[key]=keysSorter(val):result[key]=val,result},Object.create(null))):ret},exports.stringify=function(obj,opts){opts=objectAssign({encode:!0,strict:!0,arrayFormat:"none"},opts);var formatter=encoderForArrayFormat(opts);return obj?Object.keys(obj).sort().map(function(key){var val=obj[key];if(void 0===val)return"";if(null===val)return encode(key,opts);if(Array.isArray(val)){var result=[];return val.slice().forEach(function(val2){void 0!==val2&&result.push(formatter(key,val2,result.length))}),result.join("&")}return encode(key,opts)+"="+encode(val,opts)}).filter(function(x){return x.length>0}).join("&"):""}},function(module,exports,__webpack_require__){"use strict";module.exports=function(str){return encodeURIComponent(str).replace(/[!'()*]/g,function(c){return"%"+c.charCodeAt(0).toString(16).toUpperCase()})}},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.__esModule=!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},_warning=__webpack_require__(27),_invariant=(_interopRequireDefault(_warning),__webpack_require__(17)),_invariant2=_interopRequireDefault(_invariant),_LocationUtils=__webpack_require__(34),_PathUtils=__webpack_require__(29),_createHistory=__webpack_require__(56),_createHistory2=_interopRequireDefault(_createHistory),_Actions=__webpack_require__(44),createStateStorage=function(entries){return entries.filter(function(entry){return entry.state}).reduce(function(memo,entry){return memo[entry.key]=entry.state,memo},{})},createMemoryHistory=function(){var options=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Array.isArray(options)?options={entries:options}:"string"==typeof options&&(options={entries:[options]});var getCurrentLocation=function(){var entry=entries[current],path=(0,_PathUtils.createPath)(entry),key=void 0,state=void 0;entry.key&&(key=entry.key,state=readState(key));var init=(0,_PathUtils.parsePath)(path);return(0,_LocationUtils.createLocation)(_extends({},init,{state:state}),void 0,key)},canGo=function(n){var index=current+n;return index>=0&&index<entries.length},go=function(n){if(n&&canGo(n)){current+=n;var currentLocation=getCurrentLocation();history.transitionTo(_extends({},currentLocation,{action:_Actions.POP}))}},pushLocation=function(location){current+=1,current<entries.length&&entries.splice(current),entries.push(location),saveState(location.key,location.state)},replaceLocation=function(location){entries[current]=location,saveState(location.key,location.state)},history=(0,_createHistory2.default)(_extends({},options,{getCurrentLocation:getCurrentLocation,pushLocation:pushLocation,replaceLocation:replaceLocation,go:go})),_options=options,entries=_options.entries,current=_options.current;"string"==typeof entries?entries=[entries]:Array.isArray(entries)||(entries=["/"]),entries=entries.map(function(entry){return(0,_LocationUtils.createLocation)(entry)}),null==current?current=entries.length-1:current>=0&¤t<entries.length||(0,_invariant2.default)(!1);var storage=createStateStorage(entries),saveState=function(key,state){return storage[key]=state},readState=function(key){return storage[key]};return _extends({},history,{canGo:canGo})};exports.default=createMemoryHistory},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0;exports.loopAsync=function(turns,work,callback){var currentTurn=0,isDone=!1,isSync=!1,hasNext=!1,doneArgs=void 0,done=function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];if(isDone=!0,isSync)return void(doneArgs=args);callback.apply(void 0,args)};!function next(){if(!isDone&&(hasNext=!0,!isSync)){for(isSync=!0;!isDone&¤tTurn<turns&&hasNext;)hasNext=!1,work(currentTurn++,next,done);if(isSync=!1,isDone)return void callback.apply(void 0,doneArgs);currentTurn>=turns&&hasNext&&(isDone=!0,callback())}}()}},function(module,__webpack_exports__,__webpack_require__){"use strict";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__RouterContext__=__webpack_require__(52),_extends=(__webpack_require__(32),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});__webpack_exports__.a=function(){for(var _len=arguments.length,middlewares=Array(_len),_key=0;_key<_len;_key++)middlewares[_key]=arguments[_key];var withContext=middlewares.map(function(middleware){return middleware.renderRouterContext}).filter(Boolean),withComponent=middlewares.map(function(middleware){return middleware.renderRouteComponent}).filter(Boolean),makeCreateElement=function(){var baseCreateElement=arguments.length>0&&void 0!==arguments[0]?arguments[0]:__WEBPACK_IMPORTED_MODULE_0_react__.createElement;return function(Component,props){return withComponent.reduceRight(function(previous,renderRouteComponent){return renderRouteComponent(previous,props)},baseCreateElement(Component,props))}};return function(renderProps){return withContext.reduceRight(function(previous,renderRouterContext){return renderRouterContext(previous,renderProps)},__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1__RouterContext__.a,_extends({},renderProps,{createElement:makeCreateElement(renderProps.createElement)})))}}},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_history_lib_createBrowserHistory__=__webpack_require__(159),__WEBPACK_IMPORTED_MODULE_0_history_lib_createBrowserHistory___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_history_lib_createBrowserHistory__),__WEBPACK_IMPORTED_MODULE_1__createRouterHistory__=__webpack_require__(84);__webpack_exports__.a=Object(__WEBPACK_IMPORTED_MODULE_1__createRouterHistory__.a)(__WEBPACK_IMPORTED_MODULE_0_history_lib_createBrowserHistory___default.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}}exports.__esModule=!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},_invariant=__webpack_require__(17),_invariant2=_interopRequireDefault(_invariant),_ExecutionEnvironment=__webpack_require__(57),_BrowserProtocol=__webpack_require__(58),BrowserProtocol=_interopRequireWildcard(_BrowserProtocol),_RefreshProtocol=__webpack_require__(160),RefreshProtocol=_interopRequireWildcard(_RefreshProtocol),_DOMUtils=__webpack_require__(45),_createHistory=__webpack_require__(56),_createHistory2=_interopRequireDefault(_createHistory),createBrowserHistory=function(){var options=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_ExecutionEnvironment.canUseDOM||(0,_invariant2.default)(!1);var useRefresh=options.forceRefresh||!(0,_DOMUtils.supportsHistory)(),Protocol=useRefresh?RefreshProtocol:BrowserProtocol,getUserConfirmation=Protocol.getUserConfirmation,getCurrentLocation=Protocol.getCurrentLocation,pushLocation=Protocol.pushLocation,replaceLocation=Protocol.replaceLocation,go=Protocol.go,history=(0,_createHistory2.default)(_extends({getUserConfirmation:getUserConfirmation},options,{getCurrentLocation:getCurrentLocation,pushLocation:pushLocation,replaceLocation:replaceLocation,go:go})),listenerCount=0,stopListener=void 0,startListener=function(listener,before){1==++listenerCount&&(stopListener=BrowserProtocol.startListener(history.transitionTo));var unlisten=before?history.listenBefore(listener):history.listen(listener);return function(){unlisten(),0==--listenerCount&&stopListener()}};return _extends({},history,{listenBefore:function(listener){return startListener(listener,!0)},listen:function(listener){return startListener(listener,!1)}})};exports.default=createBrowserHistory},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.replaceLocation=exports.pushLocation=exports.getCurrentLocation=exports.go=exports.getUserConfirmation=void 0;var _BrowserProtocol=__webpack_require__(58);Object.defineProperty(exports,"getUserConfirmation",{enumerable:!0,get:function(){return _BrowserProtocol.getUserConfirmation}}),Object.defineProperty(exports,"go",{enumerable:!0,get:function(){return _BrowserProtocol.go}});var _LocationUtils=__webpack_require__(34),_PathUtils=__webpack_require__(29);exports.getCurrentLocation=function(){return(0,_LocationUtils.createLocation)(window.location)},exports.pushLocation=function(location){return window.location.href=(0,_PathUtils.createPath)(location),!1},exports.replaceLocation=function(location){return window.location.replace((0,_PathUtils.createPath)(location)),!1}},function(module,__webpack_exports__,__webpack_require__){"use strict";var __WEBPACK_IMPORTED_MODULE_0_history_lib_createHashHistory__=__webpack_require__(162),__WEBPACK_IMPORTED_MODULE_0_history_lib_createHashHistory___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_history_lib_createHashHistory__),__WEBPACK_IMPORTED_MODULE_1__createRouterHistory__=__webpack_require__(84);__webpack_exports__.a=Object(__WEBPACK_IMPORTED_MODULE_1__createRouterHistory__.a)(__WEBPACK_IMPORTED_MODULE_0_history_lib_createHashHistory___default.a)},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.__esModule=!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},_warning=__webpack_require__(27),_invariant=(_interopRequireDefault(_warning),__webpack_require__(17)),_invariant2=_interopRequireDefault(_invariant),_ExecutionEnvironment=__webpack_require__(57),_DOMUtils=__webpack_require__(45),_HashProtocol=__webpack_require__(163),HashProtocol=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}(_HashProtocol),_createHistory=__webpack_require__(56),_createHistory2=_interopRequireDefault(_createHistory),addLeadingSlash=function(path){return"/"===path.charAt(0)?path:"/"+path},HashPathCoders={hashbang:{encodePath:function(path){return"!"===path.charAt(0)?path:"!"+path},decodePath:function(path){return"!"===path.charAt(0)?path.substring(1):path}},noslash:{encodePath:function(path){return"/"===path.charAt(0)?path.substring(1):path},decodePath:addLeadingSlash},slash:{encodePath:addLeadingSlash,decodePath:addLeadingSlash}},createHashHistory=function(){var options=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_ExecutionEnvironment.canUseDOM||(0,_invariant2.default)(!1);var queryKey=options.queryKey,hashType=options.hashType;"string"!=typeof queryKey&&(queryKey="_k"),null==hashType&&(hashType="slash"),hashType in HashPathCoders||(hashType="slash");var pathCoder=HashPathCoders[hashType],getUserConfirmation=HashProtocol.getUserConfirmation,getCurrentLocation=function(){return HashProtocol.getCurrentLocation(pathCoder,queryKey)},pushLocation=function(location){return HashProtocol.pushLocation(location,pathCoder,queryKey)},replaceLocation=function(location){return HashProtocol.replaceLocation(location,pathCoder,queryKey)},history=(0,_createHistory2.default)(_extends({getUserConfirmation:getUserConfirmation},options,{getCurrentLocation:getCurrentLocation,pushLocation:pushLocation,replaceLocation:replaceLocation,go:HashProtocol.go})),listenerCount=0,stopListener=void 0,startListener=function(listener,before){1==++listenerCount&&(stopListener=HashProtocol.startListener(history.transitionTo,pathCoder,queryKey));var unlisten=before?history.listenBefore(listener):history.listen(listener);return function(){unlisten(),0==--listenerCount&&stopListener()}},listenBefore=function(listener){return startListener(listener,!0)},listen=function(listener){return startListener(listener,!1)};(0,_DOMUtils.supportsGoWithoutReloadUsingHash)();return _extends({},history,{listenBefore:listenBefore,listen:listen,go:function(n){history.go(n)},createHref:function(path){return"#"+pathCoder.encodePath(history.createHref(path))}})};exports.default=createHashHistory},function(module,exports,__webpack_require__){"use strict";exports.__esModule=!0,exports.replaceLocation=exports.pushLocation=exports.startListener=exports.getCurrentLocation=exports.go=exports.getUserConfirmation=void 0;var _BrowserProtocol=__webpack_require__(58);Object.defineProperty(exports,"getUserConfirmation",{enumerable:!0,get:function(){return _BrowserProtocol.getUserConfirmation}}),Object.defineProperty(exports,"go",{enumerable:!0,get:function(){return _BrowserProtocol.go}});var _warning=__webpack_require__(27),_LocationUtils=(function(obj){obj&&obj.__esModule}(_warning),__webpack_require__(34)),_DOMUtils=__webpack_require__(45),_DOMStateStorage=__webpack_require__(83),_PathUtils=__webpack_require__(29),getHashPath=function(){var href=window.location.href,hashIndex=href.indexOf("#");return-1===hashIndex?"":href.substring(hashIndex+1)},pushHashPath=function(path){return window.location.hash=path},replaceHashPath=function(path){var hashIndex=window.location.href.indexOf("#");window.location.replace(window.location.href.slice(0,hashIndex>=0?hashIndex:0)+"#"+path)},getCurrentLocation=exports.getCurrentLocation=function(pathCoder,queryKey){var path=pathCoder.decodePath(getHashPath()),key=(0,_PathUtils.getQueryStringValueFromPath)(path,queryKey),state=void 0;key&&(path=(0,_PathUtils.stripQueryStringValueFromPath)(path,queryKey),state=(0,_DOMStateStorage.readState)(key));var init=(0,_PathUtils.parsePath)(path);return init.state=state,(0,_LocationUtils.createLocation)(init,void 0,key)},prevLocation=void 0,updateLocation=(exports.startListener=function(listener,pathCoder,queryKey){var handleHashChange=function(){var path=getHashPath(),encodedPath=pathCoder.encodePath(path);if(path!==encodedPath)replaceHashPath(encodedPath);else{var currentLocation=getCurrentLocation(pathCoder,queryKey);if(prevLocation&¤tLocation.key&&prevLocation.key===currentLocation.key)return;prevLocation=currentLocation,listener(currentLocation)}},path=getHashPath(),encodedPath=pathCoder.encodePath(path);return path!==encodedPath&&replaceHashPath(encodedPath),(0,_DOMUtils.addEventListener)(window,"hashchange",handleHashChange),function(){return(0,_DOMUtils.removeEventListener)(window,"hashchange",handleHashChange)}},function(location,pathCoder,queryKey,updateHash){var state=location.state,key=location.key,path=pathCoder.encodePath((0,_PathUtils.createPath)(location));void 0!==state&&(path=(0,_PathUtils.addQueryStringValueToPath)(path,queryKey,key),(0,_DOMStateStorage.saveState)(key,state)),prevLocation=location,updateHash(path)});exports.pushLocation=function(location,pathCoder,queryKey){return updateLocation(location,pathCoder,queryKey,function(path){getHashPath()!==path&&pushHashPath(path)})},exports.replaceLocation=function(location,pathCoder,queryKey){return updateLocation(location,pathCoder,queryKey,function(path){getHashPath()!==path&&replaceHashPath(path)})}},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _redux=__webpack_require__(2),_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__(165),_reducer2=_interopRequireDefault(_reducer),_reducer3=__webpack_require__(166),_reducer4=_interopRequireDefault(_reducer3),_reducer5=__webpack_require__(167),_reducer6=_interopRequireDefault(_reducer5),_reducer7=__webpack_require__(168),_reducer8=_interopRequireDefault(_reducer7),_reducer9=__webpack_require__(169),_reducer10=_interopRequireDefault(_reducer9),_reducer11=__webpack_require__(170),_reducer12=_interopRequireDefault(_reducer11),_reducer13=__webpack_require__(171),_reducer14=_interopRequireDefault(_reducer13),_reduxThunk=__webpack_require__(172),_reduxThunk2=_interopRequireDefault(_reduxThunk),_middleware=__webpack_require__(173),_middleware2=_interopRequireDefault(_middleware),_middleware3=__webpack_require__(174),_middleware4=_interopRequireDefault(_middleware3),_middleware5=__webpack_require__(175),_middleware6=_interopRequireDefault(_middleware5),_middleware7=__webpack_require__(176),_middleware8=_interopRequireDefault(_middleware7),_middleware9=__webpack_require__(196),_middleware10=_interopRequireDefault(_middleware9),_middleware11=__webpack_require__(197),_middleware12=_interopRequireDefault(_middleware11),_middleware13=__webpack_require__(201),_middleware14=_interopRequireDefault(_middleware13),reducers=(0,_redux.combineReducers)({core:_reducer2.default,ui:_reducer4.default,pusher:_reducer6.default,mopidy:_reducer8.default,lastfm:_reducer10.default,genius:_reducer14.default,spotify:_reducer12.default}),initialState={core:{outputs:[],queue:[],queue_metadata:{},current_track:null,albums:{},artists:{},playlists:{},users:{},tracks:{},http_streaming_enabled:!1,http_streaming_encoding:"mpeg",http_streaming_url:"http://"+window.location.hostname+":8000/mopidy"},ui:{show_initial_setup:!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:!1,uri_schemes:[]},pusher:{connected:!1,username:!1,connections:{},version:{current:"0.0.0"},config:{}},lastfm:{me:!1,authorization_url:"https://jamesbarnsley.co.nz/auth_lastfm.php"},genius:{},spotify:{me:!1,autocomplete_results:{},authorization_url:"https://jamesbarnsley.co.nz/auth_spotify.php"}};initialState.core=Object.assign({},initialState.core,helpers.getStorage("core")),initialState.ui=Object.assign({},initialState.ui,helpers.getStorage("ui")),initialState.mopidy=Object.assign({},initialState.mopidy,helpers.getStorage("mopidy")),initialState.pusher=Object.assign({},initialState.pusher,helpers.getStorage("pusher")),initialState.spotify=Object.assign({},initialState.spotify,helpers.getStorage("spotify")),initialState.lastfm=Object.assign({},initialState.lastfm,helpers.getStorage("lastfm"));var store=(0,_redux.createStore)(reducers,initialState,(0,_redux.applyMiddleware)(_reduxThunk2.default,_middleware14.default,_middleware2.default,_middleware4.default,_middleware8.default,_middleware6.default,_middleware12.default,_middleware10.default));exports.default=store},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"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"CATEGORY_LOADED":var categories=Object.assign([],core.categories);if(categories[action.key])var category=Object.assign({},categories[action.key],action.category);else var category=Object.assign({},action.category);return categories[action.key]=category,Object.assign({},core,{categories:categories});case"CATEGORIES_LOADED":for(var categories=Object.assign([],core.categories),i=0;i<action.categories.length;i++){var key="category:"+action.categories[i].id;if(categories[key])var category=Object.assign({},categories[key],action.categories[i]);else var category=Object.assign({},action.categories[i]);categories[key]=category}return Object.assign({},core,{categories:categories});case"CATEGORY_PLAYLISTS_LOADED":var categories=Object.assign([],core.categories),playlists_uris=[];categories[action.key].playlists_uris&&(playlists_uris=categories[action.key].playlists_uris);var category=Object.assign({},categories[action.key],{playlists_uris:[].concat(_toConsumableArray(playlists_uris),_toConsumableArray(action.uris)),playlists_more:action.more,playlists_total:action.total});return categories[action.key]=category,Object.assign({},core,{categories:categories});case"UPDATE_TRACKS_INDEX":return Object.assign({},core,{tracks:action.tracks});case"UPDATE_ALBUMS_INDEX":return Object.assign({},core,{albums:action.albums});case"UPDATE_ARTISTS_INDEX":return Object.assign({},core,{artists:action.artists});case"UPDATE_PLAYLISTS_INDEX":return Object.assign({},core,{playlists:action.playlists});case"UPDATE_USERS_INDEX":return Object.assign({},core,{users:action.users});case"NEW_RELEASES_LOADED":if(!action.uris)return Object.assign({},core,{new_releases:null,new_releases_more:null,new_releases_total:null});var new_releases=[];return core.new_releases&&(new_releases=Object.assign([],core.new_releases)),Object.assign({},core,{new_releases:[].concat(_toConsumableArray(new_releases),_toConsumableArray(action.uris)),new_releases_more:action.more,new_releases_total:action.total});case"ARTIST_ALBUMS_LOADED":var artists=Object.assign([],core.artists),albums_uris=[];artists[action.key].albums_uris&&(albums_uris=artists[action.key].albums_uris);var artist=Object.assign({},artists[action.key],{albums_uris:[].concat(_toConsumableArray(albums_uris),_toConsumableArray(action.uris)),albums_more:action.more,albums_total:action.total});return artists[action.key]=artist,Object.assign({},core,{artists:artists});case"USER_PLAYLISTS_LOADED":var users=Object.assign([],core.users),playlists_uris=[];users[action.key]&&users[action.key].playlists_uris&&(playlists_uris=users[action.key].playlists_uris);var artist=Object.assign({},users[action.key],{playlists_uris:[].concat(_toConsumableArray(playlists_uris),_toConsumableArray(action.uris)),playlists_more:action.more,playlists_total:action.total});return users[action.key]=artist,Object.assign({},core,{users:users});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"DEBUG":return Object.assign({},ui,{debug_response:action.response});case"UI_SET":return Object.assign({},ui,action.data);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_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"SHOW_CONTEXT_MENU":return Object.assign({},ui,{context_menu:action.data});case"HIDE_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: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_SNAPCAST":return Object.assign({},pusher,{snapcast_clients:action.snapcast_clients,snapcast_groups:action.snapcast_groups});case"PUSHER_SNAPCAST_CLIENT_UPDATED":var snapcast_clients=Object.assign({},pusher.snapcast_clients),client=snapcast_clients[action.key];return client.config=Object.assign({},client.config,action.client.config),snapcast_clients[action.key]=client,Object.assign({},pusher,{snapcast_clients:snapcast_clients});case"PUSHER_SNAPCAST_CLIENT_REMOVED":var snapcast_clients=Object.assign({},pusher.snapcast_clients);return delete snapcast_clients[action.key],Object.assign({},pusher,{snapcast_clients:snapcast_clients});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_CONNECT":case"MOPIDY_CONNECTING":return Object.assign({},mopidy,{connected:!1,connecting:!0});case"MOPIDY_RESTARTING":return Object.assign({},mopidy,{restarting:!0});case"MOPIDY_UPGRADING":return Object.assign({},mopidy,{upgrading:!0});case"MOPIDY_CONNECTED":return Object.assign({},mopidy,{connected:!0,connecting:!1,restarting:!1,upgrading:!1});case"MOPIDY_DISCONNECTED":return Object.assign({},mopidy,{connected:!1,connecting:!1});case"MOPIDY_SET_CONFIG":return Object.assign({},mopidy,{host:action.config.host,port:action.config.port,ssl:action.config.ssl});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_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_LOADED":return Object.assign({},mopidy,{directory:action.data});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_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_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_AUTHORIZATION_GRANTED":return Object.assign({},lastfm,{authorizing:!1,session:action.data.session});case"LASTFM_AUTHORIZATION_REVOKED":return Object.assign({},lastfm,{authorizing:!1,session:!1,me:!1});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.user});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.data});case"SPOTIFY_FEATURED_PLAYLISTS_LOADED":return Object.assign({},spotify,{featured_playlists:action.data});case"SPOTIFY_NEW_RELEASES_LOADED":return Object.assign({},spotify,{new_releases:action.data});case"SPOTIFY_NEW_RELEASES_LOADED_MORE":return Object.assign({},spotify,{new_releases:{href:action.data.albums.href,next:action.data.albums.next,previous:action.data.albums.previous,items:[].concat(_toConsumableArray(spotify.new_releases.items),_toConsumableArray(action.data.albums.items))}});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_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_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 genius=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};switch(arguments[1].type){case"GENIUS_CONNECT":case"GENIUS_CONNECTING":return Object.assign({},genius,{connected:!1,connecting:!0});case"GENIUS_CONNECTED":return Object.assign({},genius,{connected:!0,connecting:!1});default:return genius}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=reducer},function(module,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)}}}}exports.__esModule=!0;var thunk=createThunkMiddleware();thunk.withExtraArgument=createThunkMiddleware,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__(23),_reactGa2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_reactGa),coreActions=__webpack_require__(14),uiActions=__webpack_require__(4),mopidyActions=(__webpack_require__(16),__webpack_require__(8)),spotifyActions=__webpack_require__(7),helpers=(__webpack_require__(19),__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});Raven.captureException(new Error(message),{extra:data}),_reactGa2.default.event({category:"Error",action:message,label:description,nonInteraction:!0}),store.dispatch(uiActions.createNotification({content:message,type:"bad",description:description})),console.error(message,description,data);break;case"PLAY_PLAYLIST":_reactGa2.default.event({category:"Playlist",action:"Play",label:action.uri}),next(action);break;case"SAVE_PLAYLIST":_reactGa2.default.event({category:"Playlist",action:"Save",label:action.key}),next(action);break;case"CREATE_PLAYLIST":_reactGa2.default.event({category:"Playlist",action:"Create",label:+action.name}),next(action);break;case"REORDER_PLAYLIST_TRACKS":_reactGa2.default.event({category:"Playlist",action:"Reorder tracks",label:action.key}),next(action);break;case"ADD_PLAYLIST_TRACKS":_reactGa2.default.event({category:"Playlist",action:"Add tracks",label:action.playlist_uri}),next(action);break;case"REMOVE_PLAYLIST_TRACKS":_reactGa2.default.event({category:"Playlist",action:"Remove tracks",label:action.playlist_uri}),next(action);break;case"DELETE_PLAYLIST":_reactGa2.default.event({category:"Playlist",action:"Delete",label:action.uri}),next(action);break;case"SEARCH_STARTED":_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"PLAYLIST_TRACKS_ADDED":switch(store.dispatch(uiActions.createNotification({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"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_KEY_UPDATED":var playlists=Object.assign({},core.playlists);void 0===playlists[action.key]&&dispatch(coreActions.handleException("Cannot change key of playlist not in index"));var playlist=Object.assign({},playlists[action.key]);delete playlists[action.key],playlists[action.new_key]=playlist,store.dispatch({type:"UPDATE_PLAYLISTS_INDEX",playlists:playlists});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_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"CURRENT_TRACK_LOADED":store.dispatch({type:"TRACKS_LOADED",tracks:[action.track]}),helpers.setWindowTitle(action.track,store.getState().mopidy.play_state),next(action);break;case"CLEAR_CURRENT_TRACK":helpers.setWindowTitle(null,store.getState().mopidy.play_state);break;case"QUEUE_LOADED":store.dispatch({type:"TRACKS_LOADED",tracks:action.tracks}),next(action);break;case"TRACK_LOADED":store.dispatch({type:"TRACKS_LOADED",tracks:[action.track]});break;case"ALBUM_LOADED":store.dispatch({type:"ALBUMS_LOADED",albums:[action.album]});break;case"ARTIST_LOADED":store.dispatch({type:"ARTISTS_LOADED",artists:[action.artist]});break;case"PLAYLIST_LOADED":store.dispatch({type:"PLAYLISTS_LOADED",playlists:[action.playlist]});break;case"USER_LOADED":store.dispatch({type:"USERS_LOADED",users:[action.user]});break;case"TRACKS_LOADED":for(var tracks=Object.assign({},core.tracks),i=0;i<action.tracks.length;i++){var track=Object.assign({},helpers.formatTracks(action.tracks[i]));tracks[track.uri]&&(track=Object.assign({},tracks[track.uri],track)),track.album&&track.album.images&&track.album.images.length>0&&(track.album.images=helpers.digestMopidyImages(store.getState().mopidy,track.album.images),track.images=track.album.images),tracks[track.uri]=track}store.dispatch({type:"UPDATE_TRACKS_INDEX",tracks:tracks}),next(action);break;case"ALBUMS_LOADED":for(var albums=Object.assign({},core.albums),tracks_loaded=[],i=0;i<action.albums.length;i++){var album=Object.assign({},action.albums[i]);if(helpers.formatAlbum(album),albums[album.uri]&&(album=Object.assign({},albums[album.uri],album)),album.images&&album.images.length>0&&(album.images=helpers.digestMopidyImages(store.getState().mopidy,album.images)),album.tracks){var tracks=helpers.formatTracks(album.tracks),tracks_uris=helpers.arrayOf("uri",tracks);album.tracks_uris=tracks_uris,delete album.tracks,tracks_loaded=[].concat(_toConsumableArray(tracks_loaded),_toConsumableArray(tracks))}albums[album.uri]=album}store.dispatch({type:"TRACKS_LOADED",tracks:tracks_loaded}),store.dispatch({type:"UPDATE_ALBUMS_INDEX",albums:albums}),next(action);break;case"ARTISTS_LOADED":for(var artists=Object.assign({},core.artists),tracks_loaded=[],i=0;i<action.artists.length;i++){var artist=action.artists[i];if(artists[artist.uri]&&(artists[artist.uri].images&&(artist.images_additional=artist.images,delete artist.images),artist=Object.assign({},artists[artist.uri],artist)),artist.tracks){var tracks=helpers.formatTracks(artist.tracks),tracks_uris=helpers.arrayOf("uri",tracks);artist.tracks_uris=tracks_uris,delete artist.tracks,tracks_loaded=[].concat(_toConsumableArray(tracks_loaded),_toConsumableArray(tracks))}artists[artist.uri]=artist}store.dispatch({type:"TRACKS_LOADED",tracks:tracks_loaded}),store.dispatch({type:"UPDATE_ARTISTS_INDEX",artists:artists}),next(action);break;case"PLAYLISTS_LOADED":for(var playlists=Object.assign({},core.playlists),tracks_loaded=[],i=0;i<action.playlists.length;i++){var playlist=Object.assign({},action.playlists[i]);switch(helpers.uriSource(playlist.uri)){case"m3u":playlist.can_edit=!0;break;case"spotify":store.getState().spotify.authorization&&store.getState().spotify.me&&(playlist.can_edit=helpers.getFromUri("playlistowner",playlist.uri)==store.getState().spotify.me.id)}if(void 0!==playlists[playlist.uri]&&(playlist=Object.assign({},playlists[playlist.uri],playlist)),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[playlist.uri]=playlist}store.dispatch({type:"TRACKS_LOADED",tracks:tracks_loaded}),store.dispatch({type:"UPDATE_PLAYLISTS_INDEX",playlists:playlists}),next(action);break;case"USERS_LOADED":for(var users=Object.assign({},core.users),i=0;i<action.users.length;i++){var user=Object.assign({},action.users[i]);users[user.uri]&&(user=Object.assign({},users[user.uri],user)),users[user.uri]=user}store.dispatch({type:"UPDATE_USERS_INDEX",users:users}),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=(Object.assign({}),helpers.arrayOf("uri",records)),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,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__(23),_reactGa2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_reactGa),uiActions=__webpack_require__(4),helpers=(__webpack_require__(8),__webpack_require__(1)),UIMiddleware=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,current_track=null;void 0!==tracks[current_track_uri]&&(current_track=tracks[current_track_uri]),helpers.setWindowTitle(current_track,action.data),next(action);break;case"OPEN_MODAL":_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":_reactGa2.default.event({category:"Modal",action:"Closed",label:null}),$("body").removeClass("modal-open"),next(action);break;case"BROWSER_NOTIFICATION":var notification=window.Notification||window.mozNotification||window.webkitNotification;if(void 0===notification)return!1;void 0!==notification&¬ification.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,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__(18))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _reactGa=__webpack_require__(23),_reactGa2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_reactGa),helpers=__webpack_require__(1),coreActions=__webpack_require__(14),uiActions=__webpack_require__(4),mopidyActions=__webpack_require__(8),pusherActions=__webpack_require__(16),lastfmActions=__webpack_require__(19),spotifyActions=__webpack_require__(7),PusherMiddleware=function(){var 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"spotify_authorization_received":store.dispatch(uiActions.openModal("receive_authorization",message.params));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"reload":window.location.reload(!0);break;case"upgrading":store.dispatch(uiActions.createNotification({content:"Upgrading...",type:"info"}));break;case"restarting":store.dispatch(uiActions.createNotification({content:"Restarting...",type:"info"}))}},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){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":_reactGa2.default.event({category:"Pusher",action:"Connected",label:action.username}),store.dispatch(pusherActions.getConfig()),store.dispatch(pusherActions.getVersion()),store.dispatch(pusherActions.getRadio()),store.dispatch(pusherActions.getQueueMetadata()),next(action);break;case"PUSHER_INSTRUCT":request(action).then(function(response){store.dispatch({type:"PUSHER_INSTRUCT",data:response.data})},function(error){store.dispatch(coreActions.handleException("Instruct failed",error))});break;case"PUSHER_DELIVER_MESSAGE":request(store,"send_message",action.data).then(function(response){store.dispatch(uiActions.createNotification({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:store.getState().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))}),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_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":_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:store.getState().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"})),_reactGa2.default.event({category:"Pusher",action:"Stop radio"}),store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{type:"info",content:store.getState().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").then(function(response){store.dispatch(mopidyActions.restarting())},function(error){store.dispatch(uiActions.createNotification({content:error.message,description:error.description?error.description:null,type:"bad"}))}),next(action);break;case"PUSHER_UPGRADE":_reactGa2.default.event({category:"Pusher",action:"Upgrade",label:""}),request(store,"upgrade").then(function(response){store.dispatch(mopidyActions.upgrading())},function(error){store.dispatch(uiActions.createNotification({content:error.message,description:error.description?error.description:null,type:"bad"}))});break;case"PUSHER_VERSION":_reactGa2.default.event({category:"Pusher",action:"Version",label:action.version.current}),action.version.upgrade_available&&store.dispatch(uiActions.createNotification({content:"Version "+action.version.latest+" is available. See settings to upgrade."})),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.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})),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")),_reactGa2.default.event({category:"Pusher",action:"Error",label:action.message});break;case"PUSHER_GET_SNAPCAST":request(store,"snapcast_instruct",action.data).then(function(response){for(var groups={},clients={},i=0;i<response.server.groups.length;i++){for(var group=response.server.groups[i],clients_ids=[],j=0;j<group.clients.length;j++){var client=group.clients[j];clients[client.id]=client,clients_ids.push(client.id)}groups[group.id]={id:group.id,muted:group.muted,name:group.name,stream_id:group.stream_id,clients_ids:clients_ids}}store.dispatch({type:"PUSHER_SNAPCAST",snapcast_clients:clients,snapcast_groups:groups})},function(error){store.dispatch(coreActions.handleException("Could not get Snapcast server",error,error.message))});break;case"PUSHER_SET_SNAPCAST_CLIENT_NAME":var client=store.getState().pusher.snapcast_clients[action.id],data={method:"Client.SetName",params:{id:action.id,name:action.name}};request(store,"snapcast_instruct",data).then(function(response){store.dispatch({type:"PUSHER_SNAPCAST_CLIENT_UPDATED",key:action.id,client:{config:{name:response.name}}})},function(error){store.dispatch(coreActions.handleException("Error",error,error.message))});break;case"PUSHER_SET_SNAPCAST_CLIENT_MUTE":var client=store.getState().pusher.snapcast_clients[action.id],data={method:"Client.SetVolume",params:{id:action.id,volume:{muted:action.mute,percent:client.config.volume.percent}}};request(store,"snapcast_instruct",data).then(function(response){store.dispatch({type:"PUSHER_SNAPCAST_CLIENT_UPDATED",key:action.id,client:{config:{volume:response.volume}}})},function(error){store.dispatch(coreActions.handleException("Error",error,error.message))});break;case"PUSHER_SET_SNAPCAST_CLIENT_VOLUME":var client=store.getState().pusher.snapcast_clients[action.id],data={method:"Client.SetVolume",params:{id:action.id,volume:{muted:client.config.volume.muted,percent:action.percent}}};request(store,"snapcast_instruct",data).then(function(response){store.dispatch({type:"PUSHER_SNAPCAST_CLIENT_UPDATED",key:action.id,client:{config:{volume:response.volume}}})},function(error){store.dispatch(coreActions.handleException("Error",error,error.message))});break;case"PUSHER_SET_SNAPCAST_CLIENT_LATENCY":var client=store.getState().pusher.snapcast_clients[action.id],data={method:"Client.SetLatency",params:{id:action.id,latency:action.latency}};request(store,"snapcast_instruct",data).then(function(response){store.dispatch({type:"PUSHER_SNAPCAST_CLIENT_UPDATED",key:action.id,client:{config:{latency:response.latency}}})},function(error){store.dispatch(coreActions.handleException("Error",error,error.message))});break;case"PUSHER_DELETE_SNAPCAST_CLIENT":var data={method:"Server.DeleteClient",params:{id:action.id}};request(store,"snapcast_instruct",data).then(function(response){store.dispatch({type:"PUSHER_SNAPCAST_CLIENT_REMOVED",key:action.data.params.id})},function(error){store.dispatch(coreActions.handleException("Error",error,error.message))});break;default:return next(action)}}}}}();exports.default=PusherMiddleware},function(module,exports,__webpack_require__){"use strict";(function(global){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__(23),_reactGa2=_interopRequireDefault(_reactGa),_mopidy=__webpack_require__(177),_mopidy2=_interopRequireDefault(_mopidy),_reactRouter=__webpack_require__(6),_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__(8),coreActions=__webpack_require__(14),uiActions=__webpack_require__(4),spotifyActions=__webpack_require__(7),pusherActions=__webpack_require__(16),lastfmActions=__webpack_require__(19),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?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()),store.dispatch(mopidyActions.getNextTrack());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(mopidyActions.getTimePosition());break;case"event:trackPlaybackStarted":store.dispatch(mopidyActions.currentTrackLoaded(data.tl_track)),store.dispatch(mopidyActions.getNextTrack());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"+(state.mopidy.ssl?"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":_reactGa2.default.event({category:"Mopidy",action:"Connected",label:window.location.hostname}),next(action);break;case"MOPIDY_DISCONNECT":null!=socket&&socket.close(),socket=null,store.dispatch({type:"MOPIDY_DISCONNECTED"});break;case"MOPIDY_DEBUG":request(socket,store,action.call,action.value).then(function(response){store.dispatch({type:"DEBUG",response:response})});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:{type:"info",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:{type:"info",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":request(socket,store,"playback.previous");break;case"MOPIDY_NEXT":request(socket,store,"playback.next"),store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{type:"info",content:store.getState().pusher.username+" skipped <em>"+store.getState().core.current_track.name+"</em>",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:{type:"info",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}),store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{type:"info",content:store.getState().pusher.username+" changed track"}}));break;case"MOPIDY_REMOVE_TRACKS":request(socket,store,"tracklist.remove",{tlid:action.tlids}),store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{type:"info",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]),store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{type:"info",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]+":";uri_schemes.includes("spotify:")&&(store.dispatch({type:"SPOTIFY_SET",data:{enabled:!0}}),store.dispatch(spotifyActions.connect())),void 0===store.getState().ui.search_uri_schemes&&store.dispatch(uiActions.set({search_uri_schemes:uri_schemes})),store.dispatch({type:"MOPIDY_URI_SCHEMES",uri_schemes:uri_schemes})});break;case"MOPIDY_PLAY_PLAYLIST":if(store.getState().ui.clear_tracklist_on_play&&store.dispatch(mopidyActions.clearTracklist()),store.getState().core.playlists.hasOwnProperty(action.uri)){if(!store.getState().core.playlists[action.uri].is_mopidy){store.dispatch(spotifyActions.getPlaylistTracksAndPlay(action.uri));break}}else if("spotify"==helpers.uriSource(action.uri)&&store.getState().spotify.enabled){store.dispatch(spotifyActions.getPlaylistTracksAndPlay(action.uri));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);store.dispatch(mopidyActions.playURIs(tracks_uris,action.uri))}},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:{type:"info",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,next:action.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.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}store.getState().core.radio&&store.getState().core.radio.enabled&&store.dispatch(pusherActions.stopRadio()),store.getState().ui.clear_tracklist_on_play&&store.dispatch(mopidyActions.clearTracklist());var first_uri=action.uris[0];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.shift(),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"),store.dispatch(pusherActions.deliverBroadcast("notification",{notification:{type:"info",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.search_uri_schemes),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":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({type:"ALBUMS_LOADED",albums: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":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":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":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: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()});var process_albums=function(){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({type:"ALBUMS_LOADED",albums: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(){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()})},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}))},process_playlists=function(){"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()}}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,is_mopidy:!0,last_modified:response.last_modified,tracks_total:response.tracks?response.tracks.length:0});store.dispatch({type:"PLAYLIST_LOADED",key:playlist.uri,playlist: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,is_mopidy:!0,tracks:response.tracks?response.tracks:[],tracks_total:response.tracks?response.tracks.length:[]});playlist.tracks.length>0&&store.dispatch({type:"MOPIDY_RESOLVE_PLAYLIST_TRACKS",tracks:playlist.tracks,key:playlist.uri}),store.dispatch({type:"PLAYLIST_LOADED",key:playlist.uri,playlist: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":action.key;request(socket,store,"playlists.lookup",{uri:action.key}).then(function(response){var playlist=Object.assign({},response,{name:action.name});request(socket,store,"playlists.save",{playlist:playlist}).then(function(response){store.dispatch({type:"PLAYLIST_UPDATED",key:action.key,playlist:playlist}),action.key!=response.key&&(store.dispatch({type:"PLAYLIST_KEY_UPDATED",key:action.key,new_key:response.uri}),_reactRouter.hashHistory.push(global.baseURL+"playlist/"+encodeURIComponent(response.uri))),store.dispatch(uiActions.createNotification({content:"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({content:"Created playlist"})),store.dispatch({type:"PLAYLIST_LOADED",key:action.uri,playlist:response}),store.dispatch({type:"MOPIDY_LIBRARY_PLAYLIST_CREATED",key:action.uri,playlist:response})});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({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:"local:directory?type=album"}).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=[];for(var uri in response)if(response.hasOwnProperty(uri)&&response[uri].length>0&&response[uri][0]&&response[uri][0].album){var album=Object.assign({},{source:"local",artists:response[uri][0].artists,tracks:response[uri],tracks_total:response[uri].length},response[uri][0].album);albums.push(album)}store.dispatch({type:"ALBUMS_LOADED",albums:albums}),action.processor&&setTimeout(function(){store.dispatch(uiActions.runProcess(action.processor.name,action.processor.data))},100)}});break;case"MOPIDY_GET_ALBUM":request(socket,store,"library.lookup",action.data).then(function(response){if(!(response.length<=0)){for(var album=Object.assign({},{images:[]},response[0].album,{source:"local",artists:response[0].artists,tracks:response,tracks_total:response.length}),uris=[],i=0;i<album.tracks.length;i++)uris.push(album.tracks[i].uri);if(album.images.length<=0){var mbid=helpers.getFromUri("mbid",album.uri);mbid?store.dispatch(lastfmActions.getAlbum(!1,!1,mbid)):store.dispatch(lastfmActions.getAlbum(album.artists[0].name,album.name))}request(socket,store,"library.lookup",{uris:uris}).then(function(response){for(var uri in response)if(response.hasOwnProperty(uri))for(var getByURI=function(trackReference){return track.uri==trackReference.uri},track=response[uri][0],trackReferences=album.tracks.filter(getByURI),j=0;j<trackReferences.length;j++){var key=album.tracks.indexOf(trackReferences[j]);album.tracks[key]=track}store.dispatch({type:"ALBUM_LOADED",key:album.uri,album:album})})}});break;case"MOPIDY_GET_LIBRARY_ARTISTS":request(socket,store,"library.browse",{uri:"local:directory?type=artist"}).then(function(response){if(!(response.length<=0)){var uris=helpers.arrayOf("uri",response);store.dispatch({type:"ARTISTS_LOADED",artists: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({type:"ALBUMS_LOADED",albums:albums});var artist=Object.assign({},response?response[0].artists[0]:{},{is_mopidy:!0,albums_uris:helpers.arrayOf("uri",albums),tracks:response.slice(0,10)});store.dispatch({type:"ARTIST_LOADED",key:artist.uri,artist: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]:{},{is_mopidy:!0});artists.push(artist)}store.dispatch({type:"ARTISTS_LOADED",artists: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:helpers.formatTracks(response)})});break;case"MOPIDY_GET_QUEUE_HISTORY":request(socket,store,"history.getHistory").then(function(response){store.dispatch({type:"MOPIDY_QUEUE_HISTORY",tracks:helpers.formatTracks(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":var track=helpers.formatTracks(action.tl_track);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]))),store.dispatch({type:"CURRENT_TRACK_LOADED",track:track});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&&(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({type:"TRACKS_LOADED",tracks:[track]})}},function(error){store.dispatch(coreActions.handleException("Mopidy: "+(error.message?error.message:"Could not get track"),error))});break;case"MOPIDY_GET_IMAGES":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_LOADED",data:!1}),request(socket,store,"library.browse",action.data).then(function(response){store.dispatch({type:"MOPIDY_DIRECTORY_LOADED",data:response})});break;case"MOPIDY_DIRECTORY":action.data&&_reactGa2.default.event({category:"Directory",action:"Load",label:action.data.uri}),next(action);break;default:return next(action)}}}}}();exports.default=MopidyMiddleware}).call(exports,__webpack_require__(9))},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__(178),websocket=__webpack_require__(180),when=__webpack_require__(181);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__(179)&&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){(function(__webpack_amd_options__){module.exports=__webpack_amd_options__}).call(exports,{})},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__(182),array=__webpack_require__(184),flow=__webpack_require__(185),fold=__webpack_require__(186),inspect=__webpack_require__(187),generate=__webpack_require__(188),progress=__webpack_require__(189),withThis=__webpack_require__(190),unhandledRejection=__webpack_require__(191),TimeoutError=__webpack_require__(86),Promise=[array,flow,fold,generate,progress,inspect,withThis,timed,unhandledRejection].reduce(function(Promise,feature){return feature(Promise)},__webpack_require__(193)),apply=__webpack_require__(88)(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__(59),TimeoutError=__webpack_require__(86);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__(87),applier=__webpack_require__(88);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__(87).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__(59).setTimer,format=__webpack_require__(192);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__(194)({scheduler:new(__webpack_require__(195))(__webpack_require__(59).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__(85))},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 _reactGa=__webpack_require__(23),LastfmMiddleware=(function(obj){obj&&obj.__esModule}(_reactGa),__webpack_require__(1),__webpack_require__(19),__webpack_require__(4),__webpack_require__(16),function(){return function(store){return function(next){return function(action){store.getState();switch(action.type){case"LASTFM_USER_LOADED":var user=Object.assign({},action.user,{uri:"lastfm:user:"+action.user.name});store.dispatch({type:"USERS_LOADED",users:[user]}),next(action);break;default:return next(action)}}}}}());exports.default=LastfmMiddleware},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _reactGa=__webpack_require__(23),_reactGa2=_interopRequireDefault(_reactGa),_md=__webpack_require__(198),_md2=_interopRequireDefault(_md),helpers=__webpack_require__(1),spotifyActions=__webpack_require__(7),pusherActions=(__webpack_require__(4),__webpack_require__(16)),SpotifyMiddleware=function(){return function(store){return function(next){return function(action){var state=store.getState();switch(action.type){case"SPOTIFY_AUTHORIZATION_GRANTED":_reactGa2.default.event({category:"Spotify",action:"Authorization granted"}),store.dispatch(spotifyActions.flushLibrary()),next(action);break;case"SPOTIFY_AUTHORIZATION_REVOKED":var hashed_username=null;store.getState().spotify.me&&(hashed_username=(0,_md2.default)(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":var hashed_username=null;store.getState().spotify.me&&(hashed_username=(0,_md2.default)(store.getState().spotify.me),_reactGa2.default.set({userId:hashed_username})),_reactGa2.default.event({category:"Spotify",action:"Authorization imported",label:hashed_username}),store.dispatch(spotifyActions.flushLibrary()),next(action);break;case"SPOTIFY_RECOMMENDATIONS_LOADED":action.seeds_uris&&_reactGa2.default.event({category:"Spotify",action:"Recommendations",label:action.seeds_uris.join(",")}),next(action);break;case"SPOTIFY_USER_LOADED":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({},state.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));break;case"SPOTIFY_NEW_RELEASES_LOADED":store.dispatch({type:"ALBUMS_LOADED",albums:action.data.albums.items}),store.dispatch({type:"NEW_RELEASES_LOADED",uris:helpers.arrayOf("uri",action.data.albums.items),more:action.data.albums.next,total:action.data.albums.total});break;case"SPOTIFY_ARTIST_ALBUMS_LOADED":store.dispatch({type:"ALBUMS_LOADED",albums:action.data.items}),store.dispatch({type:"ARTIST_ALBUMS_LOADED",key:action.key,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":for(var playlists=[],i=0;i<action.data.playlists.items.length;i++){var playlist=Object.assign({},action.data.playlists.items[i],{tracks_total:action.data.playlists.items[i].tracks.total});delete playlist.tracks,playlists.push(playlist)}store.dispatch({type:"PLAYLISTS_LOADED",playlists:playlists}),store.dispatch({type:"CATEGORY_PLAYLISTS_LOADED",key:action.key,uris:helpers.arrayOf("uri",playlists),more:action.data.playlists.next,total:action.data.playlists.total});break;case"SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR":store.dispatch(spotifyActions.getLibraryPlaylistsProcessor(action.data));break;case"SPOTIFY_LIBRARY_PLAYLISTS_LOADED":for(var playlists=[],i=0;i<action.playlists.length;i++){var playlist=Object.assign({},action.playlists[i],{source:"spotify",in_library:!0,tracks_total:action.playlists[i].tracks.total});delete playlist.tracks,playlists.push(playlist)}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_PLAYLIST_TRACKS_AND_PLAY_PROCESSOR":store.dispatch(spotifyActions.getPlaylistTracksAndPlayProcessor(action.data));break;case"SPOTIFY_GET_LIBRARY_TRACKS_AND_PLAY_PROCESSOR":store.dispatch(spotifyActions.getLibraryTracksAndPlayProcessor(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":if(action.data&&"Anonymous"==store.getState().pusher.username){if(null!==action.data.display_name)var name=action.data.display_name;else var name=action.data.id;store.dispatch(pusherActions.setUsername(name))}var hashed_username=(0,_md2.default)(action.data.id);_reactGa2.default.set({userId:hashed_username}),_reactGa2.default.event({category:"Spotify",action:"Authorization verified",label:hashed_username}),store.dispatch({type:"USERS_LOADED",users:[action.data]}),next(action);break;default:return next(action)}}}}}();exports.default=SpotifyMiddleware},function(module,exports,__webpack_require__){!function(){var crypt=__webpack_require__(199),utf8=__webpack_require__(89).utf8,isBuffer=__webpack_require__(200),bin=__webpack_require__(89).bin,md5=function(message,options){message.constructor==String?message=options&&"binary"===options.encoding?bin.stringToBytes(message):utf8.stringToBytes(message):isBuffer(message)?message=Array.prototype.slice.call(message,0):Array.isArray(message)||(message=message.toString());for(var m=crypt.bytesToWords(message),l=8*message.length,a=1732584193,b=-271733879,c=-1732584194,d=271733878,i=0;i<m.length;i++)m[i]=16711935&(m[i]<<8|m[i]>>>24)|4278255360&(m[i]<<24|m[i]>>>8);m[l>>>5]|=128<<l%32,m[14+(l+64>>>9<<4)]=l;for(var FF=md5._ff,GG=md5._gg,HH=md5._hh,II=md5._ii,i=0;i<m.length;i+=16){var aa=a,bb=b,cc=c,dd=d;a=FF(a,b,c,d,m[i+0],7,-680876936),d=FF(d,a,b,c,m[i+1],12,-389564586),c=FF(c,d,a,b,m[i+2],17,606105819),b=FF(b,c,d,a,m[i+3],22,-1044525330),a=FF(a,b,c,d,m[i+4],7,-176418897),d=FF(d,a,b,c,m[i+5],12,1200080426),c=FF(c,d,a,b,m[i+6],17,-1473231341),b=FF(b,c,d,a,m[i+7],22,-45705983),a=FF(a,b,c,d,m[i+8],7,1770035416),d=FF(d,a,b,c,m[i+9],12,-1958414417),c=FF(c,d,a,b,m[i+10],17,-42063),b=FF(b,c,d,a,m[i+11],22,-1990404162),a=FF(a,b,c,d,m[i+12],7,1804603682),d=FF(d,a,b,c,m[i+13],12,-40341101),c=FF(c,d,a,b,m[i+14],17,-1502002290),b=FF(b,c,d,a,m[i+15],22,1236535329),a=GG(a,b,c,d,m[i+1],5,-165796510),d=GG(d,a,b,c,m[i+6],9,-1069501632),c=GG(c,d,a,b,m[i+11],14,643717713),b=GG(b,c,d,a,m[i+0],20,-373897302),a=GG(a,b,c,d,m[i+5],5,-701558691),d=GG(d,a,b,c,m[i+10],9,38016083),c=GG(c,d,a,b,m[i+15],14,-660478335),b=GG(b,c,d,a,m[i+4],20,-405537848),a=GG(a,b,c,d,m[i+9],5,568446438),d=GG(d,a,b,c,m[i+14],9,-1019803690),c=GG(c,d,a,b,m[i+3],14,-187363961),b=GG(b,c,d,a,m[i+8],20,1163531501),a=GG(a,b,c,d,m[i+13],5,-1444681467),d=GG(d,a,b,c,m[i+2],9,-51403784),c=GG(c,d,a,b,m[i+7],14,1735328473),b=GG(b,c,d,a,m[i+12],20,-1926607734),a=HH(a,b,c,d,m[i+5],4,-378558),d=HH(d,a,b,c,m[i+8],11,-2022574463),c=HH(c,d,a,b,m[i+11],16,1839030562),b=HH(b,c,d,a,m[i+14],23,-35309556),a=HH(a,b,c,d,m[i+1],4,-1530992060),d=HH(d,a,b,c,m[i+4],11,1272893353),c=HH(c,d,a,b,m[i+7],16,-155497632),b=HH(b,c,d,a,m[i+10],23,-1094730640),a=HH(a,b,c,d,m[i+13],4,681279174),d=HH(d,a,b,c,m[i+0],11,-358537222),c=HH(c,d,a,b,m[i+3],16,-722521979),b=HH(b,c,d,a,m[i+6],23,76029189),a=HH(a,b,c,d,m[i+9],4,-640364487),d=HH(d,a,b,c,m[i+12],11,-421815835),c=HH(c,d,a,b,m[i+15],16,530742520),b=HH(b,c,d,a,m[i+2],23,-995338651),a=II(a,b,c,d,m[i+0],6,-198630844),d=II(d,a,b,c,m[i+7],10,1126891415),c=II(c,d,a,b,m[i+14],15,-1416354905),b=II(b,c,d,a,m[i+5],21,-57434055),a=II(a,b,c,d,m[i+12],6,1700485571),d=II(d,a,b,c,m[i+3],10,-1894986606),c=II(c,d,a,b,m[i+10],15,-1051523),b=II(b,c,d,a,m[i+1],21,-2054922799),a=II(a,b,c,d,m[i+8],6,1873313359),d=II(d,a,b,c,m[i+15],10,-30611744),c=II(c,d,a,b,m[i+6],15,-1560198380),b=II(b,c,d,a,m[i+13],21,1309151649),a=II(a,b,c,d,m[i+4],6,-145523070),d=II(d,a,b,c,m[i+11],10,-1120210379),c=II(c,d,a,b,m[i+2],15,718787259),b=II(b,c,d,a,m[i+9],21,-343485551),a=a+aa>>>0,b=b+bb>>>0,c=c+cc>>>0,d=d+dd>>>0}return crypt.endian([a,b,c,d])};md5._ff=function(a,b,c,d,x,s,t){var n=a+(b&c|~b&d)+(x>>>0)+t;return(n<<s|n>>>32-s)+b},md5._gg=function(a,b,c,d,x,s,t){var n=a+(b&d|c&~d)+(x>>>0)+t;return(n<<s|n>>>32-s)+b},md5._hh=function(a,b,c,d,x,s,t){var n=a+(b^c^d)+(x>>>0)+t;return(n<<s|n>>>32-s)+b},md5._ii=function(a,b,c,d,x,s,t){var n=a+(c^(b|~d))+(x>>>0)+t;return(n<<s|n>>>32-s)+b},md5._blocksize=16,md5._digestsize=16,module.exports=function(message,options){if(void 0===message||null===message)throw new Error("Illegal argument "+message);var digestbytes=crypt.wordsToBytes(md5(message,options));return options&&options.asBytes?digestbytes:options&&options.asString?bin.bytesToString(digestbytes):crypt.bytesToHex(digestbytes)}}()},function(module,exports){!function(){var base64map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",crypt={rotl:function(n,b){return n<<b|n>>>32-b},rotr:function(n,b){return n<<32-b|n>>>b},endian:function(n){if(n.constructor==Number)return 16711935&crypt.rotl(n,8)|4278255360&crypt.rotl(n,24);for(var i=0;i<n.length;i++)n[i]=crypt.endian(n[i]);return n},randomBytes:function(n){for(var bytes=[];n>0;n--)bytes.push(Math.floor(256*Math.random()));return bytes},bytesToWords:function(bytes){for(var words=[],i=0,b=0;i<bytes.length;i++,b+=8)words[b>>>5]|=bytes[i]<<24-b%32;return words},wordsToBytes:function(words){for(var bytes=[],b=0;b<32*words.length;b+=8)bytes.push(words[b>>>5]>>>24-b%32&255);return bytes},bytesToHex:function(bytes){for(var hex=[],i=0;i<bytes.length;i++)hex.push((bytes[i]>>>4).toString(16)),hex.push((15&bytes[i]).toString(16));return hex.join("")},hexToBytes:function(hex){for(var bytes=[],c=0;c<hex.length;c+=2)bytes.push(parseInt(hex.substr(c,2),16));return bytes},bytesToBase64:function(bytes){for(var base64=[],i=0;i<bytes.length;i+=3)for(var triplet=bytes[i]<<16|bytes[i+1]<<8|bytes[i+2],j=0;j<4;j++)8*i+6*j<=8*bytes.length?base64.push(base64map.charAt(triplet>>>6*(3-j)&63)):base64.push("=");return base64.join("")},base64ToBytes:function(base64){base64=base64.replace(/[^A-Z0-9+\/]/gi,"");for(var bytes=[],i=0,imod4=0;i<base64.length;imod4=++i%4)0!=imod4&&bytes.push((base64map.indexOf(base64.charAt(i-1))&Math.pow(2,-2*imod4+8)-1)<<2*imod4|base64map.indexOf(base64.charAt(i))>>>6-2*imod4);return bytes}};module.exports=crypt}()},function(module,exports){function isBuffer(obj){return!!obj.constructor&&"function"==typeof obj.constructor.isBuffer&&obj.constructor.isBuffer(obj)}function isSlowBuffer(obj){return"function"==typeof obj.readFloatLE&&"function"==typeof obj.slice&&isBuffer(obj.slice(0,0))}/*!
|
||
* Determine if an object is a Buffer
|
||
*
|
||
* @author Feross Aboukhadijeh <https://feross.org>
|
||
* @license MIT
|
||
*/
|
||
module.exports=function(obj){return null!=obj&&(isBuffer(obj)||isSlowBuffer(obj)||!!obj._isBuffer)}},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_SET_CONFIG":helpers.setStorage("mopidy",{host:action.config.host,port:action.config.port,ssl:action.config.ssl});break;case"MOPIDY_URISCHEMES_FILTERED":helpers.setStorage("mopidy",{uri_schemes:action.data});break;case"SPOTIFY_SET":helpers.setStorage("spotify",action.data);break;case"SPOTIFY_IMPORT_AUTHORIZATION":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_AUTHORIZATION_REVOKED":helpers.setStorage("spotify",{authorization:!1,access_token:!1,refresh_token:!1,token_expiry:!1});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.data});break;case"CORE_SET":helpers.setStorage("core",action.data);break;case"UI_SET":helpers.setStorage("ui",action.data);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});break;case"LASTFM_AUTHORIZATION_GRANTED":helpers.setStorage("lastfm",{session:action.data.session});break;case"LASTFM_AUTHORIZATION_REVOKED":helpers.setStorage("lastfm",{session:null})}}}}}();exports.default=localstorageMiddleware},function(module,exports,__webpack_require__){"use strict";(function(global){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),_reactDom=__webpack_require__(43),_redux=(_interopRequireDefault(_reactDom),__webpack_require__(2)),_reactRouter=__webpack_require__(6),_reactRedux=__webpack_require__(3),_Sidebar=__webpack_require__(203),_Sidebar2=_interopRequireDefault(_Sidebar),_PlaybackControls=__webpack_require__(208),_PlaybackControls2=_interopRequireDefault(_PlaybackControls),_ContextMenu=__webpack_require__(210),_ContextMenu2=_interopRequireDefault(_ContextMenu),_Dragger=__webpack_require__(211),_Dragger2=_interopRequireDefault(_Dragger),_Modal=__webpack_require__(212),_Modal2=_interopRequireDefault(_Modal),_Notifications=__webpack_require__(227),_Notifications2=_interopRequireDefault(_Notifications),_DebugInfo=__webpack_require__(228),_DebugInfo2=_interopRequireDefault(_DebugInfo),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(14),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(16),pusherActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions5),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}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)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("keyup",this.handleKeyUp,!1),window.removeEventListener("keydown",this.handleKeyDown,!1),window.removeEventListener("resize",this.handleWindowResize,!1)}},{key:"componentDidMount",value:function(){var _this2=this;this.props.mopidyActions.connect(),this.props.pusherActions.connect(),this.props.coreActions.getBroadcasts(),_reactRouter.hashHistory.listen(function(location){_this2.props.uiActions.toggleSidebar(!1),_this2.props.uiActions.setSelectedTracks([])}),this.handleWindowResize(null);var url_vars=this.props.location.query;void 0!==url_vars&&void 0!==url_vars.host&&void 0!==url_vars.port&&(this.props.mopidyActions.setConfig({host:url_vars.host,port:url_vars.port}),_reactRouter.hashHistory.push(global.baseURL))}},{key:"componentWillReceiveProps",value:function(nextProps){this.props.location.pathname!==nextProps.location.pathname&&(this.props.context_menu&&this.props.uiActions.hideContextMenu(),"PUSH"==nextProps.location.action&&void 0===nextProps.params.sub_view&&window.scrollTo(0,0))}},{key:"shouldTriggerShortcut",value:function(e){if(["INPUT","TEXTAREA"].indexOf(e.target.nodeName)>-1)return!1;if([27,32,191].indexOf(e.keyCode)>-1)return e.preventDefault(),!0;var keyCodesWithCtrl=[37,38,39,40];if((e.ctrlKey||e.metaKey)&&keyCodesWithCtrl.indexOf(e.keyCode)>-1)return e.preventDefault(),!0;var keyCodesWithCtrlShift=[70];return(e.ctrlKey||e.metaKey)&&e.shiftKey&&keyCodesWithCtrlShift.indexOf(e.keyCode)>-1?(e.preventDefault(),!0):void 0}},{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){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(),this.props.modal&&this.props.uiActions.closeModal();break;case 40:if((e.ctrlKey||e.metaKey)&&e.shiftKey)this.props.mopidyActions.setMute(!0),this.props.uiActions.createNotification({content:"volume-off",type:"shortcut",key:"shortcut",duration:1});else if(e.ctrlKey){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.ctrlKey||e.metaKey)&&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.ctrlKey||e.metaKey){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.ctrlKey||e.metaKey)&&e.shiftKey){var new_position=this.props.play_time_position-3e4;new_position<0&&(new_position=0),this.props.mopidyActions.seek(new_position),this.props.uiActions.createNotification({content:"fast-backward",type:"shortcut",key:"shortcut",duration:1})}else(e.ctrlKey||e.metaKey)&&(this.props.mopidyActions.previous(),this.props.uiActions.createNotification({content:"step-backward",type:"shortcut",key:"shortcut",duration:1}));break;case 39:(e.ctrlKey||e.metaKey)&&e.shiftKey?(this.props.mopidyActions.seek(this.props.play_time_position+3e4),this.props.uiActions.createNotification({content:"fast-forward",type:"shortcut",key:"shortcut",duration:1})):(e.ctrlKey||e.metaKey)&&(this.props.mopidyActions.next(),this.props.uiActions.createNotification({content:"step-forward",type:"shortcut",key:"shortcut",duration:1}));break;case 70:(e.ctrlKey||e.metaKey)&&e.shiftKey&&(this.props.modal?this.props.uiActions.closeModal():this.props.uiActions.openModal("kiosk_mode"))}}},{key:"render",value:function(){var className="";return this.props.dragger&&this.props.dragger.active&&(className+=" dragging"),this.props.sidebar_open&&(className+=" sidebar-open"),this.props.modal&&(className+=" modal-open"),this.props.touch_dragging&&(className+=" touch-dragging"),this.props.slim_mode&&(className+=" slim-mode"),helpers.isTouchDevice()?className+=" touch":className+=" notouch",_react2.default.createElement("div",{className:className},_react2.default.createElement("div",{className:"body"},_react2.default.createElement(_Sidebar2.default,null),_react2.default.createElement(_PlaybackControls2.default,null),_react2.default.createElement("main",null,this.props.children)),_react2.default.createElement(_ContextMenu2.default,null),_react2.default.createElement(_Dragger2.default,null),_react2.default.createElement(_Modal2.default,null),_react2.default.createElement(_Notifications2.default,{uiActions:this.props.uiActions,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{touch_dragging:state.ui.touch_dragging,show_initial_setup:state.ui.show_initial_setup,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,modal:state.ui.modal,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)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(App)}).call(exports,__webpack_require__(9))},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_redux=__webpack_require__(2),_reactRouter=__webpack_require__(6),_Icon=__webpack_require__(12),_Icon2=_interopRequireDefault(_Icon),_Dropzones=__webpack_require__(204),_Dropzones2=_interopRequireDefault(_Dropzones),_Thumbnail=__webpack_require__(10),_reactFontawesome=(_interopRequireDefault(_Thumbnail),__webpack_require__(5)),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),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:"linkClassName",value:function(link){return this.props.location.pathname.startsWith("/"+link)?"active":null}},{key:"render",value:function(){var _this2=this;return _react2.default.createElement("aside",null,_react2.default.createElement("div",{className:"liner"},_react2.default.createElement("nav",null,_react2.default.createElement("section",null,_react2.default.createElement(_reactRouter.Link,{className:this.linkClassName("queue"),to:global.baseURL+"queue"},_react2.default.createElement(_Icon2.default,{name:"play"}),"Now playing"),_react2.default.createElement(_reactRouter.Link,{className:this.linkClassName("search"),to:global.baseURL+"search"},_react2.default.createElement(_Icon2.default,{name:"search"}),"Search")),this.props.spotify_enabled?_react2.default.createElement("section",null,_react2.default.createElement("title",null,"Discover"),_react2.default.createElement(_reactRouter.Link,{className:this.linkClassName("discover/recommendations"),to:global.baseURL+"discover/recommendations"},_react2.default.createElement(_Icon2.default,{name:"compass"}),"Discover"),_react2.default.createElement(_reactRouter.Link,{className:this.linkClassName("discover/categories"),to:global.baseURL+"discover/categories"},_react2.default.createElement(_Icon2.default,{name:"grid"}),"Genre / Mood"),_react2.default.createElement(_reactRouter.Link,{className:this.linkClassName("discover/featured"),to:global.baseURL+"discover/featured"},_react2.default.createElement(_Icon2.default,{name:"star"}),"Featured playlists"),_react2.default.createElement(_reactRouter.Link,{className:this.linkClassName("discover/new-releases"),to:global.baseURL+"discover/new-releases"},_react2.default.createElement(_Icon2.default,{name:"leaf"}),"New releases")):null,_react2.default.createElement("section",null,_react2.default.createElement("title",null,"My Music"),_react2.default.createElement(_reactRouter.Link,{className:this.linkClassName("library/playlists"),to:global.baseURL+"library/playlists"},_react2.default.createElement(_Icon2.default,{name:"playlist"}),"Playlists"),_react2.default.createElement(_reactRouter.Link,{className:this.linkClassName("library/artists"),to:global.baseURL+"library/artists"},_react2.default.createElement(_Icon2.default,{name:"mic"}),"Artists"),_react2.default.createElement(_reactRouter.Link,{className:this.linkClassName("library/albums"),to:global.baseURL+"library/albums"},_react2.default.createElement(_Icon2.default,{name:"cd"}),"Albums"),_react2.default.createElement(_reactRouter.Link,{className:this.linkClassName("library/tracks"),to:global.baseURL+"library/tracks"},_react2.default.createElement(_Icon2.default,{name:"music"}),"Tracks"),_react2.default.createElement(_reactRouter.Link,{className:this.linkClassName("library/browse"),to:global.baseURL+"library/browse"},_react2.default.createElement(_Icon2.default,{name:"folder"}),"Browse")),_react2.default.createElement("section",null,_react2.default.createElement(_reactRouter.Link,{className:this.linkClassName("settings"),to:global.baseURL+"settings"},_react2.default.createElement(_Icon2.default,{name:"cog"}),"Settings",this.props.test_mode?_react2.default.createElement("span",{className:"status has-tooltip right-tooltip"},_react2.default.createElement(_reactFontawesome2.default,{name:"info-circle",className:"orange-text"}),_react2.default.createElement("span",{className:"tooltip"},"Test mode active")):null,this.props.mopidy_connected&&this.props.pusher_connected?null:_react2.default.createElement("span",{className:"status has-tooltip right-tooltip"},_react2.default.createElement(_reactFontawesome2.default,{name:"exclamation-triangle",className:"red-text"}),_react2.default.createElement("span",{className:"tooltip"},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(_reactFontawesome2.default,{name:"chevron-right"})))}}]),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,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))}).call(exports,__webpack_require__(9))},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__(3),_redux=__webpack_require__(2),_Dropzone=__webpack_require__(205),_Dropzone2=_interopRequireDefault(_Dropzone),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(7),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",action:"enqueue"},{title:"Play next",icon:"play",action:"enqueue_next"},{title:"Add to playlist",icon:"playlist",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.uiActions.openModal("add_to_playlist",{tracks_uris:uris})}}},{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,_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__(3),__webpack_require__(2),__webpack_require__(12)),_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,{className:"white",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";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){module.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMzJweCIgaGVpZ2h0PSIzMnB4IiB2aWV3Qm94PSIwIDAgMzIgMzIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMyIDMyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxsaW5lIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzc3Nzc3NyIgc3Ryb2tlLXdpZHRoPSIwLjE0MTciIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgeDE9IjQuMTY3IiB5MT0iNC4xNjciIHgyPSIyNy44MzMiIHkyPSIyNy44MzMiIG9wYWNpdHk9IjAuMyIgLz4NCjxsaW5lIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzc3Nzc3NyIgc3Ryb2tlLXdpZHRoPSIwLjE0MTciIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgeDE9IjQuMTY3IiB5MT0iMjcuODMzIiB4Mj0iMjcuODMzIiB5Mj0iNC4xNjciIG9wYWNpdHk9IjAuMyIgLz4NCjwvc3ZnPg0K"},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__(3),_redux=(__webpack_require__(6),__webpack_require__(2)),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_ProgressSlider=__webpack_require__(209),_ProgressSlider2=_interopRequireDefault(_ProgressSlider),_VolumeControl=__webpack_require__(90),_VolumeControl2=_interopRequireDefault(_VolumeControl),_Dater=__webpack_require__(31),_Dater2=_interopRequireDefault(_Dater),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Icon=__webpack_require__(12),_Icon2=_interopRequireDefault(_Icon),_helpers=__webpack_require__(1),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(4)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(14),coreActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),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.state={expanded:!1},_this}return _inherits(PlaybackControls,_React$Component),_createClass(PlaybackControls,[{key:"renderPlayButton",value:function(){var _this2=this,button=_react2.default.createElement("a",{className:"control play",onClick:function(){return _this2.props.mopidyActions.play()}},_react2.default.createElement(_Icon2.default,{name:"play"}));return"playing"==this.props.play_state&&(button=_react2.default.createElement("a",{className:"control play",onClick:function(){return _this2.props.mopidyActions.pause()}},_react2.default.createElement(_Icon2.default,{name:"pause"}))),button}},{key:"renderConsumeButton",value:function(){var _this3=this,button=_react2.default.createElement("a",{className:"control has-tooltip",onClick:function(){return _this3.props.mopidyActions.setConsume(!0)}},_react2.default.createElement(_reactFontawesome2.default,{name:"fire"}),_react2.default.createElement("span",{className:"tooltip"},"Consume"));return this.props.consume&&(button=_react2.default.createElement("a",{className:"control active has-tooltip",onClick:function(){return _this3.props.mopidyActions.setConsume(!1)}},_react2.default.createElement(_reactFontawesome2.default,{name:"fire"}),_react2.default.createElement("span",{className:"tooltip"},"Consume"))),button}},{key:"renderRandomButton",value:function(){var _this4=this,button=_react2.default.createElement("a",{className:"control has-tooltip",onClick:function(){return _this4.props.mopidyActions.setRandom(!0)}},_react2.default.createElement(_reactFontawesome2.default,{name:"random"}),_react2.default.createElement("span",{className:"tooltip"},"Shuffle"));return this.props.random&&(button=_react2.default.createElement("a",{className:"control active has-tooltip",onClick:function(){return _this4.props.mopidyActions.setRandom(!1)}},_react2.default.createElement(_reactFontawesome2.default,{name:"random"}),_react2.default.createElement("span",{className:"tooltip"},"Shuffle"))),button}},{key:"renderRepeatButton",value:function(){var _this5=this,button=_react2.default.createElement("a",{className:"control has-tooltip",onClick:function(){return _this5.props.mopidyActions.setRepeat(!0)}},_react2.default.createElement(_reactFontawesome2.default,{name:"repeat"}),_react2.default.createElement("span",{className:"tooltip"},"Repeat"));return this.props.repeat&&(button=_react2.default.createElement("a",{className:"control active has-tooltip",onClick:function(){return _this5.props.mopidyActions.setRepeat(!1)}},_react2.default.createElement(_reactFontawesome2.default,{name:"repeat"}),_react2.default.createElement("span",{className:"tooltip"},"Repeat"))),button}},{key:"handleThumbnailClick",value:function(e){e.preventDefault(),this.props.uiActions.openModal("kiosk_mode")}},{key:"render",value:function(){var _this6=this,images=!1;return this.props.current_track&&this.props.current_track.images&&(images=this.props.current_track.images),_react2.default.createElement("div",{className:this.state.expanded?"expanded playback-controls":"playback-controls"},this.props.http_streaming_enabled&&this.props.http_streaming_active&&"playing"==this.props.play_state?_react2.default.createElement("audio",{id:"http-streamer",autoPlay:!0,preload:"none"},_react2.default.createElement("source",{src:this.props.http_streaming_url,type:"audio/"+this.props.http_streaming_encoding})):null,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,_react2.default.createElement("div",{className:"current-track"},_react2.default.createElement("div",{className:"thumbnail-wrapper",onClick:function(e){return _this6.handleThumbnailClick(e)}},_react2.default.createElement(_Thumbnail2.default,{size:"small",images:images})),_react2.default.createElement("div",{className:"title"},this.props.current_track?this.props.current_track.name:_react2.default.createElement("span",null,"-")),_react2.default.createElement("div",{className:"artist"},this.props.current_track?_react2.default.createElement(_ArtistSentence2.default,{artists:this.props.current_track.artists}):_react2.default.createElement(_ArtistSentence2.default,null))),_react2.default.createElement("section",{className:"playback"},_react2.default.createElement("a",{className:"control previous",onClick:function(){return _this6.props.mopidyActions.previous()}},_react2.default.createElement(_Icon2.default,{name:"back"})),this.renderPlayButton(),_react2.default.createElement("a",{className:"control stop",onClick:function(){return _this6.props.mopidyActions.stop()}},_react2.default.createElement(_Icon2.default,{name:"stop"})),_react2.default.createElement("a",{className:"control next",onClick:function(){return _this6.props.mopidyActions.next()}},_react2.default.createElement(_Icon2.default,{name:"skip"}))),_react2.default.createElement("section",{className:"settings"},this.renderConsumeButton(),this.renderRandomButton(),this.renderRepeatButton()),_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.props.current_track?_react2.default.createElement(_Dater2.default,{type:"length",data:this.props.current_track.length}):"-")),_react2.default.createElement("section",{className:"volume"},_react2.default.createElement(_VolumeControl2.default,{scrollWheel:!0,volume:this.props.volume,mute:this.props.mute,onVolumeChange:function(percent){return _this6.props.mopidyActions.setVolume(percent)},onMuteChange:function(mute){return _this6.props.mopidyActions.setMute(mute)}})),_react2.default.createElement("section",{className:"triggers"},_react2.default.createElement("a",{className:"control expanded-controls",onClick:function(){return _this6.setState({expanded:!_this6.state.expanded})}},this.state.expanded?_react2.default.createElement(_reactFontawesome2.default,{name:"chevron-down"}):_react2.default.createElement(_reactFontawesome2.default,{name:"chevron-up"})),_react2.default.createElement("a",{className:"control sidebar-toggle"+(this.props.sidebar_open?" open":""),onClick:function(){return _this6.props.uiActions.toggleSidebar()}},_react2.default.createElement(_reactFontawesome2.default,{className:"open",name:"bars"}))))}}]),PlaybackControls}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{http_streaming_active:state.core.http_streaming_active,http_streaming_enabled:state.core.http_streaming_enabled,http_streaming_encoding:state.core.http_streaming_encoding,http_streaming_url:state.core.http_streaming_url,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}},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)},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__(3),_redux=__webpack_require__(2),_actions=__webpack_require__(8),mopidyActions=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),ProgressSlider=function(_React$Component){function ProgressSlider(props){return _classCallCheck(this,ProgressSlider),_possibleConstructorReturn(this,(ProgressSlider.__proto__||Object.getPrototypeOf(ProgressSlider)).call(this,props))}return _inherits(ProgressSlider,_React$Component),_createClass(ProgressSlider,[{key:"handleClick",value:function(e){var slider=e.target;"slider"!=slider.className&&(slider=slider.parentElement);var sliderX=e.clientX-slider.getBoundingClientRect().left,sliderWidth=slider.getBoundingClientRect().width,percent=(sliderX/sliderWidth).toFixed(2);if(this.props.connected&&this.props.current_track){var destination_time=this.props.current_track.duration*percent;this.props.mopidyActions.setTimePosition(destination_time),this.setState({animating:!1})}}},{key:"render",value:function(){var _this2=this,percent=0;return this.props.connected&&this.props.current_track&&(percent=this.props.time_position/this.props.current_track.duration,(percent*=100)>1e3&&(percent=100)),_react2.default.createElement("div",{className:"progress slider horizontal "+this.props.play_state,onClick:function(e){return _this2.handleClick(e)}},_react2.default.createElement("div",{className:"track"},_react2.default.createElement("div",{className:"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($,global){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),_reactRouter=__webpack_require__(6),_reactRedux=__webpack_require__(3),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(14),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(16),pusherActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(19),lastfmActions=_interopRequireWildcard(_actions5),_actions6=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions6),_TrackList=__webpack_require__(21),ContextMenu=(_interopRequireDefault(_TrackList),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_expanded:!1},_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_expanded:!1}),$("body").addClass("context-menu-open");var context=this.getContext(nextProps);if(nextProps.spotify_authorized&&"spotify"==context.source)switch(nextProps.menu.context){case"artist":case"album":case"playlist":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)}else this.props.menu&&!nextProps.menu&&$("body").removeClass("context-menu-open")}},{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}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:"playArtistTopTracks",value:function(e){this.props.uiActions.hideContextMenu(),this.props.spotifyActions.playArtistTopTracks(this.props.menu.uris[0])}},{key:"addToQueue",value:function(e){var 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,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(",");_reactRouter.hashHistory.push(global.baseURL+"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||this.props.menu.items[0].artists.length<=0)return null;this.props.uiActions.hideContextMenu(),_reactRouter.hashHistory.push(global.baseURL+"artist/"+this.props.menu.items[0].artists[0].uri)}},{key:"goToAlbum",value:function(e){if(!this.props.menu.items||this.props.menu.items.length<=0||!this.props.menu.items[0].album)return null;this.props.uiActions.hideContextMenu(),_reactRouter.hashHistory.push(global.baseURL+"album/"+this.props.menu.items[0].album.uri)}},{key:"goToUser",value:function(e){if(!this.props.menu.items||this.props.menu.items.length<=0)return null;this.props.uiActions.hideContextMenu(),_reactRouter.hashHistory.push(global.baseURL+"user/"+this.props.menu.items[0].owner.uri)}},{key:"goToTrack",value:function(e){if(!this.props.menu.items||this.props.menu.items.length<=0)return null;this.props.uiActions.hideContextMenu(),_reactRouter.hashHistory.push(global.baseURL+"track/"+encodeURIComponent(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:"closeAndDeselectTracks",value:function(e){this.props.uiActions.hideContextMenu()}},{key:"renderPlaylistSubmenu",value:function(){var _this2=this,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;this.props.processes.SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR&&"running"==this.props.processes.SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR.status&&(loader=_react2.default.createElement("div",{className:"menu-item-wrapper"},_react2.default.createElement("div",{className:"menu-item mini-loader loading"},_react2.default.createElement("div",{className:"loader"}))));var list=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("span",{className:"menu-item grey-text"},"No writable playlists"));return playlists.length>0&&(list=playlists.map(function(playlist){return _react2.default.createElement("span",{className:"menu-item-wrapper",key:playlist.uri},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this2.addTracksToPlaylist(e,playlist.uri)}},_react2.default.createElement("span",{className:"label"},playlist.name)))})),_react2.default.createElement("div",{className:this.state.submenu_expanded?"submenu expanded":"submenu"},_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item close-submenu",onClick:function(e){return _this2.setState({submenu_expanded:!1})}},_react2.default.createElement("span",{className:"label"},_react2.default.createElement(_reactFontawesome2.default,{name:"caret-left"})," Back"))),list,loader)}},{key:"renderTitle",value:function(){var context=this.getContext();if("custom"==context.name)return _react2.default.createElement("span",{className:"title"},_react2.default.createElement("div",{className:"background generic"}),_react2.default.createElement("div",{className:"text"},this.props.menu.title));switch(context.type){case"artist":case"album":case"playlist":var style=null;return context.item&&context.item.images&&(style={backgroundImage:"url("+helpers.sizedImages(context.item.images).medium+")"}),_react2.default.createElement(_reactRouter.Link,{className:"title",to:global.baseURL+context.type+"/"+context.item.uri},style?_react2.default.createElement("div",{className:"background",style:style}):null,_react2.default.createElement("div",{className:"type"},context.source," ",context.nice_name),_react2.default.createElement("div",{className:"text"},context.item.name));default:return _react2.default.createElement("span",{className:"title"},_react2.default.createElement("div",{className:"type"},context.source," ",context.nice_name,"s"),_react2.default.createElement("div",{className:"text"},context.items_count," items"),_react2.default.createElement("div",{className:"background generic"}))}}},{key:"setPlaylistSubmenu",value:function(){var expanded=arguments.length>0&&void 0!==arguments[0]?arguments[0]:!this.state.submenu_expanded;this.setState({submenu_expanded:expanded}),expanded&&(this.props.spotify_library_playlists_loaded_all||this.props.spotifyActions.getLibraryPlaylists(),this.props.mopidy_library_playlists_loaded_all||this.props.mopidyActions.getLibraryPlaylists())}},{key:"renderItems",value:function(){var _this3=this,context=this.getContext(),play_uris=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.playURIs(e)}},_react2.default.createElement("span",{className:"label"},"Play"))),play_playlist=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.playPlaylist(e)}},_react2.default.createElement("span",{className:"label"},"Play"))),play_queue_item=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.playQueueItem(e)}},_react2.default.createElement("span",{className:"label"},"Play"))),play_uris_next=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.addToQueue(e,!0)}},_react2.default.createElement("span",{className:"label"},"Play next"))),play_artist_top_tracks=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.playArtistTopTracks(e)}},_react2.default.createElement("span",{className:"label"},"Play top tracks"))),add_to_queue=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.addToQueue(e)}},_react2.default.createElement("span",{className:"label"},"Add to queue"))),add_to_playlist=_react2.default.createElement("span",{className:"menu-item-wrapper has-submenu"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.setPlaylistSubmenu()}},_react2.default.createElement("span",{className:"label"},"Add to playlist"),_react2.default.createElement(_reactFontawesome2.default,{className:"submenu-icon",name:"caret-right"})),this.renderPlaylistSubmenu()),toggle_in_library=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.toggleInLibrary(e,context.in_library)}},_react2.default.createElement("span",{className:"label"},context.in_library?"Remove from library":"Add to library")));if(this.props.lastfm_authorized)if(helpers.isLoading(this.props.load_queue,["lastfm_track.getInfo"]))var toggle_loved=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item"},_react2.default.createElement("span",{className:"label grey-text"},"Love track")));else var toggle_loved=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.toggleLoved(e,context.is_loved)}},_react2.default.createElement("span",{className:"label"},context.is_loved?"Unlove":"Love"," track")));else var toggle_loved=null;var go_to_artist=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.goToArtist(e)}},_react2.default.createElement("span",{className:"label"},"Go to artist"))),go_to_album=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.goToAlbum(e)}},_react2.default.createElement("span",{className:"label"},"Go to album"))),go_to_user=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.goToUser(e)}},_react2.default.createElement("span",{className:"label"},"Go to user"))),go_to_track=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.goToTrack(e)}},_react2.default.createElement("span",{className:"label"},"Track info"))),go_to_recommendations=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.goToRecommendations(e)}},_react2.default.createElement("span",{className:"label"},"Discover similar"))),start_radio=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.startRadio(e)}},_react2.default.createElement("span",{className:"label"},"Start radio"))),remove_from_queue=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.removeFromQueue(e)}},_react2.default.createElement("span",{className:"label"},"Remove"))),remove_from_playlist=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.removeFromPlaylist(e)}},_react2.default.createElement("span",{className:"label"},"Remove"))),delete_playlist=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.deletePlaylist(e)}},_react2.default.createElement("span",{className:"label"},"Delete"))),copy_uris=_react2.default.createElement("span",{className:"menu-item-wrapper"},_react2.default.createElement("a",{className:"menu-item",onClick:function(e){return _this3.copyURIs(e)}},_react2.default.createElement("span",{className:"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:"divider"}):null,this.canBeInLibrary()?toggle_in_library:null,_react2.default.createElement("div",{className:"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:"divider"}):null,this.canBeInLibrary()?toggle_in_library:null,_react2.default.createElement("div",{className:"divider"}),"spotify"==context.source?go_to_recommendations:null,copy_uris);case"playlist":return _react2.default.createElement("div",null,play_playlist,this.canBeInLibrary()?_react2.default.createElement("div",{className:"divider"}):null,this.canBeInLibrary()?toggle_in_library:null,_react2.default.createElement("div",{className:"divider"}),"spotify"==context.source?go_to_user:null,copy_uris);case"editable-playlist":return _react2.default.createElement("div",null,play_playlist,this.canBeInLibrary()?_react2.default.createElement("div",{className:"divider"}):null,this.canBeInLibrary()?toggle_in_library:null,_react2.default.createElement("div",{className:"divider"}),"spotify"==context.source?go_to_user:null,copy_uris,_react2.default.createElement("div",{className:"divider"}),delete_playlist);case"queue-track":return _react2.default.createElement("div",null,1==context.items_count?play_queue_item:null,_react2.default.createElement("div",{className:"divider"}),add_to_playlist,toggle_loved,_react2.default.createElement("div",{className:"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:"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:"divider"}),add_to_playlist,toggle_loved,_react2.default.createElement("div",{className:"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:"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:"divider"}),add_to_playlist,toggle_loved,_react2.default.createElement("div",{className:"divider"}),"spotify"==context.source&&context.items_count<=5?go_to_recommendations:null,1==context.items_count?go_to_album:null,1==context.items_count?go_to_track:null,_react2.default.createElement("div",{className:"divider"}),copy_uris)}}},{key:"render",value:function(){var _this4=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_expanded&&(className+=" submenu-expanded"),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:"liner"},this.renderTitle(),"custom"==this.props.menu.context?this.props.menu.options:this.renderItems()),_react2.default.createElement("div",{className:"background",onClick:function(e){return _this4.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,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,playlists:state.core.playlists,tracks:state.core.tracks,spotify_authorized:state.spotify.authorization,lastfm_authorized:state.lastfm.session}},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)(ContextMenu)}).call(exports,__webpack_require__(18),__webpack_require__(9))},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__(3),_redux=__webpack_require__(2),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(7),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($){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__(3),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_helpers=(_interopRequireDefault(_reactFontawesome),__webpack_require__(1)),_Icon=(_interopRequireWildcard(_helpers),__webpack_require__(12)),_Icon2=_interopRequireDefault(_Icon),_AddToPlaylistModal=__webpack_require__(213),_AddToPlaylistModal2=_interopRequireDefault(_AddToPlaylistModal),_AddToQueueModal=__webpack_require__(214),_AddToQueueModal2=_interopRequireDefault(_AddToQueueModal),_CreatePlaylistModal=__webpack_require__(215),_CreatePlaylistModal2=_interopRequireDefault(_CreatePlaylistModal),_EditPlaylistModal=__webpack_require__(216),_EditPlaylistModal2=_interopRequireDefault(_EditPlaylistModal),_EditRadioModal=__webpack_require__(217),_EditRadioModal2=_interopRequireDefault(_EditRadioModal),_ImageZoomModal=__webpack_require__(218),_ImageZoomModal2=_interopRequireDefault(_ImageZoomModal),_KioskModeModal=__webpack_require__(219),_KioskModeModal2=_interopRequireDefault(_KioskModeModal),_SearchURISchemesModal=__webpack_require__(220),_SearchURISchemesModal2=_interopRequireDefault(_SearchURISchemesModal),_InitialSetupModal=__webpack_require__(224),_InitialSetupModal2=_interopRequireDefault(_InitialSetupModal),_AuthorizationModal_Send=__webpack_require__(225),_AuthorizationModal_Send2=_interopRequireDefault(_AuthorizationModal_Send),_AuthorizationModal_Receive=__webpack_require__(226),_AuthorizationModal_Receive2=_interopRequireDefault(_AuthorizationModal_Receive),_actions=__webpack_require__(14),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(16),pusherActions=_interopRequireWildcard(_actions5),Modal=function(_React$Component){function Modal(props){return _classCallCheck(this,Modal),_possibleConstructorReturn(this,(Modal.__proto__||Object.getPrototypeOf(Modal)).call(this,props))}return _inherits(Modal,_React$Component),_createClass(Modal,[{key:"componentWillReceiveProps",value:function(nextProps){nextProps.modal?$("body").addClass("modal-open"):$("body").removeClass("modal-open")}},{key:"toggleFullscreen",value:function(){var app=document.documentElement;app.requestFullscreen?app.requestFullscreen():app.webkitRequestFullscreen?app.webkitRequestFullscreen():app.mozRequestFullScreen?app.mozRequestFullScreen():app.msRequestFullscreen&&app.msRequestFullscreen()}},{key:"render",value:function(){var _this2=this;if(!this.props.modal)return null;return"kiosk_mode"==this.props.modal.name&&!0,_react2.default.createElement("div",{className:this.props.modal.name+" modal"},_react2.default.createElement("div",{className:"controls"},_react2.default.createElement("div",{className:"control close",onClick:function(e){return _this2.props.uiActions.closeModal()}},_react2.default.createElement(_Icon2.default,{name:"close",className:"white"}))),_react2.default.createElement("div",{className:"content"},"add_to_playlist"==this.props.modal.name?_react2.default.createElement(_AddToPlaylistModal2.default,{uiActions:this.props.uiActions,coreActions:this.props.coreActions,spotifyActions:this.props.spotifyActions,mopidyActions:this.props.mopidyActions,playlists:this.props.playlists,tracks_uris:this.props.modal.data.tracks_uris,spotify_library_playlists:this.props.spotify_library_playlists,mopidy_library_playlists:this.props.mopidy_library_playlists,processes:this.props.processes}):null,"add_to_queue"==this.props.modal.name?_react2.default.createElement(_AddToQueueModal2.default,{uiActions:this.props.uiActions,mopidyActions:this.props.mopidyActions}):null,"create_playlist"==this.props.modal.name?_react2.default.createElement(_CreatePlaylistModal2.default,{uiActions:this.props.uiActions,coreActions:this.props.coreActions}):null,"edit_playlist"==this.props.modal.name?_react2.default.createElement(_EditPlaylistModal2.default,{uiActions:this.props.uiActions,coreActions:this.props.coreActions,data:this.props.modal.data}):null,"send_authorization"==this.props.modal.name?_react2.default.createElement(_AuthorizationModal_Send2.default,{uiActions:this.props.uiActions,pusherActions:this.props.pusherActions,data:this.props.modal.data}):null,"receive_authorization"==this.props.modal.name?_react2.default.createElement(_AuthorizationModal_Receive2.default,{uiActions:this.props.uiActions,spotifyActions:this.props.spotifyActions,data:this.props.modal.data}):null,"edit_radio"==this.props.modal.name?_react2.default.createElement(_EditRadioModal2.default,{uiActions:this.props.uiActions,pusherActions:this.props.pusherActions,spotifyActions:this.props.spotifyActions,data:this.props.modal.data,radio:this.props.radio,artists:this.props.artists,tracks:this.props.tracks}):null,"image_zoom"==this.props.modal.name?_react2.default.createElement(_ImageZoomModal2.default,{uiActions:this.props.uiActions,data:this.props.modal.data}):null,"kiosk_mode"==this.props.modal.name?_react2.default.createElement(_KioskModeModal2.default,{uiActions:this.props.uiActions,data:this.props.modal.data,current_track:this.props.current_track}):null,"search_uri_schemes"==this.props.modal.name?_react2.default.createElement(_SearchURISchemesModal2.default,{uiActions:this.props.uiActions,coreActions:this.props.coreActions,search_uri_schemes:this.props.search_uri_schemes,available_uri_schemes:this.props.uri_schemes,data:this.props.modal.data}):null,"initial_setup"==this.props.modal.name?_react2.default.createElement(_InitialSetupModal2.default,{uiActions:this.props.uiActions,pusherActions:this.props.pusherActions}):null))}}]),Modal}(_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,uri_schemes:state.mopidy.uri_schemes?state.mopidy.uri_schemes:[],search_uri_schemes:state.ui.search_uri_schemes?state.ui.search_uri_schemes:[],volume:state.mopidy.volume,mute:state.mopidy.mute,modal:state.ui.modal,radio:state.core.radio,tracks:state.core.tracks,artists:state.core.artists,playlists:state.core.playlists,context_menu:state.ui.context_menu,processes:state.ui.processes,load_queue:state.ui.load_queue,mopidy_connected:state.mopidy.connected,spotify_authorized:state.spotify.authorization,spotify_library_playlists:state.spotify.library_playlists,mopidy_library_playlists:state.mopidy.library_playlists}},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),mopidyActions:(0,_redux.bindActionCreators)(mopidyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Modal)}).call(exports,__webpack_require__(18))},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),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_Icon=__webpack_require__(12),_Thumbnail=(_interopRequireDefault(_Icon),__webpack_require__(10)),_Thumbnail2=_interopRequireDefault(_Thumbnail),_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),AddToPlaylistModal=function(_React$Component){function AddToPlaylistModal(props){_classCallCheck(this,AddToPlaylistModal);var _this=_possibleConstructorReturn(this,(AddToPlaylistModal.__proto__||Object.getPrototypeOf(AddToPlaylistModal)).call(this,props));return _this.props.spotify_library_playlists||_this.props.spotifyActions.getLibraryPlaylists(),_this.props.mopidy_library_playlists||_this.props.mopidyActions.getLibraryPlaylists(),_this}return _inherits(AddToPlaylistModal,_React$Component),_createClass(AddToPlaylistModal,[{key:"playlistSelected",value:function(playlist_uri){this.props.coreActions.addTracksToPlaylist(playlist_uri,this.props.tracks_uris),this.props.uiActions.closeModal()}},{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 this.props.processes.SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR&&"running"==this.props.processes.SPOTIFY_GET_LIBRARY_PLAYLISTS_PROCESSOR.status&&(loader=_react2.default.createElement("div",{className:"lazy-loader body-loader loading"},_react2.default.createElement("div",{className:"loader"}))),_react2.default.createElement("div",null,_react2.default.createElement("h1",null,"Add to playlist"),_react2.default.createElement("h2",{className:"grey-text"},"Select playlist to add ",this.props.tracks_uris.length," track",this.props.tracks_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("h3",{className:"name"},playlist.name),_react2.default.createElement("ul",{className:"details"},_react2.default.createElement("li",null,_react2.default.createElement(_reactFontawesome2.default,{className:"source",name:helpers.sourceIcon(playlist.uri)})),_react2.default.createElement("li",null,playlist.tracks_total?_react2.default.createElement("span",{className:"grey-text"}," ",playlist.tracks_total," tracks"):null)))})),loader)}}]),AddToPlaylistModal}(_react2.default.Component);exports.default=AddToPlaylistModal},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),_reactFontawesome=__webpack_require__(5),_Icon=(_interopRequireDefault(_reactFontawesome),__webpack_require__(12)),_helpers=(_interopRequireDefault(_Icon),__webpack_require__(1)),AddToQueueModal=(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(_React$Component){function AddToQueueModal(props){_classCallCheck(this,AddToQueueModal);var _this=_possibleConstructorReturn(this,(AddToQueueModal.__proto__||Object.getPrototypeOf(AddToQueueModal)).call(this,props));return _this.state={uris:"",next:!1},_this}return _inherits(AddToQueueModal,_React$Component),_createClass(AddToQueueModal,[{key:"handleSubmit",value:function(e){var uris=this.state.uris.split(",");this.props.mopidyActions.enqueueURIs(uris,null,this.state.next),this.props.uiActions.closeModal()}},{key:"render",value:function(){var _this2=this;return _react2.default.createElement("div",null,_react2.default.createElement("h1",null,"Add to queue"),_react2.default.createElement("h2",{className:"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("span",{className:"label"},"URI(s)"),_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("span",{className:"label"},"Position"),_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:"primary large"},"Add"))))}}]),AddToQueueModal}(_react2.default.Component));exports.default=AddToQueueModal},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),_reactFontawesome=__webpack_require__(5),_Icon=(_interopRequireDefault(_reactFontawesome),__webpack_require__(12)),_helpers=(_interopRequireDefault(_Icon),__webpack_require__(1)),CreatePlaylistModal=(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(_React$Component){function CreatePlaylistModal(props){_classCallCheck(this,CreatePlaylistModal);var _this=_possibleConstructorReturn(this,(CreatePlaylistModal.__proto__||Object.getPrototypeOf(CreatePlaylistModal)).call(this,props));return _this.state={name:"",description:"",scheme:"spotify",is_public:!0,is_collaborative:!1},_this}return _inherits(CreatePlaylistModal,_React$Component),_createClass(CreatePlaylistModal,[{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),this.props.uiActions.closeModal(),!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("span",{className:"label"},"Name"),_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("span",{className:"label"},"Description"),_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("span",{className:"label"},"Options"),_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("span",{className:"label"},"Name"),_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("div",null,_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("span",{className:"label"},"Provider"),_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:"primary large"},"Create playlist"))))}}]),CreatePlaylistModal}(_react2.default.Component));exports.default=CreatePlaylistModal},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__(12),_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),EditPlaylistModal=function(_React$Component){function EditPlaylistModal(props){_classCallCheck(this,EditPlaylistModal);var _this=_possibleConstructorReturn(this,(EditPlaylistModal.__proto__||Object.getPrototypeOf(EditPlaylistModal)).call(this,props));return _this.state={error:null,name:_this.props.data.name,description:_this.props.data.description?_this.props.data.description:"",public:_this.props.data.public,collaborative:_this.props.data.collaborative},_this}return _inherits(EditPlaylistModal,_React$Component),_createClass(EditPlaylistModal,[{key:"savePlaylist",value:function(e){return e.preventDefault(),this.state.name&&""!=this.state.name?(this.props.coreActions.savePlaylist(this.props.data.uri,this.state.name,this.state.description,this.state.public,this.state.collaborative),this.props.uiActions.closeModal(),!1):(this.setState({error:"Name is required"}),!1)}},{key:"renderFields",value:function(){var _this2=this;switch(helpers.uriSource(this.props.data.uri)){case"spotify":return _react2.default.createElement("div",null,_react2.default.createElement("div",{className:"field text"},_react2.default.createElement("span",{className:"label"},"Name"),_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("span",{className:"label"},"Description"),_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("span",{className:"label"},"Options"),_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("span",{className:"label"},"Name"),_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("div",null,_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:"primary large"},"Save"))))}}]),EditPlaylistModal}(_react2.default.Component);exports.default=EditPlaylistModal},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)}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),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_Icon=__webpack_require__(12),_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),EditRadioModal=function(_React$Component){function EditRadioModal(props){_classCallCheck(this,EditRadioModal);var _this=_possibleConstructorReturn(this,(EditRadioModal.__proto__||Object.getPrototypeOf(EditRadioModal)).call(this,props));return _this.state={enabled:!1,seeds:[],uri:"",error_message:null},_this}return _inherits(EditRadioModal,_React$Component),_createClass(EditRadioModal,[{key:"componentDidMount",value:function(){if(!this.props.radio||!this.props.radio.enabled)return null;var seeds=[].concat(_toConsumableArray(this.props.radio.seed_tracks),_toConsumableArray(this.props.radio.seed_artists),_toConsumableArray(this.props.radio.seed_genres));this.setState({seeds:seeds,enabled:this.props.radio.enabled}),this.props.spotifyActions.resolveRadioSeeds(this.props.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),this.props.uiActions.closeModal()):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(){if(""==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:"grey-text"},seed.uri):_react2.default.createElement("span",null,seed.name),seed.unresolved?null:_react2.default.createElement("span",{className:"grey-text"}," (",seed.type,")"),_react2.default.createElement("button",{className:"discrete remove-uri no-hover",onClick:function(e){return _this2.removeSeed(seed.uri)}},_react2.default.createElement(_reactFontawesome2.default,{name:"trash"})))}))):_react2.default.createElement("div",null,_react2.default.createElement("div",{className:"list"},_react2.default.createElement("div",{className:"list-item no-click"},_react2.default.createElement("span",{className:"grey-text"},"No seeds"))))}},{key:"render",value:function(){var _this3=this;return _react2.default.createElement("div",null,_react2.default.createElement("h1",null,"Radio"),_react2.default.createElement("h2",{className:"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",null,this.renderSeeds(),_react2.default.createElement("div",{className:"field text"},_react2.default.createElement("span",{className:"label"},"URI(s)"),_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()}},_react2.default.createElement(_reactFontawesome2.default,{name:"plus"})," Add"),this.state.error_message?_react2.default.createElement("span",{className:"description error"},this.state.error_message):null)),_react2.default.createElement("form",null,_react2.default.createElement("div",{className:"actions centered-text"},this.state.enabled?_react2.default.createElement("button",{className:"destructive large",onClick:function(e){return _this3.handleStop(e)}},"Stop"):null,this.state.enabled?_react2.default.createElement("button",{className:"primary large",onClick:function(e){return _this3.handleUpdate(e)}},"Save"):_react2.default.createElement("button",{className:"primary large",onClick:function(e){return _this3.handleStart(e)}},"Start"))))}}]),EditRadioModal}(_react2.default.Component);exports.default=EditRadioModal},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__(3),_redux=(__webpack_require__(6),__webpack_require__(2)),_Icon=__webpack_require__(12),_actions=(_interopRequireDefault(_Icon),__webpack_require__(4)),uiActions=_interopRequireWildcard(_actions),_helpers=__webpack_require__(1),ImageZoomModal=(_interopRequireWildcard(_helpers),function(_React$Component){function ImageZoomModal(props){return _classCallCheck(this,ImageZoomModal),_possibleConstructorReturn(this,(ImageZoomModal.__proto__||Object.getPrototypeOf(ImageZoomModal)).call(this,props))}return _inherits(ImageZoomModal,_React$Component),_createClass(ImageZoomModal,[{key:"handleClick",value:function(e,connectionid){return e.preventDefault(),this.props.uiActions.closeModal(),!1}},{key:"render",value:function(){return this.props.data.url?_react2.default.createElement("div",{className:"image",style:{backgroundImage:"url("+this.props.data.url+")"}}):null}}]),ImageZoomModal}(_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)(ImageZoomModal)},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),_actions=(__webpack_require__(3),__webpack_require__(6),__webpack_require__(2),__webpack_require__(4)),_helpers=(_interopRequireWildcard(_actions),__webpack_require__(1)),_Icon=(_interopRequireWildcard(_helpers),__webpack_require__(12)),_Thumbnail=(_interopRequireDefault(_Icon),__webpack_require__(10)),_Thumbnail2=_interopRequireDefault(_Thumbnail),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),KioskModeModal=function(_React$Component){function KioskModeModal(props){return _classCallCheck(this,KioskModeModal),_possibleConstructorReturn(this,(KioskModeModal.__proto__||Object.getPrototypeOf(KioskModeModal)).call(this,props))}return _inherits(KioskModeModal,_React$Component),_createClass(KioskModeModal,[{key:"handleClick",value:function(e,connectionid){return e.preventDefault(),this.props.uiActions.closeModal(),!1}},{key:"render",value:function(){if(this.props.current_track&&this.props.current_track.images)var images=this.props.current_track.images;else var images=[];return _react2.default.createElement("div",{className:"kisk-mode-modal"},_react2.default.createElement(_Thumbnail2.default,{className:"background",images:images}),_react2.default.createElement(_Thumbnail2.default,{className:"foreground",images:images}),_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))))}}]),KioskModeModal}(_react2.default.Component);exports.default=KioskModeModal},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),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_reactSortablejs=__webpack_require__(221),_reactSortablejs2=_interopRequireDefault(_reactSortablejs),_Icon=__webpack_require__(12),_helpers=(_interopRequireDefault(_Icon),__webpack_require__(1)),SearchURISchemesModal=(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(_React$Component){function SearchURISchemesModal(props){_classCallCheck(this,SearchURISchemesModal);var _this=_possibleConstructorReturn(this,(SearchURISchemesModal.__proto__||Object.getPrototypeOf(SearchURISchemesModal)).call(this,props));return _this.state={schemes:[],available_schemes:_this.props.available_uri_schemes},_this}return _inherits(SearchURISchemesModal,_React$Component),_createClass(SearchURISchemesModal,[{key:"componentDidMount",value:function(){this.setState({schemes:Object.assign([],this.props.search_uri_schemes)})}},{key:"handleSubmit",value:function(e){this.props.uiActions.set({search_uri_schemes:this.state.schemes}),this.props.uiActions.closeModal()}},{key:"handleToggle",value:function(scheme){var uri_schemes=this.state.schemes,index=uri_schemes.indexOf(scheme);index>-1?uri_schemes.splice(index,1):uri_schemes.push(scheme),this.setState(uri_schemes)}},{key:"render",value:function(){for(var _this2=this,unselected_schemes=[],i=0;i<this.props.available_uri_schemes.length;i++){var scheme=this.props.available_uri_schemes[i];this.state.schemes.includes(scheme)||unselected_schemes.push(scheme)}return _react2.default.createElement("div",null,_react2.default.createElement("h1",{className:"no-bottom-padding"},"Search sources"),_react2.default.createElement("h2",{className:"grey-text bottom-padding"},"Customise the providers used when searching. Reduce the number of providers to speed up your searches."),_react2.default.createElement("form",{onSubmit:function(e){return _this2.handleSubmit(e)}},_react2.default.createElement(_reactSortablejs2.default,{className:"list",options:{handle:".drag-handle"},onChange:function(order,sortable,e){_this2.setState({schemes:order})}},this.state.schemes.map(function(scheme){return _react2.default.createElement("div",{className:"list-item draggable",key:scheme,"data-id":scheme},_react2.default.createElement(_reactFontawesome2.default,{className:"grey-text drag-handle",name:"bars"}),scheme.replace(":",""),_react2.default.createElement("button",{className:"discrete remove-uri no-hover",onClick:function(e){return _this2.handleToggle(scheme)}},_react2.default.createElement(_reactFontawesome2.default,{name:"trash"})))})),_react2.default.createElement("div",{className:"available-schemes"},_react2.default.createElement("h4",null,"Add more schemes"),unselected_schemes.map(function(scheme){return _react2.default.createElement("div",{className:"scheme flag large blue",key:scheme,onClick:function(e){return _this2.handleToggle(scheme)}},scheme.replace(":","")," ",_react2.default.createElement(_reactFontawesome2.default,{name:"plus"}))})),_react2.default.createElement("div",{className:"actions centered-text"},_react2.default.createElement("button",{type:"submit",className:"primary large"},"Save"))))}}]),SearchURISchemesModal}(_react2.default.Component));exports.default=SearchURISchemesModal},function(module,exports,__webpack_require__){"use strict";var _Sortable=__webpack_require__(222),_Sortable2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_Sortable);module.exports=_Sortable2.default},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 _class,_temp2,_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},_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}}(),_propTypes=__webpack_require__(11),_propTypes2=_interopRequireDefault(_propTypes),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_reactDom=__webpack_require__(43),_reactDom2=_interopRequireDefault(_reactDom),_sortablejs=__webpack_require__(223),_sortablejs2=_interopRequireDefault(_sortablejs),store={nextSibling:null,activeComponent:null},Sortable=(_temp2=_class=function(_Component){function Sortable(){var _ref,_temp,_this,_ret;_classCallCheck(this,Sortable);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _temp=_this=_possibleConstructorReturn(this,(_ref=Sortable.__proto__||Object.getPrototypeOf(Sortable)).call.apply(_ref,[this].concat(args))),_this.sortable=null,_ret=_temp,_possibleConstructorReturn(_this,_ret)}return _inherits(Sortable,_Component),_createClass(Sortable,[{key:"componentDidMount",value:function(){var _this2=this,options=_extends({},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=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=_sortablejs2.default.create(_reactDom2.default.findDOMNode(this),options)}},{key:"componentWillUnmount",value:function(){this.sortable&&(this.sortable.destroy(),this.sortable=null)}},{key:"render",value:function(){var _props=this.props,Component=_props.tag,props=_objectWithoutProperties(_props,["tag"]);return delete props.options,delete props.onChange,_react2.default.createElement(Component,props)}}]),Sortable}(_react.Component),_class.propTypes={options:_propTypes2.default.object,onChange:_propTypes2.default.func,tag:_propTypes2.default.string,style:_propTypes2.default.object},_class.defaultProps={options:{},tag:"div",style:{}},_temp2);exports.default=Sortable},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>
|
||
* @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, and not "+{}.toString.call(el);this.el=el,this.options=options=_extend({},options),el[expando]=this;var defaults={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(el.nodeName)?"li":">*",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,setData:function(dataTransfer,dragEl){dataTransfer.setData("Text",dragEl.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Sortable.supportPointer};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,_on(el,"mousedown",this._onTapStart),_on(el,"touchstart",this._onTapStart),options.supportPointer&&_on(el,"pointerdown",this._onTapStart),this.nativeDraggable&&(_on(el,"dragover",this),_on(el,"dragenter",this)),touchDragOverListeners.push(this._onDragOver),options.store&&this.sort(options.store.get(this))}function _cloneHide(sortable,state){"clone"!==sortable.lastPullMode&&(state=!0),cloneEl&&cloneEl.state!==state&&(_css(cloneEl,"display",state?"none":""),state||cloneEl.state&&(sortable.options.group.revertClone?(rootEl.insertBefore(cloneEl,nextEl),sortable._animate(dragEl,cloneEl)):rootEl.insertBefore(cloneEl,dragEl)),cloneEl.state=state)}function _closest(el,selector,ctx){if(el){ctx=ctx||document;do{if(">*"===selector&&el.parentNode===ctx||_matches(el,selector))return el}while(el=_getParentOrHost(el))}return null}function _getParentOrHost(el){var parent=el.host;return parent&&parent.nodeType?parent:el.parentNode}function _globalDragOver(evt){evt.dataTransfer&&(evt.dataTransfer.dropEffect="move"),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)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||(prop="-webkit-"+prop),style[prop]=val+("string"==typeof val?"":"px")}}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){sortable=sortable||rootEl[expando];var evt=document.createEvent("Event"),options=sortable.options,onName="on"+name.charAt(0).toUpperCase()+name.substr(1);evt.initEvent(name,!0,!0),evt.to=toEl||rootEl,evt.from=fromEl||rootEl,evt.item=targetEl||rootEl,evt.clone=cloneEl,evt.oldIndex=startIndex,evt.newIndex=newIndex,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 evt=document.createEvent("Event"),evt.initEvent("move",!0,!0),evt.to=toEl,evt.from=fromEl,evt.dragged=dragEl,evt.draggedRect=dragRect,evt.related=targetEl||toEl,evt.relatedRect=targetRect||toEl.getBoundingClientRect(),evt.willInsertAfter=willInsertAfter,fromEl.dispatchEvent(evt),onMoveFn&&(retVal=onMoveFn.call(sortable,evt,originalEvt)),retVal}function _disableDraggable(el){el.draggable=!1}function _unsilent(){_silent=!1}function _ghostIsLast(el,evt){var lastEl=el.lastElementChild,rect=lastEl.getBoundingClientRect();return evt.clientY-(rect.top+rect.height)>5||evt.clientX-(rect.left+rect.width)>5}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()||">*"!==selector&&!_matches(el,selector)||index++;return index}function _matches(el,selector){if(el){selector=selector.split(".");var tag=selector.shift().toUpperCase(),re=new RegExp("\\s("+selector.join("|")+")(?=\\s)","g");return!(""!==tag&&el.nodeName.toUpperCase()!=tag||selector.length&&((" "+el.className+" ").match(re)||[]).length!=selector.length)}return!1}function _throttle(callback,ms){var args,_this;return function(){void 0===args&&(args=arguments,_this=this,setTimeout(function(){1===args.length?callback.call(_this,args[0]):callback.apply(_this,args),args=void 0},ms))}}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){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)}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,lastEl,lastCSS,lastParentCSS,oldIndex,newIndex,activeGroup,putSortable,tapEvt,touchEvt,moved,autoScroll={},R_SPACE=/\s+/g,R_FLOAT=/left|right|inline/,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=!1,passiveMode=!1,supportDraggable="draggable"in document.createElement("div"),supportCssPointerEvents=function(el){return!navigator.userAgent.match(/(?:Trident.*rv[ :]?11\.|msie)/i)&&(el=document.createElement("x"),el.style.cssText="pointer-events:auto","auto"===el.style.pointerEvents)}(),_silent=!1,abs=Math.abs,min=Math.min,savedInputChecked=[],touchDragOverListeners=[],_autoScroll=_throttle(function(evt,options,rootEl){if(rootEl&&options.scroll){var el,rect,vx,vy,scrollOffsetX,scrollOffsetY,_this=rootEl[expando],sens=options.scrollSensitivity,speed=options.scrollSpeed,x=evt.clientX,y=evt.clientY,winWidth=window.innerWidth,winHeight=window.innerHeight;if(scrollParentEl!==rootEl&&(scrollEl=options.scroll,scrollParentEl=rootEl,scrollCustomFn=options.scrollFn,!0===scrollEl)){scrollEl=rootEl;do{if(scrollEl.offsetWidth<scrollEl.scrollWidth||scrollEl.offsetHeight<scrollEl.scrollHeight)break}while(scrollEl=scrollEl.parentNode)}scrollEl&&(el=scrollEl,rect=scrollEl.getBoundingClientRect(),vx=(abs(rect.right-x)<=sens)-(abs(rect.left-x)<=sens),vy=(abs(rect.bottom-y)<=sens)-(abs(rect.top-y)<=sens)),vx||vy||(vx=(winWidth-x<=sens)-(x<=sens),vy=(winHeight-y<=sens)-(y<=sens),(vx||vy)&&(el=win)),autoScroll.vx===vx&&autoScroll.vy===vy&&autoScroll.el===el||(autoScroll.el=el,autoScroll.vx=vx,autoScroll.vy=vy,clearInterval(autoScroll.pid),el&&(autoScroll.pid=setInterval(function(){if(scrollOffsetY=vy?vy*speed:0,scrollOffsetX=vx?vx*speed:0,"function"==typeof scrollCustomFn)return scrollCustomFn.call(_this,scrollOffsetX,scrollOffsetY,evt);el===win?win.scrollTo(win.pageXOffset+scrollOffsetX,win.pageYOffset+scrollOffsetY):(el.scrollTop+=scrollOffsetY,el.scrollLeft+=scrollOffsetX)},24)))}},30),_prepareGroup=function(options){function toFn(value,pull){return void 0!==value&&!0!==value||(value=group.name),"function"==typeof value?value:function(to,from){var fromGroup=from.options.group.name;return pull?value:value&&(value.join?value.indexOf(fromGroup)>-1:fromGroup==value)}}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};try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){passiveMode=!1,captureMode={capture:!1,passive:passiveMode}}}))}catch(err){}return Sortable.prototype={constructor:Sortable,_onTapStart:function(evt){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]||target,filter=options.filter;if(_saveInputCheckedState(el),!dragEl&&!(/mousedown|pointerdown/.test(type)&&0!==evt.button||options.disabled)&&!originalTarget.isContentEditable&&(target=_closest(target,options.draggable,el))&&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.preventDefault())}else if(filter&&(filter=filter.split(",").some(function(criteria){if(criteria=_closest(originalTarget,criteria.trim(),el))return _dispatchEvent(_this,criteria,"filter",target,el,el,startIndex),!0})))return void(preventOnFilter&&evt.preventDefault());options.handle&&!_closest(originalTarget,options.handle,el)||this._prepareDragStart(evt,touch,target,startIndex)}},_prepareDragStart:function(evt,touch,target,startIndex){var dragStartFn,_this=this,el=_this.el,options=_this.options,ownerDocument=el.ownerDocument;target&&!dragEl&&target.parentNode===el&&(tapEvt=evt,rootEl=el,dragEl=target,parentEl=dragEl.parentNode,nextEl=dragEl.nextSibling,lastDownEl=target,activeGroup=options.group,oldIndex=startIndex,this._lastX=(touch||evt).clientX,this._lastY=(touch||evt).clientY,dragEl.style["will-change"]="all",dragStartFn=function(){_this._disableDelayedDrag(),dragEl.draggable=_this.nativeDraggable,_toggleClass(dragEl,options.chosenClass,!0),_this._triggerDragStart(evt,touch),_dispatchEvent(_this,rootEl,"choose",dragEl,rootEl,rootEl,oldIndex)},options.ignore.split(",").forEach(function(criteria){_find(dragEl,criteria.trim(),_disableDraggable)}),_on(ownerDocument,"mouseup",_this._onDrop),_on(ownerDocument,"touchend",_this._onDrop),_on(ownerDocument,"touchcancel",_this._onDrop),_on(ownerDocument,"selectstart",_this),options.supportPointer&&_on(ownerDocument,"pointercancel",_this._onDrop),options.delay?(_on(ownerDocument,"mouseup",_this._disableDelayedDrag),_on(ownerDocument,"touchend",_this._disableDelayedDrag),_on(ownerDocument,"touchcancel",_this._disableDelayedDrag),_on(ownerDocument,"mousemove",_this._disableDelayedDrag),_on(ownerDocument,"touchmove",_this._disableDelayedDrag),options.supportPointer&&_on(ownerDocument,"pointermove",_this._disableDelayedDrag),_this._dragStartTimer=setTimeout(dragStartFn,options.delay)):dragStartFn())},_disableDelayedDrag:function(){var ownerDocument=this.el.ownerDocument;clearTimeout(this._dragStartTimer),_off(ownerDocument,"mouseup",this._disableDelayedDrag),_off(ownerDocument,"touchend",this._disableDelayedDrag),_off(ownerDocument,"touchcancel",this._disableDelayedDrag),_off(ownerDocument,"mousemove",this._disableDelayedDrag),_off(ownerDocument,"touchmove",this._disableDelayedDrag),_off(ownerDocument,"pointermove",this._disableDelayedDrag)},_triggerDragStart:function(evt,touch){touch=touch||("touch"==evt.pointerType?evt:null),touch?(tapEvt={target:dragEl,clientX:touch.clientX,clientY:touch.clientY},this._onDragStart(tapEvt,"touch")):this.nativeDraggable?(_on(dragEl,"dragend",this),_on(rootEl,"dragstart",this._onDragStart)):this._onDragStart(tapEvt,!0);try{document.selection?_nextTick(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(err){}},_dragStarted:function(){if(rootEl&&dragEl){var options=this.options;_toggleClass(dragEl,options.ghostClass,!0),_toggleClass(dragEl,options.dragClass,!1),Sortable.active=this,_dispatchEvent(this,rootEl,"start",dragEl,rootEl,rootEl,oldIndex)}else this._nulling()},_emulateDragOver:function(){if(touchEvt){if(this._lastX===touchEvt.clientX&&this._lastY===touchEvt.clientY)return;this._lastX=touchEvt.clientX,this._lastY=touchEvt.clientY,supportCssPointerEvents||_css(ghostEl,"display","none");var target=document.elementFromPoint(touchEvt.clientX,touchEvt.clientY),parent=target,i=touchDragOverListeners.length;if(target&&target.shadowRoot&&(target=target.shadowRoot.elementFromPoint(touchEvt.clientX,touchEvt.clientY),parent=target),parent)do{if(parent[expando]){for(;i--;)touchDragOverListeners[i]({clientX:touchEvt.clientX,clientY:touchEvt.clientY,target:target,rootEl:parent});break}target=parent}while(parent=parent.parentNode);supportCssPointerEvents||_css(ghostEl,"display","")}},_onTouchMove:function(evt){if(tapEvt){var options=this.options,fallbackTolerance=options.fallbackTolerance,fallbackOffset=options.fallbackOffset,touch=evt.touches?evt.touches[0]:evt,dx=touch.clientX-tapEvt.clientX+fallbackOffset.x,dy=touch.clientY-tapEvt.clientY+fallbackOffset.y,translate3d=evt.touches?"translate3d("+dx+"px,"+dy+"px,0)":"translate("+dx+"px,"+dy+"px)";if(!Sortable.active){if(fallbackTolerance&&min(abs(touch.clientX-this._lastX),abs(touch.clientY-this._lastY))<fallbackTolerance)return;this._dragStarted()}this._appendGhost(),moved=!0,touchEvt=touch,_css(ghostEl,"webkitTransform",translate3d),_css(ghostEl,"mozTransform",translate3d),_css(ghostEl,"msTransform",translate3d),_css(ghostEl,"transform",translate3d),evt.preventDefault()}},_appendGhost:function(){if(!ghostEl){var ghostRect,rect=dragEl.getBoundingClientRect(),css=_css(dragEl),options=this.options;ghostEl=dragEl.cloneNode(!0),_toggleClass(ghostEl,options.ghostClass,!1),_toggleClass(ghostEl,options.fallbackClass,!0),_toggleClass(ghostEl,options.dragClass,!0),_css(ghostEl,"top",rect.top-parseInt(css.marginTop,10)),_css(ghostEl,"left",rect.left-parseInt(css.marginLeft,10)),_css(ghostEl,"width",rect.width),_css(ghostEl,"height",rect.height),_css(ghostEl,"opacity","0.8"),_css(ghostEl,"position","fixed"),_css(ghostEl,"zIndex","100000"),_css(ghostEl,"pointerEvents","none"),options.fallbackOnBody&&document.body.appendChild(ghostEl)||rootEl.appendChild(ghostEl),ghostRect=ghostEl.getBoundingClientRect(),_css(ghostEl,"width",2*rect.width-ghostRect.width),_css(ghostEl,"height",2*rect.height-ghostRect.height)}},_onDragStart:function(evt,useFallback){var _this=this,dataTransfer=evt.dataTransfer,options=_this.options;_this._offUpEvents(),activeGroup.checkPull(_this,_this,dragEl,evt)&&(cloneEl=_clone(dragEl),cloneEl.draggable=!1,cloneEl.style["will-change"]="",_css(cloneEl,"display","none"),_toggleClass(cloneEl,_this.options.chosenClass,!1),_this._cloneId=_nextTick(function(){rootEl.insertBefore(cloneEl,dragEl),_dispatchEvent(_this,rootEl,"clone",dragEl)})),_toggleClass(dragEl,options.dragClass,!0),useFallback?("touch"===useFallback?(_on(document,"touchmove",_this._onTouchMove),_on(document,"touchend",_this._onDrop),_on(document,"touchcancel",_this._onDrop),options.supportPointer&&(_on(document,"pointermove",_this._onTouchMove),_on(document,"pointerup",_this._onDrop))):(_on(document,"mousemove",_this._onTouchMove),_on(document,"mouseup",_this._onDrop)),_this._loopId=setInterval(_this._emulateDragOver,50)):(dataTransfer&&(dataTransfer.effectAllowed="move",options.setData&&options.setData.call(_this,dataTransfer,dragEl)),_on(document,"drop",_this),_this._dragStartId=_nextTick(_this._dragStarted))},_onDragOver:function(evt){var target,dragRect,targetRect,revert,el=this.el,options=this.options,group=options.group,activeSortable=Sortable.active,isOwner=activeGroup===group,isMovingBetweenSortable=!1,canSort=options.sort;if(void 0!==evt.preventDefault&&(evt.preventDefault(),!options.dragoverBubble&&evt.stopPropagation()),!dragEl.animated&&(moved=!0,activeSortable&&!options.disabled&&(isOwner?canSort||(revert=!rootEl.contains(dragEl)):putSortable===this||(activeSortable.lastPullMode=activeGroup.checkPull(this,activeSortable,dragEl,evt))&&group.checkPut(this,activeSortable,dragEl,evt))&&(void 0===evt.rootEl||evt.rootEl===this.el))){if(_autoScroll(evt,options,this.el),_silent)return;if(target=_closest(evt.target,options.draggable,el),dragRect=dragEl.getBoundingClientRect(),putSortable!==this&&(putSortable=this,isMovingBetweenSortable=!0),revert)return _cloneHide(activeSortable,!0),parentEl=rootEl,void(cloneEl||nextEl?rootEl.insertBefore(dragEl,cloneEl||nextEl):canSort||rootEl.appendChild(dragEl));if(0===el.children.length||el.children[0]===ghostEl||el===evt.target&&_ghostIsLast(el,evt)){if(0!==el.children.length&&el.children[0]!==ghostEl&&el===evt.target&&(target=el.lastElementChild),target){if(target.animated)return;targetRect=target.getBoundingClientRect()}_cloneHide(activeSortable,isOwner),!1!==_onMove(rootEl,el,dragEl,dragRect,target,targetRect,evt)&&(dragEl.contains(el)||(el.appendChild(dragEl),parentEl=el),this._animate(dragRect,dragEl),target&&this._animate(targetRect,target))}else if(target&&!target.animated&&target!==dragEl&&void 0!==target.parentNode[expando]){lastEl!==target&&(lastEl=target,lastCSS=_css(target),lastParentCSS=_css(target.parentNode)),targetRect=target.getBoundingClientRect();var width=targetRect.right-targetRect.left,height=targetRect.bottom-targetRect.top,floating=R_FLOAT.test(lastCSS.cssFloat+lastCSS.display)||"flex"==lastParentCSS.display&&0===lastParentCSS["flex-direction"].indexOf("row"),isWide=target.offsetWidth>dragEl.offsetWidth,isLong=target.offsetHeight>dragEl.offsetHeight,halfway=(floating?(evt.clientX-targetRect.left)/width:(evt.clientY-targetRect.top)/height)>.5,nextSibling=target.nextElementSibling,after=!1;if(floating){var elTop=dragEl.offsetTop,tgTop=target.offsetTop;after=elTop===tgTop?target.previousElementSibling===dragEl&&!isWide||halfway&&isWide:target.previousElementSibling===dragEl||dragEl.previousElementSibling===target?(evt.clientY-targetRect.top)/height>.5:tgTop>elTop}else isMovingBetweenSortable||(after=nextSibling!==dragEl&&!isLong||halfway&&isLong);var moveVector=_onMove(rootEl,el,dragEl,dragRect,target,targetRect,evt,after);!1!==moveVector&&(1!==moveVector&&-1!==moveVector||(after=1===moveVector),_silent=!0,setTimeout(_unsilent,30),_cloneHide(activeSortable,isOwner),dragEl.contains(el)||(after&&!nextSibling?el.appendChild(dragEl):target.parentNode.insertBefore(dragEl,after?nextSibling:target)),parentEl=dragEl.parentNode,this._animate(dragRect,dragEl),this._animate(targetRect,target))}}},_animate:function(prevRect,target){var ms=this.options.animation;if(ms){var currentRect=target.getBoundingClientRect();1===prevRect.nodeType&&(prevRect=prevRect.getBoundingClientRect()),_css(target,"transition","none"),_css(target,"transform","translate3d("+(prevRect.left-currentRect.left)+"px,"+(prevRect.top-currentRect.top)+"px,0)"),target.offsetWidth,_css(target,"transition","all "+ms+"ms"),_css(target,"transform","translate3d(0,0,0)"),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(ownerDocument,"pointercancel",this._onDrop),_off(ownerDocument,"selectstart",this)},_onDrop:function(evt){var el=this.el,options=this.options;clearInterval(this._loopId),clearInterval(autoScroll.pid),clearTimeout(this._dragStartTimer),_cancelNextTick(this._cloneId),_cancelNextTick(this._dragStartId),_off(document,"mouseover",this),_off(document,"mousemove",this._onTouchMove),this.nativeDraggable&&(_off(document,"drop",this),_off(el,"dragstart",this._onDragStart)),this._offUpEvents(),evt&&(moved&&(evt.preventDefault(),!options.dropBubble&&evt.stopPropagation()),ghostEl&&ghostEl.parentNode&&ghostEl.parentNode.removeChild(ghostEl),rootEl!==parentEl&&"clone"===Sortable.active.lastPullMode||cloneEl&&cloneEl.parentNode&&cloneEl.parentNode.removeChild(cloneEl),dragEl&&(this.nativeDraggable&&_off(dragEl,"dragend",this),_disableDraggable(dragEl),dragEl.style["will-change"]="",_toggleClass(dragEl,this.options.ghostClass,!1),_toggleClass(dragEl,this.options.chosenClass,!1),_dispatchEvent(this,rootEl,"unchoose",dragEl,parentEl,rootEl,oldIndex),rootEl!==parentEl?(newIndex=_index(dragEl,options.draggable))>=0&&(_dispatchEvent(null,parentEl,"add",dragEl,parentEl,rootEl,oldIndex,newIndex),_dispatchEvent(this,rootEl,"remove",dragEl,parentEl,rootEl,oldIndex,newIndex),_dispatchEvent(null,parentEl,"sort",dragEl,parentEl,rootEl,oldIndex,newIndex),_dispatchEvent(this,rootEl,"sort",dragEl,parentEl,rootEl,oldIndex,newIndex)):dragEl.nextSibling!==nextEl&&(newIndex=_index(dragEl,options.draggable))>=0&&(_dispatchEvent(this,rootEl,"update",dragEl,parentEl,rootEl,oldIndex,newIndex),_dispatchEvent(this,rootEl,"sort",dragEl,parentEl,rootEl,oldIndex,newIndex)),Sortable.active&&(null!=newIndex&&-1!==newIndex||(newIndex=oldIndex),_dispatchEvent(this,rootEl,"end",dragEl,parentEl,rootEl,oldIndex,newIndex),this.save()))),this._nulling()},_nulling:function(){rootEl=dragEl=parentEl=ghostEl=nextEl=cloneEl=lastDownEl=scrollEl=scrollParentEl=tapEvt=touchEvt=moved=newIndex=lastEl=lastCSS=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"dragover":case"dragenter":dragEl&&(this._onDragOver(evt),_globalDragOver(evt));break;case"mouseover":this._onDrop(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)&&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)&&(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(this)},closest:function(el,selector){return _closest(el,selector||this.options.draggable,this.el)},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")}),touchDragOverListeners.splice(touchDragOverListeners.indexOf(this._onDragOver),1),this._onDrop(),this.el=el=null}},_on(document,"touchmove",function(evt){Sortable.active&&evt.preventDefault()}),Sortable.utils={on:_on,off:_off,css:_css,find:_find,is:function(el,selector){return!!_closest(el,selector,el)},extend:_extend,throttle:_throttle,closest:_closest,toggleClass:_toggleClass,clone:_clone,index:_index,nextTick:_nextTick,cancelNextTick:_cancelNextTick},Sortable.create=function(el,options){return new Sortable(el,options)},Sortable.version="1.7.0",Sortable})}).call(exports,__webpack_require__(18))},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),_reactFontawesome=__webpack_require__(5),_Icon=(_interopRequireDefault(_reactFontawesome),__webpack_require__(12)),_helpers=(_interopRequireDefault(_Icon),__webpack_require__(1)),InitialSetupModal=(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(_React$Component){function InitialSetupModal(props){_classCallCheck(this,InitialSetupModal);var _this=_possibleConstructorReturn(this,(InitialSetupModal.__proto__||Object.getPrototypeOf(InitialSetupModal)).call(this,props));return _this.state={username:"Anonymous"},_this}return _inherits(InitialSetupModal,_React$Component),_createClass(InitialSetupModal,[{key:"handleSubmit",value:function(e){}},{key:"handleCancel",value:function(e){}},{key:"render",value:function(){var _this2=this;return _react2.default.createElement("div",null,_react2.default.createElement("h1",null,"Welcome to Iris"),_react2.default.createElement("form",{onSubmit:function(e){return _this2.handleSubmit(e)}},_react2.default.createElement("div",{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 _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:"actions centered-text"},_react2.default.createElement("button",{className:"large",onClick:function(e){return _this2.handleCancel(e)}},"Skip"),_react2.default.createElement("button",{className:"primary large",onClick:function(e){return _this2.handleSubmit(e)}},"Save"))))}}]),InitialSetupModal}(_react2.default.Component));exports.default=InitialSetupModal},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__(3),_redux=(__webpack_require__(6),__webpack_require__(2)),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_helpers=__webpack_require__(1),_Icon=(_interopRequireWildcard(_helpers),__webpack_require__(12)),AuthorizationModal_Send=(_interopRequireDefault(_Icon),function(_React$Component){function AuthorizationModal_Send(props){return _classCallCheck(this,AuthorizationModal_Send),_possibleConstructorReturn(this,(AuthorizationModal_Send.__proto__||Object.getPrototypeOf(AuthorizationModal_Send)).call(this,props))}return _inherits(AuthorizationModal_Send,_React$Component),_createClass(AuthorizationModal_Send,[{key:"handleClick",value:function(e,connection_id){return e.preventDefault(),this.props.pusherActions.deliverMessage(connection_id,"spotify_authorization_received",{authorization:this.props.authorization,user:this.props.me}),this.props.uiActions.closeModal(),!1}},{key:"renderConnectionsList",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]);return connections.length<=0?_react2.default.createElement("div",{className:"no-results"},"No peer connections available"):_react2.default.createElement("div",{className:"list small pusher-connection-list"},connections.map(function(connection,index){return _react2.default.createElement("div",{className:"list-item connection",key:connection.connection_id,onClick:function(e){return _this2.handleClick(e,connection.connection_id)}},connection.username," ",_react2.default.createElement("span",{className:"grey-text"},"(",connection.ip,")"))}))}},{key:"render",value:function(){return _react2.default.createElement("div",null,_react2.default.createElement("h1",null,"Share Spotify authentication"),_react2.default.createElement("h2",{className:"grey-text"},"Send your authentication tokens to another client. When the recipient client imports this, their Iris will have full access to your Spotify account (",this.props.me.id,")."),this.renderConnectionsList())}}]),AuthorizationModal_Send}(_react2.default.Component)),mapStateToProps=function(state,ownProps){return{me:state.spotify.me,authorization:state.spotify.authorization,connection_id:state.pusher.connection_id,connections:state.pusher.connections}},mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(AuthorizationModal_Send)},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),_actions=(__webpack_require__(3),__webpack_require__(6),__webpack_require__(2),__webpack_require__(4)),_helpers=(_interopRequireWildcard(_actions),__webpack_require__(1)),_Icon=(_interopRequireWildcard(_helpers),__webpack_require__(12)),_Thumbnail=(_interopRequireDefault(_Icon),__webpack_require__(10)),_Thumbnail2=_interopRequireDefault(_Thumbnail),_class=function(_React$Component){function _class(props){return _classCallCheck(this,_class),_possibleConstructorReturn(this,(_class.__proto__||Object.getPrototypeOf(_class)).call(this,props))}return _inherits(_class,_React$Component),_createClass(_class,[{key:"handleImport",value:function(e){this.props.spotifyActions.importAuthorization(this.props.data),this.props.uiActions.closeModal()}},{key:"render",value:function(){var _this2=this;if(console.log(this.props.data),!this.props.data||!this.props.data.user||!this.props.data.authorization)return null;var user=this.props.data.user;return _react2.default.createElement("div",null,_react2.default.createElement("h1",null,"Spotify authorization received"),_react2.default.createElement("h2",{className:"grey-text"},user.display_name?user.display_name:user.id," has shared their Spotify authorization with you. Importing this will overwrite your existing Spotify Authorization."),_react2.default.createElement("div",{className:"user-details"},_react2.default.createElement(_Thumbnail2.default,{images:user.images,circle:!0}),_react2.default.createElement("h2",null,user.display_name?user.display_name:user.id),_react2.default.createElement("ul",{className:"details"},_react2.default.createElement("li",null,user.id),_react2.default.createElement("li",null,user.followers.total," followers"))),_react2.default.createElement("div",{className:"actions centered-text"},_react2.default.createElement("button",{className:"large",onClick:function(e){return _this2.props.uiActions.closeModal()}},"Ignore"),_react2.default.createElement("button",{className:"primary large",onClick:function(e){return _this2.handleImport(e)}},"Import authorization")))}}]),_class}(_react2.default.Component);exports.default=_class},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),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),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:"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)&¬ifications.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 shortcut-notification"+(notification.closing?" closing":""),key:notification.key,"data-duration":notification.duration},_react2.default.createElement(_reactFontawesome2.default,{name:notification.content}));default:return _react2.default.createElement("div",{className:notification.type+" notification"+(notification.closing?" closing":""),key:notification.key,"data-key":notification.key,"data-duration":notification.duration},_react2.default.createElement(_reactFontawesome2.default,{name:"close",className:"close-button",onClick:function(e){return _this2.props.uiActions.removeNotification(notification.key,!0)}}),notification.title?_react2.default.createElement("h4",null,notification.title):null,_react2.default.createElement("p",{className:"content",dangerouslySetInnerHTML:{__html:notification.content}}),notification.description?_react2.default.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:notification.description}}):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:"process notification"+(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(_reactFontawesome2.default,{name:"close",className:"close-button",onClick:function(e){_this3.props.uiActions.cancelProcess(process.key)}}));case"cancelling":return _react2.default.createElement("div",{className:"process notification 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 _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__(3),_redux=(__webpack_require__(6),__webpack_require__(2)),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(4),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:"renderLoadQueue",value:function(){if(!this.props.ui.load_queue)return null;var queue=(this.props.ui.load_queue,[]);return _react2.default.createElement("div",{className:"item"},queue)}},{key:"renderLoadQueue",value:function(){if(!this.props.ui.load_queue)return null;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:"item"},_react2.default.createElement("br",null),queue):null}},{key:"render",value:function(){return _react2.default.createElement("div",{className:"debug-info"},_react2.default.createElement("div",{className:"item"},"Albums: ",this.props.core.albums?Object.keys(this.props.core.albums).length:"0"),_react2.default.createElement("div",{className:"item"},"Artists: ",this.props.core.artists?Object.keys(this.props.core.artists).length:"0"),_react2.default.createElement("div",{className:"item"},"Playlists: ",this.props.core.playlists?Object.keys(this.props.core.playlists).length:"0"),_react2.default.createElement("div",{className:"item"},"Tracks: ",this.props.core.tracks?Object.keys(this.props.core.tracks).length:"0"),_react2.default.createElement("div",{className:"item"},"Users: ",this.props.core.users?Object.keys(this.props.core.users).length:"0"),_react2.default.createElement("div",{className:"item"},"Notifications: ",this.props.ui.notifications?Object.keys(this.props.ui.notifications).length:"0"),_react2.default.createElement("div",{className:"item"},"Processes: ",this.props.ui.processes?Object.keys(this.props.ui.processes).length:"0"),_react2.default.createElement("div",{className:"item"},"Enqueue batches: ",this.props.mopidy.enqueue_uris_batches?this.props.mopidy.enqueue_uris_batches.length:"0"),_react2.default.createElement("br",null),_react2.default.createElement("div",{className:"item"},"Slim mode: ",this.props.ui.slim_mode?"on":"off"),_react2.default.createElement("div",{className:"item"},"Test mode: ",this.props.ui.test_mode?"on":"off"),_react2.default.createElement("div",{className:"item"},"Touch: ",helpers.isTouchDevice()?"on":"off"),_react2.default.createElement("div",{className:"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)})),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});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__(3),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_Header=__webpack_require__(13),_TrackList=(_interopRequireDefault(_Header),__webpack_require__(21)),_TrackList2=_interopRequireDefault(_TrackList),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Parallax=__webpack_require__(30),_ArtistSentence=(_interopRequireDefault(_Parallax),__webpack_require__(20)),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_ArtistGrid=__webpack_require__(35),_FollowButton=(_interopRequireDefault(_ArtistGrid),__webpack_require__(39)),_FollowButton2=_interopRequireDefault(_FollowButton),_Dater=__webpack_require__(31),_Dater2=_interopRequireDefault(_Dater),_LazyLoadListener=__webpack_require__(22),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_ContextMenuTrigger=__webpack_require__(25),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions3),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.loadAlbum()}},{key:"handleContextMenu",value:function(e){e.preventDefault();var data={uris:[this.props.params.uri]};this.props.uiActions.showContextMenu(e,data,"album","click")}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.params.uri!=this.props.params.uri?this.loadAlbum(nextProps):!this.props.mopidy_connected&&nextProps.mopidy_connected&&"spotify"!=helpers.uriSource(this.props.params.uri)&&this.loadAlbum(nextProps)}},{key:"handleContextMenu",value:function(e){var data={e:e,context:"album",items:[this.props.album],uris:[this.props.params.uri]};this.props.uiActions.showContextMenu(data)}},{key:"loadAlbum",value:function(){var props=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;switch(helpers.uriSource(props.params.uri)){case"spotify":props.album&&props.album.tracks&&props.album.artists_uris?console.info("Loading album from index"):this.props.spotifyActions.getAlbum(props.params.uri),this.props.spotifyActions.following(props.params.uri);break;default:props.mopidy_connected&&(props.album&&props.album.tracks?console.info("Loading album from index"):this.props.mopidyActions.getAlbum(props.params.uri))}}},{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.params.uri],this.props.params.uri)}},{key:"inLibrary",value:function(){var library=helpers.uriSource(this.props.params.uri)+"_library_albums";return this.props[library]&&this.props[library].indexOf(this.props.params.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.params.uri)])?_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})):null;var artists=[];if(this.props.album.artists_uris&&this.props.artists)for(var i=0;i<this.props.album.artists_uris.length;i++){var uri=this.props.album.artists_uris[i];this.props.artists.hasOwnProperty(uri)&&artists.push(this.props.artists[uri])}var tracks=[];if(this.props.album.tracks_uris&&this.props.tracks)for(var i=0;i<this.props.album.tracks_uris.length;i++){var uri=this.props.album.tracks_uris[i];this.props.tracks.hasOwnProperty(uri)&&tracks.push(this.props.tracks[uri])}if(tracks.length<=0&&helpers.isLoading(this.props.load_queue,["spotify_albums/"+helpers.getFromUri("albumid",this.props.params.uri)]))var is_loading_tracks=!0;else var is_loading_tracks=!1;return _react2.default.createElement("div",{className:"view album-view content-wrapper"},_react2.default.createElement("div",{className:"thumbnail-wrapper"},_react2.default.createElement(_Thumbnail2.default,{size:"large",canZoom:!0,images:this.props.album.images})),_react2.default.createElement("div",{className:"title"},_react2.default.createElement("h1",null,this.props.album.name),_react2.default.createElement("ul",{className:"details"},this.props.slim_mode?null:_react2.default.createElement("li",{className:"has-tooltip"},_react2.default.createElement(_reactFontawesome2.default,{name:helpers.sourceIcon(this.props.params.uri)}),_react2.default.createElement("span",{className:"tooltip"},helpers.uriSource(this.props.params.uri)," ",this.props.album.album_type?this.props.album.album_type:"album")),!this.props.slim_mode&&artists.length>0?_react2.default.createElement("li",null,_react2.default.createElement(_ArtistSentence2.default,{artists:artists})):null,this.props.album.date?_react2.default.createElement("li",null,_react2.default.createElement(_Dater2.default,{type:"date",data:this.props.album.date})):null,_react2.default.createElement("li",null,tracks?_react2.default.createElement("span",null,tracks.length," tracks, ",_react2.default.createElement(_Dater2.default,{type:"total-time",data:tracks})):"0 tracks, 0 mins"))),_react2.default.createElement("div",{className:"actions"},_react2.default.createElement("button",{className:"primary",onClick:function(e){return _this2.play()}},"Play"),"spotify"==helpers.uriSource(this.props.params.uri)?_react2.default.createElement(_FollowButton2.default,{className:"secondary",uri:this.props.params.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:tracks,uri:this.props.params.uri}),_react2.default.createElement(_LazyLoadListener2.default,{loading:this.props.album.tracks_more,forceLoader:is_loading_tracks,loadMore:function(){return _this2.loadMore()}})))}}]),Album}(_react2.default.Component),mapStateToProps=function(state,ownProps){var uri=ownProps.params.uri;return{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{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)(Album)},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_redux=__webpack_require__(2),_reactRouter=__webpack_require__(6),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_LazyLoadListener=__webpack_require__(22),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_Header=__webpack_require__(13),_TrackList=(_interopRequireDefault(_Header),__webpack_require__(21)),_TrackList2=_interopRequireDefault(_TrackList),_AlbumGrid=__webpack_require__(40),_AlbumGrid2=_interopRequireDefault(_AlbumGrid),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Parallax=__webpack_require__(30),_Parallax2=_interopRequireDefault(_Parallax),_ArtistGrid=__webpack_require__(35),_ArtistGrid2=_interopRequireDefault(_ArtistGrid),_RelatedArtists=__webpack_require__(92),_RelatedArtists2=_interopRequireDefault(_RelatedArtists),_FollowButton=__webpack_require__(39),_FollowButton2=_interopRequireDefault(_FollowButton),_ContextMenuTrigger=__webpack_require__(25),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_DropdownField=__webpack_require__(36),_DropdownField2=_interopRequireDefault(_DropdownField),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(16),pusherActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(19),lastfmActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions5),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.loadArtist()}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.params.uri!=this.props.params.uri?this.loadArtist(nextProps):!this.props.mopidy_connected&&nextProps.mopidy_connected&&"spotify"!=helpers.uriSource(this.props.params.uri)&&this.loadArtist(nextProps)}},{key:"handleContextMenu",value:function(e){var data={e:e,context:"artist",items:[this.props.artist],uris:[this.props.params.uri]};this.props.uiActions.showContextMenu(data)}},{key:"loadArtist",value:function(){var props=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;switch(helpers.uriSource(props.params.uri)){case"spotify":props.artist&&props.artist.albums_uris&&props.artist.related_artists_uris||this.props.spotifyActions.getArtist(props.params.uri,!0),this.props.spotifyActions.following(props.params.uri);break;default:props.mopidy_connected&&(props.artist&&props.artist.images&&props.artist.albums_uris||this.props.mopidyActions.getArtist(props.params.uri))}}},{key:"loadMore",value:function(){this.props.spotifyActions.getMore(this.props.artist.albums_more,{parent_type:"artist",parent_key:this.props.params.uri,records_type:"album"})}},{key:"inLibrary",value:function(){var library=helpers.uriSource(this.props.params.uri)+"_library_artists";return this.props[library]&&this.props[library].indexOf(this.props.params.uri)>-1}},{key:"setSort",value:function(value){var reverse=!1;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:"renderSubViewMenu",value:function(){return _react2.default.createElement("div",{className:"sub-views"},_react2.default.createElement(_reactRouter.Link,{className:"option",activeClassName:"active",to:global.baseURL+"artist/"+this.props.params.uri},_react2.default.createElement("h4",null,"Overview")),this.props.artist.related_artists_uris?_react2.default.createElement(_reactRouter.Link,{className:"option",activeClassName:"active",to:global.baseURL+"artist/"+this.props.params.uri+"/related-artists"},_react2.default.createElement("h4",null,"Related artists")):null,_react2.default.createElement(_reactRouter.Link,{className:"option",activeClassName:"active",to:global.baseURL+"artist/"+this.props.params.uri+"/about"},_react2.default.createElement("h4",null,"About")))}},{key:"renderBody",value:function(){var _this2=this,related_artists=(helpers.uriSource(this.props.params.uri),[]);if(this.props.artist.related_artists_uris)for(var i=0;i<this.props.artist.related_artists_uris.length;i++){var uri=this.props.artist.related_artists_uris[i];this.props.artists.hasOwnProperty(uri)&&related_artists.push(this.props.artists[uri])}var albums=[];if(this.props.artist.albums_uris){for(var i=0;i<this.props.artist.albums_uris.length;i++){var uri=this.props.artist.albums_uris[i];this.props.albums.hasOwnProperty(uri)&&albums.push(this.props.albums[uri])}albums=helpers.sortItems(albums,this.props.sort,this.props.sort_reverse)}switch(this.props.params.sub_view){case"related-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:related_artists})));case"about":return _react2.default.createElement("div",{className:"body about"},_react2.default.createElement("div",{className:"col w40 tiles artist-stats"},this.props.artist.images?_react2.default.createElement("div",{className:"tile thumbnail-wrapper"},_react2.default.createElement(_Thumbnail2.default,{size:"huge",canZoom:!0,images:this.props.artist.images})):null,this.props.artist.images_additional?_react2.default.createElement("div",{className:"tile thumbnail-wrapper"},_react2.default.createElement(_Thumbnail2.default,{size:"huge",canZoom:!0,images:this.props.artist.images_additional})):null,this.props.artist.followers?_react2.default.createElement("div",{className:"tile"},_react2.default.createElement("span",{className:"content"},_react2.default.createElement(_reactFontawesome2.default,{name:"users"}),this.props.artist.followers.total.toLocaleString()," followers")):null,this.props.artist.popularity?_react2.default.createElement("div",{className:"tile"},_react2.default.createElement("span",{className:"content"},_react2.default.createElement(_reactFontawesome2.default,{name:"fire"}),this.props.artist.popularity,"% popularity")):null,this.props.artist.listeners?_react2.default.createElement("div",{className:"tile"},_react2.default.createElement("span",{className:"content"},_react2.default.createElement(_reactFontawesome2.default,{name:"headphones"}),this.props.artist.listeners.toLocaleString()," listeners")):null),_react2.default.createElement("div",{className:"col w60 biography"},_react2.default.createElement("section",null,this.props.artist.bio?_react2.default.createElement("div",{className:"biography-text"},_react2.default.createElement("p",null,this.props.artist.bio.content),_react2.default.createElement("br",null),_react2.default.createElement("div",{className:"grey-text"},"Published: ",this.props.artist.bio.published),_react2.default.createElement("div",{className:"grey-text"},"Origin: ",_react2.default.createElement("a",{href:this.props.artist.bio.links.link.href,target:"_blank"},this.props.artist.bio.links.link.href))):null)));default:var sort_options=[{value:"name",label:"Name"},{value:"date",label:"Date"},{value:"tracks_total",label:"Tracks"}],tracks=[];if(this.props.artist.tracks_uris&&this.props.tracks)for(var i=0;i<this.props.artist.tracks_uris.length;i++){var uri=this.props.artist.tracks_uris[i];this.props.tracks.hasOwnProperty(uri)&&tracks.push(this.props.tracks[uri])}if(tracks.length<=0&&helpers.isLoading(this.props.load_queue,["spotify_artists/"+helpers.getFromUri("artistid",this.props.params.uri)+"/top-tracks"]))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 w"+(related_artists.length>0?"70":"100")},_react2.default.createElement("h4",null,"Top tracks"),_react2.default.createElement("div",{className:"list-wrapper"},_react2.default.createElement(_TrackList2.default,{className:"artist-track-list",uri:this.props.params.uri,tracks:tracks}),_react2.default.createElement(_LazyLoadListener2.default,{forceLoader:is_loading_tracks}))),_react2.default.createElement("div",{className:"col w5"}),related_artists.length>0?_react2.default.createElement("div",{className:"col w25 related-artists"},_react2.default.createElement("h4",null,"Related artists"),_react2.default.createElement("div",{className:"list-wrapper"},_react2.default.createElement(_RelatedArtists2.default,{artists:related_artists.slice(0,6)})),_react2.default.createElement(_reactRouter.Link,{to:global.baseURL+"artist/"+this.props.params.uri+"/related-artists",className:"button grey"},"All related artists")):null,_react2.default.createElement("div",{className:"cf"}),_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,reverse:this.props.sort_reverse,handleChange:function(val){_this2.setSort(val),_this2.props.uiActions.hideContextMenu()}})),_react2.default.createElement("section",{className:"grid-wrapper no-top-padding"},_react2.default.createElement(_AlbumGrid2.default,{albums:albums}),_react2.default.createElement(_LazyLoadListener2.default,{loading:this.props.artist.albums_more,loadMore:function(){return _this2.loadMore()}}))))}}},{key:"render",value:function(){var _this3=this,scheme=helpers.uriSource(this.props.params.uri);if(!this.props.artist)return helpers.isLoading(this.props.load_queue,["spotify_artists/"+helpers.getFromUri("artistid",this.props.params.uri),"lastfm_method=artist.getInfo"])?_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})):null;if(this.props.artist&&this.props.artist.images)var image=helpers.sizedImages(this.props.artist.images).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"},_react2.default.createElement("div",{className:"intro"},_react2.default.createElement(_Parallax2.default,{image:image}),_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:"primary",onClick:function(e){return _this3.props.mopidyActions.playURIs(uris_to_play,_this3.props.artist.uri)}},"Play"),is_spotify?_react2.default.createElement(_FollowButton2.default,{className:"white",uri:this.props.params.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)}})),this.renderSubViewMenu())),_react2.default.createElement("div",{className:"content-wrapper"},this.renderBody()))}}]),Artist}(_react2.default.Component),mapStateToProps=function(state,ownProps){var uri=ownProps.params.uri;return{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:[],sort:state.ui.artist_albums_sort?state.ui.artist_albums_sort:"name",sort_reverse:!!state.ui.artist_albums_sort_reverse,spotify_authorized:state.spotify.authorization,mopidy_connected:state.mopidy.connected}},mapDispatchToProps=function(dispatch){return{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)}).call(exports,__webpack_require__(9))},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__(3),_redux=__webpack_require__(2),_reactFontawesome=(__webpack_require__(6),__webpack_require__(5)),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_reactGa=__webpack_require__(23),_reactGa2=_interopRequireDefault(_reactGa),_TrackList=__webpack_require__(21),_TrackList2=_interopRequireDefault(_TrackList),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Dater=__webpack_require__(31),_Dater2=_interopRequireDefault(_Dater),_ConfirmationButton=__webpack_require__(93),_LazyLoadListener=(_interopRequireDefault(_ConfirmationButton),__webpack_require__(22)),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_FollowButton=__webpack_require__(39),_FollowButton2=_interopRequireDefault(_FollowButton),_Header=__webpack_require__(13),_ContextMenuTrigger=(_interopRequireDefault(_Header),__webpack_require__(25)),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_URILink=__webpack_require__(24),_URILink2=_interopRequireDefault(_URILink),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(14),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(7),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:"componentDidMount",value:function(){this.loadPlaylist()}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.params.uri!=this.props.params.uri?this.loadPlaylist(nextProps):!this.props.mopidy_connected&&nextProps.mopidy_connected&&"spotify"!=helpers.uriSource(this.props.params.uri)&&this.loadPlaylist(nextProps)}},{key:"loadPlaylist",value:function(){var props=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;if(props.playlist&&props.playlist.is_completely_loaded)console.info("Loading playlist from index");else switch(helpers.uriSource(props.params.uri)){case"spotify":this.props.spotifyActions.getPlaylist(props.params.uri),this.props.spotifyActions.following(props.params.uri);break;default:props.mopidy_connected&&this.props.mopidyActions.getPlaylist(props.params.uri)}}},{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:this.props.playlist.can_edit?"editable-playlist":"playlist",items:[this.props.playlist],uris:[this.props.params.uri]};this.props.uiActions.showContextMenu(data)}},{key:"play",value:function(){this.props.mopidyActions.playPlaylist(this.props.playlist.uri)}},{key:"follow",value:function(){_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(){_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.params.uri)+"_library_playlists";return this.props[library]&&this.props[library].indexOf(this.props.params.uri)>-1}},{key:"renderActions",value:function(){var _this2=this;switch(helpers.uriSource(this.props.playlist.uri)){case"m3u":return _react2.default.createElement("div",{className:"actions"},_react2.default.createElement("button",{className:"primary",onClick:function(e){return _this2.play()}},"Play"),_react2.default.createElement("button",{className:"secondary",onClick:function(e){return _this2.props.uiActions.openModal("edit_playlist",{uri:_this2.props.params.uri,name:_this2.props.playlist.name})}},"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:"primary",onClick:function(e){return _this2.play()}},"Play"),_react2.default.createElement("button",{className:"secondary",onClick:function(e){return _this2.props.uiActions.openModal("edit_playlist",{uri:_this2.props.params.uri,name:_this2.props.playlist.name,public:_this2.props.playlist.public,collaborative:_this2.props.playlist.collaborative,description:_this2.props.playlist.description})}},"Edit"),_react2.default.createElement(_ContextMenuTrigger2.default,{onTrigger:function(e){return _this2.handleContextMenu(e)}})):_react2.default.createElement("div",{className:"actions"},_react2.default.createElement("button",{className:"primary",onClick:function(e){return _this2.play()}},"Play"),_react2.default.createElement(_FollowButton2.default,{className:"secondary",uri:this.props.params.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:"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,user_id=(helpers.uriSource(this.props.params.uri),helpers.getFromUri("userid",this.props.params.uri)),playlist_id=helpers.getFromUri("playlistid",this.props.params.uri);if(!this.props.playlist)return helpers.isLoading(this.props.load_queue,["spotify_users/"+user_id+"/playlists/"+playlist_id+"?"])?_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})):null;var context="playlist";this.props.playlist.can_edit&&(context="editable-playlist");var tracks=[];if(this.props.playlist.tracks_uris&&this.props.tracks)for(var i=0;i<this.props.playlist.tracks_uris.length;i++){var uri=this.props.playlist.tracks_uris[i];this.props.tracks.hasOwnProperty(uri)&&tracks.push(this.props.tracks[uri])}if(tracks.length<=0&&helpers.isLoading(this.props.load_queue,["spotify_users/"+user_id+"/playlists/"+playlist_id,"spotify_users/"+user_id+"/playlists/"+playlist_id+"/tracks"]))var is_loading_tracks=!0;else var is_loading_tracks=!1;return _react2.default.createElement("div",{className:"view playlist-view content-wrapper"},_react2.default.createElement("div",{className:"thumbnail-wrapper"},_react2.default.createElement(_Thumbnail2.default,{size:"large",canZoom:!0,images:this.props.playlist.images})),_react2.default.createElement("div",{className:"title"},_react2.default.createElement("h1",null,this.props.playlist.name),this.props.playlist.description?_react2.default.createElement("h2",{className:"description grey-text",dangerouslySetInnerHTML:{__html:this.props.playlist.description}}):null,_react2.default.createElement("ul",{className:"details"},this.props.slim_mode?null:_react2.default.createElement("li",{className:"has-tooltip"},_react2.default.createElement(_reactFontawesome2.default,{name:helpers.sourceIcon(this.props.params.uri)}),_react2.default.createElement("span",{className:"tooltip"},helpers.uriSource(this.props.params.uri)," playlist")),this.props.playlist.owner&&!this.props.slim_mode?_react2.default.createElement("li",null,_react2.default.createElement(_URILink2.default,{type:"user",uri:this.props.playlist.owner.uri},this.props.playlist.owner.id)):null,this.props.playlist.followers?_react2.default.createElement("li",null,this.props.playlist.followers.total.toLocaleString()," followers"):null,this.props.playlist.last_modified?_react2.default.createElement("li",null,"Edited ",_react2.default.createElement(_Dater2.default,{type:"ago",data:this.props.playlist.last_modified})):null,_react2.default.createElement("li",null,this.props.playlist.tracks_total?this.props.playlist.tracks_total:tracks.length," tracks, ",_react2.default.createElement(_Dater2.default,{type:"total-time",data:tracks})))),this.renderActions(),_react2.default.createElement("section",{className:"list-wrapper"},_react2.default.createElement(_TrackList2.default,{uri:this.props.params.uri,className:"playlist-track-list",context:context,tracks:tracks,removeTracks:function(tracks_indexes){return _this3.removeTracks(tracks_indexes)},reorderTracks:function(indexes,index){return _this3.reorderTracks(indexes,index)}}),_react2.default.createElement(_LazyLoadListener2.default,{loading:this.props.playlist.tracks_more,forceLoader:is_loading_tracks,loadMore:function(){return _this3.loadMore()}})))}}]),Playlist}(_react2.default.Component),mapStateToProps=function(state,ownProps){var uri=ownProps.params.uri;return{slim_mode:state.ui.slim_mode,load_queue:state.ui.load_queue,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.id}},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__(3),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_Thumbnail=(_interopRequireDefault(_reactFontawesome),__webpack_require__(10)),_PlaylistGrid=(_interopRequireDefault(_Thumbnail),__webpack_require__(41)),_PlaylistGrid2=_interopRequireDefault(_PlaylistGrid),_FollowButton=__webpack_require__(39),_FollowButton2=_interopRequireDefault(_FollowButton),_LazyLoadListener=__webpack_require__(22),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_Parallax=__webpack_require__(30),_Parallax2=_interopRequireDefault(_Parallax),_ContextMenuTrigger=__webpack_require__(25),_helpers=(_interopRequireDefault(_ContextMenuTrigger),__webpack_require__(1)),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(8),_actions2=(_interopRequireWildcard(_actions),__webpack_require__(7)),spotifyActions=_interopRequireWildcard(_actions2),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.loadUser()}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.params.uri!=this.props.params.uri&&this.loadUser(nextProps)}},{key:"loadUser",value:function(){var props=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;props.user&&void 0!==props.user.playlists_uris||(this.props.spotifyActions.getUser(props.params.uri,!0),this.props.spotifyActions.following(props.params.uri))}},{key:"loadMore",value:function(){this.props.spotifyActions.getMore(this.props.user.playlists_more,{parent_type:"user",parent_key:this.props.params.uri,records_type:"playlist"})}},{key:"isMe",value:function(){var userid=helpers.getFromUri("userid",this.props.params.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.params.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"})):null;var playlists=[];if(this.props.user.playlists_uris)for(var i=0;i<this.props.user.playlists_uris.length;i++){var uri=this.props.user.playlists_uris[i];this.props.playlists.hasOwnProperty(uri)&&playlists.push(this.props.playlists[uri])}if(this.props.user&&this.props.user.images)var image=helpers.sizedImages(this.props.user.images).huge;else var image=null;return _react2.default.createElement("div",{className:"view user-view"},_react2.default.createElement("div",{className:"intro"},_react2.default.createElement(_Parallax2.default,{image:image}),_react2.default.createElement("div",{className:"liner"},_react2.default.createElement("h1",null,this.props.user.display_name?this.props.user.display_name:this.props.user.id),_react2.default.createElement("h2",null,_react2.default.createElement("ul",{className:"details"},this.props.user.playlists_total?_react2.default.createElement("li",null,this.props.user.playlists_total?this.props.user.playlists_total.toLocaleString():0," playlists"):null,this.props.user.followers?_react2.default.createElement("li",null,this.props.user.followers.total.toLocaleString()," 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:this.props.params.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:playlists}),_react2.default.createElement(_LazyLoadListener2.default,{loading:this.props.user.playlists_more,loadMore:function(){return _this2.loadMore()}}))))}}]),User}(_react2.default.Component),mapStateToProps=function(state,ownProps){var uri=ownProps.params.uri;return{load_queue:state.ui.load_queue,spotify_authorized:state.spotify.authorization,me:state.spotify.me,playlists:state.core.playlists,user:void 0!==state.core.users[uri]&&state.core.users[uri]}},mapDispatchToProps=function(dispatch){return{spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(User)},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_reactRouter=__webpack_require__(6),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_Header=__webpack_require__(13),_Header2=_interopRequireDefault(_Header),_TrackList=__webpack_require__(21),_Thumbnail=(_interopRequireDefault(_TrackList),__webpack_require__(10)),_Thumbnail2=_interopRequireDefault(_Thumbnail),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_ArtistGrid=__webpack_require__(35),_FollowButton=(_interopRequireDefault(_ArtistGrid),__webpack_require__(39)),_LastfmLoveButton=(_interopRequireDefault(_FollowButton),__webpack_require__(234)),_LastfmLoveButton2=_interopRequireDefault(_LastfmLoveButton),_Dater=__webpack_require__(31),_Dater2=_interopRequireDefault(_Dater),_LazyLoadListener=__webpack_require__(22),_ContextMenuTrigger=(_interopRequireDefault(_LazyLoadListener),__webpack_require__(25)),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_URILink=__webpack_require__(24),_URILink2=_interopRequireDefault(_URILink),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(19),lastfmActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(235),geniusActions=_interopRequireWildcard(_actions5),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.loadTrack()}},{key:"handleContextMenu",value:function(e){e.preventDefault();var data={uris:[this.props.params.uri]};this.props.uiActions.showContextMenu(e,data,"track","click")}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.params.uri!=this.props.params.uri?this.loadTrack(nextProps):!this.props.mopidy_connected&&nextProps.mopidy_connected&&"spotify"!=helpers.uriSource(this.props.params.uri)&&this.loadTrack(nextProps),!this.props.track.artists&&nextProps.track.artists&&(nextProps.lastfm_authorized&&this.props.lastfmActions.getTrack(nextProps.track.uri),nextProps.track.lyrics_results||this.props.geniusActions.findTrackLyrics(nextProps.track))}},{key:"handleContextMenu",value:function(e){var data={e:e,context:"track",items:[this.props.track],uris:[this.props.params.uri]};this.props.uiActions.showContextMenu(data)}},{key:"loadTrack",value:function(){var props=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;switch(helpers.uriSource(props.params.uri)){case"spotify":props.track||(this.props.spotifyActions.getTrack(props.params.uri),this.props.spotifyActions.following(props.params.uri));break;default:props.mopidy_connected&&(props.track||this.props.mopidyActions.getTrack(props.params.uri))}props.track&&props.track.artists&&(props.lastfm_authorized&&this.props.lastfmActions.getTrack(props.track.uri),props.track&&!props.track.lyrics_results&&this.props.geniusActions.findTrackLyrics(props.track))}},{key:"play",value:function(){this.props.mopidyActions.playURIs([this.props.params.uri],this.props.params.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.url,value:result.url,defaultValue:result.url==_this2.props.track.lyrics_url},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 grey-text"},"Origin: ",_react2.default.createElement("a",{href:this.props.track.lyrics_url,target:"_blank"},this.props.track.lyrics_url))):null}},{key:"render",value:function(){var _this3=this;if(helpers.isLoading(this.props.load_queue,["spotify_track/"+helpers.getFromUri("trackid",this.props.params.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;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(_URILink2.default,{type:"album",uri:track.album?track.album.uri:null},_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:"grey-text"},track.album&&track.album.uri?_react2.default.createElement(_reactRouter.Link,{to:global.baseURL+"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:"has-tooltip"},_react2.default.createElement(_reactFontawesome2.default,{name:helpers.sourceIcon(this.props.params.uri)}),_react2.default.createElement("span",{className:"tooltip"},helpers.uriSource(this.props.params.uri)," track")),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)),_react2.default.createElement("div",{className:"actions"},_react2.default.createElement("button",{className:"primary",onClick:function(e){return _this3.play()}},"Play"),_react2.default.createElement(_LastfmLoveButton2.default,{uri:this.props.params.uri,artist:this.props.track.artists[0].name,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.renderLyricsSelector(),this.renderLyrics())}}]),Track}(_react2.default.Component),mapStateToProps=function(state,ownProps){var uri=ownProps.params.uri;return{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.session,spotify_authorized:state.spotify.authorization,mopidy_connected:state.mopidy.connected}},mapDispatchToProps=function(dispatch){var _ref;return _ref={uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch)},_defineProperty(_ref,"uiActions",(0,_redux.bindActionCreators)(uiActions,dispatch)),_defineProperty(_ref,"mopidyActions",(0,_redux.bindActionCreators)(mopidyActions,dispatch)),_defineProperty(_ref,"lastfmActions",(0,_redux.bindActionCreators)(lastfmActions,dispatch)),_defineProperty(_ref,"spotifyActions",(0,_redux.bindActionCreators)(spotifyActions,dispatch)),_defineProperty(_ref,"geniusActions",(0,_redux.bindActionCreators)(geniusActions,dispatch)),_ref};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Track)}).call(exports,__webpack_require__(9))},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__(3),_redux=(__webpack_require__(6),__webpack_require__(2)),_reactFontawesome=__webpack_require__(5),_helpers=(_interopRequireDefault(_reactFontawesome),__webpack_require__(1)),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(4)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(19),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="";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+" destructive",onClick:function(e){return _this2.remove()}},this.props.removeText):_react2.default.createElement("button",{className:className,onClick:function(e){return _this2.add()}},this.props.addText):_react2.default.createElement("button",{className:className+" 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.session}},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($){function getTrackLyrics(uri,url){return function(dispatch,getState){dispatch({type:"TRACK_LOADED",track:{uri:uri,lyrics:null,lyrics_url:null}}),sendRequest(dispatch,getState,url).then(function(response){var html=$(response),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="grey-text">['),lyrics_html=lyrics_html.replace(/(\])/g,"]</span>"),dispatch({type:"TRACK_LOADED",track:{uri:uri,lyrics:lyrics_html,lyrics_url:url}})}},function(error){dispatch(coreActions.handleException("Could not extract 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,""),query=query.replace(/[^A-Za-z0-9\s]/g,""),sendRequest(dispatch,getState,"search?q="+encodeURIComponent(query)).then(function(response){if(response.response.hits&&response.response.hits.length>0){for(var lyrics_results=[],i=0;i<response.response.hits.length;i++)lyrics_results.push({title:response.response.hits[i].result.full_title,url:response.response.hits[i].result.url});dispatch({type:"TRACK_LOADED",track:{uri:track.uri,lyrics_results:lyrics_results}}),dispatch(getTrackLyrics(track.uri,lyrics_results[0].url))}},function(error){dispatch(coreActions.handleException("Could not get track info",error))})}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getTrackLyrics=getTrackLyrics,exports.findTrackLyrics=findTrackLyrics;var coreActions=__webpack_require__(14),uiActions=__webpack_require__(4),helpers=__webpack_require__(1),sendRequest=function(dispatch,getState,endpoint){return new Promise(function(resolve,reject){var loader_key=helpers.generateGuid();dispatch(uiActions.startLoading(loader_key,"genius_"+endpoint));var url=endpoint;url.startsWith("http")||(url="https://api.genius.com/"+url);var config={method:"POST",cache:!1,timeout:3e4,headers:{Authorization:"Bearer nBNNEFekix8BOsfPyfK7LtX-CaUz7L7ak92qC3GfMAIQi8eWjuwb4P8SUxK1K-iY"},data:JSON.stringify({url:url}),url:"//"+getState().mopidy.host+":"+getState().mopidy.port+"/iris/http/proxy_request"};$.ajax(config).then(function(response){dispatch(uiActions.stopLoading(loader_key)),resolve(response.result)},function(xhr,status,error){dispatch(uiActions.stopLoading(loader_key)),reject({config:config,xhr:xhr,status:status,error:error})})})}}).call(exports,__webpack_require__(18))},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_reactRouter=__webpack_require__(6),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_Icon=__webpack_require__(12),_Icon2=_interopRequireDefault(_Icon),_Parallax=__webpack_require__(30),_Parallax2=_interopRequireDefault(_Parallax),_TrackList=__webpack_require__(21),_TrackList2=_interopRequireDefault(_TrackList),_Track=__webpack_require__(91),_Dater=(_interopRequireDefault(_Track),__webpack_require__(31)),_Dater2=_interopRequireDefault(_Dater),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Header=__webpack_require__(13),_Header2=_interopRequireDefault(_Header),_URILink=__webpack_require__(24),_URILink2=_interopRequireDefault(_URILink),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(16),pusherActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),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:"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 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:"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:"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&&void 0!==current_track.images&¤t_track.images&&(current_track_image=helpers.sizedImages(current_track.images).large);var options=_react2.default.createElement("span",null,this.props.spotify_enabled?_react2.default.createElement("button",{className:"no-hover",onClick:function(e){return _this2.props.uiActions.openModal("edit_radio")}},_react2.default.createElement(_Icon2.default,{name:"broadcast"})," Radio",this.props.radio&&this.props.radio.enabled?_react2.default.createElement("span",{className:"flag blue"},"On"):null):null,_react2.default.createElement("button",{className:"no-hover",onClick:function(e){return _reactRouter.hashHistory.push(global.baseURL+"queue/history")}},_react2.default.createElement(_reactFontawesome2.default,{name:"history"})," History"),_react2.default.createElement("button",{className:"no-hover",onClick:function(e){return _this2.props.mopidyActions.clearTracklist()}},_react2.default.createElement(_reactFontawesome2.default,{name:"trash"})," Clear"),_react2.default.createElement("button",{className:"no-hover",onClick:function(e){return _this2.props.uiActions.openModal("add_to_queue",{})}},_react2.default.createElement(_reactFontawesome2.default,{name:"plus"})," Add URI"));return _react2.default.createElement("div",{className:"view queue-view"},_react2.default.createElement(_Header2.default,{icon:"play",className:"overlay",title:"Now playing",options:options,uiActions:this.props.uiActions}),_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,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{spotify_enabled:state.spotify.enabled,radio:state.core.radio,radio_enabled:!(!state.core.radio||!state.core.radio.enabled),tracks:state.core.tracks,queue:state.core.queue,queue_tlids:state.core.queue_tlids,queue_metadata:state.core.queue_metadata,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)}).call(exports,__webpack_require__(9))},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_reactRouter=__webpack_require__(6),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_TrackList=__webpack_require__(21),_TrackList2=_interopRequireDefault(_TrackList),_Header=__webpack_require__(13),_Header2=_interopRequireDefault(_Header),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(16),pusherActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),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.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(){var options=_react2.default.createElement("span",null,_react2.default.createElement("button",{className:"no-hover",onClick:function(e){return _reactRouter.hashHistory.push(global.baseURL+"queue")}},_react2.default.createElement(_reactFontawesome2.default,{name:"reply"})," Back"));return _react2.default.createElement("div",{className:"view queue-history-view"},_react2.default.createElement(_Header2.default,{icon:"play",title:"Playback history",options:options,uiActions:this.props.uiActions}),_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_TrackList2.default,{className:"queue-history-track-list",show_source_icon:!0,context:"history",tracks:this.props.queue_history})))}}]),QueueHistory}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{mopidy_connected:state.mopidy.connected,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)}).call(exports,__webpack_require__(9))},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_reactRouter=__webpack_require__(6),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_Header=__webpack_require__(13),_Header2=_interopRequireDefault(_Header),_Thumbnail=__webpack_require__(10),_actions=(_interopRequireDefault(_Thumbnail),__webpack_require__(4)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(16),pusherActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(7),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:"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("span",null,_react2.default.createElement("button",{className:"no-hover",onClick:function(e){return _reactRouter.hashHistory.push(global.baseURL+"settings")}},_react2.default.createElement(_reactFontawesome2.default,{name:"reply"})," Back"));return _react2.default.createElement("div",{className:"view debugger-view"},_react2.default.createElement(_Header2.default,{icon:"cog",title:"Debugger",options:options,uiActions:this.props.uiActions}),_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 working"},"Applying..."):this.props.test_mode?_react2.default.createElement("span",{className:"button destructive",onClick:function(e){return _this2.toggleTestMode(e)}},"Disable"):_react2.default.createElement("span",{className:"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 secondary",onClick:function(e){return _this2.props.uiActions.createNotification({content:"Test notification"})}},"Create notification"),_react2.default.createElement("a",{className:"button secondary",onClick:function(e){return _this2.props.uiActions.startProcess("test_process","Test process",{total:100,remaining:17})}},"Start process"),_react2.default.createElement("a",{className:"button secondary",onClick:function(e){return _this2.props.uiActions.processFinishing("test_process")}},"Stop process")))),_react2.default.createElement("h4",{className:"underline"},"Spotify"),_react2.default.createElement("div",{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("div",{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("div",{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:"secondary"},"Send")))),_react2.default.createElement("h4",{className:"underline"},"Pusher"),_react2.default.createElement("form",{onSubmit:function(e){return _this2.callPusher(e)}},_react2.default.createElement("div",{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":"perform_upgrade"}'},"Perform upgrade (beta)"),_react2.default.createElement("option",{value:'{"method":"proxy_request","data":{"url":"https://jsonplaceholder.typicode.com/posts/1"}}'},"Proxy request")))),_react2.default.createElement("div",{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:"secondary"},"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)}).call(exports,__webpack_require__(9))},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__(3),_redux=(__webpack_require__(6),__webpack_require__(2)),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_reactGa=__webpack_require__(23),_Header=(_interopRequireDefault(_reactGa),__webpack_require__(13)),_Header2=_interopRequireDefault(_Header),_DropdownField=__webpack_require__(36),_DropdownField2=_interopRequireDefault(_DropdownField),_TrackList=__webpack_require__(21),_TrackList2=_interopRequireDefault(_TrackList),_ArtistGrid=__webpack_require__(35),_ArtistGrid2=_interopRequireDefault(_ArtistGrid),_AlbumGrid=__webpack_require__(40),_AlbumGrid2=_interopRequireDefault(_AlbumGrid),_PlaylistGrid=__webpack_require__(41),_PlaylistGrid2=_interopRequireDefault(_PlaylistGrid),_LazyLoadListener=__webpack_require__(22),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_SearchForm=__webpack_require__(240),_SearchForm2=_interopRequireDefault(_SearchForm),_URILink=__webpack_require__(24),_URILink2=_interopRequireDefault(_URILink),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(14),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions4),Search=function(_React$Component){function Search(props){return _classCallCheck(this,Search),_possibleConstructorReturn(this,(Search.__proto__||Object.getPrototypeOf(Search)).call(this,props))}return _inherits(Search,_React$Component),_createClass(Search,[{key:"componentDidMount",value:function(){var context="all",term=null;this.props.params&&this.props.params.query&&""!==this.props.params.query&&(context=helpers.getFromUri("searchcontext",this.props.params.query),term=helpers.getFromUri("searchterm",this.props.params.query)),$(document).find(".search-form input").focus(),context&&term&&(this.props.mopidy_connected&&this.props.search_uri_schemes&&this.props.mopidyActions.getSearchResults(context,term),this.props.search_uri_schemes&&this.props.search_uri_schemes.includes("spotify:")&&this.props.spotifyActions.getSearchResults(context,term))}},{key:"componentWillReceiveProps",value:function(newProps){if(this.props.params&&this.props.params.query&&""!==this.props.params.query)var old_context=helpers.getFromUri("searchcontext",this.props.params.query),old_term=helpers.getFromUri("searchterm",this.props.params.query);else var old_context="all",old_term=null;if(newProps.params&&newProps.params.query&&""!==newProps.params.query)var context=helpers.getFromUri("searchcontext",newProps.params.query),term=helpers.getFromUri("searchterm",newProps.params.query);else var context="all",term=null;term&&context&&(term!==old_term||context!==old_context)&&(this.props.mopidyActions.clearSearchResults(),this.props.spotifyActions.clearSearchResults(),this.props.mopidy_connected&&this.props.search_uri_schemes&&this.props.mopidyActions.getSearchResults(context,term),this.props.mopidy_connected&&this.props.search_uri_schemes&&this.props.search_uri_schemes.includes("spotify:")&&this.props.spotifyActions.getSearchResults(context,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:"renderResults",value:function(){var _this2=this,context=helpers.getFromUri("searchcontext",this.props.params.query),term=helpers.getFromUri("searchterm",this.props.params.query);context||(context="all");var spotify_search_enabled=this.props.search_settings&&this.props.search_settings.spotify;if("uri"==this.props.sort)var sort_map=this.props.search_uri_schemes;else var sort_map=null;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,this.props.sort,this.props.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,this.props.sort,this.props.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,this.props.sort,this.props.sort_reverse,sort_map);var tracks=[];switch(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,this.props.sort,this.props.sort_reverse,sort_map),context){case"artist":return _react2.default.createElement("div",null,_react2.default.createElement("h4",null,_react2.default.createElement(_URILink2.default,{unencoded:!0,type:"search",uri:"search:all:"+term},"Search")," ",_react2.default.createElement(_reactFontawesome2.default,{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")}})));case"album":return _react2.default.createElement("div",null,_react2.default.createElement("h4",null,_react2.default.createElement(_URILink2.default,{unencoded:!0,type:"search",uri:"search:all:"+term},"Search")," ",_react2.default.createElement(_reactFontawesome2.default,{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 _this2.loadMore("albums")}})));case"playlist":return _react2.default.createElement("div",null,_react2.default.createElement("h4",null,_react2.default.createElement(_URILink2.default,{unencoded:!0,type:"search",uri:"search:all:"+term},"Search")," ",_react2.default.createElement(_reactFontawesome2.default,{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 _this2.loadMore("playlists")}})));case"track":return _react2.default.createElement("div",null,_react2.default.createElement("h4",null,_react2.default.createElement(_URILink2.default,{unencoded:!0,type:"search",uri:"search:all:"+term},"Search")," ",_react2.default.createElement(_reactFontawesome2.default,{name:"angle-right"})," Tracks"),_react2.default.createElement("section",{className:"list-wrapper"},_react2.default.createElement(_TrackList2.default,{tracks:tracks,uri:this.props.params.query,show_source_icon:!0}),_react2.default.createElement(_LazyLoadListener2.default,{enabled:this.props.tracks_more&&spotify_search_enabled,loadMore:function(){return _this2.loadMore("tracks")}})));case"all":default:if(artists.length>0)var artists_section=_react2.default.createElement("section",null,_react2.default.createElement("div",{className:"inner"},_react2.default.createElement(_URILink2.default,{unencoded:!0,type:"search",uri:"search:artist:"+term},_react2.default.createElement("h4",null,"Artists")),_react2.default.createElement(_ArtistGrid2.default,{show_source_icon:!0,artists:artists.slice(0,5)}),artists.length>4?_react2.default.createElement(_URILink2.default,{unencoded:!0,type:"search",uri:"search:artist:"+term,className:"button grey"},"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,{unencoded:!0,type:"search",uri:"search:album:"+term},_react2.default.createElement("h4",null,"Albums")),_react2.default.createElement(_AlbumGrid2.default,{show_source_icon:!0,albums:albums.slice(0,5)}),albums.length>4?_react2.default.createElement(_URILink2.default,{unencoded:!0,type:"search",uri:"search:album:"+term,className:"button grey"},"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,{unencoded:!0,type:"search",uri:"search:playlist:"+term},_react2.default.createElement("h4",null,"Playlists")),_react2.default.createElement(_PlaylistGrid2.default,{show_source_icon:!0,playlists:playlists.slice(0,5)}),playlists.length>4?_react2.default.createElement(_URILink2.default,{unencoded:!0,type:"search",uri:"search:playlist:"+term,className:"button grey"},"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:this.props.params.query,show_source_icon:!0}),_react2.default.createElement(_LazyLoadListener2.default,{loading:this.props.tracks_more&&spotify_search_enabled,loadMore:function(){return _this2.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(){var _this3=this,sort_options=[{value:"name",label:"Name"},{value:"artists.name",label:"Artist"},{value:"duration",label:"Duration"},{value:"uri",label:"Source"}],options=_react2.default.createElement("span",null,_react2.default.createElement(_DropdownField2.default,{icon:"sort",name:"Sort",value:this.props.sort,options:sort_options,reverse:this.props.sort_reverse,handleChange:function(val){_this3.setSort(val),_this3.props.uiActions.hideContextMenu()}}),_react2.default.createElement("button",{className:"no-hover",onClick:function(e){return _this3.props.uiActions.openModal("search_uri_schemes",{query:_this3.props.params.query})}},_react2.default.createElement(_reactFontawesome2.default,{name:"wrench"})," Sources"));return _react2.default.createElement("div",{className:"view search-view"},_react2.default.createElement(_Header2.default,{icon:"search",options:options,uiActions:this.props.uiActions}),_react2.default.createElement(_SearchForm2.default,{query:this.props.params.query?this.props.params.query:"",view:this.props.params.view?this.props.params.view:"all"}),_react2.default.createElement("div",{className:"content-wrapper"},this.renderResults()))}}]),Search}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{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:[],search_uri_schemes:state.ui.search_uri_schemes?state.ui.search_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:"name",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__(18))},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_reactRouter=__webpack_require__(6),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_helpers=(_interopRequireDefault(_reactFontawesome),__webpack_require__(1)),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(4),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={query:"",in_focus:!1},_this}return _inherits(SearchForm,_React$Component),_createClass(SearchForm,[{key:"componentDidMount",value:function(){if(this.props.query){var query=this.props.query.replace("search:","");this.setState({query:query})}}},{key:"componentWillReceiveProps",value:function(newProps){newProps.query&&newProps.query!=this.state.query&&!this.state.in_focus&&this.setState({query:newProps.query.replace("search:","")})}},{key:"handleSubmit",value:function(e){switch(e.preventDefault(),helpers.uriType(this.state.query)){case"album":_reactRouter.hashHistory.push(global.baseURL+"album/"+encodeURIComponent(this.state.query));break;case"artist":_reactRouter.hashHistory.push(global.baseURL+"artist/"+encodeURIComponent(this.state.query));break;case"playlist":_reactRouter.hashHistory.push(global.baseURL+"playlist/"+encodeURIComponent(this.state.query));break;default:for(var available_views=["artist","album","playlist","track"],view_defined=!1,query=this.state.query,i=0;i<available_views.length;i++)query.startsWith(available_views[i]+":")&&(view_defined=!0);view_defined||(query="all:"+query),_reactRouter.hashHistory.push(global.baseURL+"search/search:"+query)}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:"Search...",onChange:function(e){return _this2.setState({query:e.target.value})},onFocus:function(e){return _this2.setState({in_focus:!0})},onBlur:function(e){return _this2.setState({in_focus:!1})},value:this.state.query})))}}]),SearchForm}(_react2.default.Component),mapDispatchToProps=function(dispatch){return{uiActions:(0,_redux.bindActionCreators)(uiActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapDispatchToProps)(SearchForm)}).call(exports,__webpack_require__(9))},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_reactRouter=__webpack_require__(6),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_ConfirmationButton=__webpack_require__(93),_ConfirmationButton2=_interopRequireDefault(_ConfirmationButton),_PusherConnectionList=__webpack_require__(242),_PusherConnectionList2=_interopRequireDefault(_PusherConnectionList),_Header=__webpack_require__(13),_Header2=_interopRequireDefault(_Header),_Parallax=__webpack_require__(30),_Parallax2=_interopRequireDefault(_Parallax),_Icon=__webpack_require__(12),_Thumbnail=(_interopRequireDefault(_Icon),__webpack_require__(10)),_URILink=(_interopRequireDefault(_Thumbnail),__webpack_require__(24)),_Services=(_interopRequireDefault(_URILink),__webpack_require__(243)),_Services2=_interopRequireDefault(_Services),_actions=__webpack_require__(14),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(16),pusherActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(19),lastfmActions=_interopRequireWildcard(_actions5),_actions6=__webpack_require__(7),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_ssl:_this.props.mopidy.ssl,pusher_username:_this.props.pusher.username,input_in_focus:null},_this}return _inherits(Settings,_React$Component),_createClass(Settings,[{key:"componentWillReceiveProps",value:function(newProps){var changed=!1,state=this.state;newProps.pusher.username!=this.state.pusher_username&&"pusher_username"!=this.state.input_in_focus&&(state.pusher_username=newProps.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.setConfig({host:this.state.mopidy_host,port:this.state.mopidy_port,ssl:this.state.mopidy_ssl}),window.location.reload(!0),!1}},{key:"handleBlur",value:function(name,value){this.setState({input_in_focus:null});var data={};data[name]=value,this.props.coreActions.set(data)}},{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&&this.props.mopidy.ssl==this.state.mopidy_ssl?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:"secondary"},"Apply and reload")))}},{key:"renderServerStatus",value:function(){var colour="grey",icon="question-circle",status="Unknown";return this.props.mopidy.connecting||this.props.pusher.connecting?(icon="plug",status="Connecting..."):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(_reactFontawesome2.default,{name:icon})," ",status)}},{key:"render",value:function(){var _this2=this,options=_react2.default.createElement("span",null,_react2.default.createElement("button",{className:"no-hover",onClick:function(e){return _reactRouter.hashHistory.push(global.baseURL+"settings/debug")}},_react2.default.createElement(_reactFontawesome2.default,{name:"flask"})," Debug",this.props.ui&&this.props.ui.test_mode?_react2.default.createElement("span",{className:"flag warning"},"Test mode"):null),_react2.default.createElement("a",{className:"no-hover button",href:"https://github.com/jaedb/Iris/wiki",target:"_blank"},_react2.default.createElement(_reactFontawesome2.default,{name:"question"})," Help"));if(this.props.mopidy.upgrading)var upgrade_button=_react2.default.createElement("button",{className:"alternative working"},"Upgrading...");else if(this.props.pusher.version.upgrade_available)var upgrade_button=_react2.default.createElement("button",{className:"alternative",onClick:function(e){return _this2.props.pusherActions.upgrade()}},"Upgrade to ",this.props.pusher.version.latest);else var upgrade_button=null;return _react2.default.createElement("div",{className:"view settings-view"},_react2.default.createElement(_Header2.default,{className:"overlay",icon:"cog",title:"Settings",options:options,uiActions:this.props.uiActions}),_react2.default.createElement("div",{className:"intro"},_react2.default.createElement("div",{className:"liner"},_react2.default.createElement(_Parallax2.default,{image:"assets/backgrounds/settings.jpg"}))),_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement("h4",{className:"underline"},"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("div",{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 _this2.handleUsernameChange(e.target.value)},onFocus:function(e){return _this2.setState({input_in_focus:"pusher_username"})},onBlur:function(e){return _this2.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 _this2.setConfig(e)}},_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({mopidy_host:e.target.value})},onFocus:function(e){return _this2.setState({input_in_focus:"mopidy_host"})},onBlur:function(e){return _this2.setState({input_in_focus:null})},value:this.state.mopidy_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({mopidy_port:e.target.value})},onFocus:function(e){return _this2.setState({input_in_focus:"mopidy_port"})},onBlur:function(e){return _this2.setState({input_in_focus:null})},value:this.state.mopidy_port}))),_react2.default.createElement("div",{className:"field checkbox"},_react2.default.createElement("div",{className:"name"},"Encryption"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"checkbox",name:"ssl",checked:this.state.mopidy_ssl,onChange:function(e){return _this2.setState({mopidy_ssl:!_this2.state.mopidy_ssl})}}),_react2.default.createElement("span",{className:"label has-tooltip"},"Enable SSL",_react2.default.createElement("span",{className:"tooltip"},"Requires SSL proxy"))))),this.renderApplyButton()),_react2.default.createElement("h4",{className:"underline"},"Services"),_react2.default.createElement(_Services2.default,{active:this.props.params.sub_view}),_react2.default.createElement("h4",{className:"underline"},"Advanced"),_react2.default.createElement("div",{className:"field checkbox"},_react2.default.createElement("div",{className:"name"},"UI 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 _this2.props.uiActions.set({clear_tracklist_on_play:!_this2.props.ui.clear_tracklist_on_play})}}),_react2.default.createElement("span",{className:"label has-tooltip"},"Clear tracklist on play of URI(s)",_react2.default.createElement("span",{className:"tooltip"},"Playing one or more URIs will clear the current play queue first"))))),_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 blue"},"Upgrade available"):_react2.default.createElement("span",{className:"flag dark"},_react2.default.createElement(_reactFontawesome2.default,{name:"check",className:"green-text"})," Up-to-date")))),_react2.default.createElement("div",{className:"field"},upgrade_button,_react2.default.createElement("button",{className:"destructive"+(this.props.mopidy.restarting?" working":""),onClick:function(e){return _this2.props.pusherActions.restart()}},this.props.mopidy.restarting?"Restarting...":"Restart server"),_react2.default.createElement(_ConfirmationButton2.default,{className:"destructive",content:"Reset all settings",confirmingContent:"Are you sure?",onConfirm:function(){return _this2.resetAllSettings()}})),_react2.default.createElement("h4",{className:"underline"},"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),"Google Analytics is used to collect usage data and errors to help trace issues and provide valuable insight into how we can continue to make improvements. Personal information is anonymized prior to collection. For more information, see ",_react2.default.createElement("a",{href:"https://github.com/jaedb/Iris/wiki/Terms-of-use",target:"_blank"},"terms and conditions"),".",_react2.default.createElement("br",null)),_react2.default.createElement("br",null),_react2.default.createElement("br",null),_react2.default.createElement("div",null,_react2.default.createElement("a",{className:"button",href:"https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=james%40barnsley%2enz&lc=NZ&item_name=James%20Barnsley¤cy_code=USD&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted",target:"_blank"},_react2.default.createElement(_reactFontawesome2.default,{name:"paypal"})," Donate")," ",_react2.default.createElement("a",{className:"button",href:"https://github.com/jaedb/Iris",target:"_blank"},_react2.default.createElement(_reactFontawesome2.default,{name:"github"})," GitHub")," ",_react2.default.createElement("a",{className:"button",href:"http://creativecommons.org/licenses/by-nc/4.0/",target:"_blank"},_react2.default.createElement(_reactFontawesome2.default,{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)}).call(exports,__webpack_require__(9))},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),_reactRedux=__webpack_require__(3),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_actions=(_interopRequireDefault(_reactFontawesome),__webpack_require__(16)),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 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 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 w30"},connection.username," ",is_me?_react2.default.createElement("span",null,"(you)"):null),_react2.default.createElement("div",{className:"col w70"},connection.ip,_react2.default.createElement("span",{className:"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(global){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__(3),_reactRouter=__webpack_require__(6),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Icon=__webpack_require__(12),_URILink=(_interopRequireDefault(_Icon),__webpack_require__(24)),_URILink2=_interopRequireDefault(_URILink),_SpotifyAuthenticationFrame=__webpack_require__(244),_SpotifyAuthenticationFrame2=_interopRequireDefault(_SpotifyAuthenticationFrame),_LastfmAuthenticationFrame=__webpack_require__(245),_LastfmAuthenticationFrame2=_interopRequireDefault(_LastfmAuthenticationFrame),_Snapcast=__webpack_require__(246),_Snapcast2=_interopRequireDefault(_Snapcast),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(14),coreActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(16),pusherActions=_interopRequireWildcard(_actions4),_actions5=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions5),_actions6=__webpack_require__(19),lastfmActions=_interopRequireWildcard(_actions6),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.lastfm.session&&void 0===this.props.core.users["lastfm:user:"+this.props.lastfm.session.name]&&this.props.lastfmActions.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,send_authorization_button=null;this.props.spotify.authorization&&(_react2.default.createElement("button",{onClick:function(e){return _this2.props.uiActions.openModal("send_authorization",{})}},"Share authentication"),send_authorization_button=_react2.default.createElement("button",{onClick:function(e){return _this2.props.uiActions.openModal("send_authorization",{})}},"Share authentication"));var user_object=this.props.spotify.me;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.display_name?user_object.display_name:user_object.id,this.props.spotify.authorization?null:_react2.default.createElement("span",{className:"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("div",{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("div",{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),send_authorization_button,this.props.spotify.refreshing_token?_react2.default.createElement("button",{className:"working"},"Refreshing..."):_react2.default.createElement("button",{onClick:function(e){return _this2.props.spotifyActions.refreshingToken()}},"Force token refresh"))))}},{key:"renderLastfm",value:function(){var user_object=this.props.lastfm.session?this.props.core.users["lastfm:user:"+this.props.lastfm.session.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.image}),_react2.default.createElement("span",{className:"user-name"},user_object.realname?user_object.realname: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.session?_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:"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("div",{className:"field radio"},_react2.default.createElement("div",{className:"name"},"Encoding"),_react2.default.createElement("div",{className:"input"},_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"radio",name:"http_streaming_encoding",checked:"mpeg"==this.props.core.http_streaming_encoding,onChange:function(e){return _this3.props.coreActions.set({http_streaming_encoding:"mpeg"})}}),_react2.default.createElement("span",{className:"label"},"mpeg (mp3)")),_react2.default.createElement("label",null,_react2.default.createElement("input",{type:"radio",name:"http_streaming_encoding",checked:"ogg"==this.props.core.http_streaming_encoding,onChange:function(e){return _this3.props.coreActions.set({http_streaming_encoding:"ogg"})}}),_react2.default.createElement("span",{className:"label"},"ogg")))),_react2.default.createElement("div",{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)var spotify_icon=_react2.default.createElement(_Thumbnail2.default,{circle:!0,size:"small",images:this.props.spotify.me.images});else var spotify_icon=_react2.default.createElement(_Thumbnail2.default,{circle:!0,size:"small"});if(this.props.lastfm.session&&this.props.core.users["lastfm:user:"+this.props.lastfm.session.name])var lastfm_icon=_react2.default.createElement(_Thumbnail2.default,{circle:!0,size:"small",images:this.props.core.users["lastfm:user:"+this.props.lastfm.session.name].image});else var lastfm_icon=_react2.default.createElement(_reactFontawesome2.default,{name:"lastfm"});return _react2.default.createElement("div",{className:"menu"},_react2.default.createElement("div",{className:"menu-item-wrapper"},_react2.default.createElement(_reactRouter.Link,{className:"menu-item"+("spotify"==this.props.active?" active":""),to:"spotify"==this.props.active?global.baseURL+"settings":global.baseURL+"settings/service/spotify"},spotify_icon,_react2.default.createElement("div",{className:"title"},"Spotify"),this.props.spotify.authorization?_react2.default.createElement("span",{className:"status green-text"},"Authorized"):_react2.default.createElement("span",{className:"status grey-text"},"Read-only"))),_react2.default.createElement("div",{className:"menu-item-wrapper"},_react2.default.createElement(_reactRouter.Link,{className:"menu-item"+("lastfm"==this.props.active?" active":""),to:"lastfm"==this.props.active?global.baseURL+"settings":global.baseURL+"settings/service/lastfm"},lastfm_icon,_react2.default.createElement("div",{className:"title"},"LastFM"),this.props.lastfm.session?_react2.default.createElement("span",{className:"status green-text"},"Authorized"):_react2.default.createElement("span",{className:"status grey-text"},"Read-only"))),_react2.default.createElement("div",{className:"menu-item-wrapper"},_react2.default.createElement(_reactRouter.Link,{className:"menu-item"+("snapcast"==this.props.active?" active":""),to:"snapcast"==this.props.active?global.baseURL+"settings":global.baseURL+"settings/service/snapcast"},_react2.default.createElement(_reactFontawesome2.default,{name:"sliders"}),_react2.default.createElement("div",{className:"title"},"Snapcast"),this.props.pusher.config.snapcast_enabled?_react2.default.createElement("span",{className:"status green-text"},"Enabled"):_react2.default.createElement("span",{className:"status grey-text"},"Disabled"))),_react2.default.createElement("div",{className:"menu-item-wrapper"},_react2.default.createElement(_reactRouter.Link,{className:"menu-item"+("icecast"==this.props.active?" active":""),to:"icecast"==this.props.active?global.baseURL+"settings":global.baseURL+"settings/service/icecast"},_react2.default.createElement(_reactFontawesome2.default,{name:"rss"}),_react2.default.createElement("div",{className:"title"},"Icecast"),this.props.core.http_streaming_enabled?_react2.default.createElement("span",{className:"status green-text"},"Enabled"):_react2.default.createElement("span",{className:"status grey-text"},"Disabled"))))}},{key:"renderService",value:function(){var service=null;switch(this.props.active){case"spotify":service=this.renderSpotify();break;case"lastfm":service=this.renderLastfm();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)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(Services)}).call(exports,__webpack_require__(9))},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__(3),_redux=__webpack_require__(2),_reactGa=__webpack_require__(23),_reactFontawesome=(_interopRequireDefault(_reactGa),__webpack_require__(5)),_Thumbnail=(_interopRequireDefault(_reactFontawesome),__webpack_require__(10)),_actions=(_interopRequireDefault(_Thumbnail),__webpack_require__(4)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(7),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){var data=JSON.parse(event.data);"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:"working"},"Authorizing..."):this.props.authorized?_react2.default.createElement("button",{className:"destructive",onClick:function(){return _this2.props.spotifyActions.revokeAuthorization()}},"Log out"):_react2.default.createElement("button",{className:"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__(3),_redux=__webpack_require__(2),_reactGa=__webpack_require__(23),_reactFontawesome=(_interopRequireDefault(_reactGa),__webpack_require__(5)),_Thumbnail=(_interopRequireDefault(_reactFontawesome),__webpack_require__(10)),_actions=(_interopRequireDefault(_Thumbnail),__webpack_require__(4)),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(19),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){var data=JSON.parse(event.data);"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:"working"},"Authorizing..."):this.props.authorized?_react2.default.createElement("button",{className:"destructive",onClick:function(){return _this2.props.lastfmActions.revokeAuthorization()}},"Log out"):_react2.default.createElement("button",{className:"primary",onClick:function(){return _this2.startAuthorization()}},"Log in")}}]),LastfmAuthenticationFrame}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{authorization_url:state.lastfm.authorization_url,authorized:state.lastfm.session,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 _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__(3),_redux=__webpack_require__(2),_reactFontawesome=(__webpack_require__(6),__webpack_require__(5)),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_ArtistSentence=__webpack_require__(20),_VolumeControl=(_interopRequireDefault(_ArtistSentence),__webpack_require__(90)),_VolumeControl2=_interopRequireDefault(_VolumeControl),_LatencyControl=__webpack_require__(247),_LatencyControl2=_interopRequireDefault(_LatencyControl),_TextField=__webpack_require__(248),_TextField2=_interopRequireDefault(_TextField),_helpers=__webpack_require__(1),_actions=(_interopRequireWildcard(_helpers),__webpack_require__(14)),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(16),pusherActions=_interopRequireWildcard(_actions3),Snapcast=function(_React$Component){function Snapcast(props){return _classCallCheck(this,Snapcast),_possibleConstructorReturn(this,(Snapcast.__proto__||Object.getPrototypeOf(Snapcast)).call(this,props))}return _inherits(Snapcast,_React$Component),_createClass(Snapcast,[{key:"componentDidMount",value:function(){this.props.pusher_connected&&this.props.snapcast_enabled&&this.props.pusherActions.getSnapcast()}},{key:"componentWillReceiveProps",value:function(newProps){newProps.snapcast_enabled&&!this.props.pusher_connected&&newProps.pusher_connected?this.props.pusherActions.getSnapcast():!this.props.snapcast_enabled&&newProps.snapcast_enabled&&newProps.pusher_connected&&this.props.pusherActions.getSnapcast()}},{key:"render",value:function(){var _this2=this;if(!this.props.snapcast_enabled)return _react2.default.createElement("div",null,"To enable Snapcast, edit your ",_react2.default.createElement("code",null,"mopidy.conf")," file");if(!this.props.snapcast_clients||!this.props.snapcast_groups)return _react2.default.createElement("div",{className:"lazy-loader body-loader loading"},_react2.default.createElement("div",{className:"loader"}));var groups=[];for(var group_id in this.props.snapcast_groups)if(this.props.snapcast_groups.hasOwnProperty(group_id)){for(var group=this.props.snapcast_groups[group_id],clients=[],i=0;i<group.clients_ids.length;i++)this.props.snapcast_clients.hasOwnProperty(group.clients_ids[i])&&clients.push(this.props.snapcast_clients[group.clients_ids[i]]);groups.push(Object.assign({},group,{clients:clients}))}return _react2.default.createElement("div",{className:"snapcast"},groups.map(function(group){return _react2.default.createElement("div",{className:"list group",key:group.id},_react2.default.createElement("div",{className:"list-item header"},_react2.default.createElement("div",{className:"col name"},group.name?group.name:"Untitled group"),_react2.default.createElement("div",{className:"col volume"},"Volume"),_react2.default.createElement("div",{className:"col latency"},"Latency")),group.clients.map(function(client){var name=client.config.name?client.config.name:client.host.name;return _react2.default.createElement("div",{className:"list-item client",key:client.id},_react2.default.createElement("div",{className:"col name"},_react2.default.createElement(_TextField2.default,{onChange:function(value){return _this2.props.pusherActions.setSnapcastClientName(client.id,value)},value:name}),client.connected?_react2.default.createElement("span",{className:"status has-tooltip"},_react2.default.createElement(_reactFontawesome2.default,{className:"green-text",name:"circle"}),_react2.default.createElement("span",{className:"tooltip"},"Connected")):_react2.default.createElement("span",{className:"status has-tooltip"},_react2.default.createElement(_reactFontawesome2.default,{className:"grey-text",name:"circle"}),_react2.default.createElement("span",{className:"tooltip"},"Not connected"))),_react2.default.createElement("div",{className:"col volume"},_react2.default.createElement(_VolumeControl2.default,{volume:client.config.volume.percent,mute:client.config.volume.muted,onVolumeChange:function(percent){return _this2.props.pusherActions.setSnapcastClientVolume(client.id,percent)},onMuteChange:function(mute){return _this2.props.pusherActions.setSnapcastClientMute(client.id,mute)}}),_react2.default.createElement(_TextField2.default,{className:"tiny",onChange:function(value){return _this2.props.pusherActions.setSnapcastClientVolume(client.id,parseInt(value))},value:client.config.volume.percent})),_react2.default.createElement("div",{className:"col latency"},_react2.default.createElement(_LatencyControl2.default,{max:"100",value:client.config.latency,onChange:function(value){return _this2.props.pusherActions.setSnapcastClientLatency(client.id,parseInt(value))}}),_react2.default.createElement(_TextField2.default,{className:"tiny",onChange:function(value){return _this2.props.pusherActions.setSnapcastClientLatency(client.id,parseInt(value))},value:String(client.config.latency)})))}))}))}}]),Snapcast}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{snapcast_enabled:state.pusher.config.snapcast_enabled,pusher_connected:state.pusher.connected,snapcast_groups:state.pusher.snapcast_groups,snapcast_clients:state.pusher.snapcast_clients}},mapDispatchToProps=function(dispatch){return{coreActions:(0,_redux.bindActionCreators)(coreActions,dispatch),uiActions:(0,_redux.bindActionCreators)(uiActions,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),LatencyControl=function(_React$Component){function LatencyControl(props){return _classCallCheck(this,LatencyControl),_possibleConstructorReturn(this,(LatencyControl.__proto__||Object.getPrototypeOf(LatencyControl)).call(this,props))}return _inherits(LatencyControl,_React$Component),_createClass(LatencyControl,[{key:"handleClick",value:function(e){var slider=e.target;"slider"!=slider.className&&(slider=slider.parentElement);var sliderX=e.clientX-slider.getBoundingClientRect().left,sliderWidth=slider.getBoundingClientRect().width;if(sliderX<sliderWidth/2){var percent=Math.round(sliderX/(sliderWidth/2)*100);percent=100-percent;var value=-this.props.max*(percent/100);value<-this.props.max&&(value=-this.props.max)}else{sliderX-=sliderWidth/2;var percent=Math.round(sliderX/(sliderWidth/2)*100),value=this.props.max*(percent/100);value>this.props.max&&(value=this.props.max)}this.props.onChange(value)}},{key:"handleWheel",value:function(e){if(this.props.scrollWheel){var direction=e.deltaY>0?-1:1,value=this.props.value;value+=5*direction,value>this.props.max?value=this.props.max:value<-this.props.max&&(value=-this.props.max),this.props.onChange(value),e.preventDefault()}}},{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}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}return _react2.default.createElement("span",{className:"latency-control",onWheel:function(e){return _this2.handleWheel(e)}},_react2.default.createElement("div",{className:"slider-wrapper"},_react2.default.createElement("div",{className:"slider horizontal",onClick:function(e){return _this2.handleClick(e)}},_react2.default.createElement("div",{className:"zero"}),_react2.default.createElement("div",{className:"track"},_react2.default.createElement("div",{className:"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:"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})}}]),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__(3),_redux=__webpack_require__(2),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_reactInputRange=__webpack_require__(250),_reactInputRange2=_interopRequireDefault(_reactInputRange),_Header=__webpack_require__(13),_ArtistSentence=(_interopRequireDefault(_Header),__webpack_require__(20)),_ArtistGrid=(_interopRequireDefault(_ArtistSentence),__webpack_require__(35)),_AlbumGrid=(_interopRequireDefault(_ArtistGrid),__webpack_require__(40)),_AlbumGrid2=_interopRequireDefault(_AlbumGrid),_TrackList=__webpack_require__(21),_TrackList2=_interopRequireDefault(_TrackList),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_Parallax=__webpack_require__(30),_Parallax2=_interopRequireDefault(_Parallax),_DropdownField=__webpack_require__(36),_DropdownField2=_interopRequireDefault(_DropdownField),_AddSeedField=__webpack_require__(266),_AddSeedField2=_interopRequireDefault(_AddSeedField),_URILink=__webpack_require__(24),_URILink2=_interopRequireDefault(_URILink),_ContextMenuTrigger=__webpack_require__(25),_ContextMenuTrigger2=_interopRequireDefault(_ContextMenuTrigger),_RelatedArtists=__webpack_require__(92),_RelatedArtists2=_interopRequireDefault(_RelatedArtists),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(7),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:!0,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.params.seeds&&this.handleURLSeeds(this.props.params.seeds)}},{key:"componentWillReceiveProps",value:function(newProps,newState){newProps.params.seeds!=this.props.params.seeds&&this.handleURLSeeds(newProps.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.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);return _react2.default.createElement("div",{className:"seed"+(seed.images?" has-thumbnail":""),key:seed.uri},seed.images?_react2.default.createElement(_URILink2.default,{className:"thumbnail-wrapper",type:type,uri:seed.uri},_react2.default.createElement(_Thumbnail2.default,{images:seed.images,circle:"artist"==seed.type,size:"small"})):null,_react2.default.createElement("div",{className:"label"},helpers.titleCase(type),_react2.default.createElement(_reactFontawesome2.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(_reactFontawesome2.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 null;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 cf"},_react2.default.createElement("section",{className:"col w70 tracks"},_react2.default.createElement("h4",null,"Tracks",_react2.default.createElement(_ContextMenuTrigger2.default,{onTrigger:function(e){return _this4.handleContextMenu(e)}}),_react2.default.createElement("button",{className:"primary pull-right",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 w5"}),_react2.default.createElement("div",{className:"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:"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"},_react2.default.createElement("div",{className:"intro"},_react2.default.createElement(_Parallax2.default,{image:"assets/backgrounds/discover.jpg"}),_react2.default.createElement("div",{className:"liner"},_react2.default.createElement("h1",null,"Explore new music"),_react2.default.createElement("h2",{className:"grey-text"},"Add seeds and musical properties below to build your sound"),_react2.default.createElement("div",{className:"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:"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 primary large"+(is_loading?" working":""),onClick:function(e){return _this5.getRecommendations()}},_react2.default.createElement(_reactFontawesome2.default,{name:"compass"})," Find recommendations")))),this.renderResults())}}]),Discover}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{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__(251),_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__(252),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__(260),_defaultClassNames2=_interopRequireDefault(_defaultClassNames),_label=__webpack_require__(94),_label2=_interopRequireDefault(_label),_rangePropType=__webpack_require__(261),_rangePropType2=_interopRequireDefault(_rangePropType),_valuePropType=__webpack_require__(262),_valuePropType2=_interopRequireDefault(_valuePropType),_slider=__webpack_require__(263),_slider2=_interopRequireDefault(_slider),_track=__webpack_require__(264),_track2=_interopRequireDefault(_track),_utils=__webpack_require__(46),_keyCodes=__webpack_require__(265),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__(46)},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__(46);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__(46);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__(94),_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__(3),_redux=__webpack_require__(2),_ArtistSentence=(__webpack_require__(6),__webpack_require__(20)),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(14),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(7),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){switch(this.setState({value:""}),this.props.onSelect(e,item.uri),this.props.spotifyActions.clearAutocompleteResults(this.id),helpers.uriType(item.uri)){case"artist":this.props.coreActions.artistsLoaded(item);break;case"track":this.props.coreActions.tracksLoaded(item)}}},{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:"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:"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__(18))},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_redux=__webpack_require__(2),_reactRouter=__webpack_require__(6),_PlaylistGrid=__webpack_require__(41),_PlaylistGrid2=_interopRequireDefault(_PlaylistGrid),_Header=__webpack_require__(13),_Header2=_interopRequireDefault(_Header),_Parallax=__webpack_require__(30),_Parallax2=_interopRequireDefault(_Parallax),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(7),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.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 _this2=this,playlist=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return playlist?_react2.default.createElement("div",{className:"intro"},_react2.default.createElement(_Parallax2.default,{image:helpers.sizedImages(playlist.images).huge,blur:!0}),_react2.default.createElement("div",{className:"content cf"},_react2.default.createElement(_reactRouter.Link,{to:global.baseURL+"playlist/"+playlist.uri,onContextMenu:function(e){return _this2.handleContextMenu(e,playlist)}},_react2.default.createElement(_Thumbnail2.default,{images:playlist.images})),_react2.default.createElement(_reactRouter.Link,{to:global.baseURL+"playlist/"+playlist.uri},_react2.default.createElement("h2",null,playlist.name)),playlist.description?_react2.default.createElement("h3",{dangerouslySetInnerHTML:{__html:playlist.description}}):null,_react2.default.createElement("div",{className:"actions"},_react2.default.createElement("button",{className:"primary",onClick:function(e){return _this2.playPlaylist(e,playlist)}},"Play")))):_react2.default.createElement("div",{className:"intro"},_react2.default.createElement(_Parallax2.default,null))}},{key:"render",value:function(){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,{icon:"star",title:"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.splice(0,1);return first_playlist&&(first_playlist=first_playlist[0]),_react2.default.createElement("div",{className:"view discover-featured-view"},_react2.default.createElement(_Header2.default,{className:"overlay",icon:"star",title:"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{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)}).call(exports,__webpack_require__(9))},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__(3),_redux=__webpack_require__(2),_Header=__webpack_require__(13),_Header2=_interopRequireDefault(_Header),_CategoryGrid=__webpack_require__(269),_CategoryGrid2=_interopRequireDefault(_CategoryGrid),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions),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||this.props.spotifyActions.getCategories()}},{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,{icon:"grid",title:"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.core.categories,load_queue:state.ui.load_queue}},mapDispatchToProps=function(dispatch){return{spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(DiscoverCategories)},function(module,exports,__webpack_require__){"use strict";(function(global){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}}(),_reactRouter=__webpack_require__(6),_react=__webpack_require__(0),_react2=_interopRequireDefault(_react),_GridItem=__webpack_require__(38),_GridItem2=_interopRequireDefault(_GridItem),CategoryGrid=function(_React$Component){function CategoryGrid(props){return _classCallCheck(this,CategoryGrid),_possibleConstructorReturn(this,(CategoryGrid.__proto__||Object.getPrototypeOf(CategoryGrid)).call(this,props))}return _inherits(CategoryGrid,_React$Component),_createClass(CategoryGrid,[{key:"render",value:function(){if(!this.props.categories)return null;var className="grid category-grid";return this.props.className&&(className+=" "+this.props.className),_react2.default.createElement("div",{className:className},this.props.categories.map(function(category){return _react2.default.createElement(_GridItem2.default,{key:category.id,type:"category",item:category,onClick:function(e){_reactRouter.hashHistory.push(global.baseURL+"discover/categories/"+encodeURIComponent(category.id))}})}))}}]),CategoryGrid}(_react2.default.Component);exports.default=CategoryGrid}).call(exports,__webpack_require__(9))},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__(3),_redux=__webpack_require__(2),_Header=__webpack_require__(13),_Header2=_interopRequireDefault(_Header),_PlaylistGrid=__webpack_require__(41),_PlaylistGrid2=_interopRequireDefault(_PlaylistGrid),_LazyLoadListener=__webpack_require__(22),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions),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()}},{key:"componentWillReceiveProps",value:function(nextProps){nextProps.params.id!=this.props.params.id&&this.loadCategory()}},{key:"loadCategory",value:function(){this.props.category&&this.props.category.playlists_uris||this.props.spotifyActions.getCategory(this.props.params.id)}},{key:"loadMore",value:function(){this.props.spotifyActions.getMore(this.props.category.playlists_more,null,{type:"SPOTIFY_CATEGORY_PLAYLISTS_LOADED",key:"category:"+this.props.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,{icon:"grid",title: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 playlists=[];if(this.props.category.playlists_uris)for(var i=0;i<this.props.category.playlists_uris.length;i++){var key=this.props.category.playlists_uris[i];this.props.playlists.hasOwnProperty(key)&&playlists.push(this.props.playlists[key])}return _react2.default.createElement("div",{className:"view discover-categories-view"},_react2.default.createElement(_Header2.default,{icon:"grid",title:this.props.category.name}),_react2.default.createElement("div",{className:"content-wrapper"},_react2.default.createElement("section",{className:"grid-wrapper"},_react2.default.createElement(_PlaylistGrid2.default,{playlists:playlists})),_react2.default.createElement(_LazyLoadListener2.default,{loading:this.props.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.core.categories||void 0===state.core.categories["category:"+ownProps.params.id])&&state.core.categories["category:"+ownProps.params.id]}},mapDispatchToProps=function(dispatch){return{spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(DiscoverCategory)},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_redux=__webpack_require__(2),_reactRouter=__webpack_require__(6),_Header=__webpack_require__(13),_Header2=_interopRequireDefault(_Header),_AlbumGrid=__webpack_require__(40),_AlbumGrid2=_interopRequireDefault(_AlbumGrid),_Parallax=__webpack_require__(30),_Parallax2=_interopRequireDefault(_Parallax),_Thumbnail=__webpack_require__(10),_Thumbnail2=_interopRequireDefault(_Thumbnail),_ArtistSentence=__webpack_require__(20),_ArtistSentence2=_interopRequireDefault(_ArtistSentence),_LazyLoadListener=__webpack_require__(22),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(7),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.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:null})}},{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 _this2=this,album=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return album?_react2.default.createElement("div",{className:"intro"},_react2.default.createElement(_Parallax2.default,{image:helpers.sizedImages(album.images).huge,blur:!0}),_react2.default.createElement("div",{className:"content cf"},_react2.default.createElement(_reactRouter.Link,{to:global.baseURL+"album/"+album.uri,onContextMenu:function(e){return _this2.handleContextMenu(e,album)}},_react2.default.createElement(_Thumbnail2.default,{images:album.images})),_react2.default.createElement("h2",null,_react2.default.createElement(_reactRouter.Link,{to:global.baseURL+"album/"+album.uri},album.name)),_react2.default.createElement("h3",null,_react2.default.createElement(_ArtistSentence2.default,{artists:album.artists})),_react2.default.createElement("div",{className:"actions"},_react2.default.createElement("button",{className:"primary",onClick:function(e){return _this2.playAlbum(e,album)}},"Play")))):_react2.default.createElement("div",{className:"intro"},_react2.default.createElement(_Parallax2.default,null))}},{key:"render",value:function(){var _this3=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,{icon:"leaf",title:"New Releases"}),_react2.default.createElement("div",{className:"body-loader loading"},_react2.default.createElement("div",{className:"loader"})));var albums=[];if(this.props.new_releases)for(var i=0;i<this.props.new_releases.length;i++){var uri=this.props.new_releases[i];this.props.albums.hasOwnProperty(uri)&&albums.push(this.props.albums[uri])}var first_album=albums.splice(0,1);return first_album&&(first_album=first_album[0]),_react2.default.createElement("div",{className:"view discover-new-releases-view"},_react2.default.createElement(_Header2.default,{className:"overlay",icon:"leaf",title:"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,{loading:this.props.new_releases_more,loadMore:function(){return _this3.loadMore()}}))}}]),DiscoverNewReleases}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{load_queue:state.ui.load_queue,albums:state.core.albums,new_releases:state.core.new_releases,new_releases_more:state.core.new_releases_more,new_releases_total:state.core.new_releases_total}},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)}).call(exports,__webpack_require__(9))},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_redux=__webpack_require__(2),_Header=(__webpack_require__(6),__webpack_require__(13)),_Header2=_interopRequireDefault(_Header),_ArtistGrid=__webpack_require__(35),_ArtistGrid2=_interopRequireDefault(_ArtistGrid),_List=__webpack_require__(47),_List2=_interopRequireDefault(_List),_DropdownField=__webpack_require__(36),_DropdownField2=_interopRequireDefault(_DropdownField),_FilterField=__webpack_require__(61),_FilterField2=_interopRequireDefault(_FilterField),_LazyLoadListener=__webpack_require__(22),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions3),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:"componentDidMount",value:function(){this.props.mopidy_library_artists||!this.props.mopidy_connected||"all"!=this.props.source&&"local"!=this.props.source||this.props.mopidyActions.getLibraryArtists(),!this.props.mopidy_uri_schemes.includes("spotify:")||"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_uri_schemes.includes("spotify:")||"all"!=newProps.source&&"spotify"!=newProps.source||"all"!=this.props.source&&"spotify"!=this.props.source&&"finished"!=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(){this.setState({limit:this.state.limit+this.state.per_page})}},{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))for(var i=0;i<this.props.mopidy_library_artists.length;i++){var uri=this.props.mopidy_library_artists[i],source=helpers.uriSource(uri),artist={uri:uri,source:source};this.props.artists.hasOwnProperty(uri)&&(artist=this.props.artists[uri]),artists.push(artist)}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])}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;if(artists=artists.slice(0,this.state.limit),"list"==this.props.view){var columns=[{label:"Name",name:"name"},{label:"Followers",name:"followers.total"},{label:"Popularity",name:"popularity"}];return _react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_List2.default,{handleContextMenu:function(e,item){return _this2.handleContextMenu(e,item)},rows:artists,columns:columns,className:"artist-list",link_prefix:global.baseURL+"artist/"}),_react2.default.createElement(_LazyLoadListener2.default,{loading:this.state.limit<total_artists,loadMore:function(){return _this2.loadMore()}}))}return _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,{loading: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.mopidy_uri_schemes.includes("spotify:")&&source_options.push({value:"spotify",label:"Spotify"});var view_options=[{label:"Thumbnails",value:"thumbnails"},{label:"List",value:"list"}],sort_options=[{label:"Name",value:"name"},{label:"Followers",value:"followers.total"},{label:"Popularity",value:"popularity"}],options=_react2.default.createElement("span",null,_react2.default.createElement(_FilterField2.default,{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,reverse:this.props.sort_reverse,handleChange:function(value){_this3.setSort(value),_this3.props.uiActions.hideContextMenu()}}),_react2.default.createElement(_DropdownField2.default,{icon:"eye",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:"database",name:"Source",value:this.props.source,options:source_options,handleChange:function(val){_this3.props.uiActions.set({library_artists_source:val}),_this3.props.uiActions.hideContextMenu()}}));return _react2.default.createElement("div",{className:"view library-artists-view"},_react2.default.createElement(_Header2.default,{icon:"mic",title:"My artists",options:options,uiActions:this.props.uiActions}),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,mopidy_library_artists_status:void 0!==state.ui.processes.MOPIDY_LIBRARY_ARTISTS_PROCESSOR?state.ui.processes.MOPIDY_LIBRARY_ARTISTS_PROCESSOR.status:null,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:"name",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)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(LibraryArtists)}).call(exports,__webpack_require__(9))},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_redux=__webpack_require__(2),_AlbumGrid=(__webpack_require__(6),__webpack_require__(40)),_AlbumGrid2=_interopRequireDefault(_AlbumGrid),_List=__webpack_require__(47),_List2=_interopRequireDefault(_List),_Header=__webpack_require__(13),_Header2=_interopRequireDefault(_Header),_Thumbnail=__webpack_require__(10),_TrackList=(_interopRequireDefault(_Thumbnail),__webpack_require__(21)),_ArtistSentence=(_interopRequireDefault(_TrackList),__webpack_require__(20)),_DropdownField=(_interopRequireDefault(_ArtistSentence),__webpack_require__(36)),_DropdownField2=_interopRequireDefault(_DropdownField),_FilterField=__webpack_require__(61),_FilterField2=_interopRequireDefault(_FilterField),_LazyLoadListener=__webpack_require__(22),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(14),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions4),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:"componentDidMount",value:function(){"finished"==this.props.mopidy_library_albums_status||"started"==this.props.mopidy_library_albums_status||!this.props.mopidy_connected||"all"!=this.props.source&&"local"!=this.props.source||this.props.mopidyActions.getLibraryAlbums(),"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.mopidy_uri_schemes.includes("spotify:")||"all"!=newProps.source&&"spotify"!=newProps.source||"all"!=this.props.source&&"spotify"!=this.props.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:"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))for(var i=0;i<this.props.spotify_library_albums.length;i++){var uri=this.props.spotify_library_albums[i];this.props.albums.hasOwnProperty(uri)&&albums.push(this.props.albums[uri])}if(this.props.mopidy_library_albums&&("all"==this.props.source||"local"==this.props.source))for(var i=0;i<this.props.mopidy_library_albums.length;i++){var uri=this.props.mopidy_library_albums[i],source=helpers.uriSource(uri),album={uri:uri,source:source};this.props.albums.hasOwnProperty(uri)&&(album=this.props.albums[uri]),albums.push(album)}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;if(albums=albums.slice(0,this.state.limit),"list"==this.props.view){var columns=[{label:"Name",name:"name"},{label:"Artists",name:"artists"},{label:"Added",name:"added_at"},{label:"Tracks",name:"tracks_total"},{label:"Source",name:"source"}];return _react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_List2.default,{handleContextMenu:function(e,item){return _this2.handleContextMenu(e,item)},rows:albums,columns:columns,className:"album-list",link_prefix:global.baseURL+"album/"}),_react2.default.createElement(_LazyLoadListener2.default,{loading:this.state.limit<total_albums,loadMore:function(){return _this2.setState({limit:_this2.state.limit+_this2.state.per_page})}}))}return _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,{loading:this.state.limit<total_albums,loadMore:function(){return _this2.setState({limit:_this2.state.limit+_this2.state.per_page})}}))}},{key:"render",value:function(){var _this3=this,source_options=[{value:"all",label:"All"},{value:"local",label:"Local"}];this.props.mopidy_uri_schemes.includes("spotify:")&&source_options.push({value:"spotify",label:"Spotify"});var view_options=[{value:"thumbnails",label:"Thumbnails"},{value:"list",label:"List"}],sort_options=[{value:"name",label:"Name"},{value:"artists",label:"Artist"},{value:"added_at",label:"Added"},{value:"tracks_total",label:"Tracks"},{value:"source",label:"Source"}],options=_react2.default.createElement("span",null,_react2.default.createElement(_FilterField2.default,{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,reverse:this.props.sort_reverse,handleChange:function(val){_this3.setSort(val),_this3.props.uiActions.hideContextMenu()}}),_react2.default.createElement(_DropdownField2.default,{icon:"eye",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:"database",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,{icon:"cd",title:"My albums",options:options,uiActions:this.props.uiActions}),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,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:"name",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),spotifyActions:(0,_redux.bindActionCreators)(spotifyActions,dispatch)}};exports.default=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(LibraryAlbums)}).call(exports,__webpack_require__(9))},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__(3),_redux=__webpack_require__(2),_reactFontawesome=(__webpack_require__(6),__webpack_require__(5)),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_TrackList=__webpack_require__(21),_TrackList2=_interopRequireDefault(_TrackList),_Header=__webpack_require__(13),_Header2=_interopRequireDefault(_Header),_LazyLoadListener=__webpack_require__(22),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions2),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(){void 0===this.props.library_tracks&&this.props.spotifyActions.getLibraryTracks()}},{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("span",null,_react2.default.createElement("button",{className:"no-hover",onClick:function(e){return _this2.playAll(e)}},_react2.default.createElement(_reactFontawesome2.default,{name:"play"})," Play all"));return _react2.default.createElement("div",{className:"view library-tracks-view"},_react2.default.createElement(_Header2.default,{icon:"music",title:"My tracks",options:options,uiActions:this.props.uiActions}),_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_TrackList2.default,{tracks:tracks}),_react2.default.createElement(_LazyLoadListener2.default,{loading: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,library_tracks:state.spotify.library_tracks,library_tracks_more:state.spotify.library_tracks_more}},mapDispatchToProps=function(dispatch){return{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(global){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__(3),_redux=__webpack_require__(2),_reactFontawesome=(__webpack_require__(6),__webpack_require__(5)),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_PlaylistGrid=__webpack_require__(41),_PlaylistGrid2=_interopRequireDefault(_PlaylistGrid),_List=__webpack_require__(47),_List2=_interopRequireDefault(_List),_DropdownField=__webpack_require__(36),_DropdownField2=_interopRequireDefault(_DropdownField),_Header=__webpack_require__(13),_Header2=_interopRequireDefault(_Header),_FilterField=__webpack_require__(61),_FilterField2=_interopRequireDefault(_FilterField),_LazyLoadListener=__webpack_require__(22),_LazyLoadListener2=_interopRequireDefault(_LazyLoadListener),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(14),coreActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions3),_actions4=__webpack_require__(7),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:"componentDidMount",value:function(){this.props.mopidy_library_playlists||!this.props.mopidy_connected||"all"!=this.props.source&&"local"!=this.props.source||this.props.mopidyActions.getLibraryPlaylists(),!this.props.mopidy_uri_schemes.includes("spotify:")||"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.mopidy_uri_schemes.includes("spotify:")||"all"!=newProps.source&&"spotify"!=newProps.source||"all"!=this.props.source&&"spotify"!=this.props.source&&"finished"!==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:"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])}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;if(playlists=playlists.slice(0,this.state.limit),"list"==this.props.view){if(this.props.slim_mode)var columns=[{label:"Name",name:"name"},{label:"Tracks",name:"tracks_total"}];else var columns=[{label:"Name",name:"name"},{label:"Owner",name:"owner"},{label:"Tracks",name:"tracks_total"},{label:"Editable",name:"can_edit"},{label:"Source",name:"source"}];return _react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_List2.default,{handleContextMenu:function(e,item){return _this2.handleContextMenu(e,item)},rows:playlists,columns:columns,className:"playlist-list",link_prefix:global.baseURL+"playlist/"}),_react2.default.createElement(_LazyLoadListener2.default,{loading:this.state.limit<total_playlists,loadMore:function(){return _this2.setState({limit:_this2.state.limit+_this2.state.per_page})}}))}return _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,{loading:this.state.limit<total_playlists,loadMore:function(){return _this2.setState({limit:_this2.state.limit+_this2.state.per_page})}}))}},{key:"render",value:function(){var _this3=this,source_options=[{value:"all",label:"All"},{value:"local",label:"Local"}];this.props.mopidy_uri_schemes.includes("spotify:")&&source_options.push({value:"spotify",label:"Spotify"});var view_options=[{value:"thumbnails",label:"Thumbnails"},{value:"list",label:"List"}],sort_options=[{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,{handleChange:function(value){return _this3.setState({filter:value})}}),_react2.default.createElement(_DropdownField2.default,{icon:"sort",name:"Sort",value:this.props.sort,options:sort_options,reverse:this.props.sort_reverse,handleChange:function(val){_this3.setSort(val),_this3.props.uiActions.hideContextMenu()}}),_react2.default.createElement(_DropdownField2.default,{icon:"eye",name:"View",value:this.props.view,options:view_options,handleChange:function(val){_this3.props.uiActions.set({library_playlists_view:val}),_this3.props.uiActions.hideContextMenu()}}),_react2.default.createElement(_DropdownField2.default,{icon:"database",name:"Source",value:this.props.source,options:source_options,handleChange:function(val){_this3.props.uiActions.set({library_playlists_source:val}),_this3.props.uiActions.hideContextMenu()}}),_react2.default.createElement("button",{className:"no-hover",onClick:function(){return _this3.props.uiActions.openModal("create_playlist",{})}},_react2.default.createElement(_reactFontawesome2.default,{name:"plus"})," New"));return _react2.default.createElement("div",{className:"view library-playlists-view"},_react2.default.createElement(_Header2.default,{icon:"playlist",title:"My playlists",options:options,uiActions:this.props.uiActions}),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_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:"name",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)}).call(exports,__webpack_require__(9))},function(module,exports,__webpack_require__){"use strict";(function(global){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__(3),_redux=__webpack_require__(2),_reactRouter=__webpack_require__(6),_reactFontawesome=__webpack_require__(5),_reactFontawesome2=_interopRequireDefault(_reactFontawesome),_Header=__webpack_require__(13),_Header2=_interopRequireDefault(_Header),_List=__webpack_require__(47),_List2=_interopRequireDefault(_List),_TrackList=__webpack_require__(21),_TrackList2=_interopRequireDefault(_TrackList),_GridItem=__webpack_require__(38),_GridItem2=_interopRequireDefault(_GridItem),_helpers=__webpack_require__(1),helpers=_interopRequireWildcard(_helpers),_actions=__webpack_require__(4),uiActions=_interopRequireWildcard(_actions),_actions2=__webpack_require__(8),mopidyActions=_interopRequireWildcard(_actions2),_actions3=__webpack_require__(7),spotifyActions=_interopRequireWildcard(_actions3),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()}},{key:"componentWillReceiveProps",value:function(nextProps){!this.props.mopidy_connected&&nextProps.mopidy_connected&&this.loadDirectory(nextProps),nextProps.params.uri!=this.props.params.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.params.uri&&(uri=props.params.uri),this.props.mopidyActions.getDirectory(uri)}}},{key:"playAll",value:function(e){var tracks=this.arrangeDirectory().tracks,tracks_uris=helpers.arrayOf("uri",tracks);this.props.mopidyActions.playURIs(tracks_uris,"iris:browse:"+this.props.params.uri),this.props.uiActions.hideContextMenu()}},{key:"goBack",value:function(e){window.history.back(),this.props.uiActions.hideContextMenu()}},{key:"arrangeDirectory",value:function(){for(var directory=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.directory,folders=[],tracks=[],i=0;i<directory.length;i++)directory[i].type&&"track"==directory[i].type?tracks.push(directory[i]):folders.push(Object.assign({},directory[i],{uri:directory[i].uri}));return{folders:folders,tracks:tracks}}},{key:"renderDirectory",value:function(){var _this2=this,title="Browse",uri_exploded=this.props.params.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 items=this.arrangeDirectory(this.props.directory),options=_react2.default.createElement("span",null,_react2.default.createElement("button",{className:"no-hover",onClick:function(e){return _this2.playAll(e)}},_react2.default.createElement(_reactFontawesome2.default,{name:"play"})," Play all"),_react2.default.createElement("button",{className:"no-hover",onClick:function(e){return _this2.goBack(e)}},_react2.default.createElement(_reactFontawesome2.default,{name:"reply"})," Back"));return _react2.default.createElement("div",{className:"view library-local-view"},_react2.default.createElement(_Header2.default,{icon:"music",title:title,options:options,uiActions:this.props.uiActions}),_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement(_List2.default,{nocontext:!0,columns:[{name:"name",width:"100"}],rows:items.folders,className:"library-local-directory-list",link_prefix:global.baseURL+"library/browse/"}),_react2.default.createElement(_TrackList2.default,{tracks:items.tracks,uri:"iris:browse:"+this.props.params.uri,className:"library-local-track-list",noheader:!0})))}},{key:"renderIndex",value:function(){var grid_items=[];if(this.props.directory)for(var i=0;i<this.props.directory.length;i++){var directory=this.props.directory[i];switch(directory.name){case"Dirble":directory.icons=["assets/backgrounds/browse-dirble.jpg"];break;case"Files":case"Local media":directory.icons=["assets/backgrounds/browse-folders.jpg"];break;case"Spotify":case"Spotify Browse":directory.icons=["assets/backgrounds/browse-spotify.jpg"];break;case"Spotify Tunigo":case"Tunigo":directory.icons=["assets/backgrounds/browse-tunigo.jpg"];break;case"TuneIn":directory.icons=["assets/backgrounds/browse-tunein.jpg"];break;case"SoundCloud":directory.icons=["assets/backgrounds/browse-soundcloud.jpg"];break;case"iTunes Store: Podcasts":directory.icons=["assets/backgrounds/browse-itunes.jpg"];break;case"Soma FM":directory.icons=["assets/backgrounds/browse-somafm.jpg"];break;default:directory.icons=["assets/backgrounds/browse-default.jpg"]}grid_items.push({name:directory.name,link:global.baseURL+"library/browse/"+encodeURIComponent(directory.uri),icons:directory.icons})}return _react2.default.createElement("div",{className:"view library-local-view"},_react2.default.createElement(_Header2.default,{icon:"folder",title:"Browse"}),_react2.default.createElement("section",{className:"content-wrapper"},_react2.default.createElement("div",{className:"grid category-grid"},grid_items.map(function(item,index){return _react2.default.createElement(_GridItem2.default,{item:item,key:index,onClick:function(e){return _reactRouter.hashHistory.push(item.link)}})}))))}},{key:"render",value:function(){return void 0!==this.props.params.uri&&this.props.params.uri?this.renderDirectory():this.renderIndex()}}]),LibraryBrowse}(_react2.default.Component),mapStateToProps=function(state,ownProps){return{load_queue:state.ui.load_queue,mopidy_connected:state.mopidy.connected,directory:state.mopidy.directory}},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)(LibraryBrowse)}).call(exports,__webpack_require__(9))},function(module,exports){}]);
|
||
//# sourceMappingURL=app.min.js.map |