1<!DOCTYPE html><!-- jstl version --> 2<html lang="en"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5<meta http-equiv="X-UA-Compatible" content="IE=edge;" /> 6 7<meta name="author" content="LiveOne, Inc." /> 8<meta name="copyright" content="Copyright ©2026 LiveOne, Inc., All Rights Reserved" /> 9<meta name="classification" content="Live Video" /> 10 11<link rel="canonical" href="https://www.liveone.com" /> 12<meta name="twitter:site" content="@livexlive" /> 13<meta name="twitter:text:title" content='LiveOne - Get the App'/> 14<meta name="twitter:title" content="LiveOne"/> 15<meta name="twitter:image" content="https://cdn.liveone.com/s=4.0.1400/images/logos/LXL-Logo-Color-Social.png"/> 16<meta name="twitter:description" content="The LiveOne app is available for your phone, tablet and TV. Download the app for iPhone, iPad, iPod, AppleTV, Android Phone, Android Tablets, Roku and Amazon fireTV."/> 17 18<meta name="twitter:card" content="app" /> 19 <meta name="twitter:app:id:googleplay" content="com.slacker.radio"/> 20<meta name="twitter:app:name:googleplay" content="LiveOne - Music, Podcasts and more" /> 21<meta name="twitter:app:name:iphone" content="LiveOne - Music, Podcasts and more" /> 22<meta name="twitter:app:id:iphone" content="id298307011"/> 23<meta name="twitter:app:id:ipad" content="id298307011"/> 24 25<meta property="fb:app_id" content="415880008836221" /> 26<meta property="og:site_name" content="LiveOne"/> 27<meta property="og:title" content='LiveOne - Get the App'/> 28<meta property="og:type" content="website" /> 29<meta property="og:url" content="https://www.liveone.com" /> 30 31<meta property="og:image" content="https://cdn.liveone.com/s=4.0.1400/images/logos/social-meta-logo.png"/> 32 <meta property="og:description" content="The LiveOne app is available for your phone, tablet and TV. Download the app for iPhone, iPad, iPod, AppleTV, Android Phone, Android Tablets, Roku and Amazon fireTV."/> 33<meta name="description" content="The LiveOne app is available for your phone, tablet and TV. Download the app for iPhone, iPad, iPod, AppleTV, Android Phone, Android Tablets, Roku and Amazon fireTV." /> 34<meta name="keywords" content="LiveLive, LiveOne App, Phone App, Tablet App, TV App, iOS, Android, Roku, fireTV, iOS App, Android App, Roku App, TVOS App, fireTV App, Amazon fireTV" /> 35 36<meta name="apple-mobile-web-app-capable" content="yes" /> 37<meta name="apple-mobile-web-app-status-bar-style" content="black" /> 38<meta name="apple-itunes-app" content="app-id=298307011, app-argument=&" /> 39 40 41<meta property="al:ios:app_store_id" content="298307011" /> 42<meta property="al:ios:app_name" content="LiveOne - Music, Podcasts and more" /> 43 44 45<meta property="al:android:package" content="com.slacker.radio" /> 46<meta property="al:android:app_name" content="LiveOne - Music, Podcasts and more" /> 47 48 49<meta name="viewport" content="user-scalable=yes, width=device-width, initial-scale=1.0, maximum-scale=2.0" /> 50 51<link rel="shortcut icon" href="//cdn.liveone.com/s=4.0.1400/images/icons/browser/favicon.ico" > 52<link rel="apple-touch-icon" href="//cdn.liveone.com/s=4.0.1400/images/icons/browser/apple-touch-icon.png"> 53<link rel="icon" type="image/png" sizes="150x150" href="//cdn.liveone.com/s=4.0.1400/images/icons/browser/favicon-150x150.png"> 54<link rel="icon" type="image/png" sizes="72x72" href="//cdn.liveone.com/s=4.0.1400/images/icons/browser/favicon-72x72.png"> 55<link rel="icon" type="image/png" sizes="32x32" href="//cdn.liveone.com/s=4.0.1400/images/icons/browser/favicon-32x32.png"> 56<link rel="icon" type="image/png" sizes="16x16" href="//cdn.liveone.com/s=4.0.1400/images/icons/browser/favicon-16x16.png"> 57 58<link rel="search" href="/opensearch.config" type="application/opensearchdescription+xml" title="LiveOne"/> 59
60<script type="application/ld+json"> 61 { 62 "@context": "http://schema.org", 63 "@type": "EntertainmentBusiness", 64 "image": [ 65 "https://www.liveone.com/images/logos/lxl-tv-splash.jp", 66 "https://www.liveone.com/images/icons/browser/mstile-150x150.png" 67 ], 68 "@id": "https://www.liveone.com", 69 "name": "LiveOne", 70 "address": { 71 "@type": "PostalAddress", 72 "streetAddress": "269 SOUTH BEVERLY DRIVE, SUITE 1450", 73 "addressLocality": "BEVERLY HILLS", 74 "addressRegion": "CA", 75 "postalCode": "90212", 76 "addressCountry": "US" 77 }, 78 "priceRange" : "$", 79 "url": "https://www.liveone.com", 80 "logo": "https://www.liveone.com/images/logos/lxl-logo-splash.png", 81 "telephone": "+13106012500" 82 } 83</script>
83 84 85<title>LiveOne - Get the App</title> 86<link rel="stylesheet" type="text/css" href="//cdn.liveone.com/s=4.0.1400/css/main.css" /> 87<link rel="stylesheet" type="text/css" href="//cdn.liveone.com/s=4.0.1400/css/lib-concat.css" />
88<script> 89 window['__onGCastApiAvailable'] = function (isAvailable) { 90 console.info('ChromeCast:: Google Cast Framework API availability check:', isAvailable); 91 if (isAvailable) { 92 console.info('ChromeCast:: Google Cast Framework successfully loaded and ready'); 93 window.castAvailable = true; 94 } else { 95 console.warn('ChromeCast:: Google Cast Framework not available - casting disabled'); 96 window.castAvailable = false; 97 } 98 }; 99</script>
99 100 101<link rel="preload" as="image" type="image/svg+xml" href="/s=4.0.1400/images/logos/lxl-logo-white.svg"> 102
103<script defer src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1"></script>
103 104 105<!-- Google Tag Manager -->
106<script>
vendor: 331 bytes, lines 106-111
106 107(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 108new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 109j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 110'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 111})(window,document,'script','gtmDataLayer','
111GTM-WXLMFHR
vendor: 3 bytes, line 111
111');
111</script>
111 112<!-- End Google Tag Manager --> 113 114
115<script defer src="https://www.googleoptimize.com/optimize.js?id=OPT-K96QLVN"></script>
vendor: 1 bytes, line 115
115
116<script defer type="text/javascript" src="//cdn.embed.ly/player-0.1.0.min.js"></script>
116 117
118<script type="text/javascript"> 119 // Truly global vars for window scope 120 window.APP_ENV='prd'; // DO NOT CHANGE THE SPACING OF THIS...IT'S USED BY THE BUILD SYSTEM! 121 window.BEACON_SERVER = 'null'; 122 window.IMG_CDN_AND_BUILD = "//cdn.liveone.com/s=4.0.1400"; 123 124 125 window.jsonData = null; 126 127 128 window.onbeforeunload = function() { 129 if (APP && APP.onUnload) { 130 APP.onUnload.bind(APP.appImplementationModule)(); 131 } 132 try { 133 let context = cast.framework.CastContext.getInstance(); 134 context.getCurrentSession().endSession(true); 135 } catch (error) { 136 // don't care 137 } 138 return null; 139 }; 140 141</script>
141 142
143<script> 144 //GPC 145 // This will cover cases where it is set to null or set. 146 // In the case of older user agents, it should not be assumed that the lack of a signal is equivalent to permission to sell. 147 window.GPC = (function() { 148 let _optOut = "" 149 let _optOutInternal = false //should be set from slackerUser.policy.privacy['personalized-ads'].enabled 150 151 let _uspFramework = () => ({ //do not change field keys or order for USP V1 152 version: 1, 153 notice: 'Y', 154 optOut: _optOutAny(), 155 // You will have other things 156 // besides GPC that are likely to 157 // set this value. 158 lspa: '-' //todo: if we sign the lspa this will need to change to 'Y' 159 }) 160 161 const _getUspString = () => Object.values(_uspFramework()).reduce((a, c) => {return a + c}, '') // Will return a USP string like `1YYY` 162 163 const _uspapi = (command, version, callback) => { 164 if (command === 'getUSPData' && version === 1) { 165 callback(_getUspString(), true) 166 } 167 } 168 169 const _optOutAny = () => _optOut === 'Y' ? _optOut : (_optOutInternal ? 'Y' : 'N') 170 171 const _init = () => { 172 if (navigator.globalPrivacyControl) { 173 switch (navigator.globalPrivacyControl) { 174 case 1: 175 case "1": 176 case true: 177 case "true": 178 // Y indicates the user has selected opt out 179 _optOut = 'Y'; 180 break; 181 default: 182 // N indicates the user has not selected to opt out 183 _optOut = 'N'; 184 } 185 window.__uspapi = _uspapi 186 } else { 187 // Standard logic for handling CCPA without the navigator.globalPrivacyControl setting. 188 } 189 } 190 191 _init() 192 193 return { 194 setInternalOptOut: (optOut) => _optOutInternal = optOut, 195 getUspString : _getUspString, 196 optOut: (type='any') => { 197 return { 198 'any' : _optOutAny() === 'Y', // GPC OR user-policy 199 'internal_only' : _optOutInternal, // just user-policy 200 'gpc_only' : _optOut === 'Y', // just GPC (browser or browser extension) 201 }[type] 202 } 203 } 204 })() 205</script>
205 206 207<style> 208 /* Initial CSS required before dynamic load */ 209 @keyframes siteloaded-fade { 210 from {opacity: 1;} 211 to {opacity: 0;} 212 } 213 @-webkit-keyframes siteloaded-fade { 214 from {opacity: 1;} 215 to {opacity: 0;} 216 } 217 218 @keyframes siteloaded-done { 219 from {height: 100%;} 220 to {height: 0;} 221 } 222 @-webkit-keyframes siteloaded-done { 223 from {height: 100%;} 224 to {height: 0;} 225 } 226 @-webkit-keyframes loader-eq-a { 227 0%, 100% { 228 -webkit-transform: scaleY(0.30); 229 transform: scaleY(0.30); 230 } 231 45% { 232 -webkit-transform: scaleY(1); 233 transform: scaleY(1); 234 } 235 } 236 @keyframes loader-eq-a { 237 0%, 100% { 238 -webkit-transform: scaleY(0.30); 239 transform: scaleY(0.30); 240 } 241 45% { 242 -webkit-transform: scaleY(1); 243 transform: scaleY(1); 244 } 245 } 246 @-webkit-keyframes loader-eq-b { 247 0%, 100% { 248 -webkit-transform: scaleY(0.55); 249 transform: scaleY(0.55); 250 } 251 50% { 252 -webkit-transform: scaleY(0.80); 253 transform: scaleY(0.80); 254 } 255 } 256 @keyframes loader-eq-b { 257 0%, 100% { 258 -webkit-transform: scaleY(0.55); 259 transform: scaleY(0.55); 260 } 261 50% { 262 -webkit-transform: scaleY(0.80); 263 transform: scaleY(0.80); 264 } 265 } 266 @keyframes placeholderShimmer { 267 0% {background-position: -468px 0;} 268 100% {background-position: 468px 0;} 269 } 270 @-webkit-keyframes placeholderShimmer { 271 0% {background-position: -468px 0;} 272 100% {background-position: 468px 0;} 273 } 274 275 body:not(.loaded):not(.tv) .header-nav-bar { 276 background: #151515; 277 height: 5.9em; 278 } 279 280 body:not(.loaded):not(.tv) .nav-container { 281 position: relative; 282 height: 2.6em; 283 top: 1.5em; 284 left: -3em; 285 } 286 287 .splash { 288 position: fixed; 289 overflow: hidden; 290 /* 9: above all page content (library sidebar peaks at 6, and page z-indexes escape into the 291 global stacking context), below the header and player (10) so the logo handoff and mini 292 player stay visible. At 5, content pierced the splash while it covered the boot. */ 293 z-index: 9; 294 margin-top: 0; 295 width: 100%; 296 height: 100%; 297 border-top: 0; 298 top:0; 299 background: #0d0d0d; 300 } 301 302 .tv .splash { 303 margin-top: 0; 304 padding-top: 8.9em; 305 } 306 .tv.loaded .splash { 307 padding-top: 0; 308 } 309 310 body.loading .nav-container, body.loading .burger-nav-container, body.loading .hamburger, 311 body:not(.loading):not(.loaded) .splash, 312 body:not(.loaded) .search-glass, 313 body:not(.loaded) .header-nav-bar button { 314 /* For SEO bot hits */ 315 display:none; 316 } 317 318 .splash .container { 319 margin-top: 2.9em; 320 } 321 .splash .centered { 322 position: absolute; 323 width: 100%; 324 bottom:60%; 325 z-index: 3; 326 } 327 328 .loading { 329 overflow:hidden; 330 } 331 .loading .splash { 332 display:block; 333 } 334 335 .loaded { 336 overflow-y:auto; 337 } 338 .loaded .splash { 339 animation: siteloaded-fade 1s forwards, siteloaded-done 0.2s 0.5s forwards; 340 -webkit-animation: siteloaded-fade 1s forwards, siteloaded-done 0.2s 0.5s forwards; 341 } 342 343 section.server-generated.spotlight .tile-container:not(:first-of-type) { 344 left: 100%; 345 } 346 347 /* Site loading state placeholder */ 348 .splash section.empty { 349 max-width: 1180px; 350 margin: auto; 351 margin-bottom: 3em; 352 } 353 .splash section.empty .tile-container { 354 float:left; 355 background: #0d0d0d; 356 min-height: 19em !important; 357 } 358 .tv .splash .header-nav-bar { 359 display:none; 360 } 361 .tv .splash section.empty .tile-container { 362 background: transparent; 363 } 364 365 .splash section.empty.small .tile-container { 366 width:11.4em; 367 } 368 .splash section.empty .tile-container .tile { 369 background:transparent !important; 370 } 371 .splash section.empty.small .tile-container .tile { 372 height:11.4em; 373 width: 11.4em; 374 min-height: 11.4em; 375 } 376 .splash section.empty h2 { 377 background: #232323; 378 width: 25%; 379 line-height: 1; 380 margin-bottom: 1.5em !important; 381 } 382 .splash section.empty .tile-container .tile .overlay { 383 background:#232323; 384 } 385 .splash section.empty .tile-container .metadata { 386 background: #0d0d0d; 387 } 388 .tv .splash section.empty .tile-container .metadata { 389 background: transparent; 390 } 391 .splash section.empty .tile-container .metadata span.title,
392 .splash section.empty .tile-container .metadata .subtitle { 393 background:#232323; 394 height: 0.75em; 395 width: 80%; 396 } 397 .splash section.empty .tile-container .metadata .title { 398 margin-top: 1em; 399 margin-bottom: 0.75em; 400 } 401 .splash section.empty .tile-container .metadata .subtitle { 402 width: 65%; 403 padding-bottom: 1em; 404 } 405 .splash section.empty .tile-container:hover .metadata .button { 406 display: none !important; 407 } 408 409 .shimmer { 410 background-color:#232323 !important; 411 background-image: linear-gradient(to right, #232323 0%, #2d2d2d 20%, #232323 40%, #232323 100%) !important; 412 background-repeat: no-repeat; 413 background-size: 52em 17em !important; 414 415 -webkit-animation: placeholderShimmer 2.5s linear forwards infinite; 416 animation: placeholderShimmer 2.5s linear forwards infinite; 417 } 418 419 .chat-pannel { 420 display:none; 421 } 422 423 /* Equalizer loading indicator â four rounded bars growing from a shared 424 baseline, matching the in-search EQ. The .loader div is empty, so the two 425 pseudo-elements each draw a bar plus a box-shadow clone (four bars, two 426 animation phases). The box keeps the old spinner's size/margin so every 427 context that positions .loader is unaffected. Kept inline (like the rest 428 of the splash styles) so the loading screen renders even if the CDN 429 stylesheets fail; embed.jsp carries its own copy since it doesn't load 430 main.css. */ 431 .loader { 432 margin: 60px auto; 433 font-size: 0.6em; 434 position: relative; 435 text-indent: -9999em; 436 width: 10em; 437 height: 10em; 438 } 439 .loader:before, 440 .loader:after { 441 content: ""; 442 position: absolute; 443 left: 50%; 444 bottom: calc(50% - 2em); 445 width: 0.7em; 446 height: 4em; 447 background: #01f586; 448 border-radius: 999px; 449 box-shadow: 2.8em 0 0 #01f586; 450 -webkit-transform-origin: bottom center; 451 transform-origin: bottom center; 452 opacity: 0.9; 453 } 454 .loader:before { 455 margin-left: -2.45em; 456 -webkit-animation: loader-eq-a 0.8s ease-in-out infinite; 457 animation: loader-eq-a 0.8s ease-in-out infinite; 458 } 459 .loader:after { 460 margin-left: -1.05em; 461 -webkit-animation: loader-eq-b 0.62s ease-in-out infinite 0.1s; 462 animation: loader-eq-b 0.62s ease-in-out infinite 0.1s; 463 } 464 .loader.morebottom { 465 height: 5em; 466 width: 5em; 467 margin-top: 3em; 468 clear: both; 469 } 470 471 .loaded .splash .loader:before, 472 .loaded .splash .loader:after { 473 animation: none; 474 } 475 476 @media only screen and (min-width: 1235px) { 477 .splash section.empty:not(.small) .tile-container:nth-of-type(3) { 478 margin-right: 0 !important; 479 } 480 .splash section.empty:not(.small) .tile-container:nth-of-type(4) { 481 display:none; 482 } 483 } 484 485 @media only screen and (max-width: 1235px) { 486 487 .splash .container { 488 max-width: 808px; 489 } 490 491 .splash section.empty { 492 max-width: 780px !important; 493 } 494 495 .splash section.empty:not(.small) .tile-container:nth-of-type(2) { 496 margin-right: 0 !important; 497 } 498 499 .splash section.empty:not(.small) .tile-container:nth-of-type(3), 500 .splash section.empty:not(.small) .tile-container:nth-of-type(4) { 501 display:none; 502 } 503 504 .splash section.empty.small .tile-container:nth-of-type(4) { 505 margin-right: 0 !important; 506 } 507 .splash section.empty.small .tile-container:nth-of-type(5), 508 .splash section.empty.small .tile-container:nth-of-type(6) { 509 display:none; 510 } 511 } 512 513 514 515 @media only screen and (max-width: 835px) { 516 .splash { 517 margin-top: 0; 518 margin-left: 0; 519 max-width: 100%; 520 } 521 .splash .container { 522 max-width: 25.35em; 523 } 524 .splash .centered { 525 bottom:80%; 526 } 527 .splash section.empty { 528 max-width: 22.58em !important; 529 margin: auto !important; 530 } 531 .splash section.empty h2 { 532 width: 50%; 533 margin-left: -0.5em; 534 } 535 } 536 @media only screen and (max-width: 650px) { 537 .splash section.empty.small .tile-container { 538 width: 50% !important; 539 min-height: 14em !important; 540 float:left; 541 } 542 } 543 544</style>
544<script type="application/ld+json"> 545 { 546 "@context": "http://schema.org", 547 "@type": "EntertainmentBusiness", 548 "image": [ 549 "https://www.liveone.com/images/logos/lxl-tv-splash.jp", 550 "https://www.liveone.com/images/icons/browser/mstile-150x150.png" 551 ], 552 "@id": "https://www.liveone.com/", 553 "name": "LiveOne", 554 "address": { 555 "@type": "PostalAddress", 556 "streetAddress": "269 SOUTH BEVERLY DRIVE, SUITE 1450", 557 "addressLocality": "BEVERLY HILLS", 558 "addressRegion": "CA", 559 "postalCode": "90212", 560 "addressCountry": "US" 561 }, 562 "url": "https://www.liveone.com/", 563 "telephone": "+13106012500" 564 } 565 </script>
565 566
566<script type="application/javascript"> 567 PAGE_BEACON = {page: {name: location.pathname.replace('/','')}}; 568 </script>
568 569 </head> 570 <body class=""> 571 572 <!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 572-573
572 573<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
573GTM-WXLMFHR
vendor: 83 bytes, lines 573-574
573" 574height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
575<!-- End Google Tag Manager (noscript) --> 576<!-- This is here to ensure with a JS enabled browser, we show the splash screen as fast as possible -->
577<script>document.getElementsByTagName('body')[0].className = 'loading'</script>
577 578 579<div class="capUnit topmost billboard lazy" data-slotsize="billboard" data-adpos="billboard"></div> 580 581<div class="header-nav-back" role="navigation" aria-live="off" style="display:none"> 582 <button class="arrow" onclick="history.go(-1)"></button> 583</div> 584<div class="header-nav-bar react-header" role="banner" aria-live="off" data-bind="css:{upsell:APP.topUpsellNag().length,subscriber:APP.USER.slackerUser().actualTier>1,registered:APP.USER.slackerUser().actualTier==1}"> 585 <div tabindex="-1" aria-hidden="true" class="focus-proxy"></div> 586 <!-- ko if: APP.implementationSuperType() != 'tv' --> 587 <div class="header-react-mount" data-bind="component: {name: 'react-wrapper', params: {name: 'Header', props: {APP: APP, appName: 'LiveOne'}, subscriptionMap: APP.nav_subscriptionMap}}"></div> 588 <!-- /ko --> 589 </div> 590<div id="hero-embed-player" data-bind="visible:APP.heroEmbedData()" style="display:none"> 591 <div class="close"> 592 <img class="maximize link" role="button" aria-label="Toggle Video Player Mode" src="/s=4.0.1400/images/icons/maximize.png" data-bind="attr:{tabindex: APP.getTabIndexByName('hero-embed-player')}, event: {keydown: APP.getKeyDownHandler(APP.toggleHeroPlayerFloat)}, click:APP.toggleHeroPlayerFloat,clickBubble:false"> 593 <button class="defaultX" aria-label="Close Video Player" data-bind="attr:{tabindex: APP.getTabIndexByName('hero-embed-player')}, event: {keydown: APP.getKeyDownHandler(APP.closeEmbedHeroPlayer)}, click:APP.closeEmbedHeroPlayer,clickBubble:false"> 594 <svg role="presentation" viewbox='0 0 40 40'><path d='M 10,10 L 30,30 M 30,10 L 10,30' fill='black' stroke-width='4'/></svg> 595 </button> 596 </div> 597 <!-- ko with: APP.heroEmbedData() --> 598 <iframe src="about:blank" data-bind="attr:{src:embedUrl}" allowfullscreen></iframe> 599 <div class="floating-label" data-bind="html:label;visible:label!=null" style="display:none"></div> 600 <!-- /ko --> 601 </div> 602</div> 603<div id="hero-player" data-bind="css:{live:APP.herostreamaction.currentVideo() && APP.herostreamaction.currentVideo().isLive, 'with-side-bar':APP.heroSideNav(), 'with-related':APP.herorelated() && APP.herorelated().length}"> 604 605 <!-- ko with: herostreamaction --> 606 <div class="masthead hero" style="display:none" data-bind="visible:isVideoPlayerActive"> 607 <h2 data-bind="html:banner"></h2> 608 <div id="hero-video-container" class="video-container"></div> 609 <!-- ko with: APP.appImplementationModule.socialMessaging() --> 610 <div id="flyout-container" class="flyout-container" data-bind="click:APP.appImplementationModule.dismissFlyout.bind(APP.appImplementationModule),css:(currentFlyout())?currentFlyout().style:''"> 611 <!-- ko with: currentFlyout --> 612 <div class="img" data-bind="visible:imageUrl,style:{'background-image':'url('+imageUrl+')'}" style="display:none"></div> 613 <div class="message" data-bind="visible:imageUrl,css:{'with-action':clickthroughAction}"> 614 <span class="title" role="heading" aria-level="2" data-bind="text:title">Title</span> 615 <span class="description" data-bind="html:message">Description</span> 616 </div> 617 <div class="message-no-image message" data-bind="visible:!imageUrl,css:{'with-action':clickthroughAction}"> 618 <span class="title" role="heading" aria-level="2" data-bind="text:title">Title</span> 619 <span class="description" data-bind="html:message">Description</span> 620 </div> 621 622 <button class="std" data-bind="visible:clickthroughUrl,text:(clickthroughAction)?clickthroughAction:'GO',click:APP.appImplementationModule.doFlyoutAction" style="display:none">GO</button> 623 <!-- /ko --> 624 </div> 625 <!-- /ko --> 626 </div> 627 <!-- /ko --> 628 629 <a name="hero-focus-target" aria-hidden="true" tabindex='-1' id="hero-related" class="focus-catch hero-focus top" data-bind="click:APP._onHeroRelatedFocus"></a> 630 <a name="hero-focus-target" aria-hidden="true" tabindex='-1' id="hero-related" class="focus-catch hero-focus-side left" data-bind="click:APP._onHeroRelatedFocus"></a> 631 <a name="hero-related-focus-target" aria-hidden="true" tabindex='-1' id="hero-related-focus-target"class="focus-catch hero-focus top" data-bind="click:APP._onHeroRelatedFocus"></a> 632 633 <section class="related-content" data-bind="visible:APP.herostreamaction.currentVideo() && APP.herorelated() && APP.herorelated().length" style="display:none"> 634 <div class="scroll-container hero-related" data-bind="visible: herorelated().length" style="display:none"> 635 <h2 class="title" data-bind="text:APP.herorelated().title"></h2> 636 <div class="tile-group" tabindex='-1'> 637 <!-- ko foreach: {data:herorelated, as:'stage', afterRender:APP._onMultiStageTileRender} --> 638 639 <div class="tile-container" tabindex="-1" data-bind="css:{active:active,offline:streamStatus!='live'},click:APP.changeStage"> 640 <div class="tile" data-bind="attr:{id:'video-'+uiItemId,tabindex:'20'+$index()},event:{focus:function (data,event){APP._onTileFocus(data,event);APP._onHeroRelatedFocus.bind(APP)(data, event)}},click:APP.changeStage,clickBubble: false,style:{'background-image':'url('+posterImgUrl+')'}"> 641 <div class="overlay"></div> 642 <div class="button play" tabindex="-1" data-bind="click:APP.startHeroVideo,clickBubble: false"><span>play</span></div> 643 </div> 644 <div class="metadata"> 645 <span class="subtitle" data-bind="text:title"></span> 646 </div> 647 </div> 648 <div class="button change-stage" tabindex="-1" data-bind="click:APP.changeStage,clickBubble: false"></div> 649 650 <!-- /ko --> 651 </div> 652 </div> 653 654 </section> 655 <a name="hero-focus-target" aria-hidden="true" tabindex='-1' id="hero-related" class="focus-catch hero-focus bottom" data-bind="click:APP._onHeroRelatedFocus"></a> 656 <a name="hero-focus-target" aria-hidden="true" tabindex='-1' id="hero-related" class="focus-catch hero-focus-side right" data-bind="click:APP._onHeroRelatedFocus"></a> 657 658 <!-- ko with: APP.appImplementationModule --> 659 <div class="side-bar" data-bind="visible:APP.heroSideNav()" style="display:none"> 660 <ul class="tabs" data-bind="css:tabCounterStyle"> 661 <li class="chat" title="Chat" data-name="chat" data-bind="click:onSidepanelTabClick,visible:isFestivalChatAvailable(), css:{active:APP.heroSideNav()=='chat'}"> 662 <span>
662CHAT</span> 663 <svg role="presentation" width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 664 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> 665 <g id="Group-2"> 666 <path d="M6.50974811,21.984836 L12.3278046,15.25 L22,15.25 C22.6903559,15.25 23.25,14.6903559 23.25,14 L23.25,2 C23.25,1.30964406 22.6903559,0.75 22,0.75 L2,0.75 C1.30964406,0.75 0.75,1.30964406 0.75,2 L0.75,14 C0.75,14.6903559 1.30964406,15.25 2,15.25 L6.50890626,15.25 L6.50974811,21.984836 Z" id="Combined-Shape" stroke="#B7B7B7" stroke-width="1.5"></path> 667 <circle id="Oval" fill="#B7B7B7" cx="6.5" cy="7.5" r="1.5"></circle> 668 <circle id="Oval-Copy" fill="#B7B7B7" cx="12.5" cy="7.5" r="1.5"></circle> 669 <circle id="Oval-Copy-2" fill="#B7B7B7" cx="18.5" cy="7.5" r="1.5"></circle> 670 </g> 671 </g> 672 </svg> 673 </li> 674 <li class="stages" title="Stages" data-name="stages" data-bind="click:onSidepanelTabClick,css:{active:APP.heroSideNav()=='stages'}"> 675 <span>STAGES</span> 676 <svg role="presentation" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 677 viewBox="0 0 353.951 353.951" style="enable-background:new 0 0 353.951 353.951;" xml:space="preserve"> 678 <g id="Escenario"> 679 <path d="M351.404,262.753l-28.358-19.965V42.484H28.337v200.459L2.346,262.9l0.004,0.005C0.923,264.002,0,265.721,0,267.659v37.808 680 c0,3.313,2.687,6,6,6h341.95c3.313,0,6-2.687,6-6v-37.735C353.974,265.79,353.051,263.912,351.404,262.753z M40.337,167.294h10.922 681 v2.102H40.337V167.294z M40.337,181.395h10.922v58.506H40.337V181.395z M63.259,198.961l16.687,40.94H63.259V198.961z 682 M92.906,239.901L64.4,169.968c9.972-9.225,40.176-38.66,53.089-67.926h116.406c12.913,29.267,43.117,58.701,53.089,67.926 683 l-28.506,69.933H92.906z M311.046,169.395h-10.922v-2.102h10.922V169.395z M288.124,198.961v40.94h-16.687L288.124,198.961z 684 M300.124,181.395h10.922v58.506h-10.922V181.395z M311.046,155.294h-10.922V79.241h10.922V155.294z M288.124,130.856 685 l-16.957-51.615h16.957V130.856z M258.536,79.241l22.241,67.702c-17.901-18.984-39.645-46.762-40.791-67.702H258.536z 686 M227.973,79.241c0.144,3.524,0.733,7.139,1.679,10.801h-107.92c0.946-3.662,1.534-7.276,1.679-10.801H227.973z M70.628,146.874 687 l22.219-67.633h18.556C110.253,101.286,87.334,129.271,70.628,146.874z M63.259,130.856V79.241h16.957L63.259,130.856z 688 M51.259,155.294H40.337V79.241h10.922V155.294z M315.145,251.901l13.86,9.758H23.666l12.708-9.758H315.145z M311.046,54.484 689 v12.757H40.337V54.484H311.046z M341.95,299.467H12v-25.808h329.95V299.467z"/> 690 </g> 691 </svg> 692 </li> 693 <li class="schedule" title="Schedule" data-name="schedule" data-bind="click:onSidepanelTabClick,visible:festivalSchedule, css:{active:APP.heroSideNav()=='schedule'}"> 694 <span>Schedule</span> 695 <svg role="presentation" width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 696 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> 697 <g id="calendar" fill="#B7B7B7" fill-rule="nonzero"> 698 <path d="M23.5714286,1.6 L20.5714286,1.6 L20.5714286,0.4 C20.5714286,0.1788 20.3798571,0 20.1428571,0 L17.1428571,0 C16.9058571,0 16.7142857,0.1788 16.7142857,0.4 L16.7142857,1.6 L7.28571429,1.6 L7.28571429,0.4 C7.28571429,0.1788 7.09414286,0 6.85714286,0 L3.85714286,0 C3.62014286,0 3.42857143,0.1788 3.42857143,0.4 L3.42857143,1.6 L0.428571429,1.6 C0.191571429,1.6 0,1.7788 0,2 L0,6.4 L0,23.6 C0,23.8212 0.191571429,24 0.428571429,24 L23.5714286,24 C23.8084286,24 24,23.8212 24,23.6 L24,6.4 L24,2 C24,1.7788 23.8084286,1.6 23.5714286,1.6 Z M17.5714286,0.8 L19.7142857,0.8 L19.7142857,2 L19.7142857,3.2 L17.5714286,3.2 L17.5714286,2 L17.5714286,0.8 Z M4.28571429,0.8 L6.42857143,0.8 L6.42857143,2 L6.42857143,3.2 L4.28571429,3.2 L4.28571429,2 L4.28571429,0.8 Z M0.857142857,2.4 L3.42857143,2.4 L3.42857143,3.6 C3.42857143,3.8212 3.62014286,4 3.8571428
6986,4 L6.85714286,4 C7.09414286,4 7.28571429,3.8212 7.28571429,3.6 L7.28571429,2.4 L16.7142857,2.4 L16.7142857,3.6 C16.7142857,3.8212 16.9058571,4 17.1428571,4 L20.1428571,4 C20.3798571,4 20.5714286,3.8212 20.5714286,3.6 L20.5714286,2.4 L23.1428571,2.4 L23.1428571,6 L0.857142857,6 L0.857142857,2.4 Z M0.857142857,23.2 L0.857142857,6.8 L23.1428571,6.8 L23.1428571,23.2 L0.857142857,23.2 Z" id="Shape"></path> 699 <path d="M15.8210526,9.2 L12.6526316,9.2 L11.7473684,9.2 L8.57894737,9.2 L7.67368421,9.2 L3.6,9.2 L3.6,12.8 L3.6,13.6 L3.6,16.4 L3.6,17.2 L3.6,20.8 L7.67368421,20.8 L8.57894737,20.8 L11.7473684,20.8 L12.6526316,20.8 L15.8210526,20.8 L16.7263158,20.8 L20.8,20.8 L20.8,17.2 L20.8,16.4 L20.8,13.6 L20.8,12.8 L20.8,9.2 L16.7263158,9.2 L15.8210526,9.2 Z M12.6526316,10 L15.8210526,10 L15.8210526,12.8 L12.6526316,12.8 L12.6526316,10 Z M15.8210526,16.4 L12.6526316,16.4 L12.6526316,13.6 L15.8210526,13.6 L15.8210526,16.4 Z M8.57894737,13.6 L11.7473684,13.6 L11.7473684,16.4 L8.57894737,16.4 L8.57894737,13.6 Z M8.57894737,10 L11.7473684,10 L11.7473684,12.8 L8.57894737,12.8 L8.57894737,10 Z M4.50526316,10 L7.67368421,10 L7.67368421,12.8 L4.50526316,12.8 L4.50526316,10 Z M4.50526316,13.6 L7.67368421,13.6 L7.67368421,16.4 L4.50526316,16.4 L4.50526316,13.6 Z M7.67368421,20 L4.50526316,20 L4.50526316,17.2 L7.67368421,17.2 L7.67368421,20 Z M11.7473684,20 L8.57894737,20 L8.57894737,17.2 L11.7473684,17.2 L11.7473684,20 Z M15.8210526,20 L12.6526316,20 L12.6526316,17.2 L15.8210526,17.2 L15.8210526,20 Z M19.8947368,20 L16.7263158,20 L16.7263158,17.2 L19.8947368,17.2 L19.8947368,20 Z M19.8947368,16.4 L16.7263158,16.4 L16.7263158,13.6 L19.8947368,13.6 L19.8947368,16.4 Z M19.8947368,10 L19.8947368,12.8 L16.7263158,12.8 L16.7263158,10 L19.8947368,10 Z" id="Shape"></path> 700 </g> 701 </g> 702 </svg> 703 </li> 704 <!-- ko if: shopData() && shopData().length --> 705 <!-- ko foreach: {data:shopData, as: 'store'} --> 706 <li class="shop" title="Shop" data-name="shop" data-bind="attr:{'data-name':store.id,title:store.title},click:$parent.onSidepanelTabClick, css:{active:APP.heroSideNav()==store.id}"> 707 <span>Shop</span> 708 <!-- ko if: !store.shopIconStyle() --> 709 <svg role="presentation" id="cart" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 333334 269728" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd"><path d="M212575 12506h-91823c456 5071 1735 9910 3702 14381 2318 5265 5597 10019 9615 14038 4257 4257 9333 7683 14959 10014 5422 2245 11378 3485 17634 3485 6257 0 12213-1240 17634-3485 5627-2331 10702-5757 14959-10014 4019-4019 7298-8772 9615-14038 1968-4470 3247-9310 3703-14381zM25187 100527l44950 1954 41 2c1657 84 3130 803 4189 1909 998 1043 1636 2432 1723 3957 21 117 31 237 31 359v148511h182702V107628c0-1717 700-3278 1832-4413l4-4 4-4 7-7c1134-1128 2693-1826 4406-1826 18 0 64 4 245 11l21 1 182 7 44106-479 10257-47719-94946-38753c-651 6273-2293 12255-4766 17785-2946 6585-7061 12521-12076 17537-5394 5394-11850 9746-19034 12721-6911 2863-14478 4443-22402 4443-7923 0-15491-1580-22402-4443-7183-2975-13640-7327-19034-12721-4941-4941-9007-10770-11942-17231-2462-5420-4122-11286-4831-17444L13599 54175l11587 46349zm38428 14152l-43361-1886c-1397 1-2729-468-3796-1288-54-42-106-85-155-131-1007-825-1767-1963-2103-3307L180 51985c-19-72-32-146-43-219-302-1419-92-2866 537-4109 651-1289 1752-2360 3194-2952L110754 661c407-203 851-366 1324-480v-2c491-119 984-181 1470-181h107851c89 0 178 6 264 17 317 12 625 47 921 104l8 2v-2c377 73 760 188 1144 343l7 3 1-3 105692 43139c56 22 111 48 163 74 1316 578 2364 1574 3008 2787 663 1247 907 2728 590 4222l-12402 57700c-17 83-40 164-67 243-335 1313-1086 2462-2104 3293-1057 864-2409 1387-3886 1398l-43407 472v149683c0 1720-701 3281-1832 4413l-8 8c-1132 1131-2693 1831-4414 1831H69869c-1721 0-3282-700-4414-1831l-8-8c-1131-1132-1832-2693-1832-4413V114677z" fill-rule="nonzero"/></svg> 710 <!-- /ko --> 711 <!-- ko if: store.shopIconStyle() == 'ticketing' --> 712 <svg role="presentation" id="ticket" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" xmlns:xlink="http://www.w3.org/1999/xlink"> 713 <path data-name="layer2" d="M55 18.7A6.9 6.9 0 0 1 45.3 9l-7-7L2 38.3l7 7a6.9 6.9 0 0 1 9.7 9.7l7 7L62 25.7z" 714 fill="none" stroke="#202020" stroke-miterlimit="10" stroke-width="2" stroke-linejoin="round" 715 stroke-linecap="round"></path> 716 <path data-name="layer1" d="M30.6 46a3 3 0 0 1-4.2 0L18 37.6a3 3 0 0 1 0-4.2L33.4 18a3 3 0 0 1 4.2 0l8.4 8.4a3 3 0 0 1 0 4.2z" 717 fill="none" stroke="#202020" stroke-miterlimit="10" stroke-width="2" stroke-linejoin="round" 718 stroke-linecap="round"></path> 719 </svg> 720 <!-- /ko --> 721 <!-- ko if: store.shopIconStyle() && store.shopIconStyle() != 'ticketing' --> 722 <img class="tabIcon" src="/s=4.0.1400/images/pixel.gif" data-bind="attr:{'src':store.shopIconStyle()}"/> 723 <!-- /ko --> 724 </li> 725 <!-- /ko --> 726 <!-- /ko --> 727 </ul> 728 <div class="tab-pane"> 729 <div class="centered capUnit festivalChat lazy empty" data-player="festival" data-slotsize="festivalChat" data-adpos="1"></div> 730 731 <div class="pane chat-pannel" data-bind="visible:APP.heroSideNav()=='chat'" style="display:none"> 732 <div class="heart-mashing-display" data-bind="visible:socialMessaging() && socialMessaging().channelsByType.emote && socialMessaging().channelsByType.emote.status ==='active'" style="display:none"></div> 733 <!-- ko template: {name:'mash-icon', if:socialMessaging() && socialMessaging().channelsByType.emote && socialMessaging().channelsByType.emote.status ==='active'} --> 734 <!-- /ko --> 735 <div class="message-pane" data-bind="with:socialMessaging"> 736 <div class="top-fadeout"></div> 737 <ul class="messages" data-bind="foreach:chatMessages"> 738 <li data-bind="attr:{id:message.messageId},css:{'with-avatar':!message.notice,owner:$parent.pubNubUuid==publisher,moderator:message.moderator,notice:message.notice}"> 739 <!-- ko if: message.avatar --> 740 <div class="avatar" data-bind="click:$parent.handleProfileImageAction.bind($parent),css:{link:$parent.pubNubUuid==publisher||APP.supportsNewProfile()},style:{'backgroundImage':'url('+message.avatar+')'}"></div> 741 <!-- /ko --> 742 <!-- ko if: !message.avatar && !message.notice --> 743 <svg role="presentation" class="avatar" data-bind="click:$parent.handleProfileImageAction.bind($parent),css:{'link':($parent.pubNubUuid==publisher||APP.supportsNewProfile())}" width="30px" height="30px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 744 <g stroke="none" stroke-width="1" fill="none"> 745 <g id="shape" fill="#FFFFFF" fill-rule="nonzero"> 746 <path d="M30,0 C13.458,0 0,13.458 0,30 C0,46.543 13.458,60 30,60 C46.542,60 60,46.542 60,30 C60,13.457 46.542,0 30,0 Z M50.6,47.998 C48.036,43.324 42.455,38.261 38.527,36.183 C38.432,36.28 38.339,36.381 38.241,36.476 C35.913,38.726 32.987,39.966 30,39.966 C26.756,39.966 23.782,38.538 21.48,36.176 C17.558,38.248 11.967,43.32 9.4,48 C5.212,43.188 2.667,36.907 2.667,30.038 C2.667,14.946 14.928,2.667 30,2.667 C45.072,2.667 57.333,14.946 57.333,30.038 C57.333,36.906 54.788,43.187 50.601,47.998 L50.6,47.998 Z M30.668,12 C24.777,12 20,16.36 20,23.822 C20,31.284 24.776,37.333 30.667,37.333 C33.149,37.333 35.433,36.259 37.247,34.457 C39.735,31.984 41.333,28.139 41.333,23.822 C41.333,16.36 36.558,12 30.667,12 L30.668,12 Z" id="Shape"></path> 747 </g> 748 </g> 749 </svg> 750 <!-- /ko --> 751 <div class="message"> 752 <span class="handle" data-bind="text:message.handle,click:function(data, event){if (!message.notice)$parent.handleProfileImageAction(data, event)},css:{link:!message.notice&&$parent.pubNubUuid!=publisher&&APP.supportsNewProfile()}"></span> 753 <span class="text" data-bind="html:message.message.replace(/\n/g,'<br/>')"></span> 754 </div> 755 </li> 756 </ul>
757 </div> 758 <!-- ko with: socialMessaging() --> 759 <!-- ko if: pubNubUser() != null && pubNubUser().images && pubNubUser().images.avatar --> 760 <div class="avatar-preview link" data-bind="click:function(){handleProfileImageAction({publisher:pubNubUser().pubnubId})},style:{'backgroundImage':'url('+pubNubUser().images.avatar.urls.small+')'}"></div> 761 <!-- /ko --> 762 <!-- ko if: !pubNubUser() || !pubNubUser().images || !pubNubUser().images.avatar --> 763 <svg role="presentation" class="avatar-preview link" data-bind="click:function(){handleProfileImageAction({publisher:(pubNubUser())?pubNubUser().pubnubId:null})}" width="30px" height="30px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 764 <g stroke="none" stroke-width="1" fill="none"> 765 <g id="shape" fill="#FFFFFF" fill-rule="nonzero"> 766 <path d="M30,0 C13.458,0 0,13.458 0,30 C0,46.543 13.458,60 30,60 C46.542,60 60,46.542 60,30 C60,13.457 46.542,0 30,0 Z M50.6,47.998 C48.036,43.324 42.455,38.261 38.527,36.183 C38.432,36.28 38.339,36.381 38.241,36.476 C35.913,38.726 32.987,39.966 30,39.966 C26.756,39.966 23.782,38.538 21.48,36.176 C17.558,38.248 11.967,43.32 9.4,48 C5.212,43.188 2.667,36.907 2.667,30.038 C2.667,14.946 14.928,2.667 30,2.667 C45.072,2.667 57.333,14.946 57.333,30.038 C57.333,36.906 54.788,43.187 50.601,47.998 L50.6,47.998 Z M30.668,12 C24.777,12 20,16.36 20,23.822 C20,31.284 24.776,37.333 30.667,37.333 C33.149,37.333 35.433,36.259 37.247,34.457 C39.735,31.984 41.333,28.139 41.333,23.822 C41.333,16.36 36.558,12 30.667,12 L30.668,12 Z" id="Shape"></path> 767 </g> 768 </g> 769 </svg> 770 <!-- /ko --> 771 <!-- /ko --> 772 <!-- ko if: APP.appImplementationModule.socialMessaging() --> 773 <input class="profile" type="text" id="chatbox" name="chatbox" type="text" data-bind="css:{disabled:socialMessaging().chatIsLocked()}" autocomplete="off" placeholder="Say something..." maxlength="256"/> 774 <svg role="presentation" class="send-icon" alt="Send" data-bind="click:function () {var e = jQuery.Event('keyup');e.which=13;$('#chatbox').trigger(e);}" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"> 775 <path fill="#000" fill-rule="nonzero" d="M19.828.172a.586.586 0 0 0-.632-.13L.368 7.573A.586.586 0 0 0 .33 8.644l7.425 3.601 3.6 7.425c.099.202.304.33.528.33h.02a.586.586 0 0 0 .524-.368L19.958.804a.586.586 0 0 0-.13-.632zM2.035 8.169L16.98 2.19l-8.907 8.907-6.04-2.928zm9.796 9.796l-2.929-6.039L17.81 3.02 11.83 17.965z"/> 776 </svg> 777 <svg role="presentation" class="emoji-send" alt="Emoji Picker" data-bind="click:toggleEmojiSelector" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve"> 778 <g><path d="M319.5,483.9c42.7,0,77.4-34.6,77.4-77.4s-34.6-77.4-77.4-77.4s-77.4,34.6-77.4,77.4S276.7,483.9,319.5,483.9z M706.3,483.9c42.7,0,77.4-34.6,77.4-77.4s-34.6-77.4-77.4-77.4c-42.7,0-77.4,34.6-77.4,77.4S663.6,483.9,706.3,483.9z M292.5,639.8c11.1,12.2,30.8,29.4,58.5,46.4c110.2,67.6,242.3,67.6,381.9-42.9c13.3-10.5,15.5-29.8,5-43c-10.5-13.3-29.8-15.5-43-5c-118.2,93.6-222.4,93.6-311.9,38.7c-13-8-24.5-16.6-34.3-25.1c-5.6-4.9-9.3-8.5-10.8-10.2c-11.4-12.5-30.7-13.5-43.3-2.1C282,607.9,281.1,627.3,292.5,639.8z"/><path d="M500,928.8L500,928.8c236.8,0,428.8-192,428.8-428.8c0-236.8-192-428.8-428.8-428.8c-236.8,0-428.8,192-428.8,428.8C71.3,736.8,263.2,928.8,500,928.8L500,928.8z M500,990L500,990C229.4,990,10,770.6,10,500C10,229.4,229.4,10,500,10c270.6,0,490,219.4,490,490C990,770.6,770.6,990,500,990L500,990z"/></g> 779 </svg> 780 <!-- /ko --> 781 <!-- ko template: {name: 'emoji-picker', if:APP.heroSideNav()=='chat'} --> 782 <!-- /ko --> 783 </div> 784 <div class="pane schedule" data-bind="visible:APP.heroSideNav()=='schedule'" style="display:none"> 785 <div class="scrollContainer"> 786 <!-- ko if: APP.appImplementationModule.festivalSchedule() && APP.appImplementationModule.festivalSchedule().length --> 787 <!-- ko if: !APP.appImplementationModule.festivalSchedule()[0].length --> 788 <h2>Schedule</h2> 789 <!-- ko foreach: {data: APP.appImplementationModule.festivalSchedule, as: 'day'} --> 790 <div> 791 <div class="schedule-day-header" data-bind="css:{collapse:!isLive}" onclick="$(this).toggleClass('collapse')"> 792 <span data-bind="text:header"></span> 793 <div class="indicator"></div> 794 </div> 795 <div class="schedule-day-acts"> 796 <ul> 797 <!-- ko foreach: {data: acts, as: 'act'} --> 798 <li class="act" data-bind="css:{live:isLive}"> 799 <span class="time" data-bind="text:time + ' ' + timeZone"></span> 800 <span class="name" data-bind="html:name"></span> 801 </li> 802 <!-- /ko --> 803 </ul> 804 </div> 805 </div> 806 <!-- /ko --> 807 808 <!-- /ko --> 809 810 <!-- ko if: APP.appImplementationModule.festivalSchedule()[0].length --> 811 <ul> 812 <!-- ko foreach: {data: APP.appImplementationModule.festivalSchedule, as: 'act'} --> 813 <li class="act" data-bind="css:{live:isLive}"> 814 <span class="time" data-bind="text:((isLive) ? 'NOW PLAYING':time + ' ' + timeZone)"></span> 815 <span class="name" data-bind="html:name"></span> 816 </li> 817 <!-- /ko --> 818 </ul> 819 <!-- /ko --> 820 <!-- /ko --> 821 </div> 822 </div> 823 824 <!-- ko if: shopData() && shopData().length --> 825 <!-- ko foreach: {data:shopData, as: 'store'} --> 826 <div class="pane shop" data-bind="visible:APP.heroSideNav()==store.id" style="display:none"> 827 <ul class="shop-items"> 828 <!-- ko foreach: {data:store, as:'shopItem'} --> 829 <li> 830 <img src="//cdn.liveone.com/s=4.0.1400/images/pixel.gif" data-bind="attr:{src:imgUrl}"/> 831 <span class="title" role="heading" aria-level="3" data-bind="text:(name.length>60)?name.substring(0,60)+'...':name">Title</span> 832 <span class="subtitle" data-bind="text:shopItem.price,visible:shopItem.price">price</span> 833 <button class="std" data-bind="text:(shopItem.price)?'BUY NOW':'GO',click:APP.appImplementationModule.doShopAction">BUY</button> 834 </li> 835 <!-- /ko --> 836 </ul> 837 838 </div> 839 <!-- /ko --> 840 <!-- /ko --> 841 842 843 </div> 844 845 </div> 846 <!-- /ko --> 847</div> 848 849<div class="views-container"> 850 <div class="page-loading centered"> 851 <div class="navigating-title" aria-live="assertive" aria-label="Loading"> 852 <div class="loader"></div> 853 </div> 854</div>
855<div class="splash" role="status" aria-live="assertive" aria-label="Loading"> 856 <div class="header-nav-bar" role="banner" aria-live="off" data-bind="css:{upsell:APP.topUpsellNag().length,subscriber:APP.USER.slackerUser().actualTier>1,registered:APP.USER.slackerUser().actualTier==1}"> 857 <div class="container"> 858 <div class="service-logo static" aria-label="LiveOne"> 859 <img class="service-logo" alt="LiveOne" target="LiveOne" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAAtCAYAAADr0SSvAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAGb1JREFUeNrsXQl8FNX9/72Z2TPJ5iSQhBDulFjjEQ4FD7wRtVarlv5rFVFBDhX1j1VEjoofxT8VxYsqVFurtWChFBEVRDkEAoiA3IhJIAkJSUgCOfaamf/vN/M2WTaz2d2QIC37Cz92982bmbfz3vd3vd97y1RVhSiFII+nZRk+N68oghOZhTidnrCIbJFVEEDBDzJ4saQBD5iYCraA2jIec2NNIonqeLEUPzrxIhZ8LwgyKMgQ5M4Clqt4m0ZB1OoIeE0rvr5XvP9/S+prc57JHjhKq4jtAQVZ9GKrBJAZA4kpWFO/Lh1yUTuYfieLduVzi4To6P/vJN9AVjhAiWo8LmnKjtX3XZe/rGxzdfkwELGWiQDAeC0WfXBRgERIpGGDsISHY5FjQjDVIS3B2JkZgKo22AWw44DX763fN9Vk9dodybChurzz0E1LV4zduWZdSX1dX2Am1EomPyhFyUdS9BGEEsUMZDRVhED5imWlzrqsH1z12TZBbAhhYjGvIltyYhJ3JpjNx0CVO1BYq3hpieww2HWyOq/W60kwC4Krqy32UKHzZB9sK3S1xoEL2/BOyb7LFpcX7n+ie+6Cx3qd/4hJkBp0mSlH+93X/VEfJDTRcKni70X+moz84qEdLzz9/ddPZcUlhvRBKtyNcHVS14Mf5w0bYJXEWvJC6lUWsQ9ixsaIShBrSOUiD4+9W7R3xuN7N0y1igJYEBQyOiU20Qx2yYy+haJfG8Ff43VDQcMJyI1L9k7pffGkO9N7v+L71gqOjagPEqWQJHIzqRG5Htnpky6CoEg44Cxi62xF7m5PgE8ri/vcsuXTzV5ZdojtpbxVzgrvTR0c0x7Y9fXUGJMZEsx2rQ02yQoSAkXl4CDyIgDiRBNc6EiBMnejdNe2lXNu2rz88LbaY9fQtxaYBD6rUD1HDbAoQMIkO3IXLqB9D40ksEUQwmIT1r3AkQSrq0v6Xr9p+Xduj5zkYCIop9kuL6LXQwg260ieX7j7uft3rZnezeaATmardl+6vxWZ2qsa4EtGoKQhkHLjU2BtdVnmlRuWrfr1tyv3ra88+gsrfluJ4lrquenCRwESAVm40+1tES8KzeQZUNg0Ny4F1tQe7Tlsy/LNTq83KUaDnGrAYSoQwQ0mQfcZ5hfteW7M7nVTsuwOSDBZtChuuO3TFRBD/yQG6mQXLCzdn72nruoK/QoM8ceiAIlSaIoLiGww5rNvQrOKrKBznBuXBGtrSnvdmL9sm0v2ojtjwsOizqoYdrfQnU10LqqOtwt2v/Dgrq+ndLPHQoIkITjksNslMK1lgICA4saT8PteFy2rvWF06ujuP/9fL/oiBAyBnZsh4LMhikWC2cN7qyOuLbcQ+qcpUWL5++OeBqmuvgwOCsaX96C9HydZINMap0eGuWZQsEnnORJgzcnSrGvzl373+cBb+9sl6Ri4VfDI6BxjrzCT2LoeIZNH0uX7WwXfzxq3b82T3WLiwCGJeF9vkz1kYgIc9zrhcEMNdLHEQbo1FlyKDD7NQOO+yHkSTnhccEfnPnun9Rk4MicuaTPwlkrNYO2NfDFyBn+u5IoVI3+LXPDfHMXK51+6hpf1Qp6L/PsIr5WEvAq5E3JtkDpZyIuR7/Ur+w3yX5H3+cVmeiC/hzw+zHt3R/6cW+L1XLjSNVYi32ZQ/zLkfyFXRgAeOwfyMERyAQ2bVVXFty0pPzCmszn2iJEFkihZq7+pLrl8ccUPg3rZ43GwiZoe8Rk+JJW/P1kFlzo6l3w54PY8m2Qqb6zHcWcWESAmPSgVLIrFo1VvFu54afy+ryZlklklWTR/wkcEjkONNZBhjql5PKv/vA01xUO/rC6+hEAr4bEKTz2UocboH59eP6PPpeOGp2T9tUk16d+GZMEE5NH8eQajg8hvcXaG8Sypn77koKvykz2ZyGOR/xZmn3yCfAlyGf+cjfww8ryAGAuNy368v8PCBXIf5HEEkBPccvCnvyP/T4QASUU+zKVLa7QO+Qq/z32R9xvUO84H/skw7v0A8jsG5TORnzUoH4a8oo1ChR70PrdfT4eisbtXfTKvZNtNfeI6oUEkNIFE6z0cqLvrKmFQXJejq/LuHBArmUqclNrSGkB4tOq1wm1/fOTAl49n2hIgXjK3AMfBxmpwiBZYnXfnlTmxyWvfL90zafTeVS91scRAYeNx9DfiYUr3gbNHd819ijF0ZHzn6+bUROSXITLf3MMB9XaIehTZPgJ6tDyQavhAPxbG/Q7wgexP05D/4PfZxMdllzb09WShFfP2TBF9yU+DaKQrwrzGTUHKP+iA9qq+p+7CtydxUDmJueh08VdiDzca3zrv2pvHZF644mBDGbgZ2vQCDXhVYy9+znEkQ35dSdrV2z7aUu9xZ1gRHD4PIbAjRD29Cl4p2jbnkR9WPp4ZGw8OswmvozRdUxIZHHBVQRyWr+7/6ysIHKCFqVXR6aqAo95aeCwzb+X2gb/riu2axECQdT1KEx6MvtpXyHMg8sAVnfsnLtnDCU4bUQLya5H0RYiy04lQq+3tpLM21lkYpO6NYVyPHuhVQTTVvo4wS33/0ViVmcp7wPcHza9Uya3b+/P6XT98XNe8T35oKEGQuNC8otl0r8YyuCEnPgm2NJSkDdn+4Xc1Hlc3sufMWl6j5rxoETCfan65aPNrjx1aMbFrbBzEmQQEhwd70quxJKqwz3UMEkwSrLt4xJCcmMR1Kjciq9wnOmUnZsK3efcOeflnV1+fbLGVOLXAgaJ/GT0z5Xvkoaf5jEhgbT0NH/cu5BFngwvSnk462f5TuSp7wM+X9REN1iXIPxicuwL0eThbQPkNYdz3SuR4g/LFbfgOu3g7Y4OYBTTU6nwFVh4eDZbmp80xSCiD0PEWUfS/kX39LTjUl715dNPNPWJS0Txr9klUVYZ+sUmwo76k01XbP9iy5oLfDnCYLYcVmYELe8nCRdnsok2vTfrxiwnpMYkQKwY65CLscx6DZJMNvrrw7sv62hI3gAuVAzr8JNrv7vzzN8dnXDzLYbIc81CmLqPvIFBWir9Nn91K/36G/B33MSl9II/3kdWgfh73825u43giLfIFN7U7gsgfWc9dAhbErz3U3gCZxdXsCINBtptsuiDnHuMPP9ChJiduEHJ+K/e93qBMaSNAKM1iQSQRLYFrjEAfnXEN4ma6rlG5l/9G9rBbmKAufaNk/S+yYtMQJM0+CYVaf4Yg2d5QnDp457vffZM7Mi/ebC008Wv+X+GGN58s/GxsWkwygkPSwMH8wLG3sRxSpRh1fe49g3vbEjeBWwePgo1swHuk2+IOCQreBbWawkHjNwCe58LGiJ7lx9UgZtX0IH17Ew/2zGpDX6RwM+/eDgLI1iABnBZ9fKYo1L3+GaQ8lBYxOv4Fd8w6wkSMyFnzn47zyvoJr/e58dbxmUOWFjWSueVBpxsBJiCmyRVAk4tAsttVmjRk15+3nfS6MujBzSpaN+/Jw5+MTY9NAAcObgXr0TnEJvQ59rnKoYvZqqy7YOTg3nYEh8cL/hOPjHvQLr/4vvlUQTQ5SKAkhwc71FYc82eQ+3MhGUhkVaS3cczcg/yrjjKf2mPQnkn6xC/U7E/DWzlnCA9LB9K/ziTqfVOFgYBoASTWHFR+vdfwXz6cMeRfRc5icApubaCr6JcQe7BSdkwn2O0sTRxxYNHiF46sffep0lVj0hA4ZFZ58c9Xl5z2ve4ySDVb1bW59w/uQ5pDW+DFc0MYT8/3gwsTmLYUxK+NE4Ngn4Ike8N8FDQfck2Q8PiEMM538chWIL0axOQ9K6T6maTaIKHXQQahPB9dZ1DWyH2dNkeoIiFaa2FjAphUpqVqyFo2rs6tBkOR5va8+baJ6VcuPtxQjI12Y28o2kpBYjdzQ9/YZFjXWDBw8tHPR2bZ48AuCuBBR9xXh8Cxz3UU0iS7vPG8MQN7WxPzwSO3EJT+CSwmdDiYdEq3W4JI6Ue5WRwJ5XNtEkh3hnGuhZtUmwLKMzhIOiQa+Z8EkNYk/zURAGQFhBdDbzfScgWZ7mm4gTQARU2V1pU7F/Jzetz8q4fTr1pS7DwCTubSNQlNSWgg8UCy2QJZtnitXNYiVfoxilYdcJdCF5Nd/ua8MZf0sCVsbbKfWrSPaW00GYeVLoWWcwQ0Qz6vjY/jTQNLwDcLH45f8JhB+SgIHso/ZzQI0TLk8jD9DHrog9speuWj6VwK7jDgRi5Vw/Y5QpFT1S2uud1vuX1i+jUflzQWozONo5yhJkHzyceq33tiijoddJVCminOk99vwoAe1sSt4DUQiGRaMT2T2IItMhk3I9eg7LNmPRcx1fDzA+miMM7tyTXIsiDAs7bjWBvCAbndoK8rfD7x2baikAYhTRreF1B+LeizrlUhole1YDzpGC515RyM0kLrbTU874+WgxNAUNGQxTOn2613xgjm9+ccX3u3INj8c6BaxiflOrgoJrN2Yfd7hnazJmzXZiS1YJmqh870xC/UNCzQnDKiTIOy7afZj9ug5TxG97AsVp0e5taBPyC6Ic8O058Jhyh7JK+V49lnowYJZmaRk3ZVGFplKXL1T9t8FlRVy4IKLkkGl6hoaSOyAJqz7ObCf2bGjQ8OsmeWlKsnQME6RuwWvVC
859HWmZ6l+ue7G1N3k7zGW6JgUfkjIDwSCZQaDMGkxqOoR0bRAucrj9p5KyHS0VBTK3xQczqjiD1bAUIqedSg3J/jUGz51f+lNGrtj5xhelMgl5m+mSdmWNqetmKNza5DmUkixas6zVkmlq0ISBmVnz2QpGzKtfEr+PVmGmvHtQcisAgzCwLo9Bs/Gl+VYdBWUOE15gXJGjzekhp1I6S7mzctIHyAP+N/FArjvpQg04kx/zz07w3RW2CzaSTfXwglHkVakD69yi58TH8/aSSJR/Nrlzy6xRrmuYvKK1snJBissEW176kywr+mJ/f8/eXpFvid7j49VpOV8qh5KBRaPWC03yOFwXRCpESmVp7eXzBR5TcSgmJM+D0ljHQTPoG0KeDAoFGibdbzlaAEC0xAAgNUEpTp/SAm4OYVw2neV8KMy5oy4kU1m0E36ZrakiIqH42x+OlHy+ac3zJHSn2dLBpy3Bb31WEImRZti5Q5Dpq7V/w/Nb87k8PyrQmbmsMemevdoCWPgmsxUZ3Ow1OGMaDc23Z3sTBz28Pv+YQPR5ombxIwZTloKfZ92tjX5ODfut/WhTLR5S/fzhI5AHAODnx4w5zIEKQB0dfHe0CEqaDTprG540+cXThojnVi+5ItncGiyiA12+egzZGrFKroUQu0eY/AH0Y/3mSrrZUOArl0sDDM/OLXMf70zVprYhyiibzAVbWVhnKaovw8yZoGRYnh3h0G58hCbakgLIf+YBsC5FJtdKg/Pkgply79vXZChAFjCf7LuASo2dAeSHo6SU/SUPrNf9ADbkpjm/G3cY3D3r46IeLX6756I5EWxqYBUGbIVc0oMlajtURTxFcYumx/cnEXy465i1FEDZoM+O+Oh7VDemWzlCmgWR6fmFjxSCzoE8Nqk0plL5XgW9CKgdqKFI8RqHxV7k5EwnRXMesDhBe46HlitOr/QRmh9HZvCbdCCAEjgcNypf9lA0V9MWrIYFB7+z8kU84+sGS108svC3BnqFpDpkmAFH8E1OOdalcBN2kLvWL0ifcPiv19rueSbz9L7UImDpWD0zE4S/KGnsFN6QhSI5BhTCgdMaGQ67KS+geQnMgJkBsMn11/KmHXjFoNtn9tI6kV5iP4Xzk1QblrgDHui1EptQTAWVSgG/yHw+QSNecr+EPxp9ocvAOg7oL2zO01x562jctAZpmoW1KyazSH/f48vf+/Ubdh79MQM1hRVWhME/T2hBKXCzzFiA4Uuu3ZE7PS5FiCqhVMzv9auTklN+9d9JbCPWsDn0JpXk9CXNBmrUzVLJyYWDJ5I0/OisupVzdUw0+VVtmK2qrtfCfov3nO0grOl8y+BqdQV+e8ESIx/As92WMol/PBQkEREoE4q/bOagYun+DLLkt5gPUHmQMdOI2pX+Sm51L9848+hAYCdoD+lJeWuAf7kq/2WF0Dl33vAgfTrAlt7TW4ftWbNuu3Bx5odk5V9D0UU4BC32i3Cy7LIBTUnGoyggQXdiNPjZ/+Tt1i4Y7LN3AiqX+y2/JgT7mKYAs1v3E5rQXB6aaHPs9tHGCh7J2Jc1tfvb4ovkza9++P8bcFWIQcoqf3BHx/HJPCSSoibCpy4uXZ1s7r6fQMOP7y5e4a3rFifYTDtFaoSp4nozXpYQuoamLvwHj7AQimtv4hDvbNGYo1E4TbcMheDIhmb1G81VWDpqUgHJaj95aiks2j2q1ZstO5aD01zTkz6YZRD3J17UEURQ0BsqDASTckOjPA0JjRyD0Mm2KQl0e5j1oQf7GEHXI5n2qnQASDtEguUWXQYqWe9XI4BQTqwkgigCNYrNZ9WDlvOXzG/4+PM7cA3ulJTgqCRxCjxObU2cPTJUc+xu5nLN6vPr2QiYdZFNqPlrw/Ml5o+ymrnjtliCp8BZDvJoE+Z1mX5Zt6fKNHg2VYFrtwlfervvy0dUpUwf3s2RspNNU2kXFpALf6ZEG/bcGPl5biATNQDDexKGtACF6ElpfXxIuQMKhk+1tYqntVMc/wvJ9iDr/PMMuh9r0osqatc+avJBT/yjjwweOUVVzP5vv+svwGGsGmlEKeAQX+h1uUJDJl6hU90BPqVv11tQ5FxM4aFBbiZm+6EnfeE7fKmJmwoj7pznGvN2gHMQerNGW2tK1iN2sEZLMqVArlUH/qgnrdzuLh/qi+YmSrapM/gpyKkdteLD6rS9qvXVdmSQC/YG+tLeGC72Np/mMSDJfCOHtcBIpvcStmzPkX5799O9WjpG02/KTtErboZ228xRRF4uogps5HtmOxwRJG9lw3/GXP3vX894NdmtXLQtXEQkUHp0lBarVvdBT6FmzMeWVQehzHPLNfwUmPWpLOxQ9ZXd6/G/GPBv7yDsu5UeoE2vQVJKbrukVnBBv6gx10jEYWDv+q52uI1pY3MrQ3rN0AclihfmuBdel19x75NX6ZbNBZSYt50VTKUojN7OebqPwoITO66Bt+5yFG2Z/JIJrMDiNGXeJx6jJto4khykDWs5TUK8egtb3xerO/ZtI6B+gr3H3+EkkxqMr77fxe9dzroDIZmPpnnoaDJPgS+e3d/3NvWZUiphQzPxGiG+5bTI4ata7d1yxXPl8gNWapTntsl+SLENwnZBJc+RUb3HMy0uS7AWqHziC9T79dIEFz/2D47ejBQGUGc4Xx5yUuqFPEusXwvWCQ0yHE8oRGFb32JJJ8sg/rZa3DgWzDYGCpprUC+rVKpjYOOWJl12Lx71lHzduuHXAe/qNtTn5F5HncT+TfMvWVgUe5qbRXDBOXTEC0o+gT0ZWcUFNYyPcHDAKCFCu1h+5T6v6BXGqDIJDP4KeCFkRQV/Tmvvi6M8ftNnKYjCl7s25zzdOehik3i13blC5zBBiwSp2QXCoTTsr6rMTIjQoBxBxuZX5cQsGJIsxhaoGnpYBY9XjAxTzs/FU3XHHoTW97q9vzXDPfIhJmRwkih+gJARULXi9Jai9OmFbUtFU8zSFfCmPy6kcxaY64QrT8P3zbOPv62fqtrFpaDXbGDncKU/nPoST+xHfgvG+Zv8VFP0BnTZHrEWwSLEKWLuBWUhvVeKD5sr7F4o4KHdBH5Zbudn+57wE0X6YwBHu9tCMW8eK4gEBQTI99p6xiDaYIU97qE7MApsap00I6uTBTjaDJPXgeqVlNo5N6AQeyQtrlaXZOY0rN9zvuefTVy2jR8Uwe7mm0Ej1MbaHRwzPKYpuXt0W36NpB0JVAfQnFLT7g7IQwJTqLuyEvsL5x/LtH2jgAC0U2zYz2atyn8Q+cuwM04w3QD0EjWK1toGcoqWthGZy7gVBAbMpC5g5FhbAi8NjnX3Knnd9+Cd9hCh+gDu3KKpBItYczTmzKlMYCLRpmyeopFcCfEUv7ILeyoDKfMsHAxJE22FZ+z2pNsQJ9Z8h5JOBehh3qmXkBNrucRpMmuCSssCkaZLwfGXN3NJSZshFNEM2XFV+vthjvX4vQdu3Sws1n2O7vEcBEgE4NCnKmmW9zNxo4p9ECVwfRjCGftpgP/xMHlyeb1rU3yFai8n0EiMNsojNCNF33GJNphT9GOdU68iHJbcqPwOPPeqRMrBaLPg2MaWV6ULT75E0t1X7cWpWhtXKoLtybc18cfJD10gD/qFjT9VO15JXRIDI0BwFyDmkOeQWZpC2Iy+rMQgAGm36Uwl91SvLNon/yENwlOpSPwIL16cxBDVAJzFoXjfo1n7qZrJ030RFVtiz6lOPADvBfWpa225DUMdBcxY7jXY8rhaAWcmBWepzsyaKIyZrq7K0fx59iAjCOfsr0dEoVliao+VgpuhQoXKk3z614MIYsJ1ofWyrzAVu+4UsZ1MnIemwviYsfHCovm2uRKYlM7aKIlnSJi5J5G9Rdl5dw07EI7RdfSCz4FX1wymviXNH6FF6asMh/Hrx8IAyYemr7NEH7YK9Qp9s8TbbhwrfSl7LVmH+aSlRDRIlnyljNJg90F3I2NsdMvdGci19OqejYiNM36GRRjZjygCWu8r/Vn2UHvuAnHpWgFW8cLly95534OmR2WLWFh0Q+uZ1LNrpUYBE7hUHccF9GbEs/EHcsTaBX7tVfSWhynSN54QqkXYTTfNeW/+uOmPsDcLg93XTSdEmGIVz8GeeowCJwru5s5U44QF1xop3xKk3aTn42u8qKLoPo0ahYUT/L8AANle1eCswdNIAAAAASUVORK5CYII="/> 860 <span class="alt">
860LiveOne</span> 861 </div> 862 </div> 863 </div> 864 <div class="container" aria-hidden="true"> 865 <section tabindex="-1" class="section empty no-tile-hover section--main section--empty section--no-tile-hover" data-count="0"> 866 <h2 class="shimmer"> </h2> 867 <div class="scroll-container"> 868 <div class="tile-group"> 869 <div class="tile-container radio alt-image-layout" tabindex="-1"> 870 <div class="tile" > 871 <div class="overlay shimmer" role="none"></div> 872 </div> 873 <div class="metadata"> 874 <span class="title shimmer" role="none"> </span> 875 <p class="subtitle shimmer" role="none"> </p> 876 </div> 877 </div> 878 <div class="tile-container radio alt-image-layout" tabindex="-1"> 879 <div class="tile" > 880 <div class="overlay shimmer" role="none"></div> 881 </div> 882 <div class="metadata"> 883 <span class="title shimmer" role="none"> </span> 884 <p class="subtitle shimmer" role="none"> </p> 885 </div> 886 </div> 887 <div class="tile-container radio alt-image-layout" tabindex="-1"> 888 <div class="tile" > 889 <div class="overlay shimmer" role="none"></div> 890 </div> 891 <div class="metadata"> 892 <span class="title shimmer" role="none"> </span> 893 <p class="subtitle shimmer" role="none"> </p> 894 </div> 895 </div> 896 <div class="tile-container radio alt-image-layout" tabindex="-1"> 897 <div class="tile" > 898 <div class="overlay shimmer" role="none"></div> 899 </div> 900 <div class="metadata"> 901 <span class="title shimmer" role="none"> </span> 902 <p class="subtitle shimmer" role="none"> </p> 903 </div> 904 </div> 905 </div> 906 </div> 907 </section> 908 <section tabindex="-1" class="section empty no-tile-hover section--main section--empty section--no-tile-hover" data-count="0"> 909 <h2 class="shimmer"> </h2> 910 <div class="scroll-container"> 911 <div class="tile-group"> 912 <div class="tile-container radio alt-image-layout" tabindex="-1"> 913 <div class="tile" > 914 <div class="overlay shimmer" role="none"></div> 915 </div> 916 <div class="metadata"> 917 <span class="title shimmer" role="none"> </span> 918 <p class="subtitle shimmer" role="none"> </p> 919 </div> 920 </div> 921 <div class="tile-container radio alt-image-layout" tabindex="-1"> 922 <div class="tile" > 923 <div class="overlay shimmer" role="none"></div> 924 </div> 925 <div class="metadata"> 926 <span class="title shimmer" role="none"> </span> 927 <p class="subtitle shimmer" role="none"> </p> 928 </div> 929 </div> 930 <div class="tile-container radio alt-image-layout" tabindex="-1"> 931 <div class="tile" > 932 <div class="overlay shimmer" role="none"></div> 933 </div> 934 <div class="metadata"> 935 <span class="title shimmer" role="none"> </span> 936 <p class="subtitle shimmer" role="none"> </p> 937 </div> 938 </div> 939 <div class="tile-container radio alt-image-layout" tabindex="-1"> 940 <div class="tile" > 941 <div class="overlay shimmer" role="none"></div> 942 </div> 943 <div class="metadata"> 944 <span class="title shimmer" role="none"> </span> 945 <p class="subtitle shimmer" role="none"> </p> 946 </div> 947 </div> 948 </div> 949 </div> 950 </section> 951 </div> 952</div><div id="StaticView" class="page StaticView" data-bind="visible:active,html:data"> 953 <div id="AppsView" class="AppsView" data-type="static">
954<script> 955 data = { 956 "view" : { 957 "title" : "Get the App", 958 "seoName" : "apps", 959 "bodyStyle" : ["no-hero","dark-theme"], 960 "stylesheet" : [ 961 {"apps" : "/s=4.0.1400/css/apps.css"} 962 ] 963 } 964 };; 965// YES!! This MUST end with two(2) semi-colons...we need this for regex parsing. 966</script>
966 967 <section tabindex="-1" class="dynamic-content spotlight" data-bind="css:{subscriber:APP.USER.slackerUser() && APP.USER.slackerUser().actualTier >= 5}"> 968 <div class="scroll-container"> 969 <div class="tile-group"> 970 <div class="tile-container" tabindex="-1" > 971 <div class="tile lazyImg" lazySrc="//cdn.liveone.com/s=4.0.1400/images/bg/get-app-hero.jpg" lazyMobileSrc="//cdn.liveone.com/s=4.0.1400/images/bg/get-app-hero-mobile.jpg"> 972 <h2>STAY CONNECTED</h2> 973 <h3>EVERYWHERE</h3> 974 975 <p class="intro"> 976 Whether you're spending more time at home or keeping your daily commute, we keep you connected...wherever you are. 977 </p> 978 979 <ul class="deviceTypes"> 980 <li><button type="button" data-bind="click:function () {document.getElementById('mobile-tablets-section').scrollIntoView({ behavior: 'smooth', block: 'center' })}">Mobile & tablets</button></li> 981 <li><button type="button" data-bind="click:function () {document.getElementById('smart-tv-section').scrollIntoView({ behavior: 'smooth', block: 'center' })}">TV & streaming</button></li> 982 <li><button type="button" data-bind="click:function () {document.getElementById('smart-speakers-section').scrollIntoView({ behavior: 'smooth', block: 'center' })}">Smart speakers</button></li> 983 <li><button type="button" data-bind="click:function () {document.getElementById('automotive-section').scrollIntoView({ behavior: 'smooth', block: 'center' })}">Automotive</button></li> 984 </ul> 985 986 <p class="centered upgrade" data-bind="visible:!APP.noUpsell() && !APP.USER.slackerUser() || APP.USER.slackerUser().actualTier < 5" style="display:none"> 987 <button class="std" data-bind="click:function(){APP.goToPage('upgrade')}">LEARN MORE</button> 988 <a class="trial-link" href="/us/plus" data-bind="click:function (){APP.goToPage('upgrade')}">Get PLUS for 25% OFF!</a> 989 </p> 990 991 <p class="disclaimer">*LiveOne videos and livestreams available worldwide. Radio services are currently only available in the US and Canada.</p> 992 </div> 993 </div> 994 </div> 995 </div> 996 </section> 997 998 <section class="static-content apps-catalog"> 999 <div class="apps-catalog__intro"> 1000 <p class="apps-eyebrow">One account. More ways to listen.</p> 1001 <h1>Find LiveOne on your favorite devices.</h1> 1002 <p>Download the app or choose a platform below to keep your favorites with you at home, on the road, and everywhere in between.</p> 1003 </div> 1004 1005 <section tabindex="-1" class="download mobile section section--main section--download section--mobile" data-bind="with:APP.downloadApps"> 1006 <h2 id="mobile-tablets-section">Mobile & Tablets</h2> 1007 <p class="section-copy">Take LiveOne with you on iPhone, iPad, and Android.</p> 1008 <ul class="download-links"> 1009 <li class="apple"> 1010 <a href="https://apps.apple.com/us/app/liveone-music/id298307011" data-bind="click:function () {getAppDownload('ios')}" target="_blank" rel="noopener noreferrer" aria-label="Download LiveOne from the App Store"><img src="/s=4.0.1400/images/appstore/ios-badge.png" alt="Download on the App Store"/></a> 1011 </li> 1012 <li class="google"> 1013 <a href="https://play.google.com/store/apps/details?id=com.slacker.radio" data-bind="click:function () {getAppDownload('android')}" target="_blank" rel="noopener noreferrer" aria-label="Download LiveOne from Google Play"><img src="/s=4.0.1400/images/appstore/google-play-badge.png" alt="Get it on Google Play"/></a> 1014 </li> 1015 </ul> 1016 </section> 1017 <section tabindex="-1" class="section apps tv section--main section--apps section--tv" data-bind="with:APP.downloadApps"> 1018 <h2 id="smart-tv-section">Smart TV & Streaming</h2> 1019 <p class="section-copy">Turn the screen in your living room into the center of your LiveOne experience.</p> 1020 1021 <div class="scroll-container"> 1022 <div class="tile-group"> 1023 <div class="tile-container app-device" title="TCL" tabindex="-1" data-bind="click:function () {getAppDownload('tcl')}"> 1024 <div class="tile lazyImg tcl" aria-live="polite" role="img" aria-label="TCL TV device" lazysrc="/s=4.0.1400/images/appstore/devices/tcl-mock2.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1025 <div class="metadata"> 1026 <span class="title" role="heading" aria-level="3">TCL</span> 1027 </div> 1028 </div>
1029 <div class="tile-container app-device" title="Android TV" tabindex="-1" data-bind="click:function () {getAppDownload('android_tv')}"> 1030 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="Android TV device" lazysrc="/s=4.0.1400/images/appstore/devices/Android_TV.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1031 <div class="metadata"> 1032 <span class="title" role="heading" aria-level="3">Android TV</span> 1033 </div> 1034 </div> 1035 <div class="tile-container app-device" title="Apple TV" tabindex="-1" data-bind="click:function () {getAppDownload('tvos')}"> 1036 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="Apple TV device" lazysrc="/s=4.0.1400/images/appstore/devices/appletv.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1037 <div class="metadata"> 1038 <span class="title" role="heading" aria-level="3">Apple TV</span> 1039 </div> 1040 </div> 1041 <div class="tile-container app-device nolink" title="Amazon FireTV" tabindex="-1"> 1042 <div class="tile lazyImg" data-bind="click:function () {getAppDownload('firetv')},clickBubble: false" aria-live="polite" role="img" aria-label="Amazon FireTV device" lazysrc="/s=4.0.1400/images/appstore/devices/amazon-fire-tv-stick.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1043 <div class="metadata"> 1044 <span class="title linkish" data-bind="click:function () {getAppDownload('firetv')},clickBubble: false">Amazon FireTV</span> 1045 <div class="description">Available for all FireTV and FireTV Stick devices.</div> 1046 </div> 1047 </div> 1048 <div class="tile-container app-device nolink" title="ROKU" tabindex="-1"> 1049 <div class="tile lazyImg" data-bind="click:function () {getAppDownload('roku')},clickBubble: false" aria-live="polite" role="img" aria-label="Roku device" lazysrc="/s=4.0.1400/images/appstore/devices/Roku-device.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1050 <div class="metadata"> 1051 <span class="title linkish" data-bind="click:function () {getAppDownload('roku')},clickBubble: false">ROKU</span> 1052 <div class="description">Already have device?<br/><a href="/activate" data-bind="click:function () {APP.goToPage('activate')},clickBubble: false">Connect your LiveOne Account here.</a></div> 1053 </div> 1054 </div> 1055 1056 <div class="tile-container app-device" title="Samsung Smart TV" tabindex="-1" data-bind="click:function () {getAppDownload('samsung')}"> 1057 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="Samsung Smart TV device" lazysrc="/s=4.0.1400/images/appstore/devices/samsungTV.jpg" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1058 <div class="metadata"> 1059 <span class="title" role="heading" aria-level="3">Samsung Smart TV</span> 1060 <div class="description">Available on model year 2017 and beyond SmartTVs</div> 1061 </div> 1062 </div> 1063 1064 <div class="tile-container app-device" title="Google Chromecast" tabindex="-1" data-bind="click:function () {window.open('https://store.google.com/product/chromecast')}"> 1065 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="Google Chromecast device" lazysrc="/s=4.0.1400/images/appstore/devices/Google_Chromecast.jpg" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1066 <div class="metadata"> 1067 <span id="smart-tv-section-chromecast" class="title" role="heading" aria-level="3">Google Chromecast</span> 1068 </div> 1069 </div> 1070 </div> 1071 </div> 1072 1073 </section> 1074 <section tabindex="-1" class="section apps speakers section--main section--apps section--speakers" data-bind="with:APP.downloadApps"> 1075 <h2 id="smart-speakers-section">Smart Speakers</h2> 1076 <p class="section-copy">Bring your favorite stations and audio into every room.</p> 1077 1078 <div class="scroll-container"> 1079 <div class="tile-group"> 1080 <div class="tile-container app-device nolink" title="Amazon Alexa" tabindex="-1"> 1081 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="Amazon Alexa device" lazysrc="/s=4.0.1400/images/appstore/devices/amazon-echo.jpg" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1082 <div class="metadata"> 1083 <span class="title" role="heading" aria-level="3"><img class="brand-logo" style="height:2em" src="/s=4.0.1400/images/appstore/ask-alexa.png" alt="Ask Alexa" /></span> 1084 <div class="description">Need help adding LiveOne to your Alexa device?<br/><a target="_blank" rel="noopener noreferrer" href="https://support.liveone.com/hc/en-us/articles/4416835235995">Click Here</a></div> 1085 </div> 1086 </div> 1087 1088 <div class="tile-container app-device nolink" title="SONOS" tabindex="-1"> 1089 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="SONOS speakers" lazysrc="/s=4.0.1400/images/appstore/devices/Sonos-Family-High-Res_new_8.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1090 <div class="metadata"> 1091 <span class="title" role="heading" aria-level="3">SONOS</span> 1092 <div class="description">Need help adding LiveOne to your Sonos device?<br/><a target="_blank" rel="noopener noreferrer" href="https://support.liveone.com/hc/en-us/articles/4416826202523">
1092Click Here</a></div> 1093 </div> 1094 </div> 1095 </div> 1096 </div> 1097 1098 </section> 1099 <section tabindex="-1" class="section apps automotive section--main section--apps section--automotive" data-bind="with:APP.downloadApps"> 1100 <h2 id="automotive-section">Automotive Partners</h2> 1101 <p class="section-copy">Enjoy LiveOne through supported connected-car systems and automotive platforms.</p> 1102 1103 <div class="scroll-container"> 1104 <div class="tile-group"> 1105 <div class="tile-container app-device nolink" title="Lexus" tabindex="-1" data-bind="click:function () {}"> 1106 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="Lexus logo" lazysrc="/s=4.0.1400/images/appstore/automotive/lexus.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1107 <div class="metadata"><span class="title" role="heading" aria-level="3">Lexus</span></div> 1108 </div> 1109 <div class="tile-container app-device nolink" title="Ford" tabindex="-1" data-bind="click:function () {}"> 1110 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="Ford logo" lazysrc="/s=4.0.1400/images/appstore/automotive/ford.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1111 <div class="metadata"><span class="title" role="heading" aria-level="3">Ford</span></div> 1112 </div> 1113 <div class="tile-container app-device nolink" title="Tesla" tabindex="-1" data-bind="click:function () {}"> 1114 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="Tesla logo" lazysrc="/s=4.0.1400/images/appstore/automotive/tesla.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1115 <div class="metadata"><span class="title" role="heading" aria-level="3">Tesla</span></div> 1116 </div> 1117 <div class="tile-container app-device nolink" title="Toyota" tabindex="-1" data-bind="click:function () {}"> 1118 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="Toyota logo" lazysrc="/s=4.0.1400/images/appstore/automotive/toyota.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1119 <div class="metadata"><span class="title" role="heading" aria-level="3">Toyota</span></div> 1120 </div> 1121 <div class="tile-container app-device nolink" title="Android Automotive" tabindex="-1" data-bind="click:function () {}"> 1122 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="Android Automotive logo" lazysrc="/s=4.0.1400/images/appstore/automotive/AndroidAutomotive-Logo3.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1123 <div class="metadata"><span class="title" role="heading" aria-level="3">Android Automotive</span></div> 1124 </div> 1125 <div class="tile-container app-device nolink" title="Harman" tabindex="-1" data-bind="click:function () {}"> 1126 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="Harman logo" lazysrc="/s=4.0.1400/images/appstore/automotive/Harman.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1127 <div class="metadata"><span class="title" role="heading" aria-level="3">Harman</span></div> 1128 </div> 1129 <div class="tile-container app-device nolink" title="Faurecia-Aptoide" tabindex="-1" data-bind="click:function () {}"> 1130 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="Faurecia-Aptoide logo" lazysrc="/s=4.0.1400/images/appstore/automotive/Faurecia-Aptoide.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1131 <div class="metadata"><span class="title" role="heading" aria-level="3">Faurecia Aptoide</span></div> 1132 </div> 1133 <div class="tile-container app-device nolink" title="Cerence" tabindex="-1" data-bind="click:function () {}"> 1134 <div class="tile lazyImg" aria-live="polite" role="img" aria-label="Cerence logo" lazysrc="/s=4.0.1400/images/appstore/automotive/Cerence.png" style="background-image: url('/s=4.0.1400/images/pixel.gif')"></div> 1135 <div class="metadata"><span class="title" role="heading" aria-level="3">Cerence</span></div> 1136 </div> 1137 </div> 1138 </div> 1139 1140 </section> 1141 </section> 1142</div> 1143</div> 1144 1145 <!-- MAIN SITE CONTENT TEMPLATES --> 1146 <div id="site-framework"></div>
1147 </div> 1148 <!-- FOOTER --> 1149
1149<script type="text/html" id="grid-tile"> 1150 <div class="tile-container" tabindex="-1" 1151 data-bind="attr:{id:'tile-'+uiItemId,'data-spotlightItem':(section.isSpotlight) ? $index : ''},click:APP.onTileClick, clickBubble: false,css:classNames($index())"> 1152<!-- ko if: (item && item.nodeType === 'category' && section.classNames.indexOf('genres') > -1) --> 1153 <!-- Use a real <img> so it never crops --> 1154 <img class="genre-img" 1155 data-bind=" 1156 attr: { 1157 src: posterImgUrl, 1158 alt: item.name || 'Genre Image' 1159 }, 1160 style: { 1161 width: '100%', 1162 height: 'auto' 1163 } 1164 " /> 1165 <!-- /ko --> 1166 1167 <!-- ko if: !(item && item.nodeType === 'category' && section.classNames.indexOf('genres') > -1) --> 1168 <div class="tile lazyImg" aria-live="assertive" role="button" data-bind="css:{disabled:removed()}, 1169 attr:{ 1170 id:'video-'+uiItemId, 1171 'aria-labelledby':'title-'+uiItemId, 1172 tabindex:(section.isSpotlight)?-1:0, 1173 'lazySrc':((section.isSpotlight)?spotlightBgImageUrl:posterImgUrl), 1174 'aria-label': item.name ? item.name : 'defaultAriaLabel' 1175 }, 1176 event:{ 1177 mouseover:APP._onTileFocus.bind(section), 1178 focus:APP._onTileFocus.bind(section), 1179 blur:APP._onTileBlur.bind(section) 1180 }, 1181 click:function (data, event) { 1182 if (!section.isSpotlight){ 1183 APP.onTileClick(data, event) 1184 } 1185 }, 1186 clickBubble: false, 1187 style: { border: (item && item.nodeType === 'category') ? '1px solid #e0e0e0' : '' }"> 1188 1189 1190 <!-- ko if: section.sectionData.editable&§ion.sectionData.editable.type == 'picker' --> 1191 <div class="overlay" data-bind="clickBubble: false,click:function (data, event) {$root.onSelectArtist.bind($root)(data, section)}"></div> 1192 <!-- /ko --> 1193 <!-- ko if: !section.sectionData.editable --> 1194 <div class="overlay"></div> 1195 <!-- /ko --> 1196 1197 <div class="overlay dazzle lazyImg" data-bind="attr:{'lazySrc':(section.isSpotlight&§ion.classNames.indexOf('radio')>-1)?($root.headerImage)?$root.headerImage():posterImgUrl:''}"></div> 1198 1199 <!-- ko if:!section.isSpotlight --> 1200 <div class="status-badge" tabindex="-1" data-bind="visible:item.streamStateBadge()&&item.streamStateBadge()!='offline',css:item.streamStateBadge" style="display:none"><span data-bind="text:item.streamStateBadge"></span></div> 1201 <!-- ko if: item.displayDuration --> 1202 <div class="item-duration" data-bind="text:item.displayDuration"></div> 1203 <!-- /ko --> 1204 <!-- /ko --> 1205 1206 <!-- ko if:section.isSpotlight --> 1207 <!-- ko if: APP.implementationSuperType() == 'tv' && section.classNames.indexOf('radio')>-1--> 1208 <div class="overlay left-to-right" data-bind="style:{'background-image':'url('+(($root.headerImage)?$root.headerImage():posterImgUrl)+')'}"></div> 1209 <!-- /ko --> 1210 <!-- ko if: APP.implementationSuperType() != 'tv' || section.classNames.indexOf('radio')==-1--> 1211 <div class="overlay left-to-right"></div> 1212 <!-- /ko --> 1213 1214 <!-- ko if: item.iconPath --> 1215 <div class="tile-icon" data-bind="style:{'background-image':'url('+item.iconPath+'/web/3/center/x200.png)'}"></div> 1216 <!-- /ko --> 1217 1218 <div class="countdown" aria-hidden="true" data-bind="visible:countdown(),countdownclock:countdown" style="display:none"> 1219 <div class="message" data-bind="visible:countdownMessage" style="display:none"> 1220 <span data-bind="text:countdownMessage" /> 1221 </div> 1222 <div class="clock" data-bind="visible:countdown" style="display:none"> 1223 <span class="time" data-bind="text:_clock.days"></span> <span class="sep">:</span> 1224 <span class="time" data-bind="text:_clock.hours"></span> <span class="sep">:</span> 1225 <span class="time" data-bind="text:_clock.minutes"></span> <span class="sep">:</span> 1226 <span class="time" data-bind="text:_clock.seconds"></span> 1227 <div class="fullDateTime" data-bind="css:{'with-msg':countdownMessage}"> 1228 <span class="longDate" data-bind="text:_clock.longdate"></span> 1229 </div>
1230 </div> 1231 </div> 1232 1233 <a id="spotlight-catch-top" aria-hidden="true" class="focus-catch spotlight-play" tabindex="-1"></a> 1234 1235 <div class="metadata" data-bind="css:{playable:item.contentUrl, 'with-countdown':countdown()}"> 1236 <!-- ko if: item.paywallBadgeType() && item.paywallBadgeType() != 'register' --> 1237 <div class="diamond" data-bind="css:{'ticketing':item.paywallBadgeType()=='ticketing','with-badge':item.contentTypeBadge()||item.streamStateBadge()!='offline'}" title="Subscriber exclusive content"> 1238 <svg role="img" aria-label="diamond icon" version="1.1" id="diamond" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve"> 1239 <g> 1240 <path d="M15.1,11.7c-1,2.6-2.1,5.1-3.1,7.8c-1.1-2.6-2.1-5.2-3.1-7.8C11,11.7,13,11.7,15.1,11.7z"/> 1241 <path d="M15.1,11.3c-2.1,0-4.1,0-6.1,0c0.1-0.4,0.3-0.8,0.4-1.2c0.3-1,0.7-1.9,1-2.9C10.4,7,10.5,7,10.7,7 1242 c0.9,0,1.8,0,2.8,0C14,8.4,14.5,9.8,15.1,11.3z"/> 1243 <path d="M13.9,6.9c1-0.4,2.1-0.7,3.1-1.1C17.7,6.9,18.3,8,19,9c-1.2,0.7-2.3,1.4-3.6,2.2C14.9,9.8,14.4,8.4,13.9,6.9z"/> 1244 <path d="M5,9C5,8.9,5,8.9,5.1,8.9c0.6-1,1.2-2,1.9-3c1,0.3,2,0.7,3.1,1.1c-0.5,1.4-1,2.9-1.5,4.3C7.3,10.5,6.2,9.7,5,9z"/> 1245 <path d="M16.6,5.5c-0.7,0.3-1.4,0.5-2.1,0.7c-0.5,0.2-1.1,0.3-1.7,0.3c-0.8,0-1.7,0.1-2.5,0C9.5,6.4,8.7,6,8,5.7 1246 C7.8,5.7,7.6,5.6,7.4,5.5c1-0.3,1.9-0.7,2.8-1c0.1,0,0.2,0,0.3,0c1,0,2,0,3,0c0.1,0,0.3,0,0.4,0.1C14.8,4.9,15.6,5.2,16.6,5.5z"/> 1247 <path d="M19,9.6c-2.1,3.1-4.2,6.3-6.3,9.4c0,0,0,0-0.1,0c0-0.1,0.1-0.2,0.1-0.2c0.9-2.3,1.9-4.7,2.8-7 1248 c0-0.1,0.1-0.1,0.1-0.1C16.7,10.9,17.9,10.2,19,9.6C19,9.6,19,9.6,19,9.6z"/> 1249 <path d="M11.3,19C9.2,15.9,7.1,12.7,5,9.6c0,0,0,0,0,0c0.6,0.4,1.2,0.7,1.8,1.1c0.4,0.3,0.9,0.5,1.3,0.8 1250 c0.2,0.1,0.3,0.3,0.4,0.5c0.6,1.5,1.2,3,1.8,4.6c0.3,0.8,0.6,1.6,0.9,2.3C11.3,18.9,11.3,18.9,11.3,19C11.3,19,11.3,19,11.3,19z"/> 1251 </g> 1252 </svg> 1253 <svg role="img" aria-label="ticket icon" id="ticket" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"> 1254 <path data-name="layer2" d="M55 18.7A6.9 6.9 0 0 1 45.3 9l-7-7L2 38.3l7 7a6.9 6.9 0 0 1 9.7 9.7l7 7L62 25.7z" 1255 fill="none" stroke="#202020" stroke-miterlimit="10" stroke-width="2" stroke-linejoin="round" 1256 stroke-linecap="round"></path> 1257 <path data-name="layer1" d="M30.6 46a3 3 0 0 1-4.2 0L18 37.6a3 3 0 0 1 0-4.2L33.4 18a3 3 0 0 1 4.2 0l8.4 8.4a3 3 0 0 1 0 4.2z" 1258 fill="none" stroke="#202020" stroke-miterlimit="10" stroke-width="2" stroke-linejoin="round" 1259 stroke-linecap="round"></path> 1260 </svg> 1261 </div> 1262 <!-- /ko --> 1263 1264 <div class="status-badge" tabindex="-1" data-bind="visible:item.streamStateBadge()&&item.streamStateBadge()!='offline',css:item.streamStateBadge" style="display:none"><span data-bind="text:item.streamStateBadge"></span></div> 1265 1266 <!-- ko if: item.contentTypeBadge() && (!item.streamStateBadge()||item.streamStateBadge()=='offline') --> 1267 <div class="content-type-badge" tabindex="-1" data-bind="css:item.contentTypeBadge().type"> 1268 <span data-bind="visible:item.contentTypeBadge().title,text:item.contentTypeBadge().title">ORIGINAL</span><span class="separator" data-bind="visible:item.contentTypeBadge().subtitle&&item.contentTypeBadge().type == 'original'"> | </span><span style="font-weight:normal" data-bind="visible:item.contentTypeBadge().subtitle,text:item.contentTypeBadge().subtitle"></span> 1269 </div> 1270 <!-- /ko --> 1271 1272 <!-- ko if: section.useSpotlightSectionData --> 1273 <!-- ko with: section.sectionData.artistMetaData --> 1274 <!-- ko if: category --> 1275 <div class="itemMetadata artist" data-bind="foreach:category"> 1276 <span data-bind="text:name"></span> 1277 <!-- ko if: ($index() === ($parent.length - 1)) -->, <!-- /ko --> 1278 </div> 1279 <!-- /ko --> 1280 <!-- /ko --> 1281 <!-- /ko --> 1282 1283 <div class="subtitle" data-bind="visible:item.subtitle && !item.isChannel" style="display:none"> 1284 <!-- ko if: item.nodeType == 'podcastEpisode' && !item.hasDetail --> 1285 <div class="link" style="display:inline-block" data-bind="text:subtitle,click:function (o,e) {APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'podcast','title':item.podcastTitle,'seoName':item.links.podcast.href,'id':item.podcastId})}"></div> 1286 <!-- /ko --> 1287 <!-- ko if: item.nodeType != 'podcastEpisode' || item.hasDetail --> 1288 <div style="display:inline-block" data-bind="text:subtitle"></div> 1289 <!-- /ko --> 1290 </div> 1291 <div class="title" role="heading" aria-level="3" data-bind="attr:{id:'title-'+item.uiItemId,'aria-label':(item.ariaTitle||'')+', '+(item.subtitle||'')+', '+(item.description||'')},css:{'with-advisory':item.advisory&&item.advisory.toLowerCase()=='e',editable:$parent.sectionData.editable&&$parent.sectionData.editable.rename},html:title,click:function (data, event){if ($parent.sectionData.editable&&$parent.sectionData.editable.rename){$root._onRenameRequest(data, event)}}"></div> 1292 <div class="subtitle" data-bind="visible:item.subtitle && item.isChannel,text:subtitle" style="display:none"></div> 1293 <div class="description" data-bind="visible:item.description,html:description" style="display:none"></div> 1294 1295 <!-- ko if: section.offer && section.isSpotlight --> 1296 <div class="offer"> 1297 <div class="description" data-bind="html:section.generateOfferHtml(section.offer)"></div>
1298 </div> 1299 <!-- /ko --> 1300 1301 <!-- ko if: section.useSpotlightSectionData --> 1302 <!-- ko with: section.sectionData.albumMetaData --> 1303 <div class="itemMetadata album"> 1304 <!-- ko if: artist && artist[0] --> 1305 1306 <p> 1307 <!-- ko if: artist[0].link --> 1308 <a href="#" data-bind="text:artist[0].name,attr:{'href':'/'+artist[0].link},click:function (o,e) {APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artist[0].name,'seoName':artist[0].link,'id':artist[0].id});}"></a> 1309 <!-- /ko --> 1310 <!-- ko if: !artist[0].link --> 1311 <span data-bind="text:artist[0].name"></span> 1312 <!-- /ko --> 1313 </p> 1314 <!-- /ko --> 1315 <!-- ko if: releaseDate --> 1316 <p><span data-bind="html:releaseDate.join(' • ')"></span></p> 1317 <!-- /ko --> 1318 <!-- ko if: copyright --> 1319 <p class="copyright" data-bind="html:'©'+copyright"></p> 1320 <!-- /ko --> 1321 </div> 1322 1323 <!-- /ko --> 1324 1325 <!-- ko with: section.sectionData.songMetaData --> 1326 <div class="itemMetadata album"> 1327 <!-- ko if: artist && artist[0] --> 1328 1329 <p><span class="label">by: </span> 1330 <!-- ko if: artist[0].link --> 1331 <a href="#" data-bind="text:artist[0].name,attr:{'href':'/'+artist[0].link},click:function (o,e) {APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artist[0].name,'seoName':artist[0].link,'id':artist[0].id});}"></a> 1332 <!-- /ko --> 1333 <!-- ko if: !artist[0].link --> 1334 <span data-bind="text:artist[0].name"></span> 1335 <!-- /ko --> 1336 </p> 1337 <!-- /ko --> 1338 </div> 1339 <!-- /ko --> 1340 1341 <!-- /ko --> 1342 1343 1344 1345 1346 <div role="button" class="button play std" style="display:none" 1347 data-bind="css:{restricted:restricted},attr:{tabindex: section.tabIndex, id:'btn-watch-'+uiItemId,'aria-label':((streamStateBadge()=='live')?'WATCH LIVE NOW':'WATCH')+', '+item.title},visible:item.contentUrl&&item.type!='podcastEpisode',click:APP.onTileClick,event:{focus:APP._onSpotlightNavDotFocus, keydown: APP.getKeyDownHandler(APP.onTileClick)},clickBubble: false"> 1348 <a href="" data-bind="text:(streamStateBadge()=='live')?'WATCH LIVE NOW':'WATCH',attr:{href:'/video/'+uiItemId,id:'btn-watch-'+uiItemId},clickBubble: false" onfocus="APP.currentView.lastFocusedItem=this.id;this.parentElement.focus()">WATCH NOW</a> 1349 </div> 1350 <div role="button" class="button play std radio-station" style="display:none" 1351 data-bind="css:{restricted:restricted},attr:{tabindex: section.tabIndex, id:'btn-listen-'+uiItemId,'aria-label':'Listen, ' + item.title},visible:item.slackerUrl||(item.type=='podcastEpisode'&&item.hasDetail),click:APP.onPlaySlackerRadioItem,event:{keydown: APP.getKeyDownHandler(APP.onPlaySlackerRadioItem), focus:APP._onSpotlightNavDotFocus},clickBubble: false"> 1352 <a href=""data-bind="attr:{href:item.slackerUrl,id:'btn-listen-'+uiItemId},clickBubble: false" onfocus="APP.currentView.lastFocusedItem=this.id;this.parentElement.focus()">LISTEN</a> 1353 </div> 1354 <!-- Item detail play button --> 1355 1356 <!-- ko if: !item.isVideo --> 1357 <!-- ko if: item.playType != 'STATION' && item.olicensed--> 1358 <div role="button" class="button play std radio" 1359 data-bind="css:{restricted:restricted,pause:isPlaying()&&APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle=='pause'},text:((isPlaying()&&APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle == 'pause')?'PAUSE':'PLAY')+ ' ' +nodeType.toUpperCase(),attr:{tabindex: section.tabIndex, id:'btn-radioplay-'+uiItemId},click:APP.onPlaySlackerRadioItem,event: {keydown: APP.getKeyDownHandler(APP.onPlaySlackerRadioItem)},clickBubble: false"> 1360 </div> 1361 <!-- /ko --> 1362 <!-- ko if: item.playType != 'STATION' && !item.olicensed && item.basicradio--> 1363 <div role="button" class="button play std radio" 1364 data-bind="css:{restricted:restricted,pause:isPlaying()&&APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle=='pause'},text:((isPlaying()&&APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle == 'pause')?'PAUSE':'PLAY')+ ' STATION',attr:{tabindex: section.tabIndex, id:'btn-radioplay-'+uiItemId}
1364,click:APP.onPlaySlackerRadioItem, event: {keydown: APP.getKeyDownHandler(APP.onPlaySlackerRadioItem)},clickBubble: false"> 1365 </div> 1366 <!-- /ko --> 1367 <!-- ko if: item.playType == 'STATION' && item.basicradio--> 1368 <div role="button" class="button play std radio" 1369 data-bind="css:{restricted:restricted,pause:isPlaying()&&APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle=='pause'},text:((isPlaying()&&APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle == 'pause')?'PAUSE':'PLAY')+ ' ' +playType,attr:{tabindex: section.tabIndex,id:'btn-radioplay-'+uiItemId},click:APP.onPlaySlackerRadioItem,clickBubble: false, event: {keydown: APP.getKeyDownHandler(APP.onPlaySlackerRadioItem)}"> 1370 </div> 1371 <!-- /ko --> 1372 <!-- /ko --> 1373 1374 1375 1376 <!-- ko if: section.useSpotlightEditActions --> 1377 <section tabindex="-1" class="item edit-actions" data-bind="css:{'no-play':(item.playType == 'STATION'&&!item.basicradio)||(item.playType != 'STATION' && !item.olicensed && !item.basicradio)}"> 1378 <!-- ko if: section.sectionData.share --> 1379 <button id='detail-editactions-share' class="std share" title="Share" tabindex="11" data-bind="event:{focus:APP._onItemDetailActionFocus.bind($root)},click:section.sectionData.share,clickBubble:false" onfocus="APP.currentView.lastFocusedItem=this.id;"><span>Share</span></button> 1380 <!-- /ko --> 1381 <!-- ko if: section.sectionData.bookmark--> 1382 <button id='detail-editactions-bookmark' class="std bookmark" title="Add To Favorites" tabindex="11" data-bind="css:section.sectionData.bookmark().state,attr:{title:(section.sectionData.bookmark().state=='on')?'Remove From Favorites':'Add To Favorites','aria-label':(section.sectionData.bookmark().state=='on')?'Remove From Favorites':'Add To Favorites'},event:{focus:APP._onItemDetailActionFocus.bind($root)},click:$root._onToggleBookmark" onfocus="APP.currentView.lastFocusedItem=this.id;"><span>Bookmark</span></button> 1383 <!-- /ko --> 1384 <!-- ko if: section.sectionData.artistNav--> 1385 <button id='detail-editactions-artistNav' class="std artist" title="Go To Artist Page" aria-label="Go To Artist Page" tabindex="11" data-bind="event:{focus:APP._onItemDetailActionFocus.bind($root)},click:section.sectionData.artistNav().go" onfocus="APP.currentView.lastFocusedItem=this.id;"><span>Artist Page</span></button> 1386 <!-- /ko --> 1387 1388 <!-- ko with: section.sectionData.editable --> 1389 1390 <!-- ko if: remove --> 1391 <button id='detail-editactions-remove' class="std delete" title="Delete" tabindex="11" data-bind="event:{focus:APP._onItemDetailActionFocus.bind($root)},click:remove" onfocus="APP.currentView.lastFocusedItem=this.id;"><span>DELETE</span></button> 1392 <!-- /ko --> 1393 <!-- ko if: addToStation --> 1394 <button id='detail-editactions-addToStation' class="std add" title="Add To Station" tabindex="11" data-bind="event:{focus:APP._onItemDetailActionFocus.bind($root)},click:addToStation" onfocus="APP.currentView.lastFocusedItem=this.id;"><span>Add To Station</span></button> 1395 <!-- /ko --> 1396 <!-- ko if: addToPlaylist --> 1397 <button id='detail-editactions-addToPlaylist' class="std add" title="Add To Playlist" tabindex="11" data-bind="event:{focus:APP._onItemDetailActionFocus.bind($root)},click:addToPlaylist" onfocus="APP.currentView.lastFocusedItem=this.id;"><span>Add To Playlist</span></button> 1398 <!-- /ko --> 1399 1400 <!-- /ko --> 1401 1402 </section> 1403 1404 <!-- /ko --> 1405 1406 <div role="button" class="button std more" tabindex="11" style="display:none" 1407 data-bind="attr:{id:'btn-more-'+uiItemId},visible:item.hasDetail&&!item.isVod(),click:function () {APP.onTileClick(this, null, true)},event:{focus:APP._onSpotlightNavDotFocus},clickBubble: false"> 1408 <a href="" data-bind="attr:{href:item.seoName,id:'btn-more-'+uiItemId,'aria-label':'For More, ' + item.title},clickBubble: false" onfocus="APP.currentView.lastFocusedItem=this.id;this.parentElement.focus()">FOR MORE</a> 1409 </div> 1410 <!-- ko if: item.contentUrl || item.slackerUrl || item.hasDetail --> 1411 <a id="spotlight-play-catch" aria-hidden="true" class="focus-catch spotlight-play" tabindex="-1"></a> 1412 <!-- /ko --> 1413 1414 <!-- ko if: section.useSpotlightSectionData --> 1415 <div class="capUnit medrect lazy" data-slotsize="medrect"></div> 1416 <div class="capUnit medrect lazy" data-slotsize="medrect"></div> 1417 <!-- /ko --> 1418 </div> 1419 <!-- ko if: item.iconPath && !section.isSpotlight --> 1420 <div class="tile-icon" data-bind="style:{'background-image':'url('+item.iconPath+'/web/3/center/x100.png)'}"></div> 1421 <!-- /ko --> 1422 1423 <!-- /ko --> 1424 </div> 1425 <!-- /ko --> 1426 <!-- ko if:!section.isSpotlight -->
1427 <div class="metadata" aria-live="polite" data-bind="style:{'cursor':(!item.contentTypeBadge()||item.contentTypeBadge().type!='ticketing'||(item.userHasTicket()&&!item.contentTypeBadge().showGotoEvent))?'pointer':'default'},attr:{'aria-labelledby':'title-'+item.uiItemId}"> 1428 <!-- ko if: item.advisory&&item.advisory.toLowerCase()=='e' --> 1429 <span class="advisory">E</span> 1430 <!-- /ko --> 1431 <span class="title" role="heading" aria-level="3" data-bind="css:{'with-advisory':item.advisory&&item.advisory.toLowerCase()=='e'},text:title,attr:{id:'title-'+item.uiItemId,'aria-label':(item.ariaTitle||'')+', '+(item.subtitle||'')+', '+(item.description||'')}"></span> 1432 <!-- ko if: item.subtitle --> 1433 <p class="subtitle" aria-live="off" data-bind="text:item.subtitle"></p> 1434 <!-- /ko --> 1435 <!-- ko if: item.price --> 1436 <p class="subtitle price" aria-live="off" data-bind="text:price"></p> 1437 1438 1439 <!-- ko if: item.contentTypeBadge() && item.contentTypeBadge().type === 'ticketing' --> 1440 <div style="text-align: center;"> 1441 <div class="content-type-badge" tabindex="-1" data-bind="css:item.contentTypeBadge().type"> 1442 <span data-bind="visible:item.contentTypeBadge().title,text:item.contentTypeBadge().title">ORIGINAL</span><span class="separator" data-bind="visible:item.contentTypeBadge().subtitle&&item.contentTypeBadge().type == 'original'"> | </span><span style="font-weight:normal" data-bind="visible:item.contentTypeBadge().subtitle,text:item.contentTypeBadge().subtitle"></span> 1443 </div> 1444 </div> 1445 <!-- /ko --> 1446 1447 <!-- /ko --> 1448 <!-- ko if: item.description --> 1449 <p class="description" aria-live="off" data-bind="text:description"></p> 1450 <!-- /ko --> 1451 1452 <!-- ko if: item.type == 'in-place' --> 1453 <button class="play" aria-live="off" data-bind="click:APP.onTileClick, clickBubble: false"></button> 1454 <!-- /ko --> 1455 1456 <!-- ko if: item.contentTypeBadge() && (item.contentTypeBadge().type === 'ticketing' || item.contentTypeBadge().isFree) --> 1457 <div class="ticket-tile-actions" style="text-align: center;"> 1458 <!-- ko if: item.userHasTicket() --> 1459 <div aria-live="off" class="description" style="font-weight:bolder">You've got your ticket. Enjoy access to this event.</div> 1460 <br/> 1461 <!-- /ko --> 1462 <!-- ko if: item.contentTypeBadge().isFree || (item.userHasTicket() && item.contentTypeBadge().showGotoEvent)--> 1463 <button class="std ticketing" data-bind="click:()=>APP.onPurchaseTicketsClick(item, true), clickBubble: false">GO TO EVENT</button> 1464 <!-- /ko --> 1465 <!-- ko if: !item.contentTypeBadge().isFree && !item.userHasTicket() && !item.contentTypeBadge().noSale --> 1466 <button class="std ticketing purchase" data-bind="click:APP.onPurchaseTicketsClick, clickBubble: false">BUY TICKET</button> 1467 <!-- ko if: item.contentTypeBadge().showGotoEvent --> 1468 <br/><br/> 1469 <button class="std ticketing goto" data-bind="click:()=>APP.onPurchaseTicketsClick(item, true), clickBubble: false">GO TO EVENT</button> 1470 <!-- /ko --> 1471 <!-- /ko --> 1472 <!-- ko if: item.contentTypeBadge().showOffsiteInfo --> 1473 <!-- ko if: !item.contentTypeBadge().isFree && !item.contentTypeBadge().noSale --> 1474 <br/><br/> 1475 <!-- /ko --> 1476 <button class="std ticketing info" data-bind="click:()=>window.open(item.contentTypeBadge().showOffsiteInfo), clickBubble: false">MORE INFO</button> 1477 <!-- /ko --> 1478 </div> 1479 <!-- /ko --> 1480 1481 <!-- ko if: (nodeType == 'artist' && basicradio>0) || (nodeType && nodeType != 'artist' && (basicradio>0 || olicensed>0)) || nodeType == 'station' || nodeType == 'podcastEpisode' --> 1482 <div role="button" class="button play" 1483 data-bind="css:{'radio-station':(!!APP.TILE_GLYPH && APP.TILE_GLYPH.usesRadioGlyph($data, APP)),restricted:restricted,pause:isPlaying()&&APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle=='pause'},attr:{tabindex: section.tabIndex, id:'btn-radioplay-'+uiItemId,'aria-label':(isPlaying()&&APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle=='pause')?'Pause Currently Playing':'Play Radio Station'},click:APP.onPlaySlackerRadioItem,clickBubble: false, event: {keydown: APP.getKeyDownHandler(APP.onPlaySlackerRadioItem)}"> 1484 </div> 1485 <!-- /ko --> 1486 <!-- ko if: item.canShowOptions --> 1487 <!-- ko if: nodeType == 'artist' --> 1488 <div role="button" aria-label="Artist Options" class="button options" tabindex="11" 1489 data-bind="click: $root._onRequestArtistOptions,clickBubble: false"> 1490 <svg role="img" aria-label="options menu" class="options" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 1491 <circle cx="2.5" cy="12" r="2.5" fill="white" style="stroke-width:0"></circle><circle cx="12" cy="12" r="2.5" fill="white" style="stroke-width:0"></circle><circle cx="21" cy="12" r="2.5" fill="white" style="stroke-width:0"></circle> 1492 </svg> 1493 </div> 1494 <!-- /ko --> 1495 <!-- ko if: nodeType == 'album' && olicensed --> 1496 <div role="button" aria-label="Album Options" class="button options" tabindex="11" 1497 data-bind="click: $root._onRequestAlbumOptions,clickBubble: false"> 1498 <svg role="img" aria-label="options menu" class="options" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 1499 <circle cx="2.5" cy="12" r="2.5" fill="white" style="stroke-width:0"></circle><circle cx="12" cy="12" r="2.5" fill="white" style="stroke-width:0"></circle><circle cx="21" cy="12" r="2.5" fill="white" style="stroke-width:0"></circle> 1500 </svg> 1501 </div> 1502 <!-- /ko --> 1503 <!-- ko if: nodeType != 'album' && nodeType != 'artist' --> 1504 <div role="button" aria-label="Station Options" class="button options" tabindex="11" 1505 data-bind="click: $root._onRequestStationOptions,clickBubble: false"> 1506 <svg role="img" aria-label="options menu" class="options" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 1507 <circle cx="2.5" cy="12" r="2.5" fill="white" style="stroke-width:0"></circle><circle cx="12" cy="12" r="2.5" fill="white" style="stroke-width:0"></circle><circle cx="21" cy="12" r="2.5" fill="white" style="stroke-width:0"></circle> 1508 </svg> 1509 </div> 1510 <!-- /ko --> 1511 <!-- /ko --> 1512 1513 <!-- ko if: item.editable --> 1514 <!-- ko if: section.sectionData.editable&§ion.sectionData.editable.type == 'artist' --> 1515 <div role="button" aria-label="Remove Artist From Station" class="button remove" tabindex="11" title="Remove Artist" 1516 data-bind="attr:{id:'btn-remove-'+uiItemId},clickBubble: false,click:function (data, event) {$root._onRequestRemoveArtist.bind($root)(data, section)}"> 1517 </div> 1518 <!-- /ko --> 1519 <!-- ko if: section.sectionData.editable&§ion.sectionData.editable.type == 'picker' --> 1520 <div role="button" aria-label="More Like This Artist" class="button check" tabindex="11" title="More Like This Artist" 1521 data-bind="attr:{id:'btn-select-'+uiItemId},clickBubble: false,click:function (data, event) {$root.onSelectArtist.bind($root)(data, section)}"> 1522 </div> 1523 <!-- /ko --> 1524 <!-- /ko --> 1525 </div> 1526 <!-- ko if: item.iconPath --> 1527 <div class="tile-icon" data-bind="style:{'background-image':'url('+item.iconPath+'/web/3/center/x100.png)'}"></div> 1528 <!-- /ko --> 1529 <!-- /ko --> 1530 1531 <!-- ko if: item.paywallBadgeType() && item.paywallBadgeType() != 'register' && !section.isSpotlight --> 1532 <div class="diamond" title="Subscriber exclusive content" data-bind="css:{'ticketing':item.paywallBadgeType()=='ticketing'}"> 1533 <svg role="presentation" alt="diamond icon" version="1.1" id="diamond" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve"> 1534 <g> 1535 <path d="M15.1,11.7c-1,2.6-2.1,5.1-3.1,7.8c-1.1-2.6-2.1-5.2-3.1-7.8C11,11.7,13,11.7,15.1,11.7z"/> 1536 <path d="M15.1,11.3c-2.1,0-4.1,0-6.1,0c0.1-0.4,0.3-0.8,0.4-1.2c0.3-1,0.7-1.9,1-2.9C10.4,7,10.5,7,10.7,7 1537 c0.9,0,1.8,0,2.8,0C14,8.4,14.5,9.8,15.1,11.3z"/> 1538 <path d="M13.9,6.9c1-0.4,2.1-0.7,3.1-1.1C17.7,6.9,18.3,8,19,9c-1.2,0.7-2.3,1.4-3.6,2.2C14.9,9.8,14.4,8.4,13.9,6.9z" 1539 /> 1540 <path d="M5,9C5,8.9,5,8.9,5.1,8.9c0.6-1,1.2-2,1.9-3c1,0.3,2,0.7,3.1,1.1c-0.5,1.4-1,2.9-1.5,4.3C7.3,10.5,6.2,9.7,5,9
1541 z"/> 1542 <path d="M16.6,5.5c-0.7,0.3-1.4,0.5-2.1,0.7c-0.5,0.2-1.1,0.3-1.7,0.3c-0.8,0-1.7,0.1-2.5,0C9.5,6.4,8.7,6,8,5.7 1543 C7.8,5.7,7.6,5.6,7.4,5.5c1-0.3,1.9-0.7,2.8-1c0.1,0,0.2,0,0.3,0c1,0,2,0,3,0c0.1,0,0.3,0,0.4,0.1C14.8,4.9,15.6,5.2,16.6,5.5z"/> 1544 <path d="M19,9.6c-2.1,3.1-4.2,6.3-6.3,9.4c0,0,0,0-0.1,0c0-0.1,0.1-0.2,0.1-0.2c0.9-2.3,1.9-4.7,2.8-7 1545 c0-0.1,0.1-0.1,0.1-0.1C16.7,10.9,17.9,10.2,19,9.6C19,9.6,19,9.6,19,9.6z"/> 1546 <path d="M11.3,19C9.2,15.9,7.1,12.7,5,9.6c0,0,0,0,0,0c0.6,0.4,1.2,0.7,1.8,1.1c0.4,0.3,0.9,0.5,1.3,0.8 1547 c0.2,0.1,0.3,0.3,0.4,0.5c0.6,1.5,1.2,3,1.8,4.6c0.3,0.8,0.6,1.6,0.9,2.3C11.3,18.9,11.3,18.9,11.3,19C11.3,19,11.3,19,11.3,19z"/> 1548 </g> 1549 </svg> 1550 <svg role="img" aria-label="ticket icon" id="ticket" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"> 1551 <path data-name="layer2" d="M55 18.7A6.9 6.9 0 0 1 45.3 9l-7-7L2 38.3l7 7a6.9 6.9 0 0 1 9.7 9.7l7 7L62 25.7z" 1552 fill="none" stroke="#202020" stroke-miterlimit="10" stroke-width="2" stroke-linejoin="round" 1553 stroke-linecap="round"></path> 1554 <path data-name="layer1" d="M30.6 46a3 3 0 0 1-4.2 0L18 37.6a3 3 0 0 1 0-4.2L33.4 18a3 3 0 0 1 4.2 0l8.4 8.4a3 3 0 0 1 0 4.2z" 1555 fill="none" stroke="#202020" stroke-miterlimit="10" stroke-width="2" stroke-linejoin="round" 1556 stroke-linecap="round"></path> 1557 </svg> 1558 </div> 1559 <!-- /ko --> 1560 </div> 1561</script>
vendor: 1 bytes, line 1561
1561
1562<script type="text/html" id="list-item"> 1563 <li class="section-list-item" aria-live="polite" tabindex="-1" data-bind="css:{'playing':isPlaying(),'searchMore':type=='searchMore',disabled:removed(),'podcast-episode':$parent.content.listType == 'podcast-episodes'},attr:{'data-position':(typeof(rootIndex)!=='undefined') ? rootIndex : sectionItemIndex}"> 1564 <!-- ko if: $parent.content.listType == 'podcast-episodes' --> 1565 <div class="column metadata"> 1566 <div class="title-container"> 1567 <!-- ko if: typeof explicit === 'string' ? explicit.toUpperCase() === 'TRUE' : explicit === true --> 1568<span class="advisory" title="Advisory Label">E</span> 1569 <!-- /ko --> 1570 <div class="title link" role="heading" aria-level="3" data-bind="attr:{tabindex: section.tabIndex}, event:{keydown: APP.getKeyDownHandler(function(o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'podcastEpisode','title':title,'seoName':link,'id':episodeId,_links:links})})}, text:title,click:function(o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'podcastEpisode','title':title,'seoName':link,'id':episodeId,_links:links})}"></div> 1571 </div> 1572 <div class="subtitle" data-bind="text:subtitle,visible:type!='searchMore'"></div> 1573 <div class="top-row" data-bind="visible:type!='searchMore'"> 1574 <span class="publishDate" data-bind="text:dateFormat(publishDate, 'mmmm dd yyyy')"></span> 1575 1576 <!-- ko if: typeof(offset) === 'undefined' || offset === null || finished --> 1577 · <span class="duration" data-bind="text:formatPTtime(duration)"></span> 1578 <!-- /ko --> 1579 1580 <!-- ko if: typeof(offset) !== 'undefined' && offset !== null --> 1581 1582 <!-- ko if: !finished && typeof(progressWidth) !== 'undefined' --> 1583 · <span class="disposition-status" data-bind="text: timeLeft + ' left'"></span> 1584 <div class="progress-bar"> 1585 <div class="progress" data-bind="style: { width: progressWidth }"></div> 1586 </div> 1587 <!-- /ko --> 1588 1589 <!-- ko if: finished --> 1590 · <span class="disposition-played">Played</span> 1591 <div class="checkmark"> 1592 <svg xmlns="http://www.w3.org/2000/svg" height="15" viewBox="0 0 24 24" width="15"> 1593 <path d="M0 0h24v24H0z" fill="none"/> 1594 <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/> 1595 </svg> 1596 </div> 1597 <!-- /ko --> 1598 1599 <!-- /ko --> 1600 </div> 1601 1602 </div> 1603 <!-- /ko --> 1604 1605 <!-- ko if: (!basicradio && olicensed && restricted)--> 1606 <!-- Filler column to hide button while retaining button column spacing and restricted dot psuedo element--> 1607 <div class="column button play rating restricted" tabindex="11"></div> 1608 <!-- /ko --> 1609 <!-- ko if: !(!basicradio && olicensed && restricted)--> 1610 <div class="column button" role="button" 1611 data-bind="css:{play:$parent.content.listType=='fav-song-ratings'||$parent.content.listType=='podcast-episodes'||$parent.content.listType.indexOf('-ratings')==-1,rating:$parent.content.listType!='fav-song-ratings'||$parent.content.listType.indexOf('-ratings')>-1,playable:(basicradio || olicensed),'radio-station':(basicradio && olicensed==0) || (basicradio && olicensed && restricted),'restricted':!basicradio && olicensed && restricted,pause:isPlaying()&&APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle=='pause'},attr:{tabindex: section.tabIndex,id:'btn-radioplay-'+uiItemId},event:{keydown: APP.getKeyDownHandler(APP.onPlaySlackerRadioItem),focus:APP._onTileFocus.bind(section)},click:APP.onPlaySlackerRadioItem,clickBubble: false"> 1612 1613 <!-- ko if: $parent.content.listType.indexOf('-ratings') > -1 && $parent.content.listType!='fav-song-ratings' && !isPlaying() --> 1614 <a href="#" class="heart" title="Unrate" data-bind="attr:{tabindex: section.tabIndex}, event:{keydown: APP.getKeyDownHandler(unrate)}, click:unrate,visible:rating==100, clickBubble: false"> 1615 <svg role="presentation" alt="heart" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> 1616 <g> 1617 <path id="fill" d="m12.05845,5.45073c4.47563,-13.03855 22.01129,0 0,16.76385c-22.01129,-16.76385 -4.47563,-29.80239 0,-16.76385z" stroke-linecap="null" stroke-linejoin="null" stroke-dasharray="null" stroke-width="null" fill="transparent"/> 1618 <path id="outline" d="m17.3,0c-2.3,0 -5.3,3.9 -5.3,3.9s-3,-3.9 -5.2,-3.9c-4.6,0 -6.8,2.3 -6.8,7c0,4.5 12,17 12,17s12,-12.5 12,-17c0,-4.7 -2.2,-7 -6.7,-7zm-15.8,7.2c0,-4 1.3,-5.7 5.3,-5.7c1.2,0 5.3,3.9 5.3,3.9s4.1,-3.9 5.3,-3.9c4,0 5.3,1.7 5.3,5.7c-0.2,3.8 -10.7,14.5 -10.7,14.5s-10.5,-10.7 -10.5,-14.5z" fill="#FFFFFF"/> 1619 </g> 1620 </svg> 1621 </a> 1622 1623 <a href="#" class="ban" title="Unrate" data-bind="attr:{tabindex: section.tabIndex}, event:{keydown: APP.getKeyDownHandler(unrate)}, click:unrate,visible:rating==-100, clickBubble: false"> 1624 <svg role="presentation" alt="ban" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 1625 <path fill="#FFF" d="M21 4.1l-1-1-.1-.1C17.8 1.1 15 0 12 0 5.4 0 0 5.4 0 12c0 3 1.1 5.8 3 7.9l.1.1.9.9.1.1c2.1 1.9 4.9 3 7.9 3 6.6 0 12-5.4 12-12 0-3-1.1-5.8-3-7.9zM1.5 12C1.5 6.2 6.2 1.5 12 1.5c2.6 0 5 1 6.9 2.6L4.1 18.9C2.5 17 1.5 14.6 1.5 12zM12 22.5c-2.6 0-5-1-6.9-2.6L19.9 5.1c1.6 1.8 2.6 4.2 2.6 6.9 0 5.8-4.7 10.5-10.5 10.5z"/> 1626 </svg> 1627 </a> 1628 <!-- /ko --> 1629 <!-- ko if: isPlaying() --> 1630 <!-- ko if: APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle=='pause' --> 1631 <svg role="img" aria-label="playing animation" class="lds-equalizer" width="100%" height="80px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewB
1631ox="0 0 100 100" preserveAspectRatio="xMidYMid" style="background: none; padding: 0; margin: 0;"> 1632 <g transform="rotate(180 50 50)"> 1633 <rect y="22" height="10.1976" fill="#ce1c35" x="28.333333333333336" width="10"> 1634 <animate attributeName="height" calcMode="spline" values="40;60;8;40" times="0;0.33;0.66;1" keySplines="0.5 0 0.5 1;0.5 0 0.5 1;0.5 0 0.5 1" repeatCount="indefinite" begin="-0.15s" dur="1.2"> 1635 </animate></rect><rect y="22" height="39.9224" fill="#ce1a35" x="39.44444444444444" width="10"> 1636 <animate attributeName="height" calcMode="spline" values="40;60;8;40" times="0;0.33;0.66;1" keySplines="0.5 0 0.5 1;0.5 0 0.5 1;0.5 0 0.5 1" repeatCount="indefinite" begin="-0.44999999999999996s" dur="1.2"> 1637 </animate></rect><rect y="22" height="59.496" fill="#ce1c35" x="50.55555555555556" width="10"> 1638 <animate attributeName="height" calcMode="spline" values="40;60;8;40" times="0;0.33;0.66;1" keySplines="0.5 0 0.5 1;0.5 0 0.5 1;0.5 0 0.5 1" repeatCount="indefinite" begin="-0.8999999999999999s" dur="1.2"> 1639 </animate></rect><rect y="22" height="57.0259" fill="#ce1c35" x="61.66666666666667" width="10"> 1640 <animate attributeName="height" calcMode="spline" values="40;60;8;40" times="0;0.33;0.66;1" keySplines="0.5 0 0.5 1;0.5 0 0.5 1;0.5 0 0.5 1" repeatCount="indefinite" begin="-0.75s" dur="1.2"> 1641 </animate></rect><rect y="22" height="29.1516" fill="#ce1c35" x="72.77777777777777" width="10"> 1642 <animate attributeName="height" calcMode="spline" values="40;60;8;40" times="0;0.33;0.66;1" keySplines="0.5 0 0.5 1;0.5 0 0.5 1;0.5 0 0.5 1" repeatCount="indefinite" begin="-0.3s" dur="1.2"> 1643 </animate> 1644 </rect> 1645 </g> 1646 </svg> 1647 <!-- /ko --> 1648 <!-- ko if: APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle=='play' --> 1649 <svg role="img" aria-label="playing animation" class="lds-equalizer" width="100%" height="80px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" style="background: none; padding: 0; margin: 0;"> 1650 <g transform="rotate(180 50 50)"> 1651 <rect y="22" height="10.1976" fill="#ce1c35" x="28.333333333333336" width="10"></rect> 1652 <rect y="22" height="39.9224" fill="#ce1a35" x="39.44444444444444" width="10"></rect> 1653 <rect y="22" height="59.496" fill="#ce1c35" x="50.55555555555556" width="10"></rect> 1654 <rect y="22" height="57.0259" fill="#ce1c35" x="61.66666666666667" width="10"></rect> 1655 <rect y="22" height="29.1516" fill="#ce1c35" x="72.77777777777777" width="10"></rect> 1656 </g></svg> 1657 <!-- /ko --> 1658 <!-- /ko --> 1659 <!-- ko if: $parent.content.listType == 'playlist-tracks' && !isPlaying() --> 1660 <span data-bind="text:rootIndex+1">#</span> 1661 <!-- /ko --> 1662 1663 </div> 1664 <!-- /ko --> 1665 1666 1667 <!-- ko if: !$parent.content.listType --> 1668 <div class="column"> 1669 <!-- ko if: item.advisory --> 1670 <span class="advisory" data-bind="text:item.advisory" title="Advisory Label"></span> 1671 <!-- /ko --> 1672 <span data-bind="css:{'with-advisory':item.advisory},attr:{title:title},text:title"></span> 1673 </div> 1674 <!-- /ko --> 1675 1676 <!-- ko if: $parent.content.listType == 'station-songs' --> 1677 <div class="column"> 1678 <!-- ko if: item.advisory --> 1679 <span class="advisory" data-bind="text:item.advisory" title="Advisory Label"></span> 1680 <!-- /ko --> 1681 <span data-bind="event:{keydown: APP.getKeyDownHandler(function(o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'song','title':title,'seoName':link,'id':id})})}, attr:{tabindex: section.tabIndex, title:title},css:{link:link,'with-advisory':item.advisory},text:title,click:function(o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'song','title':title,'seoName':link,'id':id})}"></span> 1682 </div> 1683 <div class="column"><span data-bind="attr:{tabindex: section.tabIndex, title:artistName},event:{keydown: APP.getKeyDownHandler(function (o,e){if(artistLink)APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artistName,'seoName':artistLink,'id':artistId})})}, css:{link:artistLink},text:artistName,click:function (o,e){if(artistLink)APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artistName,'seoName':artistLink,'id':artistId})}"></span></div> 1684 <div class="column pop-bar options"> 1685 <svg><g><path stroke-dasharray="3,2" d="M5 20 l1000 0"></path></g></svg> 1686 <div class="measure" data-bind="style:{width:scorePercent}"> 1687 <svg><g><path stroke-dasharray="3,2" d="M5 20 l1000 0"></path></g></svg> 1688 </div> 1689 <!-- ko if: !APP.basicRadioOnly() && (olicensed > 0 || $root.type == 'MylibraryView')--> 1690 <a href="" class="options-trap" style="width:0;height:0" data-bind="attr: {tabindex: section.tabIndex},event:{focus: APP.handleOptionsFocusTrap}"></a> 1691 <a href="#" class="options" data-bind="attr: {tabindex: section.tabIndex}, click: $root._onRequestSongOptions, clickBubble: false"> 1692 <svg role="img" aria-label="options menu" class="playeroptions" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 1693 <circle cx="2.5" cy="12" r="2.5" fill="white" style="stroke-width:0"/><circle cx="12" cy="12" r="2.5" fill="white" style="stroke-width:0"/><circle cx="21" cy="12" r="2.5" fill="white" style="stroke-width:0"/> 1694 </svg> 1695 </a> 1696 <!-- /ko --> 1697 </div> 1698 1699 <!-- /ko --> 1700 1701 <!-- ko if: $parent.content.listType == 'search-songs' --> 1702 <div class="column"> 1703 <span data-bind="attr:{tabindex: section.tabIndex, title:title},css:{link:link}
1703,event: {keydown: APP.getKeyDownHandler(function(o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'song','title':title,'seoName':link,'id':id})})}, text:title,click:function(o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'song','title':title,'seoName':link,'id':id})}"></span> 1704 </div> 1705 <div class="column"><span data-bind="attr:{title:artistName, tabindex: section.tabIndex},css:{link:artistId && artistId != 0},event: {keydown: APP.getKeyDownHandler(function (o,e){if(artistId && artistId != 0)APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artistName,'seoName':artistLink,'id':artistId})})}, text:artistName,click:function (o,e){if(artistId && artistId != 0)APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artistName,'seoName':artistLink,'id':artistId})}"></span></div> 1706 <div class="column pop-bar options"> 1707 <svg><g><path stroke-dasharray="3,2" d="M5 20 l1000 0"></path></g></svg> 1708 <div class="measure" data-bind="style:{width:scorePercent}"> 1709 <svg><g><path stroke-dasharray="3,2" d="M5 20 l1000 0"></path></g></svg> 1710 </div> 1711 <!-- ko if: !APP.basicRadioOnly() && olicensed > 0 --> 1712 <a href="" class="options-trap" style="width:0;height:0" data-bind="attr: {tabindex: section.tabIndex},event:{focus: APP.handleOptionsFocusTrap}"></a> 1713 <a href="#" class="options" data-bind="attr:{tabindex: section.tabIndex}, event: {keydown: APP.getKeyDownHandler($root._onRequestSongOptions)}, click: $root._onRequestSongOptions, clickBubble: false"> 1714 <svg role="img" aria-label="options menu" class="playeroptions" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 1715 <circle cx="2.5" cy="12" r="2.5" fill="white" style="stroke-width:0"/><circle cx="12" cy="12" r="2.5" fill="white" style="stroke-width:0"/><circle cx="21" cy="12" r="2.5" fill="white" style="stroke-width:0"/> 1716 </svg> 1717 </a> 1718 <!-- /ko --> 1719 </div> 1720 1721 <!-- /ko --> 1722 1723 <!-- ko if: $parent.content.listType == 'artist-songs' --> 1724 <div class="column"> 1725 <!-- ko if: item.advisory --> 1726 <span class="advisory" data-bind="text:item.advisory" title="Advisory Label"></span> 1727 <!-- /ko --> 1728 <span data-bind="attr:{tabindex: section.tabIndex, title:title}, event: {keydown: APP.getKeyDownHandler(function(o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'song','title':title,'seoName':link,'id':{'id':id,'perf-id':track[0].performanceId,'track-id':(track[0].id||track[0].trackId)}})})}, css:{link:link,'with-advisory':item.advisory},text:title,click:function(o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'song','title':title,'seoName':link,'id':{'id':id,'perf-id':track[0].performanceId,'track-id':(track[0].id||track[0].trackId)}})}"></span> 1729 </div> 1730 <div class="column"><span data-bind="attr:{tabindex: section.tabIndex, title:albumName}, event: {keydown: APP.getKeyDownHandler(function(o,e){if(albumLink&&track&&track[0])APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'album','title':albumName,'seoName':albumLink,'id':track[0].album[0].albumId})})}, css:{link:albumLink&&track&&track[0]},text:albumName,click:function(o,e){if(albumLink&&track&&track[0])APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'album','title':albumName,'seoName':albumLink,'id':track[0].album[0].albumId})}"></span></div> 1731 <div class="column pop-bar options"> 1732 <svg><g><path stroke-dasharray="3,2" d="M5 20 l1000 0"></path></g></svg> 1733 <div class="measure" data-bind="style:{width:scorePercent}"> 1734 <svg><g><path stroke-dasharray="3,2" d="M5 20 l1000 0"></path></g></svg> 1735 </div> 1736 <!-- ko if: !APP.basicRadioOnly() && olicensed > 0 --> 1737 <a href="" class="options-trap" style="width:0;height:0" data-bind="attr: {tabindex: section.tabIndex},event:{focus: APP.handleOptionsFocusTrap}"></a> 1738 <a href="#" class="options" data-bind="attr: {tabindex: section.tabIndex}, event: {keydown: APP.getKeyDownHandler($root._onRequestSongOptions)}, click: $root._onRequestSongOptions, clickBubble: false"> 1739 <svg role="presentation" class="playeroptions" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 1740 <circle cx="2.5" cy="12" r="2.5" fill="white" style="stroke-width:0"/><circle cx="12" cy="12" r="2.5" fill="white" style="stroke-width:0"/><circle cx="21" cy="12" r="2.5" fill="white" style="stroke-width:0"/> 1741 </svg> 1742 </a> 1743 <!-- /ko --> 1744 </div> 1745 <!-- /ko --> 1746 1747 <!-- ko if: $parent.content.listType == 'playlist-tracks' --> 1748 <div class="column"> 1749 <!-- ko if: item.advisory --> 1750 <span class="advisory" data-bind="text:item.advisory" title="Advisory Label"></span> 1751 <!-- /ko --> 1752 <span class="link" data-bind="attr:{tabindex: section.tabIndex}, css:{'with-advisory':item.advisory},attr:{title:title},text:title,click:function(o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'song','title':title,'seoName':songlink,'id':{'id':id,'perf-id':pid,'track-id':tid}})}"></span> 1753 </div> 1754 <div class="column"> 1755 <!-- ko if: artistLink --> 1756 <span class="link" data-bind="attr:{title:artistName}
1756,text:artistName,event: {keydown: APP.getKeyDownHandler(function (e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artistName,'seoName':null,'id':artistId})})}, click:function (e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artistName,'seoName':null,'id':artistId})}"></span> 1757 <!-- /ko --> 1758 <!-- ko if: !artistLink --> 1759 <span data-bind="attr:{title:artistName},text:artistName"></span> 1760 <!-- /ko --> 1761 </div> 1762 <div class="column"><span class="link" data-bind="attr:{tabindex: section.tabIndex, title:albumName}, event: {keydown: APP.getKeyDownHandler(function (e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'album','title':albumName,'seoName':null,'id':albumId})})}, text:albumName,click:function (e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'album','title':albumName,'seoName':null,'id':albumId})}"></span></div> 1763 1764 <!-- ko if: $parent.content.editable --> 1765 <div class="column edit-move" data-bind="click:function (data, event){$root._onRequestPlaylistSongOptions(data,event,$parent)},clickBubble: false"> 1766 <svg role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80"> 1767 <path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M 40 9.5859375 L 32.292969 17.292969 L 33.707031 18.707031 L 39.064453 13.349609 A 1 1 0 0 0 40 14 A 1 1 0 0 0 40.935547 13.349609 L 46.292969 18.707031 L 47.707031 17.292969 L 40 9.5859375 z M 40 16 A 1 1 0 0 0 39 17 A 1 1 0 0 0 40 18 A 1 1 0 0 0 41 17 A 1 1 0 0 0 40 16 z M 40 20 A 1 1 0 0 0 39 21 A 1 1 0 0 0 40 22 A 1 1 0 0 0 41 21 A 1 1 0 0 0 40 20 z M 40 24 A 1 1 0 0 0 39 25 A 1 1 0 0 0 40 26 A 1 1 0 0 0 41 25 A 1 1 0 0 0 40 24 z M 40 28 A 1 1 0 0 0 39 29 L 11 29 L 11 31 L 69 31 L 69 29 L 41 29 A 1 1 0 0 0 40 28 z M 11 39 L 11 41 L 69 41 L 69 39 L 11 39 z M 11 49 L 11 51 L 39 51 A 1 1 0 0 0 40 52 A 1 1 0 0 0 41 51 L 69 51 L 69 49 L 11 49 z M 40 54 A 1 1 0 0 0 39 55 A 1 1 0 0 0 40 56 A 1 1 0 0 0 41 55 A 1 1 0 0 0 40 54 z M 40 58 A 1 1 0 0 0 39 59 A 1 1 0 0 0 40 60 A 1 1 0 0 0 41 59 A 1 1 0 0 0 40 58 z M 33.707031 61.292969 L 32.292969 62.707031 L 40 70.414062 L 47.707031 62.707031 L 46.292969 61.292969 L 40.935547 66.650391 A 1 1 0 0 0 40 66 A 1 1 0 0 0 39.064453 66.650391 L 33.707031 61.292969 z M 40 62 A 1 1 0 0 0 39 63 A 1 1 0 0 0 40 64 A 1 1 0 0 0 41 63 A 1 1 0 0 0 40 62 z"/> 1768 </svg> 1769 </div> 1770 <!-- /ko --> 1771 <!-- ko if: !$parent.content.editable --> 1772 <div class="column options noedit"> 1773 <!-- ko if: !APP.basicRadioOnly() && olicensed > 0 --> 1774 <a href="" class="options-trap" style="width:0;height:0" data-bind="attr: {tabindex: section.tabIndex},event:{focus: APP.handleOptionsFocusTrap}"></a> 1775 <a href="#" class="options" data-bind="attr:{tabindex: section.tabIndex}, event: {keydown: APP.getKeyDownHandler($root._onRequestSongOptions)}, click: $root._onRequestSongOptions, clickBubble: false"> 1776 <svg role="img" aria-label="options menu" class="playeroptions" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 1777 <circle cx="2.5" cy="12" r="2.5" fill="white" style="stroke-width:0"/><circle cx="12" cy="12" r="2.5" fill="white" style="stroke-width:0"/><circle cx="21" cy="12" r="2.5" fill="white" style="stroke-width:0"/> 1778 </svg> 1779 </a> 1780 <!-- /ko --> 1781 </div> 1782 <!-- /ko --> 1783 1784 <div class="column pop-bar" data-bind="css:{noedit:!$parent.content.editable}"><span data-bind="text:formatSecondsAsTime(tlen)"></span></div> 1785 1786 <!-- /ko --> 1787 1788 <!-- ko if: $parent.content.listType == 'fav-song-ratings' --> 1789 <div class="column"><span data-bind="attr:{title:title},text:title"></span></div> 1790 <div class="column"> 1791 <!-- ko if: artistLink --> 1792 <span class="link" data-bind="attr:{tabindex: section.tabIndex, title:artistName},event: {keydown: APP.getKeyDownHandler(function (o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artistName,'seoName':null,'id':artistId})})},text:artistName,click:function (o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artistName,'seoName':null,'id':artistId})}"></span> 1793 <!-- /ko --> 1794 <!-- ko if: !artistLink --> 1795 <span data-bind="attr:{title:artistName},text:artistName"></span> 1796 <!-- /ko --> 1797 </div> 1798 <div class="column"> 1799 <span class="link" data-bind="attr:{tabindex: section.tabIndex, title:albumName}
1799,event: {keydown: APP.getKeyDownHandler(function (o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'album','title':albumName,'seoName':null,'id':albumId})})}, text:albumName,click:function (o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'album','title':albumName,'seoName':null,'id':albumId})}"></span> 1800 </div> 1801 <div class="column options"> 1802 <a href="" class="options-trap" style="width:0;height:0" data-bind="attr: {tabindex: section.tabIndex},event:{focus: APP.handleOptionsFocusTrap}"></a> 1803 <a href="#" class="options" data-bind="attr:{tabindex: section.tabIndex}, event: {keydown: APP.getKeyDownHandler($root._onRequestSongOptions)}, click: $root._onRequestSongOptions, clickBubble: false"> 1804 <svg role="presentation" class="playeroptions" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 1805 <circle cx="2.5" cy="12" r="2.5" fill="white" style="stroke-width:0"/><circle cx="12" cy="12" r="2.5" fill="white" style="stroke-width:0"/><circle cx="21" cy="12" r="2.5" fill="white" style="stroke-width:0"/> 1806 </svg> 1807 </a> 1808 </div> 1809 <!-- /ko --> 1810 <!-- ko if: $parent.content.listType == 'station-song-ratings' --> 1811 <div class="column"><span data-bind="attr:{title:title},text:title"></span></div> 1812 <div class="column"><span class="link" data-bind="attr:{title:artist, tabindex: section.tabIndex}, event: {keydown: APP.getKeyDownHandler(function (o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artist,'seoName':null,'id':artistid})})}, text:artist,click:function (o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artist,'seoName':null,'id':artistid})}"></span></div> 1813 <div class="column"><span class="link" data-bind="attr:{title:album, tabindex: section.tabIndex}, event: {keydown: APP.getKeyDownHandler(function (o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'album','title':album,'seoName':null,'id':albumid})})}, text:album,click:function (o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'album','title':album,'seoName':null,'id':albumid})}"></span></div> 1814 <div class="column date"><span data-bind="text:dateFormat(lmtime, 'mm/dd/yyyy')"></span></div> 1815 <!-- /ko --> 1816 <!-- ko if: $parent.content.listType == 'station-artist-ratings' --> 1817 <div class="column"><span class="link" data-bind="attr:{tabindex: section.tabIndex,title:artist},event: {keydown: APP.getKeyDownHandler(function (o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artist,'seoName':null,'id':artistid})})},text:artist,click:function (o,e){APP.goToPage('slackeritemdetail', {e:e,'reportingId':item.reportingId,'type':'artist','title':artist,'seoName':null,'id':artistid})}"></span></div> 1818 <div class="column date"><span data-bind="text:dateFormat(lmtime, 'mm/dd/yyyy')"></span></div> 1819 <!-- /ko --> 1820 1821 </li> 1822</script>
vendor: 1 bytes, line 1822
1822
1823<script type="text/html" id="lineup-item-tile"> 1824 <div class="tile-container" tabindex="-1" 1825 data-bind="attr:{id:'tile-'+uiItemId},click:function (data, event){if (item.artistId){APP.onTileClick(data, event)}}, clickBubble: false,css:classNames($index())"> 1826 <div class="tile lazyImg" aria-live="assertive" aria-role="navigation" 1827 data-bind="attr:{id:'video-'+uiItemId,'aria-labelledby':'title-'+uiItemId,tabindex:(section.isSpotlight)?-1:section.tabIndex,'lazySrc':((section.isSpotlight)?spotlightBgImageUrl:posterImgUrl)},event:{mouseover:APP._onTileFocus.bind(section),focus:APP._onTileFocus.bind(section),blur:APP._onTileBlur.bind(section)},clickBubble: false"> 1828 </div> 1829 <div class="metadata" aria-live="polite" data-bind="css:{'link':item.artistId},style:{'cursor':(item.artistId)?'pointer':'default'},attr:{'aria-labelledby':'title-'+item.uiItemId}"> 1830 <span class="title" role="heading" aria-level="3" data-bind="text:title,attr:{id:'title-'+item.uiItemId,'aria-label':(item.ariaTitle||'')+', '+(item.subtitle||'')}"></span> 1831 <!-- ko if: item.subtitle --> 1832 <p class="subtitle" aria-live="off" data-bind="text:item.subtitle"></p> 1833 <!-- /ko --> 1834 </div> 1835 </div> 1836</script>
1836 1837
1838<script type="text/html" id="festival-schedule-tile"> 1839 <div class="tile-container" tabindex="-1" 1840 data-bind="attr:{id:'tile-'+uiItemId}"> 1841 <div class="tile scheduleDate" 1842 data-bind="attr:{id:'sched-'+uiItemId,tabindex:'10'+$index()},event:{focus:APP._onTileFocus.bind(section),blur:APP._onTileBlur.bind(section)}"> 1843 1844 <h2 class="date"><span class="dow" data-bind="text:day"></span> <span class="dt" data-bind="text:date"></span></h2> 1845 <ul> 1846 <!-- ko foreach: {data: _embedded.content, as: 'act', afterRender: function (el,data) {$root._onScheduleItemRender.bind($root)(el, data, date)}} --> 1847 <li class="scheduleItem" data-bind="attr:{tabindex:'11'+$index()},event:{focus:APP._onTileFocus.bind(section),blur:APP._onTileBlur.bind(section)}"> 1848 <div data-bind="css:{'notime':!act.time}"> 1849 <img class="schedule-img lazyImg" src="/s=4.0.1400/images/pixel.gif" data-bind="visible:act.imgUrl,attr:{alt:act.name,'lazySrc':act.imgUrl}"> 1850 <span class="time" data-bind="html:(act.time) ? act.time+' '+act.timeZone : ' '"></span> 1851 <span class="name" data-bind="text:act.name,attr:{title:act.name}"></span> 1852 <!-- ko if: act.startTime --> 1853 <div class="reminder" data-bind="attr:{id:'ouical-'+($parent.date+act.name).replace(/\W/g,'-')}">Remind Me</div> 1854 <!-- /ko --> 1855 </div> 1856 <!-- ko if: APP.implementationSuperType() != 'tv' && act.artistId-->
1856 1857 <div class="options" data-bind="click: $root._onRequestArtistOptions,clickBubble: false"> 1858 <svg role="presentation" class="playeroptions" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> 1859 <circle cx="2.5" cy="12" r="2.5" fill="white" style="stroke-width:0"/><circle cx="12" cy="12" r="2.5" fill="white" style="stroke-width:0"/><circle cx="21" cy="12" r="2.5" fill="white" style="stroke-width:0"/> 1860 </svg> 1861 </div> 1862 <!-- /ko --> 1863 </li> 1864 <!-- /ko --> 1865 </ul> 1866 </div> 1867 </div> 1868</script>
1868 1869
1870<script type="text/html" id="tabbed-section-page-body"> 1871 1872 <!-- ko if: !tabbedSection.tabs() || !tabbedSection.tabs().length --> 1873 <!-- ko template: {name: 'sectioned-page-body', data:tabbedSection, as:'section', afterRender: $root.capitalism.bind($root)} --> 1874 <!-- /ko --> 1875 <!-- /ko --> 1876 1877 <!-- ko if: tabbedSection.tabs() && tabbedSection.tabs().length --> 1878 <a id="item-detail-actions-bottom" aria-hidden="true" class="focus-catch item-detail-actions-bottom" tabindex="-1"></a> 1879 <!-- ko with: tabbedSection.tabs() --> 1880 <div class="tabs-container" data-bind="css:{'with-mobile-download':$root.isMobileDevice() && $root.hasMobileApp()}"> 1881 <section class="tabs section section--tabs section--main" aria-live="off"> 1882 <a id="tabs-top" aria-hidden="true" class="focus-catch tabs-top" tabindex="-1"></a> 1883 <div class="section-tabs section-tabs--react" data-bind="css:tabbedSection.classNames, component:{name:'react-wrapper', params:{name:'ItemDetailTabs', props:{section: tabbedSection}}}"></div> 1884 </section> 1885 </div> 1886 <div class="tabpane-container"> 1887 <!-- ko if: $root.isMobileDevice() && $root.hasMobileApp() && $root.usesSplitTone --> 1888 <div class="more bottom centered mobile-download"> 1889 <a href="/apps" data-bind="event:{keydown:APP.getKeyDownHandler(tabbedSection.changeTab)}, click:function () {APP.downloadApps.getAppDownload(null, location.href)}, clickBubble: false">Download</a> the mobile app 1890 <svg role="presentation" alt="icon" data-bind="click:function () {APP.downloadApps.getAppDownload(null, location.href)}, clickBubble: false" xmlns="http://www.w3.org/2000/svg" width="14" height="24" viewBox="0 0 14 24"> 1891 <path fill="#000" fill-rule="nonzero" d="M12.019 0H1.58C.711 0 0 .729 0 1.621v20.757C0 23.27.712 24 1.581 24H12.02c.87 0 1.581-.728 1.581-1.621V1.621C13.6.729 12.888 0 12.019 0zM5.13 1.168h3.34c.105 0 .19.088.19.197a.194.194 0 0 1-.19.196H5.13a.194.194 0 0 1-.19-.196c0-.109.085-.197.19-.197zM6.8 23.19a.8.8 0 0 1-.79-.81.8.8 0 0 1 .79-.811.8.8 0 0 1 .79.81.8.8 0 0 1-.79.811zM12.5 21H1.1V2.57h11.4V21z"/> 1892 </svg> 1893 </div> 1894 <!-- /ko --> 1895 1896 <section class="tabpane section section--tabpane section--main" role="tabpanel" aria-live="polite" data-bind="attr:{'data-reporting-tab':encodeURIComponent(tabbedSection.activeTab().title)}"> 1897 1898 <!-- ko foreach: {data: tabbedSection, as:'_s'} --> 1899 <!-- ko if: _s.id == tabbedSection.activeTab().id --> 1900 <!-- ko if: _s.tabs().length && (_s.classNames||'').indexOf('station-ratings') === -1 --> 1901 <!-- Sub Tabs - 1 level deep --> 1902 <section class="tabs section section--tabs section--main"> 1903 <a id="sub-tabs-top" aria-hidden="true" class="focus-catch tabs-top" tabindex="-1"></a> 1904 <div class="section-tabs section-tabs--react" data-bind="css:_s.classNames, component:{name:'react-wrapper', params:{name:'ItemDetailTabs', props:{section: _s, leadIn: 'View by', carousel: false}}}"></div> 1905 </section> 1906 <!-- /ko --> 1907 1908 <!-- ko if: _s.tabs().length --> 1909 <!-- ko with: _s.activeTab() --> 1910 <!-- ko if: !_s.content().length && !_s.visibleDescription() && !_s.filter() --> 1911 <div class="loading-pulse" style="margin-top:2em"></div> 1912 <!-- /ko --> 1913 <!-- ko template: {name: 'sectioned-page-body', data:_s, as:'section', afterRender: $root.capitalism.bind($root)} --> 1914 <!-- /ko --> 1915 <!-- /ko --> 1916 <!-- /ko --> 1917 1918 <!-- ko if: !_s.tabs().length --> 1919 <!-- ko if: !_s.content().length && !_s.visibleDescription() --> 1920 <div class="loading-pulse" style="margin-top:2em"></div> 1921 <!-- /ko --> 1922 <!-- ko template: {name: 'sectioned-page-body', data:_s, as:'section', afterRender: $root.capitalism.bind($root)} --> 1923 <!-- /ko --> 1924 <!-- /ko --> 1925 1926 1927 <!-- /ko --> 1928 <!-- /ko --> 1929 </section> 1930 </div> 1931 <!-- /ko --> 1932 <!-- /ko --> 1933</script>
1933 1934 1935<!-- PDT-8083_redesign: MyLibrary-only fork of tabbed-section-page-body above. 1936 Identical content-rendering logic (active tab lookup, sub-tabs, loading 1937 pulse, sectioned-page-body), minus the .tabs-container tab-rail <ul> â 1938 that nav is now the React MyLibrarySidebarNav component (see 1939 mylibraryBody.jsp). Editing tab/content behavior for MyLibrary: edit 1940 here. Editing it for Profile/artist/album/item-detail/etc.: edit the 1941 shared template above instead. -->
1942<script type="text/html" id="mylibrary-tabpane-body"> 1943 1944 <!-- ko if: !tabbedSection.tabs() || !tabbedSection.tabs().length --> 1945 <!-- ko template: {name: 'sectioned-page-body', data:tabbedSection, as:'section', afterRender: $root.capitalism.bind($root)} --> 1946 <!-- /ko --> 1947 <!-- /ko --> 1948 1949 <!-- ko if: tabbedSection.tabs() && tabbedSection.tabs().length --> 1950 <a id="item-detail-actions-bottom" aria-hidden="true" class="focus-catch item-detail-actions-bottom" tabindex="-1"></a> 1951 <div class="tabpane-container"> 1952 <!-- ko if: $root.isMobileDevice() && $root.hasMobileApp() && $root.usesSplitTone --> 1953 <div class="more bottom centered mobile-download"> 1954 <a href="/apps" data-bind="event:{keydown:APP.getKeyDownHandler(tabbedSection.changeTab)}, click:function () {APP.downloadApps.getAppDownload(null, location.href)}, clickBubble: false">Download</a> the mobile app 1955 <svg role="presentation" alt="icon" data-bind="click:function () {APP.downloadApps.getAppDownload(null, location.href)}, clickBubble: false" xmlns="http://www.w3.org/2000/svg" width="14" height="24" viewBox="0 0 14 24"> 1956 <path fill="#000" fill-rule="nonzero" d="M12.019 0H1.58C.711 0 0 .729 0 1.621v20.757C0 23.27.712 24 1.581 24H12.02c.87 0 1.581-.728 1.581-1.621V1.621C13.6.729 12.888 0 12.019 0zM5.13 1.168h3.34c.105 0 .19.088.19.197a.194.194 0 0 1-.19.196H5.13a.194.194 0 0 1-.19-.196c0-.109.085-.197.19-.197zM6.8 23.19a.8.8 0 0 1-.79-.81.8.8 0 0 1 .79-.811.8.8 0 0 1 .79.81.8.8 0 0 1-.79.811zM12.5 21H1.1V2.57h11.4V21z"/> 1957 </svg> 1958 </div> 1959 <!-- /ko --> 1960 1961 <section class="tabpane section section--tabpane section--main" role="tabpanel" aria-live="polite" data-bind="attr:{'data-reporting-tab':encodeURIComponent(tabbedSection.activeTab().title)}"> 1962 1963 <!-- ko foreach: {data: tabbedSection, as:'_s'} --> 1964 <!-- ko if: _s.id == tabbedSection.activeTab().id --> 1965 <!-- ko if: _s.tabs().length --> 1966 <!-- Sub Tabs - 1 level deep --> 1967 <section class="tabs section section--tabs section--main"> 1968 <a id="sub-tabs-top" aria-hidden="true" class="focus-catch tabs-top" tabindex="-1"></a> 1969 <ul class="section-tabs" role="tablist" data-bind="css:tabbedSection.classNames + ' ' + _s.classNames"> 1970 <!-- ko foreach: {data: _s.tabs, as: '_stab' } --> 1971 <li class="tab-item sub-tab-item subtitle" data-bind="html:_stab.title,attr:{id:'tab-'+id, tabindex: tabbedSection.tabIndex},css:{'active':_s.activeTab()&&_stab.id==_s.activeTab().id},click:_s.changeTab.bind(_s),event:{focus:APP._onTabFocus, keydown:APP.getKeyDownHandler(_s.changeTab.bind(_s))}"></li> 1972 <!-- /ko --> 1973 </ul> 1974 </section> 1975 <!-- /ko --> 1976 1977 <!-- ko if: _s.tabs().length --> 1978 <!-- ko with: _s.activeTab() --> 1979 <!-- ko if: !_s.content().length && !_s.visibleDescription() && !_s.filter() --> 1980 <div class="loading-pulse" style="margin-top:2em"></div> 1981 <!-- /ko --> 1982 <!-- ko template: {name: 'sectioned-page-body', data:_s, as:'section', afterRender: $root.capitalism.bind($root)} --> 1983 <!-- /ko --> 1984 <!-- /ko --> 1985 <!-- /ko --> 1986 1987 <!-- ko if: !_s.tabs().length --> 1988 <!-- ko if: !_s.content().length && !_s.visibleDescription() --> 1989 <div class="loading-pulse" style="margin-top:2em"></div> 1990 <!-- /ko --> 1991 <!-- ko template: {name: 'sectioned-page-body', data:_s, as:'section', afterRender: $root.capitalism.bind($root)} --> 1992 <!-- /ko --> 1993 <!-- /ko --> 1994 1995 1996 <!-- /ko --> 1997 <!-- /ko --> 1998 </section> 1999 </div> 2000 <!-- /ko --> 2001</script>
2001 2002
2003<script type="text/html" id="sectioned-page-body"> 2004 <!-- ko if: $data.offer && !section.isSpotlight --> 2005 <section class="section body offer section--body section--offer section--body"> 2006 <h2 data-bind="text:offer.title"></h2> 2007 <p class="description" data-bind="html:generateOfferHtml(offer)"></h2> 2008 </section> 2009 <!-- /ko --> 2010 2011 <section tabindex="-1" aria-live="polite" data-bind="css:expandWithBemClasses('section', undefined, classNames.split(' ').concat([($root.isMobileDevice() && $root.hasMobileApp())? 'with-download-app':'']).concat(bemModifiers)),attr:{id:id,'aria-labelledby':'section-title-'+id,'data-count':$index()}"> 2012 <!-- ko if: !section.isSpotlight && content().length --> 2013 <a id="section-top" aria-hidden="true" class="focus-catch section-top" tabindex="-1"></a> 2014 <!-- /ko --> 2015 2016 <!-- ko if: section.iconPath --> 2017 <div class="section-icon" data-bind="style:{'background-image':'url('+section.iconPath+'/web/3/center/100.png)'}"></div> 2018 <!-- /ko --> 2019 2020 <h2 data-bind="attr:{'id':'section-title-'+id},visible:title,html:(advisory) ? title + ' ['+advisory+']' : title,css:{'with-icon':section.iconPath}">TITLE</h2> 2021 2022 <!-- ko if: content.getListType && content.getListType() === 'playlist-tracks' --> 2023 <div class="section-filter-mount" data-bind="component:{name:'react-wrapper', params:{name:'SectionFilter', props:{section: section, placeholder: 'Filter tracks', label: 'Filter tracks'}}}"></div> 2024 <!-- /ko --> 2025 2026 <!-- ko if: classNames.indexOf('presets') > -1 --> 2027 <div class="react-wrapper" data-bind="component: {name: 'react-wrapper', params: {name: 'MyLibraryPresetsTab', props: { APP: APP, root: $root }}}"></div> 2028 <!-- /ko --> 2029 <!-- ko ifnot: classNames.indexOf('presets') > -1 --> 2030 2031 <!-- ko if: isEditDirty() && !(content.getListType && content.getListType() === 'playlist-tracks') --> 2032 <div class="more top save-changes" data-bind="event:{keydown:APP.getKeyDownHandler(section.saveDirtyEdit)}, click:section.saveDirtyEdit,clickBubble: false"><button role="alert" class="std save-dirty" data-bind="attr: {tabindex: section.tabIndex}">SAVE CHANGES</button></div> 2033 <!-- /ko --> 2034 <div class="more top" data-bind="visible:(hasMore() || hasLess()) && $root.type !== 'SlackerItemDetailView' && $root.type !== 'ArtistPickerView'" style="display:none"><button class="std" data-bind="attr: {tabindex: section.tabIndex}, text:(hasMore())?'View All':'View Less',click:doSeeMore, clickBubble: false, event:{keydown:APP.getKeyDownHandler(doSeeMore)}">View All</button></div> 2035 <!-- ko if: filter() !== null && hasFilterData() && ['station-song-ratings','station-artist-ratings','playlist-tracks'].indexOf(content.listType) === -1 --> 2036 <div class="section-filter-wrapper"><div class="search-glass"></div> 2037 <input type="text" aria-label="Text Input: Filter" class="sectionFilterInput" placeholder="Filter" data-bind="attr: {tabindex: section.tabIndex}, textInput:filter"/> 2038 </div> 2039 <!-- /ko --> 2040 2041 <!-- ko if: !section.isSpotlight --> 2042 2043 <!-- ko if: sectionData.editable || sectionData.share || $root.bookmarkAction --> 2044 <section tabindex="-1" class="section section--main item edit-actions"> 2045 <!-- ko if: sectionData.share --> 2046 <button class="std share" title="Share" data-bind="attr:{tabindex: section.tabIndex, id:'detail-actions-share'},event:{focus:APP._onItemDetailActionFocus.bind($root)},click:sectionData.share,clickBubble:false" onfocus="APP.currentView.lastFocusedItem=this.id;"><span>Share</span></button> 2047 <!-- /ko --> 2048 <!-- ko if: sectionData.bookmark--> 2049 <button class="std bookmark" title="Add To Favorites" data-bind="css:sectionData.bookmark().state,attr:{tabindex: section.tabIndex, id:'detail-editactions-bookmark',title:(sectionData.bookmark().state=='on')?'Remove From Favorites':'Add To Favorites'},event:{focus:APP._onItemDetailActionFocus.bind($root)},click:$root._onToggleBookmark" onfocus="APP.currentView.lastFocusedItem=this.id;"><span>Bookmark</span></button> 2050 <!-- /ko --> 2051 2052 <!-- ko with: sectionData.editable --> 2053 2054 <!-- ko if: remove --> 2055 <button class="std delete" title="Delete" data-bind="attr:{tabindex: section.tabIndex, id:'detail-editactions-remove'},event:{focus:APP._onItemDetailActionFocus.bind($root)},click:remove" onfocus="APP.currentView.lastFocusedItem=this.id;"><span>DELETE</span></button> 2056 <!-- /ko --> 2057 <!-- ko if: addToStation --> 2058 <button class="std add" title="Add To Station" tabindex="11" data-bind="attr:{tabindex: section.tabIndex, id:'detail-editactions-addToStation'},event:{focus:APP._onItemDetailActionFocus.bind($root)},click:addToStation" onfocus="APP.currentView.lastFocusedItem=this.id;"><span>Add To Station</span></button> 2059 <!-- /ko --> 2060 <!-- ko if: addToPlaylist --> 2061 <button class="std add" title="Add To Playlist" tabindex="11" data-bind="attr:{tabindex: section.tabIndex, id:'detail-editactions-addToPlaylist'},event:{focus:APP._onItemDetailActionFocus.bind($root)},click:addToPlaylist" onfocus="APP.currentView.lastFocusedItem=this.id;"><span>Add To Playlist</span></button> 2062 <!-- /ko --> 2063 2064 <!-- /ko --> 2065 2066 </section> 2067 <!-- /ko --> 2068 <!-- /ko --> 2069 2070 <!-- ko if: (section.classNames||'').indexOf('hero') === -1 && (section.classNames||'').indexOf('spotlight') === -1 --> 2071 <div class="section-description-mount" data-bind="component:{name:'react-wrapper', params:{name:'SectionDescription', props:{section: section, root: $root, APP: APP}}}"></div> 2072 <!-- /ko --> 2073 2074 <!-- ko ifnot: (section.classNames||'').indexOf('hero') === -1 && (section.classNames||'').indexOf('spotlight') === -1 --> 2075 <p class="description" data-bind="css:{editable:sectionData.editable&§ion.sectionData.editable.redescription},visible:visibleDescription,html:visibleDescription,click:function (data, event){if (event.target.nodeName==='A'){window.open(event.target.href)}else if (section.sectionData.editable&§ion.sectionData.editable.redescription){$root._onRedescriptionRequest(data, event)}}">DESCRIPTION</p> 2076 <!-- ko if: canToggleDescription() == -1 --> 2077 <div style="margin-bottom:1em"><a href="#" data-bind="attr: {tabindex: section.tabIndex},click:toggleDescription">READ LESS</a></div> 2078 <!-- /ko --> 2079 <!-- ko if: canToggleDescription() == 1 --> 2080 <div><a href="#" data-bind="attr:{tabindex: section.tabIndex},click:toggleDescription">READ MORE</a></div> 2081 <!-- /ko --> 2082 <!-- /ko --> 2083 2084 <div class="scroll-container" aria-live="polite" data-bind="css:{'with-countdown':spotlightItem() && spotlightItem().item && spotlightItem().item.countdown()},event:{scroll:function () {APP.currentView._doCapitalisticThings(true);APP.currentView._doLazyImageLoading(true)}}"> 2085 <!-- ko if: content.getListType && ['station-song-ratings','station-artist-ratings'].indexOf(content.getListType()) > -1 --> 2086 <div class="station-ratings-mount" data-bind="component:{name:'react-wrapper', params:{name:'StationRatings', props:{section: section, root: $root, APP: APP}}}"></div> 2087 <!-- /ko --> 2088 2089 <!-- ko if: !content().length --> 2090 <!-- ko if: isLoadingMore() --> 2091 <div class="centered loader"></div> 2092 <!-- /ko --> 2093 <!-- /ko --> 2094 2095 <!-- ko if: content().length --> 2096 2097 <!-- ko if: content.type == 'list' --> 2098 2099 <!-- ko if: content.getListType() != 'album-tracks' && content.getListType() != 'podcast-episodes' --> 2100 2101 <!-- ko if: ['station-songs','search-songs','artist-songs','playlist-tracks'].indexOf(content.listType) > -1 --> 2102 <div class="item-detail-track-list-mount" data-bind="component:{name:'react-wrapper', params:{name:'ItemDetailTrackList', props:{section: section, root: $root, APP: APP}}}"></div> 2103 <!-- /ko --> 2104 2105 <!-- ko ifnot: ['station-songs','search-songs','artist-songs','playlist-tracks','station-song-ratings','station-artist-ratings'].indexOf(content.listType) > -1 --> 2106 <ul class="section-list header" data-bind="css:content.getListType()"> 2107 <li class="section-list-item"> 2108 <div class="column button play"> 2109 <!-- ko if: content.listType == 'playlist-tracks' --> 2110 # 2111 <!-- /ko --> 2112 </div> 2113 <!-- ko if: !content.listType --> 2114 <div class="column">TITLE</div> 2115 <!-- /ko --> 2116 2117 <!-- ko if: content.listType == 'playlist-tracks' --> 2118 <div class="column">TITLE</div> 2119 <div class="column">ARTIST</div> 2120 <div class="column">ALBUM</div> 2121 <div class="column pop-bar">DURATION</div> 2122 <!-- /ko --> 2123 2124 <!-- ko if: content.listType == 'station-songs' || content.listType == 'search-songs' --> 2125 <div class="column">TITLE</div> 2126 <div class="column">ARTIST</div> 2127 <div class="column pop-bar">POPULARITY</div> 2128 <!-- /ko --> 2129 2130 <!-- ko if: content.listType == 'artist-songs' --> 2131 <div class="column">TITLE</div> 2132 <div class="column">ALBUM</div> 2133 <div class="column pop-bar">POPULARITY</div> 2134 <!-- /ko --> 2135 2136 <!-- ko if: content.listType == 'fav-song-ratings' --> 2137 <div class="column">SONG</div> 2138 <div class="column">ARTIST</div> 2139 <div class="column">ALBUM</div> 2140 <div class="column date"></div> 2141 <!-- /ko --> 2142 <!-- ko if: content.listType == 'station-song-ratings' --> 2143 <div class="column">SONG</div> 2144 <div class="column">ARTIST</div> 2145 <div class="column">ALBUM</div> 2146 <div class="column date">DATE</div> 2147 <!-- /ko --> 2148 <!-- ko if: content.listType == 'station-artist-ratings' --> 2149 <div class="column">ARTIST</div> 2150 <div class="column date">DATE</div> 2151 <!-- /ko --> 2152 </li> 2153 </ul> 2154 <ul class="section-list" data-bind="css:content.listType,foreach:{data:content, as:'item'}"> 2155 <!-- ko template: {name: 'list-item'} --> 2156 <!-- /ko --> 2157 </ul> 2158 <!-- /ko --> 2159 <!-- /ko --> 2160 <!-- ko if: content.getListType() == 'podcast-episodes' --> 2161 <div class="item-detail-episode-list-mount" data-bind="component:{name:'react-wrapper', params:{name:'ItemDetailEpisodeList', props:{section: section, root: $root, APP: APP}}}"></div> 2162 <!-- /ko --> 2163 <!-- ko if: content.listType == 'album-tracks' --> 2164 <div class="item-detail-album-tracks-mount" data-bind="component:{name:'react-wrapper', params:{name:'ItemDetailAlbumTracks', props:{section: section, root: $root, APP: APP}}}"></div> 2165 <!-- /ko --> 2166 <!-- /ko --> 2167 2168 <!-- ko if: content.type != 'list' --> 2169 2170 <!-- ko if: content.layout == 'double-high' --> 2171 2172 <div class="react-wrapper" data-bind="style:{height: '100%'}, component: {name: 'react-wrapper', params: {name: 'TileGroup', props: { items: content(), type: content.type, section: section, APP: APP, root: $root, nested: true, sectionIndex: $index() }, subscriptionMap:APP.ptg_subscriptionMap}}"></div> 2173 2174 <!-- ko if: contentMobile().length --> 2175 <div class="react-wrapper" data-bind="style:{height: '100%'}, component: {name: 'react-wrapper', params: {name: 'TileGroup', props: { items: contentMobile(), type: contentMobile.type, section: section, APP: APP, root: $root, modifierClasses:['double-high','double-high-mobile-alt'], sectionIndex: $index() }, subscriptionMap:APP.ptg_subscriptionMap}}"></div> 2176 <!-- /ko --> 2177 <!-- /ko --> 2178 2179 <!-- ko if: !content.layout --> 2180 2181 <!-- LXLWEB-3554: ResponsiveTileGrid was scoped to My Library and Profile only. Other views (Search, Music Home, etc.) still use TileGroup and would need additional testing before migrating. --> 2182 <!-- PDT-8083_redesign: recentlyplayed added so its tiles also render through ResponsiveTileGrid (now TileGrid/ResultTile-backed) instead of TileGroup, for visual consistency with the rest of My Library. --> 2183 <!-- PDT-8159: the item-detail tabs join them, on the same class list. Their cards 2184 were legacy Tiles wearing the modern look through 2185 components/_legacy-result-tiles.scss; they are the real ResultTile now, so the 2186 play control, restricted/Plus states, explicit badge and options menu are the 2187 same code the search and My Library cards run rather than a second 2188 implementation kept in step by hand. 2189 2190 The class list is the whole gate because the enclosing `content.type != 'list'` 2191 already sorts tiles from rows: the track lists (Top Songs, album discs, podcast
2192 episodes) and the ratings tables never reach here, so what is left under 2193 albums / artists / stations / podcasts / playlists is a grid of cards. Note the 2194 names are PLURAL â the singular forms a hero carries (`⦠radio album`, 2195 `⦠radio station`) and the ratings sections (`station-artist-ratings`) do not 2196 match, which is what keeps the hero and the ratings tab on their own 2197 rendering. --> 2198 <!-- ko if: ($root.type === 'MylibraryView' || $root.type === 'ProfileView' || $root.type === 'SlackerItemDetailView') && (classNames.indexOf('playlists') > -1 || classNames.indexOf('artists') > -1 || classNames.indexOf('albums') > -1 || classNames.indexOf('podcasts') > -1 || classNames.indexOf('stations') > -1 || classNames.indexOf('recentlyplayed') > -1) --> 2199 <div class="react-wrapper" data-bind="style:{height: '100%'}, component: {name: 'react-wrapper', params: {name: 'ResponsiveTileGrid', props: { items: content(), type: content.type, section: section, APP: APP, root: $root, sectionIndex: $index(), enableAds: $root.type === 'SlackerItemDetailView' }, subscriptionMap:{section: {content: true, hasMore: true, hasLess: true}, items: {removed: true, streamStateBadge: true, headerImage: true, userHasTicket: true}}}}"></div> 2200 <!-- /ko --> 2201 2202 <!-- ko ifnot: ($root.type === 'MylibraryView' || $root.type === 'ProfileView' || $root.type === 'SlackerItemDetailView') && (classNames.indexOf('playlists') > -1 || classNames.indexOf('artists') > -1 || classNames.indexOf('albums') > -1 || classNames.indexOf('podcasts') > -1 || classNames.indexOf('stations') > -1 || classNames.indexOf('recentlyplayed') > -1) --> 2203 <div class="react-wrapper" data-bind="style:{height: '100%'}, component: {name: 'react-wrapper', params: {name: 'TileGroup', props: { items: content(), type: content.type, section: section, APP: APP, root: $root, sectionIndex: $index() }, subscriptionMap:APP.ptg_subscriptionMap}}"></div> 2204 <!-- /ko --> 2205 2206 <!-- /ko --> 2207 2208 <!-- ko if: content()[0].type == 'form' --> 2209 <p class="note2">By submitting this form, you agree to our <a href="/terms" onclick="APP.goToPage('terms');return false;">Terms of Service</a> and <a href="/privacy" onclick="APP.goToPage('privacy');return false;">Privacy Policy</a>.</p> 2210 <!-- /ko --> 2211 2212 <!-- ko if:!section.isSpotlight --> 2213 <div class="carousel-nav left" role="button" aria-label="Scroll left" data-bind="event:{keydown: APP.getKeyDownHandler(function () {section.carouselRotate(-1)})}, attr:{tabindex: !section.carouselLeftEnabled() ? -1 : section.tabIndex - 1, 'aria-disabled': !section.carouselLeftEnabled()},css:{disabled:!section.carouselLeftEnabled()},click:function () {section.carouselRotate(-1)}, clickBubble: false"> 2214 </div> 2215 <div class="carousel-nav right" role="button" aria-label="Scroll right" data-bind="event:{keydown: APP.getKeyDownHandler(function () {section.carouselRotate(1)})}, attr:{tabindex: !section.carouselRightEnabled() ? -1 : section.tabIndex + 1, 'aria-disabled': !section.carouselRightEnabled()},css:{disabled:!section.carouselRightEnabled()},click:function () {section.carouselRotate(1)}, clickBubble: false"> 2216 </div> 2217 <!-- /ko --> 2218 <!-- ko if:section.isSpotlight --> 2219 <div class="spotlight-nav dots" aria-live="off" data-bind="visible:((APP.implementationSuperType() != 'tv' || APP.appImplementationModule.type == 'tesladash') && content().length > 1) || (APP.implementationSuperType() == 'tv' && APP.appImplementationModule.type != 'tesladash' && content().length > 0)"> 2220 <!-- ko foreach: content --> 2221 <div class="nav-dot" role="button" data-bind="attr:{tabindex: section.tabIndex, id:'spotlight-dot-'+section.id+'-'+$index(),'aria-label':($index() == section.spotlightItem().index)?'Current Featured Item: '+title:($index() > section.spotlightItem().index)?'Next Featured Item':'Previous Featured Item'},css:{active:$index() == section.spotlightItem().index},event:{focus:APP._onSpotlightNavDotFocus, keydown: APP.getKeyDownHandler(function () {section.setCurrentSpotlightItem($index(), true)})}, click:function () {section.setCurrentSpotlightItem($index(), true)}, clickBubble: false"></div> 2222 <!-- /ko --> 2223 </div> 2224 <div class="spotlight-nav left" role="button" aria-label="Scroll left" data-bind="event:{keydown: APP.getKeyDownHandler(function () {section.spotlightRotate(-1)})}, attr:{tabindex: !section.spotlightLeftEnabled() ? -1 : section.tabIndex - 1, 'aria-disabled': !section.spotlightLeftEnabled()}, visible:content().length > 1, css:{disabled:!section.spotlightLeftEnabled()},click:function () {section.spotlightRotate(-1)}, clickBubble: false"></div> 2225 <div class="spotlight-nav right" role="button" aria-label="Scroll right" data-bind="event:{keydown: APP.getKeyDownHandler(function () {section.spotlightRotate(1)})}, attr:{tabindex: !section.spotlightRightEnabled() ? -1 : section.tabIndex + 1, 'aria-disabled': !section.spotlightRightEnabled()}, visible:content().length > 1, css:{disabled:!section.spotlightRightEnabled()},click:function () {section.spotlightRotate(1)}, clickBubble: false"></div> 2226 <!-- /ko --> 2227 <!-- /ko --> 2228 <!-- /ko --> 2229 2230 </div>
2231 <!-- ko if: $root.type == 'SlackerItemDetailView' || $root.type == 'MylibraryView' || $root.type == 'ArtistPickerView' --> 2232 <!-- ko if: !$root.isMobileDevice() || !$root.hasMobileApp() --> 2233 <div class="more bottom" data-bind="event:{keydown: APP.getKeyDownHandler(doSeeMore)},visible:hasMore()&&!isLoadingMore(),click:doSeeMore,attr:{tabindex: section.tabIndex, role:'button','aria-label':'more ' + hasMoreLabel()}, clickBubble: false" style="display:none"><button class="std" data-bind="text:'more ' + hasMoreLabel()">more</button></div> 2234 <!-- ko if: isLoadingMore() && content().length --> 2235 <div class="centered loader morebottom"></div> 2236 <!-- /ko --> 2237 <div class="more bottom" data-bind="event:{keydown: APP.getKeyDownHandler(doSeeLess)},visible:hasLess,click:doSeeLess,attr:{tabindex: section.tabIndex, role:'button','aria-label':'less ' + hasMoreLabel()}, clickBubble: false" style="display:none"><button class="std" data-bind="text:'less ' + hasMoreLabel()">less</button></div> 2238 <!-- /ko --> 2239 <!-- /ko --> 2240 2241 <!-- ko if: section.isSpotlight--> 2242 <!-- ko if: $root.isMobileDevice() && $root.hasMobileApp() && !$root.usesSplitTone --> 2243 <div class="more bottom centered mobile-download"> 2244 <a href="/apps" data-bind="attr: {tabindex: section.tabIndex}, click:function () {APP.downloadApps.getAppDownload(null, location.href)}, clickBubble: false">Download</a> the mobile app 2245 <svg role="presentation" alt="icon" data-bind="click:function () {APP.downloadApps.getAppDownload(null, location.href)}, clickBubble: false" xmlns="http://www.w3.org/2000/svg" width="14" height="24" viewBox="0 0 14 24"> 2246 <path fill="#000" fill-rule="nonzero" d="M12.019 0H1.58C.711 0 0 .729 0 1.621v20.757C0 23.27.712 24 1.581 24H12.02c.87 0 1.581-.728 1.581-1.621V1.621C13.6.729 12.888 0 12.019 0zM5.13 1.168h3.34c.105 0 .19.088.19.197a.194.194 0 0 1-.19.196H5.13a.194.194 0 0 1-.19-.196c0-.109.085-.197.19-.197zM6.8 23.19a.8.8 0 0 1-.79-.81.8.8 0 0 1 .79-.811.8.8 0 0 1 .79.81.8.8 0 0 1-.79.811zM12.5 21H1.1V2.57h11.4V21z"/> 2247 </svg> 2248 </div> 2249 <!-- /ko --> 2250 <!-- /ko --> 2251 2252 <!-- ko if: $root.type == 'SlackerItemDetailView' && (!$index || $index() == 0) --> 2253 <a id="item-detail-section-top" aria-live="polite" class="focus-catch item-detail-section-top" tabindex="-1"></a> 2254 <!-- /ko --> 2255 2256 <!-- ko if: $root.type == 'SlackerItemDetailView' && (!$index || $index() == 0) --> 2257 <a id="item-detail-actions-bottom" aria-live="polite" class="focus-catch item-detail-actions-bottom" tabindex="-1"></a> 2258 <!-- /ko --> 2259 <!-- /ko --> 2260 2261 </section> 2262 2263 <div class="view-pager-mount" data-bind="component:{name:'react-wrapper', params:{name:'ViewPager', props:{root: $data}}}"></div> 2264 2265</script>
2265 2266 2267 2268
2269<script type="text/html" id="video-detail-body"> 2270 <h1 class="sr-only" data-bind="text:video.title"></h1> 2271 <section tabindex="-1" class="section video spotlight section--video section--spotlight "> 2272 <div class="tile-group"> 2273 <div class="tile-container" tabindex="-1" 2274 data-bind="attr:{id:'tile-'+objectId}"> 2275 <div class="tile" 2276 data-bind="attr:{id:objectId},style:{'background-image':'url('+(featureImgUrl || posterImgUrl)+')'}"> 2277 <div class="overlay"></div> 2278 <!-- ko if: contentUrl --> 2279 <div class="play-button-container" data-bind="with:playable"> 2280 <div class="button" 2281 role="button" 2282 data-bind="attr:{tabindex: APP.getTabIndexByName('videoplayer')},event:{keydown: APP.getKeyDownHandler(APP.appImplementationModule.onBeforeHeroVideoStart.bind(APP.appImplementationModule))},css:{'play':!paywallVideoTypeText(),'std':paywallVideoTypeText()},click:APP.appImplementationModule.onBeforeHeroVideoStart.bind(APP.appImplementationModule),clickBubble: false"> 2283 <a href="#" 2284 data-bind="attr:{tabindex: APP.getTabIndexByName('videoplayer')},text:(paywallVideoTypeText())?paywallVideoTypeText():'WATCH NOW',attr:{href:'/video/'+objectId},click:APP.appImplementationModule.onBeforeHeroVideoStart.bind(APP.appImplementationModule),clickBubble: false"> 2285 </a> 2286 </div> 2287 </div> 2288 <!-- /ko --> 2289 </div> 2290 </div> 2291 </div> 2292 </section> 2293 2294 <section tabindex="-1" class="section item edit-actions section--item section--edit-actions section--main"> 2295 <button class="std share" title="Share" data-bind="attr:{tabindex: APP.getTabIndexByName('videoplayer'), id:'detail-actions-share'},event:{focus:APP._onItemDetailActionFocus.bind($root)},click:$root.share,clickBubble:false" onfocus="APP.currentView.lastFocusedItem=this.id;"><span>Share</span></button> 2296 </section> 2297 2298 <section tabindex="-1" class="section video section--video section--main" data-bind="with:video.metadataVersion"> 2299 <div class="metadata" > 2300 <!-- ko if: video.paywallBadgeType() --> 2301 <div class="diamond" title="Subscriber exclusive content" data-bind="css:{'ticketing':video.paywallBadgeType()=='ticketing'}"> 2302 <svg role="img" aria-label="diamond icon" id="diamond" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve"> 2303 <g> 2304 <path d="M15.1,11.7c-1,2.6-2.1,5.1-3.1,7.8c-1.1-2.6-2.1-5.2-3.1-7.8C11,11.7,13,11.7,15.1,11.7z"/> 2305 <path d="M15.1,11.3c-2.1,0-4.1,0-6.1,0c0.1-0.4,0.3-0.8,0.4-1.2c0.3-1,0.7-1.9,1-2.9C10.4,7,10.5,7,10.7,7 2306 c0.9,0,1.8,0,2.8,0C14,8.4,14.5,9.8,15.1,11.3z"/> 2307 <path d="M13.9,6.9c1-0.4,2.1-0.7,3.1-1.1C17.7,6.9,18.3,8,19,9c-1.2,0.7-2.3,1.4-3.6,2.2C14.9,9.8,14.4,8.4,13.9,6.9z" 2308 /> 2309 <path d="M5,9C5,8.9,5,8.9,5.1,8.9c0.6-1,1.2-2,1.9-3c1,0.3,2,0.7,3.1,1.1c-0.5,1.4-1,2.9-1.5,4.3C7.3,10.5,6.2,9.7,5,9 2310 z"/> 2311 <path d="M16.6,5.5c-0.7,0.3-1.4,0.5-2.1,0.7c-0.5,0.2-1.1,0.3-1.7,0.3c-0.8,0-1.7,0.1-2.5,0C9.5,6.4,8.7,6,8,5.7 2312 C7.8,5.7,7.6,5.6,7.4,5.5c1-0.3,1.9-0.7,2.8-1c0.1,0,0.2,0,0.3,0c1,0,2,0,3,0c0.1,0,0.3,0,0.4,0.1C14.8,4.9,15.6,5.2,16.6,5.5z"/> 2313 <path d="M19,9.6c-2.1,3.1-4.2,6.3-6.3,9.4c0,0,0,0-0.1,0c0-0.1,0.1-0.2,0.1-0.2c0.9-2.3,1.9-4.7,2.8-7 2314 c0-0.1,0.1-0.1,0.1-0.1C16.7,10.9,17.9,10.2,19,9.6C19,9.6,19,9.6,19,9.6z"/> 2315 <path d="M11.3,19C9.2,15.9,7.1,12.7,5,9.6c0,0,0,0,0,0c0.6,0.4,1.2,0.7,1.8,1.1c0.4,0.3,0.9,0.5,1.3,0.8 2316 c0.2,0.1,0.3,0.3,0.4,0.5c0.6,1.5,1.2,3,1.8,4.6c0.3,0.8,0.6,1.6,0.9,2.3C11.3,18.9,11.3,18.9,11.3,19C11.3,19,11.3,19,11.3,19z"/> 2317 </g> 2318 </svg> 2319 <svg role="img" aria-label="ticket icon" id="ticket" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"> 2320 <path data-name="layer2" d="M55 18.7A6.9 6.9 0 0 1 45.3 9l-7-7L2 38.3l7 7a6.9 6.9 0 0 1 9.7 9.7l7 7L62 25.7z" 2321 fill="none" stroke="#202020" stroke-miterlimit="10" stroke-width="2" stroke-linejoin="round" 2322 stroke-linecap="round"></path> 2323 <path data-name="layer1" d="M30.6 46a3 3 0 0 1-4.2 0L18 37.6a3 3 0 0 1 0-4.2L33.4 18a3 3 0 0 1 4.2 0l8.4 8.4a3 3 0 0 1 0 4.2z" 2324 fill="none" stroke="#202020" stroke-miterlimit="10" stroke-width="2" stroke-linejoin="round" 2325 stroke-linecap="round"></path> 2326 </svg> 2327 </div> 2328 <!-- /ko --> 2329 <h2 data-bind="text:video.title"></h2> 2330 <!-- ko if: video.subtitle --> 2331 <h3 data-bind="text:video.subtitle"></h3> 2332 <!-- /ko --> 2333 <!-- ko if: video.description --> 2334 <div class="description" data-bind="text:video.description"></div> 2335 <!-- /ko --> 2336 </div> 2337 </section> 2338 2339 <div class="capUnit leaderboard lazy" data-slotsize="leaderboard"></div> 2340
2341 <!-- ko with:video.sectionVersion --> 2342 <!-- ko template: {name: 'sectioned-page-body', foreach: video.sections, as: 'section', afterRender: $root.capitalism.bind($root)} --> 2343 <!-- /ko --> 2344 <!-- /ko --> 2345</script>
2345 2346
2347<script type="text/html" id="item-detail-body"> 2348 <div class="hero" aria-live="assertive" 2349 data-bind="attr:{'aria-label':item.title+', '+((item.subtitle)?item.subtitle:'')+' '+((item.description)?item.description:'')},style:{'background-image':'url('+spotlightBgImageUrl()+')'}"> 2350 2351 <!-- ko if: contentUrl --> 2352 <div class="tile" data-bind="attr:{id:'video-'+objectId}"> 2353 <div class="overlay"></div> 2354 2355 <div class="play-button-container"> 2356 2357 <div class="button play" role="button" 2358 data-bind="attr:{tabindex: APP.getTabIndexByName('hero')}, event: {keydown: APP.getKeyDownHandler(function () {APP.appImplementationModule.onBeforeHeroVideoStart(this, true)})}, click:function () {APP.appImplementationModule.onBeforeHeroVideoStart(this, true)},clickBubble: false"> 2359 <a href="" onfocus="this.parentElement.focus()" data-bind="attr:{href:'/video/'+uiItemId},click:function () {APP.appImplementationModule.onBeforeHeroVideoStart(this)},clickBubble: false">WATCH NOW</a> 2360 </div> 2361 </div> 2362 2363 </div> 2364 <!-- /ko --> 2365 2366 <div class="overlay"></div> 2367 <div class="overlay gradient"></div> 2368 2369 <!-- ko with:$root.detailMetaVersion() --> 2370 2371 <div class="metadata" data-bind="css:{'with-countdown':item.countdown()}"> 2372 <!-- ko if: item.paywallBadgeType() && item.paywallBadgeType() != 'register' --> 2373 <div class="diamond" data-bind="css:{'ticketing':item.paywallBadgeType()=='ticketing','with-badge':item.streamStateBadge()!='offline'}" title="Subscriber exclusive content"> 2374 <svg role="img" aria-label="diamond icon" version="1.1" id="diamond" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve"> 2375 <g> 2376 <path d="M15.1,11.7c-1,2.6-2.1,5.1-3.1,7.8c-1.1-2.6-2.1-5.2-3.1-7.8C11,11.7,13,11.7,15.1,11.7z"/> 2377 <path d="M15.1,11.3c-2.1,0-4.1,0-6.1,0c0.1-0.4,0.3-0.8,0.4-1.2c0.3-1,0.7-1.9,1-2.9C10.4,7,10.5,7,10.7,7c0.9,0,1.8,0,2.8,0C14,8.4,14.5,9.8,15.1,11.3z"/> 2378 <path d="M13.9,6.9c1-0.4,2.1-0.7,3.1-1.1C17.7,6.9,18.3,8,19,9c-1.2,0.7-2.3,1.4-3.6,2.2C14.9,9.8,14.4,8.4,13.9,6.9z"/> 2379 <path d="M5,9C5,8.9,5,8.9,5.1,8.9c0.6-1,1.2-2,1.9-3c1,0.3,2,0.7,3.1,1.1c-0.5,1.4-1,2.9-1.5,4.3C7.3,10.5,6.2,9.7,5,9z"/> 2380 <path d="M16.6,5.5c-0.7,0.3-1.4,0.5-2.1,0.7c-0.5,0.2-1.1,0.3-1.7,0.3c-0.8,0-1.7,0.1-2.5,0C9.5,6.4,8.7,6,8,5.7C7.8,5.7,7.6,5.6,7.4,5.5c1-0.3,1.9-0.7,2.8-1c0.1,0,0.2,0,0.3,0c1,0,2,0,3,0c0.1,0,0.3,0,0.4,0.1C14.8,4.9,15.6,5.2,16.6,5.5z"/> 2381 <path d="M19,9.6c-2.1,3.1-4.2,6.3-6.3,9.4c0,0,0,0-0.1,0c0-0.1,0.1-0.2,0.1-0.2c0.9-2.3,1.9-4.7,2.8-7c0-0.1,0.1-0.1,0.1-0.1C16.7,10.9,17.9,10.2,19,9.6C19,9.6,19,9.6,19,9.6z"/> 2382 <path d="M11.3,19C9.2,15.9,7.1,12.7,5,9.6c0,0,0,0,0,0c0.6,0.4,1.2,0.7,1.8,1.1c0.4,0.3,0.9,0.5,1.3,0.8c0.2,0.1,0.3,0.3,0.4,0.5c0.6,1.5,1.2,3,1.8,4.6c0.3,0.8,0.6,1.6,0.9,2.3C11.3,18.9,11.3,18.9,11.3,19C11.3,19,11.3,19,11.3,19z"/> 2383 </g> 2384 </svg> 2385 2386 <svg role="img" aria-label="ticket icon" id="ticket" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"> 2387 <path data-name="layer2" d="M55 18.7A6.9 6.9 0 0 1 45.3 9l-7-7L2 38.3l7 7a6.9 6.9 0 0 1 9.7 9.7l7 7L62 25.7z" 2388 fill="none" stroke="#202020" stroke-miterlimit="10" stroke-width="2" stroke-linejoin="round" 2389 stroke-linecap="round"></path> 2390 <path data-name="layer1" d="M30.6 46a3 3 0 0 1-4.2 0L18 37.6a3 3 0 0 1 0-4.2L33.4 18a3 3 0 0 1 4.2 0l8.4 8.4a3 3 0 0 1 0 4.2z" 2391 fill="none" stroke="#202020" stroke-miterlimit="10" stroke-width="2" stroke-linejoin="round" 2392 stroke-linecap="round"></path> 2393 </svg> 2394 </div> 2395 <!-- /ko --> 2396 2397 <!-- ko if: item.data.eventType !== "meetandgreet" --> 2398 <div class="status-badge" data-bind="visible:item.streamStateBadge()!='offline',css:item.streamStateBadge" style="display:none"><span data-bind="text:item.streamStateBadge"></span></div> 2399 <!-- /ko --> 2400 <!-- ko if: item.data.eventType == "meetandgreet" --> 2401 <div class="status-badge" data-bind="visible:item.streamStateBadge()!='offline',css:item.streamStateBadge" style="background: transparent;color: transparent"><span data-bind="text:item.streamStateBadge"></span></div> 2402 <!-- /ko --> 2403 <h1 aria-live="off" data-bind="text:item.title,attr:{'aria-label':item.title+', '+((item.subtitle)?item.subtitle:'')+' '+((item.description)?item.description:'')}"></h1> 2404 <!-- ko if: item.subtitle -->
2405 <h2 aria-live="off" data-bind="text:item.subtitle"></h2> 2406 <!-- /ko --> 2407 2408 <!-- ko if: item.description --> 2409 <div aria-live="off" class="description" data-bind="css:$root.streamStatus, html:item.description"></div> 2410 <!-- /ko --> 2411 2412 <!-- ko if: item.data.eventType !== "meetandgreet" || !item.userHasTicket() --> 2413 <div class="button std" role="button" aria-role="button" style="display:none" data-bind=" 2414 event: {keydown: APP.getKeyDownHandler(()=>{$root.onEventWatchNow(item)})}, 2415 attr:{tabindex: APP.getTabIndexByName('hero'), id:'btn-buy-'+item.uiItemId}, 2416 visible:!$root.isTicketWaitingRoomActive()&&item.canSellTickets()&&(item.contentUrl||(item.paywallBadgeType()=='ticketing'&&!item.userHasTicket())), 2417 click:()=>{$root.onEventWatchNow(item)},clickBubble: false" onfocus="APP.currentView.lastFocusedItem=this.id;this.parentElement.focus()"> 2418 <!-- ko if: item.paywallVideoTypeText() --> 2419 <span data-bind="text:item.paywallVideoTypeText()"></span> 2420 <!-- /ko --> 2421 <!-- ko if: !item.paywallVideoTypeText() --> 2422 <span data-bind="text:(item.streamStateBadge()=='live')?'WATCH LIVE NOW':'WATCH'"></span> 2423 <!-- /ko --> 2424 </div> 2425 <!-- /ko --> 2426 2427 <!-- ko if: item.data.eventType == "meetandgreet" && item.userHasTicket() --> 2428 <div class="button std" role="button" aria-role="button" style="display:none" data-bind=" 2429 event: {keydown: APP.getKeyDownHandler(function () { window.open('https://meet.liveone.com/'); })}, 2430 attr:{tabindex: APP.getTabIndexByName('hero'),id:'btn-buy-'+item.uiItemId}, 2431 visible:!$root.isTicketWaitingRoomActive()&&item.canSellTickets(), 2432 click:function () { window.open('https://meet.liveone.com/'); }, 2433 clickBubble: false" onfocus="APP.currentView.lastFocusedItem=this.id;this.parentElement.focus()"> 2434 <span>Meet & Greet</span> 2435 </div> 2436 <!-- /ko --> 2437 2438 <!-- ko if: $root.isTicketWaitingRoomActive() || (!item.contentUrl && item.paywallBadgeType()=='ticketing' && item.userHasTicket())--> 2439 <!-- ko if: $root.isTicketWaitingRoomActive() --> 2440 <!-- ko with: APP.purchaseQueue --> 2441 <div aria-live="off" class="description hasticket" data-bind="html:heroSectionMsg"></div> 2442 <div aria-live="off" class="description">Expected wait time: <span data-bind="text:(waitTime()>0)?formatSecondsAsTime(waitTime()):waitTime()"></span></div> 2443 <!-- /ko --> 2444 <!-- /ko --> 2445 <!-- ko if: item.userHasTicket() --> 2446 <div aria-live="off" class="description hasticket">You've got your ticket. Enjoy access to this event.</div> 2447 <!-- /ko --> 2448 2449 <!-- /ko --> 2450 2451 <!-- ko if: $root.notificationSubscriptionsAction && $root.notificationSubscriptionsAction.status() --> 2452 <div title="Toggle update settings for this event" class="button std secondary notify" role="button" aria-role="button" 2453 data-bind=" 2454 event:{keydown: APP.getKeyDownHandler(()=>{$root.onRequestSubscribeToUpdates()})}, 2455 attr:{tabindex:APP.getTabIndexByName('hero'),id:'btn-notify-'+item.uiItemId}, 2456 css:$root.notificationSubscriptionsAction.status(), 2457 click:()=>{$root.onRequestSubscribeToUpdates()}, 2458 clickBubble: false" 2459 onfocus="APP.currentView.lastFocusedItem=this.id;this.parentElement.focus()"> 2460 <span data-bind="text:$root.notificationSubscriptionsAction.buttonLabel">NOTIFY ME</span> 2461 </div> 2462 <!-- /ko --> 2463 2464 <!-- ko if: item.slackerUrl && item.streamStateBadge()!='live' && item.streamStateBadge()!='replay' --> 2465 <div class="button std" role="button" data-bind=" 2466 event:{keydown: APP.getKeyDownHandler(function () {APP.onPlaySlackerRadioItem(item)})}, 2467 attr:{tabindex:APP.getTabIndexByName('hero'),id:'detail-listen-'+item.uiItemId}, 2468 click:function () {APP.onPlaySlackerRadioItem(item)}, 2469 clickBubble: false" onfocus="APP.currentView.lastFocusedItem=this.id;this.parentElement.focus()"> 2470 LISTEN 2471 </div> 2472 <!-- /ko --> 2473 2474 2475 <!-- ko with: item --> 2476 <div class="countdown" aria-hidden="true" data-bind="countdownclock:countdown"> 2477 <div class="message" data-bind="visible:countdownMessage" style="display:none"> 2478 <span data-bind="text:countdownMessage"></span> 2479 </div> 2480 <!-- ko if: typeof(uiItemId) !== 'undefined' --> 2481 <div class="clock" data-bind="visible:countdown" style="display:none"> 2482 <span class="time" data-bind="text:_clock.days"></span> <span class="sep">:</span> 2483 <span class="time" data-bind="text:_clock.hours"></span> <span class="sep">:</span> 2484 <span class="time" data-bind="text:_clock.minutes"></span> <span class="sep">:</span> 2485 <span class="time" data-bind="text:_clock.seconds"></span> 2486 <div class="fullDateTime" data-bind="css:{'with-msg':countdownMessage}"> 2487 <span class="longDate" data-bind="text:_clock.longdate"></span> 2488 </div>
2489 </div> 2490 <!-- /ko --> 2491 <div class="share"> 2492 <ul> 2493 <li class="facebook"><a target="_blank" title="Share on Facebook" data-bind=" 2494 event:{keydown: APP.getKeyDownHandler(function (data, event) {$root.share(data, event,'facebook')})}, 2495 attr:{tabindex:APP.getTabIndexByName('hero')}, 2496 click:function (data, event) {$root.share(data, event,'facebook')}" href="https://www.facebook.com/LVO/"> 2497 <svg role="presentation" alt="facebook" xmlns="http://www.w3.org/2000/svg" width="20" height="21" viewBox="0 0 20 21"> 2498 <path fill="#FFF" fill-rule="evenodd" d="M20 19.855c0 .61-.495 1.104-1.104 1.104h-5.097v-7.745h2.6l.39-3.018h-2.99V8.27c0-.874.243-1.47 1.496-1.47h1.599v-2.7a21.468 21.468 0 0 0-2.33-.119c-2.304 0-3.881 1.407-3.881 3.99v2.226H8.076v3.018h2.607v7.745h-9.58C.495 20.96 0 20.465 0 19.855V2.064C0 1.454.494.959 1.104.959h17.792c.61 0 1.103.494 1.103 1.105v17.791"/> 2499 </svg> 2500 2501 </a></li> 2502 <li class="twitter"><a target="_blank" title="Share on X" data-bind=" 2503 event:{keydown: APP.getKeyDownHandler(function (data, event) {$root.share(data, event,'twitter')})}, 2504 attr:{tabindex:APP.getTabIndexByName('hero')}, 2505 click:function (data, event) {$root.share(data, event,'twitter')}" href="https://twitter.com/liveone"> 2506 <svg width="26" height="20" viewBox="0 0 1200 1227" fill="none" xmlns="http://www.w3.org/2000/svg"> 2507 <path d="M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z" fill="white"/> 2508 </svg> 2509 </a></li> 2510 <li class="email"><a target="_blank" title="Copy Link" href="#" data-bind=" 2511 event:{keydown: APP.getKeyDownHandler(function (data, event) {$root.share(data, event,'email')})}, 2512 attr:{tabindex:APP.getTabIndexByName('hero')}, 2513 click:function (data, event) {$root.share(data, event,'email')}"> 2514 <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2515 <path d="M16.4481 1.50023C14.844 1.4862 13.3007 2.10727 12.15 3.22645L12.1351 3.24107L11.6464 3.7298C11.2559 4.12032 11.2559 4.75349 11.6464 5.14401L12.3535 5.85112C12.7441 6.24164 13.3772 6.24164 13.7677 5.85112L14.2484 5.37048C14.834 4.80437 15.6142 4.49305 16.4218 4.50012C17.2326 4.50721 18.0103 4.83463 18.5868 5.41517C19.1637 5.99606 19.4927 6.78402 19.4998 7.60991C19.5069 8.43176 19.1946 9.22174 18.633 9.81182L15.5209 12.9432C15.2056 13.2609 14.8269 13.5058 14.4107 13.6622C13.9945 13.8185 13.5501 13.8828 13.1076 13.8509C12.6651 13.8189 12.2341 13.6915 11.8438 13.4768C11.7456 13.4228 11.6504 13.3635 11.5588 13.2993C11.1066 12.9823 10.4859 12.8717 10.0425 13.201L9.23978 13.7973C8.79642 14.1266 8.69902 14.7603 9.09601 15.1443C9.48444 15.52 9.9219 15.8435 10.3977 16.1053C11.1664 16.5282 12.0171 16.78 12.8918 16.8431C13.7666 16.9062 14.6444 16.779 15.4656 16.4706C16.2868 16.1621 17.0317 15.6797 17.65 15.0568L20.7712 11.9162L20.7898 11.8971C21.9007 10.7389 22.5136 9.18987 22.4997 7.58402C22.4859 5.97817 21.8463 4.43996 20.7155 3.30127C19.5844 2.16225 18.0521 1.51427 16.4481 1.50023Z" fill="#fff"></path> 2516 <path d="M11.1082 7.15685C10.2334 7.09376 9.35555 7.22089 8.53436 7.52937C7.71347 7.83773 6.96821 8.32053 6.34994 8.94317L3.22873 12.0838L3.21011 12.1029C2.09928 13.261 1.48637 14.8101 1.50023 16.416C1.51409 18.0218 2.15365 19.56 3.28441 20.6987C4.41551 21.8377 5.94781 22.4857 7.55185 22.4997C9.15591 22.5138 10.6993 21.8927 11.85 20.7735L11.8648 20.7589L12.3536 20.2701C12.7441 19.8796 12.7441 19.2465 12.3536 18.8559L11.6464 18.1488C11.2559 17.7583 10.6228 17.7583 10.2322 18.1488L9.75155 18.6295C9.16598 19.1956 8.38576 19.5069 7.5781 19.4999C6.76732 19.4928 5.98963 19.1653 5.41313 18.5848C4.83629 18.0039 4.50725 17.216 4.50012 16.3901C4.49303 15.5682 4.80532 14.7782 5.36694 14.1881L8.47904 11.0567C8.79434 10.7391 9.1731 10.4941 9.58932
251610.3378C10.0055 10.1814 10.4498 10.1172 10.8924 10.1491C11.3349 10.181 11.7659 10.3084 12.1561 10.5231C12.2544 10.5772 12.3495 10.6365 12.4411 10.7007C12.8934 11.0177 13.5141 11.1282 13.9574 10.7989L14.7602 10.2026C15.2036 9.87328 15.301 9.23958 14.904 8.85563C14.5155 8.47995 14.0781 8.15644 13.6022 7.89464C12.8335 7.47172 11.9829 7.21993 11.1082 7.15685Z" fill="#fff"></path> 2517 </svg> 2518 </a></li> 2519 </ul> 2520 </div> 2521 </div> 2522 <!-- /ko --> 2523 </div> 2524 2525 <!-- /ko --> 2526 2527 </div> 2528 2529 <a id="item-detail-section-top" aria-live="polite" data-bind="attr:{'aria-label':item.title+', '+((item.subtitle)?item.subtitle:'')+' '+((item.description)?item.description:'')}" class="focus-catch item-detail-section-top" tabindex="-1"></a> 2530 2531 <!-- ko with:$root.detailMetaVersion() --> 2532 <!-- 2533 This is here as a flow control to allow the page data to mutate but keep the player unchanged. Everything below must 2534 use proper item scope..."this" will not work. 2535 --> 2536 2537 <!-- ko if: APP.implementationSuperType() != 'tv' --> 2538 <section class="section item share centered section--item section--share section--centered section--main" data-bind="css:{'with-countdown':item.countdown(), 'section--with-countdown':item.countdown()}"> 2539 <ul> 2540 <li class="facebook"><a target="_blank" title="Share on Facebook" data-bind="click:function (data, event) {$root.share(data, event,'facebook')}" href="https://www.facebook.com/LVO/"> 2541 <svg role="presentation" alt="facebook" xmlns="http://www.w3.org/2000/svg" width="20" height="21" viewBox="0 0 20 21"> 2542 <path fill="#FFF" fill-rule="evenodd" d="M20 19.855c0 .61-.495 1.104-1.104 1.104h-5.097v-7.745h2.6l.39-3.018h-2.99V8.27c0-.874.243-1.47 1.496-1.47h1.599v-2.7a21.468 21.468 0 0 0-2.33-.119c-2.304 0-3.881 1.407-3.881 3.99v2.226H8.076v3.018h2.607v7.745h-9.58C.495 20.96 0 20.465 0 19.855V2.064C0 1.454.494.959 1.104.959h17.792c.61 0 1.103.494 1.103 1.105v17.791"/> 2543 </svg> 2544 2545 </a></li> 2546 <li class="twitter"><a target="_blank" title="Share on X" data-bind="click:function (data, event) {$root.share(data, event,'twitter')}" href="https://twitter.com/liveone"> 2547 <svg width="26" height="20" viewBox="0 0 1200 1227" fill="none" xmlns="http://www.w3.org/2000/svg"> 2548 <path d="M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z" fill="white"/> 2549 </svg> 2550 </a></li> 2551 <li class="email"><a target="_blank" title="Copy Link" href="#" data-bind="click:function (data, event) {$root.share(data, event,'email')}"> 2552 <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2553 <path d="M16.4481 1.50023C14.844 1.4862 13.3007 2.10727 12.15 3.22645L12.1351 3.24107L11.6464 3.7298C11.2559 4.12032 11.2559 4.75349 11.6464 5.14401L12.3535 5.85112C12.7441 6.24164 13.3772 6.24164 13.7677 5.85112L14.2484 5.37048C14.834 4.80437 15.6142 4.49305 16.4218 4.50012C17.2326 4.50721 18.0103 4.83463 18.5868 5.41517C19.1637 5.99606 19.4927 6.78402 19.4998 7.60991C19.5069 8.43176 19.1946 9.22174 18.633 9.81182L15.5209 12.9432C15.2056 13.2609 14.8269 13.5058 14.4107 13.6622C13.9945 13.8185 13.5501 13.8828 13.1076 13.8509C12.6651 13.8189 12.2341 13.6915 11.8438 13.4768C11.7456 13.4228 11.6504 13.3635 11.5588 13.2993C11.1066 12.9823 10.4859 12.8717 10.0425 13.201L9.23978 13.7973C8.79642 14.1266 8.69902 14.7603 9.09601 15.1443C9.48444 15.52 9.9219 15.8435 10.3977 16.1053C11.1664 16.5282 12.0171 16.78 12.8918 16.8431C13.7666 16.9062 14.6444 16.779 15.4656 16.4706C16.2868 16.1621 17.0317 15.6797 17.65 15.0568L20.7712 11.9162L20.7898 11.8971C21.9007 10.7389 22.5136 9.18987 22.4997 7.58402C22.4859 5.97817 21.8463 4.43996 20.7155 3.30127C19.5844 2.16225 18.0521 1.51427 16.4481 1.50023Z" fill="#000000"></path> 2554 <path d="M11.1082 7.15685C10.2334 7.09376 9.35555 7.22089 8.53436 7.52937C7.71347 7.83773 6.96821 8.32053 6.34994 8.94317L3.22873 12.0838L3.21011 12.1029C2.09928 13.261 1.48637 14.8101 1.50023 16.416C1.51409 18.0218 2.15365 19.56 3.28441 20.6987C4.41551 21.8377 5.94781 22.4857 7.55185 22.4997C9.15591 22.5138 10.6993 21.8927 11.85 20.7735L11.8648 20.7589L12.3536 20.2701C12.7441 19.8796 12.7441 19.2465 12.3536 18.8559L11.6464 18.1488C11.2559 17.7583 10.6228 17.7583 10.2322 18.1488L9.75155 18.6295C9.16598 19.1956 8.38576 19.5069 7.5781 19.4999C6.76732 19.4928 5.98963 19.1653 5.41313 18.5848C4.83629 18.0039 4.50725 17.216 4.50012 16.3901C4.49303 15.5682 4.80532 14.7782 5.36694 14.1881L8.47904 11.0567C8.79434 10.7391 9.1731 10.4941 9.58932
255410.3378C10.0055 10.1814 10.4498 10.1172 10.8924 10.1491C11.3349 10.181 11.7659 10.3084 12.1561 10.5231C12.2544 10.5772 12.3495 10.6365 12.4411 10.7007C12.8934 11.0177 13.5141 11.1282 13.9574 10.7989L14.7602 10.2026C15.2036 9.87328 15.301 9.23958 14.904 8.85563C14.5155 8.47995 14.0781 8.15644 13.6022 7.89464C12.8335 7.47172 11.9829 7.21993 11.1082 7.15685Z" fill="#000000"></path> 2555 </svg> 2556 </a></li> 2557 </ul> 2558 2559 2560 <!-- ko if: $root.isMobileDevice() && $root.hasMobileApp()--> 2561 <p class="mobile-download"> 2562 <a href="/apps" data-bind="click:function () {APP.downloadApps.getAppDownload(null, location.href)}, clickBubble: false">Download</a> the mobile app 2563 <svg role="presentation" alt="icon" data-bind="click:function () {APP.downloadApps.getAppDownload(null, location.href)}, clickBubble: false" xmlns="http://www.w3.org/2000/svg" width="14" height="24" viewBox="0 0 14 24"> 2564 <path fill="#000" fill-rule="nonzero" d="M12.019 0H1.58C.711 0 0 .729 0 1.621v20.757C0 23.27.712 24 1.581 24H12.02c.87 0 1.581-.728 1.581-1.621V1.621C13.6.729 12.888 0 12.019 0zM5.13 1.168h3.34c.105 0 .19.088.19.197a.194.194 0 0 1-.19.196H5.13a.194.194 0 0 1-.19-.196c0-.109.085-.197.19-.197zM6.8 23.19a.8.8 0 0 1-.79-.81.8.8 0 0 1 .79-.811.8.8 0 0 1 .79.81.8.8 0 0 1-.79.811zM12.5 21H1.1V2.57h11.4V21z"/> 2565 </svg> 2566 </p> 2567 <!-- /ko --> 2568 </section> 2569 <!-- /ko --> 2570 2571 2572 <!-- ko if: APP.implementationSuperType() == 'tv' --> 2573 <section tabindex="-1" class="section item detail-actions section--item section--detail-actions section--main"> 2574 <button class="std" tabindex="11" data-bind="visible:item.contentUrl,attr:{id:'detail-watch-'+item.uiItemId},event:{focus:APP._onItemDetailActionFocus.bind($root)},click:function () {APP.appImplementationModule.onBeforeHeroVideoStart(item)}" onfocus="APP.currentView.lastFocusedItem=this.id;">WATCH NOW</button> 2575 <button class="std" tabindex="11" data-bind="visible:item.slackerUrl&&!item.contentUrl,attr:{id:'detail-listen-'+item.uiItemId},event:{focus:APP._onItemDetailActionFocus.bind($root)},click:function () {APP.onPlaySlackerRadioItem(item)}" onfocus="APP.currentView.lastFocusedItem=this.id;">LISTEN</button> 2576 </section> 2577 <!-- /ko --> 2578 2579 <!-- ko if: item.sections && item.sections.tabs().length --> 2580 2581 <!-- ko template: {name: 'tabbed-section-page-body', data:item.sections, as: 'tabbedSection'} --> 2582 <!-- /ko --> 2583 2584 <!-- /ko --> 2585 2586 <!-- ko if: !item.sections || !item.sections.tabs().length --> 2587 <a id="item-detail-actions-bottom" aria-hidden="true" class="focus-catch item-detail-actions-bottom" tabindex="-1"></a> 2588 2589 <!-- ko template: {name: 'sectioned-page-body', foreach: item.sections, as: 'section', afterRender: $root.capitalism.bind($root)} --> 2590 <!-- /ko --> 2591 2592 <!-- /ko --> 2593 2594 <!-- /ko --> 2595</script>
2595 2596
2597<script type="text/html" id="blog-page-body"> 2598 <section tabindex="-1" class="section post section--post section--main" aria-live="assertive"> 2599 <div class="capUnit skyscraper lazy" data-slotsize="skyscraper"></div> 2600 <a data-bind="attr:{id:seoName,name:'currentItemTarget'}"></a> 2601 <h2 data-bind="visible:title,html:title">TITLE</h2> 2602 <h3 data-bind="visible:subtitle,html:subtitle">SUBTITLE</h3> 2603 <div class="publishInfo"> 2604 <span class="by">By</span> <span class="author" data-bind="text:author"></span> | <span class="published" data-bind="text:published"></span> 2605 <button class="std share" title="Share" tabindex="11" data-bind="click:$root.share,clickBubble:false" onfocus="APP.currentView.lastFocusedItem=this.id;"><span>Share</span></button> 2606 </div> 2607 <img class="thumbnail" data-bind="visible:thumbnail,attr:{src:thumbnail}"/> 2608 <div class="content" data-bind="html:content"></div> 2609 <!-- ko if: linkType == 'slacker' --> 2610 <div> 2611 <button class="std" data-bind="click:action">Listen Now</button> 2612 </div> 2613 <!-- /ko --> 2614 </section> 2615 <hr/> 2616</script>
2616 2617
2618<script type="text/html" id="pr-page-body"> 2619 <section tabindex="-1" class="section section--post section--main"> 2620 <a data-bind="attr:{id:navId,name:seoName}"></a> 2621 <h3 data-bind="visible:title,html:title">TITLE</h3> 2622 <div class="content" data-bind="html:content"></div> 2623 <hr/> 2624 <div class="capUnit leaderboard lazy" data-bind="attr:{id:window.generateUniqueID()}" data-slotsize="leaderboard"></div> 2625 </section> 2626</script>
vendor: 1 bytes, line 2626
2626
2627<script type="text/html" id="subnav-column-start"> 2628 <div class="subnav-column"></div> 2629</script>
vendor: 1 bytes, line 2629
2629
2630<script type="text/html" id="navbar-item"> 2631 <!-- ko if: item --> 2632 <li data-bind="attr:{'aria-expanded':(item.collapsed())?'false':'true'},css:item.classNames,clickBubble: false,event:{mouseover:item._onSubNavMouse.bind(item),mouseleave:item._onSubNavMouse.bind(item)}"> 2633 <!-- ko if: item.isSeparator() --> 2634 <div><span data-bind="text:label"></span></div> 2635 <!-- /ko --> 2636 <!-- ko if: !item.isSeparator() --> 2637 <!-- ko if: item.action || item.subnav().length --> 2638 <!-- ko if: item.seoName()=='settings' --> 2639 <a href="#" role="button" class="navlink" title="LiveOne Account Settings" data-bind="attr:{tabindex:$data.baseTabIndex,title:item.label,href:'/'+item.seoName(),'aria-label':item.ariaLabel},click:item._onClick.bind(item),clickBubble: false,css:{disabled:!APP.canNavigate()},event:{focus:APP._onHeaderNavFocus, mouseover:_onFocus.bind(item)}"> 2640 <svg aria-hidden="true" title="LiveOne Account Settings" alt="LiveOne Account Settings" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="2em" height="2em" viewBox="340 140 280 279.416" enable-background="new 340 140 280 279.416" xml:space="preserve"> 2641 <path fill="black" d="M620,305.666v-51.333l-31.5-5.25c-2.333-8.75-5.833-16.917-9.917-23.917L597.25,199.5l-36.167-36.75l-26.25,18.083 2642 c-7.583-4.083-15.75-7.583-23.916-9.917L505.667,140h-51.334l-5.25,31.5c-8.75,2.333-16.333,5.833-23.916,9.916L399.5,163.333 2643 L362.75,199.5l18.667,25.666c-4.083,7.584-7.583,15.75-9.917,24.5l-31.5,4.667v51.333l31.5,5.25 2644 c2.333,8.75,5.833,16.334,9.917,23.917l-18.667,26.25l36.167,36.167l26.25-18.667c7.583,4.083,15.75,7.583,24.5,9.917l5.25,30.916 2645 h51.333l5.25-31.5c8.167-2.333,16.333-5.833,23.917-9.916l26.25,18.666l36.166-36.166l-18.666-26.25 2646 c4.083-7.584,7.583-15.167,9.916-23.917L620,305.666z M480,333.666c-29.75,0-53.667-23.916-53.667-53.666s24.5-53.667,53.667-53.667 2647 S533.667,250.25,533.667,280S509.75,333.666,480,333.666z"></path> 2648 </svg> 2649 </a> 2650 <!-- /ko --> 2651 <!-- ko if: item.seoName()!='settings' && item.seoName()!='MusiCares' --> 2652 2653 <a href="#" class="navlink" data-bind="attr:{tabindex:$data.baseTabIndex,'aria-label':item.ariaLabel,'aria-owns':(item.subnav().length)?'subnav-'+item.id:'',href:(item.seoName() == 'more') ? '/':(item.seoName().indexOf('http')==0?item.seoName():'/'+item.seoName())},click:item._onClick.bind(item),clickBubble:false,text:item.label,css:{disabled:!APP.canNavigate()},event:{focus:APP._onHeaderNavFocus, mouseover:item._onFocus.bind(item)}"></a> 2654 <!-- /ko --> 2655 <!-- /ko --> 2656 <!-- /ko --> 2657 </li> 2658 2659 <!-- ko if: item.subnav().length --> 2660 <div class="subnav" data-bind="attr:{id:'subnav-'+item.id},css:{collapsed:item.collapsed,'burger-only':item.isHamburgerOnly()}"> 2661 2662 <!-- ko if: item.subnav()[0].length --> 2663 <!-- ko foreach: { data: item.subnav, as: 'sub' } --> 2664 <div class="subnav-container"> 2665 <!-- Check if the first element of this array is a header --> 2666 <!-- ko if: sub[0].classNames().indexOf('header') > -1--> 2667 <h2 data-bind="text:sub[0].label,css:sub[0].classNames,click:function (data, event) {if (sub[0]._onClick) {sub[0]._onClick(data, event)}},event:{mouseover:function(data, event){if (sub[0]._onClick){sub[0]._onFocus(data, event)}}}">CONTAINER</h2> 2668 <!-- /ko --> 2669 2670 <ul class="subnav" data-bind="css:{'extended':sub[0].classNames().indexOf('header') == -1},attr:{id:'subnav-'+$parentContext.$data.item.id}"> 2671 <!-- ko foreach: { data: sub, as: '_sub' } --> 2672 <!-- ko if: classNames().indexOf('header') == -1 --> 2673 <li data-bind="css:classNames,click:_onClick,clickBubble: false,attr:{'data-idx':$index()}"> 2674 <!-- ko if: isSeparator() --> 2675 <div><span class="label" data-bind="text:label">LABEL</span></div> 2676 <!-- /ko --> 2677 <!-- ko if: !isSeparator() --> 2678 <a href="#" class="navlink" data-bind="attr:{tabindex:$parentContext.$parentContext.$data.baseTabIndex,'aria-label':label,href:(seoName().indexOf('http')==0?seoName():'/'+seoName())},click:_onClick,clickBubble: false,text:label,css:{disabled:!APP.canNavigate()},event:{focus:APP._onHeaderNavFocus, mouseover:_onFocus}"></a> 2679 <!-- /ko --> 2680 </li> 2681 <!-- /ko --> 2682 <!-- /ko --> 2683 2684 </ul> 2685 2686 </div> 2687 <!-- /ko --> 2688 <!-- /ko --> 2689 2690 <!-- ko if: !item.subnav()[0].length --> 2691 <ul class="subnav" data-bind="attr:{id:'subnav-'+item.id},css:{collapsed:item.collapsed}"> 2692 <!-- ko foreach: { data: item.subnav, as: 'sub' } --> 2693 2694 <li data-bind="css:classNames,click:_onClick,clickBubble: false,attr:{'data-id
2694x':$index()}"> 2695 <!-- ko if: isSeparator() --> 2696 <div><span class="label" data-bind="text:label">LABEL</span></div> 2697 <!-- /ko --> 2698 <!-- ko if: !isSeparator() --> 2699 <a href="#" class="navlink" tabindex="5" data-bind="attr:{'aria-label':ariaLabel,href:(seoName().indexOf('http')==0?seoName():'/'+seoName())},click:_onClick,clickBubble: false,text:label,css:{disabled:!APP.canNavigate()},event:{focus:APP._onHeaderNavFocus}"></a> 2700 <!-- /ko --> 2701 </li> 2702 2703 <!-- /ko --> 2704 </ul> 2705 <!-- /ko --> 2706 2707 2708 </div> 2709 <!-- /ko --> 2710 2711 <!-- /ko --> 2712</script>
vendor: 1 bytes, line 2712
2712
2713<script type="text/html" id="navbar-item-login"> 2714 <!-- ko if: item --> 2715 <li data-bind="attr:{'aria-expanded':(collapsed())?'false':'true'},css:classNames,clickBubble: false,event:{mouseover:_onSubNavMouse,mouseleave:_onSubNavMouse}"> 2716 <a href="#" class="navlink" tabindex="5" data-bind="attr:{href:'#',title:label,'aria-label':label},click:_onClick,clickBubble: false,css:{disabled:!APP.canNavigate()},event:{focus:APP._onHeaderNavFocus}"> 2717 <!-- ko if: !APP.USER.getProfileImage() --> 2718 <svg role="presentation" alt="avatar icon" class="avatar default" width="30px" height="30px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" > 2719 <g id="shape" fill="#FFFFFF" fill-rule="nonzero"> 2720 <path d="M30,0 C13.458,0 0,13.458 0,30 C0,46.543 13.458,60 30,60 C46.542,60 60,46.542 60,30 C60,13.457 46.542,0 30,0 Z M50.6,47.998 C48.036,43.324 42.455,38.261 38.527,36.183 C38.432,36.28 38.339,36.381 38.241,36.476 C35.913,38.726 32.987,39.966 30,39.966 C26.756,39.966 23.782,38.538 21.48,36.176 C17.558,38.248 11.967,43.32 9.4,48 C5.212,43.188 2.667,36.907 2.667,30.038 C2.667,14.946 14.928,2.667 30,2.667 C45.072,2.667 57.333,14.946 57.333,30.038 C57.333,36.906 54.788,43.187 50.601,47.998 L50.6,47.998 Z M30.668,12 C24.777,12 20,16.36 20,23.822 C20,31.284 24.776,37.333 30.667,37.333 C33.149,37.333 35.433,36.259 37.247,34.457 C39.735,31.984 41.333,28.139 41.333,23.822 C41.333,16.36 36.558,12 30.667,12 L30.668,12 Z" id="Shape"></path> 2721 </g> 2722 </g> 2723 </svg> 2724 <!-- /ko --> 2725 <!-- ko if: APP.USER.getProfileImage() --> 2726 <img class="avatar" src="//cdn.liveone.com/s=4.0.1400/images/pixel.gif" data-bind="attr:{src:APP.USER.getProfileImage()}"/> 2727 <!-- /ko --> 2728 <span data-bind="text:label" class="username"></span> 2729 </a> 2730 2731 <!-- ko if: subnav().length --> 2732 <ul role="group" class="subnav" data-bind="css:{collapsed:collapsed,basic:!APP.USER.user().isAnon}"> 2733 2734 <!-- ko foreach: { data: subnav, as: 'sub' } --> 2735 2736 <li data-bind="click:_onClick,clickBubble: false,style:{width:(classNames().indexOf('loader') > -1)?'100%':'auto'}"> 2737 <!-- ko if: classNames().indexOf('loader') > -1 --> 2738 <div class="loading-pulse"></div> 2739 <!-- /ko --> 2740 <!-- ko if: classNames().indexOf('loader') == -1 --> 2741 <button href="#" class="" tabindex="5" data-bind="attr:{href:seoName()},click:_onClick,clickBubble: false,text:label,css:classNames,event:{focus:APP._onHeaderNavFocus}"></button> 2742 <!-- /ko --> 2743 </li> 2744 <!-- /ko --> 2745 2746 </ul> 2747 <!-- /ko --> 2748 </li> 2749 <!-- /ko --> 2750 2751</script>
vendor: 1 bytes, line 2751
2751
2752<script type="text/html" id="profile-header"> 2753 <section aria-live="polite" class="section lone-title section--lone-title section--main"> 2754 <h1>Profile</h1> 2755 </section> 2756 <section aria-live="polite" class="section myaccount profile-header section--myaccount section--profile-header section--main" data-bind="css:{editable:editable,image:image,'section--editable': editable, 'section--image': image}"> 2757 <div class="mini-profile" data-bind="css:{image:image}"> 2758 <!-- ko if: !image --> 2759 <svg role="presentation" alt="avatar icon" class="avatar default" width="60px" height="60px" viewBox="0 0 65 65" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" > 2760 <g id="shape" fill="#000000" fill-rule="nonzero"> 2761 <path d="M30,0 C13.458,0 0,13.458 0,30 C0,46.543 13.458,60 30,60 C46.542,60 60,46.542 60,30 C60,13.457 46.542,0 30,0 Z M50.6,47.998 C48.036,43.324 42.455,38.261 38.527,36.183 C38.432,36.28 38.339,36.381 38.241,36.476 C35.913,38.726 32.987,39.966 30,39.966 C26.756,39.966 23.782,38.538 21.48,36.176 C17.558,38.248 11.967,43.32 9.4,48 C5.212,43.188 2.667,36.907 2.667,30.038 C2.667,14.946 14.928,2.667 30,2.667 C45.072,2.667 57.333,14.946 57.333,30.038 C57.333,36.906 54.788,43.187 50.601,47.998 L50.6,47.998 Z M30.668,12 C24.777,12 20,16.36 20,23.822 C20,31.284 24.776,37.333 30.667,37.333 C33.149,37.333 35.433,36.259 37.247,34.457 C39.735,31.984 41.333,28.139 41.333,23.822 C41.333,16.36 36.558,12 30.667,12 L30.668,12 Z" id="Shape"></path> 2762 </g> 2763 </g> 2764 </svg> 2765 <!-- /ko --> 2766 <!-- ko if: image --> 2767 <img class="avatar" src="//cdn.liveone.com/s=4.0.1400/images/pixel.gif" data-bind="style:{'background-image':'url('+image+')'}"/> 2768 <!-- /ko --> 2769 2770 <span class="username" data-bind="html:handle"></span> 2771 <div class="profile-stats"> 2772 <p class="followers"> 2773 <span class="number" data-bind="text:stats.followerCount"></span> 2774 <span class="label">Followers</span> 2775 </p> 2776 <div class="sep"></div> 2777 <p class="following"> 2778 <span class="number" data-bind="text:stats.followingCount"></span> 2779 <span class="label">Following</span> 2780 </p> 2781 <!-- ko if: !isPrivate --> 2782 <div class="sep"></div> 2783 <ul class="social-links"> 2784 <li class="instagram"><a target="_blank" title="LiveOne on Instagram" href="https://www.instagram.com/liveone/"><span>Instagram</span></a></li> 2785 <li class="tiktok"><a target="_blank" title="LiveOne on TikTok" href="https://tiktok.com/@liveone"><span>TikTok</span></a></li> 2786 <li class="youtube"><a target="_blank" title="LiveOne on YouTube" href="https://www.youtube.com/liveone"><span>YouTube</span></a></li> 2787 <li class="twitter"><a target="_blank" title="LiveOne on Twitter" href="https://twitter.com/liveone"><span>Twitter</span></a></li> 2788 <li class="facebook"><a target="_blank" title="LiveOne on Facebook" href="https://www.facebook.com/LVO/"><span>Facebook</span></a></li> 2789 </ul> 2790 <!-- /ko --> 2791 </div> 2792 <!-- ko if: $root.isMyProfile() --> 2793 <button class="profile view-full-profile" data-bind="click:$root.changeProfileImageOrHandle.bind($root)">EDIT</button> 2794 <!-- /ko --> 2795 </div> 2796 <!-- ko if: $root.isMyProfile() || !isPrivate --> 2797 <div class="bio" data-bind="visible:name||bio" style="display:none"> 2798 <span class="username" data-bind="html:name,visible:name" style="display:none">User Name</span> 2799 <p data-bind="html:bio,visible:bio" style="display:none">Short Bio</p> 2800 </div> 2801 <!-- /ko --> 2802 </section> 2803 2804 <!-- ko if: editable --> 2805 <section class="section myaccount profile-header-edit section--myaccount section--profile-header-edit section--main"> 2806 <p> 2807 <span class="">Your profile is currently set to <span class="bold" data-bind="text:accessLevel"></span></span> 2808 </p> 2809 </section> 2810 <section class="section myaccount profile-header-edit section--myaccount section--profile-header-edit section--main"> 2811 <p> 2812 <span> 2813 Showing: 2814 <span data-bind="text:($root.isMyProfile())?'MY':'PUBLIC'"></span> VIEW 2815 (<span class="link" data-bind="click:$root.toggleMyView.bind($root)">CHANGE VIEW</span>) 2816 </span> 2817 </p> 2818 </section> 2819 <!-- /ko --> 2820</script>
vendor: 1 bytes, line 2820
2820
2821<script type="text/html" id="mylibrary-header"> 2822 <a id="spotlight-catch-top" aria-hidden="true" class="focus-catch spotlight-play" tabindex="-1"></a> 2823 2824 <section aria-live="polite" class="section lone-title section--lone-title section--main"> 2825 <h1>My Library</h1> 2826 </section> 2827 <!-- ko with: APP.USER.slackerUser() --> 2828 <section class="section myaccount section--myaccount section--main" data-bind="css:APP.USER.userTierStyles()"> 2829 <!-- ko if: actualTier > 0 --> 2830 <button class="std play favsradio" data-bind=" 2831 event:{keydown: APP.getKeyDownHandler($root._onPlayFavoritesRadio)}, 2832 attr:{tabindex: APP.getTabIndexByName('mylibrary'),'aria-label':(!$root.isFavsRadioPlayable())?'Play Favorites Radio: Like a song to enable favorites radio.':''}, 2833 css:{ 2834 disabled:!$root.isFavsRadioPlayable(), 2835 pause:APP.slackerPlayerSession().currentPlayableItem()&&APP.slackerPlayerSession().currentPlayableItem().itemMatchType=='favs'&&APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle=='pause' 2836 }, 2837 click:$root._onPlayFavoritesRadio, 2838 text:((APP.slackerPlayerSession().currentPlayableItem()&&APP.slackerPlayerSession().currentPlayableItem().itemMatchType=='favs'&&APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle=='pause')?'PAUSE':'PLAY')+' FAVORITES RADIO'">PLAY FAVORITES RADIO</button> 2839 <button aria-label="Refresh" class="std secondary refresh" tabindex="1" data-bind="event:{keydown: APP.getKeyDownHandler(function(){APP._setNavigating(true);$root.init()})},attr:{tabindex: APP.getTabIndexByName('mylibrary')},visible:APP.implementationSuperType() == 'tv',click:function(){APP._setNavigating(true);$root.init()}" style="display:none"><span>REFRESH PAGE</span><svg role="presentation" alt="refresh" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 26" width="26px" height="26px"><path d="M 13.8125 0 C 7.878906 0 4.082031 4.292969 4 10 L 0.5 10 C 0.300781 10 0.09375 10.113281 0.09375 10.3125 C -0.0078125 10.511719 -0.0078125 10.710938 0.09375 10.8125 L 6.09375 18.5 C 6.195313 18.601563 6.300781 18.6875 6.5 18.6875 C 6.699219 18.6875 6.804688 18.601563 6.90625 18.5 L 12.90625 10.8125 C 13.007813 10.710938 13.007813 10.511719 12.90625 10.3125 C 12.804688 10.113281 12.601563 10 12.5 10 L 9 10 C 9.066406 2.464844 12.921875 0.789063 13.8125 0.09375 C 14.011719 -0.0078125 14.011719 0 13.8125 0 Z M 19.5 7.34375 C 19.351563 7.34375 19.195313 7.398438 19.09375 7.5 L 13.09375 15.1875 C 12.992188 15.386719 13 15.585938 13 15.6875 C 13.101563 15.886719 13.304688 16 13.40625 16 L 17 16 C 16.933594 23.535156 13.078125 25.210938 12.1875 25.90625 C 11.988281 26.007813 11.988281 26 12.1875 26 C 18.121094 26 21.917969 21.707031 22 16 L 25.40625 16 C 25.605469 16 25.8125 15.886719 25.8125 15.6875 C 26.011719 15.488281 26.007813 15.289063 25.90625 15.1875 L 19.90625 7.5 C 19.804688 7.398438 19.648438 7.34375 19.5 7.34375 Z"/></svg></button> 2840 <div class="tier-notice" data-bind="css:{image:APP.USER.getProfileImage()}"> 2841 <span class="tier-button" data-bind="css:APP.USER.userTierStyles,text:APP.USER.userTierText">Account Level</span> 2842 <!-- ko if: APP.implementationSuperType() != 'tv' --> 2843 2844 2845 <!-- ko if: !policy.promo --> 2846 <!-- ko if: actualTier == 1 --> 2847 <span class="tier-upgrade" data-bind=" 2848 event:{keydown: APP.getKeyDownHandler(()=>APP.onRequestUpgrade('plus','mylibrary'))}, 2849 attr:{tabindex: APP.getTabIndexByName('mylibrary', 2)}, 2850 click:()=>APP.onRequestUpgrade('plus','mylibrary')"> 2851 <span class="full">Upgrade to listen ad free</span> 2852 <span class="short">Listen ad free</span> 2853 </span> 2854 <!-- /ko --> 2855 2856 <!-- ko if: actualTier == 5--> 2857 <span class="tier-upgrade" data-bind=" 2858 click: !hooplaUser ? ()=>APP.onRequestUpgrade('premium','mylibrary') : null, 2859 css: { 'hoopla-upgrade': hooplaUser }, 2860 attr: { tabindex: APP.getTabIndexByName('mylibrary',2), 'data-HooplaUser': hooplaUser.toString() }, 2861 event: { keyup: !hooplaUser ? APP.getKeyDownHandler(()=>APP.onRequestUpgrade('premium','mylibrary')) : null } 2862 "> 2863 <span class="full">Upgrade to play songs on demand</span> 2864 <span class="short">Play on demand</span> 2865</span> 2866 <!-- /ko --> 2867 2868 <!-- ko if: actualTier > 5 --> 2869 <span class="tier-upgrade"> 2870 2871 </span> 2872 <!-- /ko --> 2873 <!-- /ko --> 2874 <!-- /ko --> 2875 <button class="profile settings" aria-label="Account Settings" data-bind=" 2876 event:{keydown: APP.getKeyDownHandler(()=>{APP.USER.doSlackerSettings.bind(APP.USER)()})}, 2877 attr:{tabindex: APP.getTabIndexByName('mylibrary', 2)}, 2878 click:()=>{APP.USER.doSlackerSettings.bind(APP.USER)()}">SETTINGS</button> 2879 2880 <!-- ko if: policy.promo && policy.promo.uiMessage --> 2881 <div class="tier-button promo-notice" data-bind="css:policy.promo.promoTierText"> 2882 <span data-bind="html:policy.promo.uiMessage"></span> 2883 </div> 2884 <!-- /ko --> 2885 </div> 2886 2887 <div class="mini-profile link" data-bind=" 2888 event:{keydown: APP.getKeyDownHandler($root.changeProfileImageOrHandle.bind($root))}, 2889 attr:{tabindex: APP.getTabIndexByName('mylibrary',1)}, 2890 click:$root.changeProfileImageOrHandle.bind($root), 2891 css:{image:APP.USER.getProfileImage(), 2892 oldstyle:!APP.supportsNewProfile()}"> 2893 2894 <!-- ko if: !APP.USER.getProfileImage() --> 2895 <svg role="presentation" alt="avatar icon" data-bind="css:{'noprofile':!APP.supportsNewProfile()}" class="avatar default" width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" > 2896 <g id="shape" fill="#000000" fill-rule="nonzero"> 2897 <path d="M30,0 C13.458,0 0,13.458 0,30 C0,46.543 13.458,60 30,60 C46.542,60 60,46.542 60,30 C60,13.457 46.542,0 30,0 Z M50.6,47.998 C48.036,43.324 42.455,38.261 38.527,36.183 C38.432,36.28 38.339,36.381 38.241,36.476 C35.913,38.726 32.987,39.966 30,39.966 C26.756,39.966 23.782,38.538 21.48,36.176 C17.558,38.248 11.967,43.32 9.4,48 C5.212,43.188 2.667,36.907 2.667,30.038 C2.667,14.946 14.928,2.667 30,2.667 C45.072,2.667 57.333,14.946 57.333,30.038 C57.333,36.906 54.788,43.187 50.601,47.998 L50.6,47.998 Z M30.668,12 C24.777,12 20,16.36 20,23.822 C20,31.284 24.776,37.333 30.667,37.333 C33.149,37.333 35.433,36.259 37.247,34.457 C39.735,31.984 41.333,28.139 41.333,23.822 C41.333,16.36 36.558,12 30.667,12 L30.668,12 Z" id="Shape"></path> 2898 </g> 2899 </g> 2900 </svg> 2901 <!-- /ko --> 2902 <!-- ko if: APP.USER.getProfileImage() --> 2903 <img class="avatar" src="//cdn.liveone.com/s=4.0.1400/images/pixel.gif" data-bind="css:{'noprofile':!APP.supportsNewProfile()},style:{'background-image':'url('+APP.USER.getProfileImage()+')'}"/> 2904 <!-- /ko --> 2905 2906 <span class="username noprofile" data-bind="html:(basicProfile ? basicProfile.handle : null)||name||username||' '"></span> 2907 2908 <!-- ko if:APP.supportsNewProfile() --> 2909 <!-- ko with:basicProfile --> 2910 <div class="profile-stats"> 2911 <div class="sep"></div> 2912 <p class="following"> 2913 <span class="number" data-bind="text:stats.followingCount"></span> 2914 <span class="label">Following</span> 2915 </p> 2916 <p class="followers"> 2917 <span class="number" data-bind="text:stats.followerCount"></span> 2918 <span class="label">Followers</span> 2919 </p> 2920 2921 </div> 2922 <button class="profile view-full-profile" data-bind="
2923 event: {keydown: APP.getKeyDownHandler($root.goToProfile)}, 2924 attr: {tabindex: APP.getTabIndexByName('mylibrary',1)}, 2925 click: $root.goToProfile, 2926 clickBubble: false">PROFILE</button> 2927 <!-- /ko --> 2928 <!-- /ko --> 2929 2930 </div> 2931 <a id="spotlight-play-catch" aria-hidden="true" class="focus-catch spotlight-play" tabindex="-1"></a> 2932 2933 <!-- /ko --> 2934 <!-- ko if: actualTier == 0 --> 2935 <p class="signup"> 2936 <a data-bind="attr:{tabindex: APP.getTabIndexByName('mylibrary')}, click:function (){APP.USER.doSlackerLogin()}" href="#">Sign Up</a> for a free account to save content to all devices and create a profile.<button class="std play favsradio" data-bind="css:{disabled:!$root.isFavsRadioPlayable(),pause:APP.slackerPlayerSession().currentPlayableItem()&&APP.slackerPlayerSession().currentPlayableItem().itemMatchType=='favs'&&APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle=='pause'},click:$root._onPlayFavoritesRadio, text:((APP.slackerPlayerSession().currentPlayableItem()&&APP.slackerPlayerSession().currentPlayableItem().itemMatchType=='favs'&&APP.slackerPlayerSession().radioPlayerStateManager().buttonstyle=='pause')?'PAUSE':'PLAY')+' FAVORITES RADIO'">PLAY FAVORITES RADIO</button> 2937 </p> 2938 <!-- /ko --> 2939 </section> 2940 </section> 2941 <!-- /ko --> 2942 2943</script>
vendor: 1 bytes, line 2943
2943
2944<script type="text/html" id="create-station-prompt"> 2945 <div class="create-prompt-react-mount"></div> 2946</script>
vendor: 1 bytes, line 2946
2946
2947<script type="text/html" id="create-playlist-prompt"> 2948 <div class="create-prompt-react-mount"></div> 2949</script>
2949 2950
2951<script type="text/html" id="benefit-list"> 2952 <ul class="benefit-list"> 2953 <!-- ko foreach: benefits --> 2954 <li class="benefit-list__item"> 2955 <div data-bind="style: { backgroundImage : 'url(' + '//cdn.liveone.com/s=4.0.1400/images/offers/v2/icons/benefits/' + $data.id + '-circle.svg)' }" class="benefit-list__icon"></div> 2956 <div data-bind="text: $data.label" class="benefit-list__label"></div> 2957 </li> 2958 <!-- /ko --> 2959 </ul> 2960</script>
2960 2961
2962<script type="text/html" id="upgrade-success-prompt"> 2963 <div id="upgrade-success-body"> 2964 <h2 class="upgrade-success-body__title" data-bind="text:title"></h2> 2965 <h3 class="upgrade-success-body__subtitle" data-bind="text:subtitle"></h3> 2966 <!-- ko template: { 2967 name: "benefit-list", 2968 data: { 2969 plans: plans, 2970 benefits: benefits, 2971 } 2972 } --> 2973 <!-- /ko --> 2974 <!-- ko if: note.visible --> 2975 <div class="upgrade-success-body__note" data-bind="html: note.text"></div> 2976 <!-- /ko --> 2977 </div> 2978</script>
2978 2979
2980<script type="text/html" id="user-feedback-prompt"> 2981 <div id="user-feedback-form-body"> 2982 <div> 2983 <h2>Feedback</h2> 2984 </div> 2985 <a id="modal-action-top" aria-hidden="true" class="focus-catch modal-action" tabindex="-1"></a> 2986 <a id="modal-action-top" aria-hidden="true" class="focus-catch modal-action hero-focus-side left" tabindex="-1"></a> 2987 2988 <div class="user-feedback-form centered"> 2989 <!-- ko if: !APP.USER.slackerUser().username --> 2990 <label class="" for="email">Email address for replies:</label> 2991 <!-- ko if: errors().email --><div id="email-error" role="alert" class="required" data-bind="text: errors().email.message"></div><!-- /ko --> 2992 <input type="text" name="email" tabindex="10" id="email" data-bind="textInput:email, attr:{'aria-describedby': errors().email ? 'email-error' : null, 'aria-invalid': errors().email ? 'true' : 'false'}"> 2993 <div class="footnote">*No SPAM. We promise. Your email address will only be used to respond to your feedback.</div> 2994 <!-- /ko --> 2995 <!-- ko if: errors().comments --><div id="comments-error" role="alert" class="required" data-bind="text: errors().comments.message"></div><!-- /ko --> 2996 <textarea id="comments" name="comments" placeholder="How can we make your experience better?" tabindex="11" maxlength="500" data-bind="textInput:comments, attr:{'aria-describedby': errors().comments ? 'comments-error' : null, 'aria-invalid': errors().comments ? 'true' : 'false'}"></textarea> 2997 <button class="std" tabindex="12" data-bind="click:submitFeedback"> 2998 <span>SEND</span> 2999 </button> 3000 </div> 3001 <a id="modal-action-bottom" aria-hidden="true" class="focus-catch modal-action hero-focus-side right" tabindex="-1"></a> 3002 <a id="modal-action-bottom" aria-hidden="true" class="focus-catch modal-action" tabindex="-1"></a> 3003 </div> 3004</script>
3004 3005
3006<script type="text/html" id="upload-profile-img-prompt"> 3007 <div id="user-feedback-form-body"> 3008 <div id="img-upload-container"> 3009 <form id="upload-form" enctype="multipart/form-data" method="PATCH" data-bind="submit: submitProfileUpdate"> 3010 <input id="message" name="message" type="hidden"> 3011 3012 <h2>Profile Image</h2> 3013 <p>Upload a JPG or PNG to be your personal avatar. Your profile image will be viewable by other users when you chat during our livestream events.</p> 3014 <!-- ko if: errors() --> 3015 <label for="avatar" class="error" data-bind="text:errors"></label> 3016 <!-- /ko --> 3017 <input id="avatar" name="avatar" type="file" data-bind="event:{change:onUserSelectedImage}"> 3018 3019 <!-- ko if: stationImageUpload() --> 3020 <div class="avatar user" data-bind="click:function () {$('#avatar').click()},style:{'background-image':'url('+stationImageUpload()+')'}"></div> 3021 <!-- /ko --> 3022 <!-- ko if: !stationImageUpload() --> 3023 <svg role="presentation" alt="avatar icon" class="avatar default" data-bind="click:function () {$('#avatar').click()}" width="30px" height="30px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 3024 <g stroke="none" stroke-width="1" fill="none" > 3025 <g id="shape" fill="#000000" fill-rule="nonzero"> 3026 <path d="M30,0 C13.458,0 0,13.458 0,30 C0,46.543 13.458,60 30,60 C46.542,60 60,46.542 60,30 C60,13.457 46.542,0 30,0 Z M50.6,47.998 C48.036,43.324 42.455,38.261 38.527,36.183 C38.432,36.28 38.339,36.381 38.241,36.476 C35.913,38.726 32.987,39.966 30,39.966 C26.756,39.966 23.782,38.538 21.48,36.176 C17.558,38.248 11.967,43.32 9.4,48 C5.212,43.188 2.667,36.907 2.667,30.038 C2.667,14.946 14.928,2.667 30,2.667 C45.072,2.667 57.333,14.946 57.333,30.038 C57.333,36.906 54.788,43.187 50.601,47.998 L50.6,47.998 Z M30.668,12 C24.777,12 20,16.36 20,23.822 C20,31.284 24.776,37.333 30.667,37.333 C33.149,37.333 35.433,36.259 37.247,34.457 C39.735,31.984 41.333,28.139 41.333,23.822 C41.333,16.36 36.558,12 30.667,12 L30.668,12 Z" id="Shape"></path> 3027 </g> 3028 </g> 3029 </svg> 3030 <!-- /ko --> 3031 3032 <h2>Chat Handle</h2> 3033 <p>The name viewable by other users when you chat during our livestream events.</p> 3034 <input id="handle" name="handle" type="text" data-bind="textInput:handle" maxlength="30"> 3035 3036 <!-- ko if: isFullProfileEdit --> 3037 <h2>Name</h2> 3038 <p>The name viewable by others on your public profile page</p> 3039 <input id="name" name="name" type="text" data-bind="textInput:name" maxlength="30"> 3040 3041 <h2>Bio</h2> 3042 <p>Something you want others to know about you on your public profile page</p> 3043 <textarea id="bio" name="bio" data-bind="textInput:bio" maxlength="150"></textarea> 3044 <!-- /ko --> 3045 3046 <p data-bind="visible:!isUploading(),css:{disabled:!canSubmit()}"> 3047 <button class="std" data-bind="click:submitProfileUpdate">Update</button> 3048 </p> 3049 3050 <div data-bind="visible:isUploading()"> 3051 <div class="loading-pulse"></div> 3052 </div> 3053 3054 </form> 3055 </div> 3056 </div> 3057</script>
3057 3058
3059<script type="text/html" id="wopr-prompt"> 3060 <div id="wopr-body" data-bind="style:{'backgroundImage':'url('+fullbackgroundImage()+')'}"> 3061 <h2>SLACKER MUSIC ASSISTANT</h2> 3062 <div class="console" data-bind="css:{'basic':APP.USER.slackerUser().effectiveTier < 5}" style="overflow:auto"> 3063 <!-- ko foreach: {data: consoleMsgs, as: 'msg'} --> 3064 <div data-bind="css:style"> 3065 <div class="wopr msg" data-bind="html:msg">Message</div> 3066 </div> 3067 <!-- /ko --> 3068 <div id="wopr-leaderboard" class="capUnit leaderboard" data-slotsize="leaderboard"></div> 3069 </div> 3070 <!-- ko if: !consoleMsgs().length --> 3071 <div class="loading-pulse"></div> 3072 <!-- /ko --> 3073 <input id="woprUser" name="woprUser" type="text" data-bind="textInput:userInput"/> 3074 </div> 3075</script>
3075 3076
3077<script type="text/html" id="slacker-external-service-prompt"> 3078 <div id="slacker-external-service-body"> 3079 <iframe allowfullscreen="true" loading="eager" referrerpolicy="origin-when-cross-origin" sandbox="allow-forms allow-modals allow-orientation-lock allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts allow-top-navigation allow-top-navigation-by-user-activation" id="external-service" data-bind="attr:{src:APP.USER.externalWindowSrc}"></iframe> 3080 </div> 3081</script>
vendor: 1 bytes, line 3081
3081
3082<script type="text/html" id="artistPicker-prompt"> 3083 <!-- The entire inner artist-picker modal is a single React component 3084 (ArtistPicker). It reads the ArtistPickerModule's observables (data, 3085 showLoader, personalizedMessages, isEmptyProfile, selectedArtists, query) 3086 and calls its methods (initSearchBox, onSelectArtist, onUserSubmit, 3087 onNotNow, changeTab) â the module stays as the headless data/logic backend. 3088 Rendering loader + search + grid + selected strip + buttons in one flex 3089 column (rather than KO chrome around a React grid) keeps the grid as the 3090 only scroll region and the footer full-width. --> 3091 <section id="artistPicker-prompt-body" class="section section--main"> 3092 <div class="react-wrapper" data-bind="component: {name: 'react-wrapper', params: {name: 'ArtistPicker', props: { data: data, APP: APP, root: $root }, subscriptionMap:{root: {selectedArtists: true}}}}"></div> 3093 </section> 3094</script>
vendor: 1 bytes, line 3094
3094
3095<script type="text/html" id="search-page-header"> 3096 <div tabindex="-1" class="search-header" data-bind="css:{full:$root.queryType() !== null}"> 3097 <!-- ko if: $root.queryType() === null --> 3098 <section tabindex="-1" class="section section--main"> 3099 <div class="scroll-container"> 3100 <input name="query" id="query" autocomplete="off" type="text" class="init query-entry" data-bind="attr:{tabindex:APP.getTabIndexByName('search'),'aria-label':'Text Input: '+INIT_BOX_VAL,placeholder:INIT_BOX_VAL},event:{focus:initSearchBox,keydown:initSearchBox},textInput:query"/> 3101 </div> 3102 </section> 3103 <!-- /ko --> 3104 <!-- ko if: $root.queryType() !== null --> 3105 <section tabindex="-1" class="section section--main"> 3106 <div class="scroll-container"> 3107 <span class="queryType" data-bind="text:viewAllTitle"></span> "<span class="query" data-bind="text:query"></span>" 3108 </div> 3109 </section> 3110 <!-- ko if: isSearching() --> 3111 <section tabindex="-1" class="fullsearch section section--main" > 3112 <div class="centered loader"> 3113 <div class="loading-pulse"></div> 3114 </div> 3115 </section> 3116 <!-- /ko --> 3117 <!-- /ko --> 3118 </div> 3119 3120 <!-- ko if: $root.queryType() === null --> 3121 <!-- ko if: data().length == 0 && !isSearching() --> 3122 <!-- ko if: !query() || query() == INIT_BOX_VAL --> 3123 <section tabindex="-1" class="emptySet section section--main"> 3124 <div class="scroll-container"> 3125 <h3>Search</h3> 3126 <p data-bind="text: searchDesc"></p> 3127 </div> 3128 </section> 3129 <!-- /ko --> 3130 <!-- /ko --> 3131 <!-- /ko --> 3132 <!-- ko if: $root.queryType() !== null && data().length == 0 --> 3133 <section tabindex="-1" class="emptySet section section--main"> 3134 <div class="scroll-container"> 3135 <h3>No Results</h3> 3136 </div> 3137 </section> 3138 <!-- /ko --> 3139 3140</script>
3140 3141
3142<script type="text/html" id="plan-cards"> 3143 <div data-bind="attr:{ class: 'plan-card-wrapper '+'plan-cards-'+plans.length}"> 3144 <!-- ko foreach: {data: plans, as: 'plan'}--> 3145 <div class="plan-card" data-bind="css:{'disabled':checkGeo&&!APP.USER.slackerUser().audioAllowed}"> 3146 <div data-bind="attr:{ class: 'plan-name '+plan.level.toLowerCase() }"> 3147 <span class="name" data-bind="text:plan.level"></span> 3148 <span class="price" data-bind="text: (plan.price !== 'FREE' && !!plan.term ? '$'+plan.price : plan.price) + (plan.price !== 'FREE' && !!plan.term ? '/'+plan.term : '')"> 3149 </span> 3150 <div class="subtitle"> 3151 <span data-bind="text:plan.description"></span> 3152 </div> 3153 </div> 3154 <div class="plan-card-body"> 3155 <!-- ko if: !!plan.onClick--> 3156 <div class="plan-card-cta"> 3157 <button class="std" data-bind="click:plan.onClick,visible:!APP.USER.slackerUser().id || APP.USER.slackerUser().actualTier < plan.levelId,text:plan.buttonText"></button> 3158 <p class="currentmembership" data-bind="visible: APP.USER.slackerUser().id && APP.USER.slackerUser().actualTier == plan.levelId" style=""> 3159 <span>current membership</span> 3160 </p> 3161 </div> 3162 <!-- /ko --> 3163 <div class="plan-features" > 3164 <ul> 3165 <!--ko foreach: ($parent.customBenefits || []) --> 3166 <li> 3167 <span data-bind="text: $data"></span> 3168 </li> 3169 <!-- /ko --> 3170 3171 <!-- ko foreach: $parent.benefits --> 3172 <li data-bind="css: {'disabled' : $index() > plan.topBenefitIndex},attr:{'aria-label':(($index() > plan.topBenefitIndex)?',Does not include ':',Includes ')+$data.label+','}"> 3173 <span data-bind="text: $data.label"></span> 3174 </li> 3175 <!-- /ko --> 3176 </ul> 3177 </div> 3178 <p class="currentmembership" data-bind="visible:$parent.showCurrentMembership && APP.USER.slackerUser().id && APP.USER.slackerUser().actualTier === plan.levelId"> 3179 <span>current membership</span> 3180 </p> 3181 <div class="special-offers" data-bind="visible: $parent.showSpecialOffers && plan.specialOffers.length > 0"> 3182 <h5 class="special-offers-header" style="margin-bottom: 1em;"><!--ko text: 'SPECIAL OFFER'--><!--/ko--></h5> 3183 <div class="special-offers-wrapper" data-bind="foreach: plan.specialOffers"> 3184 <div class="special-offer" style="width:50%" > 3185 <div data-bind="attr: {class: 'special-offer-icon '+id}"></div> 3186 <h5 data-bind="text:title"></h5> 3187 <button class="action special-offer-btn" data-bind="click:onClick,text:buttonText" ></button> 3188 </div> 3189 <div data-bind="visible: $index() < plan.specialOffers.length - 1" class="vr"></div> 3190 </div> 3191 </div> 3192 </div> 3193 </div> 3194 <!-- /ko --> 3195 </div> 3196</script>
3196 3197
3198<script type="text/html" id="mash-icon"> 3199 <div class="heart mash" data-bind="with:APP.appImplementationModule.socialMessaging().channelsByType.emote"> 3200 <div class="mash noselect" data-bind="click:APP.appImplementationModule.onSelectEmoticonToggle.bind(APP.appImplementationModule),clickBubble:false,css:{'selectable':selectableEmoticons().length}"> 3201 <div class="selectable-emoticons"> 3202 <!-- ko foreach:{data:selectableEmoticons(), as:'icon'} --> 3203 <img class="customIcon" src="/s=4.0.1400/images/pixel.gif" data-bind="click:APP.appImplementationModule.onSelectNewEmoticon.bind(APP.appImplementationModule),clickBubble:false,attr:{src:icon.imageUrl}"/> 3204 <!-- /ko --> 3205 </div> 3206 <!-- ko if: currentEmoticon().length --> 3207 <div class="customIcon" data-bind="click:APP.appImplementationModule.onUserHeartAction.bind(APP.appImplementationModule),clickBubble:false,style:{'background-image':'url('+currentEmoticon()[0].imageUrl+')'}"> 3208 </div> 3209 <!-- /ko --> 3210 <!-- ko if: !currentEmoticon().length --> 3211 <svg role="presentation" alt="heart" data-bind="click:APP.appImplementationModule.onUserHeartAction.bind(APP.appImplementationModule),clickBubble:false" viewBox="0 0 350 350" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 3212 <circle cx="175" cy="175" r="172" fill="none"/> 3213 <svg role="none" x="70" y="90" viewBox="0 0 400 400"> 3214 <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> 3215 <path d="M119.981697,218 C-114.115394,88.3818632 55.2196159,-72.7915946 119.981697,35.763431 C184.795464,-72.7915946 354.130474,88.3818632 119.981697,218 Z" id="Fill-1" fill="white"></path> 3216 </g> 3217 </svg> 3218 </svg> 3219 <!-- /ko --> 3220 </div> 3221 </div> 3222</script>
3222 3223
3224<script type="text/html" id="emoji-picker"> 3225 <div class="emoji-key-list"> 3226 <!-- 900+ emojis for the user to choose --> 3227 <h3>Popular</h3> 3228 <b>😀</b> 3229 <b>😁</b> 3230 <b>😂</b> 3231 <b>🤣</b> 3232 <b>😃</b> 3233 <b>😄</b> 3234 <b>😅</b> 3235 <b>😆</b> 3236 <b>😉</b> 3237 <b>😊</b> 3238 <b>😋</b> 3239 <b>😎</b> 3240 <b>😍</b> 3241 <b>😘</b> 3242 <b>😗</b> 3243 <b>😙</b> 3244 <b>😚</b> 3245 <b>🙂</b> 3246 <b>🤗</b> 3247 <b>🤩</b> 3248 <b>🤔</b> 3249 <b>🤨</b> 3250 <b>😐</b> 3251 <b>😑</b> 3252 <b>😶</b> 3253 <b>🙄</b> 3254 <b>😏</b> 3255 <b>😣</b> 3256 <b>😥</b> 3257 <b>😮</b> 3258 <b>🤐</b> 3259 <b>😯</b> 3260 <b>😪</b> 3261 <b>😫</b> 3262 <b>😴</b> 3263 <b>😌</b> 3264 <b>😛</b> 3265 <b>😜</b> 3266 <b>😝</b> 3267 <b>🤤</b> 3268 <b>😒</b> 3269 <b>😓</b> 3270 <b>😔</b> 3271 <b>😕</b> 3272 <b>🙃</b> 3273 <b>🤑</b> 3274 <b>😲</b> 3275 <b>🙁</b> 3276 <b>😖</b> 3277 <b>😞</b> 3278 <b>😟</b> 3279 <b>😤</b> 3280 <b>😢</b> 3281 <b>😭</b> 3282 <b>😦</b> 3283 <b>😧</b> 3284 <b>😨</b> 3285 <b>😩</b> 3286 <b>🤯</b> 3287 <b>😬</b> 3288 <b>😰</b> 3289 <b>😱</b> 3290 <b>😳</b> 3291 <b>🤪</b> 3292 <b>😵</b> 3293 <b>😡</b> 3294 <b>😠</b> 3295 <b>🤬</b> 3296 <b>😷</b> 3297 <b>🤒</b> 3298 <b>🤕</b> 3299 <b>🤢</b> 3300 <b>🤮</b> 3301 <b>🤧</b> 3302 <b>😇</b> 3303 <b>🤠</b> 3304 <b>🤥</b> 3305 <b>🤫</b> 3306 <b>🤭</b> 3307 <b>🧐</b> 3308 <b>🤓</b> 3309 <b>😈</b> 3310 <b>👿</b> 3311 <b>🤡</b> 3312 <b>👹</b> 3313 <b>👺</b> 3314 <b>💀</b> 3315 <b>☠</b> 3316 <b>👻</b> 3317 <b>👽</b> 3318 <b>👾</b> 3319 <b>🤖</b> 3320 <b>💩</b> 3321 <b>🔥</b> 3322 <b>💣</b> 3323 <h3>Hands</h3> 3324 <b>🤳</b> 3325 <b>💪</b> 3326 <b>👈</b> 3327 <b>👉</b> 3328 <b>☝</b> 3329 <b>👆</b> 3330 <b>🖕</b> 3331 <b>👇</b> 3332 <b>✌</b> 3333 <b>🤞</b> 3334 <b>🖖</b> 3335 <b>🤘</b> 3336 <b>🤙</b> 3337 <b>🖐</b> 3338 <b>✋</b> 3339 <b>👌</b> 3340 <b>👍</b> 3341 <b>👎</b> 3342 <b>✊</b> 3343 <b>👊</b> 3344 <b>🤛</b> 3345 <b>🤜</b> 3346 <b>🤚</b> 3347 <b>👋</b> 3348 <b>🤟</b> 3349 <b>✍</b> 3350 <b>👏</b> 3351 <b>👐</b> 3352 <b>🙌</b> 3353 <b>🤲</b> 3354 <b>🙏</b> 3355 <b>🤝</b> 3356 <h3>People & Animals</h3> 3357 3358 <b>😺</b> 3359 <b>😸</b> 3360 <b>😹</b> 3361 <b>😻</b> 3362 <b>😼</b> 3363 <b>😽</b> 3364 <b>🙀</b> 3365 <b>😿</b> 3366 <b>😾</b> 3367 <b>🙈</b> 3368 <b>🙉</b> 3369 <b>🙊</b> 3370 <b>👶</b> 3371 <b>🧒</b> 3372 <b>👦</b> 3373 <b>👧</b> 3374 <b>🧑</b> 3375 <b>👨</b> 3376 <b>👩</b> 3377 <b>🧓</b> 3378 <b>👴</b> 3379 <b>👵</b> 3380 <b>👮</b> 3381 <b>🕵</b> 3382 <b>💂</b> 3383 <b>👷</b> 3384 <b>🤴</b> 3385 <b>👸</b> 3386 <b>👳</b> 3387 <b>👲</b> 3388 <b>🧕</b> 3389 <b>🧔</b> 3390 <b>👱</b> 3391 <b>🤵</b> 3392 <b>👰</b> 3393 <b>🤰</b> 3394 <b>🤱</b> 3395 <b>👼</b> 3396 <b>🎅</b> 3397 <b>🤶</b> 3398 <b>🧙</b> 3399 <b>🧚</b> 3400 <b>🧛</b> 3401 <b>🧜</b> 3402 <b>🧝</b> 3403 <b>🧞</b> 3404 <b>🧟</b> 3405 <b>🙍</b> 3406 <b>🙎</b> 3407 <b>🙅</b> 3408 <b>🙆</b> 3409 <b>💁</b> 3410 <b>🙋</b> 3411 <b>🙇</b> 3412 <b>🤦</b> 3413 <b>🤷</b> 3414 <b>💆</b> 3415 <b>💇</b> 3416 <b>🚶</b> 3417 <b>🏃</b> 3418 <b>💃</b> 3419 <b>🕺</b> 3420 <b>👯</b> 3421 <b>🧖</b> 3422 <b>🧗</b> 3423 <b>🧘</b> 3424 <b>🛀</b> 3425 <b>🛌</b> 3426 <b>🕴</b> 3427 <b>🗣</b> 3428 <b>👤</b> 3429 <b>👥</b> 3430 <b>🤺</b> 3431 <b>🏇</b> 3432 <b>⛷</b> 3433 <b>🏂</b> 3434 <b>🏌</b> 3435 <b>🏄</b> 3436 <b>🚣</b> 3437 <b>🏊</b> 3438 <b>⛹</b> 3439 <b>🏋</b> 3440 <b>🚴</b> 3441 <b>🚵</b> 3442 <b>🏎</b> 3443 <b>🏍</b> 3444 <b>🤸</b> 3445 <b>🤼</b> 3446 <b>🤽</b> 3447 <b>🤾</b> 3448 <b>🤹</b> 3449 <b>👫</b> 3450 <b>👬</b> 3451 <b>👭</b> 3452 <b>💏</b> 3453 <b>💑</b> 3454 <b>👪</b> 3455 3456 <h3>Other</h3> 3457 <b>💅</b> 3458 <b>👂</b> 3459 <b>👃</b> 3460 <b>👣</b> 3461 <b>👀</b> 3462 <b>👁</b> 3463 <b>🧠</b> 3464 <b>👅</b> 3465 <b>👄</b> 3466 <b>💋</b> 3467 <b>💘</b> 3468 <b>❤</b> 3469 <b>💓</b> 3470 <b>💔</b> 3471 <b>💕</b> 3472 <b>💖</b> 3473 <b>💗</b> 3474 <b>💙</b> 3475 <b>💚</b> 3476 <b>💛</b> 3477 <b>🧡</b> 3478 <b>💜</b> 3479 <b>🖤</b> 3480 <b>💝</b> 3481 <b>💞</b> 3482 <b>💟</b> 3483 <b>❣</b> 3484 <b>💌</b> 3485 <b>
3485💤</b> 3486 <b>💢</b> 3487 <b>💣</b> 3488 <b>💥</b> 3489 <b>💦</b> 3490 <b>💨</b> 3491 <b>💫</b> 3492 <b>💬</b> 3493 <b>🗨</b> 3494 <b>🗯</b> 3495 <b>💭</b> 3496 <b>🕳</b> 3497 <b>👓</b> 3498 <b>🕶</b> 3499 <b>👔</b> 3500 <b>👕</b> 3501 <b>👖</b> 3502 <b>🧣</b> 3503 <b>🧤</b> 3504 <b>🧥</b> 3505 <b>🧦</b> 3506 <b>👗</b> 3507 <b>👘</b> 3508 <b>👙</b> 3509 <b>👚</b> 3510 <b>👛</b> 3511 <b>👜</b> 3512 <b>👝</b> 3513 <b>🛍</b> 3514 <b>🎒</b> 3515 <b>👞</b> 3516 <b>👟</b> 3517 <b>👠</b> 3518 <b>👡</b> 3519 <b>👢</b> 3520 <b>👑</b> 3521 <b>👒</b> 3522 <b>🎩</b> 3523 <b>🎓</b> 3524 <b>🧢</b> 3525 <b>⛑</b> 3526 <b>📿</b> 3527 <b>💄</b> 3528 <b>💍</b> 3529 <b>💎</b> 3530 <b>🐵</b> 3531 <b>🐒</b> 3532 <b>🦍</b> 3533 <b>🐶</b> 3534 <b>🐕</b> 3535 <b>🐩</b> 3536 <b>🐺</b> 3537 <b>🦊</b> 3538 <b>🐱</b> 3539 <b>🐈</b> 3540 <b>🦁</b> 3541 <b>🐯</b> 3542 <b>🐅</b> 3543 <b>🐆</b> 3544 <b>🐴</b> 3545 <b>🐎</b> 3546 <b>🦄</b> 3547 <b>🦓</b> 3548 <b>🦌</b> 3549 <b>🐮</b> 3550 <b>🐂</b> 3551 <b>🐃</b> 3552 <b>🐄</b> 3553 <b>🐷</b> 3554 <b>🐖</b> 3555 <b>🐗</b> 3556 <b>🐽</b> 3557 <b>🐏</b> 3558 <b>🐑</b> 3559 <b>🐐</b> 3560 <b>🐪</b> 3561 <b>🐫</b> 3562 <b>🦒</b> 3563 <b>🐘</b> 3564 <b>🦏</b> 3565 <b>🐭</b> 3566 <b>🐁</b> 3567 <b>🐀</b> 3568 <b>🐹</b> 3569 <b>🐰</b> 3570 <b>🐇</b> 3571 <b>🐿</b> 3572 <b>🦔</b> 3573 <b>🦇</b> 3574 <b>🐻</b> 3575 <b>🐨</b> 3576 <b>🐼</b> 3577 <b>🐾</b> 3578 <b>🦃</b> 3579 <b>🐔</b> 3580 <b>🐓</b> 3581 <b>🐣</b> 3582 <b>🐤</b> 3583 <b>🐥</b> 3584 <b>🐦</b> 3585 <b>🐧</b> 3586 <b>🕊</b> 3587 <b>🦅</b> 3588 <b>🦆</b> 3589 <b>🦉</b> 3590 <b>🐸</b> 3591 <b>🐊</b> 3592 <b>🐢</b> 3593 <b>🦎</b> 3594 <b>🐍</b> 3595 <b>🐲</b> 3596 <b>🐉</b> 3597 <b>🦕</b> 3598 <b>🦖</b> 3599 <b>🐳</b> 3600 <b>🐋</b> 3601 <b>🐬</b> 3602 <b>🐟</b> 3603 <b>🐠</b> 3604 <b>🐡</b> 3605 <b>🦈</b> 3606 <b>🐙</b> 3607 <b>🐚</b> 3608 <b>🦀</b> 3609 <b>🦐</b> 3610 <b>🦑</b> 3611 <b>🐌</b> 3612 <b>🦋</b> 3613 <b>🐛</b> 3614 <b>🐜</b> 3615 <b>🐝</b> 3616 <b>🐞</b> 3617 <b>🦗</b> 3618 <b>🕷</b> 3619 <b>🕸</b> 3620 <b>🦂</b> 3621 <b>💐</b> 3622 <b>🌸</b> 3623 <b>💮</b> 3624 <b>🏵</b> 3625 <b>🌹</b> 3626 <b>🥀</b> 3627 <b>🌺</b> 3628 <b>🌻</b> 3629 <b>🌼</b> 3630 <b>🌷</b> 3631 <b>🌱</b> 3632 <b>🌲</b> 3633 <b>🌳</b> 3634 <b>🌴</b> 3635 <b>🌵</b> 3636 <b>🌾</b> 3637 <b>🌿</b> 3638 <b>☘</b> 3639 <b>🍀</b> 3640 <b>🍁</b> 3641 <b>🍂</b> 3642 <b>🍃</b> 3643 <b>🍇</b> 3644 <b>🍈</b> 3645 <b>🍉</b> 3646 <b>🍊</b> 3647 <b>🍋</b> 3648 <b>🍌</b> 3649 <b>🍍</b> 3650 <b>🍎</b> 3651 <b>🍏</b> 3652 <b>🍐</b> 3653 <b>🍑</b> 3654 <b>🍒</b> 3655 <b>🍓</b> 3656 <b>🥝</b> 3657 <b>🍅</b> 3658 <b>🥥</b> 3659 <b>🥑</b> 3660 <b>🍆</b> 3661 <b>🥔</b> 3662 <b>🥕</b> 3663 <b>🌽</b> 3664 <b>🌶</b> 3665 <b>🥒</b> 3666 <b>🥦</b> 3667 <b>🍄</b> 3668 <b>🥜</b> 3669 <b>🌰</b> 3670 <b>🍞</b> 3671 <b>🥐</b> 3672 <b>🥖</b> 3673 <b>🥨</b> 3674 <b>🥞</b> 3675 <b>🧀</b> 3676 <b>🍖</b> 3677 <b>🍗</b> 3678 <b>🥩</b> 3679 <b>🥓</b> 3680 <b>🍔</b> 3681 <b>🍟</b> 3682 <b>🍕</b> 3683 <b>🌭</b> 3684 <b>🥪</b> 3685 <b>🌮</b> 3686 <b>🌯</b> 3687 <b>🥙</b> 3688 <b>🥚</b> 3689 <b>🍳</b> 3690 <b>🥘</b> 3691 <b>🍲</b> 3692 <b>🥣</b> 3693 <b>🥗</b> 3694 <b>🍿</b> 3695 <b>🥫</b> 3696 <b>🍱</b> 3697 <b>🍘</b> 3698 <b>🍙</b> 3699 <b>🍚</b> 3700 <b>🍛</b> 3701 <b>🍜</b> 3702 <b>🍝</b> 3703 <b>🍠</b> 3704 <b>🍢</b> 3705 <b>🍣</b> 3706 <b>🍤</b> 3707 <b>🍥</b> 3708 <b>🍡</b> 3709 <b>🥟</b> 3710 <b>🥠</b> 3711 <b>🥡</b> 3712 <b>🍦</b> 3713 <b>🍧</b> 3714 <b>🍨</b> 3715 <b>🍩</b> 3716 <b>🍪</b> 3717 <b>🎂</b> 3718 <b>🍰</b> 3719 <b>🥧</b> 3720 <b>🍫</b> 3721 <b>🍬</b> 3722 <b>🍭</b> 3723 <b>🍮</b> 3724 <b>🍯</b> 3725 <b>🍼</b> 3726 <b>🥛</b> 3727 <b>☕</b> 3728 <b>🍵</b> 3729 <b>🍶</b> 3730 <b>🍾</b> 3731 <b>🍷</b> 3732 <b>🍸</b> 3733 <b>🍹</b> 3734 <b>🍺</b> 3735 <b>🍻</b> 3736 <b>🥂</b> 3737 <b>🥃</b> 3738 <b>🥤</b> 3739 <b>🥢</b> 3740 <b>🍽</b> 3741 <b>🍴</b> 3742 <b>🥄</b> 3743 <b>🔪</b> 3744 <b>🏺</b> 3745 <b>🌍</b> 3746 <b>🌎</b> 3747 <b>🌏</b> 3748 <b>🌐</b> 3749 <b>🗺</b> 3750 <b>🗾</b> 3751 <b>🏔</b> 3752 <b>⛰</b> 3753 <b>🌋</b> 3754 <b>🗻</b> 3755 <b>🏕</b> 3756 <b>🏖</b> 3757 <b>🏜</b> 3758 <b>🏝</b> 3759 <b>🏞</b> 3760 <b>🏟</b> 3761 <b>🏛</b> 3762 <b>🏗</b> 3763 <b>🏘</b> 3764 <b>🏚</b> 3765 <b>🏠</b> 3766 <b>🏡</b> 3767 <b>🏢</b> 3768 <b>🏣</b> 3769 <b>🏤</b> 3770 <b>🏥</b> 3771 <b>🏦</b> 3772 <b>🏨</b> 3773 <b>🏩</b> 3774 <b>🏪</b> 3775 <b>🏫</b> 3776 <b>🏬</b> 3777 <b>🏭</b> 3778 <b>🏯</b> 3779 <b>🏰</b> 3780 <b>💒</b> 3781 <b>🗼</b> 3782 <b>🗽</b> 3783 <b>⛪</b> 3784 <b>🕌</b> 3785 <b>🕍</b> 3786 <b>⛩</b> 3787 <b>🕋</b> 3788 <b>⛲</b> 3789 <b>⛺</b> 3790 <b>🌁</b> 3791 <b>🌃</b> 3792 <b>🏙</b> 3793 <b>🌄</b> 3794 <b>🌅</b> 3795 <b>🌆</b> 3796 <b>🌇</b> 3797 <b>🌉</b> 3798 <b>♨</b> 3799 <b>🌌</b> 3800 <b>🎠</b> 3801 <b>🎡</b> 3802 <b>🎢</b> 3803 <b>💈</b> 3804 <b>🎪</b> 3805 <b>🚂</b> 3806 <b>🚃</b> 3807 <b>🚄</b> 3808 <b>🚅</b> 3809 <b>🚆</b> 3810 <b>🚇</b> 3811 <b>🚈</b> 3812 <b>🚉</b> 3813 <b>🚊</b> 3814 <b>🚝</b> 3815 <b>🚞</b> 3816 <b>🚋</b> 3817 <b>🚌</b> 3818 <b>🚍</b> 3819 <b>🚎</b> 3820 <b>🚐</b> 3821 <b>🚑</b> 3822 <b>🚒</b> 3823 <b>🚓</b> 3824 <b>🚔</b> 3825 <b>🚕</b> 3826 <b>🚖</b> 3827 <b>🚗</b> 3828 <b>🚘</b> 3829 <b>🚙</b> 3830 <b>🚚</b> 3831 <b>🚛</b> 3832 <b>🚜</b> 3833 <b>🚲</b> 3834 <b>🛴</b> 3835 <b>🛵</b> 3836 <b>🚏</b> 3837 <b>🛣</b> 3838 <b>🛤</b> 3839 <b>🛢</b> 3840 <b>⛽</b> 3841 <b>🚨</b> 3842 <b>🚥</b> 3843 <b>🚦</b> 3844 <b>🛑</b> 3845 <b>🚧</b> 3846 <b>⚓</b> 3847 <b>⛵</b> 3848 <b>🛶</b> 3849 <b>🚤</b> 3850 <b>🛳</b> 3851 <b>⛴</b> 3852 <b>🛥</b> 3853 <b>🚢</b> 3854 <b>✈</b> 3855 <b>🛩</b> 3856 <b>🛫</b> 3857 <b>🛬</b> 3858 <b>💺</b> 3859 <b>🚁</b> 3860 <b>🚟</b> 3861 <b>🚠</b> 3862 <b>🚡</b> 3863 <b>🛰</b> 3864 <b>🚀</b> 3865 <b>🛸</b> 3866 <b>🛎</b> 3867 <b>⌛</b> 3868 <b>⏳</b> 3869 <b>⌚</b> 3870 <b>⏰</b> 3871 <b>⏱</b> 3872 <b>⏲</b> 3873 <b>🕰</b> 3874 <b>🕛</b> 3875 <b>🕧</b> 3876 <b>🕐</b> 3877 <b>🕜</b> 3878 <b>🕑</b> 3879 <b>🕝</b> 3880 <b>
3880🕒</b> 3881 <b>🕞</b> 3882 <b>🕓</b> 3883 <b>🕟</b> 3884 <b>🕔</b> 3885 <b>🕠</b> 3886 <b>🕕</b> 3887 <b>🕡</b> 3888 <b>🕖</b> 3889 <b>🕢</b> 3890 <b>🕗</b> 3891 <b>🕣</b> 3892 <b>🕘</b> 3893 <b>🕤</b> 3894 <b>🕙</b> 3895 <b>🕥</b> 3896 <b>🕚</b> 3897 <b>🕦</b> 3898 <b>🌑</b> 3899 <b>🌒</b> 3900 <b>🌓</b> 3901 <b>🌔</b> 3902 <b>🌕</b> 3903 <b>🌖</b> 3904 <b>🌗</b> 3905 <b>🌘</b> 3906 <b>🌙</b> 3907 <b>🌚</b> 3908 <b>🌛</b> 3909 <b>🌜</b> 3910 <b>🌡</b> 3911 <b>☀</b> 3912 <b>🌝</b> 3913 <b>🌞</b> 3914 <b>⭐</b> 3915 <b>🌟</b> 3916 <b>🌠</b> 3917 <b>☁</b> 3918 <b>⛅</b> 3919 <b>⛈</b> 3920 <b>🌤</b> 3921 <b>🌥</b> 3922 <b>🌦</b> 3923 <b>🌧</b> 3924 <b>🌨</b> 3925 <b>🌩</b> 3926 <b>🌪</b> 3927 <b>🌫</b> 3928 <b>🌬</b> 3929 <b>🌀</b> 3930 <b>🌈</b> 3931 <b>🌂</b> 3932 <b>☂</b> 3933 <b>☔</b> 3934 <b>⛱</b> 3935 <b>⚡</b> 3936 <b>❄</b> 3937 <b>☃</b> 3938 <b>⛄</b> 3939 <b>☄</b> 3940 <b>🔥</b> 3941 <b>💧</b> 3942 <b>🌊</b> 3943 <b>🎃</b> 3944 <b>🎄</b> 3945 <b>🎆</b> 3946 <b>🎇</b> 3947 <b>✨</b> 3948 <b>🎈</b> 3949 <b>🎉</b> 3950 <b>🎊</b> 3951 <b>🎋</b> 3952 <b>🎍</b> 3953 <b>🎎</b> 3954 <b>🎏</b> 3955 <b>🎐</b> 3956 <b>🎑</b> 3957 <b>🎀</b> 3958 <b>🎁</b> 3959 <b>🎗</b> 3960 <b>🎟</b> 3961 <b>🎫</b> 3962 <b>🎖</b> 3963 <b>🏆</b> 3964 <b>🏅</b> 3965 <b>🥇</b> 3966 <b>🥈</b> 3967 <b>🥉</b> 3968 <b>⚽</b> 3969 <b>⚾</b> 3970 <b>🥎</b> 3971 <b>🏀</b> 3972 <b>🏐</b> 3973 <b>🏈</b> 3974 <b>🏉</b> 3975 <b>🎾</b> 3976 <b>🎳</b> 3977 <b>🏏</b> 3978 <b>🏑</b> 3979 <b>🏒</b> 3980 <b>🏓</b> 3981 <b>🏸</b> 3982 <b>🥊</b> 3983 <b>🥅</b> 3984 <b>⛳</b> 3985 <b>⛸</b> 3986 <b>🎣</b> 3987 <b>🎽</b> 3988 <b>🎿</b> 3989 <b>🛷</b> 3990 <b>🥌</b> 3991 <b>🎯</b> 3992 <b>🎱</b> 3993 <b>🔮</b> 3994 <b>🎮</b> 3995 <b>🕹</b> 3996 <b>🎰</b> 3997 <b>🎲</b> 3998 <b>♠</b> 3999 <b>♥</b> 4000 <b>♦</b> 4001 <b>♣</b> 4002 <b>♟</b> 4003 <b>🃏</b> 4004 <b>🀄</b> 4005 <b>🎴</b> 4006 <b>🎭</b> 4007 <b>🖼</b> 4008 <b>🎨</b> 4009 <b>🔇</b> 4010 <b>🔈</b> 4011 <b>🔉</b> 4012 <b>🔊</b> 4013 <b>📢</b> 4014 <b>📣</b> 4015 <b>📯</b> 4016 <b>🔔</b> 4017 <b>🔕</b> 4018 <b>🎼</b> 4019 <b>🎵</b> 4020 <b>🎶</b> 4021 <b>🎙</b> 4022 <b>🎚</b> 4023 <b>🎛</b> 4024 <b>🎤</b> 4025 <b>🎧</b> 4026 <b>📻</b> 4027 <b>🎷</b> 4028 <b>🎸</b> 4029 <b>🎹</b> 4030 <b>🎺</b> 4031 <b>🎻</b> 4032 <b>🥁</b> 4033 <b>📱</b> 4034 <b>📲</b> 4035 <b>☎</b> 4036 <b>📞</b> 4037 <b>📟</b> 4038 <b>📠</b> 4039 <b>🔋</b> 4040 <b>🔌</b> 4041 <b>💻</b> 4042 <b>🖥</b> 4043 <b>🖨</b> 4044 <b>⌨</b> 4045 <b>🖱</b> 4046 <b>🖲</b> 4047 <b>💽</b> 4048 <b>💾</b> 4049 <b>💿</b> 4050 <b>📀</b> 4051 <b>🎥</b> 4052 <b>🎞</b> 4053 <b>📽</b> 4054 <b>🎬</b> 4055 <b>📺</b> 4056 <b>📷</b> 4057 <b>📸</b> 4058 <b>📹</b> 4059 <b>📼</b> 4060 <b>🔍</b> 4061 <b>🔎</b> 4062 <b>🕯</b> 4063 <b>💡</b> 4064 <b>🔦</b> 4065 <b>🏮</b> 4066 <b>📔</b> 4067 <b>📕</b> 4068 <b>📖</b> 4069 <b>📗</b> 4070 <b>📘</b> 4071 <b>📙</b> 4072 <b>📚</b> 4073 <b>📓</b> 4074 <b>📒</b> 4075 <b>📃</b> 4076 <b>📜</b> 4077 <b>📄</b> 4078 <b>📰</b> 4079 <b>🗞</b> 4080 <b>📑</b> 4081 <b>🔖</b> 4082 <b>🏷</b> 4083 <b>💰</b> 4084 <b>💴</b> 4085 <b>💵</b> 4086 <b>💶</b> 4087 <b>💷</b> 4088 <b>💸</b> 4089 <b>💳</b> 4090 <b>💹</b> 4091 <b>💱</b> 4092 <b>💲</b> 4093 <b>✉</b> 4094 <b>📧</b> 4095 <b>📨</b> 4096 <b>📩</b> 4097 <b>📤</b> 4098 <b>📥</b> 4099 <b>📦</b> 4100 <b>📫</b> 4101 <b>📪</b> 4102 <b>📬</b> 4103 <b>📭</b> 4104 <b>📮</b> 4105 <b>🗳</b> 4106 <b>✏</b> 4107 <b>✒</b> 4108 <b>🖋</b> 4109 <b>🖊</b> 4110 <b>🖌</b> 4111 <b>🖍</b> 4112 <b>📝</b> 4113 <b>💼</b> 4114 <b>📁</b> 4115 <b>📂</b> 4116 <b>🗂</b> 4117 <b>📅</b> 4118 <b>📆</b> 4119 <b>🗒</b> 4120 <b>🗓</b> 4121 <b>📇</b> 4122 <b>📈</b> 4123 <b>📉</b> 4124 <b>📊</b> 4125 <b>📋</b> 4126 <b>📌</b> 4127 <b>📍</b> 4128 <b>📎</b> 4129 <b>🖇</b> 4130 <b>📏</b> 4131 <b>📐</b> 4132 <b>✂</b> 4133 <b>🗃</b> 4134 <b>🗄</b> 4135 <b>🗑</b> 4136 <b>🔒</b> 4137 <b>🔓</b> 4138 <b>🔏</b> 4139 <b>🔐</b> 4140 <b>🔑</b> 4141 <b>🗝</b> 4142 <b>🔨</b> 4143 <b>⛏</b> 4144 <b>⚒</b> 4145 <b>🛠</b> 4146 <b>🗡</b> 4147 <b>⚔</b> 4148 <b>🔫</b> 4149 <b>🏹</b> 4150 <b>🛡</b> 4151 <b>🔧</b> 4152 <b>🔩</b> 4153 <b>⚙</b> 4154 <b>🗜</b> 4155 <b>⚖</b> 4156 <b>🔗</b> 4157 <b>⛓</b> 4158 <b>⚗</b> 4159 <b>🔬</b> 4160 <b>🔭</b> 4161 <b>📡</b> 4162 <b>💉</b> 4163 <b>💊</b> 4164 <b>🚪</b> 4165 <b>🛏</b> 4166 <b>🛋</b> 4167 <b>🚽</b> 4168 <b>🚿</b> 4169 <b>🛁</b> 4170 <b>🛒</b> 4171 <b>🚬</b> 4172 <b>⚰</b> 4173 <b>⚱</b> 4174 <b>🗿</b> 4175 <b>🏧</b> 4176 <b>🚮</b> 4177 <b>🚰</b> 4178 <b>♿</b> 4179 <b>🚹</b> 4180 <b>🚺</b> 4181 <b>🚻</b> 4182 <b>🚼</b> 4183 <b>🚾</b> 4184 <b>🛂</b> 4185 <b>🛃</b> 4186 <b>🛄</b> 4187 <b>🛅</b> 4188 <b>⚠</b> 4189 <b>🚸</b> 4190 <b>⛔</b> 4191 <b>🚫</b> 4192 <b>🚳</b> 4193 <b>🚭</b> 4194 <b>🚯</b> 4195 <b>🚱</b> 4196 <b>🚷</b> 4197 <b>📵</b> 4198 <b>🔞</b> 4199 <b>☢</b> 4200 <b>☣</b> 4201 <b>⬆</b> 4202 <b>↗</b> 4203 <b>➡</b> 4204 <b>↘</b> 4205 <b>⬇</b> 4206 <b>↙</b> 4207 <b>⬅</b> 4208 <b>↖</b> 4209 <b>↕</b> 4210 <b>↔</b> 4211 <b>↩</b> 4212 <b>↪</b> 4213 <b>⤴</b> 4214 <b>⤵</b> 4215 <b>🔃</b> 4216 <b>🔄</b> 4217 <b>🔙</b> 4218 <b>🔚</b> 4219 <b>🔛</b> 4220 <b>🔜</b> 4221 <b>🔝</b> 4222 </div> 4223</script>
4223 4224
4225<script type="text/html" id="artist-picker-selected"> 4226 <ul class="selectionPreview"> 4227 <!-- ko foreach:selectedArtists().reverse() --> 4228 <li> 4229 <img src="/s=4.0.1400/images/pixel.gif" data-bind="attr:{src:imgPath+'/web/3/top/5,0/50x50.jpg',alt:name,title:name}"/> 4230 </li> 4231 <!-- /ko --> 4232 <!-- ko if:selectedArtists().length==0--> 4233 <li class="empty"><img src="/s=4.0.1400/images/pixel.gif"/></li> 4234 <li class="empty"><img src="/s=4.0.1400/images/pixel.gif"/></li> 4235 <li class="empty" style="margin-right: 0;"><img src="/s=4.0.1400/images/pixel.gif"/></li> 4236 <!-- /ko --> 4237 <!-- ko if:selectedArtists().length==1--> 4238 <li class="empty"><img src="/s=4.0.1400/images/pixel.gif"/></li> 4239 <li class="empty" style="margin-right: 0;"><img src="/s=4.0.1400/images/pixel.gif"/></li> 4240 <!-- /ko --> 4241 <!-- ko if:selectedArtists().length==2--> 4242 <li class="empty" style="margin-right: 0;"><img src="/s=4.0.1400/images/pixel.gif"/></li> 4243 <!-- /ko --> 4244 </ul> 4245</script>
vendor: 1 bytes, line 4245
4245
4246<script type="text/html" id="social-radio-guests"> 4247 <ul data-bind="foreach:observableGuestList"> 4248 <li> 4249 <span data-bind='text:alias'></span> 4250 <!-- ko if: isOwner --> 4251 <span> - YOUR HOST</span> 4252 <!-- /ko --> 4253 <!-- ko if: $parent.isOwner --> 4254 <button class="std secondary" data-bind="visible:!isDj,click:()=>$parent.changeHost($data,(arg,foo,bar)=>{$parent.onDjChange($data,$parent.currentDJ[0])})">MAKE DJ</button> 4255 <button class="std" data-bind="visible:isDj,click:()=>$parent.changeHost(null,()=>$parent.onDjChange(null,$parent.currentDJ[0]))">REVOKE DJ</button> 4256 <button class="std secondary" data-bind="click:()=> $parent.ejectUser($data.id)">EJECT</button> 4257 <!-- /ko --> 4258 </li> 4259 </ul> 4260</script>
vendor: 1 bytes, line 4260
4260
4261<script type="text/html" id="social-radio-messages"> 4262 <ul> 4263 <!-- ko foreach:{data:messages} --> 4264 <li data-bind="css:{me:isMe}"> 4265 <span class="author" data-bind="text:alias"></span> 4266 <span class="msg" data-bind="text:msg"></span> 4267 </li> 4268 <!-- /ko --> 4269 </ul> 4270</script>
4270 4271<div id="radio"> 4272 <div id="radio-player" class="video-js radio default" style="display:none" role="region" aria-label="Now playing"> 4273 <div id="react-player-root" class="react-wrapper" data-bind="component: {name: 'react-wrapper', params: {name: 'PlayerRoot', props: {APP: APP, root: $root}}}"></div> 4274 <video id="videojs_radio_player" height="100%" width="100%" controls playsinline autoplay preload="auto" src="//cdn.liveone.com/s=4.0.1400/helper/1sec.mp3"></video> 4275 </div> 4276</div> 4277<footer class="footer" aria-live="off"> 4278 <div class="content"> 4279 <section class="upgrade lazyImg section--upgrade section--lazyImg" lazySrc="//cdn.liveone.com/s=4.0.1400/images/offers/v2/bgs/hero-layer-main.png" data-bind="visible:APP.USER.slackerUser().actualTier<5,css:{anon:APP.USER.slackerUser().actualTier==0}"> 4280 <h2> 4281 Music on demand. Listen offline. No ads. Unlimited skips. 4282 <br/><br/> 4283 LiveOne has it all. Find the plan that's right for you. 4284 </h2> 4285 4286 <button class="std cta" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}, click:function () {APP.goToPage('upgrade')},css:{disabled:!APP.canNavigate()}">View Our Plans</button> 4287 <div class="signup"> 4288 <div class="newsletter container "> 4289 <div class="left"> 4290 <span>Stay up-to-date and sign up for our newsletter</span> <input type="text" id="newUsername" placeholder="Enter email address" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}"> <button class="std" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}, click:function () {var _u=$('#newUsername').val(); if (_u) APP.USER.doForceSlackerCreate(null, 'footer_newsletter', {receiveNewsLetter:true,username:_u})},css:{disabled:!APP.canNavigate()}">Sign Up</button> 4291 </div> 4292 <div class="right"> 4293 <span>Get the mobile app <a href="/apps" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}, click:function () {APP.goToPage('apps')},css:{disabled:!APP.canNavigate()}">Learn More</a></span> 4294 <img class="app-thumb link lazyImg" alt="Get LiveOne mobile app" src="//cdn.liveone.com/s=4.0.1400/images/pixel.gif" lazySrc="//cdn.liveone.com/s=4.0.1400/images/home-newsletter-app-img.png" data-bind="click:function () {APP.goToPage('apps')},css:{disabled:!APP.canNavigate()}"/> 4295 </div> 4296 </div> 4297 </div> 4298 </section> 4299 <div class="container top"> 4300 <div class="service-logo"> 4301 <a href="/" data-beacon-value="footer-nav" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}, click:goHome"> 4302 <img class="service-logo" data-beacon-value="footer-nav" alt="LiveOne Homepage" target="LiveOne" src="data:image/png;base64,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"/> 4303 <span class="alt">LiveOne</span> 4304 </a> 4305 </div> 4306 <div class="links"> 4307 <ul class="links-row" role="navigation"> 4308 <li class="footer-mobile-signin" data-bind="visible:!APP.USER.slackerUser().username"> 4309 <a href="https://account.liveone.com/login" class="navlink" tabindex="20" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}, click:function () {APP.USER.doSlackerLogin()},css:{disabled:!APP.canNavigate()}">Log In</a> 4310 </li> 4311 <li> 4312 <a href="/apps" class="navlink" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}, click:function () {APP.goToPage('apps')},css:{disabled:!APP.canNavigate()}">Get The App</a> 4313 </li> 4314 <li class="nav-subscribe" data-bind="visible: !(APP.USER.slackerUser() && APP.USER.slackerUser().hooplaUser && !APP.noUpsell())"> 4315 <a href="/upgrade" class="navlink" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}, click: function() { APP.goToPage('upgrade') }, css: { disabled: !APP.canNavigate() }">Subscribe</a> 4316 </li> 4317 <li> 4318 <a href="https://support.liveone.com/" title="Support on LiveOne Support Site" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}" target="_blank">Support</a> 4319 </li> 4320 <li> 4321 <a href="/careers" class="navlink" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}, click:function () {APP.goToPage('careers')},css:{disabled:!APP.canNavigate()}">Careers</a> 4322 </li> 4323 <li> 4324 <a href="/contactus" class="navlink" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}, click:function () {APP.goToPage('contact')},css:{disabled:!APP.canNavigate()}">Contact</a> 4325 </li> 4326 <li> 4327 <a href="https://ir.liveone.com/ir-home" class="navlink" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}" target="_blank">Investors</a> 4328 </li> 4329 </ul> 4330 <ul class="links-row links-row--dark"> 4331 <li> 4332 <a href="/terms" class="navlink" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}, click:function () {APP.goToPage('terms')},css:{disabled:!APP.canNavigate()}">Terms</a> 4333 </li> 4334 <li> 4335 <a href="/privacy" class="navlink" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}, click:function () {APP.goToPage('privacy')},css:{disabled:!APP.canNavigate()}">Privacy Policy</a> 4336 </li> 4337 <li> 4338 <a href="/accessibility" class="navlink" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}, click:function () {APP.goToPage('accessibility')},css:{disabled:!APP.canNavigate()}">Accessibility</a> 4339 </li> 4340 <li> 4341 <a href="/privacy-center" class="navlink" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}, click:function () {APP.goToPage('privacy-center')},css:{disabled:!APP.canNavigate()}">Do Not Sell or Share My Personal Information</a> 4342 </li> 4343 </ul> 4344 </div> 4345 </div> 4346 <div class="container copyright">
4347 <ul class="social-links" role="navigation" aria-live="off"> 4348 <li class="instagram"><a target="_blank" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}" title="LiveOne on Instagram" href="https://www.instagram.com/liveone/"><span>Instagram</span></a></li> 4349 <li class="tiktok"><a target="_blank" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}" title="LiveOne on TikTok" href="https://tiktok.com/@liveone"><span>TikTok</span></a></li> 4350 <li class="youtube"><a target="_blank" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}" title="LiveOne on YouTube" href="https://www.youtube.com/liveone"><span>YouTube</span></a></li> 4351 <li class="twitter"><a target="_blank" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}" title="LiveOne on X" href="https://twitter.com/liveone"><span>Twitter</span></a></li> 4352 <li class="facebook"><a target="_blank" data-bind="attr: {tabindex: APP.getTabIndexByName('footer')}" title="LiveOne on Facebook" href="https://www.facebook.com/LVO/"><span>Facebook</span></a></li> 4353 <!-- <li class="email"><a target="_blank" title="Email LiveOne" href="mailto:[email protected]"><span>Email</span></a></li> --> 4354 </ul> 4355 <div class="label"> 4356 © 2026 LiveOne All Rights Reserved 4357 </div> 4358 </div> 4359 </div> 4360 <div class="tos-footer" role="alert" aria-live="assertive" data-bind="visible:APP.mustShowTosFooter" style="display:none"> 4361 <p aria-label="By closing this message, you consent to LiveOne's use of cookies on this device in accordance with its Terms of Service and Privacy Policy, unless you have already disabled cookies in your browser settings." > 4362 By closing this message, you consent to LiveOne's use of cookies on this device in accordance with its <a href="/terms" onclick="APP.goToPage('terms');return false;">Terms of Service</a> and <a href="/privacy" onclick="APP.goToPage('privacy');return false;">Privacy Policy</a>, unless you have already disabled cookies in your browser settings. 4363 </p> 4364 <button tabindex="0" aria-label="Accept LiveOne terms of service" class="std" onclick="APP.acceptTosFooter()">ACCEPT</button> 4365 </div> 4366</footer>
4367<script type="text/javascript" src="//cdn.liveone.com/s=4.0.1400/js/lib-concat.js"></script>
vendor: 1 bytes, line 4367
4367
4368<script type="text/javascript" src="https://imasdk.googleapis.com/js/sdkloader/ima3.js"></script>
vendor: 1 bytes, line 4368
4368
4369<script type="text/javascript" src="//cdn.liveone.com/s=4.0.1400/js/concat.js"></script>
4369 4370<div class="user-prompts" aria-live="assertive"> 4371 <!-- Toast Tickler Bar --> 4372 <div class="tickler out" role="alert" data-bind="css:{in:tickler().msg}"> 4373 <!-- ko if: tickler().msg --> 4374 <!-- ko with: tickler --> 4375 <button aria-hidden="true" alt="Close" class="defaultX" onclick="APP.MESSAGING.setTickler(null)" data-bind="visible:showClose"> 4376 <svg role="presentation" viewbox='0 0 40 40'><path d='M 10,10 L 30,30 M 30,10 L 10,30' fill='black' stroke-width='4' onclick="APP.MESSAGING.setTickler(null)"/></svg> 4377 </button> 4378 4379 <div><span class="subtitle" data-bind="visible:title, text:title + ' '"></span><span data-bind="html:msg"></span></div> 4380 <!-- /ko --> 4381 <!-- /ko --> 4382 <!-- ko if: !tickler().msg --> 4383 <div><span role="none"> </span></div> 4384 <!-- /ko --> 4385 </div> 4386 <!-- /Toast Tickler Bar --> 4387 4388 <div class="app-modal-mount" data-bind="component:{name:'react-wrapper', params:{name:'AppModal', props:{APP: APP, serviceLogoSrc: '/s=4.0.1400/images/logos/lxl-logo-black-trans.png'}}}"></div> 4389</div> 4390<div id="contextmenu"> 4391 <a href="#" class="context-start-focus-trap" style="height:0;width:0" data-bind="attr:{tabindex: APP.getTabIndexByName('contextmenu')},event:{focus: APP.MESSAGING.handleContextStartFocusTrap}"></a> 4392 4393 <ul class="options" data-bind="if:contextMenu().length > 0"> 4394 <!-- ko foreach: {data:contextMenu(),afterRender: function (el,data) {com.slacker.app.actions.MenuAction.helper.onSliderTypeActionRender(el, data)}} --> 4395 <li role="button" data-bind="attr:{tabindex: APP.getTabIndexByName('contextmenu'), autofocus: $index() == 0}, css:classNames,click:_onClick,clickBubble:false,event:{focus:_onFocus, keydown: APP.getKeyDownHandler(_onClick.bind($data))}"> 4396 <span data-bind="text:label"></span> 4397 4398 <!-- ko if: type == 'contextslider' --> 4399 <div class="slider"></div> 4400 <!-- /ko --> 4401 </li> 4402 <!-- /ko --> 4403 </ul> 4404 4405 <a href="#" class="context-end-focus-trap" style="height:0;width:0" data-bind="attr:{tabindex: APP.getTabIndexByName('contextmenu')},event:{focus: APP.MESSAGING.handleContextEndFocusTrap}"></a> 4406</div> 4407</body> 4408</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.