1 line
6.8 KiB
JavaScript
1 line
6.8 KiB
JavaScript
define(["exports","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/globalize.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/layoutmanager.js","./../modules/cardbuilder/cardbuilder.js","./../modules/common/itemmanager/itemmanager.js"],function(_exports,_embyScroller,_embyButton,_connectionmanager,_globalize,_loading,_embyItemscontainer,_layoutmanager,_cardbuilder,_itemmanager){function getCardOptionsForType(type,items){var options;return"BoxSet"===type||"Playlist"===type||"Game"===type||"Book"===type||"PhotoAlbum"===type||"MusicArtist"===type||"Person"===type?{shape:"autooverflow",fields:["Name"],focusTransformTitleAdjust:!0}:"Movie"===type||"Trailer"===type||"Series"===type?{shape:"autooverflow",fields:["Name","ProductionYear"],focusTransformTitleAdjust:!0}:"Photo"===type?{shape:"autooverflow",fields:["Name"],focusTransformTitleAdjust:!0}:"Audio"===type?{shape:"autooverflow",preferArtistTitle:!0,fields:["ParentName","Name"],action:"play",sideFooter:!0,focusTransformTitleAdjust:!0}:"TvChannel"===type?{shape:"autooverflow",fields:["Name","CurrentProgramParentName","CurrentProgramTime"],defaultBackground:!0,focusTransformTitleAdjust:!0}:"Program"===type?(function(options,type,items){"Program"===type&&items.length&&items[0].AsSeries&&(options.progress=!1,options.showAirDateTime=!1,options.fields=options.fields.filter(isNotName).filter(isNotParentName).filter(isNotAirTime),options.fields.push("ParentNameOrName"))}(options={shape:"autooverflow",fields:["ParentName","Name","AirTime"],showAirDateTime:!0,focusTransformTitleAdjust:!0},type,items),options):"Tag"===type?{shape:"autooverflow",fields:["Name"],defaultBackground:!0,multiSelect:!1,focusTransformTitleAdjust:!0}:{shape:"autooverflow",fields:["ParentName","Name"],focusTransformTitleAdjust:!0}}function isNotName(n){return"Name"!==n}function isNotParentName(n){return"ParentName"!==n}function isNotAirTime(n){return"AirTime"!==n}function renderSearchTypes(instance,apiClient,context,value,types){for(var searchCategories=context.querySelector(".searchCategories"),promises=(searchCategories.innerHTML="",[]),i=0,length=types.length;i<length;i++){var type=(type=types[i]).Name||type,elem=document.createElement("div"),innerHTML=(elem.className="hide verticalSection albumResults focusable","Audio"===type&&elem.classList.add("verticalSection-extrabottompadding"),'<h2 class="sectionTitle sectionTitle-cards focuscontainer-x padded-left padded-right">'+_itemmanager.default.getPluralItemTypeName(type)+"</h2>"),itemsContainerClass="focuscontainer-x itemsContainer scrollSlider";"Audio"===type&&(itemsContainerClass+=" itemsContainer-sideFooters"),innerHTML=(innerHTML+='<div is="emby-scroller" data-horizontal="true" data-focusscroll="true" data-mousewheel="false" class="padded-top-focusscale padded-bottom-focusscale padded-left padded-right">')+('<div is="emby-itemscontainer" class="'+itemsContainerClass+'"></div>')+"</div>",elem.innerHTML=innerHTML,elem.setAttribute("data-focusabletype","nearest"),searchCategories.appendChild(elem),promises.push(function(instance,apiClient,query,context,section){return query.Limit=16,query.ParentId=instance.options.parentId,function(instance,apiClient,query){query.Recursive=!0,query.EnableTotalRecordCount=!1,query.ImageTypeLimit=1,query.Fields=getSearchFields(instance,query.IncludeItemTypes),"Program"===query.IncludeItemTypes&&(query.GroupProgramsBySeries=!0);"Program"===query.IncludeItemTypes&&(query.HasAired=!1);return apiClient.getItems(apiClient.getCurrentUserId(),query)}(instance,apiClient,query).then(function(result){var items=result.Items||result.SearchHints,items=getCardOptionsForType(query.IncludeItemTypes,items);return populateResults(result,context,section,items)})}(instance,apiClient,{searchTerm:value,IncludeItemTypes:type},context,elem))}return Promise.all(promises)}function getSearchFields(instance,type){instance=instance.options.requestedItemFields+",PrimaryImageAspectRatio,ProductionYear";return type&&"Series"!==type||(instance+=",Status,EndDate"),instance}function populateResults(result,context,section,cardOptions){result=result.Items||result.SearchHints,context=(section="string"==typeof section?context.querySelector(section):section).querySelector(".itemsContainer");return _cardbuilder.default.buildCards(result,Object.assign({itemsContainer:context,parentContainer:section,shape:"autooverflow",scalable:!0,focusTransformTitleAdjust:!0},cardOptions||{})),section.querySelector(".emby-scroller").scrollToBeginning({behavior:"instant"}),result}function SearchResults(options){var elem,instance;this.options=options,elem=options.element,instance=this,elem.classList.add("searchResults"),instance.search("")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,SearchResults.prototype.search=function(value){_loading.default.show();var apiClient=_connectionmanager.default.getApiClient(this.options.serverId),elem=this.options.element,searchInfo=(elem.querySelector(".noResults").classList.add("hide"),{instance:this,searchTerm:value});return function(instance,apiClient,context,value){(value||_layoutmanager.default.tv)&&context.querySelector(".searchSuggestions").classList.add("hide");var query={SearchTerm:value,Recursive:!0,EnableTotalRecordCount:!1,ImageTypeLimit:1,Limit:16,ParentId:instance.options.parentId,Fields:getSearchFields(instance),GroupProgramsBySeries:!0};return apiClient.getSearchResults(query).then(function(result){var subPromises=[];return subPromises.push(populateResults(result,context,context.querySelector(".globalResults"),{shape:"autooverflow",fields:["ParentName","Name","Type","CurrentProgramParentName","AirTime"],showAirDateTime:!0,lines:4})),subPromises.push(renderSearchTypes(instance,apiClient,context,value,result.ItemTypes)),Promise.all(subPromises)})}(this,apiClient,elem,value).then(function(itemsResponses){_loading.default.hide();var hasResults,i,length,options=this.instance.options;if(options){if(itemsResponses[0].length&&(hasResults=!0),(itemsResponses=itemsResponses[1]).length)for(i=0,length=itemsResponses.length;i<length;i++)if(itemsResponses[i].length){hasResults=!0;break}options=options.element.querySelector(".noResults");hasResults||!this.searchTerm?options.classList.add("hide"):(this.searchTerm.length<2?options.innerHTML=_globalize.default.translate("TwoSearchCharsRequired"):options.innerHTML=_globalize.default.translate("NoItemsMatchingFound"),options.classList.remove("hide"))}}.bind(searchInfo),function(){_loading.default.hide();var options=this.options;options&&options.element.querySelector(".noResults").classList.remove("hide")}.bind(this))},SearchResults.prototype.destroy=function(){var options=this.options;options&&options.element.classList.remove("searchFields"),this.options=null},_exports.default=SearchResults}); |