1 line
6.7 KiB
JavaScript
1 line
6.7 KiB
JavaScript
define(["exports","./../../dom.js","./../../layoutmanager.js","./../../actionsheet/actionsheet.js","./../../focusmanager.js"],function(_exports,_dom,_layoutmanager,_actionsheet,_focusmanager){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var ActionSheet=_actionsheet.default.constructor;function onFocus(){var _this$labelElement;document.attachIME&&document.attachIME(this),null!=(_this$labelElement=this.labelElement)&&_this$labelElement.classList.add("inputLabelFocused")}function onBlur(){var _this$labelElement2;null!=(_this$labelElement2=this.labelElement)&&_this$labelElement2.classList.remove("inputLabelFocused")}function destroyActionSheet(elem){clearInputTimer(elem);var actionsheet=elem.actionsheet;actionsheet&&(actionsheet.isShowing()&&actionsheet.close(),actionsheet.destroy(),elem.actionsheet=null)}function clearInputTimer(elem){elem.inputTimeout&&clearTimeout(elem.inputTimeout)}function onInput(){clearInputTimer(this);var value=this.value.trim();!value||value.length<2?destroyActionSheet(this):this.inputTimeout=setTimeout(function(){var options,refocus,elem=this,value=elem.value.trim();if(console.log("onInputTimeout: "+value),!value||value.length<2)destroyActionSheet(elem);else{if(!elem.actionsheet)return value=new ActionSheet,elem.actionsheet=value,options={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},_layoutmanager.default.tv||(options.positionY="bottom",options.positionX="match",options.transformOrigin="center top",options.minWidthToElement=!0),refocus="false"!==elem.getAttribute("data-refocus"),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.default.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.default.focus(elem),elem.dispatchEvent(new CustomEvent("selectionclose",{bubbles:!1,cancelable:!1,detail:{}})),destroyActionSheet(elem)});elem.actionsheet.refreshItems()}}.bind(this),400)}require(["css!modules/emby-elements/emby-input/emby-input.css"]);var inputId=0;function onInit(){var label,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.default.tv&&this.classList.add("emby-input-tv"),(label=this.ownerDocument.createElement("label")).innerHTML=this.getAttribute("label")||"",label.classList.add("inputLabel"),label.htmlFor=this.id,parentNode.insertBefore(label,this),this.labelElement=label,_dom.default.addEventListener(this,"focus",onFocus,{passive:!0}),_dom.default.addEventListener(this,"blur",onBlur,{passive:!0}),"true"===this.getAttribute("data-autocompleteitems")&&_dom.default.addEventListener(this,"input",onInput,{passive:!0})))}function roundMsToStep(ms,step){return step=step||1,step*=1e3,ms-ms%(step=Math.floor(step))}var supportsValueAsNumber=void 0!==document.createElement("input").valueAsNumber,supportsValueAsDate=void 0!==document.createElement("input").valueAsDate;function pad(num,size){for(var s=num+"";s.length<size;)s="0"+s;return s}function toLocalIsoString(date){return date.getFullYear()+"-"+pad(date.getMonth()+1,2)+"-"+pad(date.getDate(),2)}_actionsheet=function(_HTMLInputElement){babelHelpers.inherits(EmbyInput,_HTMLInputElement);var _super=_createSuper(EmbyInput);function EmbyInput(){babelHelpers.classCallCheck(this,EmbyInput);var _this,self=_this=_super.call(this);return onInit.call(self),babelHelpers.possibleConstructorReturn(_this,self)}return babelHelpers.createClass(EmbyInput,[{key:"connectedCallback",value:function(){onInit.call(this)}},{key:"disconnectedCallback",value:function(){destroyActionSheet(this)}},{key:"focusSelectionDialog",value:function(){var actionsheet=this.actionsheet;actionsheet&&actionsheet.isShowing()&&actionsheet.autoFocus()}},{key:"closeSelectionDialog",value:function(){destroyActionSheet(this)}},{key:"label",value:function(text){this.labelElement.innerHTML=text}},{key:"valueAsNumber",get:function(){if(supportsValueAsNumber)return babelHelpers.get(babelHelpers.getPrototypeOf(EmbyInput.prototype),"valueAsNumber",this);var value=this.value;if(value)try{return Date.parse(value)}catch(err){}return NaN},set:function(val){!val||isNaN(val)?this.value="":(val=roundMsToStep(val,this.step),supportsValueAsNumber?babelHelpers.set(babelHelpers.getPrototypeOf(EmbyInput.prototype),"valueAsNumber",val,this,!0):babelHelpers.set(babelHelpers.getPrototypeOf(EmbyInput.prototype),"value",val?toLocalIsoString(new Date(val)):"",this,!0))}},{key:"valueAsDate",get:function(){var value;return supportsValueAsDate?babelHelpers.get(babelHelpers.getPrototypeOf(EmbyInput.prototype),"valueAsDate",this):(value=this.valueAsNumber)&&!isNaN(value)?new Date(value):null},set:function(val){supportsValueAsDate?babelHelpers.set(babelHelpers.getPrototypeOf(EmbyInput.prototype),"valueAsDate",val,this,!0):babelHelpers.set(babelHelpers.getPrototypeOf(EmbyInput.prototype),"value",val?toLocalIsoString(val.getTime()):"",this,!0)}},{key:"valueAsDateUtc",get:function(){var offsetMs,val=this.valueAsNumber;return val&&!isNaN(val)?(offsetMs=60*new Date(val).getTimezoneOffset()*1e3,new Date(val+offsetMs)):null},set:function(date){var offsetMs;date?(offsetMs=60*date.getTimezoneOffset()*1e3,this.valueAsNumber=date.getTime()-offsetMs):this.value=""}},{key:"valueAsNumberUtc",get:function(){var val=this.valueAsNumber;return!val||isNaN(val)?val:val+60*(new Date).getTimezoneOffset(val)*1e3},set:function(val){var offsetMs;!val||isNaN(val)?this.value="":(offsetMs=60*new Date(val).getTimezoneOffset()*1e3,this.valueAsNumber=val-offsetMs)}},{key:"minDateTimeLocal",get:function(){return null},set:function(valueAsNumber){valueAsNumber=roundMsToStep(valueAsNumber-=60*new Date(valueAsNumber).getTimezoneOffset()*1e3,this.step),this.setAttribute("min",new Date(valueAsNumber).toISOString().replace("Z",""))}}]),EmbyInput}(babelHelpers.wrapNativeSuper(HTMLInputElement));customElements.define("emby-input",_actionsheet,{extends:"input"}),_actionsheet.setLabel=function(elem,label){elem.label&&elem.labelElement?elem.label(label||""):elem.setAttribute("label",label||"")},_exports.default=_actionsheet}); |