define(["require","OK/logger"],(function(t,e){"use strict";function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}function i(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(r){if("default"!==r){var i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,i.get?i:{enumerable:!0,get:function(){return t[r]}})}})),e.default=t,Object.freeze(e)}var s=r(e),n=new Map;function a(t,e,r){var i=n.get(e);return i||(i=o(t,e,r).then((function(t){return n.delete(e),t})).catch((function(t){throw n.delete(e),t})),n.set(e,i)),i}function o(t,e,r,i){return void 0===i&&(i=1),function(t,e,r){return new Promise((function(i,s){var n=new XMLHttpRequest;n.open(t,e),n.setRequestHeader("Accept","application/json, text/javascript, */*; q=0.01"),r||n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.onerror=function(){return s(new Error("error.network"))},n.onload=function(){if(200===n.status)try{var t=JSON.parse(n.responseText),e=null==t?void 0:t.error;e?s(new Error(e)):i(t)}catch(t){s(t)}else s(new Error(n.statusText))},n.send(r)}))}(t,e,r).catch((function(s){if("error.network"!==(n=s).message&&"error.service.not.available"!==n.message&&"error.tuners.unavailable"!==n.message||i>=10)throw s;var n;return new Promise((function(s,n){setTimeout((function(){return o(t,e,r,++i).then(s,n)}),1e3)}))}))}function u(t,e){s.default.duration("music.api.request",performance.now()-t,e)}var c=function(t){void 0===t&&(t="ru"),this.locale=t};c.prototype.get=function(t,e){return this.request("GET",t,e)},c.prototype.post=function(t,e){return e&&e instanceof FormData?this.request("POST",t,void 0,e):this.request("POST",t,e)},c.prototype.createURL=function(t,e){var r=this;return this.credentials||(this.credentials=a("POST","/web-api/music/conf")),this.credentials.then((function(i){return 0===t.indexOf("https://")?t+";jsessionid="+i.sid:(0===t.indexOf("upload/")?i.uploadHost+"/api/v1":i.apiHost)+"/"+t+";jsessionid="+i.sid+r.stringifyParams(e,i.bci)}))},c.prototype.request=function(t,e,r,i){var n=this,o=performance.now();return this.createURL(e,r).then((function(e){return a(t,e,i)})).then((function(t){return u(o,e),t})).catch((function(a){if(u(o,e),"error.notloggedin"===a.message)return n.credentials=void 0,n.request(t,e,r,i);throw function(t,e,r,i){if(function(t){return"error.notloggedin"!==t.message&&"error.service.not.available"!==t.message&&"error.tuners.unavailable"!==t.message&&"error.play.track.unplayable"!==t.message&&"error.copyright.restriction"!==t.message&&"error.notfound"!==t.message&&"error.network"!==t.message&&"error.privacy.restricted"!==t.message}(t)){var n="params: "+(r?JSON.stringify(r):"")+"\ndata: "+(i?"yes":"no")+"\n"+Error().stack;s.default.clob("music.api.error",n,e,t.message)}else s.default.success("music.api.error",e,t.message)}(a,e,r,i),a}))},c.prototype.stringifyParams=function(t,e){void 0===t&&(t={});for(var r=this.addParams(t,e),i=[],s=0,n=Object.keys(r);s>2]|=t.charCodeAt(e)<<(e%4<<3);if(s[e>>2]|=128<<(e%4<<3),e>55)for(P(i,s),e=0;e<16;e++)s[e]=0;return s[14]=8*r,P(i,s),i}(t))}function I(t){for(var e="",r=0;r<4;r++)e+=w[t>>8*r+4&15]+w[t>>8*r&15];return e}function P(t,e){var r=t[0],i=t[1],s=t[2],n=t[3];r=A(r,i,s,n,e[0],7,-680876936),n=A(n,r,i,s,e[1],12,-389564586),s=A(s,n,r,i,e[2],17,606105819),i=A(i,s,n,r,e[3],22,-1044525330),r=A(r,i,s,n,e[4],7,-176418897),n=A(n,r,i,s,e[5],12,1200080426),s=A(s,n,r,i,e[6],17,-1473231341),i=A(i,s,n,r,e[7],22,-45705983),r=A(r,i,s,n,e[8],7,1770035416),n=A(n,r,i,s,e[9],12,-1958414417),s=A(s,n,r,i,e[10],17,-42063),i=A(i,s,n,r,e[11],22,-1990404162),r=A(r,i,s,n,e[12],7,1804603682),n=A(n,r,i,s,e[13],12,-40341101),s=A(s,n,r,i,e[14],17,-1502002290),r=x(r,i=A(i,s,n,r,e[15],22,1236535329),s,n,e[1],5,-165796510),n=x(n,r,i,s,e[6],9,-1069501632),s=x(s,n,r,i,e[11],14,643717713),i=x(i,s,n,r,e[0],20,-373897302),r=x(r,i,s,n,e[5],5,-701558691),n=x(n,r,i,s,e[10],9,38016083),s=x(s,n,r,i,e[15],14,-660478335),i=x(i,s,n,r,e[4],20,-405537848),r=x(r,i,s,n,e[9],5,568446438),n=x(n,r,i,s,e[14],9,-1019803690),s=x(s,n,r,i,e[3],14,-187363961),i=x(i,s,n,r,e[8],20,1163531501),r=x(r,i,s,n,e[13],5,-1444681467),n=x(n,r,i,s,e[2],9,-51403784),s=x(s,n,r,i,e[7],14,1735328473),r=_(r,i=x(i,s,n,r,e[12],20,-1926607734),s,n,e[5],4,-378558),n=_(n,r,i,s,e[8],11,-2022574463),s=_(s,n,r,i,e[11],16,1839030562),i=_(i,s,n,r,e[14],23,-35309556),r=_(r,i,s,n,e[1],4,-1530992060),n=_(n,r,i,s,e[4],11,1272893353),s=_(s,n,r,i,e[7],16,-155497632),i=_(i,s,n,r,e[10],23,-1094730640),r=_(r,i,s,n,e[13],4,681279174),n=_(n,r,i,s,e[0],11,-358537222),s=_(s,n,r,i,e[3],16,-722521979),i=_(i,s,n,r,e[6],23,76029189),r=_(r,i,s,n,e[9],4,-640364487),n=_(n,r,i,s,e[12],11,-421815835),s=_(s,n,r,i,e[15],16,530742520),r=C(r,i=_(i,s,n,r,e[2],23,-995338651),s,n,e[0],6,-198630844),n=C(n,r,i,s,e[7],10,1126891415),s=C(s,n,r,i,e[14],15,-1416354905),i=C(i,s,n,r,e[5],21,-57434055),r=C(r,i,s,n,e[12],6,1700485571),n=C(n,r,i,s,e[3],10,-1894986606),s=C(s,n,r,i,e[10],15,-1051523),i=C(i,s,n,r,e[1],21,-2054922799),r=C(r,i,s,n,e[8],6,1873313359),n=C(n,r,i,s,e[15],10,-30611744),s=C(s,n,r,i,e[6],15,-1560198380),i=C(i,s,n,r,e[13],21,1309151649),r=C(r,i,s,n,e[4],6,-145523070),n=C(n,r,i,s,e[11],10,-1120210379),s=C(s,n,r,i,e[2],15,718787259),i=C(i,s,n,r,e[9],21,-343485551),t[0]=E(r,t[0]),t[1]=E(i,t[1]),t[2]=E(s,t[2]),t[3]=E(n,t[3])}function j(t){for(var e=[],r=0;r<64;r+=4)e[r>>2]=t.charCodeAt(r)+(t.charCodeAt(r+1)<<8)+(t.charCodeAt(r+2)<<16)+(t.charCodeAt(r+3)<<24);return e}function S(t,e,r,i,s,n){return e=E(E(e,t),E(i,n)),E(e<>>32-s,r)}function A(t,e,r,i,s,n,a){return S(e&r|~e&i,t,e,s,n,a)}function x(t,e,r,i,s,n,a){return S(e&i|r&~i,t,e,s,n,a)}function _(t,e,r,i,s,n,a){return S(e^r^i,t,e,s,n,a)}function C(t,e,r,i,s,n,a){return S(r^(e|~i),t,e,s,n,a)}function E(t,e){return t+e&4294967295}var R=[4,3,5,6,1,2,8,7,2,9,3,5,7,1,4,8,8,3,4,3,1,7,3,5,9,8,1,4,3,7,2,8];function q(t){for(var e,r=O(/md5=(\w*)/g.exec(t)[1]+"secret"),i=r.length,s="",n=0,a=0;a=0;n--)if(!t[n].playRestricted)return n}return-1}var U=function(){this.listeners={}};U.prototype.on=function(t,e){var r=this.listeners[t];return r||(r=[],this.listeners[t]=r),r.push(e),this},U.prototype.emit=function(t,e){var r=this.listeners[t];r&&r.forEach((function(t){return t(e)}))};var L=null;function D(){L&&clearTimeout(L)}var F,H="postroll";function Q(e,r,s){return F?(F("user-skip"),Promise.resolve()):s?new Promise((function(n,a){F=a,new Promise((function(e,r){t(["adman"],(function(t){e(i(t))}),r)})).then((function(t){return new t})).then((function(t){t.init(function(t,e){return{slot:3564,audioEl:t,params:{duration:e.duration,ok_id:e.userId,ok_catid:e.categoryId,puid22:e.genre,account_age_type:e.userType},wrapper:document.documentElement,browser:{}}}(e,s)),t.onReady((function(i){var s=t.getBannersForSection(H);s&&s.length?(!function(t){if(t&&t.settings&&t.settings.postroll){var e=t.settings.postroll;e.maxBannersShow>1&&B("mbs"),e.loop&&B("loop")}}(i),e.loop&&(e.loop=!1),t.start(H),r.emit(7)):(B("skip"),n("skip"))})),t.onStarted((function(){B("started")})),t.onError((function(e){B("error"),t.stop(),r.emit(8),n(e)})),t.onTimeRemained((function(t){r.emit(9,{duration:t.duration,currentTime:t.currentTime})})),t.onCompleted((function(){r.emit(8),B("finished"),n()}))})).catch((function(t){console.error("error while playing ads",t),r.emit(8),n()}))})).then((function(){F=void 0})):Promise.resolve()}function V(t){switch(t){case 10:return"my";case 8:return"pop";case 14:return"personalpl";case 1:return"album";case 11:return"artist";default:return"unknown"}}function B(t){s.default.success("music.ads",t)}var W=function(e){function r(r){var i=this;e.call(this),this.isMediaAttachToHls=!1,this.audio=r,this.startTime=0,this.animateVolume=!1,this.lastVolume=this.audio.volume,this.hls=new Promise((function(e,r){t(["./hls-c5c47612"],e,r)})).then((function(t){return new(0,t.default)})),this.audio.addEventListener("pause",(function(){return i.emit(2)})),this.audio.addEventListener("play",(function(){return i.emit(1)})),this.audio.addEventListener("waiting",(function(){return i.emit(3,!0)})),this.audio.addEventListener("playing",(function(){return i.emit(3,!1)})),this.audio.addEventListener("progress",(function(){var t=i.getCached();t&&(i.startTime>0&&(s.default.duration("music",Date.now()-i.startTime,"player","cache-ttfb"),i.startTime=0),i.emit(4,{cached:t}))})),this.audio.addEventListener("suspend",(function(){1===i.audio.networkState&&(i.getCached()/i.audio.duration>.9&&i.emit(4,{cached:i.audio.duration}))})),this.audio.addEventListener("timeupdate",(function(){i.emit(5,{duration:i.audio.duration,currentTime:i.audio.currentTime})})),this.audio.addEventListener("ended",(function(){i.emit(6)})),this.audio.addEventListener("error",(function(){i.audio.src&&0!==i.audio.src.indexOf("data:audio/mpeg;base64")&&i.emit(0,i.audio.error)}))}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var i={currentSrc:{configurable:!0},playing:{configurable:!0},currentTime:{configurable:!0},volume:{configurable:!0}};return i.currentSrc.get=function(){var t=this.audio.currentSrc;return 0===t.indexOf("data:audio")?"":t},i.playing.get=function(){return!this.audio.paused},i.currentTime.get=function(){return this.audio.currentTime},i.volume.get=function(){return this.audio.volume},i.volume.set=function(t){var e=t/100;this.audio.volume=e,this.lastVolume=e},r.prototype.play=function(t,e){var r=this;this.restoreVolume(),e?Q(this.audio,this,e).then((function(){return r.play0(t)})):this.play0(t)},r.prototype.pause=function(){var t,e,r;this.audio.paused||(this.animateVolume=!0,t=this.audio,e=Date.now(),r=function(){var i=Date.now();t.volume=Math.max(0,t.volume-(i-e)/250),e=i,t.volume>0?L=setTimeout(r,1):t.pause()},D(),r(),this.emit(2))},r.prototype.resume=function(){var t=this;return this.audio.paused?this.audio.src?this.play0().then((function(){var e,r,i,s;t.animateVolume&&(e=t.audio,r=t.lastVolume,i=Date.now(),s=function(){var t=Date.now();e.volume=Math.min(r,e.volume+(t-i)/250),i=t,e.volume-1){var i=e.items.slice();i.splice(r,1),this.queue0({tracks:e.setItems(i)})}},X.prototype.reorderTrack=function(t,e){var r=this.state.queue,i=r.tracks.items.slice(),s=i.indexOf(t);i.splice(s,1),i.splice(e,0,t),this.queue0({tracks:r.tracks.setItems(i)})},X.prototype.getCurrentIndex=function(){var t=this.state,e=t.track,r=t.queue;return e?r.tracks.items.indexOf(e):-1},X.prototype.subscribe=function(t){var e=this;return this.subscribers.push(t),t(this.state),function(){var r=e.subscribers.indexOf(t);r>=0&&e.subscribers.splice(r,1)}},X.prototype.removeTrackIfContains=function(t,e){var r=e.findIndex((function(e){return e.id===t.id}));-1!==r&&e.splice(r,1)},X.prototype.queue0=function(t){this.queue=Object.assign(Object.assign({},this.state.queue),t)},X.prototype.notify=function(){var t=Object.assign({},this.state);this.subscribers.forEach((function(e){return e(t)}))},Object.defineProperties(X.prototype,Z);var tt,et,rt,it="externalMusic",st=(tt=window.navigator.userAgent,et=window.navigator.platform,-1!==["Macintosh","MacIntel","MacPPC","Mac68K"].indexOf(et)?"Mac OS":-1!==["iPhone","iPad","iPod"].indexOf(et)?"iOS":-1!==["Win32","Win64","Windows","WinCE"].indexOf(et)?"Windows":/Android/.test(tt)?"Android":/Linux/.test(et)?"Linux":void 0),nt=!1;function at(t,e,r){e&&r&&(s.default.success(it,"listened",JSON.stringify(Object.assign(Object.assign({},r),{trackId:e.id,ctx:e.ctx,releaseId:e.releaseId,endReason:t,repeat:"off"===r.repeat?void 0:"one"===r.repeat?1:2,useDuration:Math.round((Date.now()-r.startTimestamp)/1e3),stateStart:r.stateStart?2:1,stateEnd:document.hasFocus()?2:1,addedDuringListening:nt,previousUmaPayload:rt,osType:st}))),rt=r.umaPayload,nt=!1)}function ot(t,e){return e[0]&&!function(t,e){for(var r=t.items,i=0;i0;i--){var s=Math.floor(Math.random()*(i+1));e=[r[s],r[i]],r[i]=e[0],r[s]=e[1]}return r}var lt="ERROR_EMPTY",pt=function(t,e){this.store=t,this.fetcher=e};function dt(t){return"source"in t}function ht(t,e,r,i){if(navigator.mediaSession){navigator.mediaSession.metadata=function(t){if(dt(t))return new MediaMetadata({title:t.name,artwork:[{src:t.logoColored,type:"image/svg",sizes:"90x90"}]});return new MediaMetadata({title:t.name,artist:t.artists.map((function(t){return t.name})).join(", "),album:t.album.name,artwork:t.cover?[{src:t.cover+"&fn=music.w_96",sizes:"96x96",type:"image/png"},{src:t.cover+"&fn=music.w_128",sizes:"128x128",type:"image/png"},{src:t.cover,sizes:"192x192",type:"image/png"}]:void 0})}(e),navigator.mediaSession.setActionHandler("play",(function(){s.default.success("music.player","media-session","play"),t.resume()})),navigator.mediaSession.setActionHandler("pause",(function(){s.default.success("music.player","media-session","pause"),t.pause()})),navigator.mediaSession.setActionHandler("previoustrack",(function(){s.default.success("music.player","media-session","previoustrack"),i()})),navigator.mediaSession.setActionHandler("nexttrack",(function(){s.default.success("music.player","media-session","nexttrack"),r()}));var n=dt(e);navigator.mediaSession.setActionHandler("seekbackward",n?null:function(){s.default.success("music.player","media-session","seekbackward"),t.seek(t.currentTime-10)}),navigator.mediaSession.setActionHandler("seekforward",n?null:function(){s.default.success("music.player","media-session","seekforward"),t.seek(t.currentTime+10)})}}pt.prototype.restore=function(t,e){var r=this;return this.fetch({type:t,id:e}).catch((function(){return r.fetch({type:8})})).then((function(t){var e=r.chooseFirstTrack(t.tracks.items);r.store.updateQueue(e,t)}))},pt.prototype.update=function(t){var e=this;return this.fetch(t).then((function(r){var i=t.track;t.preview&&(r.tracks=ot(r.tracks,t.preview)),i?r.tracks=function(t,e){var r=t.items.findIndex((function(t){return e.id===t.id}));return-1===r?t.items.splice(0,0,e):e!==t.items[r]&&(t.items[r]=e),t}(r.tracks,i):i=e.chooseFirstTrack(r.tracks.items),e.store.updateQueue(i,r)}))},pt.prototype.addPlaylist=function(t){var e=this;return this.fetch(t).then((function(r){e.store.addPlaylistToQueue(r.tracks.items.slice(),t)}))},pt.prototype.loadMore=function(){var t=this,e=this.store.queue;return e.tracks.hasMore?(this.store.setQueueLoading(!0),this.fetcher.loadMore(e.type,e.id).then((function(e){t.mergeMoreTracksIntoQueue(e.clone())})).catch((function(){s.default.success("music.player.warn","load-more-"+e.type),t.store.queue=Object.assign(Object.assign({},e),{tracks:h.of(e.tracks.items,{start:e.tracks.chunk.start,count:e.tracks.chunk.count,more:!1})})}))):Promise.reject("no-more-tracks")},pt.prototype.toggleShuffle=function(){var t,e,r,i=this.store,s=i.track,n=i.queue,a=n.type,o=n.id,u=n.originalTracks;this.store.queue=u?{type:a,id:o,tracks:u}:{id:o,type:a,tracks:(t=n.tracks,e=s,e?(r=ct(t.items.filter((function(t){return e.id!==t.id})))).unshift(e):r=ct(t.items),h.of(r,t.chunk,t.totalCount)),originalTracks:n.tracks}},pt.prototype.mergeMoreTracksIntoQueue=function(t){var e=this,r=this.store.queue,i=r.tracks,s=r.originalTracks,n=i.items,a=t.items.slice(t.chunk.start);n.forEach((function(t){return e.store.removeTrackIfContains(t,a)})),s&&(r.originalTracks=s.add(a,t.chunk,t.totalCount)),this.store.queue=Object.assign(Object.assign({},r),{tracks:i.add(a,t.chunk,t.totalCount)})},pt.prototype.chooseFirstTrack=function(t){var e=N(t,1,-1);if(-1===e)throw Promise.reject(lt);return t[e]},pt.prototype.fetch=function(t){var e=this;return 8===t.type&&"2"===String(t.id)&&(t.id=void 0),31!==t.type&&18!==t.type||(t.type=14),t.tracks?Promise.resolve({type:G(t.type),id:t.id,tracks:Array.isArray(t.tracks)?h.of(t.tracks.slice()):t.tracks.clone()}):27===t.type&&t.track?Promise.resolve({type:27,id:t.id,tracks:h.of([t.track])}):t.type?this.fetchTracks(G(t.type),t.id,t.ctx).catch((function(t){return s.default.success("music.player.warn",t,"queue-fetch"),e.fetchTracks(8)})).then((function(r){return t.tids?e.fetchTracks(-27,t.tids,t.ctx).then((function(e){var i=e.tracks;return t.preview=i.items,r})):r})):!t.tids||t.track&&t.tids===String(t.track.id)?t.track?Promise.resolve({type:0,tracks:h.of([t.track])}):Promise.reject(lt):this.fetchTracks(-27,t.tids,t.ctx).then((function(t){return{type:0,tracks:t.tracks}}))},pt.prototype.fetchTracks=function(t,e,r){return this.fetcher.fetchTracks(t,e,r).then((function(r){return{type:t,id:e,tracks:r.clone()}}))};var ft=function t(e){var r=this,i=e.userId,n=e.state,a=e.api,o=e.queueFetcher,u=e.playRadioInfoSupplier,c=e.radioSupplier,l=e.chooseNextPlaylist;void 0===l&&(l=function(){return Promise.reject()}),this.userId=i,this.store=new X(n),this.api=a,this.queue=new pt(this.store,o),this.playRadioInfoSupplier=u,this.radioSupplier=c,this.audio=K().on(1,(function(){var t;r.store.playing=!0,null===(t=r.tabsChannel)||void 0===t||t.postMessage(null)})).on(2,(function(){return r.store.playing=!1})).on(3,(function(t){return r.store.loading=t})).on(7,(function(){return r.store.startAd()})).on(8,(function(){return r.store.ad=!1})).on(9,(function(t){return r.store.updateAdTime(t)})).on(5,(function(t){return r.store.updateTime(t)})).on(4,(function(t){var e=t.cached;return r.store.cached=e})).on(6,(function(){var t=r.state,e=t.ad,i=t.repeat,s=t.track,n=t.queue;if(!e){if(at(4,s,r.logData),"off"!==i||n.tracks.items.indexOf(s)+1!==n.tracks.items.length)return"one"===i?(r.seek(0),void r.startPlay30Timer(s.id,s.ctx)):void r.playQueueItem(1).catch((function(){return r.rewind()}));l(r.store.queue.type,r.store.queue.id).then((function(t){var e=t.type,i=t.id;return r.playQueue0(e,i)})).catch((function(){return r.rewind()}))}})).on(0,(function(t){s.default.success("music.player.error","audio",t.code),at(4,r.state.track,r.logData),r.store.playing=!1,r.store.loading=!1})),window.BroadcastChannel&&(this.tabsChannel=new BroadcastChannel(t.TABS_CHANNEL_NAME),this.tabsChannel.onmessage=this.pause.bind(this)),this.audio.volume=this.state.volume},yt={state:{configurable:!0}};function mt(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function vt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,i)}return r}function gt(t){for(var e=arguments,r=1;r3||-1===e)return Promise.reject();this.needToLoadMore(o,e,r)&&this.loadMoreTracks(),e>=l?e=0:e<0&&(e=c?0:l-1);var d=u[e];return this.playTrack(d).catch((function(n){if(s.default.success("music.player.error","play-track",n.message||n),"error.copyright.restriction"===n.message||"error.play.track.unplayable"===n.message)return i.playQueueItem(t,e,r+1);throw n}))},ft.prototype.needToLoadMore=function(t,e,r){var i=t.hasMore,s=t.loading,n=t.items,a=n.length;return i&&!s&&(a-e<10||!this.areEnoughUnrestrictedTracks(n,e))&&0===r},ft.prototype.areEnoughUnrestrictedTracks=function(t,e,r){void 0===r&&(r=3);for(var i=0,s=e;s0)})}return Object.assign(Object.assign({},t),{similarTracks:_t(g(e.tracks,e.albums),!0)})}(t,e.data);case"tracks/add_tracks":return function(t,e,r,i){void 0===e&&(e=[]);var s=!1;if(xt(t.tracks)){var n=new Set(e.map((function(t){return t.id}))),a=t.tracks.items.filter((function(t){return!n.has(t.id)})),o=t.tracks.totalCount;e=e.map((function(t){return Object.assign({},t)})),t.tracks=h.of(e.concat(a),t.tracks.chunk,i||o),s=!0}r&&(t.playlist=Object.assign(Object.assign({},t.playlist),{images:r||t.playlist.images}),s=!0);return s?Object.assign({},t):t}(t,e.tracks,e.images,e.totalTracks);case"tracks/remove_track":return function(t,e){if(t.tracks){var r=t.tracks.items.findIndex((function(t){return t.id===e}));if(r>-1){var i=t.tracks.items.slice(),s=t.tracks.totalCount;return i.splice(r,1),Object.assign(Object.assign({},t),{tracks:h.of(i,t.tracks.chunk,s?s-1:s)})}}return t}(t,e.tid);case"tracks/replace_track":return function(t,e,r){var i=t.tracks.items,s=i.findIndex((function(t){return t.id===e}));if(s>-1)return i[s]=r,Object.assign(Object.assign({},t),{tracks:t.tracks.setItems([].concat(i))});return t}(t,e.tid,e.track);case"tracks/mark_track_as_removed":return function(t,e){var r=t.tracks.totalCount;return Object.assign(Object.assign({},t),{removed:At(t.removed,e),tracks:t.tracks.setTotalCount(r?r-1:r)})}(t,e.tid);case"tracks/remove_marked_tracks":return function(t){if(t.removed&&t.tracks)return Object.assign(Object.assign({},t),{tracks:t.tracks.setItems(t.tracks.items.filter((function(e){return!t.removed.has(e.id)}))),removed:void 0});return t}(t);case"tracks/reorder_tracks":return function(t,e,r){if(t.tracks){var i=t.tracks.items.slice(),s=i.splice(e,1)[0];return i.splice(r,0,s),Object.assign(Object.assign({},t),{tracks:t.tracks.setItems(i)})}return t}(t,e.from,e.to);case"tracks/restore_track":return function(t,e){if(t.removed&&t.removed.delete(e)){var r=t.tracks.totalCount;return Object.assign(Object.assign({},t),{tracks:t.tracks.setTotalCount(r?r+1:r),removed:new Set(Array.from(t.removed))})}return t}(t,e.tid);case"tracks/add_uploaded_tracks":return function(t,e){void 0===e&&(e=[]);if(xt(t.tracks)){var r=new Set(e.map((function(t){return t.id}))),i=t.tracks.items.filter((function(t){return!r.has(t.id)}));return Object.assign(Object.assign({},t),{tracks:h.of(e.concat(i),t.tracks.chunk,(t.tracks.totalCount||0)+e.length)})}return t}(t,e.tracks);case"tracks/create_playlist":case"tracks/update_all_playlists":return function(t,e){void 0===e&&(e=[]);var r=t.chunkedPlaylists,i=r?r.items:t.playlists||[];e.forEach((function(t){var e=i.findIndex((function(e){return e.id===t.id}));-1!==e?i[e]=Object.assign(Object.assign(Object.assign({},i[e]),t),{importing:t.importing}):i.unshift(Object.assign({},t))}));var s=Object.assign({},t);r?s.chunkedPlaylists=r.clone():s.playlists=i;return s}(t,e.playlists);case"tracks/update_playlist":return function(t,e,r){var i=t.chunkedPlaylists,s=(i?i.items:t.playlists||[]).map((function(t){return t.id===e?Object.assign(Object.assign({},t),r):t})),n=Object.assign({},t);i?n.chunkedPlaylists=i.setItems(s):n.playlists=s;return n}(t,e.pid,e.playlist);case"tracks/un_favor_playlist":return function(t,e){var r=t.chunkedPlaylists,i=((null==r?void 0:r.items)||[]).map((function(t){return t.id===e?Object.assign(Object.assign({},t),{favourite:!1}):t}));return Object.assign(Object.assign({},t),{chunkedPlaylists:null==r?void 0:r.setItems(i)})}(t,e.pid)}return t}function At(t,e){if(!t)return new Set([e]);var r=Array.from(t);return r.push(e),new Set(r)}function xt(t){return t.isNotEmpty||!t.hasMore}function _t(t,e){return h.of(t,{more:e})}var Ct=new Map;function Et(t,e,r){var i=t.get(e);return i?(t.set(e,Object.assign(Object.assign({},i),r)),new Map(t)):t}function Rt(t,e,r,i){var s;void 0===i&&(i=!1);var n=[].concat(null!==(s=t.radios)&&void 0!==s?s:[]),a=n.findIndex((function(t){return t.id===e&&t.regionId===r}));return n[a]=Object.assign(Object.assign({},n[a]),{favourite:i}),Object.assign(Object.assign({},t),{radios:n})}var qt={tracks:h.empty()},Mt=function(t){for(var e=Object.keys(t),r={},i=0;i=0;o--)(s=t[o])&&(a=(n<3?s(a):n>3?s(e,r,a):s(e,r))||a);return n>3&&a&&Object.defineProperty(e,r,a),a}function Vt(t,e,r){var i=r.value,s={};return r.value=function(){var t=arguments[0];return s[t]||(s[t]=i.apply(this,arguments)),s[t]},r}var Bt=function(t){this.api=t};Bt.prototype.fetch=function(t,e){return this.api.get("album",{albumId:t,ctx:e}).then((function(t){var e=t.album,r=t.tracks,i=t.albums;return{album:e,tracks:h.of(k(r,e)),albums:i}}))},Bt.prototype.fetchTracks=function(t,e){return this.fetch(t,e).then((function(t){return t.tracks}))},Qt([Vt],Bt.prototype,"fetch",null);var Wt=function(t){this.api=t};function zt(t){switch(t){case"masterAlbums":return 1;case"userAlbums":return 2;case"collaborations":return 0}}Wt.prototype.fetch=function(t,e){return this.api.get("artist",{artistId:t,count:100,sts:100,mvs:100,ctx:e}).then((function(t){var e=t.artist,r=t.tracks,i=t.albums,s=t.userAlbums,n=t.userAlbumsChunk,a=t.masterAlbums,o=t.masterAlbumsChunk,u=t.collaborations,c=t.collaborationsChunk,l=t.similarArtists,p=t.movies,d=t.similarTracks;return{artist:e,tracks:h.of(g(r,i)),similarTracks:h.of(g(d||[],i),{more:!0}),masterAlbums:a?h.of(a,o):void 0,collaborations:u?h.of(u,c):void 0,userAlbums:s?h.of(s,n):void 0,similarArtists:l,videos:p}}))},Wt.prototype.loadMoreAlbums=function(t,e,r,i,s){return void 0===i&&(i=100),this.api.get("artistAlbums",{artistId:t,typeId:zt(r),start:e,count:i,ctx:s}).then((function(t){var e,i,s=t[r],n=t[(i=r,i+"Chunk")];return(e={})[r]=s?h.of(s,n):void 0,e}))},Wt.prototype.fetchTracks=function(t,e){return this.fetch(t,e).then((function(t){return t.tracks}))},Wt.prototype.loadSimilarTracks=function(t){return Promise.all([this.fetch(t),this.api.get("similarTracksForArtist",{artistId:t,count:100})]).then((function(t){var e=t[0],r=t[1],i=function(t){var e=new Set;return t.similarTracks.items.forEach((function(t){return e.add(t.id)})),e}(e),s=g(r.tracks||[],r.albums).filter((function(t){return!i.has(t.id)})),n=e.similarTracks.items.concat(s);return e.similarTracks=h.of(n,{more:s.length>0}),e.similarTracks}))},Wt.prototype.fetchSimilarTracks=function(t){return this.fetch(t).then((function(t){return t.similarTracks}))},Qt([Vt],Wt.prototype,"fetch",null);var Jt={tracks:h.empty(),similarTracks:h.empty()},Kt=function(t,e,r){this.branch=t,this.store=e,this.api=r};Kt.prototype.getTracks=function(t){return this.get(t).tracks||h.empty()},Kt.prototype.fetchTracks=function(t,e){var r=this.getTracks(t);return r.isNotEmpty||!r.hasMore?Promise.resolve(r):this.loadTracks(t,e)},Kt.prototype.loadTracks=function(t,e){var r=this;this.dispatch(t,"tracks/set_tracks_loading",{loading:!0});var i=this.getTracks(t),s=i.from;return this.request(t,s>0?i.items[0].ctx:e,s).then((function(e){return r.dispatch(t,"tracks/set_tracks",{data:e}),r.getTracks(t)})).catch((function(e){throw r.dispatch(t,"tracks/set_tracks_loading",{loading:!1}),e}))},Kt.prototype.fetchSimilarTracks=function(t){var e=this.get(t).similarTracks||h.empty();return e.isNotEmpty||!e.hasMore?Promise.resolve(e):this.loadSimilarTracks(t)},Kt.prototype.loadSimilarTracks=function(t){var e=this;return this.requestSimilarTracks(t).then((function(r){return e.dispatch(t,"tracks/add_similar_tracks",{data:r}),e.get(t).similarTracks}))},Kt.prototype.editTrack=function(t,e,r,i,s){var n=this;return this.api.post("edit",{tid:e,pid:"playlists"===this.branch?t:void 0,groupId:"groups"===this.branch?t:void 0,tit:r,art:i,alb:s}).then((function(r){var i=r.edited,a=m(i,{id:i.albumId,name:s});return n.dispatch(t,"tracks/replace_track",{tid:e,track:a}),a}))},Kt.prototype.removeTrack=function(t,e){return this.dispatch(t,"tracks/remove_track",{tid:e}),this.api.post("dislike",{pid:"playlists"===this.branch?t:void 0,groupId:"groups"===this.branch?t:void 0,tid:e})},Kt.prototype.restoreTrack=function(t,e){var r=this.get(t).tracks.items.findIndex((function(t){return t.id===e}));return this.dispatch(t,"tracks/restore_track",{tid:e}),this.api.post("like",{pid:"playlists"===this.branch?t:void 0,groupId:"groups"===this.branch?t:void 0,tid:e,pos:r})},Kt.prototype.reorderTracks=function(t,e,r,i){var s=this.get(t),n=Math.min(s.tracks.totalCount,i);return this.dispatch(t,"tracks/reorder_tracks",{from:r,to:n}),this.api.post("reorder",{tid:e,pid:"playlists"===this.branch?t:void 0,groupId:"groups"===this.branch?t:void 0,pos:n})},Kt.prototype.markTrackAsRemoved=function(t,e){return this.dispatch(t,"tracks/mark_track_as_removed",{tid:e}),this.api.post("dislike",{pid:"playlists"===this.branch?t:void 0,groupId:"groups"===this.branch?t:void 0,tid:e})},Kt.prototype.clearRemovedTracks=function(t){this.dispatch(t,"tracks/remove_marked_tracks")},Kt.prototype.requestSimilarTracks=function(t){return this.api.get("similarTracksForPlaylist",{pid:t,count:100})},Kt.prototype.createPlaylist=function(t,e,r){var i=this;return this.api.post("playlistsAdd",{name:e,tid:r.map((function(t){return t.id})).reverse().join(","),publicPlaylist:!0,groupId:"groups"===this.branch?t:void 0,excludeAllUserPlaylists:!0}).then((function(e){return i.dispatch(t,"tracks/create_playlist",{playlists:[e.playlist],newPlaylistId:e.newPlaylistId,groupOwner:"groups"===i.branch?i.get(t).groupOwner:void 0,tracks:r}),e}))},Kt.prototype.addPlaylist=function(t,e){return this.patchThenUpdatePlaylists(t,e,"playlistsAdd",{pid:e,excludeAllUserPlaylists:!0})},Kt.prototype.removePlaylist=function(t,e){var r=this;return this.patchPlaylists(t,e,"playlistsRemove",{excludeAllUserPlaylists:!0,pid:e}).then((function(i){return r.dispatch(t,"tracks/un_favor_playlist",{pid:e}),i}))},Kt.prototype.patchThenUpdatePlaylists=function(t,e,r,i){var s=this;return this.api.post(r,Object.assign({pid:e,groupId:"groups"===this.branch?t:void 0},i)).then((function(e){return s.updateAllPlaylists(t,e.playlists||[e.playlist]),e}))},Kt.prototype.patchPlaylists=function(t,e,r,i){return this.api.post(r,Object.assign({pid:e,groupId:"groups"===this.branch?t:void 0},i))},Kt.prototype.updatePlaylist=function(t,e,r){this.dispatch(t,"tracks/update_playlist",{pid:e,playlist:r})},Kt.prototype.updateAllPlaylists=function(t,e){return this.dispatch(t,"tracks/update_all_playlists",{playlists:e}),e},Kt.prototype.addExternalPlaylists=function(t,e){return this.dispatch(t,"tracks/update_all_playlists",{playlists:e}),e},Kt.prototype.get=function(t){return this.store.getState()[this.branch][t]||Jt},Kt.prototype.request=function(t,e,r){return this.api.get("my",{pid:t,ctx:e,start:r,count:100,extCount:r?0:18})},Kt.prototype.dispatch=function(t,e,r){this.store.dispatch(Object.assign({type:e,id:String(t),branch:this.branch},r))};var Gt=function(t,e){this.api=t,this.playlists=e};Gt.prototype.getAll=function(t,e){return this.api.get("imagesV2",{pid:t,count:e})},Gt.prototype.update=function(t,e){var r=this.playlists.getPlaylist(t);this.playlists.update(t,{images:{imageId:e.id,imageUrl:e.url,imageCounter:r.images.imageCounter}})},Gt.prototype.save=function(t,e){return this.playlists.modify(t,"playlistsSet",{imageIds:e})},Gt.prototype.upload=function(t,e){var r=this,i=URL.createObjectURL(e);return this.update(t,{id:0,url:i}),this.api.post("requestImageUpload").then((function(t){var i=t.url;return r.upload0(i,e)})).then((function(e){var i=e.imageId;return r.save(t,i)})).catch((function(t){throw URL.revokeObjectURL(i),t}))},Gt.prototype.upload0=function(t,e){var r=new FormData;return r.append("file",e),this.api.post(t,r)};var Yt=function(t){function e(e,r,i,s){t.call(this,"playlists",e,r),this.images=new Gt(r,this),this.library=i,this.groups=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getPlaylist=function(e){return t.prototype.get.call(this,e).playlist},e.prototype.create=function(t,e,r,i){var s=this,n=i?this.groups.createPlaylist(i,t,e):this.library.createPlaylist(t,e);return n.then((function(t){var e=t.newPlaylistId;return r&&s.images.upload(e,r),s.loadSimilarTracks(e),e}))},e.prototype.changeName=function(t,e){var r=this,i=this.store.getState().playlists[t].playlist;return this.update(t,{name:e}),this.modify(t,"playlistsSet",{name:e}).catch((function(e){throw r.update(t,{name:i.name}),e}))},e.prototype.modify=function(t,e,r){var i=this,s=this.store.getState().playlists[t];return this.api.post(e,Object.assign(Object.assign({pid:t},r),{excludeAllUserPlaylists:!0})).then((function(t){var e,r=t.playlist,n=null===(e=null==s?void 0:s.groupOwner)||void 0===e?void 0:e.id;return n?i.groups.updateAllPlaylists(n,[r]):i.library.updateAllPlaylists([r])}))},e.prototype.update=function(t,e){this.store.dispatch({type:"playlists/update",pid:t,playlist:e}),this.library.updatePlaylist(t,e)},e.prototype.request=function(t,e,r){return this.api.get("my",{pid:t,ctx:e,start:r,count:100,extCount:r?0:18})},e}(Kt),Xt=function(t){function e(e,r){t.call(this,"users",e,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.reorderUserPlaylists=function(t,e,r){var i,n,a,o=this,u=Number(this.store.getState().currentUser.id),c=null===(i=this.get(String(u)).chunkedPlaylists)||void 0===i?void 0:i.items;this.moveUserPlaylist(u,t,r);var l=null===(n=c[r-1])||void 0===n?void 0:n.id,p=null===(a=c[r+1])||void 0===a?void 0:a.id;return this.api.get("movePlaylistBetween",{pid:t,leftId:l,rightId:p}).then((function(r){if(s.default.success("music.playlists-reorder",r?"success":"failed"),!r)throw o.moveUserPlaylist(u,t,e),new Error;return r}))},e.prototype.moveUserPlaylist=function(t,e,r){this.store.dispatch({type:"users/move-user-playlist",userId:t,pid:e,position:r})},e.prototype.loadMoreUserPlaylists=function(t){var e=this,r=Number(this.store.getState().currentUser.id);return this.setLoadingToUserPlaylists(r),this.api.get("userPlaylists",{start:t,count:100}).then((function(t){return e.store.dispatch({type:"users/add-user-playlists",playlists:t.playlists,myPlaylists:t.value,playlistsChunk:t.playlistsChunk,userId:r})})).then((function(){return e.get(String(r)).chunkedPlaylists}))},e.prototype.loadMoreFriendsPlaylists=function(t,e){var r=this;this.setLoadingToUserPlaylists(e),this.api.get("my",{playlistsStart:t,playlistsCount:100,uid:e,includeTracks:!1}).then((function(t){r.store.dispatch({type:"users/add-user-playlists",playlists:t.playlists,playlistsChunk:t.playlistsChunk,userId:e})}))},e.prototype.request=function(t,e,r){return this.api.get("my",{uid:t===this.store.getState().currentUser.id?void 0:t,includePlaylists:!(t!==this.store.getState().currentUser.id&&r&&r>0),ctx:e,start:r,playlistsStart:0,playlistsCount:100,count:100,extCount:r?0:18})},e.prototype.setLoadingToUserPlaylists=function(t){this.store.dispatch({type:"users/set-loading-to-user-playlists",userId:t})},e}(Kt),Zt=function(t){function e(e,r){t.call(this,"groups",e,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.join=function(t){return this.api.post("joinGroup",{groupId:t})},e.prototype.loadRecommended=function(t){return this.api.get("recommendGroups",{count:3,marker:t}).then((function(t){var e=y(t.groups);return{groups:t.items.map((function(t){var r=t.groupRef,i=t.description,s=r.split(":")[1];return Object.assign(Object.assign({},e[s]),{description:i})})),marker:t.marker}}))},e.prototype.request=function(t,e,r){void 0===r&&(r=0);var i=this.get(t),s={groupId:t,ctx:e,start:r,count:100};return r>0?this.api.get("group",s).then((function(e){return{id:Number(t),name:i.groupOwner.name,groupOwner:i.groupOwner,playCount:i.playlist.playCount,subscribed:i.subscribed,editable:i.editable,totalTracks:i.tracks.totalCount,subscribers:i.playlist.subscribers,albums:e.albums,tracks:e.tracks,chunk:e.chunk,playlists:i.playlists}})):this.api.get("group",s).then((function(t){return{id:t.groupId,name:t.name,playCount:0,subscribed:t.subscribed,editable:t.editable,totalTracks:t.totalTracks,subscribers:{count:t.membersCount,friendsCount:t.friendsCount,friends:t.friendsFull},albums:t.albums,tracks:t.tracks,chunk:t.chunk,playlists:t.playlists,groupOwner:{id:String(t.groupId),name:t.name,imageUrl:t.image}}}))},e}(Kt),$t=function(t){function e(e,r){t.call(this,"collections",e,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.fetchSet=function(t){return this.api.get("collections",{shortName:t,tracksPreview:!0}).then((function(t){var e=t.title,r=t.collections,i=t.albums;return{name:e,collections:r.map((function(t){return Object.assign(Object.assign({},t),{tracksPreview:g(t.tracksPreview||[],i)})}))}}))},e.prototype.fetchRecommended=function(){return this.api.get("collections",{editorial:!0})},e.prototype.request=function(t,e,r){return void 0===r&&(r=0),this.api.get("collection",{collectionId:t,ctx:e,start:r,count:100}).then((function(t){var e=t.collection,r=t.tracks,i=t.albums,s=t.chunk;return{id:e.id,name:e.name,playCount:e.playCount,subscribers:e.subscribers,playlistId:e.playlistId,images:{imageCounter:1,imageId:0,imageUrl:e.image},totalTracks:e.count,editable:!1,tracks:r,albums:i,chunk:s}}))},e}(Kt);Qt([Vt],$t.prototype,"fetchSet",null),Qt([Vt],$t.prototype,"fetchRecommended",null);var te=function(t){this.api=t};te.prototype.share=function(t,e,r){return"track"===t?this.api.post("postStatus",{songId:e}):this.api.post("postPlaylist",{id:e,type:t,pId:r})};var ee=function(t,e,r){this.store=t,this.api=e,this.users=r},re={userId:{configurable:!0},playlistCount:{configurable:!0}};re.userId.get=function(){return this.store.getState().currentUser.id},re.playlistCount.get=function(){var t;return null===(t=this.store.getState().users[this.userId].chunkedPlaylists)||void 0===t?void 0:t.items.length},ee.prototype.updatePlaylists=function(){var t,e=this;return this.api.get("playlistsGet",{start:0,count:null!==(t=this.playlistCount)&&void 0!==t?t:100}).then((function(t){return e.updateAllPlaylists(t.playlists)}))},ee.prototype.getTracks=function(){return this.users.getTracks(this.userId)},ee.prototype.loadTracks=function(){return this.users.loadTracks(this.userId)},ee.prototype.fetchTracks=function(){return this.users.fetchTracks(this.userId)},ee.prototype.fetchSimilarTracks=function(){return this.users.fetchSimilarTracks(this.userId)},ee.prototype.loadSimilarTracks=function(){return this.users.loadSimilarTracks(this.userId)},ee.prototype.loadHistory=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=100),this.load0("history",t,e).then((function(t){var e=t.history,r=t.tracks,i=t.albums,s=t.chunk;return e&&r?{tracks:h.of(b(e,r,i),s)}:{tracks:h.of([])}}))},ee.prototype.clearHistory=function(){return this.api.post("clearHistory")},ee.prototype.loadDownloads=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=100),this.load0("downloaded",t,e).then((function(t){var e=t.tracks,r=t.albums,i=t.chunk;return e?{tracks:h.of(g(e,r),i)}:{tracks:h.of([])}}))},ee.prototype.editTrack=function(t,e,r,i){return this.users.editTrack(this.userId,t,e,r,i)},ee.prototype.removeTrack=function(t){return this.users.removeTrack(this.userId,t)},ee.prototype.restoreTrack=function(t){return this.users.restoreTrack(this.userId,t)},ee.prototype.markTrackAsRemoved=function(t){return this.users.markTrackAsRemoved(this.userId,t)},ee.prototype.clearRemovedTracks=function(){this.users.clearRemovedTracks(this.userId)},ee.prototype.reorderTracks=function(t,e,r){return this.users.reorderTracks(this.userId,t,e,r)},ee.prototype.createPlaylist=function(t,e){var r=this;return this.users.createPlaylist(this.userId,t,e).then((function(t){return r.moveUserPlaylists(t.newPlaylistId,t.position),t}))},ee.prototype.removePlaylist=function(t){return this.users.removePlaylist(this.userId,t)},ee.prototype.addPlaylist=function(t){var e=this;return this.users.addPlaylist(this.userId,t).then((function(r){return e.moveUserPlaylists(t,r.position),r}))},ee.prototype.movePlaylistToTheTop=function(t){var e=this;return this.users.patchThenUpdatePlaylists(this.userId,t,"playlistsBookmarkAdd",{excludeAllUserPlaylists:!0}).then((function(r){return e.moveUserPlaylists(t,r.position),r}))},ee.prototype.updateAllPlaylists=function(t){return this.users.updateAllPlaylists(this.userId,t)},ee.prototype.markPlaylistAsRead=function(t){this.users.updatePlaylist(this.userId,t,{newTracksCount:0})},ee.prototype.updatePlaylist=function(t,e){this.users.updatePlaylist(this.userId,t,e)},ee.prototype.moveUserPlaylists=function(t,e){this.store.dispatch({type:"users/move-user-playlist",pid:t,userId:Number(this.userId),position:e})},ee.prototype.load0=function(t,e,r){return void 0===e&&(e=0),void 0===r&&(r=100),this.api.get(t,{start:e,count:r})},Object.defineProperties(ee.prototype,re);var ie=function(t){this.api=t};ie.prototype.fetch=function(){return this.api.get("myTuners")},ie.prototype.loadTracks=function(t){return this.api.get("myRadio",{tuner:t,count:300}).then((function(t){var e=t.tracks,r=t.albums;return h.of(g(e,r))}))},Qt([Vt],ie.prototype,"fetch",null);var se=function(t,e){this.api=t,this.store=e};se.prototype.getState=function(){return this.store.getState().radio},se.prototype.getRadioStations=function(){var t;return null===(t=this.getState())||void 0===t?void 0:t.radios},se.prototype.loadMoreStations=function(){var t=this.getState();t.marker&&this.loadStations(t.marker)},se.prototype.loadStations=function(t){var e=this;return this.api.get("fm",{marker:t,count:100}).then((function(r){var i,s,n=null!==(i=r.favouriteRadios)&&void 0!==i?i:[];n.forEach((function(t){return t.favourite=!0}));var a=n.concat(null!==(s=r.radios)&&void 0!==s?s:[]).map((function(t){return Object.assign(Object.assign({},t),{uniqueId:ne++})}));return e.store.dispatch({type:t?"radio/add":"radio/set",radios:a,marker:r.marker}),e.getState()}))},se.prototype.toggleFavourite=function(t){var e=t.id,r=t.regionId,i=t.favourite,s=t.title;return i?this.removeFromFavourite(e,r,s):this.addToFavourite(e,r,s)},se.prototype.playStation=function(t,e){return this.checkStationsCount(t,e),this.api.post("playFm",{fmId:t,regionId:e})},se.prototype.addToFavourite=function(t,e,r){var i=this;return s.default.success("music.radio-fm","like",r),this.api.post("likeFm",{fmId:t,regionId:e}).then((function(){return i.store.dispatch({type:"radio/like",fmId:t,regionId:e})}))},se.prototype.removeFromFavourite=function(t,e,r){var i=this;return s.default.success("music.radio-fm","dislike",r),this.api.post("dislikeFm",{fmId:t,regionId:e}).then((function(){return i.store.dispatch({type:"radio/dislike",fmId:t,regionId:e})}))},se.prototype.checkStationsCount=function(t,e){var r=this.getRadioStations(),i=null==r?void 0:r.findIndex((function(r){return r.id===t&&r.regionId===e}));r.length-i>5&&this.loadMoreStations()};var ne=0;var ae={query:"",counts:{},results:h.empty()},oe=function(t){this.api=t};function ue(t,e){switch(t){case"tracks":var r=e;return g(r.tracks,r.albums);case"artists":return e.artists;case"albums":return(e=e).albums?e.albums:function(t){if((null==t?void 0:t.bestMatch)&&(null==t?void 0:t.bestMatch.album))return[t.bestMatch.album];return[]}(e);case"playlists":return e.playlists;default:return[]}}oe.prototype.loadSuggests=function(t){var e=t.trim();return e?this.api.get("queryMixedSuggestions",{q:e}):Promise.resolve({})},oe.prototype.loadRelevant=function(t,e,r,i){var s=e.trim();return s?this.api.get("relevant",{tabName:t,q:s,artistName:r,count:100,bmtc:3,submitted:i}).then((function(e){var r,i,n=function(t,e,r){switch(t){case"tracks":var i=e;return i.tracks?g(i.tracks,r):[];case"artists":return e.artists||[];case"albums":return e.albums||[];case"playlists":return e.playlists||[];default:return[]}}(t,e.section,e.albums);return{query:s,bestMatch:e.bestMatch&&(r=e.bestMatch,i=e.albums,{album:r.album,artist:r.artist,tracks:r.tracksPreview?g(r.tracksPreview,i):void 0}),counts:e.relevantCounts,results:h.of(n,e.section.chunk)}})):Promise.resolve(ae)},oe.prototype.loadResults=function(t,e,r,i){void 0===r&&(r=0),void 0===i&&(i=100);var s=e.trim();return s?this.api.get(t,{q:s,start:r,count:i}).then((function(e){return{query:s,bestMatch:e.bestMatch,counts:e.relevantCounts,results:e.chunk?h.of(ue(t,e),e.chunk):h.of([],{})}})):Promise.resolve(ae)},oe.prototype.loadHistory=function(){return this.api.get("searchHistory")},oe.prototype.removeQueryFromHistory=function(t){return this.api.get("removeSearchHistory",{query:t})};var ce=function(t){this.api=t};ce.prototype.load=function(){var t=this;return this.api.get("pop",{layout:!0,etag:this.state&&this.etag}).then((function(e){var r=e.blocks?function(t,e){return t.map((function(t){switch(t.type){case"history":case"similar_playlist_tracks":case"similar_artist_tracks":return{id:pe(),type:t.type,header:t.header,content:{tracks:g(t.content.tracks,e)}};case"top_tracks_list":return{id:pe(),type:t.type,header:t.header,content:{tuners:t.content.tuners,selected:"all",tracks:{all:h.of(g(t.content.tracks,e))}}};case"gift":return{id:pe(),type:t.type,header:t.header,content:Object.assign(Object.assign({},t.content),{track:m(t.content.track,e.find((function(e){return e.id===t.content.track.albumId})))})};case"pro":return t.content.items.forEach((function(t){t.startColor&&(t.startColor=function(t,e){void 0===e&&(e=.6);t.length>7&&(t=t.substring(0,t.length-2));var r=Math.round(255*e).toString(16).padStart(2,"0");return t+r}(t.startColor))})),t.id=pe(),t;default:return t.id=pe(),t}}))}(e.blocks,e.albums):[];return t.etag=e.etag,t.state={blocks:e.modified?r:t.state.blocks},t.state}))},ce.prototype.loadTracks=function(t){return this.api.get("popTracks",{tuner:t}).then((function(t){var e=t.tracks,r=t.albums;return h.of(g(e,r))}))},ce.prototype.loadTopTracksTab=function(t){void 0===t&&(t="all");var e=this.state.blocks.find((function(t){return"top_tracks_list"===t.type}));if(e){var r=e.content.tracks[t];return e.content.selected=t,r?Promise.resolve(r):this.loadTracks(t).then((function(r){return e.content.tracks[t]=r,r}))}return Promise.reject()},ce.prototype.hideSubscriptionBlock=function(){var t=this;return this.state.blocks=this.state.blocks.filter((function(t){return"subscription"!==t.type})),this.api.post("hideFeaturedBlock",{typeName:"subscription"}).then((function(){return t.state}))},ce.prototype.reset=function(){this.state=void 0,this.etag=void 0};var le=0;function pe(){return"showcase_"+le++}var de=function(t,e){this.store=t,this.api=e};de.prototype.fetch=function(t,e){return this.api.get("custom",{ids:t,plid:e}).then((function(t){var e=t.tracks[0];if(!e)throw s.default.success("music.api.error","track","error.notfound"),new Error("error.notfound");return m(e,t.albums[0])}))},de.prototype.fetchTrackText=function(t){var e=/\r\n|\r|\n/;return this.api.get("trackText",{tid:t}).then((function(t){var r;if(null==t?void 0:t.text)return Object.assign(Object.assign({},t),{text:null===(r=t.text)||void 0===r?void 0:r.split(e)})})).catch((function(){}))},de.prototype.fetchTrackTextWithTimeline=function(t){return this.api.get("trackText",{tid:t,timestamps:!0}).then((function(t){if(null==t?void 0:t.timestamps)return t})).catch((function(){}))},de.prototype.fetchSimilarTracks=function(t){return this.api.get("similarTracksByIds",{trackIds:t,count:100}).then((function(t){return{type:t.type,items:g(t.tracks,t.albums)}}))},de.prototype.loadTracks=function(t,e){return this.api.get("custom",{ids:t,plid:e||"track"}).then((function(t){return g(t.tracks,t.albums)}))},de.prototype.loadTrack=function(t){return this.api.get("track",{id:t}).then((function(t){return{track:m(t.track,t.albums),similarTracks:{type:t.type,items:g(t.tracks,t.albums)}}}))},de.prototype.add=function(t,e,r){var i=this,n=!0;Array.isArray(t)||("string"==typeof t.id&&(t.id=Number(t.id)),n="name"in t,t=[t]);var a=this.store.getState(),o=e?"playlists":"users",u=e?String(e):a.currentUser.id;return n&&this.store.dispatch({type:"tracks/add_tracks",branch:o,id:u,tracks:t}),this.api.post("like",{pid:e,ctx:t[0].ctx,tid:t.map((function(t){return t.id})).reverse().join(","),count:t.length,similarTracksCount:r}).then((function(t){var e=g(t.tracks,t.albums),r=t.similarTracks?g(t.similarTracks,t.albums):void 0;return function(t,e){t.forEach((function(t){e&&t.id===e.id&&(nt=!0),s.default.success(it,"like",JSON.stringify({trackId:t.id,ctx:t.ctx,releaseId:t.releaseId,startTimestamp:Date.now(),osType:st}))}))}(e,a.player.track),i.store.dispatch({type:"tracks/add_tracks",branch:o,id:u,tracks:e,images:t.images,totalTracks:t.totalTracks}),r}))},de.prototype.download=function(t){return this.api.get("isDownloaded",{tid:t}).then((function(t){if(t.isBought){var e=t.artist+"-"+t.title;return{title:e,isBought:!0,downloadUrl:q(t.downloadUrl)+"&fn="+encodeURIComponent(e)+".mp3"}}return t}))},Qt([Vt],de.prototype,"fetch",null),Qt([Vt],de.prototype,"fetchTrackText",null),Qt([Vt],de.prototype,"fetchTrackTextWithTimeline",null),Qt([Vt],de.prototype,"fetchSimilarTracks",null),Qt([Vt],de.prototype,"loadTrack",null);var he=function(t,e){this.api=t,this.showcase=e};he.prototype.load=function(t){return this.api.get("newbie",{count:100,marker:t})},he.prototype.select=function(t,e,r){return void 0===r&&(r=5),this.api.get("newbieSimilar",{artistId:t,marker:e,count:r})},he.prototype.submit=function(t){return this.showcase.reset(),this.api.post("newbieComplete",{artists:t.join(",")})};var fe=function(t,e){return Object.assign({type:t},e)},ye=function(t,e){return fe("upload/setError",{cid:t,error:e})},me=0,ve=function(t,e){this.store=t,this.api=e};ve.prototype.upload=function(t,e){var r=this,i=t.map((function(t){return{cid:me++,status:"uploading",file:t,pid:e}}));this.store.dispatch(function(t){return fe("upload/setUploads",{uploads:t})}(i)),i.forEach((function(t){return r.upload0(t)}))},ve.prototype.retry=function(t){var e=this.store.getState().uploads.get(t);this.store.dispatch(function(t){return fe("upload/setReset",{cid:t})}(t)),this.upload0(e)},ve.prototype.remove=function(t){this.store.dispatch(function(t){return fe("upload/setRemove",{cid:t})}(t))},ve.prototype.setCompleted=function(t,e,r,i){var s=this,n=Array.from(this.store.getState().uploads.values()).find((function(e){return e.uploadId===t}));n&&("failed"===e||"ERROR"===e?this.store.dispatch(ye(n.cid,new Error("processing"))):this.api.get("custom",{ids:r,plid:"track"}).then((function(t){var e;s.store.dispatch((e=n.cid,fe("upload/setFinish",{cid:e}))),s.remove(n.cid),s.store.dispatch({type:"tracks/add_uploaded_tracks",id:i?String(i):s.store.getState().currentUser.id,branch:i?"playlists":"users",tracks:g(t.tracks,t.albums)})})))},ve.prototype.upload0=function(t){var e=this,r=Date.now(),i=t.cid,n=t.file,a=t.pid;s.default.success("music.upload","start"),this.uploadTrack(i,n,a).catch((function(t){s.default.duration("music.upload.error",Date.now()-r,t),e.store.dispatch(ye(i,t))}))},ve.prototype.uploadTrack=function(t,e,r){var i=this,s=e.size;return s<5120?Promise.reject("limit_min"):s>157286400?Promise.reject("limit_max"):this.api.post("upload/init",{rnd:""+Date.now()+t}).then((function(s){var n=s.uploadId;return i.store.dispatch(function(t,e){return fe("upload/setUploadId",{cid:t,uploadId:e})}(t,n)),i.api.createURL("upload/chunked").then((function(s){return i.performUpload(e,s,t,n,r)}))}))},ve.prototype.performUpload=function(e,r,s,n,a){var o=this;return new Promise((function(u,c){new Promise((function(e,r){t(["FileAPI"],(function(t){e(i(t))}),r)})).then((function(t){t.upload({url:r,data:{uploadId:n,pid:a},files:{audio:e},chunkSize:1*t.MB,chunkUploadRetry:5,fileupload:function(e){return t.log("Start upload "+e.name)},progress:function(t){var e=Math.min(1,t.loaded/t.total);o.store.dispatch(function(t,e){return fe("upload/setProgress",{cid:t,progress:e})}(s,e))},filecomplete:function(e,r,i){e&&"OK"!==e?(t.log("Upload "+i.name+" failed with "+e),c(e)):(t.log("Upload "+i.name+" done"),u())}})}))}))};var ge=function(t){this.store=t};ge.prototype.updateSubscriptionStatus=function(){this.store.dispatch({type:"current_user/update_subscription_status",subscribed:!0})};var ke=function(t,e,r){this.store=t,this.api=e,this.users=r},be={userId:{configurable:!0}};be.userId.get=function(){return this.store.getState().currentUser.id},ke.prototype.loadExternal=function(t,e){return this.api.get("getExternalPlaylists",{socialProvider:"VK",redirect_uri:e,authCode:t})},ke.prototype.importExternalPlaylists=function(t,e){var r=this;return this.api.post("importExternalPlaylists",{statusId:t,payloads:e.join(",")}).then((function(t){return r.users.addExternalPlaylists(r.userId,t.playlists)}))},Object.defineProperties(ke.prototype,be);var Te=function(t,e,r,i,s,n,a,o,u,c,l){this.api=t,this.artists=e,this.albums=r,this.playlists=i,this.users=s,this.groups=n,this.collections=a,this.tracks=o,this.library=u,this.tuners=c,this.showcase=l};function we(t,e){return function(r,i){switch(r){case 10:return Oe(-26);case 14:return Oe(26,i);case 3:var s=t.getState().collections[i];return s&&s?Oe(26,String(s.playlist.playlistId)):Promise.reject();case 11:return Oe(20,i);case 27:return Oe(55,i);case 1:return e.fetch(Number(i)).then((function(t){if(t.albums){var e=t.albums[0];if(e)return Oe(1,String(e.id))}return Promise.reject()}));case 19:case 8:return Oe(r,i);default:return Promise.reject()}}}function Oe(t,e){return Promise.resolve({type:t,id:e})}Te.prototype.loadMore=function(t,e){switch(t){case 3:return this.collections.loadTracks(Number(e));case 4:return this.users.loadTracks(e);case 61:return this.groups.loadTracks(e);case 10:return this.library.loadTracks();case-26:return this.library.loadSimilarTracks();case 14:case 62:return this.playlists.loadTracks(Number(e));case 26:return this.playlists.loadSimilarTracks(Number(e));case 20:return this.artists.loadSimilarTracks(Number(e))}return Promise.reject("can-not-load")},Te.prototype.fetchTracks=function(t,e,r){switch(t){case 1:return this.albums.fetchTracks(Number(e),r);case 11:return this.artists.fetchTracks(Number(e),r);case 20:return this.artists.fetchSimilarTracks(Number(e));case 14:case 62:return this.playlists.fetchTracks(Number(e),r);case 26:return this.playlists.fetchSimilarTracks(Number(e));case 4:return this.users.fetchTracks(e,r);case 61:return this.groups.fetchTracks(e,r);case 3:return this.collections.fetchTracks(Number(e),r);case 10:return this.library.fetchTracks();case-26:return this.library.fetchSimilarTracks();case 27:return this.tracks.fetch(Number(e),r).then((function(t){return h.of([t])}));case-27:return this.tracks.loadTracks(e,r).then((function(t){return h.of(t)}));case 55:return this.tracks.fetchSimilarTracks(Number(e)).then((function(t){var e=t.items;return h.of(e)}));case 19:return this.tuners.loadTracks(e);case 8:return this.showcase.loadTracks(e);case 33:case 34:case 35:return this.api.get("chatpl",{start:e,before:100,count:100}).then((function(t){return h.of(g(t.tracks,t.albums))}));default:return Promise.reject("not-supported-playlist-type-"+t)}};var Ie=!1;return function(t){var e=new c,r=Lt(t),i=new Wt(e),s=new Bt(e),n=new Xt(r,e),a=new Zt(r,e),o=new $t(r,e),u=new de(r,e),l=new te(e),p=new se(e,r),d=new ie(e),h=new ce(e),f=new ee(r,e,n),y=new Yt(r,e,f,a),m=new oe(e),v=new he(e,h),g=new ve(r,e),k=new ge(r),b=new ke(r,e,n),T=new ft({userId:t,state:r.getState().player,api:e,playRadioInfoSupplier:p.playStation.bind(p),radioSupplier:p.getRadioStations.bind(p),queueFetcher:new Te(e,i,s,y,n,a,o,u,f,d,h),chooseNextPlaylist:we(r,s)});return T.subscribe(Dt(r)),{api:e,artists:i,albums:s,playlists:y,users:n,groups:a,collections:o,tracks:u,sharing:l,library:f,radio:p,tuners:d,showcase:h,search:m,newbie:v,player:T,uploads:g,currentUser:k,importing:b,init:function(){return function(t,e,r,i,s){return Ie?Promise.resolve():(Ie=!0,e.get("init",{start:0,count:100,activityCount:-1,groupRecCount:0,checkNewActivity:!0,withPlaylistsDynamicLoading:!0}).then((function(t){r.dispatch(Object.assign(Object.assign({type:"app/init"},t),{isRU:t.region.startsWith("RU")}));var e=t.lastPlayedStatus;e?i.restore(e.type,e.playlistId,e.trackId).catch((function(){return i.restore(8)})):i.restore(8)})).catch((function(){i.restore(8),s.updatePlaylists(),r.dispatch({type:"app/init",userId:t,subscribed:!1})})))}(t,e,r,T,f)},getState:function(){return r.getState()},subscribe:function(t){r.subscribe(t)}}}}));