EmbyCrackedClient/web/modules/alphapicker/alphapicker.js

1 line
7.1 KiB
JavaScript
Raw Normal View History

2025-06-25 11:46:04 +08:00
import layoutManager from"./../layoutmanager.js";import focusManager from"./../focusmanager.js";import"./../emby-elements/emby-button/paper-icon-button-light.js";function focus(){var selected=this.querySelector(".alphaPickerButton-current");selected?focusManager.focus(selected):focusManager.autoFocus(this)}function getAlphaPickerButtonClassName(vertical){let alphaPickerButtonClassName="alphaPickerButton";return layoutManager.tv?alphaPickerButtonClassName+=" alphaPickerButton-tv secondaryText":alphaPickerButtonClassName+=" secondaryText",vertical&&(alphaPickerButtonClassName+=" alphaPickerButton-vertical",layoutManager.tv)&&(alphaPickerButtonClassName+=" alphaPickerButton-vertical-tv"),alphaPickerButtonClassName}function getLetterButton(keyInfo,vertical){return'<button type="button" is="emby-button" href="#" data-focusscale="false" data-value="'+keyInfo.value+'" class="button-link '+getAlphaPickerButtonClassName(vertical)+'">'+keyInfo.name+"</button>"}function mapKeysToHtml(keys,vertical){return keys.map(function(k){return getLetterButton(k,vertical)})}function mapToKeyInfo(character){return{name:character,value:character}}function mapLettersToHtml(letters,vertical){return mapKeysToHtml(letters.map(mapToKeyInfo),vertical)}function render(element,options){element.classList.add("alphaPicker"),layoutManager.tv&&element.classList.add("alphaPicker-tv");var vertical=element.classList.contains("alphaPicker-vertical");vertical||element.classList.add("focuscontainer-x");let html="";var alphaPickerButtonClassName=getAlphaPickerButtonClassName(vertical);let rowClassName="alphaPickerRow";if(vertical&&(rowClassName+=" alphaPickerRow-vertical secondaryText",layoutManager.tv?rowClassName+=" alphaPickerRow-vertical-tv":rowClassName+=" scrollY hiddenScrollY"),"keyboard"===options.mode){var rows=[];"numeric"===options.type?rows.push({keys:["0","1","2","3","4","5","6","7","8","9"].map(mapToKeyInfo)}):(rows.push({keys:["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"].map(mapToKeyInfo)},{keys:["0","1","2","3","4","5","6","7","8","9"].map(mapToKeyInfo)}),rows[0].keys.unshift({name:"SPACE",value:" "}));for(let i=0,length=rows.length;i<length;i++){var row=rows[i];html=(html+='<div class="'+rowClassName+'">')+mapKeysToHtml(row.keys,vertical).join(""),0===i&&(html=html+'<button type="button" data-focusscale="false" data-value="backspace" is="paper-icon-button-light" class="'+alphaPickerButtonClassName+'"><i class="md-icon alphaPickerButtonIcon autortl">&#xe14A;</i></button></div>'),html+="</div>"}setInnerHtml(element,html)}else setInnerHtml(element,html=(html+='<div class="'+rowClassName+'">')+mapLettersToHtml(options.prefixes||[],vertical).join("")+"</div>")}function setInnerHtml(element,html){element.innerHTML=html,element.classList.add("focusable"),element.focus=focus}function onAlphaPickerClick(e){clearAlphaFocusTimeout(this);var e=e.target.closest(".alphaPickerButton");e&&(e=e.getAttribute("data-value"),this.value(e,!0))}function onAlphaPickerInKeyboardModeClick(e){var e=e.target.closest(".alphaPickerButton");e&&(e=e.getAttribute("data-value"),this.options.element.dispatchEvent(new CustomEvent("alphavalueclicked",{cancelable:!1,detail:{value:e}})))}function onAlphaFocusTimeout(){var value;this.alphaFocusTimeout=null,this.previousActiveElement=null,document.activeElement===this.alphaFocusedElement&&(value=this.alphaFocusedElement.getAttribute("data-value"),this.value(value,!0))}function clearAlphaFocusTimeout(instance){instance.alphaFocusTimeout&&(clearTimeout(instance.alphaFocusTimeout),instance.alphaFocusTimeout=null)}function onAlphaPickerFocusIn(e){this.alphaFocusTimeout&&(clearTimeout(this.alphaFocusTimeout),this.alphaFocusTimeout=null);e=e.target.closest(".alphaPickerButton");let delay=1500;this.previousActiveElement||(delay=3e3),(this.previousActiveElement=e)&&(this.alphaFocusedElement=e,this.alphaFocusTimeout=setTimeout(onAlphaFocusTimeout.bind(this),delay))}function AlphaPicker(options){this.options=options,this.bound_onAlphaPickerInKeyboardModeClick=onAlphaPickerInKeyboardModeC