Bilibili-Evolved/min/gui-settings.min.js
2019-03-24 11:30:21 +08:00

1 line
3.9 KiB
JavaScript

(()=>{return(e,t)=>{const{ThemeColors:n}=t.import("theme-colors");const{SettingsSearch:i}=t.import("settings-search");const{Validator:s}=t.import("text-validate");function o(e){let t=e.nextElementSibling;const n=[];while(t!==null&&!t.classList.contains("category")){n.push(t);t=t.nextElementSibling}return n}function c(e,t){$(`input[type='checkbox'][key='${e}']`).prop("checked",t);$(`input[type='text'][key='${e}']`).val(t)}function a(){for(const[t,n]of Object.entries(e)){c(t,n)}}function r(){$(".gui-settings-mask").on("click",()=>{$(".gui-settings-widgets-box,.gui-settings-box,.gui-settings-mask").removeClass("opened")});$("input[type='text'][key]").each((t,n)=>{$(n).attr("placeholder",e[$(n).attr("key")])});$(".gui-settings-content ul li.category").on("click",e=>{const t=document.querySelector(".gui-settings-search");if(t.value!==""){t.value="";raiseEvent(t,"input")}e.currentTarget.classList.toggle("folded");o(e.currentTarget).forEach(e=>e.classList.toggle("folded"))});$(".gui-settings-dropdown>input").on("click",e=>{$(e.currentTarget).parent().toggleClass("opened")});onSettingsChange((t,n,i)=>{if(e[t]!==i){e[t]=i;$(`input[type='checkbox'][key='${t}']`).prop("checked",i).change();$(`input[type='text'][key='${t}']`).val(i).change()}})}function l(){const t=e=>{};$("input[type='checkbox'][key]").each((n,i)=>{$(i).on("change",()=>{const n=i.getAttribute("key");const s=i.checked;e[n]=s;t(n);saveSettings(e)})});$("input[type='text'][key]").each((n,i)=>{$(i).on("change",()=>{const n=i.getAttribute("key");const o=s.getValidator(n).validate(i.value);e[n]=o;i.value=o;t(n);saveSettings(e)})})}function u(){const e={};document.querySelectorAll(`input[dependencies]`).forEach(t=>{const n=t.getAttribute("dependencies");if(n){e[t.getAttribute("key")]=n}});const t=t=>{const n=t.checked;for(const i in e){const s=e[i].split(" ");if(s.indexOf(t.getAttribute("key"))!==-1){let e=true;if(n&&s.every(e=>$(`input[key='${e}']`).prop("checked"))){e=false}let t=document.querySelector(`input[key='${i}']`);while(t.nodeName.toLowerCase()!=="li"){t=t.parentElement}const o=e?"add":"remove";t.classList[o]("disabled");const c=document.querySelector(`input[key='${i}'][type='text']`);c&&c.parentElement.classList[o]("disabled")}}};$(`input[type='checkbox'][key]`).on("change",e=>t(e.target)).each((e,n)=>t(n))}function p(){if(typeof offlineData!=="undefined"){document.querySelector(".gui-settings-checkbox-container>input[key=useCache]").parentElement.parentElement.classList.add("disabled");document.querySelector("input[key=useCache]").disabled=true}}function d(){$(".gui-settings-content ul li.category").each((e,t)=>{$(t).click()})}function g(){if(!CSS.supports("backdrop-filter","blur(24px)")&&!CSS.supports("-webkit-backdrop-filter","blur(24px)")){$("input[key=blurVideoControl]").prop("disabled",true);e.blurVideoControl=false;saveSettings(e)}if(window.devicePixelRatio===1){$("input[key=harunaScale]").prop("disabled",true);e.harunaScale=false;saveSettings(e)}if(e.defaultPlayerLayout==="旧版"){const t=$("input[key=overrideNavBar]");t.prop("disabled",true).change();if(e.overrideNavBar){t.prop("checked",false).change();e.overrideNavBar=false;saveSettings(e)}}}function y(){for(const[e,t]of Object.entries(Resource.displayNames)){const n=document.querySelector(`input[key=${e}]`);if(!n){continue}switch(n.type){case"checkbox":n.nextElementSibling.nextElementSibling.innerHTML=t;break;case"text":const e=n.parentElement;if(e.classList.contains("gui-settings-textbox-container")){n.previousElementSibling.innerHTML=t}else if(e.classList.contains("gui-settings-dropdown")){e.previousElementSibling.innerHTML=t}break;default:break}}}(async()=>{t.applyStyle("guiSettingsStyle");const e=(t.data.guiSettingsDom||t.data.guiSettingsHtml).text;$("body").append(e);new SpinQuery(()=>$("body"),e=>e.length>0&&!(unsafeWindow.parent.window===unsafeWindow),e=>$(".gui-settings-icon-panel").css("display","none")).start();r();p();a();u();l();d();g();y();(new n).setupDom();new i})()}})();