1 line
6.5 KiB
JavaScript
1 line
6.5 KiB
JavaScript
|
|
import connectionManager from"./../modules/emby-apiclient/connectionmanager.js";import events from"./../modules/emby-apiclient/events.js";import globalize from"./../modules/common/globalize.js";import AlphaPicker from"./../modules/alphapicker/alphapicker.js";import layoutManager from"./../modules/layoutmanager.js";import"./../modules/emby-elements/emby-input/emby-input.js";import"./../modules/emby-elements/emby-button/emby-button.js";import{appHost}from"./../modules/common/servicelocator.js";import appRouter from"./../modules/approuter.js";import focusManager from"./../modules/focusmanager.js";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,EnableTotalRecordCount:!1};apiClient.getItems(apiClient.getCurrentUserId(),options).then(function(result){"suggestions"!==instance.mode&&(result.Items=[]);var html=result.Items.map(function(i){var itemHtml='<a is="emby-linkbutton" class="button-link block" style="padding:.25em 1em;" href="'+appRouter.getRouteUrl(i)+'">';return itemHtml+i.Name+"</a>"}).join(""),searchSuggestions=context.querySelector(".searchSuggestions");searchSuggestions.querySelector(".searchSuggestionsList").innerHTML=html,result.Items.length?searchSuggestions.classList.remove("hide"):searchSuggestions.classList.add("hide")})}function onSearchTimeout(){let value=this.nextSearchValue;value=(value||"").trim(),events.trigger(this,"search",[value]);var searchSuggestions,context=this.options.element;value||layoutManager.tv?(this.mode="search",(searchSuggestions=context.querySelector(".searchSuggestions"))&&searchSuggestions.classList.add("hide")):(this.mode="suggestions",loadSuggestions(this,context,connectionManager.getApiClient(this.options.serverId)))}function triggerSearch(instance,value,immediate){instance.searchTimeout&&clearTimeout(instance.searchTimeout),instance.nextSearchValue=value;value=immediate?0:600;instance.searchTimeout=setTimeout(onSearchTimeout.bind(instance),value)}function onAlphaValueClicked(e){var val,e=e.detail.value,txtSearch=this.options.element.querySelector(".searchfields-txtSearch");"backspace"===e?(val=txtSearch.value,txtSearch.value=val.length?val.substring(0,val.length-1):""):(-1===txtSearch.maxLength||txtSearch.value.length<txtSearch.maxLength)&&(txtSearch.value+=e),txtSearch.dispatchEvent(new CustomEvent("input",{bubbles:!0}))}function initAlphaPicker(alphaPickerElement,instance){instance.alphaPicker=new AlphaPicker({element:alphaPickerElement,mode:"keyboard"}),alphaPickerElement.addEventListener("alphavalueclicked",onAlphaValueClicked.bind(instance))}function onSearchInput(e){triggerSearch(this,e.target.value)}function createSpeechRecognition(instance){var recognition=new SpeechRecognition;return recognition.continuous=!1,recognition.onresult=function(event){var current=event.resultIndex||0,event=event.results[current][0].transcript;instance.options.element.querySelector(".searchfields-txtSearch").value=event,triggerSearch(instance,event)},instance.speechRecognition=recognition}function onVoiceInputRequest(e){let instance=this;appHost.requestSpeechRecognitionPermission().then(function(){let recognition=instance.speechRecognition;if(!recognition)try{recognition=createSpeechRecognition(instance)}catch(err){console.log("error creating SpeechRecognition: "+err)}try{recognition.start()}catch(err){console.log("error starting SpeechRecognition: "+err)}},function(){})}function embed(elem,instance,options){return require(["text!search/searchfields.template.html"]).then(function(responses){elem.classList.add("searchFields"),elem.innerHTML=globalize.translateDocument(responses[0]);var responses=elem.querySelector(".searchfields-txtSearch"),useNativeKeyboard=!(globalize.getCurrentLocale()||"").toLowerCase().startsWith("en"),useNativeKeyboard=(useNativeKeyboard||layoutManager.tv&&(responses.setAttribute("readonly","readonly"),responses.setAttribute("tabindex","-1"),responses.setAttribute("virtualkeyboardpolicy","ma
|