1 line
6.1 KiB
JavaScript
1 line
6.1 KiB
JavaScript
|
|
import dom from"./../../dom.js";import layoutManager from"./../../layoutmanager.js";import actionsheet from"./../../actionsheet/actionsheet.js";import focusManager from"./../../focusmanager.js";let ActionSheet=actionsheet.constructor;function onFocus(){document.attachIME&&document.attachIME(this),this.labelElement?.classList.add("inputLabelFocused")}function onBlur(){this.labelElement?.classList.remove("inputLabelFocused")}function destroyActionSheet(elem){clearInputTimer(elem);var actionsheet=elem.actionsheet;actionsheet&&(actionsheet.isShowing()&&actionsheet.close(),actionsheet.destroy(),elem.actionsheet=null)}function onInputTimeout(){let elem=this;var value=elem.value.trim();if(console.log("onInputTimeout: "+value),value){if(!elem.actionsheet){var value=new ActionSheet,options=(elem.actionsheet=value,{getItems:elem.getItems,enableVirtualScroller:!1,positionTo:elem,resolveWithSelectedItem:!0,hasItemIcon:!0,iconRight:!1,fields:["Name","Type","ParentName"],dialogClass:"emby-input-actionsheet",offsetTop:2,refocus:!1,artist:!1,enableDefaultIcon:!0,imageSize:"small",hasItemImage:!0,setCurrentFocusScope:!1,autoRepositionY:!1});layoutManager.tv||(options.positionY="bottom",options.positionX="left",options.transformOrigin="center top",options.minWidthToElement=!0);let refocus="false"!==elem.getAttribute("data-refocus");return elem.dispatchEvent(new CustomEvent("selectionopen",{bubbles:!1,cancelable:!1,detail:{}})),value.show(options).then(function(item){elem.value=item.Name,elem.dispatchEvent(new CustomEvent("itemselected",{bubbles:!1,cancelable:!1,detail:{item:item}})),refocus&&focusManager.focus(elem),elem.dispatchEvent(new CustomEvent("selectionclose",{bubbles:!1,cancelable:!1,detail:{}})),destroyActionSheet(elem)},function(){elem.dispatchEvent(new CustomEvent("selectioncancel",{bubbles:!1,cancelable:!1,detail:{}})),refocus&&focusManager.focus(elem),elem.dispatchEvent(new CustomEvent("selectionclose",{bubbles:!1,cancelable:!1,detail:{}})),destroyActionSheet(elem)})}elem.actionsheet.refreshItems()}else destroyActionSheet(elem)}function clearInputTimer(elem){elem.inputTimeout&&clearTimeout(elem.inputTimeout)}function onInput(){clearInputTimer(this);var value=this.value.trim();value?this.inputTimeout=setTimeout(onInputTimeout.bind(this),400):destroyActionSheet(this)}function isDecimal(val){return!Number.isInteger(parseFloat(val))}function setInputMode(elem){var isDecimalInput;"number"===elem.type&&(isDecimalInput=isDecimal(elem.getAttribute("step"))||isDecimal(elem.getAttribute("min"))||isDecimal(elem.getAttribute("max")),elem.setAttribute("inputmode",isDecimalInput?"decimal":"numeric"))}require(["css!modules/emby-elements/emby-input/emby-input.css"]);let inputId=0;function onInit(){var label,labelClass,parentNode=this.parentNode;parentNode&&(this.hasInit||(this.hasInit=!0,this.id||(this.id="embyinput"+inputId,inputId++),this.classList.contains("emby-input"))?this.labelElement&&(this.labelElement.htmlFor=this.id):(this.classList.add("emby-input"),layoutManager.tv?(this.classList.add("emby-input-tv"),"number"===this.type&&this.classList.add("emby-input-hide-spin-button")):this.classList.add("emby-input-largerfont","emby-input-smaller"),(label=this.ownerDocument.createElement("label")).innerHTML=this.getAttribute("label")||"",label.classList.add("inputLabel"),(labelClass=this.getAttribute("labelclass"))&&label.classList.add(labelClass),label.htmlFor=this.id,parentNode.insertBefore(label,this),this.labelElement=label,dom.addEventListener(this,"focus",onFocus,{passive:!0}),dom.addEventListener(this,"blur",onBlur,{passive:!0}),"true"===this.getAttribute("data-autocompleteitems")&&dom.addEventListener(this,"input",onInput,{passive:!0}),setInputMode(this)))}function roundMsToStep(ms,step){return step=step||1,step*=1e3,ms-ms%(step=Math.floor(step))}let supportsValueAsNumber=void 0!==document.createElement("input").valueAsNumber,supportsValueAsDate=void 0!==document.createElement("input").valueAsDate;function pad(num,size){let s=num+"";for(;s.length<size;)s="0"+s;return s}function toLocalIsoString(date){return date.getFullYear()+"-"+
|