From 479e31b444412cf4959eae9718874a7792628f05 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 19 Jul 2017 15:53:26 -0400 Subject: [PATCH] update components --- .../emby-webcomponents/cardbuilder/card.css | 2 +- .../collectioneditor/collectioneditor.js | 2 +- .../emby-webcomponents/deletehelper.js | 2 +- .../emby-button/emby-button.js | 2 +- .../emby-webcomponents/homesections.js | 2 +- .../htmlvideoplayer/plugin.js | 2 +- .../emby-webcomponents/input/api.js | 2 +- .../emby-webcomponents/inputmanager.js | 2 +- .../emby-webcomponents/itemcontextmenu.js | 2 +- .../emby-webcomponents/mediainfo/mediainfo.js | 2 +- .../metadataeditor/metadataeditor.js | 2 +- .../multiselect/multiselect.js | 2 +- .../nowplayingbar/nowplayingbar.js | 2 +- .../emby-webcomponents/photoplayer/plugin.js | 2 +- .../playback/playerselection.js | 2 +- .../playlisteditor/playlisteditor.js | 2 +- .../emby-webcomponents/pluginmanager.js | 2 +- .../refreshdialog/refreshdialog.js | 2 +- .../emby-webcomponents/router.js | 2 +- .../search/searchresults.js | 2 +- .../emby-webcomponents/shortcuts.js | 2 +- .../emby-webcomponents/strings/de.json | 6 +- .../emby-webcomponents/strings/es-mx.json | 4 +- .../emby-webcomponents/strings/fr.json | 94 +++++++++--------- .../emby-webcomponents/strings/hu.json | 8 +- .../emby-webcomponents/strings/it.json | 6 +- .../emby-webcomponents/strings/pl.json | 6 +- .../emby-webcomponents/sync/sync.js | 2 +- .../youtubeplayer/plugin.js | 2 +- .../components/dockedtabs/dockedtabs.js | 2 +- dashboard-ui/components/groupedcards.js | 2 +- dashboard-ui/css/dashboard.css | 2 +- dashboard-ui/css/librarybrowser.css | 2 +- ...6m6puhb-5mxqqnrjtnkitppoi_ivcxxdnrsc.woff2 | Bin 1388 -> 0 bytes ...6luxeywpbsjvxcbjtnkitppoi_ivcxxdnrsc.woff2 | Bin 15504 -> 0 bytes ...wlxj96qwhynikxpeszw2xoq-xsnqo47m55da.woff2 | Bin 14556 -> 0 bytes ...qzroncbacei3awxjtnkitppoi_ivcxxdnrsc.woff2 | Bin 11820 -> 0 bytes ...dyevhtrvuabjwvbtbgvql8ndjpwnre27mub0.woff2 | Bin 7176 -> 0 bytes .../fonts/roboto/cwb0xya8bzo0ksthx0utua.woff2 | Bin 14584 -> 0 bytes ...ofoccackzxwxsoftxra8tvwticgirnjhmvjw.woff2 | Bin 14552 -> 0 bytes ...vogmqfwwl61pkhbtbgvql8ndjpwnre27mub0.woff2 | Bin 11820 -> 0 bytes ...8ozt71a3e1xoajveszw2xoq-xsnqo47m55da.woff2 | Bin 12008 -> 0 bytes ...oxyythegmxx8kcrjtnkitppoi_ivcxxdnrsc.woff2 | Bin 9780 -> 0 bytes ...aydlfrth2vnzzdhtbgvql8ndjpwnre27mub0.woff2 | Bin 9468 -> 0 bytes ...n2amz39wrsoz7fxtbgvql8ndjpwnre27mub0.woff2 | Bin 1340 -> 0 bytes ...tfspn0qi1sfdufvtxra8tvwticgirnjhmvjw.woff2 | Bin 14524 -> 0 bytes ...sg9ycurv6puktorjtnkitppoi_ivcxxdnrsc.woff2 | Bin 7260 -> 0 bytes ...4giq26g5xybhsfbjtnkitppoi_ivcxxdnrsc.woff2 | Bin 4836 -> 0 bytes ...lrtefzlymlvv1ubjtnkitppoi_ivcxxdnrsc.woff2 | Bin 11912 -> 0 bytes ...shpzsmg3z6vywnrjtnkitppoi_ivcxxdnrsc.woff2 | Bin 11852 -> 0 bytes dashboard-ui/fonts/roboto/robotobold.woff | Bin 19812 -> 0 bytes dashboard-ui/fonts/roboto/robotolight.woff | Bin 21080 -> 0 bytes dashboard-ui/fonts/roboto/robotomedium.woff | Bin 20636 -> 0 bytes dashboard-ui/fonts/roboto/robotoregular.woff | Bin 21132 -> 0 bytes dashboard-ui/fonts/roboto/robotothin.woff | Bin 21968 -> 0 bytes ...eo3r5zsexge8uuvtxra8tvwticgirnjhmvjw.woff2 | Bin 14596 -> 0 bytes dashboard-ui/fonts/roboto/style.css | 1 - ...aziwdqq2dhoyjphtbgvql8ndjpwnre27mub0.woff2 | Bin 15000 -> 0 bytes ...xbhtx_s_vctlpghtbgvql8ndjpwnre27mub0.woff2 | Bin 4676 -> 0 bytes dashboard-ui/scripts/connectlogin.js | 2 +- dashboard-ui/scripts/itemdetailpage.js | 4 +- dashboard-ui/scripts/librarybrowser.js | 2 +- dashboard-ui/scripts/librarymenu.js | 2 +- dashboard-ui/scripts/moviegenres.js | 2 +- dashboard-ui/scripts/selectserver.js | 2 +- dashboard-ui/scripts/site.js | 4 +- dashboard-ui/scripts/tvgenres.js | 2 +- 67 files changed, 99 insertions(+), 100 deletions(-) delete mode 100644 dashboard-ui/fonts/roboto/-l14jk06m6puhb-5mxqqnrjtnkitppoi_ivcxxdnrsc.woff2 delete mode 100644 dashboard-ui/fonts/roboto/0ec6fl06luxeywpbsjvxcbjtnkitppoi_ivcxxdnrsc.woff2 delete mode 100644 dashboard-ui/fonts/roboto/2tsd397wlxj96qwhynikxpeszw2xoq-xsnqo47m55da.woff2 delete mode 100644 dashboard-ui/fonts/roboto/97uahxiqzroncbacei3awxjtnkitppoi_ivcxxdnrsc.woff2 delete mode 100644 dashboard-ui/fonts/roboto/azmswpodyevhtrvuabjwvbtbgvql8ndjpwnre27mub0.woff2 delete mode 100644 dashboard-ui/fonts/roboto/cwb0xya8bzo0ksthx0utua.woff2 delete mode 100644 dashboard-ui/fonts/roboto/d-6iyplofoccackzxwxsoftxra8tvwticgirnjhmvjw.woff2 delete mode 100644 dashboard-ui/fonts/roboto/e7mevayvogmqfwwl61pkhbtbgvql8ndjpwnre27mub0.woff2 delete mode 100644 dashboard-ui/fonts/roboto/fcx7wwv8ozt71a3e1xoajveszw2xoq-xsnqo47m55da.woff2 delete mode 100644 dashboard-ui/fonts/roboto/fl4y0qdoxyythegmxx8kcrjtnkitppoi_ivcxxdnrsc.woff2 delete mode 100644 dashboard-ui/fonts/roboto/frnv30oaydlfrth2vnzzdhtbgvql8ndjpwnre27mub0.woff2 delete mode 100644 dashboard-ui/fonts/roboto/gwvjdern2amz39wrsoz7fxtbgvql8ndjpwnre27mub0.woff2 delete mode 100644 dashboard-ui/fonts/roboto/hgo13k-tfspn0qi1sfdufvtxra8tvwticgirnjhmvjw.woff2 delete mode 100644 dashboard-ui/fonts/roboto/i3s1wsgsg9ycurv6puktorjtnkitppoi_ivcxxdnrsc.woff2 delete mode 100644 dashboard-ui/fonts/roboto/nydwbdd4giq26g5xybhsfbjtnkitppoi_ivcxxdnrsc.woff2 delete mode 100644 dashboard-ui/fonts/roboto/ooefwznlrtefzlymlvv1ubjtnkitppoi_ivcxxdnrsc.woff2 delete mode 100644 dashboard-ui/fonts/roboto/pru33qjshpzsmg3z6vywnrjtnkitppoi_ivcxxdnrsc.woff2 delete mode 100644 dashboard-ui/fonts/roboto/robotobold.woff delete mode 100644 dashboard-ui/fonts/roboto/robotolight.woff delete mode 100644 dashboard-ui/fonts/roboto/robotomedium.woff delete mode 100644 dashboard-ui/fonts/roboto/robotoregular.woff delete mode 100644 dashboard-ui/fonts/roboto/robotothin.woff delete mode 100644 dashboard-ui/fonts/roboto/rxzjdnzeo3r5zsexge8uuvtxra8tvwticgirnjhmvjw.woff2 delete mode 100644 dashboard-ui/fonts/roboto/style.css delete mode 100644 dashboard-ui/fonts/roboto/ty9dfvlaziwdqq2dhoyjphtbgvql8ndjpwnre27mub0.woff2 delete mode 100644 dashboard-ui/fonts/roboto/vvxugkzxbhtx_s_vctlpghtbgvql8ndjpwnre27mub0.woff2 diff --git a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css index 1b538ede38..6e127b03ff 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css +++ b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css @@ -1 +1 @@ -.card,.cardImageContainer-button,.textActionButton{cursor:pointer;outline:0!important}.card,.cardBox,.textActionButton{outline:0!important}button::-moz-focus-inner{padding:0;border:0}button{-webkit-border-fit:border!important}.card{border:0;font-size:inherit!important;font-family:inherit!important;text-transform:none;background:0 0!important;margin:0;padding:0;display:block;color:inherit!important;contain:style;-webkit-flex-shrink:0;flex-shrink:0;font-weight:inherit!important}.itemsContainer,.vertical-list{display:-webkit-box;display:-webkit-flex}.itemsContainer{display:flex}.vertical-list{display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.mediaSourceIndicator,.vertical-wrap{display:-webkit-box;display:-webkit-flex}.vertical-wrap{display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap}.vertical-wrap.centered{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.vertical-wrap>.card{contain:layout style}.cardScalable{position:relative}.cardPadder-backdrop,.cardPadder-overflowBackdrop,.cardPadder-overflowSmallBackdrop,.cardPadder-smallBackdrop{padding-bottom:56.25%}.cardPadder-overflowSquare,.cardPadder-square{padding-bottom:100%}.cardPadder-overflowPortrait,.cardPadder-portrait,.overflowPortraitCard-textCardPadder{padding-bottom:150%}.cardPadder-banner{padding-bottom:18.5%}.cardBox{padding:0!important;margin:.64em;-webkit-transition:none;-o-transition:none;transition:none;border:0 solid transparent;background-color:transparent}@media all and (max-width:1280px),(max-height:720px){.layout-mobile .cardBox{margin:.28em}}.card-focuscontent{border:.12em solid transparent}.cardBox-focustransform{will-change:transform;-webkit-transition:-webkit-transform .2s ease-out;-o-transition:transform .2s ease-out;transition:transform .2s ease-out}.card:focus>.cardBox-focustransform{-webkit-transform:scale(1.16,1.16);transform:scale(1.16,1.16)}.cardBox-bottompadded{margin-bottom:1em!important}.card:focus{position:relative!important;z-index:10!important;font-weight:inherit!important}.btnCardOptions{position:absolute;bottom:.25em;right:0;margin:0!important;z-index:1}.mediaSourceIndicator{display:flex;position:absolute;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;top:.3em;left:.3em;text-align:center;vertical-align:middle;width:1.6em;height:1.6em;-webkit-border-radius:50%;border-radius:50%;color:#fff;background:#38c}.cardImageContainer,.cardIndicators{display:-webkit-box;display:-webkit-flex}.cardText,.innerCardFooter{overflow:hidden;text-align:left}.cardImageContainer{-webkit-background-size:contain;background-size:contain;background-repeat:no-repeat;background-position:center center;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;-webkit-background-clip:content-box!important;background-clip:content-box!important;color:inherit;height:100%;-webkit-border-radius:.2em;border-radius:.2em}.chapterCardImageContainer{background-color:#000;-webkit-border-radius:0;border-radius:0}.textCardImageContainer{background-color:#444}.cardImageContainer-button{border:0;padding:0;background-color:transparent;-webkit-box-sizing:content-box;box-sizing:content-box}.forceRelative{position:relative}.cardContent,.cardImage{position:absolute;top:0;right:0;left:0;bottom:0}.cardContent{overflow:hidden;display:block;height:100%}.cardContent-shadow{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2)}.cardImage{-webkit-background-size:contain;background-size:contain;background-repeat:no-repeat;background-position:center bottom}.cardImage-img{max-height:100%;max-width:100%;min-height:70%;min-width:70%;margin:auto}.coveredImage-img{width:100%;height:100%}.coveredImage-noscale-img{max-height:none;max-width:none}.coveredImage{-webkit-background-size:100% 100%;background-size:100% 100%;background-position:center center}.coveredImage-noScale{-webkit-background-size:cover;background-size:cover}.cardFooter{padding:.5em .3em;position:relative}.cardFooter-transparent{padding-top:.16em}.layout-tv .cardFooter-transparent{padding-top:0}.visualCardBox{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);background-color:#222326;-webkit-border-radius:2px;border-radius:2px}.innerCardFooter{background:rgba(0,0,0,.7);position:absolute;bottom:0;left:0;z-index:1;max-width:100%;color:#fff}.innerCardFooterClear{background-color:transparent}.fullInnerCardFooter{right:0}.cardText{padding:.1em .5em;white-space:nowrap;-o-text-overflow:ellipsis;text-overflow:ellipsis;color:inherit}.cardDefaultText,.cardTextCentered{text-align:center}.layout-tv .cardText{padding:0 .5em;font-size:92%}.innerCardFooter>.cardText{padding:.3em .5em}.cardText-secondary{color:#888!important}.visualCardBox .cardText-secondary{color:inherit!important;opacity:.5}.card:focus .cardText{color:#fff!important}.cardText-rightmargin{margin-right:2em}.cardDefaultText{white-space:normal}.textActionButton{background:0 0;border:0!important;padding:0!important;color:inherit;vertical-align:middle;font-family:inherit;font-size:inherit}.textActionButton:hover{text-decoration:underline}.cardFooterLogo{margin-right:1em}.cardImageIcon{width:auto;height:auto;font-size:5em;color:inherit}.cardIndicators{right:1.25%;top:1.25%;position:absolute;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.portraitCardIndicators{right:1.5%;top:1%}.backdropCardIndicators{right:.75%;top:1.4%}.cardProgramAttributeIndicators{top:0;left:0;position:absolute;display:-webkit-box;display:-webkit-flex;display:flex;text-transform:uppercase;font-size:92%}.programAttributeIndicator{padding:.18em .5em;color:#fff;font-weight:500}.cardOverlayButton{color:#fff!important;background-color:rgba(0,0,0,.7)!important;-webkit-border-radius:500px;border-radius:500px;position:absolute;bottom:0;right:0;margin:0 .35em .65em 0;z-index:1;padding:.4em}.cardOverlayButton-mini{font-size:82%}.defaultCardColor1{background-color:#009688}.defaultCardColor2{background-color:#D32F2F}.defaultCardColor3{background-color:#0288D1}.defaultCardColor4{background-color:#388E3C}.defaultCardColor5{background-color:#F57F17}.backdropCard-scalable,.bannerCard-scalable{width:100%}.smallBackdropCard-scalable,.squareCard-scalable{width:50%}.portraitCard-scalable{width:33.333333333333333333333333333333%}@media all and (min-width:400px){.backdropCard-scalable{width:50%}}@media all and (min-width:500px){.portraitCard-scalable,.smallBackdropCard-scalable,.squareCard-scalable{width:33.333333333333333333333333333333%}}@media all and (min-width:700px){.portraitCard-scalable,.squareCard-scalable{width:25%}}@media all and (min-width:770px){.backdropCard-scalable{width:33.333333333333333333333333333333%}}@media all and (min-width:800px){.bannerCard-scalable{width:50%}.portraitCard-scalable{width:20%}.smallBackdropCard-scalable{width:25%}}@media all and (min-width:900px){.squareCard-scalable{width:20%}}@media all and (min-width:1000px){.smallBackdropCard-scalable{width:20%}}@media all and (min-width:1200px){.backdropCard-scalable{width:25%}.squareCard-scalable{width:16.666666666666666666666666666667%}.bannerCard-scalable{width:33.333333333333333333333333333333%}.portraitCard-scalable,.smallBackdropCard-scalable{width:16.666666666666666666666666666667%}}@media all and (min-width:1400px){.portraitCard-scalable,.smallBackdropCard-scalable,.squareCard-scalable{width:14.285714285714285714285714285714%}}@media all and (min-width:1600px){.portraitCard-scalable,.smallBackdropCard-scalable{width:12.5%}.backdropCard-scalable{width:20%}.squareCard-scalable{width:12.5%}}@media all and (min-width:1920px){.squareCard-scalable{width:11.111111111111111111111111111111%}.smallBackdropCard-scalable{width:10%}}@media all and (min-width:2100px){.backdropCard-scalable{width:20%}.portraitCard-scalable{width:11.111111111111111111111111111111%}}@media all and (min-width:2200px){.bannerCard-scalable{width:25%}.portraitCard-scalable{width:10%}}@media all and (min-width:2500px){.backdropCard-scalable{width:16.666666666666666666666666666667%}}.itemsContainer-tv>.backdropCard-scalable{width:25%}.itemsContainer-tv>.portraitCard-scalable,.itemsContainer-tv>.squareCard-scalable{width:16.666666666666666666666666666667%}@media all and (orientation:portrait){.overflowPortraitCard{width:42vw}.overflowBackdropCard{width:72vw}.overflowSmallBackdropCard{width:60%}.overflowSquareCard{width:42vw}}@media all and (orientation:landscape){.overflowSmallBackdropCard{width:18.5vw}.overflowBackdropCard{width:23.3vw}.overflowPortraitCard,.overflowSquareCard{width:15.5vw}}@media all and (orientation:landscape) and (min-width:1700px){.overflowBackdropCard,.overflowSmallBackdropCard{width:18.5vw}.overflowPortraitCard,.overflowSquareCard{width:11.6vw}}@media all and (orientation:portrait) and (min-width:540px){.overflowPortraitCard{width:30vw}.overflowBackdropCard{width:64vw}.overflowSquareCard{width:30vw}.overflowSmallBackdropCard{width:40%}}@media all and (orientation:portrait) and (min-width:640px){.overflowBackdropCard{width:56vw}.overflowSmallBackdropCard{width:40%}}@media all and (orientation:portrait) and (min-width:770px){.overflowSmallBackdropCard{width:30%}}@media all and (orientation:portrait) and (min-width:1000px){.overflowPortraitCard{width:22vw}.overflowBackdropCard{width:40vw}.overflowSmallBackdropCard{width:24%}.overflowSquareCard{width:22vw}}@media all and (orientation:portrait) and (min-width:1200px){.overflowSmallBackdropCard{width:18%}.overflowPortraitCard,.overflowSquareCard{width:18vw}}@media all and (orientation:portrait) and (min-width:1400px){.overflowPortraitCard,.overflowSquareCard{width:15vw}.overflowBackdropCard{width:30vw}}@media all and (orientation:portrait) and (min-width:1800px){.overflowBackdropCard{width:23.5vw}}.itemsContainer-tv>.overflowSmallBackdropCard{width:18vw}.itemsContainer-tv>.overflowBackdropCard{width:23.3vw}.overflowBackdropCard-textCard{width:15.5vw!important}.overflowBackdropCard-textCardPadder{padding-bottom:87.75%}.itemsContainer-tv>.overflowPortraitCard,.itemsContainer-tv>.overflowSquareCard{width:15.5vw} \ No newline at end of file +.card,.cardImageContainer-button,.textActionButton{cursor:pointer;outline:0!important}.card,.cardBox,.textActionButton{outline:0!important}button::-moz-focus-inner{padding:0;border:0}button{-webkit-border-fit:border!important}.card{border:0;font-size:inherit!important;font-family:inherit!important;text-transform:none;background:0 0!important;margin:0;padding:0;display:block;color:inherit!important;contain:style;-webkit-flex-shrink:0;flex-shrink:0;font-weight:inherit!important}.itemsContainer,.vertical-list{display:-webkit-box;display:-webkit-flex}.itemsContainer{display:flex}.vertical-list{display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.mediaSourceIndicator,.vertical-wrap{display:-webkit-box;display:-webkit-flex}.vertical-wrap{display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap}.vertical-wrap.centered{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.vertical-wrap>.card{contain:layout style}.cardScalable{position:relative}.cardPadder-backdrop,.cardPadder-overflowBackdrop,.cardPadder-overflowSmallBackdrop,.cardPadder-smallBackdrop{padding-bottom:56.25%}.cardPadder-overflowSquare,.cardPadder-square{padding-bottom:100%}.cardPadder-overflowPortrait,.cardPadder-portrait,.overflowPortraitCard-textCardPadder{padding-bottom:150%}.cardPadder-banner{padding-bottom:18.5%}.cardBox{padding:0!important;margin:.66em;-webkit-transition:none;-o-transition:none;transition:none;border:0 solid transparent;background-color:transparent}@media all and (max-width:1280px),(max-height:720px){.layout-mobile .cardBox{margin:.28em}}.card-focuscontent{border:.12em solid transparent}.cardBox-focustransform{will-change:transform;-webkit-transition:-webkit-transform .2s ease-out;-o-transition:transform .2s ease-out;transition:transform .2s ease-out}.card:focus>.cardBox-focustransform{-webkit-transform:scale(1.16,1.16);transform:scale(1.16,1.16)}.cardBox-bottompadded{margin-bottom:1em!important}.card:focus{position:relative!important;z-index:10!important;font-weight:inherit!important}.btnCardOptions{position:absolute;bottom:.25em;right:0;margin:0!important;z-index:1}.mediaSourceIndicator{display:flex;position:absolute;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;top:.3em;left:.3em;text-align:center;vertical-align:middle;width:1.6em;height:1.6em;-webkit-border-radius:50%;border-radius:50%;color:#fff;background:#38c}.cardImageContainer,.cardIndicators{display:-webkit-box;display:-webkit-flex}.cardText,.innerCardFooter{overflow:hidden;text-align:left}.cardImageContainer{-webkit-background-size:contain;background-size:contain;background-repeat:no-repeat;background-position:center center;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;-webkit-background-clip:content-box!important;background-clip:content-box!important;color:inherit;height:100%;-webkit-border-radius:.2em;border-radius:.2em}.chapterCardImageContainer{background-color:#000;-webkit-border-radius:0;border-radius:0}.textCardImageContainer{background-color:#444}.cardImageContainer-button{border:0;padding:0;background-color:transparent;-webkit-box-sizing:content-box;box-sizing:content-box}.forceRelative{position:relative}.cardContent,.cardImage{position:absolute;top:0;right:0;left:0;bottom:0}.cardContent{overflow:hidden;display:block;height:100%}.cardContent-shadow{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2)}.cardImage{-webkit-background-size:contain;background-size:contain;background-repeat:no-repeat;background-position:center bottom}.cardImage-img{max-height:100%;max-width:100%;min-height:70%;min-width:70%;margin:auto}.coveredImage-img{width:100%;height:100%}.coveredImage-noscale-img{max-height:none;max-width:none}.coveredImage{-webkit-background-size:100% 100%;background-size:100% 100%;background-position:center center}.coveredImage-noScale{-webkit-background-size:cover;background-size:cover}.cardFooter{padding:.5em .3em;position:relative}.cardFooter-transparent{padding-top:.16em}.layout-tv .cardFooter-transparent{padding-top:0}.visualCardBox{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);background-color:#222326;-webkit-border-radius:2px;border-radius:2px}.innerCardFooter{background:rgba(0,0,0,.7);position:absolute;bottom:0;left:0;z-index:1;max-width:100%;color:#fff}.innerCardFooterClear{background-color:transparent}.fullInnerCardFooter{right:0}.cardText{padding:.1em .5em;white-space:nowrap;-o-text-overflow:ellipsis;text-overflow:ellipsis;color:inherit}.cardDefaultText,.cardTextCentered{text-align:center}.layout-tv .cardText{padding:0 .5em;font-size:92%}.innerCardFooter>.cardText{padding:.3em .5em}.cardText-secondary{color:#888!important}.visualCardBox .cardText-secondary{color:inherit!important;opacity:.5}.card:focus .cardText{color:#fff!important}.cardText-rightmargin{margin-right:2em}.cardDefaultText{white-space:normal}.textActionButton{background:0 0;border:0!important;padding:0!important;color:inherit;vertical-align:middle;font-family:inherit;font-size:inherit}.textActionButton:hover{text-decoration:underline}.cardFooterLogo{margin-right:1em}.cardImageIcon{width:auto;height:auto;font-size:5em;color:inherit}.cardIndicators{right:1.25%;top:1.25%;position:absolute;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.portraitCardIndicators{right:1.5%;top:1%}.backdropCardIndicators{right:.75%;top:1.4%}.cardProgramAttributeIndicators{top:0;left:0;position:absolute;display:-webkit-box;display:-webkit-flex;display:flex;text-transform:uppercase;font-size:92%}.programAttributeIndicator{padding:.18em .5em;color:#fff;font-weight:500}.cardOverlayButton{color:#fff!important;background-color:rgba(0,0,0,.7)!important;-webkit-border-radius:500px;border-radius:500px;position:absolute;bottom:0;right:0;margin:0 .35em .65em 0;z-index:1;padding:.4em}.cardOverlayButton-mini{font-size:82%}.defaultCardColor1{background-color:#009688}.defaultCardColor2{background-color:#D32F2F}.defaultCardColor3{background-color:#0288D1}.defaultCardColor4{background-color:#388E3C}.defaultCardColor5{background-color:#F57F17}.backdropCard-scalable,.bannerCard-scalable{width:100%}.smallBackdropCard-scalable,.squareCard-scalable{width:50%}.portraitCard-scalable{width:33.333333333333333333333333333333%}@media all and (min-width:400px){.backdropCard-scalable{width:50%}}@media all and (min-width:500px){.portraitCard-scalable,.smallBackdropCard-scalable,.squareCard-scalable{width:33.333333333333333333333333333333%}}@media all and (min-width:700px){.portraitCard-scalable,.squareCard-scalable{width:25%}}@media all and (min-width:770px){.backdropCard-scalable{width:33.333333333333333333333333333333%}}@media all and (min-width:800px){.bannerCard-scalable{width:50%}.portraitCard-scalable{width:20%}.smallBackdropCard-scalable{width:25%}}@media all and (min-width:900px){.squareCard-scalable{width:20%}}@media all and (min-width:1000px){.smallBackdropCard-scalable{width:20%}}@media all and (min-width:1200px){.backdropCard-scalable{width:25%}.squareCard-scalable{width:16.666666666666666666666666666667%}.bannerCard-scalable{width:33.333333333333333333333333333333%}.portraitCard-scalable,.smallBackdropCard-scalable{width:16.666666666666666666666666666667%}}@media all and (min-width:1400px){.portraitCard-scalable,.smallBackdropCard-scalable,.squareCard-scalable{width:14.285714285714285714285714285714%}}@media all and (min-width:1600px){.portraitCard-scalable,.smallBackdropCard-scalable{width:12.5%}.backdropCard-scalable{width:20%}.squareCard-scalable{width:12.5%}}@media all and (min-width:1920px){.squareCard-scalable{width:11.111111111111111111111111111111%}.smallBackdropCard-scalable{width:10%}}@media all and (min-width:2100px){.backdropCard-scalable{width:20%}.portraitCard-scalable{width:11.111111111111111111111111111111%}}@media all and (min-width:2200px){.bannerCard-scalable{width:25%}.portraitCard-scalable{width:10%}}@media all and (min-width:2500px){.backdropCard-scalable{width:16.666666666666666666666666666667%}}.itemsContainer-tv>.backdropCard-scalable{width:25%}.itemsContainer-tv>.portraitCard-scalable,.itemsContainer-tv>.squareCard-scalable{width:16.666666666666666666666666666667%}@media all and (orientation:portrait){.overflowPortraitCard{width:42vw}.overflowBackdropCard{width:72vw}.overflowSmallBackdropCard{width:60%}.overflowSquareCard{width:42vw}}@media all and (orientation:landscape){.overflowSmallBackdropCard{width:18.5vw}.overflowBackdropCard{width:23.3vw}.overflowPortraitCard,.overflowSquareCard{width:15.5vw}}@media all and (orientation:landscape) and (min-width:1700px){.overflowBackdropCard,.overflowSmallBackdropCard{width:18.5vw}.overflowPortraitCard,.overflowSquareCard{width:11.6vw}}@media all and (orientation:portrait) and (min-width:540px){.overflowPortraitCard{width:30vw}.overflowBackdropCard{width:64vw}.overflowSquareCard{width:30vw}.overflowSmallBackdropCard{width:40%}}@media all and (orientation:portrait) and (min-width:640px){.overflowBackdropCard{width:56vw}.overflowSmallBackdropCard{width:40%}}@media all and (orientation:portrait) and (min-width:770px){.overflowSmallBackdropCard{width:30%}}@media all and (orientation:portrait) and (min-width:1000px){.overflowPortraitCard{width:22vw}.overflowBackdropCard{width:40vw}.overflowSmallBackdropCard{width:24%}.overflowSquareCard{width:22vw}}@media all and (orientation:portrait) and (min-width:1200px){.overflowSmallBackdropCard{width:18%}.overflowPortraitCard,.overflowSquareCard{width:18vw}}@media all and (orientation:portrait) and (min-width:1400px){.overflowPortraitCard,.overflowSquareCard{width:15vw}.overflowBackdropCard{width:30vw}}@media all and (orientation:portrait) and (min-width:1800px){.overflowBackdropCard{width:23.5vw}}.itemsContainer-tv>.overflowSmallBackdropCard{width:18vw}.itemsContainer-tv>.overflowBackdropCard{width:23.3vw}.overflowBackdropCard-textCard{width:15.5vw!important}.overflowBackdropCard-textCardPadder{padding-bottom:87.75%}.itemsContainer-tv>.overflowPortraitCard,.itemsContainer-tv>.overflowSquareCard{width:15.5vw} \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/collectioneditor/collectioneditor.js b/dashboard-ui/bower_components/emby-webcomponents/collectioneditor/collectioneditor.js index 73cded9c07..22f26952d0 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/collectioneditor/collectioneditor.js +++ b/dashboard-ui/bower_components/emby-webcomponents/collectioneditor/collectioneditor.js @@ -1 +1 @@ -define(["dialogHelper","loading","layoutManager","connectionManager","embyRouter","globalize","emby-checkbox","emby-input","paper-icon-button-light","emby-select","material-icons","css!./../formdialog","emby-button","emby-linkbutton","flexStyles"],function(dialogHelper,loading,layoutManager,connectionManager,embyRouter,globalize){"use strict";function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function onSubmit(e){loading.show();var panel=parentWithClass(this,"dialog"),collectionId=panel.querySelector("#selectCollectionToAddTo").value,apiClient=connectionManager.getApiClient(currentServerId);return collectionId?addToCollection(apiClient,panel,collectionId):createCollection(apiClient,panel),e.preventDefault(),!1}function createCollection(apiClient,dlg){var url=apiClient.getUrl("Collections",{Name:dlg.querySelector("#txtNewCollectionName").value,IsLocked:!dlg.querySelector("#chkEnableInternetMetadata").checked,Ids:dlg.querySelector(".fldSelectedItemIds").value||""});apiClient.ajax({type:"POST",url:url,dataType:"json"}).then(function(result){loading.hide();var id=result.Id;dlg.submitted=!0,dialogHelper.close(dlg),redirectToCollection(apiClient,id)})}function redirectToCollection(apiClient,id){apiClient.getItem(apiClient.getCurrentUserId(),id).then(function(item){embyRouter.showItem(item)})}function addToCollection(apiClient,dlg,id){var url=apiClient.getUrl("Collections/"+id+"/Items",{Ids:dlg.querySelector(".fldSelectedItemIds").value||""});apiClient.ajax({type:"POST",url:url}).then(function(){loading.hide(),dlg.submitted=!0,dialogHelper.close(dlg),require(["toast"],function(toast){toast(globalize.translate("sharedcomponents#MessageItemsAdded"))})})}function triggerChange(select){select.dispatchEvent(new CustomEvent("change",{}))}function populateCollections(panel){loading.show();var select=panel.querySelector("#selectCollectionToAddTo");panel.querySelector(".newCollectionInfo").classList.add("hide");var options={Recursive:!0,IncludeItemTypes:"BoxSet",SortBy:"SortName",EnableTotalRecordCount:!1},apiClient=connectionManager.getApiClient(currentServerId);apiClient.getItems(apiClient.getCurrentUserId(),options).then(function(result){var html="";html+='",html+=result.Items.map(function(i){return'"}),select.innerHTML=html,select.value="",triggerChange(select),loading.hide()})}function getEditorHtml(){var html="";return html+='
',html+='
',html+='
',html+="
",html+=globalize.translate("sharedcomponents#NewCollectionHelp"),html+="
",html+='
',html+="
",html+="
",html+='
',html+='',html+="
",html+="
",html+='
',html+='
',html+='',html+='
'+globalize.translate("sharedcomponents#NewCollectionNameExample")+"
",html+="
",html+='",html+="
",html+='
',html+='",html+="
",html+='',html+="
",html+="
",html+="
"}function initEditor(content,items){if(content.querySelector("#selectCollectionToAddTo").addEventListener("change",function(){this.value?(content.querySelector(".newCollectionInfo").classList.add("hide"),content.querySelector("#txtNewCollectionName").removeAttribute("required")):(content.querySelector(".newCollectionInfo").classList.remove("hide"),content.querySelector("#txtNewCollectionName").setAttribute("required","required"))}),content.querySelector("form").addEventListener("submit",onSubmit),content.querySelector(".fldSelectedItemIds",content).value=items.join(","),items.length)content.querySelector(".fldSelectCollection").classList.remove("hide"),populateCollections(content);else{content.querySelector(".fldSelectCollection").classList.add("hide");var selectCollectionToAddTo=content.querySelector("#selectCollectionToAddTo");selectCollectionToAddTo.innerHTML="",selectCollectionToAddTo.value="",triggerChange(selectCollectionToAddTo)}}function centerFocus(elem,horiz,on){require(["scrollHelper"],function(scrollHelper){var fn=on?"on":"off";scrollHelper.centerFocus[fn](elem,horiz)})}function CollectionEditor(){}var currentServerId;return CollectionEditor.prototype.show=function(options){var items=options.items||{};currentServerId=options.serverId;var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="small";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="",title=items.length?globalize.translate("sharedcomponents#HeaderAddToCollection"):globalize.translate("sharedcomponents#NewCollection");return html+='
',html+='',html+='

',html+=title,html+="

",html+=''+globalize.translate("sharedcomponents#Help")+"",html+="
",html+=getEditorHtml(),dlg.innerHTML=html,initEditor(dlg,items),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!0),dialogHelper.open(dlg).then(function(){return layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!1),dlg.submitted?Promise.resolve():Promise.reject()})},CollectionEditor}); \ No newline at end of file +define(["dialogHelper","loading","layoutManager","connectionManager","appRouter","globalize","emby-checkbox","emby-input","paper-icon-button-light","emby-select","material-icons","css!./../formdialog","emby-button","emby-linkbutton","flexStyles"],function(dialogHelper,loading,layoutManager,connectionManager,appRouter,globalize){"use strict";function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function onSubmit(e){loading.show();var panel=parentWithClass(this,"dialog"),collectionId=panel.querySelector("#selectCollectionToAddTo").value,apiClient=connectionManager.getApiClient(currentServerId);return collectionId?addToCollection(apiClient,panel,collectionId):createCollection(apiClient,panel),e.preventDefault(),!1}function createCollection(apiClient,dlg){var url=apiClient.getUrl("Collections",{Name:dlg.querySelector("#txtNewCollectionName").value,IsLocked:!dlg.querySelector("#chkEnableInternetMetadata").checked,Ids:dlg.querySelector(".fldSelectedItemIds").value||""});apiClient.ajax({type:"POST",url:url,dataType:"json"}).then(function(result){loading.hide();var id=result.Id;dlg.submitted=!0,dialogHelper.close(dlg),redirectToCollection(apiClient,id)})}function redirectToCollection(apiClient,id){appRouter.showItem(id,apiClient.serverId())}function addToCollection(apiClient,dlg,id){var url=apiClient.getUrl("Collections/"+id+"/Items",{Ids:dlg.querySelector(".fldSelectedItemIds").value||""});apiClient.ajax({type:"POST",url:url}).then(function(){loading.hide(),dlg.submitted=!0,dialogHelper.close(dlg),require(["toast"],function(toast){toast(globalize.translate("sharedcomponents#MessageItemsAdded"))})})}function triggerChange(select){select.dispatchEvent(new CustomEvent("change",{}))}function populateCollections(panel){loading.show();var select=panel.querySelector("#selectCollectionToAddTo");panel.querySelector(".newCollectionInfo").classList.add("hide");var options={Recursive:!0,IncludeItemTypes:"BoxSet",SortBy:"SortName",EnableTotalRecordCount:!1},apiClient=connectionManager.getApiClient(currentServerId);apiClient.getItems(apiClient.getCurrentUserId(),options).then(function(result){var html="";html+='",html+=result.Items.map(function(i){return'"}),select.innerHTML=html,select.value="",triggerChange(select),loading.hide()})}function getEditorHtml(){var html="";return html+='
',html+='
',html+='
',html+="
",html+=globalize.translate("sharedcomponents#NewCollectionHelp"),html+="
",html+='
',html+="
",html+="
",html+='
',html+='',html+="
",html+="
",html+='
',html+='
',html+='',html+='
'+globalize.translate("sharedcomponents#NewCollectionNameExample")+"
",html+="
",html+='",html+="
",html+='
',html+='",html+="
",html+='',html+="
",html+="
",html+="
"}function initEditor(content,items){if(content.querySelector("#selectCollectionToAddTo").addEventListener("change",function(){this.value?(content.querySelector(".newCollectionInfo").classList.add("hide"),content.querySelector("#txtNewCollectionName").removeAttribute("required")):(content.querySelector(".newCollectionInfo").classList.remove("hide"),content.querySelector("#txtNewCollectionName").setAttribute("required","required"))}),content.querySelector("form").addEventListener("submit",onSubmit),content.querySelector(".fldSelectedItemIds",content).value=items.join(","),items.length)content.querySelector(".fldSelectCollection").classList.remove("hide"),populateCollections(content);else{content.querySelector(".fldSelectCollection").classList.add("hide");var selectCollectionToAddTo=content.querySelector("#selectCollectionToAddTo");selectCollectionToAddTo.innerHTML="",selectCollectionToAddTo.value="",triggerChange(selectCollectionToAddTo)}}function centerFocus(elem,horiz,on){require(["scrollHelper"],function(scrollHelper){var fn=on?"on":"off";scrollHelper.centerFocus[fn](elem,horiz)})}function CollectionEditor(){}var currentServerId;return CollectionEditor.prototype.show=function(options){var items=options.items||{};currentServerId=options.serverId;var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="small";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="",title=items.length?globalize.translate("sharedcomponents#HeaderAddToCollection"):globalize.translate("sharedcomponents#NewCollection");return html+='
',html+='',html+='

',html+=title,html+="

",html+=''+globalize.translate("sharedcomponents#Help")+"",html+="
",html+=getEditorHtml(),dlg.innerHTML=html,initEditor(dlg,items),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!0),dialogHelper.open(dlg).then(function(){return layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!1),dlg.submitted?Promise.resolve():Promise.reject()})},CollectionEditor}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/deletehelper.js b/dashboard-ui/bower_components/emby-webcomponents/deletehelper.js index 647d577586..df2be95655 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/deletehelper.js +++ b/dashboard-ui/bower_components/emby-webcomponents/deletehelper.js @@ -1 +1 @@ -define(["connectionManager","confirm","embyRouter","globalize"],function(connectionManager,confirm,embyRouter,globalize){"use strict";function alertText(options){return new Promise(function(resolve,reject){require(["alert"],function(alert){alert(options).then(resolve,resolve)})})}function deleteItem(options){var item=options.item,itemId=item.Id,parentId=item.SeasonId||item.SeriesId||item.ParentId,serverId=item.ServerId,msg=globalize.translate("sharedcomponents#ConfirmDeleteItem"),title=globalize.translate("sharedcomponents#HeaderDeleteItem"),apiClient=connectionManager.getApiClient(item.ServerId);return confirm({title:title,text:msg,confirmText:globalize.translate("sharedcomponents#Delete"),primary:"cancel"}).then(function(){return apiClient.deleteItem(itemId).then(function(){options.navigate&&(parentId?embyRouter.showItem(parentId,serverId):embyRouter.goHome())},function(err){var result=function(){return Promise.reject(err)};return alertText(globalize.translate("sharedcomponents#ErrorDeletingItem")).then(result,result)})})}return{deleteItem:deleteItem}}); \ No newline at end of file +define(["connectionManager","confirm","appRouter","globalize"],function(connectionManager,confirm,appRouter,globalize){"use strict";function alertText(options){return new Promise(function(resolve,reject){require(["alert"],function(alert){alert(options).then(resolve,resolve)})})}function deleteItem(options){var item=options.item,itemId=item.Id,parentId=item.SeasonId||item.SeriesId||item.ParentId,serverId=item.ServerId,msg=globalize.translate("sharedcomponents#ConfirmDeleteItem"),title=globalize.translate("sharedcomponents#HeaderDeleteItem"),apiClient=connectionManager.getApiClient(item.ServerId);return confirm({title:title,text:msg,confirmText:globalize.translate("sharedcomponents#Delete"),primary:"cancel"}).then(function(){return apiClient.deleteItem(itemId).then(function(){options.navigate&&(parentId?appRouter.showItem(parentId,serverId):appRouter.goHome())},function(err){var result=function(){return Promise.reject(err)};return alertText(globalize.translate("sharedcomponents#ErrorDeletingItem")).then(result,result)})})}return{deleteItem:deleteItem}}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-button/emby-button.js b/dashboard-ui/bower_components/emby-webcomponents/emby-button/emby-button.js index 70fd809b42..05e3fb511c 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/emby-button/emby-button.js +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-button/emby-button.js @@ -1 +1 @@ -define(["browser","dom","layoutManager","shell","embyRouter","apphost","css!./emby-button","registerElement"],function(browser,dom,layoutManager,shell,embyRouter,appHost){"use strict";function animateButtonInternal(e,btn){for(var div=document.createElement("div"),i=0,length=btn.classList.length;i0&&offsetY>0&&(div.style.left=offsetX+"px",div.style.top=offsetY+"px");var firstChild=btn.firstChild;firstChild?btn.insertBefore(div,btn.firstChild):btn.appendChild(div),div.addEventListener(dom.whichAnimationEvent(),function(){div.parentNode.removeChild(div)},!1)}function animateButton(e,btn){requestAnimationFrame(function(){animateButtonInternal(e,btn)})}function onKeyDown(e){13===e.keyCode&&animateButton(e,this)}function onMouseDown(e){0===e.button&&animateButton(e,this)}function onClick(e){animateButton(e,this)}function enableAnimation(){return!browser.tv}function onAnchorClick(e){var href=this.getAttribute("href");"#"!==href?this.getAttribute("target")?appHost.supports("targetblank")||(e.preventDefault(),shell.openUrl(href)):embyRouter.handleAnchorClick(e):e.preventDefault()}var EmbyButtonPrototype=Object.create(HTMLButtonElement.prototype),EmbyLinkButtonPrototype=Object.create(HTMLAnchorElement.prototype);return EmbyButtonPrototype.createdCallback=function(){this.classList.contains("emby-button")||(this.classList.add("emby-button"),layoutManager.tv&&(this.classList.add("emby-button-focusscale"),this.classList.add("emby-button-tv")),enableAnimation()&&"false"!==this.getAttribute("data-ripple")&&!this.classList.contains("button-link")&&(dom.addEventListener(this,"keydown",onKeyDown,{passive:!0}),browser.safari||browser.firefox&&"A"===this.tagName?dom.addEventListener(this,"click",onClick,{passive:!0}):dom.addEventListener(this,"mousedown",onMouseDown,{passive:!0})))},EmbyButtonPrototype.attachedCallback=function(){"A"===this.tagName&&(dom.removeEventListener(this,"click",onAnchorClick,{}),dom.addEventListener(this,"click",onAnchorClick,{}),"true"===this.getAttribute("data-autohide")&&(appHost.supports("externallinks")?this.classList.remove("hide"):this.classList.add("hide")))},EmbyButtonPrototype.detachedCallback=function(){dom.removeEventListener(this,"click",onAnchorClick,{})},EmbyLinkButtonPrototype.createdCallback=EmbyButtonPrototype.createdCallback,EmbyLinkButtonPrototype.attachedCallback=EmbyButtonPrototype.attachedCallback,document.registerElement("emby-button",{prototype:EmbyButtonPrototype,extends:"button"}),document.registerElement("emby-linkbutton",{prototype:EmbyLinkButtonPrototype,extends:"a"}),EmbyButtonPrototype}); \ No newline at end of file +define(["browser","dom","layoutManager","shell","appRouter","apphost","css!./emby-button","registerElement"],function(browser,dom,layoutManager,shell,appRouter,appHost){"use strict";function animateButtonInternal(e,btn){for(var div=document.createElement("div"),i=0,length=btn.classList.length;i0&&offsetY>0&&(div.style.left=offsetX+"px",div.style.top=offsetY+"px");var firstChild=btn.firstChild;firstChild?btn.insertBefore(div,btn.firstChild):btn.appendChild(div),div.addEventListener(dom.whichAnimationEvent(),function(){div.parentNode.removeChild(div)},!1)}function animateButton(e,btn){requestAnimationFrame(function(){animateButtonInternal(e,btn)})}function onKeyDown(e){13===e.keyCode&&animateButton(e,this)}function onMouseDown(e){0===e.button&&animateButton(e,this)}function onClick(e){animateButton(e,this)}function enableAnimation(){return!browser.tv}function onAnchorClick(e){var href=this.getAttribute("href");"#"!==href?this.getAttribute("target")?appHost.supports("targetblank")||(e.preventDefault(),shell.openUrl(href)):appRouter.handleAnchorClick(e):e.preventDefault()}var EmbyButtonPrototype=Object.create(HTMLButtonElement.prototype),EmbyLinkButtonPrototype=Object.create(HTMLAnchorElement.prototype);return EmbyButtonPrototype.createdCallback=function(){this.classList.contains("emby-button")||(this.classList.add("emby-button"),layoutManager.tv&&(this.classList.add("emby-button-focusscale"),this.classList.add("emby-button-tv")),enableAnimation()&&"false"!==this.getAttribute("data-ripple")&&!this.classList.contains("button-link")&&(dom.addEventListener(this,"keydown",onKeyDown,{passive:!0}),browser.safari||browser.firefox&&"A"===this.tagName?dom.addEventListener(this,"click",onClick,{passive:!0}):dom.addEventListener(this,"mousedown",onMouseDown,{passive:!0})))},EmbyButtonPrototype.attachedCallback=function(){"A"===this.tagName&&(dom.removeEventListener(this,"click",onAnchorClick,{}),dom.addEventListener(this,"click",onAnchorClick,{}),"true"===this.getAttribute("data-autohide")&&(appHost.supports("externallinks")?this.classList.remove("hide"):this.classList.add("hide")))},EmbyButtonPrototype.detachedCallback=function(){dom.removeEventListener(this,"click",onAnchorClick,{})},EmbyLinkButtonPrototype.createdCallback=EmbyButtonPrototype.createdCallback,EmbyLinkButtonPrototype.attachedCallback=EmbyButtonPrototype.attachedCallback,document.registerElement("emby-button",{prototype:EmbyButtonPrototype,extends:"button"}),document.registerElement("emby-linkbutton",{prototype:EmbyLinkButtonPrototype,extends:"a"}),EmbyButtonPrototype}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/homesections.js b/dashboard-ui/bower_components/emby-webcomponents/homesections.js index 9bf66f9010..a47e8e940c 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/homesections.js +++ b/dashboard-ui/bower_components/emby-webcomponents/homesections.js @@ -1 +1 @@ -define(["cardBuilder","appSettings","dom","apphost","layoutManager","imageLoader","globalize","itemShortcuts","itemHelper","embyRouter","emby-button","paper-icon-button-light","emby-itemscontainer","emby-scroller","emby-linkbutton"],function(cardBuilder,appSettings,dom,appHost,layoutManager,imageLoader,globalize,itemShortcuts,itemHelper,embyRouter){"use strict";function getDefaultSection(index){switch(index){case 0:return"smalllibrarytiles";case 1:return"resume";case 2:return"resumeaudio";case 3:return"livetv";case 4:return"nextup";case 5:return"latestmedia";case 6:return"none";default:return""}}function loadSections(elem,apiClient,user,userSettings){return getUserViews(apiClient,user.Id).then(function(userViews){var i,length,sectionCount=7,html="";for(i=0,length=sectionCount;i';elem.innerHTML=html,elem.classList.add("homeSectionsContainer");var promises=[];for(i=0,length=sectionCount;i",layoutManager.tv||(html+=''),html+="",html+='
';for(var i=0,length=items.length;i'+icon+""+item.Name+""}return html+="
",html+=""}function loadlibraryButtons(elem,apiClient,user,userSettings,userViews){return Promise.all([getAppInfo(apiClient),getDownloadsSectionHtml(apiClient,user,userSettings)]).then(function(responses){var infoHtml=responses[0],downloadsHtml=responses[1];elem.classList.remove("verticalSection");var html=getLibraryButtonsHtml(userViews);elem.innerHTML=html+downloadsHtml+infoHtml,bindHomeScreenSettingsIcon(elem,apiClient,user.Id,userSettings),infoHtml&&bindAppInfoEvents(elem)})}function bindAppInfoEvents(elem){getRequirePromise(["registrationServices"]).then(function(registrationServices){elem.querySelector(".appInfoSection").addEventListener("click",function(e){dom.parentWithClass(e.target,"card")&®istrationServices.showPremiereInfo()})})}function getRandomInt(min,max){return Math.floor(Math.random()*(max-min+1))+min}function getAppInfo(apiClient){var frequency=1728e5,cacheKey="lastappinfopresent5",lastDatePresented=parseInt(appSettings.get(cacheKey)||"0");return lastDatePresented?(new Date).getTime()-lastDatePresented
';return html+='
',html+='
',html+="
",html+="
"}function getTheaterInfo(){var html="";html+='
',html+='
',html+='

Discover Emby Theater

',html+='',html+="
";var nameText="Emby Theater";return html+='
',html+='

A beautiful app for your TV and large screen tablet. '+nameText+" runs on Windows, Xbox One, Raspberry Pi, Samsung Smart TVs, Sony PS4, Web Browsers, and more.

",html+='
',html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png"),html+="
",html+="
",html+="
"}function getPremiereInfo(){var html="";return html+='
',html+='
',html+='

Discover Emby Premiere

',html+='',html+="
",html+='
',html+='

Enjoy Emby DVR, get free access to Emby apps, and more.

',html+='
',html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png"),html+="
",html+="
",html+="
"}function renderLatestSection(elem,apiClient,user,parent){var limit=16;enableScrollX()?"music"===parent.CollectionType&&(limit=30):limit="tvshows"===parent.CollectionType?5:"music"===parent.CollectionType?9:8;var options={Limit:limit,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",ParentId:parent.Id};return apiClient.getJSON(apiClient.getUrl("Users/"+user.Id+"/Items/Latest",options)).then(function(items){var html="";if(items.length){html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#LatestFromLibrary",parent.Name)+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#LatestFromLibrary",parent.Name),html+="

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
';var viewType=parent.CollectionType,shape="movies"===viewType?getPortraitShape():"music"===viewType?getSquareShape():getThumbShape(),cardLayout=!1;html+=cardBuilder.getCardsHtml({items:items,shape:shape,preferThumb:"movies"!==viewType&&"music"!==viewType?"auto":null,showUnplayedIndicator:!1,showChildCountIndicator:!0,context:"home",overlayText:!1,centerText:!cardLayout,overlayPlayButton:"photos"!==viewType,allowBottomPadding:!enableScrollX()&&!cardLayout,cardLayout:cardLayout,showTitle:"photos"!==viewType,showYear:"movies"===viewType||"tvshows"===viewType||!viewType,showParentTitle:"music"===viewType||"tvshows"===viewType||!viewType||cardLayout&&"tvshows"===viewType,lines:2}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadRecentlyAdded(elem,apiClient,user,userViews){elem.classList.remove("verticalSection");for(var excludeViewTypes=["playlists","livetv","boxsets","channels"],excludeItemTypes=["Channel"],i=0,length=userViews.length;i=2400?10:screenWidth>=1600?10:screenWidth>=1440?8:screenWidth>=800?7:6,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",Filters:"IsUnplayed",UserId:userId};return apiClient.getJSON(apiClient.getUrl("Channels/Items/Latest",options)).then(function(result){var html="";result.Items.length&&(html+='

'+globalize.translate("sharedcomponents#HeaderLatestChannelMedia")+"

",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:"auto",showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0}),enableScrollX()&&(html+="
",html+="
")),elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function showHomeScreenSettings(elem,options){return getRequirePromise(["homescreenSettingsDialog"]).then(function(homescreenSettingsDialog){return homescreenSettingsDialog.show(options).then(function(){dom.parentWithClass(elem,"homeSectionsContainer").dispatchEvent(new CustomEvent("settingschange",{cancelable:!1}))})})}function bindHomeScreenSettingsIcon(elem,apiClient,userId,userSettings){var btnHomeScreenSettings=elem.querySelector(".btnHomeScreenSettings");btnHomeScreenSettings&&btnHomeScreenSettings.addEventListener("click",function(){showHomeScreenSettings(elem,{serverId:apiClient.serverId(),userId:userId,userSettings:userSettings})})}function getDownloadsSectionHtml(apiClient,user,userSettings){if(!appHost.supports("sync")||!user.Policy.EnableContentDownloading)return Promise.resolve("");var promise=apiClient.getLatestOfflineItems?apiClient.getLatestOfflineItems({Limit:20,Filters:"IsNotFolder"}):Promise.resolve([]);return promise.then(function(items){var html="";html+='
',html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#HeaderMyDownloads")+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#HeaderMyDownloads"),html+="

",html+='',html+="
",html+=''),html+="
",html+='
';var cardLayout=!1;return html+=cardBuilder.getCardsHtml({items:items,preferThumb:"auto",shape:"autooverflow",overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!1,cardLayout:cardLayout,showYear:!0,lines:2}),html+="
",html+="
",html+="
"})}function loadLibraryTiles(elem,apiClient,user,userSettings,shape,userViews){elem.classList.remove("verticalSection");var html="",scrollX=!layoutManager.desktop;return userViews.length&&(html+='
',html+='
',html+='

'+globalize.translate("sharedcomponents#HeaderMyMedia")+"

",layoutManager.tv||(html+=''),html+="
",html+=scrollX?'
':'
',html+=cardBuilder.getCardsHtml({items:userViews,shape:scrollX?"overflowSmallBackdrop":shape,showTitle:!0,centerText:!0,overlayText:!1,lazy:!0,transition:!1,allowBottomPadding:!scrollX}),scrollX&&(html+="
"),html+="
",html+="
"),Promise.all([getAppInfo(apiClient),getDownloadsSectionHtml(apiClient,user,userSettings)]).then(function(responses){var infoHtml=responses[0],downloadsHtml=responses[1];elem.innerHTML=html+downloadsHtml+infoHtml,bindHomeScreenSettingsIcon(elem,apiClient,user.Id,userSettings),infoHtml&&bindAppInfoEvents(elem),imageLoader.lazyChildren(elem)})}function loadResumeVideo(elem,apiClient,userId){var limit,screenWidth=dom.getWindowSize().innerWidth;enableScrollX()?limit=12:(limit=screenWidth>=1920?8:screenWidth>=1600?8:screenWidth>=1200?9:6,limit=Math.min(limit,5));var options={SortBy:"DatePlayed",SortOrder:"Descending",Filters:"IsResumable",Limit:limit,Recursive:!0,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",CollapseBoxSetItems:!1,ExcludeLocationTypes:"Virtual",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",EnableTotalRecordCount:!1,MediaTypes:"Video"};return apiClient.getItems(userId,options).then(function(result){var html="";if(result.Items.length){html+='

'+globalize.translate("sharedcomponents#HeaderContinueWatching")+"

",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:!0,shape:getThumbShape(),overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!1,cardLayout:cardLayout,showYear:!0,lines:2}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadResumeAudio(elem,apiClient,userId){var limit,screenWidth=dom.getWindowSize().innerWidth;enableScrollX()?limit=12:(limit=screenWidth>=1920?8:screenWidth>=1600?8:screenWidth>=1200?9:6,limit=Math.min(limit,5));var options={SortBy:"DatePlayed",SortOrder:"Descending",Filters:"IsResumable",Limit:limit,Recursive:!0,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",CollapseBoxSetItems:!1,ExcludeLocationTypes:"Virtual",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",EnableTotalRecordCount:!1,MediaTypes:"Audio"};return apiClient.getItems(userId,options).then(function(result){var html="";if(result.Items.length){html+='

'+globalize.translate("sharedcomponents#HeaderContinueListening")+"

",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:!0,shape:getThumbShape(),overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!1,cardLayout:cardLayout,showYear:!0,lines:2}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadActiveRecordings(elem,apiClient,userId){apiClient.getLiveTvRecordings({UserId:userId,IsInProgress:!0,Fields:"CanDelete,PrimaryImageAspectRatio,BasicSyncInfo",EnableTotalRecordCount:!1,EnableImageTypes:"Primary,Thumb,Backdrop"}).then(function(result){var html="";if(result.Items.length){html+='

'+globalize.translate("sharedcomponents#HeaderActiveRecordings")+"

",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,lazy:!0,allowBottomPadding:!enableScrollX(),shape:enableScrollX()?"autooverflow":"auto",defaultShape:getThumbShape(),showTitle:!1,showParentTitleOrTitle:!0,showAirTime:!0,showAirEndTime:!0,showChannelName:!0,cardLayout:cardLayout,preferThumb:"auto",coverImage:!0,overlayText:!1,centerText:!cardLayout,overlayMoreButton:!0}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadOnNow(elem,apiClient,user){if(!user.Policy.EnableLiveTvAccess)return Promise.resolve("");elem.classList.remove("verticalSection");user.Id;return apiClient.getLiveTvRecommendedPrograms({userId:apiClient.getCurrentUserId(),IsAiring:!0,limit:enableScrollX()?24:8,ImageTypeLimit:1,EnableImageTypes:"Primary,Thumb,Backdrop",EnableTotalRecordCount:!1,Fields:"ChannelInfo,PrimaryImageAspectRatio"}).then(function(result){var html="";result.Items.length&&(html+='
',html+='
',html+='

'+globalize.translate("sharedcomponents#LiveTV")+"

",html+="
",enableScrollX()?(html+='",html+="
",html+='
',html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#HeaderOnNow")+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#HeaderOnNow"),html+="

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:"auto",inheritThumb:!1,shape:enableScrollX()?"autooverflow":"auto",showParentTitleOrTitle:!0,showTitle:!0,centerText:!0,coverImage:!0,overlayText:!1,overlayPlayButton:!0,allowBottomPadding:!enableScrollX(),showAirTime:!0,showChannelName:!1,showAirDateTime:!1,showAirEndTime:!0,defaultShape:getThumbShape(),lines:3}),enableScrollX()&&(html+="
",html+="
"),html+="
",html+="
"),elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadNextUp(elem,apiClient,userId){var query={Limit:enableScrollX()?24:15,Fields:"PrimaryImageAspectRatio,SeriesInfo,DateCreated,BasicSyncInfo",UserId:userId,ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Banner,Thumb",EnableTotalRecordCount:!1};apiClient.getNextUpEpisodes(query).then(function(result){var html="";if(result.Items.length){html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#HeaderNextUp")+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#HeaderNextUp"),html+="

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:!0,shape:getThumbShape(),overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!enableScrollX(),cardLayout:cardLayout}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadLatestChannelItems(elem,apiClient,userId,options){return options=Object.assign(options||{},{UserId:userId,SupportsLatestItems:!0}),apiClient.getJSON(apiClient.getUrl("Channels",options)).then(function(result){var channels=result.Items,channelsHtml=channels.map(function(c){return'
'}).join("");elem.innerHTML=channelsHtml;for(var i=0,length=channels.length;i=1600?10:screenWidth>=1440?5:6,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",Filters:"IsUnplayed",UserId:apiClient.getCurrentUserId(),ChannelIds:channel.Id};apiClient.getJSON(apiClient.getUrl("Channels/Items/Latest",options)).then(function(result){var html="";if(result.Items.length){html+='
',html+='
';var text=globalize.translate("sharedcomponents#HeaderLatestFrom").replace("{0}",channel.Name);html+='

'+text+"

",layoutManager.tv||(html+=''+globalize.translate("sharedcomponents#More")+""),html+="
",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:enableScrollX()?"autooverflow":"auto",showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,allowBottomPadding:!enableScrollX()}),enableScrollX()&&(html+="
",html+="
"),html+="
",html+="
"}var elem=page.querySelector("#channel"+channel.Id);elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadLatestLiveTvRecordings(elem,apiClient,userId){return apiClient.getLiveTvRecordings({userId:userId,Limit:enableScrollX()?12:5,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",IsInProgress:!1,EnableTotalRecordCount:!1,IsLibraryItem:!1}).then(function(result){var html="";result.Items.length&&(html+='
',html+='

'+globalize.translate("sharedcomponents#HeaderLatestRecordings")+"

",!layoutManager.tv,html+="
"),html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:enableScrollX()?"autooverflow":"auto",showTitle:!0,showParentTitle:!0,coverImage:!0,lazy:!0,showDetailsMenu:!0,centerText:!0,overlayText:!1,overlayPlayButton:!0,allowBottomPadding:!enableScrollX(),preferThumb:!0,cardLayout:!1}),enableScrollX()&&(html+="
",html+="
"),html+="
",elem.innerHTML=html,imageLoader.lazyChildren(elem)})}return{loadLatestChannelMedia:loadLatestChannelMedia,loadLibraryTiles:loadLibraryTiles,loadResumeVideo:loadResumeVideo,loadResumeAudio:loadResumeAudio,loadActiveRecordings:loadActiveRecordings,loadNextUp:loadNextUp,loadLatestChannelItems:loadLatestChannelItems,loadLatestLiveTvRecordings:loadLatestLiveTvRecordings,getDefaultSection:getDefaultSection,loadSections:loadSections}}); \ No newline at end of file +define(["cardBuilder","appSettings","dom","apphost","layoutManager","imageLoader","globalize","itemShortcuts","itemHelper","appRouter","emby-button","paper-icon-button-light","emby-itemscontainer","emby-scroller","emby-linkbutton"],function(cardBuilder,appSettings,dom,appHost,layoutManager,imageLoader,globalize,itemShortcuts,itemHelper,appRouter){"use strict";function getDefaultSection(index){switch(index){case 0:return"smalllibrarytiles";case 1:return"resume";case 2:return"resumeaudio";case 3:return"livetv";case 4:return"nextup";case 5:return"latestmedia";case 6:return"none";default:return""}}function loadSections(elem,apiClient,user,userSettings){return getUserViews(apiClient,user.Id).then(function(userViews){var i,length,sectionCount=7,html="";for(i=0,length=sectionCount;i
';elem.innerHTML=html,elem.classList.add("homeSectionsContainer");var promises=[];for(i=0,length=sectionCount;i",layoutManager.tv||(html+=''),html+="
",html+='
';for(var i=0,length=items.length;i'+icon+""+item.Name+""}return html+="
",html+="
"}function loadlibraryButtons(elem,apiClient,user,userSettings,userViews){return Promise.all([getAppInfo(apiClient),getDownloadsSectionHtml(apiClient,user,userSettings)]).then(function(responses){var infoHtml=responses[0],downloadsHtml=responses[1];elem.classList.remove("verticalSection");var html=getLibraryButtonsHtml(userViews);elem.innerHTML=html+downloadsHtml+infoHtml,bindHomeScreenSettingsIcon(elem,apiClient,user.Id,userSettings),infoHtml&&bindAppInfoEvents(elem)})}function bindAppInfoEvents(elem){getRequirePromise(["registrationServices"]).then(function(registrationServices){elem.querySelector(".appInfoSection").addEventListener("click",function(e){dom.parentWithClass(e.target,"card")&®istrationServices.showPremiereInfo()})})}function getRandomInt(min,max){return Math.floor(Math.random()*(max-min+1))+min}function getAppInfo(apiClient){var frequency=1728e5,cacheKey="lastappinfopresent5",lastDatePresented=parseInt(appSettings.get(cacheKey)||"0");return lastDatePresented?(new Date).getTime()-lastDatePresented
';return html+='
',html+='
',html+="
",html+="
"}function getTheaterInfo(){var html="";html+='
',html+='
',html+='

Discover Emby Theater

',html+='',html+="
";var nameText="Emby Theater";return html+='
',html+='

A beautiful app for your TV and large screen tablet. '+nameText+" runs on Windows, Xbox One, Raspberry Pi, Samsung Smart TVs, Sony PS4, Web Browsers, and more.

",html+='
',html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png"),html+="
",html+="
",html+="
"}function getPremiereInfo(){var html="";return html+='
',html+='
',html+='

Discover Emby Premiere

',html+='',html+="
",html+='
',html+='

Enjoy Emby DVR, get free access to Emby apps, and more.

',html+='
',html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png"),html+="
",html+="
",html+="
"}function renderLatestSection(elem,apiClient,user,parent){var limit=16;enableScrollX()?"music"===parent.CollectionType&&(limit=30):limit="tvshows"===parent.CollectionType?5:"music"===parent.CollectionType?9:8;var options={Limit:limit,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",ParentId:parent.Id};return apiClient.getJSON(apiClient.getUrl("Users/"+user.Id+"/Items/Latest",options)).then(function(items){var html="";if(items.length){html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#LatestFromLibrary",parent.Name)+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#LatestFromLibrary",parent.Name),html+="

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
';var viewType=parent.CollectionType,shape="movies"===viewType?getPortraitShape():"music"===viewType?getSquareShape():getThumbShape(),cardLayout=!1;html+=cardBuilder.getCardsHtml({items:items,shape:shape,preferThumb:"movies"!==viewType&&"music"!==viewType?"auto":null,showUnplayedIndicator:!1,showChildCountIndicator:!0,context:"home",overlayText:!1,centerText:!cardLayout,overlayPlayButton:"photos"!==viewType,allowBottomPadding:!enableScrollX()&&!cardLayout,cardLayout:cardLayout,showTitle:"photos"!==viewType,showYear:"movies"===viewType||"tvshows"===viewType||!viewType,showParentTitle:"music"===viewType||"tvshows"===viewType||!viewType||cardLayout&&"tvshows"===viewType,lines:2}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadRecentlyAdded(elem,apiClient,user,userViews){elem.classList.remove("verticalSection");for(var excludeViewTypes=["playlists","livetv","boxsets","channels"],excludeItemTypes=["Channel"],i=0,length=userViews.length;i=2400?10:screenWidth>=1600?10:screenWidth>=1440?8:screenWidth>=800?7:6,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",Filters:"IsUnplayed",UserId:userId};return apiClient.getJSON(apiClient.getUrl("Channels/Items/Latest",options)).then(function(result){var html="";result.Items.length&&(html+='

'+globalize.translate("sharedcomponents#HeaderLatestChannelMedia")+"

",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:"auto",showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0}),enableScrollX()&&(html+="
",html+="
")),elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function showHomeScreenSettings(elem,options){return getRequirePromise(["homescreenSettingsDialog"]).then(function(homescreenSettingsDialog){return homescreenSettingsDialog.show(options).then(function(){dom.parentWithClass(elem,"homeSectionsContainer").dispatchEvent(new CustomEvent("settingschange",{cancelable:!1}))})})}function bindHomeScreenSettingsIcon(elem,apiClient,userId,userSettings){var btnHomeScreenSettings=elem.querySelector(".btnHomeScreenSettings");btnHomeScreenSettings&&btnHomeScreenSettings.addEventListener("click",function(){showHomeScreenSettings(elem,{serverId:apiClient.serverId(),userId:userId,userSettings:userSettings})})}function getDownloadsSectionHtml(apiClient,user,userSettings){if(!appHost.supports("sync")||!user.Policy.EnableContentDownloading)return Promise.resolve("");var promise=apiClient.getLatestOfflineItems?apiClient.getLatestOfflineItems({Limit:20,Filters:"IsNotFolder"}):Promise.resolve([]);return promise.then(function(items){var html="";html+='
',html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#HeaderMyDownloads")+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#HeaderMyDownloads"),html+="

",html+='',html+="
",html+=''),html+="
",html+='
';var cardLayout=!1;return html+=cardBuilder.getCardsHtml({items:items,preferThumb:"auto",shape:"autooverflow",overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!1,cardLayout:cardLayout,showYear:!0,lines:2}),html+="
",html+="
",html+="
"})}function loadLibraryTiles(elem,apiClient,user,userSettings,shape,userViews){elem.classList.remove("verticalSection");var html="",scrollX=!layoutManager.desktop;return userViews.length&&(html+='
',html+='
',html+='

'+globalize.translate("sharedcomponents#HeaderMyMedia")+"

",layoutManager.tv||(html+=''),html+="
",html+=scrollX?'
':'
',html+=cardBuilder.getCardsHtml({items:userViews,shape:scrollX?"overflowSmallBackdrop":shape,showTitle:!0,centerText:!0,overlayText:!1,lazy:!0,transition:!1,allowBottomPadding:!scrollX}),scrollX&&(html+="
"),html+="
",html+="
"),Promise.all([getAppInfo(apiClient),getDownloadsSectionHtml(apiClient,user,userSettings)]).then(function(responses){var infoHtml=responses[0],downloadsHtml=responses[1];elem.innerHTML=html+downloadsHtml+infoHtml,bindHomeScreenSettingsIcon(elem,apiClient,user.Id,userSettings),infoHtml&&bindAppInfoEvents(elem),imageLoader.lazyChildren(elem)})}function loadResumeVideo(elem,apiClient,userId){var limit,screenWidth=dom.getWindowSize().innerWidth;enableScrollX()?limit=12:(limit=screenWidth>=1920?8:screenWidth>=1600?8:screenWidth>=1200?9:6,limit=Math.min(limit,5));var options={SortBy:"DatePlayed",SortOrder:"Descending",Filters:"IsResumable",Limit:limit,Recursive:!0,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",CollapseBoxSetItems:!1,ExcludeLocationTypes:"Virtual",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",EnableTotalRecordCount:!1,MediaTypes:"Video"};return apiClient.getItems(userId,options).then(function(result){var html="";if(result.Items.length){html+='

'+globalize.translate("sharedcomponents#HeaderContinueWatching")+"

",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:!0,shape:getThumbShape(),overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!1,cardLayout:cardLayout,showYear:!0,lines:2}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadResumeAudio(elem,apiClient,userId){var limit,screenWidth=dom.getWindowSize().innerWidth;enableScrollX()?limit=12:(limit=screenWidth>=1920?8:screenWidth>=1600?8:screenWidth>=1200?9:6,limit=Math.min(limit,5));var options={SortBy:"DatePlayed",SortOrder:"Descending",Filters:"IsResumable",Limit:limit,Recursive:!0,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",CollapseBoxSetItems:!1,ExcludeLocationTypes:"Virtual",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",EnableTotalRecordCount:!1,MediaTypes:"Audio"};return apiClient.getItems(userId,options).then(function(result){var html="";if(result.Items.length){html+='

'+globalize.translate("sharedcomponents#HeaderContinueListening")+"

",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:!0,shape:getThumbShape(),overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!1,cardLayout:cardLayout,showYear:!0,lines:2}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadActiveRecordings(elem,apiClient,userId){apiClient.getLiveTvRecordings({UserId:userId,IsInProgress:!0,Fields:"CanDelete,PrimaryImageAspectRatio,BasicSyncInfo",EnableTotalRecordCount:!1,EnableImageTypes:"Primary,Thumb,Backdrop"}).then(function(result){var html="";if(result.Items.length){html+='

'+globalize.translate("sharedcomponents#HeaderActiveRecordings")+"

",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,lazy:!0,allowBottomPadding:!enableScrollX(),shape:enableScrollX()?"autooverflow":"auto",defaultShape:getThumbShape(),showTitle:!1,showParentTitleOrTitle:!0,showAirTime:!0,showAirEndTime:!0,showChannelName:!0,cardLayout:cardLayout,preferThumb:"auto",coverImage:!0,overlayText:!1,centerText:!cardLayout,overlayMoreButton:!0}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadOnNow(elem,apiClient,user){if(!user.Policy.EnableLiveTvAccess)return Promise.resolve("");elem.classList.remove("verticalSection");user.Id;return apiClient.getLiveTvRecommendedPrograms({userId:apiClient.getCurrentUserId(),IsAiring:!0,limit:enableScrollX()?24:8,ImageTypeLimit:1,EnableImageTypes:"Primary,Thumb,Backdrop",EnableTotalRecordCount:!1,Fields:"ChannelInfo,PrimaryImageAspectRatio"}).then(function(result){var html="";result.Items.length&&(html+='
',html+='
',html+='

'+globalize.translate("sharedcomponents#LiveTV")+"

",html+="
",enableScrollX()?(html+='",html+="
",html+='
',html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#HeaderOnNow")+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#HeaderOnNow"),html+="

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:"auto",inheritThumb:!1,shape:enableScrollX()?"autooverflow":"auto",showParentTitleOrTitle:!0,showTitle:!0,centerText:!0,coverImage:!0,overlayText:!1,overlayPlayButton:!0,allowBottomPadding:!enableScrollX(),showAirTime:!0,showChannelName:!1,showAirDateTime:!1,showAirEndTime:!0,defaultShape:getThumbShape(),lines:3}),enableScrollX()&&(html+="
",html+="
"),html+="
",html+="
"),elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadNextUp(elem,apiClient,userId){var query={Limit:enableScrollX()?24:15,Fields:"PrimaryImageAspectRatio,SeriesInfo,DateCreated,BasicSyncInfo",UserId:userId,ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Banner,Thumb",EnableTotalRecordCount:!1};apiClient.getNextUpEpisodes(query).then(function(result){var html="";if(result.Items.length){html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#HeaderNextUp")+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#HeaderNextUp"),html+="

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:!0,shape:getThumbShape(),overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!enableScrollX(),cardLayout:cardLayout}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadLatestChannelItems(elem,apiClient,userId,options){return options=Object.assign(options||{},{UserId:userId,SupportsLatestItems:!0}),apiClient.getJSON(apiClient.getUrl("Channels",options)).then(function(result){var channels=result.Items,channelsHtml=channels.map(function(c){return'
'}).join("");elem.innerHTML=channelsHtml;for(var i=0,length=channels.length;i=1600?10:screenWidth>=1440?5:6,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",Filters:"IsUnplayed",UserId:apiClient.getCurrentUserId(),ChannelIds:channel.Id};apiClient.getJSON(apiClient.getUrl("Channels/Items/Latest",options)).then(function(result){var html="";if(result.Items.length){html+='
',html+='
';var text=globalize.translate("sharedcomponents#HeaderLatestFrom").replace("{0}",channel.Name);html+='

'+text+"

",layoutManager.tv||(html+=''+globalize.translate("sharedcomponents#More")+""),html+="
",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:enableScrollX()?"autooverflow":"auto",showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,allowBottomPadding:!enableScrollX()}),enableScrollX()&&(html+="
",html+="
"),html+="
",html+="
"}var elem=page.querySelector("#channel"+channel.Id);elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadLatestLiveTvRecordings(elem,apiClient,userId){return apiClient.getLiveTvRecordings({userId:userId,Limit:enableScrollX()?12:5,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",IsInProgress:!1,EnableTotalRecordCount:!1,IsLibraryItem:!1}).then(function(result){var html="";result.Items.length&&(html+='
',html+='

'+globalize.translate("sharedcomponents#HeaderLatestRecordings")+"

",!layoutManager.tv,html+="
"),html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:enableScrollX()?"autooverflow":"auto",showTitle:!0,showParentTitle:!0,coverImage:!0,lazy:!0,showDetailsMenu:!0,centerText:!0,overlayText:!1,overlayPlayButton:!0,allowBottomPadding:!enableScrollX(),preferThumb:!0,cardLayout:!1}),enableScrollX()&&(html+="
",html+="
"),html+="
",elem.innerHTML=html,imageLoader.lazyChildren(elem)})}return{loadLatestChannelMedia:loadLatestChannelMedia,loadLibraryTiles:loadLibraryTiles,loadResumeVideo:loadResumeVideo,loadResumeAudio:loadResumeAudio,loadActiveRecordings:loadActiveRecordings,loadNextUp:loadNextUp,loadLatestChannelItems:loadLatestChannelItems,loadLatestLiveTvRecordings:loadLatestLiveTvRecordings,getDefaultSection:getDefaultSection,loadSections:loadSections}}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js b/dashboard-ui/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js index b255ff4b4b..b074dacb75 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js +++ b/dashboard-ui/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js @@ -1 +1 @@ -define(["browser","require","events","apphost","loading","dom","playbackManager","embyRouter","appSettings","connectionManager","./htmlmediahelper"],function(browser,require,events,appHost,loading,dom,playbackManager,embyRouter,appSettings,connectionManager,htmlMediaHelper){"use strict";function tryRemoveElement(elem){var parentNode=elem.parentNode;if(parentNode)try{parentNode.removeChild(elem)}catch(err){console.log("Error removing dialog element: "+err)}}function enableNativeTrackSupport(currentSrc,track){if(browser.firefox&&(currentSrc||"").toLowerCase().indexOf(".m3u8")!==-1)return!1;if(browser.ps4)return!1;if(browser.edge)return!1;if(track){var format=(track.Codec||"").toLowerCase();if("ssa"===format||"ass"===format)return!1}return!0}function requireHlsPlayer(callback){require(["hlsjs"],function(hls){window.Hls=hls,callback()})}function getMediaStreamAudioTracks(mediaSource){return mediaSource.MediaStreams.filter(function(s){return"Audio"===s.Type})}function getMediaStreamTextTracks(mediaSource){return mediaSource.MediaStreams.filter(function(s){return"Subtitle"===s.Type&&"External"===s.DeliveryMethod})}function zoomIn(elem){return new Promise(function(resolve,reject){var duration=240;elem.style.animation="htmlvideoplayer-zoomin "+duration+"ms ease-in normal",dom.addEventListener(elem,dom.whichAnimationEvent(),resolve,{once:!0})})}function normalizeTrackEventText(text){return text.replace(/\\N/gi,"\n")}function setTracks(elem,tracks,mediaSource,serverId){elem.innerHTML=getTracksHtml(tracks,mediaSource,serverId)}function getTextTrackUrl(track,serverId){return playbackManager.getSubtitleUrl(track,serverId)}function getTracksHtml(tracks,mediaSource,serverId){return tracks.map(function(t){var defaultAttribute=mediaSource.DefaultSubtitleStreamIndex===t.Index?" default":"",language=t.Language||"und",label=t.Language||"und";return'"}).join("")}function getDefaultProfile(){return new Promise(function(resolve,reject){require(["browserdeviceprofile"],function(profileBuilder){resolve(profileBuilder({}))})})}function HtmlVideoPlayer(){function updateVideoUrl(streamInfo){var isHls=streamInfo.url.toLowerCase().indexOf(".m3u8")!==-1,mediaSource=streamInfo.mediaSource,item=streamInfo.item;if(mediaSource&&item&&!mediaSource.RunTimeTicks&&isHls&&"Transcode"===streamInfo.playMethod&&(browser.iOS||browser.osx)){var hlsPlaylistUrl=streamInfo.url.replace("master.m3u8","live.m3u8");return loading.show(),console.log("prefetching hls playlist: "+hlsPlaylistUrl),connectionManager.getApiClient(item.ServerId).ajax({type:"GET",url:hlsPlaylistUrl}).then(function(){return console.log("completed prefetching hls playlist: "+hlsPlaylistUrl),loading.hide(),streamInfo.url=hlsPlaylistUrl,Promise.resolve()},function(){return console.log("error prefetching hls playlist: "+hlsPlaylistUrl),loading.hide(),Promise.resolve()})}return Promise.resolve()}function setCurrentSrc(elem,options){elem.removeEventListener("error",onError);var val=options.url;console.log("playing url: "+val);var seconds=(options.playerStartPositionTicks||0)/1e7;seconds&&(val+="#t="+seconds),htmlMediaHelper.destroyHlsPlayer(self);for(var tracks=getMediaStreamTextTracks(options.mediaSource),currentTrackIndex=-1,i=0,length=tracks.length;i'+getTracksHtml(tracks,options.mediaSource,options.item.ServerId),elem.addEventListener("loadedmetadata",onLoadedMetadata),self._currentSrc=val,setCurrentTrackElement(currentTrackIndex),htmlMediaHelper.playWithPromise(elem,onError)):htmlMediaHelper.applySrc(elem,val,options).then(function(){return setTracks(elem,tracks,options.mediaSource,options.item.ServerId),self._currentSrc=val,setCurrentTrackElement(currentTrackIndex),htmlMediaHelper.playWithPromise(elem,onError)})}function onEnded(){destroyCustomTrack(this),htmlMediaHelper.onEndedInternal(self,this,onError)}function onTimeUpdate(e){var time=this.currentTime;time&&!self._timeUpdated&&(self._timeUpdated=!0,ensureValidVideo(this)),self._currentTime=time;var currentPlayOptions=self._currentPlayOptions;if(currentPlayOptions){var timeMs=1e3*time;timeMs+=(currentPlayOptions.transcodingOffsetTicks||0)/1e4,updateSubtitleText(timeMs)}events.trigger(self,"timeupdate")}function onVolumeChange(){htmlMediaHelper.saveVolume(this.volume),events.trigger(self,"volumechange")}function onNavigatedToOsd(){videoDialog.classList.remove("videoPlayerContainer-withBackdrop"),videoDialog.classList.remove("videoPlayerContainer-onTop")}function onPlaying(e){self._started||(self._started=!0,this.removeAttribute("controls"),self._currentPlayOptions.title?(self.originalDocumentTitle=document.title,document.title=self._currentPlayOptions.title):self.originalDocumentTitle=null,setCurrentTrackElement(subtitleTrackIndexToSetOnPlaying),htmlMediaHelper.seekOnPlaybackStart(self,e.target,self._currentPlayOptions.playerStartPositionTicks),self._currentPlayOptions.fullscreen?embyRouter.showVideoOsd().then(onNavigatedToOsd):(embyRouter.setTransparency("backdrop"),videoDialog.classList.remove("videoPlayerContainer-withBackdrop"),videoDialog.classList.remove("videoPlayerContainer-onTop")),loading.hide()),events.trigger(self,"playing")}function onPlay(e){events.trigger(self,"unpause")}function ensureValidVideo(elem){if(elem===self._mediaElement)return 0===elem.videoWidth&&0===elem.videoHeight?void htmlMediaHelper.onErrorInternal(self,"mediadecodeerror"):void 0}function onClick(){events.trigger(self,"click")}function onDblClick(){events.trigger(self,"dblclick")}function onPause(){events.trigger(self,"pause")}function onError(){var errorCode=this.error?this.error.code||0:0,errorMessage=this.error?this.error.message||"":"";console.log("Media element error: "+errorCode.toString()+" "+errorMessage);var type;switch(errorCode){case 1:return;case 2:type="network";break;case 3:if(self._hlsPlayer)return void htmlMediaHelper.handleMediaError(self);type="mediadecodeerror";break;case 4:type="medianotsupported";break;default:return}htmlMediaHelper.onErrorInternal(self,type)}function onLoadedMetadata(e){var mediaElem=e.target;if(mediaElem.removeEventListener("loadedmetadata",onLoadedMetadata),!self._hlsPlayer)try{mediaElem.play()}catch(err){console.log("error calling mediaElement.play: "+err)}}function destroyCustomTrack(videoElement){if(self._resizeObserver&&(self._resizeObserver.disconnect(),self._resizeObserver=null),window.removeEventListener("orientationchange",onVideoResize),videoSubtitlesElem){var subtitlesContainer=videoSubtitlesElem.parentNode;subtitlesContainer&&tryRemoveElement(subtitlesContainer),videoSubtitlesElem=null}if(currentTrackEvents=null,videoElement)for(var allTracks=videoElement.textTracks||[],i=0;i
',videoSubtitlesElem=subtitlesContainer.querySelector(".videoSubtitlesInner"),setSubtitleAppearance(subtitlesContainer,videoSubtitlesElem),videoElement.parentNode.appendChild(subtitlesContainer),currentTrackEvents=data.TrackEvents}})}function setSubtitleAppearance(elem,innerElem){require(["userSettings","subtitleAppearanceHelper"],function(userSettings,subtitleAppearanceHelper){subtitleAppearanceHelper.applyStyles({text:innerElem,window:elem},userSettings.getSubtitleAppearanceSettings())})}function getCueCss(appearance,selector){var html=selector+"::cue {";return html+=appearance.text.map(function(s){return s.name+":"+s.value+"!important;"}).join(""),html+="}"}function setCueAppearance(){require(["userSettings","subtitleAppearanceHelper"],function(userSettings,subtitleAppearanceHelper){var elementId=self.id+"-cuestyle",styleElem=document.querySelector("#"+elementId);styleElem||(styleElem=document.createElement("style"),styleElem.id=elementId,styleElem.type="text/css",document.getElementsByTagName("head")[0].appendChild(styleElem)),styleElem.innerHTML=getCueCss(subtitleAppearanceHelper.getStyles(userSettings.getSubtitleAppearanceSettings(),!0),".htmlvideoplayer")})}function renderTracksEvents(videoElement,track,serverId){var format=(track.Codec||"").toLowerCase();if("ssa"===format||"ass"===format)return void renderWithLibjass(videoElement,track,serverId);if(requiresCustomSubtitlesElement())return void renderSubtitlesWithCustomElement(videoElement,track,serverId);for(var trackElement=null,expectedId="manualTrack"+track.Index,allTracks=videoElement.textTracks,i=0;i=ticks){selectedTrackEvent=currentTrackEvent;break}}selectedTrackEvent&&selectedTrackEvent.Text?(subtitleTextElement.innerHTML=normalizeTrackEventText(selectedTrackEvent.Text),subtitleTextElement.classList.remove("hide")):subtitleTextElement.classList.add("hide")}}}function setCurrentTrackElement(streamIndex){console.log("Setting new text track index to: "+streamIndex);var mediaStreamTextTracks=getMediaStreamTextTracks(self._currentPlayOptions.mediaSource),track=streamIndex===-1?null:mediaStreamTextTracks.filter(function(t){return t.Index===streamIndex})[0];enableNativeTrackSupport(self._currentSrc,track)?(setTrackForCustomDisplay(self._mediaElement,null),streamIndex!==-1&&setCueAppearance()):(setTrackForCustomDisplay(self._mediaElement,track),streamIndex=-1,track=null);for(var expectedId="textTrack"+streamIndex,trackIndex=streamIndex!==-1&&track?mediaStreamTextTracks.indexOf(track):-1,modes=["disabled","showing","hidden"],allTracks=self._mediaElement.textTracks,i=0;i':'",dlg.innerHTML=html;var videoElement=dlg.querySelector("video");videoElement.volume=htmlMediaHelper.getSavedVolume(),videoElement.addEventListener("timeupdate",onTimeUpdate),videoElement.addEventListener("ended",onEnded),videoElement.addEventListener("volumechange",onVolumeChange),videoElement.addEventListener("pause",onPause),videoElement.addEventListener("playing",onPlaying),videoElement.addEventListener("play",onPlay),videoElement.addEventListener("click",onClick),videoElement.addEventListener("dblclick",onDblClick),document.body.insertBefore(dlg,document.body.firstChild),videoDialog=dlg,self._mediaElement=videoElement,options.fullscreen&&browser.supportsCssAnimation()&&!browser.slow?zoomIn(dlg).then(function(){resolve(videoElement)}):resolve(videoElement)})})}browser.edgeUwp?this.name="Windows Video Player":this.name="Html Video Player",this.type="mediaplayer",this.id="htmlvideoplayer",this.priority=1;var videoDialog,subtitleTrackIndexToSetOnPlaying,currentClock,currentAssRenderer,videoSubtitlesElem,currentTrackEvents,lastCustomTrackMs=0,customTrackIndex=-1,self=this;self.currentSrc=function(){return self._currentSrc},self.play=function(options){return browser.msie&&"Transcode"===options.playMethod&&!window.MediaSource?(alert("Playback of this content is not supported in Internet Explorer. For a better experience, try a modern browser such as Microsoft Edge, Google Chrome, Firefox or Opera."),Promise.reject()):(self._started=!1,self._timeUpdated=!1,self._currentTime=null,createMediaElement(options).then(function(elem){return updateVideoUrl(options,options.mediaSource).then(function(){return setCurrentSrc(elem,options)})}))},self.setSubtitleStreamIndex=function(index){setCurrentTrackElement(index)},self.setAudioStreamIndex=function(index){var i,length,audioStreams=getMediaStreamAudioTracks(self._currentPlayOptions.mediaSource),audioTrackOffset=-1;for(i=0,length=audioStreams.length;i=100?"none":rawValue/100;elem.style["-webkit-filter"]="brightness("+cssValue+");",elem.style.filter="brightness("+cssValue+")",elem.brightnessValue=val,events.trigger(this,"brightnesschange")}},HtmlVideoPlayer.prototype.getBrightness=function(){var elem=this._mediaElement;if(elem){var val=elem.brightnessValue;return null==val?100:val}},HtmlVideoPlayer.prototype.seekable=function(){var mediaElement=this._mediaElement;if(mediaElement){var seekable=mediaElement.seekable;if(seekable&&seekable.length){var start=seekable.start(0),end=seekable.end(0);return htmlMediaHelper.isValidDuration(start)||(start=0),htmlMediaHelper.isValidDuration(end)||(end=0),end-start>0}return!1}},HtmlVideoPlayer.prototype.pause=function(){var mediaElement=this._mediaElement;mediaElement&&mediaElement.pause()},HtmlVideoPlayer.prototype.resume=function(){var mediaElement=this._mediaElement;mediaElement&&mediaElement.play()},HtmlVideoPlayer.prototype.unpause=function(){var mediaElement=this._mediaElement;mediaElement&&mediaElement.play()},HtmlVideoPlayer.prototype.paused=function(){var mediaElement=this._mediaElement;return!!mediaElement&&mediaElement.paused},HtmlVideoPlayer.prototype.setVolume=function(val){var mediaElement=this._mediaElement;mediaElement&&(mediaElement.volume=val/100)},HtmlVideoPlayer.prototype.getVolume=function(){var mediaElement=this._mediaElement;if(mediaElement)return 100*mediaElement.volume},HtmlVideoPlayer.prototype.volumeUp=function(){this.setVolume(Math.min(this.getVolume()+2,100))},HtmlVideoPlayer.prototype.volumeDown=function(){this.setVolume(Math.max(this.getVolume()-2,0))},HtmlVideoPlayer.prototype.setMute=function(mute){var mediaElement=this._mediaElement;mediaElement&&(mediaElement.muted=mute)},HtmlVideoPlayer.prototype.isMuted=function(){var mediaElement=this._mediaElement;return!!mediaElement&&mediaElement.muted},HtmlVideoPlayer.prototype.setAspectRatio=function(val){},HtmlVideoPlayer.prototype.getAspectRatio=function(){return this._currentAspectRatio},HtmlVideoPlayer.prototype.getSupportedAspectRatios=function(){return[]},HtmlVideoPlayer.prototype.togglePictureInPicture=function(){return this.setPictureInPictureEnabled(!this.isPictureInPictureEnabled())},HtmlVideoPlayer.prototype.getBufferedRanges=function(){var mediaElement=this._mediaElement;return mediaElement?htmlMediaHelper.getBufferedRanges(this,mediaElement):[]},HtmlVideoPlayer.prototype.getStats=function(){var mediaElement=this._mediaElement,playOptions=this._currentPlayOptions||[],categories=[];if(!mediaElement)return Promise.resolve({categories:categories});var mediaCategory={stats:[],type:"media"};if(categories.push(mediaCategory),playOptions.url){var link=document.createElement("a");link.setAttribute("href",playOptions.url);var protocol=(link.protocol||"").replace(":","");protocol&&mediaCategory.stats.push({label:"Protocol:",value:protocol}),link=null}this._hlsPlayer?mediaCategory.stats.push({label:"Stream type:",value:"HLS"}):mediaCategory.stats.push({label:"Stream type:",value:"Video"});var videoCategory={stats:[],type:"video"};categories.push(videoCategory);var rect=mediaElement.getBoundingClientRect?mediaElement.getBoundingClientRect():{},height=rect.height,width=rect.width;if(width&&height&&videoCategory.stats.push({label:"Player dimensions:",value:width+"x"+height}),height=mediaElement.videoHeight,width=mediaElement.videoWidth,width&&height&&videoCategory.stats.push({label:"Video resolution:",value:width+"x"+height}),mediaElement.getVideoPlaybackQuality){var playbackQuality=mediaElement.getVideoPlaybackQuality(),droppedVideoFrames=playbackQuality.droppedVideoFrames||0;videoCategory.stats.push({label:"Dropped frames:",value:droppedVideoFrames});var corruptedVideoFrames=playbackQuality.corruptedVideoFrames||0;videoCategory.stats.push({label:"Corrupted frames:",value:corruptedVideoFrames})}var audioCategory={stats:[],type:"audio"};categories.push(audioCategory);var sinkId=mediaElement.sinkId;return sinkId&&audioCategory.stats.push({label:"Sink Id:",value:sinkId}),Promise.resolve({categories:categories})},HtmlVideoPlayer}); \ No newline at end of file +define(["browser","require","events","apphost","loading","dom","playbackManager","appRouter","appSettings","connectionManager","./htmlmediahelper"],function(browser,require,events,appHost,loading,dom,playbackManager,appRouter,appSettings,connectionManager,htmlMediaHelper){"use strict";function tryRemoveElement(elem){var parentNode=elem.parentNode;if(parentNode)try{parentNode.removeChild(elem)}catch(err){console.log("Error removing dialog element: "+err)}}function enableNativeTrackSupport(currentSrc,track){if(browser.firefox&&(currentSrc||"").toLowerCase().indexOf(".m3u8")!==-1)return!1;if(browser.ps4)return!1;if(browser.edge)return!1;if(track){var format=(track.Codec||"").toLowerCase();if("ssa"===format||"ass"===format)return!1}return!0}function requireHlsPlayer(callback){require(["hlsjs"],function(hls){window.Hls=hls,callback()})}function getMediaStreamAudioTracks(mediaSource){return mediaSource.MediaStreams.filter(function(s){return"Audio"===s.Type})}function getMediaStreamTextTracks(mediaSource){return mediaSource.MediaStreams.filter(function(s){return"Subtitle"===s.Type&&"External"===s.DeliveryMethod})}function zoomIn(elem){return new Promise(function(resolve,reject){var duration=240;elem.style.animation="htmlvideoplayer-zoomin "+duration+"ms ease-in normal",dom.addEventListener(elem,dom.whichAnimationEvent(),resolve,{once:!0})})}function normalizeTrackEventText(text){return text.replace(/\\N/gi,"\n")}function setTracks(elem,tracks,mediaSource,serverId){elem.innerHTML=getTracksHtml(tracks,mediaSource,serverId)}function getTextTrackUrl(track,serverId){return playbackManager.getSubtitleUrl(track,serverId)}function getTracksHtml(tracks,mediaSource,serverId){return tracks.map(function(t){var defaultAttribute=mediaSource.DefaultSubtitleStreamIndex===t.Index?" default":"",language=t.Language||"und",label=t.Language||"und";return'"}).join("")}function getDefaultProfile(){return new Promise(function(resolve,reject){require(["browserdeviceprofile"],function(profileBuilder){resolve(profileBuilder({}))})})}function HtmlVideoPlayer(){function updateVideoUrl(streamInfo){var isHls=streamInfo.url.toLowerCase().indexOf(".m3u8")!==-1,mediaSource=streamInfo.mediaSource,item=streamInfo.item;if(mediaSource&&item&&!mediaSource.RunTimeTicks&&isHls&&"Transcode"===streamInfo.playMethod&&(browser.iOS||browser.osx)){var hlsPlaylistUrl=streamInfo.url.replace("master.m3u8","live.m3u8");return loading.show(),console.log("prefetching hls playlist: "+hlsPlaylistUrl),connectionManager.getApiClient(item.ServerId).ajax({type:"GET",url:hlsPlaylistUrl}).then(function(){return console.log("completed prefetching hls playlist: "+hlsPlaylistUrl),loading.hide(),streamInfo.url=hlsPlaylistUrl,Promise.resolve()},function(){return console.log("error prefetching hls playlist: "+hlsPlaylistUrl),loading.hide(),Promise.resolve()})}return Promise.resolve()}function setCurrentSrc(elem,options){elem.removeEventListener("error",onError);var val=options.url;console.log("playing url: "+val);var seconds=(options.playerStartPositionTicks||0)/1e7;seconds&&(val+="#t="+seconds),htmlMediaHelper.destroyHlsPlayer(self);for(var tracks=getMediaStreamTextTracks(options.mediaSource),currentTrackIndex=-1,i=0,length=tracks.length;i'+getTracksHtml(tracks,options.mediaSource,options.item.ServerId),elem.addEventListener("loadedmetadata",onLoadedMetadata),self._currentSrc=val,setCurrentTrackElement(currentTrackIndex),htmlMediaHelper.playWithPromise(elem,onError)):htmlMediaHelper.applySrc(elem,val,options).then(function(){return setTracks(elem,tracks,options.mediaSource,options.item.ServerId),self._currentSrc=val,setCurrentTrackElement(currentTrackIndex),htmlMediaHelper.playWithPromise(elem,onError)})}function onEnded(){destroyCustomTrack(this),htmlMediaHelper.onEndedInternal(self,this,onError)}function onTimeUpdate(e){var time=this.currentTime;time&&!self._timeUpdated&&(self._timeUpdated=!0,ensureValidVideo(this)),self._currentTime=time;var currentPlayOptions=self._currentPlayOptions;if(currentPlayOptions){var timeMs=1e3*time;timeMs+=(currentPlayOptions.transcodingOffsetTicks||0)/1e4,updateSubtitleText(timeMs)}events.trigger(self,"timeupdate")}function onVolumeChange(){htmlMediaHelper.saveVolume(this.volume),events.trigger(self,"volumechange")}function onNavigatedToOsd(){videoDialog.classList.remove("videoPlayerContainer-withBackdrop"),videoDialog.classList.remove("videoPlayerContainer-onTop")}function onPlaying(e){self._started||(self._started=!0,this.removeAttribute("controls"),self._currentPlayOptions.title?(self.originalDocumentTitle=document.title,document.title=self._currentPlayOptions.title):self.originalDocumentTitle=null,setCurrentTrackElement(subtitleTrackIndexToSetOnPlaying),htmlMediaHelper.seekOnPlaybackStart(self,e.target,self._currentPlayOptions.playerStartPositionTicks),self._currentPlayOptions.fullscreen?appRouter.showVideoOsd().then(onNavigatedToOsd):(appRouter.setTransparency("backdrop"),videoDialog.classList.remove("videoPlayerContainer-withBackdrop"),videoDialog.classList.remove("videoPlayerContainer-onTop")),loading.hide()),events.trigger(self,"playing")}function onPlay(e){events.trigger(self,"unpause")}function ensureValidVideo(elem){if(elem===self._mediaElement)return 0===elem.videoWidth&&0===elem.videoHeight?void htmlMediaHelper.onErrorInternal(self,"mediadecodeerror"):void 0}function onClick(){events.trigger(self,"click")}function onDblClick(){events.trigger(self,"dblclick")}function onPause(){events.trigger(self,"pause")}function onError(){var errorCode=this.error?this.error.code||0:0,errorMessage=this.error?this.error.message||"":"";console.log("Media element error: "+errorCode.toString()+" "+errorMessage);var type;switch(errorCode){case 1:return;case 2:type="network";break;case 3:if(self._hlsPlayer)return void htmlMediaHelper.handleMediaError(self);type="mediadecodeerror";break;case 4:type="medianotsupported";break;default:return}htmlMediaHelper.onErrorInternal(self,type)}function onLoadedMetadata(e){var mediaElem=e.target;if(mediaElem.removeEventListener("loadedmetadata",onLoadedMetadata),!self._hlsPlayer)try{mediaElem.play()}catch(err){console.log("error calling mediaElement.play: "+err)}}function destroyCustomTrack(videoElement){if(self._resizeObserver&&(self._resizeObserver.disconnect(),self._resizeObserver=null),window.removeEventListener("orientationchange",onVideoResize),videoSubtitlesElem){var subtitlesContainer=videoSubtitlesElem.parentNode;subtitlesContainer&&tryRemoveElement(subtitlesContainer),videoSubtitlesElem=null}if(currentTrackEvents=null,videoElement)for(var allTracks=videoElement.textTracks||[],i=0;i
',videoSubtitlesElem=subtitlesContainer.querySelector(".videoSubtitlesInner"),setSubtitleAppearance(subtitlesContainer,videoSubtitlesElem),videoElement.parentNode.appendChild(subtitlesContainer),currentTrackEvents=data.TrackEvents}})}function setSubtitleAppearance(elem,innerElem){require(["userSettings","subtitleAppearanceHelper"],function(userSettings,subtitleAppearanceHelper){subtitleAppearanceHelper.applyStyles({text:innerElem,window:elem},userSettings.getSubtitleAppearanceSettings())})}function getCueCss(appearance,selector){var html=selector+"::cue {";return html+=appearance.text.map(function(s){return s.name+":"+s.value+"!important;"}).join(""),html+="}"}function setCueAppearance(){require(["userSettings","subtitleAppearanceHelper"],function(userSettings,subtitleAppearanceHelper){var elementId=self.id+"-cuestyle",styleElem=document.querySelector("#"+elementId);styleElem||(styleElem=document.createElement("style"),styleElem.id=elementId,styleElem.type="text/css",document.getElementsByTagName("head")[0].appendChild(styleElem)),styleElem.innerHTML=getCueCss(subtitleAppearanceHelper.getStyles(userSettings.getSubtitleAppearanceSettings(),!0),".htmlvideoplayer")})}function renderTracksEvents(videoElement,track,serverId){var format=(track.Codec||"").toLowerCase();if("ssa"===format||"ass"===format)return void renderWithLibjass(videoElement,track,serverId);if(requiresCustomSubtitlesElement())return void renderSubtitlesWithCustomElement(videoElement,track,serverId);for(var trackElement=null,expectedId="manualTrack"+track.Index,allTracks=videoElement.textTracks,i=0;i=ticks){selectedTrackEvent=currentTrackEvent;break}}selectedTrackEvent&&selectedTrackEvent.Text?(subtitleTextElement.innerHTML=normalizeTrackEventText(selectedTrackEvent.Text),subtitleTextElement.classList.remove("hide")):subtitleTextElement.classList.add("hide")}}}function setCurrentTrackElement(streamIndex){console.log("Setting new text track index to: "+streamIndex);var mediaStreamTextTracks=getMediaStreamTextTracks(self._currentPlayOptions.mediaSource),track=streamIndex===-1?null:mediaStreamTextTracks.filter(function(t){return t.Index===streamIndex})[0];enableNativeTrackSupport(self._currentSrc,track)?(setTrackForCustomDisplay(self._mediaElement,null),streamIndex!==-1&&setCueAppearance()):(setTrackForCustomDisplay(self._mediaElement,track),streamIndex=-1,track=null);for(var expectedId="textTrack"+streamIndex,trackIndex=streamIndex!==-1&&track?mediaStreamTextTracks.indexOf(track):-1,modes=["disabled","showing","hidden"],allTracks=self._mediaElement.textTracks,i=0;i':'",dlg.innerHTML=html;var videoElement=dlg.querySelector("video");videoElement.volume=htmlMediaHelper.getSavedVolume(),videoElement.addEventListener("timeupdate",onTimeUpdate),videoElement.addEventListener("ended",onEnded),videoElement.addEventListener("volumechange",onVolumeChange),videoElement.addEventListener("pause",onPause),videoElement.addEventListener("playing",onPlaying),videoElement.addEventListener("play",onPlay),videoElement.addEventListener("click",onClick),videoElement.addEventListener("dblclick",onDblClick),document.body.insertBefore(dlg,document.body.firstChild),videoDialog=dlg,self._mediaElement=videoElement,options.fullscreen&&browser.supportsCssAnimation()&&!browser.slow?zoomIn(dlg).then(function(){resolve(videoElement)}):resolve(videoElement)})})}browser.edgeUwp?this.name="Windows Video Player":this.name="Html Video Player",this.type="mediaplayer",this.id="htmlvideoplayer",this.priority=1;var videoDialog,subtitleTrackIndexToSetOnPlaying,currentClock,currentAssRenderer,videoSubtitlesElem,currentTrackEvents,lastCustomTrackMs=0,customTrackIndex=-1,self=this;self.currentSrc=function(){return self._currentSrc},self.play=function(options){return browser.msie&&"Transcode"===options.playMethod&&!window.MediaSource?(alert("Playback of this content is not supported in Internet Explorer. For a better experience, try a modern browser such as Microsoft Edge, Google Chrome, Firefox or Opera."),Promise.reject()):(self._started=!1,self._timeUpdated=!1,self._currentTime=null,createMediaElement(options).then(function(elem){return updateVideoUrl(options,options.mediaSource).then(function(){return setCurrentSrc(elem,options)})}))},self.setSubtitleStreamIndex=function(index){setCurrentTrackElement(index)},self.setAudioStreamIndex=function(index){var i,length,audioStreams=getMediaStreamAudioTracks(self._currentPlayOptions.mediaSource),audioTrackOffset=-1;for(i=0,length=audioStreams.length;i=100?"none":rawValue/100;elem.style["-webkit-filter"]="brightness("+cssValue+");",elem.style.filter="brightness("+cssValue+")",elem.brightnessValue=val,events.trigger(this,"brightnesschange")}},HtmlVideoPlayer.prototype.getBrightness=function(){var elem=this._mediaElement;if(elem){var val=elem.brightnessValue;return null==val?100:val}},HtmlVideoPlayer.prototype.seekable=function(){var mediaElement=this._mediaElement;if(mediaElement){var seekable=mediaElement.seekable;if(seekable&&seekable.length){var start=seekable.start(0),end=seekable.end(0);return htmlMediaHelper.isValidDuration(start)||(start=0),htmlMediaHelper.isValidDuration(end)||(end=0),end-start>0}return!1}},HtmlVideoPlayer.prototype.pause=function(){var mediaElement=this._mediaElement;mediaElement&&mediaElement.pause()},HtmlVideoPlayer.prototype.resume=function(){var mediaElement=this._mediaElement;mediaElement&&mediaElement.play()},HtmlVideoPlayer.prototype.unpause=function(){var mediaElement=this._mediaElement;mediaElement&&mediaElement.play()},HtmlVideoPlayer.prototype.paused=function(){var mediaElement=this._mediaElement;return!!mediaElement&&mediaElement.paused},HtmlVideoPlayer.prototype.setVolume=function(val){var mediaElement=this._mediaElement;mediaElement&&(mediaElement.volume=val/100)},HtmlVideoPlayer.prototype.getVolume=function(){var mediaElement=this._mediaElement;if(mediaElement)return 100*mediaElement.volume},HtmlVideoPlayer.prototype.volumeUp=function(){this.setVolume(Math.min(this.getVolume()+2,100))},HtmlVideoPlayer.prototype.volumeDown=function(){this.setVolume(Math.max(this.getVolume()-2,0))},HtmlVideoPlayer.prototype.setMute=function(mute){var mediaElement=this._mediaElement;mediaElement&&(mediaElement.muted=mute)},HtmlVideoPlayer.prototype.isMuted=function(){var mediaElement=this._mediaElement;return!!mediaElement&&mediaElement.muted},HtmlVideoPlayer.prototype.setAspectRatio=function(val){},HtmlVideoPlayer.prototype.getAspectRatio=function(){return this._currentAspectRatio},HtmlVideoPlayer.prototype.getSupportedAspectRatios=function(){return[]},HtmlVideoPlayer.prototype.togglePictureInPicture=function(){return this.setPictureInPictureEnabled(!this.isPictureInPictureEnabled())},HtmlVideoPlayer.prototype.getBufferedRanges=function(){var mediaElement=this._mediaElement;return mediaElement?htmlMediaHelper.getBufferedRanges(this,mediaElement):[]},HtmlVideoPlayer.prototype.getStats=function(){var mediaElement=this._mediaElement,playOptions=this._currentPlayOptions||[],categories=[];if(!mediaElement)return Promise.resolve({categories:categories});var mediaCategory={stats:[],type:"media"};if(categories.push(mediaCategory),playOptions.url){var link=document.createElement("a");link.setAttribute("href",playOptions.url);var protocol=(link.protocol||"").replace(":","");protocol&&mediaCategory.stats.push({label:"Protocol:",value:protocol}),link=null}this._hlsPlayer?mediaCategory.stats.push({label:"Stream type:",value:"HLS"}):mediaCategory.stats.push({label:"Stream type:",value:"Video"});var videoCategory={stats:[],type:"video"};categories.push(videoCategory);var rect=mediaElement.getBoundingClientRect?mediaElement.getBoundingClientRect():{},height=rect.height,width=rect.width;if(width&&height&&videoCategory.stats.push({label:"Player dimensions:",value:width+"x"+height}),height=mediaElement.videoHeight,width=mediaElement.videoWidth,width&&height&&videoCategory.stats.push({label:"Video resolution:",value:width+"x"+height}),mediaElement.getVideoPlaybackQuality){var playbackQuality=mediaElement.getVideoPlaybackQuality(),droppedVideoFrames=playbackQuality.droppedVideoFrames||0;videoCategory.stats.push({label:"Dropped frames:",value:droppedVideoFrames});var corruptedVideoFrames=playbackQuality.corruptedVideoFrames||0;videoCategory.stats.push({label:"Corrupted frames:",value:corruptedVideoFrames})}var audioCategory={stats:[],type:"audio"};categories.push(audioCategory);var sinkId=mediaElement.sinkId;return sinkId&&audioCategory.stats.push({label:"Sink Id:",value:sinkId}),Promise.resolve({categories:categories})},HtmlVideoPlayer}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/input/api.js b/dashboard-ui/bower_components/emby-webcomponents/input/api.js index 280f30ee14..ba897ddb60 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/input/api.js +++ b/dashboard-ui/bower_components/emby-webcomponents/input/api.js @@ -1 +1 @@ -define(["connectionManager","playbackManager","events","inputManager","focusManager","embyRouter"],function(connectionManager,playbackManager,events,inputManager,focusManager,embyRouter){"use strict";function notifyApp(){inputManager.notify()}function displayMessage(cmd){var args=cmd.Arguments;args.TimeoutMs?require(["toast"],function(toast){toast({title:args.Header,text:args.Text})}):require(["alert"],function(alert){alert({title:args.Header,text:args.Text})})}function displayContent(cmd,apiClient){apiClient.getItem(apiClient.getCurrentUserId(),cmd.Arguments.ItemId).then(function(item){embyRouter.showItem(item)})}function processGeneralCommand(cmd,apiClient){switch(cmd.Name){case"Select":return void inputManager.trigger("select");case"Back":return void inputManager.trigger("back");case"MoveUp":return void inputManager.trigger("up");case"MoveDown":return void inputManager.trigger("down");case"MoveLeft":return void inputManager.trigger("left");case"MoveRight":return void inputManager.trigger("right");case"PageUp":return void inputManager.trigger("pageup");case"PageDown":return void inputManager.trigger("pagedown");case"SetRepeatMode":playbackManager.setRepeatMode(cmd.Arguments.RepeatMode);break;case"VolumeUp":return void inputManager.trigger("volumeup");case"VolumeDown":return void inputManager.trigger("volumedown");case"ChannelUp":return void inputManager.trigger("channelup");case"ChannelDown":return void inputManager.trigger("channeldown");case"Mute":return void inputManager.trigger("mute");case"Unmute":return void inputManager.trigger("unmute");case"ToggleMute":return void inputManager.trigger("togglemute");case"SetVolume":notifyApp(),playbackManager.setVolume(cmd.Arguments.Volume);break;case"SetAudioStreamIndex":notifyApp(),playbackManager.setAudioStreamIndex(parseInt(cmd.Arguments.Index));break;case"SetSubtitleStreamIndex":notifyApp(),playbackManager.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index));break;case"ToggleFullscreen":return void inputManager.trigger("togglefullscreen");case"GoHome":return void inputManager.trigger("home");case"GoToSettings":return void inputManager.trigger("settings");case"DisplayContent":displayContent(cmd,apiClient);break;case"GoToSearch":return void inputManager.trigger("search");case"DisplayMessage":displayMessage(cmd);break;case"ToggleOsd":break;case"ToggleContextMenu":break;case"TakeScreenShot":break;case"SendKey":break;case"SendString":focusManager.sendText(cmd.Arguments.String);break;default:console.log("processGeneralCommand does not recognize: "+cmd.Name)}notifyApp()}function onWebSocketMessageReceived(e,msg){var apiClient=this;if("Play"===msg.MessageType){notifyApp();var serverId=apiClient.serverInfo().Id;"PlayNext"===msg.Data.PlayCommand?playbackManager.queueNext({ids:msg.Data.ItemIds,serverId:serverId}):"PlayLast"===msg.Data.PlayCommand?playbackManager.queue({ids:msg.Data.ItemIds,serverId:serverId}):playbackManager.play({ids:msg.Data.ItemIds,startPositionTicks:msg.Data.StartPositionTicks,serverId:serverId})}else if("Playstate"===msg.MessageType)"Stop"===msg.Data.Command?inputManager.trigger("stop"):"Pause"===msg.Data.Command?inputManager.trigger("pause"):"Unpause"===msg.Data.Command?inputManager.trigger("play"):"Seek"===msg.Data.Command?playbackManager.seek(msg.Data.SeekPositionTicks):"NextTrack"===msg.Data.Command?inputManager.trigger("next"):"PreviousTrack"===msg.Data.Command?inputManager.trigger("previous"):notifyApp();else if("GeneralCommand"===msg.MessageType){var cmd=msg.Data;processGeneralCommand(cmd,apiClient)}}function bindEvents(apiClient){events.off(apiClient,"websocketmessage",onWebSocketMessageReceived),events.on(apiClient,"websocketmessage",onWebSocketMessageReceived)}connectionManager.getApiClients().forEach(bindEvents),events.on(connectionManager,"apiclientcreated",function(e,newApiClient){bindEvents(newApiClient)})}); \ No newline at end of file +define(["connectionManager","playbackManager","events","inputManager","focusManager","appRouter"],function(connectionManager,playbackManager,events,inputManager,focusManager,appRouter){"use strict";function notifyApp(){inputManager.notify()}function displayMessage(cmd){var args=cmd.Arguments;args.TimeoutMs?require(["toast"],function(toast){toast({title:args.Header,text:args.Text})}):require(["alert"],function(alert){alert({title:args.Header,text:args.Text})})}function displayContent(cmd,apiClient){appRouter.showItem(cmd.Arguments.ItemId,apiClient.serverId())}function processGeneralCommand(cmd,apiClient){switch(cmd.Name){case"Select":return void inputManager.trigger("select");case"Back":return void inputManager.trigger("back");case"MoveUp":return void inputManager.trigger("up");case"MoveDown":return void inputManager.trigger("down");case"MoveLeft":return void inputManager.trigger("left");case"MoveRight":return void inputManager.trigger("right");case"PageUp":return void inputManager.trigger("pageup");case"PageDown":return void inputManager.trigger("pagedown");case"SetRepeatMode":playbackManager.setRepeatMode(cmd.Arguments.RepeatMode);break;case"VolumeUp":return void inputManager.trigger("volumeup");case"VolumeDown":return void inputManager.trigger("volumedown");case"ChannelUp":return void inputManager.trigger("channelup");case"ChannelDown":return void inputManager.trigger("channeldown");case"Mute":return void inputManager.trigger("mute");case"Unmute":return void inputManager.trigger("unmute");case"ToggleMute":return void inputManager.trigger("togglemute");case"SetVolume":notifyApp(),playbackManager.setVolume(cmd.Arguments.Volume);break;case"SetAudioStreamIndex":notifyApp(),playbackManager.setAudioStreamIndex(parseInt(cmd.Arguments.Index));break;case"SetSubtitleStreamIndex":notifyApp(),playbackManager.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index));break;case"ToggleFullscreen":return void inputManager.trigger("togglefullscreen");case"GoHome":return void inputManager.trigger("home");case"GoToSettings":return void inputManager.trigger("settings");case"DisplayContent":displayContent(cmd,apiClient);break;case"GoToSearch":return void inputManager.trigger("search");case"DisplayMessage":displayMessage(cmd);break;case"ToggleOsd":break;case"ToggleContextMenu":break;case"TakeScreenShot":break;case"SendKey":break;case"SendString":focusManager.sendText(cmd.Arguments.String);break;default:console.log("processGeneralCommand does not recognize: "+cmd.Name)}notifyApp()}function onWebSocketMessageReceived(e,msg){var apiClient=this;if("Play"===msg.MessageType){notifyApp();var serverId=apiClient.serverInfo().Id;"PlayNext"===msg.Data.PlayCommand?playbackManager.queueNext({ids:msg.Data.ItemIds,serverId:serverId}):"PlayLast"===msg.Data.PlayCommand?playbackManager.queue({ids:msg.Data.ItemIds,serverId:serverId}):playbackManager.play({ids:msg.Data.ItemIds,startPositionTicks:msg.Data.StartPositionTicks,serverId:serverId})}else if("Playstate"===msg.MessageType)"Stop"===msg.Data.Command?inputManager.trigger("stop"):"Pause"===msg.Data.Command?inputManager.trigger("pause"):"Unpause"===msg.Data.Command?inputManager.trigger("play"):"Seek"===msg.Data.Command?playbackManager.seek(msg.Data.SeekPositionTicks):"NextTrack"===msg.Data.Command?inputManager.trigger("next"):"PreviousTrack"===msg.Data.Command?inputManager.trigger("previous"):notifyApp();else if("GeneralCommand"===msg.MessageType){var cmd=msg.Data;processGeneralCommand(cmd,apiClient)}}function bindEvents(apiClient){events.off(apiClient,"websocketmessage",onWebSocketMessageReceived),events.on(apiClient,"websocketmessage",onWebSocketMessageReceived)}connectionManager.getApiClients().forEach(bindEvents),events.on(connectionManager,"apiclientcreated",function(e,newApiClient){bindEvents(newApiClient)})}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/inputmanager.js b/dashboard-ui/bower_components/emby-webcomponents/inputmanager.js index 9c2e3deee4..b4f5e3b0ae 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/inputmanager.js +++ b/dashboard-ui/bower_components/emby-webcomponents/inputmanager.js @@ -1 +1 @@ -define(["playbackManager","focusManager","embyRouter","dom"],function(playbackManager,focusManager,embyRouter,dom){"use strict";function notify(){lastInputTime=(new Date).getTime(),handleCommand("unknown")}function notifyMouseMove(){lastInputTime=(new Date).getTime()}function idleTime(){return(new Date).getTime()-lastInputTime}function select(sourceElement){sourceElement.click()}function on(scope,fn){eventListenerCount++,dom.addEventListener(scope,"command",fn,{})}function off(scope,fn){eventListenerCount&&eventListenerCount--,dom.removeEventListener(scope,"command",fn,{})}function checkCommandTime(command){var last=commandTimes[command]||0,now=(new Date).getTime();return!(now-last<1e3)&&(commandTimes[command]=now,!0)}function handleCommand(name,options){lastInputTime=(new Date).getTime();var sourceElement=options?options.sourceElement:null;if(sourceElement&&(sourceElement=focusManager.focusableParent(sourceElement)),sourceElement=sourceElement||document.activeElement||window,eventListenerCount){var customEvent=new CustomEvent("command",{detail:{command:name},bubbles:!0,cancelable:!0}),eventResult=sourceElement.dispatchEvent(customEvent);if(!eventResult)return}switch(name){case"up":focusManager.moveUp(sourceElement);break;case"down":focusManager.moveDown(sourceElement);break;case"left":focusManager.moveLeft(sourceElement);break;case"right":focusManager.moveRight(sourceElement);break;case"home":embyRouter.goHome();break;case"settings":embyRouter.showSettings();break;case"back":embyRouter.back();break;case"forward":break;case"select":select(sourceElement);break;case"pageup":break;case"pagedown":break;case"end":break;case"menu":case"info":break;case"next":playbackManager.nextChapter();break;case"previous":playbackManager.previousChapter();break;case"guide":embyRouter.showGuide();break;case"recordedtv":embyRouter.showRecordedTV();break;case"record":break;case"livetv":embyRouter.showLiveTV();break;case"mute":playbackManager.setMute(!0);break;case"unmute":playbackManager.setMute(!1);break;case"togglemute":playbackManager.toggleMute();break;case"channelup":playbackManager.nextTrack();break;case"channeldown":playbackManager.previousTrack();break;case"volumedown":playbackManager.volumeDown();break;case"volumeup":playbackManager.volumeUp();break;case"play":playbackManager.unpause();break;case"pause":playbackManager.pause();break;case"playpause":playbackManager.playPause();break;case"stop":checkCommandTime("stop")&&playbackManager.stop();break;case"changezoom":playbackManager.toggleAspectRatio();break;case"changeaudiotrack":playbackManager.changeAudioStream();break;case"changesubtitletrack":playbackManager.changeSubtitleStream();break;case"search":embyRouter.showSearch();break;case"favorites":embyRouter.showFavorites();break;case"fastforward":playbackManager.fastForward();break;case"rewind":playbackManager.rewind();break;case"togglefullscreen":playbackManager.toggleFullscreen();break;case"disabledisplaymirror":playbackManager.enableDisplayMirroring(!1);break;case"enabledisplaymirror":playbackManager.enableDisplayMirroring(!0);break;case"toggledisplaymirror":playbackManager.toggleDisplayMirroring();break;case"togglestats":break;case"movies":embyRouter.goHome();break;case"music":embyRouter.goHome();break;case"tv":embyRouter.goHome();break;case"nowplaying":embyRouter.showNowPlaying();break;case"save":break;case"screensaver":break;case"refresh":break;case"changebrightness":break;case"red":break;case"green":break;case"yellow":break;case"blue":break;case"grey":break;case"brown":}}var lastInputTime=(new Date).getTime(),eventListenerCount=0,commandTimes={};return dom.addEventListener(document,"click",notify,{passive:!0}),{trigger:handleCommand,handle:handleCommand,notify:notify,notifyMouseMove:notifyMouseMove,idleTime:idleTime,on:on,off:off}}); \ No newline at end of file +define(["playbackManager","focusManager","appRouter","dom"],function(playbackManager,focusManager,appRouter,dom){"use strict";function notify(){lastInputTime=(new Date).getTime(),handleCommand("unknown")}function notifyMouseMove(){lastInputTime=(new Date).getTime()}function idleTime(){return(new Date).getTime()-lastInputTime}function select(sourceElement){sourceElement.click()}function on(scope,fn){eventListenerCount++,dom.addEventListener(scope,"command",fn,{})}function off(scope,fn){eventListenerCount&&eventListenerCount--,dom.removeEventListener(scope,"command",fn,{})}function checkCommandTime(command){var last=commandTimes[command]||0,now=(new Date).getTime();return!(now-last<1e3)&&(commandTimes[command]=now,!0)}function handleCommand(name,options){lastInputTime=(new Date).getTime();var sourceElement=options?options.sourceElement:null;if(sourceElement&&(sourceElement=focusManager.focusableParent(sourceElement)),sourceElement=sourceElement||document.activeElement||window,eventListenerCount){var customEvent=new CustomEvent("command",{detail:{command:name},bubbles:!0,cancelable:!0}),eventResult=sourceElement.dispatchEvent(customEvent);if(!eventResult)return}switch(name){case"up":focusManager.moveUp(sourceElement);break;case"down":focusManager.moveDown(sourceElement);break;case"left":focusManager.moveLeft(sourceElement);break;case"right":focusManager.moveRight(sourceElement);break;case"home":appRouter.goHome();break;case"settings":appRouter.showSettings();break;case"back":appRouter.back();break;case"forward":break;case"select":select(sourceElement);break;case"pageup":break;case"pagedown":break;case"end":break;case"menu":case"info":break;case"next":playbackManager.nextChapter();break;case"previous":playbackManager.previousChapter();break;case"guide":appRouter.showGuide();break;case"recordedtv":appRouter.showRecordedTV();break;case"record":break;case"livetv":appRouter.showLiveTV();break;case"mute":playbackManager.setMute(!0);break;case"unmute":playbackManager.setMute(!1);break;case"togglemute":playbackManager.toggleMute();break;case"channelup":playbackManager.nextTrack();break;case"channeldown":playbackManager.previousTrack();break;case"volumedown":playbackManager.volumeDown();break;case"volumeup":playbackManager.volumeUp();break;case"play":playbackManager.unpause();break;case"pause":playbackManager.pause();break;case"playpause":playbackManager.playPause();break;case"stop":checkCommandTime("stop")&&playbackManager.stop();break;case"changezoom":playbackManager.toggleAspectRatio();break;case"changeaudiotrack":playbackManager.changeAudioStream();break;case"changesubtitletrack":playbackManager.changeSubtitleStream();break;case"search":appRouter.showSearch();break;case"favorites":appRouter.showFavorites();break;case"fastforward":playbackManager.fastForward();break;case"rewind":playbackManager.rewind();break;case"togglefullscreen":playbackManager.toggleFullscreen();break;case"disabledisplaymirror":playbackManager.enableDisplayMirroring(!1);break;case"enabledisplaymirror":playbackManager.enableDisplayMirroring(!0);break;case"toggledisplaymirror":playbackManager.toggleDisplayMirroring();break;case"togglestats":break;case"movies":appRouter.goHome();break;case"music":appRouter.goHome();break;case"tv":appRouter.goHome();break;case"nowplaying":appRouter.showNowPlaying();break;case"save":break;case"screensaver":break;case"refresh":break;case"changebrightness":break;case"red":break;case"green":break;case"yellow":break;case"blue":break;case"grey":break;case"brown":}}var lastInputTime=(new Date).getTime(),eventListenerCount=0,commandTimes={};return dom.addEventListener(document,"click",notify,{passive:!0}),{trigger:handleCommand,handle:handleCommand,notify:notify,notifyMouseMove:notifyMouseMove,idleTime:idleTime,on:on,off:off}}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js b/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js index a778a810f8..00e51315bd 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js +++ b/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js @@ -1 +1 @@ -define(["apphost","globalize","connectionManager","itemHelper","embyRouter","playbackManager","loading","appSettings","browser"],function(appHost,globalize,connectionManager,itemHelper,embyRouter,playbackManager,loading,appSettings,browser){"use strict";function getCommands(options){var item=options.item,canPlay=playbackManager.canPlay(item),commands=[];if(itemHelper.isLocalItem(item))return commands;if(browser.operaTv||browser.web0s)return commands;var user=options.user;if(itemHelper.supportsAddingToCollection(item)&&commands.push({name:globalize.translate("sharedcomponents#AddToCollection"),id:"addtocollection"}),itemHelper.supportsAddingToPlaylist(item)&&commands.push({name:globalize.translate("sharedcomponents#AddToPlaylist"),id:"addtoplaylist"}),playbackManager.canQueue(item)&&options.queue!==!1&&commands.push({name:globalize.translate("sharedcomponents#AddToPlayQueue"),id:"queue"}),"Timer"===item.Type&&user.Policy.EnableLiveTvManagement&&options.cancelTimer!==!1&&commands.push({name:globalize.translate("sharedcomponents#CancelRecording"),id:"canceltimer"}),"Recording"===item.Type&&"InProgress"===item.Status&&user.Policy.EnableLiveTvManagement&&options.cancelTimer!==!1&&commands.push({name:globalize.translate("sharedcomponents#CancelRecording"),id:"canceltimer"}),"SeriesTimer"===item.Type&&user.Policy.EnableLiveTvManagement&&options.cancelTimer!==!1&&commands.push({name:globalize.translate("sharedcomponents#CancelSeries"),id:"cancelseriestimer"}),item.CanDelete&&options.deleteItem!==!1&&("Playlist"===item.Type||"BoxSet"===item.Type?commands.push({name:globalize.translate("sharedcomponents#Delete"),id:"delete"}):commands.push({name:globalize.translate("sharedcomponents#DeleteMedia"),id:"delete"})),item.CanDownload&&appHost.supports("filedownload")&&commands.push({name:globalize.translate("sharedcomponents#Download"),id:"download"}),appHost.supports("sync")&&options.syncLocal!==!1&&itemHelper.canSync(user,item)&&commands.push({name:globalize.translate("sharedcomponents#Download"),id:"synclocal"}),itemHelper.canEdit(user,item)&&options.edit!==!1&&"SeriesTimer"!==item.Type){var text="Timer"===item.Type||"SeriesTimer"===item.Type?globalize.translate("sharedcomponents#Edit"):globalize.translate("sharedcomponents#EditInfo");commands.push({name:text,id:"edit"})}return itemHelper.canEditImages(user,item)&&options.editImages!==!1&&commands.push({name:globalize.translate("sharedcomponents#EditImages"),id:"editimages"}),itemHelper.canEdit(user,item)&&("Video"!==item.MediaType||"TvChannel"===item.Type||"Program"===item.Type||"Virtual"===item.LocationType||"Recording"===item.Type&&"Completed"!==item.Status||options.editSubtitles!==!1&&commands.push({name:globalize.translate("sharedcomponents#EditSubtitles"),id:"editsubtitles"})),options.identify!==!1&&itemHelper.canIdentify(user,item.Type)&&commands.push({name:globalize.translate("sharedcomponents#Identify"),id:"identify"}),"Audio"!==item.MediaType&&"MusicAlbum"!==item.Type&&"MusicArtist"!==item.Type&&"MusicGenre"!==item.Type&&"music"!==item.CollectionType||options.instantMix!==!1&&commands.push({name:globalize.translate("sharedcomponents#InstantMix"),id:"instantmix"}),canPlay&&"Photo"!==item.MediaType&&(options.play!==!1&&commands.push({name:globalize.translate("sharedcomponents#Play"),id:"resume"}),options.playAllFromHere&&"Program"!==item.Type&&"TvChannel"!==item.Type&&commands.push({name:globalize.translate("sharedcomponents#PlayAllFromHere"),id:"playallfromhere"})),"Program"===item.Type&&options.record!==!1&&commands.push({name:Globalize.translate("sharedcomponents#Record"),id:"record"}),user.Policy.IsAdministrator&&("Timer"===item.Type||"SeriesTimer"===item.Type||"Program"===item.Type||"TvChannel"===item.Type||"Recording"===item.Type&&"Completed"!==item.Status||commands.push({name:globalize.translate("sharedcomponents#RefreshMetadata"),id:"refresh"})),item.PlaylistItemId&&options.playlistId&&commands.push({name:globalize.translate("sharedcomponents#RemoveFromPlaylist"),id:"removefromplaylist"}),options.collectionId&&commands.push({name:globalize.translate("sharedcomponents#RemoveFromCollection"),id:"removefromcollection"}),options.share!==!1&&itemHelper.canShare(user,item)&&commands.push({name:globalize.translate("sharedcomponents#Share"),id:"share"}),(item.IsFolder||"MusicArtist"===item.Type||"MusicGenre"===item.Type)&&options.shuffle!==!1&&commands.push({name:globalize.translate("sharedcomponents#Shuffle"),id:"shuffle"}),options.sync!==!1&&itemHelper.canSync(user,item)&&commands.push({name:globalize.translate("sharedcomponents#Sync"),id:"sync"}),options.openAlbum!==!1&&item.AlbumId&&"Photo"!==item.MediaType&&commands.push({name:Globalize.translate("sharedcomponents#ViewAlbum"),id:"album"}),options.openArtist!==!1&&item.ArtistItems&&item.ArtistItems.length&&commands.push({name:Globalize.translate("sharedcomponents#ViewArtist"),id:"artist"}),commands}function getResolveFunction(resolve,id,changed,deleted){return function(){resolve({command:id,updated:changed,deleted:deleted})}}function executeCommand(item,id,options){var itemId=item.Id,serverId=item.ServerId,apiClient=connectionManager.getApiClient(serverId);return new Promise(function(resolve,reject){switch(id){case"addtocollection":require(["collectionEditor"],function(collectionEditor){(new collectionEditor).show({items:[itemId],serverId:serverId}).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id))});break;case"addtoplaylist":require(["playlistEditor"],function(playlistEditor){(new playlistEditor).show({items:[itemId],serverId:serverId}).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id))});break;case"download":require(["fileDownloader"],function(fileDownloader){var downloadHref=apiClient.getItemDownloadUrl(itemId);fileDownloader.download([{url:downloadHref,itemId:itemId,serverId:serverId}]),getResolveFunction(getResolveFunction(resolve,id),id)()});break;case"editsubtitles":require(["subtitleEditor"],function(subtitleEditor){subtitleEditor.show(itemId,serverId).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id))});break;case"edit":editItem(apiClient,item).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id));break;case"editimages":require(["imageEditor"],function(imageEditor){imageEditor.show({itemId:itemId,serverId:serverId}).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id))});break;case"identify":require(["itemIdentifier"],function(itemIdentifier){itemIdentifier.show(itemId,serverId).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id))});break;case"refresh":refresh(apiClient,itemId),getResolveFunction(resolve,id)();break;case"open":embyRouter.showItem(item),getResolveFunction(resolve,id)();break;case"play":play(item,!1),getResolveFunction(resolve,id)();break;case"resume":play(item,!0),getResolveFunction(resolve,id)();break;case"queue":play(item,!1,!0),getResolveFunction(resolve,id)();break;case"record":require(["recordingCreator"],function(recordingCreator){recordingCreator.show(itemId,serverId).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id))});break;case"shuffle":playbackManager.shuffle(item),getResolveFunction(resolve,id)();break;case"instantmix":playbackManager.instantMix(item),getResolveFunction(resolve,id)();break;case"delete":deleteItem(apiClient,item).then(getResolveFunction(resolve,id,!0,!0),getResolveFunction(resolve,id));break;case"share":require(["sharingmanager"],function(sharingManager){sharingManager.showMenu({serverId:serverId,itemId:itemId}).then(getResolveFunction(resolve,id))});break;case"album":embyRouter.showItem(item.AlbumId,item.ServerId),getResolveFunction(resolve,id)();break;case"artist":embyRouter.showItem(item.ArtistItems[0].Id,item.ServerId),getResolveFunction(resolve,id)();break;case"playallfromhere":getResolveFunction(resolve,id)();break;case"queueallfromhere":getResolveFunction(resolve,id)();break;case"sync":require(["syncDialog"],function(syncDialog){syncDialog.showMenu({items:[item],serverId:serverId})}),getResolveFunction(resolve,id)();break;case"synclocal":require(["syncDialog"],function(syncDialog){syncDialog.showMenu({items:[item],isLocalSync:!0,serverId:serverId})}),getResolveFunction(resolve,id)();break;case"removefromplaylist":apiClient.ajax({url:apiClient.getUrl("Playlists/"+options.playlistId+"/Items",{EntryIds:[item.PlaylistItemId].join(",")}),type:"DELETE"}).then(function(){getResolveFunction(resolve,id,!0)()});break;case"removefromcollection":apiClient.ajax({type:"DELETE",url:apiClient.getUrl("Collections/"+options.collectionId+"/Items",{Ids:[item.Id].join(",")})}).then(function(){getResolveFunction(resolve,id,!0)()});break;case"canceltimer":deleteTimer(apiClient,item,resolve,id);break;case"cancelseriestimer":deleteSeriesTimer(apiClient,item,resolve,id);break;default:reject()}})}function deleteTimer(apiClient,item,resolve,command){require(["recordingHelper"],function(recordingHelper){var timerId=item.TimerId||item.Id;recordingHelper.cancelTimerWithConfirmation(timerId,item.ServerId).then(function(){getResolveFunction(resolve,command,!0)()})})}function deleteSeriesTimer(apiClient,item,resolve,command){require(["recordingHelper"],function(recordingHelper){recordingHelper.cancelSeriesTimerWithConfirmation(item.Id,item.ServerId).then(function(){getResolveFunction(resolve,command,!0)()})})}function play(item,resume,queue){var method=queue?"queue":"play",startPosition=0;resume&&item.UserData&&item.UserData.PlaybackPositionTicks&&(startPosition=item.UserData.PlaybackPositionTicks),"Program"===item.Type?playbackManager[method]({ids:[item.ChannelId],startPositionTicks:startPosition,serverId:item.ServerId}):playbackManager[method]({items:[item],startPositionTicks:startPosition})}function editItem(apiClient,item){return new Promise(function(resolve,reject){var serverId=apiClient.serverInfo().Id;"Timer"===item.Type?require(["recordingEditor"],function(recordingEditor){recordingEditor.show(item.Id,serverId).then(resolve,reject)}):"SeriesTimer"===item.Type?require(["seriesRecordingEditor"],function(recordingEditor){recordingEditor.show(item.Id,serverId).then(resolve,reject)}):require(["metadataEditor"],function(metadataEditor){metadataEditor.show(item.Id,serverId).then(resolve,reject)})})}function deleteItem(apiClient,item){return new Promise(function(resolve,reject){require(["deleteHelper"],function(deleteHelper){deleteHelper.deleteItem({item:item,navigate:!1}).then(function(){resolve(!0)},reject)})})}function refresh(apiClient,itemId){require(["refreshDialog"],function(refreshDialog){new refreshDialog({itemIds:[itemId],serverId:apiClient.serverInfo().Id}).show()})}function show(options){var commands=getCommands(options);return commands.length?new Promise(function(resolve,reject){require(["actionsheet"],function(actionSheet){actionSheet.show({items:commands,positionTo:options.positionTo}).then(function(id){executeCommand(options.item,id,options).then(resolve)},reject)})}):Promise.reject()}return{getCommands:getCommands,show:show}}); \ No newline at end of file +define(["apphost","globalize","connectionManager","itemHelper","appRouter","playbackManager","loading","appSettings","browser"],function(appHost,globalize,connectionManager,itemHelper,appRouter,playbackManager,loading,appSettings,browser){"use strict";function getCommands(options){var item=options.item,canPlay=playbackManager.canPlay(item),commands=[];if(itemHelper.isLocalItem(item))return commands;if(browser.operaTv||browser.web0s)return commands;var user=options.user;if(itemHelper.supportsAddingToCollection(item)&&commands.push({name:globalize.translate("sharedcomponents#AddToCollection"),id:"addtocollection"}),itemHelper.supportsAddingToPlaylist(item)&&commands.push({name:globalize.translate("sharedcomponents#AddToPlaylist"),id:"addtoplaylist"}),playbackManager.canQueue(item)&&options.queue!==!1&&commands.push({name:globalize.translate("sharedcomponents#AddToPlayQueue"),id:"queue"}),"Timer"===item.Type&&user.Policy.EnableLiveTvManagement&&options.cancelTimer!==!1&&commands.push({name:globalize.translate("sharedcomponents#CancelRecording"),id:"canceltimer"}),"Recording"===item.Type&&"InProgress"===item.Status&&user.Policy.EnableLiveTvManagement&&options.cancelTimer!==!1&&commands.push({name:globalize.translate("sharedcomponents#CancelRecording"),id:"canceltimer"}),"SeriesTimer"===item.Type&&user.Policy.EnableLiveTvManagement&&options.cancelTimer!==!1&&commands.push({name:globalize.translate("sharedcomponents#CancelSeries"),id:"cancelseriestimer"}),item.CanDelete&&options.deleteItem!==!1&&("Playlist"===item.Type||"BoxSet"===item.Type?commands.push({name:globalize.translate("sharedcomponents#Delete"),id:"delete"}):commands.push({name:globalize.translate("sharedcomponents#DeleteMedia"),id:"delete"})),item.CanDownload&&appHost.supports("filedownload")&&commands.push({name:globalize.translate("sharedcomponents#Download"),id:"download"}),appHost.supports("sync")&&options.syncLocal!==!1&&itemHelper.canSync(user,item)&&commands.push({name:globalize.translate("sharedcomponents#Download"),id:"synclocal"}),itemHelper.canEdit(user,item)&&options.edit!==!1&&"SeriesTimer"!==item.Type){var text="Timer"===item.Type||"SeriesTimer"===item.Type?globalize.translate("sharedcomponents#Edit"):globalize.translate("sharedcomponents#EditInfo");commands.push({name:text,id:"edit"})}return itemHelper.canEditImages(user,item)&&options.editImages!==!1&&commands.push({name:globalize.translate("sharedcomponents#EditImages"),id:"editimages"}),itemHelper.canEdit(user,item)&&("Video"!==item.MediaType||"TvChannel"===item.Type||"Program"===item.Type||"Virtual"===item.LocationType||"Recording"===item.Type&&"Completed"!==item.Status||options.editSubtitles!==!1&&commands.push({name:globalize.translate("sharedcomponents#EditSubtitles"),id:"editsubtitles"})),options.identify!==!1&&itemHelper.canIdentify(user,item.Type)&&commands.push({name:globalize.translate("sharedcomponents#Identify"),id:"identify"}),"Audio"!==item.MediaType&&"MusicAlbum"!==item.Type&&"MusicArtist"!==item.Type&&"MusicGenre"!==item.Type&&"music"!==item.CollectionType||options.instantMix!==!1&&commands.push({name:globalize.translate("sharedcomponents#InstantMix"),id:"instantmix"}),canPlay&&"Photo"!==item.MediaType&&(options.play!==!1&&commands.push({name:globalize.translate("sharedcomponents#Play"),id:"resume"}),options.playAllFromHere&&"Program"!==item.Type&&"TvChannel"!==item.Type&&commands.push({name:globalize.translate("sharedcomponents#PlayAllFromHere"),id:"playallfromhere"})),"Program"===item.Type&&options.record!==!1&&commands.push({name:Globalize.translate("sharedcomponents#Record"),id:"record"}),user.Policy.IsAdministrator&&("Timer"===item.Type||"SeriesTimer"===item.Type||"Program"===item.Type||"TvChannel"===item.Type||"Recording"===item.Type&&"Completed"!==item.Status||commands.push({name:globalize.translate("sharedcomponents#RefreshMetadata"),id:"refresh"})),item.PlaylistItemId&&options.playlistId&&commands.push({name:globalize.translate("sharedcomponents#RemoveFromPlaylist"),id:"removefromplaylist"}),options.collectionId&&commands.push({name:globalize.translate("sharedcomponents#RemoveFromCollection"),id:"removefromcollection"}),options.share!==!1&&itemHelper.canShare(user,item)&&commands.push({name:globalize.translate("sharedcomponents#Share"),id:"share"}),(item.IsFolder||"MusicArtist"===item.Type||"MusicGenre"===item.Type)&&options.shuffle!==!1&&commands.push({name:globalize.translate("sharedcomponents#Shuffle"),id:"shuffle"}),options.sync!==!1&&itemHelper.canSync(user,item)&&commands.push({name:globalize.translate("sharedcomponents#Sync"),id:"sync"}),options.openAlbum!==!1&&item.AlbumId&&"Photo"!==item.MediaType&&commands.push({name:Globalize.translate("sharedcomponents#ViewAlbum"),id:"album"}),options.openArtist!==!1&&item.ArtistItems&&item.ArtistItems.length&&commands.push({name:Globalize.translate("sharedcomponents#ViewArtist"),id:"artist"}),commands}function getResolveFunction(resolve,id,changed,deleted){return function(){resolve({command:id,updated:changed,deleted:deleted})}}function executeCommand(item,id,options){var itemId=item.Id,serverId=item.ServerId,apiClient=connectionManager.getApiClient(serverId);return new Promise(function(resolve,reject){switch(id){case"addtocollection":require(["collectionEditor"],function(collectionEditor){(new collectionEditor).show({items:[itemId],serverId:serverId}).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id))});break;case"addtoplaylist":require(["playlistEditor"],function(playlistEditor){(new playlistEditor).show({items:[itemId],serverId:serverId}).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id))});break;case"download":require(["fileDownloader"],function(fileDownloader){var downloadHref=apiClient.getItemDownloadUrl(itemId);fileDownloader.download([{url:downloadHref,itemId:itemId,serverId:serverId}]),getResolveFunction(getResolveFunction(resolve,id),id)()});break;case"editsubtitles":require(["subtitleEditor"],function(subtitleEditor){subtitleEditor.show(itemId,serverId).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id))});break;case"edit":editItem(apiClient,item).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id));break;case"editimages":require(["imageEditor"],function(imageEditor){imageEditor.show({itemId:itemId,serverId:serverId}).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id))});break;case"identify":require(["itemIdentifier"],function(itemIdentifier){itemIdentifier.show(itemId,serverId).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id))});break;case"refresh":refresh(apiClient,itemId),getResolveFunction(resolve,id)();break;case"open":appRouter.showItem(item),getResolveFunction(resolve,id)();break;case"play":play(item,!1),getResolveFunction(resolve,id)();break;case"resume":play(item,!0),getResolveFunction(resolve,id)();break;case"queue":play(item,!1,!0),getResolveFunction(resolve,id)();break;case"record":require(["recordingCreator"],function(recordingCreator){recordingCreator.show(itemId,serverId).then(getResolveFunction(resolve,id,!0),getResolveFunction(resolve,id))});break;case"shuffle":playbackManager.shuffle(item),getResolveFunction(resolve,id)();break;case"instantmix":playbackManager.instantMix(item),getResolveFunction(resolve,id)();break;case"delete":deleteItem(apiClient,item).then(getResolveFunction(resolve,id,!0,!0),getResolveFunction(resolve,id));break;case"share":require(["sharingmanager"],function(sharingManager){sharingManager.showMenu({serverId:serverId,itemId:itemId}).then(getResolveFunction(resolve,id))});break;case"album":appRouter.showItem(item.AlbumId,item.ServerId),getResolveFunction(resolve,id)();break;case"artist":appRouter.showItem(item.ArtistItems[0].Id,item.ServerId),getResolveFunction(resolve,id)();break;case"playallfromhere":getResolveFunction(resolve,id)();break;case"queueallfromhere":getResolveFunction(resolve,id)();break;case"sync":require(["syncDialog"],function(syncDialog){syncDialog.showMenu({items:[item],serverId:serverId})}),getResolveFunction(resolve,id)();break;case"synclocal":require(["syncDialog"],function(syncDialog){syncDialog.showMenu({items:[item],isLocalSync:!0,serverId:serverId})}),getResolveFunction(resolve,id)();break;case"removefromplaylist":apiClient.ajax({url:apiClient.getUrl("Playlists/"+options.playlistId+"/Items",{EntryIds:[item.PlaylistItemId].join(",")}),type:"DELETE"}).then(function(){getResolveFunction(resolve,id,!0)()});break;case"removefromcollection":apiClient.ajax({type:"DELETE",url:apiClient.getUrl("Collections/"+options.collectionId+"/Items",{Ids:[item.Id].join(",")})}).then(function(){getResolveFunction(resolve,id,!0)()});break;case"canceltimer":deleteTimer(apiClient,item,resolve,id);break;case"cancelseriestimer":deleteSeriesTimer(apiClient,item,resolve,id);break;default:reject()}})}function deleteTimer(apiClient,item,resolve,command){require(["recordingHelper"],function(recordingHelper){var timerId=item.TimerId||item.Id;recordingHelper.cancelTimerWithConfirmation(timerId,item.ServerId).then(function(){getResolveFunction(resolve,command,!0)()})})}function deleteSeriesTimer(apiClient,item,resolve,command){require(["recordingHelper"],function(recordingHelper){recordingHelper.cancelSeriesTimerWithConfirmation(item.Id,item.ServerId).then(function(){getResolveFunction(resolve,command,!0)()})})}function play(item,resume,queue){var method=queue?"queue":"play",startPosition=0;resume&&item.UserData&&item.UserData.PlaybackPositionTicks&&(startPosition=item.UserData.PlaybackPositionTicks),"Program"===item.Type?playbackManager[method]({ids:[item.ChannelId],startPositionTicks:startPosition,serverId:item.ServerId}):playbackManager[method]({items:[item],startPositionTicks:startPosition})}function editItem(apiClient,item){return new Promise(function(resolve,reject){var serverId=apiClient.serverInfo().Id;"Timer"===item.Type?require(["recordingEditor"],function(recordingEditor){recordingEditor.show(item.Id,serverId).then(resolve,reject)}):"SeriesTimer"===item.Type?require(["seriesRecordingEditor"],function(recordingEditor){recordingEditor.show(item.Id,serverId).then(resolve,reject)}):require(["metadataEditor"],function(metadataEditor){metadataEditor.show(item.Id,serverId).then(resolve,reject)})})}function deleteItem(apiClient,item){return new Promise(function(resolve,reject){require(["deleteHelper"],function(deleteHelper){deleteHelper.deleteItem({item:item,navigate:!1}).then(function(){resolve(!0)},reject)})})}function refresh(apiClient,itemId){require(["refreshDialog"],function(refreshDialog){new refreshDialog({itemIds:[itemId],serverId:apiClient.serverInfo().Id}).show()})}function show(options){var commands=getCommands(options);return commands.length?new Promise(function(resolve,reject){require(["actionsheet"],function(actionSheet){actionSheet.show({items:commands,positionTo:options.positionTo}).then(function(id){executeCommand(options.item,id,options).then(resolve)},reject)})}):Promise.reject()}return{getCommands:getCommands,show:show}}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/mediainfo/mediainfo.js b/dashboard-ui/bower_components/emby-webcomponents/mediainfo/mediainfo.js index bd8c02096c..e7bd0e5c1c 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/mediainfo/mediainfo.js +++ b/dashboard-ui/bower_components/emby-webcomponents/mediainfo/mediainfo.js @@ -1 +1 @@ -define(["datetime","globalize","embyRouter","itemHelper","material-icons","css!./mediainfo.css","programStyles","emby-linkbutton"],function(datetime,globalize,embyRouter,itemHelper){"use strict";function getTimerIndicator(item){var status;if("SeriesTimer"===item.Type)return'';if(item.TimerId||item.SeriesTimerId)status=item.Status||"Cancelled";else{if("Timer"!==item.Type)return"";status=item.Status}return item.SeriesTimerId?"Cancelled"!==status?'':'':''}function getProgramInfoHtml(item,options){var text,date,html="",miscInfo=[];if(item.StartDate&&options.programTime!==!1)try{text="",date=datetime.parseISO8601Date(item.StartDate),options.startDate!==!1&&(text+=datetime.toLocaleDateString(date,{weekday:"short",month:"short",day:"numeric"})),text+=" "+datetime.getDisplayTime(date),item.EndDate&&(date=datetime.parseISO8601Date(item.EndDate),text+=" - "+datetime.getDisplayTime(date)),miscInfo.push(text)}catch(e){console.log("Error parsing date: "+item.StartDate)}if(item.ChannelNumber&&miscInfo.push("CH "+item.ChannelNumber),item.ChannelName&&(options.interactive&&item.ChannelId?miscInfo.push({html:''+item.ChannelName+""}):miscInfo.push(item.ChannelName)),options.timerIndicator!==!1){var timerHtml=getTimerIndicator(item);timerHtml&&miscInfo.push({html:timerHtml})}return html+=miscInfo.map(function(m){return getMediaInfoItem(m)}).join("")}function getMediaInfoHtml(item,options){var html="",miscInfo=[];options=options||{};var text,date,minutes,count,showFolderRuntime="MusicAlbum"===item.Type||"MusicArtist"===item.MediaType||"Playlist"===item.MediaType||"MusicGenre"===item.MediaType;if(showFolderRuntime?(count=item.SongCount||item.ChildCount,count&&miscInfo.push(globalize.translate("sharedcomponents#TrackCount",count)),item.RunTimeTicks&&miscInfo.push(datetime.getDisplayRunningTime(item.RunTimeTicks))):"PhotoAlbum"!==item.Type&&"BoxSet"!==item.Type||(count=item.ChildCount,count&&miscInfo.push(globalize.translate("sharedcomponents#ItemCount",count))),("Episode"===item.Type||"Photo"===item.MediaType)&&options.originalAirDate!==!1&&item.PremiereDate)try{date=datetime.parseISO8601Date(item.PremiereDate),text=datetime.toLocaleDateString(date),miscInfo.push(text)}catch(e){console.log("Error parsing date: "+item.PremiereDate)}if("SeriesTimer"===item.Type&&(item.RecordAnyTime?miscInfo.push(globalize.translate("sharedcomponents#Anytime")):miscInfo.push(datetime.getDisplayTime(item.StartDate)),item.RecordAnyChannel?miscInfo.push(globalize.translate("sharedcomponents#AllChannels")):miscInfo.push(item.ChannelName||globalize.translate("sharedcomponents#OneChannel"))),item.StartDate&&"Program"!==item.Type&&"SeriesTimer"!==item.Type)try{date=datetime.parseISO8601Date(item.StartDate),text=datetime.toLocaleDateString(date),miscInfo.push(text),"Recording"!==item.Type&&(text=datetime.getDisplayTime(date),miscInfo.push(text))}catch(e){console.log("Error parsing date: "+item.StartDate)}if(options.year!==!1&&item.ProductionYear&&"Series"===item.Type)if("Continuing"===item.Status)miscInfo.push(globalize.translate("sharedcomponents#SeriesYearToPresent",item.ProductionYear));else if(item.ProductionYear){if(text=item.ProductionYear,item.EndDate)try{var endYear=datetime.parseISO8601Date(item.EndDate).getFullYear();endYear!==item.ProductionYear&&(text+="-"+datetime.parseISO8601Date(item.EndDate).getFullYear())}catch(e){console.log("Error parsing date: "+item.EndDate)}miscInfo.push(text)}if("Program"===item.Type)if(options.programIndicator!==!1&&(item.IsLive?miscInfo.push({html:'
'+globalize.translate("sharedcomponents#Live")+"
"}):item.IsPremiere?miscInfo.push({html:'
'+globalize.translate("sharedcomponents#Premiere")+"
"}):item.IsSeries&&!item.IsRepeat?miscInfo.push({html:'
'+globalize.translate("sharedcomponents#AttributeNew")+"
"}):item.IsSeries&&item.IsRepeat&&miscInfo.push({html:'
'+globalize.translate("sharedcomponents#Repeat")+"
"})),(item.IsSeries||item.EpisodeTitle)&&options.episodeTitle!==!1)text=itemHelper.getDisplayName(item,{includeIndexNumber:options.episodeTitleIndexNumber}),text&&miscInfo.push(text);else if(item.IsMovie&&item.ProductionYear&&options.originalAirDate!==!1)miscInfo.push(item.ProductionYear);else if(item.PremiereDate&&options.originalAirDate!==!1)try{date=datetime.parseISO8601Date(item.PremiereDate),text=globalize.translate("sharedcomponents#OriginalAirDateValue",datetime.toLocaleDateString(date)),miscInfo.push(text)}catch(e){console.log("Error parsing date: "+item.PremiereDate)}else item.ProductionYear&&miscInfo.push(item.ProductionYear);if(options.year!==!1&&"Series"!==item.Type&&"Episode"!==item.Type&&"Person"!==item.Type&&"Photo"!==item.MediaType&&"Program"!==item.Type&&"Season"!==item.Type)if(item.ProductionYear)miscInfo.push(item.ProductionYear);else if(item.PremiereDate)try{text=datetime.parseISO8601Date(item.PremiereDate).getFullYear(),miscInfo.push(text)}catch(e){console.log("Error parsing date: "+item.PremiereDate)}if(item.RunTimeTicks&&"Series"!==item.Type&&"Program"!==item.Type&&!showFolderRuntime&&options.runtime!==!1&&("Audio"===item.Type?miscInfo.push(datetime.getDisplayRunningTime(item.RunTimeTicks)):(minutes=item.RunTimeTicks/6e8,minutes=minutes||1,miscInfo.push(Math.round(minutes)+" mins"))),item.OfficialRating&&"Season"!==item.Type&&"Episode"!==item.Type&&miscInfo.push({text:item.OfficialRating,cssClass:"mediaInfoOfficialRating"}),item.Video3DFormat&&miscInfo.push("3D"),"Photo"===item.MediaType&&item.Width&&item.Height&&miscInfo.push(item.Width+"x"+item.Height),options.container!==!1&&"Audio"===item.Type&&item.Container&&miscInfo.push(item.Container),html+=miscInfo.map(function(m){return getMediaInfoItem(m)}).join(""),html+=getStarIconsHtml(item),item.HasSubtitles&&options.subtitles!==!1&&(html+='
CC
'),item.CriticRating&&options.criticRating!==!1&&(html+=item.CriticRating>=60?'
'+item.CriticRating+"
":'
'+item.CriticRating+"
"),options.endsAt!==!1){var endsAt=getEndsAt(item);endsAt&&(html+=getMediaInfoItem(endsAt,"endsAt"))}return html}function getEndsAt(item){if("Video"===item.MediaType&&item.RunTimeTicks&&!item.StartDate){var endDate=(new Date).getTime()+item.RunTimeTicks/1e4;endDate=new Date(endDate);var displayTime=datetime.getDisplayTime(endDate);return globalize.translate("sharedcomponents#EndsAtValue",displayTime)}return null}function getEndsAtFromPosition(runtimeTicks,positionTicks,includeText){var endDate=(new Date).getTime()+(runtimeTicks-(positionTicks||0))/1e4;endDate=new Date(endDate);var displayTime=datetime.getDisplayTime(endDate);return includeText===!1?displayTime:globalize.translate("sharedcomponents#EndsAtValue",displayTime)}function getMediaInfoItem(m,cssClass){cssClass=cssClass?cssClass+" mediaInfoItem":"mediaInfoItem";var mediaInfoText=m;if("string"!=typeof m&&"number"!=typeof m){if(m.html)return m.html;mediaInfoText=m.text,cssClass+=" "+m.cssClass}return'
'+mediaInfoText+"
"}function getStarIconsHtml(item){var html="",rating=item.CommunityRating;return rating&&(html+='
',html+='',html+=rating,html+="
"),html}function dynamicEndTime(elem,item){var interval=setInterval(function(){return document.body.contains(elem)?void(elem.innerHTML=getEndsAt(item)):void clearInterval(interval)},6e4)}function fillPrimaryMediaInfo(elem,item,options){var html=getPrimaryMediaInfoHtml(item,options);elem.innerHTML=html,afterFill(elem,item,options)}function fillSecondaryMediaInfo(elem,item,options){var html=getSecondaryMediaInfoHtml(item,options);elem.innerHTML=html,afterFill(elem,item,options)}function afterFill(elem,item,options){if(options.endsAt!==!1){var endsAtElem=elem.querySelector(".endsAt");endsAtElem&&dynamicEndTime(endsAtElem,item)}var lnkChannel=elem.querySelector(".lnkChannel");lnkChannel&&lnkChannel.addEventListener("click",onChannelLinkClick)}function onChannelLinkClick(e){var channelId=this.getAttribute("data-id"),serverId=this.getAttribute("data-serverid");return embyRouter.showItem(channelId,serverId),e.preventDefault(),!1}function getPrimaryMediaInfoHtml(item,options){return options=options||{},null==options.interactive&&(options.interactive=!1),getMediaInfoHtml(item,options)}function getSecondaryMediaInfoHtml(item,options){return options=options||{},null==options.interactive&&(options.interactive=!1),"Program"===item.Type?getProgramInfoHtml(item,options):""}function getResolutionText(item){return item.MediaSources&&item.MediaSources.length?item.MediaSources[0].MediaStreams.filter(function(i){return"Video"===i.Type}).map(function(i){if(i.Height){if(i.Width>=3800)return"4K";if(i.Width>=2500)return i.IsInterlaced?"1440I":"1440P";if(i.Width>=1900)return i.IsInterlaced?"1080I":"1080P";if(i.Width>=1260)return i.IsInterlaced?"720I":"720P";if(i.Width>=700)return i.IsInterlaced?"480I":"480P"}return null})[0]:null}function getAudioStreamForDisplay(item){if(!item.MediaSources)return null;var mediaSource=item.MediaSources[0];return mediaSource?(mediaSource.MediaStreams||[]).filter(function(i){return"Audio"===i.Type&&(i.Index===mediaSource.DefaultAudioStreamIndex||null==mediaSource.DefaultAudioStreamIndex)})[0]:null}function getMediaInfoStats(item,options){options=options||{};var list=[],mediaSource=(item.MediaSources||[])[0]||{},videoStream=(mediaSource.MediaStreams||[]).filter(function(i){return"Video"===i.Type})[0]||{},audioStream=getAudioStreamForDisplay(item)||{};"Dvd"===item.VideoType&&list.push({type:"mediainfo",text:"Dvd"}),"BluRay"===item.VideoType&&list.push({type:"mediainfo",text:"BluRay"});var resolutionText=getResolutionText(item);resolutionText&&list.push({type:"mediainfo",text:resolutionText}),videoStream.Codec&&list.push({type:"mediainfo",text:videoStream.Codec});var channelText,channels=audioStream.Channels;if(8===channels?channelText="7.1":7===channels?channelText="6.1":6===channels?channelText="5.1":2===channels&&(channelText="2.0"),channelText&&list.push({type:"mediainfo",text:channelText}),"dca"===audioStream.Codec&&audioStream.Profile?list.push({type:"mediainfo",text:audioStream.Profile}):audioStream.Codec&&list.push({type:"mediainfo",text:audioStream.Codec}),item.DateCreated&&itemHelper.enableDateAddedDisplay(item)){var dateCreated=datetime.parseISO8601Date(item.DateCreated);list.push({type:"added",text:globalize.translate("sharedcomponents#AddedOnValue",datetime.toLocaleDateString(dateCreated)+" "+datetime.getDisplayTime(dateCreated))})}return list}return{getMediaInfoHtml:getPrimaryMediaInfoHtml,fill:fillPrimaryMediaInfo,getEndsAt:getEndsAt,getEndsAtFromPosition:getEndsAtFromPosition,getPrimaryMediaInfoHtml:getPrimaryMediaInfoHtml,getSecondaryMediaInfoHtml:getSecondaryMediaInfoHtml,fillPrimaryMediaInfo:fillPrimaryMediaInfo,fillSecondaryMediaInfo:fillSecondaryMediaInfo,getMediaInfoStats:getMediaInfoStats}}); \ No newline at end of file +define(["datetime","globalize","appRouter","itemHelper","material-icons","css!./mediainfo.css","programStyles","emby-linkbutton"],function(datetime,globalize,appRouter,itemHelper){"use strict";function getTimerIndicator(item){var status;if("SeriesTimer"===item.Type)return'';if(item.TimerId||item.SeriesTimerId)status=item.Status||"Cancelled";else{if("Timer"!==item.Type)return"";status=item.Status}return item.SeriesTimerId?"Cancelled"!==status?'':'':''}function getProgramInfoHtml(item,options){var text,date,html="",miscInfo=[];if(item.StartDate&&options.programTime!==!1)try{text="",date=datetime.parseISO8601Date(item.StartDate),options.startDate!==!1&&(text+=datetime.toLocaleDateString(date,{weekday:"short",month:"short",day:"numeric"})),text+=" "+datetime.getDisplayTime(date),item.EndDate&&(date=datetime.parseISO8601Date(item.EndDate),text+=" - "+datetime.getDisplayTime(date)),miscInfo.push(text)}catch(e){console.log("Error parsing date: "+item.StartDate)}if(item.ChannelNumber&&miscInfo.push("CH "+item.ChannelNumber),item.ChannelName&&(options.interactive&&item.ChannelId?miscInfo.push({html:''+item.ChannelName+""}):miscInfo.push(item.ChannelName)),options.timerIndicator!==!1){var timerHtml=getTimerIndicator(item);timerHtml&&miscInfo.push({html:timerHtml})}return html+=miscInfo.map(function(m){return getMediaInfoItem(m)}).join("")}function getMediaInfoHtml(item,options){var html="",miscInfo=[];options=options||{};var text,date,minutes,count,showFolderRuntime="MusicAlbum"===item.Type||"MusicArtist"===item.MediaType||"Playlist"===item.MediaType||"MusicGenre"===item.MediaType;if(showFolderRuntime?(count=item.SongCount||item.ChildCount,count&&miscInfo.push(globalize.translate("sharedcomponents#TrackCount",count)),item.RunTimeTicks&&miscInfo.push(datetime.getDisplayRunningTime(item.RunTimeTicks))):"PhotoAlbum"!==item.Type&&"BoxSet"!==item.Type||(count=item.ChildCount,count&&miscInfo.push(globalize.translate("sharedcomponents#ItemCount",count))),("Episode"===item.Type||"Photo"===item.MediaType)&&options.originalAirDate!==!1&&item.PremiereDate)try{date=datetime.parseISO8601Date(item.PremiereDate),text=datetime.toLocaleDateString(date),miscInfo.push(text)}catch(e){console.log("Error parsing date: "+item.PremiereDate)}if("SeriesTimer"===item.Type&&(item.RecordAnyTime?miscInfo.push(globalize.translate("sharedcomponents#Anytime")):miscInfo.push(datetime.getDisplayTime(item.StartDate)),item.RecordAnyChannel?miscInfo.push(globalize.translate("sharedcomponents#AllChannels")):miscInfo.push(item.ChannelName||globalize.translate("sharedcomponents#OneChannel"))),item.StartDate&&"Program"!==item.Type&&"SeriesTimer"!==item.Type)try{date=datetime.parseISO8601Date(item.StartDate),text=datetime.toLocaleDateString(date),miscInfo.push(text),"Recording"!==item.Type&&(text=datetime.getDisplayTime(date),miscInfo.push(text))}catch(e){console.log("Error parsing date: "+item.StartDate)}if(options.year!==!1&&item.ProductionYear&&"Series"===item.Type)if("Continuing"===item.Status)miscInfo.push(globalize.translate("sharedcomponents#SeriesYearToPresent",item.ProductionYear));else if(item.ProductionYear){if(text=item.ProductionYear,item.EndDate)try{var endYear=datetime.parseISO8601Date(item.EndDate).getFullYear();endYear!==item.ProductionYear&&(text+="-"+datetime.parseISO8601Date(item.EndDate).getFullYear())}catch(e){console.log("Error parsing date: "+item.EndDate)}miscInfo.push(text)}if("Program"===item.Type)if(options.programIndicator!==!1&&(item.IsLive?miscInfo.push({html:'
'+globalize.translate("sharedcomponents#Live")+"
"}):item.IsPremiere?miscInfo.push({html:'
'+globalize.translate("sharedcomponents#Premiere")+"
"}):item.IsSeries&&!item.IsRepeat?miscInfo.push({html:'
'+globalize.translate("sharedcomponents#AttributeNew")+"
"}):item.IsSeries&&item.IsRepeat&&miscInfo.push({html:'
'+globalize.translate("sharedcomponents#Repeat")+"
"})),(item.IsSeries||item.EpisodeTitle)&&options.episodeTitle!==!1)text=itemHelper.getDisplayName(item,{includeIndexNumber:options.episodeTitleIndexNumber}),text&&miscInfo.push(text);else if(item.IsMovie&&item.ProductionYear&&options.originalAirDate!==!1)miscInfo.push(item.ProductionYear);else if(item.PremiereDate&&options.originalAirDate!==!1)try{date=datetime.parseISO8601Date(item.PremiereDate),text=globalize.translate("sharedcomponents#OriginalAirDateValue",datetime.toLocaleDateString(date)),miscInfo.push(text)}catch(e){console.log("Error parsing date: "+item.PremiereDate)}else item.ProductionYear&&miscInfo.push(item.ProductionYear);if(options.year!==!1&&"Series"!==item.Type&&"Episode"!==item.Type&&"Person"!==item.Type&&"Photo"!==item.MediaType&&"Program"!==item.Type&&"Season"!==item.Type)if(item.ProductionYear)miscInfo.push(item.ProductionYear);else if(item.PremiereDate)try{text=datetime.parseISO8601Date(item.PremiereDate).getFullYear(),miscInfo.push(text)}catch(e){console.log("Error parsing date: "+item.PremiereDate)}if(item.RunTimeTicks&&"Series"!==item.Type&&"Program"!==item.Type&&!showFolderRuntime&&options.runtime!==!1&&("Audio"===item.Type?miscInfo.push(datetime.getDisplayRunningTime(item.RunTimeTicks)):(minutes=item.RunTimeTicks/6e8,minutes=minutes||1,miscInfo.push(Math.round(minutes)+" mins"))),item.OfficialRating&&"Season"!==item.Type&&"Episode"!==item.Type&&miscInfo.push({text:item.OfficialRating,cssClass:"mediaInfoOfficialRating"}),item.Video3DFormat&&miscInfo.push("3D"),"Photo"===item.MediaType&&item.Width&&item.Height&&miscInfo.push(item.Width+"x"+item.Height),options.container!==!1&&"Audio"===item.Type&&item.Container&&miscInfo.push(item.Container),html+=miscInfo.map(function(m){return getMediaInfoItem(m)}).join(""),html+=getStarIconsHtml(item),item.HasSubtitles&&options.subtitles!==!1&&(html+='
CC
'),item.CriticRating&&options.criticRating!==!1&&(html+=item.CriticRating>=60?'
'+item.CriticRating+"
":'
'+item.CriticRating+"
"),options.endsAt!==!1){var endsAt=getEndsAt(item);endsAt&&(html+=getMediaInfoItem(endsAt,"endsAt"))}return html}function getEndsAt(item){if("Video"===item.MediaType&&item.RunTimeTicks&&!item.StartDate){var endDate=(new Date).getTime()+item.RunTimeTicks/1e4;endDate=new Date(endDate);var displayTime=datetime.getDisplayTime(endDate);return globalize.translate("sharedcomponents#EndsAtValue",displayTime)}return null}function getEndsAtFromPosition(runtimeTicks,positionTicks,includeText){var endDate=(new Date).getTime()+(runtimeTicks-(positionTicks||0))/1e4;endDate=new Date(endDate);var displayTime=datetime.getDisplayTime(endDate);return includeText===!1?displayTime:globalize.translate("sharedcomponents#EndsAtValue",displayTime)}function getMediaInfoItem(m,cssClass){cssClass=cssClass?cssClass+" mediaInfoItem":"mediaInfoItem";var mediaInfoText=m;if("string"!=typeof m&&"number"!=typeof m){if(m.html)return m.html;mediaInfoText=m.text,cssClass+=" "+m.cssClass}return'
'+mediaInfoText+"
"}function getStarIconsHtml(item){var html="",rating=item.CommunityRating;return rating&&(html+='
',html+='',html+=rating,html+="
"),html}function dynamicEndTime(elem,item){var interval=setInterval(function(){return document.body.contains(elem)?void(elem.innerHTML=getEndsAt(item)):void clearInterval(interval)},6e4)}function fillPrimaryMediaInfo(elem,item,options){var html=getPrimaryMediaInfoHtml(item,options);elem.innerHTML=html,afterFill(elem,item,options)}function fillSecondaryMediaInfo(elem,item,options){var html=getSecondaryMediaInfoHtml(item,options);elem.innerHTML=html,afterFill(elem,item,options)}function afterFill(elem,item,options){if(options.endsAt!==!1){var endsAtElem=elem.querySelector(".endsAt");endsAtElem&&dynamicEndTime(endsAtElem,item)}var lnkChannel=elem.querySelector(".lnkChannel");lnkChannel&&lnkChannel.addEventListener("click",onChannelLinkClick)}function onChannelLinkClick(e){var channelId=this.getAttribute("data-id"),serverId=this.getAttribute("data-serverid");return appRouter.showItem(channelId,serverId),e.preventDefault(),!1}function getPrimaryMediaInfoHtml(item,options){return options=options||{},null==options.interactive&&(options.interactive=!1),getMediaInfoHtml(item,options)}function getSecondaryMediaInfoHtml(item,options){return options=options||{},null==options.interactive&&(options.interactive=!1),"Program"===item.Type?getProgramInfoHtml(item,options):""}function getResolutionText(item){return item.MediaSources&&item.MediaSources.length?item.MediaSources[0].MediaStreams.filter(function(i){return"Video"===i.Type}).map(function(i){if(i.Height){if(i.Width>=3800)return"4K";if(i.Width>=2500)return i.IsInterlaced?"1440I":"1440P";if(i.Width>=1900)return i.IsInterlaced?"1080I":"1080P";if(i.Width>=1260)return i.IsInterlaced?"720I":"720P";if(i.Width>=700)return i.IsInterlaced?"480I":"480P"}return null})[0]:null}function getAudioStreamForDisplay(item){if(!item.MediaSources)return null;var mediaSource=item.MediaSources[0];return mediaSource?(mediaSource.MediaStreams||[]).filter(function(i){return"Audio"===i.Type&&(i.Index===mediaSource.DefaultAudioStreamIndex||null==mediaSource.DefaultAudioStreamIndex)})[0]:null}function getMediaInfoStats(item,options){options=options||{};var list=[],mediaSource=(item.MediaSources||[])[0]||{},videoStream=(mediaSource.MediaStreams||[]).filter(function(i){return"Video"===i.Type})[0]||{},audioStream=getAudioStreamForDisplay(item)||{};"Dvd"===item.VideoType&&list.push({type:"mediainfo",text:"Dvd"}),"BluRay"===item.VideoType&&list.push({type:"mediainfo",text:"BluRay"});var resolutionText=getResolutionText(item);resolutionText&&list.push({type:"mediainfo",text:resolutionText}),videoStream.Codec&&list.push({type:"mediainfo",text:videoStream.Codec});var channelText,channels=audioStream.Channels;if(8===channels?channelText="7.1":7===channels?channelText="6.1":6===channels?channelText="5.1":2===channels&&(channelText="2.0"),channelText&&list.push({type:"mediainfo",text:channelText}),"dca"===audioStream.Codec&&audioStream.Profile?list.push({type:"mediainfo",text:audioStream.Profile}):audioStream.Codec&&list.push({type:"mediainfo",text:audioStream.Codec}),item.DateCreated&&itemHelper.enableDateAddedDisplay(item)){var dateCreated=datetime.parseISO8601Date(item.DateCreated);list.push({type:"added",text:globalize.translate("sharedcomponents#AddedOnValue",datetime.toLocaleDateString(dateCreated)+" "+datetime.getDisplayTime(dateCreated))})}return list}return{getMediaInfoHtml:getPrimaryMediaInfoHtml,fill:fillPrimaryMediaInfo,getEndsAt:getEndsAt,getEndsAtFromPosition:getEndsAtFromPosition,getPrimaryMediaInfoHtml:getPrimaryMediaInfoHtml,getSecondaryMediaInfoHtml:getSecondaryMediaInfoHtml,fillPrimaryMediaInfo:fillPrimaryMediaInfo,fillSecondaryMediaInfo:fillSecondaryMediaInfo,getMediaInfoStats:getMediaInfoStats}}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/metadataeditor/metadataeditor.js b/dashboard-ui/bower_components/emby-webcomponents/metadataeditor/metadataeditor.js index f94da39b7c..700f500252 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/metadataeditor/metadataeditor.js +++ b/dashboard-ui/bower_components/emby-webcomponents/metadataeditor/metadataeditor.js @@ -1 +1 @@ -define(["itemHelper","dom","layoutManager","dialogHelper","datetime","loading","focusManager","connectionManager","globalize","require","shell","emby-checkbox","emby-input","emby-select","listViewStyle","emby-textarea","emby-button","paper-icon-button-light","css!./../formdialog","clearButtonStyle"],function(itemHelper,dom,layoutManager,dialogHelper,datetime,loading,focusManager,connectionManager,globalize,require,shell){"use strict";function isDialog(){return currentContext.classList.contains("dialog")}function closeDialog(isSubmitted){isDialog()&&dialogHelper.close(currentContext)}function submitUpdatedItem(form,item){function afterContentTypeUpdated(){require(["toast"],function(toast){toast(globalize.translate("sharedcomponents#MessageItemSaved"))}),loading.hide(),closeDialog(!0)}var apiClient=getApiClient();apiClient.updateItem(item).then(function(){var newContentType=form.querySelector("#selectContentType").value||"";(metadataEditorInfo.ContentType||"")!==newContentType?apiClient.ajax({url:apiClient.getUrl("Items/"+item.Id+"/ContentType",{ContentType:newContentType}),type:"POST"}).then(function(){afterContentTypeUpdated()}):afterContentTypeUpdated()})}function getSelectedAirDays(form){var checkedItems=form.querySelectorAll(".chkAirDay:checked")||[];return Array.prototype.map.call(checkedItems,function(c){return c.getAttribute("data-day")})}function getAlbumArtists(form){return form.querySelector("#txtAlbumArtist").value.trim().split(";").filter(function(s){return s.length>0}).map(function(a){return{Name:a}})}function getArtists(form){return form.querySelector("#txtArtist").value.trim().split(";").filter(function(s){return s.length>0}).map(function(a){return{Name:a}})}function getDateFromForm(form,element,property){var val=form.querySelector(element).value;if(!val)return null;if(currentItem[property]){var date=datetime.parseISO8601Date(currentItem[property],!0),parts=date.toISOString().split("T");if(0===parts[0].indexOf(val)){var iso=parts[1];val+="T"+iso}}return val}function onSubmit(e){loading.show();var form=this;try{var item={Id:currentItem.Id,Name:form.querySelector("#txtName").value,OriginalTitle:form.querySelector("#txtOriginalName").value,ForcedSortName:form.querySelector("#txtSortName").value,DisplayMediaType:form.querySelector("#txtDisplayMediaType").value,CommunityRating:form.querySelector("#txtCommunityRating").value,HomePageUrl:form.querySelector("#txtHomePageUrl").value,CriticRating:form.querySelector("#txtCriticRating").value,IndexNumber:form.querySelector("#txtIndexNumber").value||null,AbsoluteEpisodeNumber:form.querySelector("#txtAbsoluteEpisodeNumber").value,DvdEpisodeNumber:form.querySelector("#txtDvdEpisodeNumber").value,DvdSeasonNumber:form.querySelector("#txtDvdSeasonNumber").value,AirsBeforeSeasonNumber:form.querySelector("#txtAirsBeforeSeason").value,AirsAfterSeasonNumber:form.querySelector("#txtAirsAfterSeason").value,AirsBeforeEpisodeNumber:form.querySelector("#txtAirsBeforeEpisode").value,ParentIndexNumber:form.querySelector("#txtParentIndexNumber").value||null,DisplayOrder:form.querySelector("#selectDisplayOrder").value,Players:form.querySelector("#txtPlayers").value,Album:form.querySelector("#txtAlbum").value,AlbumArtists:getAlbumArtists(form),ArtistItems:getArtists(form),Overview:form.querySelector("#txtOverview").value,Status:form.querySelector("#selectStatus").value,AirDays:getSelectedAirDays(form),AirTime:form.querySelector("#txtAirTime").value,Genres:editableListViewValues(form.querySelector("#listGenres")),Tags:editableListViewValues(form.querySelector("#listTags")),Keywords:editableListViewValues(form.querySelector("#listKeywords")),Studios:editableListViewValues(form.querySelector("#listStudios")).map(function(element){return{Name:element}}),PremiereDate:getDateFromForm(form,"#txtPremiereDate","PremiereDate"),DateCreated:getDateFromForm(form,"#txtDateAdded","DateCreated"),EndDate:getDateFromForm(form,"#txtEndDate","EndDate"),ProductionYear:form.querySelector("#txtProductionYear").value,AspectRatio:form.querySelector("#txtOriginalAspectRatio").value,Video3DFormat:form.querySelector("#select3dFormat").value,OfficialRating:form.querySelector("#selectOfficialRating").value,CustomRating:form.querySelector("#selectCustomRating").value,People:currentItem.People,LockData:form.querySelector("#chkLockData").checked,LockedFields:Array.prototype.filter.call(form.querySelectorAll(".selectLockedField"),function(c){return!c.checked}).map(function(c){return c.getAttribute("data-value")})};item.ProviderIds=Object.assign({},currentItem.ProviderIds);var idElements=form.querySelectorAll(".txtExternalId");if(Array.prototype.map.call(idElements,function(idElem){var providerKey=idElem.getAttribute("data-providerkey");item.ProviderIds[providerKey]=idElem.value}),item.PreferredMetadataLanguage=form.querySelector("#selectLanguage").value,item.PreferredMetadataCountryCode=form.querySelector("#selectCountry").value,"Person"===currentItem.Type){var placeOfBirth=form.querySelector("#txtPlaceOfBirth").value;item.ProductionLocations=placeOfBirth?[placeOfBirth]:[]}if("Series"===currentItem.Type){var seriesRuntime=form.querySelector("#txtSeriesRuntime").value;item.RunTimeTicks=seriesRuntime?6e8*seriesRuntime:null}var tagline=form.querySelector("#txtTagline").value;item.Taglines=tagline?[tagline]:[],submitUpdatedItem(form,item)}catch(err){alert(err)}return e.preventDefault(),e.stopPropagation(),!1}function editableListViewValues(list){return Array.prototype.map.call(list.querySelectorAll(".textValue"),function(el){return el.textContent})}function addElementToEditableListview(source,sortCallback){require(["prompt"],function(prompt){prompt({label:"Value:"}).then(function(text){var list=dom.parentWithClass(source,"editableListviewContainer").querySelector(".paperList"),items=editableListViewValues(list);items.push(text),populateListView(list,items,sortCallback)})})}function removeElementFromListview(source){var el=dom.parentWithClass(source,"listItem");el.parentNode.removeChild(el)}function editPerson(context,person,index){require(["personEditor"],function(personEditor){personEditor.show(person).then(function(updatedPerson){var isNew=index===-1;isNew&¤tItem.People.push(updatedPerson),populatePeople(context,currentItem.People)})})}function showMoreMenu(context,button,user){require(["itemContextMenu"],function(itemContextMenu){var item=currentItem;itemContextMenu.show({item:item,positionTo:button,edit:!1,editImages:!0,editSubtitles:!0,sync:!1,share:!1,play:!1,queue:!1,user:user}).then(function(result){result.deleted?afterDeleted(context,item):result.updated&&reload(context,item.Id,item.ServerId)})})}function afterDeleted(context,item){var parentId=item.ParentId||item.SeasonId||item.SeriesId;parentId?reload(context,parentId,item.ServerId):require(["embyRouter"],function(embyRouter){embyRouter.goHome()})}function onWebSocketMessageReceived(e,data){var msg=data;"LibraryChanged"===msg.MessageType&&msg.Data.ItemsUpdated.indexOf(currentItem.Id)!==-1&&(console.log("Item updated - reloading metadata"),reload(currentContext,currentItem.Id,currentItem.ServerId))}function bindItemChanged(context,apiClient){Events.on(apiClient,"websocketmessage",onWebSocketMessageReceived)}function unbindItemChanged(context,apiClient){Events.off(apiClient,"websocketmessage",onWebSocketMessageReceived)}function onEditorClick(e){var btnRemoveFromEditorList=dom.parentWithClass(e.target,"btnRemoveFromEditorList");if(btnRemoveFromEditorList)return void removeElementFromListview(btnRemoveFromEditorList);var btnAddTextItem=dom.parentWithClass(e.target,"btnAddTextItem");btnAddTextItem&&addElementToEditableListview(btnAddTextItem)}function getApiClient(){return connectionManager.getApiClient(currentItem.ServerId)}function init(context,apiClient){context.querySelector(".externalIds").addEventListener("click",function(e){var btnOpenExternalId=dom.parentWithClass(e.target,"btnOpenExternalId");if(btnOpenExternalId){var field=context.querySelector("#"+btnOpenExternalId.getAttribute("data-fieldid")),formatString=field.getAttribute("data-formatstring");field.value&&shell.openUrl(formatString.replace("{0}",field.value))}}),context.querySelector(".btnCancel").addEventListener("click",function(){closeDialog(!1)}),context.querySelector(".btnMore").addEventListener("click",function(e){getApiClient().getCurrentUser().then(function(user){showMoreMenu(context,e.target,user)})}),context.querySelector(".btnHeaderSave").addEventListener("click",function(e){context.querySelector(".btnSave").click()}),context.querySelector("#chkLockData").addEventListener("click",function(e){e.target.checked?hideElement(".providerSettingsContainer"):showElement(".providerSettingsContainer")}),context.removeEventListener("click",onEditorClick),context.addEventListener("click",onEditorClick);var form=context.querySelector("form");form.removeEventListener("submit",onSubmit),form.addEventListener("submit",onSubmit),context.querySelector("#btnAddPerson").addEventListener("click",function(event,data){editPerson(context,{},-1)}),context.querySelector("#peopleList").addEventListener("click",function(e){var index,btnDeletePerson=dom.parentWithClass(e.target,"btnDeletePerson");btnDeletePerson&&(index=parseInt(btnDeletePerson.getAttribute("data-index")),currentItem.People.splice(index,1),populatePeople(context,currentItem.People));var btnEditPerson=dom.parentWithClass(e.target,"btnEditPerson");btnEditPerson&&(index=parseInt(btnEditPerson.getAttribute("data-index")),editPerson(context,currentItem.People[index],index))}),isDialog()&&bindItemChanged(context,apiClient)}function getItem(itemId,serverId){var apiClient=connectionManager.getApiClient(serverId);return itemId?apiClient.getItem(apiClient.getCurrentUserId(),itemId):apiClient.getRootFolder(apiClient.getCurrentUserId())}function getEditorConfig(itemId,serverId){var apiClient=connectionManager.getApiClient(serverId);return itemId?apiClient.getJSON(apiClient.getUrl("Items/"+itemId+"/MetadataEditor")):Promise.resolve({})}function populateCountries(select,allCountries){var html="";html+="";for(var i=0,length=allCountries.length;i"+culture.DisplayName+""}select.innerHTML=html}function populateLanguages(select,languages){var html="";html+="";for(var i=0,length=languages.length;i"+culture.DisplayName+""}select.innerHTML=html}function renderContentTypeOptions(context,metadataInfo){metadataInfo.ContentTypeOptions.length?showElement("#fldContentType",context):hideElement("#fldContentType",context);var html=metadataInfo.ContentTypeOptions.map(function(i){return'"}).join(""),selectEl=context.querySelector("#selectContentType");selectEl.innerHTML=html,selectEl.value=metadataInfo.ContentType||""}function loadExternalIds(context,item,externalIds){for(var html="",providerIds=item.ProviderIds||{},i=0,length=externalIds.length;i',html+='
';var value=providerIds[idInfo.Key]||"";html+='
',html+='',html+="
",formatString&&(html+=''),html+="
",html+="
"}var elem=context.querySelector(".externalIds",context);elem.innerHTML=html}function hideElement(selector,context,multiple){if(context=context||document,"string"==typeof selector){var elements=multiple?context.querySelectorAll(selector):[context.querySelector(selector)];Array.prototype.forEach.call(elements,function(el){el&&el.classList.add("hide")})}else selector.classList.add("hide")}function showElement(selector,context,multiple){if(context=context||document,"string"==typeof selector){var elements=multiple?context.querySelectorAll(selector):[context.querySelector(selector)];Array.prototype.forEach.call(elements,function(el){el&&el.classList.remove("hide")})}else selector.classList.remove("hide")}function setFieldVisibilities(context,item){item.Path&&"Remote"!==item.LocationType?showElement("#fldPath",context):hideElement("#fldPath",context),"Series"===item.Type||"Movie"===item.Type||"Trailer"===item.Type?showElement("#fldOriginalName",context):hideElement("#fldOriginalName",context),"Series"===item.Type?showElement("#fldSeriesRuntime",context):hideElement("#fldSeriesRuntime",context),"Series"===item.Type||"Person"===item.Type?showElement("#fldEndDate",context):hideElement("#fldEndDate",context),"MusicAlbum"===item.Type?showElement("#albumAssociationMessage",context):hideElement("#albumAssociationMessage",context),"Game"===item.MediaType?showElement("#fldPlayers",context):hideElement("#fldPlayers",context),"Movie"===item.Type||"Trailer"===item.Type?showElement("#fldCriticRating",context):hideElement("#fldCriticRating",context),"Series"===item.Type?(showElement("#fldStatus",context),showElement("#fldAirDays",context),showElement("#fldAirTime",context)):(hideElement("#fldStatus",context),hideElement("#fldAirDays",context),hideElement("#fldAirTime",context)),"Video"===item.MediaType&&"TvChannel"!==item.Type?showElement("#fld3dFormat",context):hideElement("#fld3dFormat",context),"Audio"===item.Type?showElement("#fldAlbumArtist",context):hideElement("#fldAlbumArtist",context),"Audio"===item.Type||"MusicVideo"===item.Type?(showElement("#fldArtist",context),showElement("#fldAlbum",context)):(hideElement("#fldArtist",context),hideElement("#fldAlbum",context)),"Episode"===item.Type?showElement("#collapsibleDvdEpisodeInfo",context):hideElement("#collapsibleDvdEpisodeInfo",context),"Episode"===item.Type&&0===item.ParentIndexNumber?showElement("#collapsibleSpecialEpisodeInfo",context):hideElement("#collapsibleSpecialEpisodeInfo",context),"Person"===item.Type||"Genre"===item.Type||"Studio"===item.Type||"GameGenre"===item.Type||"MusicGenre"===item.Type||"TvChannel"===item.Type?(hideElement("#fldCommunityRating",context),hideElement("#genresCollapsible",context),hideElement("#peopleCollapsible",context),hideElement("#studiosCollapsible",context),"TvChannel"===item.Type?showElement("#fldOfficialRating",context):hideElement("#fldOfficialRating",context),hideElement("#fldCustomRating",context)):(showElement("#fldCommunityRating",context),showElement("#genresCollapsible",context),showElement("#peopleCollapsible",context),showElement("#studiosCollapsible",context),showElement("#fldOfficialRating",context),showElement("#fldCustomRating",context)),showElement("#tagsCollapsible",context),"TvChannel"===item.Type?(hideElement("#metadataSettingsCollapsible",context),hideElement("#fldPremiereDate",context),hideElement("#fldDateAdded",context),hideElement("#fldYear",context)):(showElement("#metadataSettingsCollapsible",context),showElement("#fldPremiereDate",context),showElement("#fldDateAdded",context),showElement("#fldYear",context)),"Movie"===item.Type||"Trailer"===item.Type||"BoxSet"===item.Type?showElement("#keywordsCollapsible",context):hideElement("#keywordsCollapsible",context),"Video"===item.MediaType&&"TvChannel"!==item.Type?showElement("#fldSourceType",context):hideElement("#fldSourceType",context),"Person"===item.Type?(context.querySelector("#txtProductionYear").label(globalize.translate("sharedcomponents#LabelBirthYear")),context.querySelector("#txtPremiereDate").label(globalize.translate("sharedcomponents#LabelBirthDate")),context.querySelector("#txtEndDate").label(globalize.translate("sharedcomponents#LabelDeathDate")),showElement("#fldPlaceOfBirth")):(context.querySelector("#txtProductionYear").label(globalize.translate("sharedcomponents#LabelYear")),context.querySelector("#txtPremiereDate").label(globalize.translate("sharedcomponents#LabelReleaseDate")),context.querySelector("#txtEndDate").label(globalize.translate("sharedcomponents#LabelEndDate")),hideElement("#fldPlaceOfBirth")),"Video"===item.MediaType&&"TvChannel"!==item.Type?showElement("#fldOriginalAspectRatio"):hideElement("#fldOriginalAspectRatio"),"Audio"===item.Type||"Episode"===item.Type||"Season"===item.Type?(showElement("#fldIndexNumber"),"Episode"===item.Type?context.querySelector("#txtIndexNumber").label(globalize.translate("sharedcomponents#LabelEpisodeNumber")):"Season"===item.Type?context.querySelector("#txtIndexNumber").label(globalize.translate("sharedcomponents#LabelSeasonNumber")):"Audio"===item.Type?context.querySelector("#txtIndexNumber").label(globalize.translate("sharedcomponents#LabelTrackNumber")):context.querySelector("#txtIndexNumber").label(globalize.translate("sharedcomponents#LabelNumber"))):hideElement("#fldIndexNumber"),"Audio"===item.Type||"Episode"===item.Type?(showElement("#fldParentIndexNumber"),"Episode"===item.Type?context.querySelector("#txtParentIndexNumber").label(globalize.translate("sharedcomponents#LabelSeasonNumber")):"Audio"===item.Type?context.querySelector("#txtParentIndexNumber").label(globalize.translate("sharedcomponents#LabelDiscNumber")):context.querySelector("#txtParentIndexNumber").label(globalize.translate("sharedcomponents#LabelParentNumber"))):hideElement("#fldParentIndexNumber",context),"BoxSet"===item.Type?(showElement("#fldDisplayOrder",context),context.querySelector("#selectDisplayOrder").innerHTML='"):(context.querySelector("#selectDisplayOrder").innerHTML="",hideElement("#fldDisplayOrder",context));var displaySettingFields=context.querySelectorAll(".fldDisplaySetting"),hiddenDisplaySettingFields=Array.prototype.filter.call(displaySettingFields,function(field){return"none"!==field.style.display});hiddenDisplaySettingFields.length?showElement("#collapsibleDisplaySettings",context):hideElement("#collapsibleDisplaySettings",context)}function fillItemInfo(context,item,parentalRatingOptions){var select=context.querySelector("#selectOfficialRating");populateRatings(parentalRatingOptions,select,item.OfficialRating),select.value=item.OfficialRating||"",select=context.querySelector("#selectCustomRating"),populateRatings(parentalRatingOptions,select,item.CustomRating),select.value=item.CustomRating||"";var selectStatus=context.querySelector("#selectStatus");populateStatus(selectStatus),selectStatus.value=item.Status||"",context.querySelector("#select3dFormat",context).value=item.Video3DFormat||"",Array.prototype.forEach.call(context.querySelectorAll(".chkAirDay",context),function(el){el.checked=(item.AirDays||[]).indexOf(el.getAttribute("data-day"))!==-1}),populateListView(context.querySelector("#listGenres"),item.Genres),populatePeople(context,item.People||[]),populateListView(context.querySelector("#listStudios"),(item.Studios||[]).map(function(element){return element.Name||""})),populateListView(context.querySelector("#listTags"),item.Tags),populateListView(context.querySelector("#listKeywords"),item.Keywords);var lockData=item.LockData||!1,chkLockData=context.querySelector("#chkLockData");chkLockData.checked=lockData,chkLockData.checked?hideElement(".providerSettingsContainer",context):showElement(".providerSettingsContainer",context),populateInternetProviderSettings(context,item,item.LockedFields),context.querySelector("#txtPath").value=item.Path||"",context.querySelector("#txtName").value=item.Name||"",context.querySelector("#txtOriginalName").value=item.OriginalTitle||"",context.querySelector("#txtOverview").value=item.Overview||"",context.querySelector("#txtTagline").value=item.Taglines&&item.Taglines.length?item.Taglines[0]:"",context.querySelector("#txtSortName").value=item.ForcedSortName||"",context.querySelector("#txtDisplayMediaType").value=item.DisplayMediaType||"",context.querySelector("#txtCommunityRating").value=item.CommunityRating||"",context.querySelector("#txtHomePageUrl").value=item.HomePageUrl||"",context.querySelector("#txtCriticRating").value=item.CriticRating||"",context.querySelector("#txtIndexNumber").value="IndexNumber"in item?item.IndexNumber:"",context.querySelector("#txtParentIndexNumber").value="ParentIndexNumber"in item?item.ParentIndexNumber:"",context.querySelector("#txtPlayers").value=item.Players||"",context.querySelector("#txtAbsoluteEpisodeNumber").value="AbsoluteEpisodeNumber"in item?item.AbsoluteEpisodeNumber:"",context.querySelector("#txtDvdEpisodeNumber").value="DvdEpisodeNumber"in item?item.DvdEpisodeNumber:"",context.querySelector("#txtDvdSeasonNumber").value="DvdSeasonNumber"in item?item.DvdSeasonNumber:"",context.querySelector("#txtAirsBeforeSeason").value="AirsBeforeSeasonNumber"in item?item.AirsBeforeSeasonNumber:"",context.querySelector("#txtAirsAfterSeason").value="AirsAfterSeasonNumber"in item?item.AirsAfterSeasonNumber:"",context.querySelector("#txtAirsBeforeEpisode").value="AirsBeforeEpisodeNumber"in item?item.AirsBeforeEpisodeNumber:"",context.querySelector("#txtAlbum").value=item.Album||"",context.querySelector("#txtAlbumArtist").value=(item.AlbumArtists||[]).map(function(a){return a.Name}).join(";"),context.querySelector("#selectDisplayOrder").value=item.DisplayOrder,context.querySelector("#txtArtist").value=(item.ArtistItems||[]).map(function(a){return a.Name}).join(";");var date;if(item.DateCreated)try{date=datetime.parseISO8601Date(item.DateCreated,!0),context.querySelector("#txtDateAdded").value=date.toISOString().slice(0,10)}catch(e){context.querySelector("#txtDateAdded").value=""}else context.querySelector("#txtDateAdded").value="";if(item.PremiereDate)try{date=datetime.parseISO8601Date(item.PremiereDate,!0),context.querySelector("#txtPremiereDate").value=date.toISOString().slice(0,10)}catch(e){context.querySelector("#txtPremiereDate").value=""}else context.querySelector("#txtPremiereDate").value="";if(item.EndDate)try{date=datetime.parseISO8601Date(item.EndDate,!0),context.querySelector("#txtEndDate").value=date.toISOString().slice(0,10)}catch(e){context.querySelector("#txtEndDate").value=""}else context.querySelector("#txtEndDate").value="";context.querySelector("#txtProductionYear").value=item.ProductionYear||"",context.querySelector("#txtAirTime").value=item.AirTime||"";var placeofBirth=item.ProductionLocations&&item.ProductionLocations.length?item.ProductionLocations[0]:"";if(context.querySelector("#txtPlaceOfBirth").value=placeofBirth,context.querySelector("#txtOriginalAspectRatio").value=item.AspectRatio||"",context.querySelector("#selectLanguage").value=item.PreferredMetadataLanguage||"",context.querySelector("#selectCountry").value=item.PreferredMetadataCountryCode||"",item.RunTimeTicks){var minutes=item.RunTimeTicks/6e8;context.querySelector("#txtSeriesRuntime").value=Math.round(minutes)}else context.querySelector("#txtSeriesRuntime",context).value=""}function populateRatings(allParentalRatings,select,currentValue){var html="";html+="";var i,length,rating,ratings=[],currentValueFound=!1;for(i=0,length=allParentalRatings.length;i"+rating.Name+"";select.innerHTML=html}function populateStatus(select){var html="";html+="",html+="",html+="",select.innerHTML=html}function populateListView(list,items,sortCallback){items=items||[],"undefined"==typeof sortCallback?items.sort(function(a,b){return a.toLowerCase().localeCompare(b.toLowerCase())}):items=sortCallback(items);for(var html="",i=0;i',html+='live_tv',html+='
',html+='
',html+=items[i],html+="
",html+="
",html+='',html+="
";list.innerHTML=html}function populatePeople(context,people){for(var lastType="",html="",elem=context.querySelector("#peopleList"),i=0,length=people.length;i',html+='person',html+='
',html+='",html+="
",html+='',html+="
"}elem.innerHTML=html}function generateSliders(fields,currentFields){for(var html="",i=0;i",html+=""+name+"",html+=""}return html}function populateInternetProviderSettings(context,item,lockedFields){var container=context.querySelector(".providerSettingsContainer");lockedFields=lockedFields||[];var metadatafields=[{name:globalize.translate("sharedcomponents#Name"),value:"Name"},{name:globalize.translate("sharedcomponents#Overview"),value:"Overview"},{name:globalize.translate("sharedcomponents#Genres"),value:"Genres"},{name:globalize.translate("sharedcomponents#ParentalRating"),value:"OfficialRating"},{name:globalize.translate("sharedcomponents#People"),value:"Cast"}];"Person"===item.Type?metadatafields.push({name:globalize.translate("sharedcomponents#BirthLocation"),value:"ProductionLocations"}):metadatafields.push({name:globalize.translate("sharedcomponents#ProductionLocations"),value:"ProductionLocations"}),"Series"===item.Type&&metadatafields.push({name:globalize.translate("Runtime"),value:"Runtime"}),metadatafields.push({name:globalize.translate("sharedcomponents#Studios"),value:"Studios"}),metadatafields.push({name:globalize.translate("sharedcomponents#Tags"),value:"Tags"}),metadatafields.push({name:globalize.translate("sharedcomponents#Keywords"),value:"Keywords"}),metadatafields.push({name:globalize.translate("sharedcomponents#Images"),value:"Images"}),metadatafields.push({name:globalize.translate("sharedcomponents#Backdrops"),value:"Backdrops"}),"Game"===item.Type&&metadatafields.push({name:globalize.translate("sharedcomponents#Screenshots"),value:"Screenshots"});var html="";html+="

"+globalize.translate("sharedcomponents#HeaderEnabledFields")+"

",html+="

"+globalize.translate("sharedcomponents#HeaderEnabledFieldsHelp")+"

",html+=generateSliders(metadatafields,lockedFields),container.innerHTML=html}function reload(context,itemId,serverId){loading.show(),Promise.all([getItem(itemId,serverId),getEditorConfig(itemId,serverId)]).then(function(responses){var item=responses[0];metadataEditorInfo=responses[1],currentItem=item;var languages=metadataEditorInfo.Cultures,countries=metadataEditorInfo.Countries;renderContentTypeOptions(context,metadataEditorInfo),loadExternalIds(context,item,metadataEditorInfo.ExternalIdInfos),populateLanguages(context.querySelector("#selectLanguage"),languages),populateCountries(context.querySelector("#selectCountry"),countries),setFieldVisibilities(context,item),fillItemInfo(context,item,metadataEditorInfo.ParentalRatingOptions),"Video"===item.MediaType&&"Episode"!==item.Type?showElement("#fldTagline",context):hideElement("#fldTagline",context),loading.hide()})}function centerFocus(elem,horiz,on){require(["scrollHelper"],function(scrollHelper){var fn=on?"on":"off";scrollHelper.centerFocus[fn](elem,horiz)})}function show(itemId,serverId,resolve,reject){loading.show(),require(["text!./metadataeditor.template.html"],function(template){var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="medium-tall";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="";html+=globalize.translateDocument(template,"sharedcomponents"),dlg.innerHTML=html,layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!0),dialogHelper.open(dlg),dlg.addEventListener("close",function(){layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!1),unbindItemChanged(dlg,connectionManager.getApiClient(serverId)),resolve()}),currentContext=dlg,init(dlg,connectionManager.getApiClient(serverId)),reload(dlg,itemId,serverId)})}var currentContext,metadataEditorInfo,currentItem;return{show:function(itemId,serverId){return new Promise(function(resolve,reject){return show(itemId,serverId,resolve,reject)})},embed:function(elem,itemId,serverId){return new Promise(function(resolve,reject){loading.show(),require(["text!./metadataeditor.template.html"],function(template){elem.innerHTML=globalize.translateDocument(template,"sharedcomponents"),elem.querySelector(".formDialogFooter").classList.remove("formDialogFooter"),elem.querySelector(".btnHeaderSave").classList.remove("hide"),elem.querySelector(".btnCancel").classList.add("hide"),currentContext=elem,init(elem,connectionManager.getApiClient(serverId)),reload(elem,itemId,serverId),focusManager.autoFocus(elem)})})}}}); \ No newline at end of file +define(["itemHelper","dom","layoutManager","dialogHelper","datetime","loading","focusManager","connectionManager","globalize","require","shell","emby-checkbox","emby-input","emby-select","listViewStyle","emby-textarea","emby-button","paper-icon-button-light","css!./../formdialog","clearButtonStyle"],function(itemHelper,dom,layoutManager,dialogHelper,datetime,loading,focusManager,connectionManager,globalize,require,shell){"use strict";function isDialog(){return currentContext.classList.contains("dialog")}function closeDialog(isSubmitted){isDialog()&&dialogHelper.close(currentContext)}function submitUpdatedItem(form,item){function afterContentTypeUpdated(){require(["toast"],function(toast){toast(globalize.translate("sharedcomponents#MessageItemSaved"))}),loading.hide(),closeDialog(!0)}var apiClient=getApiClient();apiClient.updateItem(item).then(function(){var newContentType=form.querySelector("#selectContentType").value||"";(metadataEditorInfo.ContentType||"")!==newContentType?apiClient.ajax({url:apiClient.getUrl("Items/"+item.Id+"/ContentType",{ContentType:newContentType}),type:"POST"}).then(function(){afterContentTypeUpdated()}):afterContentTypeUpdated()})}function getSelectedAirDays(form){var checkedItems=form.querySelectorAll(".chkAirDay:checked")||[];return Array.prototype.map.call(checkedItems,function(c){return c.getAttribute("data-day")})}function getAlbumArtists(form){return form.querySelector("#txtAlbumArtist").value.trim().split(";").filter(function(s){return s.length>0}).map(function(a){return{Name:a}})}function getArtists(form){return form.querySelector("#txtArtist").value.trim().split(";").filter(function(s){return s.length>0}).map(function(a){return{Name:a}})}function getDateFromForm(form,element,property){var val=form.querySelector(element).value;if(!val)return null;if(currentItem[property]){var date=datetime.parseISO8601Date(currentItem[property],!0),parts=date.toISOString().split("T");if(0===parts[0].indexOf(val)){var iso=parts[1];val+="T"+iso}}return val}function onSubmit(e){loading.show();var form=this;try{var item={Id:currentItem.Id,Name:form.querySelector("#txtName").value,OriginalTitle:form.querySelector("#txtOriginalName").value,ForcedSortName:form.querySelector("#txtSortName").value,DisplayMediaType:form.querySelector("#txtDisplayMediaType").value,CommunityRating:form.querySelector("#txtCommunityRating").value,HomePageUrl:form.querySelector("#txtHomePageUrl").value,CriticRating:form.querySelector("#txtCriticRating").value,IndexNumber:form.querySelector("#txtIndexNumber").value||null,AbsoluteEpisodeNumber:form.querySelector("#txtAbsoluteEpisodeNumber").value,DvdEpisodeNumber:form.querySelector("#txtDvdEpisodeNumber").value,DvdSeasonNumber:form.querySelector("#txtDvdSeasonNumber").value,AirsBeforeSeasonNumber:form.querySelector("#txtAirsBeforeSeason").value,AirsAfterSeasonNumber:form.querySelector("#txtAirsAfterSeason").value,AirsBeforeEpisodeNumber:form.querySelector("#txtAirsBeforeEpisode").value,ParentIndexNumber:form.querySelector("#txtParentIndexNumber").value||null,DisplayOrder:form.querySelector("#selectDisplayOrder").value,Players:form.querySelector("#txtPlayers").value,Album:form.querySelector("#txtAlbum").value,AlbumArtists:getAlbumArtists(form),ArtistItems:getArtists(form),Overview:form.querySelector("#txtOverview").value,Status:form.querySelector("#selectStatus").value,AirDays:getSelectedAirDays(form),AirTime:form.querySelector("#txtAirTime").value,Genres:editableListViewValues(form.querySelector("#listGenres")),Tags:editableListViewValues(form.querySelector("#listTags")),Keywords:editableListViewValues(form.querySelector("#listKeywords")),Studios:editableListViewValues(form.querySelector("#listStudios")).map(function(element){return{Name:element}}),PremiereDate:getDateFromForm(form,"#txtPremiereDate","PremiereDate"),DateCreated:getDateFromForm(form,"#txtDateAdded","DateCreated"),EndDate:getDateFromForm(form,"#txtEndDate","EndDate"),ProductionYear:form.querySelector("#txtProductionYear").value,AspectRatio:form.querySelector("#txtOriginalAspectRatio").value,Video3DFormat:form.querySelector("#select3dFormat").value,OfficialRating:form.querySelector("#selectOfficialRating").value,CustomRating:form.querySelector("#selectCustomRating").value,People:currentItem.People,LockData:form.querySelector("#chkLockData").checked,LockedFields:Array.prototype.filter.call(form.querySelectorAll(".selectLockedField"),function(c){return!c.checked}).map(function(c){return c.getAttribute("data-value")})};item.ProviderIds=Object.assign({},currentItem.ProviderIds);var idElements=form.querySelectorAll(".txtExternalId");if(Array.prototype.map.call(idElements,function(idElem){var providerKey=idElem.getAttribute("data-providerkey");item.ProviderIds[providerKey]=idElem.value}),item.PreferredMetadataLanguage=form.querySelector("#selectLanguage").value,item.PreferredMetadataCountryCode=form.querySelector("#selectCountry").value,"Person"===currentItem.Type){var placeOfBirth=form.querySelector("#txtPlaceOfBirth").value;item.ProductionLocations=placeOfBirth?[placeOfBirth]:[]}if("Series"===currentItem.Type){var seriesRuntime=form.querySelector("#txtSeriesRuntime").value;item.RunTimeTicks=seriesRuntime?6e8*seriesRuntime:null}var tagline=form.querySelector("#txtTagline").value;item.Taglines=tagline?[tagline]:[],submitUpdatedItem(form,item)}catch(err){alert(err)}return e.preventDefault(),e.stopPropagation(),!1}function editableListViewValues(list){return Array.prototype.map.call(list.querySelectorAll(".textValue"),function(el){return el.textContent})}function addElementToEditableListview(source,sortCallback){require(["prompt"],function(prompt){prompt({label:"Value:"}).then(function(text){var list=dom.parentWithClass(source,"editableListviewContainer").querySelector(".paperList"),items=editableListViewValues(list);items.push(text),populateListView(list,items,sortCallback)})})}function removeElementFromListview(source){var el=dom.parentWithClass(source,"listItem");el.parentNode.removeChild(el)}function editPerson(context,person,index){require(["personEditor"],function(personEditor){personEditor.show(person).then(function(updatedPerson){var isNew=index===-1;isNew&¤tItem.People.push(updatedPerson),populatePeople(context,currentItem.People)})})}function showMoreMenu(context,button,user){require(["itemContextMenu"],function(itemContextMenu){var item=currentItem;itemContextMenu.show({item:item,positionTo:button,edit:!1,editImages:!0,editSubtitles:!0,sync:!1,share:!1,play:!1,queue:!1,user:user}).then(function(result){result.deleted?afterDeleted(context,item):result.updated&&reload(context,item.Id,item.ServerId)})})}function afterDeleted(context,item){var parentId=item.ParentId||item.SeasonId||item.SeriesId;parentId?reload(context,parentId,item.ServerId):require(["appRouter"],function(appRouter){appRouter.goHome()})}function onWebSocketMessageReceived(e,data){var msg=data;"LibraryChanged"===msg.MessageType&&msg.Data.ItemsUpdated.indexOf(currentItem.Id)!==-1&&(console.log("Item updated - reloading metadata"),reload(currentContext,currentItem.Id,currentItem.ServerId))}function bindItemChanged(context,apiClient){Events.on(apiClient,"websocketmessage",onWebSocketMessageReceived)}function unbindItemChanged(context,apiClient){Events.off(apiClient,"websocketmessage",onWebSocketMessageReceived)}function onEditorClick(e){var btnRemoveFromEditorList=dom.parentWithClass(e.target,"btnRemoveFromEditorList");if(btnRemoveFromEditorList)return void removeElementFromListview(btnRemoveFromEditorList);var btnAddTextItem=dom.parentWithClass(e.target,"btnAddTextItem");btnAddTextItem&&addElementToEditableListview(btnAddTextItem)}function getApiClient(){return connectionManager.getApiClient(currentItem.ServerId)}function init(context,apiClient){context.querySelector(".externalIds").addEventListener("click",function(e){var btnOpenExternalId=dom.parentWithClass(e.target,"btnOpenExternalId");if(btnOpenExternalId){var field=context.querySelector("#"+btnOpenExternalId.getAttribute("data-fieldid")),formatString=field.getAttribute("data-formatstring");field.value&&shell.openUrl(formatString.replace("{0}",field.value))}}),context.querySelector(".btnCancel").addEventListener("click",function(){closeDialog(!1)}),context.querySelector(".btnMore").addEventListener("click",function(e){getApiClient().getCurrentUser().then(function(user){showMoreMenu(context,e.target,user)})}),context.querySelector(".btnHeaderSave").addEventListener("click",function(e){context.querySelector(".btnSave").click()}),context.querySelector("#chkLockData").addEventListener("click",function(e){e.target.checked?hideElement(".providerSettingsContainer"):showElement(".providerSettingsContainer")}),context.removeEventListener("click",onEditorClick),context.addEventListener("click",onEditorClick);var form=context.querySelector("form");form.removeEventListener("submit",onSubmit),form.addEventListener("submit",onSubmit),context.querySelector("#btnAddPerson").addEventListener("click",function(event,data){editPerson(context,{},-1)}),context.querySelector("#peopleList").addEventListener("click",function(e){var index,btnDeletePerson=dom.parentWithClass(e.target,"btnDeletePerson");btnDeletePerson&&(index=parseInt(btnDeletePerson.getAttribute("data-index")),currentItem.People.splice(index,1),populatePeople(context,currentItem.People));var btnEditPerson=dom.parentWithClass(e.target,"btnEditPerson");btnEditPerson&&(index=parseInt(btnEditPerson.getAttribute("data-index")),editPerson(context,currentItem.People[index],index))}),isDialog()&&bindItemChanged(context,apiClient)}function getItem(itemId,serverId){var apiClient=connectionManager.getApiClient(serverId);return itemId?apiClient.getItem(apiClient.getCurrentUserId(),itemId):apiClient.getRootFolder(apiClient.getCurrentUserId())}function getEditorConfig(itemId,serverId){var apiClient=connectionManager.getApiClient(serverId);return itemId?apiClient.getJSON(apiClient.getUrl("Items/"+itemId+"/MetadataEditor")):Promise.resolve({})}function populateCountries(select,allCountries){var html="";html+="";for(var i=0,length=allCountries.length;i"+culture.DisplayName+""}select.innerHTML=html}function populateLanguages(select,languages){var html="";html+="";for(var i=0,length=languages.length;i"+culture.DisplayName+""}select.innerHTML=html}function renderContentTypeOptions(context,metadataInfo){metadataInfo.ContentTypeOptions.length?showElement("#fldContentType",context):hideElement("#fldContentType",context);var html=metadataInfo.ContentTypeOptions.map(function(i){return'"}).join(""),selectEl=context.querySelector("#selectContentType");selectEl.innerHTML=html,selectEl.value=metadataInfo.ContentType||""}function loadExternalIds(context,item,externalIds){for(var html="",providerIds=item.ProviderIds||{},i=0,length=externalIds.length;i',html+='
';var value=providerIds[idInfo.Key]||"";html+='
',html+='',html+="
",formatString&&(html+=''),html+="
",html+="
"}var elem=context.querySelector(".externalIds",context);elem.innerHTML=html}function hideElement(selector,context,multiple){if(context=context||document,"string"==typeof selector){var elements=multiple?context.querySelectorAll(selector):[context.querySelector(selector)];Array.prototype.forEach.call(elements,function(el){el&&el.classList.add("hide")})}else selector.classList.add("hide")}function showElement(selector,context,multiple){if(context=context||document,"string"==typeof selector){var elements=multiple?context.querySelectorAll(selector):[context.querySelector(selector)];Array.prototype.forEach.call(elements,function(el){el&&el.classList.remove("hide")})}else selector.classList.remove("hide")}function setFieldVisibilities(context,item){item.Path&&"Remote"!==item.LocationType?showElement("#fldPath",context):hideElement("#fldPath",context),"Series"===item.Type||"Movie"===item.Type||"Trailer"===item.Type?showElement("#fldOriginalName",context):hideElement("#fldOriginalName",context),"Series"===item.Type?showElement("#fldSeriesRuntime",context):hideElement("#fldSeriesRuntime",context),"Series"===item.Type||"Person"===item.Type?showElement("#fldEndDate",context):hideElement("#fldEndDate",context),"MusicAlbum"===item.Type?showElement("#albumAssociationMessage",context):hideElement("#albumAssociationMessage",context),"Game"===item.MediaType?showElement("#fldPlayers",context):hideElement("#fldPlayers",context),"Movie"===item.Type||"Trailer"===item.Type?showElement("#fldCriticRating",context):hideElement("#fldCriticRating",context),"Series"===item.Type?(showElement("#fldStatus",context),showElement("#fldAirDays",context),showElement("#fldAirTime",context)):(hideElement("#fldStatus",context),hideElement("#fldAirDays",context),hideElement("#fldAirTime",context)),"Video"===item.MediaType&&"TvChannel"!==item.Type?showElement("#fld3dFormat",context):hideElement("#fld3dFormat",context),"Audio"===item.Type?showElement("#fldAlbumArtist",context):hideElement("#fldAlbumArtist",context),"Audio"===item.Type||"MusicVideo"===item.Type?(showElement("#fldArtist",context),showElement("#fldAlbum",context)):(hideElement("#fldArtist",context),hideElement("#fldAlbum",context)),"Episode"===item.Type?showElement("#collapsibleDvdEpisodeInfo",context):hideElement("#collapsibleDvdEpisodeInfo",context),"Episode"===item.Type&&0===item.ParentIndexNumber?showElement("#collapsibleSpecialEpisodeInfo",context):hideElement("#collapsibleSpecialEpisodeInfo",context),"Person"===item.Type||"Genre"===item.Type||"Studio"===item.Type||"GameGenre"===item.Type||"MusicGenre"===item.Type||"TvChannel"===item.Type?(hideElement("#fldCommunityRating",context),hideElement("#genresCollapsible",context),hideElement("#peopleCollapsible",context),hideElement("#studiosCollapsible",context),"TvChannel"===item.Type?showElement("#fldOfficialRating",context):hideElement("#fldOfficialRating",context),hideElement("#fldCustomRating",context)):(showElement("#fldCommunityRating",context),showElement("#genresCollapsible",context),showElement("#peopleCollapsible",context),showElement("#studiosCollapsible",context),showElement("#fldOfficialRating",context),showElement("#fldCustomRating",context)),showElement("#tagsCollapsible",context),"TvChannel"===item.Type?(hideElement("#metadataSettingsCollapsible",context),hideElement("#fldPremiereDate",context),hideElement("#fldDateAdded",context),hideElement("#fldYear",context)):(showElement("#metadataSettingsCollapsible",context),showElement("#fldPremiereDate",context),showElement("#fldDateAdded",context),showElement("#fldYear",context)),"Movie"===item.Type||"Trailer"===item.Type||"BoxSet"===item.Type?showElement("#keywordsCollapsible",context):hideElement("#keywordsCollapsible",context),"Video"===item.MediaType&&"TvChannel"!==item.Type?showElement("#fldSourceType",context):hideElement("#fldSourceType",context),"Person"===item.Type?(context.querySelector("#txtProductionYear").label(globalize.translate("sharedcomponents#LabelBirthYear")),context.querySelector("#txtPremiereDate").label(globalize.translate("sharedcomponents#LabelBirthDate")),context.querySelector("#txtEndDate").label(globalize.translate("sharedcomponents#LabelDeathDate")),showElement("#fldPlaceOfBirth")):(context.querySelector("#txtProductionYear").label(globalize.translate("sharedcomponents#LabelYear")),context.querySelector("#txtPremiereDate").label(globalize.translate("sharedcomponents#LabelReleaseDate")),context.querySelector("#txtEndDate").label(globalize.translate("sharedcomponents#LabelEndDate")),hideElement("#fldPlaceOfBirth")),"Video"===item.MediaType&&"TvChannel"!==item.Type?showElement("#fldOriginalAspectRatio"):hideElement("#fldOriginalAspectRatio"),"Audio"===item.Type||"Episode"===item.Type||"Season"===item.Type?(showElement("#fldIndexNumber"),"Episode"===item.Type?context.querySelector("#txtIndexNumber").label(globalize.translate("sharedcomponents#LabelEpisodeNumber")):"Season"===item.Type?context.querySelector("#txtIndexNumber").label(globalize.translate("sharedcomponents#LabelSeasonNumber")):"Audio"===item.Type?context.querySelector("#txtIndexNumber").label(globalize.translate("sharedcomponents#LabelTrackNumber")):context.querySelector("#txtIndexNumber").label(globalize.translate("sharedcomponents#LabelNumber"))):hideElement("#fldIndexNumber"),"Audio"===item.Type||"Episode"===item.Type?(showElement("#fldParentIndexNumber"),"Episode"===item.Type?context.querySelector("#txtParentIndexNumber").label(globalize.translate("sharedcomponents#LabelSeasonNumber")):"Audio"===item.Type?context.querySelector("#txtParentIndexNumber").label(globalize.translate("sharedcomponents#LabelDiscNumber")):context.querySelector("#txtParentIndexNumber").label(globalize.translate("sharedcomponents#LabelParentNumber"))):hideElement("#fldParentIndexNumber",context),"BoxSet"===item.Type?(showElement("#fldDisplayOrder",context),context.querySelector("#selectDisplayOrder").innerHTML='"):(context.querySelector("#selectDisplayOrder").innerHTML="",hideElement("#fldDisplayOrder",context));var displaySettingFields=context.querySelectorAll(".fldDisplaySetting"),hiddenDisplaySettingFields=Array.prototype.filter.call(displaySettingFields,function(field){return"none"!==field.style.display});hiddenDisplaySettingFields.length?showElement("#collapsibleDisplaySettings",context):hideElement("#collapsibleDisplaySettings",context)}function fillItemInfo(context,item,parentalRatingOptions){var select=context.querySelector("#selectOfficialRating");populateRatings(parentalRatingOptions,select,item.OfficialRating),select.value=item.OfficialRating||"",select=context.querySelector("#selectCustomRating"),populateRatings(parentalRatingOptions,select,item.CustomRating),select.value=item.CustomRating||"";var selectStatus=context.querySelector("#selectStatus");populateStatus(selectStatus),selectStatus.value=item.Status||"",context.querySelector("#select3dFormat",context).value=item.Video3DFormat||"",Array.prototype.forEach.call(context.querySelectorAll(".chkAirDay",context),function(el){el.checked=(item.AirDays||[]).indexOf(el.getAttribute("data-day"))!==-1}),populateListView(context.querySelector("#listGenres"),item.Genres),populatePeople(context,item.People||[]),populateListView(context.querySelector("#listStudios"),(item.Studios||[]).map(function(element){return element.Name||""})),populateListView(context.querySelector("#listTags"),item.Tags),populateListView(context.querySelector("#listKeywords"),item.Keywords);var lockData=item.LockData||!1,chkLockData=context.querySelector("#chkLockData");chkLockData.checked=lockData,chkLockData.checked?hideElement(".providerSettingsContainer",context):showElement(".providerSettingsContainer",context),populateInternetProviderSettings(context,item,item.LockedFields),context.querySelector("#txtPath").value=item.Path||"",context.querySelector("#txtName").value=item.Name||"",context.querySelector("#txtOriginalName").value=item.OriginalTitle||"",context.querySelector("#txtOverview").value=item.Overview||"",context.querySelector("#txtTagline").value=item.Taglines&&item.Taglines.length?item.Taglines[0]:"",context.querySelector("#txtSortName").value=item.ForcedSortName||"",context.querySelector("#txtDisplayMediaType").value=item.DisplayMediaType||"",context.querySelector("#txtCommunityRating").value=item.CommunityRating||"",context.querySelector("#txtHomePageUrl").value=item.HomePageUrl||"",context.querySelector("#txtCriticRating").value=item.CriticRating||"",context.querySelector("#txtIndexNumber").value="IndexNumber"in item?item.IndexNumber:"",context.querySelector("#txtParentIndexNumber").value="ParentIndexNumber"in item?item.ParentIndexNumber:"",context.querySelector("#txtPlayers").value=item.Players||"",context.querySelector("#txtAbsoluteEpisodeNumber").value="AbsoluteEpisodeNumber"in item?item.AbsoluteEpisodeNumber:"",context.querySelector("#txtDvdEpisodeNumber").value="DvdEpisodeNumber"in item?item.DvdEpisodeNumber:"",context.querySelector("#txtDvdSeasonNumber").value="DvdSeasonNumber"in item?item.DvdSeasonNumber:"",context.querySelector("#txtAirsBeforeSeason").value="AirsBeforeSeasonNumber"in item?item.AirsBeforeSeasonNumber:"",context.querySelector("#txtAirsAfterSeason").value="AirsAfterSeasonNumber"in item?item.AirsAfterSeasonNumber:"",context.querySelector("#txtAirsBeforeEpisode").value="AirsBeforeEpisodeNumber"in item?item.AirsBeforeEpisodeNumber:"",context.querySelector("#txtAlbum").value=item.Album||"",context.querySelector("#txtAlbumArtist").value=(item.AlbumArtists||[]).map(function(a){return a.Name}).join(";"),context.querySelector("#selectDisplayOrder").value=item.DisplayOrder,context.querySelector("#txtArtist").value=(item.ArtistItems||[]).map(function(a){return a.Name}).join(";");var date;if(item.DateCreated)try{date=datetime.parseISO8601Date(item.DateCreated,!0),context.querySelector("#txtDateAdded").value=date.toISOString().slice(0,10)}catch(e){context.querySelector("#txtDateAdded").value=""}else context.querySelector("#txtDateAdded").value="";if(item.PremiereDate)try{date=datetime.parseISO8601Date(item.PremiereDate,!0),context.querySelector("#txtPremiereDate").value=date.toISOString().slice(0,10)}catch(e){context.querySelector("#txtPremiereDate").value=""}else context.querySelector("#txtPremiereDate").value="";if(item.EndDate)try{date=datetime.parseISO8601Date(item.EndDate,!0),context.querySelector("#txtEndDate").value=date.toISOString().slice(0,10)}catch(e){context.querySelector("#txtEndDate").value=""}else context.querySelector("#txtEndDate").value="";context.querySelector("#txtProductionYear").value=item.ProductionYear||"",context.querySelector("#txtAirTime").value=item.AirTime||"";var placeofBirth=item.ProductionLocations&&item.ProductionLocations.length?item.ProductionLocations[0]:"";if(context.querySelector("#txtPlaceOfBirth").value=placeofBirth,context.querySelector("#txtOriginalAspectRatio").value=item.AspectRatio||"",context.querySelector("#selectLanguage").value=item.PreferredMetadataLanguage||"",context.querySelector("#selectCountry").value=item.PreferredMetadataCountryCode||"",item.RunTimeTicks){var minutes=item.RunTimeTicks/6e8;context.querySelector("#txtSeriesRuntime").value=Math.round(minutes)}else context.querySelector("#txtSeriesRuntime",context).value=""}function populateRatings(allParentalRatings,select,currentValue){var html="";html+="";var i,length,rating,ratings=[],currentValueFound=!1;for(i=0,length=allParentalRatings.length;i"+rating.Name+"";select.innerHTML=html}function populateStatus(select){var html="";html+="",html+="",html+="",select.innerHTML=html}function populateListView(list,items,sortCallback){items=items||[],"undefined"==typeof sortCallback?items.sort(function(a,b){return a.toLowerCase().localeCompare(b.toLowerCase())}):items=sortCallback(items);for(var html="",i=0;i',html+='live_tv',html+='
',html+='
',html+=items[i],html+="
",html+="
",html+='',html+="
";list.innerHTML=html}function populatePeople(context,people){for(var lastType="",html="",elem=context.querySelector("#peopleList"),i=0,length=people.length;i',html+='person',html+='
',html+='",html+="
",html+='',html+="
"}elem.innerHTML=html}function generateSliders(fields,currentFields){for(var html="",i=0;i",html+=""+name+"",html+=""}return html}function populateInternetProviderSettings(context,item,lockedFields){var container=context.querySelector(".providerSettingsContainer");lockedFields=lockedFields||[];var metadatafields=[{name:globalize.translate("sharedcomponents#Name"),value:"Name"},{name:globalize.translate("sharedcomponents#Overview"),value:"Overview"},{name:globalize.translate("sharedcomponents#Genres"),value:"Genres"},{name:globalize.translate("sharedcomponents#ParentalRating"),value:"OfficialRating"},{name:globalize.translate("sharedcomponents#People"),value:"Cast"}];"Person"===item.Type?metadatafields.push({name:globalize.translate("sharedcomponents#BirthLocation"),value:"ProductionLocations"}):metadatafields.push({name:globalize.translate("sharedcomponents#ProductionLocations"),value:"ProductionLocations"}),"Series"===item.Type&&metadatafields.push({name:globalize.translate("Runtime"),value:"Runtime"}),metadatafields.push({name:globalize.translate("sharedcomponents#Studios"),value:"Studios"}),metadatafields.push({name:globalize.translate("sharedcomponents#Tags"),value:"Tags"}),metadatafields.push({name:globalize.translate("sharedcomponents#Keywords"),value:"Keywords"}),metadatafields.push({name:globalize.translate("sharedcomponents#Images"),value:"Images"}),metadatafields.push({name:globalize.translate("sharedcomponents#Backdrops"),value:"Backdrops"}),"Game"===item.Type&&metadatafields.push({name:globalize.translate("sharedcomponents#Screenshots"),value:"Screenshots"});var html="";html+="

"+globalize.translate("sharedcomponents#HeaderEnabledFields")+"

",html+="

"+globalize.translate("sharedcomponents#HeaderEnabledFieldsHelp")+"

",html+=generateSliders(metadatafields,lockedFields),container.innerHTML=html}function reload(context,itemId,serverId){loading.show(),Promise.all([getItem(itemId,serverId),getEditorConfig(itemId,serverId)]).then(function(responses){var item=responses[0];metadataEditorInfo=responses[1],currentItem=item;var languages=metadataEditorInfo.Cultures,countries=metadataEditorInfo.Countries;renderContentTypeOptions(context,metadataEditorInfo),loadExternalIds(context,item,metadataEditorInfo.ExternalIdInfos),populateLanguages(context.querySelector("#selectLanguage"),languages),populateCountries(context.querySelector("#selectCountry"),countries),setFieldVisibilities(context,item),fillItemInfo(context,item,metadataEditorInfo.ParentalRatingOptions),"Video"===item.MediaType&&"Episode"!==item.Type?showElement("#fldTagline",context):hideElement("#fldTagline",context),loading.hide()})}function centerFocus(elem,horiz,on){require(["scrollHelper"],function(scrollHelper){var fn=on?"on":"off";scrollHelper.centerFocus[fn](elem,horiz)})}function show(itemId,serverId,resolve,reject){loading.show(),require(["text!./metadataeditor.template.html"],function(template){var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="medium-tall";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="";html+=globalize.translateDocument(template,"sharedcomponents"),dlg.innerHTML=html,layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!0),dialogHelper.open(dlg),dlg.addEventListener("close",function(){layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!1),unbindItemChanged(dlg,connectionManager.getApiClient(serverId)),resolve()}),currentContext=dlg,init(dlg,connectionManager.getApiClient(serverId)),reload(dlg,itemId,serverId)})}var currentContext,metadataEditorInfo,currentItem;return{show:function(itemId,serverId){return new Promise(function(resolve,reject){return show(itemId,serverId,resolve,reject)})},embed:function(elem,itemId,serverId){return new Promise(function(resolve,reject){loading.show(),require(["text!./metadataeditor.template.html"],function(template){elem.innerHTML=globalize.translateDocument(template,"sharedcomponents"),elem.querySelector(".formDialogFooter").classList.remove("formDialogFooter"),elem.querySelector(".btnHeaderSave").classList.remove("hide"),elem.querySelector(".btnCancel").classList.add("hide"),currentContext=elem,init(elem,connectionManager.getApiClient(serverId)),reload(elem,itemId,serverId),focusManager.autoFocus(elem)})})}}}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/multiselect/multiselect.js b/dashboard-ui/bower_components/emby-webcomponents/multiselect/multiselect.js index fcc8565698..0e8f914ded 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/multiselect/multiselect.js +++ b/dashboard-ui/bower_components/emby-webcomponents/multiselect/multiselect.js @@ -1 +1 @@ -define(["browser","appStorage","apphost","loading","connectionManager","globalize","embyRouter","dom","css!./multiselect"],function(browser,appStorage,appHost,loading,connectionManager,globalize,embyRouter,dom){"use strict";function hideSelections(){var selectionCommandsPanel=currentSelectionCommandsPanel;if(selectionCommandsPanel){selectionCommandsPanel.parentNode.removeChild(selectionCommandsPanel),currentSelectionCommandsPanel=null,selectedItems=[],selectedElements=[];for(var elems=document.querySelectorAll(".itemSelectionPanel"),i=0,length=elems.length;i";var chkItemSelect=itemSelectionPanel.querySelector(".chkItemSelect");chkItemSelect.addEventListener("change",onSelectionChange)}}function showSelectionCommands(){var selectionCommandsPanel=currentSelectionCommandsPanel;if(!selectionCommandsPanel){selectionCommandsPanel=document.createElement("div"),selectionCommandsPanel.classList.add("selectionCommandsPanel"),document.body.appendChild(selectionCommandsPanel),currentSelectionCommandsPanel=selectionCommandsPanel;var html="";html+='',html+='

';var moreIcon="dots-horiz"===appHost.moreIcon?"":"";html+='",selectionCommandsPanel.innerHTML=html,selectionCommandsPanel.querySelector(".btnCloseSelectionPanel").addEventListener("click",hideSelections);var btnSelectionPanelOptions=selectionCommandsPanel.querySelector(".btnSelectionPanelOptions");btnSelectionPanelOptions.addEventListener("click",showMenuForSelectedItems)}}function alertText(options){return new Promise(function(resolve,reject){require(["alert"],function(alert){alert(options).then(resolve,resolve)})})}function deleteItems(apiClient,itemIds){return new Promise(function(resolve,reject){var msg=globalize.translate("sharedcomponents#ConfirmDeleteItem"),title=globalize.translate("sharedcomponents#HeaderDeleteItem");itemIds.length>1&&(msg=globalize.translate("sharedcomponents#ConfirmDeleteItems"),title=globalize.translate("sharedcomponents#HeaderDeleteItems")),require(["confirm"],function(confirm){confirm(msg,title).then(function(){var promises=itemIds.map(function(itemId){apiClient.deleteItem(itemId)});Promise.all(promises).then(resolve,function(){alertText(globalize.translate("sharedcomponents#ErrorDeletingItem")).then(reject,reject)})},reject)})})}function showMenuForSelectedItems(e){var apiClient=connectionManager.currentApiClient();apiClient.getCurrentUser().then(function(user){var menuItems=[];menuItems.push({name:globalize.translate("sharedcomponents#AddToCollection"),id:"addtocollection",ironIcon:"add"}),menuItems.push({name:globalize.translate("sharedcomponents#AddToPlaylist"),id:"playlist",ironIcon:"playlist-add"}),user.Policy.EnableContentDeletion&&menuItems.push({name:globalize.translate("sharedcomponents#Delete"),id:"delete",ironIcon:"delete"}),user.Policy.EnableContentDownloading&&appHost.supports("filedownload"),user.Policy.EnableContentDownloading&&appHost.supports("sync")&&menuItems.push({name:globalize.translate("sharedcomponents#Download"),id:"synclocal"}),menuItems.push({name:globalize.translate("sharedcomponents#GroupVersions"),id:"groupvideos",ironIcon:"call-merge"}),menuItems.push({name:globalize.translate("sharedcomponents#MarkPlayed"),id:"markplayed"}),menuItems.push({name:globalize.translate("sharedcomponents#MarkUnplayed"),id:"markunplayed"}),menuItems.push({name:globalize.translate("sharedcomponents#RefreshMetadata"),id:"refresh"}),user.Policy.EnableContentDownloading&&menuItems.push({name:globalize.translate("sharedcomponents#Sync"),id:"sync"}),require(["actionsheet"],function(actionsheet){actionsheet.show({items:menuItems,positionTo:e.target,callback:function(id){var items=selectedItems.slice(0),serverId=apiClient.serverInfo().Id;switch(id){case"addtocollection":require(["collectionEditor"],function(collectionEditor){(new collectionEditor).show({items:items,serverId:serverId})}),hideSelections(),dispatchNeedsRefresh();break;case"playlist":require(["playlistEditor"],function(playlistEditor){(new playlistEditor).show({items:items,serverId:serverId})}),hideSelections(),dispatchNeedsRefresh();break;case"delete":deleteItems(apiClient,items).then(function(){embyRouter.goHome()}),hideSelections(),dispatchNeedsRefresh();break;case"groupvideos":combineVersions(apiClient,items);break;case"markplayed":items.forEach(function(itemId){apiClient.markPlayed(apiClient.getCurrentUserId(),itemId)}),hideSelections(),dispatchNeedsRefresh();break;case"markunplayed":items.forEach(function(itemId){apiClient.markUnplayed(apiClient.getCurrentUserId(),itemId)}),hideSelections(),dispatchNeedsRefresh();break;case"refresh":require(["refreshDialog"],function(refreshDialog){new refreshDialog({itemIds:items,serverId:serverId}).show()}),hideSelections(),dispatchNeedsRefresh();break;case"sync":require(["syncDialog"],function(syncDialog){syncDialog.showMenu({items:items.map(function(i){return{Id:i}}),serverId:serverId})}),hideSelections(),dispatchNeedsRefresh();break;case"synclocal":require(["syncDialog"],function(syncDialog){syncDialog.showMenu({items:items.map(function(i){return{Id:i}}),isLocalSync:!0,serverId:serverId})}),hideSelections(),dispatchNeedsRefresh()}}})})})}function dispatchNeedsRefresh(){var elems=[];[].forEach.call(selectedElements,function(i){var container=dom.parentWithAttribute(i,"is","emby-itemscontainer");container&&elems.indexOf(container)===-1&&elems.push(container)});for(var i=0,length=elems.length;i=5||deltaY>=5)&&onMouseOut(e)}}function onTouchEnd(e){onMouseOut(e)}function onMouseDown(e){touchStartTimeout&&(clearTimeout(touchStartTimeout),touchStartTimeout=null),touchTarget=e.target,touchStartTimeout=setTimeout(onTouchStartTimerFired,550)}function onMouseOut(e){touchStartTimeout&&(clearTimeout(touchStartTimeout),touchStartTimeout=null),touchTarget=null}function onTouchStartTimerFired(){if(touchTarget){var card=dom.parentWithClass(touchTarget,"card");touchTarget=null,card&&showSelections(card)}}function initTapHold(element){browser.touch&&!browser.safari?element.addEventListener("contextmenu",onTapHold):(dom.addEventListener(element,"touchstart",onTouchStart,{passive:!0}),dom.addEventListener(element,"touchmove",onTouchMove,{passive:!0}),dom.addEventListener(element,"touchend",onTouchEnd,{passive:!0}),dom.addEventListener(element,"touchcancel",onTouchEnd,{passive:!0}),dom.addEventListener(element,"mousedown",onMouseDown,{passive:!0}),dom.addEventListener(element,"mouseleave",onMouseOut,{passive:!0}),dom.addEventListener(element,"mouseup",onMouseOut,{passive:!0}))}var touchTarget,touchStartTimeout,touchStartX,touchStartY,self=this,container=options.container;initTapHold(container),options.bindOnClick!==!1&&container.addEventListener("click",onContainerClick),self.onContainerClick=onContainerClick,self.destroy=function(){container.removeEventListener("click",onContainerClick),container.removeEventListener("contextmenu",onTapHold);var element=container;dom.removeEventListener(element,"touchstart",onTouchStart,{passive:!0}),dom.removeEventListener(element,"touchmove",onTouchMove,{passive:!0}),dom.removeEventListener(element,"touchend",onTouchEnd,{passive:!0}),dom.removeEventListener(element,"mousedown",onMouseDown,{passive:!0}),dom.removeEventListener(element,"mouseleave",onMouseOut,{passive:!0}),dom.removeEventListener(element,"mouseup",onMouseOut,{passive:!0})}}}); \ No newline at end of file +define(["browser","appStorage","apphost","loading","connectionManager","globalize","appRouter","dom","css!./multiselect"],function(browser,appStorage,appHost,loading,connectionManager,globalize,appRouter,dom){"use strict";function hideSelections(){var selectionCommandsPanel=currentSelectionCommandsPanel;if(selectionCommandsPanel){selectionCommandsPanel.parentNode.removeChild(selectionCommandsPanel),currentSelectionCommandsPanel=null,selectedItems=[],selectedElements=[];for(var elems=document.querySelectorAll(".itemSelectionPanel"),i=0,length=elems.length;i";var chkItemSelect=itemSelectionPanel.querySelector(".chkItemSelect");chkItemSelect.addEventListener("change",onSelectionChange)}}function showSelectionCommands(){var selectionCommandsPanel=currentSelectionCommandsPanel;if(!selectionCommandsPanel){selectionCommandsPanel=document.createElement("div"),selectionCommandsPanel.classList.add("selectionCommandsPanel"),document.body.appendChild(selectionCommandsPanel),currentSelectionCommandsPanel=selectionCommandsPanel;var html="";html+='',html+='

';var moreIcon="dots-horiz"===appHost.moreIcon?"":"";html+='",selectionCommandsPanel.innerHTML=html,selectionCommandsPanel.querySelector(".btnCloseSelectionPanel").addEventListener("click",hideSelections);var btnSelectionPanelOptions=selectionCommandsPanel.querySelector(".btnSelectionPanelOptions");btnSelectionPanelOptions.addEventListener("click",showMenuForSelectedItems)}}function alertText(options){return new Promise(function(resolve,reject){require(["alert"],function(alert){alert(options).then(resolve,resolve)})})}function deleteItems(apiClient,itemIds){return new Promise(function(resolve,reject){var msg=globalize.translate("sharedcomponents#ConfirmDeleteItem"),title=globalize.translate("sharedcomponents#HeaderDeleteItem");itemIds.length>1&&(msg=globalize.translate("sharedcomponents#ConfirmDeleteItems"),title=globalize.translate("sharedcomponents#HeaderDeleteItems")),require(["confirm"],function(confirm){confirm(msg,title).then(function(){var promises=itemIds.map(function(itemId){apiClient.deleteItem(itemId)});Promise.all(promises).then(resolve,function(){alertText(globalize.translate("sharedcomponents#ErrorDeletingItem")).then(reject,reject)})},reject)})})}function showMenuForSelectedItems(e){var apiClient=connectionManager.currentApiClient();apiClient.getCurrentUser().then(function(user){var menuItems=[];menuItems.push({name:globalize.translate("sharedcomponents#AddToCollection"),id:"addtocollection",ironIcon:"add"}),menuItems.push({name:globalize.translate("sharedcomponents#AddToPlaylist"),id:"playlist",ironIcon:"playlist-add"}),user.Policy.EnableContentDeletion&&menuItems.push({name:globalize.translate("sharedcomponents#Delete"),id:"delete",ironIcon:"delete"}),user.Policy.EnableContentDownloading&&appHost.supports("filedownload"),user.Policy.EnableContentDownloading&&appHost.supports("sync")&&menuItems.push({name:globalize.translate("sharedcomponents#Download"),id:"synclocal"}),menuItems.push({name:globalize.translate("sharedcomponents#GroupVersions"),id:"groupvideos",ironIcon:"call-merge"}),menuItems.push({name:globalize.translate("sharedcomponents#MarkPlayed"),id:"markplayed"}),menuItems.push({name:globalize.translate("sharedcomponents#MarkUnplayed"),id:"markunplayed"}),menuItems.push({name:globalize.translate("sharedcomponents#RefreshMetadata"),id:"refresh"}),user.Policy.EnableContentDownloading&&menuItems.push({name:globalize.translate("sharedcomponents#Sync"),id:"sync"}),require(["actionsheet"],function(actionsheet){actionsheet.show({items:menuItems,positionTo:e.target,callback:function(id){var items=selectedItems.slice(0),serverId=apiClient.serverInfo().Id;switch(id){case"addtocollection":require(["collectionEditor"],function(collectionEditor){(new collectionEditor).show({items:items,serverId:serverId})}),hideSelections(),dispatchNeedsRefresh();break;case"playlist":require(["playlistEditor"],function(playlistEditor){(new playlistEditor).show({items:items,serverId:serverId})}),hideSelections(),dispatchNeedsRefresh();break;case"delete":deleteItems(apiClient,items).then(function(){appRouter.goHome()}),hideSelections(),dispatchNeedsRefresh();break;case"groupvideos":combineVersions(apiClient,items);break;case"markplayed":items.forEach(function(itemId){apiClient.markPlayed(apiClient.getCurrentUserId(),itemId)}),hideSelections(),dispatchNeedsRefresh();break;case"markunplayed":items.forEach(function(itemId){apiClient.markUnplayed(apiClient.getCurrentUserId(),itemId)}),hideSelections(),dispatchNeedsRefresh();break;case"refresh":require(["refreshDialog"],function(refreshDialog){new refreshDialog({itemIds:items,serverId:serverId}).show()}),hideSelections(),dispatchNeedsRefresh();break;case"sync":require(["syncDialog"],function(syncDialog){syncDialog.showMenu({items:items.map(function(i){return{Id:i}}),serverId:serverId})}),hideSelections(),dispatchNeedsRefresh();break;case"synclocal":require(["syncDialog"],function(syncDialog){syncDialog.showMenu({items:items.map(function(i){return{Id:i}}),isLocalSync:!0,serverId:serverId})}),hideSelections(),dispatchNeedsRefresh()}}})})})}function dispatchNeedsRefresh(){var elems=[];[].forEach.call(selectedElements,function(i){var container=dom.parentWithAttribute(i,"is","emby-itemscontainer");container&&elems.indexOf(container)===-1&&elems.push(container)});for(var i=0,length=elems.length;i=5||deltaY>=5)&&onMouseOut(e)}}function onTouchEnd(e){onMouseOut(e)}function onMouseDown(e){touchStartTimeout&&(clearTimeout(touchStartTimeout),touchStartTimeout=null),touchTarget=e.target,touchStartTimeout=setTimeout(onTouchStartTimerFired,550)}function onMouseOut(e){touchStartTimeout&&(clearTimeout(touchStartTimeout),touchStartTimeout=null),touchTarget=null}function onTouchStartTimerFired(){if(touchTarget){var card=dom.parentWithClass(touchTarget,"card");touchTarget=null,card&&showSelections(card)}}function initTapHold(element){browser.touch&&!browser.safari?element.addEventListener("contextmenu",onTapHold):(dom.addEventListener(element,"touchstart",onTouchStart,{passive:!0}),dom.addEventListener(element,"touchmove",onTouchMove,{passive:!0}),dom.addEventListener(element,"touchend",onTouchEnd,{passive:!0}),dom.addEventListener(element,"touchcancel",onTouchEnd,{passive:!0}),dom.addEventListener(element,"mousedown",onMouseDown,{passive:!0}),dom.addEventListener(element,"mouseleave",onMouseOut,{passive:!0}),dom.addEventListener(element,"mouseup",onMouseOut,{passive:!0}))}var touchTarget,touchStartTimeout,touchStartX,touchStartY,self=this,container=options.container;initTapHold(container),options.bindOnClick!==!1&&container.addEventListener("click",onContainerClick),self.onContainerClick=onContainerClick,self.destroy=function(){container.removeEventListener("click",onContainerClick),container.removeEventListener("contextmenu",onTapHold);var element=container;dom.removeEventListener(element,"touchstart",onTouchStart,{passive:!0}),dom.removeEventListener(element,"touchmove",onTouchMove,{passive:!0}),dom.removeEventListener(element,"touchend",onTouchEnd,{passive:!0}),dom.removeEventListener(element,"mousedown",onMouseDown,{passive:!0}),dom.removeEventListener(element,"mouseleave",onMouseOut,{passive:!0}),dom.removeEventListener(element,"mouseup",onMouseOut,{passive:!0})}}}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/nowplayingbar/nowplayingbar.js b/dashboard-ui/bower_components/emby-webcomponents/nowplayingbar/nowplayingbar.js index 5e5a0fd6b9..06dfd0f5a4 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/nowplayingbar/nowplayingbar.js +++ b/dashboard-ui/bower_components/emby-webcomponents/nowplayingbar/nowplayingbar.js @@ -1 +1 @@ -define(["require","datetime","itemHelper","events","browser","imageLoader","layoutManager","playbackManager","nowPlayingHelper","apphost","dom","connectionManager","paper-icon-button-light","emby-ratingbutton"],function(require,datetime,itemHelper,events,browser,imageLoader,layoutManager,playbackManager,nowPlayingHelper,appHost,dom,connectionManager){"use strict";function getNowPlayingBarHtml(){var html="";return html+='
',html+='
',html+='
',html+='',html+="
",html+='
',html+='
',html+='
',html+="
",html+='
',html+='',html+='',html+='',html+='',html+='
',html+="
",html+='
',html+='',html+='
',html+='',html+="
",html+='',html+='
',html+="
",html+='',html+='',html+="
",html+="
",html+="
"}function onSlideDownComplete(){this.classList.add("hide")}function slideDown(elem){void elem.offsetWidth,elem.classList.add("nowPlayingBar-hidden"),dom.addEventListener(elem,dom.whichTransitionEvent(),onSlideDownComplete,{once:!0})}function slideUp(elem){dom.removeEventListener(elem,dom.whichTransitionEvent(),onSlideDownComplete,{once:!0}),elem.classList.remove("hide"),void elem.offsetWidth,elem.classList.remove("nowPlayingBar-hidden")}function onPlayPauseClick(){playbackManager.playPause(currentPlayer)}function bindEvents(elem){currentTimeElement=elem.querySelector(".nowPlayingBarCurrentTime"),nowPlayingImageElement=elem.querySelector(".nowPlayingImage"),nowPlayingTextElement=elem.querySelector(".nowPlayingBarText"),nowPlayingUserData=elem.querySelector(".nowPlayingBarUserDataButtons"),muteButton=elem.querySelector(".muteButton"),muteButton.addEventListener("click",function(){currentPlayer&&playbackManager.toggleMute(currentPlayer)}),elem.querySelector(".stopButton").addEventListener("click",function(){currentPlayer&&playbackManager.stop(currentPlayer)});var i,length;for(playPauseButtons=elem.querySelectorAll(".playPauseButton"),i=0,length=playPauseButtons.length;i';return html+=text,html+=""}function seriesImageUrl(item,options){if(!item)throw new Error("item cannot be null!");if("Episode"!==item.Type)return null;if(options=options||{},options.type=options.type||"Primary","Primary"===options.type&&item.SeriesPrimaryImageTag)return options.tag=item.SeriesPrimaryImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId,options);if("Thumb"===options.type){if(item.SeriesThumbImageTag)return options.tag=item.SeriesThumbImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId,options);if(item.ParentThumbImageTag)return options.tag=item.ParentThumbImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.ParentThumbItemId,options)}return null}function imageUrl(item,options){if(!item)throw new Error("item cannot be null!");return options=options||{},options.type=options.type||"Primary",item.ImageTags&&item.ImageTags[options.type]?(options.tag=item.ImageTags[options.type],connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.PrimaryImageItemId||item.Id,options)):item.AlbumId&&item.AlbumPrimaryImageTag?(options.tag=item.AlbumPrimaryImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.AlbumId,options)):null}function updateNowPlayingInfo(state){var nowPlayingItem=state.NowPlayingItem,textLines=nowPlayingItem?nowPlayingHelper.getNowPlayingNames(nowPlayingItem):[];textLines.length>1&&(textLines[1].secondary=!0);var serverId=nowPlayingItem?nowPlayingItem.ServerId:null;nowPlayingTextElement.innerHTML=textLines.map(function(nowPlayingName){var cssClass=nowPlayingName.secondary?' class="nowPlayingBarSecondaryText"':"";return nowPlayingName.item?""+getTextActionButton(nowPlayingName.item,nowPlayingName.text,serverId)+"
":""+nowPlayingName.text+"
"}).join("");var imgHeight=70,url=nowPlayingItem?seriesImageUrl(nowPlayingItem,{height:imgHeight})||imageUrl(nowPlayingItem,{height:imgHeight}):null,isRefreshing=!1;if(url!==currentImgUrl&&(currentImgUrl=url,isRefreshing=!0,imageLoader.lazyImage(nowPlayingImageElement,url)),nowPlayingItem.Id){if(isRefreshing){var apiClient=connectionManager.getApiClient(nowPlayingItem.ServerId);apiClient.getItem(apiClient.getCurrentUserId(),nowPlayingItem.Id).then(function(item){var userData=item.UserData||{},likes=null==userData.Likes?"":userData.Likes;nowPlayingUserData.innerHTML=''})}}else nowPlayingUserData.innerHTML=""}function onPlaybackStart(e,state){var player=this;onStateChanged.call(player,e,state)}function onRepeatModeChange(e){var player=this;updateRepeatModeDisplay(playbackManager.getRepeatMode(player))}function showNowPlayingBar(){return isVisibilityAllowed?void getNowPlayingBar().then(slideUp):void hideNowPlayingBar()}function hideNowPlayingBar(){isEnabled=!1;var elem=document.getElementsByClassName("nowPlayingBar")[0];elem&&slideDown(elem)}function onPlaybackStopped(e,state){var player=this;player.isLocalPlayer?"Audio"!==state.NextMediaType&&hideNowPlayingBar():state.NextMediaType||hideNowPlayingBar()}function onPlayPauseStateChanged(e){if(isEnabled){var player=this;updatePlayPauseState(player.paused())}}function onStateChanged(event,state){var player=this;return!state.NowPlayingItem||layoutManager.tv?void hideNowPlayingBar():player.isLocalPlayer&&state.NowPlayingItem&&"Video"===state.NowPlayingItem.MediaType?void hideNowPlayingBar():(isEnabled=!0,nowPlayingBarElement?void updatePlayerStateInternal(event,state,player):void getNowPlayingBar().then(function(){updatePlayerStateInternal(event,state,player)}))}function onTimeUpdate(e){if(isEnabled){var now=(new Date).getTime();if(!(now-lastUpdateTime<700)){lastUpdateTime=now;var player=this;currentRuntimeTicks=playbackManager.duration(player),updateTimeDisplay(playbackManager.currentTime(player),currentRuntimeTicks,playbackManager.getBufferedRanges(player))}}}function releaseCurrentPlayer(){var player=currentPlayer;player&&(events.off(player,"playbackstart",onPlaybackStart),events.off(player,"statechange",onPlaybackStart),events.off(player,"repeatmodechange",onRepeatModeChange),events.off(player,"playbackstop",onPlaybackStopped),events.off(player,"volumechange",onVolumeChanged),events.off(player,"pause",onPlayPauseStateChanged),events.off(player,"unpause",onPlayPauseStateChanged),events.off(player,"timeupdate",onTimeUpdate),currentPlayer=null,hideNowPlayingBar())}function onVolumeChanged(e){if(isEnabled){var player=this;updatePlayerVolumeState(player.isMuted(),player.getVolume())}}function refreshFromPlayer(player){playbackManager.getPlayerState(player).then(function(state){onStateChanged.call(player,{type:"init"},state)})}function bindToPlayer(player){player!==currentPlayer&&(releaseCurrentPlayer(),currentPlayer=player,player&&(refreshFromPlayer(player),events.on(player,"playbackstart",onPlaybackStart),events.on(player,"statechange",onPlaybackStart),events.on(player,"repeatmodechange",onRepeatModeChange),events.on(player,"playbackstop",onPlaybackStopped),events.on(player,"volumechange",onVolumeChanged),events.on(player,"pause",onPlayPauseStateChanged),events.on(player,"unpause",onPlayPauseStateChanged),events.on(player,"timeupdate",onTimeUpdate)))}var currentPlayer,currentTimeElement,nowPlayingImageElement,nowPlayingTextElement,nowPlayingUserData,muteButton,volumeSlider,volumeSliderContainer,playPauseButtons,positionSlider,toggleRepeatButton,toggleRepeatButtonIcon,isEnabled,nowPlayingBarElement,currentImgUrl,currentPlayerSupportedCommands=[],lastUpdateTime=0,lastPlayerState={},currentRuntimeTicks=0,isVisibilityAllowed=!0;events.on(playbackManager,"playerchange",function(){bindToPlayer(playbackManager.getCurrentPlayer())}),bindToPlayer(playbackManager.getCurrentPlayer()),document.addEventListener("viewbeforeshow",function(e){e.detail.options.enableMediaControl?isVisibilityAllowed||(isVisibilityAllowed=!0,currentPlayer?refreshFromPlayer(currentPlayer):hideNowPlayingBar()):isVisibilityAllowed&&(isVisibilityAllowed=!1,hideNowPlayingBar())})}); \ No newline at end of file +define(["require","datetime","itemHelper","events","browser","imageLoader","layoutManager","playbackManager","nowPlayingHelper","apphost","dom","connectionManager","paper-icon-button-light","emby-ratingbutton"],function(require,datetime,itemHelper,events,browser,imageLoader,layoutManager,playbackManager,nowPlayingHelper,appHost,dom,connectionManager){"use strict";function getNowPlayingBarHtml(){var html="";return html+='
',html+='
',html+='
',html+='',html+="
",html+='
',html+='
',html+='
',html+="
",html+='
',html+='',html+='',html+='',html+='',html+='
',html+="
",html+='
',html+='',html+='
',html+='',html+="
",html+='',html+='
',html+="
",html+='',html+='',html+="
",html+="
",html+="
"}function onSlideDownComplete(){this.classList.add("hide")}function slideDown(elem){void elem.offsetWidth,elem.classList.add("nowPlayingBar-hidden"),dom.addEventListener(elem,dom.whichTransitionEvent(),onSlideDownComplete,{once:!0})}function slideUp(elem){dom.removeEventListener(elem,dom.whichTransitionEvent(),onSlideDownComplete,{once:!0}),elem.classList.remove("hide"),void elem.offsetWidth,elem.classList.remove("nowPlayingBar-hidden")}function onPlayPauseClick(){playbackManager.playPause(currentPlayer)}function bindEvents(elem){currentTimeElement=elem.querySelector(".nowPlayingBarCurrentTime"),nowPlayingImageElement=elem.querySelector(".nowPlayingImage"),nowPlayingTextElement=elem.querySelector(".nowPlayingBarText"),nowPlayingUserData=elem.querySelector(".nowPlayingBarUserDataButtons"),muteButton=elem.querySelector(".muteButton"),muteButton.addEventListener("click",function(){currentPlayer&&playbackManager.toggleMute(currentPlayer)}),elem.querySelector(".stopButton").addEventListener("click",function(){currentPlayer&&playbackManager.stop(currentPlayer)});var i,length;for(playPauseButtons=elem.querySelectorAll(".playPauseButton"),i=0,length=playPauseButtons.length;i';return html+=text,html+=""}function seriesImageUrl(item,options){if(!item)throw new Error("item cannot be null!");if("Episode"!==item.Type)return null;if(options=options||{},options.type=options.type||"Primary","Primary"===options.type&&item.SeriesPrimaryImageTag)return options.tag=item.SeriesPrimaryImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId,options);if("Thumb"===options.type){if(item.SeriesThumbImageTag)return options.tag=item.SeriesThumbImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId,options);if(item.ParentThumbImageTag)return options.tag=item.ParentThumbImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.ParentThumbItemId,options)}return null}function imageUrl(item,options){if(!item)throw new Error("item cannot be null!");return options=options||{},options.type=options.type||"Primary",item.ImageTags&&item.ImageTags[options.type]?(options.tag=item.ImageTags[options.type],connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.PrimaryImageItemId||item.Id,options)):item.AlbumId&&item.AlbumPrimaryImageTag?(options.tag=item.AlbumPrimaryImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.AlbumId,options)):null}function updateNowPlayingInfo(state){var nowPlayingItem=state.NowPlayingItem,textLines=nowPlayingItem?nowPlayingHelper.getNowPlayingNames(nowPlayingItem):[];textLines.length>1&&(textLines[1].secondary=!0);var serverId=nowPlayingItem?nowPlayingItem.ServerId:null;nowPlayingTextElement.innerHTML=textLines.map(function(nowPlayingName){var cssClass=nowPlayingName.secondary?' class="nowPlayingBarSecondaryText"':"";return nowPlayingName.item?""+getTextActionButton(nowPlayingName.item,nowPlayingName.text,serverId)+"
":""+nowPlayingName.text+"
"}).join("");var imgHeight=70,url=nowPlayingItem?seriesImageUrl(nowPlayingItem,{height:imgHeight})||imageUrl(nowPlayingItem,{height:imgHeight}):null,isRefreshing=!1;if(url!==currentImgUrl&&(currentImgUrl=url,isRefreshing=!0,imageLoader.lazyImage(nowPlayingImageElement,url)),nowPlayingItem.Id){if(isRefreshing){var apiClient=connectionManager.getApiClient(nowPlayingItem.ServerId);apiClient.getItem(apiClient.getCurrentUserId(),nowPlayingItem.Id).then(function(item){var userData=item.UserData||{},likes=null==userData.Likes?"":userData.Likes;nowPlayingUserData.innerHTML=''})}}else nowPlayingUserData.innerHTML=""}function onPlaybackStart(e,state){var player=this;onStateChanged.call(player,e,state)}function onRepeatModeChange(e){var player=this;updateRepeatModeDisplay(playbackManager.getRepeatMode(player))}function showNowPlayingBar(){return isVisibilityAllowed?void getNowPlayingBar().then(slideUp):void hideNowPlayingBar()}function hideNowPlayingBar(){isEnabled=!1;var elem=document.getElementsByClassName("nowPlayingBar")[0];elem&&slideDown(elem)}function onPlaybackStopped(e,state){var player=this;player.isLocalPlayer?"Audio"!==state.NextMediaType&&hideNowPlayingBar():state.NextMediaType||hideNowPlayingBar()}function onPlayPauseStateChanged(e){if(isEnabled){var player=this;updatePlayPauseState(player.paused())}}function onStateChanged(event,state){var player=this;return!state.NowPlayingItem||layoutManager.tv?void hideNowPlayingBar():player.isLocalPlayer&&state.NowPlayingItem&&"Video"===state.NowPlayingItem.MediaType?void hideNowPlayingBar():(isEnabled=!0,nowPlayingBarElement?void updatePlayerStateInternal(event,state,player):void getNowPlayingBar().then(function(){updatePlayerStateInternal(event,state,player)}))}function onTimeUpdate(e){if(isEnabled){var now=(new Date).getTime();if(!(now-lastUpdateTime<700)){lastUpdateTime=now;var player=this;currentRuntimeTicks=playbackManager.duration(player),updateTimeDisplay(playbackManager.currentTime(player),currentRuntimeTicks,playbackManager.getBufferedRanges(player))}}}function releaseCurrentPlayer(){var player=currentPlayer;player&&(events.off(player,"playbackstart",onPlaybackStart),events.off(player,"statechange",onPlaybackStart),events.off(player,"repeatmodechange",onRepeatModeChange),events.off(player,"playbackstop",onPlaybackStopped),events.off(player,"volumechange",onVolumeChanged),events.off(player,"pause",onPlayPauseStateChanged),events.off(player,"unpause",onPlayPauseStateChanged),events.off(player,"timeupdate",onTimeUpdate),currentPlayer=null,hideNowPlayingBar())}function onVolumeChanged(e){if(isEnabled){var player=this;updatePlayerVolumeState(player.isMuted(),player.getVolume())}}function refreshFromPlayer(player){playbackManager.getPlayerState(player).then(function(state){onStateChanged.call(player,{type:"init"},state)})}function bindToPlayer(player){player!==currentPlayer&&(releaseCurrentPlayer(),currentPlayer=player,player&&(refreshFromPlayer(player),events.on(player,"playbackstart",onPlaybackStart),events.on(player,"statechange",onPlaybackStart),events.on(player,"repeatmodechange",onRepeatModeChange),events.on(player,"playbackstop",onPlaybackStopped),events.on(player,"volumechange",onVolumeChanged),events.on(player,"pause",onPlayPauseStateChanged),events.on(player,"unpause",onPlayPauseStateChanged),events.on(player,"timeupdate",onTimeUpdate)))}var currentPlayer,currentTimeElement,nowPlayingImageElement,nowPlayingTextElement,nowPlayingUserData,muteButton,volumeSlider,volumeSliderContainer,playPauseButtons,positionSlider,toggleRepeatButton,toggleRepeatButtonIcon,isEnabled,nowPlayingBarElement,currentImgUrl,currentPlayerSupportedCommands=[],lastUpdateTime=0,lastPlayerState={},currentRuntimeTicks=0,isVisibilityAllowed=!0;events.on(playbackManager,"playerchange",function(){bindToPlayer(playbackManager.getCurrentPlayer())}),bindToPlayer(playbackManager.getCurrentPlayer()),document.addEventListener("viewbeforeshow",function(e){e.detail.options.enableMediaControl?isVisibilityAllowed||(isVisibilityAllowed=!0,currentPlayer?refreshFromPlayer(currentPlayer):hideNowPlayingBar()):isVisibilityAllowed&&(isVisibilityAllowed=!1,hideNowPlayingBar())})}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/photoplayer/plugin.js b/dashboard-ui/bower_components/emby-webcomponents/photoplayer/plugin.js index 7bfa8cf2c0..8048069c7c 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/photoplayer/plugin.js +++ b/dashboard-ui/bower_components/emby-webcomponents/photoplayer/plugin.js @@ -1 +1 @@ -define(["browser","require","events","apphost","loading","dom","playbackManager","embyRouter","appSettings","connectionManager"],function(browser,require,events,appHost,loading,dom,playbackManager,embyRouter,appSettings,connectionManager){"use strict";function PhotoPlayer(){var self=this;self.name="Photo Player",self.type="mediaplayer",self.id="photoplayer",self.priority=1}return PhotoPlayer.prototype.play=function(options){return new Promise(function(resolve,reject){require(["slideshow"],function(slideshow){var index=options.playStartIndex||0,newSlideShow=new slideshow({showTitle:!1,cover:!1,items:options.items,startIndex:index,interval:11e3,interactive:!0});newSlideShow.show(),resolve()})})},PhotoPlayer.prototype.canPlayMediaType=function(mediaType){return"photo"===(mediaType||"").toLowerCase()},PhotoPlayer}); \ No newline at end of file +define(["browser","require","events","apphost","loading","dom","playbackManager","appRouter","appSettings","connectionManager"],function(browser,require,events,appHost,loading,dom,playbackManager,appRouter,appSettings,connectionManager){"use strict";function PhotoPlayer(){var self=this;self.name="Photo Player",self.type="mediaplayer",self.id="photoplayer",self.priority=1}return PhotoPlayer.prototype.play=function(options){return new Promise(function(resolve,reject){require(["slideshow"],function(slideshow){var index=options.playStartIndex||0,newSlideShow=new slideshow({showTitle:!1,cover:!1,items:options.items,startIndex:index,interval:11e3,interactive:!0});newSlideShow.show(),resolve()})})},PhotoPlayer.prototype.canPlayMediaType=function(mediaType){return"photo"===(mediaType||"").toLowerCase()},PhotoPlayer}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/playback/playerselection.js b/dashboard-ui/bower_components/emby-webcomponents/playback/playerselection.js index ea1fc01f0c..c636b5d8f8 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/playback/playerselection.js +++ b/dashboard-ui/bower_components/emby-webcomponents/playback/playerselection.js @@ -1 +1 @@ -define(["appSettings","events","browser","loading","playbackManager","embyRouter","globalize","apphost"],function(appSettings,events,browser,loading,playbackManager,embyRouter,globalize,appHost){"use strict";function mirrorItem(info,player){var item=info.item;playbackManager.displayContent({ItemName:item.Name,ItemId:item.Id,ItemType:item.Type,Context:info.context},player)}function mirrorIfEnabled(info){if(info=info||currentDisplayInfo,info&&playbackManager.enableDisplayMirroring()){var getPlayerInfo=playbackManager.getPlayerInfo();getPlayerInfo&&(getPlayerInfo.isLocalPlayer||getPlayerInfo.supportedCommands.indexOf("DisplayContent")===-1||mirrorItem(info,playbackManager.getCurrentPlayer()))}}function emptyCallback(){}function showPlayerSelection(button){var currentPlayerInfo=playbackManager.getPlayerInfo();if(currentPlayerInfo&&!currentPlayerInfo.isLocalPlayer)return void showActivePlayerMenu(currentPlayerInfo);var currentPlayerId=currentPlayerInfo?currentPlayerInfo.id:null;loading.show(),playbackManager.getTargets().then(function(targets){var menuItems=targets.map(function(t){var name=t.name;return t.appName&&t.appName!==t.name&&(name+=" - "+t.appName),{name:name,id:t.id,selected:currentPlayerId===t.id}});require(["actionsheet"],function(actionsheet){loading.hide();var menuOptions={title:globalize.translate("sharedcomponents#HeaderPlayOn"),items:menuItems,positionTo:button,resolveOnClick:!0};browser.chrome&&!appHost.supports("castmenuhashchange")&&(menuOptions.enableHistory=!1),actionsheet.show(menuOptions).then(function(id){var target=targets.filter(function(t){return t.id===id})[0];playbackManager.trySetActivePlayer(target.playerName,target),mirrorIfEnabled()},emptyCallback)})})}function showActivePlayerMenu(playerInfo){require(["dialogHelper","dialog","emby-checkbox","emby-button"],function(dialogHelper){showActivePlayerMenuInternal(dialogHelper,playerInfo)})}function disconnectFromPlayer(){playbackManager.getSupportedCommands().indexOf("EndSession")!==-1?require(["dialog"],function(dialog){var menuItems=[];menuItems.push({name:globalize.translate("sharedcomponents#Yes"),id:"yes"}),menuItems.push({name:globalize.translate("sharedcomponents#No"),id:"no"}),dialog({buttons:menuItems,text:globalize.translate("sharedcomponents#ConfirmEndPlayerSession")}).then(function(id){switch(id){case"yes":playbackManager.getCurrentPlayer().endSession(),playbackManager.setDefaultPlayerActive();break;case"no":playbackManager.setDefaultPlayerActive()}})}):playbackManager.setDefaultPlayerActive()}function showActivePlayerMenuInternal(dialogHelper,playerInfo){var html="",dialogOptions={removeOnClose:!0};dialogOptions.modal=!1,dialogOptions.entryAnimationDuration=160,dialogOptions.exitAnimationDuration=160,dialogOptions.autoFocus=!1;var dlg=dialogHelper.createDialog(dialogOptions);if(dlg.classList.add("promptDialog"),html+='
',html+='

',html+=playerInfo.deviceName||playerInfo.name,html+="

",html+="
",playerInfo.supportedCommands.indexOf("DisplayContent")!==-1){html+='"}html+="
",html+='
',html+='",html+='",html+='",html+="
",html+="
",dlg.innerHTML=html;var chkMirror=dlg.querySelector(".chkMirror");chkMirror&&chkMirror.addEventListener("change",onMirrorChange);var destination="",btnRemoteControl=dlg.querySelector(".btnRemoteControl");btnRemoteControl&&btnRemoteControl.addEventListener("click",function(){destination="nowplaying",dialogHelper.close(dlg)}),dlg.querySelector(".btnDisconnect").addEventListener("click",function(){disconnectFromPlayer(),dialogHelper.close(dlg)}),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),dialogHelper.open(dlg).then(function(){"nowplaying"===destination&&embyRouter.showNowPlaying()},emptyCallback)}function onMirrorChange(){playbackManager.enableDisplayMirroring(this.checked)}var currentDisplayInfo;return document.addEventListener("viewbeforeshow",function(){currentDisplayInfo=null}),document.addEventListener("viewshow",function(e){var state=e.detail.state||{},item=state.item;if(item&&item.ServerId)return void mirrorIfEnabled({item:item})}),events.on(appSettings,"change",function(e,name){"displaymirror"===name&&mirrorIfEnabled()}),{show:showPlayerSelection}}); \ No newline at end of file +define(["appSettings","events","browser","loading","playbackManager","appRouter","globalize","apphost"],function(appSettings,events,browser,loading,playbackManager,appRouter,globalize,appHost){"use strict";function mirrorItem(info,player){var item=info.item;playbackManager.displayContent({ItemName:item.Name,ItemId:item.Id,ItemType:item.Type,Context:info.context},player)}function mirrorIfEnabled(info){if(info=info||currentDisplayInfo,info&&playbackManager.enableDisplayMirroring()){var getPlayerInfo=playbackManager.getPlayerInfo();getPlayerInfo&&(getPlayerInfo.isLocalPlayer||getPlayerInfo.supportedCommands.indexOf("DisplayContent")===-1||mirrorItem(info,playbackManager.getCurrentPlayer()))}}function emptyCallback(){}function showPlayerSelection(button){var currentPlayerInfo=playbackManager.getPlayerInfo();if(currentPlayerInfo&&!currentPlayerInfo.isLocalPlayer)return void showActivePlayerMenu(currentPlayerInfo);var currentPlayerId=currentPlayerInfo?currentPlayerInfo.id:null;loading.show(),playbackManager.getTargets().then(function(targets){var menuItems=targets.map(function(t){var name=t.name;return t.appName&&t.appName!==t.name&&(name+=" - "+t.appName),{name:name,id:t.id,selected:currentPlayerId===t.id}});require(["actionsheet"],function(actionsheet){loading.hide();var menuOptions={title:globalize.translate("sharedcomponents#HeaderPlayOn"),items:menuItems,positionTo:button,resolveOnClick:!0};browser.chrome&&!appHost.supports("castmenuhashchange")&&(menuOptions.enableHistory=!1),actionsheet.show(menuOptions).then(function(id){var target=targets.filter(function(t){return t.id===id})[0];playbackManager.trySetActivePlayer(target.playerName,target),mirrorIfEnabled()},emptyCallback)})})}function showActivePlayerMenu(playerInfo){require(["dialogHelper","dialog","emby-checkbox","emby-button"],function(dialogHelper){showActivePlayerMenuInternal(dialogHelper,playerInfo)})}function disconnectFromPlayer(){playbackManager.getSupportedCommands().indexOf("EndSession")!==-1?require(["dialog"],function(dialog){var menuItems=[];menuItems.push({name:globalize.translate("sharedcomponents#Yes"),id:"yes"}),menuItems.push({name:globalize.translate("sharedcomponents#No"),id:"no"}),dialog({buttons:menuItems,text:globalize.translate("sharedcomponents#ConfirmEndPlayerSession")}).then(function(id){switch(id){case"yes":playbackManager.getCurrentPlayer().endSession(),playbackManager.setDefaultPlayerActive();break;case"no":playbackManager.setDefaultPlayerActive()}})}):playbackManager.setDefaultPlayerActive()}function showActivePlayerMenuInternal(dialogHelper,playerInfo){var html="",dialogOptions={removeOnClose:!0};dialogOptions.modal=!1,dialogOptions.entryAnimationDuration=160,dialogOptions.exitAnimationDuration=160,dialogOptions.autoFocus=!1;var dlg=dialogHelper.createDialog(dialogOptions);if(dlg.classList.add("promptDialog"),html+='
',html+='

',html+=playerInfo.deviceName||playerInfo.name,html+="

",html+="
",playerInfo.supportedCommands.indexOf("DisplayContent")!==-1){html+='"}html+="
",html+='
',html+='",html+='",html+='",html+="
",html+="
",dlg.innerHTML=html;var chkMirror=dlg.querySelector(".chkMirror");chkMirror&&chkMirror.addEventListener("change",onMirrorChange);var destination="",btnRemoteControl=dlg.querySelector(".btnRemoteControl");btnRemoteControl&&btnRemoteControl.addEventListener("click",function(){destination="nowplaying",dialogHelper.close(dlg)}),dlg.querySelector(".btnDisconnect").addEventListener("click",function(){disconnectFromPlayer(),dialogHelper.close(dlg)}),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),dialogHelper.open(dlg).then(function(){"nowplaying"===destination&&appRouter.showNowPlaying()},emptyCallback)}function onMirrorChange(){playbackManager.enableDisplayMirroring(this.checked)}var currentDisplayInfo;return document.addEventListener("viewbeforeshow",function(){currentDisplayInfo=null}),document.addEventListener("viewshow",function(e){var state=e.detail.state||{},item=state.item;if(item&&item.ServerId)return void mirrorIfEnabled({item:item})}),events.on(appSettings,"change",function(e,name){"displaymirror"===name&&mirrorIfEnabled()}),{show:showPlayerSelection}}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/playlisteditor/playlisteditor.js b/dashboard-ui/bower_components/emby-webcomponents/playlisteditor/playlisteditor.js index 78f62090a7..4348ada52f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/playlisteditor/playlisteditor.js +++ b/dashboard-ui/bower_components/emby-webcomponents/playlisteditor/playlisteditor.js @@ -1 +1 @@ -define(["shell","dialogHelper","loading","layoutManager","playbackManager","connectionManager","userSettings","embyRouter","globalize","emby-input","paper-icon-button-light","emby-select","material-icons","css!./../formdialog","emby-button"],function(shell,dialogHelper,loading,layoutManager,playbackManager,connectionManager,userSettings,embyRouter,globalize){"use strict";function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function onSubmit(e){var panel=parentWithClass(this,"dialog"),playlistId=panel.querySelector("#selectPlaylistToAddTo").value,apiClient=connectionManager.getApiClient(currentServerId);return playlistId?(userSettings.set("playlisteditor-lastplaylistid",playlistId),addToPlaylist(apiClient,panel,playlistId)):createPlaylist(apiClient,panel),e.preventDefault(),!1}function createPlaylist(apiClient,dlg){loading.show();var url=apiClient.getUrl("Playlists",{Name:dlg.querySelector("#txtNewPlaylistName").value,Ids:dlg.querySelector(".fldSelectedItemIds").value||"",userId:apiClient.getCurrentUserId()});apiClient.ajax({type:"POST",url:url,dataType:"json"}).then(function(result){loading.hide();var id=result.Id;dlg.submitted=!0,dialogHelper.close(dlg),redirectToPlaylist(apiClient,id)})}function redirectToPlaylist(apiClient,id){apiClient.getItem(apiClient.getCurrentUserId(),id).then(function(item){embyRouter.showItem(item)})}function addToPlaylist(apiClient,dlg,id){var itemIds=dlg.querySelector(".fldSelectedItemIds").value||"";if("queue"===id)return playbackManager.queue({serverId:apiClient.serverId(),ids:itemIds.split(",")}),dlg.submitted=!0,void dialogHelper.close(dlg);loading.show();var url=apiClient.getUrl("Playlists/"+id+"/Items",{Ids:itemIds,userId:apiClient.getCurrentUserId()});apiClient.ajax({type:"POST",url:url}).then(function(){loading.hide(),dlg.submitted=!0,dialogHelper.close(dlg)})}function triggerChange(select){select.dispatchEvent(new CustomEvent("change",{}))}function populatePlaylists(editorOptions,panel){var select=panel.querySelector("#selectPlaylistToAddTo");loading.hide(),panel.querySelector(".newPlaylistInfo").classList.add("hide");var options={Recursive:!0,IncludeItemTypes:"Playlist",SortBy:"SortName",EnableTotalRecordCount:!1},apiClient=connectionManager.getApiClient(currentServerId);apiClient.getItems(apiClient.getCurrentUserId(),options).then(function(result){var html="";editorOptions.enableAddToPlayQueue!==!1&&playbackManager.isPlaying()&&(html+='"),html+='",html+=result.Items.map(function(i){return'"}),select.innerHTML=html;var defaultValue=editorOptions.defaultValue;defaultValue||(defaultValue=userSettings.get("playlisteditor-lastplaylistid")||""),select.value="new"===defaultValue?"":defaultValue,select.value||(select.value=""),triggerChange(select),loading.hide()})}function getEditorHtml(){var html="";return html+='
',html+='
',html+='
',html+='
',html+='',html+="
",html+='
',html+='
',html+='',html+="
",html+="
",html+='
',html+='",html+="
",html+='',html+="
",html+="
",html+="
"}function initEditor(content,options,items){if(content.querySelector("#selectPlaylistToAddTo").addEventListener("change",function(){this.value?(content.querySelector(".newPlaylistInfo").classList.add("hide"),content.querySelector("#txtNewPlaylistName").removeAttribute("required")):(content.querySelector(".newPlaylistInfo").classList.remove("hide"),content.querySelector("#txtNewPlaylistName").setAttribute("required","required"))}),content.querySelector("form").addEventListener("submit",onSubmit),content.querySelector(".fldSelectedItemIds",content).value=items.join(","),items.length)content.querySelector(".fldSelectPlaylist").classList.remove("hide"),populatePlaylists(options,content);else{content.querySelector(".fldSelectPlaylist").classList.add("hide");var selectPlaylistToAddTo=content.querySelector("#selectPlaylistToAddTo");selectPlaylistToAddTo.innerHTML="",selectPlaylistToAddTo.value="",triggerChange(selectPlaylistToAddTo)}}function centerFocus(elem,horiz,on){require(["scrollHelper"],function(scrollHelper){var fn=on?"on":"off";scrollHelper.centerFocus[fn](elem,horiz)})}function PlaylistEditor(){}var currentServerId;return PlaylistEditor.prototype.show=function(options){var items=options.items||{};currentServerId=options.serverId;var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="small";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="",title=globalize.translate("sharedcomponents#HeaderAddToPlaylist");return html+='
',html+='',html+='

',html+=title,html+="

",html+="
",html+=getEditorHtml(),dlg.innerHTML=html,initEditor(dlg,options,items),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!0),dialogHelper.open(dlg).then(function(){return layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!1),dlg.submitted?Promise.resolve():Promise.reject()})},PlaylistEditor}); \ No newline at end of file +define(["shell","dialogHelper","loading","layoutManager","playbackManager","connectionManager","userSettings","appRouter","globalize","emby-input","paper-icon-button-light","emby-select","material-icons","css!./../formdialog","emby-button"],function(shell,dialogHelper,loading,layoutManager,playbackManager,connectionManager,userSettings,appRouter,globalize){"use strict";function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function onSubmit(e){var panel=parentWithClass(this,"dialog"),playlistId=panel.querySelector("#selectPlaylistToAddTo").value,apiClient=connectionManager.getApiClient(currentServerId);return playlistId?(userSettings.set("playlisteditor-lastplaylistid",playlistId),addToPlaylist(apiClient,panel,playlistId)):createPlaylist(apiClient,panel),e.preventDefault(),!1}function createPlaylist(apiClient,dlg){loading.show();var url=apiClient.getUrl("Playlists",{Name:dlg.querySelector("#txtNewPlaylistName").value,Ids:dlg.querySelector(".fldSelectedItemIds").value||"",userId:apiClient.getCurrentUserId()});apiClient.ajax({type:"POST",url:url,dataType:"json"}).then(function(result){loading.hide();var id=result.Id;dlg.submitted=!0,dialogHelper.close(dlg),redirectToPlaylist(apiClient,id)})}function redirectToPlaylist(apiClient,id){appRouter.showItem(id,apiClient.serverId())}function addToPlaylist(apiClient,dlg,id){var itemIds=dlg.querySelector(".fldSelectedItemIds").value||"";if("queue"===id)return playbackManager.queue({serverId:apiClient.serverId(),ids:itemIds.split(",")}),dlg.submitted=!0,void dialogHelper.close(dlg);loading.show();var url=apiClient.getUrl("Playlists/"+id+"/Items",{Ids:itemIds,userId:apiClient.getCurrentUserId()});apiClient.ajax({type:"POST",url:url}).then(function(){loading.hide(),dlg.submitted=!0,dialogHelper.close(dlg)})}function triggerChange(select){select.dispatchEvent(new CustomEvent("change",{}))}function populatePlaylists(editorOptions,panel){var select=panel.querySelector("#selectPlaylistToAddTo");loading.hide(),panel.querySelector(".newPlaylistInfo").classList.add("hide");var options={Recursive:!0,IncludeItemTypes:"Playlist",SortBy:"SortName",EnableTotalRecordCount:!1},apiClient=connectionManager.getApiClient(currentServerId);apiClient.getItems(apiClient.getCurrentUserId(),options).then(function(result){var html="";editorOptions.enableAddToPlayQueue!==!1&&playbackManager.isPlaying()&&(html+='"),html+='",html+=result.Items.map(function(i){return'"}),select.innerHTML=html;var defaultValue=editorOptions.defaultValue;defaultValue||(defaultValue=userSettings.get("playlisteditor-lastplaylistid")||""),select.value="new"===defaultValue?"":defaultValue,select.value||(select.value=""),triggerChange(select),loading.hide()})}function getEditorHtml(){var html="";return html+='
',html+='
',html+='
',html+='
',html+='',html+="
",html+='
',html+='
',html+='',html+="
",html+="
",html+='
',html+='",html+="
",html+='',html+="
",html+="
",html+="
"}function initEditor(content,options,items){if(content.querySelector("#selectPlaylistToAddTo").addEventListener("change",function(){this.value?(content.querySelector(".newPlaylistInfo").classList.add("hide"),content.querySelector("#txtNewPlaylistName").removeAttribute("required")):(content.querySelector(".newPlaylistInfo").classList.remove("hide"),content.querySelector("#txtNewPlaylistName").setAttribute("required","required"))}),content.querySelector("form").addEventListener("submit",onSubmit),content.querySelector(".fldSelectedItemIds",content).value=items.join(","),items.length)content.querySelector(".fldSelectPlaylist").classList.remove("hide"),populatePlaylists(options,content);else{content.querySelector(".fldSelectPlaylist").classList.add("hide");var selectPlaylistToAddTo=content.querySelector("#selectPlaylistToAddTo");selectPlaylistToAddTo.innerHTML="",selectPlaylistToAddTo.value="",triggerChange(selectPlaylistToAddTo)}}function centerFocus(elem,horiz,on){require(["scrollHelper"],function(scrollHelper){var fn=on?"on":"off";scrollHelper.centerFocus[fn](elem,horiz)})}function PlaylistEditor(){}var currentServerId;return PlaylistEditor.prototype.show=function(options){var items=options.items||{};currentServerId=options.serverId;var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="small";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="",title=globalize.translate("sharedcomponents#HeaderAddToPlaylist");return html+='
',html+='',html+='

',html+=title,html+="

",html+="
",html+=getEditorHtml(),dlg.innerHTML=html,initEditor(dlg,options,items),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!0),dialogHelper.open(dlg).then(function(){return layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!1),dlg.submitted?Promise.resolve():Promise.reject()})},PlaylistEditor}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/pluginmanager.js b/dashboard-ui/bower_components/emby-webcomponents/pluginmanager.js index c643941ff0..f2f02e4a12 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/pluginmanager.js +++ b/dashboard-ui/bower_components/emby-webcomponents/pluginmanager.js @@ -1 +1 @@ -define(["events"],function(events){"use strict";function loadStrings(plugin,globalize){var strings=plugin.getTranslations?plugin.getTranslations():[];return globalize.loadStrings({name:plugin.id||plugin.packageName,strings:strings})}function definePluginRoute(pluginManager,route,plugin){route.contentPath=pluginManager.mapPath(plugin,route.path),route.path=pluginManager.mapRoute(plugin,route),Emby.App.defineRoute(route,plugin.id)}function PluginManager(){this.pluginsList=[]}var cacheParam=(new Date).getTime();return PluginManager.prototype.loadPlugin=function(url){console.log("Loading plugin: "+url);var instance=this;return new Promise(function(resolve,reject){require([url,"globalize","embyRouter"],function(pluginFactory,globalize,embyRouter){var plugin=new pluginFactory,existing=instance.pluginsList.filter(function(p){return p.id===plugin.id})[0];if(existing)return void resolve(url);plugin.installUrl=url;var urlLower=url.toLowerCase();urlLower.indexOf("http:")===-1&&urlLower.indexOf("https:")===-1&&urlLower.indexOf("file:")===-1&&0!==url.indexOf(embyRouter.baseUrl())&&(url=embyRouter.baseUrl()+"/"+url);var separatorIndex=Math.max(url.lastIndexOf("/"),url.lastIndexOf("\\"));plugin.baseUrl=url.substring(0,separatorIndex);var paths={};paths[plugin.id]=plugin.baseUrl,requirejs.config({waitSeconds:0,paths:paths}),instance.register(plugin),plugin.getRoutes&&plugin.getRoutes().forEach(function(route){definePluginRoute(instance,route,plugin)}),"skin"===plugin.type?resolve(plugin):loadStrings(plugin,globalize).then(function(){resolve(plugin)},reject)})})},PluginManager.prototype.register=function(obj){this.pluginsList.push(obj),events.trigger(this,"registered",[obj])},PluginManager.prototype.ofType=function(type){return this.pluginsList.filter(function(o){return o.type===type})},PluginManager.prototype.plugins=function(){return this.pluginsList},PluginManager.prototype.mapRoute=function(plugin,route){return"string"==typeof plugin&&(plugin=this.pluginsList.filter(function(p){return(p.id||p.packageName)===plugin})[0]),route=route.path||route,0===route.toLowerCase().indexOf("http")?route:"/plugins/"+plugin.id+"/"+route},PluginManager.prototype.mapPath=function(plugin,path,addCacheParam){"string"==typeof plugin&&(plugin=this.pluginsList.filter(function(p){return(p.id||p.packageName)===plugin})[0]);var url=plugin.baseUrl+"/"+path;return addCacheParam&&(url+=url.indexOf("?")===-1?"?":"&",url+="v="+cacheParam),url},new PluginManager}); \ No newline at end of file +define(["events"],function(events){"use strict";function loadStrings(plugin,globalize){var strings=plugin.getTranslations?plugin.getTranslations():[];return globalize.loadStrings({name:plugin.id||plugin.packageName,strings:strings})}function definePluginRoute(pluginManager,route,plugin){route.contentPath=pluginManager.mapPath(plugin,route.path),route.path=pluginManager.mapRoute(plugin,route),Emby.App.defineRoute(route,plugin.id)}function PluginManager(){this.pluginsList=[]}var cacheParam=(new Date).getTime();return PluginManager.prototype.loadPlugin=function(url){console.log("Loading plugin: "+url);var instance=this;return new Promise(function(resolve,reject){require([url,"globalize","appRouter"],function(pluginFactory,globalize,appRouter){var plugin=new pluginFactory,existing=instance.pluginsList.filter(function(p){return p.id===plugin.id})[0];if(existing)return void resolve(url);plugin.installUrl=url;var urlLower=url.toLowerCase();urlLower.indexOf("http:")===-1&&urlLower.indexOf("https:")===-1&&urlLower.indexOf("file:")===-1&&0!==url.indexOf(appRouter.baseUrl())&&(url=appRouter.baseUrl()+"/"+url);var separatorIndex=Math.max(url.lastIndexOf("/"),url.lastIndexOf("\\"));plugin.baseUrl=url.substring(0,separatorIndex);var paths={};paths[plugin.id]=plugin.baseUrl,requirejs.config({waitSeconds:0,paths:paths}),instance.register(plugin),plugin.getRoutes&&plugin.getRoutes().forEach(function(route){definePluginRoute(instance,route,plugin)}),"skin"===plugin.type?resolve(plugin):loadStrings(plugin,globalize).then(function(){resolve(plugin)},reject)})})},PluginManager.prototype.register=function(obj){this.pluginsList.push(obj),events.trigger(this,"registered",[obj])},PluginManager.prototype.ofType=function(type){return this.pluginsList.filter(function(o){return o.type===type})},PluginManager.prototype.plugins=function(){return this.pluginsList},PluginManager.prototype.mapRoute=function(plugin,route){return"string"==typeof plugin&&(plugin=this.pluginsList.filter(function(p){return(p.id||p.packageName)===plugin})[0]),route=route.path||route,0===route.toLowerCase().indexOf("http")?route:"/plugins/"+plugin.id+"/"+route},PluginManager.prototype.mapPath=function(plugin,path,addCacheParam){"string"==typeof plugin&&(plugin=this.pluginsList.filter(function(p){return(p.id||p.packageName)===plugin})[0]);var url=plugin.baseUrl+"/"+path;return addCacheParam&&(url+=url.indexOf("?")===-1?"?":"&",url+="v="+cacheParam),url},new PluginManager}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/refreshdialog/refreshdialog.js b/dashboard-ui/bower_components/emby-webcomponents/refreshdialog/refreshdialog.js index 9082f13f33..8e1c09aa1c 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/refreshdialog/refreshdialog.js +++ b/dashboard-ui/bower_components/emby-webcomponents/refreshdialog/refreshdialog.js @@ -1 +1 @@ -define(["shell","dialogHelper","loading","layoutManager","connectionManager","embyRouter","globalize","emby-input","emby-checkbox","paper-icon-button-light","emby-select","material-icons","css!./../formdialog","emby-button"],function(shell,dialogHelper,loading,layoutManager,connectionManager,embyRouter,globalize){"use strict";function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function getEditorHtml(){var html="";return html+='
',html+='
',html+='
',html+='
',html+='",html+="
",html+='",html+='
',html+=globalize.translate("sharedcomponents#RefreshDialogHelp"),html+="
",html+='',html+="
",html+='
',html+='",html+="
",html+="
",html+="
",html+="
"}function centerFocus(elem,horiz,on){require(["scrollHelper"],function(scrollHelper){var fn=on?"on":"off";scrollHelper.centerFocus[fn](elem,horiz)})}function onSubmit(e){loading.show();var instance=this,dlg=parentWithClass(e.target,"dialog"),options=instance.options,apiClient=connectionManager.getApiClient(options.serverId),replaceAllMetadata="all"===dlg.querySelector("#selectMetadataRefreshMode").value,mode="scan"===dlg.querySelector("#selectMetadataRefreshMode").value?"Default":"FullRefresh",replaceAllImages="FullRefresh"===mode&&dlg.querySelector(".chkReplaceImages").checked;return options.itemIds.forEach(function(itemId){apiClient.refreshItem(itemId,{Recursive:!0,ImageRefreshMode:mode,MetadataRefreshMode:mode,ReplaceAllImages:replaceAllImages,ReplaceAllMetadata:replaceAllMetadata})}),dialogHelper.close(dlg),require(["toast"],function(toast){toast(globalize.translate("sharedcomponents#RefreshQueued"))}),loading.hide(),e.preventDefault(),!1}function RefreshDialog(options){this.options=options}return RefreshDialog.prototype.show=function(){var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="small";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="",title=globalize.translate("sharedcomponents#RefreshMetadata");return html+='
',html+='',html+='

',html+=title,html+="

",html+="
",html+=getEditorHtml(),dlg.innerHTML=html,dlg.querySelector("form").addEventListener("submit",onSubmit.bind(this)),dlg.querySelector("#selectMetadataRefreshMode").addEventListener("change",function(){"scan"===this.value?dlg.querySelector(".fldReplaceExistingImages").classList.add("hide"):dlg.querySelector(".fldReplaceExistingImages").classList.remove("hide")}),this.options.mode&&(dlg.querySelector("#selectMetadataRefreshMode").value=this.options.mode),dlg.querySelector("#selectMetadataRefreshMode").dispatchEvent(new CustomEvent("change")),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!0),new Promise(function(resolve,reject){layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!1),dlg.addEventListener("close",resolve),dialogHelper.open(dlg)})},RefreshDialog}); \ No newline at end of file +define(["shell","dialogHelper","loading","layoutManager","connectionManager","appRouter","globalize","emby-input","emby-checkbox","paper-icon-button-light","emby-select","material-icons","css!./../formdialog","emby-button"],function(shell,dialogHelper,loading,layoutManager,connectionManager,appRouter,globalize){"use strict";function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function getEditorHtml(){var html="";return html+='
',html+='
',html+='
',html+='
',html+='",html+="
",html+='",html+='
',html+=globalize.translate("sharedcomponents#RefreshDialogHelp"),html+="
",html+='',html+="
",html+='
',html+='",html+="
",html+="
",html+="
",html+="
"}function centerFocus(elem,horiz,on){require(["scrollHelper"],function(scrollHelper){var fn=on?"on":"off";scrollHelper.centerFocus[fn](elem,horiz)})}function onSubmit(e){loading.show();var instance=this,dlg=parentWithClass(e.target,"dialog"),options=instance.options,apiClient=connectionManager.getApiClient(options.serverId),replaceAllMetadata="all"===dlg.querySelector("#selectMetadataRefreshMode").value,mode="scan"===dlg.querySelector("#selectMetadataRefreshMode").value?"Default":"FullRefresh",replaceAllImages="FullRefresh"===mode&&dlg.querySelector(".chkReplaceImages").checked;return options.itemIds.forEach(function(itemId){apiClient.refreshItem(itemId,{Recursive:!0,ImageRefreshMode:mode,MetadataRefreshMode:mode,ReplaceAllImages:replaceAllImages,ReplaceAllMetadata:replaceAllMetadata})}),dialogHelper.close(dlg),require(["toast"],function(toast){toast(globalize.translate("sharedcomponents#RefreshQueued"))}),loading.hide(),e.preventDefault(),!1}function RefreshDialog(options){this.options=options}return RefreshDialog.prototype.show=function(){var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="small";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="",title=globalize.translate("sharedcomponents#RefreshMetadata");return html+='
',html+='',html+='

',html+=title,html+="

",html+="
",html+=getEditorHtml(),dlg.innerHTML=html,dlg.querySelector("form").addEventListener("submit",onSubmit.bind(this)),dlg.querySelector("#selectMetadataRefreshMode").addEventListener("change",function(){"scan"===this.value?dlg.querySelector(".fldReplaceExistingImages").classList.add("hide"):dlg.querySelector(".fldReplaceExistingImages").classList.remove("hide")}),this.options.mode&&(dlg.querySelector("#selectMetadataRefreshMode").value=this.options.mode),dlg.querySelector("#selectMetadataRefreshMode").dispatchEvent(new CustomEvent("change")),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!0),new Promise(function(resolve,reject){layoutManager.tv&¢erFocus(dlg.querySelector(".formDialogContent"),!1,!1),dlg.addEventListener("close",resolve),dialogHelper.open(dlg)})},RefreshDialog}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/router.js b/dashboard-ui/bower_components/emby-webcomponents/router.js index 217267e245..3b04ab5725 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/router.js +++ b/dashboard-ui/bower_components/emby-webcomponents/router.js @@ -1 +1 @@ -define(["loading","globalize","events","viewManager","skinManager","pluginManager","backdrop","browser","pageJs","appSettings","apphost","connectionManager"],function(loading,globalize,events,viewManager,skinManager,pluginManager,backdrop,browser,page,appSettings,appHost,connectionManager){"use strict";function beginConnectionWizard(){backdrop.clear(),loading.show(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){handleConnectionResult(result,loading)})}function handleConnectionResult(result,loading){switch(result.State){case MediaBrowser.ConnectionState.SignedIn:loading.hide(),skinManager.loadUserSkin();break;case MediaBrowser.ConnectionState.ServerSignIn:result.ApiClient.getPublicUsers().then(function(users){users.length?embyRouter.showLocalLogin(result.Servers[0].Id):embyRouter.showLocalLogin(result.Servers[0].Id,!0)});break;case MediaBrowser.ConnectionState.ServerSelection:embyRouter.showSelectServer();break;case MediaBrowser.ConnectionState.ConnectSignIn:embyRouter.showWelcome();break;case MediaBrowser.ConnectionState.ServerUpdateNeeded:require(["alert"],function(alert){alert({text:globalize.translate("sharedcomponents#ServerUpdateNeeded","https://emby.media"),html:globalize.translate("sharedcomponents#ServerUpdateNeeded",'https://emby.media')}).then(function(){embyRouter.showSelectServer()})})}}function loadContentUrl(ctx,next,route,request){var url=route.contentPath||route.path;url.indexOf("://")===-1&&(0!==url.indexOf("/")&&(url="/"+url),url=baseUrl()+url),ctx.querystring&&route.enableContentQueryString&&(url+="?"+ctx.querystring),require(["text!"+url],function(html){loadContent(ctx,route,html,request)})}function handleRoute(ctx,next,route){authenticate(ctx,route,function(){initRoute(ctx,next,route)})}function initRoute(ctx,next,route){var onInitComplete=function(controllerFactory){sendRouteToViewManager(ctx,next,route,controllerFactory)};require(route.dependencies||[],function(){route.controller?require([route.controller],onInitComplete):onInitComplete()})}function cancelCurrentLoadRequest(){var currentRequest=currentViewLoadRequest;currentRequest&&(currentRequest.cancel=!0)}function sendRouteToViewManager(ctx,next,route,controllerFactory){if(isDummyBackToHome&&"home"===route.type)return void(isDummyBackToHome=!1);cancelCurrentLoadRequest();var isBackNav=ctx.isBack,currentRequest={url:baseUrl()+ctx.path,transition:route.transition,isBack:isBackNav,state:ctx.state,type:route.type,fullscreen:route.fullscreen,controllerFactory:controllerFactory,options:{supportsThemeMedia:route.supportsThemeMedia||!1,enableMediaControl:route.enableMediaControl!==!1},autoFocus:route.autoFocus};currentViewLoadRequest=currentRequest;var onNewViewNeeded=function(){"string"==typeof route.path?loadContentUrl(ctx,next,route,currentRequest):next()};return isBackNav?void viewManager.tryRestoreView(currentRequest,function(){currentRouteInfo={route:route,path:ctx.path}}).catch(function(result){result&&result.cancelled||onNewViewNeeded()}):void onNewViewNeeded()}function onForcedLogoutMessageTimeout(){var msg=forcedLogoutMsg;forcedLogoutMsg=null,msg&&require(["alert"],function(alert){alert(msg)})}function showForcedLogoutMessage(msg){forcedLogoutMsg=msg,msgTimeout&&clearTimeout(msgTimeout),msgTimeout=setTimeout(onForcedLogoutMessageTimeout,100)}function onRequestFail(e,data){var apiClient=this;if(401===data.status&&"ParentalControl"===data.errorCode){var isCurrentAllowed=!currentRouteInfo||(currentRouteInfo.route.anonymous||currentRouteInfo.route.startup);isCurrentAllowed||(showForcedLogoutMessage(globalize.translate("sharedcomponents#AccessRestrictedTryAgainLater")),connectionManager.isLoggedIntoConnect()?embyRouter.showConnectLogin():embyRouter.showLocalLogin(apiClient.serverId()))}}function onApiClientCreated(e,newApiClient){events.off(newApiClient,"requestfail",onRequestFail),events.on(newApiClient,"requestfail",onRequestFail)}function initApiClient(apiClient){onApiClientCreated({},apiClient)}function initApiClients(){connectionManager.getApiClients().forEach(initApiClient),events.on(connectionManager,"apiclientcreated",onApiClientCreated)}function start(options){loading.show(),initApiClients(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){firstConnectionResult=result,loading.hide(),options=options||{},page({click:options.click!==!1,hashbang:options.hashbang!==!1,enableHistory:enableHistory()})})}function enableHistory(){return!browser.xboxOne&&!browser.orsay}function enableNativeHistory(){return page.enableNativeHistory()}function authenticate(ctx,route,callback){var firstResult=firstConnectionResult;if(firstResult&&(firstConnectionResult=null,firstResult.State!==MediaBrowser.ConnectionState.SignedIn&&!route.anonymous))return void handleConnectionResult(firstResult,loading);var apiClient=connectionManager.currentApiClient(),pathname=ctx.pathname.toLowerCase();console.log("embyRouter - processing path request "+pathname);var isCurrentRouteStartup=!currentRouteInfo||currentRouteInfo.route.startup,shouldExitApp=ctx.isBack&&route.isDefaultRoute&&isCurrentRouteStartup;if(!(shouldExitApp||apiClient&&apiClient.isLoggedIn()||route.anonymous))return console.log("embyRouter - route does not allow anonymous access, redirecting to login"),void beginConnectionWizard();if(shouldExitApp){if(appHost.supports("exit"))return void appHost.exit()}else{if(apiClient&&apiClient.isLoggedIn()){if(console.log("embyRouter - user is authenticated"),ctx.isBack&&(route.isDefaultRoute||route.startup)&&!isCurrentRouteStartup)return void handleBackToDefault();if(route.isDefaultRoute)return console.log("embyRouter - loading skin home page"),void skinManager.loadUserSkin();if(route.roles)return void validateRoles(apiClient,route.roles).then(function(){apiClient.ensureWebSocket(),callback()},beginConnectionWizard)}console.log("embyRouter - proceeding to "+pathname),callback()}}function validateRoles(apiClient,roles){return Promise.all(roles.split(",").map(function(role){return validateRole(apiClient,role)}))}function validateRole(apiClient,role){return"admin"===role?apiClient.getCurrentUser().then(function(user){return user.Policy.IsAdministrator?Promise.resolve():Promise.reject()}):Promise.resolve()}function handleBackToDefault(){return!appHost.supports("exitmenu")&&appHost.supports("exit")?void appHost.exit():(isDummyBackToHome=!0,skinManager.loadUserSkin(),void(isHandlingBackToDefault||skinManager.getCurrentSkin().showBackMenu().then(function(){isHandlingBackToDefault=!1})))}function loadContent(ctx,route,html,request){html=globalize.translateDocument(html,route.dictionary),request.view=html,viewManager.loadView(request),currentRouteInfo={route:route,path:ctx.path},ctx.handled=!0}function getRequestFile(){var path=window.location.pathname||"",index=path.lastIndexOf("/");return path=index!==-1?path.substring(index):"/"+path,path&&"/"!==path||(path="/index.html"),path}function baseUrl(){return baseRoute}function getHandler(route){return function(ctx,next){handleRoute(ctx,next,route)}}function getWindowLocationSearch(win){var currentPath=currentRouteInfo?currentRouteInfo.path||"":"",index=currentPath.indexOf("?"),search="";return index!==-1&&(search=currentPath.substring(index)),search||""}function param(name,url){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url||getWindowLocationSearch());return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function back(){var checkCanGoBack=browser.web0s||browser.orsay;checkCanGoBack?canGoBack()?page.back():appHost.exit():page.back()}function canGoBack(){var curr=current();return!!curr&&("home"!==curr.type&&page.canGoBack())}function show(path,options){0!==path.indexOf("/")&&path.indexOf("://")===-1&&(path="/"+path);var baseRoute=baseUrl();return path=path.replace(baseRoute,""),currentRouteInfo&¤tRouteInfo.path===path&&"home"!==currentRouteInfo.route.type?(loading.hide(),Promise.resolve()):new Promise(function(resolve,reject){resolveOnNextShow=resolve,page.show(path,options)})}function current(){return currentRouteInfo?currentRouteInfo.route:null}function goHome(){var skin=skinManager.getCurrentSkin();if(skin.getHomeRoute){var homePath=skin.getHomeRoute();return show(pluginManager.mapRoute(skin,homePath))}var homeRoute=skin.getRoutes().filter(function(r){return"home"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function getRouteUrl(item,options){return"downloads"===item?"offline/offline.html":"managedownloads"===item?"offline/managedownloads.html":skinManager.getCurrentSkin().getRouteUrl(item,options)}function showItem(item,serverId,options){if("string"==typeof item){var apiClient=serverId?connectionManager.getApiClient(serverId):connectionManager.currentApiClient();apiClient.getItem(apiClient.getCurrentUserId(),item).then(function(item){embyRouter.showItem(item,options)})}else{2===arguments.length&&(options=arguments[1]);var url=embyRouter.getRouteUrl(item,options);embyRouter.show(url,{item:item})}}function setTitle(title){skinManager.getCurrentSkin().setTitle(title)}function showVideoOsd(){var skin=skinManager.getCurrentSkin(),homeRoute=skin.getRoutes().filter(function(r){return"video-osd"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function addRoute(path,newRoute){page(path,getHandler(newRoute)),allRoutes.push(newRoute)}function getRoutes(){return allRoutes}function setTransparency(level){backdropContainer||(backdropContainer=document.querySelector(".backdropContainer")),backgroundContainer||(backgroundContainer=document.querySelector(".backgroundContainer")),"full"===level||2===level?(backdrop.clear(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):"backdrop"===level||1===level?(backdrop.externalBackdrop(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):(backdrop.externalBackdrop(!1),document.documentElement.classList.remove("transparentDocument"),backgroundContainer.classList.remove("backgroundContainer-transparent"),backdropContainer.classList.remove("hide"))}function pushState(state,title,url){state.navigate=!1,page.pushState(state,title,url)}function setBaseRoute(){var baseRoute=window.location.pathname.replace(getRequestFile(),"");baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1)),console.log("Setting page base to "+baseRoute),page.base(baseRoute)}var currentViewLoadRequest,msgTimeout,forcedLogoutMsg,firstConnectionResult,isHandlingBackToDefault,isDummyBackToHome,embyRouter={showLocalLogin:function(serverId,manualLogin){var pageName=manualLogin?"manuallogin":"login";show("/startup/"+pageName+".html?serverid="+serverId)},showSelectServer:function(){show("/startup/selectserver.html")},showWelcome:function(){show("/startup/welcome.html")},showConnectLogin:function(){show("/startup/connectlogin.html")},showSettings:function(){show("/settings/settings.html")},showSearch:function(){skinManager.getCurrentSkin().search()},showGenre:function(options){skinManager.getCurrentSkin().showGenre(options)},showGuide:function(){skinManager.getCurrentSkin().showGuide()},showLiveTV:function(){skinManager.getCurrentSkin().showLiveTV()},showRecordedTV:function(){skinManager.getCurrentSkin().showRecordedTV()},showFavorites:function(){skinManager.getCurrentSkin().showFavorites()},showNowPlaying:function(){skinManager.getCurrentSkin().showNowPlaying()}},baseRoute=window.location.href.split("?")[0].replace(getRequestFile(),"");baseRoute=baseRoute.split("#")[0],baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1));var resolveOnNextShow;document.addEventListener("viewshow",function(){var resolve=resolveOnNextShow;resolve&&(resolveOnNextShow=null,resolve())});var currentRouteInfo,backdropContainer,backgroundContainer,allRoutes=[];return setBaseRoute(),embyRouter.addRoute=addRoute,embyRouter.param=param,embyRouter.back=back,embyRouter.show=show,embyRouter.start=start,embyRouter.baseUrl=baseUrl,embyRouter.canGoBack=canGoBack,embyRouter.current=current,embyRouter.beginConnectionWizard=beginConnectionWizard,embyRouter.goHome=goHome,embyRouter.showItem=showItem,embyRouter.setTitle=setTitle,embyRouter.setTransparency=setTransparency,embyRouter.getRoutes=getRoutes,embyRouter.getRouteUrl=getRouteUrl,embyRouter.pushState=pushState,embyRouter.enableNativeHistory=enableNativeHistory,embyRouter.showVideoOsd=showVideoOsd,embyRouter.handleAnchorClick=page.handleAnchorClick,embyRouter.TransparencyLevel={None:0,Backdrop:1,Full:2},embyRouter}); \ No newline at end of file +define(["loading","globalize","events","viewManager","skinManager","pluginManager","backdrop","browser","pageJs","appSettings","apphost","connectionManager"],function(loading,globalize,events,viewManager,skinManager,pluginManager,backdrop,browser,page,appSettings,appHost,connectionManager){"use strict";function beginConnectionWizard(){backdrop.clear(),loading.show(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){handleConnectionResult(result,loading)})}function handleConnectionResult(result,loading){switch(result.State){case MediaBrowser.ConnectionState.SignedIn:loading.hide(),skinManager.loadUserSkin();break;case MediaBrowser.ConnectionState.ServerSignIn:result.ApiClient.getPublicUsers().then(function(users){users.length?appRouter.showLocalLogin(result.Servers[0].Id):appRouter.showLocalLogin(result.Servers[0].Id,!0)});break;case MediaBrowser.ConnectionState.ServerSelection:appRouter.showSelectServer();break;case MediaBrowser.ConnectionState.ConnectSignIn:appRouter.showWelcome();break;case MediaBrowser.ConnectionState.ServerUpdateNeeded:require(["alert"],function(alert){alert({text:globalize.translate("sharedcomponents#ServerUpdateNeeded","https://emby.media"),html:globalize.translate("sharedcomponents#ServerUpdateNeeded",'https://emby.media')}).then(function(){appRouter.showSelectServer()})})}}function loadContentUrl(ctx,next,route,request){var url=route.contentPath||route.path;url.indexOf("://")===-1&&(0!==url.indexOf("/")&&(url="/"+url),url=baseUrl()+url),ctx.querystring&&route.enableContentQueryString&&(url+="?"+ctx.querystring),require(["text!"+url],function(html){loadContent(ctx,route,html,request)})}function handleRoute(ctx,next,route){authenticate(ctx,route,function(){initRoute(ctx,next,route)})}function initRoute(ctx,next,route){var onInitComplete=function(controllerFactory){sendRouteToViewManager(ctx,next,route,controllerFactory)};require(route.dependencies||[],function(){route.controller?require([route.controller],onInitComplete):onInitComplete()})}function cancelCurrentLoadRequest(){var currentRequest=currentViewLoadRequest;currentRequest&&(currentRequest.cancel=!0)}function sendRouteToViewManager(ctx,next,route,controllerFactory){if(isDummyBackToHome&&"home"===route.type)return void(isDummyBackToHome=!1);cancelCurrentLoadRequest();var isBackNav=ctx.isBack,currentRequest={url:baseUrl()+ctx.path,transition:route.transition,isBack:isBackNav,state:ctx.state,type:route.type,fullscreen:route.fullscreen,controllerFactory:controllerFactory,options:{supportsThemeMedia:route.supportsThemeMedia||!1,enableMediaControl:route.enableMediaControl!==!1},autoFocus:route.autoFocus};currentViewLoadRequest=currentRequest;var onNewViewNeeded=function(){"string"==typeof route.path?loadContentUrl(ctx,next,route,currentRequest):next()};return isBackNav?void viewManager.tryRestoreView(currentRequest,function(){currentRouteInfo={route:route,path:ctx.path}}).catch(function(result){result&&result.cancelled||onNewViewNeeded()}):void onNewViewNeeded()}function onForcedLogoutMessageTimeout(){var msg=forcedLogoutMsg;forcedLogoutMsg=null,msg&&require(["alert"],function(alert){alert(msg)})}function showForcedLogoutMessage(msg){forcedLogoutMsg=msg,msgTimeout&&clearTimeout(msgTimeout),msgTimeout=setTimeout(onForcedLogoutMessageTimeout,100)}function onRequestFail(e,data){var apiClient=this;if(401===data.status&&"ParentalControl"===data.errorCode){var isCurrentAllowed=!currentRouteInfo||(currentRouteInfo.route.anonymous||currentRouteInfo.route.startup);isCurrentAllowed||(showForcedLogoutMessage(globalize.translate("sharedcomponents#AccessRestrictedTryAgainLater")),connectionManager.isLoggedIntoConnect()?appRouter.showConnectLogin():appRouter.showLocalLogin(apiClient.serverId()))}}function onApiClientCreated(e,newApiClient){events.off(newApiClient,"requestfail",onRequestFail),events.on(newApiClient,"requestfail",onRequestFail)}function initApiClient(apiClient){onApiClientCreated({},apiClient)}function initApiClients(){connectionManager.getApiClients().forEach(initApiClient),events.on(connectionManager,"apiclientcreated",onApiClientCreated)}function start(options){loading.show(),initApiClients(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){firstConnectionResult=result,loading.hide(),options=options||{},page({click:options.click!==!1,hashbang:options.hashbang!==!1,enableHistory:enableHistory()})})}function enableHistory(){return!browser.xboxOne&&!browser.orsay}function enableNativeHistory(){return page.enableNativeHistory()}function authenticate(ctx,route,callback){var firstResult=firstConnectionResult;if(firstResult&&(firstConnectionResult=null,firstResult.State!==MediaBrowser.ConnectionState.SignedIn&&!route.anonymous))return void handleConnectionResult(firstResult,loading);var apiClient=connectionManager.currentApiClient(),pathname=ctx.pathname.toLowerCase();console.log("appRouter - processing path request "+pathname);var isCurrentRouteStartup=!currentRouteInfo||currentRouteInfo.route.startup,shouldExitApp=ctx.isBack&&route.isDefaultRoute&&isCurrentRouteStartup;if(!(shouldExitApp||apiClient&&apiClient.isLoggedIn()||route.anonymous))return console.log("appRouter - route does not allow anonymous access, redirecting to login"),void beginConnectionWizard();if(shouldExitApp){if(appHost.supports("exit"))return void appHost.exit()}else{if(apiClient&&apiClient.isLoggedIn()){if(console.log("appRouter - user is authenticated"),ctx.isBack&&(route.isDefaultRoute||route.startup)&&!isCurrentRouteStartup)return void handleBackToDefault();if(route.isDefaultRoute)return console.log("appRouter - loading skin home page"),void skinManager.loadUserSkin();if(route.roles)return void validateRoles(apiClient,route.roles).then(function(){apiClient.ensureWebSocket(),callback()},beginConnectionWizard)}console.log("appRouter - proceeding to "+pathname),callback()}}function validateRoles(apiClient,roles){return Promise.all(roles.split(",").map(function(role){return validateRole(apiClient,role)}))}function validateRole(apiClient,role){return"admin"===role?apiClient.getCurrentUser().then(function(user){return user.Policy.IsAdministrator?Promise.resolve():Promise.reject()}):Promise.resolve()}function handleBackToDefault(){return!appHost.supports("exitmenu")&&appHost.supports("exit")?void appHost.exit():(isDummyBackToHome=!0,skinManager.loadUserSkin(),void(isHandlingBackToDefault||skinManager.getCurrentSkin().showBackMenu().then(function(){isHandlingBackToDefault=!1})))}function loadContent(ctx,route,html,request){html=globalize.translateDocument(html,route.dictionary),request.view=html,viewManager.loadView(request),currentRouteInfo={route:route,path:ctx.path},ctx.handled=!0}function getRequestFile(){var path=window.location.pathname||"",index=path.lastIndexOf("/");return path=index!==-1?path.substring(index):"/"+path,path&&"/"!==path||(path="/index.html"),path}function baseUrl(){return baseRoute}function getHandler(route){return function(ctx,next){handleRoute(ctx,next,route)}}function getWindowLocationSearch(win){var currentPath=currentRouteInfo?currentRouteInfo.path||"":"",index=currentPath.indexOf("?"),search="";return index!==-1&&(search=currentPath.substring(index)),search||""}function param(name,url){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url||getWindowLocationSearch());return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function back(){var checkCanGoBack=browser.web0s||browser.orsay;checkCanGoBack?canGoBack()?page.back():appHost.exit():page.back()}function canGoBack(){var curr=current();return!!curr&&("home"!==curr.type&&page.canGoBack())}function show(path,options){0!==path.indexOf("/")&&path.indexOf("://")===-1&&(path="/"+path);var baseRoute=baseUrl();return path=path.replace(baseRoute,""),currentRouteInfo&¤tRouteInfo.path===path&&"home"!==currentRouteInfo.route.type?(loading.hide(),Promise.resolve()):new Promise(function(resolve,reject){resolveOnNextShow=resolve,page.show(path,options)})}function current(){return currentRouteInfo?currentRouteInfo.route:null}function goHome(){var skin=skinManager.getCurrentSkin();if(skin.getHomeRoute){var homePath=skin.getHomeRoute();return show(pluginManager.mapRoute(skin,homePath))}var homeRoute=skin.getRoutes().filter(function(r){return"home"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function getRouteUrl(item,options){return"downloads"===item?"offline/offline.html":"managedownloads"===item?"offline/managedownloads.html":skinManager.getCurrentSkin().getRouteUrl(item,options)}function showItem(item,serverId,options){if("string"==typeof item){var apiClient=serverId?connectionManager.getApiClient(serverId):connectionManager.currentApiClient();apiClient.getItem(apiClient.getCurrentUserId(),item).then(function(item){appRouter.showItem(item,options)})}else{2===arguments.length&&(options=arguments[1]);var url=appRouter.getRouteUrl(item,options);appRouter.show(url,{item:item})}}function setTitle(title){skinManager.getCurrentSkin().setTitle(title)}function showVideoOsd(){var skin=skinManager.getCurrentSkin(),homeRoute=skin.getRoutes().filter(function(r){return"video-osd"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function addRoute(path,newRoute){page(path,getHandler(newRoute)),allRoutes.push(newRoute)}function getRoutes(){return allRoutes}function setTransparency(level){backdropContainer||(backdropContainer=document.querySelector(".backdropContainer")),backgroundContainer||(backgroundContainer=document.querySelector(".backgroundContainer")),"full"===level||2===level?(backdrop.clear(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):"backdrop"===level||1===level?(backdrop.externalBackdrop(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):(backdrop.externalBackdrop(!1),document.documentElement.classList.remove("transparentDocument"),backgroundContainer.classList.remove("backgroundContainer-transparent"),backdropContainer.classList.remove("hide"))}function pushState(state,title,url){state.navigate=!1,page.pushState(state,title,url)}function setBaseRoute(){var baseRoute=window.location.pathname.replace(getRequestFile(),"");baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1)),console.log("Setting page base to "+baseRoute),page.base(baseRoute)}var currentViewLoadRequest,msgTimeout,forcedLogoutMsg,firstConnectionResult,isHandlingBackToDefault,isDummyBackToHome,appRouter={showLocalLogin:function(serverId,manualLogin){var pageName=manualLogin?"manuallogin":"login";show("/startup/"+pageName+".html?serverid="+serverId)},showSelectServer:function(){show("/startup/selectserver.html")},showWelcome:function(){show("/startup/welcome.html")},showConnectLogin:function(){show("/startup/connectlogin.html")},showSettings:function(){show("/settings/settings.html")},showSearch:function(){skinManager.getCurrentSkin().search()},showGenre:function(options){skinManager.getCurrentSkin().showGenre(options)},showGuide:function(){skinManager.getCurrentSkin().showGuide()},showLiveTV:function(){skinManager.getCurrentSkin().showLiveTV()},showRecordedTV:function(){skinManager.getCurrentSkin().showRecordedTV()},showFavorites:function(){skinManager.getCurrentSkin().showFavorites()},showNowPlaying:function(){skinManager.getCurrentSkin().showNowPlaying()}},baseRoute=window.location.href.split("?")[0].replace(getRequestFile(),"");baseRoute=baseRoute.split("#")[0],baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1));var resolveOnNextShow;document.addEventListener("viewshow",function(){var resolve=resolveOnNextShow;resolve&&(resolveOnNextShow=null,resolve())});var currentRouteInfo,backdropContainer,backgroundContainer,allRoutes=[];return setBaseRoute(),appRouter.addRoute=addRoute,appRouter.param=param,appRouter.back=back,appRouter.show=show,appRouter.start=start,appRouter.baseUrl=baseUrl,appRouter.canGoBack=canGoBack,appRouter.current=current,appRouter.beginConnectionWizard=beginConnectionWizard,appRouter.goHome=goHome,appRouter.showItem=showItem,appRouter.setTitle=setTitle,appRouter.setTransparency=setTransparency,appRouter.getRoutes=getRoutes,appRouter.getRouteUrl=getRouteUrl,appRouter.pushState=pushState,appRouter.enableNativeHistory=enableNativeHistory,appRouter.showVideoOsd=showVideoOsd,appRouter.handleAnchorClick=page.handleAnchorClick,appRouter.TransparencyLevel={None:0,Backdrop:1,Full:2},appRouter}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/search/searchresults.js b/dashboard-ui/bower_components/emby-webcomponents/search/searchresults.js index faed1e8d00..5e989809d5 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/search/searchresults.js +++ b/dashboard-ui/bower_components/emby-webcomponents/search/searchresults.js @@ -1 +1 @@ -define(["layoutManager","globalize","require","events","connectionManager","cardBuilder","embyRouter","emby-scroller","emby-itemscontainer"],function(layoutManager,globalize,require,events,connectionManager,cardBuilder,embyRouter){"use strict";function loadSuggestions(instance,context,apiClient){var options={SortBy:"IsFavoriteOrLiked,Random",IncludeItemTypes:"Movie,Series,MusicArtist",Limit:20,Recursive:!0,ImageTypeLimit:0,EnableImages:!1,ParentId:instance.options.parentId};apiClient.getItems(apiClient.getCurrentUserId(),options).then(function(result){var html=result.Items.map(function(i){var href=embyRouter.getRouteUrl(i),itemHtml='"}).join(""),searchSuggestions=context.querySelector(".searchSuggestions");searchSuggestions.querySelector(".searchSuggestionsList").innerHTML=html,searchSuggestions.classList.remove("hide")})}function getSearchHints(instance,apiClient,query){if(!query.searchTerm)return Promise.resolve({SearchHints:[]});var allowSearch=!0,queryIncludeItemTypes=query.IncludeItemTypes;return"tvshows"===instance.options.collectionType?query.IncludeArtists?allowSearch=!1:"Movie"!==queryIncludeItemTypes&&"LiveTvProgram"!==queryIncludeItemTypes&&"MusicAlbum"!==queryIncludeItemTypes&&"Audio"!==queryIncludeItemTypes&&"Book"!==queryIncludeItemTypes&&"AudioBook"!==queryIncludeItemTypes&&"Video"!==query.MediaTypes||(allowSearch=!1):"movies"===instance.options.collectionType?query.IncludeArtists?allowSearch=!1:"Series"!==queryIncludeItemTypes&&"Episode"!==queryIncludeItemTypes&&"LiveTvProgram"!==queryIncludeItemTypes&&"MusicAlbum"!==queryIncludeItemTypes&&"Audio"!==queryIncludeItemTypes&&"Book"!==queryIncludeItemTypes&&"AudioBook"!==queryIncludeItemTypes&&"Video"!==query.MediaTypes||(allowSearch=!1):"music"===instance.options.collectionType?query.People?allowSearch=!1:"Series"!==queryIncludeItemTypes&&"Episode"!==queryIncludeItemTypes&&"LiveTvProgram"!==queryIncludeItemTypes&&"Movie"!==queryIncludeItemTypes||(allowSearch=!1):"livetv"===instance.options.collectionType&&(query.IncludeArtists||query.IncludePeople?allowSearch=!1:"Series"!==queryIncludeItemTypes&&"Episode"!==queryIncludeItemTypes&&"MusicAlbum"!==queryIncludeItemTypes&&"Audio"!==queryIncludeItemTypes&&"Book"!==queryIncludeItemTypes&&"AudioBook"!==queryIncludeItemTypes&&"Movie"!==queryIncludeItemTypes&&"Video"!==query.MediaTypes||(allowSearch=!1)),"NullType"===queryIncludeItemTypes&&(allowSearch=!1),allowSearch?apiClient.getSearchHints(query):Promise.resolve({SearchHints:[]})}function search(instance,apiClient,context,value){value||layoutManager.tv?context.querySelector(".searchSuggestions").classList.add("hide"):loadSuggestions(instance,context,apiClient),"livetv"===instance.options.collectionType?searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"LiveTvProgram",IsMovie:!0,IsKids:!1,IsNews:!1},context,".movieResults",{preferThumb:!0,inheritThumb:!1,shape:enableScrollX()?"overflowPortrait":"portrait",showParentTitleOrTitle:!0,showTitle:!1,centerText:!0,coverImage:!0,overlayText:!1,overlayMoreButton:!0,showAirTime:!0,showAirDateTime:!0,showChannelName:!0}):searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"Movie"},context,".movieResults",{showTitle:!0,overlayText:!1,centerText:!0,showYear:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"Series"},context,".seriesResults",{showTitle:!0,overlayText:!1,centerText:!0,showYear:!0}),"livetv"===instance.options.collectionType?searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"LiveTvProgram",IsSeries:!0,IsSports:!1,IsKids:!1,IsNews:!1},context,".episodeResults",{preferThumb:!0,inheritThumb:!1,shape:enableScrollX()?"overflowBackdrop":"backdrop",showParentTitleOrTitle:!0,showTitle:!1,centerText:!0,coverImage:!0,overlayText:!1,overlayMoreButton:!0,showAirTime:!0,showAirDateTime:!0,showChannelName:!0}):searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"Episode"},context,".episodeResults",{coverImage:!0,showTitle:!0,showParentTitle:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"livetv"===instance.options.collectionType?"LiveTvProgram":"NullType",IsSports:!0},context,".sportsResults",{preferThumb:!0,inheritThumb:!1,shape:enableScrollX()?"overflowBackdrop":"backdrop",showParentTitleOrTitle:!0,showTitle:!1,centerText:!0,coverImage:!0,overlayText:!1,overlayMoreButton:!0,showAirTime:!0,showAirDateTime:!0,showChannelName:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"livetv"===instance.options.collectionType?"LiveTvProgram":"NullType",IsKids:!0},context,".kidsResults",{preferThumb:!0,inheritThumb:!1,shape:enableScrollX()?"overflowBackdrop":"backdrop",showParentTitleOrTitle:!0,showTitle:!1,centerText:!0,coverImage:!0,overlayText:!1,overlayMoreButton:!0,showAirTime:!0,showAirDateTime:!0,showChannelName:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"livetv"===instance.options.collectionType?"LiveTvProgram":"NullType",IsNews:!0},context,".newsResults",{preferThumb:!0,inheritThumb:!1,shape:enableScrollX()?"overflowBackdrop":"backdrop",showParentTitleOrTitle:!0,showTitle:!1,centerText:!0,coverImage:!0,overlayText:!1,overlayMoreButton:!0,showAirTime:!0,showAirDateTime:!0,showChannelName:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"LiveTvProgram",IsMovie:"livetv"!==instance.options.collectionType&&null,IsSeries:"livetv"!==instance.options.collectionType&&null,IsSports:"livetv"!==instance.options.collectionType&&null,IsKids:"livetv"!==instance.options.collectionType&&null,IsNews:"livetv"!==instance.options.collectionType&&null},context,".programResults",{preferThumb:!0,inheritThumb:!1,shape:enableScrollX()?"overflowBackdrop":"backdrop",showParentTitleOrTitle:!0,showTitle:!1,centerText:!0,coverImage:!0,overlayText:!1,overlayMoreButton:!0,showAirTime:!0,showAirDateTime:!0,showChannelName:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,MediaTypes:"Video",ExcludeItemTypes:"Movie,Episode"},context,".videoResults",{showParentTitle:!0,showTitle:!0,overlayText:!1,centerText:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!0,IncludeMedia:!1,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1},context,".peopleResults",{coverImage:!0,showTitle:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!1,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!0},context,".artistResults",{coverImage:!0,showTitle:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"MusicAlbum"},context,".albumResults",{showParentTitle:!0,showTitle:!0,overlayText:!1,centerText:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"Audio"},context,".songResults",{showParentTitle:!0,showTitle:!0,overlayText:!1,centerText:!0,action:"play"}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"Book"},context,".bookResults",{showTitle:!0,overlayText:!1,centerText:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"AudioBook"},context,".audioBookResults",{showTitle:!0,overlayText:!1,centerText:!0})}function searchType(instance,apiClient,query,context,section,cardOptions){query.UserId=apiClient.getCurrentUserId(),query.Limit=enableScrollX()?24:16,query.ParentId=instance.options.parentId,getSearchHints(instance,apiClient,query).then(function(result){populateResults(result,context,section,cardOptions)})}function populateResults(result,context,section,cardOptions){section=context.querySelector(section);var items=result.SearchHints,itemsContainer=section.querySelector(".itemsContainer");cardBuilder.buildCards(items,Object.assign({itemsContainer:itemsContainer,parentContainer:section,shape:enableScrollX()?"autooverflow":"auto",scalable:!0,overlayText:!1,centerText:!0,allowBottomPadding:!enableScrollX()},cardOptions||{})),section.querySelector(".emby-scroller").scrollToBeginning(!0)}function enableScrollX(){return!0}function replaceAll(originalString,strReplace,strWith){var reg=new RegExp(strReplace,"ig");return originalString.replace(reg,strWith)}function embed(elem,instance,options){require(["text!./searchresults.template.html"],function(template){enableScrollX()||(template=replaceAll(template,'data-horizontal="true"','data-horizontal="false"'),template=replaceAll(template,"itemsContainer scrollSlider","itemsContainer scrollSlider vertical-wrap"));var html=globalize.translateDocument(template,"sharedcomponents");elem.innerHTML=html,elem.classList.add("searchResults"),instance.search("")})}function SearchResults(options){this.options=options,embed(options.element,this,options)}return SearchResults.prototype.search=function(value){var apiClient=connectionManager.getApiClient(this.options.serverId);search(this,apiClient,this.options.element,value)},SearchResults.prototype.destroy=function(){var options=this.options;options&&options.element.classList.remove("searchFields"),this.options=null},SearchResults}); \ No newline at end of file +define(["layoutManager","globalize","require","events","connectionManager","cardBuilder","appRouter","emby-scroller","emby-itemscontainer"],function(layoutManager,globalize,require,events,connectionManager,cardBuilder,appRouter){"use strict";function loadSuggestions(instance,context,apiClient){var options={SortBy:"IsFavoriteOrLiked,Random",IncludeItemTypes:"Movie,Series,MusicArtist",Limit:20,Recursive:!0,ImageTypeLimit:0,EnableImages:!1,ParentId:instance.options.parentId};apiClient.getItems(apiClient.getCurrentUserId(),options).then(function(result){var html=result.Items.map(function(i){var href=appRouter.getRouteUrl(i),itemHtml='"}).join(""),searchSuggestions=context.querySelector(".searchSuggestions");searchSuggestions.querySelector(".searchSuggestionsList").innerHTML=html,searchSuggestions.classList.remove("hide")})}function getSearchHints(instance,apiClient,query){if(!query.searchTerm)return Promise.resolve({SearchHints:[]});var allowSearch=!0,queryIncludeItemTypes=query.IncludeItemTypes;return"tvshows"===instance.options.collectionType?query.IncludeArtists?allowSearch=!1:"Movie"!==queryIncludeItemTypes&&"LiveTvProgram"!==queryIncludeItemTypes&&"MusicAlbum"!==queryIncludeItemTypes&&"Audio"!==queryIncludeItemTypes&&"Book"!==queryIncludeItemTypes&&"AudioBook"!==queryIncludeItemTypes&&"Video"!==query.MediaTypes||(allowSearch=!1):"movies"===instance.options.collectionType?query.IncludeArtists?allowSearch=!1:"Series"!==queryIncludeItemTypes&&"Episode"!==queryIncludeItemTypes&&"LiveTvProgram"!==queryIncludeItemTypes&&"MusicAlbum"!==queryIncludeItemTypes&&"Audio"!==queryIncludeItemTypes&&"Book"!==queryIncludeItemTypes&&"AudioBook"!==queryIncludeItemTypes&&"Video"!==query.MediaTypes||(allowSearch=!1):"music"===instance.options.collectionType?query.People?allowSearch=!1:"Series"!==queryIncludeItemTypes&&"Episode"!==queryIncludeItemTypes&&"LiveTvProgram"!==queryIncludeItemTypes&&"Movie"!==queryIncludeItemTypes||(allowSearch=!1):"livetv"===instance.options.collectionType&&(query.IncludeArtists||query.IncludePeople?allowSearch=!1:"Series"!==queryIncludeItemTypes&&"Episode"!==queryIncludeItemTypes&&"MusicAlbum"!==queryIncludeItemTypes&&"Audio"!==queryIncludeItemTypes&&"Book"!==queryIncludeItemTypes&&"AudioBook"!==queryIncludeItemTypes&&"Movie"!==queryIncludeItemTypes&&"Video"!==query.MediaTypes||(allowSearch=!1)),"NullType"===queryIncludeItemTypes&&(allowSearch=!1),allowSearch?apiClient.getSearchHints(query):Promise.resolve({SearchHints:[]})}function search(instance,apiClient,context,value){value||layoutManager.tv?context.querySelector(".searchSuggestions").classList.add("hide"):loadSuggestions(instance,context,apiClient),"livetv"===instance.options.collectionType?searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"LiveTvProgram",IsMovie:!0,IsKids:!1,IsNews:!1},context,".movieResults",{preferThumb:!0,inheritThumb:!1,shape:enableScrollX()?"overflowPortrait":"portrait",showParentTitleOrTitle:!0,showTitle:!1,centerText:!0,coverImage:!0,overlayText:!1,overlayMoreButton:!0,showAirTime:!0,showAirDateTime:!0,showChannelName:!0}):searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"Movie"},context,".movieResults",{showTitle:!0,overlayText:!1,centerText:!0,showYear:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"Series"},context,".seriesResults",{showTitle:!0,overlayText:!1,centerText:!0,showYear:!0}),"livetv"===instance.options.collectionType?searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"LiveTvProgram",IsSeries:!0,IsSports:!1,IsKids:!1,IsNews:!1},context,".episodeResults",{preferThumb:!0,inheritThumb:!1,shape:enableScrollX()?"overflowBackdrop":"backdrop",showParentTitleOrTitle:!0,showTitle:!1,centerText:!0,coverImage:!0,overlayText:!1,overlayMoreButton:!0,showAirTime:!0,showAirDateTime:!0,showChannelName:!0}):searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"Episode"},context,".episodeResults",{coverImage:!0,showTitle:!0,showParentTitle:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"livetv"===instance.options.collectionType?"LiveTvProgram":"NullType",IsSports:!0},context,".sportsResults",{preferThumb:!0,inheritThumb:!1,shape:enableScrollX()?"overflowBackdrop":"backdrop",showParentTitleOrTitle:!0,showTitle:!1,centerText:!0,coverImage:!0,overlayText:!1,overlayMoreButton:!0,showAirTime:!0,showAirDateTime:!0,showChannelName:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"livetv"===instance.options.collectionType?"LiveTvProgram":"NullType",IsKids:!0},context,".kidsResults",{preferThumb:!0,inheritThumb:!1,shape:enableScrollX()?"overflowBackdrop":"backdrop",showParentTitleOrTitle:!0,showTitle:!1,centerText:!0,coverImage:!0,overlayText:!1,overlayMoreButton:!0,showAirTime:!0,showAirDateTime:!0,showChannelName:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"livetv"===instance.options.collectionType?"LiveTvProgram":"NullType",IsNews:!0},context,".newsResults",{preferThumb:!0,inheritThumb:!1,shape:enableScrollX()?"overflowBackdrop":"backdrop",showParentTitleOrTitle:!0,showTitle:!1,centerText:!0,coverImage:!0,overlayText:!1,overlayMoreButton:!0,showAirTime:!0,showAirDateTime:!0,showChannelName:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"LiveTvProgram",IsMovie:"livetv"!==instance.options.collectionType&&null,IsSeries:"livetv"!==instance.options.collectionType&&null,IsSports:"livetv"!==instance.options.collectionType&&null,IsKids:"livetv"!==instance.options.collectionType&&null,IsNews:"livetv"!==instance.options.collectionType&&null},context,".programResults",{preferThumb:!0,inheritThumb:!1,shape:enableScrollX()?"overflowBackdrop":"backdrop",showParentTitleOrTitle:!0,showTitle:!1,centerText:!0,coverImage:!0,overlayText:!1,overlayMoreButton:!0,showAirTime:!0,showAirDateTime:!0,showChannelName:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,MediaTypes:"Video",ExcludeItemTypes:"Movie,Episode"},context,".videoResults",{showParentTitle:!0,showTitle:!0,overlayText:!1,centerText:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!0,IncludeMedia:!1,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1},context,".peopleResults",{coverImage:!0,showTitle:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!1,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!0},context,".artistResults",{coverImage:!0,showTitle:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"MusicAlbum"},context,".albumResults",{showParentTitle:!0,showTitle:!0,overlayText:!1,centerText:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"Audio"},context,".songResults",{showParentTitle:!0,showTitle:!0,overlayText:!1,centerText:!0,action:"play"}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"Book"},context,".bookResults",{showTitle:!0,overlayText:!1,centerText:!0}),searchType(instance,apiClient,{searchTerm:value,IncludePeople:!1,IncludeMedia:!0,IncludeGenres:!1,IncludeStudios:!1,IncludeArtists:!1,IncludeItemTypes:"AudioBook"},context,".audioBookResults",{showTitle:!0,overlayText:!1,centerText:!0})}function searchType(instance,apiClient,query,context,section,cardOptions){query.UserId=apiClient.getCurrentUserId(),query.Limit=enableScrollX()?24:16,query.ParentId=instance.options.parentId,getSearchHints(instance,apiClient,query).then(function(result){populateResults(result,context,section,cardOptions)})}function populateResults(result,context,section,cardOptions){section=context.querySelector(section);var items=result.SearchHints,itemsContainer=section.querySelector(".itemsContainer");cardBuilder.buildCards(items,Object.assign({itemsContainer:itemsContainer,parentContainer:section,shape:enableScrollX()?"autooverflow":"auto",scalable:!0,overlayText:!1,centerText:!0,allowBottomPadding:!enableScrollX()},cardOptions||{})),section.querySelector(".emby-scroller").scrollToBeginning(!0)}function enableScrollX(){return!0}function replaceAll(originalString,strReplace,strWith){var reg=new RegExp(strReplace,"ig");return originalString.replace(reg,strWith)}function embed(elem,instance,options){require(["text!./searchresults.template.html"],function(template){enableScrollX()||(template=replaceAll(template,'data-horizontal="true"','data-horizontal="false"'),template=replaceAll(template,"itemsContainer scrollSlider","itemsContainer scrollSlider vertical-wrap"));var html=globalize.translateDocument(template,"sharedcomponents");elem.innerHTML=html,elem.classList.add("searchResults"),instance.search("")})}function SearchResults(options){this.options=options,embed(options.element,this,options)}return SearchResults.prototype.search=function(value){var apiClient=connectionManager.getApiClient(this.options.serverId);search(this,apiClient,this.options.element,value)},SearchResults.prototype.destroy=function(){var options=this.options;options&&options.element.classList.remove("searchFields"),this.options=null},SearchResults}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/shortcuts.js b/dashboard-ui/bower_components/emby-webcomponents/shortcuts.js index 19bee3a7e5..8d4ed60331 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/shortcuts.js +++ b/dashboard-ui/bower_components/emby-webcomponents/shortcuts.js @@ -1 +1 @@ -define(["playbackManager","inputManager","connectionManager","embyRouter","globalize","loading","dom","recordingHelper"],function(playbackManager,inputManager,connectionManager,embyRouter,globalize,loading,dom,recordingHelper){"use strict";function playAllFromHere(card,serverId,queue){for(var parent=card.parentNode,className=card.classList.length?"."+card.classList[0]:"",cards=parent.querySelectorAll(className+"[data-id]"),ids=[],foundCard=!1,i=0,length=cards.length;i Emby Premiere).", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/es-mx.json b/dashboard-ui/bower_components/emby-webcomponents/strings/es-mx.json index a2219f9dc7..3971f534b2 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/es-mx.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/es-mx.json @@ -1,8 +1,8 @@ { "DownloadingDots": "Descargando...", "HeaderWaitingForWifi": "Esperando Wifi", - "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", - "HeaderDownloadSettings": "Download Settings", + "WifiRequiredToDownload": "Se necesita de una conexi\u00f3n Wifi para continuar descargando.", + "HeaderDownloadSettings": "Configuraci\u00f3n de Descargas", "MessageUnlockAppWithPurchaseOrSupporter": "Desbloquee esta caracter\u00edstica con una peque\u00f1a compra \u00fanica, o con una suscripci\u00f3n activa de Emby Premier.", "MessageUnlockAppWithSupporter": "Desbloquee esta caracter\u00edstica con una suscripci\u00f3n activa de Emby Premier.", "MessageToValidateSupporter": "Si tiene una subscripci\u00f3n de Emby Premiere activa, aseg\u00farese de que ha configurado Emby Premiere en el Panel de Control del Servidor Emby, al cual puede acceder dando click en Emby Premiere dentro del men\u00fa principal.", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json b/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json index 7c57a9b575..aeb3246c6b 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json @@ -1,8 +1,8 @@ { "DownloadingDots": "T\u00e9l\u00e9chargement en cours...", - "HeaderWaitingForWifi": "Waiting for Wifi", - "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", - "HeaderDownloadSettings": "Download Settings", + "HeaderWaitingForWifi": "En attente du Wi-Fi", + "WifiRequiredToDownload": "Une connexion Wi-Fi est n\u00e9cessaire pour continuer le t\u00e9l\u00e9chargement.", + "HeaderDownloadSettings": "Param\u00e8tres de t\u00e9l\u00e9chargement", "MessageUnlockAppWithPurchaseOrSupporter": "D\u00e9verrouillez cette fonctionnalit\u00e9 avec un petit achat unique, ou avec un abonnement Emby Premiere.", "MessageUnlockAppWithSupporter": "D\u00e9verrouillez cette fonctionnalit\u00e9 avec un abonnement Emby Premiere.", "MessageToValidateSupporter": "Si vous avez un abonnement Emby Premiere, veuillez vous assurer que vous avez configur\u00e9 Emby Premiere dans le tableau de bord de votre serveur Emby auquel vous pouvez acc\u00e9der en cliquant sur Emby Premiere dans le menu principal", @@ -13,7 +13,7 @@ "LiveTvGuideRequiresUnlock": "Le Guide TV en direct est actuellement limit\u00e9 \u00e0 {0} cha\u00eenes. Cliquez sur le bouton d\u00e9verrouiller pour d\u00e9couvrir comment profiter d'une exp\u00e9rience compl\u00e8te.", "AttributeNew": "Nouveau", "Premiere": "Premiere", - "Live": "Direct", + "Live": "En direct", "Repeat": "R\u00e9p\u00e9ter", "TrackCount": "{0} pistes", "ItemCount": "{0} \u00e9l\u00e9ments", @@ -44,15 +44,15 @@ "HeaderDownloadedMedia": "M\u00e9dia t\u00e9l\u00e9charg\u00e9", "Downloads": "T\u00e9l\u00e9chargements", "HeaderMyDownloads": "Mes t\u00e9l\u00e9chargements", - "HeaderOfflineDownloads": "M\u00e9dias hors ligne", - "HeaderOfflineDownloadsDescription": "Transf\u00e9rez vos m\u00e9dias vers vos appareils pour une meilleure utilisation hors ligne.", - "CloudSyncFeatureDescription": "Synchronisez vos m\u00e9dias vers le cloud pour le sauvegarder, l'archiver et le convertir plus facilement.", + "HeaderOfflineDownloads": "M\u00e9dia hors ligne", + "HeaderOfflineDownloadsDescription": "Transf\u00e9rez vos m\u00e9dias vers vos appareils pour une utilisation hors ligne.", + "CloudSyncFeatureDescription": "Synchronisez vos m\u00e9dias vers le cloud pour le sauvegarder, l'archiver et le convertir facilement.", "DvrFeatureDescription": "Planifiez des enregistrements de TV en direct individuels, des enregistrements de s\u00e9ries et bien plus avec le magn\u00e9toscope Emby.", "ButtonCancelSyncJob": "Annuler le t\u00e9l\u00e9chargement", "CancelSyncJobConfirmation": "L'annulation du t\u00e9l\u00e9chargement provoquera la suppression des m\u00e9dias t\u00e9l\u00e9charg\u00e9s sur l'appareil lors de la prochaine synchronisation. Voulez-vous vraiment continuer ?", "CinemaModeFeatureDescription": "Le mode cin\u00e9ma apporte l'exp\u00e9rience du cin\u00e9ma directement dans votre salon gr\u00e2ce \u00e0 la possibilit\u00e9 de lire des bandes-annonces et des introductions personnalis\u00e9es avant le film principal.", "HeaderFreeApps": "Applications Emby gratuites", - "FreeAppsFeatureDescription": "Profitez d'un acc\u00e8s gratuit \u00e0 certaines applications Emby pour vos appareils.", + "FreeAppsFeatureDescription": "Profitez d'un acc\u00e8s gratuit aux applications Emby pour vos appareils.", "HeaderBecomeProjectSupporter": "Obtenez Emby Premiere", "MessageActiveSubscriptionRequiredSeriesRecordings": "Un abonnement Emby Premiere est n\u00e9cessaire pour cr\u00e9er des enregistrements de s\u00e9ries automatiques.", "LabelEmailAddress": "Courriel :", @@ -70,7 +70,7 @@ "HeaderDeleteItem": "Supprimer l'\u00e9l\u00e9ment", "ConfirmDeleteItem": "Supprimer cet \u00e9l\u00e9ment l'effacera \u00e0 la fois du syst\u00e8me de fichiers et de votre m\u00e9diath\u00e8que. Voulez-vous vraiment continuer ?", "Refresh": "Actualiser", - "RefreshQueued": "Demande d'actualisation mise en file d'attente.", + "RefreshQueued": "Actualisation mise en file d'attente.", "AddToCollection": "Ajouter \u00e0 la collection", "HeaderAddToCollection": "Ajouter \u00e0 la collection", "NewCollection": "Nouvelle collection", @@ -91,7 +91,7 @@ "Search": "Recherche", "NoSubtitleSearchResultsFound": "Aucun r\u00e9sultat trouv\u00e9.", "File": "Fichier", - "MessageAreYouSureDeleteSubtitles": "\u00cates-vous s\u00fbr de vouloir supprimer ce fichier de sous-titres ?", + "MessageAreYouSureDeleteSubtitles": "Voulez-vous vraiment supprimer ce fichier de sous-titres ?", "ConfirmDeletion": "Confirmer la suppression", "MySubtitles": "Mes sous-titres", "MessageDownloadQueued": "T\u00e9l\u00e9chargement mis en file d'attente.", @@ -113,10 +113,10 @@ "Favorite": "Favori", "Like": "J'aime", "Dislike": "Je n'aime pas", - "RefreshDialogHelp": "Les m\u00e9tadonn\u00e9es sont actualis\u00e9es en fonction des param\u00e8tres et des services internet qui sont activ\u00e9s dans le tableau de bord du serveur Emby.", + "RefreshDialogHelp": "Les m\u00e9tadonn\u00e9es sont actualis\u00e9es en fonction des param\u00e8tres et des services Internet qui sont activ\u00e9s dans le tableau de bord du serveur Emby.", "Open": "Ouvrir", "Play": "Lire", - "AddToPlayQueue": "Ajouter \u00e0 la liste de lecture", + "AddToPlayQueue": "Ajouter \u00e0 la file d'attente", "Shuffle": "M\u00e9langer", "Identify": "Identifier", "EditImages": "Modifier les images", @@ -134,7 +134,7 @@ "Trailer": "Bande-annonce", "MarkPlayed": "Marquer comme lu", "MarkUnplayed": "Marquer comme non lu", - "GroupVersions": "Versions de groupe", + "GroupVersions": "Grouper les versions", "PleaseSelectTwoItems": "Veuillez s\u00e9lectionner au moins deux \u00e9l\u00e9ments.", "TryMultiSelect": "Essayer la s\u00e9lection multiple", "TryMultiSelectMessage": "Pour modifier plusieurs m\u00e9dias, il suffit de cliquer et maintenir le clic sur n'importe quelle affiche, puis de s\u00e9lectionner les autres \u00e9l\u00e9ments que vous voulez modifier. Essayez donc !", @@ -157,7 +157,7 @@ "Artists": "Artistes", "LabelCommunityRating": "Note de la communaut\u00e9\u00a0:", "LabelCriticRating": "Note des critiques\u00a0:", - "LabelWebsite": "Site Internet\u00a0:", + "LabelWebsite": "Site internet\u00a0:", "LabelTagline": "Slogan\u00a0:", "LabelOverview": "Synopsis\u00a0:", "LabelShortOverview": "R\u00e9sum\u00e9\u00a0:", @@ -193,10 +193,10 @@ "Studios": "Studios", "Tags": "\u00c9tiquettes", "HeaderMetadataSettings": "Param\u00e8tres des m\u00e9tadonn\u00e9es", - "People": "Personne", + "People": "Personnes", "LabelMetadataDownloadLanguage": "Langue de t\u00e9l\u00e9chargement pr\u00e9f\u00e9r\u00e9e\u00a0:", "LabelLockItemToPreventChanges": "Verrouiller cet \u00e9l\u00e9ment pour \u00e9viter de futures modifications", - "MessageLeaveEmptyToInherit": "Laisser vide pour h\u00e9riter des r\u00e9glages de l'\u00e9l\u00e9ment parent, ou de la valeur globale par d\u00e9faut.", + "MessageLeaveEmptyToInherit": "Laisser vide pour h\u00e9riter des param\u00e8tres de l'\u00e9l\u00e9ment parent, ou de la valeur globale par d\u00e9faut.", "LabelCountry": "Pays\u00a0:", "LabelDynamicExternalId": "ID {0} :", "LabelBirthYear": "Ann\u00e9e de naissance :", @@ -223,15 +223,15 @@ "BirthLocation": "Lieu de naissance", "ParentalRating": "Classification parentale", "Name": "Nom", - "Overview": "R\u00e9sum\u00e9", + "Overview": "Synopsis", "LabelType": "Type :", "LabelPersonRole": "R\u00f4le\u00a0:", "LabelPersonRoleHelp": "Exemple\u00a0: Chauffeur de camion de cr\u00e8me glac\u00e9e", "Actor": "Acteur(trice)", - "Composer": "Compositeur", - "Director": "R\u00e9alisateur", + "Composer": "Compositeur(trice)", + "Director": "R\u00e9alisateur(trice)", "GuestStar": "Guest star", - "Producer": "Producteur", + "Producer": "Producteur(trice)", "Writer": "Sc\u00e9nariste", "MessageNoSyncJobsFound": "Aucun t\u00e9l\u00e9chargement trouv\u00e9. Vous pouvez cr\u00e9er des t\u00e2ches de t\u00e9l\u00e9chargement gr\u00e2ce aux boutons T\u00e9l\u00e9charger pr\u00e9sents dans l'application.", "MessageNoDownloadsFound": "Aucun t\u00e9l\u00e9chargement hors ligne. T\u00e9l\u00e9chargez votre contenu multim\u00e9dia pour une utilisation hors ligne en cliquant sur T\u00e9l\u00e9charger dans l'application.", @@ -284,7 +284,7 @@ "AutomaticallySyncNewContentHelp": "Le nouveau contenu ajout\u00e9 \u00e0 ce dossier sera automatiquement transf\u00e9r\u00e9 vers l'appareil.", "LabelItemLimit": "\u00c9l\u00e9ments maximum :", "LabelItemLimitHelp": "Optionnel : d\u00e9finit le nombre maximum d'\u00e9l\u00e9ments qui seront transf\u00e9r\u00e9s.", - "PleaseSelectDeviceToSyncTo": "Veuillez s\u00e9lectionner l'appareil auquel le transfert doit \u00eatre envoy\u00e9.", + "PleaseSelectDeviceToSyncTo": "Veuillez s\u00e9lectionner l'appareil auquel le t\u00e9l\u00e9chargement doit \u00eatre envoy\u00e9.", "Screenshots": "Captures d'\u00e9cran", "MoveRight": "D\u00e9placer \u00e0 droite", "MoveLeft": "D\u00e9placer \u00e0 gauche", @@ -326,7 +326,7 @@ "MinutesBefore": "minutes avant", "MinutesAfter": "minutes apr\u00e8s", "SkipEpisodesAlreadyInMyLibrary": "Ne pas enregistrer les \u00e9pisodes d\u00e9j\u00e0 pr\u00e9sents dans ma m\u00e9diath\u00e8que", - "SkipEpisodesAlreadyInMyLibraryHelp": "Les \u00e9pisodes seront compar\u00e9s selon leur saison et leur num\u00e9ro d'\u00e9pisode, si possible.", + "SkipEpisodesAlreadyInMyLibraryHelp": "Les \u00e9pisodes seront compar\u00e9s en utilisant le num\u00e9ro de saison et le num\u00e9ro d'\u00e9pisode, s'ils sont disponibles.", "LabelKeepUpTo": "Garder jusqu'\u00e0\u00a0:", "AsManyAsPossible": "Autant que possible", "DefaultErrorMessage": "Il y a eu une erreur lors de l'ex\u00e9cution de la requ\u00eate. Veuillez r\u00e9essayer plus tard.", @@ -340,7 +340,7 @@ "Kids": "Jeunesse", "EnableColorCodedBackgrounds": "Activer les arri\u00e8res-plans \u00e0 code-couleur", "SortChannelsBy": "Trier les cha\u00eenes par\u00a0:", - "RecentlyWatched": "Lus r\u00e9cemment", + "RecentlyWatched": "Lu r\u00e9cemment", "ChannelNumber": "Num\u00e9ro de cha\u00eene", "HeaderBenefitsEmbyPremiere": "Les avantages d'Emby Premiere", "ThankYouForTryingEnjoyOneMinute": "Profitez d'une minute de lecture. Merci d'avoir essay\u00e9 Emby.", @@ -349,13 +349,13 @@ "IHaveEmbyPremiere": "J'ai Emby Premiere", "IPurchasedThisApp": "J'ai achet\u00e9 cette application", "ButtonRestorePreviousPurchase": "Restaurer l'achat", - "ButtonUnlockWithPurchase": "D\u00e9verrouillez par un achat.", + "ButtonUnlockWithPurchase": "D\u00e9verrouillez avec un achat", "ButtonUnlockPrice": "D\u00e9verrouiller {0}", "EmbyPremiereMonthlyWithPrice": "Emby Premiere {0} mensuel", "HeaderAlreadyPaid": "Vous avez d\u00e9j\u00e0 pay\u00e9 ?", "ButtonPlayOneMinute": "Lire une minute", - "PlaceFavoriteChannelsAtBeginning": "Mettre vos cha\u00eenes pr\u00e9f\u00e9r\u00e9es au d\u00e9but", - "HeaderUnlockFeature": "D\u00e9verrouiller la fonction", + "PlaceFavoriteChannelsAtBeginning": "Mettre vos cha\u00eenes favorites au d\u00e9but", + "HeaderUnlockFeature": "D\u00e9verrouiller la fonctionnalit\u00e9", "MessageDidYouKnowCinemaMode": "Saviez-vous qu'avec Emby Premi\u00e8re, vous pouvez am\u00e9liorer votre exp\u00e9rience utilisateur gr\u00e2ce \u00e0 des fonctionnalit\u00e9s comme le mode cin\u00e9ma ?", "MessageDidYouKnowCinemaMode2": "Le mode cin\u00e9ma apporte l'exp\u00e9rience du cin\u00e9ma directement dans votre salon gr\u00e2ce \u00e0 la possibilit\u00e9 de lire des bandes-annonces et des introductions personnalis\u00e9es avant le film principal.", "HeaderPlayMyMedia": "Lire mon m\u00e9dia", @@ -384,7 +384,7 @@ "ContinueInSecondsValue": "Continuer dans {0} secondes.", "HeaderRemoteControl": "Contr\u00f4le \u00e0 distance", "Disconnect": "D\u00e9connecter", - "EnableDisplayMirroring": "Activer l'affichage partag\u00e9", + "EnableDisplayMirroring": "Activer le partage d'\u00e9cran", "HeaderPlayOn": "Jouer sur", "Quality": "Qualit\u00e9", "Auto": "Auto", @@ -392,12 +392,12 @@ "AspectRatio": "Ratio d'aspect original", "Original": "Original", "Fill": "Remplir", - "BestFit": "Au mieux", + "BestFit": "Ajust\u00e9", "MessageNoServersAvailableToConnect": "Connexion impossible, aucun serveur disponible. Si vous avez \u00e9t\u00e9 invit\u00e9 \u00e0 partager un serveur, veuillez accepter ci-dessous ou en cliquant sur le lien dans le courriel.", "MessagePlayAccessRestricted": "La lecture de ce contenu est actuellement restreinte. Contactez l'administrateur de votre serveur Emby pour plus d'informations.", "Accept": "Accepter", "Reject": "Refuser", - "Connect": "Connecter", + "Connect": "Se connecter", "HeaderMyMedia": "Mes m\u00e9dias", "HeaderMyMediaSmall": "Mes m\u00e9dias (petit)", "LatestFromLibrary": "Derniers dans {0}", @@ -406,21 +406,21 @@ "HeaderContinueListening": "Continuer l'\u00e9coute", "HeaderActiveRecordings": "Enregistrements actifs", "HeaderLatestRecordings": "Derniers enregistrements", - "LabelDownloadTo": "Transf\u00e9rer vers\u00a0:", + "LabelDownloadTo": "T\u00e9l\u00e9charger vers\u00a0:", "HeaderNextUp": "\u00c0 suivre", "HeaderLatestFrom": "Derniers dans {0}", "LabelHomeScreenSectionValue": "Section {0} de l'accueil\u00a0:", - "SettingsSaved": "Param\u00e8tres sauvegard\u00e9s.", + "SettingsSaved": "Param\u00e8tres enregistr\u00e9s.", "None": "Aucun", "More": "Plus", "Up": "Haut", "Down": "Bas", "HeaderHomeScreen": "\u00c9cran d'accueil", - "HeaderLatestMedia": "M\u00e9dias r\u00e9cents", - "HeaderLatestChannelItems": "\u00c9l\u00e9ments de la cha\u00eene r\u00e9cents", - "LabelSelectLastestItemsFolders": "Inclure les \u00e9l\u00e9ments provenant des sections suivantes dans les M\u00e9dias r\u00e9cents", + "HeaderLatestMedia": "Derniers m\u00e9dias", + "HeaderLatestChannelItems": "Derniers \u00e9l\u00e9ments de la cha\u00eene", + "LabelSelectLastestItemsFolders": "Inclure les \u00e9l\u00e9ments provenant des sections suivantes dans les derniers m\u00e9dias", "HeaderLibraryOrder": "Ordre de la m\u00e9diath\u00e8que", - "HideWatchedContentFromLatestMedia": "Masquer le contenu d\u00e9j\u00e0 vu dans les m\u00e9dias r\u00e9cents", + "HideWatchedContentFromLatestMedia": "Masquer le contenu d\u00e9j\u00e0 vu dans les derniers m\u00e9dias", "HeaderOnNow": "En ce moment", "HeaderPlaybackError": "Erreur de lecture", "PlaybackErrorNotAllowed": "Vous n'\u00eates pas autoris\u00e9 \u00e0 lire ce contenu. Veuillez contacter votre administrateur syst\u00e8me pour plus de d\u00e9tails.", @@ -430,33 +430,33 @@ "Suggestions": "Suggestions", "Favorites": "Favoris", "Collections": "Collections", - "LabelSelectFolderGroups": "Grouper automatiquement le contenu des dossiers suivants dans des cat\u00e9gories telles que Films, Musique et S\u00e9ries TV\u00a0:", + "LabelSelectFolderGroups": "Grouper automatiquement le contenu des dossiers suivants dans des cat\u00e9gories telles que Films, Musique et TV\u00a0:", "LabelSelectFolderGroupsHelp": "Les dossiers qui ne sont pas coch\u00e9s seront affich\u00e9s tels quels, avec leur propre vue.", "Shows": "\u00c9missions", "HeaderLibraryFolders": "Dossiers de la m\u00e9diath\u00e8que", "HeaderLandingScreens": "\u00c9crans d\u2019accueil", - "LandingScreensHelp": "S\u00e9lectionner l'\u00e9cran d'accueil par d\u00e9faut lors d'un clic sur la m\u00e9diath\u00e8que", + "LandingScreensHelp": "S\u00e9lectionner l'\u00e9cran d'accueil par d\u00e9faut quand vous cliquez sur une m\u00e9diath\u00e8que.", "HeaderTermsOfPurchase": "Conditions d'achat", "PrivacyPolicy": "Politique de confidentialit\u00e9", "TermsOfUse": "Conditions d'utilisation", "RepeatMode": "Mode de r\u00e9p\u00e9tition", "RepeatOne": "R\u00e9p\u00e9ter un m\u00e9dia", - "RepeatAll": "R\u00e9p\u00e9ter tout", + "RepeatAll": "Tout r\u00e9p\u00e9ter", "ConfirmEndPlayerSession": "Voulez-vous fermer Emby sur l'appareil ?", "Yes": "Oui", "No": "Non", - "LiveTV": "TV en Direct", + "LiveTV": "TV en direct", "Schedule": "Programmation", "Recordings": "Enregistrements", - "MarkWatched": "Marquer comme vu", + "MarkWatched": "Marquer comme lu", "ScanForNewAndUpdatedFiles": "Actualiser pour d\u00e9tecter les nouveaux fichiers et les modifications", "DirectStreamHelp1": "Le m\u00e9dia est compatible avec l'appareil en ce qui concerne la r\u00e9solution et le type de m\u00e9dia (H.264, AC3 etc), mais se trouve dans un conteneur de fichiers incompatible (.mkv, .avi, .wmv etc). La vid\u00e9o sera rempaquet\u00e9e \u00e0 la vol\u00e9e avant d'\u00eatre diffus\u00e9e \u00e0 l'appareil.", "DirectStreamHelp2": "Le streaming en direct d'un fichier utilise tr\u00e8s peu de puissance de traitement sans perte de qualit\u00e9 vid\u00e9o.", - "MediaIsBeingConverted": "Le m\u00e9dia est converti en un format compatible avec l'appareil qui joue le m\u00e9dia.", + "MediaIsBeingConverted": "Le m\u00e9dia est converti en un format compatible avec l'appareil qui lit le m\u00e9dia.", "StatsForNerds": "Statistiques pour les geeks", "LabelReasonForTranscoding": "Raison du transcodage\u00a0:", "DirectPlaying": "Lecture directe", - "DirectStreaming": "Diffusion directe", + "DirectStreaming": "Streaming direct", "Transcoding": "Transcodage", "VideoCodecNotSupported": "Codec vid\u00e9o non support\u00e9", "AudioCodecNotSupported": "Codec audio non support\u00e9", @@ -477,19 +477,19 @@ "HeaderInvitationSent": "Invitation envoy\u00e9e", "MessageInvitationSentToUser": "Un courriel a \u00e9t\u00e9 envoy\u00e9 \u00e0 {0} avec votre invitation de partage.", "MessageInvitationSentToNewUser": "Un courriel a \u00e9t\u00e9 envoy\u00e9 \u00e0 {0}, les invitant \u00e0 s'inscrire \u00e0 Emby.", - "GuestUserNotFound": "Utilisateur non trouv\u00e9. Veuillez v\u00e9rifier que le nom est correct et essayez \u00e0 nouveau, ou essayez d'entrer l'adresse courriel.", + "GuestUserNotFound": "Utilisateur non trouv\u00e9. Veuillez v\u00e9rifier que le nom est correct et essayez \u00e0 nouveau, ou essayez de renseigner l'adresse courriel.", "ErrorReachingEmbyConnect": "Une erreur est survenue pendant la connexion au serveur Emby Connect. Veuillez vous assurer que vous avez une connexion internet active puis r\u00e9essayez.", "ErrorAddingEmbyConnectAccount1": "Une erreur est survenue lors de l'ajout du compte Emby Connect. Avez-vous cr\u00e9\u00e9 un compte Emby\u00a0? Inscrivez-vous sur {0}.", "ErrorAddingEmbyConnectAccount2": "Veuillez vous assurer que votre compte Emby a bien \u00e9t\u00e9 activ\u00e9 avec les instructions fournies dans le courriel envoy\u00e9 apr\u00e8s la cr\u00e9ation de votre compte. Si vous n'avez pas re\u00e7u ce courriel, veuillez envoyer un courriel \u00e0 {0} avec l'adresse utilis\u00e9e lors de la cr\u00e9ation de votre compte Emby.", "ErrorAddingGuestAccount1": "Une erreur est survenue lors de l'ajout du compte Emby Connect. Vos invit\u00e9s ont-ils cr\u00e9\u00e9 un compte Emby ? Ils peuvent s'inscrire sur {0}.", "ErrorAddingGuestAccount2": "Veuillez vous assurer que vos invit\u00e9s ont bien activ\u00e9 leur compte en suivant les instructions fournies dans le courriel envoy\u00e9 apr\u00e8s la cr\u00e9ation de leur compte. S'ils n'ont pas re\u00e7u ce courriel, veuillez envoyer un courriel \u00e0 {0} en pr\u00e9cisant votre adresse courriel ainsi que la leur.", "MessageEmbyAccountAdded": "Le compte Emby a \u00e9t\u00e9 ajout\u00e9 \u00e0 cet utilisateur.", - "MessagePendingEmbyAccountAdded": "Veuillez vous assurer que votre compte Emby a bien \u00e9t\u00e9 activ\u00e9 avec les instructions fournies dans le courriel envoy\u00e9 apr\u00e8s la cr\u00e9ation de votre compte. Si vous n'avez pas re\u00e7u ce courriel, veuillez envoyer un courriel \u00e0 {0} avec l'adresse utilis\u00e9e lors de la cr\u00e9ation de votre compte Emby.", + "MessagePendingEmbyAccountAdded": "Le compte Emby a \u00e9t\u00e9 ajout\u00e9 \u00e0 cet utilisateur. Un courriel sera envoy\u00e9 au propri\u00e9taire du compte. Cette invitation devra \u00eatre confirm\u00e9e en cliquant sur un lien pr\u00e9sent dans le courriel.", "HeaderEmbyAccountAdded": "Compte Emby ajout\u00e9", "LabelSubtitlePlaybackMode": "Mode des sous-titres :", "ErrorDeletingItem": "Une erreur s'est produite lors de la suppression de l'\u00e9l\u00e9ment du serveur Emby. V\u00e9rifiez que le serveur Emby a un acc\u00e8s en \u00e9criture au dossier multim\u00e9dia et r\u00e9essayez.", "NoSubtitles": "Pas de sous-titres", - "Default": "D\u00e9faut", + "Default": "Par d\u00e9faut", "Smart": "Intelligent", "Small": "Petit", "Medium": "Moyen", @@ -498,7 +498,7 @@ "OnlyForcedSubtitles": "Seulement les sous-titres forc\u00e9s", "AlwaysPlaySubtitles": "Toujours lancer les sous-titres", "DefaultSubtitlesHelp": "Les sous-titres seront charg\u00e9s selon les marqueurs par d\u00e9faut et forc\u00e9 dans les m\u00e9tadonn\u00e9es int\u00e9gr\u00e9es. Les langues pr\u00e9f\u00e9r\u00e9es seront utilis\u00e9es quand plusieurs options seront disponibles.", - "SmartSubtitlesHelp": "Les sous-titres correspondant \u00e0 la pr\u00e9f\u00e9rence linguistique seront charg\u00e9s lorsque l'audio est dans une langue \u00e9trang\u00e8re.", + "SmartSubtitlesHelp": "Les sous-titres correspondant \u00e0 la langue pr\u00e9f\u00e9r\u00e9e seront charg\u00e9s lorsque l'audio est dans une langue \u00e9trang\u00e8re.", "HeaderSubtitleSettings": "Param\u00e8tres des sous-titres", "HeaderSubtitleAppearance": "Apparence des sous-titres", "OnlyForcedSubtitlesHelp": "Seuls les sous-titres marqu\u00e9s comme forc\u00e9s seront charg\u00e9s.", @@ -523,5 +523,5 @@ "Normal": "Normal", "BurnSubtitlesHelp": "D\u00e9termine si le serveur doit graver les sous-titres lors de la conversion vid\u00e9o en fonction du format des sous-titres. \u00c9viter la gravure des sous-titres am\u00e9liorera les performances du serveur. S\u00e9lectionnez Auto pour graver les formats bas\u00e9s sur l'image (par exemple, VOBSUB, PGS, SUB\/IDX etc) ainsi que certains sous-titres ASS\/SSA", "AllComplexFormats": "Tous les formats complexes (ASS, SSA, VOBSUB, PGS, SUB\/IDX etc)", - "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Ces param\u00e8tres s'appliquent \u00e9galement \u00e0 toute lecture Chromecast d\u00e9marr\u00e9e par ce p\u00e9riph\u00e9rique." + "SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Ces param\u00e8tres s'appliquent \u00e9galement \u00e0 toute lecture Chromecast d\u00e9marr\u00e9e par cet appareil." } \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/hu.json b/dashboard-ui/bower_components/emby-webcomponents/strings/hu.json index 56b3f187c4..625b8abc64 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/hu.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/hu.json @@ -1,8 +1,8 @@ { - "DownloadingDots": "Downloading...", - "HeaderWaitingForWifi": "Waiting for Wifi", - "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", - "HeaderDownloadSettings": "Download Settings", + "DownloadingDots": "Let\u00f6lt\u00e9s...", + "HeaderWaitingForWifi": "Wifi-re v\u00e1r", + "WifiRequiredToDownload": "Wifi kapcsolat sz\u00fcks\u00e9ges a let\u00f6lt\u00e9s folytat\u00e1s\u00e1hoz.", + "HeaderDownloadSettings": "Let\u00f6lt\u00e9s be\u00e1ll\u00edt\u00e1sok", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/it.json b/dashboard-ui/bower_components/emby-webcomponents/strings/it.json index f5f466e9e8..5d88c0c8e2 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/it.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/it.json @@ -1,8 +1,8 @@ { "DownloadingDots": "In scaricamento...", - "HeaderWaitingForWifi": "Waiting for Wifi", - "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", - "HeaderDownloadSettings": "Download Settings", + "HeaderWaitingForWifi": "In attesa di Wifi", + "WifiRequiredToDownload": "Una connessione Wifi \u00e8 richiesta per continuare il download", + "HeaderDownloadSettings": "Impostazioni Download", "MessageUnlockAppWithPurchaseOrSupporter": "Sblocca questa funzionalit\u00e0 con un piccolo acquisto singolo, o con un abbonamento Emby Premiere.", "MessageUnlockAppWithSupporter": "Sblocca questa funzionalit\u00e0 con un abbonamento Emby Premiere", "MessageToValidateSupporter": "Se hai un abbonamento Emby Premiere, assicurati di averlo configurato nel Pannello di Controllo del Server, a cui puoi accedere cliccando su Emby Premiere dal menu principale.", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/pl.json b/dashboard-ui/bower_components/emby-webcomponents/strings/pl.json index 790b6e4017..83cd6803fb 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/pl.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/pl.json @@ -1,8 +1,8 @@ { "DownloadingDots": "Trwa pobieranie...", - "HeaderWaitingForWifi": "Waiting for Wifi", - "WifiRequiredToDownload": "A Wifi connection is required to continue downloading.", - "HeaderDownloadSettings": "Download Settings", + "HeaderWaitingForWifi": "Oczekiwanie na sie\u0107 WiFi", + "WifiRequiredToDownload": "Po\u0142\u0105czenie WiFi jest wymagane, aby kontynuowa\u0107 pobieranie.", + "HeaderDownloadSettings": "Ustawienia pobierania", "MessageUnlockAppWithPurchaseOrSupporter": "Odblokuj t\u0119 funkcj\u0119, za niewielk\u0105 jednorazow\u0105 op\u0142at\u0105 lub przy u\u017cyciu aktywnej subskrypcji Emby Premium.", "MessageUnlockAppWithSupporter": "Odblokuj t\u0119 funkcj\u0119 przy u\u017cyciu subskrypcji Emby Premium.", "MessageToValidateSupporter": "Je\u015bli posiadasz aktywn\u0105 subskrypcj\u0119 Emby Premium, upewnij si\u0119, \u017ce j\u0105 poprawnie skonfigurowa\u0142e\u015b przy pomocy Kokpitu serwera Emby, do kt\u00f3rego mo\u017cesz uzyska\u0107 dost\u0119p, klikaj\u0105c na pozycj\u0119 Premium menu startowego.", diff --git a/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js b/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js index 322daa8dc2..2d4d5e52c1 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js +++ b/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js @@ -1 +1 @@ -define(["apphost","globalize","connectionManager","layoutManager","focusManager","scrollHelper","appSettings","registrationServices","dialogHelper","paper-icon-button-light","formDialogStyle"],function(appHost,globalize,connectionManager,layoutManager,focusManager,scrollHelper,appSettings,registrationServices,dialogHelper){"use strict";function submitJob(dlg,apiClient,userId,syncOptions,form){if(!userId)throw new Error("userId cannot be null");if(!syncOptions)throw new Error("syncOptions cannot be null");if(!form)throw new Error("form cannot be null");var selectSyncTarget=form.querySelector("#selectSyncTarget"),target=selectSyncTarget?selectSyncTarget.value:null;if(!target)return require(["toast"],function(toast){toast(globalize.translate("sharedcomponents#PleaseSelectDeviceToSyncTo"))}),!1;var options={userId:userId,TargetId:target,ParentId:syncOptions.ParentId,Category:syncOptions.Category};return setJobValues(options,form),syncOptions.items&&syncOptions.items.length&&(options.ItemIds=(syncOptions.items||[]).map(function(i){return i.Id||i}).join(",")),apiClient.ajax({type:"POST",url:apiClient.getUrl("Sync/Jobs"),data:JSON.stringify(options),contentType:"application/json",dataType:"json"}).then(function(){dialogHelper.close(dlg),require(["toast"],function(toast){var msg=target===apiClient.deviceId()?globalize.translate("sharedcomponents#DownloadingDots"):globalize.translate("sharedcomponents#SyncJobCreated");toast(msg),syncOptions.isLocalSync&&syncNow()})}),!0}function syncNow(){require(["localsync"],function(localSync){localSync.sync()})}function submitQuickSyncJob(apiClient,userId,targetId,syncOptions){if(!userId)throw new Error("userId cannot be null");if(!syncOptions)throw new Error("syncOptions cannot be null");if(!targetId)throw new Error("targetId cannot be null");var options={userId:userId,TargetId:targetId,ParentId:syncOptions.ParentId,Category:syncOptions.Category,Quality:syncOptions.Quality,Bitrate:syncOptions.Bitrate};return syncOptions.items&&syncOptions.items.length&&(options.ItemIds=(syncOptions.items||[]).map(function(i){return i.Id||i}).join(",")),apiClient.ajax({type:"POST",url:apiClient.getUrl("Sync/Jobs"),data:JSON.stringify(options),contentType:"application/json",dataType:"json"}).then(function(){require(["toast"],function(toast){var msg=targetId===apiClient.deviceId()?globalize.translate("sharedcomponents#DownloadingDots"):globalize.translate("sharedcomponents#SyncJobCreated");toast(msg),syncOptions.isLocalSync&&syncNow()})})}function setJobValues(job,form){var txtBitrate=form.querySelector("#txtBitrate"),bitrate=txtBitrate?txtBitrate.value:null;bitrate&&(bitrate=1e6*parseFloat(bitrate)),job.Bitrate=bitrate;var selectQuality=form.querySelector("#selectQuality");selectQuality&&(job.Quality=selectQuality.value,appSettings.set("sync-lastquality",job.Quality||""));var selectProfile=form.querySelector("#selectProfile");selectProfile&&(job.Profile=selectProfile.value);var txtItemLimit=form.querySelector("#txtItemLimit");txtItemLimit&&(job.ItemLimit=txtItemLimit.value||null);var chkSyncNewContent=form.querySelector("#chkSyncNewContent");chkSyncNewContent&&(job.SyncNewContent=chkSyncNewContent.checked);var chkUnwatchedOnly=form.querySelector("#chkUnwatchedOnly");chkUnwatchedOnly&&(job.UnwatchedOnly=chkUnwatchedOnly.checked)}function renderForm(options){return new Promise(function(resolve,reject){require(["emby-checkbox","emby-input","emby-select"],function(){appHost.appInfo().then(function(appInfo){renderFormInternal(options,appInfo,resolve)})})})}function renderFormInternal(options,appInfo,resolve){var elem=options.elem,dialogOptions=options.dialogOptions,targets=dialogOptions.Targets,html="",targetContainerClass=options.isLocalSync?" hide":"",syncTargetLabel=globalize.translate("sharedcomponents#LabelSyncTo");options.readOnlySyncTarget?(html+='
',html+='',html+="
"):(html+='
',html+='",targets.length||(html+='
'+globalize.translate("sharedcomponents#LabelSyncNoTargetsHelp")+"
"),html+='",html+="
"),html+='
',html+='",html+='
',html+="
",html+='
',html+='",html+='
',html+="
",html+='
',html+='',html+="
",dialogOptions.Options.indexOf("UnwatchedOnly")!==-1&&(html+='
',html+="",html+='
'+globalize.translate("sharedcomponents#SyncUnwatchedVideosOnlyHelp")+"
",html+="
"),dialogOptions.Options.indexOf("SyncNewContent")!==-1&&(html+='
',html+="",html+='
'+globalize.translate("sharedcomponents#AutomaticallySyncNewContentHelp")+"
",html+="
"),dialogOptions.Options.indexOf("ItemLimit")!==-1&&(html+='
',html+='',html+='
'+globalize.translate("sharedcomponents#LabelItemLimitHelp")+"
",html+="
"),elem.innerHTML=html;var selectSyncTarget=elem.querySelector("#selectSyncTarget");selectSyncTarget&&(selectSyncTarget.addEventListener("change",function(){loadQualityOptions(elem,this.value,options.dialogOptionsFn).then(resolve)}),selectSyncTarget.dispatchEvent(new CustomEvent("change",{bubbles:!0})));var selectProfile=elem.querySelector("#selectProfile");selectProfile&&(selectProfile.addEventListener("change",function(){onProfileChange(elem,this.value)}),dialogOptions.ProfileOptions.length&&selectProfile.dispatchEvent(new CustomEvent("change",{bubbles:!0})));var selectQuality=elem.querySelector("#selectQuality");selectQuality&&(selectQuality.addEventListener("change",function(){onQualityChange(elem,this.value)}),selectQuality.dispatchEvent(new CustomEvent("change",{bubbles:!0}))),setTimeout(function(){focusManager.autoFocus(elem)},100)}function showWifiMessage(){require(["dialog","embyRouter"],function(dialog,embyRouter){var options={title:globalize.translate("sharedcomponents#HeaderWaitingForWifi"),text:globalize.translate("sharedcomponents#WifiRequiredToDownload")},items=[];items.push({name:options.confirmText||globalize.translate("sharedcomponents#ButtonOk"),id:"ok",type:"submit"}),items.push({name:options.cancelText||globalize.translate("sharedcomponents#HeaderDownloadSettings"),id:"downloadsettings",type:"cancel"}),options.buttons=items,dialog(options).then(function(result){return"ok"===result?Promise.resolve():"downloadsettings"===result?(embyRouter.show(embyRouter.getRouteUrl("downloadsettings")),Promise.resolve()):Promise.reject()})})}function validateNetwork(){var network=navigator.connection?navigator.connection.type:null;switch(network){case"cellular":case"bluetooth":return showWifiMessage(),!1;default:return!0}}function showSyncMenu(options){return options.isLocalSync&&appSettings.syncOnlyOnWifi()&&!validateNetwork()?Promise.reject():registrationServices.validateFeature("sync").then(function(){return showSyncMenuInternal(options)})}function enableAutoSync(options){if(!options.isLocalSync)return!1;var firstItem=(options.items||[])[0]||{};return"Audio"===firstItem.Type||("MusicAlbum"===firstItem.Type||("MusicArtist"===firstItem.Type||("MusicGenre"===firstItem.Type||"Playlist"===firstItem.Type&&"Audio"===firstItem.MediaType)))}function showSyncMenuInternal(options){var apiClient=connectionManager.getApiClient(options.serverId),userId=apiClient.getCurrentUserId();if(enableAutoSync(options))return submitQuickSyncJob(apiClient,userId,apiClient.deviceId(),{items:options.items,Quality:"custom",Bitrate:appSettings.maxStaticMusicBitrate()});var dialogOptionsFn=getTargetDialogOptionsFn(apiClient,{UserId:userId,ItemIds:(options.items||[]).map(function(i){return i.Id||i}).join(","),ParentId:options.ParentId,Category:options.Category,SupportsRemoteSync:!options.isLocalSync||null});return dialogOptionsFn().then(function(dialogOptions){currentDialogOptions=dialogOptions;var dlgElementOptions={removeOnClose:!0,scrollY:!1,autoFocus:!1};layoutManager.tv?dlgElementOptions.size="fullscreen":dlgElementOptions.size="small";var dlg=dialogHelper.createDialog(dlgElementOptions);dlg.classList.add("formDialog");var html="";html+='
',html+='',html+='

';var syncButtonLabel=options.isLocalSync?globalize.translate("sharedcomponents#Download"):globalize.translate("sharedcomponents#Sync");html+=syncButtonLabel,html+="

",html+='info'+globalize.translate("sharedcomponents#Help")+"",html+="
",html+='
',html+='
',html+='
',html+='
',html+='
',html+='",html+="
",html+="
",html+="
",html+="
",dlg.innerHTML=html;var submitted=!1;dlg.querySelector("form").addEventListener("submit",function(e){return submitted=submitJob(dlg,apiClient,userId,options,this),e.preventDefault(),!1}),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),layoutManager.tv&&scrollHelper.centerFocus.on(dlg.querySelector(".formDialogContent"),!1);var promise=dialogHelper.open(dlg);return renderForm({elem:dlg.querySelector(".formFields"),dialogOptions:dialogOptions,dialogOptionsFn:dialogOptionsFn,isLocalSync:options.isLocalSync}),promise.then(function(){return layoutManager.tv&&scrollHelper.centerFocus.off(dlg.querySelector(".formDialogContent"),!1),submitted?Promise.resolve():Promise.reject()})})}function getTargetDialogOptionsFn(apiClient,query){return function(targetId){return query.TargetId=targetId,apiClient.getJSON(apiClient.getUrl("Sync/Options",query))}}function setQualityFieldVisible(form,visible){var fldQuality=form.querySelector(".fldQuality"),selectQuality=form.querySelector("#selectQuality");visible?(fldQuality&&fldQuality.classList.remove("hide"),selectQuality&&selectQuality.removeAttribute("required")):(fldQuality&&fldQuality.classList.add("hide"),selectQuality&&selectQuality.removeAttribute("required"))}function onProfileChange(form,profileId){var options=currentDialogOptions||{},profileOptions=options.ProfileOptions||[];if(profileOptions.length){var option=profileOptions.filter(function(o){return o.Id===profileId})[0],qualityOptions=options.QualityOptions||[];option?(form.querySelector(".profileDescription").innerHTML=option.Description||"",setQualityFieldVisible(form,qualityOptions.length>0&&option.EnableQualityOptions&&options.Options.indexOf("Quality")!==-1)):(form.querySelector(".profileDescription").innerHTML="",setQualityFieldVisible(form,qualityOptions.length>0&&options.Options.indexOf("Quality")!==-1))}}function onQualityChange(form,qualityId){var options=currentDialogOptions||{},option=(options.QualityOptions||[]).filter(function(o){return o.Id===qualityId})[0],qualityDescription=form.querySelector(".qualityDescription");option?qualityDescription.innerHTML=option.Description||"":qualityDescription.innerHTML="";var fldBitrate=form.querySelector(".fldBitrate"),txtBitrate=form.querySelector("#txtBitrate");"custom"===qualityId?(fldBitrate&&fldBitrate.classList.remove("hide"),txtBitrate&&txtBitrate.setAttribute("required","required")):(fldBitrate&&fldBitrate.classList.add("hide"),txtBitrate&&txtBitrate.removeAttribute("required"))}function renderTargetDialogOptions(form,options){currentDialogOptions=options;var fldProfile=form.querySelector(".fldProfile"),selectProfile=form.querySelector("#selectProfile");options.ProfileOptions.length&&options.Options.indexOf("Profile")!==-1?(fldProfile&&fldProfile.classList.remove("hide"),selectProfile&&selectProfile.setAttribute("required","required")):(fldProfile&&fldProfile.classList.add("hide"),selectProfile&&selectProfile.removeAttribute("required")),setQualityFieldVisible(form,options.QualityOptions.length>0),selectProfile&&(selectProfile.innerHTML=options.ProfileOptions.map(function(o){var selectedAttribute=o.IsDefault?' selected="selected"':"";return'"}).join(""),selectProfile.dispatchEvent(new CustomEvent("change",{bubbles:!0})));var selectQuality=form.querySelector("#selectQuality");if(selectQuality){selectQuality.innerHTML=options.QualityOptions.map(function(o){var selectedAttribute=o.IsDefault?' selected="selected"':"";return'"}).join("");var lastQuality=appSettings.get("sync-lastquality");lastQuality&&options.QualityOptions.filter(function(i){return i.Id===lastQuality}).length&&(selectQuality.value=lastQuality),selectQuality.dispatchEvent(new CustomEvent("change",{bubbles:!0}))}}function loadQualityOptions(form,targetId,dialogOptionsFn){return dialogOptionsFn(targetId).then(function(options){return renderTargetDialogOptions(form,options)})}var currentDialogOptions;return{showMenu:showSyncMenu,renderForm:renderForm,setJobValues:setJobValues}}); \ No newline at end of file +define(["apphost","globalize","connectionManager","layoutManager","focusManager","scrollHelper","appSettings","registrationServices","dialogHelper","paper-icon-button-light","formDialogStyle"],function(appHost,globalize,connectionManager,layoutManager,focusManager,scrollHelper,appSettings,registrationServices,dialogHelper){"use strict";function submitJob(dlg,apiClient,userId,syncOptions,form){if(!userId)throw new Error("userId cannot be null");if(!syncOptions)throw new Error("syncOptions cannot be null");if(!form)throw new Error("form cannot be null");var selectSyncTarget=form.querySelector("#selectSyncTarget"),target=selectSyncTarget?selectSyncTarget.value:null;if(!target)return require(["toast"],function(toast){toast(globalize.translate("sharedcomponents#PleaseSelectDeviceToSyncTo"))}),!1;var options={userId:userId,TargetId:target,ParentId:syncOptions.ParentId,Category:syncOptions.Category};return setJobValues(options,form),syncOptions.items&&syncOptions.items.length&&(options.ItemIds=(syncOptions.items||[]).map(function(i){return i.Id||i}).join(",")),apiClient.ajax({type:"POST",url:apiClient.getUrl("Sync/Jobs"),data:JSON.stringify(options),contentType:"application/json",dataType:"json"}).then(function(){dialogHelper.close(dlg),require(["toast"],function(toast){var msg=target===apiClient.deviceId()?globalize.translate("sharedcomponents#DownloadingDots"):globalize.translate("sharedcomponents#SyncJobCreated");toast(msg),syncOptions.isLocalSync&&syncNow()})}),!0}function syncNow(){require(["localsync"],function(localSync){localSync.sync()})}function submitQuickSyncJob(apiClient,userId,targetId,syncOptions){if(!userId)throw new Error("userId cannot be null");if(!syncOptions)throw new Error("syncOptions cannot be null");if(!targetId)throw new Error("targetId cannot be null");var options={userId:userId,TargetId:targetId,ParentId:syncOptions.ParentId,Category:syncOptions.Category,Quality:syncOptions.Quality,Bitrate:syncOptions.Bitrate};return syncOptions.items&&syncOptions.items.length&&(options.ItemIds=(syncOptions.items||[]).map(function(i){return i.Id||i}).join(",")),apiClient.ajax({type:"POST",url:apiClient.getUrl("Sync/Jobs"),data:JSON.stringify(options),contentType:"application/json",dataType:"json"}).then(function(){require(["toast"],function(toast){var msg=targetId===apiClient.deviceId()?globalize.translate("sharedcomponents#DownloadingDots"):globalize.translate("sharedcomponents#SyncJobCreated");toast(msg),syncOptions.isLocalSync&&syncNow()})})}function setJobValues(job,form){var txtBitrate=form.querySelector("#txtBitrate"),bitrate=txtBitrate?txtBitrate.value:null;bitrate&&(bitrate=1e6*parseFloat(bitrate)),job.Bitrate=bitrate;var selectQuality=form.querySelector("#selectQuality");selectQuality&&(job.Quality=selectQuality.value,appSettings.set("sync-lastquality",job.Quality||""));var selectProfile=form.querySelector("#selectProfile");selectProfile&&(job.Profile=selectProfile.value);var txtItemLimit=form.querySelector("#txtItemLimit");txtItemLimit&&(job.ItemLimit=txtItemLimit.value||null);var chkSyncNewContent=form.querySelector("#chkSyncNewContent");chkSyncNewContent&&(job.SyncNewContent=chkSyncNewContent.checked);var chkUnwatchedOnly=form.querySelector("#chkUnwatchedOnly");chkUnwatchedOnly&&(job.UnwatchedOnly=chkUnwatchedOnly.checked)}function renderForm(options){return new Promise(function(resolve,reject){require(["emby-checkbox","emby-input","emby-select"],function(){appHost.appInfo().then(function(appInfo){renderFormInternal(options,appInfo,resolve)})})})}function renderFormInternal(options,appInfo,resolve){var elem=options.elem,dialogOptions=options.dialogOptions,targets=dialogOptions.Targets,html="",targetContainerClass=options.isLocalSync?" hide":"",syncTargetLabel=globalize.translate("sharedcomponents#LabelSyncTo");options.readOnlySyncTarget?(html+='
',html+='',html+="
"):(html+='
',html+='",targets.length||(html+='
'+globalize.translate("sharedcomponents#LabelSyncNoTargetsHelp")+"
"),html+='",html+="
"),html+='
',html+='",html+='
',html+="
",html+='
',html+='",html+='
',html+="
",html+='
',html+='',html+="
",dialogOptions.Options.indexOf("UnwatchedOnly")!==-1&&(html+='
',html+="",html+='
'+globalize.translate("sharedcomponents#SyncUnwatchedVideosOnlyHelp")+"
",html+="
"),dialogOptions.Options.indexOf("SyncNewContent")!==-1&&(html+='
',html+="",html+='
'+globalize.translate("sharedcomponents#AutomaticallySyncNewContentHelp")+"
",html+="
"),dialogOptions.Options.indexOf("ItemLimit")!==-1&&(html+='
',html+='',html+='
'+globalize.translate("sharedcomponents#LabelItemLimitHelp")+"
",html+="
"),elem.innerHTML=html;var selectSyncTarget=elem.querySelector("#selectSyncTarget");selectSyncTarget&&(selectSyncTarget.addEventListener("change",function(){loadQualityOptions(elem,this.value,options.dialogOptionsFn).then(resolve)}),selectSyncTarget.dispatchEvent(new CustomEvent("change",{bubbles:!0})));var selectProfile=elem.querySelector("#selectProfile");selectProfile&&(selectProfile.addEventListener("change",function(){onProfileChange(elem,this.value)}),dialogOptions.ProfileOptions.length&&selectProfile.dispatchEvent(new CustomEvent("change",{bubbles:!0})));var selectQuality=elem.querySelector("#selectQuality");selectQuality&&(selectQuality.addEventListener("change",function(){onQualityChange(elem,this.value)}),selectQuality.dispatchEvent(new CustomEvent("change",{bubbles:!0}))),setTimeout(function(){focusManager.autoFocus(elem)},100)}function showWifiMessage(){require(["dialog","appRouter"],function(dialog,appRouter){var options={title:globalize.translate("sharedcomponents#HeaderWaitingForWifi"),text:globalize.translate("sharedcomponents#WifiRequiredToDownload")},items=[];items.push({name:options.confirmText||globalize.translate("sharedcomponents#ButtonOk"),id:"ok",type:"submit"}),items.push({name:options.cancelText||globalize.translate("sharedcomponents#HeaderDownloadSettings"),id:"downloadsettings",type:"cancel"}),options.buttons=items,dialog(options).then(function(result){return"ok"===result?Promise.resolve():"downloadsettings"===result?(appRouter.show(appRouter.getRouteUrl("downloadsettings")),Promise.resolve()):Promise.reject()})})}function validateNetwork(){var network=navigator.connection?navigator.connection.type:null;switch(network){case"cellular":case"bluetooth":return showWifiMessage(),!1;default:return!0}}function showSyncMenu(options){return options.isLocalSync&&appSettings.syncOnlyOnWifi()&&!validateNetwork()?Promise.reject():registrationServices.validateFeature("sync").then(function(){return showSyncMenuInternal(options)})}function enableAutoSync(options){if(!options.isLocalSync)return!1;var firstItem=(options.items||[])[0]||{};return"Audio"===firstItem.Type||("MusicAlbum"===firstItem.Type||("MusicArtist"===firstItem.Type||("MusicGenre"===firstItem.Type||"Playlist"===firstItem.Type&&"Audio"===firstItem.MediaType)))}function showSyncMenuInternal(options){var apiClient=connectionManager.getApiClient(options.serverId),userId=apiClient.getCurrentUserId();if(enableAutoSync(options))return submitQuickSyncJob(apiClient,userId,apiClient.deviceId(),{items:options.items,Quality:"custom",Bitrate:appSettings.maxStaticMusicBitrate()});var dialogOptionsFn=getTargetDialogOptionsFn(apiClient,{UserId:userId,ItemIds:(options.items||[]).map(function(i){return i.Id||i}).join(","),ParentId:options.ParentId,Category:options.Category,SupportsRemoteSync:!options.isLocalSync||null});return dialogOptionsFn().then(function(dialogOptions){currentDialogOptions=dialogOptions;var dlgElementOptions={removeOnClose:!0,scrollY:!1,autoFocus:!1};layoutManager.tv?dlgElementOptions.size="fullscreen":dlgElementOptions.size="small";var dlg=dialogHelper.createDialog(dlgElementOptions);dlg.classList.add("formDialog");var html="";html+='
',html+='',html+='

';var syncButtonLabel=options.isLocalSync?globalize.translate("sharedcomponents#Download"):globalize.translate("sharedcomponents#Sync");html+=syncButtonLabel,html+="

",html+='info'+globalize.translate("sharedcomponents#Help")+"",html+="
",html+='
',html+='
',html+='
',html+='
',html+='
',html+='",html+="
",html+="
",html+="
",html+="
",dlg.innerHTML=html;var submitted=!1;dlg.querySelector("form").addEventListener("submit",function(e){return submitted=submitJob(dlg,apiClient,userId,options,this),e.preventDefault(),!1}),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),layoutManager.tv&&scrollHelper.centerFocus.on(dlg.querySelector(".formDialogContent"),!1);var promise=dialogHelper.open(dlg);return renderForm({elem:dlg.querySelector(".formFields"),dialogOptions:dialogOptions,dialogOptionsFn:dialogOptionsFn,isLocalSync:options.isLocalSync}),promise.then(function(){return layoutManager.tv&&scrollHelper.centerFocus.off(dlg.querySelector(".formDialogContent"),!1),submitted?Promise.resolve():Promise.reject()})})}function getTargetDialogOptionsFn(apiClient,query){return function(targetId){return query.TargetId=targetId,apiClient.getJSON(apiClient.getUrl("Sync/Options",query))}}function setQualityFieldVisible(form,visible){var fldQuality=form.querySelector(".fldQuality"),selectQuality=form.querySelector("#selectQuality");visible?(fldQuality&&fldQuality.classList.remove("hide"),selectQuality&&selectQuality.removeAttribute("required")):(fldQuality&&fldQuality.classList.add("hide"),selectQuality&&selectQuality.removeAttribute("required"))}function onProfileChange(form,profileId){var options=currentDialogOptions||{},profileOptions=options.ProfileOptions||[];if(profileOptions.length){var option=profileOptions.filter(function(o){return o.Id===profileId})[0],qualityOptions=options.QualityOptions||[];option?(form.querySelector(".profileDescription").innerHTML=option.Description||"",setQualityFieldVisible(form,qualityOptions.length>0&&option.EnableQualityOptions&&options.Options.indexOf("Quality")!==-1)):(form.querySelector(".profileDescription").innerHTML="",setQualityFieldVisible(form,qualityOptions.length>0&&options.Options.indexOf("Quality")!==-1))}}function onQualityChange(form,qualityId){var options=currentDialogOptions||{},option=(options.QualityOptions||[]).filter(function(o){return o.Id===qualityId})[0],qualityDescription=form.querySelector(".qualityDescription");option?qualityDescription.innerHTML=option.Description||"":qualityDescription.innerHTML="";var fldBitrate=form.querySelector(".fldBitrate"),txtBitrate=form.querySelector("#txtBitrate");"custom"===qualityId?(fldBitrate&&fldBitrate.classList.remove("hide"),txtBitrate&&txtBitrate.setAttribute("required","required")):(fldBitrate&&fldBitrate.classList.add("hide"),txtBitrate&&txtBitrate.removeAttribute("required"))}function renderTargetDialogOptions(form,options){currentDialogOptions=options;var fldProfile=form.querySelector(".fldProfile"),selectProfile=form.querySelector("#selectProfile");options.ProfileOptions.length&&options.Options.indexOf("Profile")!==-1?(fldProfile&&fldProfile.classList.remove("hide"),selectProfile&&selectProfile.setAttribute("required","required")):(fldProfile&&fldProfile.classList.add("hide"),selectProfile&&selectProfile.removeAttribute("required")),setQualityFieldVisible(form,options.QualityOptions.length>0),selectProfile&&(selectProfile.innerHTML=options.ProfileOptions.map(function(o){var selectedAttribute=o.IsDefault?' selected="selected"':"";return'"}).join(""),selectProfile.dispatchEvent(new CustomEvent("change",{bubbles:!0})));var selectQuality=form.querySelector("#selectQuality");if(selectQuality){selectQuality.innerHTML=options.QualityOptions.map(function(o){var selectedAttribute=o.IsDefault?' selected="selected"':"";return'"}).join("");var lastQuality=appSettings.get("sync-lastquality");lastQuality&&options.QualityOptions.filter(function(i){return i.Id===lastQuality}).length&&(selectQuality.value=lastQuality),selectQuality.dispatchEvent(new CustomEvent("change",{bubbles:!0}))}}function loadQualityOptions(form,targetId,dialogOptionsFn){return dialogOptionsFn(targetId).then(function(options){return renderTargetDialogOptions(form,options)})}var currentDialogOptions;return{showMenu:showSyncMenu,renderForm:renderForm,setJobValues:setJobValues}}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/youtubeplayer/plugin.js b/dashboard-ui/bower_components/emby-webcomponents/youtubeplayer/plugin.js index 18ecc7a939..b3a2c76a49 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/youtubeplayer/plugin.js +++ b/dashboard-ui/bower_components/emby-webcomponents/youtubeplayer/plugin.js @@ -1 +1 @@ -define(["require","events","browser","embyRouter","loading"],function(require,events,browser,embyRouter,loading){"use strict";function zoomIn(elem,iterations){var keyframes=[{transform:"scale3d(.2, .2, .2) ",opacity:".6",offset:0},{transform:"none",opacity:"1",offset:1}],timing={duration:240,iterations:iterations};return elem.animate(keyframes,timing)}function createMediaElement(instance,options){return new Promise(function(resolve,reject){var dlg=document.querySelector(".youtubePlayerContainer");dlg?resolve(dlg.querySelector("#player")):require(["css!./style"],function(){loading.show();var dlg=document.createElement("div");dlg.classList.add("youtubePlayerContainer"),options.fullscreen&&dlg.classList.add("onTop"),dlg.innerHTML='
';var videoElement=dlg.querySelector("#player");document.body.insertBefore(dlg,document.body.firstChild),instance.videoDialog=dlg,options.fullscreen&&dlg.animate&&!browser.slow?zoomIn(dlg,1).onfinish=function(){resolve(videoElement)}:resolve(videoElement)})})}function onVideoResize(){var instance=this,player=instance.currentYoutubePlayer,dlg=instance.videoDialog;player&&dlg&&player.setSize(dlg.offsetWidth,dlg.offsetHeight)}function clearTimeUpdateInterval(instance){instance.timeUpdateInterval&&clearInterval(instance.timeUpdateInterval),instance.timeUpdateInterval=null}function onEndedInternal(instance,triggerEnded){clearTimeUpdateInterval(instance);var resizeListener=instance.resizeListener;if(resizeListener&&(window.removeEventListener("resize",resizeListener),window.removeEventListener("orientationChange",resizeListener),instance.resizeListener=null),triggerEnded){var stopInfo={src:instance._currentSrc};events.trigger(instance,"stopped",[stopInfo])}instance._currentSrc=null,instance.currentYoutubePlayer&&instance.currentYoutubePlayer.destroy(),instance.currentYoutubePlayer=null}function onPlayerReady(event){event.target.playVideo()}function onTimeUpdate(e){events.trigger(this,"timeupdate")}function onPlaying(instance,playOptions,resolve){instance.started||(instance.started=!0,resolve(),clearTimeUpdateInterval(instance),instance.timeUpdateInterval=setInterval(onTimeUpdate.bind(instance),500),playOptions.fullscreen?embyRouter.showVideoOsd().then(function(){instance.videoDialog.classList.remove("onTop")}):(embyRouter.setTransparency("backdrop"),instance.videoDialog.classList.remove("onTop")),require(["loading"],function(loading){loading.hide()}))}function setCurrentSrc(instance,elem,options){return new Promise(function(resolve,reject){require(["queryString"],function(queryString){instance._currentSrc=options.url;var params=queryString.parse(options.url.split("?")[1]);if(window.onYouTubeIframeAPIReady=function(){instance.currentYoutubePlayer=new YT.Player("player",{height:instance.videoDialog.offsetHeight,width:instance.videoDialog.offsetWidth,videoId:params.v,events:{onReady:onPlayerReady,onStateChange:function(event){event.data===YT.PlayerState.PLAYING?onPlaying(instance,options,resolve):event.data===YT.PlayerState.ENDED?onEndedInternal(instance):event.data===YT.PlayerState.PAUSED&&events.trigger(instance,"pause")}},playerVars:{controls:0,enablejsapi:1,modestbranding:1,rel:0,showinfo:0,fs:0,playsinline:1}});var resizeListener=instance.resizeListener;resizeListener?(window.removeEventListener("resize",resizeListener),window.addEventListener("resize",resizeListener)):resizeListener=instance.resizeListener=onVideoResize.bind(instance),window.removeEventListener("orientationChange",resizeListener),window.addEventListener("orientationChange",resizeListener)},window.YT)window.onYouTubeIframeAPIReady();else{var tag=document.createElement("script");tag.src="https://www.youtube.com/iframe_api";var firstScriptTag=document.getElementsByTagName("script")[0];firstScriptTag.parentNode.insertBefore(tag,firstScriptTag)}})})}function YoutubePlayer(){this.name="Youtube Player",this.type="mediaplayer",this.id="youtubeplayer",this.priority=1}return YoutubePlayer.prototype.play=function(options){this.started=!1;var instance=this;return createMediaElement(this,options).then(function(elem){return setCurrentSrc(instance,elem,options)})},YoutubePlayer.prototype.stop=function(destroyPlayer,reportEnded){var src=this._currentSrc;return src&&(this.currentYoutubePlayer&&this.currentYoutubePlayer.stopVideo(),onEndedInternal(this,reportEnded),destroyPlayer&&this.destroy()),Promise.resolve()},YoutubePlayer.prototype.destroy=function(){embyRouter.setTransparency("none");var dlg=this.videoDialog;dlg&&(this.videoDialog=null,dlg.parentNode.removeChild(dlg))},YoutubePlayer.prototype.canPlayMediaType=function(mediaType){return mediaType=(mediaType||"").toLowerCase(),"audio"===mediaType||"video"===mediaType},YoutubePlayer.prototype.canPlayItem=function(item){return!1},YoutubePlayer.prototype.canPlayUrl=function(url){return url.toLowerCase().indexOf("youtube.com")!==-1},YoutubePlayer.prototype.getDeviceProfile=function(){return Promise.resolve({})},YoutubePlayer.prototype.currentSrc=function(){return this._currentSrc},YoutubePlayer.prototype.setSubtitleStreamIndex=function(index){},YoutubePlayer.prototype.canSetAudioStreamIndex=function(){return!1},YoutubePlayer.prototype.setAudioStreamIndex=function(index){},YoutubePlayer.prototype.currentTime=function(val){var currentYoutubePlayer=this.currentYoutubePlayer;if(currentYoutubePlayer)return null!=val?void currentYoutubePlayer.seekTo(val/1e3,!0):1e3*currentYoutubePlayer.getCurrentTime()},YoutubePlayer.prototype.duration=function(val){var currentYoutubePlayer=this.currentYoutubePlayer;return currentYoutubePlayer?1e3*currentYoutubePlayer.getDuration():null},YoutubePlayer.prototype.pause=function(){var currentYoutubePlayer=this.currentYoutubePlayer;if(currentYoutubePlayer){currentYoutubePlayer.pauseVideo();var instance=this;setTimeout(function(){events.trigger(instance,"pause")},200)}},YoutubePlayer.prototype.unpause=function(){var currentYoutubePlayer=this.currentYoutubePlayer;if(currentYoutubePlayer){currentYoutubePlayer.playVideo();var instance=this;setTimeout(function(){events.trigger(instance,"unpause")},200)}},YoutubePlayer.prototype.paused=function(){var currentYoutubePlayer=this.currentYoutubePlayer;return!!currentYoutubePlayer&&(console.log(currentYoutubePlayer.getPlayerState()),2===currentYoutubePlayer.getPlayerState())},YoutubePlayer.prototype.volume=function(val){return null!=val?this.setVolume(val):this.getVolume()},YoutubePlayer.prototype.setVolume=function(val){var currentYoutubePlayer=this.currentYoutubePlayer;currentYoutubePlayer&&null!=val&¤tYoutubePlayer.setVolume(val)},YoutubePlayer.prototype.getVolume=function(){var currentYoutubePlayer=this.currentYoutubePlayer;if(currentYoutubePlayer)return currentYoutubePlayer.getVolume()},YoutubePlayer.prototype.setMute=function(mute){var currentYoutubePlayer=this.currentYoutubePlayer;mute?currentYoutubePlayer&¤tYoutubePlayer.mute():currentYoutubePlayer&¤tYoutubePlayer.unMute()},YoutubePlayer.prototype.isMuted=function(){var currentYoutubePlayer=this.currentYoutubePlayer;currentYoutubePlayer&¤tYoutubePlayer.isMuted()},YoutubePlayer}); \ No newline at end of file +define(["require","events","browser","appRouter","loading"],function(require,events,browser,appRouter,loading){"use strict";function zoomIn(elem,iterations){var keyframes=[{transform:"scale3d(.2, .2, .2) ",opacity:".6",offset:0},{transform:"none",opacity:"1",offset:1}],timing={duration:240,iterations:iterations};return elem.animate(keyframes,timing)}function createMediaElement(instance,options){return new Promise(function(resolve,reject){var dlg=document.querySelector(".youtubePlayerContainer");dlg?resolve(dlg.querySelector("#player")):require(["css!./style"],function(){loading.show();var dlg=document.createElement("div");dlg.classList.add("youtubePlayerContainer"),options.fullscreen&&dlg.classList.add("onTop"),dlg.innerHTML='
';var videoElement=dlg.querySelector("#player");document.body.insertBefore(dlg,document.body.firstChild),instance.videoDialog=dlg,options.fullscreen&&dlg.animate&&!browser.slow?zoomIn(dlg,1).onfinish=function(){resolve(videoElement)}:resolve(videoElement)})})}function onVideoResize(){var instance=this,player=instance.currentYoutubePlayer,dlg=instance.videoDialog;player&&dlg&&player.setSize(dlg.offsetWidth,dlg.offsetHeight)}function clearTimeUpdateInterval(instance){instance.timeUpdateInterval&&clearInterval(instance.timeUpdateInterval),instance.timeUpdateInterval=null}function onEndedInternal(instance,triggerEnded){clearTimeUpdateInterval(instance);var resizeListener=instance.resizeListener;if(resizeListener&&(window.removeEventListener("resize",resizeListener),window.removeEventListener("orientationChange",resizeListener),instance.resizeListener=null),triggerEnded){var stopInfo={src:instance._currentSrc};events.trigger(instance,"stopped",[stopInfo])}instance._currentSrc=null,instance.currentYoutubePlayer&&instance.currentYoutubePlayer.destroy(),instance.currentYoutubePlayer=null}function onPlayerReady(event){event.target.playVideo()}function onTimeUpdate(e){events.trigger(this,"timeupdate")}function onPlaying(instance,playOptions,resolve){instance.started||(instance.started=!0,resolve(),clearTimeUpdateInterval(instance),instance.timeUpdateInterval=setInterval(onTimeUpdate.bind(instance),500),playOptions.fullscreen?appRouter.showVideoOsd().then(function(){instance.videoDialog.classList.remove("onTop")}):(appRouter.setTransparency("backdrop"),instance.videoDialog.classList.remove("onTop")),require(["loading"],function(loading){loading.hide()}))}function setCurrentSrc(instance,elem,options){return new Promise(function(resolve,reject){require(["queryString"],function(queryString){instance._currentSrc=options.url;var params=queryString.parse(options.url.split("?")[1]);if(window.onYouTubeIframeAPIReady=function(){instance.currentYoutubePlayer=new YT.Player("player",{height:instance.videoDialog.offsetHeight,width:instance.videoDialog.offsetWidth,videoId:params.v,events:{onReady:onPlayerReady,onStateChange:function(event){event.data===YT.PlayerState.PLAYING?onPlaying(instance,options,resolve):event.data===YT.PlayerState.ENDED?onEndedInternal(instance):event.data===YT.PlayerState.PAUSED&&events.trigger(instance,"pause")}},playerVars:{controls:0,enablejsapi:1,modestbranding:1,rel:0,showinfo:0,fs:0,playsinline:1}});var resizeListener=instance.resizeListener;resizeListener?(window.removeEventListener("resize",resizeListener),window.addEventListener("resize",resizeListener)):resizeListener=instance.resizeListener=onVideoResize.bind(instance),window.removeEventListener("orientationChange",resizeListener),window.addEventListener("orientationChange",resizeListener)},window.YT)window.onYouTubeIframeAPIReady();else{var tag=document.createElement("script");tag.src="https://www.youtube.com/iframe_api";var firstScriptTag=document.getElementsByTagName("script")[0];firstScriptTag.parentNode.insertBefore(tag,firstScriptTag)}})})}function YoutubePlayer(){this.name="Youtube Player",this.type="mediaplayer",this.id="youtubeplayer",this.priority=1}return YoutubePlayer.prototype.play=function(options){this.started=!1;var instance=this;return createMediaElement(this,options).then(function(elem){return setCurrentSrc(instance,elem,options)})},YoutubePlayer.prototype.stop=function(destroyPlayer,reportEnded){var src=this._currentSrc;return src&&(this.currentYoutubePlayer&&this.currentYoutubePlayer.stopVideo(),onEndedInternal(this,reportEnded),destroyPlayer&&this.destroy()),Promise.resolve()},YoutubePlayer.prototype.destroy=function(){appRouter.setTransparency("none");var dlg=this.videoDialog;dlg&&(this.videoDialog=null,dlg.parentNode.removeChild(dlg))},YoutubePlayer.prototype.canPlayMediaType=function(mediaType){return mediaType=(mediaType||"").toLowerCase(),"audio"===mediaType||"video"===mediaType},YoutubePlayer.prototype.canPlayItem=function(item){return!1},YoutubePlayer.prototype.canPlayUrl=function(url){return url.toLowerCase().indexOf("youtube.com")!==-1},YoutubePlayer.prototype.getDeviceProfile=function(){return Promise.resolve({})},YoutubePlayer.prototype.currentSrc=function(){return this._currentSrc},YoutubePlayer.prototype.setSubtitleStreamIndex=function(index){},YoutubePlayer.prototype.canSetAudioStreamIndex=function(){return!1},YoutubePlayer.prototype.setAudioStreamIndex=function(index){},YoutubePlayer.prototype.currentTime=function(val){var currentYoutubePlayer=this.currentYoutubePlayer;if(currentYoutubePlayer)return null!=val?void currentYoutubePlayer.seekTo(val/1e3,!0):1e3*currentYoutubePlayer.getCurrentTime()},YoutubePlayer.prototype.duration=function(val){var currentYoutubePlayer=this.currentYoutubePlayer;return currentYoutubePlayer?1e3*currentYoutubePlayer.getDuration():null},YoutubePlayer.prototype.pause=function(){var currentYoutubePlayer=this.currentYoutubePlayer;if(currentYoutubePlayer){currentYoutubePlayer.pauseVideo();var instance=this;setTimeout(function(){events.trigger(instance,"pause")},200)}},YoutubePlayer.prototype.unpause=function(){var currentYoutubePlayer=this.currentYoutubePlayer;if(currentYoutubePlayer){currentYoutubePlayer.playVideo();var instance=this;setTimeout(function(){events.trigger(instance,"unpause")},200)}},YoutubePlayer.prototype.paused=function(){var currentYoutubePlayer=this.currentYoutubePlayer;return!!currentYoutubePlayer&&(console.log(currentYoutubePlayer.getPlayerState()),2===currentYoutubePlayer.getPlayerState())},YoutubePlayer.prototype.volume=function(val){return null!=val?this.setVolume(val):this.getVolume()},YoutubePlayer.prototype.setVolume=function(val){var currentYoutubePlayer=this.currentYoutubePlayer;currentYoutubePlayer&&null!=val&¤tYoutubePlayer.setVolume(val)},YoutubePlayer.prototype.getVolume=function(){var currentYoutubePlayer=this.currentYoutubePlayer;if(currentYoutubePlayer)return currentYoutubePlayer.getVolume()},YoutubePlayer.prototype.setMute=function(mute){var currentYoutubePlayer=this.currentYoutubePlayer;mute?currentYoutubePlayer&¤tYoutubePlayer.mute():currentYoutubePlayer&¤tYoutubePlayer.unMute()},YoutubePlayer.prototype.isMuted=function(){var currentYoutubePlayer=this.currentYoutubePlayer;currentYoutubePlayer&¤tYoutubePlayer.isMuted()},YoutubePlayer}); \ No newline at end of file diff --git a/dashboard-ui/components/dockedtabs/dockedtabs.js b/dashboard-ui/components/dockedtabs/dockedtabs.js index 79c14773e2..f9cd59b0c7 100644 --- a/dashboard-ui/components/dockedtabs/dockedtabs.js +++ b/dashboard-ui/components/dockedtabs/dockedtabs.js @@ -1 +1 @@ -define(["apphost","connectionManager","events","globalize","browser","require","dom","embyRouter","emby-tabs"],function(appHost,connectionManager,events,globalize,browser,require,dom,embyRouter){"use strict";function render(options){var elem=document.createElement("div");elem.classList.add("hide"),elem.classList.add("dockedtabs"),elem.classList.add("dockedtabs-bottom");var html="";html+='
",appHost.supports("sync")&&(html+=' "),html+=' ",html+='
",elem.innerHTML=html;for(var buttons=elem.querySelectorAll(".emby-tab-button"),i=0,length=buttons.length;i
",appHost.supports("sync")&&(html+=' "),html+=' ",html+='
",elem.innerHTML=html;for(var buttons=elem.querySelectorAll(".emby-tab-button"),i=0,length=buttons.length;i.ui-panel-content-wrap>div[data-role=content],.type-interior>div[data-role=content]{padding-right:0;padding-left:0;padding-top:0;overflow:hidden}}.dashboardDocument .btnCast,.dashboardDocument .dashboardEntryHeaderButton,.dashboardDocument .headerSelectedPlayer,.dashboardDocument .headerVoiceButton,.dashboardDocument .lnkManageServer,.dashboardDocument .lnkMySync{display:none!important}.adminDrawer{background:#fff!important}.adminDrawer .sidebarLink:hover{color:#00897B!important}.adminDrawer .sidebarLink.selectedSidebarLink{background:#52B54B!important;color:#fff!important}.adminDrawerLogo{padding:1.5em 1em 1.2em;border-bottom:1px solid #e0e0e0;margin-bottom:1em;display:block}.adminDrawerLogo img{height:2.2em}.ui-body-a a{color:green}div[data-role=controlgroup] a[data-role=button]{display:inline-block!important;margin:0!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-border-radius:0;border-radius:0}div[data-role=controlgroup] a[data-role=button]:first-child{-webkit-border-bottom-left-radius:.3125em;border-bottom-left-radius:.3125em;-webkit-border-top-left-radius:.3125em;border-top-left-radius:.3125em}div[data-role=controlgroup] a[data-role=button]:last-child{-webkit-border-bottom-right-radius:.3125em;border-bottom-right-radius:.3125em;-webkit-border-top-right-radius:.3125em;border-top-right-radius:.3125em}div[data-role=controlgroup] a[data-role=button]+a[data-role=button]{border-left-width:0!important;margin:0 0 0 -.4em!important}div[data-role=controlgroup] a.ui-btn-active{background:#38c!important;color:#fff!important}.header .imageLink{display:inline-block}.header .imageLink img{height:2.1em;vertical-align:middle}.ulForm{margin:-1em -1em 1.4em!important}.ulForm li:not(.ui-li-divider){background:0 0;border:0!important}.popup .ulForm{margin-bottom:0!important}.content-primary{padding-top:6em;padding-right:1em;padding-left:1em}.withTabs .content-primary{padding-top:9em!important}@media all and (min-width:40em){.content-primary{padding-top:7em}.withTabs .content-primary{padding-top:10em!important}}@media all and (min-width:84em){.withTabs .content-primary{padding-top:7em!important}}.content-primary ul:first-child{margin-top:0}.dashboardSections{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column}.dashboardColumn{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-flex-shrink:0;flex-shrink:0;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1}.activeSession:not(.playingSession) .sessionNowPlayingContent,.supporterMembershipDisabled .tabSupporterMembership{display:none}.dashboardSection{-webkit-flex-shrink:0;flex-shrink:0;margin:0 0 2.5em}.dashboardSection h2{margin:0 0 .5em}.activeRecordingItems>.card{width:50%}@media all and (min-width:70em){.dashboardSections{-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}.dashboardColumn-2-60{width:46%}.dashboardColumn-2-40{width:27%}.dashboardSection{padding:0 1.25em}.activeRecordingItems>.card{width:25%}}@media all and (min-width:90em){.dashboardColumn-3-46{width:46%}.dashboardColumn-3-27{width:27%}.activeRecordingItems>.card{width:50%}}.premiumBanner img{position:absolute;text-align:right;top:0;right:0;width:4.4em;height:4.4em}.wizardContent{max-width:62em;padding:.5em 2em 1em;margin:0 auto;background:#fff}.wizardNavigation{text-align:right}.wizardContent form{max-width:100%}.wizardContent h2 img{height:2.5em;vertical-align:middle;margin-right:.5em;position:relative;top:-.3em}.scheduledTaskPaperIconItem{outline:0!important}@media all and (min-width:40em){.activeSession{width:100%!important}}@media all and (min-width:50em){.activeSession{width:50%!important}}.sessionCardFooter{padding-top:.5em!important;padding-bottom:1em!important;border-top:1px solid #eee;text-align:center;position:relative}.sessionAppInfo,.sessionNowPlayingInfo{padding:.5em;overflow:hidden}.sessionCardButtons{min-height:2.7em}.sessionCardButton{margin:0;color:#555}.sessionNowPlayingContent{-webkit-background-size:cover;background-size:cover;background-repeat:no-repeat;background-position:center center;position:absolute;top:0;left:0;right:0;bottom:0}.sessionNowPlayingInnerContent{position:absolute;top:0;left:0;right:0;bottom:0;font-weight:400}.sessionNowPlayingContent-withbackground+.sessionNowPlayingInnerContent{color:#fff!important;background:rgba(0,0,0,.7)}.sessionAppName{vertical-align:top;max-width:200px}.sessionNowPlayingInfo{position:absolute;left:0;bottom:11px;max-width:50%;-o-text-overflow:ellipsis;text-overflow:ellipsis}.sessionAppInfo img{max-width:32px;max-height:32px;margin-right:5px}.activeSession .playbackProgress{position:absolute;right:0;bottom:0;left:0;height:7px;width:100%;opacity:.95}.activeSession:not(.playingSession) .sessionNowPlayingInfo{bottom:0}.sessionNowPlayingTime{position:absolute;right:10px;bottom:19px}.sessionNowPlayingStreamInfo{white-space:nowrap;font-size:90%}.activeSession .transcodingProgress{right:0;bottom:0;left:0;height:5px;width:100%;opacity:.9;z-index:999;position:absolute}.playbackProgress,.transcodingProgress{appearance:none;-moz-appearance:none;-webkit-appearance:none;margin:0 5px 0 0;height:14px;border:0 solid #222;-webkit-border-radius:0;border-radius:0;width:50px;background:#000!important}.playbackProgress::-webkit-progress-bar,.transcodingProgress::-webkit-progress-bar{background:#000}.transcodingSession .playbackProgress{bottom:5px}.transcodingProgress::-moz-progress-bar{border-radius:0;background-image:-moz-linear-gradient(center bottom,#dd4919 37%,#dd4919 69%)!important}.transcodingProgress::-webkit-progress-value{-webkit-border-radius:0;border-radius:0;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,#dd4919),color-stop(1,#dd4919))!important;background-image:-webkit-linear-gradient(center bottom,#dd4919 37%,#dd4919 69%)!important}.transcodingProgress[aria-valuenow]:before{-webkit-border-radius:0;border-radius:0;background-image:-o-linear-gradient(center bottom,#dd4919 37%,#dd4919 69%)!important}.playbackProgress::-moz-progress-bar{border-radius:0;background-image:none;background-color:#52B54B}.playbackProgress::-webkit-progress-value{-webkit-border-radius:0;border-radius:0;background-image:none;background-color:#52B54B}.playbackProgress[aria-valuenow]:before{-webkit-border-radius:0;border-radius:0;background-image:none;background-color:#52B54B}@media all and (max-width:34.375em){.sessionAppName{max-width:160px}}@media all and (max-width:31.25em){.sessionAppName{max-width:150px}}.disabledUser{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.disabledUserBanner{margin:0 0 2em}.appLinks a{text-decoration:none!important}.appLinks a+a{margin-left:5px}.appLinks img{height:36px}a[data-role=button]{-webkit-font-smoothing:antialiased;-webkit-user-select:none;-webkit-background-clip:padding-box;-webkit-border-radius:.3125em;border-radius:.3125em;border:1px solid #ddd!important;color:#333!important;cursor:pointer!important;font-family:inherit!important;font-size:inherit!important;font-weight:500!important;margin:0 .25em!important;display:inline-block;padding:.8em 1em;text-align:center;text-decoration:none!important;background:#f6f6f6!important}@-webkit-keyframes rotating{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotating{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.rotatingCircle{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite} \ No newline at end of file +.dashboardColumn,.dashboardSections{-webkit-box-orient:vertical;-webkit-box-direction:normal}.dashboardFooter{margin-top:3.5em;text-align:center}.dashboardFooter a{text-decoration:none;font-weight:400;margin:0 .7em}.dashboardFooter .appLinks a{margin:.25em}.ui-body-a .listItem-shaded:nth-child(even){background:#f8f8f8}progress{appearance:none;-moz-appearance:none;-webkit-appearance:none;border:2px solid #ccc;-webkit-border-radius:.3em;border-radius:.3em;margin:0;background:#ccc!important}progress[role]:after{background-image:none}progress::-webkit-progress-bar{background:#ccc}progress::-moz-progress-bar{border-radius:.4em;background-image:-moz-linear-gradient(center bottom,#2bc253 37%,#54f054 69%)}progress::-webkit-progress-value{-webkit-border-radius:.4em;border-radius:.4em;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,#2bc253),color-stop(1,#54f054));background-image:-webkit-linear-gradient(center bottom,#2bc253 37%,#54f054 69%)}progress[aria-valuenow]:before{-webkit-border-radius:.4em;border-radius:.4em;background-image:-o-linear-gradient(center bottom,#2bc253 37%,#54f054 69%)}.localnav{margin-bottom:2.2em!important}@media all and (min-width:50em){.type-interior>.ui-panel-content-wrap>div[data-role=content],.type-interior>div[data-role=content]{padding-right:0;padding-left:0;padding-top:0;overflow:hidden}}.dashboardDocument .btnCast,.dashboardDocument .dashboardEntryHeaderButton,.dashboardDocument .headerSelectedPlayer,.dashboardDocument .headerVoiceButton,.dashboardDocument .lnkManageServer,.dashboardDocument .lnkMySync{display:none!important}.adminDrawer{background:#fff!important}.adminDrawer .sidebarLink:hover{color:#00897B!important}.adminDrawer .sidebarLink.selectedSidebarLink{background:#52B54B!important;color:#fff!important}.adminDrawerLogo{padding:1.5em 1em 1.2em;border-bottom:1px solid #e0e0e0;margin-bottom:1em;display:block}.adminDrawerLogo img{height:2.2em}.ui-body-a a{color:green}div[data-role=controlgroup] a[data-role=button]{display:inline-block!important;margin:0!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-border-radius:0;border-radius:0}div[data-role=controlgroup] a[data-role=button]:first-child{-webkit-border-bottom-left-radius:.3125em;border-bottom-left-radius:.3125em;-webkit-border-top-left-radius:.3125em;border-top-left-radius:.3125em}div[data-role=controlgroup] a[data-role=button]:last-child{-webkit-border-bottom-right-radius:.3125em;border-bottom-right-radius:.3125em;-webkit-border-top-right-radius:.3125em;border-top-right-radius:.3125em}div[data-role=controlgroup] a[data-role=button]+a[data-role=button]{border-left-width:0!important;margin:0 0 0 -.4em!important}div[data-role=controlgroup] a.ui-btn-active{background:#38c!important;color:#fff!important}.header .imageLink{display:inline-block}.header .imageLink img{height:2.1em;vertical-align:middle}.ulForm{margin:-1em -1em 1.4em!important}.ulForm li:not(.ui-li-divider){background:0 0;border:0!important}.popup .ulForm{margin-bottom:0!important}.content-primary{padding-top:6em;padding-right:1em;padding-left:1em}.withTabs .content-primary{padding-top:9em!important}@media all and (min-width:40em){.content-primary{padding-top:7em}.withTabs .content-primary{padding-top:10em!important}}@media all and (min-width:84em){.withTabs .content-primary{padding-top:7em!important}}.content-primary ul:first-child{margin-top:0}.dashboardSections{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column}.dashboardColumn{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-flex-shrink:0;flex-shrink:0;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1}.activeSession:not(.playingSession) .sessionNowPlayingContent,.supporterMembershipDisabled .tabSupporterMembership{display:none}.dashboardSection{-webkit-flex-shrink:0;flex-shrink:0;margin:0 0 2.5em}.dashboardSection h2{margin:0 0 .5em}.activeRecordingItems>.card{width:50%}@media all and (min-width:70em){.dashboardSections{-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}.dashboardColumn-2-60{width:46%}.dashboardColumn-2-40{width:27%}.dashboardSection{padding:0 1.25em}.activeRecordingItems>.card{width:25%}}@media all and (min-width:90em){.dashboardColumn-3-46{width:46%}.dashboardColumn-3-27{width:27%}.activeRecordingItems>.card{width:50%}}.premiumBanner img{position:absolute;text-align:right;top:0;right:0;width:4.4em;height:4.4em}.wizardContent{max-width:62em;padding:.5em 2em 1em;margin:0 auto;background:#fff}.wizardNavigation{text-align:right}.wizardContent form{max-width:100%}.wizardContent h2 img{height:2.5em;vertical-align:middle;margin-right:.5em;position:relative;top:-.3em}.scheduledTaskPaperIconItem{outline:0!important}@media all and (min-width:40em){.activeSession{width:100%!important}}@media all and (min-width:50em){.activeSession{width:50%!important}}.sessionCardFooter{padding-top:.5em!important;padding-bottom:1em!important;border-top:1px solid #eee;text-align:center;position:relative}.sessionAppInfo,.sessionNowPlayingInfo{padding:.5em;overflow:hidden}.sessionCardButtons{min-height:2.7em}.sessionCardButton{margin:0;color:#555}.sessionNowPlayingContent{-webkit-background-size:cover;background-size:cover;background-repeat:no-repeat;background-position:center center;position:absolute;top:0;left:0;right:0;bottom:0}.sessionNowPlayingInnerContent{position:absolute;top:0;left:0;right:0;bottom:0;font-weight:400}.sessionNowPlayingContent-withbackground+.sessionNowPlayingInnerContent{color:#fff!important;background:rgba(0,0,0,.7)}.sessionAppName{vertical-align:top;max-width:200px}.sessionNowPlayingInfo{position:absolute;left:0;bottom:11px;max-width:50%;-o-text-overflow:ellipsis;text-overflow:ellipsis}.sessionAppInfo img{max-width:32px;max-height:32px;margin-right:5px}.activeSession .playbackProgress{position:absolute;right:0;bottom:0;left:0;height:7px;width:100%;opacity:.95}.activeSession:not(.playingSession) .sessionNowPlayingInfo{bottom:0}.sessionNowPlayingTime{position:absolute;right:10px;bottom:19px}.sessionNowPlayingStreamInfo{white-space:nowrap;font-size:90%}.activeSession .transcodingProgress{right:0;bottom:0;left:0;height:5px;width:100%;opacity:.9;z-index:999;position:absolute}.playbackProgress,.transcodingProgress{appearance:none;-moz-appearance:none;-webkit-appearance:none;margin:0 5px 0 0;height:14px;border:0 solid #222;-webkit-border-radius:0;border-radius:0;width:50px;background:#000!important}.playbackProgress::-webkit-progress-bar,.transcodingProgress::-webkit-progress-bar{background:#000}.transcodingSession .playbackProgress{bottom:5px}.transcodingProgress::-moz-progress-bar{border-radius:0;background-image:-moz-linear-gradient(center bottom,#dd4919 37%,#dd4919 69%)!important}.transcodingProgress::-webkit-progress-value{-webkit-border-radius:0;border-radius:0;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,#dd4919),color-stop(1,#dd4919))!important;background-image:-webkit-linear-gradient(center bottom,#dd4919 37%,#dd4919 69%)!important}.transcodingProgress[aria-valuenow]:before{-webkit-border-radius:0;border-radius:0;background-image:-o-linear-gradient(center bottom,#dd4919 37%,#dd4919 69%)!important}.playbackProgress::-moz-progress-bar{border-radius:0;background-image:none;background-color:#52B54B}.playbackProgress::-webkit-progress-value{-webkit-border-radius:0;border-radius:0;background-image:none;background-color:#52B54B}.playbackProgress[aria-valuenow]:before{-webkit-border-radius:0;border-radius:0;background-image:none;background-color:#52B54B}@media all and (max-width:34.375em){.sessionAppName{max-width:160px}}@media all and (max-width:31.25em){.sessionAppName{max-width:150px}}.disabledUser{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.disabledUserBanner{margin:0 0 2em}.appLinks a{text-decoration:none!important}.appLinks a+a{margin-left:5px}.appLinks img{height:36px}a[data-role=button]{-webkit-font-smoothing:antialiased;-webkit-user-select:none;-webkit-background-clip:padding-box;-webkit-border-radius:.3125em;border-radius:.3125em;border:1px solid #ddd!important;color:#333!important;cursor:pointer!important;font-family:inherit!important;font-size:inherit!important;font-weight:500!important;margin:0 .25em!important;display:inline-block;padding:.8em 1em;text-align:center;text-decoration:none!important;background:#f6f6f6!important}@-webkit-keyframes rotating{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotating{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.rotatingCircle{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite} \ No newline at end of file diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css index 9a69c373d0..2dd9ff5d61 100644 --- a/dashboard-ui/css/librarybrowser.css +++ b/dashboard-ui/css/librarybrowser.css @@ -1 +1 @@ -.itemName,.itemTag{font-weight:400!important}.detailButton-mobile,.detailButton-mobile-content{-webkit-box-orient:vertical;-webkit-box-direction:normal}.alphabetPicker,.detailButton-mobile,.itemLinks,.listPaging,.viewSettings{text-align:center}.playstatebutton-played i,.ratingbutton-withrating i{color:#c33}.downloadbutton-complete i,.downloadbutton-on i{color:#4285F4}.hidingAnimatedTab{visibility:hidden}.headerArrowImage{height:20px;margin-left:.5em}.background-theme-b .backgroundContainer,.dialog.background-theme-b{background-color:#171717}.background-theme-b .backgroundContainer.withBackdrop{background-color:rgba(6,6,6,.94)!important;background:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.99)),color-stop(rgba(0,0,0,.94)),to(rgba(0,0,0,.5)))!important;background:-webkit-linear-gradient(left,rgba(0,0,0,.99),rgba(0,0,0,.94),rgba(0,0,0,.5))!important;background:-o-linear-gradient(left,rgba(0,0,0,.99),rgba(0,0,0,.94),rgba(0,0,0,.5))!important;background:linear-gradient(to right,rgba(0,0,0,.99),rgba(0,0,0,.94),rgba(0,0,0,.5))!important}.ui-body-b{color:#ddd!important}.backdropContainer{position:fixed;top:0;left:0;right:0;bottom:0;z-index:-1}.libraryPage .header{padding-bottom:0}.pageTabContent{contain:style}.flexPageTabContent.is-active{display:-webkit-box!important;display:-webkit-flex!important;display:flex!important}.viewSettings{margin:0 0 .25em}.viewControls+.listTopPaging{margin-left:.5em!important}.criticReview{margin:1.5em 0;background:#222;padding:.8em .8em .8em 3em;-webkit-border-radius:.3em;border-radius:.3em;position:relative}.criticReview:first-child{margin-top:.5em}.criticReview img{width:2.4em}.criticRatingScore{margin-bottom:.5em}.itemTag{display:inline-block;background-color:#333;-webkit-border-radius:.25em;border-radius:.25em;padding:.3em .5em;margin:0 .3em .3em 0;color:#fff!important;text-decoration:none}.itemOverview{white-space:pre-wrap}.itemLinks{padding:0}.itemLinks p{margin:.5em 0}.reviewLink,.reviewerName{margin-top:.5em}.reviewerName{color:#ccc}.reviewDate{margin-left:1em}.reviewScore{position:absolute;left:.8em}.itemBackdrop{-webkit-background-size:cover;background-size:cover;background-position:center center;background-repeat:no-repeat;height:45vh;position:relative}.itemBackdropProgressBar{position:absolute!important;bottom:0;left:0;right:0}.itemBackdropFader{position:absolute;bottom:-1px;left:0;right:0;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(#161616));background:-webkit-linear-gradient(rgba(0,0,0,0),#161616);background:-o-linear-gradient(rgba(0,0,0,0),#161616);background:linear-gradient(rgba(0,0,0,0),#161616);height:15vh}.desktopMiscInfoContainer{position:absolute;bottom:.75em}.detailImageContainer{margin-right:2em;width:280px;-webkit-flex-shrink:0;flex-shrink:0}.detailPagePrimaryContent{position:relative;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1}.detailLogo{width:21.3em;height:5em;position:absolute;top:13.5%;right:19.5%;background-repeat:no-repeat;background-position:center center;-webkit-background-size:contain;background-size:contain}@media all and (max-width:87.5em){.detailLogo{right:5%}}@media all and (max-width:75em){.detailLogo{right:2%}}@media all and (max-width:68.75em){.detailLogo{width:14.91em;height:3.5em;right:5%;bottom:5%;top:auto;background-position:center right;display:none}}.itemDetailImage{border:1px solid transparent;width:100%}.thumbDetailImageContainer{width:400px}.itemDetailImage.loaded{-webkit-box-shadow:0 0 1.5em #000;box-shadow:0 0 1.5em #000;border:1px solid #222}.itemDetailGalleryLink img:hover{border-color:#52B54B}@media all and (max-width:50em){.detailPageContent{position:relative}.detailImageContainer{position:absolute;top:-90px;left:5%;width:auto}.itemDetailImage{height:120px;width:auto!important}.btnPlaySimple,.mainDetailButtons-nonmobile{display:none!important}}@media all and (min-width:50em){.itemBackdrop{display:none}.detailPagePrimaryContainer{display:-webkit-box;display:-webkit-flex;display:flex;margin-bottom:3.6em}.mainDetailButtons-mobile{display:none!important}}@media all and (max-width:75em){.lnkSibling{display:none!important}}.parentName{display:block;margin-bottom:.5em}.emby-button.detailFloatingButton{position:absolute;background-color:rgba(0,0,0,.5)!important;z-index:1;top:50%;left:50%;margin:-2.2em 0 0 -2.2em;border:2.7px solid rgba(255,255,255,.6);padding:.38em!important;color:rgba(255,255,255,.76)}.emby-button.detailFloatingButton i{font-size:3.5em}.emby-button.btnFloatingRecord{background-color:#c33!important}@media all and (max-width:50em){.parentName{margin-bottom:1em}.itemDetailPage{padding-top:0!important}.detailimg-hidemobile{display:none}}@media all and (min-width:31.25em){.mobileDetails{display:none}}@media all and (max-width:31.25em){.desktopDetails{display:none!important}}.detailButton-mobile,.mainDetailButtons{display:-webkit-box;display:-webkit-flex}.itemName{margin:.5em 0}.empty{margin:0}.detailCollapsibleSection:not(.hide)+.detailCollapsibleSection{margin-top:-2em}.detailPageCollabsible{margin-top:0}.mainDetailButtons{display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-.5em}.recordingFields button{margin-left:0;margin-right:.5em;-webkit-flex-shrink:0;flex-shrink:0}.mainDetailButtons.hide+.recordingFields{margin-top:1.5em!important}.mainDetailButtons>.raised{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}@media all and (min-width:25em){.mainDetailButtons>.raised{padding-left:1.5em;padding-right:1.5em}}.detailButton-mobile{display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin:0 .3em 0 0!important;padding-top:.5em!important;padding-bottom:.5em!important}.detailButton-mobile-content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.detailButton-mobile-icon{font-size:1.9em!important}.detailButton-mobile-text{margin-top:.7em;font-size:80%;font-weight:400;color:#aaa}.detailImageProgressContainer{position:absolute;bottom:4px;right:1px;left:1px;text-align:center}.listTopPaging,.viewControls{display:inline-block}@media all and (max-width:50em){.editorMenuLink{display:none}}.itemMiscInfo{-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;align-items:center}@media all and (max-width:31.25em){.mobileDetails .itemMiscInfo{text-align:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.itemMiscInfo .endsAt{display:none}}.layout-tv .detailVerticalSection{margin-bottom:3.4em!important}.detailPageContent{border-spacing:0;border-collapse:collapse;padding-top:3em}@media all and (max-width:50em){.detailPageContent-nodetailimg{padding-top:0;margin-top:-3em}}@media all and (min-width:75em){.itemDetailPage .padded-left{padding-left:4%!important}.itemDetailPage .padded-right{padding-right:4%!important}}.detailPageParentLink{font-weight:inherit!important}.mediaInfoContent{line-height:1.5em}.mediaInfoStream{margin:1em 3em 1em 0;display:inline-block;color:#bbb;vertical-align:top}.mediaInfoStreamType{display:block;color:#fff;margin-bottom:1em}.mediaInfoAttribute{color:#fff;display:inline-block}.mediaInfoLabel{color:#aaa;margin-right:1em;display:inline-block}.recordingProgressBar::-moz-progress-bar{background-color:#c33}.recordingProgressBar::-webkit-progress-value{background-color:#c33}.recordingProgressBar[aria-valuenow]:before{background-color:#c33}.timelineHeader{margin-bottom:.25em;line-height:1.25em;line-height:initial}.itemsContainer{margin:0 auto}.alphabetPicker{position:fixed;left:.4em;bottom:48px;display:none;line-height:1}.alphabetPicker-right{right:.4em;left:auto}.layout-desktop .absolutePageTabContent .alphabetPicker{right:1.5em}@media all and (max-height:31.25em){.alphabetPicker{display:none!important}.itemBackdrop{height:52vh}}.alphaPicker-vertical .alphaPickerButton{padding-top:2px!important;padding-bottom:2px!important}@media all and (max-height:43.75em){.alphaPicker-vertical .alphaPickerButton{padding-top:1px!important;padding-bottom:1px!important}}@media all and (max-height:37.5em){.alphaPicker-vertical .alphaPickerButton{padding-top:0!important;padding-bottom:0!important}}@media all and (max-height:33.125em){.alphabetPicker{font-size:80%!important}}@media all and (max-height:30em){.alphabetPicker{font-size:76%!important}}@media all and (min-height:37.5em){.alphabetPicker{bottom:70px}}@media all and (min-height:56.25em){.alphabetPicker{bottom:120px}}@media all and (min-height:62.5em){.alphabetPicker{bottom:200px}}@media all and (max-width:75em){.listViewUserDataButtons{display:none!important}}.userProfileSettingsForm{max-width:700px}@media all and (max-width:43.75em){.userProfileSettingsForm .detailSection{margin-left:.5em;margin-right:.5em}}@media all and (max-width:50em){.detailsHiddenOnMobile{display:none}}#criticReviewsContent.hiddenScrollX{white-space:nowrap}#criticReviewsContent.hiddenScrollX .paperList{min-width:240px;width:90%;max-width:500px;display:inline-block;vertical-align:top;margin:0 .35em 0 0}.btnSyncComplete{background:#673AB7!important}.btnSyncComplete i{-webkit-border-radius:1000px;border-radius:1000px}.bulletSeparator{margin:0 .35em}.mediaInfoIcons{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin:1.5em 0 1em;-webkit-flex-wrap:wrap;flex-wrap:wrap}.mediaInfoText{padding:.3em .5em!important;margin-right:.5em;margin-bottom:.5em;font-size:94%!important}.sectionTitleButton,.sectionTitleIconButton{margin-right:0!important;display:inline-block;vertical-align:middle}.mediaInfoText-upper{text-transform:uppercase}.verticalSection{margin-bottom:2em}.layout-tv .verticalSection{margin-bottom:1.7em}.sectionTitleContainer{margin-bottom:.3em}.layout-tv .sectionTitleContainer{margin-bottom:0}.sectionTitle{margin-bottom:.07em}.sectionTitleContainer>.sectionTitle{margin-top:0;margin-bottom:0;display:inline-block;vertical-align:middle}.sectionTitleButton{margin-left:1.5em!important;-webkit-flex-shrink:0;flex-shrink:0}.sectionTitleButton+.sectionTitleButton{margin-left:.5em!important}.sectionTitleIconButton{margin-left:1.5em!important;-webkit-flex-shrink:0;flex-shrink:0;color:#aaa!important;font-size:84%!important;padding:.5em!important}.sectionTitle-cards{margin-left:.3em}.verticalSection .sectionTitle{margin-top:0}.horizontalItemsContainer{display:-webkit-box;display:-webkit-flex;display:flex}.sectionTitleTextButton{margin:0 0 .1em!important;display:-webkit-inline-box!important;display:-webkit-inline-flex!important;display:inline-flex!important;color:inherit!important}.sectionTitleTextButton:not(.padded-left){padding:0!important}.sectionTitleTextButton.padded-left{padding-bottom:0!important;padding-right:0!important;padding-top:0!important}.sectionTitleTextButton>.sectionTitle{margin-bottom:0}.padded-left{padding-left:2%}.padded-right{padding-right:2%}.padded-top{padding-top:1em}.padded-bottom{padding-bottom:1em}.layout-tv .padded-top-focusscale{padding-top:1.6em;margin-top:-1.6em}.layout-tv .padded-bottom-focusscale{padding-bottom:1.6em;margin-bottom:-1.6em}@media all and (min-height:500px){.padded-left-withalphapicker{padding-left:6%}.padded-right-withalphapicker{padding-right:6%}}@media all and (min-width:600px){.padded-left{padding-left:3%}.padded-right{padding-right:3%}}@media all and (min-width:800px){.padded-left{padding-left:3.2%}.padded-right{padding-right:3.2%}}@media all and (min-width:1280px){.padded-left{padding-left:3.4%}.padded-right{padding-right:3.4%}}@media all and (min-width:800px){.layout-tv .padded-left-withalphapicker{padding-left:4.4%}.layout-tv .padded-right-withalphapicker{padding-right:4.4%}}@media all and (min-width:1280px){.layout-tv .padded-left-withalphapicker{padding-left:5%}.layout-tv .padded-right-withalphapicker{padding-right:5%}}.homeLibraryButton{min-width:18%;margin:.5em!important}@media all and (max-width:50em){.homeLibraryButton{width:46%!important}}.searchfields-icon{color:#aaa} \ No newline at end of file +.itemName,.itemTag{font-weight:400!important}.detailButton-mobile,.detailButton-mobile-content{-webkit-box-orient:vertical;-webkit-box-direction:normal}.alphabetPicker,.detailButton-mobile,.itemLinks,.listPaging,.viewSettings{text-align:center}.playstatebutton-played i,.ratingbutton-withrating i{color:#c33}.downloadbutton-complete i,.downloadbutton-on i{color:#4285F4}.hidingAnimatedTab{visibility:hidden}.headerArrowImage{height:20px;margin-left:.5em}.background-theme-b .backgroundContainer,.dialog.background-theme-b{background-color:#181818}.background-theme-b .backgroundContainer.withBackdrop{background-color:rgba(6,6,6,.94)!important;background:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.99)),color-stop(rgba(0,0,0,.94)),to(rgba(0,0,0,.5)))!important;background:-webkit-linear-gradient(left,rgba(0,0,0,.99),rgba(0,0,0,.94),rgba(0,0,0,.5))!important;background:-o-linear-gradient(left,rgba(0,0,0,.99),rgba(0,0,0,.94),rgba(0,0,0,.5))!important;background:linear-gradient(to right,rgba(0,0,0,.99),rgba(0,0,0,.94),rgba(0,0,0,.5))!important}.ui-body-b{color:#ddd!important}.backdropContainer{position:fixed;top:0;left:0;right:0;bottom:0;z-index:-1}.libraryPage .header{padding-bottom:0}.pageTabContent{contain:style}.flexPageTabContent.is-active{display:-webkit-box!important;display:-webkit-flex!important;display:flex!important}.viewSettings{margin:0 0 .25em}.viewControls+.listTopPaging{margin-left:.5em!important}.criticReview{margin:1.5em 0;background:#222;padding:.8em .8em .8em 3em;-webkit-border-radius:.3em;border-radius:.3em;position:relative}.criticReview:first-child{margin-top:.5em}.criticReview img{width:2.4em}.criticRatingScore{margin-bottom:.5em}.itemTag{display:inline-block;background-color:#333;-webkit-border-radius:.25em;border-radius:.25em;padding:.3em .5em;margin:0 .3em .3em 0;color:#fff!important;text-decoration:none}.itemOverview{white-space:pre-wrap}.itemLinks{padding:0}.itemLinks p{margin:.5em 0}.reviewLink,.reviewerName{margin-top:.5em}.reviewerName{color:#ccc}.reviewDate{margin-left:1em}.reviewScore{position:absolute;left:.8em}.itemBackdrop{-webkit-background-size:cover;background-size:cover;background-position:center center;background-repeat:no-repeat;height:45vh;position:relative}.itemBackdropProgressBar{position:absolute!important;bottom:0;left:0;right:0}.itemBackdropFader{position:absolute;bottom:-1px;left:0;right:0;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(#161616));background:-webkit-linear-gradient(rgba(0,0,0,0),#161616);background:-o-linear-gradient(rgba(0,0,0,0),#161616);background:linear-gradient(rgba(0,0,0,0),#161616);height:15vh}.desktopMiscInfoContainer{position:absolute;bottom:.75em}.detailImageContainer{margin-right:2em;width:280px;-webkit-flex-shrink:0;flex-shrink:0}.detailPagePrimaryContent{position:relative;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1}.detailLogo{width:21.3em;height:5em;position:absolute;top:13.5%;right:19.5%;background-repeat:no-repeat;background-position:center center;-webkit-background-size:contain;background-size:contain}@media all and (max-width:87.5em){.detailLogo{right:5%}}@media all and (max-width:75em){.detailLogo{right:2%}}@media all and (max-width:68.75em){.detailLogo{width:14.91em;height:3.5em;right:5%;bottom:5%;top:auto;background-position:center right;display:none}}.itemDetailImage{border:1px solid transparent;width:100%}.thumbDetailImageContainer{width:400px}.itemDetailImage.loaded{-webkit-box-shadow:0 0 1.5em #000;box-shadow:0 0 1.5em #000;border:1px solid #222}.itemDetailGalleryLink img:hover{border-color:#52B54B}@media all and (max-width:50em){.detailPageContent{position:relative}.detailImageContainer{position:absolute;top:-90px;left:5%;width:auto}.itemDetailImage{height:120px;width:auto!important}.btnPlaySimple,.mainDetailButtons-nonmobile{display:none!important}}@media all and (min-width:50em){.itemBackdrop{display:none}.detailPagePrimaryContainer{display:-webkit-box;display:-webkit-flex;display:flex;margin-bottom:3.6em}.mainDetailButtons-mobile{display:none!important}}@media all and (max-width:75em){.lnkSibling{display:none!important}}.parentName{display:block;margin-bottom:.5em}.emby-button.detailFloatingButton{position:absolute;background-color:rgba(0,0,0,.5)!important;z-index:1;top:50%;left:50%;margin:-2.2em 0 0 -2.2em;border:2.7px solid rgba(255,255,255,.6);padding:.38em!important;color:rgba(255,255,255,.76)}.emby-button.detailFloatingButton i{font-size:3.5em}.emby-button.btnFloatingRecord{background-color:#c33!important}@media all and (max-width:50em){.parentName{margin-bottom:1em}.itemDetailPage{padding-top:0!important}.detailimg-hidemobile{display:none}}@media all and (min-width:31.25em){.mobileDetails{display:none}}@media all and (max-width:31.25em){.desktopDetails{display:none!important}}.detailButton-mobile,.mainDetailButtons{display:-webkit-box;display:-webkit-flex}.itemName{margin:.5em 0}.empty{margin:0}.detailCollapsibleSection:not(.hide)+.detailCollapsibleSection{margin-top:-2em}.detailPageCollabsible{margin-top:0}.mainDetailButtons{display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-.5em}.recordingFields button{margin-left:0;margin-right:.5em;-webkit-flex-shrink:0;flex-shrink:0}.mainDetailButtons.hide+.recordingFields{margin-top:1.5em!important}.mainDetailButtons>.raised{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}@media all and (min-width:25em){.mainDetailButtons>.raised{padding-left:1.5em;padding-right:1.5em}}.detailButton-mobile{display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin:0 .3em 0 0!important;padding-top:.5em!important;padding-bottom:.5em!important}.detailButton-mobile-content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.detailButton-mobile-icon{font-size:1.9em!important}.detailButton-mobile-text{margin-top:.7em;font-size:80%;font-weight:400;color:#aaa}.detailImageProgressContainer{position:absolute;bottom:4px;right:1px;left:1px;text-align:center}.listTopPaging,.viewControls{display:inline-block}@media all and (max-width:50em){.editorMenuLink{display:none}}.itemMiscInfo{-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;align-items:center}@media all and (max-width:31.25em){.mobileDetails .itemMiscInfo{text-align:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.itemMiscInfo .endsAt{display:none}}.layout-tv .detailVerticalSection{margin-bottom:3.4em!important}.detailPageContent{border-spacing:0;border-collapse:collapse;padding-top:3em}@media all and (max-width:50em){.detailPageContent-nodetailimg{padding-top:0;margin-top:-3em}}@media all and (min-width:75em){.itemDetailPage .padded-left{padding-left:4%!important}.itemDetailPage .padded-right{padding-right:4%!important}}.detailPageParentLink{font-weight:inherit!important}.mediaInfoContent{line-height:1.5em}.mediaInfoStream{margin:1em 3em 1em 0;display:inline-block;color:#bbb;vertical-align:top}.mediaInfoStreamType{display:block;color:#fff;margin-bottom:1em}.mediaInfoAttribute{color:#fff;display:inline-block}.mediaInfoLabel{color:#aaa;margin-right:1em;display:inline-block}.recordingProgressBar::-moz-progress-bar{background-color:#c33}.recordingProgressBar::-webkit-progress-value{background-color:#c33}.recordingProgressBar[aria-valuenow]:before{background-color:#c33}.timelineHeader{margin-bottom:.25em;line-height:1.25em;line-height:initial}.itemsContainer{margin:0 auto}.alphabetPicker{position:fixed;left:.4em;bottom:48px;display:none;line-height:1}.alphabetPicker-right{right:.4em;left:auto}.layout-desktop .absolutePageTabContent .alphabetPicker{right:1.5em}@media all and (max-height:31.25em){.alphabetPicker{display:none!important}.itemBackdrop{height:52vh}}.alphaPicker-vertical .alphaPickerButton{padding-top:2px!important;padding-bottom:2px!important}@media all and (max-height:43.75em){.alphaPicker-vertical .alphaPickerButton{padding-top:1px!important;padding-bottom:1px!important}}@media all and (max-height:37.5em){.alphaPicker-vertical .alphaPickerButton{padding-top:0!important;padding-bottom:0!important}}@media all and (max-height:33.125em){.alphabetPicker{font-size:80%!important}}@media all and (max-height:30em){.alphabetPicker{font-size:76%!important}}@media all and (min-height:37.5em){.alphabetPicker{bottom:70px}}@media all and (min-height:56.25em){.alphabetPicker{bottom:120px}}@media all and (min-height:62.5em){.alphabetPicker{bottom:200px}}@media all and (max-width:75em){.listViewUserDataButtons{display:none!important}}.userProfileSettingsForm{max-width:700px}@media all and (max-width:43.75em){.userProfileSettingsForm .detailSection{margin-left:.5em;margin-right:.5em}}@media all and (max-width:50em){.detailsHiddenOnMobile{display:none}}#criticReviewsContent.hiddenScrollX{white-space:nowrap}#criticReviewsContent.hiddenScrollX .paperList{min-width:240px;width:90%;max-width:500px;display:inline-block;vertical-align:top;margin:0 .35em 0 0}.btnSyncComplete{background:#673AB7!important}.btnSyncComplete i{-webkit-border-radius:1000px;border-radius:1000px}.bulletSeparator{margin:0 .35em}.mediaInfoIcons{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin:1.5em 0 1em;-webkit-flex-wrap:wrap;flex-wrap:wrap}.mediaInfoText{padding:.3em .5em!important;margin-right:.5em;margin-bottom:.5em;font-size:94%!important}.sectionTitleButton,.sectionTitleIconButton{margin-right:0!important;display:inline-block;vertical-align:middle}.mediaInfoText-upper{text-transform:uppercase}.verticalSection{margin-bottom:2em}.layout-tv .verticalSection{margin-bottom:1.7em}.sectionTitleContainer{margin-bottom:.3em}.layout-tv .sectionTitleContainer{margin-bottom:0}.sectionTitle{margin-bottom:.07em}.sectionTitleContainer>.sectionTitle{margin-top:0;margin-bottom:0;display:inline-block;vertical-align:middle}.sectionTitleButton{margin-left:1.5em!important;-webkit-flex-shrink:0;flex-shrink:0}.sectionTitleButton+.sectionTitleButton{margin-left:.5em!important}.sectionTitleIconButton{margin-left:1.5em!important;-webkit-flex-shrink:0;flex-shrink:0;color:#aaa!important;font-size:84%!important;padding:.5em!important}.sectionTitle-cards{margin-left:.3em}.verticalSection .sectionTitle{margin-top:0}.horizontalItemsContainer{display:-webkit-box;display:-webkit-flex;display:flex}.sectionTitleTextButton{margin:0 0 .1em!important;display:-webkit-inline-box!important;display:-webkit-inline-flex!important;display:inline-flex!important;color:inherit!important}.sectionTitleTextButton:not(.padded-left){padding:0!important}.sectionTitleTextButton.padded-left{padding-bottom:0!important;padding-right:0!important;padding-top:0!important}.sectionTitleTextButton>.sectionTitle{margin-bottom:0}.padded-left{padding-left:2%}.padded-right{padding-right:2%}.padded-top{padding-top:1em}.padded-bottom{padding-bottom:1em}.layout-tv .padded-top-focusscale{padding-top:1.6em;margin-top:-1.6em}.layout-tv .padded-bottom-focusscale{padding-bottom:1.6em;margin-bottom:-1.6em}@media all and (min-height:500px){.padded-left-withalphapicker{padding-left:6%}.padded-right-withalphapicker{padding-right:6%}}@media all and (min-width:600px){.padded-left{padding-left:3%}.padded-right{padding-right:3%}}@media all and (min-width:800px){.padded-left{padding-left:3.2%}.padded-right{padding-right:3.2%}}@media all and (min-width:1280px){.padded-left{padding-left:3.4%}.padded-right{padding-right:3.4%}}@media all and (min-width:800px){.layout-tv .padded-left-withalphapicker{padding-left:4.4%}.layout-tv .padded-right-withalphapicker{padding-right:4.4%}}@media all and (min-width:1280px){.layout-tv .padded-left-withalphapicker{padding-left:5%}.layout-tv .padded-right-withalphapicker{padding-right:5%}}.homeLibraryButton{min-width:18%;margin:.5em!important}@media all and (max-width:50em){.homeLibraryButton{width:46%!important}}.searchfields-icon{color:#aaa} \ No newline at end of file diff --git a/dashboard-ui/fonts/roboto/-l14jk06m6puhb-5mxqqnrjtnkitppoi_ivcxxdnrsc.woff2 b/dashboard-ui/fonts/roboto/-l14jk06m6puhb-5mxqqnrjtnkitppoi_ivcxxdnrsc.woff2 deleted file mode 100644 index 6cb7a2d0388363c296a1e3a0bd16691098124d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1388 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 G1poj{?k;fv diff --git a/dashboard-ui/fonts/roboto/97uahxiqzroncbacei3awxjtnkitppoi_ivcxxdnrsc.woff2 b/dashboard-ui/fonts/roboto/97uahxiqzroncbacei3awxjtnkitppoi_ivcxxdnrsc.woff2 deleted file mode 100644 index b61298bde8f1f247bad0d505a35e11132f80f66f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11820 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 diff --git a/dashboard-ui/fonts/roboto/azmswpodyevhtrvuabjwvbtbgvql8ndjpwnre27mub0.woff2 b/dashboard-ui/fonts/roboto/azmswpodyevhtrvuabjwvbtbgvql8ndjpwnre27mub0.woff2 deleted file mode 100644 index cf945d673e7de5556915f864165e7c9d4a5fa354..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7176 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 K-^`!SN3H@k15CQjNSurBO+4DXC^kqXZgn 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 diff --git a/dashboard-ui/fonts/roboto/d-6iyplofoccackzxwxsoftxra8tvwticgirnjhmvjw.woff2 b/dashboard-ui/fonts/roboto/d-6iyplofoccackzxwxsoftxra8tvwticgirnjhmvjw.woff2 deleted file mode 100644 index 11cde5d04c470947b1c88e42a684fcf0d5b396b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14552 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 C(C%db diff --git a/dashboard-ui/fonts/roboto/e7mevayvogmqfwwl61pkhbtbgvql8ndjpwnre27mub0.woff2 b/dashboard-ui/fonts/roboto/e7mevayvogmqfwwl61pkhbtbgvql8ndjpwnre27mub0.woff2 deleted file mode 100644 index 4100e9532e20a47ade8675d251dfa6e0dbcb0400..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11820 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 af6}_QJ$*8b33HskP8&sjGL)M{0{{T`JlNI% diff --git a/dashboard-ui/fonts/roboto/fcx7wwv8ozt71a3e1xoajveszw2xoq-xsnqo47m55da.woff2 b/dashboard-ui/fonts/roboto/fcx7wwv8ozt71a3e1xoajveszw2xoq-xsnqo47m55da.woff2 deleted file mode 100644 index 0c7aec28f513926a7e749abc12863001e2f1b65c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12008 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 GC;$N0_xDr) diff --git a/dashboard-ui/fonts/roboto/fl4y0qdoxyythegmxx8kcrjtnkitppoi_ivcxxdnrsc.woff2 b/dashboard-ui/fonts/roboto/fl4y0qdoxyythegmxx8kcrjtnkitppoi_ivcxxdnrsc.woff2 deleted file mode 100644 index 137a9771227db1cff7cbf4caff402acf42735804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9780 zcmV-4Cd=7(Pew8T0RR91046j55dZ)H09d#H043A_0ssI200000000000000000000 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 O{Yz6`=tuIX`v3s@w%oS> diff --git a/dashboard-ui/fonts/roboto/frnv30oaydlfrth2vnzzdhtbgvql8ndjpwnre27mub0.woff2 b/dashboard-ui/fonts/roboto/frnv30oaydlfrth2vnzzdhtbgvql8ndjpwnre27mub0.woff2 deleted file mode 100644 index 96cbde2377a122983661fc422b744c0af32f9d81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9468 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 Oe6dBsn4JL31pojbqaBI> diff --git a/dashboard-ui/fonts/roboto/gwvjdern2amz39wrsoz7fxtbgvql8ndjpwnre27mub0.woff2 b/dashboard-ui/fonts/roboto/gwvjdern2amz39wrsoz7fxtbgvql8ndjpwnre27mub0.woff2 deleted file mode 100644 index 8298806a5b712145124b2e1f13d4749b00dbdd6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1340 zcmV-C1;hGxPew8T0RR9100le%5dZ)H00`Uw00iOy0ssI200000000000000000000 z0000RfhHUb24DbK2t)~kJP`~EgKUFJ5)=V80we<*3lIPVAO(UH2Otb<8;A$U1|Il# zx<5C$NorH@3`mApifS?6JVAVO#H>%;Zu@L|;$J>^Cf-i2sr{5CpfG^0=fSGxizyKf z&~q`+pgbKDIr_Y>ULDx0AHaF9!ZgWi&!0Z=DO10gPe@3t7nqpnYZ~@xQdI$j^=?CvzEv zx=U1!qrE(bd_&RR>`VvqDe|=?6j~AkK;g|(;SxV3#JNF>$R1NiyQRYVisf-7Jja>Q zFkOk2aiw`m3~=L0_netZ?>)23?-@8rW6L>flg>=1e$`qfdwVcN&k;DTY;W zc*gc0qdPvmK^MzTn&;Iw&Htt8@#DpRUwhLZgO~L`^Vsp8|6F_HP1c{D==Er6C_3r0 zkE0U`UcYx|9o}7GmQr(0AXme+%jc z(?yA~Lx!TFgO$~0@&_x?CO%k2^ObBvgY)%&vz=mLQ-WsdCK;qjTYPf##T9uIe#Z_G zH-7G?f4%3*y zLds!}Pwmyw7iAldbRM3jVgnTeNee?8$iw3FUB_08AvEw|?c1j=Z3?9H3wA6W*HcPv yUpa47HwmM*V#?s6DWuIDYoOvsw`p2M#FlhPL~KnTw6TrpZRxy@+02HHVjBQ)rg9Yk diff --git a/dashboard-ui/fonts/roboto/hgo13k-tfspn0qi1sfdufvtxra8tvwticgirnjhmvjw.woff2 b/dashboard-ui/fonts/roboto/hgo13k-tfspn0qi1sfdufvtxra8tvwticgirnjhmvjw.woff2 deleted file mode 100644 index c34c128065cbeee902296858fc0fc97860766212..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14524 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 diff --git a/dashboard-ui/fonts/roboto/nydwbdd4giq26g5xybhsfbjtnkitppoi_ivcxxdnrsc.woff2 b/dashboard-ui/fonts/roboto/nydwbdd4giq26g5xybhsfbjtnkitppoi_ivcxxdnrsc.woff2 deleted file mode 100644 index a940e021c8cdb9e5674dc19427398f3dc6fa0497..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4836 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 K`BT6{N&x^*cwD0Z diff --git a/dashboard-ui/fonts/roboto/ooefwznlrtefzlymlvv1ubjtnkitppoi_ivcxxdnrsc.woff2 b/dashboard-ui/fonts/roboto/ooefwznlrtefzlymlvv1ubjtnkitppoi_ivcxxdnrsc.woff2 deleted file mode 100644 index 604b89354421a545b529e76acaacb9c7f5d50988..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11912 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 OA2`Fug|G}F3IG6(|K7_0 diff --git a/dashboard-ui/fonts/roboto/pru33qjshpzsmg3z6vywnrjtnkitppoi_ivcxxdnrsc.woff2 b/dashboard-ui/fonts/roboto/pru33qjshpzsmg3z6vywnrjtnkitppoi_ivcxxdnrsc.woff2 deleted file mode 100644 index 8acbd411cb60099d01efa22a6a49e89602cbab61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11852 zcmV-SF0;{hPew8T0RR9104_`b5dZ)H0B?i<04?hP0ssI200000000000000000000 z0000RjeHz|CI(;thYSc(34=Tl3<`m+bb*~h5`qK)HUcCAhhz(bbN~b(1%em{APj*x z8@ppAV_O!?pgZ7xlxU?yQOZeEj3U@L07#nc+5dk^;D!u*jq9t73Q7pk7V);p!AD#+ zJ4Fapg!7;{j^h*?^%*! zr-m^!MG98dq)kC1JPu{oZX4d13gG}@JCYnjv5)4es*(;>bqDT&P`GDLo$dpK$&^WU zUGgjBqmabzU!4owo+AHozt?jqNeSS6S)#lYP$3P-0V+8mCo5;s$=OlBysw!M(>6Q% zZ>q`KqPo%8{U_d(dVLPJ1_(X?57Bx22f)}|)BtyeOT578BMZZ}IUz5v0pou@oqn}5 zmg6jty+^bRueT4WyQ00K%FM`8q>*L*8{6?u9Or|RPqLSsENCR}o<>UESz5{xfRg+} zrV^o~rn;iLvb~Oqwz{RY%HbO zUWbo3PO?i=5)a~E>Gv>adtG`y`FB{qd6aoc#EJeHfvlr}h7m+YGIcMbv z!ViuO4+PnVhf@MT{W0E=!NPC`2EbYZcub~b267_;9vU7D!ebMN?4-be&SEG)L9ORl zhwkoGMuEW%Dms7LP_VqdU_mRIUpT0vZ5tmRpq>m%rhGC1seLi___;3m>bCmhSy}3E z@_uXKcZ~hMud?afvTC1)Rn>QPp07UCdhBJMoOh>uJ6?znw!AN|b>Wsr;(Twu^^yOx z`@&#tU}Ef*uS)Uo&gOX6U0qOT$YkO6jZH7TUc#}GG%3nwYtV>C!=9(T?NQrkdt8|1 z-jrJ3bmowV<3qN@Or8Ka_kGv?Gx!mLeosa+=%bRmeNwmWJkK8~kX+C08~-Z|xf3t4 zFNI2@`}qe11_g(NhJ{B&Ml)h!EVR*!0d_9-Fb(eE>&6 z%>zrJR%)I5zz$+0brh7ji~7BUfuO)v4M?CPyNX{UYl*Yhk^%V zIO7wr!4&GuccBz9dpKuf6;Li2l-nZ5nX*Xg1ne#jlxC+FP@y)tH517&>~ITz=QUUl1M4ARJ!pA@b)V%jzMr>| z4cWT4x~*jU4cLx-^T#*sZ#-ZBc>M?9XCHZG_Okh9&C6;)0bFmWaV-J&(>}-j&^^h6 z{B}LSE*;+VTytH8N>!@Ws70WE0ex*wIqi|1*rpKI#>?~0%+fOGyM)^ALJk4 zAt3*P9NAIhduz{&tU(%73Zb>?;-DwDDR{7Apmzm`!IR`Li;3ncSrdmtuFz%2g+CI z{wjcbIf*`odvQ|BMz9>S(}BE90w-^83U8^vz4YSx|MhsPq$8Lqye$`ZN1B&01o4eg z+{G2o#9U(E1s&oOpm=M9!_K)Eg~}rhp$^g*i}eG^`fLa#i==`F4)^dIkLq|2No0W}a%!iL zNCYMHYY3QJ)*)rQ|Az&CbhW4dl$fIBt17Z~&i2kolCcP~U`!H`oQz+PQM+~+Hh$Z9 zBq<>-J~WLc_z6Y|e9oQRYr%UN2WNyRf`Ig@ETcGdVVxN&hU@mI)#Xm zpEemnCD~brlXhxPhxS7qiZ0}6tb`OPS~@tJT*JxQVnt-&rV2{n;Hy@u*gKF6{HqR} zZxI3G!Czp9SJ=01kgFd*v>id)ATa7=P%}PNup65>{h-q6ZdrI(Yr3ubF@ScP2Y41UtlI$Xtvj?%&2Wd< zT~2aULHX<<-`rbY*Aj` zB}{h77BD$c`?B!@RVVK(%JYri7po{*v#;#PZ)E~BXqN2T&D9UDkvmjciSe%DI+Sdv zRr`d)ms>>|=_?n0C{voA5jzwU@omYl*nw{0;Tds5?x7IY3>GMSS#_@0`RH{MKuL0A%6NA-41c$O_5aApGh+XLjBvWj);&$k-)bVvD$F9DB+Zj)aF*t?}tZ}caJgp z?vnxD*Xj-hlrZmQtbF zaAuM!p-B{+P-$qnR93VYaH`6`*p0f@NsHC-~$wk|S_X31hSU z7xWQ}2OHCGwo#8d5RJ4fwW^zT(})jrN;Tt*m&()rx88vC+?S@j_yhRgMg7AqX6p<< zXV`I@zSM3DrRU=c*07^9Bfn$-4(JAB+I<1tAmot@stGLB4gX@-_kXQ%Aw+%dLi_AvXiitXb2K8ay-Gn6O)*MGmKwOYoqegkf4`|c4hj%iN z#a`P>`{yF{%5L73k8m33AbZ{XZ97JF?bi##8FtPJrdK1NaGsrxDQhBDW`JKEaUAK4 zqNHjRDH?#jvf3vnVWU3LxeFBEyo-~J*K#n6=)%0Er_fVC*Bvj5&wW919r^0nj1=p& zf^$^yh6fACsD@<^%A}g1gxza)F(u(D6o zj6NJ4a;mPpw6yH9R1^|5|F9*gl2K+nMndN-zfTLk=l}7s{!d-HJlwlGp04nJee?Fw zfB9a-D}__0x8+#-{(Yw~F*Y&8KSUhD{%$Jk7pbpS8NV`7r6k@kjMXxI$@_s%6_fN2 zR_P_2J3T(!cK#SW>!8pyzr)Ad98TA_wzM*{AMq=GN3>fEtyR0ux^Pq4Iyf2%6<};g zMa_fdHTIp*EK|5JE;_&&M%sgUVyuHoO zTPdb7fW#jxfB8AL@%H%)v%0CeEW3LURi$#UwlK$0{Nl074cH3r^b=X@#>d6uI5H*QV>~4%4`iEo#thOPQ`7Oqi}>R{Vw%1$U&dM4jAzbe zsh}F#4)g-Gug>JCqZ;kto!N3M<8j9heLk@~|Lr7aIr^*e((2a9Bj+Bvw|JcRp?bW< z`g%U6VKY-cz@IBcHGC$v;&xBY^@+A#SMReZYHVB1L?X?i*srsNXXQcRyO4w#W_;=V zjrZ@isgjtG-t2V$xo}ENP$$pw>+A5?)Tt!q_4mCa?Te*8<|d{;z;4c*e@X57c_~|H zA#b4Q(&LYjWgmF=G0%769uKYFr?1T4d~#|sL-DotL)@fV2rgAk>#@pP?nt>rfeT19 zZ)1c^zH~mHOhmMR36e-6mx`p4YgUuY?GL3eG;_Bp>7&c-@;N?7;5 zn}~?-^Pt!K1rnw_7@srt5AR{E2$fmg`Y{`};7f2YG)=7Nx!QuTRAz+NJiGH&;UGrobh%FbK0&Jr z47q)aQm`5+1g}BApzgK_n3!hFKtW7yT1b1AeAN3YepndhQZa;>99^k1WE_GrlV)+hyEsUWw00sfsz}rNlf8jjg&`c7J9!EZ<&g z>+h`?cL@RAqwn4C9Sk>F)$<(-jB;aRuEoqjL0oor5~{bJBXS{T4YHClu7uSk$tHe? zAuzb#5zs@Yddc#Q}^m;r#`Y#3{3f18;vZlUpPTc@U$_tP0UiR7yd4|tZi^~!=y5(e-q$C$*<+^T2NZs2H-+PCem4I(^(H^wnrbfO ze(!=>As36r=}gF2ayZq?w}zhaXkgH>*mAt)t*?r+{aa}zpVIo_^gCiTYizk(%64?} zh!t5>r+{tUHdpq?bAN|xVDj}rwdLl`o(|Oa()WHFkll8xwV>)*-vY}~=hVdF#N?*S ze$ku-ANy}6ApUZG`aX9;BPU;dLp}2UDKlhx@2l*Le8MyPMLsiX|&!|9P686X+^$Q|m##?{hBb zb2%gU++E{Sf)2tKCtd4QBmBW(n!&&qK@EN*NvArknMt*dBo}%WvM|B=Xe^mtnKn!t z;?Skvmq&a>496S9t1i~?HS=36A@}(k77@jd*je*>RvAWfkKw(7CqH!E(dOj zcja|(>oaj3N5!o5PeZ&_>oFEKr3j4CQP*EUAahcdwVgdKMLTJ1ym=_rm)0xnc8(AA77s3`p@MyW)RNq%jH03$w zDXK#bNC+EM-@pkN*efwk7#(Im`E940A?w&&Ij=qvQo5nHCpzWiQNDT?yVTE$GG^ zMVM%q&Q@b-ZcTqcweaxA_$8NxG$h{3<~?7@vKf2CnGCLMSlKyo#I0$HL?)wp$idq zp+R=GVe^rofad=H4l5gV0|Rw6Bcg_uiGhlmp^=I!-PWA0=6FFHf7F4fU}HyewzFWC z(DaV04lH_wMxM7S2+~vetV?2X3uHK{8cE(7JE2T8&^;wrdQea*$7(5Oeozk5uY7-+ zWKTSM@%$2(*`tH*k#1vJZ@ToeZO%UXbnE8YS}!xbwD@vD zF;c<0NptaKZS|;fKo_l3*QY0;5P$LDGce(Y)Ya)fYsHxXVo!Fz1E+8nt*KMeT2tK9 zr3mHa3rkI3E|rCQ?mr$`$we9t4}Dx+LVq`BL@KY!-0mpuMiXBQ-z$sn*>76h4_r7gMa=-`x%wbU`VMlUU*4rNb#UdkrD3$P<5$};1p3hR;%V>n}HBTd9zIOIZ;~C0K=ls*^*SDUx zscNC4l!jPkC8s*dUGi=~WSerulg?+1w;y|4Ggi@;`&n*er#wWD>zSA;#*(o;V|aQE zSNE66`5kkvJXR{)y&)Suorh&!LwM6Gomz(yU>#nX2frwoTXQ z9@K-VJ;gCizSE-A`sKe6dcxASJREv*sZvA8HXk=tdYQ5Qhh9v{8{oq*(EWT1azEB$ zmZW)T@A>8#Zja7~I>b3F_$`z!&=-Dx`@r&XcHy5_TM%0s8uD*+_eg8S)#087bXxq# zz&QpJ1<32 zwr2Mc8`d6vlbkZ?;Z4zVV=#1B5TD5svr%s###k(Nds2tGJsv7RV!`4vJNayO(cEZK zB5urPW6_P2%ox};#W4nR=%G2EqNqeTl7fGX#MpDeDtY7~f$`84kFu1-kP%zY4)-Jz z+jn~!R|Gh$YvGSD#!ChD5aEb!F1M6LmsvIc*}aqNqR&M|G+(sDL|3Lx`7K)v*!UCX zCYF2~`v$o0N>pONVPQfk%Pc)_o6wzkx5621!B7;8NyQ>~C|pTGx=0&<<)he)W&}ls zDVb#2BPWOq2=(Fm;?wFRT^-=VQdL2AH)Z5Vy-g7~(gWPpAA zfJ7@+%JGHUKH-E27KZEmMcLrfklmY->`f8ZXgrmW1vbR{J%NU1<@cpUv2k8)Lzq|(5Bd`0OeF)S!1Ahj{WsIP&9kj`UfZ)li%fgcKb+tsA5JIj`fY4)g)}QH*I-+#5tYGUh<(rl=C0EX7Sy=6_p%|Y3t0O8m{rYAA zKGD2}_NDj+@@*!}CD0BnBT^|}n78lR5vQDWm|~|>ds8Kap}yxUd!eTnnvJ6J7WhQvVPw&RgeifPWLJB2QU0nR>afm0ua zfm-QGCZ2YFrElixeKLJB4Sao2-{?mmVPco&TzyGL2+SArZYyYAXkD1;Abp-ZvObm4 zVX9ti!xT_Hb-zC&XY9!>MQ+)|gyjrvAbkI;AGi*T-&4(5(8ppwDhOKlRDdsWFCt+r z{{dR~RB;j1_P$5X*foPWQ~9YMuwY6|Ef*LVajwrNtgf~{Bal{PlbE9=QROCkCW1`G zgeQ2f<}7^&wEb#;p}|g9!AL#2_*T?jcZBa0QfHbC!EG7SEl0#}N)>5@5YdkEh&H2G zl*{nI?Vu$Oz!{*Ok-GTi6H4&eX=n>-hA+xxqtwl2^XHTrl}h!3eHEZ9feG@Z8U^5Q z3$gcs>h19z1Y3a8khH+7B-JPv#5$C#zsN?^93BDdXKJJ%i4lT%pg2|+}Xbj0?`^^?gF2^XwuS9-e+!YQXJ!JEPI%X1!j*nYwAMA zmZfwC+llLhZ!X44CvKr~S0ZD@P?s4rVtyNtJHlqKS?D4t)k;U$B~2iWP)>9GKsg&$ zdXRf_O(TqBB!IF^w|cGvcfdN!7R!lr`6L5HOb~@ds3~lS;fO0iAx<6$$BgjGRRZ?H zmYcSOQfnkDL?%wIM>h%rl5|3@;Q2F{bSkBdm#5CnL0#FYA_t z_O~FxDroz1VTvJ`!>|$70kC~`ZuMrjww?;i8Uw47tW0@jDHhQYQN0R5^J|;G&ZC_` zpPsRJI_4KbVV^Eb!^2}yulHi9&K5ig>89Ra+~VF*RmQlP!f+ zePZ1(+6u-1NZfQmlAEzZVzJ7GW8sZbx--ZY9{_rq^rdL>I?xbxVdOS5I|KQ=ayimT zu%|r|&i6M%pX!rJIv*884?xsLnr7IRCNKphbC^Y77@i0G>J!u9Oqe(W20_Gzd7xTX z+4f6_xtUY3g8zJR4<|$Ax9o*U(Bojyb#xtF_lqmZ%7C22))qFqvj7&x7O@e}C-Y=$ zB*o@?OioBp=;3stK&yn<3^Tu6Gll35vi!9Uf*qR^D4)cz1xzPk!;S|DgFN2@*l)6S zRO7b(d}R?ZMJPQ4)zNVB0y`6>su-vX+D5qdV+QTYF~^CbuSTdaXxV?3-?R=ewrWxI zumapBo$zpgjw(1}@p*0yqxi=IoLAYj%zRz~tbMgXlYNjNcMyyC8kI~2^3#*r85Q!9 zSF$^TezCedU(i(qNf+%_e0~O>CYSUM2rvfsO)k z%m@tN3WEDx)rn!a)|jP|_YQTCQ@{IGyn@CtDpSw^+gIU*V<7+)Ipp_KDxePQzz7E* z>D7y}j_&bf3D%Nu#;>>IuO!;Pp81PazfeW{S1ib6JM(fguYhwqIzJHDfi7U(^8^@y zXi5Pbe^zltpvv_|h0ijK3U5ttB8ZeC&_$5#n|%T{qL-oE8hGsji)P!H$dIhCw>2j> zSQus}u=TYCsSDaNw0>OxmQtQUcHw-vWtg!L0>;qM8t6Y}$~$P?Z8B&pdT}`@v8N(h zB##3O1fl5|XCBtT(pTODff9m~Z?et;x>!F`#|;tXlyTo7tZ?awSz8|i*+{Oj=j z^&p|m2KB^w&d|^%z|$0Y8chHU*lb2!hC3KisEiGKCg63%HQj_JJw_r$fNd{OZWGcN zufhu`4^t?%S9p89QBYh`_YVj@HplS(e0dC&oF%8p0H6ey`1-p4K8<#56Vso^Qg{X@ zA{1Al$Mg8!48-eu)K`2-Kgne8kL6Jo; z&yV($Q(?4>YA!pK@-0jw(=l*7-$2U13Ne@X^z$|SH1wgL$`&n!v+xjJp6`x1utF!S z+aoz;P?Bv=R-;KYbqPjA933jh#%%Tz=&q?i>Uy2jJj&vU-m6CDQgQGUx8zu@0W~UwIXK z0tFo9y;xDs0;XI!C__}Kh>B$^i_6XkW!d;!bON`!%smOA=63iT2X-iJa)D65z+sJ2 z6du95%8ANqS|`wto=7Ds{(xh-HEzZBLASa_5JjsCB;n{~NH8x31<Z+kT<&I%mNUX&Fa~Da7W9xIy4_c^G&gf6Bm*Oi z6}J;b)h&wMrU%S-*IDW)$pkrXp_}II-lgmmSvT?4ZhW*(aJ))JshV|XOtrIvJFs)@ zy2L#Va%Eun!q^EuT!p3Fy;G(^Dy}UuL}@i9RnWfKtjPVVOnCJfZNXQ`Hkq%s1nh!o zqV}$fEo28!FQ*|7RR$5nYSTns`y0CT;&un3S+71_jfXtOci=7PwxnlSxG6J=3^lA) zjgmx%mRCo_xMTQ+?--Ph->#J;zpn-ibdnJ8!LxVAv&*L3B`dFfPVB5-wqlF8AHd+& z$Ka@W)FrLejJPe2!;!H9-uew)WHt~Zoo&wr5~Z43Wp|95O2BqCKJQv||Ig!~lAc@D zYpowYo?lV%yk4_`Yv8(vjIE!;{GKB?HJhgWg4H*Km}QRFtD1TcQ1&Q1*|P^gOg!yGDJml#Du1y-VX*NLc$a)L zYpk*GtqWcPnZqA`$%wun{=0&6uRMOMYcTOBl~Z^5!L<*T>A8^f@c@0=iY>8q{p_r| zU%fboU%fRfkMO@V`j9`EoV(LPuf^ouVs_w&wcsS3%+;XTbw2=;AiK6=AGm@Jcjfb+?*VQgWBc0isF2aXRGme2QEBvIe6r)!J{Da7>Z)=T??yMHb<6| zhmx#I)M!@!Jc23dhnmpkm+1iczdBs>ro>y(`Cq$A%su>*$T`Z_!~fD1wq1;f7uBlG zQEC+@1r>EGtd6t_WOz0V$(do3AsRtfNh#ZcWN7((5!oLQfWx~S3KX{Xm}btgISaoX z!A!+agIW1ik@vjUNkupmp#v+%?xP~kRw(Z!vapH({g5vT-YGV;g42P0+@jtCtz1+W{b@v{r_c6y5T_0 z;rs5@$S!CH_PV;1e%esW9YE5n(PI?$HbX_ydZRJzoHn478=u&+cfZU0C3Ic`?Jnmw zL$e#IpNdYm`vlt@ml_GhlF(XnU%pL(M++C&q{z3>X=z`TnOBKg%H!4m4%4cK4Zs;p}1*Tk3V_1#_~wZ$RzaF-X2D9^^qsiA7Cv8?Jnpm^@1q%cJl zz_qmr_phvYTY^=ABah`X;{mOR*N`JUvfbM8Ffe1O4q+8Nfpq;yqlr-L2K>7e>HH-& z)5@xsgwhDngI`*Qh#TU3%7{5<^=%5xNdQcohX899M>bRb6k^hy`$Q+ zoG`d9N&HA8Kg&r9gY$>i7g-BZ4Vaf;r&@u)VJwM|Te`e22MXYTeEdjQ*Z=He0R=c5 zo7p|#2pR}er1eJdR$(Z=6>*BqsqAJjN>*_UwAuOAvF^hExe|grz{qJlD}MiXUWrtN zatwFfZQYZqIPGGc@c?(7HnNcW4 zD?~UNl|X*yEs9_fqZ08HX2qNl6E+;kC@r4;&*go~|MJM_i~WRFK%k%xkFY49`Z!U| zt1-w)P~8lxf&C&F#2}K1y4a~>kP~Tkx>vhMw3ns!E}G(NLl`wv!k4!XxyQG1|8%=)AA(IppWQAI*_Q-D)u?T?Eut?( G3>5`@hY1G& diff --git a/dashboard-ui/fonts/roboto/robotobold.woff b/dashboard-ui/fonts/roboto/robotobold.woff deleted file mode 100644 index 859b60caf4a3560f4f4b3dcecc83271718f1b798..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19812 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 diff --git a/dashboard-ui/fonts/roboto/robotomedium.woff b/dashboard-ui/fonts/roboto/robotomedium.woff deleted file mode 100644 index 221c51339d1e6368144fce06bef683df285f572d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20636 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 YnFCV3!u2ihNEOP83qC2J_s~)LAANjHYXATM diff --git a/dashboard-ui/fonts/roboto/robotoregular.woff b/dashboard-ui/fonts/roboto/robotoregular.woff deleted file mode 100644 index ebea05151aea894d2fed536e690cced279def211..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21132 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 X`OEEjy=xh0NJ?#`0jzOJ!T|pQn&r#x diff --git a/dashboard-ui/fonts/roboto/rxzjdnzeo3r5zsexge8uuvtxra8tvwticgirnjhmvjw.woff2 b/dashboard-ui/fonts/roboto/rxzjdnzeo3r5zsexge8uuvtxra8tvwticgirnjhmvjw.woff2 deleted file mode 100644 index 5f96609d81a812b8f2557a4e9bba6db29205ae0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14596 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 diff --git a/dashboard-ui/fonts/roboto/style.css b/dashboard-ui/fonts/roboto/style.css deleted file mode 100644 index aface4fd2e..0000000000 --- a/dashboard-ui/fonts/roboto/style.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Roboto;font-style:normal;font-weight:100;src:local('Roboto Thin'),local('Roboto-Thin'),url(ty9dfvlaziwdqq2dhoyjphtbgvql8ndjpwnre27mub0.woff2) format('woff2'),url(robotothin.woff) format('woff');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:Roboto;font-style:normal;font-weight:100;src:local('Roboto Thin'),local('Roboto-Thin'),url(frnv30oaydlfrth2vnzzdhtbgvql8ndjpwnre27mub0.woff2) format('woff2'),url(robotothin.woff) format('woff');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:100;src:local('Roboto Thin'),local('Roboto-Thin'),url(gwvjdern2amz39wrsoz7fxtbgvql8ndjpwnre27mub0.woff2) format('woff2'),url(robotothin.woff) format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-weight:100;src:local('Roboto Thin'),local('Roboto-Thin'),url(azmswpodyevhtrvuabjwvbtbgvql8ndjpwnre27mub0.woff2) format('woff2'),url(robotothin.woff) format('woff');unicode-range:U+0370-03FF}@font-face{font-family:Roboto;font-style:normal;font-weight:100;src:local('Roboto Thin'),local('Roboto-Thin'),url(vvxugkzxbhtx_s_vctlpghtbgvql8ndjpwnre27mub0.woff2) format('woff2'),url(robotothin.woff) format('woff');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-weight:100;src:local('Roboto Thin'),local('Roboto-Thin'),url(e7mevayvogmqfwwl61pkhbtbgvql8ndjpwnre27mub0.woff2) format('woff2'),url(robotothin.woff) format('woff');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:100;src:local('Roboto Thin'),local('Roboto-Thin'),url(2tsd397wlxj96qwhynikxpeszw2xoq-xsnqo47m55da.woff2) format('woff2'),url(robotothin.woff) format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:Roboto;font-style:normal;font-weight:300;src:local('Roboto Light'),local('Roboto-Light'),url(0ec6fl06luxeywpbsjvxcbjtnkitppoi_ivcxxdnrsc.woff2) format('woff2'),url(robotolight.woff) format('woff');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:Roboto;font-style:normal;font-weight:300;src:local('Roboto Light'),local('Roboto-Light'),url(fl4y0qdoxyythegmxx8kcrjtnkitppoi_ivcxxdnrsc.woff2) format('woff2'),url(robotolight.woff) format('woff');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:300;src:local('Roboto Light'),local('Roboto-Light'),url(-l14jk06m6puhb-5mxqqnrjtnkitppoi_ivcxxdnrsc.woff2) format('woff2'),url(robotolight.woff) format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-weight:300;src:local('Roboto Light'),local('Roboto-Light'),url(i3s1wsgsg9ycurv6puktorjtnkitppoi_ivcxxdnrsc.woff2) format('woff2'),url(robotolight.woff) format('woff');unicode-range:U+0370-03FF}@font-face{font-family:Roboto;font-style:normal;font-weight:300;src:local('Roboto Light'),local('Roboto-Light'),url(nydwbdd4giq26g5xybhsfbjtnkitppoi_ivcxxdnrsc.woff2) format('woff2'),url(robotolight.woff) format('woff');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-weight:300;src:local('Roboto Light'),local('Roboto-Light'),url(pru33qjshpzsmg3z6vywnrjtnkitppoi_ivcxxdnrsc.woff2) format('woff2'),url(robotolight.woff) format('woff');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:300;src:local('Roboto Light'),local('Roboto-Light'),url(hgo13k-tfspn0qi1sfdufvtxra8tvwticgirnjhmvjw.woff2) format('woff2'),url(robotolight.woff) format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local('Roboto'),local('Roboto-Regular'),url(https://fonts.gstatic.com/s/roboto/v15/ek4gzZ-GeXAPcSbHtCeQI_esZW2xOQ-xsNqO47m55DA.woff2) format('woff2'),url(robotoregular.woff) format('woff');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local('Roboto'),local('Roboto-Regular'),url(https://fonts.gstatic.com/s/roboto/v15/mErvLBYg_cXG3rLvUsKT_fesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'),url(robotoregular.woff) format('woff');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local('Roboto'),local('Roboto-Regular'),url(https://fonts.gstatic.com/s/roboto/v15/-2n2p-_Y08sg57CNWQfKNvesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'),url(robotoregular.woff) format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local('Roboto'),local('Roboto-Regular'),url(https://fonts.gstatic.com/s/roboto/v15/u0TOpm082MNkS5K0Q4rhqvesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'),url(robotoregular.woff) format('woff');unicode-range:U+0370-03FF}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local('Roboto'),local('Roboto-Regular'),url(https://fonts.gstatic.com/s/roboto/v15/NdF9MtnOpLzo-noMoG0miPesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'),url(robotoregular.woff) format('woff');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local('Roboto'),local('Roboto-Regular'),url(fcx7wwv8ozt71a3e1xoajveszw2xoq-xsnqo47m55da.woff2) format('woff2'),url(robotoregular.woff) format('woff');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local('Roboto'),local('Roboto-Regular'),url(cwb0xya8bzo0ksthx0utua.woff2) format('woff2'),url(robotoregular.woff) format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(https://fonts.gstatic.com/s/roboto/v15/ZLqKeelYbATG60EpZBSDyxJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'),url(robotomedium.woff) format('woff');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(https://fonts.gstatic.com/s/roboto/v15/oHi30kwQWvpCWqAhzHcCSBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'),url(robotomedium.woff) format('woff');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(https://fonts.gstatic.com/s/roboto/v15/rGvHdJnr2l75qb0YND9NyBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'),url(robotomedium.woff) format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(https://fonts.gstatic.com/s/roboto/v15/mx9Uck6uB63VIKFYnEMXrRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'),url(robotomedium.woff) format('woff');unicode-range:U+0370-03FF}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(https://fonts.gstatic.com/s/roboto/v15/mbmhprMH69Zi6eEPBYVFhRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'),url(robotomedium.woff) format('woff');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(ooefwznlrtefzlymlvv1ubjtnkitppoi_ivcxxdnrsc.woff2) format('woff2'),url(robotomedium.woff) format('woff');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:local('Roboto Medium'),local('Roboto-Medium'),url(rxzjdnzeo3r5zsexge8uuvtxra8tvwticgirnjhmvjw.woff2) format('woff2'),url(robotomedium.woff) format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v15/77FXFjRbGzN4aCrSFhlh3hJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'),url(robotobold.woff) format('woff');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v15/isZ-wbCXNKAbnjo6_TwHThJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'),url(robotobold.woff) format('woff');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v15/UX6i4JxQDm3fVTc1CPuwqhJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'),url(robotobold.woff) format('woff');unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v15/jSN2CGVDbcVyCnfJfjSdfBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'),url(robotobold.woff) format('woff');unicode-range:U+0370-03FF}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v15/PwZc-YbIL414wB9rB1IAPRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2'),url(robotobold.woff) format('woff');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(97uahxiqzroncbacei3awxjtnkitppoi_ivcxxdnrsc.woff2) format('woff2'),url(robotobold.woff) format('woff');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(d-6iyplofoccackzxwxsoftxra8tvwticgirnjhmvjw.woff2) format('woff2'),url(robotobold.woff) format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000} \ No newline at end of file diff --git a/dashboard-ui/fonts/roboto/ty9dfvlaziwdqq2dhoyjphtbgvql8ndjpwnre27mub0.woff2 b/dashboard-ui/fonts/roboto/ty9dfvlaziwdqq2dhoyjphtbgvql8ndjpwnre27mub0.woff2 deleted file mode 100644 index fdb2f6f1edbba0fd807fbd8fe5b27ac0c531d668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15000 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 diff --git a/dashboard-ui/fonts/roboto/vvxugkzxbhtx_s_vctlpghtbgvql8ndjpwnre27mub0.woff2 b/dashboard-ui/fonts/roboto/vvxugkzxbhtx_s_vctlpghtbgvql8ndjpwnre27mub0.woff2 deleted file mode 100644 index 0ab2fdacdb89de2ea83915176c2b1fd5e264c2da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4676 zcmV-K61(kpPew8T0RR9101`w15dZ)H04?MI01@W^0ssI200000000000000000000 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 G8!7`3`RWP) diff --git a/dashboard-ui/scripts/connectlogin.js b/dashboard-ui/scripts/connectlogin.js index 86e7762c79..a8e22a4377 100644 --- a/dashboard-ui/scripts/connectlogin.js +++ b/dashboard-ui/scripts/connectlogin.js @@ -1 +1 @@ -define(["appSettings","loading","emby-linkbutton"],function(appSettings,loading){"use strict";function login(page,username,password){loading.show(),appSettings.enableAutoLogin(!0),ConnectionManager.loginToConnect(username,password).then(function(){loading.hide(),Dashboard.navigate("selectserver.html")},function(){loading.hide(),Dashboard.alert({message:Globalize.translate("MessageInvalidUser"),title:Globalize.translate("HeaderLoginFailure")}),page.querySelector("#txtManualPassword").value=""})}function handleConnectionResult(page,result){switch(loading.hide(),result.State){case MediaBrowser.ConnectionState.SignedIn:var apiClient=result.ApiClient;Dashboard.onServerChanged(apiClient.getCurrentUserId(),apiClient.accessToken(),apiClient),Dashboard.navigate("home.html");break;case MediaBrowser.ConnectionState.ServerSignIn:Dashboard.navigate("login.html?serverid="+result.Servers[0].Id,!1,"none");break;case MediaBrowser.ConnectionState.ServerSelection:Dashboard.navigate("selectserver.html",!1,"none");break;case MediaBrowser.ConnectionState.ConnectSignIn:loadMode(page,"welcome");break;case MediaBrowser.ConnectionState.ServerUpdateNeeded:Dashboard.alert({message:Globalize.translate("ServerUpdateNeeded",'https://emby.media')});break;case MediaBrowser.ConnectionState.Unavailable:Dashboard.alert({message:Globalize.translate("MessageUnableToConnectToServer"),title:Globalize.translate("HeaderConnectionFailure")})}}function loadAppConnection(page){loading.show(),ConnectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){handleConnectionResult(page,result)})}function loadPage(page,params){var mode=params.mode||"auto";if("auto"==mode){if(AppInfo.isNativeApp)return void loadAppConnection(page);mode="connect"}loadMode(page,mode)}function loadMode(page,mode){"welcome"==mode?(page.querySelector(".connectLoginForm").classList.add("hide"),page.querySelector(".welcomeContainer").classList.remove("hide"),page.querySelector(".manualServerForm").classList.add("hide"),page.querySelector(".signupForm").classList.add("hide")):"connect"==mode?(page.querySelector(".connectLoginForm").classList.remove("hide"),page.querySelector(".welcomeContainer").classList.add("hide"),page.querySelector(".manualServerForm").classList.add("hide"),page.querySelector(".signupForm").classList.add("hide")):"manualserver"==mode?(page.querySelector(".manualServerForm").classList.remove("hide"),page.querySelector(".connectLoginForm").classList.add("hide"),page.querySelector(".welcomeContainer").classList.add("hide"),page.querySelector(".signupForm").classList.add("hide")):"signup"==mode&&(page.querySelector(".manualServerForm").classList.add("hide"),page.querySelector(".connectLoginForm").classList.add("hide"),page.querySelector(".welcomeContainer").classList.add("hide"),page.querySelector(".signupForm").classList.remove("hide"),initSignup(page))}function skip(){Dashboard.navigate("selectserver.html")}function requireCaptcha(){return!AppInfo.isNativeApp&&0==window.location.href.toLowerCase().indexOf("https")}function supportInAppSignup(){return AppInfo.isNativeApp||0==window.location.href.toLowerCase().indexOf("https")}function initSignup(page){supportInAppSignup()&&requireCaptcha()&&require(["https://www.google.com/recaptcha/api.js?render=explicit"],function(){setTimeout(function(){var recaptchaContainer=page.querySelector(".recaptchaContainer");greWidgetId=grecaptcha.render(recaptchaContainer,{sitekey:"6Le2LAgTAAAAAK06Wvttt_yUnbISTy6q3Azqp9po",theme:"dark"})},100)})}function submitManualServer(page){var host=page.querySelector("#txtServerHost").value,port=page.querySelector("#txtServerPort").value;port&&(host+=":"+port),loading.show(),ConnectionManager.connectToAddress(host,{enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){handleConnectionResult(page,result)},function(){handleConnectionResult(page,{State:MediaBrowser.ConnectionState.Unavailable})})}function submit(page){var user=page.querySelector("#txtManualName").value,password=page.querySelector("#txtManualPassword").value;login(page,user,password)}var greWidgetId;return function(view,params){function onSubmit(e){return submit(view),e.preventDefault(),!1}function onManualServerSubmit(e){return submitManualServer(view),e.preventDefault(),!1}function onSignupFormSubmit(e){if(!supportInAppSignup())return e.preventDefault(),!1;var page=view,greResponse=greWidgetId?grecaptcha.getResponse(greWidgetId):null;return ConnectionManager.signupForConnect({email:page.querySelector("#txtSignupEmail",page).value,username:page.querySelector("#txtSignupUsername",page).value,password:page.querySelector("#txtSignupPassword",page).value,passwordConfirm:page.querySelector("#txtSignupPasswordConfirm",page).value,grecaptcha:greResponse}).then(function(result){var msg=result.Validated?Globalize.translate("MessageThankYouForConnectSignUpNoValidation"):Globalize.translate("MessageThankYouForConnectSignUp");Dashboard.alert({message:msg,callback:function(){Dashboard.navigate("connectlogin.html?mode=welcome")}})},function(result){"passwordmatch"==result.errorCode?Dashboard.alert({message:Globalize.translate("ErrorMessagePasswordNotMatchConfirm")}):"USERNAME_IN_USE"==result.errorCode?Dashboard.alert({message:Globalize.translate("ErrorMessageUsernameInUse")}):"EMAIL_IN_USE"==result.errorCode?Dashboard.alert({message:Globalize.translate("ErrorMessageEmailInUse")}):Dashboard.alert({message:Globalize.translate("DefaultErrorMessage")})}),e.preventDefault(),!1}function goBack(){require(["embyRouter"],function(embyRouter){embyRouter.back()})}view.querySelector(".btnSkipConnect").addEventListener("click",skip),view.querySelector(".connectLoginForm").addEventListener("submit",onSubmit),view.querySelector(".manualServerForm").addEventListener("submit",onManualServerSubmit),view.querySelector(".signupForm").addEventListener("submit",onSignupFormSubmit),view.querySelector(".btnSignupForConnect").addEventListener("click",function(e){if(supportInAppSignup())return e.preventDefault(),e.stopPropagation(),Dashboard.navigate("connectlogin.html?mode=signup"),!1}),view.querySelector(".btnCancelSignup").addEventListener("click",goBack),view.querySelector(".btnCancelManualServer").addEventListener("click",goBack),view.querySelector(".btnWelcomeNext").addEventListener("click",function(){Dashboard.navigate("connectlogin.html?mode=connect")});var terms=view.querySelector(".terms");terms.innerHTML=Globalize.translate("LoginDisclaimer")+"",AppInfo.isNativeApp?(terms.classList.add("hide"),view.querySelector(".tvAppInfo").classList.add("hide")):(terms.classList.remove("hide"),view.querySelector(".tvAppInfo").classList.remove("hide")),view.addEventListener("viewbeforeshow",function(){var page=this;if(page.querySelector("#txtSignupEmail").value="",page.querySelector("#txtSignupUsername").value="",page.querySelector("#txtSignupPassword").value="",page.querySelector("#txtSignupPasswordConfirm").value="",browserInfo.safari&&AppInfo.isNativeApp)page.querySelector(".embyIntroDownloadMessage").innerHTML=Globalize.translate("EmbyIntroDownloadMessageWithoutLink");else{var link='http://emby.media';page.querySelector(".embyIntroDownloadMessage").innerHTML=Globalize.translate("EmbyIntroDownloadMessage",link)}}),view.addEventListener("viewshow",function(){loadPage(view,params)})}}); \ No newline at end of file +define(["appSettings","loading","emby-linkbutton"],function(appSettings,loading){"use strict";function login(page,username,password){loading.show(),appSettings.enableAutoLogin(!0),ConnectionManager.loginToConnect(username,password).then(function(){loading.hide(),Dashboard.navigate("selectserver.html")},function(){loading.hide(),Dashboard.alert({message:Globalize.translate("MessageInvalidUser"),title:Globalize.translate("HeaderLoginFailure")}),page.querySelector("#txtManualPassword").value=""})}function handleConnectionResult(page,result){switch(loading.hide(),result.State){case MediaBrowser.ConnectionState.SignedIn:var apiClient=result.ApiClient;Dashboard.onServerChanged(apiClient.getCurrentUserId(),apiClient.accessToken(),apiClient),Dashboard.navigate("home.html");break;case MediaBrowser.ConnectionState.ServerSignIn:Dashboard.navigate("login.html?serverid="+result.Servers[0].Id,!1,"none");break;case MediaBrowser.ConnectionState.ServerSelection:Dashboard.navigate("selectserver.html",!1,"none");break;case MediaBrowser.ConnectionState.ConnectSignIn:loadMode(page,"welcome");break;case MediaBrowser.ConnectionState.ServerUpdateNeeded:Dashboard.alert({message:Globalize.translate("ServerUpdateNeeded",'https://emby.media')});break;case MediaBrowser.ConnectionState.Unavailable:Dashboard.alert({message:Globalize.translate("MessageUnableToConnectToServer"),title:Globalize.translate("HeaderConnectionFailure")})}}function loadAppConnection(page){loading.show(),ConnectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){handleConnectionResult(page,result)})}function loadPage(page,params){var mode=params.mode||"auto";if("auto"==mode){if(AppInfo.isNativeApp)return void loadAppConnection(page);mode="connect"}loadMode(page,mode)}function loadMode(page,mode){"welcome"==mode?(page.querySelector(".connectLoginForm").classList.add("hide"),page.querySelector(".welcomeContainer").classList.remove("hide"),page.querySelector(".manualServerForm").classList.add("hide"),page.querySelector(".signupForm").classList.add("hide")):"connect"==mode?(page.querySelector(".connectLoginForm").classList.remove("hide"),page.querySelector(".welcomeContainer").classList.add("hide"),page.querySelector(".manualServerForm").classList.add("hide"),page.querySelector(".signupForm").classList.add("hide")):"manualserver"==mode?(page.querySelector(".manualServerForm").classList.remove("hide"),page.querySelector(".connectLoginForm").classList.add("hide"),page.querySelector(".welcomeContainer").classList.add("hide"),page.querySelector(".signupForm").classList.add("hide")):"signup"==mode&&(page.querySelector(".manualServerForm").classList.add("hide"),page.querySelector(".connectLoginForm").classList.add("hide"),page.querySelector(".welcomeContainer").classList.add("hide"),page.querySelector(".signupForm").classList.remove("hide"),initSignup(page))}function skip(){Dashboard.navigate("selectserver.html")}function requireCaptcha(){return!AppInfo.isNativeApp&&0==window.location.href.toLowerCase().indexOf("https")}function supportInAppSignup(){return AppInfo.isNativeApp||0==window.location.href.toLowerCase().indexOf("https")}function initSignup(page){supportInAppSignup()&&requireCaptcha()&&require(["https://www.google.com/recaptcha/api.js?render=explicit"],function(){setTimeout(function(){var recaptchaContainer=page.querySelector(".recaptchaContainer");greWidgetId=grecaptcha.render(recaptchaContainer,{sitekey:"6Le2LAgTAAAAAK06Wvttt_yUnbISTy6q3Azqp9po",theme:"dark"})},100)})}function submitManualServer(page){var host=page.querySelector("#txtServerHost").value,port=page.querySelector("#txtServerPort").value;port&&(host+=":"+port),loading.show(),ConnectionManager.connectToAddress(host,{enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){handleConnectionResult(page,result)},function(){handleConnectionResult(page,{State:MediaBrowser.ConnectionState.Unavailable})})}function submit(page){var user=page.querySelector("#txtManualName").value,password=page.querySelector("#txtManualPassword").value;login(page,user,password)}var greWidgetId;return function(view,params){function onSubmit(e){return submit(view),e.preventDefault(),!1}function onManualServerSubmit(e){return submitManualServer(view),e.preventDefault(),!1}function onSignupFormSubmit(e){if(!supportInAppSignup())return e.preventDefault(),!1;var page=view,greResponse=greWidgetId?grecaptcha.getResponse(greWidgetId):null;return ConnectionManager.signupForConnect({email:page.querySelector("#txtSignupEmail",page).value,username:page.querySelector("#txtSignupUsername",page).value,password:page.querySelector("#txtSignupPassword",page).value,passwordConfirm:page.querySelector("#txtSignupPasswordConfirm",page).value,grecaptcha:greResponse}).then(function(result){var msg=result.Validated?Globalize.translate("MessageThankYouForConnectSignUpNoValidation"):Globalize.translate("MessageThankYouForConnectSignUp");Dashboard.alert({message:msg,callback:function(){Dashboard.navigate("connectlogin.html?mode=welcome")}})},function(result){"passwordmatch"==result.errorCode?Dashboard.alert({message:Globalize.translate("ErrorMessagePasswordNotMatchConfirm")}):"USERNAME_IN_USE"==result.errorCode?Dashboard.alert({message:Globalize.translate("ErrorMessageUsernameInUse")}):"EMAIL_IN_USE"==result.errorCode?Dashboard.alert({message:Globalize.translate("ErrorMessageEmailInUse")}):Dashboard.alert({message:Globalize.translate("DefaultErrorMessage")})}),e.preventDefault(),!1}function goBack(){require(["appRouter"],function(appRouter){appRouter.back()})}view.querySelector(".btnSkipConnect").addEventListener("click",skip),view.querySelector(".connectLoginForm").addEventListener("submit",onSubmit),view.querySelector(".manualServerForm").addEventListener("submit",onManualServerSubmit),view.querySelector(".signupForm").addEventListener("submit",onSignupFormSubmit),view.querySelector(".btnSignupForConnect").addEventListener("click",function(e){if(supportInAppSignup())return e.preventDefault(),e.stopPropagation(),Dashboard.navigate("connectlogin.html?mode=signup"),!1}),view.querySelector(".btnCancelSignup").addEventListener("click",goBack),view.querySelector(".btnCancelManualServer").addEventListener("click",goBack),view.querySelector(".btnWelcomeNext").addEventListener("click",function(){Dashboard.navigate("connectlogin.html?mode=connect")});var terms=view.querySelector(".terms");terms.innerHTML=Globalize.translate("LoginDisclaimer")+"",AppInfo.isNativeApp?(terms.classList.add("hide"),view.querySelector(".tvAppInfo").classList.add("hide")):(terms.classList.remove("hide"),view.querySelector(".tvAppInfo").classList.remove("hide")),view.addEventListener("viewbeforeshow",function(){var page=this;if(page.querySelector("#txtSignupEmail").value="",page.querySelector("#txtSignupUsername").value="",page.querySelector("#txtSignupPassword").value="",page.querySelector("#txtSignupPasswordConfirm").value="",browserInfo.safari&&AppInfo.isNativeApp)page.querySelector(".embyIntroDownloadMessage").innerHTML=Globalize.translate("EmbyIntroDownloadMessageWithoutLink");else{var link='http://emby.media';page.querySelector(".embyIntroDownloadMessage").innerHTML=Globalize.translate("EmbyIntroDownloadMessage",link)}}),view.addEventListener("viewshow",function(){loadPage(view,params)})}}); \ No newline at end of file diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index 5bf635f545..bb2be5f278 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -1,2 +1,2 @@ -define(["loading","embyRouter","layoutManager","connectionManager","cardBuilder","datetime","mediaInfo","backdrop","listView","itemContextMenu","itemHelper","dom","indicators","apphost","imageLoader","libraryMenu","globalize","browser","events","scrollHelper","playbackManager","libraryBrowser","scrollStyles","emby-itemscontainer","emby-checkbox","emby-linkbutton","emby-playstatebutton","emby-ratingbutton","emby-downloadbutton"],function(loading,embyRouter,layoutManager,connectionManager,cardBuilder,datetime,mediaInfo,backdrop,listView,itemContextMenu,itemHelper,dom,indicators,appHost,imageLoader,libraryMenu,globalize,browser,events,scrollHelper,playbackManager,libraryBrowser){"use strict";function getPromise(apiClient,params){var id=params.id;if(id)return apiClient.getItem(apiClient.getCurrentUserId(),id);if(params.seriesTimerId)return apiClient.getLiveTvSeriesTimer(params.seriesTimerId);var name=params.genre;if(name)return apiClient.getGenre(name,apiClient.getCurrentUserId());if(name=params.musicgenre)return apiClient.getMusicGenre(name,apiClient.getCurrentUserId());if(name=params.gamegenre)return apiClient.getGameGenre(name,apiClient.getCurrentUserId());if(name=params.musicartist)return apiClient.getArtist(name,apiClient.getCurrentUserId());throw new Error("Invalid request")}function hideAll(page,className,show){var i,length,elems=page.querySelectorAll("."+className);for(i=0,length=elems.length;i"}function renderSeriesTimerSchedule(page,apiClient,seriesTimerId){apiClient.getLiveTvTimers({UserId:apiClient.getCurrentUserId(),ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",SortBy:"StartDate",EnableTotalRecordCount:!1,EnableUserData:!1,SeriesTimerId:seriesTimerId,Fields:"ChannelInfo"}).then(function(result){result.Items.length&&result.Items[0].SeriesTimerId!=seriesTimerId&&(result.Items=[]);var html=getProgramScheduleHtml(result.Items),scheduleTab=page.querySelector(".seriesTimerSchedule");scheduleTab.innerHTML=html,imageLoader.lazyChildren(scheduleTab)})}function renderSeriesTimerEditor(page,item,apiClient,user){if("SeriesTimer"===item.Type){if(!user.Policy.EnableLiveTvManagement)return page.querySelector(".seriesTimerScheduleSection").classList.add("hide"),void hideAll(page,"btnCancelSeriesTimer");require(["seriesRecordingEditor"],function(seriesRecordingEditor){seriesRecordingEditor.embed(item,apiClient.serverId(),{context:page.querySelector(".seriesRecordingEditor")})}),page.querySelector(".seriesTimerScheduleSection").classList.remove("hide"),hideAll(page,"btnCancelSeriesTimer",!0),renderSeriesTimerSchedule(page,apiClient,item.Id)}}function reloadPlayButtons(page,item){var canPlay=!1;if("Program"==item.Type){var now=new Date;now>=datetime.parseISO8601Date(item.StartDate,!0)&&now0)}else hideAll(page,"btnPlay"),hideAll(page,"btnResume"),hideAll(page,"btnInstantMix"),hideAll(page,"btnShuffle");return canPlay}function reloadUserDataButtons(page,item){var i,length,btnPlaystates=page.querySelectorAll(".btnPlaystate");for(i=0,length=btnPlaystates.length;i=800?backdrop.setBackdrops([item]):backdrop.clear(),libraryBrowser.renderDetailPageBackdrop(page,item,apiClient,imageLoader,indicators),libraryMenu.setTransparentMenu(!0);var canPlay=reloadPlayButtons(page,item),hasAnyButton=canPlay;item.LocalTrailerCount||item.RemoteTrailers&&item.RemoteTrailers.length?(hideAll(page,"btnPlayTrailer",!0),hasAnyButton=!0):hideAll(page,"btnPlayTrailer"),item.CanDelete&&!item.IsFolder?(hideAll(page,"btnDeleteItem",!0),hasAnyButton=!0):hideAll(page,"btnDeleteItem"),renderSyncLocalContainer(page,params,user,item),hasAnyButton||"Program"!==item.Type?hideAll(page,"mainDetailButtons",!0):hideAll(page,"mainDetailButtons"),showRecordingFields(instance,page,item,user);var groupedVersions=(item.MediaSources||[]).filter(function(g){return"Grouping"==g.Type});user.Policy.IsAdministrator&&groupedVersions.length?page.querySelector(".splitVersionContainer").classList.remove("hide"):page.querySelector(".splitVersionContainer").classList.add("hide");var commands=itemContextMenu.getCommands(getContextMenuOptions(item,user));commands.length?hideAll(page,"btnMoreCommands",!0):hideAll(page,"btnMoreCommands");var itemBirthday=page.querySelector("#itemBirthday");if("Person"==item.Type&&item.PremiereDate)try{var birthday=datetime.parseISO8601Date(item.PremiereDate,!0).toDateString();itemBirthday.classList.remove("hide"),itemBirthday.innerHTML=globalize.translate("BirthDateValue").replace("{0}",birthday)}catch(err){itemBirthday.classList.add("hide")}else itemBirthday.classList.add("hide");var itemDeathDate=page.querySelector("#itemDeathDate");if("Person"==item.Type&&item.EndDate)try{var deathday=datetime.parseISO8601Date(item.EndDate,!0).toDateString();itemDeathDate.classList.remove("hide"),itemDeathDate.innerHTML=globalize.translate("DeathDateValue").replace("{0}",deathday)}catch(err){itemDeathDate.classList.add("hide")}var itemBirthLocation=page.querySelector("#itemBirthLocation");if("Person"==item.Type&&item.ProductionLocations&&item.ProductionLocations.length){var gmap=''+item.ProductionLocations[0]+"";itemBirthLocation.classList.remove("hide"),itemBirthLocation.innerHTML=globalize.translate("BirthPlaceValue").replace("{0}",gmap)}else itemBirthLocation.classList.add("hide");setPeopleHeader(page,item),loading.hide()}function logoImageUrl(item,apiClient,options){return options=options||{},options.type="Logo",item.ImageTags&&item.ImageTags.Logo?(options.tag=item.ImageTags.Logo,apiClient.getScaledImageUrl(item.Id,options)):item.ParentLogoImageTag?(options.tag=item.ParentLogoImageTag,apiClient.getScaledImageUrl(item.ParentLogoItemId,options)):null}function renderLogo(page,item,apiClient){var url=logoImageUrl(item,apiClient,{maxWidth:300}),detailLogo=page.querySelector(".detailLogo");url?(detailLogo.classList.remove("hide"),detailLogo.classList.add("lazy"),detailLogo.setAttribute("data-src",url),imageLoader.lazyImage(detailLogo)):detailLogo.classList.add("hide")}function showRecordingFields(instance,page,item,user){if(!instance.currentRecordingFields){var recordingFieldsElement=page.querySelector(".recordingFields");"Program"==item.Type&&user.Policy.EnableLiveTvManagement?require(["recordingFields"],function(recordingFields){instance.currentRecordingFields=new recordingFields({parent:recordingFieldsElement,programId:item.Id,serverId:item.ServerId}),recordingFieldsElement.classList.remove("hide")}):(recordingFieldsElement.classList.add("hide"),recordingFieldsElement.innerHTML="")}}function renderLinks(linksElem,item){var links=[];if(item.HomePageUrl&&links.push(''+globalize.translate("ButtonWebsite")+""),item.ExternalUrls)for(var i=0,length=item.ExternalUrls.length;i'+url.Name+"")}if(links.length){var html=links.join('');linksElem.innerHTML=html,linksElem.classList.remove("hide")}else linksElem.classList.add("hide")}function renderImage(page,item,apiClient,user){var container=page.querySelector(".detailImageContainer");libraryBrowser.renderDetailImage(page,container,item,apiClient,user.Policy.IsAdministrator&&"Photo"!=item.MediaType,imageLoader,indicators)}function refreshDetailImageUserData(elem,item){var detailImageProgressContainer=elem.querySelector(".detailImageProgressContainer");detailImageProgressContainer.innerHTML=indicators.getProgressBarHtml(item)}function refreshImage(page,item,user){refreshDetailImageUserData(page.querySelector(".detailImageContainer"),item)}function setPeopleHeader(page,item){"Audio"==item.MediaType||"MusicAlbum"==item.Type||"Book"==item.MediaType||"Photo"==item.MediaType?page.querySelector("#peopleHeader").innerHTML=globalize.translate("HeaderPeople"):page.querySelector("#peopleHeader").innerHTML=globalize.translate("HeaderCastAndCrew")}function renderNextUp(page,item,user){var section=page.querySelector(".nextUpSection");return"Series"!=item.Type?void section.classList.add("hide"):void connectionManager.getApiClient(item.ServerId).getNextUpEpisodes({SeriesId:item.Id,UserId:user.Id}).then(function(result){result.Items.length?section.classList.remove("hide"):section.classList.add("hide");var html=cardBuilder.getCardsHtml({items:result.Items,shape:getThumbShape(!1),showTitle:!0,displayAsSpecial:"Season"==item.Type&&item.IndexNumber,overlayText:!0,lazy:!0,overlayPlayButton:!0}),itemsContainer=section.querySelector(".nextUpItems");itemsContainer.innerHTML=html,imageLoader.lazyChildren(itemsContainer)})}function setInitialCollapsibleState(page,item,context,user){page.querySelector(".collectionItems").innerHTML="","TvChannel"==item.Type?(page.querySelector("#childrenCollapsible").classList.remove("hide"),renderChannelGuide(page,item,user)):"Playlist"==item.Type?(page.querySelector("#childrenCollapsible").classList.remove("hide"),renderPlaylistItems(page,item,user)):"Studio"==item.Type||"Person"==item.Type||"Genre"==item.Type||"MusicGenre"==item.Type||"GameGenre"==item.Type||"MusicArtist"==item.Type?(page.querySelector("#childrenCollapsible").classList.remove("hide"),renderItemsByName(page,item,user)):item.IsFolder||"Episode"==item.Type&&item.SeasonId&&item.SeriesId?("BoxSet"==item.Type&&page.querySelector("#childrenCollapsible").classList.add("hide"),renderChildren(page,item)):page.querySelector("#childrenCollapsible").classList.add("hide"),"Series"==item.Type&&renderSeriesSchedule(page,item,user),"Series"==item.Type?renderNextUp(page,item,user):page.querySelector(".nextUpSection").classList.add("hide"),item.MediaSources&&item.MediaSources.length&&renderMediaSources(page,user,item),renderScenes(page,item),item.SpecialFeatureCount&&0!=item.SpecialFeatureCount&&"Series"!=item.Type?(page.querySelector("#specialsCollapsible").classList.remove("hide"),renderSpecials(page,item,user,6)):page.querySelector("#specialsCollapsible").classList.add("hide"),item.People&&item.People.length?(page.querySelector("#castCollapsible").classList.remove("hide"),renderCast(page,item,context,enableScrollX()?null:12)):page.querySelector("#castCollapsible").classList.add("hide"),item.PartCount&&item.PartCount>1?(page.querySelector("#additionalPartsCollapsible").classList.remove("hide"),renderAdditionalParts(page,item,user)):page.querySelector("#additionalPartsCollapsible").classList.add("hide"),page.querySelector("#themeSongsCollapsible").classList.add("hide"),page.querySelector("#themeVideosCollapsible").classList.add("hide"),"MusicAlbum"==item.Type?renderMusicVideos(page,item,user):page.querySelector("#musicVideosCollapsible").classList.add("hide"),renderThemeMedia(page,item,user),enableScrollX()?renderCriticReviews(page,item):renderCriticReviews(page,item,1)}function renderOverview(elems,item){for(var i=0,length=elems.length;i'+text+"
":'
'+text+"
"}).join("");return view.querySelector(".mediaInfoIcons").innerHTML=html,html}function renderPhotoInfo(page,item){var html="",attributes=[];if(item.CameraMake&&attributes.push(createAttribute(globalize.translate("MediaInfoCameraMake"),item.CameraMake)),item.CameraModel&&attributes.push(createAttribute(globalize.translate("MediaInfoCameraModel"),item.CameraModel)),item.Altitude&&attributes.push(createAttribute(globalize.translate("MediaInfoAltitude"),item.Altitude.toFixed(1))),item.Aperture&&attributes.push(createAttribute(globalize.translate("MediaInfoAperture"),"F"+item.Aperture.toFixed(1))),item.ExposureTime){var val=1/item.ExposureTime;attributes.push(createAttribute(globalize.translate("MediaInfoExposureTime"),"1/"+val+" s"))}item.FocalLength&&attributes.push(createAttribute(globalize.translate("MediaInfoFocalLength"),item.FocalLength.toFixed(1)+" mm")),item.ImageOrientation,item.IsoSpeedRating&&attributes.push(createAttribute(globalize.translate("MediaInfoIsoSpeedRating"),item.IsoSpeedRating)),item.Latitude&&attributes.push(createAttribute(globalize.translate("MediaInfoLatitude"),item.Latitude.toFixed(1))),item.Longitude&&attributes.push(createAttribute(globalize.translate("MediaInfoLongitude"),item.Longitude.toFixed(1))),item.ShutterSpeed&&attributes.push(createAttribute(globalize.translate("MediaInfoShutterSpeed"),item.ShutterSpeed)),item.Software&&attributes.push(createAttribute(globalize.translate("MediaInfoSoftware"),item.Software)),html+=attributes.join("
"),page.querySelector(".photoInfoContent").innerHTML=html}function getArtistLinksHtml(artists,serverId,context){for(var html=[],i=0,length=artists.length;i'+artist.Name+"")}return html=html.join(" / "),1==artists.length?globalize.translate("ValueArtist",html):artists.length>1?globalize.translate("ValueArtists",html):html}function enableScrollX(){return browserInfo.mobile&&screen.availWidth<=1e3}function getPortraitShape(scrollX){return null==scrollX&&(scrollX=enableScrollX()),scrollX?"overflowPortrait":"portrait"}function getSquareShape(scrollX){return null==scrollX&&(scrollX=enableScrollX()),scrollX?"overflowSquare":"square"}function getThumbShape(scrollX){return null==scrollX&&(scrollX=enableScrollX()),scrollX?"overflowBackdrop":"backdrop"}function renderMoreFromItems(page,item){var moreFromSection=page.querySelector("#moreFromSection");if(moreFromSection){if("MusicAlbum"!=item.Type||!item.AlbumArtists||!item.AlbumArtists.length)return void moreFromSection.classList.add("hide");var apiClient=connectionManager.getApiClient(item.ServerId);apiClient.getItems(apiClient.getCurrentUserId(),{IncludeItemTypes:"MusicAlbum",ArtistIds:item.AlbumArtists[0].Id,Recursive:!0,ExcludeItemIds:item.Id,SortBy:"ProductionYear,SortName"}).then(function(result){if(!result.Items.length)return void moreFromSection.classList.add("hide");moreFromSection.classList.remove("hide"),moreFromSection.querySelector(".moreFromHeader").innerHTML=globalize.translate("MoreFromValue",item.AlbumArtists[0].Name);var html="";html+=enableScrollX()?'
':'
';var shape="MusicAlbum"==item.Type||"MusicArtist"==item.Type?getSquareShape():getPortraitShape(),supportsImageAnalysis=appHost.supports("imageanalysis");supportsImageAnalysis=!1,html+=cardBuilder.getCardsHtml({items:result.Items,shape:shape,showParentTitle:"MusicAlbum"==item.Type,centerText:!supportsImageAnalysis,showTitle:"MusicAlbum"==item.Type||"Game"==item.Type||"MusicArtist"==item.Type,coverImage:"MusicAlbum"==item.Type||"MusicArtist"==item.Type,overlayPlayButton:!0,cardLayout:supportsImageAnalysis,vibrant:supportsImageAnalysis}),html+="
";var similarContent=page.querySelector("#moreFromItems");similarContent.innerHTML=html,imageLoader.lazyChildren(similarContent)})}}function renderSimilarItems(page,item,context){var similarCollapsible=page.querySelector("#similarCollapsible");if(similarCollapsible){if("Movie"!=item.Type&&"Trailer"!=item.Type&&"Series"!=item.Type&&"Program"!=item.Type&&"Recording"!=item.Type&&"Game"!=item.Type&&"MusicAlbum"!=item.Type&&"MusicArtist"!=item.Type&&"ChannelVideoItem"!=item.Type)return void similarCollapsible.classList.add("hide");similarCollapsible.classList.remove("hide");var shape="MusicAlbum"==item.Type||"MusicArtist"==item.Type?getSquareShape():getPortraitShape(),apiClient=connectionManager.getApiClient(item.ServerId),options={userId:apiClient.getCurrentUserId(),limit:"MusicAlbum"==item.Type||"MusicArtist"==item.Type?8:10,fields:"PrimaryImageAspectRatio,UserData,CanDelete"};"MusicAlbum"==item.Type&&item.AlbumArtists&&item.AlbumArtists.length&&(options.ExcludeArtistIds=item.AlbumArtists[0].Id),enableScrollX()&&(options.limit=12),apiClient.getSimilarItems(item.Id,options).then(function(result){if(!result.Items.length)return void similarCollapsible.classList.add("hide");similarCollapsible.classList.remove("hide");var html="";html+=enableScrollX()?'
':'
';var supportsImageAnalysis=appHost.supports("imageanalysis"),cardLayout=supportsImageAnalysis&&("MusicAlbum"==item.Type||"Game"==item.Type||"MusicArtist"==item.Type);cardLayout=!1,html+=cardBuilder.getCardsHtml({items:result.Items,shape:shape,showParentTitle:"MusicAlbum"==item.Type,centerText:!cardLayout,showTitle:"MusicAlbum"==item.Type||"Game"==item.Type||"MusicArtist"==item.Type,context:context,lazy:!0,showDetailsMenu:!0,coverImage:"MusicAlbum"==item.Type||"MusicArtist"==item.Type,overlayPlayButton:!0,cardLayout:cardLayout,vibrant:cardLayout&&supportsImageAnalysis}),html+="
";var similarContent=similarCollapsible.querySelector(".similarContent");similarContent.innerHTML=html,imageLoader.lazyChildren(similarContent)})}}function renderSeriesAirTime(page,item,isStatic){var seriesAirTime=page.querySelector("#seriesAirTime");if("Series"!=item.Type)return void seriesAirTime.classList.add("hide");var html="";if(item.AirDays&&item.AirDays.length&&(html+=7==item.AirDays.length?"daily":item.AirDays.map(function(a){return a+"s"}).join(",")),item.AirTime&&(html+=" at "+item.AirTime),item.Studios.length)if(isStatic)html+=" on "+item.Studios[0].Name;else{var context=inferContext(item),href=embyRouter.getRouteUrl(item.Studios[0],{context:context,itemType:"Studio",serverId:item.ServerId});html+=' on '+item.Studios[0].Name+""}html?(html=("Ended"==item.Status?"Aired ":"Airs ")+html,seriesAirTime.innerHTML=html,seriesAirTime.classList.remove("hide")):seriesAirTime.classList.add("hide")}function renderTags(page,item){var itemTags=page.querySelector(".itemTags");if(item.Tags&&item.Tags.length){for(var html="",i=0,length=item.Tags.length;i'+item.Tags[i]+"
";itemTags.innerHTML=html,itemTags.classList.remove("hide")}else itemTags.classList.add("hide")}function getEpisodesFunction(apiClient,seriesId,query){return query=Object.assign({},query),function(index,limit,fields){return query.StartIndex=index,query.Limit=limit,query.Fields=fields,apiClient.getEpisodes(seriesId,query)}}function getAlbumSongsFunction(apiClient,query){return query=Object.assign({},query),function(index,limit,fields){return query.StartIndex=index,query.Limit=limit,query.Fields=fields,apiClient.getItems(apiClient.getCurrentUserId(),query)}}function renderChildren(page,item){_childrenItemsFunction=null;var fields="ItemCounts,PrimaryImageAspectRatio,BasicSyncInfo,CanDelete",query={ParentId:item.Id,Fields:fields};"BoxSet"!==item.Type&&(query.SortBy="SortName");var promise,apiClient=connectionManager.getApiClient(item.ServerId),userId=apiClient.getCurrentUserId();"Series"==item.Type?promise=apiClient.getSeasons(item.Id,{userId:userId,Fields:fields}):"Season"==item.Type?(fields+=",Overview",promise=apiClient.getEpisodes(item.SeriesId,{seasonId:item.Id,userId:userId,Fields:fields}),_childrenItemsFunction=getEpisodesFunction(apiClient,item.SeriesId,{seasonId:item.Id,userId:userId,Fields:fields})):"Episode"==item.Type&&item.SeriesId&&item.SeasonId?(promise=apiClient.getEpisodes(item.SeriesId,{seasonId:item.SeasonId,userId:userId,Fields:fields}),_childrenItemsFunction=getEpisodesFunction(apiClient,item.SeriesId,{seasonId:item.SeasonId,userId:userId,Fields:fields})):"MusicAlbum"==item.Type?_childrenItemsFunction=getAlbumSongsFunction(apiClient,query):"MusicArtist"==item.Type&&(query.SortBy="ProductionYear,SortName"),promise=promise||apiClient.getItems(apiClient.getCurrentUserId(),query),promise.then(function(result){var html="",scrollX=!1,isList=!1,scrollClass="hiddenScrollX",childrenItemsContainer=page.querySelector(".childrenItemsContainer");if("MusicAlbum"==item.Type)html=listView.getListViewHtml({items:result.Items,smallIcon:!0,showIndex:!0,index:"disc",showIndexNumber:!0,playFromHere:!0,action:"playallfromhere",image:!1,artist:"auto",containerAlbumArtist:item.AlbumArtist,addToListButton:!0}),isList=!0;else if("Series"==item.Type)scrollX=enableScrollX(),html=cardBuilder.getCardsHtml({items:result.Items,shape:getPortraitShape(),showTitle:!0,centerText:!0,lazy:!0,overlayPlayButton:!0,allowBottomPadding:!scrollX});else if("Season"==item.Type||"Episode"==item.Type){if("Episode"===item.Type?childrenItemsContainer.classList.add("darkScroller"):isList=!0,scrollX="Episode"==item.Type,browser.touch||(scrollClass="smoothScrollX"),result.Items.length<2&&"Episode"===item.Type)return;"Episode"===item.Type?html=cardBuilder.getCardsHtml({items:result.Items,shape:getThumbShape(scrollX),showTitle:!0,displayAsSpecial:"Season"==item.Type&&item.IndexNumber,playFromHere:!0,overlayText:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,allowBottomPadding:!scrollX,includeParentInfoInTitle:!1}):"Season"===item.Type&&(html=listView.getListViewHtml({items:result.Items,showIndexNumber:!1,enableOverview:!0,imageSize:"large",enableSideMediaInfo:!1,highlight:!1,action:"none",infoButton:!0,imagePlayButton:!0,includeParentInfoInTitle:!1}))}else"GameSystem"==item.Type&&(html=cardBuilder.getCardsHtml({items:result.Items,shape:"auto",showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0}));if("BoxSet"!==item.Type&&page.querySelector("#childrenCollapsible").classList.remove("hide"),scrollX?(childrenItemsContainer.classList.add(scrollClass),childrenItemsContainer.classList.remove("vertical-wrap"),childrenItemsContainer.classList.remove("vertical-list")):(childrenItemsContainer.classList.remove("hiddenScrollX"),childrenItemsContainer.classList.remove("smoothScrollX"),isList?(childrenItemsContainer.classList.add("vertical-list"),childrenItemsContainer.classList.remove("vertical-wrap")):(childrenItemsContainer.classList.add("vertical-wrap"),childrenItemsContainer.classList.remove("vertical-list"))),childrenItemsContainer.innerHTML=html,imageLoader.lazyChildren(childrenItemsContainer),"BoxSet"==item.Type){var collectionItemTypes=[{name:globalize.translate("HeaderVideos"),mediaType:"Video"},{name:globalize.translate("HeaderSeries"),type:"Series"},{name:globalize.translate("HeaderAlbums"),type:"MusicAlbum"},{name:globalize.translate("HeaderGames"),type:"Game"},{name:globalize.translate("HeaderBooks"),type:"Book"}];renderCollectionItems(page,item,collectionItemTypes,result.Items)}else if("Episode"===item.Type){var card=childrenItemsContainer.querySelector('.card[data-id="'+item.Id+'"]');card&&scrollHelper.toStart(childrenItemsContainer,card.previousSibling||card,!0)}}),"Season"==item.Type?page.querySelector("#childrenTitle").innerHTML=globalize.translate("HeaderEpisodes"):"Episode"==item.Type?page.querySelector("#childrenTitle").innerHTML=globalize.translate("MoreFromValue",item.SeasonName):"Series"==item.Type?page.querySelector("#childrenTitle").innerHTML=globalize.translate("HeaderSeasons"):"MusicAlbum"==item.Type?page.querySelector("#childrenTitle").innerHTML=globalize.translate("HeaderTracks"):"GameSystem"==item.Type?page.querySelector("#childrenTitle").innerHTML=globalize.translate("HeaderGames"):page.querySelector("#childrenTitle").innerHTML=globalize.translate("HeaderItems"),"MusicAlbum"==item.Type||"Season"==item.Type?page.querySelector(".childrenSectionHeader",page).classList.add("hide"):page.querySelector(".childrenSectionHeader",page).classList.remove("hide")}function renderItemsByName(page,item,user){require("scripts/itembynamedetailpage".split(","),function(){window.ItemsByName.renderItems(page,item)})}function renderPlaylistItems(page,item,user){require("scripts/playlistedit".split(","),function(){PlaylistViewer.render(page,item)})}function renderChannelGuide(page,item,user){require("scripts/livetvchannel,scripts/livetvcomponents,livetvcss".split(","),function(liveTvChannelPage){liveTvChannelPage.renderPrograms(page,item.Id)})}function renderSeriesSchedule(page,item,user){return}function inferContext(item){return"Movie"==item.Type||"BoxSet"==item.Type?"movies":"Series"==item.Type||"Season"==item.Type||"Episode"==item.Type?"tvshows":"Game"==item.Type||"GameSystem"==item.Type?"games":"Game"==item.Type||"GameSystem"==item.Type?"games":"MusicArtist"==item.Type||"MusicAlbum"==item.Type?"music":null}function renderStudios(elem,item,isStatic){var context=inferContext(item);if(item.Studios&&item.Studios.length&&"Series"!=item.Type,1)elem.classList.add("hide");else{for(var html="",i=0,length=item.Studios.length;i0&&(html+="  /  "),isStatic)html+=item.Studios[i].Name;else{item.Studios[i].Type="Studio";var href=embyRouter.getRouteUrl(item.Studios[0],{context:context,serverId:item.ServerId});html+=''+item.Studios[i].Name+""}var translationKey=item.Studios.length>1?"ValueStudios":"ValueStudio";html=globalize.translate(translationKey,html),elem.innerHTML=html,elem.classList.remove("hide")}}function renderGenres(elem,item,limit,isStatic){var context=inferContext(item),html="",genres=item.GenreItems;genres||(genres=(item.Genres||[]).map(function(name){return{Name:name}})||[]);for(var i=0,length=genres.length;i=limit);i++)if(i>0&&(html+=''),isStatic)html+=genres[i].Name;else{var type;switch(context){case"tvshows":type="Series";break;case"games":type="Game";break;case"music":type="MusicAlbum";break;default:type="Movie"}var param,paramValue;if(!genres[i].Id)continue;param="genreId",paramValue=genres[i].Id;var url="secondaryitems.html?type="+type+"&"+param+"="+paramValue+"&serverId="+item.ServerId;html+=''+genres[i].Name+""}elem.innerHTML=html; -}function filterItemsByCollectionItemType(items,typeInfo){return items.filter(function(item){return typeInfo.mediaType?item.MediaType==typeInfo.mediaType:item.Type==typeInfo.type})}function renderCollectionItems(page,parentItem,types,items){page.querySelector(".collectionItems").innerHTML="";var i,length;for(i=0,length=types.length;i0}).length});otherTypeItems.length&&renderCollectionItemType(page,parentItem,otherType,otherTypeItems),items.length||renderCollectionItemType(page,parentItem,{name:globalize.translate("HeaderItems")},items)}function renderCollectionItemType(page,parentItem,type,items){var html="";html+='
',html+='
',html+='

',html+=""+type.name+"",html+="

",html+='',html+="
",html+='
';var shape="MusicAlbum"==type.type?getSquareShape(!1):getPortraitShape(!1);html+=cardBuilder.getCardsHtml({items:items,shape:shape,showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0,overlayMoreButton:!0,showAddToCollection:!1,showRemoveFromCollection:!0,collectionId:parentItem.Id}),html+="
",html+="
";var collectionItems=page.querySelector(".collectionItems");collectionItems.insertAdjacentHTML("beforeend",html),imageLoader.lazyChildren(collectionItems),collectionItems.querySelector(".btnAddToCollection").addEventListener("click",function(){require(["alert"],function(alert){alert({text:globalize.translate("AddItemToCollectionHelp"),html:globalize.translate("AddItemToCollectionHelp")+'

'+globalize.translate("ButtonLearnMore")+""})})})}function renderCriticReviews(page,item,limit){if("Movie"!=item.Type&&"Trailer"!=item.Type&&"MusicVideo"!=item.Type)return void page.querySelector("#criticReviewsCollapsible").classList.add("hide");var options={};limit&&(options.limit=limit),connectionManager.getApiClient(item.ServerId).getCriticReviews(item.Id,options).then(function(result){result.TotalRecordCount?(page.querySelector("#criticReviewsCollapsible").classList.remove("hide"),renderCriticReviewsContent(page,result,limit)):page.querySelector("#criticReviewsCollapsible").classList.add("hide")})}function renderCriticReviewsContent(page,result,limit){for(var html="",reviews=result.Items,i=0,length=reviews.length;i',html+='
',null!=review.Score||null!=review.Likes&&(html+=review.Likes?"
":"
"),html+='
',html+='

'+review.Caption+"

";var vals=[];if(review.ReviewerName&&vals.push(review.ReviewerName),review.Publisher&&vals.push(review.Publisher),html+='
'+vals.join(", ")+".",review.Date)try{var date=datetime.toLocaleDateString(datetime.parseISO8601Date(review.Date,!0));html+=''+date+""}catch(error){}html+="
",review.Url&&(html+='"),html+="
",html+="
",html+="
"}limit&&result.TotalRecordCount>limit&&(html+='

");var criticReviewsContent=page.querySelector("#criticReviewsContent");criticReviewsContent.innerHTML=html,enableScrollX()?criticReviewsContent.classList.add("hiddenScrollX"):criticReviewsContent.classList.remove("hiddenScrollX")}function renderThemeMedia(page,item){if("SeriesTimer"!==item.Type&&"Timer"!==item.Type&&"Genre"!==item.Type&&"MusicGenre"!==item.Type&&"GameGenre"!==item.Type&&"Studio"!==item.Type&&"Person"!==item.Type){var apiClient=connectionManager.getApiClient(item.ServerId);apiClient.getThemeMedia(apiClient.getCurrentUserId(),item.Id,!0).then(function(result){var themeSongs=result.ThemeSongsResult.OwnerId==item.Id?result.ThemeSongsResult.Items:[],themeVideos=result.ThemeVideosResult.OwnerId==item.Id?result.ThemeVideosResult.Items:[];renderThemeSongs(page,themeSongs),renderThemeVideos(page,themeVideos)})}}function renderThemeSongs(page,items){if(items.length){page.querySelector("#themeSongsCollapsible").classList.remove("hide");var html=listView.getListViewHtml({items:items});page.querySelector("#themeSongsContent").innerHTML=html}else page.querySelector("#themeSongsCollapsible").classList.add("hide")}function renderThemeVideos(page,items,user){if(items.length){page.querySelector("#themeVideosCollapsible").classList.remove("hide");var themeVideosContent=page.querySelector("#themeVideosContent");themeVideosContent.innerHTML=getVideosHtml(items,user),imageLoader.lazyChildren(themeVideosContent)}else page.querySelector("#themeVideosCollapsible").classList.add("hide")}function renderMusicVideos(page,item,user){connectionManager.getApiClient(item.ServerId).getItems(user.Id,{SortBy:"SortName",SortOrder:"Ascending",IncludeItemTypes:"MusicVideo",Recursive:!0,Fields:"DateCreated,CanDelete",AlbumIds:item.Id}).then(function(result){if(result.Items.length){page.querySelector("#musicVideosCollapsible").classList.remove("hide");var musicVideosContent=page.querySelector(".musicVideosContent");musicVideosContent.innerHTML=getVideosHtml(result.Items,user),imageLoader.lazyChildren(musicVideosContent)}else page.querySelector("#musicVideosCollapsible").classList.add("hide")})}function renderAdditionalParts(page,item,user){connectionManager.getApiClient(item.ServerId).getAdditionalVideoParts(user.Id,item.Id).then(function(result){if(result.Items.length){page.querySelector("#additionalPartsCollapsible").classList.remove("hide");var additionalPartsContent=page.querySelector("#additionalPartsContent");additionalPartsContent.innerHTML=getVideosHtml(result.Items,user),imageLoader.lazyChildren(additionalPartsContent)}else page.querySelector("#additionalPartsCollapsible").classList.add("hide")})}function renderScenes(page,item){var chapters=item.Chapters||[];if(chapters.length&&!chapters[0].ImageTag&&(chapters=[]),chapters.length){page.querySelector("#scenesCollapsible").classList.remove("hide");var scenesContent=page.querySelector("#scenesContent");enableScrollX()?scenesContent.classList.add("smoothScrollX"):scenesContent.classList.add("vertical-wrap"),require(["chaptercardbuilder"],function(chaptercardbuilder){chaptercardbuilder.buildChapterCards(item,chapters,{itemsContainer:scenesContent,width:400,backdropShape:getThumbShape(),squareShape:getSquareShape()})})}else page.querySelector("#scenesCollapsible").classList.add("hide")}function renderMediaSources(page,user,item){var html=item.MediaSources.map(function(v){return getMediaSourceHtml(user,item,v)}).join('
');item.MediaSources.length>1&&(html="
"+html);var mediaInfoContent=page.querySelector("#mediaInfoContent");mediaInfoContent.innerHTML=html}function getMediaSourceHtml(user,item,version){var html="";version.Name&&item.MediaSources.length>1&&(html+='
'+version.Name+"

");for(var i=0,length=version.MediaStreams.length;i';var displayType=globalize.translate("MediaInfoStreamType"+stream.Type);html+='

'+displayType+"

";var attributes=[];stream.Language&&"Video"!=stream.Type&&attributes.push(createAttribute(globalize.translate("MediaInfoLanguage"),stream.Language)),stream.Codec&&attributes.push(createAttribute(globalize.translate("MediaInfoCodec"),stream.Codec.toUpperCase())),stream.CodecTag&&attributes.push(createAttribute(globalize.translate("MediaInfoCodecTag"),stream.CodecTag)),null!=stream.IsAVC&&attributes.push(createAttribute("AVC",stream.IsAVC?"Yes":"No")),stream.Profile&&attributes.push(createAttribute(globalize.translate("MediaInfoProfile"),stream.Profile)),stream.Level&&attributes.push(createAttribute(globalize.translate("MediaInfoLevel"),stream.Level)),(stream.Width||stream.Height)&&attributes.push(createAttribute(globalize.translate("MediaInfoResolution"),stream.Width+"x"+stream.Height)),stream.AspectRatio&&"mjpeg"!=stream.Codec&&attributes.push(createAttribute(globalize.translate("MediaInfoAspectRatio"),stream.AspectRatio)),"Video"==stream.Type&&(null!=stream.IsAnamorphic&&attributes.push(createAttribute(globalize.translate("MediaInfoAnamorphic"),stream.IsAnamorphic?"Yes":"No")),attributes.push(createAttribute(globalize.translate("MediaInfoInterlaced"),stream.IsInterlaced?"Yes":"No"))),(stream.AverageFrameRate||stream.RealFrameRate)&&attributes.push(createAttribute(globalize.translate("MediaInfoFramerate"),stream.AverageFrameRate||stream.RealFrameRate)),stream.ChannelLayout&&attributes.push(createAttribute(globalize.translate("MediaInfoLayout"),stream.ChannelLayout)),stream.Channels&&attributes.push(createAttribute(globalize.translate("MediaInfoChannels"),stream.Channels+" ch")),stream.BitRate&&"mjpeg"!=stream.Codec&&attributes.push(createAttribute(globalize.translate("MediaInfoBitrate"),parseInt(stream.BitRate/1e3)+" kbps")),stream.SampleRate&&attributes.push(createAttribute(globalize.translate("MediaInfoSampleRate"),stream.SampleRate+" Hz")),stream.BitDepth&&attributes.push(createAttribute(globalize.translate("MediaInfoBitDepth"),stream.BitDepth+" bit")),stream.PixelFormat&&attributes.push(createAttribute(globalize.translate("MediaInfoPixelFormat"),stream.PixelFormat)),stream.RefFrames&&attributes.push(createAttribute(globalize.translate("MediaInfoRefFrames"),stream.RefFrames)),stream.NalLengthSize&&attributes.push(createAttribute("NAL",stream.NalLengthSize)),"Video"!=stream.Type&&attributes.push(createAttribute(globalize.translate("MediaInfoDefault"),stream.IsDefault?"Yes":"No")),"Subtitle"==stream.Type&&(attributes.push(createAttribute(globalize.translate("MediaInfoForced"),stream.IsForced?"Yes":"No")),attributes.push(createAttribute(globalize.translate("MediaInfoExternal"),stream.IsExternal?"Yes":"No"))),"Video"==stream.Type&&version.Timestamp&&attributes.push(createAttribute(globalize.translate("MediaInfoTimestamp"),version.Timestamp)),stream.DisplayTitle&&attributes.push(createAttribute("Title",stream.DisplayTitle)),html+=attributes.join("
"),html+="
"}}if(version.Container&&(html+='
'+globalize.translate("MediaInfoContainer")+''+version.Container+"
"),version.Formats&&version.Formats.length,version.Path&&"Http"!=version.Protocol&&user&&user.Policy.IsAdministrator&&(html+='
'+globalize.translate("MediaInfoPath")+''+version.Path+"
"),version.Size){var size=(version.Size/1048576).toFixed(0);html+='
'+globalize.translate("MediaInfoSize")+''+size+" MB
"}return html}function createAttribute(label,value){return''+label+''+value+""}function getVideosHtml(items,user,limit,moreButtonClass){var html=cardBuilder.getCardsHtml({items:items,shape:"auto",showTitle:!0,action:"play",overlayText:!0,showRuntime:!0});return limit&&items.length>limit&&(html+='

"),html}function renderSpecials(page,item,user,limit){connectionManager.getApiClient(item.ServerId).getSpecialFeatures(user.Id,item.Id).then(function(specials){var specialsContent=page.querySelector("#specialsContent");specialsContent.innerHTML=getVideosHtml(specials,user,limit,"moreSpecials"),imageLoader.lazyChildren(specialsContent)})}function renderCast(page,item,context,limit,isStatic){var people=item.People||[],castContent=page.querySelector("#castContent");enableScrollX()?(castContent.classList.add("smoothScrollX"),limit=32):castContent.classList.add("vertical-wrap");var limitExceeded=limit&&people.length>limit;limitExceeded&&(people=people.slice(0),people.length=Math.min(limit,people.length)),require(["peoplecardbuilder"],function(peoplecardbuilder){peoplecardbuilder.buildPeopleCards(people,{itemsContainer:castContent,coverImage:!0,serverId:item.ServerId,width:160,shape:getPortraitShape()})});var morePeopleButton=page.querySelector(".morePeople");morePeopleButton&&(limitExceeded&&!enableScrollX()?morePeopleButton.classList.remove("hide"):morePeopleButton.classList.add("hide"))}function play(startPosition){playbackManager.play({items:[currentItem],startPositionTicks:startPosition})}function playTrailer(page){playbackManager.playTrailers(currentItem)}function showPlayMenu(item,target){require(["playMenu"],function(playMenu){playMenu.show({item:item,positionTo:target})})}function playCurrentItem(button,mode){var item=currentItem;if("Program"===item.Type){var apiClient=connectionManager.getApiClient(item.ServerId);return void apiClient.getLiveTvChannel(item.ChannelId,apiClient.getCurrentUserId()).then(function(channel){playbackManager.play({items:[channel]})})}"playmenu"===mode?showPlayMenu(item,button):playbackManager.play({items:[item],startPositionTicks:item.UserData&&"resume"===mode?item.UserData.PlaybackPositionTicks:0})}function reload(instance,page,params){beginReload(instance,page,params),finishReload(instance,page,params)}function beginReload(instance,page,params){loading.show();var apiClient=params.serverId?connectionManager.getApiClient(params.serverId):ApiClient;instance.promises=[getPromise(apiClient,params),apiClient.getCurrentUser()]}function finishReload(instance,page,params){var promises=instance.promises;promises&&(instance.promises=null,Promise.all(promises).then(function(responses){var item=responses[0],user=responses[1];reloadFromItem(instance,page,params,item,user)}))}function splitVersions(instance,page,apiClient,params){require(["confirm"],function(confirm){confirm("Are you sure you wish to split the media sources into separate items?","Split Media Apart").then(function(){loading.show(),apiClient.ajax({type:"DELETE",url:apiClient.getUrl("Videos/"+params.id+"/AlternateSources")}).then(function(){loading.hide(),reload(instance,page,params)})})})}function itemDetailPage(){var self=this;self.play=play,self.setInitialCollapsibleState=setInitialCollapsibleState,self.renderDetails=renderDetails,self.renderCriticReviews=renderCriticReviews,self.renderCast=renderCast,self.renderScenes=renderScenes,self.renderMediaSources=renderMediaSources}function onPlayClick(){var mode=this.getAttribute("data-mode");playCurrentItem(this,mode)}function onInstantMixClick(){playbackManager.instantMix(currentItem)}function onShuffleClick(){playbackManager.shuffle(currentItem)}function onDeleteClick(){require(["deleteHelper"],function(deleteHelper){deleteHelper.deleteItem({item:currentItem,navigate:!0})})}function onCancelSeriesTimerClick(){require(["recordingHelper"],function(recordingHelper){recordingHelper.cancelSeriesTimerWithConfirmation(currentItem.Id,currentItem.ServerId).then(function(){Dashboard.navigate("livetv.html")})})}function bindAll(view,selector,eventName,fn){var i,length,elems=view.querySelectorAll(selector);for(i=0,length=elems.length;i"}function renderSeriesTimerSchedule(page,apiClient,seriesTimerId){apiClient.getLiveTvTimers({UserId:apiClient.getCurrentUserId(),ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",SortBy:"StartDate",EnableTotalRecordCount:!1,EnableUserData:!1,SeriesTimerId:seriesTimerId,Fields:"ChannelInfo"}).then(function(result){result.Items.length&&result.Items[0].SeriesTimerId!=seriesTimerId&&(result.Items=[]);var html=getProgramScheduleHtml(result.Items),scheduleTab=page.querySelector(".seriesTimerSchedule");scheduleTab.innerHTML=html,imageLoader.lazyChildren(scheduleTab)})}function renderSeriesTimerEditor(page,item,apiClient,user){if("SeriesTimer"===item.Type){if(!user.Policy.EnableLiveTvManagement)return page.querySelector(".seriesTimerScheduleSection").classList.add("hide"),void hideAll(page,"btnCancelSeriesTimer");require(["seriesRecordingEditor"],function(seriesRecordingEditor){seriesRecordingEditor.embed(item,apiClient.serverId(),{context:page.querySelector(".seriesRecordingEditor")})}),page.querySelector(".seriesTimerScheduleSection").classList.remove("hide"),hideAll(page,"btnCancelSeriesTimer",!0),renderSeriesTimerSchedule(page,apiClient,item.Id)}}function reloadPlayButtons(page,item){var canPlay=!1;if("Program"==item.Type){var now=new Date;now>=datetime.parseISO8601Date(item.StartDate,!0)&&now0)}else hideAll(page,"btnPlay"),hideAll(page,"btnResume"),hideAll(page,"btnInstantMix"),hideAll(page,"btnShuffle");return canPlay}function reloadUserDataButtons(page,item){var i,length,btnPlaystates=page.querySelectorAll(".btnPlaystate");for(i=0,length=btnPlaystates.length;i=800?backdrop.setBackdrops([item]):backdrop.clear(),libraryBrowser.renderDetailPageBackdrop(page,item,apiClient,imageLoader,indicators),libraryMenu.setTransparentMenu(!0);var canPlay=reloadPlayButtons(page,item),hasAnyButton=canPlay;item.LocalTrailerCount||item.RemoteTrailers&&item.RemoteTrailers.length?(hideAll(page,"btnPlayTrailer",!0),hasAnyButton=!0):hideAll(page,"btnPlayTrailer"),item.CanDelete&&!item.IsFolder?(hideAll(page,"btnDeleteItem",!0),hasAnyButton=!0):hideAll(page,"btnDeleteItem"),renderSyncLocalContainer(page,params,user,item),hasAnyButton||"Program"!==item.Type?hideAll(page,"mainDetailButtons",!0):hideAll(page,"mainDetailButtons"),showRecordingFields(instance,page,item,user);var groupedVersions=(item.MediaSources||[]).filter(function(g){return"Grouping"==g.Type});user.Policy.IsAdministrator&&groupedVersions.length?page.querySelector(".splitVersionContainer").classList.remove("hide"):page.querySelector(".splitVersionContainer").classList.add("hide");var commands=itemContextMenu.getCommands(getContextMenuOptions(item,user));commands.length?hideAll(page,"btnMoreCommands",!0):hideAll(page,"btnMoreCommands");var itemBirthday=page.querySelector("#itemBirthday");if("Person"==item.Type&&item.PremiereDate)try{var birthday=datetime.parseISO8601Date(item.PremiereDate,!0).toDateString();itemBirthday.classList.remove("hide"),itemBirthday.innerHTML=globalize.translate("BirthDateValue").replace("{0}",birthday)}catch(err){itemBirthday.classList.add("hide")}else itemBirthday.classList.add("hide");var itemDeathDate=page.querySelector("#itemDeathDate");if("Person"==item.Type&&item.EndDate)try{var deathday=datetime.parseISO8601Date(item.EndDate,!0).toDateString();itemDeathDate.classList.remove("hide"),itemDeathDate.innerHTML=globalize.translate("DeathDateValue").replace("{0}",deathday)}catch(err){itemDeathDate.classList.add("hide")}var itemBirthLocation=page.querySelector("#itemBirthLocation");if("Person"==item.Type&&item.ProductionLocations&&item.ProductionLocations.length){var gmap=''+item.ProductionLocations[0]+"";itemBirthLocation.classList.remove("hide"),itemBirthLocation.innerHTML=globalize.translate("BirthPlaceValue").replace("{0}",gmap)}else itemBirthLocation.classList.add("hide");setPeopleHeader(page,item),loading.hide()}function logoImageUrl(item,apiClient,options){return options=options||{},options.type="Logo",item.ImageTags&&item.ImageTags.Logo?(options.tag=item.ImageTags.Logo,apiClient.getScaledImageUrl(item.Id,options)):item.ParentLogoImageTag?(options.tag=item.ParentLogoImageTag,apiClient.getScaledImageUrl(item.ParentLogoItemId,options)):null}function renderLogo(page,item,apiClient){var url=logoImageUrl(item,apiClient,{maxWidth:300}),detailLogo=page.querySelector(".detailLogo");url?(detailLogo.classList.remove("hide"),detailLogo.classList.add("lazy"),detailLogo.setAttribute("data-src",url),imageLoader.lazyImage(detailLogo)):detailLogo.classList.add("hide")}function showRecordingFields(instance,page,item,user){if(!instance.currentRecordingFields){var recordingFieldsElement=page.querySelector(".recordingFields");"Program"==item.Type&&user.Policy.EnableLiveTvManagement?require(["recordingFields"],function(recordingFields){instance.currentRecordingFields=new recordingFields({parent:recordingFieldsElement,programId:item.Id,serverId:item.ServerId}),recordingFieldsElement.classList.remove("hide")}):(recordingFieldsElement.classList.add("hide"),recordingFieldsElement.innerHTML="")}}function renderLinks(linksElem,item){var links=[];if(item.HomePageUrl&&links.push(''+globalize.translate("ButtonWebsite")+""),item.ExternalUrls)for(var i=0,length=item.ExternalUrls.length;i'+url.Name+"")}if(links.length){var html=links.join('');linksElem.innerHTML=html,linksElem.classList.remove("hide")}else linksElem.classList.add("hide")}function renderImage(page,item,apiClient,user){var container=page.querySelector(".detailImageContainer");libraryBrowser.renderDetailImage(page,container,item,apiClient,user.Policy.IsAdministrator&&"Photo"!=item.MediaType,imageLoader,indicators)}function refreshDetailImageUserData(elem,item){var detailImageProgressContainer=elem.querySelector(".detailImageProgressContainer");detailImageProgressContainer.innerHTML=indicators.getProgressBarHtml(item)}function refreshImage(page,item,user){refreshDetailImageUserData(page.querySelector(".detailImageContainer"),item)}function setPeopleHeader(page,item){"Audio"==item.MediaType||"MusicAlbum"==item.Type||"Book"==item.MediaType||"Photo"==item.MediaType?page.querySelector("#peopleHeader").innerHTML=globalize.translate("HeaderPeople"):page.querySelector("#peopleHeader").innerHTML=globalize.translate("HeaderCastAndCrew")}function renderNextUp(page,item,user){var section=page.querySelector(".nextUpSection");return"Series"!=item.Type?void section.classList.add("hide"):void connectionManager.getApiClient(item.ServerId).getNextUpEpisodes({SeriesId:item.Id,UserId:user.Id}).then(function(result){result.Items.length?section.classList.remove("hide"):section.classList.add("hide");var html=cardBuilder.getCardsHtml({items:result.Items,shape:getThumbShape(!1),showTitle:!0,displayAsSpecial:"Season"==item.Type&&item.IndexNumber,overlayText:!0,lazy:!0,overlayPlayButton:!0}),itemsContainer=section.querySelector(".nextUpItems");itemsContainer.innerHTML=html,imageLoader.lazyChildren(itemsContainer)})}function setInitialCollapsibleState(page,item,context,user){page.querySelector(".collectionItems").innerHTML="","TvChannel"==item.Type?(page.querySelector("#childrenCollapsible").classList.remove("hide"),renderChannelGuide(page,item,user)):"Playlist"==item.Type?(page.querySelector("#childrenCollapsible").classList.remove("hide"),renderPlaylistItems(page,item,user)):"Studio"==item.Type||"Person"==item.Type||"Genre"==item.Type||"MusicGenre"==item.Type||"GameGenre"==item.Type||"MusicArtist"==item.Type?(page.querySelector("#childrenCollapsible").classList.remove("hide"),renderItemsByName(page,item,user)):item.IsFolder||"Episode"==item.Type&&item.SeasonId&&item.SeriesId?("BoxSet"==item.Type&&page.querySelector("#childrenCollapsible").classList.add("hide"),renderChildren(page,item)):page.querySelector("#childrenCollapsible").classList.add("hide"),"Series"==item.Type&&renderSeriesSchedule(page,item,user),"Series"==item.Type?renderNextUp(page,item,user):page.querySelector(".nextUpSection").classList.add("hide"),item.MediaSources&&item.MediaSources.length&&renderMediaSources(page,user,item),renderScenes(page,item),item.SpecialFeatureCount&&0!=item.SpecialFeatureCount&&"Series"!=item.Type?(page.querySelector("#specialsCollapsible").classList.remove("hide"),renderSpecials(page,item,user,6)):page.querySelector("#specialsCollapsible").classList.add("hide"),item.People&&item.People.length?(page.querySelector("#castCollapsible").classList.remove("hide"),renderCast(page,item,context,enableScrollX()?null:12)):page.querySelector("#castCollapsible").classList.add("hide"),item.PartCount&&item.PartCount>1?(page.querySelector("#additionalPartsCollapsible").classList.remove("hide"),renderAdditionalParts(page,item,user)):page.querySelector("#additionalPartsCollapsible").classList.add("hide"),page.querySelector("#themeSongsCollapsible").classList.add("hide"),page.querySelector("#themeVideosCollapsible").classList.add("hide"),"MusicAlbum"==item.Type?renderMusicVideos(page,item,user):page.querySelector("#musicVideosCollapsible").classList.add("hide"),renderThemeMedia(page,item,user),enableScrollX()?renderCriticReviews(page,item):renderCriticReviews(page,item,1)}function renderOverview(elems,item){for(var i=0,length=elems.length;i'+text+"
":'
'+text+"
"}).join("");return view.querySelector(".mediaInfoIcons").innerHTML=html,html}function renderPhotoInfo(page,item){var html="",attributes=[];if(item.CameraMake&&attributes.push(createAttribute(globalize.translate("MediaInfoCameraMake"),item.CameraMake)),item.CameraModel&&attributes.push(createAttribute(globalize.translate("MediaInfoCameraModel"),item.CameraModel)),item.Altitude&&attributes.push(createAttribute(globalize.translate("MediaInfoAltitude"),item.Altitude.toFixed(1))),item.Aperture&&attributes.push(createAttribute(globalize.translate("MediaInfoAperture"),"F"+item.Aperture.toFixed(1))),item.ExposureTime){var val=1/item.ExposureTime;attributes.push(createAttribute(globalize.translate("MediaInfoExposureTime"),"1/"+val+" s"))}item.FocalLength&&attributes.push(createAttribute(globalize.translate("MediaInfoFocalLength"),item.FocalLength.toFixed(1)+" mm")),item.ImageOrientation,item.IsoSpeedRating&&attributes.push(createAttribute(globalize.translate("MediaInfoIsoSpeedRating"),item.IsoSpeedRating)),item.Latitude&&attributes.push(createAttribute(globalize.translate("MediaInfoLatitude"),item.Latitude.toFixed(1))),item.Longitude&&attributes.push(createAttribute(globalize.translate("MediaInfoLongitude"),item.Longitude.toFixed(1))),item.ShutterSpeed&&attributes.push(createAttribute(globalize.translate("MediaInfoShutterSpeed"),item.ShutterSpeed)),item.Software&&attributes.push(createAttribute(globalize.translate("MediaInfoSoftware"),item.Software)),html+=attributes.join("
"),page.querySelector(".photoInfoContent").innerHTML=html}function getArtistLinksHtml(artists,serverId,context){for(var html=[],i=0,length=artists.length;i'+artist.Name+"")}return html=html.join(" / "),1==artists.length?globalize.translate("ValueArtist",html):artists.length>1?globalize.translate("ValueArtists",html):html}function enableScrollX(){return browserInfo.mobile&&screen.availWidth<=1e3}function getPortraitShape(scrollX){return null==scrollX&&(scrollX=enableScrollX()),scrollX?"overflowPortrait":"portrait"}function getSquareShape(scrollX){return null==scrollX&&(scrollX=enableScrollX()),scrollX?"overflowSquare":"square"}function getThumbShape(scrollX){return null==scrollX&&(scrollX=enableScrollX()),scrollX?"overflowBackdrop":"backdrop"}function renderMoreFromItems(page,item){var moreFromSection=page.querySelector("#moreFromSection");if(moreFromSection){if("MusicAlbum"!=item.Type||!item.AlbumArtists||!item.AlbumArtists.length)return void moreFromSection.classList.add("hide");var apiClient=connectionManager.getApiClient(item.ServerId);apiClient.getItems(apiClient.getCurrentUserId(),{IncludeItemTypes:"MusicAlbum",ArtistIds:item.AlbumArtists[0].Id,Recursive:!0,ExcludeItemIds:item.Id,SortBy:"ProductionYear,SortName"}).then(function(result){if(!result.Items.length)return void moreFromSection.classList.add("hide");moreFromSection.classList.remove("hide"),moreFromSection.querySelector(".moreFromHeader").innerHTML=globalize.translate("MoreFromValue",item.AlbumArtists[0].Name);var html="";html+=enableScrollX()?'
':'
';var shape="MusicAlbum"==item.Type||"MusicArtist"==item.Type?getSquareShape():getPortraitShape(),supportsImageAnalysis=appHost.supports("imageanalysis");supportsImageAnalysis=!1,html+=cardBuilder.getCardsHtml({items:result.Items,shape:shape,showParentTitle:"MusicAlbum"==item.Type,centerText:!supportsImageAnalysis,showTitle:"MusicAlbum"==item.Type||"Game"==item.Type||"MusicArtist"==item.Type,coverImage:"MusicAlbum"==item.Type||"MusicArtist"==item.Type,overlayPlayButton:!0,cardLayout:supportsImageAnalysis,vibrant:supportsImageAnalysis}),html+="
";var similarContent=page.querySelector("#moreFromItems");similarContent.innerHTML=html,imageLoader.lazyChildren(similarContent)})}}function renderSimilarItems(page,item,context){var similarCollapsible=page.querySelector("#similarCollapsible");if(similarCollapsible){if("Movie"!=item.Type&&"Trailer"!=item.Type&&"Series"!=item.Type&&"Program"!=item.Type&&"Recording"!=item.Type&&"Game"!=item.Type&&"MusicAlbum"!=item.Type&&"MusicArtist"!=item.Type&&"ChannelVideoItem"!=item.Type)return void similarCollapsible.classList.add("hide");similarCollapsible.classList.remove("hide");var shape="MusicAlbum"==item.Type||"MusicArtist"==item.Type?getSquareShape():getPortraitShape(),apiClient=connectionManager.getApiClient(item.ServerId),options={userId:apiClient.getCurrentUserId(),limit:"MusicAlbum"==item.Type||"MusicArtist"==item.Type?8:10,fields:"PrimaryImageAspectRatio,UserData,CanDelete"};"MusicAlbum"==item.Type&&item.AlbumArtists&&item.AlbumArtists.length&&(options.ExcludeArtistIds=item.AlbumArtists[0].Id),enableScrollX()&&(options.limit=12),apiClient.getSimilarItems(item.Id,options).then(function(result){if(!result.Items.length)return void similarCollapsible.classList.add("hide");similarCollapsible.classList.remove("hide");var html="";html+=enableScrollX()?'
':'
';var supportsImageAnalysis=appHost.supports("imageanalysis"),cardLayout=supportsImageAnalysis&&("MusicAlbum"==item.Type||"Game"==item.Type||"MusicArtist"==item.Type);cardLayout=!1,html+=cardBuilder.getCardsHtml({items:result.Items,shape:shape,showParentTitle:"MusicAlbum"==item.Type,centerText:!cardLayout,showTitle:"MusicAlbum"==item.Type||"Game"==item.Type||"MusicArtist"==item.Type,context:context,lazy:!0,showDetailsMenu:!0,coverImage:"MusicAlbum"==item.Type||"MusicArtist"==item.Type,overlayPlayButton:!0,cardLayout:cardLayout,vibrant:cardLayout&&supportsImageAnalysis}),html+="
";var similarContent=similarCollapsible.querySelector(".similarContent");similarContent.innerHTML=html,imageLoader.lazyChildren(similarContent)})}}function renderSeriesAirTime(page,item,isStatic){var seriesAirTime=page.querySelector("#seriesAirTime");if("Series"!=item.Type)return void seriesAirTime.classList.add("hide");var html="";if(item.AirDays&&item.AirDays.length&&(html+=7==item.AirDays.length?"daily":item.AirDays.map(function(a){return a+"s"}).join(",")),item.AirTime&&(html+=" at "+item.AirTime),item.Studios.length)if(isStatic)html+=" on "+item.Studios[0].Name;else{var context=inferContext(item),href=appRouter.getRouteUrl(item.Studios[0],{context:context,itemType:"Studio",serverId:item.ServerId});html+=' on '+item.Studios[0].Name+""}html?(html=("Ended"==item.Status?"Aired ":"Airs ")+html,seriesAirTime.innerHTML=html,seriesAirTime.classList.remove("hide")):seriesAirTime.classList.add("hide")}function renderTags(page,item){var itemTags=page.querySelector(".itemTags");if(item.Tags&&item.Tags.length){for(var html="",i=0,length=item.Tags.length;i'+item.Tags[i]+"
";itemTags.innerHTML=html,itemTags.classList.remove("hide")}else itemTags.classList.add("hide")}function getEpisodesFunction(apiClient,seriesId,query){return query=Object.assign({},query),function(index,limit,fields){return query.StartIndex=index,query.Limit=limit,query.Fields=fields,apiClient.getEpisodes(seriesId,query)}}function getAlbumSongsFunction(apiClient,query){return query=Object.assign({},query),function(index,limit,fields){return query.StartIndex=index,query.Limit=limit,query.Fields=fields,apiClient.getItems(apiClient.getCurrentUserId(),query)}}function renderChildren(page,item){_childrenItemsFunction=null;var fields="ItemCounts,PrimaryImageAspectRatio,BasicSyncInfo,CanDelete",query={ParentId:item.Id,Fields:fields};"BoxSet"!==item.Type&&(query.SortBy="SortName");var promise,apiClient=connectionManager.getApiClient(item.ServerId),userId=apiClient.getCurrentUserId();"Series"==item.Type?promise=apiClient.getSeasons(item.Id,{userId:userId,Fields:fields}):"Season"==item.Type?(fields+=",Overview",promise=apiClient.getEpisodes(item.SeriesId,{seasonId:item.Id,userId:userId,Fields:fields}),_childrenItemsFunction=getEpisodesFunction(apiClient,item.SeriesId,{seasonId:item.Id,userId:userId,Fields:fields})):"Episode"==item.Type&&item.SeriesId&&item.SeasonId?(promise=apiClient.getEpisodes(item.SeriesId,{seasonId:item.SeasonId,userId:userId,Fields:fields}),_childrenItemsFunction=getEpisodesFunction(apiClient,item.SeriesId,{seasonId:item.SeasonId,userId:userId,Fields:fields})):"MusicAlbum"==item.Type?_childrenItemsFunction=getAlbumSongsFunction(apiClient,query):"MusicArtist"==item.Type&&(query.SortBy="ProductionYear,SortName"),promise=promise||apiClient.getItems(apiClient.getCurrentUserId(),query),promise.then(function(result){var html="",scrollX=!1,isList=!1,scrollClass="hiddenScrollX",childrenItemsContainer=page.querySelector(".childrenItemsContainer");if("MusicAlbum"==item.Type)html=listView.getListViewHtml({items:result.Items,smallIcon:!0,showIndex:!0,index:"disc",showIndexNumber:!0,playFromHere:!0,action:"playallfromhere",image:!1,artist:"auto",containerAlbumArtist:item.AlbumArtist,addToListButton:!0}),isList=!0;else if("Series"==item.Type)scrollX=enableScrollX(),html=cardBuilder.getCardsHtml({items:result.Items,shape:getPortraitShape(),showTitle:!0,centerText:!0,lazy:!0,overlayPlayButton:!0,allowBottomPadding:!scrollX});else if("Season"==item.Type||"Episode"==item.Type){if("Episode"===item.Type?childrenItemsContainer.classList.add("darkScroller"):isList=!0,scrollX="Episode"==item.Type,browser.touch||(scrollClass="smoothScrollX"),result.Items.length<2&&"Episode"===item.Type)return;"Episode"===item.Type?html=cardBuilder.getCardsHtml({items:result.Items,shape:getThumbShape(scrollX),showTitle:!0,displayAsSpecial:"Season"==item.Type&&item.IndexNumber,playFromHere:!0,overlayText:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,allowBottomPadding:!scrollX,includeParentInfoInTitle:!1}):"Season"===item.Type&&(html=listView.getListViewHtml({items:result.Items,showIndexNumber:!1,enableOverview:!0,imageSize:"large",enableSideMediaInfo:!1,highlight:!1,action:"none",infoButton:!0,imagePlayButton:!0,includeParentInfoInTitle:!1}))}else"GameSystem"==item.Type&&(html=cardBuilder.getCardsHtml({items:result.Items,shape:"auto",showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0}));if("BoxSet"!==item.Type&&page.querySelector("#childrenCollapsible").classList.remove("hide"),scrollX?(childrenItemsContainer.classList.add(scrollClass),childrenItemsContainer.classList.remove("vertical-wrap"),childrenItemsContainer.classList.remove("vertical-list")):(childrenItemsContainer.classList.remove("hiddenScrollX"),childrenItemsContainer.classList.remove("smoothScrollX"),isList?(childrenItemsContainer.classList.add("vertical-list"),childrenItemsContainer.classList.remove("vertical-wrap")):(childrenItemsContainer.classList.add("vertical-wrap"),childrenItemsContainer.classList.remove("vertical-list"))),childrenItemsContainer.innerHTML=html,imageLoader.lazyChildren(childrenItemsContainer),"BoxSet"==item.Type){var collectionItemTypes=[{name:globalize.translate("HeaderVideos"),mediaType:"Video"},{name:globalize.translate("HeaderSeries"),type:"Series"},{name:globalize.translate("HeaderAlbums"),type:"MusicAlbum"},{name:globalize.translate("HeaderGames"),type:"Game"},{name:globalize.translate("HeaderBooks"),type:"Book"}];renderCollectionItems(page,item,collectionItemTypes,result.Items)}else if("Episode"===item.Type){var card=childrenItemsContainer.querySelector('.card[data-id="'+item.Id+'"]');card&&scrollHelper.toStart(childrenItemsContainer,card.previousSibling||card,!0)}}),"Season"==item.Type?page.querySelector("#childrenTitle").innerHTML=globalize.translate("HeaderEpisodes"):"Episode"==item.Type?page.querySelector("#childrenTitle").innerHTML=globalize.translate("MoreFromValue",item.SeasonName):"Series"==item.Type?page.querySelector("#childrenTitle").innerHTML=globalize.translate("HeaderSeasons"):"MusicAlbum"==item.Type?page.querySelector("#childrenTitle").innerHTML=globalize.translate("HeaderTracks"):"GameSystem"==item.Type?page.querySelector("#childrenTitle").innerHTML=globalize.translate("HeaderGames"):page.querySelector("#childrenTitle").innerHTML=globalize.translate("HeaderItems"),"MusicAlbum"==item.Type||"Season"==item.Type?page.querySelector(".childrenSectionHeader",page).classList.add("hide"):page.querySelector(".childrenSectionHeader",page).classList.remove("hide")}function renderItemsByName(page,item,user){require("scripts/itembynamedetailpage".split(","),function(){window.ItemsByName.renderItems(page,item)})}function renderPlaylistItems(page,item,user){require("scripts/playlistedit".split(","),function(){PlaylistViewer.render(page,item)})}function renderChannelGuide(page,item,user){require("scripts/livetvchannel,scripts/livetvcomponents,livetvcss".split(","),function(liveTvChannelPage){liveTvChannelPage.renderPrograms(page,item.Id)})}function renderSeriesSchedule(page,item,user){return}function inferContext(item){return"Movie"==item.Type||"BoxSet"==item.Type?"movies":"Series"==item.Type||"Season"==item.Type||"Episode"==item.Type?"tvshows":"Game"==item.Type||"GameSystem"==item.Type?"games":"Game"==item.Type||"GameSystem"==item.Type?"games":"MusicArtist"==item.Type||"MusicAlbum"==item.Type?"music":null}function renderStudios(elem,item,isStatic){var context=inferContext(item);if(item.Studios&&item.Studios.length&&"Series"!=item.Type,1)elem.classList.add("hide");else{for(var html="",i=0,length=item.Studios.length;i0&&(html+="  /  "),isStatic)html+=item.Studios[i].Name;else{item.Studios[i].Type="Studio";var href=appRouter.getRouteUrl(item.Studios[0],{context:context,serverId:item.ServerId});html+=''+item.Studios[i].Name+""}var translationKey=item.Studios.length>1?"ValueStudios":"ValueStudio";html=globalize.translate(translationKey,html),elem.innerHTML=html,elem.classList.remove("hide")}}function renderGenres(elem,item,limit,isStatic){var context=inferContext(item),html="",genres=item.GenreItems;genres||(genres=(item.Genres||[]).map(function(name){return{Name:name}})||[]);for(var i=0,length=genres.length;i=limit);i++)if(i>0&&(html+=''),isStatic)html+=genres[i].Name;else{var type;switch(context){case"tvshows":type="Series";break;case"games":type="Game";break;case"music":type="MusicAlbum";break;default:type="Movie"}var param,paramValue;if(!genres[i].Id)continue;param="genreId",paramValue=genres[i].Id;var url="secondaryitems.html?type="+type+"&"+param+"="+paramValue+"&serverId="+item.ServerId;html+=''+genres[i].Name+""}elem.innerHTML=html}function filterItemsByCollectionItemType(items,typeInfo){ +return items.filter(function(item){return typeInfo.mediaType?item.MediaType==typeInfo.mediaType:item.Type==typeInfo.type})}function renderCollectionItems(page,parentItem,types,items){page.querySelector(".collectionItems").innerHTML="";var i,length;for(i=0,length=types.length;i0}).length});otherTypeItems.length&&renderCollectionItemType(page,parentItem,otherType,otherTypeItems),items.length||renderCollectionItemType(page,parentItem,{name:globalize.translate("HeaderItems")},items)}function renderCollectionItemType(page,parentItem,type,items){var html="";html+='
',html+='
',html+='

',html+=""+type.name+"",html+="

",html+='',html+="
",html+='
';var shape="MusicAlbum"==type.type?getSquareShape(!1):getPortraitShape(!1);html+=cardBuilder.getCardsHtml({items:items,shape:shape,showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0,overlayMoreButton:!0,showAddToCollection:!1,showRemoveFromCollection:!0,collectionId:parentItem.Id}),html+="
",html+="
";var collectionItems=page.querySelector(".collectionItems");collectionItems.insertAdjacentHTML("beforeend",html),imageLoader.lazyChildren(collectionItems),collectionItems.querySelector(".btnAddToCollection").addEventListener("click",function(){require(["alert"],function(alert){alert({text:globalize.translate("AddItemToCollectionHelp"),html:globalize.translate("AddItemToCollectionHelp")+'

'+globalize.translate("ButtonLearnMore")+""})})})}function renderCriticReviews(page,item,limit){if("Movie"!=item.Type&&"Trailer"!=item.Type&&"MusicVideo"!=item.Type)return void page.querySelector("#criticReviewsCollapsible").classList.add("hide");var options={};limit&&(options.limit=limit),connectionManager.getApiClient(item.ServerId).getCriticReviews(item.Id,options).then(function(result){result.TotalRecordCount?(page.querySelector("#criticReviewsCollapsible").classList.remove("hide"),renderCriticReviewsContent(page,result,limit)):page.querySelector("#criticReviewsCollapsible").classList.add("hide")})}function renderCriticReviewsContent(page,result,limit){for(var html="",reviews=result.Items,i=0,length=reviews.length;i',html+='
',null!=review.Score||null!=review.Likes&&(html+=review.Likes?"
":"
"),html+='
',html+='

'+review.Caption+"

";var vals=[];if(review.ReviewerName&&vals.push(review.ReviewerName),review.Publisher&&vals.push(review.Publisher),html+='
'+vals.join(", ")+".",review.Date)try{var date=datetime.toLocaleDateString(datetime.parseISO8601Date(review.Date,!0));html+=''+date+""}catch(error){}html+="
",review.Url&&(html+='"),html+="
",html+="
",html+="
"}limit&&result.TotalRecordCount>limit&&(html+='

");var criticReviewsContent=page.querySelector("#criticReviewsContent");criticReviewsContent.innerHTML=html,enableScrollX()?criticReviewsContent.classList.add("hiddenScrollX"):criticReviewsContent.classList.remove("hiddenScrollX")}function renderThemeMedia(page,item){if("SeriesTimer"!==item.Type&&"Timer"!==item.Type&&"Genre"!==item.Type&&"MusicGenre"!==item.Type&&"GameGenre"!==item.Type&&"Studio"!==item.Type&&"Person"!==item.Type){var apiClient=connectionManager.getApiClient(item.ServerId);apiClient.getThemeMedia(apiClient.getCurrentUserId(),item.Id,!0).then(function(result){var themeSongs=result.ThemeSongsResult.OwnerId==item.Id?result.ThemeSongsResult.Items:[],themeVideos=result.ThemeVideosResult.OwnerId==item.Id?result.ThemeVideosResult.Items:[];renderThemeSongs(page,themeSongs),renderThemeVideos(page,themeVideos)})}}function renderThemeSongs(page,items){if(items.length){page.querySelector("#themeSongsCollapsible").classList.remove("hide");var html=listView.getListViewHtml({items:items});page.querySelector("#themeSongsContent").innerHTML=html}else page.querySelector("#themeSongsCollapsible").classList.add("hide")}function renderThemeVideos(page,items,user){if(items.length){page.querySelector("#themeVideosCollapsible").classList.remove("hide");var themeVideosContent=page.querySelector("#themeVideosContent");themeVideosContent.innerHTML=getVideosHtml(items,user),imageLoader.lazyChildren(themeVideosContent)}else page.querySelector("#themeVideosCollapsible").classList.add("hide")}function renderMusicVideos(page,item,user){connectionManager.getApiClient(item.ServerId).getItems(user.Id,{SortBy:"SortName",SortOrder:"Ascending",IncludeItemTypes:"MusicVideo",Recursive:!0,Fields:"DateCreated,CanDelete",AlbumIds:item.Id}).then(function(result){if(result.Items.length){page.querySelector("#musicVideosCollapsible").classList.remove("hide");var musicVideosContent=page.querySelector(".musicVideosContent");musicVideosContent.innerHTML=getVideosHtml(result.Items,user),imageLoader.lazyChildren(musicVideosContent)}else page.querySelector("#musicVideosCollapsible").classList.add("hide")})}function renderAdditionalParts(page,item,user){connectionManager.getApiClient(item.ServerId).getAdditionalVideoParts(user.Id,item.Id).then(function(result){if(result.Items.length){page.querySelector("#additionalPartsCollapsible").classList.remove("hide");var additionalPartsContent=page.querySelector("#additionalPartsContent");additionalPartsContent.innerHTML=getVideosHtml(result.Items,user),imageLoader.lazyChildren(additionalPartsContent)}else page.querySelector("#additionalPartsCollapsible").classList.add("hide")})}function renderScenes(page,item){var chapters=item.Chapters||[];if(chapters.length&&!chapters[0].ImageTag&&(chapters=[]),chapters.length){page.querySelector("#scenesCollapsible").classList.remove("hide");var scenesContent=page.querySelector("#scenesContent");enableScrollX()?scenesContent.classList.add("smoothScrollX"):scenesContent.classList.add("vertical-wrap"),require(["chaptercardbuilder"],function(chaptercardbuilder){chaptercardbuilder.buildChapterCards(item,chapters,{itemsContainer:scenesContent,width:400,backdropShape:getThumbShape(),squareShape:getSquareShape()})})}else page.querySelector("#scenesCollapsible").classList.add("hide")}function renderMediaSources(page,user,item){var html=item.MediaSources.map(function(v){return getMediaSourceHtml(user,item,v)}).join('
');item.MediaSources.length>1&&(html="
"+html);var mediaInfoContent=page.querySelector("#mediaInfoContent");mediaInfoContent.innerHTML=html}function getMediaSourceHtml(user,item,version){var html="";version.Name&&item.MediaSources.length>1&&(html+='
'+version.Name+"

");for(var i=0,length=version.MediaStreams.length;i';var displayType=globalize.translate("MediaInfoStreamType"+stream.Type);html+='

'+displayType+"

";var attributes=[];stream.Language&&"Video"!=stream.Type&&attributes.push(createAttribute(globalize.translate("MediaInfoLanguage"),stream.Language)),stream.Codec&&attributes.push(createAttribute(globalize.translate("MediaInfoCodec"),stream.Codec.toUpperCase())),stream.CodecTag&&attributes.push(createAttribute(globalize.translate("MediaInfoCodecTag"),stream.CodecTag)),null!=stream.IsAVC&&attributes.push(createAttribute("AVC",stream.IsAVC?"Yes":"No")),stream.Profile&&attributes.push(createAttribute(globalize.translate("MediaInfoProfile"),stream.Profile)),stream.Level&&attributes.push(createAttribute(globalize.translate("MediaInfoLevel"),stream.Level)),(stream.Width||stream.Height)&&attributes.push(createAttribute(globalize.translate("MediaInfoResolution"),stream.Width+"x"+stream.Height)),stream.AspectRatio&&"mjpeg"!=stream.Codec&&attributes.push(createAttribute(globalize.translate("MediaInfoAspectRatio"),stream.AspectRatio)),"Video"==stream.Type&&(null!=stream.IsAnamorphic&&attributes.push(createAttribute(globalize.translate("MediaInfoAnamorphic"),stream.IsAnamorphic?"Yes":"No")),attributes.push(createAttribute(globalize.translate("MediaInfoInterlaced"),stream.IsInterlaced?"Yes":"No"))),(stream.AverageFrameRate||stream.RealFrameRate)&&attributes.push(createAttribute(globalize.translate("MediaInfoFramerate"),stream.AverageFrameRate||stream.RealFrameRate)),stream.ChannelLayout&&attributes.push(createAttribute(globalize.translate("MediaInfoLayout"),stream.ChannelLayout)),stream.Channels&&attributes.push(createAttribute(globalize.translate("MediaInfoChannels"),stream.Channels+" ch")),stream.BitRate&&"mjpeg"!=stream.Codec&&attributes.push(createAttribute(globalize.translate("MediaInfoBitrate"),parseInt(stream.BitRate/1e3)+" kbps")),stream.SampleRate&&attributes.push(createAttribute(globalize.translate("MediaInfoSampleRate"),stream.SampleRate+" Hz")),stream.BitDepth&&attributes.push(createAttribute(globalize.translate("MediaInfoBitDepth"),stream.BitDepth+" bit")),stream.PixelFormat&&attributes.push(createAttribute(globalize.translate("MediaInfoPixelFormat"),stream.PixelFormat)),stream.RefFrames&&attributes.push(createAttribute(globalize.translate("MediaInfoRefFrames"),stream.RefFrames)),stream.NalLengthSize&&attributes.push(createAttribute("NAL",stream.NalLengthSize)),"Video"!=stream.Type&&attributes.push(createAttribute(globalize.translate("MediaInfoDefault"),stream.IsDefault?"Yes":"No")),"Subtitle"==stream.Type&&(attributes.push(createAttribute(globalize.translate("MediaInfoForced"),stream.IsForced?"Yes":"No")),attributes.push(createAttribute(globalize.translate("MediaInfoExternal"),stream.IsExternal?"Yes":"No"))),"Video"==stream.Type&&version.Timestamp&&attributes.push(createAttribute(globalize.translate("MediaInfoTimestamp"),version.Timestamp)),stream.DisplayTitle&&attributes.push(createAttribute("Title",stream.DisplayTitle)),html+=attributes.join("
"),html+="
"}}if(version.Container&&(html+='
'+globalize.translate("MediaInfoContainer")+''+version.Container+"
"),version.Formats&&version.Formats.length,version.Path&&"Http"!=version.Protocol&&user&&user.Policy.IsAdministrator&&(html+='
'+globalize.translate("MediaInfoPath")+''+version.Path+"
"),version.Size){var size=(version.Size/1048576).toFixed(0);html+='
'+globalize.translate("MediaInfoSize")+''+size+" MB
"}return html}function createAttribute(label,value){return''+label+''+value+""}function getVideosHtml(items,user,limit,moreButtonClass){var html=cardBuilder.getCardsHtml({items:items,shape:"auto",showTitle:!0,action:"play",overlayText:!0,showRuntime:!0});return limit&&items.length>limit&&(html+='

"),html}function renderSpecials(page,item,user,limit){connectionManager.getApiClient(item.ServerId).getSpecialFeatures(user.Id,item.Id).then(function(specials){var specialsContent=page.querySelector("#specialsContent");specialsContent.innerHTML=getVideosHtml(specials,user,limit,"moreSpecials"),imageLoader.lazyChildren(specialsContent)})}function renderCast(page,item,context,limit,isStatic){var people=item.People||[],castContent=page.querySelector("#castContent");enableScrollX()?(castContent.classList.add("smoothScrollX"),limit=32):castContent.classList.add("vertical-wrap");var limitExceeded=limit&&people.length>limit;limitExceeded&&(people=people.slice(0),people.length=Math.min(limit,people.length)),require(["peoplecardbuilder"],function(peoplecardbuilder){peoplecardbuilder.buildPeopleCards(people,{itemsContainer:castContent,coverImage:!0,serverId:item.ServerId,width:160,shape:getPortraitShape()})});var morePeopleButton=page.querySelector(".morePeople");morePeopleButton&&(limitExceeded&&!enableScrollX()?morePeopleButton.classList.remove("hide"):morePeopleButton.classList.add("hide"))}function play(startPosition){playbackManager.play({items:[currentItem],startPositionTicks:startPosition})}function playTrailer(page){playbackManager.playTrailers(currentItem)}function showPlayMenu(item,target){require(["playMenu"],function(playMenu){playMenu.show({item:item,positionTo:target})})}function playCurrentItem(button,mode){var item=currentItem;if("Program"===item.Type){var apiClient=connectionManager.getApiClient(item.ServerId);return void apiClient.getLiveTvChannel(item.ChannelId,apiClient.getCurrentUserId()).then(function(channel){playbackManager.play({items:[channel]})})}"playmenu"===mode?showPlayMenu(item,button):playbackManager.play({items:[item],startPositionTicks:item.UserData&&"resume"===mode?item.UserData.PlaybackPositionTicks:0})}function reload(instance,page,params){beginReload(instance,page,params),finishReload(instance,page,params)}function beginReload(instance,page,params){loading.show();var apiClient=params.serverId?connectionManager.getApiClient(params.serverId):ApiClient;instance.promises=[getPromise(apiClient,params),apiClient.getCurrentUser()]}function finishReload(instance,page,params){var promises=instance.promises;promises&&(instance.promises=null,Promise.all(promises).then(function(responses){var item=responses[0],user=responses[1];reloadFromItem(instance,page,params,item,user)}))}function splitVersions(instance,page,apiClient,params){require(["confirm"],function(confirm){confirm("Are you sure you wish to split the media sources into separate items?","Split Media Apart").then(function(){loading.show(),apiClient.ajax({type:"DELETE",url:apiClient.getUrl("Videos/"+params.id+"/AlternateSources")}).then(function(){loading.hide(),reload(instance,page,params)})})})}function itemDetailPage(){var self=this;self.play=play,self.setInitialCollapsibleState=setInitialCollapsibleState,self.renderDetails=renderDetails,self.renderCriticReviews=renderCriticReviews,self.renderCast=renderCast,self.renderScenes=renderScenes,self.renderMediaSources=renderMediaSources}function onPlayClick(){var mode=this.getAttribute("data-mode");playCurrentItem(this,mode)}function onInstantMixClick(){playbackManager.instantMix(currentItem)}function onShuffleClick(){playbackManager.shuffle(currentItem)}function onDeleteClick(){require(["deleteHelper"],function(deleteHelper){deleteHelper.deleteItem({item:currentItem,navigate:!0})})}function onCancelSeriesTimerClick(){require(["recordingHelper"],function(recordingHelper){recordingHelper.cancelSeriesTimerWithConfirmation(currentItem.Id,currentItem.ServerId).then(function(){Dashboard.navigate("livetv.html")})})}function bindAll(view,selector,eventName,fn){var i,length,elems=view.querySelectorAll(selector);for(i=0,length=elems.length;i'+artist.Name+"")}return html=html.join(" / ")},getListItemInfo:function(elem){for(var elemWithAttributes=elem;!elemWithAttributes.getAttribute("data-id");)elemWithAttributes=elemWithAttributes.parentNode;var itemId=elemWithAttributes.getAttribute("data-id"),index=elemWithAttributes.getAttribute("data-index"),mediaType=elemWithAttributes.getAttribute("data-mediatype");return{id:itemId,index:index,mediaType:mediaType,context:elemWithAttributes.getAttribute("data-context")}},renderName:function(item,nameElem,linkToElement,context){require(["itemHelper"],function(itemHelper){var name=itemHelper.getDisplayName(item,{includeParentInfo:!1});linkToElement?nameElem.innerHTML=''+name+"":nameElem.innerHTML=name})},renderParentName:function(item,parentNameElem,context){var html=[],contextParam=context?"&context="+context:"";item.AlbumArtists?html.push(libraryBrowser.getArtistLinksHtml(item.AlbumArtists,item.ServerId,"detailPageParentLink")):item.ArtistItems&&item.ArtistItems.length&&"MusicVideo"==item.Type?html.push(libraryBrowser.getArtistLinksHtml(item.ArtistItems,item.ServerId,"detailPageParentLink")):item.SeriesName&&"Episode"==item.Type&&html.push(''+item.SeriesName+""),item.SeriesName&&"Season"==item.Type?html.push(''+item.SeriesName+""):null!=item.ParentIndexNumber&&"Episode"==item.Type?html.push(''+item.SeasonName+""):item.Album&&"Audio"==item.Type&&(item.AlbumId||item.ParentId)?html.push(''+item.Album+""):item.Album&&"MusicVideo"==item.Type&&item.AlbumId?html.push(''+item.Album+""):item.Album?html.push(item.Album):(item.IsSeries||item.EpisodeTitle)&&html.push(item.Name),html.length?(parentNameElem.classList.remove("hide"),parentNameElem.innerHTML=html.join(" - ")):parentNameElem.classList.add("hide")},showLayoutMenu:function(button,currentLayout,views){var dispatchEvent=!0;views||(dispatchEvent=!1,views=button.getAttribute("data-layouts"),views=views?views.split(","):["List","Poster","PosterCard","Thumb","ThumbCard"]);var menuItems=views.map(function(v){return{name:Globalize.translate("Option"+v),id:v,selected:currentLayout==v}});require(["actionsheet"],function(actionsheet){actionsheet.show({items:menuItems,positionTo:button,callback:function(id){button.dispatchEvent(new CustomEvent("layoutchange",{detail:{viewStyle:id},bubbles:!0,cancelable:!1})),dispatchEvent||window.$&&$(button).trigger("layoutchange",[id])}})})},getQueryPagingHtml:function(options){var startIndex=options.startIndex,limit=options.limit,totalRecordCount=options.totalRecordCount;if(limit&&options.updatePageSizeSetting!==!1)try{appSettings.set(options.pageSizeKey||pageSizeKey,limit)}catch(e){}var html="",recordsEnd=Math.min(startIndex+limit,totalRecordCount),showControls=limit',showControls){html+='';var startAtDisplay=totalRecordCount?startIndex+1:0;html+=startAtDisplay+"-"+recordsEnd+" of "+totalRecordCount,html+=""}return(showControls||options.viewButton||options.filterButton||options.sortButton||options.addLayoutButton)&&(html+='
',showControls&&(html+='',html+=''),options.addLayoutButton&&(html+=''),options.sortButton&&(html+=''),options.filterButton&&(html+=''),html+="
"),html+="
"},showSortMenu:function(options){require(["dialogHelper","emby-radio"],function(dialogHelper){function onSortByChange(){var newValue=this.value;if(this.checked){var changed=options.query.SortBy!=newValue;options.query.SortBy=newValue.replace("_",","),options.query.StartIndex=0,options.callback&&changed&&options.callback()}}function onSortOrderChange(){var newValue=this.value;if(this.checked){var changed=options.query.SortOrder!=newValue;options.query.SortOrder=newValue,options.query.StartIndex=0,options.callback&&changed&&options.callback()}}var dlg=dialogHelper.createDialog({removeOnClose:!0,modal:!1,entryAnimationDuration:160,exitAnimationDuration:200});dlg.classList.add("ui-body-a"),dlg.classList.add("background-theme-a"),dlg.classList.add("formDialog");var html="";html+='
',html+='

',html+=Globalize.translate("HeaderSortBy"),html+="

";var i,length,isChecked;for(html+="
",i=0,length=options.items.length;i"+option.name+""}html+="
",html+='

',html+=Globalize.translate("HeaderSortOrder"),html+="

",html+="
",isChecked="Ascending"==options.query.SortOrder?" checked":"",html+='",isChecked="Descending"==options.query.SortOrder?" checked":"",html+='",html+="
",html+="
",dlg.innerHTML=html,dialogHelper.open(dlg);var sortBys=dlg.querySelectorAll(".menuSortBy");for(i=0,length=sortBys.length;i',editable&&(html+=""),detectRatio&&item.PrimaryImageAspectRatio&&(item.PrimaryImageAspectRatio>=1.48?shape="thumb":item.PrimaryImageAspectRatio>=.85&&item.PrimaryImageAspectRatio<=1.34&&(shape="square")),html+="",editable&&(html+="");var progressHtml=item.IsFolder||!item.UserData?"":indicators.getProgressBarHtml(item);if(html+='
',progressHtml&&(html+=progressHtml),html+="
",html+="
",elem.innerHTML=html,"thumb"==shape?(elem.classList.add("thumbDetailImageContainer"),elem.classList.remove("portraitDetailImageContainer"),elem.classList.remove("squareDetailImageContainer")):"square"==shape?(elem.classList.remove("thumbDetailImageContainer"),elem.classList.remove("portraitDetailImageContainer"),elem.classList.add("squareDetailImageContainer")):(elem.classList.remove("thumbDetailImageContainer"),elem.classList.add("portraitDetailImageContainer"),elem.classList.remove("squareDetailImageContainer")),url){var img=elem.querySelector("img");img.onload=function(){img.src.indexOf("empty.png")==-1&&img.classList.add("loaded")},imageLoader.lazyImage(img,url)}},renderDetailPageBackdrop:function(page,item,apiClient,imageLoader,indicators){var imgUrl,screenWidth=screen.availWidth,hasbackdrop=!1,itemBackdropElement=page.querySelector("#itemBackdrop"),usePrimaryImage="Video"===item.MediaType&&"Movie"!==item.Type&&"Trailer"!==item.Type||item.MediaType&&"Video"!==item.MediaType,useThumbImage="Program"===item.Type;return useThumbImage&&item.ImageTags&&item.ImageTags.Thumb?(imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Thumb",index:0,maxWidth:screenWidth,tag:item.ImageTags.Thumb}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):usePrimaryImage&&item.ImageTags&&item.ImageTags.Primary?(imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Primary",index:0,maxWidth:screenWidth,tag:item.ImageTags.Primary}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):item.BackdropImageTags&&item.BackdropImageTags.length?(imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Backdrop",index:0,maxWidth:screenWidth,tag:item.BackdropImageTags[0]}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):item.ParentBackdropItemId&&item.ParentBackdropImageTags&&item.ParentBackdropImageTags.length?(imgUrl=apiClient.getScaledImageUrl(item.ParentBackdropItemId,{type:"Backdrop",index:0,tag:item.ParentBackdropImageTags[0],maxWidth:screenWidth}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):item.ImageTags&&item.ImageTags.Thumb?(imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Thumb",index:0,maxWidth:screenWidth,tag:item.ImageTags.Thumb}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):(itemBackdropElement.classList.add("noBackdrop"),itemBackdropElement.style.backgroundImage=""),hasbackdrop}};return window.LibraryBrowser=libraryBrowser,libraryBrowser}); \ No newline at end of file +define(["appSettings","dom","browser","datetime","appRouter","events","scrollStyles"],function(appSettings,dom,browser,datetime,appRouter,events){"use strict";function fadeInRight(elem){var pct=browser.mobile?"4%":"0.5%",keyframes=[{opacity:"0",transform:"translate3d("+pct+", 0, 0)",offset:0},{opacity:"1",transform:"none",offset:1}];elem.animate(keyframes,{duration:160,iterations:1,easing:"ease-out"})}var pageSizeKey="pagesize_v4",libraryBrowser={getDefaultPageSize:function(key,defaultValue){return 100},getSavedQueryKey:function(modifier){return window.location.href.split("#")[0]+(modifier||"")},loadSavedQueryValues:function(key,query){var values=appSettings.get(key+"_"+Dashboard.getCurrentUserId());return values?(values=JSON.parse(values),Object.assign(query,values)):query},saveQueryValues:function(key,query){var values={};query.SortBy&&(values.SortBy=query.SortBy),query.SortOrder&&(values.SortOrder=query.SortOrder);try{appSettings.set(key+"_"+Dashboard.getCurrentUserId(),JSON.stringify(values))}catch(e){}},saveViewSetting:function(key,value){try{appSettings.set(key+"_"+Dashboard.getCurrentUserId()+"_view",value)}catch(e){}},getSavedView:function(key){var val=appSettings.get(key+"_"+Dashboard.getCurrentUserId()+"_view");return val},getSavedViewSetting:function(key){return new Promise(function(resolve,reject){var val=libraryBrowser.getSavedView(key);resolve(val)})},allowSwipe:function(target){function allowSwipeOn(elem){return!dom.parentWithTag(elem,"input")&&(!elem.classList||!elem.classList.contains("hiddenScrollX")&&!elem.classList.contains("smoothScrollX")&&!elem.classList.contains("animatedScrollX"))}for(var parent=target;null!=parent;){if(!allowSwipeOn(parent))return!1;parent=parent.parentNode}return!0},configureSwipeTabs:function(ownerpage,tabs){if(browser.touch){var onSwipeLeft=(ownerpage.querySelectorAll(".pageTabContent").length,function(e,target){libraryBrowser.allowSwipe(target)&&ownerpage.contains(target)&&tabs.selectNext()}),onSwipeRight=function(e,target){libraryBrowser.allowSwipe(target)&&ownerpage.contains(target)&&tabs.selectPrevious()};require(["touchHelper"],function(TouchHelper){var touchHelper=new TouchHelper(ownerpage.parentNode.parentNode);events.on(touchHelper,"swipeleft",onSwipeLeft),events.on(touchHelper,"swiperight",onSwipeRight),ownerpage.addEventListener("viewdestroy",function(){touchHelper.destroy()})})}},configurePaperLibraryTabs:function(ownerpage,tabs,panels,animateTabs,enableSwipe){enableSwipe!==!1&&libraryBrowser.configureSwipeTabs(ownerpage,tabs),tabs.addEventListener("beforetabchange",function(e){null!=e.detail.previousIndex&&panels[e.detail.previousIndex].classList.remove("is-active");var newPanel=panels[e.detail.selectedTabIndex];null!=e.detail.previousIndex&&e.detail.previousIndex!=e.detail.selectedTabIndex&&newPanel.animate&&(animateTabs||[]).indexOf(e.detail.selectedTabIndex)!=-1&&fadeInRight(newPanel),newPanel.classList.add("is-active")})},getArtistLinksHtml:function(artists,serverId,cssClass){var html=[];cssClass=cssClass?cssClass+" button-link":"button-link";for(var i=0,length=artists.length;i'+artist.Name+"")}return html=html.join(" / ")},getListItemInfo:function(elem){for(var elemWithAttributes=elem;!elemWithAttributes.getAttribute("data-id");)elemWithAttributes=elemWithAttributes.parentNode;var itemId=elemWithAttributes.getAttribute("data-id"),index=elemWithAttributes.getAttribute("data-index"),mediaType=elemWithAttributes.getAttribute("data-mediatype");return{id:itemId,index:index,mediaType:mediaType,context:elemWithAttributes.getAttribute("data-context")}},renderName:function(item,nameElem,linkToElement,context){require(["itemHelper"],function(itemHelper){var name=itemHelper.getDisplayName(item,{includeParentInfo:!1});linkToElement?nameElem.innerHTML=''+name+"":nameElem.innerHTML=name})},renderParentName:function(item,parentNameElem,context){var html=[],contextParam=context?"&context="+context:"";item.AlbumArtists?html.push(libraryBrowser.getArtistLinksHtml(item.AlbumArtists,item.ServerId,"detailPageParentLink")):item.ArtistItems&&item.ArtistItems.length&&"MusicVideo"==item.Type?html.push(libraryBrowser.getArtistLinksHtml(item.ArtistItems,item.ServerId,"detailPageParentLink")):item.SeriesName&&"Episode"==item.Type&&html.push(''+item.SeriesName+""),item.SeriesName&&"Season"==item.Type?html.push(''+item.SeriesName+""):null!=item.ParentIndexNumber&&"Episode"==item.Type?html.push(''+item.SeasonName+""):item.Album&&"Audio"==item.Type&&(item.AlbumId||item.ParentId)?html.push(''+item.Album+""):item.Album&&"MusicVideo"==item.Type&&item.AlbumId?html.push(''+item.Album+""):item.Album?html.push(item.Album):(item.IsSeries||item.EpisodeTitle)&&html.push(item.Name),html.length?(parentNameElem.classList.remove("hide"),parentNameElem.innerHTML=html.join(" - ")):parentNameElem.classList.add("hide")},showLayoutMenu:function(button,currentLayout,views){var dispatchEvent=!0;views||(dispatchEvent=!1,views=button.getAttribute("data-layouts"),views=views?views.split(","):["List","Poster","PosterCard","Thumb","ThumbCard"]);var menuItems=views.map(function(v){return{name:Globalize.translate("Option"+v),id:v,selected:currentLayout==v}});require(["actionsheet"],function(actionsheet){actionsheet.show({items:menuItems,positionTo:button,callback:function(id){button.dispatchEvent(new CustomEvent("layoutchange",{detail:{viewStyle:id},bubbles:!0,cancelable:!1})),dispatchEvent||window.$&&$(button).trigger("layoutchange",[id])}})})},getQueryPagingHtml:function(options){var startIndex=options.startIndex,limit=options.limit,totalRecordCount=options.totalRecordCount;if(limit&&options.updatePageSizeSetting!==!1)try{appSettings.set(options.pageSizeKey||pageSizeKey,limit)}catch(e){}var html="",recordsEnd=Math.min(startIndex+limit,totalRecordCount),showControls=limit',showControls){html+='';var startAtDisplay=totalRecordCount?startIndex+1:0;html+=startAtDisplay+"-"+recordsEnd+" of "+totalRecordCount,html+=""}return(showControls||options.viewButton||options.filterButton||options.sortButton||options.addLayoutButton)&&(html+='
',showControls&&(html+='',html+=''),options.addLayoutButton&&(html+=''),options.sortButton&&(html+=''),options.filterButton&&(html+=''),html+="
"),html+=""},showSortMenu:function(options){require(["dialogHelper","emby-radio"],function(dialogHelper){function onSortByChange(){var newValue=this.value;if(this.checked){var changed=options.query.SortBy!=newValue;options.query.SortBy=newValue.replace("_",","),options.query.StartIndex=0,options.callback&&changed&&options.callback()}}function onSortOrderChange(){var newValue=this.value;if(this.checked){var changed=options.query.SortOrder!=newValue;options.query.SortOrder=newValue,options.query.StartIndex=0,options.callback&&changed&&options.callback()}}var dlg=dialogHelper.createDialog({removeOnClose:!0,modal:!1,entryAnimationDuration:160,exitAnimationDuration:200});dlg.classList.add("ui-body-a"),dlg.classList.add("background-theme-a"),dlg.classList.add("formDialog");var html="";html+='
',html+='

',html+=Globalize.translate("HeaderSortBy"),html+="

";var i,length,isChecked;for(html+="
",i=0,length=options.items.length;i"+option.name+""}html+="
",html+='

',html+=Globalize.translate("HeaderSortOrder"),html+="

",html+="
",isChecked="Ascending"==options.query.SortOrder?" checked":"",html+='",isChecked="Descending"==options.query.SortOrder?" checked":"",html+='",html+="
",html+="
",dlg.innerHTML=html,dialogHelper.open(dlg);var sortBys=dlg.querySelectorAll(".menuSortBy");for(i=0,length=sortBys.length;i',editable&&(html+=""),detectRatio&&item.PrimaryImageAspectRatio&&(item.PrimaryImageAspectRatio>=1.48?shape="thumb":item.PrimaryImageAspectRatio>=.85&&item.PrimaryImageAspectRatio<=1.34&&(shape="square")),html+="",editable&&(html+="");var progressHtml=item.IsFolder||!item.UserData?"":indicators.getProgressBarHtml(item);if(html+='
',progressHtml&&(html+=progressHtml),html+="
",html+="",elem.innerHTML=html,"thumb"==shape?(elem.classList.add("thumbDetailImageContainer"),elem.classList.remove("portraitDetailImageContainer"),elem.classList.remove("squareDetailImageContainer")):"square"==shape?(elem.classList.remove("thumbDetailImageContainer"),elem.classList.remove("portraitDetailImageContainer"),elem.classList.add("squareDetailImageContainer")):(elem.classList.remove("thumbDetailImageContainer"),elem.classList.add("portraitDetailImageContainer"),elem.classList.remove("squareDetailImageContainer")),url){var img=elem.querySelector("img");img.onload=function(){img.src.indexOf("empty.png")==-1&&img.classList.add("loaded")},imageLoader.lazyImage(img,url)}},renderDetailPageBackdrop:function(page,item,apiClient,imageLoader,indicators){var imgUrl,screenWidth=screen.availWidth,hasbackdrop=!1,itemBackdropElement=page.querySelector("#itemBackdrop"),usePrimaryImage="Video"===item.MediaType&&"Movie"!==item.Type&&"Trailer"!==item.Type||item.MediaType&&"Video"!==item.MediaType,useThumbImage="Program"===item.Type;return useThumbImage&&item.ImageTags&&item.ImageTags.Thumb?(imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Thumb",index:0,maxWidth:screenWidth,tag:item.ImageTags.Thumb}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):usePrimaryImage&&item.ImageTags&&item.ImageTags.Primary?(imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Primary",index:0,maxWidth:screenWidth,tag:item.ImageTags.Primary}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):item.BackdropImageTags&&item.BackdropImageTags.length?(imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Backdrop",index:0,maxWidth:screenWidth,tag:item.BackdropImageTags[0]}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):item.ParentBackdropItemId&&item.ParentBackdropImageTags&&item.ParentBackdropImageTags.length?(imgUrl=apiClient.getScaledImageUrl(item.ParentBackdropItemId,{type:"Backdrop",index:0,tag:item.ParentBackdropImageTags[0],maxWidth:screenWidth}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):item.ImageTags&&item.ImageTags.Thumb?(imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Thumb",index:0,maxWidth:screenWidth,tag:item.ImageTags.Thumb}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):(itemBackdropElement.classList.add("noBackdrop"),itemBackdropElement.style.backgroundImage=""),hasbackdrop}};return window.LibraryBrowser=libraryBrowser,libraryBrowser}); \ No newline at end of file diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index ccd7835211..9b7e4c843a 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -1 +1 @@ -define(["layoutManager","connectionManager","events","viewManager","libraryBrowser","embyRouter","apphost","playbackManager","browser","globalize","paper-icon-button-light","material-icons","scrollStyles","flexStyles"],function(layoutManager,connectionManager,events,viewManager,libraryBrowser,embyRouter,appHost,playbackManager,browser,globalize){"use strict";function renderHeader(){var html="";html+='
',html+='
';var backIcon=browser.safari?"chevron_left":"";html+='",html+='',html+='',html+='

',html+="
",html+='
',html+='',html+='',html+='',html+='',html+='',layoutManager.mobile||(html+=''),html+="
",html+="
",html+='
',html+="
",skinHeader.innerHTML=html,btnHome=skinHeader.querySelector(".headerAppsButton"),browser.chrome||skinHeader.classList.add("skinHeader-blurred"),lazyLoadViewMenuBarImages(),bindMenuEvents()}function lazyLoadViewMenuBarImages(){require(["imageLoader"],function(imageLoader){imageLoader.lazyChildren(skinHeader)})}function onBackClick(){embyRouter.back()}function updateUserInHeader(user){var hasImage,headerUserButton=skinHeader.querySelector(".headerUserButton");if(user&&user.name&&user.imageUrl){var userButtonHeight=26,url=user.imageUrl;user.supportsImageParams&&(url+="&height="+Math.round(userButtonHeight*Math.max(window.devicePixelRatio||1,2))),headerUserButton&&(updateHeaderUserButton(headerUserButton,url),hasImage=!0)}headerUserButton&&!hasImage&&updateHeaderUserButton(headerUserButton,null),user&&updateLocalUser(user.localUser),requiresUserRefresh=!1}function updateHeaderUserButton(headerUserButton,src){src?(headerUserButton.classList.add("headerUserButtonRound"),headerUserButton.classList.remove("autoSize"),headerUserButton.innerHTML=''):(headerUserButton.classList.remove("headerUserButtonRound"),headerUserButton.classList.add("autoSize"),headerUserButton.innerHTML='person')}function updateLocalUser(user){var headerSearchButton=skinHeader.querySelector(".headerSearchButton"),btnCast=skinHeader.querySelector(".btnCast"),dashboardEntryHeaderButton=skinHeader.querySelector(".dashboardEntryHeaderButton");user?(btnCast.classList.remove("hide"),headerSearchButton&&headerSearchButton.classList.remove("hide"),dashboardEntryHeaderButton&&(user.Policy.IsAdministrator?dashboardEntryHeaderButton.classList.remove("hide"):dashboardEntryHeaderButton.classList.add("hide"))):(btnCast.classList.add("hide"),headerSearchButton&&headerSearchButton.classList.add("hide"),dashboardEntryHeaderButton&&dashboardEntryHeaderButton.classList.add("hide"))}function showSearch(){Dashboard.navigate("search.html")}function onHeaderUserButtonClick(e){Dashboard.showUserFlyout(e.target)}function onHeaderAppsButtonClick(){Dashboard.navigate("home.html")}function bindMenuEvents(){mainDrawerButton=document.querySelector(".mainDrawerButton"),mainDrawerButton&&mainDrawerButton.addEventListener("click",toggleMainDrawer);var headerBackButton=document.querySelector(".headerBackButton");headerBackButton&&headerBackButton.addEventListener("click",onBackClick);var headerSearchButton=document.querySelector(".headerSearchButton");headerSearchButton&&headerSearchButton.addEventListener("click",showSearch);var headerUserButton=document.querySelector(".headerUserButton");headerUserButton&&headerUserButton.addEventListener("click",onHeaderUserButtonClick);var headerAppsButton=document.querySelector(".headerAppsButton");headerAppsButton&&headerAppsButton.addEventListener("click",onHeaderAppsButtonClick),initHeadRoom(skinHeader),skinHeader.querySelector(".btnNotifications").addEventListener("click",function(){Dashboard.navigate("notificationlist.html")});var btnCast=document.querySelector(".headerButton-btnCast");btnCast&&btnCast.addEventListener("click",onCastButtonClicked)}function onCastButtonClicked(){var btn=this;require(["playerSelectionMenu"],function(playerSelectionMenu){playerSelectionMenu.show(btn)})}function getItemHref(item,context){return embyRouter.getRouteUrl(item,{context:context})}function toggleMainDrawer(){navDrawerInstance.isVisible?closeMainDrawer():openMainDrawer()}function openMainDrawer(){navDrawerInstance.open(),lastOpenTime=(new Date).getTime()}function onMainDrawerOpened(){layoutManager.mobile&&document.body.classList.add("bodyWithPopupOpen")}function closeMainDrawer(){navDrawerInstance.close()}function onMainDrawerSelect(e){navDrawerInstance.isVisible?onMainDrawerOpened():document.body.classList.remove("bodyWithPopupOpen")}function refreshLibraryInfoInDrawer(user,drawer){var html="";html+='
';var homeHref=window.ApiClient?"home.html":"selectserver.html?showuser=1";html+='home'+globalize.translate("ButtonHome")+"",html+='
',html+='
',html+='
',html+=globalize.translate("sharedcomponents#HeaderMyDownloads"),html+="
",html+='folder'+globalize.translate("sharedcomponents#Browse")+"",html+='edit'+globalize.translate("sharedcomponents#Manage")+"",html+="
",html+='
',html+='
',html+="
";var localUser=user.localUser;localUser&&localUser.Policy.IsAdministrator&&(html+='
',html+='
',html+='
',html+=globalize.translate("HeaderAdmin"),html+="
",html+='settings'+globalize.translate("ButtonManageServer")+"",html+='folder'+globalize.translate("MetadataManager")+"",layoutManager.mobile||(html+=''+globalize.translate("ButtonReports")+""),html+="
"),html+='",navDrawerScrollContainer.innerHTML=html;var lnkManageServer=navDrawerScrollContainer.querySelector(".lnkManageServer");lnkManageServer&&lnkManageServer.addEventListener("click",onManageServerClicked)}function refreshDashboardInfoInDrawer(page,user){currentDrawerType="admin",loadNavDrawer(),navDrawerScrollContainer.querySelector(".adminDrawerLogo")?updateDashboardMenuSelectedItem():createDashboardMenu(page)}function updateDashboardMenuSelectedItem(){for(var links=navDrawerScrollContainer.querySelectorAll(".sidebarLink"),i=0,length=links.length;i",item.icon&&(menuHtml+=''+item.icon+""),menuHtml+='',menuHtml+=item.name,menuHtml+="",menuHtml+=""}function getToolsMenuHtml(){var i,length,item,items=getToolsMenuLinks(),menuHtml="";for(menuHtml+='
',i=0,length=items.length;i
"),item.href?menuHtml+=getToolsLinkHtml(item):item.name&&(menuHtml+='
',menuHtml+=item.name,menuHtml+="
");return menuHtml+=""}function createDashboardMenu(){var html="";html+='",html+=getToolsMenuHtml(),html=html.split("href=").join('onclick="return LibraryMenu.onLinkClicked(event, this);" href='),navDrawerScrollContainer.innerHTML=html,updateDashboardMenuSelectedItem()}function onSidebarLinkClick(){var section=this.getElementsByClassName("sectionName")[0],text=section?section.innerHTML:this.innerHTML;LibraryMenu.setTitle(text)}function getUserViews(apiClient,userId){return apiClient.getUserViews({},userId).then(function(result){for(var items=result.Items,list=[],i=0,length=items.length;i',html+=globalize.translate("HeaderMedia"),html+="",html+=items.map(function(i){var icon="folder",color="inherit",itemId=i.Id;"channels"==i.CollectionType?itemId="channels":"livetv"==i.CollectionType&&(itemId="livetv"),"photos"==i.CollectionType?(icon="photo_library",color="#009688"):"music"==i.CollectionType||"musicvideos"==i.CollectionType?(icon="library_music",color="#FB8521"):"books"==i.CollectionType?(icon="library_books",color="#1AA1E1"):"playlists"==i.CollectionType?(icon="view_list",color="#795548"):"games"==i.CollectionType?(icon="games",color="#F44336"):"movies"==i.CollectionType?(icon="video_library",color="#CE5043"):"channels"==i.CollectionType||"Channel"==i.Type?(icon="videocam",color="#E91E63"):"tvshows"==i.CollectionType?(icon="tv",color="#4CAF50"):"livetv"==i.CollectionType&&(icon="live_tv",color="#293AAE"),icon=i.icon||icon;var onclick=i.onclick?" function(){"+i.onclick+"}":"null";return''+icon+''+i.Name+""}).join(""),libraryMenuOptions.innerHTML=html;for(var elem=libraryMenuOptions,sidebarLinks=elem.querySelectorAll(".sidebarLink"),i=0,length=sidebarLinks.length;i200&&setTimeout(function(){closeMainDrawer(),setTimeout(function(){action?action():Dashboard.navigate(link.href)},getNavigateDelay())},50),event.stopPropagation(),event.preventDefault(),!1)},onLogoutClicked:function(){return(new Date).getTime()-lastOpenTime>200&&(closeMainDrawer(),setTimeout(function(){Dashboard.logout()},getNavigateDelay())),!1},onHardwareMenuButtonClick:function(){toggleMainDrawer()},onSettingsClicked:function(event){return 1!=event.which||(Dashboard.navigate("dashboard.html"),!1)},setTabs:function(type,selectedIndex,builder){require(["mainTabsManager"],function(mainTabsManager){type?mainTabsManager.setTabs(viewManager.currentView(),selectedIndex,builder):mainTabsManager.setTabs(null)})},setDefaultTitle:function(){pageTitleElement||(pageTitleElement=document.querySelector(".pageTitle")),pageTitleElement&&(pageTitleElement.classList.add("pageTitleWithLogo"),pageTitleElement.classList.add("pageTitleWithDefaultLogo"),pageTitleElement.style.backgroundImage="url(css/images/logo.png)",pageTitleElement.innerHTML=""),document.title="Emby"},setTitle:function(title){var html=title,page=viewManager.currentView();if(page){var helpUrl=page.getAttribute("data-helpurl");helpUrl&&(html+='info'+globalize.translate("ButtonHelp")+"")}pageTitleElement||(pageTitleElement=document.querySelector(".pageTitle")),pageTitleElement&&(pageTitleElement.classList.remove("pageTitleWithLogo"),pageTitleElement.classList.remove("pageTitleWithDefaultLogo"),pageTitleElement.style.backgroundImage=null,pageTitleElement.innerHTML=html),document.title=title||"Emby"},setTransparentMenu:function(transparent){transparent?skinHeader.classList.add("semiTransparent"):skinHeader.classList.remove("semiTransparent")}},pageClassOn("pagebeforeshow","page",function(e){var page=this;page.classList.contains("withTabs")||LibraryMenu.setTabs(null)}),pageClassOn("pageshow","page",function(e){var page=this;btnHome&&("indexPage"===page.id?btnHome.classList.add("hide"):btnHome.classList.remove("hide"));var isDashboardPage=page.classList.contains("type-interior");isDashboardPage?(mainDrawerButton&&mainDrawerButton.classList.remove("hide"),refreshDashboardInfoInDrawer(page)):(mainDrawerButton&&(enableLibraryNavDrawer?mainDrawerButton.classList.remove("hide"):mainDrawerButton.classList.add("hide")),"library"!==currentDrawerType&&refreshLibraryDrawer()),setDrawerClass(page),updateViewMenuBar(page),e.detail.isRestored||window.scrollTo(0,0),updateTitle(page),updateBackButton(page),page.classList.contains("libraryPage")?(document.body.classList.add("libraryDocument"),document.body.classList.remove("dashboardDocument"),document.body.classList.remove("hideMainDrawer"),navDrawerInstance&&navDrawerInstance.setEdgeSwipeEnabled(!0)):isDashboardPage?(document.body.classList.remove("libraryDocument"),document.body.classList.add("dashboardDocument"),document.body.classList.remove("hideMainDrawer"),navDrawerInstance&&navDrawerInstance.setEdgeSwipeEnabled(!0)):(document.body.classList.remove("libraryDocument"),document.body.classList.remove("dashboardDocument"),document.body.classList.add("hideMainDrawer"),navDrawerInstance&&navDrawerInstance.setEdgeSwipeEnabled(!1)),updateLibraryNavLinks(page)}),window.ApiClient&&initializeApiClient(window.ApiClient),renderHeader(),events.on(connectionManager,"apiclientcreated",function(e,apiClient){initializeApiClient(apiClient)}),events.on(connectionManager,"localusersignedin",function(e,user){currentDrawerType=null,setDrawerClass(),connectionManager.user(connectionManager.getApiClient(user.ServerId)).then(function(user){updateUserInHeader(user)})}),events.on(connectionManager,"localusersignedout",updateUserInHeader),events.on(playbackManager,"playerchange",updateCastIcon),setDrawerClass(),LibraryMenu}); \ No newline at end of file +define(["layoutManager","connectionManager","events","viewManager","libraryBrowser","appRouter","apphost","playbackManager","browser","globalize","paper-icon-button-light","material-icons","scrollStyles","flexStyles"],function(layoutManager,connectionManager,events,viewManager,libraryBrowser,appRouter,appHost,playbackManager,browser,globalize){"use strict";function renderHeader(){var html="";html+='
',html+='
';var backIcon=browser.safari?"chevron_left":"";html+='",html+='',html+='',html+='

',html+="
",html+='
',html+='',html+='',html+='',html+='',html+='',layoutManager.mobile||(html+=''),html+="
",html+="
",html+='
',html+="
",skinHeader.innerHTML=html,btnHome=skinHeader.querySelector(".headerAppsButton"),browser.chrome||skinHeader.classList.add("skinHeader-blurred"),lazyLoadViewMenuBarImages(),bindMenuEvents()}function lazyLoadViewMenuBarImages(){require(["imageLoader"],function(imageLoader){imageLoader.lazyChildren(skinHeader)})}function onBackClick(){appRouter.back()}function updateUserInHeader(user){var hasImage,headerUserButton=skinHeader.querySelector(".headerUserButton");if(user&&user.name&&user.imageUrl){var userButtonHeight=26,url=user.imageUrl;user.supportsImageParams&&(url+="&height="+Math.round(userButtonHeight*Math.max(window.devicePixelRatio||1,2))),headerUserButton&&(updateHeaderUserButton(headerUserButton,url),hasImage=!0)}headerUserButton&&!hasImage&&updateHeaderUserButton(headerUserButton,null),user&&updateLocalUser(user.localUser),requiresUserRefresh=!1}function updateHeaderUserButton(headerUserButton,src){src?(headerUserButton.classList.add("headerUserButtonRound"),headerUserButton.classList.remove("autoSize"),headerUserButton.innerHTML=''):(headerUserButton.classList.remove("headerUserButtonRound"),headerUserButton.classList.add("autoSize"),headerUserButton.innerHTML='person')}function updateLocalUser(user){var headerSearchButton=skinHeader.querySelector(".headerSearchButton"),btnCast=skinHeader.querySelector(".btnCast"),dashboardEntryHeaderButton=skinHeader.querySelector(".dashboardEntryHeaderButton");user?(btnCast.classList.remove("hide"),headerSearchButton&&headerSearchButton.classList.remove("hide"),dashboardEntryHeaderButton&&(user.Policy.IsAdministrator?dashboardEntryHeaderButton.classList.remove("hide"):dashboardEntryHeaderButton.classList.add("hide"))):(btnCast.classList.add("hide"),headerSearchButton&&headerSearchButton.classList.add("hide"),dashboardEntryHeaderButton&&dashboardEntryHeaderButton.classList.add("hide"))}function showSearch(){Dashboard.navigate("search.html")}function onHeaderUserButtonClick(e){Dashboard.showUserFlyout(e.target)}function onHeaderAppsButtonClick(){Dashboard.navigate("home.html")}function bindMenuEvents(){mainDrawerButton=document.querySelector(".mainDrawerButton"),mainDrawerButton&&mainDrawerButton.addEventListener("click",toggleMainDrawer);var headerBackButton=document.querySelector(".headerBackButton");headerBackButton&&headerBackButton.addEventListener("click",onBackClick);var headerSearchButton=document.querySelector(".headerSearchButton");headerSearchButton&&headerSearchButton.addEventListener("click",showSearch);var headerUserButton=document.querySelector(".headerUserButton");headerUserButton&&headerUserButton.addEventListener("click",onHeaderUserButtonClick);var headerAppsButton=document.querySelector(".headerAppsButton");headerAppsButton&&headerAppsButton.addEventListener("click",onHeaderAppsButtonClick),initHeadRoom(skinHeader),skinHeader.querySelector(".btnNotifications").addEventListener("click",function(){Dashboard.navigate("notificationlist.html")});var btnCast=document.querySelector(".headerButton-btnCast");btnCast&&btnCast.addEventListener("click",onCastButtonClicked)}function onCastButtonClicked(){var btn=this;require(["playerSelectionMenu"],function(playerSelectionMenu){playerSelectionMenu.show(btn)})}function getItemHref(item,context){return appRouter.getRouteUrl(item,{context:context})}function toggleMainDrawer(){navDrawerInstance.isVisible?closeMainDrawer():openMainDrawer()}function openMainDrawer(){navDrawerInstance.open(),lastOpenTime=(new Date).getTime()}function onMainDrawerOpened(){layoutManager.mobile&&document.body.classList.add("bodyWithPopupOpen")}function closeMainDrawer(){navDrawerInstance.close()}function onMainDrawerSelect(e){navDrawerInstance.isVisible?onMainDrawerOpened():document.body.classList.remove("bodyWithPopupOpen")}function refreshLibraryInfoInDrawer(user,drawer){var html="";html+='
';var homeHref=window.ApiClient?"home.html":"selectserver.html?showuser=1";html+='home'+globalize.translate("ButtonHome")+"",html+='
',html+='
',html+='
',html+=globalize.translate("sharedcomponents#HeaderMyDownloads"),html+="
",html+='folder'+globalize.translate("sharedcomponents#Browse")+"",html+='edit'+globalize.translate("sharedcomponents#Manage")+"",html+="
",html+='
',html+='
',html+="
";var localUser=user.localUser;localUser&&localUser.Policy.IsAdministrator&&(html+='
',html+='
',html+='
',html+=globalize.translate("HeaderAdmin"),html+="
",html+='settings'+globalize.translate("ButtonManageServer")+"",html+='folder'+globalize.translate("MetadataManager")+"",layoutManager.mobile||(html+=''+globalize.translate("ButtonReports")+""),html+="
"),html+='",navDrawerScrollContainer.innerHTML=html;var lnkManageServer=navDrawerScrollContainer.querySelector(".lnkManageServer");lnkManageServer&&lnkManageServer.addEventListener("click",onManageServerClicked)}function refreshDashboardInfoInDrawer(page,user){currentDrawerType="admin",loadNavDrawer(),navDrawerScrollContainer.querySelector(".adminDrawerLogo")?updateDashboardMenuSelectedItem():createDashboardMenu(page)}function updateDashboardMenuSelectedItem(){for(var links=navDrawerScrollContainer.querySelectorAll(".sidebarLink"),i=0,length=links.length;i",item.icon&&(menuHtml+=''+item.icon+""),menuHtml+='',menuHtml+=item.name,menuHtml+="",menuHtml+=""}function getToolsMenuHtml(){var i,length,item,items=getToolsMenuLinks(),menuHtml="";for(menuHtml+='
',i=0,length=items.length;i
"),item.href?menuHtml+=getToolsLinkHtml(item):item.name&&(menuHtml+='
',menuHtml+=item.name,menuHtml+="
");return menuHtml+=""}function createDashboardMenu(){var html="";html+='",html+=getToolsMenuHtml(),html=html.split("href=").join('onclick="return LibraryMenu.onLinkClicked(event, this);" href='),navDrawerScrollContainer.innerHTML=html,updateDashboardMenuSelectedItem()}function onSidebarLinkClick(){var section=this.getElementsByClassName("sectionName")[0],text=section?section.innerHTML:this.innerHTML;LibraryMenu.setTitle(text)}function getUserViews(apiClient,userId){return apiClient.getUserViews({},userId).then(function(result){for(var items=result.Items,list=[],i=0,length=items.length;i',html+=globalize.translate("HeaderMedia"),html+="",html+=items.map(function(i){var icon="folder",color="inherit",itemId=i.Id;"channels"==i.CollectionType?itemId="channels":"livetv"==i.CollectionType&&(itemId="livetv"),"photos"==i.CollectionType?(icon="photo_library",color="#009688"):"music"==i.CollectionType||"musicvideos"==i.CollectionType?(icon="library_music",color="#FB8521"):"books"==i.CollectionType?(icon="library_books",color="#1AA1E1"):"playlists"==i.CollectionType?(icon="view_list",color="#795548"):"games"==i.CollectionType?(icon="games",color="#F44336"):"movies"==i.CollectionType?(icon="video_library",color="#CE5043"):"channels"==i.CollectionType||"Channel"==i.Type?(icon="videocam",color="#E91E63"):"tvshows"==i.CollectionType?(icon="tv",color="#4CAF50"):"livetv"==i.CollectionType&&(icon="live_tv",color="#293AAE"),icon=i.icon||icon;var onclick=i.onclick?" function(){"+i.onclick+"}":"null";return''+icon+''+i.Name+""}).join(""),libraryMenuOptions.innerHTML=html;for(var elem=libraryMenuOptions,sidebarLinks=elem.querySelectorAll(".sidebarLink"),i=0,length=sidebarLinks.length;i200&&setTimeout(function(){closeMainDrawer(),setTimeout(function(){action?action():Dashboard.navigate(link.href)},getNavigateDelay())},50),event.stopPropagation(),event.preventDefault(),!1)},onLogoutClicked:function(){return(new Date).getTime()-lastOpenTime>200&&(closeMainDrawer(),setTimeout(function(){Dashboard.logout()},getNavigateDelay())),!1},onHardwareMenuButtonClick:function(){toggleMainDrawer()},onSettingsClicked:function(event){return 1!=event.which||(Dashboard.navigate("dashboard.html"),!1)},setTabs:function(type,selectedIndex,builder){require(["mainTabsManager"],function(mainTabsManager){type?mainTabsManager.setTabs(viewManager.currentView(),selectedIndex,builder):mainTabsManager.setTabs(null)})},setDefaultTitle:function(){pageTitleElement||(pageTitleElement=document.querySelector(".pageTitle")),pageTitleElement&&(pageTitleElement.classList.add("pageTitleWithLogo"),pageTitleElement.classList.add("pageTitleWithDefaultLogo"),pageTitleElement.style.backgroundImage="url(css/images/logo.png)",pageTitleElement.innerHTML=""),document.title="Emby"},setTitle:function(title){var html=title,page=viewManager.currentView();if(page){var helpUrl=page.getAttribute("data-helpurl");helpUrl&&(html+='info'+globalize.translate("ButtonHelp")+"")}pageTitleElement||(pageTitleElement=document.querySelector(".pageTitle")),pageTitleElement&&(pageTitleElement.classList.remove("pageTitleWithLogo"),pageTitleElement.classList.remove("pageTitleWithDefaultLogo"),pageTitleElement.style.backgroundImage=null,pageTitleElement.innerHTML=html),document.title=title||"Emby"},setTransparentMenu:function(transparent){transparent?skinHeader.classList.add("semiTransparent"):skinHeader.classList.remove("semiTransparent")}},pageClassOn("pagebeforeshow","page",function(e){var page=this;page.classList.contains("withTabs")||LibraryMenu.setTabs(null)}),pageClassOn("pageshow","page",function(e){var page=this;btnHome&&("indexPage"===page.id?btnHome.classList.add("hide"):btnHome.classList.remove("hide"));var isDashboardPage=page.classList.contains("type-interior");isDashboardPage?(mainDrawerButton&&mainDrawerButton.classList.remove("hide"),refreshDashboardInfoInDrawer(page)):(mainDrawerButton&&(enableLibraryNavDrawer?mainDrawerButton.classList.remove("hide"):mainDrawerButton.classList.add("hide")),"library"!==currentDrawerType&&refreshLibraryDrawer()),setDrawerClass(page),updateViewMenuBar(page),e.detail.isRestored||window.scrollTo(0,0),updateTitle(page),updateBackButton(page),page.classList.contains("libraryPage")?(document.body.classList.add("libraryDocument"),document.body.classList.remove("dashboardDocument"),document.body.classList.remove("hideMainDrawer"),navDrawerInstance&&navDrawerInstance.setEdgeSwipeEnabled(!0)):isDashboardPage?(document.body.classList.remove("libraryDocument"),document.body.classList.add("dashboardDocument"),document.body.classList.remove("hideMainDrawer"),navDrawerInstance&&navDrawerInstance.setEdgeSwipeEnabled(!0)):(document.body.classList.remove("libraryDocument"),document.body.classList.remove("dashboardDocument"),document.body.classList.add("hideMainDrawer"),navDrawerInstance&&navDrawerInstance.setEdgeSwipeEnabled(!1)),updateLibraryNavLinks(page)}),window.ApiClient&&initializeApiClient(window.ApiClient),renderHeader(),events.on(connectionManager,"apiclientcreated",function(e,apiClient){initializeApiClient(apiClient)}),events.on(connectionManager,"localusersignedin",function(e,user){currentDrawerType=null,setDrawerClass(),connectionManager.user(connectionManager.getApiClient(user.ServerId)).then(function(user){updateUserInHeader(user)})}),events.on(connectionManager,"localusersignedout",updateUserInHeader),events.on(playbackManager,"playerchange",updateCastIcon),setDrawerClass(),LibraryMenu}); \ No newline at end of file diff --git a/dashboard-ui/scripts/moviegenres.js b/dashboard-ui/scripts/moviegenres.js index 7ba188f412..2d539cd491 100644 --- a/dashboard-ui/scripts/moviegenres.js +++ b/dashboard-ui/scripts/moviegenres.js @@ -1 +1 @@ -define(["layoutManager","loading","libraryBrowser","cardBuilder","lazyLoader","apphost","globalize","embyRouter","dom","emby-linkbutton"],function(layoutManager,loading,libraryBrowser,cardBuilder,lazyLoader,appHost,globalize,embyRouter,dom){"use strict";return function(view,params,tabContent){function getPageData(){var key=getSavedQueryKey(),pageData=data[key];return pageData||(pageData=data[key]={query:{SortBy:"SortName",SortOrder:"Ascending",IncludeItemTypes:"Movie",Recursive:!0,EnableTotalRecordCount:!1},view:"Poster"},pageData.query.ParentId=params.topParentId,libraryBrowser.loadSavedQueryValues(key,pageData.query)),pageData}function getQuery(){return getPageData().query}function getSavedQueryKey(){return libraryBrowser.getSavedQueryKey("moviegenres")}function getPromise(){loading.show();var query=getQuery();return ApiClient.getGenres(ApiClient.getCurrentUserId(),query)}function enableScrollX(){return!layoutManager.desktop}function getThumbShape(){return enableScrollX()?"overflowBackdrop":"backdrop"}function getPortraitShape(){return enableScrollX()?"overflowPortrait":"portrait"}function fillItemsContainer(elem){var id=elem.getAttribute("data-id"),viewStyle=self.getCurrentViewStyle(),limit="Thumb"==viewStyle||"ThumbCard"==viewStyle?5:8;enableScrollX()&&(limit=10);var enableImageTypes="Thumb"==viewStyle||"ThumbCard"==viewStyle?"Primary,Backdrop,Thumb":"Primary",query={SortBy:"SortName",SortOrder:"Ascending",IncludeItemTypes:"Movie",Recursive:!0,Fields:"PrimaryImageAspectRatio,MediaSourceCount,BasicSyncInfo",ImageTypeLimit:1,EnableImageTypes:enableImageTypes,Limit:limit,GenreIds:id,EnableTotalRecordCount:!1,ParentId:params.topParentId};ApiClient.getItems(ApiClient.getCurrentUserId(),query).then(function(result){var supportsImageAnalysis=appHost.supports("imageanalysis");"Thumb"==viewStyle?cardBuilder.buildCards(result.Items,{itemsContainer:elem,shape:getThumbShape(),preferThumb:!0,showTitle:!0,scalable:!0,centerText:!0,overlayMoreButton:!0,allowBottomPadding:!1}):"ThumbCard"==viewStyle?cardBuilder.buildCards(result.Items,{itemsContainer:elem,shape:getThumbShape(),preferThumb:!0,showTitle:!0,scalable:!0,centerText:!1,cardLayout:!0,vibrant:supportsImageAnalysis,showYear:!0}):"PosterCard"==viewStyle?cardBuilder.buildCards(result.Items,{itemsContainer:elem,shape:getPortraitShape(),showTitle:!0,scalable:!0,centerText:!1,cardLayout:!0,vibrant:supportsImageAnalysis,showYear:!0}):"Poster"==viewStyle&&cardBuilder.buildCards(result.Items,{itemsContainer:elem,shape:getPortraitShape(),scalable:!0,overlayMoreButton:!0,allowBottomPadding:!1}),result.Items.length>=query.Limit&&tabContent.querySelector(".btnMoreFromGenre"+id+" i").classList.remove("hide")})}function reloadItems(context,promise){var query=getQuery();promise.then(function(result){for(var elem=context.querySelector("#items"),html="",items=result.Items,i=0,length=items.length;i',html+='",html+=enableScrollX()?'
':'
',html+="
",html+="
"}elem.innerHTML=html,lazyLoader.lazyChildren(elem,fillItemsContainer),libraryBrowser.saveQueryValues(getSavedQueryKey(),query),loading.hide()})}function fullyReload(){self.preRender(),self.renderTab()}var self=this,data={};self.getViewStyles=function(){return"Poster,PosterCard,Thumb,ThumbCard".split(",")},self.getCurrentViewStyle=function(){return getPageData(tabContent).view},self.setCurrentViewStyle=function(viewStyle){getPageData(tabContent).view=viewStyle,libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent),viewStyle),fullyReload()},self.enableViewSelection=!0;var promise;self.preRender=function(){promise=getPromise()},self.renderTab=function(){reloadItems(tabContent,promise)}}}); \ No newline at end of file +define(["layoutManager","loading","libraryBrowser","cardBuilder","lazyLoader","apphost","globalize","appRouter","dom","emby-linkbutton"],function(layoutManager,loading,libraryBrowser,cardBuilder,lazyLoader,appHost,globalize,appRouter,dom){"use strict";return function(view,params,tabContent){function getPageData(){var key=getSavedQueryKey(),pageData=data[key];return pageData||(pageData=data[key]={query:{SortBy:"SortName",SortOrder:"Ascending",IncludeItemTypes:"Movie",Recursive:!0,EnableTotalRecordCount:!1},view:"Poster"},pageData.query.ParentId=params.topParentId,libraryBrowser.loadSavedQueryValues(key,pageData.query)),pageData}function getQuery(){return getPageData().query}function getSavedQueryKey(){return libraryBrowser.getSavedQueryKey("moviegenres")}function getPromise(){loading.show();var query=getQuery();return ApiClient.getGenres(ApiClient.getCurrentUserId(),query)}function enableScrollX(){return!layoutManager.desktop}function getThumbShape(){return enableScrollX()?"overflowBackdrop":"backdrop"}function getPortraitShape(){return enableScrollX()?"overflowPortrait":"portrait"}function fillItemsContainer(elem){var id=elem.getAttribute("data-id"),viewStyle=self.getCurrentViewStyle(),limit="Thumb"==viewStyle||"ThumbCard"==viewStyle?5:8;enableScrollX()&&(limit=10);var enableImageTypes="Thumb"==viewStyle||"ThumbCard"==viewStyle?"Primary,Backdrop,Thumb":"Primary",query={SortBy:"SortName",SortOrder:"Ascending",IncludeItemTypes:"Movie",Recursive:!0,Fields:"PrimaryImageAspectRatio,MediaSourceCount,BasicSyncInfo",ImageTypeLimit:1,EnableImageTypes:enableImageTypes,Limit:limit,GenreIds:id,EnableTotalRecordCount:!1,ParentId:params.topParentId};ApiClient.getItems(ApiClient.getCurrentUserId(),query).then(function(result){var supportsImageAnalysis=appHost.supports("imageanalysis");"Thumb"==viewStyle?cardBuilder.buildCards(result.Items,{itemsContainer:elem,shape:getThumbShape(),preferThumb:!0,showTitle:!0,scalable:!0,centerText:!0,overlayMoreButton:!0,allowBottomPadding:!1}):"ThumbCard"==viewStyle?cardBuilder.buildCards(result.Items,{itemsContainer:elem,shape:getThumbShape(),preferThumb:!0,showTitle:!0,scalable:!0,centerText:!1,cardLayout:!0,vibrant:supportsImageAnalysis,showYear:!0}):"PosterCard"==viewStyle?cardBuilder.buildCards(result.Items,{itemsContainer:elem,shape:getPortraitShape(),showTitle:!0,scalable:!0,centerText:!1,cardLayout:!0,vibrant:supportsImageAnalysis,showYear:!0}):"Poster"==viewStyle&&cardBuilder.buildCards(result.Items,{itemsContainer:elem,shape:getPortraitShape(),scalable:!0,overlayMoreButton:!0,allowBottomPadding:!1}),result.Items.length>=query.Limit&&tabContent.querySelector(".btnMoreFromGenre"+id+" i").classList.remove("hide")})}function reloadItems(context,promise){var query=getQuery();promise.then(function(result){for(var elem=context.querySelector("#items"),html="",items=result.Items,i=0,length=items.length;i',html+='",html+=enableScrollX()?'
':'
',html+="
",html+="
"}elem.innerHTML=html,lazyLoader.lazyChildren(elem,fillItemsContainer),libraryBrowser.saveQueryValues(getSavedQueryKey(),query),loading.hide()})}function fullyReload(){self.preRender(),self.renderTab()}var self=this,data={};self.getViewStyles=function(){return"Poster,PosterCard,Thumb,ThumbCard".split(",")},self.getCurrentViewStyle=function(){return getPageData(tabContent).view},self.setCurrentViewStyle=function(viewStyle){getPageData(tabContent).view=viewStyle,libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent),viewStyle),fullyReload()},self.enableViewSelection=!0;var promise;self.preRender=function(){promise=getPromise()},self.renderTab=function(){reloadItems(tabContent,promise)}}}); \ No newline at end of file diff --git a/dashboard-ui/scripts/selectserver.js b/dashboard-ui/scripts/selectserver.js index 12a011f3f3..8895fc2178 100644 --- a/dashboard-ui/scripts/selectserver.js +++ b/dashboard-ui/scripts/selectserver.js @@ -1 +1 @@ -define(["loading","embyRouter","layoutManager","appSettings","apphost","focusManager","connectionManager","backdrop","globalize","staticBackdrops","actionsheet","dom","material-icons","flexStyles","emby-scroller","emby-itemscontainer","cardStyle","emby-button"],function(loading,embyRouter,layoutManager,appSettings,appHost,focusManager,connectionManager,backdrop,globalize,staticBackdrops,actionSheet,dom){"use strict";function renderSelectServerItems(view,servers){var items=servers.map(function(server){return{name:server.Name,showIcon:!0,icon:"",cardType:"",id:server.Id,server:server}}),html=items.map(function(item){var cardImageContainer;cardImageContainer=item.showIcon?''+item.icon+"":'
';var cardBoxCssClass="cardBox";layoutManager.tv&&(cardBoxCssClass+=" cardBox-focustransform");var tagName="button",innerOpening='
',innerClosing="
";return"<"+tagName+' raised class="card overflowSquareCard loginSquareCard scalableCard overflowSquareCard-scalable" style="display:inline-block;" data-id="'+item.id+'" data-url="'+(item.url||"")+'" data-cardtype="'+item.cardType+'">'+innerOpening+'
'+cardImageContainer+'
'+item.name+"
"+innerClosing+""}).join(""),itemsContainer=view.querySelector(".servers");items.length||(html="

"+globalize.translate("sharedcomponents#MessageNoServersAvailableToConnect")+"

"),itemsContainer.innerHTML=html,loading.hide()}function updatePageStyle(view,params){"1"==params.showuser?(view.classList.add("libraryPage"),view.classList.remove("standalonePage"),view.classList.add("noSecondaryNavPage")):(view.classList.add("standalonePage"),view.classList.remove("libraryPage"),view.classList.remove("noSecondaryNavPage"))}function showGeneralError(){loading.hide(),alertText(globalize.translate("sharedcomponents#DefaultErrorMessage"))}function alertText(text){alertTextWithOptions({text:text})}function alertTextWithOptions(options){require(["alert"],function(alert){alert(options)})}function showServerConnectionFailure(){alertText(globalize.translate("MessageUnableToConnectToServer"),globalize.translate("HeaderConnectionFailure"))}return function(view,params){function connectToServer(server){loading.show(),connectionManager.connectToServer(server,{enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){loading.hide();var apiClient=result.ApiClient;switch(result.State){case MediaBrowser.ConnectionState.SignedIn:Dashboard.onServerChanged(apiClient.getCurrentUserId(),apiClient.accessToken(),apiClient),Dashboard.navigate("home.html");break;case MediaBrowser.ConnectionState.ServerSignIn:Dashboard.onServerChanged(null,null,apiClient),Dashboard.navigate("login.html?serverid="+result.Servers[0].Id);break;case MediaBrowser.ConnectionState.ServerUpdateNeeded:alertTextWithOptions({text:globalize.translate("core#ServerUpdateNeeded","https://emby.media"),html:globalize.translate("core#ServerUpdateNeeded",'https://emby.media')});break;default:showServerConnectionFailure()}})}function deleteServer(server){loading.show(),connectionManager.deleteServer(server.Id).then(function(){loading.hide(),loadServers()},function(){loading.hide(),loadServers()})}function acceptInvitation(id){loading.show(),connectionManager.acceptServer(id).then(function(){loading.hide(),loadServers(),loadInvitations()},showGeneralError)}function rejectInvitation(id){loading.show(),connectionManager.rejectServer(id).then(function(){loading.hide(),loadServers(),loadInvitations()},showGeneralError)}function showPendingInviteMenu(elem){var card=dom.parentWithClass(elem,"inviteItem"),invitationId=card.getAttribute("data-id"),menuItems=[];menuItems.push({name:globalize.translate("sharedcomponents#Accept"),id:"accept"}),menuItems.push({name:globalize.translate("sharedcomponents#Reject"),id:"reject"}),require(["actionsheet"],function(actionsheet){actionsheet.show({items:menuItems,positionTo:elem,callback:function(id){switch(id){case"accept":acceptInvitation(invitationId);break;case"reject":rejectInvitation(invitationId)}}})})}function getPendingInviteHtml(item){var cardImageContainer='',cardBoxCssClass="cardBox";layoutManager.tv&&(cardBoxCssClass+=" cardBox-focustransform");var tagName="button",innerOpening='
',innerClosing="
";return"<"+tagName+' raised class="card overflowSquareCard loginSquareCard scalableCard overflowSquareCard-scalable btnInviteMenu inviteItem" style="display:inline-block;" data-id="'+item.Id+'">'+innerOpening+'
'+cardImageContainer+'
'+item.Name+"
"+innerClosing+""}function renderInvitations(list){list.length?view.querySelector(".invitationSection").classList.remove("hide"):view.querySelector(".invitationSection").classList.add("hide");var html=list.map(getPendingInviteHtml).join("");view.querySelector(".invitations").innerHTML=html}function loadInvitations(){connectionManager.isLoggedIntoConnect()?connectionManager.getUserInvitations().then(renderInvitations):renderInvitations([])}function onServerClick(server){var menuItems=[];menuItems.push({name:globalize.translate("sharedcomponents#Connect"),id:"connect"}),menuItems.push({name:globalize.translate("sharedcomponents#Delete"),id:"delete"}),actionSheet.show({items:menuItems,title:server.Name}).then(function(id){switch(id){case"connect":connectToServer(server);break;case"delete":deleteServer(server)}})}function onServersRetrieved(result){servers=result,renderSelectServerItems(view,result),layoutManager.tv&&focusManager.autoFocus(view)}function loadServers(){loading.show(),connectionManager.getAvailableServers().then(onServersRetrieved,function(result){onServersRetrieved([])})}function initContent(){updatePageStyle(view,params),view.querySelector(".btnOfflineText").innerHTML=globalize.translate("sharedcomponents#HeaderMyDownloads"),appHost.supports("sync")&&view.querySelector(".btnOffline").classList.remove("hide")}var servers,scrollX=!layoutManager.desktop;scrollX=!1,initContent();var backdropUrl=staticBackdrops.getRandomImageUrl();view.addEventListener("viewshow",function(e){var isRestored=e.detail.isRestored;embyRouter.setTitle(null),backdrop.setBackdrop(backdropUrl),isRestored||(loadServers(),loadInvitations())}),view.querySelector(".btnAddServer").addEventListener("click",function(e){embyRouter.show("/connectlogin.html?mode=manualserver")}),view.querySelector(".btnConnect").addEventListener("click",function(e){embyRouter.show("/connectlogin.html?mode=connect")}),view.querySelector(".btnOffline").addEventListener("click",function(e){embyRouter.show("/offline/offline.html")}),view.querySelector(".servers").addEventListener("click",function(e){var card=dom.parentWithClass(e.target,"card");if(card){var url=card.getAttribute("data-url");if(url)embyRouter.show(url);else{var id=card.getAttribute("data-id"),server=servers.filter(function(s){return s.Id===id})[0];onServerClick(server)}}}),view.querySelector(".invitations").addEventListener("click",function(e){var btnInviteMenu=dom.parentWithClass(e.target,"btnInviteMenu");btnInviteMenu&&showPendingInviteMenu(btnInviteMenu)})}}); \ No newline at end of file +define(["loading","appRouter","layoutManager","appSettings","apphost","focusManager","connectionManager","backdrop","globalize","staticBackdrops","actionsheet","dom","material-icons","flexStyles","emby-scroller","emby-itemscontainer","cardStyle","emby-button"],function(loading,appRouter,layoutManager,appSettings,appHost,focusManager,connectionManager,backdrop,globalize,staticBackdrops,actionSheet,dom){"use strict";function renderSelectServerItems(view,servers){var items=servers.map(function(server){return{name:server.Name,showIcon:!0,icon:"",cardType:"",id:server.Id,server:server}}),html=items.map(function(item){var cardImageContainer;cardImageContainer=item.showIcon?''+item.icon+"":'
';var cardBoxCssClass="cardBox";layoutManager.tv&&(cardBoxCssClass+=" cardBox-focustransform");var tagName="button",innerOpening='
',innerClosing="
";return"<"+tagName+' raised class="card overflowSquareCard loginSquareCard scalableCard overflowSquareCard-scalable" style="display:inline-block;" data-id="'+item.id+'" data-url="'+(item.url||"")+'" data-cardtype="'+item.cardType+'">'+innerOpening+'
'+cardImageContainer+'
'+item.name+"
"+innerClosing+""}).join(""),itemsContainer=view.querySelector(".servers");items.length||(html="

"+globalize.translate("sharedcomponents#MessageNoServersAvailableToConnect")+"

"),itemsContainer.innerHTML=html,loading.hide()}function updatePageStyle(view,params){"1"==params.showuser?(view.classList.add("libraryPage"),view.classList.remove("standalonePage"),view.classList.add("noSecondaryNavPage")):(view.classList.add("standalonePage"),view.classList.remove("libraryPage"),view.classList.remove("noSecondaryNavPage"))}function showGeneralError(){loading.hide(),alertText(globalize.translate("sharedcomponents#DefaultErrorMessage"))}function alertText(text){alertTextWithOptions({text:text})}function alertTextWithOptions(options){require(["alert"],function(alert){alert(options)})}function showServerConnectionFailure(){alertText(globalize.translate("MessageUnableToConnectToServer"),globalize.translate("HeaderConnectionFailure"))}return function(view,params){function connectToServer(server){loading.show(),connectionManager.connectToServer(server,{enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){loading.hide();var apiClient=result.ApiClient;switch(result.State){case MediaBrowser.ConnectionState.SignedIn:Dashboard.onServerChanged(apiClient.getCurrentUserId(),apiClient.accessToken(),apiClient),Dashboard.navigate("home.html");break;case MediaBrowser.ConnectionState.ServerSignIn:Dashboard.onServerChanged(null,null,apiClient),Dashboard.navigate("login.html?serverid="+result.Servers[0].Id);break;case MediaBrowser.ConnectionState.ServerUpdateNeeded:alertTextWithOptions({text:globalize.translate("core#ServerUpdateNeeded","https://emby.media"),html:globalize.translate("core#ServerUpdateNeeded",'https://emby.media')});break;default:showServerConnectionFailure()}})}function deleteServer(server){loading.show(),connectionManager.deleteServer(server.Id).then(function(){loading.hide(),loadServers()},function(){loading.hide(),loadServers()})}function acceptInvitation(id){loading.show(),connectionManager.acceptServer(id).then(function(){loading.hide(),loadServers(),loadInvitations()},showGeneralError)}function rejectInvitation(id){loading.show(),connectionManager.rejectServer(id).then(function(){loading.hide(),loadServers(),loadInvitations()},showGeneralError)}function showPendingInviteMenu(elem){var card=dom.parentWithClass(elem,"inviteItem"),invitationId=card.getAttribute("data-id"),menuItems=[];menuItems.push({name:globalize.translate("sharedcomponents#Accept"),id:"accept"}),menuItems.push({name:globalize.translate("sharedcomponents#Reject"),id:"reject"}),require(["actionsheet"],function(actionsheet){actionsheet.show({items:menuItems,positionTo:elem,callback:function(id){switch(id){case"accept":acceptInvitation(invitationId);break;case"reject":rejectInvitation(invitationId)}}})})}function getPendingInviteHtml(item){var cardImageContainer='',cardBoxCssClass="cardBox";layoutManager.tv&&(cardBoxCssClass+=" cardBox-focustransform");var tagName="button",innerOpening='
',innerClosing="
";return"<"+tagName+' raised class="card overflowSquareCard loginSquareCard scalableCard overflowSquareCard-scalable btnInviteMenu inviteItem" style="display:inline-block;" data-id="'+item.Id+'">'+innerOpening+'
'+cardImageContainer+'
'+item.Name+"
"+innerClosing+""}function renderInvitations(list){list.length?view.querySelector(".invitationSection").classList.remove("hide"):view.querySelector(".invitationSection").classList.add("hide");var html=list.map(getPendingInviteHtml).join("");view.querySelector(".invitations").innerHTML=html}function loadInvitations(){connectionManager.isLoggedIntoConnect()?connectionManager.getUserInvitations().then(renderInvitations):renderInvitations([])}function onServerClick(server){var menuItems=[];menuItems.push({name:globalize.translate("sharedcomponents#Connect"),id:"connect"}),menuItems.push({name:globalize.translate("sharedcomponents#Delete"),id:"delete"}),actionSheet.show({items:menuItems,title:server.Name}).then(function(id){switch(id){case"connect":connectToServer(server);break;case"delete":deleteServer(server)}})}function onServersRetrieved(result){servers=result,renderSelectServerItems(view,result),layoutManager.tv&&focusManager.autoFocus(view)}function loadServers(){loading.show(),connectionManager.getAvailableServers().then(onServersRetrieved,function(result){onServersRetrieved([])})}function initContent(){updatePageStyle(view,params),view.querySelector(".btnOfflineText").innerHTML=globalize.translate("sharedcomponents#HeaderMyDownloads"),appHost.supports("sync")&&view.querySelector(".btnOffline").classList.remove("hide")}var servers,scrollX=!layoutManager.desktop;scrollX=!1,initContent();var backdropUrl=staticBackdrops.getRandomImageUrl();view.addEventListener("viewshow",function(e){var isRestored=e.detail.isRestored;appRouter.setTitle(null),backdrop.setBackdrop(backdropUrl),isRestored||(loadServers(),loadInvitations())}),view.querySelector(".btnAddServer").addEventListener("click",function(e){appRouter.show("/connectlogin.html?mode=manualserver")}),view.querySelector(".btnConnect").addEventListener("click",function(e){appRouter.show("/connectlogin.html?mode=connect")}),view.querySelector(".btnOffline").addEventListener("click",function(e){appRouter.show("/offline/offline.html")}),view.querySelector(".servers").addEventListener("click",function(e){var card=dom.parentWithClass(e.target,"card");if(card){var url=card.getAttribute("data-url");if(url)appRouter.show(url);else{var id=card.getAttribute("data-id"),server=servers.filter(function(s){return s.Id===id})[0];onServerClick(server)}}}),view.querySelector(".invitations").addEventListener("click",function(e){var btnInviteMenu=dom.parentWithClass(e.target,"btnInviteMenu");btnInviteMenu&&showPendingInviteMenu(btnInviteMenu)})}}); \ No newline at end of file diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 1fce33a71d..eb89c44649 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1,2 +1,2 @@ -function getWindowLocationSearch(win){"use strict";var search=(win||window).location.search;if(!search){var index=window.location.href.indexOf("?");index!=-1&&(search=window.location.href.substring(index))}return search||""}function getParameterByName(name,url){"use strict";name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url||getWindowLocationSearch());return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function pageClassOn(eventName,className,fn){"use strict";document.addEventListener(eventName,function(e){var target=e.target;target.classList.contains(className)&&fn.call(target,e)})}function pageIdOn(eventName,id,fn){"use strict";document.addEventListener(eventName,function(e){var target=e.target;target.id==id&&fn.call(target,e)})}var Dashboard={isConnectMode:function(){if(AppInfo.isNativeApp)return!0;var url=window.location.href.toLowerCase();return url.indexOf("mediabrowser.tv")!=-1||url.indexOf("emby.media")!=-1},isRunningInCordova:function(){return"cordova"==window.appMode},getCurrentUser:function(){return window.ApiClient.getCurrentUser(!1)},serverAddress:function(){if(Dashboard.isConnectMode()){var apiClient=window.ApiClient;return apiClient?apiClient.serverAddress():null}var urlLower=window.location.href.toLowerCase(),index=urlLower.lastIndexOf("/web");if(index!=-1)return urlLower.substring(0,index);var loc=window.location,address=loc.protocol+"//"+loc.hostname;return loc.port&&(address+=":"+loc.port),address},getCurrentUserId:function(){var apiClient=window.ApiClient;return apiClient?apiClient.getCurrentUserId():null},onServerChanged:function(userId,accessToken,apiClient){apiClient=apiClient||window.ApiClient,window.ApiClient=apiClient},logout:function(logoutWithServer){function onLogoutDone(){var loginPage;Dashboard.isConnectMode()?(loginPage="connectlogin.html",window.ApiClient=null):loginPage="login.html",Dashboard.navigate(loginPage)}logoutWithServer===!1?onLogoutDone():ConnectionManager.logout().then(onLogoutDone)},getConfigurationPageUrl:function(name){return"configurationpage?name="+encodeURIComponent(name)},navigate:function(url,preserveQueryString){if(!url)throw new Error("url cannot be null or empty");var queryString=getWindowLocationSearch();return preserveQueryString&&queryString&&(url+=queryString),new Promise(function(resolve,reject){require(["embyRouter"],function(embyRouter){return embyRouter.show(url).then(resolve,reject)})})},processPluginConfigurationUpdateResult:function(){require(["loading","toast"],function(loading,toast){loading.hide(),toast(Globalize.translate("MessageSettingsSaved"))})},processServerConfigurationUpdateResult:function(result){require(["loading","toast"],function(loading,toast){loading.hide(),toast(Globalize.translate("MessageSettingsSaved"))})},processErrorResponse:function(response){require(["loading"],function(loading){loading.hide()});var status=""+response.status;response.statusText&&(status=response.statusText),Dashboard.alert({title:status,message:response.headers?response.headers.get("X-Application-Error-Code"):null})},alert:function(options){return"string"==typeof options?void require(["toast"],function(toast){toast({text:options})}):void require(["alert"],function(alert){alert({title:options.title||Globalize.translate("HeaderAlert"),text:options.message}).then(options.callback||function(){})})},restartServer:function(){var apiClient=window.ApiClient;apiClient&&(Dashboard.suppressAjaxErrors=!0,require(["loading"],function(loading){loading.show()}),apiClient.restartServer().then(function(){setTimeout(function(){Dashboard.reloadPageWhenServerAvailable()},250)},function(){Dashboard.suppressAjaxErrors=!1}))},reloadPageWhenServerAvailable:function(retryCount){var apiClient=window.ApiClient;apiClient&&apiClient.getJSON(apiClient.getUrl("System/Info")).then(function(info){info.HasPendingRestart?Dashboard.retryReload(retryCount):window.location.reload(!0)},function(){Dashboard.retryReload(retryCount)})},retryReload:function(retryCount){setTimeout(function(){retryCount=retryCount||0,retryCount++,retryCount<10?Dashboard.reloadPageWhenServerAvailable(retryCount):Dashboard.suppressAjaxErrors=!1},500)},showUserFlyout:function(){Dashboard.navigate("mypreferencesmenu.html")},getPluginSecurityInfo:function(){var apiClient=window.ApiClient;if(!apiClient)return Promise.reject();var cachedInfo=Dashboard.pluginSecurityInfo;return cachedInfo?Promise.resolve(cachedInfo):apiClient.ajax({type:"GET",url:apiClient.getUrl("Plugins/SecurityInfo"),dataType:"json",error:function(){}}).then(function(result){return Dashboard.pluginSecurityInfo=result,result})},resetPluginSecurityInfo:function(){Dashboard.pluginSecurityInfo=null},ensureHeader:function(page){page.classList.contains("standalonePage")&&!page.classList.contains("noHeaderPage")&&Dashboard.renderHeader(page)},renderHeader:function(page){var header=page.querySelector(".header");if(!header){var headerHtml="";headerHtml+='",page.insertAdjacentHTML("afterbegin",headerHtml)}},getSupportedRemoteCommands:function(){return["GoHome","GoToSettings","VolumeUp","VolumeDown","Mute","Unmute","ToggleMute","SetVolume","SetAudioStreamIndex","SetSubtitleStreamIndex","DisplayContent","GoToSearch","DisplayMessage","SetRepeatMode"]},capabilities:function(){var caps={PlayableMediaTypes:["Audio","Video"],SupportedCommands:Dashboard.getSupportedRemoteCommands(),SupportsPersistentIdentifier:Dashboard.isRunningInCordova(),SupportsMediaControl:!0,SupportedLiveMediaTypes:["Audio","Video"]};return Dashboard.isRunningInCordova()&&!browserInfo.safari&&(caps.SupportsSync=!0,caps.SupportsContentUploading=!0),caps},normalizeImageOptions:function(options){var setQuality;if(options.maxWidth&&(setQuality=!0),options.width&&(setQuality=!0),options.maxHeight&&(setQuality=!0),options.height&&(setQuality=!0),setQuality){var quality=90,isBackdrop="backdrop"==(options.type||"").toLowerCase();isBackdrop&&(quality-=10),browserInfo.slow&&(quality-=40),AppInfo.hasLowImageBandwidth&&!isBackdrop&&(quality-=10),options.quality=quality}}},AppInfo={};!function(){"use strict";function setAppInfo(){var isCordova=Dashboard.isRunningInCordova();AppInfo.enableAutoSave=browserInfo.touch,AppInfo.enableAppStorePolicy=isCordova,browserInfo.iOS&&(AppInfo.hasLowImageBandwidth=!0),isCordova?(AppInfo.isNativeApp=!0,browserInfo.android&&(AppInfo.supportsExternalPlayers=!0)):AppInfo.enableSupporterMembership=!0,AppInfo.supportsFileInput=!(AppInfo.isNativeApp&&browserInfo.android),AppInfo.supportsUserDisplayLanguageSetting=Dashboard.isConnectMode()}function initializeApiClient(apiClient){AppInfo.enableAppStorePolicy&&(apiClient.getAvailablePlugins=function(){return Promise.resolve([])},apiClient.getInstalledPlugins=function(){return Promise.resolve([])}),apiClient.normalizeImageOptions=Dashboard.normalizeImageOptions}function onApiClientCreated(e,newApiClient){initializeApiClient(newApiClient),window.$&&($.ajax=newApiClient.ajax),require(["globalize"],function(globalize){newApiClient.downloadsTitleText=globalize.translate("sharedcomponents#Downloads")})}function defineConnectionManager(connectionManager){window.ConnectionManager=connectionManager,define("connectionManager",[],function(){return connectionManager})}function bindConnectionManagerEvents(connectionManager,events,userSettings){window.Events=events,events.on(ConnectionManager,"apiclientcreated",onApiClientCreated),connectionManager.currentApiClient=function(){if(!localApiClient){var server=connectionManager.getLastUsedServer();server&&(localApiClient=connectionManager.getApiClient(server.Id))}return localApiClient},connectionManager.onLocalUserSignedIn=function(user){return localApiClient=connectionManager.getApiClient(user.ServerId),window.ApiClient=localApiClient,userSettings.setUserInfo(user.Id,localApiClient)},events.on(connectionManager,"localusersignedout",function(){userSettings.setUserInfo(null,null)})}function createConnectionManager(){return new Promise(function(resolve,reject){require(["connectionManagerFactory","apphost","credentialprovider","events","userSettings"],function(connectionManagerExports,apphost,credentialProvider,events,userSettings){window.MediaBrowser=Object.assign(window.MediaBrowser||{},connectionManagerExports);var credentialProviderInstance=new credentialProvider,promises=[apphost.getSyncProfile(),apphost.appInfo()];Promise.all(promises).then(function(responses){var deviceProfile=responses[0],appInfo=responses[1],capabilities=Dashboard.capabilities();capabilities.DeviceProfile=deviceProfile;var connectionManager=new MediaBrowser.ConnectionManager(credentialProviderInstance,appInfo.appName,appInfo.appVersion,appInfo.deviceName,appInfo.deviceId,capabilities,window.devicePixelRatio);return defineConnectionManager(connectionManager),bindConnectionManagerEvents(connectionManager,events,userSettings),Dashboard.isConnectMode()?void resolve():(console.log("loading ApiClient singleton"),getRequirePromise(["apiclient"]).then(function(apiClientFactory){console.log("creating ApiClient singleton");var apiClient=new apiClientFactory(Dashboard.serverAddress(),appInfo.appName,appInfo.appVersion,appInfo.deviceName,appInfo.deviceId,window.devicePixelRatio);apiClient.enableAutomaticNetworking=!1,connectionManager.addApiClient(apiClient),require(["css!"+apiClient.getUrl("Branding/Css")]),window.ApiClient=apiClient,localApiClient=apiClient,console.log("loaded ApiClient singleton"),resolve()}))})})})}function setDocumentClasses(browser){var elem=document.documentElement;AppInfo.enableSupporterMembership||elem.classList.add("supporterMembershipDisabled")}function loadTheme(){var name=getParameterByName("theme");if(name)return void require(["themes/"+name+"/theme"]);if(!AppInfo.isNativeApp){var date=new Date,month=date.getMonth(),day=date.getDate();return 9==month&&day>=30?void require(["themes/halloween/theme"]):void 0}}function returnFirstDependency(obj){return obj}function getBowerPath(){return"bower_components"}function getLayoutManager(layoutManager,appHost){return appHost.getDefaultLayout&&(layoutManager.defaultLayout=appHost.getDefaultLayout()),layoutManager.init(),layoutManager}function getAppStorage(basePath){try{return localStorage.setItem("_test","0"),localStorage.removeItem("_test"),basePath+"/appstorage-localstorage"}catch(e){return basePath+"/appstorage-memory"}}function createWindowHeadroom(Headroom){var headroom=new Headroom([],{});return headroom.init(),headroom}function getCastSenderApiLoader(){var ccLoaded=!1;return{load:function(){return ccLoaded?Promise.resolve():new Promise(function(resolve,reject){var fileref=document.createElement("script");fileref.setAttribute("type","text/javascript"),fileref.onload=function(){ccLoaded=!0,resolve()},fileref.setAttribute("src","https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"),document.querySelector("head").appendChild(fileref)})}}}function getDummyCastSenderApiLoader(){return{load:function(){return window.chrome=window.chrome||{},Promise.resolve()}}}function createSharedAppFooter(appFooter){var footer=new appFooter({});return footer}function onRequireJsError(requireType,requireModules){console.log("RequireJS error: "+(requireType||"unknown")+". Failed modules: "+(requireModules||[]).join(","))}function initRequire(){var urlArgs="v="+(window.dashboardVersion||(new Date).getDate()),bowerPath=getBowerPath(),apiClientBowerPath=bowerPath+"/emby-apiclient",embyWebComponentsBowerPath=bowerPath+"/emby-webcomponents",paths={velocity:bowerPath+"/velocity/velocity.min",vibrant:bowerPath+"/vibrant/dist/vibrant",staticBackdrops:embyWebComponentsBowerPath+"/staticbackdrops",ironCardList:"components/ironcardlist/ironcardlist",scrollThreshold:"components/scrollthreshold",playlisteditor:"components/playlisteditor/playlisteditor",medialibrarycreator:"components/medialibrarycreator/medialibrarycreator",medialibraryeditor:"components/medialibraryeditor/medialibraryeditor",howler:bowerPath+"/howlerjs/howler.min",sortable:bowerPath+"/Sortable/Sortable.min",isMobile:bowerPath+"/isMobile/isMobile.min",masonry:bowerPath+"/masonry/dist/masonry.pkgd.min",humanedate:"components/humanedate",libraryBrowser:"scripts/librarybrowser",chromecasthelpers:"components/chromecasthelpers",events:apiClientBowerPath+"/events",credentialprovider:apiClientBowerPath+"/credentials",connectionManagerFactory:bowerPath+"/emby-apiclient/connectionmanager",visibleinviewport:embyWebComponentsBowerPath+"/visibleinviewport",browserdeviceprofile:embyWebComponentsBowerPath+"/browserdeviceprofile",browser:embyWebComponentsBowerPath+"/browser",inputManager:embyWebComponentsBowerPath+"/inputmanager",qualityoptions:embyWebComponentsBowerPath+"/qualityoptions",hammer:bowerPath+"/hammerjs/hammer.min",pageJs:embyWebComponentsBowerPath+"/pagejs/page",focusManager:embyWebComponentsBowerPath+"/focusmanager",datetime:embyWebComponentsBowerPath+"/datetime",globalize:embyWebComponentsBowerPath+"/globalize",itemHelper:embyWebComponentsBowerPath+"/itemhelper",itemShortcuts:embyWebComponentsBowerPath+"/shortcuts",serverNotifications:embyWebComponentsBowerPath+"/servernotifications",playbackManager:embyWebComponentsBowerPath+"/playback/playbackmanager",playQueueManager:embyWebComponentsBowerPath+"/playback/playqueuemanager",autoPlayDetect:embyWebComponentsBowerPath+"/playback/autoplaydetect",nowPlayingHelper:embyWebComponentsBowerPath+"/playback/nowplayinghelper",pluginManager:embyWebComponentsBowerPath+"/pluginmanager",packageManager:embyWebComponentsBowerPath+"/packagemanager"};paths.hlsjs=bowerPath+"/hlsjs/dist/hls.min",define("mediaSession",[embyWebComponentsBowerPath+"/playback/mediasession"],returnFirstDependency),define("webActionSheet",[embyWebComponentsBowerPath+"/actionsheet/actionsheet"],returnFirstDependency),Dashboard.isRunningInCordova()?paths.sharingMenu="cordova/sharingwidget":define("sharingMenu",[embyWebComponentsBowerPath+"/sharing/sharingmenu"],returnFirstDependency),paths.wakeonlan=apiClientBowerPath+"/wakeonlan",define("libjass",[bowerPath+"/libjass/libjass.min","css!"+bowerPath+"/libjass/libjass"],returnFirstDependency),window.IntersectionObserver?define("lazyLoader",[embyWebComponentsBowerPath+"/lazyloader/lazyloader-intersectionobserver"],returnFirstDependency):define("lazyLoader",[embyWebComponentsBowerPath+"/lazyloader/lazyloader-scroll"],returnFirstDependency),define("tunerPicker",["components/tunerpicker"],returnFirstDependency),define("mainTabsManager",["components/maintabsmanager"],returnFirstDependency),define("imageLoader",[embyWebComponentsBowerPath+"/images/imagehelper"],returnFirstDependency),define("appFooter",[embyWebComponentsBowerPath+"/appfooter/appfooter"],returnFirstDependency),define("directorybrowser",["components/directorybrowser/directorybrowser"],returnFirstDependency),define("metadataEditor",[embyWebComponentsBowerPath+"/metadataeditor/metadataeditor"],returnFirstDependency),define("personEditor",[embyWebComponentsBowerPath+"/metadataeditor/personeditor"],returnFirstDependency),define("playerSelectionMenu",[embyWebComponentsBowerPath+"/playback/playerselection"],returnFirstDependency),define("playerSettingsMenu",[embyWebComponentsBowerPath+"/playback/playersettingsmenu"],returnFirstDependency),define("playMethodHelper",[embyWebComponentsBowerPath+"/playback/playmethodhelper"],returnFirstDependency),define("brightnessOsd",[embyWebComponentsBowerPath+"/playback/brightnessosd"],returnFirstDependency),define("libraryMenu",["scripts/librarymenu"],returnFirstDependency),define("emby-collapse",[embyWebComponentsBowerPath+"/emby-collapse/emby-collapse"],returnFirstDependency),define("emby-button",[embyWebComponentsBowerPath+"/emby-button/emby-button"],returnFirstDependency),define("emby-linkbutton",["emby-button"],returnFirstDependency),define("emby-itemscontainer",[embyWebComponentsBowerPath+"/emby-itemscontainer/emby-itemscontainer"],returnFirstDependency),define("emby-scroller",[embyWebComponentsBowerPath+"/emby-scroller/emby-scroller"],returnFirstDependency),define("emby-tabs",[embyWebComponentsBowerPath+"/emby-tabs/emby-tabs"],returnFirstDependency),define("emby-scrollbuttons",[embyWebComponentsBowerPath+"/emby-scrollbuttons/emby-scrollbuttons"],returnFirstDependency),define("emby-progressring",[embyWebComponentsBowerPath+"/emby-progressring/emby-progressring"],returnFirstDependency),define("emby-itemrefreshindicator",[embyWebComponentsBowerPath+"/emby-itemrefreshindicator/emby-itemrefreshindicator"],returnFirstDependency),define("itemHoverMenu",[embyWebComponentsBowerPath+"/itemhovermenu/itemhovermenu"],returnFirstDependency),define("multiSelect",[embyWebComponentsBowerPath+"/multiselect/multiselect"],returnFirstDependency),define("alphaPicker",[embyWebComponentsBowerPath+"/alphapicker/alphapicker"],returnFirstDependency),define("paper-icon-button-light",[embyWebComponentsBowerPath+"/emby-button/paper-icon-button-light"],returnFirstDependency),define("connectHelper",[embyWebComponentsBowerPath+"/emby-connect/connecthelper"],returnFirstDependency),define("emby-input",[embyWebComponentsBowerPath+"/emby-input/emby-input"],returnFirstDependency),define("emby-select",[embyWebComponentsBowerPath+"/emby-select/emby-select"],returnFirstDependency),define("emby-slider",[embyWebComponentsBowerPath+"/emby-slider/emby-slider"],returnFirstDependency),define("emby-checkbox",[embyWebComponentsBowerPath+"/emby-checkbox/emby-checkbox"],returnFirstDependency),define("emby-radio",[embyWebComponentsBowerPath+"/emby-radio/emby-radio"],returnFirstDependency),define("emby-textarea",[embyWebComponentsBowerPath+"/emby-textarea/emby-textarea"],returnFirstDependency),define("collectionEditor",[embyWebComponentsBowerPath+"/collectioneditor/collectioneditor"],returnFirstDependency),define("playlistEditor",[embyWebComponentsBowerPath+"/playlisteditor/playlisteditor"],returnFirstDependency),define("recordingCreator",[embyWebComponentsBowerPath+"/recordingcreator/recordingcreator"],returnFirstDependency),define("recordingEditor",[embyWebComponentsBowerPath+"/recordingcreator/recordingeditor"],returnFirstDependency),define("seriesRecordingEditor",[embyWebComponentsBowerPath+"/recordingcreator/seriesrecordingeditor"],returnFirstDependency),define("recordingFields",[embyWebComponentsBowerPath+"/recordingcreator/recordingfields"],returnFirstDependency),define("recordingButton",[embyWebComponentsBowerPath+"/recordingcreator/recordingbutton"],returnFirstDependency),define("recordingHelper",[embyWebComponentsBowerPath+"/recordingcreator/recordinghelper"],returnFirstDependency),define("subtitleEditor",[embyWebComponentsBowerPath+"/subtitleeditor/subtitleeditor"],returnFirstDependency),define("itemIdentifier",[embyWebComponentsBowerPath+"/itemidentifier/itemidentifier"],returnFirstDependency),define("mediaInfo",[embyWebComponentsBowerPath+"/mediainfo/mediainfo"],returnFirstDependency),define("itemContextMenu",[embyWebComponentsBowerPath+"/itemcontextmenu"],returnFirstDependency),define("imageEditor",[embyWebComponentsBowerPath+"/imageeditor/imageeditor"],returnFirstDependency),define("imageDownloader",[embyWebComponentsBowerPath+"/imagedownloader/imagedownloader"],returnFirstDependency),define("dom",[embyWebComponentsBowerPath+"/dom"],returnFirstDependency),define("playerStats",[embyWebComponentsBowerPath+"/playerstats/playerstats"],returnFirstDependency),define("searchFields",[embyWebComponentsBowerPath+"/search/searchfields"],returnFirstDependency),define("searchResults",[embyWebComponentsBowerPath+"/search/searchresults"],returnFirstDependency),define("fullscreen-doubleclick",[embyWebComponentsBowerPath+"/fullscreen/fullscreen-doubleclick"],returnFirstDependency),define("fullscreenManager",[embyWebComponentsBowerPath+"/fullscreen/fullscreenmanager","events"],returnFirstDependency),define("headroom",[embyWebComponentsBowerPath+"/headroom/headroom"],returnFirstDependency),define("subtitleAppearanceHelper",[embyWebComponentsBowerPath+"/subtitlesettings/subtitleappearancehelper"],returnFirstDependency),define("subtitleSettings",[embyWebComponentsBowerPath+"/subtitlesettings/subtitlesettings"],returnFirstDependency),define("homescreenSettings",[embyWebComponentsBowerPath+"/homescreensettings/homescreensettings"],returnFirstDependency),define("homescreenSettingsDialog",[embyWebComponentsBowerPath+"/homescreensettings/homescreensettingsdialog"],returnFirstDependency),define("layoutManager",[embyWebComponentsBowerPath+"/layoutmanager","apphost"],getLayoutManager),define("homeSections",[embyWebComponentsBowerPath+"/homesections"],returnFirstDependency),define("playMenu",[embyWebComponentsBowerPath+"/playmenu"],returnFirstDependency),define("refreshDialog",[embyWebComponentsBowerPath+"/refreshdialog/refreshdialog"],returnFirstDependency),define("backdrop",[embyWebComponentsBowerPath+"/backdrop/backdrop"],returnFirstDependency),define("fetchHelper",[embyWebComponentsBowerPath+"/fetchhelper"],returnFirstDependency),define("roundCardStyle",["cardStyle","css!"+embyWebComponentsBowerPath+"/cardbuilder/roundcard"],returnFirstDependency),define("cardStyle",["css!"+embyWebComponentsBowerPath+"/cardbuilder/card"],returnFirstDependency),define("cardBuilder",[embyWebComponentsBowerPath+"/cardbuilder/cardbuilder"],returnFirstDependency),define("peoplecardbuilder",[embyWebComponentsBowerPath+"/cardbuilder/peoplecardbuilder"],returnFirstDependency),define("chaptercardbuilder",[embyWebComponentsBowerPath+"/cardbuilder/chaptercardbuilder"],returnFirstDependency),define("mouseManager",[embyWebComponentsBowerPath+"/input/mouse"],returnFirstDependency),define("flexStyles",["css!"+embyWebComponentsBowerPath+"/flexstyles"],returnFirstDependency),define("deleteHelper",[embyWebComponentsBowerPath+"/deletehelper"],returnFirstDependency),define("tvguide",[embyWebComponentsBowerPath+"/guide/guide"],returnFirstDependency),define("programStyles",["css!"+embyWebComponentsBowerPath+"/guide/programs"],returnFirstDependency),define("guide-settings-dialog",[embyWebComponentsBowerPath+"/guide/guide-settings"],returnFirstDependency),define("syncDialog",[embyWebComponentsBowerPath+"/sync/sync"],returnFirstDependency),define("syncJobEditor",[embyWebComponentsBowerPath+"/sync/syncjobeditor"],returnFirstDependency),define("syncJobList",[embyWebComponentsBowerPath+"/sync/syncjoblist"],returnFirstDependency),define("viewManager",[embyWebComponentsBowerPath+"/viewmanager/viewmanager"],function(viewManager){return window.ViewManager=viewManager,viewManager.dispatchPageEvents(!0),viewManager}),Dashboard.isRunningInCordova()&&window.MainActivity?define("shell",["cordova/shell"],returnFirstDependency):define("shell",[embyWebComponentsBowerPath+"/shell"],returnFirstDependency),define("sharingmanager",[embyWebComponentsBowerPath+"/sharing/sharingmanager"],returnFirstDependency),Dashboard.isRunningInCordova()?paths.apphost="cordova/apphost":paths.apphost="components/apphost",Dashboard.isRunningInCordova()&&window.MainActivity?(paths.appStorage="cordova/appstorage",paths.filesystem="cordova/filesystem"):(paths.appStorage=getAppStorage(apiClientBowerPath),paths.filesystem=embyWebComponentsBowerPath+"/filesystem");var sha1Path=bowerPath+"/cryptojslib/components/sha1-min",md5Path=bowerPath+"/cryptojslib/components/md5-min",shim={};shim[sha1Path]={deps:[bowerPath+"/cryptojslib/components/core-min"]},shim[md5Path]={deps:[bowerPath+"/cryptojslib/components/core-min"]},requirejs.config({waitSeconds:0,map:{"*":{css:bowerPath+"/emby-webcomponents/require/requirecss",html:bowerPath+"/emby-webcomponents/require/requirehtml",text:bowerPath+"/emby-webcomponents/require/requiretext"}},urlArgs:urlArgs,paths:paths,shim:shim,onError:onRequireJsError}),requirejs.onError=onRequireJsError,define("cryptojs-sha1",[sha1Path],returnFirstDependency),define("cryptojs-md5",[md5Path],returnFirstDependency),define("jstree",[bowerPath+"/jstree/dist/jstree","css!thirdparty/jstree/themes/default/style.min.css"],returnFirstDependency),define("dashboardcss",["css!css/dashboard"],returnFirstDependency),define("jqmtable",["thirdparty/jquerymobile-1.4.5/jqm.table","css!thirdparty/jquerymobile-1.4.5/jqm.table.css"],returnFirstDependency),define("jqmwidget",["thirdparty/jquerymobile-1.4.5/jqm.widget"],returnFirstDependency),define("jqmslider",["thirdparty/jquerymobile-1.4.5/jqm.slider","css!thirdparty/jquerymobile-1.4.5/jqm.slider.css"],returnFirstDependency),define("jqmpopup",["thirdparty/jquerymobile-1.4.5/jqm.popup","css!thirdparty/jquerymobile-1.4.5/jqm.popup.css"],returnFirstDependency),define("jqmlistview",["css!thirdparty/jquerymobile-1.4.5/jqm.listview.css"],returnFirstDependency),define("jqmpanel",["thirdparty/jquerymobile-1.4.5/jqm.panel","css!thirdparty/jquerymobile-1.4.5/jqm.panel.css"],returnFirstDependency),define("slideshow",[embyWebComponentsBowerPath+"/slideshow/slideshow"],returnFirstDependency),define("fetch",[bowerPath+"/fetch/fetch"],returnFirstDependency),define("raf",[embyWebComponentsBowerPath+"/polyfills/raf"],returnFirstDependency),define("functionbind",[embyWebComponentsBowerPath+"/polyfills/bind"],returnFirstDependency),define("arraypolyfills",[embyWebComponentsBowerPath+"/polyfills/array"],returnFirstDependency),define("objectassign",[embyWebComponentsBowerPath+"/polyfills/objectassign"],returnFirstDependency),define("clearButtonStyle",["css!"+embyWebComponentsBowerPath+"/clearbutton"],returnFirstDependency),define("userdataButtons",[embyWebComponentsBowerPath+"/userdatabuttons/userdatabuttons"],returnFirstDependency),define("emby-playstatebutton",[embyWebComponentsBowerPath+"/userdatabuttons/emby-playstatebutton"],returnFirstDependency),define("emby-ratingbutton",[embyWebComponentsBowerPath+"/userdatabuttons/emby-ratingbutton"],returnFirstDependency),define("emby-downloadbutton",[embyWebComponentsBowerPath+"/sync/emby-downloadbutton"],returnFirstDependency),define("listView",[embyWebComponentsBowerPath+"/listview/listview"],returnFirstDependency),define("listViewStyle",["css!"+embyWebComponentsBowerPath+"/listview/listview"],returnFirstDependency),define("formDialogStyle",["css!"+embyWebComponentsBowerPath+"/formdialog"],returnFirstDependency),define("indicators",[embyWebComponentsBowerPath+"/indicators/indicators"],returnFirstDependency),define("registrationServices",[embyWebComponentsBowerPath+"/registrationservices/registrationservices"],returnFirstDependency),Dashboard.isRunningInCordova()?(define("iapManager",["cordova/iap"],returnFirstDependency),define("fileupload",["cordova/fileupload"],returnFirstDependency)):(define("iapManager",["components/iap"],returnFirstDependency),define("fileupload",[apiClientBowerPath+"/fileupload"],returnFirstDependency)),define("connectionmanager",[apiClientBowerPath+"/connectionmanager"]),define("cameraRoll",[apiClientBowerPath+"/cameraroll"],returnFirstDependency),define("contentuploader",[apiClientBowerPath+"/sync/contentuploader"],returnFirstDependency),define("serversync",[apiClientBowerPath+"/sync/serversync"],returnFirstDependency),define("multiserversync",[apiClientBowerPath+"/sync/multiserversync"],returnFirstDependency),define("mediasync",[apiClientBowerPath+"/sync/mediasync"],returnFirstDependency),define("idb",[embyWebComponentsBowerPath+"/idb"],returnFirstDependency),define("itemrepository",[apiClientBowerPath+"/sync/itemrepository"],returnFirstDependency),define("useractionrepository",[apiClientBowerPath+"/sync/useractionrepository"],returnFirstDependency),self.Windows?(define("bgtaskregister",["environments/windows-uwp/bgtaskregister"],returnFirstDependency),define("transfermanager",["environments/windows-uwp/transfermanager"],returnFirstDependency),define("filerepository",["environments/windows-uwp/filerepository"],returnFirstDependency)):(define("transfermanager",[apiClientBowerPath+"/sync/transfermanager"],returnFirstDependency),define("filerepository",[apiClientBowerPath+"/sync/filerepository"],returnFirstDependency)),define("swiper",[bowerPath+"/Swiper/dist/js/swiper.min","css!"+bowerPath+"/Swiper/dist/css/swiper.min"],returnFirstDependency),define("scroller",[embyWebComponentsBowerPath+"/scroller/smoothscroller"],returnFirstDependency),define("toast",[embyWebComponentsBowerPath+"/toast/toast"],returnFirstDependency),define("scrollHelper",[embyWebComponentsBowerPath+"/scrollhelper"],returnFirstDependency),define("touchHelper",[embyWebComponentsBowerPath+"/touchhelper"],returnFirstDependency),define("appSettings",[embyWebComponentsBowerPath+"/appsettings"],updateAppSettings),define("userSettings",[embyWebComponentsBowerPath+"/usersettings/usersettings"],returnFirstDependency),define("userSettingsBuilder",[embyWebComponentsBowerPath+"/usersettings/usersettingsbuilder"],returnFirstDependency),define("material-icons",["css!"+embyWebComponentsBowerPath+"/fonts/material-icons/style"],returnFirstDependency),define("robotoFont",["css!fonts/roboto/style"],returnFirstDependency),define("scrollStyles",["css!"+embyWebComponentsBowerPath+"/scrollstyles"],returnFirstDependency),define("navdrawer",["components/navdrawer/navdrawer"],returnFirstDependency),define("viewcontainer",["components/viewcontainer-lite","css!"+embyWebComponentsBowerPath+"/viewmanager/viewcontainer-lite"],returnFirstDependency),define("queryString",[bowerPath+"/query-string/index"],function(){return queryString}),define("jQuery",[bowerPath+"/jquery/dist/jquery.slim.min"],function(){return window.ApiClient&&(jQuery.ajax=ApiClient.ajax),jQuery}),define("fnchecked",["legacy/fnchecked"],returnFirstDependency),define("dialogHelper",[embyWebComponentsBowerPath+"/dialoghelper/dialoghelper"],function(dialoghelper){return dialoghelper.setOnOpen(onDialogOpen),dialoghelper}),define("inputmanager",["inputManager"],returnFirstDependency),define("historyManager",["embyRouter"],returnFirstDependency),define("headroom-window",["headroom"],createWindowHeadroom),define("appFooter-shared",["appFooter"],createSharedAppFooter),define("skinManager",[],function(){return{loadUserSkin:function(){require(["embyRouter"],function(embyRouter){embyRouter.goHome()})}}}),define("connectionManager",[],function(){return ConnectionManager}),define("apiClientResolver",[],function(){return function(){return window.ApiClient}}),define("embyRouter",[embyWebComponentsBowerPath+"/router","itemHelper"],function(embyRouter,itemHelper){function showItem(item,serverId,options){"string"==typeof item?require(["connectionManager"],function(connectionManager){var apiClient=connectionManager.currentApiClient();apiClient.getItem(apiClient.getCurrentUserId(),item).then(function(item){embyRouter.showItem(item,options)})}):(2==arguments.length&&(options=arguments[1]),embyRouter.show("/"+embyRouter.getRouteUrl(item,options),{item:item}))}return embyRouter.showLocalLogin=function(serverId,manualLogin){Dashboard.navigate("login.html?serverid="+serverId)},embyRouter.showVideoOsd=function(){return Dashboard.navigate("videoosd.html")},embyRouter.showSelectServer=function(){Dashboard.isConnectMode()?Dashboard.navigate("selectserver.html"):Dashboard.navigate("login.html")},embyRouter.showWelcome=function(){Dashboard.isConnectMode()?Dashboard.navigate("connectlogin.html?mode=welcome"):Dashboard.navigate("login.html")},embyRouter.showConnectLogin=function(){Dashboard.navigate("connectlogin.html")},embyRouter.showSettings=function(){Dashboard.navigate("mypreferencesmenu.html")},embyRouter.showGuide=function(){Dashboard.navigate("livetv.html?tab=1")},embyRouter.goHome=function(){Dashboard.navigate("home.html")},embyRouter.showSearch=function(){Dashboard.navigate("search.html")},embyRouter.showLiveTV=function(){Dashboard.navigate("livetv.html")},embyRouter.showRecordedTV=function(){Dashboard.navigate("livetv.html?tab=3")},embyRouter.showFavorites=function(){ -Dashboard.navigate("home.html?tab=1")},embyRouter.showSettings=function(){Dashboard.navigate("mypreferencesmenu.html")},embyRouter.showNowPlaying=function(){Dashboard.navigate("nowplaying.html")},embyRouter.setTitle=function(title){LibraryMenu.setTitle(title)},embyRouter.getRouteUrl=function(item,options){if(!item)throw new Error("item cannot be null");if(item.url)return item.url;var context=options?options.context:null,topParentId=options?options.topParentId||options.parentId:null;if("string"==typeof item){if("downloads"===item)return"offline/offline.html";if("downloadsettings"===item)return"mysyncsettings.html";if("managedownloads"===item)return"managedownloads.html";if("manageserver"===item)return"dashboard.html";if("recordedtv"===item)return"livetv.html?tab=3&serverId="+options.serverId;if("nextup"===item)return"secondaryitems.html?type=nextup&serverId="+options.serverId;if("livetv"===item)return"guide"===options.section?"livetv.html?tab=1&serverId="+options.serverId:"movies"===options.section?"livetvitems.html?type=Programs&IsMovie=true&serverId="+options.serverId:"shows"===options.section?"livetvitems.html?type=Programs&IsSeries=true&IsMovie=false&IsNews=false&serverId="+options.serverId:"sports"===options.section?"livetvitems.html?type=Programs&IsSports=true&serverId="+options.serverId:"kids"===options.section?"livetvitems.html?type=Programs&IsKids=true&serverId="+options.serverId:"news"===options.section?"livetvitems.html?type=Programs&IsNews=true&serverId="+options.serverId:"onnow"===options.section?"livetvitems.html?type=Programs&IsAiring=true&serverId="+options.serverId:"dvrschedule"===options.section?"livetv.html?tab=4&serverId="+options.serverId:"livetv.html?serverId="+options.serverId}var url,id=item.Id||item.ItemId,itemType=item.Type||(options?options.itemType:null),serverId=item.ServerId||options.serverId;if("SeriesTimer"==itemType)return"itemdetails.html?seriesTimerId="+id+"&serverId="+serverId;if("livetv"==item.CollectionType)return"livetv.html";if("channels"==item.CollectionType)return"channels.html";if("folders"===context||itemHelper.isLocalItem(item)){if(item.IsFolder&&"BoxSet"!=itemType&&"Series"!=itemType)return id?"itemlist.html?parentId="+id+"&serverId="+serverId:"#"}else{if("movies"==item.CollectionType)return url="movies.html?topParentId="+item.Id,options&&"latest"===options.section&&(url+="&tab=1"),url;if("boxsets"==item.CollectionType)return"itemlist.html?topParentId="+item.Id+"&parentId="+item.Id+"&serverId="+serverId;if("tvshows"==item.CollectionType)return url="tv.html?topParentId="+item.Id,options&&"latest"===options.section&&(url+="&tab=2"),url;if("music"==item.CollectionType)return"music.html?topParentId="+item.Id;if("games"==item.CollectionType)return id?"itemlist.html?parentId="+id+"&serverId="+serverId:"#";if("playlists"==item.CollectionType)return"playlists.html?topParentId="+item.Id;if("photos"==item.CollectionType)return"photos.html?topParentId="+item.Id}if("CollectionFolder"==itemType)return"itemlist.html?topParentId="+item.Id+"&parentId="+item.Id+"&serverId="+serverId;if("PhotoAlbum"==itemType)return"itemlist.html?context=photos&parentId="+id+"&serverId="+serverId;if("Playlist"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("TvChannel"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("Channel"==itemType)return"channelitems.html?id="+id+"&serverId="+serverId;if(item.IsFolder&&"Channel"==item.SourceType||"ChannelFolderItem"==itemType)return"channelitems.html?id="+item.ChannelId+"&folderId="+item.Id;if("Program"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("BoxSet"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("MusicAlbum"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("GameSystem"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("Genre"==itemType){var type;switch(context){case"tvshows":type="Series";break;case"games":type="Game";break;default:type="Movie"}return url="secondaryitems.html?type="+type+"&genreId="+id+"&serverId="+serverId,topParentId&&(url+="&parentId="+topParentId),url}if("MusicGenre"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("GameGenre"==itemType)return url="secondaryitems.html?type=Game&genreId="+id+"&serverId="+serverId,topParentId&&(url+="&parentId="+topParentId),url;if("Studio"==itemType){var type;switch(context){case"tvshows":type="Series";break;case"games":type="Game";break;default:type="Movie"}return url="secondaryitems.html?type="+type+"&studioId="+id+"&serverId="+serverId,topParentId&&(url+="&parentId="+topParentId),url}if("Person"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("Recording"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("MusicArtist"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;var contextSuffix=context?"&context="+context:"";return"Series"==itemType||"Season"==itemType||"Episode"==itemType?"itemdetails.html?id="+id+contextSuffix+"&serverId="+serverId:item.IsFolder?id?"itemlist.html?parentId="+id+"&serverId="+serverId:"#":"itemdetails.html?id="+id+"&serverId="+serverId},embyRouter.showItem=showItem,embyRouter})}function updateAppSettings(appSettings){return appSettings.enableExternalPlayers=function(val){return null!=val&&appSettings.set("externalplayers",val.toString()),"true"===appSettings.get("externalplayers")},appSettings}function onDialogOpen(dlg){dlg.classList.contains("background-theme-a")||dlg.classList.contains("actionSheet")||(dlg.classList.add("background-theme-b"),dlg.classList.add("ui-body-b"))}function defineResizeObserver(){self.ResizeObserver?define("ResizeObserver",[],function(){return self.ResizeObserver}):define("ResizeObserver",["bower_components/resize-observer-polyfill/resizeobserver"],returnFirstDependency)}function initRequireWithBrowser(browser){var bowerPath=getBowerPath(),apiClientBowerPath=bowerPath+"/emby-apiclient",embyWebComponentsBowerPath=bowerPath+"/emby-webcomponents";Dashboard.isRunningInCordova()&&browser.android?(define("apiclientcore",["bower_components/emby-apiclient/apiclient"],returnFirstDependency),define("apiclient",["bower_components/emby-apiclient/apiclientex"],returnFirstDependency)):define("apiclient",["bower_components/emby-apiclient/apiclient"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.safari?define("actionsheet",["cordova/actionsheet"],returnFirstDependency):define("actionsheet",["webActionSheet"],returnFirstDependency),"registerElement"in document?define("registerElement",[]):browser.msie?define("registerElement",[bowerPath+"/webcomponentsjs/webcomponents-lite.min.js"],returnFirstDependency):define("registerElement",[bowerPath+"/document-register-element/build/document-register-element"],returnFirstDependency),window.chrome&&window.chrome.sockets?define("serverdiscovery",[apiClientBowerPath+"/serverdiscovery-chrome"],returnFirstDependency):Dashboard.isRunningInCordova()&&browser.android?define("serverdiscovery",["cordova/serverdiscovery"],returnFirstDependency):Dashboard.isRunningInCordova()&&browser.safari?define("serverdiscovery",[apiClientBowerPath+"/serverdiscovery-chrome"],returnFirstDependency):define("serverdiscovery",[apiClientBowerPath+"/serverdiscovery"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.safari?define("imageFetcher",["cordova/imagestore"],returnFirstDependency):define("imageFetcher",[embyWebComponentsBowerPath+"/images/basicimagefetcher"],returnFirstDependency);var preferNativeAlerts=browser.tv;preferNativeAlerts&&window.alert?define("alert",[embyWebComponentsBowerPath+"/alert/nativealert"],returnFirstDependency):define("alert",[embyWebComponentsBowerPath+"/alert/alert"],returnFirstDependency),defineResizeObserver(),define("dialog",[embyWebComponentsBowerPath+"/dialog/dialog"],returnFirstDependency),preferNativeAlerts&&window.confirm?define("confirm",[embyWebComponentsBowerPath+"/confirm/nativeconfirm"],returnFirstDependency):define("confirm",[embyWebComponentsBowerPath+"/confirm/confirm"],returnFirstDependency);var preferNativePrompt=preferNativeAlerts||browser.xboxOne;preferNativePrompt&&window.confirm?define("prompt",[embyWebComponentsBowerPath+"/prompt/nativeprompt"],returnFirstDependency):define("prompt",[embyWebComponentsBowerPath+"/prompt/prompt"],returnFirstDependency),browser.tizen||browser.operaTv||browser.chromecast||browser.orsay||browser.web0s||browser.ps4?define("loading",[embyWebComponentsBowerPath+"/loading/loading-legacy"],returnFirstDependency):define("loading",[embyWebComponentsBowerPath+"/loading/loading-lite"],returnFirstDependency),define("multi-download",[embyWebComponentsBowerPath+"/multidownload"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.android?(define("fileDownloader",["cordova/filedownloader"],returnFirstDependency),define("localassetmanager",["cordova/localassetmanager"],returnFirstDependency)):(define("fileDownloader",[embyWebComponentsBowerPath+"/filedownloader"],returnFirstDependency),define("localassetmanager",[apiClientBowerPath+"/localassetmanager"],returnFirstDependency)),define("screenLock",[embyWebComponentsBowerPath+"/resourcelocks/nullresourcelock"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.android?(define("resourceLockManager",[embyWebComponentsBowerPath+"/resourcelocks/resourcelockmanager"],returnFirstDependency),define("wakeLock",["cordova/wakelock"],returnFirstDependency),define("networkLock",["cordova/networklock"],returnFirstDependency)):(define("resourceLockManager",[embyWebComponentsBowerPath+"/resourcelocks/resourcelockmanager"],returnFirstDependency),define("wakeLock",[embyWebComponentsBowerPath+"/resourcelocks/nullresourcelock"],returnFirstDependency),define("networkLock",[embyWebComponentsBowerPath+"/resourcelocks/nullresourcelock"],returnFirstDependency)),Dashboard.isRunningInCordova()?define("castSenderApiLoader",[],getDummyCastSenderApiLoader):define("castSenderApiLoader",[],getCastSenderApiLoader)}function init(){Dashboard.isRunningInCordova()&&browserInfo.android&&define("nativedirectorychooser",["cordova/nativedirectorychooser"],returnFirstDependency),Dashboard.isRunningInCordova()&&browserInfo.android?define("localsync",["cordova/localsync"],returnFirstDependency):define("localsync",["scripts/localsync"],returnFirstDependency),define("livetvcss",["css!css/livetv.css"],returnFirstDependency),define("detailtablecss",["css!css/detailtable.css"],returnFirstDependency),define("autoorganizetablecss",["css!css/autoorganizetable.css"],returnFirstDependency),define("buttonenabled",["legacy/buttonenabled"],returnFirstDependency),initAfterDependencies()}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function initAfterDependencies(){var list=[];window.fetch||list.push("fetch"),"function"!=typeof Object.assign&&list.push("objectassign"),Array.prototype.filter||list.push("arraypolyfills"),Function.prototype.bind||list.push("functionbind"),window.requestAnimationFrame||list.push("raf"),require(list,function(){createConnectionManager().then(function(){console.log("initAfterDependencies promises resolved"),require(["globalize"],function(globalize){window.Globalize=globalize,Promise.all([loadCoreDictionary(globalize),loadSharedComponentsDictionary(globalize)]).then(onGlobalizeInit)})})})}function loadSharedComponentsDictionary(globalize){var baseUrl="bower_components/emby-webcomponents/strings/",languages=["ar","bg-bg","ca","cs","da","de","el","en-gb","en-us","es-ar","es-mx","es","fi","fr","gsw","he","hr","hu","id","it","kk","ko","lt-lt","ms","nb","nl","pl","pt-br","pt-pt","ro","ru","sk","sl-si","sv","tr","uk","vi","zh-cn","zh-hk","zh-tw"],translations=languages.map(function(i){return{lang:i,path:baseUrl+i+".json"}});globalize.loadStrings({name:"sharedcomponents",translations:translations})}function loadCoreDictionary(globalize){var baseUrl="strings/",languages=["ar","bg-bg","ca","cs","da","de","el","en-gb","en-us","es-ar","es-mx","es","fa","fi","fr","gsw","he","hr","hu","id","it","kk","ko","ms","nb","nl","pl","pt-br","pt-pt","ro","ru","sl-si","sv","tr","uk","vi","zh-cn","zh-hk","zh-tw"],translations=languages.map(function(i){return{lang:i,path:baseUrl+i+".json"}});return globalize.defaultModule("core"),globalize.loadStrings({name:"core",translations:translations})}function onGlobalizeInit(){document.title=Globalize.translateDocument(document.title,"core"),require(["apphost"],function(appHost){loadPlugins([],appHost,browserInfo).then(onAppReady)})}function defineRoute(newRoute,dictionary){var baseRoute=Emby.Page.baseUrl(),path=newRoute.path;path=path.replace(baseRoute,""),console.log("Defining route: "+path),newRoute.dictionary=newRoute.dictionary||dictionary||"core",Emby.Page.addRoute(path,newRoute)}function defineCoreRoutes(appHost){console.log("Defining core routes"),defineRoute({path:"/addplugin.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"scripts/addpluginpage"}),defineRoute({path:"/appservices.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/autoorganizelog.html",dependencies:["scripts/taskbutton","autoorganizetablecss"],controller:"dashboard/autoorganizelog",roles:"admin"}),defineRoute({path:"/autoorganizesmart.html",dependencies:["emby-button"],controller:"dashboard/autoorganizesmart",autoFocus:!1,roles:"admin"}),defineRoute({path:"/autoorganizetv.html",dependencies:["emby-checkbox","emby-input","emby-button","emby-select","emby-collapse"],controller:"dashboard/autoorganizetv",autoFocus:!1,roles:"admin"}),defineRoute({path:"/channelitems.html",dependencies:[],autoFocus:!1,transition:"fade"}),defineRoute({path:"/channels.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/channels"}),defineRoute({path:"/channelsettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/cinemamodeconfiguration.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/connectlogin.html",dependencies:["emby-button","emby-input"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/connectlogin"}),defineRoute({path:"/dashboard.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"scripts/dashboardpage"}),defineRoute({path:"/dashboardgeneral.html",controller:"dashboard/dashboardgeneral",autoFocus:!1,roles:"admin"}),defineRoute({path:"/dashboardhosting.html",dependencies:["emby-input","emby-button"],autoFocus:!1,roles:"admin",controller:"dashboard/dashboardhosting"}),defineRoute({path:"/device.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/devices.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/devicesupload.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnaprofile.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnaprofiles.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnaserversettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnasettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/edititemmetadata.html",dependencies:[],controller:"scripts/edititemmetadata",autoFocus:!1}),defineRoute({path:"/encodingsettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/forgotpassword.html",dependencies:["emby-input","emby-button"],anonymous:!0,startup:!0,controller:"scripts/forgotpassword"}),defineRoute({path:"/forgotpasswordpin.html",dependencies:["emby-input","emby-button"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/forgotpasswordpin"}),defineRoute({path:"/gamegenres.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/games.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/gamesrecommended.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/gamestudios.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/gamesystems.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/home.html",dependencies:[],autoFocus:!1,controller:"scripts/indexpage",transition:"fade",type:"home"}),defineRoute({path:"/index.html",dependencies:[],autoFocus:!1,isDefaultRoute:!0}),defineRoute({path:"/itemdetails.html",dependencies:["emby-button","scripts/livetvcomponents","paper-icon-button-light","emby-itemscontainer"],controller:"scripts/itemdetailpage",autoFocus:!1,transition:"fade"}),defineRoute({path:"/itemlist.html",dependencies:[],autoFocus:!1,controller:"scripts/itemlistpage",transition:"fade"}),defineRoute({path:"/kids.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/library.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/librarydisplay.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"dashboard/librarydisplay"}),defineRoute({path:"/librarysettings.html",dependencies:["emby-collapse","emby-input","emby-button","emby-select"],autoFocus:!1,roles:"admin",controller:"dashboard/librarysettings"}),defineRoute({path:"/livetv.html",dependencies:["emby-button","livetvcss"],controller:"scripts/livetvsuggested",autoFocus:!1,transition:"fade"}),defineRoute({path:"/livetvguideprovider.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/livetvitems.html",dependencies:[],autoFocus:!1,controller:"scripts/livetvitems"}),defineRoute({path:"/livetvseriestimer.html",dependencies:["emby-checkbox","emby-input","emby-button","emby-collapse","scripts/livetvcomponents","scripts/livetvseriestimer","livetvcss"],autoFocus:!1,controller:"scripts/livetvseriestimer"}),defineRoute({path:"/livetvsettings.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/livetvstatus.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/livetvtuner.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"dashboard/livetvtuner"}),defineRoute({path:"/log.html",dependencies:["emby-checkbox"],roles:"admin",controller:"dashboard/logpage"}),defineRoute({path:"/login.html",dependencies:["emby-button","emby-input"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/loginpage"}),defineRoute({path:"/metadataadvanced.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/metadataimages.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/metadatanfo.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/metadatasubtitles.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/movies.html",dependencies:["emby-button"],autoFocus:!1,controller:"scripts/moviesrecommended",transition:"fade"}),defineRoute({path:"/music.html",dependencies:[],controller:"scripts/musicrecommended",autoFocus:!1,transition:"fade"}),defineRoute({path:"/mypreferencesdisplay.html",dependencies:["emby-checkbox","emby-button","emby-select"],autoFocus:!1,transition:"fade",controller:"scripts/mypreferencesdisplay"}),defineRoute({path:"/mypreferenceshome.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/mypreferenceshome"}),defineRoute({path:"/mypreferencessubtitles.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/mypreferencessubtitles"}),defineRoute({path:"/mypreferenceslanguages.html",dependencies:["emby-button","emby-checkbox","emby-select"],autoFocus:!1,transition:"fade",controller:"scripts/mypreferenceslanguages"}),defineRoute({path:"/mypreferencesmenu.html",dependencies:["emby-button"],autoFocus:!1,transition:"fade",controller:"scripts/mypreferencescommon"}),defineRoute({path:"/myprofile.html",dependencies:["emby-button","emby-collapse","emby-checkbox","emby-input"],autoFocus:!1,transition:"fade",controller:"scripts/myprofile"}),defineRoute({path:"/offline/offline.html",transition:"fade",controller:"offline/offline",dependencies:[],anonymous:!0,startup:!1}),defineRoute({path:"/managedownloads.html",transition:"fade",controller:"scripts/managedownloads",dependencies:[]}),defineRoute({path:"/mysync.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/mysync"}),defineRoute({path:"/camerauploadsettings.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/camerauploadsettings"}),defineRoute({path:"/mysyncjob.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/syncjob"}),defineRoute({path:"/mysyncsettings.html",dependencies:["emby-checkbox","emby-input","emby-button","paper-icon-button-light"],autoFocus:!1,transition:"fade",controller:"scripts/mysyncsettings"}),defineRoute({path:"/notificationlist.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/notificationsetting.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/notificationsettings.html",controller:"scripts/notificationsettings",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/nowplaying.html",dependencies:["paper-icon-button-light","emby-slider","emby-button","emby-input","emby-itemscontainer"],controller:"scripts/nowplayingpage",autoFocus:!1,transition:"fade",fullscreen:!0,supportsThemeMedia:!0,enableMediaControl:!1}),defineRoute({path:"/photos.html",dependencies:[],autoFocus:!1,transition:"fade"}),defineRoute({path:"/playbackconfiguration.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/playlists.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/playlists"}),defineRoute({path:"/plugincatalog.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/plugins.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/reports.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/scheduledtask.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"scripts/scheduledtaskpage"}),defineRoute({path:"/scheduledtasks.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"scripts/scheduledtaskspage"}),defineRoute({path:"/search.html",dependencies:[],controller:"scripts/searchpage"}),defineRoute({path:"/secondaryitems.html",dependencies:[],transition:"fade",autoFocus:!1,controller:"scripts/secondaryitems"}),defineRoute({path:"/selectserver.html",dependencies:["listViewStyle","emby-button"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/selectserver"}),defineRoute({path:"/serversecurity.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/shared.html",dependencies:[],autoFocus:!1,anonymous:!0}),defineRoute({path:"/streamingsettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/support.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/supporterkey.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/syncactivity.html",dependencies:[],autoFocus:!1,controller:"scripts/syncactivity"}),defineRoute({path:"/syncsettings.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/tv.html",dependencies:["paper-icon-button-light","emby-button"],autoFocus:!1,controller:"scripts/tvrecommended",transition:"fade"}),defineRoute({path:"/useredit.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/userlibraryaccess.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/usernew.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/userparentalcontrol.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/userpassword.html",dependencies:["emby-input","emby-button","emby-checkbox"],autoFocus:!1,controller:"scripts/userpasswordpage"}),defineRoute({path:"/userprofiles.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/wizardagreement.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizardcomponents.html",dependencies:["dashboardcss","emby-button","emby-input","emby-select"],autoFocus:!1,anonymous:!0,controller:"dashboard/wizardcomponents"}),defineRoute({path:"/wizardfinish.html",dependencies:["emby-button","dashboardcss"],autoFocus:!1,anonymous:!0,controller:"dashboard/wizardfinishpage"}),defineRoute({path:"/wizardlibrary.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizardsettings.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizardstart.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizarduser.html",dependencies:["dashboardcss","emby-input"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/videoosd.html",dependencies:[],transition:"fade",controller:"scripts/videoosd",autoFocus:!1,type:"video-osd",supportsThemeMedia:!0,fullscreen:!0,enableMediaControl:!1}),defineRoute({path:"/configurationpage",dependencies:["jQuery"],autoFocus:!1,enableCache:!1,enableContentQueryString:!0,roles:"admin"}),defineRoute({path:"/",isDefaultRoute:!0,autoFocus:!1,dependencies:[]})}function loadPlugins(externalPlugins,appHost,browser,shell){console.log("Loading installed plugins");var list=["bower_components/emby-webcomponents/playback/playbackvalidation","bower_components/emby-webcomponents/playback/playaccessvalidation"];Dashboard.isRunningInCordova()&&browser.android?list.push("cordova/vlcplayer"):Dashboard.isRunningInCordova()&&browser.safari&&list.push("cordova/audioplayer"),list.push("bower_components/emby-webcomponents/htmlaudioplayer/plugin"),Dashboard.isRunningInCordova()&&browser.safari&&list.push("cordova/chromecast"),Dashboard.isRunningInCordova()&&browser.android&&list.push("cordova/externalplayer"),list.push("bower_components/emby-webcomponents/htmlvideoplayer/plugin"),list.push("bower_components/emby-webcomponents/photoplayer/plugin"),appHost.supports("remotecontrol")&&(list.push("bower_components/emby-webcomponents/sessionplayer"),browser.chrome&&list.push("bower_components/emby-webcomponents/chromecastplayer")),list.push("bower_components/emby-webcomponents/youtubeplayer/plugin");for(var i=0,length=externalPlugins.length;i':''),headerHtml+="",headerHtml+="",page.insertAdjacentHTML("afterbegin",headerHtml)}},getSupportedRemoteCommands:function(){return["GoHome","GoToSettings","VolumeUp","VolumeDown","Mute","Unmute","ToggleMute","SetVolume","SetAudioStreamIndex","SetSubtitleStreamIndex","DisplayContent","GoToSearch","DisplayMessage","SetRepeatMode"]},capabilities:function(){var caps={PlayableMediaTypes:["Audio","Video"],SupportedCommands:Dashboard.getSupportedRemoteCommands(),SupportsPersistentIdentifier:Dashboard.isRunningInCordova(),SupportsMediaControl:!0,SupportedLiveMediaTypes:["Audio","Video"]};return Dashboard.isRunningInCordova()&&!browserInfo.safari&&(caps.SupportsSync=!0,caps.SupportsContentUploading=!0),caps},normalizeImageOptions:function(options){var setQuality;if(options.maxWidth&&(setQuality=!0),options.width&&(setQuality=!0),options.maxHeight&&(setQuality=!0),options.height&&(setQuality=!0),setQuality){var quality=90,isBackdrop="backdrop"==(options.type||"").toLowerCase();isBackdrop&&(quality-=10),browserInfo.slow&&(quality-=40),AppInfo.hasLowImageBandwidth&&!isBackdrop&&(quality-=10),options.quality=quality}}},AppInfo={};!function(){"use strict";function setAppInfo(){var isCordova=Dashboard.isRunningInCordova();AppInfo.enableAutoSave=browserInfo.touch,AppInfo.enableAppStorePolicy=isCordova,browserInfo.iOS&&(AppInfo.hasLowImageBandwidth=!0),isCordova?(AppInfo.isNativeApp=!0,browserInfo.android&&(AppInfo.supportsExternalPlayers=!0)):AppInfo.enableSupporterMembership=!0,AppInfo.supportsFileInput=!(AppInfo.isNativeApp&&browserInfo.android),AppInfo.supportsUserDisplayLanguageSetting=Dashboard.isConnectMode()}function initializeApiClient(apiClient){AppInfo.enableAppStorePolicy&&(apiClient.getAvailablePlugins=function(){return Promise.resolve([])},apiClient.getInstalledPlugins=function(){return Promise.resolve([])}),apiClient.normalizeImageOptions=Dashboard.normalizeImageOptions}function onApiClientCreated(e,newApiClient){initializeApiClient(newApiClient),window.$&&($.ajax=newApiClient.ajax),require(["globalize"],function(globalize){newApiClient.downloadsTitleText=globalize.translate("sharedcomponents#Downloads")})}function defineConnectionManager(connectionManager){window.ConnectionManager=connectionManager,define("connectionManager",[],function(){return connectionManager})}function bindConnectionManagerEvents(connectionManager,events,userSettings){window.Events=events,events.on(ConnectionManager,"apiclientcreated",onApiClientCreated),connectionManager.currentApiClient=function(){if(!localApiClient){var server=connectionManager.getLastUsedServer();server&&(localApiClient=connectionManager.getApiClient(server.Id))}return localApiClient},connectionManager.onLocalUserSignedIn=function(user){return localApiClient=connectionManager.getApiClient(user.ServerId),window.ApiClient=localApiClient,userSettings.setUserInfo(user.Id,localApiClient)},events.on(connectionManager,"localusersignedout",function(){userSettings.setUserInfo(null,null)})}function createConnectionManager(){return new Promise(function(resolve,reject){require(["connectionManagerFactory","apphost","credentialprovider","events","userSettings"],function(connectionManagerExports,apphost,credentialProvider,events,userSettings){window.MediaBrowser=Object.assign(window.MediaBrowser||{},connectionManagerExports);var credentialProviderInstance=new credentialProvider,promises=[apphost.getSyncProfile(),apphost.appInfo()];Promise.all(promises).then(function(responses){var deviceProfile=responses[0],appInfo=responses[1],capabilities=Dashboard.capabilities();capabilities.DeviceProfile=deviceProfile;var connectionManager=new MediaBrowser.ConnectionManager(credentialProviderInstance,appInfo.appName,appInfo.appVersion,appInfo.deviceName,appInfo.deviceId,capabilities,window.devicePixelRatio);return defineConnectionManager(connectionManager),bindConnectionManagerEvents(connectionManager,events,userSettings),Dashboard.isConnectMode()?void resolve():(console.log("loading ApiClient singleton"),getRequirePromise(["apiclient"]).then(function(apiClientFactory){console.log("creating ApiClient singleton");var apiClient=new apiClientFactory(Dashboard.serverAddress(),appInfo.appName,appInfo.appVersion,appInfo.deviceName,appInfo.deviceId,window.devicePixelRatio);apiClient.enableAutomaticNetworking=!1,connectionManager.addApiClient(apiClient),require(["css!"+apiClient.getUrl("Branding/Css")]),window.ApiClient=apiClient,localApiClient=apiClient,console.log("loaded ApiClient singleton"),resolve()}))})})})}function setDocumentClasses(browser){var elem=document.documentElement;AppInfo.enableSupporterMembership||elem.classList.add("supporterMembershipDisabled")}function loadTheme(){var name=getParameterByName("theme");if(name)return void require(["themes/"+name+"/theme"]);if(!AppInfo.isNativeApp){var date=new Date,month=date.getMonth(),day=date.getDate();return 9==month&&day>=30?void require(["themes/halloween/theme"]):void 0}}function returnFirstDependency(obj){return obj}function getBowerPath(){return"bower_components"}function getLayoutManager(layoutManager,appHost){return appHost.getDefaultLayout&&(layoutManager.defaultLayout=appHost.getDefaultLayout()),layoutManager.init(),layoutManager}function getAppStorage(basePath){try{return localStorage.setItem("_test","0"),localStorage.removeItem("_test"),basePath+"/appstorage-localstorage"}catch(e){return basePath+"/appstorage-memory"}}function createWindowHeadroom(Headroom){var headroom=new Headroom([],{});return headroom.init(),headroom}function getCastSenderApiLoader(){var ccLoaded=!1;return{load:function(){return ccLoaded?Promise.resolve():new Promise(function(resolve,reject){var fileref=document.createElement("script");fileref.setAttribute("type","text/javascript"),fileref.onload=function(){ccLoaded=!0,resolve()},fileref.setAttribute("src","https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"),document.querySelector("head").appendChild(fileref)})}}}function getDummyCastSenderApiLoader(){return{load:function(){return window.chrome=window.chrome||{},Promise.resolve()}}}function createSharedAppFooter(appFooter){var footer=new appFooter({});return footer}function onRequireJsError(requireType,requireModules){console.log("RequireJS error: "+(requireType||"unknown")+". Failed modules: "+(requireModules||[]).join(","))}function initRequire(){var urlArgs="v="+(window.dashboardVersion||(new Date).getDate()),bowerPath=getBowerPath(),apiClientBowerPath=bowerPath+"/emby-apiclient",embyWebComponentsBowerPath=bowerPath+"/emby-webcomponents",paths={velocity:bowerPath+"/velocity/velocity.min",vibrant:bowerPath+"/vibrant/dist/vibrant",staticBackdrops:embyWebComponentsBowerPath+"/staticbackdrops",ironCardList:"components/ironcardlist/ironcardlist",scrollThreshold:"components/scrollthreshold",playlisteditor:"components/playlisteditor/playlisteditor",medialibrarycreator:"components/medialibrarycreator/medialibrarycreator",medialibraryeditor:"components/medialibraryeditor/medialibraryeditor",howler:bowerPath+"/howlerjs/howler.min",sortable:bowerPath+"/Sortable/Sortable.min",isMobile:bowerPath+"/isMobile/isMobile.min",masonry:bowerPath+"/masonry/dist/masonry.pkgd.min",humanedate:"components/humanedate",libraryBrowser:"scripts/librarybrowser",chromecasthelpers:"components/chromecasthelpers",events:apiClientBowerPath+"/events",credentialprovider:apiClientBowerPath+"/credentials",connectionManagerFactory:bowerPath+"/emby-apiclient/connectionmanager",visibleinviewport:embyWebComponentsBowerPath+"/visibleinviewport",browserdeviceprofile:embyWebComponentsBowerPath+"/browserdeviceprofile",browser:embyWebComponentsBowerPath+"/browser",inputManager:embyWebComponentsBowerPath+"/inputmanager",qualityoptions:embyWebComponentsBowerPath+"/qualityoptions",hammer:bowerPath+"/hammerjs/hammer.min",pageJs:embyWebComponentsBowerPath+"/pagejs/page",focusManager:embyWebComponentsBowerPath+"/focusmanager",datetime:embyWebComponentsBowerPath+"/datetime",globalize:embyWebComponentsBowerPath+"/globalize",itemHelper:embyWebComponentsBowerPath+"/itemhelper",itemShortcuts:embyWebComponentsBowerPath+"/shortcuts",serverNotifications:embyWebComponentsBowerPath+"/servernotifications",playbackManager:embyWebComponentsBowerPath+"/playback/playbackmanager",playQueueManager:embyWebComponentsBowerPath+"/playback/playqueuemanager",autoPlayDetect:embyWebComponentsBowerPath+"/playback/autoplaydetect",nowPlayingHelper:embyWebComponentsBowerPath+"/playback/nowplayinghelper",pluginManager:embyWebComponentsBowerPath+"/pluginmanager",packageManager:embyWebComponentsBowerPath+"/packagemanager"};paths.hlsjs=bowerPath+"/hlsjs/dist/hls.min",define("mediaSession",[embyWebComponentsBowerPath+"/playback/mediasession"],returnFirstDependency),define("webActionSheet",[embyWebComponentsBowerPath+"/actionsheet/actionsheet"],returnFirstDependency),Dashboard.isRunningInCordova()?paths.sharingMenu="cordova/sharingwidget":define("sharingMenu",[embyWebComponentsBowerPath+"/sharing/sharingmenu"],returnFirstDependency),paths.wakeonlan=apiClientBowerPath+"/wakeonlan",define("libjass",[bowerPath+"/libjass/libjass.min","css!"+bowerPath+"/libjass/libjass"],returnFirstDependency),window.IntersectionObserver?define("lazyLoader",[embyWebComponentsBowerPath+"/lazyloader/lazyloader-intersectionobserver"],returnFirstDependency):define("lazyLoader",[embyWebComponentsBowerPath+"/lazyloader/lazyloader-scroll"],returnFirstDependency),define("tunerPicker",["components/tunerpicker"],returnFirstDependency),define("mainTabsManager",["components/maintabsmanager"],returnFirstDependency),define("imageLoader",[embyWebComponentsBowerPath+"/images/imagehelper"],returnFirstDependency),define("appFooter",[embyWebComponentsBowerPath+"/appfooter/appfooter"],returnFirstDependency),define("directorybrowser",["components/directorybrowser/directorybrowser"],returnFirstDependency),define("metadataEditor",[embyWebComponentsBowerPath+"/metadataeditor/metadataeditor"],returnFirstDependency),define("personEditor",[embyWebComponentsBowerPath+"/metadataeditor/personeditor"],returnFirstDependency),define("playerSelectionMenu",[embyWebComponentsBowerPath+"/playback/playerselection"],returnFirstDependency),define("playerSettingsMenu",[embyWebComponentsBowerPath+"/playback/playersettingsmenu"],returnFirstDependency),define("playMethodHelper",[embyWebComponentsBowerPath+"/playback/playmethodhelper"],returnFirstDependency),define("brightnessOsd",[embyWebComponentsBowerPath+"/playback/brightnessosd"],returnFirstDependency),define("libraryMenu",["scripts/librarymenu"],returnFirstDependency),define("emby-collapse",[embyWebComponentsBowerPath+"/emby-collapse/emby-collapse"],returnFirstDependency),define("emby-button",[embyWebComponentsBowerPath+"/emby-button/emby-button"],returnFirstDependency),define("emby-linkbutton",["emby-button"],returnFirstDependency),define("emby-itemscontainer",[embyWebComponentsBowerPath+"/emby-itemscontainer/emby-itemscontainer"],returnFirstDependency),define("emby-scroller",[embyWebComponentsBowerPath+"/emby-scroller/emby-scroller"],returnFirstDependency),define("emby-tabs",[embyWebComponentsBowerPath+"/emby-tabs/emby-tabs"],returnFirstDependency),define("emby-scrollbuttons",[embyWebComponentsBowerPath+"/emby-scrollbuttons/emby-scrollbuttons"],returnFirstDependency),define("emby-progressring",[embyWebComponentsBowerPath+"/emby-progressring/emby-progressring"],returnFirstDependency),define("emby-itemrefreshindicator",[embyWebComponentsBowerPath+"/emby-itemrefreshindicator/emby-itemrefreshindicator"],returnFirstDependency),define("itemHoverMenu",[embyWebComponentsBowerPath+"/itemhovermenu/itemhovermenu"],returnFirstDependency),define("multiSelect",[embyWebComponentsBowerPath+"/multiselect/multiselect"],returnFirstDependency),define("alphaPicker",[embyWebComponentsBowerPath+"/alphapicker/alphapicker"],returnFirstDependency),define("paper-icon-button-light",[embyWebComponentsBowerPath+"/emby-button/paper-icon-button-light"],returnFirstDependency),define("connectHelper",[embyWebComponentsBowerPath+"/emby-connect/connecthelper"],returnFirstDependency),define("emby-input",[embyWebComponentsBowerPath+"/emby-input/emby-input"],returnFirstDependency),define("emby-select",[embyWebComponentsBowerPath+"/emby-select/emby-select"],returnFirstDependency),define("emby-slider",[embyWebComponentsBowerPath+"/emby-slider/emby-slider"],returnFirstDependency),define("emby-checkbox",[embyWebComponentsBowerPath+"/emby-checkbox/emby-checkbox"],returnFirstDependency),define("emby-radio",[embyWebComponentsBowerPath+"/emby-radio/emby-radio"],returnFirstDependency),define("emby-textarea",[embyWebComponentsBowerPath+"/emby-textarea/emby-textarea"],returnFirstDependency),define("collectionEditor",[embyWebComponentsBowerPath+"/collectioneditor/collectioneditor"],returnFirstDependency),define("playlistEditor",[embyWebComponentsBowerPath+"/playlisteditor/playlisteditor"],returnFirstDependency),define("recordingCreator",[embyWebComponentsBowerPath+"/recordingcreator/recordingcreator"],returnFirstDependency),define("recordingEditor",[embyWebComponentsBowerPath+"/recordingcreator/recordingeditor"],returnFirstDependency),define("seriesRecordingEditor",[embyWebComponentsBowerPath+"/recordingcreator/seriesrecordingeditor"],returnFirstDependency),define("recordingFields",[embyWebComponentsBowerPath+"/recordingcreator/recordingfields"],returnFirstDependency),define("recordingButton",[embyWebComponentsBowerPath+"/recordingcreator/recordingbutton"],returnFirstDependency),define("recordingHelper",[embyWebComponentsBowerPath+"/recordingcreator/recordinghelper"],returnFirstDependency),define("subtitleEditor",[embyWebComponentsBowerPath+"/subtitleeditor/subtitleeditor"],returnFirstDependency),define("itemIdentifier",[embyWebComponentsBowerPath+"/itemidentifier/itemidentifier"],returnFirstDependency),define("mediaInfo",[embyWebComponentsBowerPath+"/mediainfo/mediainfo"],returnFirstDependency),define("itemContextMenu",[embyWebComponentsBowerPath+"/itemcontextmenu"],returnFirstDependency),define("imageEditor",[embyWebComponentsBowerPath+"/imageeditor/imageeditor"],returnFirstDependency),define("imageDownloader",[embyWebComponentsBowerPath+"/imagedownloader/imagedownloader"],returnFirstDependency),define("dom",[embyWebComponentsBowerPath+"/dom"],returnFirstDependency),define("playerStats",[embyWebComponentsBowerPath+"/playerstats/playerstats"],returnFirstDependency),define("searchFields",[embyWebComponentsBowerPath+"/search/searchfields"],returnFirstDependency),define("searchResults",[embyWebComponentsBowerPath+"/search/searchresults"],returnFirstDependency),define("fullscreen-doubleclick",[embyWebComponentsBowerPath+"/fullscreen/fullscreen-doubleclick"],returnFirstDependency),define("fullscreenManager",[embyWebComponentsBowerPath+"/fullscreen/fullscreenmanager","events"],returnFirstDependency),define("headroom",[embyWebComponentsBowerPath+"/headroom/headroom"],returnFirstDependency),define("subtitleAppearanceHelper",[embyWebComponentsBowerPath+"/subtitlesettings/subtitleappearancehelper"],returnFirstDependency),define("subtitleSettings",[embyWebComponentsBowerPath+"/subtitlesettings/subtitlesettings"],returnFirstDependency),define("homescreenSettings",[embyWebComponentsBowerPath+"/homescreensettings/homescreensettings"],returnFirstDependency),define("homescreenSettingsDialog",[embyWebComponentsBowerPath+"/homescreensettings/homescreensettingsdialog"],returnFirstDependency),define("layoutManager",[embyWebComponentsBowerPath+"/layoutmanager","apphost"],getLayoutManager),define("homeSections",[embyWebComponentsBowerPath+"/homesections"],returnFirstDependency),define("playMenu",[embyWebComponentsBowerPath+"/playmenu"],returnFirstDependency),define("refreshDialog",[embyWebComponentsBowerPath+"/refreshdialog/refreshdialog"],returnFirstDependency),define("backdrop",[embyWebComponentsBowerPath+"/backdrop/backdrop"],returnFirstDependency),define("fetchHelper",[embyWebComponentsBowerPath+"/fetchhelper"],returnFirstDependency),define("roundCardStyle",["cardStyle","css!"+embyWebComponentsBowerPath+"/cardbuilder/roundcard"],returnFirstDependency),define("cardStyle",["css!"+embyWebComponentsBowerPath+"/cardbuilder/card"],returnFirstDependency),define("cardBuilder",[embyWebComponentsBowerPath+"/cardbuilder/cardbuilder"],returnFirstDependency),define("peoplecardbuilder",[embyWebComponentsBowerPath+"/cardbuilder/peoplecardbuilder"],returnFirstDependency),define("chaptercardbuilder",[embyWebComponentsBowerPath+"/cardbuilder/chaptercardbuilder"],returnFirstDependency),define("mouseManager",[embyWebComponentsBowerPath+"/input/mouse"],returnFirstDependency),define("flexStyles",["css!"+embyWebComponentsBowerPath+"/flexstyles"],returnFirstDependency),define("deleteHelper",[embyWebComponentsBowerPath+"/deletehelper"],returnFirstDependency),define("tvguide",[embyWebComponentsBowerPath+"/guide/guide"],returnFirstDependency),define("programStyles",["css!"+embyWebComponentsBowerPath+"/guide/programs"],returnFirstDependency),define("guide-settings-dialog",[embyWebComponentsBowerPath+"/guide/guide-settings"],returnFirstDependency),define("syncDialog",[embyWebComponentsBowerPath+"/sync/sync"],returnFirstDependency),define("syncJobEditor",[embyWebComponentsBowerPath+"/sync/syncjobeditor"],returnFirstDependency),define("syncJobList",[embyWebComponentsBowerPath+"/sync/syncjoblist"],returnFirstDependency),define("viewManager",[embyWebComponentsBowerPath+"/viewmanager/viewmanager"],function(viewManager){return window.ViewManager=viewManager,viewManager.dispatchPageEvents(!0),viewManager}),Dashboard.isRunningInCordova()&&window.MainActivity?define("shell",["cordova/shell"],returnFirstDependency):define("shell",[embyWebComponentsBowerPath+"/shell"],returnFirstDependency),define("sharingmanager",[embyWebComponentsBowerPath+"/sharing/sharingmanager"],returnFirstDependency),Dashboard.isRunningInCordova()?paths.apphost="cordova/apphost":paths.apphost="components/apphost",Dashboard.isRunningInCordova()&&window.MainActivity?(paths.appStorage="cordova/appstorage",paths.filesystem="cordova/filesystem"):(paths.appStorage=getAppStorage(apiClientBowerPath),paths.filesystem=embyWebComponentsBowerPath+"/filesystem");var sha1Path=bowerPath+"/cryptojslib/components/sha1-min",md5Path=bowerPath+"/cryptojslib/components/md5-min",shim={};shim[sha1Path]={deps:[bowerPath+"/cryptojslib/components/core-min"]},shim[md5Path]={deps:[bowerPath+"/cryptojslib/components/core-min"]},requirejs.config({waitSeconds:0,map:{"*":{css:bowerPath+"/emby-webcomponents/require/requirecss",html:bowerPath+"/emby-webcomponents/require/requirehtml",text:bowerPath+"/emby-webcomponents/require/requiretext"}},urlArgs:urlArgs,paths:paths,shim:shim,onError:onRequireJsError}),requirejs.onError=onRequireJsError,define("cryptojs-sha1",[sha1Path],returnFirstDependency),define("cryptojs-md5",[md5Path],returnFirstDependency),define("jstree",[bowerPath+"/jstree/dist/jstree","css!thirdparty/jstree/themes/default/style.min.css"],returnFirstDependency),define("dashboardcss",["css!css/dashboard"],returnFirstDependency),define("jqmtable",["thirdparty/jquerymobile-1.4.5/jqm.table","css!thirdparty/jquerymobile-1.4.5/jqm.table.css"],returnFirstDependency),define("jqmwidget",["thirdparty/jquerymobile-1.4.5/jqm.widget"],returnFirstDependency),define("jqmslider",["thirdparty/jquerymobile-1.4.5/jqm.slider","css!thirdparty/jquerymobile-1.4.5/jqm.slider.css"],returnFirstDependency),define("jqmpopup",["thirdparty/jquerymobile-1.4.5/jqm.popup","css!thirdparty/jquerymobile-1.4.5/jqm.popup.css"],returnFirstDependency),define("jqmlistview",["css!thirdparty/jquerymobile-1.4.5/jqm.listview.css"],returnFirstDependency),define("jqmpanel",["thirdparty/jquerymobile-1.4.5/jqm.panel","css!thirdparty/jquerymobile-1.4.5/jqm.panel.css"],returnFirstDependency),define("slideshow",[embyWebComponentsBowerPath+"/slideshow/slideshow"],returnFirstDependency),define("fetch",[bowerPath+"/fetch/fetch"],returnFirstDependency),define("raf",[embyWebComponentsBowerPath+"/polyfills/raf"],returnFirstDependency),define("functionbind",[embyWebComponentsBowerPath+"/polyfills/bind"],returnFirstDependency),define("arraypolyfills",[embyWebComponentsBowerPath+"/polyfills/array"],returnFirstDependency),define("objectassign",[embyWebComponentsBowerPath+"/polyfills/objectassign"],returnFirstDependency),define("clearButtonStyle",["css!"+embyWebComponentsBowerPath+"/clearbutton"],returnFirstDependency),define("userdataButtons",[embyWebComponentsBowerPath+"/userdatabuttons/userdatabuttons"],returnFirstDependency),define("emby-playstatebutton",[embyWebComponentsBowerPath+"/userdatabuttons/emby-playstatebutton"],returnFirstDependency),define("emby-ratingbutton",[embyWebComponentsBowerPath+"/userdatabuttons/emby-ratingbutton"],returnFirstDependency),define("emby-downloadbutton",[embyWebComponentsBowerPath+"/sync/emby-downloadbutton"],returnFirstDependency),define("listView",[embyWebComponentsBowerPath+"/listview/listview"],returnFirstDependency),define("listViewStyle",["css!"+embyWebComponentsBowerPath+"/listview/listview"],returnFirstDependency),define("formDialogStyle",["css!"+embyWebComponentsBowerPath+"/formdialog"],returnFirstDependency),define("indicators",[embyWebComponentsBowerPath+"/indicators/indicators"],returnFirstDependency),define("registrationServices",[embyWebComponentsBowerPath+"/registrationservices/registrationservices"],returnFirstDependency),Dashboard.isRunningInCordova()?(define("iapManager",["cordova/iap"],returnFirstDependency),define("fileupload",["cordova/fileupload"],returnFirstDependency)):(define("iapManager",["components/iap"],returnFirstDependency),define("fileupload",[apiClientBowerPath+"/fileupload"],returnFirstDependency)),define("connectionmanager",[apiClientBowerPath+"/connectionmanager"]),define("cameraRoll",[apiClientBowerPath+"/cameraroll"],returnFirstDependency),define("contentuploader",[apiClientBowerPath+"/sync/contentuploader"],returnFirstDependency),define("serversync",[apiClientBowerPath+"/sync/serversync"],returnFirstDependency),define("multiserversync",[apiClientBowerPath+"/sync/multiserversync"],returnFirstDependency),define("mediasync",[apiClientBowerPath+"/sync/mediasync"],returnFirstDependency),define("idb",[embyWebComponentsBowerPath+"/idb"],returnFirstDependency),define("itemrepository",[apiClientBowerPath+"/sync/itemrepository"],returnFirstDependency),define("useractionrepository",[apiClientBowerPath+"/sync/useractionrepository"],returnFirstDependency),self.Windows?(define("bgtaskregister",["environments/windows-uwp/bgtaskregister"],returnFirstDependency),define("transfermanager",["environments/windows-uwp/transfermanager"],returnFirstDependency),define("filerepository",["environments/windows-uwp/filerepository"],returnFirstDependency)):(define("transfermanager",[apiClientBowerPath+"/sync/transfermanager"],returnFirstDependency),define("filerepository",[apiClientBowerPath+"/sync/filerepository"],returnFirstDependency)),define("swiper",[bowerPath+"/Swiper/dist/js/swiper.min","css!"+bowerPath+"/Swiper/dist/css/swiper.min"],returnFirstDependency),define("scroller",[embyWebComponentsBowerPath+"/scroller/smoothscroller"],returnFirstDependency),define("toast",[embyWebComponentsBowerPath+"/toast/toast"],returnFirstDependency),define("scrollHelper",[embyWebComponentsBowerPath+"/scrollhelper"],returnFirstDependency),define("touchHelper",[embyWebComponentsBowerPath+"/touchhelper"],returnFirstDependency),define("appSettings",[embyWebComponentsBowerPath+"/appsettings"],updateAppSettings),define("userSettings",[embyWebComponentsBowerPath+"/usersettings/usersettings"],returnFirstDependency),define("userSettingsBuilder",[embyWebComponentsBowerPath+"/usersettings/usersettingsbuilder"],returnFirstDependency),define("material-icons",["css!"+embyWebComponentsBowerPath+"/fonts/material-icons/style"],returnFirstDependency),define("scrollStyles",["css!"+embyWebComponentsBowerPath+"/scrollstyles"],returnFirstDependency),define("navdrawer",["components/navdrawer/navdrawer"],returnFirstDependency),define("viewcontainer",["components/viewcontainer-lite","css!"+embyWebComponentsBowerPath+"/viewmanager/viewcontainer-lite"],returnFirstDependency),define("queryString",[bowerPath+"/query-string/index"],function(){return queryString}),define("jQuery",[bowerPath+"/jquery/dist/jquery.slim.min"],function(){return window.ApiClient&&(jQuery.ajax=ApiClient.ajax),jQuery}),define("fnchecked",["legacy/fnchecked"],returnFirstDependency),define("dialogHelper",[embyWebComponentsBowerPath+"/dialoghelper/dialoghelper"],function(dialoghelper){return dialoghelper.setOnOpen(onDialogOpen),dialoghelper}),define("inputmanager",["inputManager"],returnFirstDependency),define("historyManager",["appRouter"],returnFirstDependency),define("headroom-window",["headroom"],createWindowHeadroom),define("appFooter-shared",["appFooter"],createSharedAppFooter),define("skinManager",[],function(){return{loadUserSkin:function(){require(["appRouter"],function(appRouter){appRouter.goHome()})}}}),define("connectionManager",[],function(){return ConnectionManager}),define("apiClientResolver",[],function(){return function(){return window.ApiClient}}),define("appRouter",[embyWebComponentsBowerPath+"/router","itemHelper"],function(appRouter,itemHelper){function showItem(item,serverId,options){"string"==typeof item?require(["connectionManager"],function(connectionManager){var apiClient=connectionManager.currentApiClient();apiClient.getItem(apiClient.getCurrentUserId(),item).then(function(item){appRouter.showItem(item,options)})}):(2==arguments.length&&(options=arguments[1]),appRouter.show("/"+appRouter.getRouteUrl(item,options),{item:item}))}return appRouter.showLocalLogin=function(serverId,manualLogin){Dashboard.navigate("login.html?serverid="+serverId)},appRouter.showVideoOsd=function(){return Dashboard.navigate("videoosd.html")},appRouter.showSelectServer=function(){Dashboard.isConnectMode()?Dashboard.navigate("selectserver.html"):Dashboard.navigate("login.html")},appRouter.showWelcome=function(){Dashboard.isConnectMode()?Dashboard.navigate("connectlogin.html?mode=welcome"):Dashboard.navigate("login.html")},appRouter.showConnectLogin=function(){Dashboard.navigate("connectlogin.html")},appRouter.showSettings=function(){Dashboard.navigate("mypreferencesmenu.html")},appRouter.showGuide=function(){Dashboard.navigate("livetv.html?tab=1")},appRouter.goHome=function(){Dashboard.navigate("home.html")},appRouter.showSearch=function(){Dashboard.navigate("search.html")},appRouter.showLiveTV=function(){Dashboard.navigate("livetv.html")},appRouter.showRecordedTV=function(){Dashboard.navigate("livetv.html?tab=3")},appRouter.showFavorites=function(){Dashboard.navigate("home.html?tab=1")},appRouter.showSettings=function(){Dashboard.navigate("mypreferencesmenu.html"); +},appRouter.showNowPlaying=function(){Dashboard.navigate("nowplaying.html")},appRouter.setTitle=function(title){LibraryMenu.setTitle(title)},appRouter.getRouteUrl=function(item,options){if(!item)throw new Error("item cannot be null");if(item.url)return item.url;var context=options?options.context:null,topParentId=options?options.topParentId||options.parentId:null;if("string"==typeof item){if("downloads"===item)return"offline/offline.html";if("downloadsettings"===item)return"mysyncsettings.html";if("managedownloads"===item)return"managedownloads.html";if("manageserver"===item)return"dashboard.html";if("recordedtv"===item)return"livetv.html?tab=3&serverId="+options.serverId;if("nextup"===item)return"secondaryitems.html?type=nextup&serverId="+options.serverId;if("livetv"===item)return"guide"===options.section?"livetv.html?tab=1&serverId="+options.serverId:"movies"===options.section?"livetvitems.html?type=Programs&IsMovie=true&serverId="+options.serverId:"shows"===options.section?"livetvitems.html?type=Programs&IsSeries=true&IsMovie=false&IsNews=false&serverId="+options.serverId:"sports"===options.section?"livetvitems.html?type=Programs&IsSports=true&serverId="+options.serverId:"kids"===options.section?"livetvitems.html?type=Programs&IsKids=true&serverId="+options.serverId:"news"===options.section?"livetvitems.html?type=Programs&IsNews=true&serverId="+options.serverId:"onnow"===options.section?"livetvitems.html?type=Programs&IsAiring=true&serverId="+options.serverId:"dvrschedule"===options.section?"livetv.html?tab=4&serverId="+options.serverId:"livetv.html?serverId="+options.serverId}var url,id=item.Id||item.ItemId,itemType=item.Type||(options?options.itemType:null),serverId=item.ServerId||options.serverId;if("SeriesTimer"==itemType)return"itemdetails.html?seriesTimerId="+id+"&serverId="+serverId;if("livetv"==item.CollectionType)return"livetv.html";if("channels"==item.CollectionType)return"channels.html";if("folders"===context||itemHelper.isLocalItem(item)){if(item.IsFolder&&"BoxSet"!=itemType&&"Series"!=itemType)return id?"itemlist.html?parentId="+id+"&serverId="+serverId:"#"}else{if("movies"==item.CollectionType)return url="movies.html?topParentId="+item.Id,options&&"latest"===options.section&&(url+="&tab=1"),url;if("boxsets"==item.CollectionType)return"itemlist.html?topParentId="+item.Id+"&parentId="+item.Id+"&serverId="+serverId;if("tvshows"==item.CollectionType)return url="tv.html?topParentId="+item.Id,options&&"latest"===options.section&&(url+="&tab=2"),url;if("music"==item.CollectionType)return"music.html?topParentId="+item.Id;if("games"==item.CollectionType)return id?"itemlist.html?parentId="+id+"&serverId="+serverId:"#";if("playlists"==item.CollectionType)return"playlists.html?topParentId="+item.Id;if("photos"==item.CollectionType)return"photos.html?topParentId="+item.Id}if("CollectionFolder"==itemType)return"itemlist.html?topParentId="+item.Id+"&parentId="+item.Id+"&serverId="+serverId;if("PhotoAlbum"==itemType)return"itemlist.html?context=photos&parentId="+id+"&serverId="+serverId;if("Playlist"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("TvChannel"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("Channel"==itemType)return"channelitems.html?id="+id+"&serverId="+serverId;if(item.IsFolder&&"Channel"==item.SourceType||"ChannelFolderItem"==itemType)return"channelitems.html?id="+item.ChannelId+"&folderId="+item.Id;if("Program"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("BoxSet"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("MusicAlbum"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("GameSystem"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("Genre"==itemType){var type;switch(context){case"tvshows":type="Series";break;case"games":type="Game";break;default:type="Movie"}return url="secondaryitems.html?type="+type+"&genreId="+id+"&serverId="+serverId,topParentId&&(url+="&parentId="+topParentId),url}if("MusicGenre"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("GameGenre"==itemType)return url="secondaryitems.html?type=Game&genreId="+id+"&serverId="+serverId,topParentId&&(url+="&parentId="+topParentId),url;if("Studio"==itemType){var type;switch(context){case"tvshows":type="Series";break;case"games":type="Game";break;default:type="Movie"}return url="secondaryitems.html?type="+type+"&studioId="+id+"&serverId="+serverId,topParentId&&(url+="&parentId="+topParentId),url}if("Person"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("Recording"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("MusicArtist"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;var contextSuffix=context?"&context="+context:"";return"Series"==itemType||"Season"==itemType||"Episode"==itemType?"itemdetails.html?id="+id+contextSuffix+"&serverId="+serverId:item.IsFolder?id?"itemlist.html?parentId="+id+"&serverId="+serverId:"#":"itemdetails.html?id="+id+"&serverId="+serverId},appRouter.showItem=showItem,appRouter})}function updateAppSettings(appSettings){return appSettings.enableExternalPlayers=function(val){return null!=val&&appSettings.set("externalplayers",val.toString()),"true"===appSettings.get("externalplayers")},appSettings}function onDialogOpen(dlg){dlg.classList.contains("background-theme-a")||dlg.classList.contains("actionSheet")||(dlg.classList.add("background-theme-b"),dlg.classList.add("ui-body-b"))}function defineResizeObserver(){self.ResizeObserver?define("ResizeObserver",[],function(){return self.ResizeObserver}):define("ResizeObserver",["bower_components/resize-observer-polyfill/resizeobserver"],returnFirstDependency)}function initRequireWithBrowser(browser){var bowerPath=getBowerPath(),apiClientBowerPath=bowerPath+"/emby-apiclient",embyWebComponentsBowerPath=bowerPath+"/emby-webcomponents";Dashboard.isRunningInCordova()&&browser.android?(define("apiclientcore",["bower_components/emby-apiclient/apiclient"],returnFirstDependency),define("apiclient",["bower_components/emby-apiclient/apiclientex"],returnFirstDependency)):define("apiclient",["bower_components/emby-apiclient/apiclient"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.safari?define("actionsheet",["cordova/actionsheet"],returnFirstDependency):define("actionsheet",["webActionSheet"],returnFirstDependency),"registerElement"in document?define("registerElement",[]):browser.msie?define("registerElement",[bowerPath+"/webcomponentsjs/webcomponents-lite.min.js"],returnFirstDependency):define("registerElement",[bowerPath+"/document-register-element/build/document-register-element"],returnFirstDependency),window.chrome&&window.chrome.sockets?define("serverdiscovery",[apiClientBowerPath+"/serverdiscovery-chrome"],returnFirstDependency):Dashboard.isRunningInCordova()&&browser.android?define("serverdiscovery",["cordova/serverdiscovery"],returnFirstDependency):Dashboard.isRunningInCordova()&&browser.safari?define("serverdiscovery",[apiClientBowerPath+"/serverdiscovery-chrome"],returnFirstDependency):define("serverdiscovery",[apiClientBowerPath+"/serverdiscovery"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.safari?define("imageFetcher",["cordova/imagestore"],returnFirstDependency):define("imageFetcher",[embyWebComponentsBowerPath+"/images/basicimagefetcher"],returnFirstDependency);var preferNativeAlerts=browser.tv;preferNativeAlerts&&window.alert?define("alert",[embyWebComponentsBowerPath+"/alert/nativealert"],returnFirstDependency):define("alert",[embyWebComponentsBowerPath+"/alert/alert"],returnFirstDependency),defineResizeObserver(),define("dialog",[embyWebComponentsBowerPath+"/dialog/dialog"],returnFirstDependency),preferNativeAlerts&&window.confirm?define("confirm",[embyWebComponentsBowerPath+"/confirm/nativeconfirm"],returnFirstDependency):define("confirm",[embyWebComponentsBowerPath+"/confirm/confirm"],returnFirstDependency);var preferNativePrompt=preferNativeAlerts||browser.xboxOne;preferNativePrompt&&window.confirm?define("prompt",[embyWebComponentsBowerPath+"/prompt/nativeprompt"],returnFirstDependency):define("prompt",[embyWebComponentsBowerPath+"/prompt/prompt"],returnFirstDependency),browser.tizen||browser.operaTv||browser.chromecast||browser.orsay||browser.web0s||browser.ps4?define("loading",[embyWebComponentsBowerPath+"/loading/loading-legacy"],returnFirstDependency):define("loading",[embyWebComponentsBowerPath+"/loading/loading-lite"],returnFirstDependency),define("multi-download",[embyWebComponentsBowerPath+"/multidownload"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.android?(define("fileDownloader",["cordova/filedownloader"],returnFirstDependency),define("localassetmanager",["cordova/localassetmanager"],returnFirstDependency)):(define("fileDownloader",[embyWebComponentsBowerPath+"/filedownloader"],returnFirstDependency),define("localassetmanager",[apiClientBowerPath+"/localassetmanager"],returnFirstDependency)),define("screenLock",[embyWebComponentsBowerPath+"/resourcelocks/nullresourcelock"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.android?(define("resourceLockManager",[embyWebComponentsBowerPath+"/resourcelocks/resourcelockmanager"],returnFirstDependency),define("wakeLock",["cordova/wakelock"],returnFirstDependency),define("networkLock",["cordova/networklock"],returnFirstDependency)):(define("resourceLockManager",[embyWebComponentsBowerPath+"/resourcelocks/resourcelockmanager"],returnFirstDependency),define("wakeLock",[embyWebComponentsBowerPath+"/resourcelocks/nullresourcelock"],returnFirstDependency),define("networkLock",[embyWebComponentsBowerPath+"/resourcelocks/nullresourcelock"],returnFirstDependency)),Dashboard.isRunningInCordova()?define("castSenderApiLoader",[],getDummyCastSenderApiLoader):define("castSenderApiLoader",[],getCastSenderApiLoader)}function init(){Dashboard.isRunningInCordova()&&browserInfo.android&&define("nativedirectorychooser",["cordova/nativedirectorychooser"],returnFirstDependency),Dashboard.isRunningInCordova()&&browserInfo.android?define("localsync",["cordova/localsync"],returnFirstDependency):define("localsync",["scripts/localsync"],returnFirstDependency),define("livetvcss",["css!css/livetv.css"],returnFirstDependency),define("detailtablecss",["css!css/detailtable.css"],returnFirstDependency),define("autoorganizetablecss",["css!css/autoorganizetable.css"],returnFirstDependency),define("buttonenabled",["legacy/buttonenabled"],returnFirstDependency),initAfterDependencies()}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function initAfterDependencies(){var list=[];window.fetch||list.push("fetch"),"function"!=typeof Object.assign&&list.push("objectassign"),Array.prototype.filter||list.push("arraypolyfills"),Function.prototype.bind||list.push("functionbind"),window.requestAnimationFrame||list.push("raf"),require(list,function(){createConnectionManager().then(function(){console.log("initAfterDependencies promises resolved"),require(["globalize"],function(globalize){window.Globalize=globalize,Promise.all([loadCoreDictionary(globalize),loadSharedComponentsDictionary(globalize)]).then(onGlobalizeInit)})})})}function loadSharedComponentsDictionary(globalize){var baseUrl="bower_components/emby-webcomponents/strings/",languages=["ar","bg-bg","ca","cs","da","de","el","en-gb","en-us","es-ar","es-mx","es","fi","fr","gsw","he","hr","hu","id","it","kk","ko","lt-lt","ms","nb","nl","pl","pt-br","pt-pt","ro","ru","sk","sl-si","sv","tr","uk","vi","zh-cn","zh-hk","zh-tw"],translations=languages.map(function(i){return{lang:i,path:baseUrl+i+".json"}});globalize.loadStrings({name:"sharedcomponents",translations:translations})}function loadCoreDictionary(globalize){var baseUrl="strings/",languages=["ar","bg-bg","ca","cs","da","de","el","en-gb","en-us","es-ar","es-mx","es","fa","fi","fr","gsw","he","hr","hu","id","it","kk","ko","ms","nb","nl","pl","pt-br","pt-pt","ro","ru","sl-si","sv","tr","uk","vi","zh-cn","zh-hk","zh-tw"],translations=languages.map(function(i){return{lang:i,path:baseUrl+i+".json"}});return globalize.defaultModule("core"),globalize.loadStrings({name:"core",translations:translations})}function onGlobalizeInit(){document.title=Globalize.translateDocument(document.title,"core"),require(["apphost"],function(appHost){loadPlugins([],appHost,browserInfo).then(onAppReady)})}function defineRoute(newRoute,dictionary){var baseRoute=Emby.Page.baseUrl(),path=newRoute.path;path=path.replace(baseRoute,""),console.log("Defining route: "+path),newRoute.dictionary=newRoute.dictionary||dictionary||"core",Emby.Page.addRoute(path,newRoute)}function defineCoreRoutes(appHost){console.log("Defining core routes"),defineRoute({path:"/addplugin.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"scripts/addpluginpage"}),defineRoute({path:"/appservices.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/autoorganizelog.html",dependencies:["scripts/taskbutton","autoorganizetablecss"],controller:"dashboard/autoorganizelog",roles:"admin"}),defineRoute({path:"/autoorganizesmart.html",dependencies:["emby-button"],controller:"dashboard/autoorganizesmart",autoFocus:!1,roles:"admin"}),defineRoute({path:"/autoorganizetv.html",dependencies:["emby-checkbox","emby-input","emby-button","emby-select","emby-collapse"],controller:"dashboard/autoorganizetv",autoFocus:!1,roles:"admin"}),defineRoute({path:"/channelitems.html",dependencies:[],autoFocus:!1,transition:"fade"}),defineRoute({path:"/channels.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/channels"}),defineRoute({path:"/channelsettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/cinemamodeconfiguration.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/connectlogin.html",dependencies:["emby-button","emby-input"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/connectlogin"}),defineRoute({path:"/dashboard.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"scripts/dashboardpage"}),defineRoute({path:"/dashboardgeneral.html",controller:"dashboard/dashboardgeneral",autoFocus:!1,roles:"admin"}),defineRoute({path:"/dashboardhosting.html",dependencies:["emby-input","emby-button"],autoFocus:!1,roles:"admin",controller:"dashboard/dashboardhosting"}),defineRoute({path:"/device.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/devices.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/devicesupload.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnaprofile.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnaprofiles.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnaserversettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnasettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/edititemmetadata.html",dependencies:[],controller:"scripts/edititemmetadata",autoFocus:!1}),defineRoute({path:"/encodingsettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/forgotpassword.html",dependencies:["emby-input","emby-button"],anonymous:!0,startup:!0,controller:"scripts/forgotpassword"}),defineRoute({path:"/forgotpasswordpin.html",dependencies:["emby-input","emby-button"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/forgotpasswordpin"}),defineRoute({path:"/gamegenres.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/games.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/gamesrecommended.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/gamestudios.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/gamesystems.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/home.html",dependencies:[],autoFocus:!1,controller:"scripts/indexpage",transition:"fade",type:"home"}),defineRoute({path:"/index.html",dependencies:[],autoFocus:!1,isDefaultRoute:!0}),defineRoute({path:"/itemdetails.html",dependencies:["emby-button","scripts/livetvcomponents","paper-icon-button-light","emby-itemscontainer"],controller:"scripts/itemdetailpage",autoFocus:!1,transition:"fade"}),defineRoute({path:"/itemlist.html",dependencies:[],autoFocus:!1,controller:"scripts/itemlistpage",transition:"fade"}),defineRoute({path:"/kids.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/library.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/librarydisplay.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"dashboard/librarydisplay"}),defineRoute({path:"/librarysettings.html",dependencies:["emby-collapse","emby-input","emby-button","emby-select"],autoFocus:!1,roles:"admin",controller:"dashboard/librarysettings"}),defineRoute({path:"/livetv.html",dependencies:["emby-button","livetvcss"],controller:"scripts/livetvsuggested",autoFocus:!1,transition:"fade"}),defineRoute({path:"/livetvguideprovider.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/livetvitems.html",dependencies:[],autoFocus:!1,controller:"scripts/livetvitems"}),defineRoute({path:"/livetvseriestimer.html",dependencies:["emby-checkbox","emby-input","emby-button","emby-collapse","scripts/livetvcomponents","scripts/livetvseriestimer","livetvcss"],autoFocus:!1,controller:"scripts/livetvseriestimer"}),defineRoute({path:"/livetvsettings.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/livetvstatus.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/livetvtuner.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"dashboard/livetvtuner"}),defineRoute({path:"/log.html",dependencies:["emby-checkbox"],roles:"admin",controller:"dashboard/logpage"}),defineRoute({path:"/login.html",dependencies:["emby-button","emby-input"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/loginpage"}),defineRoute({path:"/metadataadvanced.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/metadataimages.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/metadatanfo.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/metadatasubtitles.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/movies.html",dependencies:["emby-button"],autoFocus:!1,controller:"scripts/moviesrecommended",transition:"fade"}),defineRoute({path:"/music.html",dependencies:[],controller:"scripts/musicrecommended",autoFocus:!1,transition:"fade"}),defineRoute({path:"/mypreferencesdisplay.html",dependencies:["emby-checkbox","emby-button","emby-select"],autoFocus:!1,transition:"fade",controller:"scripts/mypreferencesdisplay"}),defineRoute({path:"/mypreferenceshome.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/mypreferenceshome"}),defineRoute({path:"/mypreferencessubtitles.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/mypreferencessubtitles"}),defineRoute({path:"/mypreferenceslanguages.html",dependencies:["emby-button","emby-checkbox","emby-select"],autoFocus:!1,transition:"fade",controller:"scripts/mypreferenceslanguages"}),defineRoute({path:"/mypreferencesmenu.html",dependencies:["emby-button"],autoFocus:!1,transition:"fade",controller:"scripts/mypreferencescommon"}),defineRoute({path:"/myprofile.html",dependencies:["emby-button","emby-collapse","emby-checkbox","emby-input"],autoFocus:!1,transition:"fade",controller:"scripts/myprofile"}),defineRoute({path:"/offline/offline.html",transition:"fade",controller:"offline/offline",dependencies:[],anonymous:!0,startup:!1}),defineRoute({path:"/managedownloads.html",transition:"fade",controller:"scripts/managedownloads",dependencies:[]}),defineRoute({path:"/mysync.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/mysync"}),defineRoute({path:"/camerauploadsettings.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/camerauploadsettings"}),defineRoute({path:"/mysyncjob.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/syncjob"}),defineRoute({path:"/mysyncsettings.html",dependencies:["emby-checkbox","emby-input","emby-button","paper-icon-button-light"],autoFocus:!1,transition:"fade",controller:"scripts/mysyncsettings"}),defineRoute({path:"/notificationlist.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/notificationsetting.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/notificationsettings.html",controller:"scripts/notificationsettings",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/nowplaying.html",dependencies:["paper-icon-button-light","emby-slider","emby-button","emby-input","emby-itemscontainer"],controller:"scripts/nowplayingpage",autoFocus:!1,transition:"fade",fullscreen:!0,supportsThemeMedia:!0,enableMediaControl:!1}),defineRoute({path:"/photos.html",dependencies:[],autoFocus:!1,transition:"fade"}),defineRoute({path:"/playbackconfiguration.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/playlists.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/playlists"}),defineRoute({path:"/plugincatalog.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/plugins.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/reports.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/scheduledtask.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"scripts/scheduledtaskpage"}),defineRoute({path:"/scheduledtasks.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"scripts/scheduledtaskspage"}),defineRoute({path:"/search.html",dependencies:[],controller:"scripts/searchpage"}),defineRoute({path:"/secondaryitems.html",dependencies:[],transition:"fade",autoFocus:!1,controller:"scripts/secondaryitems"}),defineRoute({path:"/selectserver.html",dependencies:["listViewStyle","emby-button"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/selectserver"}),defineRoute({path:"/serversecurity.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/shared.html",dependencies:[],autoFocus:!1,anonymous:!0}),defineRoute({path:"/streamingsettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/support.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/supporterkey.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/syncactivity.html",dependencies:[],autoFocus:!1,controller:"scripts/syncactivity"}),defineRoute({path:"/syncsettings.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/tv.html",dependencies:["paper-icon-button-light","emby-button"],autoFocus:!1,controller:"scripts/tvrecommended",transition:"fade"}),defineRoute({path:"/useredit.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/userlibraryaccess.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/usernew.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/userparentalcontrol.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/userpassword.html",dependencies:["emby-input","emby-button","emby-checkbox"],autoFocus:!1,controller:"scripts/userpasswordpage"}),defineRoute({path:"/userprofiles.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/wizardagreement.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizardcomponents.html",dependencies:["dashboardcss","emby-button","emby-input","emby-select"],autoFocus:!1,anonymous:!0,controller:"dashboard/wizardcomponents"}),defineRoute({path:"/wizardfinish.html",dependencies:["emby-button","dashboardcss"],autoFocus:!1,anonymous:!0,controller:"dashboard/wizardfinishpage"}),defineRoute({path:"/wizardlibrary.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizardsettings.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizardstart.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizarduser.html",dependencies:["dashboardcss","emby-input"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/videoosd.html",dependencies:[],transition:"fade",controller:"scripts/videoosd",autoFocus:!1,type:"video-osd",supportsThemeMedia:!0,fullscreen:!0,enableMediaControl:!1}),defineRoute({path:"/configurationpage",dependencies:["jQuery"],autoFocus:!1,enableCache:!1,enableContentQueryString:!0,roles:"admin"}),defineRoute({path:"/",isDefaultRoute:!0,autoFocus:!1,dependencies:[]})}function loadPlugins(externalPlugins,appHost,browser,shell){console.log("Loading installed plugins");var list=["bower_components/emby-webcomponents/playback/playbackvalidation","bower_components/emby-webcomponents/playback/playaccessvalidation"];Dashboard.isRunningInCordova()&&browser.android?list.push("cordova/vlcplayer"):Dashboard.isRunningInCordova()&&browser.safari&&list.push("cordova/audioplayer"),list.push("bower_components/emby-webcomponents/htmlaudioplayer/plugin"),Dashboard.isRunningInCordova()&&browser.safari&&list.push("cordova/chromecast"),Dashboard.isRunningInCordova()&&browser.android&&list.push("cordova/externalplayer"),list.push("bower_components/emby-webcomponents/htmlvideoplayer/plugin"),list.push("bower_components/emby-webcomponents/photoplayer/plugin"),appHost.supports("remotecontrol")&&(list.push("bower_components/emby-webcomponents/sessionplayer"),browser.chrome&&list.push("bower_components/emby-webcomponents/chromecastplayer")),list.push("bower_components/emby-webcomponents/youtubeplayer/plugin");for(var i=0,length=externalPlugins.length;i=query.Limit&&tabContent.querySelector(".btnMoreFromGenre"+id+" i").classList.remove("hide")})}function reloadItems(context,promise){var query=getQuery();promise.then(function(result){for(var elem=context.querySelector("#items"),html="",items=result.Items,i=0,length=items.length;i',html+='",html+=enableScrollX()?'
':'
',html+="
",html+="
"}elem.innerHTML=html,lazyLoader.lazyChildren(elem,fillItemsContainer),libraryBrowser.saveQueryValues(getSavedQueryKey(),query),loading.hide()})}function fullyReload(){self.preRender(),self.renderTab()}var self=this,data={};self.getViewStyles=function(){return"Poster,PosterCard,Thumb,ThumbCard".split(",")},self.getCurrentViewStyle=function(){return getPageData(tabContent).view},self.setCurrentViewStyle=function(viewStyle){getPageData(tabContent).view=viewStyle,libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent),viewStyle),fullyReload()},self.enableViewSelection=!0;var promise;self.preRender=function(){promise=getPromise()},self.renderTab=function(){reloadItems(tabContent,promise)}}}); \ No newline at end of file +define(["layoutManager","loading","libraryBrowser","cardBuilder","lazyLoader","apphost","globalize","appRouter","dom","emby-linkbutton"],function(layoutManager,loading,libraryBrowser,cardBuilder,lazyLoader,appHost,globalize,appRouter,dom){"use strict";return function(view,params,tabContent){function getPageData(){var key=getSavedQueryKey(),pageData=data[key];return pageData||(pageData=data[key]={query:{SortBy:"SortName",SortOrder:"Ascending",IncludeItemTypes:"Series",Recursive:!0,EnableTotalRecordCount:!1},view:"Poster"},pageData.query.ParentId=params.topParentId,libraryBrowser.loadSavedQueryValues(key,pageData.query)),pageData}function getQuery(){return getPageData().query}function getSavedQueryKey(){return libraryBrowser.getSavedQueryKey("seriesgenres")}function getPromise(){loading.show();var query=getQuery();return ApiClient.getGenres(ApiClient.getCurrentUserId(),query)}function enableScrollX(){return!layoutManager.desktop}function getThumbShape(){return enableScrollX()?"overflowBackdrop":"backdrop"}function getPortraitShape(){return enableScrollX()?"overflowPortrait":"portrait"}function fillItemsContainer(elem){var id=elem.getAttribute("data-id"),viewStyle=self.getCurrentViewStyle(),limit="Thumb"==viewStyle||"ThumbCard"==viewStyle?5:8;enableScrollX()&&(limit=10);var enableImageTypes="Thumb"==viewStyle||"ThumbCard"==viewStyle?"Primary,Backdrop,Thumb":"Primary",query={SortBy:"SortName",SortOrder:"Ascending",IncludeItemTypes:"Series",Recursive:!0,Fields:"PrimaryImageAspectRatio,MediaSourceCount,BasicSyncInfo",ImageTypeLimit:1,EnableImageTypes:enableImageTypes,Limit:limit,GenreIds:id,EnableTotalRecordCount:!1,ParentId:params.topParentId};ApiClient.getItems(ApiClient.getCurrentUserId(),query).then(function(result){var supportsImageAnalysis=appHost.supports("imageanalysis");"Thumb"==viewStyle?cardBuilder.buildCards(result.Items,{itemsContainer:elem,shape:getThumbShape(),preferThumb:!0,showTitle:!0,scalable:!0,centerText:!0,overlayMoreButton:!0,allowBottomPadding:!1}):"ThumbCard"==viewStyle?cardBuilder.buildCards(result.Items,{itemsContainer:elem,shape:getThumbShape(),preferThumb:!0,showTitle:!0,scalable:!0,centerText:!1,cardLayout:!0,vibrant:supportsImageAnalysis,showYear:!0}):"PosterCard"==viewStyle?cardBuilder.buildCards(result.Items,{itemsContainer:elem,shape:getPortraitShape(),showTitle:!0,scalable:!0,centerText:!1,cardLayout:!0,vibrant:supportsImageAnalysis,showYear:!0}):"Poster"==viewStyle&&cardBuilder.buildCards(result.Items,{itemsContainer:elem,shape:getPortraitShape(),scalable:!0,overlayMoreButton:!0,allowBottomPadding:!1}),result.Items.length>=query.Limit&&tabContent.querySelector(".btnMoreFromGenre"+id+" i").classList.remove("hide")})}function reloadItems(context,promise){var query=getQuery();promise.then(function(result){for(var elem=context.querySelector("#items"),html="",items=result.Items,i=0,length=items.length;i',html+='",html+=enableScrollX()?'
':'
',html+="
",html+="
"}elem.innerHTML=html,lazyLoader.lazyChildren(elem,fillItemsContainer),libraryBrowser.saveQueryValues(getSavedQueryKey(),query),loading.hide()})}function fullyReload(){self.preRender(),self.renderTab()}var self=this,data={};self.getViewStyles=function(){return"Poster,PosterCard,Thumb,ThumbCard".split(",")},self.getCurrentViewStyle=function(){return getPageData(tabContent).view},self.setCurrentViewStyle=function(viewStyle){getPageData(tabContent).view=viewStyle,libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent),viewStyle),fullyReload()},self.enableViewSelection=!0;var promise;self.preRender=function(){promise=getPromise()},self.renderTab=function(){reloadItems(tabContent,promise)}}}); \ No newline at end of file