Path: blob/main/projects/chill-radio/js/main.js
1836 views
// Made by 3kh01// https://github.com/3kh0/chill-radio23(this.webpackJsonpcoderadio = this.webpackJsonpcoderadio || []).push([4[0],5{688: function (t, e, a) {},789: function (t, e, a) {8"use strict";9a.r(e);10var n = a(3),11r = a.n(n),12i = a(51),13s = a.n(i),14o = a(92),15l = a(58),16c = a(18),17u = a(34),18d = a.n(u),19h = a(42),20p = a(25),21g = a(13),22f = a(14),23m = a(17),24b = a(16),25v = a(15),26y = a(52),27j = a.n(y),28O = a(53),29x = a(11),30S = a(43),31w = a.n(S),32C = a(23),33V = a(59),34k = a(1);35function _() {36var t = Object(n.useState)(!1),37e = Object(V.a)(t, 2),38a = e[0],39r = e[1];40return Object(k.jsxs)("nav", {41className: "site-nav" + (a ? " expand-nav" : ""),42id: "site-nav",43children: [44Object(k.jsx)("div", { className: "site-nav-left" }),45Object(k.jsx)("div", {46className: "site-nav-middle",47children: Object(k.jsx)("a", {48className: "site-nav-logo",49href: "/chill-radio",50children: Object(k.jsx)("img", { alt: "Chill Radio", src: "img/chill-logo.png" }),51}),52}),53Object(k.jsx)("div", {54className: "site-nav-right main-nav",55children: Object(k.jsx)("div", {56className: "main-nav-group",57children: Object(k.jsx)("ul", {58className: "nav" + (a ? " show-main-nav-items" : ""),59id: "nav",60children: [61{ href: "/", text: "Home" },62{ href: "https://github.com/3kh0/chill-radio", text: "GitHub" },63].map(function (t, e) {64return Object(k.jsx)("li", { children: Object(k.jsx)("a", { href: t.href, rel: "noopener noreferrer", target: "_blank", children: t.text }) }, e);65}),66}),67}),68}),69Object(k.jsx)("button", {70className: "site-nav-right toggle-button-nav" + (a ? " reverse-toggle-color" : ""),71id: "toggle-button-nav",72onClick: function () {73r(!a);74},75children: "Menu",76}),77],78});79}80var E,81T,82P = a(39),83N = (function (t) {84Object(b.a)(a, t);85var e = Object(v.a)(a);86function a(t) {87var n;88return (89Object(g.a)(this, a),90((n = e.call(this, t)).rafId = null),91(n.timerId = null),92(n.reset = function () {93n.rafId = null;94}),95(n.startDrawing = function () {96n.rafId || (n.rafId = window.requestAnimationFrame(n.drawingLoop));97}),98(n.stopDrawing = function () {99window.cancelAnimationFrame(n.rafId), clearTimeout(n.timerId);100}),101(n.drawingLoop = function () {102var t =1030 !==104n.state.eq.bands.reduce(function (t, e) {105return t + e;106}, 0);107n.updateEQBands(), n.drawVisualizer(), t ? (n.rafId = window.requestAnimationFrame(n.drawingLoop)) : (n.timerId = setTimeout(n.drawingLoop, 250));108}),109(n.handleVisibilityChange = function (t) {110n.setState({ isTabVisible: t });111}),112(n.state = { eq: {}, config: { baseColour: "rgb(10, 10, 35)", translucent: "rgba(10, 10, 35, 0.6)", multiplier: 0.7529 }, isTabVisible: !0 }),113n114);115}116return (117Object(f.a)(a, [118{119key: "componentDidUpdate",120value: function (t, e) {121var a = this;122(t.playing === this.props.playing && e.isTabVisible === this.state.isTabVisible) ||123(this.props.playing && this.state.isTabVisible124? (this.state.eq.context || this.initiateEQ(), this.createVisualizer(), this.startDrawing())125: setTimeout(function () {126a.stopDrawing(), a.reset();127}, 500));128},129},130{131key: "initiateEQ",132value: function () {133var t = this.state.eq,134e = window.AudioContext || window.webkitAudioContext;135(t.context = new e()),136(t.src = t.context.createMediaElementSource(this.props.player)),137(t.analyser = t.context.createAnalyser()),138t.src.connect(t.analyser),139t.analyser.connect(t.context.destination),140(t.analyser.fftSize = 256),141(t.bands = new Uint8Array(t.analyser.frequencyBinCount - 32)),142this.setState({ eq: t });143},144},145{146key: "updateEQBands",147value: function () {148var t = this.state.eq;149t.analyser.getByteFrequencyData(t.bands), this.setState({ eq: Object(c.a)({}, t) });150},151},152{153key: "createVisualizer",154value: function () {155(this._canvas.width = this._canvas.parentNode.offsetWidth),156(this._canvas.height = this._canvas.parentNode.offsetHeight),157(this.visualizer = { ctx: this._canvas.getContext("2d"), height: this._canvas.height, width: this._canvas.width, barWidth: this._canvas.width / this.state.eq.bands.length });158},159},160{161key: "drawVisualizer",162value: function () {163var t,164e = this,165a = 0;166this.visualizer.ctx.clearRect(0, 0, this.visualizer.width, this.visualizer.height),167this.visualizer.ctx.beginPath(),168this.visualizer.ctx.moveTo(a, 0),169(this.visualizer.ctx.fillStyle = this.state.config.translucent),170this.state.eq.bands.forEach(function (n) {171(t = e.state.config.multiplier * n), e.visualizer.ctx.lineTo(a, t), e.visualizer.ctx.lineTo(a + e.visualizer.barWidth, t), (a += e.visualizer.barWidth);172}),173this.visualizer.ctx.lineTo(a, 0),174this.visualizer.ctx.fill();175},176},177{178key: "render",179value: function () {180var t = this;181return Object(k.jsx)(P.a, {182onChange: this.handleVisibilityChange,183children: Object(k.jsx)("div", {184className: "visualizer",185children: Object(k.jsx)("canvas", {186"aria-label": "visualizer",187ref: function (e) {188return (t._canvas = e);189},190}),191}),192});193},194},195]),196a197);198})(r.a.PureComponent),199I = function (t) {200return Object(k.jsxs)("main", {201children: [202Object(k.jsxs)("div", {203className: "under-header-content",204children: [Object(k.jsx)("h1", { className: "site-title", children: "Welcome to Chill Radio." }), Object(k.jsx)("h2", { className: "site-description", children: "24/7 music designed for studying/reading/relaxing." })],205}),206C.isBrowser &&207Object(k.jsxs)(k.Fragment, {208children: [209Object(k.jsx)("div", { className: "animation" }),210Object(k.jsx)(N, { player: t.player, playing: t.playing }),211Object(k.jsxs)("details", {212children: [213Object(k.jsx)("summary", { children: "Keyboard Controls" }),214Object(k.jsxs)("dl", {215children: [216Object(k.jsx)("dt", { children: "Play/Pause:" }),217Object(k.jsx)("dd", { children: 'Spacebar or "k"' }),218Object(k.jsx)("dt", { children: "Volume:" }),219Object(k.jsx)("dd", { children: "Up Arrow / Down Arrow" }),220],221}),222],223}),224],225}),226],227});228},229L = function (t) {230return Object(k.jsxs)("div", {231className: t.playing ? "meta-display thumb meta-display-visible" : "meta-display thumb",232children: [233Object(k.jsx)("img", { alt: "album art", "data-meta": "picture", src: t.fastConnection ? t.currentSong.art : "img/cover_placeholder.gif" }),234Object(k.jsxs)("div", {235className: "now-playing",236children: [237Object(k.jsx)("div", { className: "progress-container", children: Object(k.jsx)("progress", { "data-meta": "duration", max: t.songDuration, value: t.progressVal }) }),238Object(k.jsx)("div", { "data-meta": "title", children: t.currentSong.title }),239Object(k.jsx)("div", { "data-meta": "artist", children: t.currentSong.artist }),240Object(k.jsx)("div", { "data-meta": "album", children: t.currentSong.album }),241Object(k.jsxs)("div", { "data-meta": "listeners", children: ["Listeners: ", t.listeners] }),242t.mountOptions,243],244}),245],246});247},248M = function (t) {249var e = t.currentVolume,250a = t.setTargetVolume,251n = 100 * e;252return Object(k.jsx)("div", {253className: "slider-container",254children: Object(k.jsx)("input", {255"aria-label": "slider",256className: "slider",257max: 100,258min: "0",259onChange: function (t) {260var e = t.target.value;261a(e / 100);262},263type: "range",264value: n,265}),266});267},268D = ["title", "titleId"];269function A() {270return (A =271Object.assign ||272function (t) {273for (var e = 1; e < arguments.length; e++) {274var a = arguments[e];275for (var n in a) Object.prototype.hasOwnProperty.call(a, n) && (t[n] = a[n]);276}277return t;278}).apply(this, arguments);279}280function U(t, e) {281if (null == t) return {};282var a,283n,284r = (function (t, e) {285if (null == t) return {};286var a,287n,288r = {},289i = Object.keys(t);290for (n = 0; n < i.length; n++) (a = i[n]), e.indexOf(a) >= 0 || (r[a] = t[a]);291return r;292})(t, e);293if (Object.getOwnPropertySymbols) {294var i = Object.getOwnPropertySymbols(t);295for (n = 0; n < i.length; n++) (a = i[n]), e.indexOf(a) >= 0 || (Object.prototype.propertyIsEnumerable.call(t, a) && (r[a] = t[a]));296}297return r;298}299function F(t, e) {300var a = t.title,301r = t.titleId,302i = U(t, D);303return n.createElement(304"svg",305A({ viewBox: "0 0 640 640", fill: "currentColor", ref: e, "aria-labelledby": r }, i),306void 0 === a ? n.createElement("title", { id: r }, "Pause Button") : a ? n.createElement("title", { id: r }, a) : null,307E || (E = n.createElement("path", { d: "M0 0L235.67 0L235.67 640L0 640L0 0Z" })),308T || (T = n.createElement("path", { d: "M404.33 0L640 0L640 640L404.33 640L404.33 0Z" }))309);310}311var z,312R = n.forwardRef(F),313q = (a.p, ["title", "titleId"]);314function B() {315return (B =316Object.assign ||317function (t) {318for (var e = 1; e < arguments.length; e++) {319var a = arguments[e];320for (var n in a) Object.prototype.hasOwnProperty.call(a, n) && (t[n] = a[n]);321}322return t;323}).apply(this, arguments);324}325function H(t, e) {326if (null == t) return {};327var a,328n,329r = (function (t, e) {330if (null == t) return {};331var a,332n,333r = {},334i = Object.keys(t);335for (n = 0; n < i.length; n++) (a = i[n]), e.indexOf(a) >= 0 || (r[a] = t[a]);336return r;337})(t, e);338if (Object.getOwnPropertySymbols) {339var i = Object.getOwnPropertySymbols(t);340for (n = 0; n < i.length; n++) (a = i[n]), e.indexOf(a) >= 0 || (Object.prototype.propertyIsEnumerable.call(t, a) && (r[a] = t[a]));341}342return r;343}344function K(t, e) {345var a = t.title,346r = t.titleId,347i = H(t, q);348return n.createElement(349"svg",350B({ viewBox: "0 0 640 640", fill: "#fff", ref: e, "aria-labelledby": r }, i),351void 0 === a ? n.createElement("title", { id: r }, "Play Button") : a ? n.createElement("title", { id: r }, a) : null,352z || (z = n.createElement("path", { d: "M0 0L649.1 320L0 640L0 0Z" }))353);354}355var W = n.forwardRef(K),356G =357(a.p,358(function (t) {359Object(b.a)(a, t);360var e = Object(v.a)(a);361function a() {362var t;363Object(g.a)(this, a);364for (var n = arguments.length, r = new Array(n), i = 0; i < n; i++) r[i] = arguments[i];365return (366((t = e.call.apply(e, [this].concat(r))).state = { initialLoad: !0 }),367(t.handleOnClick = function () {368return C.isBrowser && t.props.togglePlay();369}),370(t.handleOnTouchEnd = function () {371return !C.isBrowser && t.props.togglePlay();372}),373(t.handleKeyDown = function (e) {37413 === e.keyCode && t.handleOnClick();375}),376t377);378}379return (380Object(f.a)(381a,382[383{384key: "render",385value: function () {386return Object(k.jsx)("button", {387"aria-label": this.props.playing ? "Pause" : "Play",388className: this.state.initialLoad ? "play-container-cta play-container" : "play-container",389id: "playContainer",390onClick: this.handleOnClick,391onKeyDown: this.handleKeyDown,392onTouchEnd: this.handleOnTouchEnd,393children: this.props.playing ? Object(k.jsx)(R, {}) : Object(k.jsx)(W, {}),394});395},396},397],398[399{400key: "getDerivedStateFromProps",401value: function (t, e) {402return e.initialLoad && t.playing ? { initialLoad: !1 } : null;403},404},405]406),407a408);409})(r.a.Component)),410Q = a(54),411J = a(55),412Y = (function (t) {413Object(b.a)(a, t);414var e = Object(v.a)(a);415function a(t) {416var n;417return (418Object(g.a)(this, a),419((n = e.call(this, t)).toggleDisplay = function () {420n.setState({ displayList: !n.state.displayList });421}),422(n.state = { displayList: !1 }),423n424);425}426return (427Object(f.a)(a, [428{429key: "render",430value: function () {431var t = this.props,432e = t.songHistory,433a = t.fastConnection,434n = e435.map(function (t) {436return t.song;437})438.reverse();439return Object(k.jsxs)("button", {440"aria-label": "Recent Song History",441className: "recent-song-history",442onClick: this.toggleDisplay,443children: [444this.state.displayList &&445Object(k.jsx)("div", {446className: "recent-song-list",447children: n.map(function (t) {448return Object(k.jsxs)(449"div",450{451className: "recent-song-info",452children: [453Object(k.jsx)("img", { alt: "", role: "presentation", src: a ? t.art : "img/cover_placeholder.gif" }),454Object(k.jsxs)("div", {455className: "recent-song-meta",456children: [Object(k.jsx)("p", { children: t.title }), Object(k.jsxs)("p", { children: [" ", t.artist] }), Object(k.jsxs)("p", { children: [" ", t.album] })],457}),458],459},460t.id461);462}),463}),464Object(k.jsx)(Q.a, { className: "recently-played-icon", icon: J.a }),465],466});467},468},469]),470a471);472})(n.Component),473Z = (function (t) {474Object(b.a)(a, t);475var e = Object(v.a)(a);476function a(t) {477var n;478return (479Object(g.a)(this, a),480((n = e.call(this, t)).handleVisibilityChange = function (t) {481n.setState({ isTabVisible: t }, function () {482n.toggleInterval();483});484}),485(n.state = { progressVal: 0, currentSong: {}, progressInterval: null, alternativeMounts: null, isTabVisible: !0 }),486(n.updateProgress = n.updateProgress.bind(Object(m.a)(n))),487n488);489}490return (491Object(f.a)(a, [492{493key: "componentDidUpdate",494value: function (t) {495this.state.currentSong.id !== t.currentSong.id && this.props.songStartedAt && this.props.playing496? (this.setState({ currentSong: this.props.currentSong, alternativeMounts: [].concat(this.props.remotes, this.props.mounts) }), this.toggleInterval())497: t.playing !== this.props.playing && this.toggleInterval();498},499},500{501key: "startInterval",502value: function () {503this.stopCurrentInterval(), this.setState({ progressInterval: setInterval(this.updateProgress, 100) });504},505},506{507key: "stopCurrentInterval",508value: function () {509this.state.progressInterval && clearInterval(this.state.progressInterval);510},511},512{513key: "toggleInterval",514value: function () {515this.props.playing && this.state.isTabVisible ? this.startInterval() : this.stopCurrentInterval();516},517},518{519key: "updateProgress",520value: function () {521var t = parseInt(((new Date().valueOf() - this.props.songStartedAt) / 1e3).toFixed(2), 10);522this.setState({ progressVal: t });523},524},525{526key: "handleChange",527value: function (t) {528var e = t.target.value;529this.props.setUrl(e);530},531},532{533key: "getMountOptions",534value: function () {535var t = "",536e = this.state.alternativeMounts;537return (538e &&539this.props.url &&540(t = Object(k.jsx)("select", {541"aria-label": "Select Stream",542"data-meta": "stream-select",543onChange: this.handleChange.bind(this),544value: this.props.url,545children: e.map(function (t, e) {546return Object(k.jsx)("option", { value: t.url, children: t.name }, e);547}),548})),549t550);551},552},553{554key: "render",555value: function () {556var t = this.state,557e = t.progressVal,558a = t.currentSong,559n = t.isTabVisible,560r = this.props,561i = r.playing,562s = r.songDuration,563o = r.togglePlay,564l = r.currentVolume,565c = r.setTargetVolume,566u = r.listeners,567d = r.fastConnection;568return Object(k.jsx)(P.a, {569onChange: this.handleVisibilityChange,570children: Object(k.jsxs)("footer", {571children: [572n && Object(k.jsx)(Y, { songHistory: this.props.songHistory, fastConnection: d }),573Object(k.jsx)(L, { currentSong: a, progressVal: e, fastConnection: d, listeners: u, mountOptions: this.getMountOptions(), playing: i, songDuration: s }),574Object(k.jsx)(G, { playing: i, togglePlay: o }),575Object(k.jsx)(M, { currentVolume: l, setTargetVolume: c }),576],577}),578});579},580},581]),582a583);584})(r.a.PureComponent),585X = (a(88), new j.a("wss://coderadio-admin.freecodecamp.org/api/live/nowplaying/coderadio")),586$ = "coderadio-volume";587X.on("error", function (t, e) {588x.a({ message: "Error! NchanSubscriber error: " + e }), x.b(t);589});590var tt = (function (t) {591Object(b.a)(a, t);592var e = Object(v.a)(a);593function a(t) {594var n;595return (596Object(g.a)(this, a),597((n = e.call(this, t)).sortStreams = function (t) {598var e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],599a = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];600if (a) {601var n = t.map(function (t) {602return t.bitrate;603}),604r = Math.max.apply(Math, Object(p.a)(n));605return t606.filter(function (t) {607return e ? t.bitrate !== r : t.bitrate === r;608})609.sort(function () {610return Math.random() - 0.5;611});612}613return t.sort(function (t, a) {614if (e) {615if (parseFloat(t.bitrate) < parseFloat(a.bitrate)) return -1;616if (parseFloat(t.bitrate) > parseFloat(a.bitrate)) return 1;617} else {618if (parseFloat(t.bitrate) < parseFloat(a.bitrate)) return 1;619if (parseFloat(t.bitrate) > parseFloat(a.bitrate)) return -1;620}621return t.listeners.current < a.listeners.current ? -1 : t.listeners.current > a.listeners.current ? 1 : 0;622});623}),624(n.getStreamUrl = function (t, e) {625return n.sortStreams(t, e, !0)[0].url;626}),627(n.increaseVolume = function () {628return n.setTargetVolume(Math.min(n.state.audioConfig.maxVolume + n.state.audioConfig.volumeSteps, 1));629}),630(n.decreaseVolume = function () {631return n.setTargetVolume(Math.max(n.state.audioConfig.maxVolume - n.state.audioConfig.volumeSteps, 0));632}),633(n.onPlayerError = Object(h.a)(634d.a.mark(function t() {635var e, a, r, i, s, o, l, c, u, h;636return d.a.wrap(function (t) {637for (;;)638switch ((t.prev = t.next)) {639case 0:640if (n.state.playing || n._player.src) {641t.next = 2;642break;643}644return t.abrupt("return");645case 2:646if (647((e = n.state),648(a = e.mounts),649(r = e.remotes),650(i = e.erroredStreams),651(s = e.url),652(o = n.sortStreams([].concat(Object(p.a)(r), Object(p.a)(a)))),653(l = o.find(function (t) {654return t.url === s;655})),656(c = i.some(function (t) {657return t.url === s;658})),659(u = c ? i : [].concat(Object(p.a)(i), [l])).length !== o.length)660) {661t.next = 11;662break;663}664return (t.next = 10), n.pause();665case 10:666return t.abrupt("return");667case 11:668(h = o669.filter(function (t) {670return !u.some(function (e) {671return e.url === t.url;672});673})674.map(function (t) {675return t.url;676})),677c678? n.setUrl(h[0])679: n.setState({ erroredStreams: u }, function () {680return n.setUrl(h[0]);681});682case 13:683case "end":684return t.stop();685}686}, t);687})688)),689(n.state = {690config: { metadataTimer: 1e3 },691fastConnection: !!navigator.connection && navigator.connection.downlink > 1.5,692eq: {},693visualizer: {},694audioConfig: { targetVolume: 0, maxVolume: 0.5, volumeSteps: 0.01, currentVolume: 0.5, volumeTransitionSpeed: 10 },695url: "",696mounts: [],697remotes: [],698playing: null,699captions: null,700pausing: null,701pullMeta: !1,702erroredStreams: [],703currentSong: {},704songStartedAt: 0,705songDuration: 0,706listeners: 0,707songHistory: [],708}),709(n.keyMap = { TOGGLE_PLAY: ["space", "k"], INCREASE_VOLUME: "up", DECREASE_VOLUME: "down" }),710(n.handlers = {711TOGGLE_PLAY: function () {712return n.togglePlay();713},714INCREASE_VOLUME: function () {715return n.increaseVolume();716},717DECREASE_VOLUME: function () {718return n.decreaseVolume();719},720}),721(n.togglePlay = n.togglePlay.bind(Object(m.a)(n))),722(n.setUrl = n.setUrl.bind(Object(m.a)(n))),723(n.setTargetVolume = n.setTargetVolume.bind(Object(m.a)(n))),724(n.getNowPlaying = n.getNowPlaying.bind(Object(m.a)(n))),725(n.updateVolume = n.updateVolume.bind(Object(m.a)(n))),726n727);728}729return (730Object(f.a)(a, [731{732key: "setPlayerInitial",733value: function () {734var t = this,735e = w.a.get($) || this.state.audioConfig.maxVolume;736this.setState({ audioConfig: Object(c.a)(Object(c.a)({}, this.state.audioConfig), {}, { maxVolume: e, currentVolume: e }) }, function () {737t._player.volume = e;738});739},740},741{742key: "componentDidMount",743value: function () {744this.setPlayerInitial(), this.getNowPlaying();745},746},747{748key: "setUrl",749value: (function () {750var t = Object(h.a)(751d.a.mark(function t() {752var e,753a = arguments;754return d.a.wrap(755function (t) {756for (;;)757switch ((t.prev = t.next)) {758case 0:759if ((e = a.length > 0 && void 0 !== a[0] && a[0])) {760t.next = 3;761break;762}763return t.abrupt("return");764case 3:765if (!this.state.playing) {766t.next = 6;767break;768}769return (t.next = 6), this.pause();770case 6:771(this._player.src = e), this.setState({ url: e }), null !== this.state.playing && this.play();772case 9:773case "end":774return t.stop();775}776},777t,778this779);780})781);782return function () {783return t.apply(this, arguments);784};785})(),786},787{788key: "play",789value: function () {790var t = this,791e = this.state,792a = e.mounts,793n = e.remotes;794e.playing ||795(X.running || X.start(),796Array.from([].concat(Object(p.a)(a), Object(p.a)(n)), function (t) {797return t.url;798}).includes(this._player.src) || ((this._player.src = this.state.url), this._player.load()),799(this._player.volume = 0),800this._player.play().then(function () {801t.setState(function (t) {802return { audioConfig: Object(c.a)(Object(c.a)({}, t.audioConfig), {}, { currentVolume: 0 }), playing: !0, pullMeta: !0 };803}),804t.fadeUp();805}));806},807},808{809key: "pause",810value: function () {811var t = this;812return this.state.playing813? new Promise(function (e) {814t._player.pause(),815t._player.load(),816t.setState({ playing: !1, pausing: !1 }, function () {817X.stop(), e();818});819})820: Promise.resolve();821},822},823{824key: "togglePlay",825value: function () {826this._player.src && (this.state.playing ? this.fadeDown() : this.play());827},828},829{830key: "setTargetVolume",831value: function (t) {832var e = Object(c.a)({}, this.state.audioConfig),833a = parseFloat(Math.max(0, Math.min(1, t).toFixed(2)));834(e.maxVolume = a),835(e.currentVolume = a),836(this._player.volume = e.maxVolume),837this.setState({ audioConfig: e }, function () {838w.a.set($, a);839});840},841},842{843key: "fade",844value: function (t) {845var e = Object(c.a)({}, this.state.audioConfig);846(e.targetVolume = "up" === t.toLowerCase() ? this.state.audioConfig.maxVolume : 0), this.setState({ audioConfig: e, pausing: "down" === t }, this.updateVolume);847},848},849{850key: "fadeUp",851value: function () {852this.fade("up");853},854},855{856key: "fadeDown",857value: function () {858this.fade("down");859},860},861{862key: "updateVolume",863value: function () {864if (parseFloat(this._player.volume.toFixed(2)) === this.state.audioConfig.targetVolume || C.isIOS) 0 === this.state.audioConfig.targetVolume && this.state.pausing && this.pause();865else {866var t = Math.min(this.state.audioConfig.volumeSteps, Math.abs(this.state.audioConfig.targetVolume - this._player.volume)),867e = this.state.audioConfig.targetVolume > this._player.volume ? t : -t;868this._player.volume += e;869var a = this.state.audioConfig;870(a.currentVolume += e), this.setState({ audioConfig: a }), setTimeout(this.updateVolume, this.state.audioConfig.volumeTransitionSpeed);871}872},873},874{875key: "setMountToConnection",876value: function () {877var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],878e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [],879a = null;880(a =881!1 === this.state.fastConnection && e.length > 0882? this.getStreamUrl(e, !0)883: this.state.fastConnection && e.length > 0884? this.getStreamUrl(e)885: !1 === this.state.fastConnection886? this.getStreamUrl(t, !0)887: this.getStreamUrl(t)),888(this._player.src = a),889this.setState({ url: a });890},891},892{893key: "getNowPlaying",894value: function () {895var t = this;896X.on("message", function (e) {897var a = JSON.parse(e);898"" === t.state.url && (t.setState({ mounts: a.station.mounts, remotes: a.station.remotes }), t.setMountToConnection(a.station.mounts, a.station.remotes)),899t.state.listeners !== a.listeners.current && t.setState({ listeners: a.listeners.current }),900(a.now_playing.song.id !== t.state.currentSong.id || t.state.pullMeta) &&901t.setState({ currentSong: a.now_playing.song, songStartedAt: 1e3 * a.now_playing.played_at, songDuration: a.now_playing.duration, pullMeta: !1, songHistory: a.song_history });902}),903(X.reconnectTimeout = this.state.config.metadataTimer),904X.start();905},906},907{908key: "render",909value: function () {910var t = this;911return Object(k.jsx)(O.GlobalHotKeys, {912handlers: this.handlers,913keyMap: this.keyMap,914children: Object(k.jsxs)("div", {915className: "App",916children: [917Object(k.jsx)(_, {}),918Object(k.jsx)(I, { fastConnection: this.state.fastConnection, player: this._player, playing: this.state.playing }),919Object(k.jsx)("audio", {920"aria-label": "audio",921crossOrigin: "anonymous",922onError: this.onPlayerError,923ref: function (e) {924return (t._player = e);925},926children: Object(k.jsx)("track", Object(c.a)({ kind: "captions" }, this.state.captions)),927}),928Object(k.jsx)(Z, {929currentSong: this.state.currentSong,930currentVolume: this.state.audioConfig.currentVolume,931fastConnection: this.state.fastConnection,932listeners: this.state.listeners,933mounts: this.state.mounts,934playing: this.state.playing,935remotes: this.state.remotes,936setTargetVolume: this.setTargetVolume,937setUrl: this.setUrl,938songDuration: this.state.songDuration,939songHistory: this.state.songHistory,940songStartedAt: this.state.songStartedAt,941togglePlay: this.togglePlay,942url: this.state.url,943}),944],945}),946});947},948},949]),950a951);952})(r.a.Component);953o.a({954dsn: Object({ NODE_ENV: "production", PUBLIC_URL: "", WDS_SOCKET_HOST: void 0, WDS_SOCKET_PATH: void 0, WDS_SOCKET_PORT: void 0, FAST_REFRESH: !0 }).REACT_APP_SENTRY_DSN,955integrations: [new l.a.BrowserTracing()],956tracesSampleRate: 1,957}),958s.a.render(Object(k.jsx)(tt, {}), document.getElementById("root"));959},960},961[[89, 1, 2]],962]);963964965