From fada5175f082627a55d9aed79669cfeb2bf71169 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Mon, 22 Nov 2021 13:44:19 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- style.css | 1 - 1 file changed, 1 deletion(-) diff --git a/style.css b/style.css index 52abcb57..f00b515f 100644 --- a/style.css +++ b/style.css @@ -7253,7 +7253,6 @@ li>ol { background-color: rgba(255, 255, 255, 0); transform: translateX(0); right: calc((100% - 1040px - 250px)/ 2); - position: absolute !important; top: 480px; position: absolute; padding-top: 10px; From 7aa6570f17a4ca3fadb54e509a1fa1a713cd79c2 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Mon, 22 Nov 2021 22:26:19 +0800 Subject: [PATCH 02/12] =?UTF-8?q?fix(=E5=85=BC=E5=AE=B9:php8):=20=20Undefi?= =?UTF-8?q?ned=20array=20key=20"cb"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/categories-images.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/categories-images.php b/inc/categories-images.php index 6928cae4..9bdef448 100644 --- a/inc/categories-images.php +++ b/inc/categories-images.php @@ -207,7 +207,7 @@ function z_quick_edit_custom_box($column_name, $screen, $name) { */ function z_taxonomy_columns( $columns ) { $new_columns = array(); - $new_columns['cb'] = $columns['cb']; + if(isset($columns['cb']))$new_columns['cb'] = $columns['cb']; $new_columns['thumb'] = __('image', 'sakurairo')/*图像*/; unset( $columns['cb'] ); From 8803d9d26229f5ca50667dc01b9c5dbce03d274b Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Wed, 24 Nov 2021 18:11:12 +0800 Subject: [PATCH 03/12] =?UTF-8?q?fix:=20=E6=9C=89=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=89=B9=E8=89=B2=E5=9B=BE=E5=83=8F=E4=BD=86=E6=9C=AA=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E2=80=9Cuse=5Fas=5Fthumb=E2=80=9Dmeta=E7=9A=84?= =?UTF-8?q?=E6=96=87=E7=AB=A0=E4=B8=8D=E6=98=BE=E7=A4=BA=E6=A0=87=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions.php b/functions.php index b703d3db..53150464 100644 --- a/functions.php +++ b/functions.php @@ -2098,5 +2098,5 @@ function should_show_title():bool{ $use_as_thumb = get_post_meta($id, 'use_as_thumb', true); //'true','only',(default) return !iro_opt('patternimg') || !get_post_thumbnail_id($id) - && $use_as_thumb == 'only' && !get_post_meta($id, 'video_cover', true); + && $use_as_thumb != 'true' && !get_post_meta($id, 'video_cover', true); } \ No newline at end of file From a8b2c54d2ff3165648ff6bd69a618e73a88335ae Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Wed, 24 Nov 2021 20:41:31 +0800 Subject: [PATCH 04/12] =?UTF-8?q?feat:=20=E6=9B=B4=E5=8F=8B=E5=A5=BD?= =?UTF-8?q?=E7=9A=84=E6=96=87=E7=AB=A0=E5=B0=8F=E6=A0=87=E9=A2=98=E9=94=9A?= =?UTF-8?q?=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- style.css | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/style.css b/style.css index f00b515f..f70e1846 100644 --- a/style.css +++ b/style.css @@ -8387,12 +8387,11 @@ td.hljs-ln-numbers { background: #ddd; color: black; } -h1[id*=toc-head]::before, -h2[id*=toc-head]::before, -h3[id*=toc-head]::before, -h4[id*=toc-head]::before, -h5[id*=toc-head]::before, -h6[id*=toc-head]::before { +h1::before, +h2::before, +h3::before, +h4::before, +h5::before { display: block; content: " "; height: 80px; From 1dfecb58c1e128d0fbf22ff19cd85e543b8272f0 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Wed, 24 Nov 2021 20:54:26 +0800 Subject: [PATCH 05/12] =?UTF-8?q?fix:=20cover=5Ffull=5Fscreen=E9=80=89?= =?UTF-8?q?=E9=A1=B9=E5=A4=B1=E6=95=88=EF=BC=9Brefactor:=20site=5Fbg=5Fas?= =?UTF-8?q?=5Fcover=E7=9A=84=E5=AE=9E=E7=8E=B0=E8=BD=AC=E7=A7=BB=E5=88=B0c?= =?UTF-8?q?ss?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/decorate.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/inc/decorate.php b/inc/decorate.php index 17079206..e1904e83 100644 --- a/inc/decorate.php +++ b/inc/decorate.php @@ -508,7 +508,10 @@ function customizer_css() { ?> //$image_api = 'background-image: url("'.rest_url('sakura/v1/image/cover').'");'; $bg_style = !iro_opt('cover_full_screen') ? 'background-position: center center;background-attachment: inherit;' : ''; ?> -.centerbg{background-position: center center;background-attachment: inherit;} +#centerbg{} .rotating { -webkit-animation: rotating 6s linear infinite; -moz-animation: rotating 6s linear infinite; From f4d926917f1f30a1ee4ecd8dd774ac4f226e4c98 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Wed, 24 Nov 2021 20:55:01 +0800 Subject: [PATCH 06/12] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0css=E5=8F=98?= =?UTF-8?q?=E9=87=8F=20var(--theme-skin-matching)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/decorate.php | 1 + 1 file changed, 1 insertion(+) diff --git a/inc/decorate.php b/inc/decorate.php index e1904e83..8df199a6 100644 --- a/inc/decorate.php +++ b/inc/decorate.php @@ -13,6 +13,7 @@ function customizer_css() { ?> if (iro_opt('theme_skin')) { ?> :root{ --theme-skin: ; + --theme-skin-matching: } .author-profile i , .post-like a , .post-share .show-share , .sub-text , .we-info a , span.sitename { color: } From b141ce71864715047865ab788814bf2facd2f609 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Wed, 24 Nov 2021 20:55:36 +0800 Subject: [PATCH 07/12] =?UTF-8?q?feat(theme-color):=20=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- header.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/header.php b/header.php index 8b0797e9..656eb993 100644 --- a/header.php +++ b/header.php @@ -29,7 +29,7 @@ - + From 9b2f509992a2e71e73f5d9ce0ee28c774a7178c1 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Wed, 24 Nov 2021 21:37:08 +0800 Subject: [PATCH 08/12] update js bundle to 3a6b1dd --- js/anf.js.LICENSE.txt | 2 +- js/app.js | 2 +- js/app.js.LICENSE.txt | 2 +- js/app.js.map | 2 +- js/page.js | 2 +- js/page.js.LICENSE.txt | 2 +- js/page.js.map | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/js/anf.js.LICENSE.txt b/js/anf.js.LICENSE.txt index e173ad35..277f50b9 100644 --- a/js/anf.js.LICENSE.txt +++ b/js/anf.js.LICENSE.txt @@ -1 +1 @@ -//! build be47151 2021/11/21 +//! build 3a6b1dd 2021/11/24 diff --git a/js/app.js b/js/app.js index a4124238..f1e31be5 100644 --- a/js/app.js +++ b/js/app.js @@ -1,3 +1,3 @@ /*! For license information please see app.js.LICENSE.txt */ -!function(){var e,t,n,o,r,i={5213:function(e){var t;t=function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={exports:{},id:o,loaded:!1};return e[o].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){var o=document.createElement("canvas");o.width=window.innerWidth,o.height=window.innerHeight,o.style.cssText="position:fixed;top:0;left:0;pointer-events:none;z-index:999999",window.addEventListener("resize",(function(){o.width=window.innerWidth,o.height=window.innerHeight})),document.body.appendChild(o);var r=o.getContext("2d"),i=[],a=0,s=!1;function c(e,t){return Math.random()*(t-e)+e}function l(e){if(u.colorful){var t=c(0,360);return"hsla("+c(t-10,t+10)+", 100%, "+c(50,80)+"%, 1)"}return window.getComputedStyle(e).color}function d(e,t,n){return{x:e,y:t,alpha:1,color:n,velocity:{x:2*Math.random()-1,y:2*Math.random()-3.5}}}function u(){for(var e=function(){var e,t=document.activeElement;if("TEXTAREA"===t.tagName||"INPUT"===t.tagName&&"text"===t.getAttribute("type")){var o=n(1)(t,t.selectionEnd);return e=t.getBoundingClientRect(),{x:o.left+e.left,y:o.top+e.top,color:l(t)}}var r=window.getSelection();if(r.rangeCount){var i=r.getRangeAt(0),a=i.startContainer;return a.nodeType===document.TEXT_NODE&&(a=a.parentNode),{x:(e=i.getBoundingClientRect()).left,y:e.top,color:l(a)}}return{x:0,y:0,color:"transparent"}}(),t=5+Math.round(10*Math.random());t--;)i[a]=d(e.x,e.y,e.color),a=(a+1)%500;if(u.shake){var o=1+2*Math.random(),r=o*(Math.random()>.5?-1:1),c=o*(Math.random()>.5?-1:1);document.body.style.marginLeft=r+"px",document.body.style.marginTop=c+"px",setTimeout((function(){document.body.style.marginLeft="",document.body.style.marginTop=""}),75)}s||requestAnimationFrame(m)}function m(){s=!0,r.clearRect(0,0,o.width,o.height);for(var e=!1,t=o.getBoundingClientRect(),n=0;nparseInt(l.height)&&(c.overflowY="scroll"):c.overflow="hidden",s.textContent=e.value.substring(0,o),"INPUT"===e.nodeName&&(s.textContent=s.textContent.replace(/\s/g," "));var d=document.createElement("span");d.textContent=e.value.substring(o)||".",s.appendChild(d);var u={top:d.offsetTop+parseInt(l.borderTopWidth),left:d.offsetLeft+parseInt(l.borderLeftWidth)};return i?d.style.backgroundColor="#aaa":document.body.removeChild(s),u}void 0!==e&&void 0!==e.exports?e.exports=o:window.getCaretCoordinates=o}()}])},e.exports=t()},7652:function(){window.imgError=function(e,t){switch(t){case 1:e.src="https://view.moezx.cc/images/2017/12/30/Transparent_Akkarin.th.jpg";break;case 2:e.src="https://sdn.geekzu.org/avatar/?s=80&d=mm&r=g";break;default:e.src="https://view.moezx.cc/images/2018/05/13/image-404.png"}},window.cmt_showPopup=function(e){let t=e.querySelector("#thePopup");t.classList.add("show"),e.querySelector("input").onblur=()=>{t.classList.remove("show")}},window.coverVideo=function(){let e=document.getElementById("coverVideo"),t=document.getElementById("cv-pc");if(e.paused){e.play();try{t.innerHTML=''}catch{}}else{e.pause();try{t.innerHTML=''}catch{}}},window.coverVideoMute=function(){const e=document.getElementById("coverVideo"),t=document.getElementById("cv-vc");e.muted?(e.muted=!1,t.innerHTML=''):(e.muted=!0,t.innerHTML='')},window.killCoverVideo=function(){var e=document.getElementById("coverVideo"),t=document.getElementById("cv-pc");if(e.paused);else{e.pause();try{t.innerHTML=''}catch(e){}}},window.mail_me=function(){window.open("mailto:"+mashiro_option.email_name+"@"+mashiro_option.email_domain)},window.headertop_down=function(){let e=document.getElementById("content").getBoundingClientRect().top+window.pageYOffset;window.scrollTo({top:e,behavior:"smooth"})}},5229:function(e,t,n){var o=n(7841);e.exports={name:"lab",min:[0,-100,-100],max:[100,100,100],channel:["lightness","a","b"],alias:["LAB","cielab"],xyz:function(e){var t,n,o,r,i=e[0],a=e[1],s=e[2];return i<=8?r=(n=100*i/903.3)/100*7.787+16/116:(n=100*Math.pow((i+16)/116,3),r=Math.pow(n/100,1/3)),[t=t/95.047<=.008856?t=95.047*(a/500+r-16/116)/7.787:95.047*Math.pow(a/500+r,3),n,o=o/108.883<=.008859?o=108.883*(r-s/200-16/116)/7.787:108.883*Math.pow(r-s/200,3)]}},o.lab=function(e){var t=e[0],n=e[1],o=e[2];return n/=100,o/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(o=o>.008856?Math.pow(o,1/3):7.787*o+16/116))]}},2409:function(e){e.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},7841:function(e,t,n){var o=n(2409),r={name:"xyz",min:[0,0,0],channel:["X","Y","Z"],alias:["XYZ","ciexyz","cie1931"],whitepoint:{2:{A:[109.85,100,35.585],C:[98.074,100,118.232],D50:[96.422,100,82.521],D55:[95.682,100,92.149],D65:[95.045592705167,100,108.9057750759878],D75:[94.972,100,122.638],F2:[99.187,100,67.395],F7:[95.044,100,108.755],F11:[100.966,100,64.37],E:[100,100,100]},10:{A:[111.144,100,35.2],C:[97.285,100,116.145],D50:[96.72,100,81.427],D55:[95.799,100,90.926],D65:[94.811,100,107.304],D75:[94.416,100,120.641],F2:[103.28,100,69.026],F7:[95.792,100,107.687],F11:[103.866,100,65.627],E:[100,100,100]}}};r.max=r.whitepoint[2].D65,r.rgb=function(e,t){t=t||r.whitepoint[2].E;var n,o,i,a=e[0]/t[0],s=e[1]/t[1],c=e[2]/t[2];return o=-.96924363628087*a+1.87596750150772*s+.041555057407175*c,i=.055630079696993*a+-.20397695888897*s+1.056971514242878*c,n=(n=3.240969941904521*a+-1.537383177570093*s+-.498610760293*c)>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,o=o>.0031308?1.055*Math.pow(o,1/2.4)-.055:o*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,[255*(n=Math.min(Math.max(0,n),1)),255*(o=Math.min(Math.max(0,o),1)),255*(i=Math.min(Math.max(0,i),1))]},o.xyz=function(e,t){var n=e[0]/255,o=e[1]/255,i=e[2]/255,a=.21263900587151*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.71516867876775*(o=o>.04045?Math.pow((o+.055)/1.055,2.4):o/12.92)+.072192315360733*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92),s=.019330818715591*n+.11919477979462*o+.95053215224966*i;return[(.41239079926595*n+.35758433938387*o+.18048078840183*i)*(t=t||r.whitepoint[2].E)[0],a*t[1],s*t[2]]},e.exports=r},8487:function(e,t,n){var o;o=void 0!==n.g?n.g:this,t.loadCSS=function(e,t,n,r){var i,a=o.document,s=a.createElement("link");if(t)i=t;else{var c=(a.body||a.getElementsByTagName("head")[0]).childNodes;i=c[c.length-1]}var l=a.styleSheets;if(r)for(var d in r)r.hasOwnProperty(d)&&s.setAttribute(d,r[d]);s.rel="stylesheet",s.href=e,s.media="only x",function e(t){if(a.body)return t();setTimeout((function(){e(t)}))}((function(){i.parentNode.insertBefore(s,t?i:i.nextSibling)}));var u=function(e){for(var t=s.href,n=l.length;n--;)if(l[n].href===t)return e();setTimeout((function(){u(e)}))};function m(){s.addEventListener&&s.removeEventListener("load",m),s.media=n||"all"}return s.addEventListener&&s.addEventListener("load",m),s.onloadcssdefined=u,u(m),s}},9905:function(e){var t=0;function n(e,t){var n=t.data;if(Array.isArray(n)&&!(n.length<2)){var o=n[0],r=n[1],i=n[2],a=e._callbacks[o];a&&(delete e._callbacks[o],a(r,i))}}function o(e){var t=this;t._worker=e,t._callbacks={},e.addEventListener("message",(function(e){n(t,e)}))}o.prototype.postMessage=function(e){var o=this,r=t++,i=[r,e];return new Promise((function(e,t){if(o._callbacks[r]=function(n,o){if(n)return t(new Error(n.message));e(o)},void 0!==o._worker.controller){var a=new MessageChannel;a.port1.onmessage=function(e){n(o,e)},o._worker.controller.postMessage(i,[a.port2])}else o._worker.postMessage(i)}))},e.exports=o},9791:function(e,t,n){n.d(t,{m:function(){return i}});const o={src:"data-src",srcset:"data-srcset",selector:".lazyload",root:null,rootMargin:"0px",threshold:0};class r{constructor(e,t){this.obs=null,this.doLoad=e=>{const{settings:t}=this,n=e.getAttribute(t.src),o=e.getAttribute(t.srcset),r=e.tagName.toLowerCase();"video"===r?n&&(e.src=n):"img"===r?(n&&(e.src=n),o&&(e.srcset=o)):e.style.backgroundImage="url('"+n+"')"},this.settings=Object.assign(Object.assign({},o),t),this.elms=e||document.querySelectorAll(this.settings.selector),this.init()}init(){if(!IntersectionObserver)return void this.load();const e=this;this.obs=new IntersectionObserver((function(t){Array.prototype.forEach.call(t,(function(t){t.isIntersecting&&(e.obs.unobserve(t.target),e.doLoad(t.target))}))}),{root:this.settings.root,rootMargin:this.settings.rootMargin,threshold:[this.settings.threshold]}),this.elms.forEach((t=>{e.obs.observe(t)}))}loadAndDestroy(){this.settings&&(this.load(),this.destroy())}load(){if(!this.settings)return;const{settings:e}=this;Array.prototype.forEach.call(this.elms,this.doLoad)}destroy(){this.settings&&(this.obs.disconnect(),this.settings=null)}}const i=(e,t)=>new r(e,t)},9354:function(e,t,n){function o(){const e=document.getElementsByClassName("butterBar");if(e.length>0)for(let t=0;t{o()}),"number"==typeof t?t:6e3),n}n.d(t,{f:function(){return r}})},476:function(e,t,n){n.d(t,{NB:function(){return r},Cd:function(){return a},VV:function(){return s},cG:function(){return c},wy:function(){return l},bf:function(){return d}});let o=[];const r=e=>{let t=!1;return(...n)=>{if(!t){t=!0;try{const o=e(...n);return o instanceof Promise?o.finally((()=>t=!1)):t=!1,o}catch(e){console.warn(e),t=!1}}}},i=()=>{document.removeEventListener("DOMContentLoaded",i);for(const e of o)e();o=[]},a=function(e){if("loading"!==document.readyState)return e();0==o.length&&document.addEventListener("DOMContentLoaded",i,!1),o.push(e)},s=(e,t)=>ee.replace(/\.\w+$/,"");function l(e,t=1e3,n="",o){let r=e;r.status=r.status||getComputedStyle(r,null).display;const i="none"!=r.status;1==i&&"show"==n||0==i&&"hide"==n||(r.status=i?"none":"block",r.style.transition="height "+t/1e3+"s",r.style.overflow="hidden",clearTimeout(r.tagTimer),r.tagTimer=r.tagTimer||null,r.style.display="block",r.tagHeight=r.tagHeight||r.clientHeight+"px",r.style.display="",r.style.height=i?r.tagHeight:"0px",setTimeout((()=>{r.style.height=i?"0px":r.tagHeight}),0),r.tagTimer=setTimeout((()=>{r.style.display=i?"none":"block",r.style.transition="",r.style.overflow="",r.style.height="",r.status=r.tagHeight=null}),t),o&&o())}function d(e,t={},n=!0){const o=new URL(e),{searchParams:r}=o;for(const[e,n]of Object.entries(t))r.set(e,n);return n&&r.set("_wpnonce",Poi.nonce),o.toString()}},302:function(e,t,n){n.d(t,{N2:function(){return i},B3:function(){return l},Lg:function(){return d},q1:function(){return m}});const o=window.matchMedia("(prefers-color-scheme:dark)");let r=!1;const i=()=>r;function a(e){e!==r&&(document.dispatchEvent(new CustomEvent("darkmode",{detail:e})),r=e)}function s(){localStorage.getItem("dark")||(o.matches&&mashiro_option.darkmode?l():d())}function c(e){e==u()?localStorage.removeItem("dark"):1==e?localStorage.setItem("dark","1"):localStorage.setItem("dark","0")}function l(e){document.documentElement.style.backgroundColor="#333",document.getElementsByClassName("site-content")[0].style.backgroundColor="#333",document.body.classList.add("dark"),e&&c(!0),a(!0)}function d(e){document.documentElement.style.backgroundColor="",document.getElementsByClassName("site-content")[0].style.backgroundColor="rgba(255, 255, 255, .8)",document.body.classList.remove("dark"),document.body.classList.remove("dynamic"),a(!1),e&&c(!1)}function u(){switch(mashiro_option.dm_strategy){case"client":return o.matches;case"eien":return!0;default:return function(){const e=new Date;return e.getHours()>21||e.getHours()<7}()}}function m(){const e=localStorage.getItem("dark");e?"1"==e?l():d():u()&&mashiro_option.darkmode?l():d()}"client"===mashiro_option.dm_strategy&&(o.removeEventListener?o.removeEventListener("change",s):o.removeListener(s),o.addEventListener?o.addEventListener("change",s):o.addListener(s))},2605:function(e,t,n){n.d(t,{__:function(){return o},_$:function(){return r},o:function(){return i},t:function(){return a}});const o=e=>window._sakurairoi18n&&_sakurairoi18n[e]||e,r=(e,...t)=>{let n=o(e);for(const e in t)n=n.replace("{"+e+"}",t[e]);return n},i={opt:{}},a=(e,t)=>Object.defineProperty(i,e,{value:t,writable:!1,enumerable:!0});if("_sakurairo"in window){const e=window._sakurairo;"opt"in e&&(i.opt=e.opt)}window._sakurairo=i}},a={};function s(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return i[e].call(n.exports,n,n.exports,s),n.exports}s.m=i,e=[],s.O=function(t,n,o,r){if(!n){var i=1/0;for(d=0;d=r)&&Object.keys(s.O).every((function(e){return s.O[e](n[c])}))?n.splice(c--,1):(a=!1,r0&&e[d-1][2]>r;d--)e[d]=e[d-1];e[d]=[n,o,r]},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},s.t=function(e,o){if(1&o&&(e=this(e)),8&o)return e;if("object"==typeof e&&e){if(4&o&&e.__esModule)return e;if(16&o&&"function"==typeof e.then)return e}var r=Object.create(null);s.r(r);var i={};t=t||[null,n({}),n([]),n(n)];for(var a=2&o&&e;"object"==typeof a&&!~t.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach((function(t){i[t]=function(){return e[t]}}));return i.default=function(){return e},s.d(r,i),r},s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce((function(t,n){return s.f[n](e,t),t}),[]))},s.u=function(e){return({8:"lg-plugin-0",238:"lg-plugin-1",359:"lg-plugin-5",400:"lg-plugin-4",515:"lg-plugin-6",568:"lg-plugin-10",642:"lg-plugin-8",649:"lg-plugin-3",719:"lg-plugin-11",725:"lg-plugin-9",846:"lg-plugin-2",893:"lg-plugin-7"}[e]||e)+".js"},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o={},r="sakurairo-scripts:",s.l=function(e,t,n,i){if(o[e])o[e].push(t);else{var a,c;if(void 0!==n)for(var l=document.getElementsByTagName("script"),d=0;d{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)}))}function n(n,o){const r=e().then((()=>{const e=indexedDB.open(n);return e.onupgradeneeded=()=>e.result.createObjectStore(o),t(e)}));return(e,t)=>r.then((n=>t(n.transaction(o,e).objectStore(o))))}const o=n("sakurairo","cache");var r;let i=null!==(r=mashiro_option.cookie_version_control)&&void 0!==r?r:"";const a=navigator.userAgent,c=Array.from(a.matchAll(/(Firefox|Chrome|AppleWebkit|OPR|Edg)\/(\d+)/gi));function l(e){for(const[t,n,o]of c)if(parseFloat(o)>=e[n])return!0;return!1}const d=function(){const e=["image/*,*/*;q=0.8"];return l({Chrome:59,OPR:46,Firefox:3,Edg:79,AppleWebKit:600})&&(e.push("image/apng"),l({Chrome:32,OPR:19,Firefox:65,Edg:18,AppleWebKit:605})&&(!function(e,t,n){const o=n?"; expires="+new Date(Date.now()+24*n*60*60*1e3).toUTCString():"";document.cookie=e+i+"="+(t||"")+o+"; path=/"}("su_webp","1",114514),e.push("image/webp"),l({Chrome:85,OPR:71,Firefox:93})&&e.push("image/avif"))),e.reverse().join(",")}();var u=s(2605);let m=1,f="";async function g(){y(await E(!0)),m++}async function p(){m--,y(await E(!0))}const h=document.querySelector(".centerbg"),y=mashiro_option.site_bg_as_cover?e=>{document.body.style.backgroundImage=`url(${e})`,document.dispatchEvent(new CustomEvent("coverBG_change",{detail:e}))}:h?e=>{h.style.backgroundImage=`url(${e})`,document.dispatchEvent(new CustomEvent("coverBG_change",{detail:e}))}:()=>{};function v(e){const t=null==e?void 0:e.match(/^url\((.+)\)$/);if(t)return t[1]}const b=mashiro_option.site_bg_as_cover?()=>v(document.body.style.backgroundImage):()=>{var e;return v(null===(e=document.querySelector(".centerbg"))||void 0===e?void 0:e.style.backgroundImage)};function w(e=!1){const t=new URL(mashiro_option.cover_api);return document.body.clientWidth<860&&1==mashiro_option.random_graphs_mts?(t.searchParams.set("type","mobile"),t.toString()+(e?"&"+m:"")):t.toString()+(e?(""===t.search?"?":"&")+m:"")}const E=mashiro_option.cache_cover?(e=!1)=>{return(n="cover",o("readonly",(e=>t(e.get(n))))).then((t=>t&&t instanceof ArrayBuffer?(URL.revokeObjectURL(f),f="",f=URL.createObjectURL(new Blob([t])),f):w(e))).finally((()=>{!async function(e=!1){try{const n=await fetch(w(e),{headers:{Accept:d}});if(n.ok){const e=await n.arrayBuffer();try{((e,n)=>{o("readwrite",(o=>(o.put(n,e),t(o.transaction))))})("cover",e)}catch(e){console.warn(e)}}}catch(e){e instanceof TypeError&&(console.warn((0,u.__)("你的封面API好像不支持跨域调用,这种情况下缓存是不会生效的哦")),(e=>{o("readwrite",(n=>(n.delete(e),t(n.transaction))))})("cover"))}}(e)}));var n}:w;async function _(){if(mashiro_option.site_bg_as_cover){if(h&&(h.style.background="#0000"),"white-bg"!==localStorage.getItem("bgImgSetting"))return}else if(!mashiro_option.land_at_home)return;y(await E())}var L=s(9354);const k=["# 商业转载请联系作者获得授权,非商业转载请注明出处。","# For commercial use, please contact the author for authorization. For non-commercial use, please indicate the source.","# 协议(License):署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)","# 作者(Author):"+mashiro_option.author_name,"# 链接(URL):"+window.location.href,"# 来源(Source):"+mashiro_option.site_name];function S(e){const t=window.getSelection();if(t){const n=t.toString();n.length>30&&(!function(e,t){e.preventDefault();const n=k.join("
")+"

"+t.replace(/\r\n/g,"
"),o=k.join("\n")+"\n\n"+t.toString().replace(/\r\n/g,"\n");if(e.clipboardData)e.clipboardData.setData("text/html",n),e.clipboardData.setData("text/plain",o);else if(window.clipboardData)window.clipboardData.setData("text",o)}(e,n),(0,L.f)((0,u.__)("复制成功!"),1e3))}}function x(){mashiro_option.clipboardCopyright&&(document.body.removeEventListener("copy",S),document.body.addEventListener("copy",S))}var B=s(8487),T=s(9791),I=(s(7652),s(476));function C(e){if(document.documentElement.style.overflowY="unset",0!=mashiro_option.preload_blur)try{return void(e.animate([{filter:"blur(0px)",backdropFilter:"blur(10px)",opacity:1},{backdropFilter:"blur(0px)grayscale(0)",opacity:.1},{opacity:0,filter:"blur(100px)"}],{duration:mashiro_option.preload_blur,fill:"forwards",easing:"ease"}).onfinish=()=>{e.remove()})}catch(e){console.warn(e)}e.classList.add("hide"),e.classList.remove("show"),setTimeout((()=>e.remove()),233)}async function q(){var e;if(mashiro_option.yiyan){const t=document.getElementById("footer_yiyan");if(0==(null!==(e=mashiro_option.yiyan_api)&&void 0!==e?e:["https://api.maho.cc/yiyan/"]).length)console.warn("一言API路径为空");else if(t)for(const e of mashiro_option.yiyan_api)try{const n=await A(e);t.innerText=n;break}catch(t){console.warn(`一言api: 尝试联系"${e}"时出错。\n`,t);continue}}}const A=async e=>{const t=await fetch(e,{headers:{Accept:"application/json"}});if(t.ok){const e=await t.json(),n=("null"==e.from_who?null:e.from_who)||"",o=e.from!=e.from_who?`「${e.from}」`:"";return e.hitokoto+"——"+n+o}throw t.status};function M(){if(!mashiro_option.audio)return;const e=window.AudioContext||window.webkitAudioContext;if(e){let t,n=new e,o=function(){var e;const t=null===(e=u.o.opt.web_audio)||void 0===e?void 0:e.sheet;if("string"==typeof t)return t.split(" ");if(t instanceof Array)return t}()||N,r=0,i=1,a="♪ ♩ ♫ ♬ ♭ € § ¶ ♯".split(" ");document.querySelectorAll(".site-title, #moblieGoTop, .site-branding, .searchbox, .changeSkin-gear, .menu-list li").forEach((e=>{e.addEventListener("mouseenter",(e=>{var s;if(t)return;let c=o[r];c||(r=0,c=o[r]),r+=i;const l=n.createOscillator(),d=n.createGain(),m=n.createGain();l.connect(d),d.connect(m),m.connect(n.destination),m.gain.setValueAtTime((null===(s=u.o.opt.web_audio)||void 0===s?void 0:s.main_gain)||1,n.currentTime),l.type="sine",l.frequency.value=c,d.gain.setValueAtTime(0,n.currentTime),d.gain.linearRampToValueAtTime(1,n.currentTime+.01),l.start(n.currentTime),d.gain.exponentialRampToValueAtTime(.001,n.currentTime+1),l.stop(n.currentTime+1);const f=Math.round(7*Math.random()),g=e.pageX,p=e.pageY-5;t=document.createElement("b"),t.textContent=a[f],t.style.zIndex="99999",t.style.top=p-100+"px",t.style.left=g+"px",t.style.position="absolute",t.style.color="#FF6EB4",document.body.appendChild(t),t.animate([{top:p+"px"},{opacity:0}],{duration:500}),setTimeout((()=>{t.remove(),t=null}),500),e.stopPropagation()}))}))}}const N="880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 659 698 659 698 1046 659 1046 1046 1046 987 698 698 987 987 880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 698 1046 987 1046 1174 1174 1174 1046 1046 880 987 784 880 1046 1174 1318 1174 1318 1567 1046 987 1046 1318 1318 1174 784 784 880 1046 987 1174 1046 784 784 1396 1318 1174 659 1318 1046 1318 1760 1567 1567 1318 1174 1046 1046 1174 1046 1174 1567 1318 1318 1760 1567 1318 1174 1046 1046 1174 1046 1174 987 880 880 987 880".split(" ");const j=document.getElementById("main-container");function O(){document.body.classList.toggle("navOpen"),j.classList.toggle("open"),document.getElementById("mo-nav").classList.toggle("open"),document.querySelector(".openNav").classList.toggle("open"),document.querySelector(".site-header").classList.toggle("open")}function P(){O(),document.documentElement.style.overflow="unset",j.removeEventListener("click",P)}let D;const H=(0,I.NB)((function(){const e=document.location.href,t=document.querySelector("#pagination a");t.classList.contains("loading")||(t.classList.add("loading"),t.innerText="",fetch(t.getAttribute("href")+"#main").then((async n=>{const o=await n.text();if(e!=document.location.href)return;const r=(new DOMParser).parseFromString(o,"text/html"),i=r.querySelectorAll("#main .post"),a=r.querySelector("#pagination a"),s=a&&a.innerText,c=a&&a.getAttribute("href"),l=document.getElementById("main");for(let e=0;e"})))}));function R(){if(document.querySelector("article")&&document.querySelector("article").classList.contains("post-list-thumb")){const e=new IntersectionObserver((t=>{t.forEach(window.IntersectionObserver?t=>{t.target.classList.contains("post-list-show")?(t.target.style.willChange="auto",e.unobserve(t.target)):t.isIntersecting&&(t.target.classList.add("post-list-show"),t.target.style.willChange="auto",e.unobserve(t.target))}:e=>{e.target.style.willChange="auto",!1===e.target.classList.contains("post-list-show")&&e.target.classList.add("post-list-show")})}),{root:null,threshold:[.66]}),t=document.getElementsByClassName("post-list-thumb");for(let n=0;n1){var a=o/Math.sqrt(i),s=r/Math.sqrt(i),c=e(a,s);return null==c||c.drawImage(t,0,0,a,s),null==c?void 0:c.getImageData(0,0,a,s)}var l=e(o,r);return null==l||l.drawImage(t,0,0),null==l?void 0:l.getImageData(0,0,o,r)}var Y=s(9905);let G,X,K=new(s.n(Y)())(new Worker(new URL(s.p+s.u(16),s.b)));async function J(e){const t=document.createElement("img");t.src=e,await function(e){return new Promise((function(t,n){e.addEventListener("load",(function(e){t(e)})),e.addEventListener("error",(function(e){n(e)}))}))}(t);const n=function(e,t){return V(U,e,t)}(t,1e4),o=await K.postMessage({k:3,iteration:20,img:n}),{label:r,centroid:i}=o,a=[...r].sort(((e,t)=>t-e))[0];!function(e){const t=document.querySelector('meta[name=theme-color][media="(prefers-color-scheme: light)"]');t&&(t.content=function(e){return"rgba("+e.map((function(e){return Math.floor(e)})).join(",")+")"}(e))}(function(e){var t=e.slice(0,3),n=e[3],o=$.xyz(t),r=W.rgb(o);return[].concat(r,[n])}(i[r.findIndex((e=>e==a))]))}function Z(e){return()=>{const{name:t}=e.dataset;t!=localStorage.getItem("font_family")&&("serif"==t?(document.body.clientWidth<=860&&(0,L.f)((0,u.__)("将从网络加载字体,流量请注意")),document.body.classList.add("serif"),ee("serif"),localStorage.setItem("font_family","serif")):(document.body.classList.remove("serif"),ee("sans-serif"),localStorage.setItem("font_family","sans-serif")))}}function Q(){const e=localStorage.getItem("font_family");e&&"serif"!=e||document.body.classList.add("serif")}function ee(e){(null!=e?e:"sans-serif"==localStorage.getItem("font_family"))?(G.classList.remove("selected"),X.classList.add("selected")):(X.classList.remove("selected"),G.classList.add("selected"))}function te(){const e=(G=document.getElementsByClassName("control-btn-serif")[0],X=document.getElementsByClassName("control-btn-sans-serif")[0],X&&G);e||localStorage.removeItem("font_family"),Q(),e&&(ee(),G.addEventListener("click",Z(G)),X.addEventListener("click",Z(X)))}var ne,oe=s(302);const re=document.getElementById("bgvideo"),ie=(null===(ne=Poi.movies.name)||void 0===ne?void 0:ne.split(","))||[];let ae=new Array(ie.length).fill(0).map(((e,t)=>t));function se(){const e=document.getElementsByClassName("video-stu")[0],t=(()=>{0==ae.length&&(ae=new Array(ie.length).fill(0).map(((e,t)=>t)));const e=Math.floor(Math.random()*ae.length);return ie[ae.splice(e,1)[0]]})();e.innerHTML=(0,u.__)("正在载入视频 ..."),e.style.bottom="0px",re.setAttribute("src",new URL(t,Poi.movies.url||location.origin).toString()),re.setAttribute("video-name",(0,I.cG)(t))}function ce(){let e=document.getElementById("video-btn");e&&(e.classList.add("video-pause"),e.classList.remove("video-play"),e.style.display="");try{if(document.querySelector(".video-stu").style.bottom="-100px",document.querySelector(".focusinfo").style.top="-999px",mashiro_option.float_player_on)return void s.e(58).then(s.bind(s,6058)).then((({destroyAllAplayer:e})=>{e(),re.play()}))}catch(e){console.warn(e)}re.play()}function le(){let e=document.getElementById("video-btn");e&&(e.classList.add("video-play"),e.classList.remove("video-pause"));try{document.querySelector(".focusinfo").style.top="49.3%"}catch(e){}re.pause()}async function de(){!async function(){const e=document.querySelectorAll("video.hls");if(0==e.length)return;if(e[0].canPlayType("application/vnd.apple.mpegurl"))for(const t of e)t.src=t.dataset.src||t.src,t.autoplay=!0;else{if(!window.Hls)try{const{default:e}=await s.e(631).then(s.t.bind(s,7631,23));window.Hls=e}catch(e){console.warn("Hls load failed: ",e)}Hls.isSupported()||console.error("Hls: Media Source Extensions is unsupported.");for(const t of e){const e=new Hls;e.loadSource(t.dataset.src||t.src),e.attachMedia(t),e.on(Hls.Events.MANIFEST_PARSED,(function(){t.play()}))}}}(),async function(){document.querySelectorAll("video.lazyload").forEach((e=>e.addEventListener("canplay",ue)))}()}function ue(){this.poster=""}let me;function fe(e,t,n,o,r,i,a){if(e){var s=e.trim().split(" "),c=o.indexOf(s[s.length-1]),l=a.indexOf(s[s.length-1]);o=(o=c<60?o.slice(0,80):o.slice(c-30,c+30)).replace(s[s.length-1],' '+s[s.length-1].toUpperCase()+" "),a=(a=l<60?a.slice(0,80):a.slice(l-30,l+30)).replace(s[s.length-1],' '+s[s.length-1].toUpperCase()+" ")}return`
${o}${i}

${a}

`}function ge(e,t){var n="",o="",r="",i="",a="",s="",c='
',l="
",d="",m=function(e,t){for(let e=0;eObject.values(e).some((e=>new RegExp(t+"").test(e)))))}(e,t.trim());for(const e of m)switch(e.type){case"post":o+=fe(t,e.link,"file",e.title,"mark",e.comments,e.text);break;case"tag":a+=fe("",e.link,"tag",e.title,"none","","");break;case"category":i+=fe("",e.link,"folder",e.title,"none","","");break;case"page":r+=fe(t,e.link,"file",e.title,"mark",e.comments,e.text);break;case"comment":s+=fe(t,e.link,"comment",e.title,"none","",e.text)}o&&(n=n+c+(0,u.__)("文章")+d+o+l),r&&(n=n+c+(0,u.__)("页面")+d+r+l),i&&(n=n+c+(0,u.__)("分类")+d+i+l),a&&(n=n+c+(0,u.__)("标签")+d+a+l),s&&(n=n+c+(0,u.__)("评论")+d+s+l),document.getElementById("PostlistBox").innerHTML=n}function pe(){const e=document.querySelector(".search_close"),t=document.getElementById("Ty");for(const n of document.getElementsByClassName("ins-selectable"))n.addEventListener("click",(()=>{t.href=n.getAttribute("href"),t.click(),e.click()}))}function he(){if(document.getElementsByClassName("js-toggle-search")[0].classList.toggle("is-active"),document.getElementsByClassName("js-search")[0].classList.toggle("is-visible"),document.documentElement.style.overflowY="hidden",mashiro_option.live_search){me=[],function(e){const t=document.getElementById("search-input");null!=sessionStorage.getItem("search")?(me=JSON.parse(sessionStorage.getItem("search")),ge(me,t.value),pe()):fetch(e).then((async e=>{if(e.ok){const n=await e.text();""!=n&&(sessionStorage.setItem("search",n),me=JSON.parse(n),ge(me,t.value),pe())}else console.warn("HTTP "+e.status)})).catch((e=>console.warn(e)))}((0,I.bf)(Poi.api+"sakura/v1/cache_search/json"));var e=document.getElementById("search-input"),t=null;e.oninput=function(){null!=t&&clearTimeout(t),t=setTimeout((function(){ge(me,e.value),pe()}),250)}}}var ye=s(5213),ve=s.n(ye);function be(){if(!1===mashiro_global.variables.skinSecter){const e=document.querySelector(".pattern-center"),t=document.querySelector(".headertop-bar");e&&(e.classList.remove("pattern-center"),e.classList.add("pattern-center-sakura")),t&&(t.classList.remove("headertop-bar"),t.classList.add("headertop-bar-sakura"))}else{const e=document.querySelector(".pattern-center-sakura"),t=document.querySelector(".headertop-bar-sakura");e&&(e.classList.remove("pattern-center-sakura"),e.classList.add("pattern-center")),t&&(t.classList.remove("headertop-bar-sakura"),t.classList.add("headertop-bar"))}}function we(){const e=document.getElementById("primary");e&&e.addEventListener("contextmenu",(function(e){"img"==e.target.nodeName.toLowerCase()&&(e.preventDefault(),e.stopPropagation())}))}async function Ee(e){mashiro_global.variables.skinSecter="white-bg"==e||"dark-bg"==e,be();const t=document.body.style.backgroundImage;let n;switch(e){case"white-bg":n=mashiro_option.site_bg_as_cover?await E():mashiro_option.skin_bg0;break;case"diy1-bg":n=mashiro_option.skin_bg1;break;case"diy2-bg":n=mashiro_option.skin_bg2;break;case"diy3-bg":n=mashiro_option.skin_bg3;break;case"diy4-bg":n=mashiro_option.skin_bg4}t!=n&&(document.body.style.backgroundImage=n?`url(${n})`:"")}function _e(){const e=document.getElementById("bg-next"),t=document.getElementById("bg-pre");e&&(e.onclick=g),t&&(t.onclick=p)}function Le(){window.scrollTo({top:0,behavior:"smooth"})}function ke(e){let t=document.getElementById("archives");if(null==t)return;let n=t.getElementsByClassName("al_mon");1==e?(t.addEventListener("click",(function(e){e.target.classList.contains("al_mon")&&((0,I.wy)(e.target.nextElementSibling,500),e.preventDefault())})),(0,T.m)()):function(){let e=document.getElementById("al_expand_collapse");e.style.cursor="s-resize";for(let e=0;e860){for(let e=0;e{e.stopPropagation(),document.body.classList.contains("navOpen")?P():(O(),document.documentElement.style.overflow="hidden",j.addEventListener("click",P))}))}function xe(){if("auto"==Poi.windowheight){if(document.querySelector("h1.main-title")){const e=document.getElementById("centerbg"),t=document.getElementById("bgvideo");e&&(e.style.height="100vh"),t&&(t.style.minHeight="100vh")}}else document.querySelector(".headertop")&&document.querySelector(".headertop").classList.add("headertop-bar")}function Be(){if(document.querySelector(".headertop")){let e=document.querySelector(".headertop"),t=document.querySelector(".blank");if(document.querySelector(".main-title")){try{t.style.paddingTop="0px"}catch(e){}e.style.height="auto",e.style.display="",Poi.movies.live&&re&&null!=re.oncanplay&&document.querySelector(".haslive")&&document.querySelector(".videolive")&&ce()}else{try{t.style.paddingTop="75px"}catch(e){}e.style.height="0px",e.style.display="none",function(){if(re&&null!=re.oncanplay&&document.querySelector(".haslive")){le();let e=document.getElementsByClassName("video-stu")[0];e.style.bottom="0px",e.innerHTML=(0,u.__)("已暂停...")}}()}}}function Te(){let e=document.querySelector(".comments-fold"),t=document.querySelector(".comments-main");null!=e&&(e.style.display="block",t.style.display="none",e.addEventListener("click",(function(){(0,I.wy)(t,500,"show"),e.style.display="none"})));let n=document.getElementsByClassName("archives");if(n.length>0){for(let e=0;e{e.preventDefault(),e.stopPropagation(),(0,I.wy)(e.target.nextElementSibling,300)}))}for(const e of document.getElementsByClassName("js-toggle-search"))e.addEventListener("click",he);const o=document.querySelector(".search_close");o&&o.addEventListener("click",(function(){let e=document.getElementsByClassName("js-search")[0];e.classList.contains("is-visible")&&(document.getElementsByClassName("js-toggle-search")[0].classList.toggle("is-active"),e.classList.toggle("is-visible"),document.documentElement.style.overflowY="unset")}));try{let e=document.getElementById("show-nav");e.addEventListener("click",(function(){if(e.classList.contains("showNav")){e.classList.remove("showNav"),e.classList.add("hideNav");let t=document.querySelector(".site-top .lower nav");t&&t.classList.add("navbar")}else{e.classList.remove("hideNav"),e.classList.add("showNav");let t=document.querySelector(".site-top .lower nav");t&&t.classList.remove("navbar")}})),document.getElementById("loading").addEventListener("click",(function(){let e=document.getElementById("loading");e.classList.add("hide"),e.classList.remove("show")}))}catch(e){}}function Ie(){const e=document.querySelector(".site-header");window.addEventListener("scroll",(()=>{(document.documentElement.scrollTop||window.pageYOffset)>0?e.classList.add("yya"):e.classList.remove("yya")}))}function Ce(){document.querySelector(".skin-menu").classList.remove("show"),setTimeout((function(){null!=document.querySelector(".changeSkin-gear")&&(document.querySelector(".changeSkin-gear").style.visibility="visible")}),300)}Poi.pjax=Poi.pjax&&l({Firefox:60,Edg:79,Chrome:66,OPR:53,AppleWebKit:606}),Poi.pjax&&s.e(48).then(s.bind(s,3048)).then((e=>{let{default:t}=e;return new t({selectors:["#page","title",".footer-device","#_mashiro_","#login-link"],scripts:"#_mashiro_",timeout:8e3,defaultTrigger:{exclude:"a[data-no-pjax]"}})})),(0,B.loadCSS)(mashiro_option.jsdelivr_css_src),(0,B.loadCSS)(mashiro_option.entry_content_style_src),(0,B.loadCSS)("https://at.alicdn.com/t/font_679578_qyt5qzzavdo39pb9.css"),mashiro_global.variables=new function(){this.skinSecter=!0},we(),ke(),x(),mashiro_option.float_player_on&&document.body.clientWidth>860&&s.e(58).then(s.bind(s,6058)).then((e=>{let{aplayerInit:t}=e;return t()})),setTimeout((function(){!function(){let e=document.getElementById("secondary");if(document.body.clientWidth>860){let t=document.querySelector(".show-hide");t&&t.addEventListener("click",(function(){e&&e.classList.toggle("active")}))}else e&&e.remove()}()}),100),Poi.pjax&&(document.addEventListener("pjax:send",(()=>{for(const e of document.getElementsByClassName("normal-cover-video"))e.pause(),e.src="",e.load="";document.getElementById("bar").style.width="0%",mashiro_option.NProgressON&&s.e(865).then(s.t.bind(s,4865,23)).then((e=>{let{default:t}=e;t.start()})),document.body.classList.contains("navOpen")&&P()})),document.addEventListener("pjax:complete",(function(){xe(),_(),Be(),Te(),mashiro_option.land_at_home&&F(),mashiro_option.NProgressON&&s.e(865).then(s.t.bind(s,4865,23)).then((e=>{let{default:t}=e;t.done()})),we(),Q();let e=document.getElementsByTagName("p");for(let t=0;t{for(let e=0;e{(0,L.f)((0,u._$)("页面加载出错了 HTTP {0}",e.request.status))})),window.addEventListener("popstate",(function(e){xe(),q(),Be(),Te(),ke(!0),R()}),!1)),window.addEventListener("hashchange",(function(){let e,t=location.hash.substring(1);/^[A-z0-9_-]+$/.test(t)&&(e=document.getElementById(t),e&&(/^(?:a|select|input|button|textarea)$/i.test(e.tagName)||(e.tabIndex=-1),e.focus()))}),!1),Ee(localStorage.getItem("bgImgSetting")||"white-bg"),(0,oe.q1)(),(0,I.Cd)((function(){_().then((()=>{l({AppleWebKit:605})&&(document.addEventListener("coverBG_change",(({detail:e})=>J(e))),J(b()))})),document.querySelectorAll(".menu-list li").forEach((e=>{e.addEventListener("click",(function(){const e=this.id;"dark-bg"==e?(0,oe.B3)(!0):((0,oe.Lg)(!0),Ee(e),localStorage.setItem("bgImgSetting",e)),Ce()}))}));let e=document.querySelector("#changskin"),t=document.querySelector(".skin-menu #close-skinMenu");e&&e.addEventListener("click",(function(){document.querySelector(".skin-menu").classList.toggle("show")})),t&&t.addEventListener("click",(function(){Ce()})),xe(),Be(),Ie(),function(){let e=document.querySelector("#moblieGoTop"),t=document.querySelector("#changskin");window.addEventListener("scroll",(()=>{const n=(document.documentElement.scrollTop||document.body.scrollTop)>20?"scale(1)":"scale(0)";e.style.transform=n,t.style.transform=n})),e.onclick=Le}(),F(),Te(),Se(),function(){let e=document.getElementById("video-btn");e&&e.addEventListener("click",(function(){this.classList.contains("loadvideo")?(this.classList.add("video-pause"),this.classList.remove("loadvideo"),se(),re.oncanplay=function(){ce(),document.getElementById("video-add").style.display="block",e.classList.add("videolive","haslive")}):this.classList.contains("video-pause")?(le(),e.classList.remove("videolive"),document.getElementsByClassName("video-stu")[0].style.bottom="0px",document.getElementsByClassName("video-stu")[0].innerHTML="已暂停 ..."):(ce(),e.classList.add("videolive")),re.onended=function(){re.setAttribute("src",""),document.getElementById("video-add").style.display="none",document.querySelector(".focusinfo").style.top="49.3%",e&&(e.classList.add("loadvideo"),e.classList.remove("video-pause","videolive","haslive"),Poi.movies.loop&&e.click())}}));const t=document.getElementById("video-add");t&&t.addEventListener("click",se)}(),q(),_e(),te(),M(),function(){const e=document.getElementById("preload");if(e){if("complete"===document.readyState)return C(e);window.addEventListener("load",(()=>{C(e)}))}}(),(0,T.m)(),ve().colorful=!0,ve().shake=!1,document.body.addEventListener("input",ve()),console.log("%c Sakurairo %c https://github.com/mirai-mamori/Sakurairo","background:#D05A6E;color:#fffffb",""),console.log(" 僕らは求めるものも\n 描いてる未来も違うけれど\n 手と手を取り合えたなら\n きっと笑い合える日が来るから\n %c——「ツバメ」","font-style:italic")})),R(),de(),be(),document.body.clientWidth>860&&window.addEventListener("scroll",(()=>{let e=document.documentElement.scrollTop||document.body.scrollTop,t=document.documentElement.scrollHeight||document.body.scrollHeight,n=window.innerHeight,o=parseInt(e/(t-n)*100);document.getElementById("bar").style.width=o+"%";const r=document.querySelector(".skin-menu");r&&r.classList.remove("show")}))}(),c=s.O(c)}(); +!function(){var e,t,n,o,r,i={5213:function(e){var t;t=function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={exports:{},id:o,loaded:!1};return e[o].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){var o=document.createElement("canvas");o.width=window.innerWidth,o.height=window.innerHeight,o.style.cssText="position:fixed;top:0;left:0;pointer-events:none;z-index:999999",window.addEventListener("resize",(function(){o.width=window.innerWidth,o.height=window.innerHeight})),document.body.appendChild(o);var r=o.getContext("2d"),i=[],a=0,s=!1;function c(e,t){return Math.random()*(t-e)+e}function l(e){if(u.colorful){var t=c(0,360);return"hsla("+c(t-10,t+10)+", 100%, "+c(50,80)+"%, 1)"}return window.getComputedStyle(e).color}function d(e,t,n){return{x:e,y:t,alpha:1,color:n,velocity:{x:2*Math.random()-1,y:2*Math.random()-3.5}}}function u(){for(var e=function(){var e,t=document.activeElement;if("TEXTAREA"===t.tagName||"INPUT"===t.tagName&&"text"===t.getAttribute("type")){var o=n(1)(t,t.selectionEnd);return e=t.getBoundingClientRect(),{x:o.left+e.left,y:o.top+e.top,color:l(t)}}var r=window.getSelection();if(r.rangeCount){var i=r.getRangeAt(0),a=i.startContainer;return a.nodeType===document.TEXT_NODE&&(a=a.parentNode),{x:(e=i.getBoundingClientRect()).left,y:e.top,color:l(a)}}return{x:0,y:0,color:"transparent"}}(),t=5+Math.round(10*Math.random());t--;)i[a]=d(e.x,e.y,e.color),a=(a+1)%500;if(u.shake){var o=1+2*Math.random(),r=o*(Math.random()>.5?-1:1),c=o*(Math.random()>.5?-1:1);document.body.style.marginLeft=r+"px",document.body.style.marginTop=c+"px",setTimeout((function(){document.body.style.marginLeft="",document.body.style.marginTop=""}),75)}s||requestAnimationFrame(m)}function m(){s=!0,r.clearRect(0,0,o.width,o.height);for(var e=!1,t=o.getBoundingClientRect(),n=0;nparseInt(l.height)&&(c.overflowY="scroll"):c.overflow="hidden",s.textContent=e.value.substring(0,o),"INPUT"===e.nodeName&&(s.textContent=s.textContent.replace(/\s/g," "));var d=document.createElement("span");d.textContent=e.value.substring(o)||".",s.appendChild(d);var u={top:d.offsetTop+parseInt(l.borderTopWidth),left:d.offsetLeft+parseInt(l.borderLeftWidth)};return i?d.style.backgroundColor="#aaa":document.body.removeChild(s),u}void 0!==e&&void 0!==e.exports?e.exports=o:window.getCaretCoordinates=o}()}])},e.exports=t()},7652:function(){window.imgError=function(e,t){switch(t){case 1:e.src="https://view.moezx.cc/images/2017/12/30/Transparent_Akkarin.th.jpg";break;case 2:e.src="https://sdn.geekzu.org/avatar/?s=80&d=mm&r=g";break;default:e.src="https://view.moezx.cc/images/2018/05/13/image-404.png"}},window.cmt_showPopup=function(e){let t=e.querySelector("#thePopup");t.classList.add("show"),e.querySelector("input").onblur=()=>{t.classList.remove("show")}},window.coverVideo=function(){let e=document.getElementById("coverVideo"),t=document.getElementById("cv-pc");if(e.paused){e.play();try{t.innerHTML=''}catch{}}else{e.pause();try{t.innerHTML=''}catch{}}},window.coverVideoMute=function(){const e=document.getElementById("coverVideo"),t=document.getElementById("cv-vc");e.muted?(e.muted=!1,t.innerHTML=''):(e.muted=!0,t.innerHTML='')},window.killCoverVideo=function(){var e=document.getElementById("coverVideo"),t=document.getElementById("cv-pc");if(e.paused);else{e.pause();try{t.innerHTML=''}catch(e){}}},window.mail_me=function(){window.open("mailto:"+mashiro_option.email_name+"@"+mashiro_option.email_domain)},window.headertop_down=function(){let e=document.getElementById("content").getBoundingClientRect().top+window.pageYOffset;window.scrollTo({top:e,behavior:"smooth"})}},5229:function(e,t,n){var o=n(7841);e.exports={name:"lab",min:[0,-100,-100],max:[100,100,100],channel:["lightness","a","b"],alias:["LAB","cielab"],xyz:function(e){var t,n,o,r,i=e[0],a=e[1],s=e[2];return i<=8?r=(n=100*i/903.3)/100*7.787+16/116:(n=100*Math.pow((i+16)/116,3),r=Math.pow(n/100,1/3)),[t=t/95.047<=.008856?t=95.047*(a/500+r-16/116)/7.787:95.047*Math.pow(a/500+r,3),n,o=o/108.883<=.008859?o=108.883*(r-s/200-16/116)/7.787:108.883*Math.pow(r-s/200,3)]}},o.lab=function(e){var t=e[0],n=e[1],o=e[2];return n/=100,o/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(o=o>.008856?Math.pow(o,1/3):7.787*o+16/116))]}},2409:function(e){e.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},7841:function(e,t,n){var o=n(2409),r={name:"xyz",min:[0,0,0],channel:["X","Y","Z"],alias:["XYZ","ciexyz","cie1931"],whitepoint:{2:{A:[109.85,100,35.585],C:[98.074,100,118.232],D50:[96.422,100,82.521],D55:[95.682,100,92.149],D65:[95.045592705167,100,108.9057750759878],D75:[94.972,100,122.638],F2:[99.187,100,67.395],F7:[95.044,100,108.755],F11:[100.966,100,64.37],E:[100,100,100]},10:{A:[111.144,100,35.2],C:[97.285,100,116.145],D50:[96.72,100,81.427],D55:[95.799,100,90.926],D65:[94.811,100,107.304],D75:[94.416,100,120.641],F2:[103.28,100,69.026],F7:[95.792,100,107.687],F11:[103.866,100,65.627],E:[100,100,100]}}};r.max=r.whitepoint[2].D65,r.rgb=function(e,t){t=t||r.whitepoint[2].E;var n,o,i,a=e[0]/t[0],s=e[1]/t[1],c=e[2]/t[2];return o=-.96924363628087*a+1.87596750150772*s+.041555057407175*c,i=.055630079696993*a+-.20397695888897*s+1.056971514242878*c,n=(n=3.240969941904521*a+-1.537383177570093*s+-.498610760293*c)>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,o=o>.0031308?1.055*Math.pow(o,1/2.4)-.055:o*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,[255*(n=Math.min(Math.max(0,n),1)),255*(o=Math.min(Math.max(0,o),1)),255*(i=Math.min(Math.max(0,i),1))]},o.xyz=function(e,t){var n=e[0]/255,o=e[1]/255,i=e[2]/255,a=.21263900587151*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.71516867876775*(o=o>.04045?Math.pow((o+.055)/1.055,2.4):o/12.92)+.072192315360733*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92),s=.019330818715591*n+.11919477979462*o+.95053215224966*i;return[(.41239079926595*n+.35758433938387*o+.18048078840183*i)*(t=t||r.whitepoint[2].E)[0],a*t[1],s*t[2]]},e.exports=r},8487:function(e,t,n){var o;o=void 0!==n.g?n.g:this,t.loadCSS=function(e,t,n,r){var i,a=o.document,s=a.createElement("link");if(t)i=t;else{var c=(a.body||a.getElementsByTagName("head")[0]).childNodes;i=c[c.length-1]}var l=a.styleSheets;if(r)for(var d in r)r.hasOwnProperty(d)&&s.setAttribute(d,r[d]);s.rel="stylesheet",s.href=e,s.media="only x",function e(t){if(a.body)return t();setTimeout((function(){e(t)}))}((function(){i.parentNode.insertBefore(s,t?i:i.nextSibling)}));var u=function(e){for(var t=s.href,n=l.length;n--;)if(l[n].href===t)return e();setTimeout((function(){u(e)}))};function m(){s.addEventListener&&s.removeEventListener("load",m),s.media=n||"all"}return s.addEventListener&&s.addEventListener("load",m),s.onloadcssdefined=u,u(m),s}},9905:function(e){var t=0;function n(e,t){var n=t.data;if(Array.isArray(n)&&!(n.length<2)){var o=n[0],r=n[1],i=n[2],a=e._callbacks[o];a&&(delete e._callbacks[o],a(r,i))}}function o(e){var t=this;t._worker=e,t._callbacks={},e.addEventListener("message",(function(e){n(t,e)}))}o.prototype.postMessage=function(e){var o=this,r=t++,i=[r,e];return new Promise((function(e,t){if(o._callbacks[r]=function(n,o){if(n)return t(new Error(n.message));e(o)},void 0!==o._worker.controller){var a=new MessageChannel;a.port1.onmessage=function(e){n(o,e)},o._worker.controller.postMessage(i,[a.port2])}else o._worker.postMessage(i)}))},e.exports=o},9791:function(e,t,n){n.d(t,{m:function(){return i}});const o={src:"data-src",srcset:"data-srcset",selector:".lazyload",root:null,rootMargin:"0px",threshold:0};class r{constructor(e,t){this.obs=null,this.doLoad=e=>{const{settings:t}=this,n=e.getAttribute(t.src),o=e.getAttribute(t.srcset),r=e.tagName.toLowerCase();"video"===r?n&&(e.src=n):"img"===r?(n&&(e.src=n),o&&(e.srcset=o)):e.style.backgroundImage="url('"+n+"')"},this.settings=Object.assign(Object.assign({},o),t),this.elms=e||document.querySelectorAll(this.settings.selector),this.init()}init(){if(!IntersectionObserver)return void this.load();const e=this;this.obs=new IntersectionObserver((function(t){Array.prototype.forEach.call(t,(function(t){t.isIntersecting&&(e.obs.unobserve(t.target),e.doLoad(t.target))}))}),{root:this.settings.root,rootMargin:this.settings.rootMargin,threshold:[this.settings.threshold]}),this.elms.forEach((t=>{e.obs.observe(t)}))}loadAndDestroy(){this.settings&&(this.load(),this.destroy())}load(){if(!this.settings)return;const{settings:e}=this;Array.prototype.forEach.call(this.elms,this.doLoad)}destroy(){this.settings&&(this.obs.disconnect(),this.settings=null)}}const i=(e,t)=>new r(e,t)},9354:function(e,t,n){function o(){const e=document.getElementsByClassName("butterBar");if(e.length>0)for(let t=0;t{o()}),"number"==typeof t?t:6e3),n}n.d(t,{f:function(){return r}})},476:function(e,t,n){n.d(t,{NB:function(){return r},Cd:function(){return a},cG:function(){return s},wy:function(){return c},bf:function(){return l}});let o=[];const r=e=>{let t=!1;return(...n)=>{if(!t){t=!0;try{const o=e(...n);return o instanceof Promise?o.finally((()=>t=!1)):t=!1,o}catch(e){console.warn(e),t=!1}}}},i=()=>{document.removeEventListener("DOMContentLoaded",i);for(const e of o)e();o=[]},a=function(e){if("loading"!==document.readyState)return e();0==o.length&&document.addEventListener("DOMContentLoaded",i,!1),o.push(e)},s=e=>e.replace(/\.\w+$/,"");function c(e,t=1e3,n="",o){let r=e;r.status=r.status||getComputedStyle(r,null).display;const i="none"!=r.status;1==i&&"show"==n||0==i&&"hide"==n||(r.status=i?"none":"block",r.style.transition="height "+t/1e3+"s",r.style.overflow="hidden",clearTimeout(r.tagTimer),r.tagTimer=r.tagTimer||null,r.style.display="block",r.tagHeight=r.tagHeight||r.clientHeight+"px",r.style.display="",r.style.height=i?r.tagHeight:"0px",setTimeout((()=>{r.style.height=i?"0px":r.tagHeight}),0),r.tagTimer=setTimeout((()=>{r.style.display=i?"none":"block",r.style.transition="",r.style.overflow="",r.style.height="",r.status=r.tagHeight=null}),t),o&&o())}function l(e,t={},n=!0){const o=new URL(e),{searchParams:r}=o;for(const[e,n]of Object.entries(t))r.set(e,n);return n&&r.set("_wpnonce",Poi.nonce),o.toString()}},302:function(e,t,n){n.d(t,{N2:function(){return i},B3:function(){return l},Lg:function(){return d},q1:function(){return m}});const o=window.matchMedia("(prefers-color-scheme:dark)");let r=!1;const i=()=>r;function a(e){e!==r&&(document.dispatchEvent(new CustomEvent("darkmode",{detail:e})),r=e)}function s(){localStorage.getItem("dark")||(o.matches&&mashiro_option.darkmode?l():d())}function c(e){e==u()?localStorage.removeItem("dark"):1==e?localStorage.setItem("dark","1"):localStorage.setItem("dark","0")}function l(e){document.documentElement.style.backgroundColor="#333",document.getElementsByClassName("site-content")[0].style.backgroundColor="#333",document.body.classList.add("dark"),e&&c(!0),a(!0)}function d(e){document.documentElement.style.backgroundColor="",document.getElementsByClassName("site-content")[0].style.backgroundColor="rgba(255, 255, 255, .8)",document.body.classList.remove("dark"),document.body.classList.remove("dynamic"),a(!1),e&&c(!1)}function u(){switch(mashiro_option.dm_strategy){case"client":return o.matches;case"eien":return!0;default:return function(){const e=new Date;return e.getHours()>21||e.getHours()<7}()}}function m(){const e=localStorage.getItem("dark");e?"1"==e?l():d():u()&&mashiro_option.darkmode?l():d()}"client"===mashiro_option.dm_strategy&&(o.removeEventListener?o.removeEventListener("change",s):o.removeListener(s),o.addEventListener?o.addEventListener("change",s):o.addListener(s))},2605:function(e,t,n){n.d(t,{__:function(){return o},_$:function(){return r},o:function(){return i},t:function(){return a}});const o=e=>window._sakurairoi18n&&_sakurairoi18n[e]||e,r=(e,...t)=>{let n=o(e);for(const e in t)n=n.replace("{"+e+"}",t[e]);return n},i={opt:{}},a=(e,t)=>Object.defineProperty(i,e,{value:t,writable:!1,enumerable:!0});if("_sakurairo"in window){const e=window._sakurairo;"opt"in e&&(i.opt=e.opt)}window._sakurairo=i}},a={};function s(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return i[e].call(n.exports,n,n.exports,s),n.exports}s.m=i,e=[],s.O=function(t,n,o,r){if(!n){var i=1/0;for(d=0;d=r)&&Object.keys(s.O).every((function(e){return s.O[e](n[c])}))?n.splice(c--,1):(a=!1,r0&&e[d-1][2]>r;d--)e[d]=e[d-1];e[d]=[n,o,r]},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},s.t=function(e,o){if(1&o&&(e=this(e)),8&o)return e;if("object"==typeof e&&e){if(4&o&&e.__esModule)return e;if(16&o&&"function"==typeof e.then)return e}var r=Object.create(null);s.r(r);var i={};t=t||[null,n({}),n([]),n(n)];for(var a=2&o&&e;"object"==typeof a&&!~t.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach((function(t){i[t]=function(){return e[t]}}));return i.default=function(){return e},s.d(r,i),r},s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce((function(t,n){return s.f[n](e,t),t}),[]))},s.u=function(e){return({8:"lg-plugin-0",238:"lg-plugin-1",359:"lg-plugin-5",400:"lg-plugin-4",515:"lg-plugin-6",568:"lg-plugin-10",642:"lg-plugin-8",649:"lg-plugin-3",719:"lg-plugin-11",725:"lg-plugin-9",846:"lg-plugin-2",893:"lg-plugin-7"}[e]||e)+".js"},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o={},r="sakurairo-scripts:",s.l=function(e,t,n,i){if(o[e])o[e].push(t);else{var a,c;if(void 0!==n)for(var l=document.getElementsByTagName("script"),d=0;d{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)}))}function n(n,o){const r=e().then((()=>{const e=indexedDB.open(n);return e.onupgradeneeded=()=>e.result.createObjectStore(o),t(e)}));return(e,t)=>r.then((n=>t(n.transaction(o,e).objectStore(o))))}const o=n("sakurairo","cache");var r;let i=null!==(r=mashiro_option.cookie_version_control)&&void 0!==r?r:"";const a=navigator.userAgent,c=Array.from(a.matchAll(/(Firefox|Chrome|Version|OPR|Edg)\/(\d+)/gi));function l(e){for(const[t,n,o]of c)if(parseFloat(o)>=e[n])return!0;return!1}const d=function(){const e=["image/*,*/*;q=0.8"];return l({Chrome:59,OPR:46,Firefox:3,Edg:79,Version:8})&&(e.push("image/apng"),l({Chrome:32,OPR:19,Firefox:65,Edg:18,Version:14})&&(!function(e,t,n){const o=n?"; expires="+new Date(Date.now()+24*n*60*60*1e3).toUTCString():"";document.cookie=e+i+"="+(t||"")+o+"; path=/"}("su_webp","1",114514),e.push("image/webp"),l({Chrome:85,OPR:71,Firefox:93})&&e.push("image/avif"))),e.reverse().join(",")}();var u=s(2605);let m=1,f="";async function g(){y(await E(!0)),m++}async function p(){m--,y(await E(!0))}const h=document.querySelector(".centerbg"),y=mashiro_option.site_bg_as_cover?e=>{document.body.style.backgroundImage=`url(${e})`,document.dispatchEvent(new CustomEvent("coverBG_change",{detail:e}))}:h?e=>{h.style.backgroundImage=`url(${e})`,document.dispatchEvent(new CustomEvent("coverBG_change",{detail:e}))}:()=>{};function v(e){const t=null==e?void 0:e.match(/^url\("(.+)"\)$/);if(t)return t[1]}const b=mashiro_option.site_bg_as_cover?()=>v(document.body.style.backgroundImage):()=>v(h.style.backgroundImage);function w(e=!1){const t=new URL(mashiro_option.cover_api);return document.body.clientWidth<860&&1==mashiro_option.random_graphs_mts?(t.searchParams.set("type","mobile"),t.toString()+(e?"&"+m:"")):t.toString()+(e?(""===t.search?"?":"&")+m:"")}const E=mashiro_option.cache_cover?(e=!1)=>{return(n="cover",o("readonly",(e=>t(e.get(n))))).then((t=>t&&t instanceof ArrayBuffer?(URL.revokeObjectURL(f),f="",f=URL.createObjectURL(new Blob([t])),f):w(e))).finally((()=>{!async function(e=!1){try{const n=await fetch(w(e),{headers:{Accept:d}});if(n.ok){const e=await n.arrayBuffer();try{((e,n)=>{o("readwrite",(o=>(o.put(n,e),t(o.transaction))))})("cover",e)}catch(e){console.warn(e)}}}catch(e){e instanceof TypeError&&(console.warn((0,u.__)("你的封面API好像不支持跨域调用,这种情况下缓存是不会生效的哦")),(e=>{o("readwrite",(n=>(n.delete(e),t(n.transaction))))})("cover"))}}(e)}));var n}:w;var _=s(9354);const L=["# 商业转载请联系作者获得授权,非商业转载请注明出处。","# For commercial use, please contact the author for authorization. For non-commercial use, please indicate the source.","# 协议(License):署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)","# 作者(Author):"+mashiro_option.author_name,"# 链接(URL):"+window.location.href,"# 来源(Source):"+mashiro_option.site_name];function k(e){const t=window.getSelection();if(t){const n=t.toString();n.length>30&&(!function(e,t){e.preventDefault();const n=L.join("
")+"

"+t.replace(/\r\n/g,"
"),o=L.join("\n")+"\n\n"+t.toString().replace(/\r\n/g,"\n");if(e.clipboardData)e.clipboardData.setData("text/html",n),e.clipboardData.setData("text/plain",o);else if(window.clipboardData)window.clipboardData.setData("text",o)}(e,n),(0,_.f)((0,u.__)("复制成功!"),1e3))}}function S(){mashiro_option.clipboardCopyright&&(document.body.removeEventListener("copy",k),document.body.addEventListener("copy",k))}var x=s(8487),B=s(9791),T=(s(7652),s(476));function C(e){if(document.documentElement.style.overflowY="unset",0!=mashiro_option.preload_blur)try{return void(e.animate([{filter:"blur(0px)",backdropFilter:"blur(10px)",opacity:1},{backdropFilter:"blur(0px)grayscale(0)",opacity:.1},{opacity:0,filter:"blur(100px)"}],{duration:mashiro_option.preload_blur,fill:"forwards",easing:"ease"}).onfinish=()=>{e.remove()})}catch(e){console.warn(e)}e.classList.add("hide"),e.classList.remove("show"),setTimeout((()=>e.remove()),233)}async function I(){var e;if(mashiro_option.yiyan){const t=document.getElementById("footer_yiyan");if(0==(null!==(e=mashiro_option.yiyan_api)&&void 0!==e?e:["https://api.maho.cc/yiyan/"]).length)console.warn("一言API路径为空");else if(t)for(const e of mashiro_option.yiyan_api)try{const n=await q(e);t.innerText=n;break}catch(t){console.warn(`一言api: 尝试联系"${e}"时出错。\n`,t);continue}}}const q=async e=>{const t=await fetch(e,{headers:{Accept:"application/json"}});if(t.ok){const e=await t.json(),n=("null"==e.from_who?null:e.from_who)||"",o=e.from!=e.from_who?`「${e.from}」`:"";return e.hitokoto+"——"+n+o}throw t.status};function M(){if(!mashiro_option.audio)return;const e=window.AudioContext||window.webkitAudioContext;if(e){let t,n=new e,o=function(){var e;const t=null===(e=u.o.opt.web_audio)||void 0===e?void 0:e.sheet;if("string"==typeof t)return t.split(" ");if(t instanceof Array)return t}()||A,r=0,i=1,a="♪ ♩ ♫ ♬ ♭ € § ¶ ♯".split(" ");document.querySelectorAll(".site-title, #moblieGoTop, .site-branding, .searchbox, .changeSkin-gear, .menu-list li").forEach((e=>{e.addEventListener("mouseenter",(e=>{var s;if(t)return;let c=o[r];c||(r=0,c=o[r]),r+=i;const l=n.createOscillator(),d=n.createGain(),m=n.createGain();l.connect(d),d.connect(m),m.connect(n.destination),m.gain.setValueAtTime((null===(s=u.o.opt.web_audio)||void 0===s?void 0:s.main_gain)||1,n.currentTime),l.type="sine",l.frequency.value=c,d.gain.setValueAtTime(0,n.currentTime),d.gain.linearRampToValueAtTime(1,n.currentTime+.01),l.start(n.currentTime),d.gain.exponentialRampToValueAtTime(.001,n.currentTime+1),l.stop(n.currentTime+1);const f=Math.round(7*Math.random()),g=e.pageX,p=e.pageY-5;t=document.createElement("b"),t.textContent=a[f],t.style.zIndex="99999",t.style.top=p-100+"px",t.style.left=g+"px",t.style.position="absolute",t.style.color="#FF6EB4",document.body.appendChild(t),t.animate([{top:p+"px"},{opacity:0}],{duration:500}),setTimeout((()=>{t.remove(),t=null}),500),e.stopPropagation()}))}))}}const A="880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 659 698 659 698 1046 659 1046 1046 1046 987 698 698 987 987 880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 698 1046 987 1046 1174 1174 1174 1046 1046 880 987 784 880 1046 1174 1318 1174 1318 1567 1046 987 1046 1318 1318 1174 784 784 880 1046 987 1174 1046 784 784 1396 1318 1174 659 1318 1046 1318 1760 1567 1567 1318 1174 1046 1046 1174 1046 1174 1567 1318 1318 1760 1567 1318 1174 1046 1046 1174 1046 1174 987 880 880 987 880".split(" ");const N=document.getElementById("main-container");function j(){document.body.classList.toggle("navOpen"),N.classList.toggle("open"),document.getElementById("mo-nav").classList.toggle("open"),document.querySelector(".openNav").classList.toggle("open"),document.querySelector(".site-header").classList.toggle("open")}function P(){j(),document.documentElement.style.overflow="unset",N.removeEventListener("click",P)}let O;const D=(0,T.NB)((function(){const e=document.location.href,t=document.querySelector("#pagination a");t.classList.contains("loading")||(t.classList.add("loading"),t.innerText="",fetch(t.getAttribute("href")+"#main").then((async n=>{const o=await n.text();if(e!=document.location.href)return;const r=(new DOMParser).parseFromString(o,"text/html"),i=r.querySelectorAll("#main .post"),a=r.querySelector("#pagination a"),s=a&&a.innerText,c=a&&a.getAttribute("href"),l=document.getElementById("main");for(let e=0;e"})))}));function H(){if(document.querySelector("article")&&document.querySelector("article").classList.contains("post-list-thumb")){const e=new IntersectionObserver((t=>{t.forEach(window.IntersectionObserver?t=>{t.target.classList.contains("post-list-show")?(t.target.style.willChange="auto",e.unobserve(t.target)):t.isIntersecting&&(t.target.classList.add("post-list-show"),t.target.style.willChange="auto",e.unobserve(t.target))}:e=>{e.target.style.willChange="auto",!1===e.target.classList.contains("post-list-show")&&e.target.classList.add("post-list-show")})}),{root:null,threshold:[.66]}),t=document.getElementsByClassName("post-list-thumb");for(let n=0;n1){var a=o/Math.sqrt(i),s=r/Math.sqrt(i),c=e(a,s);return null==c||c.drawImage(t,0,0,a,s),null==c?void 0:c.getImageData(0,0,a,s)}var l=e(o,r);return null==l||l.drawImage(t,0,0),null==l?void 0:l.getImageData(0,0,o,r)}var V=s(9905),Y=s.n(V);let G,X,J;async function Z(e){try{const t=document.createElement("img");t.src=e,await function(e){return new Promise((function(t,n){e.addEventListener("load",(function(e){t(e)})),e.addEventListener("error",(function(e){n(e)}))}))}(t);const n=function(e,t){return U(W,e,t)}(t,1e4),o=await G.postMessage({k:3,iteration:20,img:n}),{label:r,centroid:i}=o,a=Math.max(...r);K(function(e){return"rgba("+e.map((function(e){return Math.floor(e)})).join(",")+")"}(function(e){var t=e.slice(0,3),n=e[3],o=$.xyz(t),r=F.rgb(o);return[].concat(r,[n])}(i[r.findIndex((e=>e==a))])))}catch(e){console.error(e),K(getComputedStyle(document.documentElement).getPropertyValue("--theme-skin-matching"))}}function K(e){const t=document.querySelector('meta[name=theme-color][media="(prefers-color-scheme: light)"]');t&&(t.content=e)}function Q(e){return()=>{const{name:t}=e.dataset;t!=localStorage.getItem("font_family")&&("serif"==t?(document.body.clientWidth<=860&&(0,_.f)((0,u.__)("将从网络加载字体,流量请注意")),document.body.classList.add("serif"),te("serif"),localStorage.setItem("font_family","serif")):(document.body.classList.remove("serif"),te("sans-serif"),localStorage.setItem("font_family","sans-serif")))}}function ee(){const e=localStorage.getItem("font_family");e&&"serif"!=e||document.body.classList.add("serif")}function te(e){(null!=e?e:"sans-serif"==localStorage.getItem("font_family"))?(X.classList.remove("selected"),J.classList.add("selected")):(J.classList.remove("selected"),X.classList.add("selected"))}function ne(){const e=(X=document.getElementsByClassName("control-btn-serif")[0],J=document.getElementsByClassName("control-btn-sans-serif")[0],J&&X);e||localStorage.removeItem("font_family"),ee(),e&&(te(),X.addEventListener("click",Q(X)),J.addEventListener("click",Q(J)))}var oe,re=s(302);const ie=document.getElementById("bgvideo"),ae=(null===(oe=Poi.movies.name)||void 0===oe?void 0:oe.split(","))||[];let se=new Array(ae.length).fill(0).map(((e,t)=>t));function ce(){const e=document.getElementsByClassName("video-stu")[0],t=(()=>{0==se.length&&(se=new Array(ae.length).fill(0).map(((e,t)=>t)));const e=Math.floor(Math.random()*se.length);return ae[se.splice(e,1)[0]]})();e.innerHTML=(0,u.__)("正在载入视频 ..."),e.style.bottom="0px",ie.setAttribute("src",new URL(t,Poi.movies.url||location.origin).toString()),ie.setAttribute("video-name",(0,T.cG)(t))}function le(){let e=document.getElementById("video-btn");e&&(e.classList.add("video-pause"),e.classList.remove("video-play"),e.style.display="");try{if(document.querySelector(".video-stu").style.bottom="-100px",document.querySelector(".focusinfo").style.top="-999px",mashiro_option.float_player_on)return void s.e(58).then(s.bind(s,6058)).then((({destroyAllAplayer:e})=>{e(),ie.play()}))}catch(e){console.warn(e)}ie.play()}function de(){let e=document.getElementById("video-btn");e&&(e.classList.add("video-play"),e.classList.remove("video-pause"));try{document.querySelector(".focusinfo").style.top="49.3%"}catch(e){}ie.pause()}async function ue(){!async function(){const e=document.querySelectorAll("video.hls");if(0==e.length)return;if(e[0].canPlayType("application/vnd.apple.mpegurl"))for(const t of e)t.src=t.dataset.src||t.src,t.autoplay=!0;else{if(!window.Hls)try{const{default:e}=await s.e(631).then(s.t.bind(s,7631,23));window.Hls=e}catch(e){console.warn("Hls load failed: ",e)}Hls.isSupported()||console.error("Hls: Media Source Extensions is unsupported.");for(const t of e){const e=new Hls;e.loadSource(t.dataset.src||t.src),e.attachMedia(t),e.on(Hls.Events.MANIFEST_PARSED,(function(){t.play()}))}}}(),async function(){document.querySelectorAll("video.lazyload").forEach((e=>e.addEventListener("canplay",me)))}()}function me(){this.poster=""}let fe;function ge(e,t,n,o,r,i,a){if(e){var s=e.trim().split(" "),c=o.indexOf(s[s.length-1]),l=a.indexOf(s[s.length-1]);o=(o=c<60?o.slice(0,80):o.slice(c-30,c+30)).replace(s[s.length-1],' '+s[s.length-1].toUpperCase()+" "),a=(a=l<60?a.slice(0,80):a.slice(l-30,l+30)).replace(s[s.length-1],' '+s[s.length-1].toUpperCase()+" ")}return`
${o}${i}

${a}

`}function pe(e,t){var n="",o="",r="",i="",a="",s="",c='
',l="
",d="",m=function(e,t){for(let e=0;eObject.values(e).some((e=>new RegExp(t+"").test(e)))))}(e,t.trim());for(const e of m)switch(e.type){case"post":o+=ge(t,e.link,"file",e.title,"mark",e.comments,e.text);break;case"tag":a+=ge("",e.link,"tag",e.title,"none","","");break;case"category":i+=ge("",e.link,"folder",e.title,"none","","");break;case"page":r+=ge(t,e.link,"file",e.title,"mark",e.comments,e.text);break;case"comment":s+=ge(t,e.link,"comment",e.title,"none","",e.text)}o&&(n=n+c+(0,u.__)("文章")+d+o+l),r&&(n=n+c+(0,u.__)("页面")+d+r+l),i&&(n=n+c+(0,u.__)("分类")+d+i+l),a&&(n=n+c+(0,u.__)("标签")+d+a+l),s&&(n=n+c+(0,u.__)("评论")+d+s+l),document.getElementById("PostlistBox").innerHTML=n}function he(){const e=document.querySelector(".search_close"),t=document.getElementById("Ty");for(const n of document.getElementsByClassName("ins-selectable"))n.addEventListener("click",(()=>{t.href=n.getAttribute("href"),t.click(),e.click()}))}function ye(){if(document.getElementsByClassName("js-toggle-search")[0].classList.toggle("is-active"),document.getElementsByClassName("js-search")[0].classList.toggle("is-visible"),document.documentElement.style.overflowY="hidden",mashiro_option.live_search){fe=[],function(e){const t=document.getElementById("search-input");null!=sessionStorage.getItem("search")?(fe=JSON.parse(sessionStorage.getItem("search")),pe(fe,t.value),he()):fetch(e).then((async e=>{if(e.ok){const n=await e.text();""!=n&&(sessionStorage.setItem("search",n),fe=JSON.parse(n),pe(fe,t.value),he())}else console.warn("HTTP "+e.status)})).catch((e=>console.warn(e)))}((0,T.bf)(Poi.api+"sakura/v1/cache_search/json"));var e=document.getElementById("search-input"),t=null;e.oninput=function(){null!=t&&clearTimeout(t),t=setTimeout((function(){pe(fe,e.value),he()}),250)}}}var ve=s(5213),be=s.n(ve);function we(){if(!1===mashiro_global.variables.skinSecter){const e=document.querySelector(".pattern-center"),t=document.querySelector(".headertop-bar");e&&(e.classList.remove("pattern-center"),e.classList.add("pattern-center-sakura")),t&&(t.classList.remove("headertop-bar"),t.classList.add("headertop-bar-sakura"))}else{const e=document.querySelector(".pattern-center-sakura"),t=document.querySelector(".headertop-bar-sakura");e&&(e.classList.remove("pattern-center-sakura"),e.classList.add("pattern-center")),t&&(t.classList.remove("headertop-bar-sakura"),t.classList.add("headertop-bar"))}}function Ee(){const e=document.getElementById("primary");e&&e.addEventListener("contextmenu",(function(e){"img"==e.target.nodeName.toLowerCase()&&(e.preventDefault(),e.stopPropagation())}))}async function _e(e){let t;switch(mashiro_global.variables.skinSecter="white-bg"==e||"dark-bg"==e,we(),e){case"white-bg":if(mashiro_option.site_bg_as_cover)return t=await E(),void y(t);if(!mashiro_option.land_at_home)return;t=mashiro_option.skin_bg0;break;case"diy1-bg":t=mashiro_option.skin_bg1;break;case"diy2-bg":t=mashiro_option.skin_bg2;break;case"diy3-bg":t=mashiro_option.skin_bg3;break;case"diy4-bg":t=mashiro_option.skin_bg4}document.body.style.backgroundImage=t?`url(${t})`:""}function Le(){const e=document.getElementById("bg-next"),t=document.getElementById("bg-pre");e&&(e.onclick=g),t&&(t.onclick=p)}function ke(){window.scrollTo({top:0,behavior:"smooth"})}function Se(e){let t=document.getElementById("archives");if(null==t)return;let n=t.getElementsByClassName("al_mon");1==e?(t.addEventListener("click",(function(e){e.target.classList.contains("al_mon")&&((0,T.wy)(e.target.nextElementSibling,500),e.preventDefault())})),(0,B.m)()):function(){let e=document.getElementById("al_expand_collapse");e.style.cursor="s-resize";for(let e=0;e860){for(let e=0;e{e.stopPropagation(),document.body.classList.contains("navOpen")?P():(j(),document.documentElement.style.overflow="hidden",N.addEventListener("click",P))}))}function Be(){if("auto"==Poi.windowheight){if(document.querySelector("h1.main-title")){const e=document.getElementById("centerbg"),t=document.getElementById("bgvideo");e&&(e.style.height="100vh"),t&&(t.style.minHeight="100vh")}}else document.querySelector(".headertop")&&document.querySelector(".headertop").classList.add("headertop-bar")}function Te(){if(document.querySelector(".headertop")){let e=document.querySelector(".headertop"),t=document.querySelector(".blank");if(document.querySelector(".main-title")){try{t.style.paddingTop="0px"}catch(e){}e.style.height="auto",e.style.display="",Poi.movies.live&&ie&&null!=ie.oncanplay&&document.querySelector(".haslive")&&document.querySelector(".videolive")&&le()}else{try{t.style.paddingTop="75px"}catch(e){}e.style.height="0px",e.style.display="none",function(){if(ie&&null!=ie.oncanplay&&document.querySelector(".haslive")){de();let e=document.getElementsByClassName("video-stu")[0];e.style.bottom="0px",e.innerHTML=(0,u.__)("已暂停...")}}()}}}function Ce(){let e=document.querySelector(".comments-fold"),t=document.querySelector(".comments-main");null!=e&&(e.style.display="block",t.style.display="none",e.addEventListener("click",(function(){(0,T.wy)(t,500,"show"),e.style.display="none"})));let n=document.getElementsByClassName("archives");if(n.length>0){for(let e=0;e{e.preventDefault(),e.stopPropagation(),(0,T.wy)(e.target.nextElementSibling,300)}))}for(const e of document.getElementsByClassName("js-toggle-search"))e.addEventListener("click",ye);const o=document.querySelector(".search_close");o&&o.addEventListener("click",(function(){let e=document.getElementsByClassName("js-search")[0];e.classList.contains("is-visible")&&(document.getElementsByClassName("js-toggle-search")[0].classList.toggle("is-active"),e.classList.toggle("is-visible"),document.documentElement.style.overflowY="unset")}));try{let e=document.getElementById("show-nav");e.addEventListener("click",(function(){if(e.classList.contains("showNav")){e.classList.remove("showNav"),e.classList.add("hideNav");let t=document.querySelector(".site-top .lower nav");t&&t.classList.add("navbar")}else{e.classList.remove("hideNav"),e.classList.add("showNav");let t=document.querySelector(".site-top .lower nav");t&&t.classList.remove("navbar")}})),document.getElementById("loading").addEventListener("click",(function(){let e=document.getElementById("loading");e.classList.add("hide"),e.classList.remove("show")}))}catch(e){}}function Ie(){const e=document.querySelector(".site-header");window.addEventListener("scroll",(()=>{(document.documentElement.scrollTop||window.pageYOffset)>0?e.classList.add("yya"):e.classList.remove("yya")}))}function qe(){document.querySelector(".skin-menu").classList.remove("show"),setTimeout((function(){null!=document.querySelector(".changeSkin-gear")&&(document.querySelector(".changeSkin-gear").style.visibility="visible")}),300)}Poi.pjax=Poi.pjax&&l({Firefox:60,Edg:79,Chrome:66,OPR:53,Version:12}),Poi.pjax&&s.e(48).then(s.bind(s,3048)).then((e=>{let{default:t}=e;return new t({selectors:["#page","title",".footer-device","#_mashiro_","#login-link"],scripts:"#_mashiro_",timeout:8e3,defaultTrigger:{exclude:"a[data-no-pjax]"}})})),(0,x.loadCSS)(mashiro_option.jsdelivr_css_src),(0,x.loadCSS)(mashiro_option.entry_content_style_src),(0,x.loadCSS)("https://at.alicdn.com/t/font_679578_qyt5qzzavdo39pb9.css"),mashiro_global.variables=new function(){this.skinSecter=!0},Ee(),Se(),S(),mashiro_option.float_player_on&&document.body.clientWidth>860&&s.e(58).then(s.bind(s,6058)).then((e=>{let{aplayerInit:t}=e;return t()})),setTimeout((function(){!function(){let e=document.getElementById("secondary");if(document.body.clientWidth>860){let t=document.querySelector(".show-hide");t&&t.addEventListener("click",(function(){e&&e.classList.toggle("active")}))}else e&&e.remove()}()}),100),Poi.pjax&&(document.addEventListener("pjax:send",(()=>{for(const e of document.getElementsByClassName("normal-cover-video"))e.pause(),e.src="",e.load="";document.getElementById("bar").style.width="0%",mashiro_option.NProgressON&&s.e(865).then(s.t.bind(s,4865,23)).then((e=>{let{default:t}=e;t.start()})),document.body.classList.contains("navOpen")&&P()})),document.addEventListener("pjax:complete",(function(){Be(),Te(),Ce(),mashiro_option.land_at_home&&z(),mashiro_option.NProgressON&&s.e(865).then(s.t.bind(s,4865,23)).then((e=>{let{default:t}=e;t.done()})),Ee(),ee();let e=document.getElementsByTagName("p");for(let t=0;t{for(let e=0;e{(0,_.f)((0,u._$)("页面加载出错了 HTTP {0}",e.request.status))})),window.addEventListener("popstate",(function(e){Be(),I(),Te(),Ce(),Se(!0),H()}),!1)),window.addEventListener("hashchange",(function(){const e=location.hash.substring(1);if(!/^[A-z0-9_-]+$/.test(e))return;const t=document.getElementById(e);t&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())}),!1),(0,re.q1)(),(0,T.Cd)((function(){_e(localStorage.getItem("bgImgSetting")||"white-bg").then((()=>{if(l({Version:15})){G||(G=new(Y())(new Worker(new URL(s.p+s.u(16),s.b)))),document.addEventListener("coverBG_change",(({detail:e})=>Z(e)));const e=b();e&&Z(e)}})),document.querySelectorAll(".menu-list li").forEach((e=>{e.addEventListener("click",(function(){const e=this.id;"dark-bg"==e?(0,re.B3)(!0):((0,re.Lg)(!0),_e(e),localStorage.setItem("bgImgSetting",e)),qe()}))}));let e=document.querySelector("#changskin"),t=document.querySelector(".skin-menu #close-skinMenu");e&&e.addEventListener("click",(function(){document.querySelector(".skin-menu").classList.toggle("show")})),t&&t.addEventListener("click",(function(){qe()})),Be(),Te(),Ie(),function(){let e=document.querySelector("#moblieGoTop"),t=document.querySelector("#changskin");window.addEventListener("scroll",(()=>{const n=(document.documentElement.scrollTop||document.body.scrollTop)>20?"scale(1)":"scale(0)";e.style.transform=n,t.style.transform=n})),e.onclick=ke}(),z(),Ce(),xe(),function(){let e=document.getElementById("video-btn");e&&e.addEventListener("click",(function(){this.classList.contains("loadvideo")?(this.classList.add("video-pause"),this.classList.remove("loadvideo"),ce(),ie.oncanplay=function(){le(),document.getElementById("video-add").style.display="block",e.classList.add("videolive","haslive")}):this.classList.contains("video-pause")?(de(),e.classList.remove("videolive"),document.getElementsByClassName("video-stu")[0].style.bottom="0px",document.getElementsByClassName("video-stu")[0].innerHTML="已暂停 ..."):(le(),e.classList.add("videolive")),ie.onended=function(){ie.setAttribute("src",""),document.getElementById("video-add").style.display="none",document.querySelector(".focusinfo").style.top="49.3%",e&&(e.classList.add("loadvideo"),e.classList.remove("video-pause","videolive","haslive"),Poi.movies.loop&&e.click())}}));const t=document.getElementById("video-add");t&&t.addEventListener("click",ce)}(),I(),Le(),ne(),M(),function(){const e=document.getElementById("preload");if(e){if("complete"===document.readyState)return C(e);window.addEventListener("load",(()=>{C(e)}))}}(),(0,B.m)(),be().colorful=!0,be().shake=!1,document.body.addEventListener("input",be()),console.log("%c Sakurairo %c https://github.com/mirai-mamori/Sakurairo","background:#D05A6E;color:#fffffb",""),console.log(" 僕らは求めるものも\n 描いてる未来も違うけれど\n 手と手を取り合えたなら\n きっと笑い合える日が来るから\n %c——「ツバメ」","font-style:italic")})),H(),ue(),we(),document.body.clientWidth>860&&window.addEventListener("scroll",(()=>{let e=document.documentElement.scrollTop||document.body.scrollTop,t=document.documentElement.scrollHeight||document.body.scrollHeight,n=window.innerHeight,o=parseInt(e/(t-n)*100);document.getElementById("bar").style.width=o+"%";const r=document.querySelector(".skin-menu");r&&r.classList.remove("show")}))}(),c=s.O(c)}(); //# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/js/app.js.LICENSE.txt b/js/app.js.LICENSE.txt index b0347b82..591f11fa 100644 --- a/js/app.js.LICENSE.txt +++ b/js/app.js.LICENSE.txt @@ -43,4 +43,4 @@ * */ -//! build be47151 2021/11/21 +//! build 3a6b1dd 2021/11/24 diff --git a/js/app.js.map b/js/app.js.map index d566a8f1..5311f94b 100644 --- a/js/app.js.map +++ b/js/app.js.map @@ -1 +1 @@ -{"version":3,"file":"app.js","mappings":"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","sources":["webpack://sakurairo-scripts/webpack/runtime/chunk loaded","webpack://sakurairo-scripts/webpack/runtime/create fake namespace object","webpack://sakurairo-scripts/webpack/runtime/load script","webpack://sakurairo-scripts/./node_modules/activate-power-mode/dist/activate-power-mode.js","webpack://sakurairo-scripts/./src/sakura-app/global-func.js","webpack://sakurairo-scripts/./node_modules/color-space/lab.js","webpack://sakurairo-scripts/./node_modules/color-space/rgb.js","webpack://sakurairo-scripts/./node_modules/color-space/xyz.js","webpack://sakurairo-scripts/./node_modules/fg-loadcss/src/loadCSS.js","webpack://sakurairo-scripts/./node_modules/promise-worker/index.js","webpack://sakurairo-scripts/./node_modules/lazyload/src/lazyload.ts","webpack://sakurairo-scripts/./src/common/butterbar.ts","webpack://sakurairo-scripts/./src/common/util.ts","webpack://sakurairo-scripts/./src/sakura-app/darkmode.ts","webpack://sakurairo-scripts/./src/sakura-app/sakurairo_global.ts","webpack://sakurairo-scripts/webpack/bootstrap","webpack://sakurairo-scripts/webpack/runtime/compat get default export","webpack://sakurairo-scripts/webpack/runtime/define property getters","webpack://sakurairo-scripts/webpack/runtime/ensure chunk","webpack://sakurairo-scripts/webpack/runtime/get javascript chunk filename","webpack://sakurairo-scripts/webpack/runtime/global","webpack://sakurairo-scripts/webpack/runtime/hasOwnProperty shorthand","webpack://sakurairo-scripts/webpack/runtime/make namespace object","webpack://sakurairo-scripts/webpack/runtime/publicPath","webpack://sakurairo-scripts/webpack/runtime/jsonp chunk loading","webpack://sakurairo-scripts/./node_modules/safari-14-idb-fix/dist/index.js","webpack://sakurairo-scripts/./node_modules/idb-keyval/dist/index.js","webpack://sakurairo-scripts/./src/sakura-app/cache.ts","webpack://sakurairo-scripts/./src/common/cookie.ts","webpack://sakurairo-scripts/./src/sakura-app/compatibility.ts","webpack://sakurairo-scripts/./src/sakura-app/coverBackground.ts","webpack://sakurairo-scripts/./src/sakura-app/copyright.ts","webpack://sakurairo-scripts/./src/sakura-app/preload_screen.ts","webpack://sakurairo-scripts/./src/sakura-app/hitokoto.ts","webpack://sakurairo-scripts/./src/sakura-app/web_audio.ts","webpack://sakurairo-scripts/./src/sakura-app/mobile_nav.ts","webpack://sakurairo-scripts/./src/sakura-app/posts.js","webpack://sakurairo-scripts/./node_modules/@kotorik/palette/dist/index.mjs","webpack://sakurairo-scripts/./src/sakura-app/theme-color/index.ts","webpack://sakurairo-scripts/./src/sakura-app/font_control.ts","webpack://sakurairo-scripts/./src/sakura-app/video.ts","webpack://sakurairo-scripts/./src/sakura-app/search.ts","webpack://sakurairo-scripts/./src/sakura-app/index.js","webpack://sakurairo-scripts/./src/sakura-app/about_us.ts"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"sakurairo-scripts:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"POWERMODE\"] = factory();\n\telse\n\t\troot[\"POWERMODE\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar canvas = document.createElement('canvas');\n\tcanvas.width = window.innerWidth;\n\tcanvas.height = window.innerHeight;\n\tcanvas.style.cssText = 'position:fixed;top:0;left:0;pointer-events:none;z-index:999999';\n\twindow.addEventListener('resize', function () {\n\t canvas.width = window.innerWidth;\n\t canvas.height = window.innerHeight;\n\t});\n\tdocument.body.appendChild(canvas);\n\tvar context = canvas.getContext('2d');\n\tvar particles = [];\n\tvar particlePointer = 0;\n\tvar rendering = false;\n\n\tPOWERMODE.shake = true;\n\n\tfunction getRandom(min, max) {\n\t return Math.random() * (max - min) + min;\n\t}\n\n\tfunction getColor(el) {\n\t if (POWERMODE.colorful) {\n\t var u = getRandom(0, 360);\n\t return 'hsla(' + getRandom(u - 10, u + 10) + ', 100%, ' + getRandom(50, 80) + '%, ' + 1 + ')';\n\t } else {\n\t return window.getComputedStyle(el).color;\n\t }\n\t}\n\n\tfunction getCaret() {\n\t var el = document.activeElement;\n\t var bcr;\n\t if (el.tagName === 'TEXTAREA' ||\n\t (el.tagName === 'INPUT' && el.getAttribute('type') === 'text')) {\n\t var offset = __webpack_require__(1)(el, el.selectionEnd);\n\t bcr = el.getBoundingClientRect();\n\t return {\n\t x: offset.left + bcr.left,\n\t y: offset.top + bcr.top,\n\t color: getColor(el)\n\t };\n\t }\n\t var selection = window.getSelection();\n\t if (selection.rangeCount) {\n\t var range = selection.getRangeAt(0);\n\t var startNode = range.startContainer;\n\t if (startNode.nodeType === document.TEXT_NODE) {\n\t startNode = startNode.parentNode;\n\t }\n\t bcr = range.getBoundingClientRect();\n\t return {\n\t x: bcr.left,\n\t y: bcr.top,\n\t color: getColor(startNode)\n\t };\n\t }\n\t return { x: 0, y: 0, color: 'transparent' };\n\t}\n\n\tfunction createParticle(x, y, color) {\n\t return {\n\t x: x,\n\t y: y,\n\t alpha: 1,\n\t color: color,\n\t velocity: {\n\t x: -1 + Math.random() * 2,\n\t y: -3.5 + Math.random() * 2\n\t }\n\t };\n\t}\n\n\tfunction POWERMODE() {\n\t { // spawn particles\n\t var caret = getCaret();\n\t var numParticles = 5 + Math.round(Math.random() * 10);\n\t while (numParticles--) {\n\t particles[particlePointer] = createParticle(caret.x, caret.y, caret.color);\n\t particlePointer = (particlePointer + 1) % 500;\n\t }\n\t }\n\t { // shake screen\n\t if (POWERMODE.shake) {\n\t var intensity = 1 + 2 * Math.random();\n\t var x = intensity * (Math.random() > 0.5 ? -1 : 1);\n\t var y = intensity * (Math.random() > 0.5 ? -1 : 1);\n\t document.body.style.marginLeft = x + 'px';\n\t document.body.style.marginTop = y + 'px';\n\t setTimeout(function() {\n\t document.body.style.marginLeft = '';\n\t document.body.style.marginTop = '';\n\t }, 75);\n\t }\n\t }\n\t if(!rendering){\n\t requestAnimationFrame(loop);\n\t }\n\t};\n\tPOWERMODE.colorful = false;\n\n\tfunction loop() {\n\t rendering = true;\n\t context.clearRect(0, 0, canvas.width, canvas.height);\n\t var rendered = false;\n\t var rect = canvas.getBoundingClientRect();\n\t for (var i = 0; i < particles.length; ++i) {\n\t var particle = particles[i];\n\t if (particle.alpha <= 0.1) continue;\n\t particle.velocity.y += 0.075;\n\t particle.x += particle.velocity.x;\n\t particle.y += particle.velocity.y;\n\t particle.alpha *= 0.96;\n\t context.globalAlpha = particle.alpha;\n\t context.fillStyle = particle.color;\n\t context.fillRect(\n\t Math.round(particle.x - 1.5) - rect.left,\n\t Math.round(particle.y - 1.5) - rect.top,\n\t 3, 3\n\t );\n\t rendered = true;\n\t }\n\t if(rendered){\n\t requestAnimationFrame(loop);\n\t }else{\n\t rendering = false;\n\t }\n\t}\n\n\tmodule.exports = POWERMODE;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t/* jshint browser: true */\n\n\t(function () {\n\n\t// The properties that we copy into a mirrored div.\n\t// Note that some browsers, such as Firefox,\n\t// do not concatenate properties, i.e. padding-top, bottom etc. -> padding,\n\t// so we have to do every single property specifically.\n\tvar properties = [\n\t 'direction', // RTL support\n\t 'boxSizing',\n\t 'width', // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\n\t 'height',\n\t 'overflowX',\n\t 'overflowY', // copy the scrollbar for IE\n\n\t 'borderTopWidth',\n\t 'borderRightWidth',\n\t 'borderBottomWidth',\n\t 'borderLeftWidth',\n\t 'borderStyle',\n\n\t 'paddingTop',\n\t 'paddingRight',\n\t 'paddingBottom',\n\t 'paddingLeft',\n\n\t // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n\t 'fontStyle',\n\t 'fontVariant',\n\t 'fontWeight',\n\t 'fontStretch',\n\t 'fontSize',\n\t 'fontSizeAdjust',\n\t 'lineHeight',\n\t 'fontFamily',\n\n\t 'textAlign',\n\t 'textTransform',\n\t 'textIndent',\n\t 'textDecoration', // might not make a difference, but better be safe\n\n\t 'letterSpacing',\n\t 'wordSpacing',\n\n\t 'tabSize',\n\t 'MozTabSize'\n\n\t];\n\n\tvar isFirefox = window.mozInnerScreenX != null;\n\n\tfunction getCaretCoordinates(element, position, options) {\n\n\t var debug = options && options.debug || false;\n\t if (debug) {\n\t var el = document.querySelector('#input-textarea-caret-position-mirror-div');\n\t if ( el ) { el.parentNode.removeChild(el); }\n\t }\n\n\t // mirrored div\n\t var div = document.createElement('div');\n\t div.id = 'input-textarea-caret-position-mirror-div';\n\t document.body.appendChild(div);\n\n\t var style = div.style;\n\t var computed = window.getComputedStyle? getComputedStyle(element) : element.currentStyle; // currentStyle for IE < 9\n\n\t // default textarea styles\n\t style.whiteSpace = 'pre-wrap';\n\t if (element.nodeName !== 'INPUT')\n\t style.wordWrap = 'break-word'; // only for textarea-s\n\n\t // position off-screen\n\t style.position = 'absolute'; // required to return coordinates properly\n\t if (!debug)\n\t style.visibility = 'hidden'; // not 'display: none' because we want rendering\n\n\t // transfer the element's properties to the div\n\t properties.forEach(function (prop) {\n\t style[prop] = computed[prop];\n\t });\n\n\t if (isFirefox) {\n\t // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n\t if (element.scrollHeight > parseInt(computed.height))\n\t style.overflowY = 'scroll';\n\t } else {\n\t style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n\t }\n\n\t div.textContent = element.value.substring(0, position);\n\t // the second special handling for input type=\"text\" vs textarea: spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n\t if (element.nodeName === 'INPUT')\n\t div.textContent = div.textContent.replace(/\\s/g, \"\\u00a0\");\n\n\t var span = document.createElement('span');\n\t // Wrapping must be replicated *exactly*, including when a long word gets\n\t // onto the next line, with whitespace at the end of the line before (#7).\n\t // The *only* reliable way to do that is to copy the *entire* rest of the\n\t // textarea's content into the created at the caret position.\n\t // for inputs, just '.' would be enough, but why bother?\n\t span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\n\t div.appendChild(span);\n\n\t var coordinates = {\n\t top: span.offsetTop + parseInt(computed['borderTopWidth']),\n\t left: span.offsetLeft + parseInt(computed['borderLeftWidth'])\n\t };\n\n\t if (debug) {\n\t span.style.backgroundColor = '#aaa';\n\t } else {\n\t document.body.removeChild(div);\n\t }\n\n\t return coordinates;\n\t}\n\n\tif (typeof module != \"undefined\" && typeof module.exports != \"undefined\") {\n\t module.exports = getCaretCoordinates;\n\t} else {\n\t window.getCaretCoordinates = getCaretCoordinates;\n\t}\n\n\t}());\n\n/***/ })\n/******/ ])\n});\n;","function imgError(ele, type) {\n switch (type) {\n case 1:\n ele.src = 'https://view.moezx.cc/images/2017/12/30/Transparent_Akkarin.th.jpg';\n break;\n case 2:\n ele.src = 'https://sdn.geekzu.org/avatar/?s=80&d=mm&r=g';\n break;\n default:\n ele.src = 'https://view.moezx.cc/images/2018/05/13/image-404.png';\n }\n}\nfunction cmt_showPopup(ele) {\n let popup = ele.querySelector(\"#thePopup\");\n popup.classList.add(\"show\");\n ele.querySelector(\"input\").onblur = () => {\n popup.classList.remove(\"show\");\n }\n}\n/*视频feature*/\nfunction coverVideo() {\n let video = document.getElementById(\"coverVideo\"),\n btn_playControl = document.getElementById(\"cv-pc\");\n\n if (video.paused) {\n video.play();\n try {\n btn_playControl.innerHTML = '';\n } catch { };\n //console.info('play:coverVideo()');\n } else {\n video.pause();\n try {\n btn_playControl.innerHTML = '';\n } catch { };\n //console.info('pause:coverVideo()');\n }\n}\nfunction coverVideoMute() {\n const video = document.getElementById(\"coverVideo\")\n const btn_volumeControl = document.getElementById(\"cv-vc\");\n if (video.muted) {\n video.muted = false\n btn_volumeControl.innerHTML = ''\n } else {\n video.muted = true\n btn_volumeControl.innerHTML = ''\n }\n}\nfunction killCoverVideo() {\n var video = document.getElementById(\"coverVideo\");\n var btn_playControl = document.getElementById(\"cv-pc\");\n\n if (video.paused) {\n //console.info('none:killCoverVideo()');\n } else {\n video.pause();\n try {\n btn_playControl.innerHTML = '';\n } catch (e) { };\n //console.info('pause:killCoverVideo()');\n }\n}\n\nfunction mail_me() {\n window.open(\"mailto:\" + mashiro_option.email_name + \"@\" + mashiro_option.email_domain);\n}\n/* 首页下拉箭头 */\nfunction headertop_down() {\n let coverOffset = document.getElementById(\"content\").getBoundingClientRect().top + window.pageYOffset;\n window.scrollTo({\n top: coverOffset,\n behavior: \"smooth\"\n });\n}\nwindow.imgError = imgError\nwindow.cmt_showPopup = cmt_showPopup\nwindow.coverVideo = coverVideo\nwindow.coverVideoMute = coverVideoMute\nwindow.killCoverVideo = killCoverVideo\nwindow.mail_me = mail_me\nwindow.headertop_down = headertop_down","/**\n * CIE LAB space model\n *\n * @module color-space/lab\n */\n'use strict'\n\nvar xyz = require('./xyz');\n\nmodule.exports = {\n\tname: 'lab',\n\tmin: [0,-100,-100],\n\tmax: [100,100,100],\n\tchannel: ['lightness', 'a', 'b'],\n\talias: ['LAB', 'cielab'],\n\n\txyz: function(lab) {\n\t\tvar l = lab[0],\n\t\t\t\ta = lab[1],\n\t\t\t\tb = lab[2],\n\t\t\t\tx, y, z, y2;\n\n\t\tif (l <= 8) {\n\t\t\ty = (l * 100) / 903.3;\n\t\t\ty2 = (7.787 * (y / 100)) + (16 / 116);\n\t\t} else {\n\t\t\ty = 100 * Math.pow((l + 16) / 116, 3);\n\t\t\ty2 = Math.pow(y / 100, 1/3);\n\t\t}\n\n\t\tx = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);\n\n\t\tz = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);\n\n\t\treturn [x, y, z];\n\t}\n};\n\n\n//extend xyz\nxyz.lab = function(xyz){\n\tvar x = xyz[0],\n\t\t\ty = xyz[1],\n\t\t\tz = xyz[2],\n\t\t\tl, a, b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n","/**\n * RGB space.\n *\n * @module color-space/rgb\n */\n'use strict'\n\nmodule.exports = {\n\tname: 'rgb',\n\tmin: [0,0,0],\n\tmax: [255,255,255],\n\tchannel: ['red', 'green', 'blue'],\n\talias: ['RGB']\n};\n","/**\n * CIE XYZ\n *\n * @module color-space/xyz\n */\n'use strict'\n\nvar rgb = require('./rgb');\n\nvar xyz = {\n\tname: 'xyz',\n\tmin: [0,0,0],\n\tchannel: ['X','Y','Z'],\n\talias: ['XYZ', 'ciexyz', 'cie1931']\n};\n\n\n/**\n * Whitepoint reference values with observer/illuminant\n *\n * http://en.wikipedia.org/wiki/Standard_illuminant\n */\nxyz.whitepoint = {\n\t//1931 2°\n\t2: {\n\t\t//incadescent\n\t\tA:[109.85, 100, 35.585],\n\t\t// B:[],\n\t\tC: [98.074, 100, 118.232],\n\t\tD50: [96.422, 100, 82.521],\n\t\tD55: [95.682, 100, 92.149],\n\t\t//daylight\n\t\tD65: [95.045592705167, 100, 108.9057750759878],\n\t\tD75: [94.972, 100, 122.638],\n\t\t//flourescent\n\t\t// F1: [],\n\t\tF2: [99.187, 100, 67.395],\n\t\t// F3: [],\n\t\t// F4: [],\n\t\t// F5: [],\n\t\t// F6:[],\n\t\tF7: [95.044, 100, 108.755],\n\t\t// F8: [],\n\t\t// F9: [],\n\t\t// F10: [],\n\t\tF11: [100.966, 100, 64.370],\n\t\t// F12: [],\n\t\tE: [100,100,100]\n\t},\n\n\t//1964 10°\n\t10: {\n\t\t//incadescent\n\t\tA:[111.144, 100, 35.200],\n\t\tC: [97.285, 100, 116.145],\n\t\tD50: [96.720, 100, 81.427],\n\t\tD55: [95.799, 100, 90.926],\n\t\t//daylight\n\t\tD65: [94.811, 100, 107.304],\n\t\tD75: [94.416, 100, 120.641],\n\t\t//flourescent\n\t\tF2: [103.280, 100, 69.026],\n\t\tF7: [95.792, 100, 107.687],\n\t\tF11: [103.866, 100, 65.627],\n\t\tE: [100,100,100]\n\t}\n};\n\n\n/**\n * Top values are the whitepoint’s top values, default are D65\n */\nxyz.max = xyz.whitepoint[2].D65;\n\n\n/**\n * Transform xyz to rgb\n *\n * @param {Array} xyz Array of xyz values\n *\n * @return {Array} RGB values\n */\nxyz.rgb = function (_xyz, white) {\n\t//FIXME: make sure we have to divide like this. Probably we have to replace matrix as well then\n\twhite = white || xyz.whitepoint[2].E;\n\n\tvar x = _xyz[0] / white[0],\n\t\ty = _xyz[1] / white[1],\n\t\tz = _xyz[2] / white[2],\n\t\tr, g, b;\n\n\t// assume sRGB\n\t// http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\tr = (x * 3.240969941904521) + (y * -1.537383177570093) + (z * -0.498610760293);\n\tg = (x * -0.96924363628087) + (y * 1.87596750150772) + (z * 0.041555057407175);\n\tb = (x * 0.055630079696993) + (y * -0.20397695888897) + (z * 1.056971514242878);\n\n\tr = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r = (r * 12.92);\n\n\tg = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g = (g * 12.92);\n\n\tb = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b = (b * 12.92);\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n}\n\n\n\n/**\n * RGB to XYZ\n *\n * @param {Array} rgb RGB channels\n *\n * @return {Array} XYZ channels\n */\nrgb.xyz = function(rgb, white) {\n\tvar r = rgb[0] / 255,\n\t\t\tg = rgb[1] / 255,\n\t\t\tb = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.41239079926595) + (g * 0.35758433938387) + (b * 0.18048078840183);\n\tvar y = (r * 0.21263900587151) + (g * 0.71516867876775) + (b * 0.072192315360733);\n\tvar z = (r * 0.019330818715591) + (g * 0.11919477979462) + (b * 0.95053215224966);\n\n\twhite = white || xyz.whitepoint[2].E;\n\n\treturn [x * white[0], y * white[1], z * white[2]];\n};\n\n\n\nmodule.exports = xyz;\n","/*! loadCSS. [c]2020 Filament Group, Inc. MIT License */\n(function(w){\n\t\"use strict\";\n\t/* exported loadCSS */\n\tvar loadCSS = function( href, before, media, attributes ){\n\t\t// Arguments explained:\n\t\t// `href` [REQUIRED] is the URL for your CSS file.\n\t\t// `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet before\n\t\t// By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document.\n\t\t// `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all'\n\t\t// `attributes` [OPTIONAL] is the Object of attribute name/attribute value pairs to set on the stylesheet's DOM Element.\n\t\tvar doc = w.document;\n\t\tvar ss = doc.createElement( \"link\" );\n\t\tvar ref;\n\t\tif( before ){\n\t\t\tref = before;\n\t\t}\n\t\telse {\n\t\t\tvar refs = ( doc.body || doc.getElementsByTagName( \"head\" )[ 0 ] ).childNodes;\n\t\t\tref = refs[ refs.length - 1];\n\t\t}\n\n\t\tvar sheets = doc.styleSheets;\n\t\t// Set any of the provided attributes to the stylesheet DOM Element.\n\t\tif( attributes ){\n\t\t\tfor( var attributeName in attributes ){\n\t\t\t\tif( attributes.hasOwnProperty( attributeName ) ){\n\t\t\t\t\tss.setAttribute( attributeName, attributes[attributeName] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tss.rel = \"stylesheet\";\n\t\tss.href = href;\n\t\t// temporarily set media to something inapplicable to ensure it'll fetch without blocking render\n\t\tss.media = \"only x\";\n\n\t\t// wait until body is defined before injecting link. This ensures a non-blocking load in IE11.\n\t\tfunction ready( cb ){\n\t\t\tif( doc.body ){\n\t\t\t\treturn cb();\n\t\t\t}\n\t\t\tsetTimeout(function(){\n\t\t\t\tready( cb );\n\t\t\t});\n\t\t}\n\t\t// Inject link\n\t\t\t// Note: the ternary preserves the existing behavior of \"before\" argument, but we could choose to change the argument to \"after\" in a later release and standardize on ref.nextSibling for all refs\n\t\t\t// Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/\n\t\tready( function(){\n\t\t\tref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) );\n\t\t});\n\t\t// A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet.\n\t\tvar onloadcssdefined = function( cb ){\n\t\t\tvar resolvedHref = ss.href;\n\t\t\tvar i = sheets.length;\n\t\t\twhile( i-- ){\n\t\t\t\tif( sheets[ i ].href === resolvedHref ){\n\t\t\t\t\treturn cb();\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetTimeout(function() {\n\t\t\t\tonloadcssdefined( cb );\n\t\t\t});\n\t\t};\n\n\t\tfunction loadCB(){\n\t\t\tif( ss.addEventListener ){\n\t\t\t\tss.removeEventListener( \"load\", loadCB );\n\t\t\t}\n\t\t\tss.media = media || \"all\";\n\t\t}\n\n\t\t// once loaded, set link's media back to `all` so that the stylesheet applies once it loads\n\t\tif( ss.addEventListener ){\n\t\t\tss.addEventListener( \"load\", loadCB);\n\t\t}\n\t\tss.onloadcssdefined = onloadcssdefined;\n\t\tonloadcssdefined( loadCB );\n\t\treturn ss;\n\t};\n\t// commonjs\n\tif( typeof exports !== \"undefined\" ){\n\t\texports.loadCSS = loadCSS;\n\t}\n\telse {\n\t\tw.loadCSS = loadCSS;\n\t}\n}( typeof global !== \"undefined\" ? global : this ));\n","'use strict'\n\nvar messageIds = 0\n\nfunction onMessage (self, e) {\n var message = e.data\n if (!Array.isArray(message) || message.length < 2) {\n // Ignore - this message is not for us.\n return\n }\n var messageId = message[0]\n var error = message[1]\n var result = message[2]\n\n var callback = self._callbacks[messageId]\n\n if (!callback) {\n // Ignore - user might have created multiple PromiseWorkers.\n // This message is not for us.\n return\n }\n\n delete self._callbacks[messageId]\n callback(error, result)\n}\n\nfunction PromiseWorker (worker) {\n var self = this\n self._worker = worker\n self._callbacks = {}\n\n worker.addEventListener('message', function (e) {\n onMessage(self, e)\n })\n}\n\nPromiseWorker.prototype.postMessage = function (userMessage) {\n var self = this\n var messageId = messageIds++\n\n var messageToSend = [messageId, userMessage]\n\n return new Promise(function (resolve, reject) {\n self._callbacks[messageId] = function (error, result) {\n if (error) {\n return reject(new Error(error.message))\n }\n resolve(result)\n }\n\n /* istanbul ignore if */\n if (typeof self._worker.controller !== 'undefined') {\n // service worker, use MessageChannels because e.source is broken in Chrome < 51:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=543198\n var channel = new MessageChannel()\n channel.port1.onmessage = function (e) {\n onMessage(self, e)\n }\n self._worker.controller.postMessage(messageToSend, [channel.port2])\n } else {\n // web worker\n self._worker.postMessage(messageToSend)\n }\n })\n}\n\nmodule.exports = PromiseWorker\n","/**\n * default option\n */\nconst defaults = {\n src: \"data-src\",\n srcset: \"data-srcset\",\n selector: \".lazyload\",\n root: null,\n rootMargin: \"0px\",\n threshold: 0\n};\n/**\n * @class LazyLoad\n */\nexport default class LazyLoad {\n constructor(elms, options) {\n this.obs = null;\n this.doLoad = (element) => {\n const { settings } = this;\n const src = element.getAttribute(settings.src);\n const srcset = element.getAttribute(settings.srcset);\n const tagName = element.tagName.toLowerCase();\n if (tagName === 'video') {\n if (src) {\n element.src = src;\n }\n }\n else if (tagName === 'img') {\n if (src) {\n element.src = src;\n }\n if (srcset) {\n //@ts-ignore\n element.srcset = srcset;\n }\n }\n else {\n element.style.backgroundImage = \"url('\" + src + \"')\";\n }\n };\n this.settings = Object.assign(Object.assign({}, defaults), options);\n this.elms = elms || document.querySelectorAll(this.settings.selector);\n this.init();\n }\n init() {\n /* Without observers load everything and bail out early. */\n if (!IntersectionObserver) {\n this.load();\n return;\n }\n const self = this;\n this.obs = new IntersectionObserver(function (entries) {\n Array.prototype.forEach.call(entries, function (entry) {\n if (entry.isIntersecting) {\n self.obs.unobserve(entry.target);\n self.doLoad(entry.target);\n }\n });\n }, {\n root: this.settings.root,\n rootMargin: this.settings.rootMargin,\n threshold: [this.settings.threshold]\n });\n this.elms.forEach((image) => {\n self.obs.observe(image);\n });\n }\n loadAndDestroy() {\n if (!this.settings) {\n return;\n }\n this.load();\n this.destroy();\n }\n load() {\n if (!this.settings) {\n return;\n }\n const { settings } = this;\n Array.prototype.forEach.call(this.elms, this.doLoad);\n }\n /**\n * Destroy Lazyload Instance\n * @returns\n */\n destroy() {\n if (!this.settings) {\n return;\n }\n this.obs.disconnect();\n this.settings = null;\n }\n}\nexport const lazyload = (images, options) => new LazyLoad(images, options);\n","export function clearButterbar() {\n const butterBar = document.getElementsByClassName(\"butterBar\");\n if (butterBar.length > 0) {\n for (let i = 0; i < butterBar.length; i++) {\n butterBar[i].remove();\n }\n }\n}\nexport function createButterbar(message, keep) {\n clearButterbar();\n /* document.body.insertAdjacentHTML('beforeend', '

' + message + '

');\n */\n const div = document.createElement('div');\n const p = document.createElement('p');\n div.classList.add('butterBar', 'butterBar--center');\n p.classList.add('butterBar-message');\n p.innerHTML = message;\n div.appendChild(p);\n document.body.appendChild(div);\n if (keep !== true)\n setTimeout(() => { clearButterbar(); }, typeof keep == 'number' ? keep : 6000);\n return div;\n}\n","let readyFunctionList = [];\n/**\n * 传入的函数同时间只能运行一个\n * @param func 要包装的函数\n * @returns 包装后的函数\n */\nexport const onlyOnceATime = (func) => {\n let isRunning = false;\n return (...args) => {\n if (!isRunning) {\n isRunning = true;\n try {\n const result = func(...args);\n if (result instanceof Promise) {\n result.finally(() => isRunning = false);\n }\n else {\n isRunning = false;\n }\n return result;\n }\n catch (e) {\n console.warn(e);\n isRunning = false;\n }\n }\n };\n};\nconst whileReady = () => {\n document.removeEventListener('DOMContentLoaded', whileReady);\n for (const fn of readyFunctionList) {\n fn();\n }\n readyFunctionList = [];\n};\n/**\n * 延迟函数到DOM树加载完成后执行\n * @seealso https://developer.mozilla.org/zh-CN/docs/Web/API/Document/readyState\n * @param fn 要延迟执行的函数\n */\nexport const ready = function (fn) {\n //interactive:等价于事件DOMContentLoaded\n //complete:等价于事件load\n if (document.readyState !== 'loading') {\n return fn();\n }\n if (readyFunctionList.length == 0) {\n document.addEventListener('DOMContentLoaded', whileReady, false);\n }\n readyFunctionList.push(fn);\n};\n/* export const max = (a: number, b: number) => a > b ? a : b\n */ export const min = (a, b) => a < b ? a : b;\n/**\n * 获取文件名的主名部分(即去除扩展名)\n * @param fileName 文件名\n * @returns 主名\n */\nexport const getFileNameMain = (fileName) => fileName.replace(/\\.\\w+$/, '');\nexport function slideToggle(el, duration = 1000, mode = '', callback) {\n let dom = el;\n dom.status = dom.status || getComputedStyle(dom, null)['display'];\n const flag = dom.status != 'none';\n if ((flag == true && mode == \"show\") || (flag == false && mode == \"hide\"))\n return;\n dom.status = flag ? 'none' : 'block';\n dom.style.transition = 'height ' + duration / 1000 + 's';\n dom.style.overflow = 'hidden';\n clearTimeout(dom.tagTimer);\n dom.tagTimer = dom.tagTimer || null;\n dom.style.display = 'block';\n dom.tagHeight = dom.tagHeight || dom.clientHeight + 'px';\n dom.style.display = '';\n dom.style.height = flag ? dom.tagHeight : \"0px\";\n setTimeout(() => {\n dom.style.height = flag ? \"0px\" : dom.tagHeight;\n }, 0);\n dom.tagTimer = setTimeout(() => {\n dom.style.display = flag ? 'none' : 'block';\n dom.style.transition = '';\n dom.style.overflow = '';\n dom.style.height = '';\n dom.status = dom.tagHeight = null;\n }, duration);\n if (callback)\n callback();\n}\nexport function buildAPI(apiPath, params = {}, nonce = true) {\n const path = new URL(apiPath);\n const { searchParams } = path;\n for (const [key, value] of Object.entries(params)) {\n searchParams.set(key, value);\n }\n if (nonce)\n searchParams.set(\"_wpnonce\", Poi.nonce);\n return path.toString();\n}\n","const mediaQuery = window.matchMedia('(prefers-color-scheme:dark)');\nlet inDarkMode = false;\nexport const isInDarkMode = () => inDarkMode;\nfunction informDarkModeChange(nextValue) {\n if (nextValue !== inDarkMode) {\n document.dispatchEvent(new CustomEvent(\"darkmode\", { detail: nextValue }));\n inDarkMode = nextValue;\n }\n}\nfunction mediaQueryCallback() {\n const dark = localStorage.getItem(\"dark\");\n //仅在深色模式不是用户主动设置时触发\n if (!dark) {\n if (mediaQuery.matches && mashiro_option.darkmode) {\n turnOnDarkMode();\n }\n else {\n turnOffDarkMode();\n }\n }\n}\nif (mashiro_option.dm_strategy === 'client') {\n mediaQuery.removeEventListener ? mediaQuery.removeEventListener('change', mediaQueryCallback) : mediaQuery.removeListener(mediaQueryCallback);\n mediaQuery.addEventListener ? mediaQuery.addEventListener('change', mediaQueryCallback) : mediaQuery.addListener(mediaQueryCallback);\n}\nfunction saveUserSetting(value) {\n if (value == ifDarkmodeShouldOn()) {\n //用户设置与自动切换深色模式判断一致时,恢复自动切换\n localStorage.removeItem('dark');\n }\n else {\n if (value == true) {\n localStorage.setItem(\"dark\", \"1\");\n }\n else {\n localStorage.setItem(\"dark\", \"0\");\n }\n }\n //localStorage.setItem(\"bgImgSetting\", \"white-bg\");\n}\nexport function turnOnDarkMode(userTriggered) {\n document.documentElement.style.backgroundColor = \"#333\";\n document.getElementsByClassName(\"site-content\")[0].style.backgroundColor = \"#333\";\n document.body.classList.add(\"dark\");\n if (userTriggered)\n saveUserSetting(true);\n informDarkModeChange(true);\n}\nexport function turnOffDarkMode(userTriggered) {\n document.documentElement.style.backgroundColor = \"\";\n document.getElementsByClassName(\"site-content\")[0].style.backgroundColor = \"rgba(255, 255, 255, .8)\";\n document.body.classList.remove(\"dark\");\n document.body.classList.remove(\"dynamic\");\n informDarkModeChange(false);\n if (userTriggered) {\n saveUserSetting(false);\n //document.body.style.backgroundImage = `url(${mashiro_option.skin_bg0})`;\n }\n}\n/**\n * 检查是否在深色模式时间\n * @returns {boolean}\n */\nfunction checkTime() {\n const today = new Date();\n return (today.getHours() > 21 || today.getHours() < 7);\n}\nexport function ifDarkmodeShouldOn() {\n switch (mashiro_option.dm_strategy) {\n case 'client':\n return mediaQuery.matches;\n case 'eien':\n return true;\n default: /**case time */\n return checkTime();\n }\n}\nexport function checkDarkModeSetting() {\n const dark = localStorage.getItem(\"dark\");\n if (!dark) {\n //无用户设置时,自动切换深色模式\n if (ifDarkmodeShouldOn() && mashiro_option.darkmode) {\n turnOnDarkMode();\n }\n else {\n turnOffDarkMode();\n }\n }\n else {\n if (dark == '1') {\n turnOnDarkMode();\n }\n else {\n turnOffDarkMode();\n }\n }\n}\n/* function mobile_dark_light() {\n if (document.body.classList.contains(\"dark\")) {\n document.documentElement.style.background = \"unset\";\n document.body.classList.remove(\"dark\");\n document.getElementById(\"moblieDarkLight\").innerHTML = '';\n setCookie(\"dark\", \"0\", 0.33);\n } else {\n document.documentElement.style.background = \"#333333\";\n document.getElementById(\"moblieDarkLight\").innerHTML = '';\n document.body.classList.add(\"dark\");\n setCookie(\"dark\", \"1\", 0.33);\n }\n} */ \n","/**\n *\n * @param key 这段句子的中文表述(默认语言)\n */\n//@ts-ignore\nexport const __ = (defaultStr) => (window._sakurairoi18n && _sakurairoi18n[defaultStr]) || defaultStr;\n/**\n *\n * 占位符格式 {index} ex.{0}\n * @param defaultStr 这段句子的中文表述(默认语言)\n * @param replacements 句子中占位符的替代元素\n */\nexport const _$ = (defaultStr, ...replacements) => {\n let template = __(defaultStr);\n for (const index in replacements) {\n template = template.replace('{' + index + '}', replacements[index]);\n }\n return template;\n};\nexport const sakurairoGlobal = {\n opt: {},\n /* _sys_call:sys_call\n */ \n};\n/**\n * 在sakurairoGlobal注册一个对象\n * @param key\n * @param value\n * @returns\n */\nexport const registerOnGlobal = (key, value) => Object.defineProperty(sakurairoGlobal, key, {\n value: value,\n writable: false,\n enumerable: true,\n});\nif ('_sakurairo' in window) {\n //@ts-ignore\n const _sakurairo = window._sakurairo;\n if ('opt' in _sakurairo) {\n sakurairoGlobal.opt = _sakurairo.opt;\n }\n}\n//@ts-ignore\nwindow._sakurairo = sakurairoGlobal;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"8\":\"lg-plugin-0\",\"238\":\"lg-plugin-1\",\"359\":\"lg-plugin-5\",\"400\":\"lg-plugin-4\",\"515\":\"lg-plugin-6\",\"568\":\"lg-plugin-10\",\"642\":\"lg-plugin-8\",\"649\":\"lg-plugin-3\",\"719\":\"lg-plugin-11\",\"725\":\"lg-plugin-9\",\"846\":\"lg-plugin-2\",\"893\":\"lg-plugin-7\"}[chunkId] || chunkId) + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksakurairo_scripts\"] = self[\"webpackChunksakurairo_scripts\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","/**\n * Work around Safari 14 IndexedDB open bug.\n *\n * Safari has a horrible bug where IDB requests can hang while the browser is starting up. https://bugs.webkit.org/show_bug.cgi?id=226547\n * The only solution is to keep nudging it until it's awake.\n */\nfunction idbReady() {\n var isSafari = !navigator.userAgentData &&\n /Safari\\//.test(navigator.userAgent) &&\n !/Chrom(e|ium)\\//.test(navigator.userAgent);\n // No point putting other browsers or older versions of Safari through this mess.\n if (!isSafari || !indexedDB.databases)\n return Promise.resolve();\n var intervalId;\n return new Promise(function (resolve) {\n var tryIdb = function () { return indexedDB.databases().finally(resolve); };\n intervalId = setInterval(tryIdb, 100);\n tryIdb();\n }).finally(function () { return clearInterval(intervalId); });\n}\n\nexport default idbReady;\n","import safariFix from 'safari-14-idb-fix';\n\nfunction promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n // @ts-ignore - file size hacks\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n // @ts-ignore - file size hacks\n request.onabort = request.onerror = () => reject(request.error);\n });\n}\nfunction createStore(dbName, storeName) {\n const dbp = safariFix().then(() => {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n return promisifyRequest(request);\n });\n return (txMode, callback) => dbp.then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName)));\n}\nlet defaultGetStoreFunc;\nfunction defaultGetStore() {\n if (!defaultGetStoreFunc) {\n defaultGetStoreFunc = createStore('keyval-store', 'keyval');\n }\n return defaultGetStoreFunc;\n}\n/**\n * Get a value by its key.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction get(key, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => promisifyRequest(store.get(key)));\n}\n/**\n * Set a value with a key.\n *\n * @param key\n * @param value\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction set(key, value, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Set multiple values at once. This is faster than calling set() multiple times.\n * It's also atomic – if one of the pairs can't be added, none will be added.\n *\n * @param entries Array of entries, where each entry is an array of `[key, value]`.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction setMany(entries, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n entries.forEach((entry) => store.put(entry[1], entry[0]));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get multiple values by their keys\n *\n * @param keys\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction getMany(keys, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => Promise.all(keys.map((key) => promisifyRequest(store.get(key)))));\n}\n/**\n * Update a value. This lets you see the old value and update it as an atomic operation.\n *\n * @param key\n * @param updater A callback that takes the old value and returns a new value.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction update(key, updater, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => \n // Need to create the promise manually.\n // If I try to chain promises, the transaction closes in browsers\n // that use a promise polyfill (IE10/11).\n new Promise((resolve, reject) => {\n store.get(key).onsuccess = function () {\n try {\n store.put(updater(this.result), key);\n resolve(promisifyRequest(store.transaction));\n }\n catch (err) {\n reject(err);\n }\n };\n }));\n}\n/**\n * Delete a particular key from the store.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction del(key, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Delete multiple keys at once.\n *\n * @param keys List of keys to delete.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction delMany(keys, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n keys.forEach((key) => store.delete(key));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Clear all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction clear(customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.clear();\n return promisifyRequest(store.transaction);\n });\n}\nfunction eachCursor(customStore, callback) {\n return customStore('readonly', (store) => {\n // This would be store.getAllKeys(), but it isn't supported by Edge or Safari.\n // And openKeyCursor isn't supported by Safari.\n store.openCursor().onsuccess = function () {\n if (!this.result)\n return;\n callback(this.result);\n this.result.continue();\n };\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get all keys in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction keys(customStore = defaultGetStore()) {\n const items = [];\n return eachCursor(customStore, (cursor) => items.push(cursor.key)).then(() => items);\n}\n/**\n * Get all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction values(customStore = defaultGetStore()) {\n const items = [];\n return eachCursor(customStore, (cursor) => items.push(cursor.value)).then(() => items);\n}\n/**\n * Get all entries in the store. Each entry is an array of `[key, value]`.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction entries(customStore = defaultGetStore()) {\n const items = [];\n return eachCursor(customStore, (cursor) => items.push([cursor.key, cursor.value])).then(() => items);\n}\n\nexport { clear, createStore, del, delMany, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n","import { createStore, promisifyRequest } from 'idb-keyval';\nconst store = createStore('sakurairo', 'cache');\nconst get = (key) => store('readonly', (store) => promisifyRequest(store.get(key)));\nconst set = (key, value) => store('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n});\nconst del = (key) => store('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n});\nexport { get, set, del };\n","var _a;\n/**\n * Cookie\n * from github.com/mirai-mamori/Sakurairo ./js/sakura-app.js ,commit 71f5a0c\n * @license GPL-v2\n * @date 2021.03\n */\nlet _version_ctrl = (_a = mashiro_option.cookie_version_control) !== null && _a !== void 0 ? _a : '';\nexport function setCookie(key, value, days) {\n const expires = days ? \"; expires=\" + new Date(Date.now() + (days * 24 * 60 * 60 * 1000)).toUTCString() : \"\";\n document.cookie = key + _version_ctrl + \"=\" + (value || \"\") + expires + \"; path=/\";\n}\nexport function getCookie(key) {\n const nameEQ = key + _version_ctrl + \"=\", ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) == ' ')\n c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) == 0)\n return c.substring(nameEQ.length, c.length);\n }\n return null;\n}\nexport function removeCookie(key) {\n document.cookie = key + _version_ctrl + '=; Max-Age=-99999999;';\n}\n","const UA = navigator.userAgent;\n/**\n * 关于AppleWebkit与Safari版本的对应,参考:\n * @seealso https://gist.github.com/jakub-g/48a16195280a7023f570ffa5c8a4eae5\n * @seealso https://en.wikipedia.org/wiki/Safari_version_history\n *\n * Opera浏览器自15以来更换了User Agent\n * OPR/*\n */\nconst uaMatches = Array.from(UA.matchAll(/(Firefox|Chrome|AppleWebkit|OPR|Edg)\\/(\\d+)/ig));\nimport { setCookie } from '../common/cookie';\nfunction setAcceptImage() {\n const acceptList = ['image/*,*/*;q=0.8'];\n if (isSupported({ Chrome: 59, OPR: 46, Firefox: 3, Edg: 79, AppleWebKit: 600 /**Safari 8 */ })) {\n acceptList.push('image/apng');\n if (isSupported({ Chrome: 32, OPR: 19, Firefox: 65, Edg: 18, AppleWebKit: 605 /**Safari 14 */ })) {\n setCookie('su_webp', '1', 114514);\n acceptList.push('image/webp');\n if (isSupported({ Chrome: 85, OPR: 71, Firefox: 93 })) {\n acceptList.push('image/avif');\n }\n }\n }\n return acceptList.reverse().join(',');\n}\nexport function isSupported(checkList) {\n for (const [_, name, version] of uaMatches) {\n if (parseFloat(version) >= checkList[name]) {\n return true;\n }\n }\n return false;\n}\nexport const Accept_Image = setAcceptImage();\n","import { get, set, del } from './cache';\nimport { Accept_Image } from './compatibility';\nimport { __ } from './sakurairo_global';\nlet bgn = 1;\nlet blob_url = '';\nexport async function nextBG() {\n changeCoverBG(await getCoverPath(true));\n bgn++;\n}\nexport async function preBG() {\n bgn--;\n changeCoverBG(await getCoverPath(true));\n}\nconst centerbg = document.querySelector(\".centerbg\");\n/**\n * 更改封面背景\n */\nconst changeCoverBG = mashiro_option.site_bg_as_cover ? (url) => {\n document.body.style.backgroundImage = `url(${url})`;\n document.dispatchEvent(new CustomEvent('coverBG_change', { detail: url }));\n} :\n centerbg ? (url) => {\n centerbg.style.backgroundImage = `url(${url})`;\n document.dispatchEvent(new CustomEvent('coverBG_change', { detail: url }));\n } : () => { };\nfunction parseCSSUrl(cssText) {\n const result = cssText === null || cssText === void 0 ? void 0 : cssText.match(/^url\\((.+)\\)$/);\n if (result) {\n return result[1];\n }\n}\n/**\n * 返回当前封面背景的URL\n */\nexport const getCurrentBG = mashiro_option.site_bg_as_cover ? () => parseCSSUrl(document.body.style.backgroundImage)\n : () => { var _a; return parseCSSUrl((_a = document.querySelector(\".centerbg\")) === null || _a === void 0 ? void 0 : _a.style.backgroundImage); };\nfunction getAPIPath(useBGN = false) {\n const cover_api_url = new URL(mashiro_option.cover_api);\n if (document.body.clientWidth < 860 && mashiro_option.random_graphs_mts == true) {\n cover_api_url.searchParams.set('type', 'mobile');\n return cover_api_url.toString() + (useBGN ? \"&\" + bgn : '');\n }\n else {\n return cover_api_url.toString() + (useBGN ? (cover_api_url.search === '' ? \"?\" : '&') + bgn : '');\n }\n}\nexport const getCoverPath = mashiro_option.cache_cover ? (useBGN = false) => get('cover').then(coverBG => {\n if (coverBG && coverBG instanceof ArrayBuffer) {\n cleanBlobUrl();\n blob_url = URL.createObjectURL(new Blob([coverBG]));\n return blob_url;\n }\n else {\n //fallback\n return getAPIPath(useBGN);\n }\n}).finally(() => {\n fetchAndCache(useBGN);\n})\n : getAPIPath;\nasync function fetchAndCache(useBGN = false) {\n try {\n const resp = await fetch(getAPIPath(useBGN), { headers: { Accept: Accept_Image } });\n if (resp.ok) {\n const buf = await resp.arrayBuffer();\n try {\n set('cover', buf);\n /**\n * @problem Safari暂时不支持indexdb存储blob\n * DataCloneError: Failed to store record in an IDBObjectStore: BlobURLs are not yet supported.\n * @seealso https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/indexeddb-best-practices#keeping_your_app_predictable\n */\n }\n catch (e) {\n //catch: FireFox无痕模式下数据库不允许修改\n /**\n * @problem FireFox无痕模式下数据库不允许修改\n * DOMException: A mutation operation was attempted on a database that did not allow mutations\n * Chrome不会报错\n * 像是火狐的设计 https://wiki.mozilla.org/Private_Browsing#Persistent_Storage\n * 变通方法 https://bugzilla.mozilla.org/show_bug.cgi?id=1639542#c9\n */\n console.warn(e);\n }\n }\n }\n catch (e) {\n if (e instanceof TypeError) {\n console.warn(__('你的封面API好像不支持跨域调用,这种情况下缓存是不会生效的哦'));\n del('cover');\n }\n }\n}\nfunction cleanBlobUrl() {\n URL.revokeObjectURL(blob_url);\n blob_url = '';\n}\nexport async function initCoverBG() {\n if (mashiro_option.site_bg_as_cover) {\n if (centerbg)\n centerbg.style.background = '#0000';\n if (localStorage.getItem('bgImgSetting') !== 'white-bg') {\n return;\n }\n }\n else if (!mashiro_option.land_at_home)\n return; //防止.centerbg在非主页加载图片\n changeCoverBG(await getCoverPath());\n}\n","import { createButterbar } from \"../common/butterbar\";\nimport { __ } from \"./sakurairo_global\";\nconst txt = [\n \"# 商业转载请联系作者获得授权,非商业转载请注明出处。\",\n \"# For commercial use, please contact the author for authorization. For non-commercial use, please indicate the source.\",\n \"# 协议(License):署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)\",\n \"# 作者(Author):\" + mashiro_option.author_name,\n \"# 链接(URL):\" + window.location.href,\n \"# 来源(Source):\" + mashiro_option.site_name,\n];\nfunction setClipboardText(event, selectionTxt) {\n event.preventDefault();\n const htmlData = txt.join('
') + \"

\" + selectionTxt.replace(/\\r\\n/g, \"
\"), textData = txt.join('\\n') + \"\\n\\n\" + selectionTxt.toString().replace(/\\r\\n/g, \"\\n\");\n if (event.clipboardData) {\n event.clipboardData.setData(\"text/html\", htmlData);\n event.clipboardData.setData(\"text/plain\", textData);\n }\n else if (window.clipboardData) {\n //deprecate?\n return window.clipboardData.setData(\"text\", textData);\n }\n}\nfunction copytext(e) {\n const selection = window.getSelection();\n if (selection) {\n const selectionText = selection.toString();\n if (selectionText.length > 30) {\n setClipboardText(e, selectionText);\n createButterbar(__(\"复制成功!\"), 1000);\n }\n }\n}\n/**\n * 添加复制时的版权提示\n */\nexport default function add_copyright() {\n if (mashiro_option.clipboardCopyright) {\n document.body.removeEventListener(\"copy\", copytext);\n document.body.addEventListener(\"copy\", copytext);\n }\n}\n","export default function () {\n const preload = document.getElementById(\"preload\");\n if (preload) {\n if (document.readyState === 'complete')\n return removeScreen(preload);\n window.addEventListener('load', () => {\n removeScreen(preload);\n });\n }\n}\nfunction removeScreen(preload) {\n document.documentElement.style.overflowY = 'unset';\n if (mashiro_option.preload_blur != 0) {\n try {\n preload.animate([\n { filter: \"blur(0px)\", backdropFilter: \"blur(10px)\", opacity: 1 },\n { backdropFilter: \"blur(0px)grayscale(0)\", opacity: 0.1 },\n { opacity: 0, filter: \"blur(100px)\", }\n ], { duration: mashiro_option.preload_blur, fill: \"forwards\", easing: \"ease\" }).onfinish = () => {\n preload.remove();\n };\n return;\n }\n catch (error) {\n console.warn(error);\n }\n }\n preload.classList.add('hide');\n preload.classList.remove('show');\n setTimeout(() => preload.remove(), 233);\n}\n","export default async function hitokoto() {\n var _a;\n if (mashiro_option.yiyan) {\n const yiyan = document.getElementById(\"footer_yiyan\");\n const api_group = (_a = mashiro_option.yiyan_api) !== null && _a !== void 0 ? _a : [\"https://api.maho.cc/yiyan/\"];\n if (api_group.length == 0) {\n console.warn('一言API路径为空');\n }\n else if (yiyan) {\n for (const api_path of mashiro_option.yiyan_api) {\n try {\n const txt = await request(api_path);\n yiyan.innerText = txt;\n break;\n }\n catch (e) {\n console.warn(`一言api: 尝试联系\"${api_path}\"时出错。\\n`, e);\n continue;\n }\n }\n }\n }\n}\nconst request = async (api) => {\n const res = await fetch(api, { headers: { Accept: \"application/json\" } });\n if (res.ok) {\n const data = await res.json();\n const from_who = (data.from_who == 'null' ? null : data.from_who) || '';\n const from = data.from != data.from_who ? `「${data['from']}」` : '';\n const hitokoto = data.hitokoto;\n return hitokoto + '——' + from_who + from;\n }\n else {\n throw res.status;\n }\n};\n","import { sakurairoGlobal } from \"./sakurairo_global\";\nexport function web_audio() {\n if (!mashiro_option.audio)\n return;\n //@ts-ignore\n const AudioContext = window.AudioContext || window.webkitAudioContext;\n if (AudioContext) {\n let ctx = new AudioContext, t = readSheetOption() || sheet, i = 0, o = 1, dom, a = \"♪ ♩ ♫ ♬ ♭ € § ¶ ♯\".split(\" \"), selects = document.querySelectorAll(\".site-title, #moblieGoTop, .site-branding, .searchbox, .changeSkin-gear, .menu-list li\");\n selects.forEach((select) => {\n select.addEventListener(\"mouseenter\", (e) => {\n var _a;\n if (dom)\n return;\n let r = t[i];\n if (!r) {\n (i = 0, r = t[i]);\n }\n i += o;\n const c = ctx.createOscillator(), l = ctx.createGain(), mainGain = ctx.createGain();\n c.connect(l);\n l.connect(mainGain);\n mainGain.connect(ctx.destination);\n mainGain.gain.setValueAtTime(((_a = sakurairoGlobal.opt.web_audio) === null || _a === void 0 ? void 0 : _a.main_gain) || 1, ctx.currentTime);\n c.type = \"sine\";\n c.frequency.value = r;\n l.gain.setValueAtTime(0, ctx.currentTime);\n l.gain.linearRampToValueAtTime(1, ctx.currentTime + .01);\n c.start(ctx.currentTime);\n l.gain.exponentialRampToValueAtTime(.001, ctx.currentTime + 1);\n c.stop(ctx.currentTime + 1);\n const d = Math.round(7 * Math.random());\n const h = e.pageX;\n const p = e.pageY - 5;\n dom = document.createElement(\"b\");\n dom.textContent = a[d];\n dom.style.zIndex = \"99999\";\n dom.style.top = p - 100 + \"px\";\n dom.style.left = h + \"px\";\n dom.style.position = \"absolute\";\n dom.style.color = \"#FF6EB4\";\n document.body.appendChild(dom);\n dom.animate([\n { top: p + \"px\" },\n { opacity: 0 }\n ], {\n duration: 500\n });\n setTimeout(() => {\n dom.remove();\n dom = null;\n }, 500);\n e.stopPropagation();\n });\n });\n }\n}\n//欢乐颂\n/*t = \"329.628 329.628 349.228 391.995 391.995 349.228 329.628 293.665 261.626 261.626 293.665 329.628 329.628 293.665 293.665 329.628 329.628 349.228 391.995 391.995 349.228 329.628 293.665 261.626 261.626 293.665 329.628 293.665 261.626 261.626 293.665 293.665 329.628 261.626 293.665 329.628 349.228 329.628 261.626 293.665 329.628 349.228 329.628 293.665 261.626 293.665 195.998 329.628 329.628 349.228 391.995 391.995 349.228 329.628 293.665 261.626 261.626 293.665 329.628 293.665 261.626 261.626\".split(\" \")*/\n//天空之城\nconst sheet = \"880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 659 698 659 698 1046 659 1046 1046 1046 987 698 698 987 987 880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 698 1046 987 1046 1174 1174 1174 1046 1046 880 987 784 880 1046 1174 1318 1174 1318 1567 1046 987 1046 1318 1318 1174 784 784 880 1046 987 1174 1046 784 784 1396 1318 1174 659 1318 1046 1318 1760 1567 1567 1318 1174 1046 1046 1174 1046 1174 1567 1318 1318 1760 1567 1318 1174 1046 1046 1174 1046 1174 987 880 880 987 880\".split(\" \");\nfunction readSheetOption() {\n var _a;\n const sheet = (_a = sakurairoGlobal.opt.web_audio) === null || _a === void 0 ? void 0 : _a.sheet;\n if (typeof sheet == 'string') {\n return sheet.split(' ');\n }\n else if (sheet instanceof Array) {\n return sheet;\n }\n}\n","const mainContainer = document.getElementById(\"main-container\");\nfunction toggle() {\n document.body.classList.toggle(\"navOpen\");\n mainContainer.classList.toggle(\"open\");\n document.getElementById(\"mo-nav\").classList.toggle(\"open\");\n document.querySelector(\".openNav\").classList.toggle(\"open\");\n document.querySelector(\".site-header\").classList.toggle(\"open\");\n}\nexport function open() {\n toggle();\n document.documentElement.style.overflow = \"hidden\";\n mainContainer.addEventListener('click', close);\n}\nexport function close() {\n toggle();\n document.documentElement.style.overflow = \"unset\";\n mainContainer.removeEventListener('click', close);\n}\n","import { onlyOnceATime } from \"../common/util\";\nimport { lazyload } from 'lazyload'\nimport { __ } from './sakurairo_global'\n\nlet load_post_timer;\nconst load_post = onlyOnceATime(function load_post() {\n const now_href = document.location.href\n const pagination_a = document.querySelector('#pagination a');\n if (pagination_a.classList.contains(\"loading\")) return;\n pagination_a.classList.add(\"loading\");\n pagination_a.innerText = \"\";\n\n // $('#pagination a').addClass(\"loading\").text(\"\");\n fetch(pagination_a.getAttribute(\"href\") + \"#main\")\n .then(async resp => {\n const text = await resp.text()\n //在进行DOM操作前检查页面是否已经变化,防止错误加载到其他页面上\n if (now_href != document.location.href) return /**如果页面状态发生了变化,那么也应该不用理加载提示符 */\n const parser = new DOMParser(),\n DOM = parser.parseFromString(text, \"text/html\"),\n result = DOM.querySelectorAll(\"#main .post\"),\n paga = DOM.querySelector(\"#pagination a\"),\n paga_innerText = paga && paga.innerText,\n nextHref = paga && paga.getAttribute(\"href\"),\n main = document.getElementById(\"main\")\n for (let i = 0; i < result.length; i++) {\n main.append(result[i])\n }\n //if (resp.ok) {\n // result = $(data).find(\"#main .post\");\n // nextHref = $(data).find(\"#pagination a\").attr(\"href\");\n // $(\"#main\").append(result.fadeIn(500));\n const dpga = document.querySelector(\"#pagination a\"),\n addps = document.querySelector(\"#add_post span\");\n if (dpga) {\n dpga.classList.remove(\"loading\");\n dpga.innerText = paga_innerText;\n }\n if (addps) {\n addps.classList.remove(\"loading\");\n addps.innerText = \"\";\n }\n // $(\"#pagination a\").removeClass(\"loading\").text(\"Previous\");\n // $('#add_post span').removeClass(\"loading\").text(\"\");\n lazyload();\n post_list_show_animation();\n document.dispatchEvent(new CustomEvent('ajax_post_loaded',))\n if (nextHref != undefined) {\n pagination_a.setAttribute(\"href\", nextHref);\n // $(\"#pagination a\").attr(\"href\", nextHref);\n //加载完成上滑\n let tempScrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;;\n // window.scrollTo(tempScrollTop);\n // $(window).scrollTop(tempScrollTop);\n window.scrollTo({\n top: tempScrollTop + 300,\n behavior: 'smooth'\n })\n // $body.animate({\n // scrollTop: tempScrollTop + 300\n //\n // }, 666)\n } else {\n document.getElementById(\"pagination\").innerHTML = \"\" + __(\"很高兴你翻到这里,但是真的没有了...\") + \"\";\n // $(\"#pagination\").html(\"很高兴你翻到这里,但是真的没有了...\");\n }\n //}\n\n })\n /* $.ajax({\n type: \"POST\",\n url: $('#pagination a').attr(\"href\") + \"#main\",\n success: function (data) {\n result = $(data).find(\"#main .post\");\n nextHref = $(data).find(\"#pagination a\").attr(\"href\");\n $(\"#main\").append(result.fadeIn(500));\n $(\"#pagination a\").removeClass(\"loading\").text(\"Previous\");\n $('#add_post span').removeClass(\"loading\").text(\"\");\n lazyload();\n post_list_show_animation();\n if (nextHref != undefined) {\n $(\"#pagination a\").attr(\"href\", nextHref);\n //加载完成上滑\n var tempScrollTop = $(window).scrollTop();\n $(window).scrollTop(tempScrollTop);\n $body.animate({\n scrollTop: tempScrollTop + 300\n\n }, 666)\n } else {\n $(\"#pagination\").html(\"很高兴你翻到这里,但是真的没有了...\");\n }\n }\n }); */\n})\nexport function post_list_show_animation() {\n if (document.querySelector('article') && document.querySelector('article').classList.contains(\"post-list-thumb\")) {\n const options = {\n root: null,\n threshold: [0.66]\n },\n callback = (entries) => {\n entries.forEach(window.IntersectionObserver ? (article) => {\n if (article.target.classList.contains(\"post-list-show\")) {\n article.target.style.willChange = 'auto';\n io.unobserve(article.target)\n } else if (article.isIntersecting) {\n article.target.classList.add(\"post-list-show\");\n article.target.style.willChange = 'auto';\n io.unobserve(article.target)\n }\n } : (article) => {\n article.target.style.willChange = 'auto';\n if (article.target.classList.contains(\"post-list-show\") === false) {\n article.target.classList.add(\"post-list-show\");\n }\n\n })\n },\n io = new IntersectionObserver(callback, options),\n articles = document.getElementsByClassName('post-list-thumb');\n for (let a = 0; a < articles.length; a++) {\n io.observe(articles[a]);\n }\n }\n}\nfunction XLS_Listener(e) {\n if (e.target === document.querySelector(\"#pagination a\")) {\n e.preventDefault();\n e.stopPropagation();\n clearTimeout(load_post_timer);\n load_post();\n }\n}\nexport function XLS() {\n const intersectionObserver = new IntersectionObserver(function (entries) {\n if (entries[0].intersectionRatio <= 0) return;\n // var page_next = $('#pagination a').attr(\"href\");\n const _page_next = document.querySelector('#pagination a')\n if (_page_next) {\n const href_page_next = _page_next.getAttribute(\"href\"),\n load_key = document.getElementById(\"add_post_time\");\n if (href_page_next != undefined && load_key) {\n const load_time = load_key.title;\n if (load_time != \"233\") {\n console.log(\"%c 自动加载时倒计时 %c\", \"background:#9a9da2; color:#ffffff; border-radius:4px;\", \"\", \"\", load_time);\n load_post_timer = setTimeout(function () {\n load_post();\n }, load_time * 1000);\n }\n }\n }\n });\n intersectionObserver.observe(\n document.querySelector('.footer-device')\n );\n document.body.removeEventListener('click', XLS_Listener)\n document.body.addEventListener(\"click\", XLS_Listener)\n}","import r from\"color-space/rgb.js\";import t from\"color-space/xyz.js\";import n from\"color-space/lab.js\";function e(r,t,n){var e=r[t++]-n[0],a=r[t++]-n[1],o=r[t++]-n[2],i=r[t++]-n[3];return Math.pow(e,2)+Math.pow(a,2)+Math.pow(o,2)+Math.pow(i,2)}function a(r,t,n,a){void 0===a&&(a=1);for(var i,u,f,l,c,v=[],h=[],s=[],d=0,m=0;m1){var i=e/Math.sqrt(o),u=a/Math.sqrt(o),f=r(i,u);return null==f||f.drawImage(t,0,0,i,u),null==f?void 0:f.getImageData(0,0,i,u)}var l=r(e,a);return null==l||l.drawImage(t,0,0),null==l?void 0:l.getImageData(0,0,e,a)}function m(r,t){(null==t||t>r.length)&&(t=r.length);for(var n=0,e=new Array(t);n(o=e[1])?o>i?[a,i]:a>i?[a,o]:[i,o]:o>i?i>a?[o,a]:[o,i]:[i,a]),f=u[0],l=u[1],c=f-l,v=f+l;if(0==c)t=0,n=0;else{if(f==r[0]){var h=60*(r[1]-r[2])/c;t=h<0?h+360:h}else t=f==r[1]?60*(r[2]-r[0])/c+120:60*(r[0]-r[1])/c+240;n=0==v?0:v<=1?c/v:c/(2-v)}return[t,n,v/2,r[3]]}var y=function(r){return void 0===r&&(r=[0,1,2,3]),function(t,n){for(var e,a,o=function(r,t){var n=\"undefined\"!=typeof Symbol&&r[Symbol.iterator]||r[\"@@iterator\"];if(n)return(n=n.call(r)).next.bind(n);if(Array.isArray(r)||(n=function(r,t){if(r){if(\"string\"==typeof r)return m(r,t);var n=Object.prototype.toString.call(r).slice(8,-1);return\"Object\"===n&&r.constructor&&(n=r.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(r):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(r,t):void 0}}(r))){n&&(r=n);var e=0;return function(){return e>=r.length?{done:!0}:{done:!1,value:r[e++]}}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}(r);!(a=o()).done;){var i=a.value;if(0!=(e=t[i]-n[i]))return e}return e}},b=function(r){return\"hsla(\"+r[0]+\"deg,\"+100*r[1]+\"%,\"+100*r[2]+\"%,\"+r[3]+\")\"},w=function(r){return\"rgba(\"+r.map(function(r){return Math.floor(r)}).join(\",\")+\")\"};function M(n){for(var e=[],a=0;a b - a)[0];\n const index = label.findIndex(value => value == max);\n _updateThemeSkin(labaToRGBA(centroid[index]));\n //console.log(result)\n}\nfunction _updateThemeSkin(color) {\n //TODO: 暗色模式支持\n const metaLight = document.querySelector('meta[name=theme-color][media=\"(prefers-color-scheme: light)\"]');\n /* const metaDark = document.querySelector('meta[name=theme-color][media=\"(prefers-color-scheme: dark)\"]')\n const [h,s,l,a] = rgbaToHSLA(color) */\n metaLight && (metaLight.content = rgbaCSSText(color));\n /* metaDark && (metaDark.content = hslaCSSText([h,s,l,a]))\n */ \n}\nexport function init() {\n document.addEventListener('coverBG_change', (({ detail: coverBGUrl }) => updateThemeSkin(coverBGUrl)));\n}\n","import { createButterbar } from \"../common/butterbar\";\nimport { __ } from \"./sakurairo_global\";\nlet btnSerif, btnSansSerif;\nfunction Serif() {\n if (document.body.clientWidth <= 860) {\n createButterbar(__(\"将从网络加载字体,流量请注意\"));\n }\n document.body.classList.add(\"serif\");\n setButtonState('serif');\n localStorage.setItem(\"font_family\", \"serif\");\n}\nfunction SansSerif() {\n document.body.classList.remove(\"serif\");\n setButtonState('sans-serif');\n localStorage.setItem(\"font_family\", \"sans-serif\");\n}\nfunction change_font_listener(btn) {\n return () => {\n const { name } = btn.dataset;\n const nowFont = localStorage.getItem(\"font_family\");\n if (name == nowFont) {\n return;\n }\n else {\n if (name == 'serif') {\n Serif();\n }\n else {\n SansSerif();\n }\n }\n };\n}\nexport function loadFontSetting() {\n const nowFont = localStorage.getItem(\"font_family\");\n if (!nowFont || nowFont == \"serif\") {\n document.body.classList.add(\"serif\");\n }\n}\nfunction setButtonState(font_name) {\n if (font_name !== null && font_name !== void 0 ? font_name : localStorage.getItem(\"font_family\") == 'sans-serif') {\n btnSerif.classList.remove(\"selected\");\n btnSansSerif.classList.add(\"selected\");\n }\n else {\n btnSansSerif.classList.remove(\"selected\");\n btnSerif.classList.add(\"selected\");\n }\n}\nfunction initDOMCache() {\n btnSerif = document.getElementsByClassName(\"control-btn-serif\")[0];\n btnSansSerif = document.getElementsByClassName(\"control-btn-sans-serif\")[0];\n return btnSansSerif && btnSerif;\n}\nfunction initListener() {\n btnSerif.addEventListener('click', change_font_listener(btnSerif));\n btnSansSerif.addEventListener('click', change_font_listener(btnSansSerif));\n}\nexport function initFontControl() {\n const result = initDOMCache();\n if (!result)\n localStorage.removeItem('font_family'); //样式菜单“简单”时,使用默认字体 “A”\n loadFontSetting();\n if (result) {\n setButtonState();\n initListener();\n }\n}\n","var _a;\nimport { getFileNameMain } from '../common/util';\nimport { __ } from './sakurairo_global';\nconst bgvideo = document.getElementById(\"bgvideo\");\nconst videoList = ((_a = Poi.movies.name) === null || _a === void 0 ? void 0 : _a.split(\",\")) || []; // 视频列表\nlet unplayedIndex = new Array(videoList.length).fill(0).map((_, index) => index);\n//#region 背景视频\nconst _getNextRandomVideo = () => {\n if (unplayedIndex.length == 0) {\n unplayedIndex = new Array(videoList.length).fill(0).map((_, index) => index);\n }\n const nextIndex = Math.floor(Math.random() * unplayedIndex.length);\n return videoList[unplayedIndex.splice(nextIndex, 1)[0]];\n};\nfunction getVideo() {\n const video_stu = document.getElementsByClassName(\"video-stu\")[0];\n const fileName = _getNextRandomVideo(); // 随机抽取视频\n video_stu.innerHTML = __(\"正在载入视频 ...\");\n video_stu.style.bottom = \"0px\";\n //这里不需要检验Poi.movies是不是字符串,因为应该在前边检查\n bgvideo.setAttribute(\"src\", new URL(fileName, Poi.movies.url || location.origin).toString());\n bgvideo.setAttribute(\"video-name\", getFileNameMain(fileName));\n}\n/**\n * 播放\n */\nfunction splay() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) {\n video_btn.classList.add(\"video-pause\");\n video_btn.classList.remove(\"video-play\");\n video_btn.style.display = \"\";\n }\n try {\n document.querySelector(\".video-stu\").style.bottom = \"-100px\";\n document.querySelector(\".focusinfo\").style.top = \"-999px\";\n if (mashiro_option.float_player_on) {\n import('./aplayer').then(({ destroyAllAplayer }) => {\n destroyAllAplayer();\n bgvideo.play();\n });\n return;\n }\n }\n catch (e) {\n console.warn(e);\n }\n bgvideo.play();\n}\n/**\n * 暂停\n */\nfunction spause() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) {\n video_btn.classList.add(\"video-play\");\n video_btn.classList.remove(\"video-pause\");\n }\n try {\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\n }\n catch (_a) { }\n bgvideo.pause();\n}\n/**\n * 自动续播 - 播放\n */\nexport function liveplay() {\n if (bgvideo && bgvideo.oncanplay != undefined && document.querySelector(\".haslive\")) { // 检查视频数据\n if (document.querySelector(\".videolive\")) { // 检查播放状态\n splay();\n }\n }\n}\nexport function livepause() {\n if (bgvideo && bgvideo.oncanplay != undefined && document.querySelector(\".haslive\")) { // 检查视频数据\n spause();\n let video_stu = document.getElementsByClassName(\"video-stu\")[0];\n video_stu.style.bottom = \"0px\";\n video_stu.innerHTML = __(\"已暂停...\");\n }\n}\nexport function coverVideo() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn)\n video_btn.addEventListener(\"click\", function () {\n if (this.classList.contains(\"loadvideo\")) {\n this.classList.add(\"video-pause\");\n this.classList.remove(\"loadvideo\");\n getVideo();\n bgvideo.oncanplay = function () {\n splay();\n document.getElementById(\"video-add\").style.display = \"block\";\n video_btn.classList.add(\"videolive\", \"haslive\"); // MDZZ\n };\n }\n else {\n if (this.classList.contains(\"video-pause\")) {\n spause();\n video_btn.classList.remove(\"videolive\");\n document.getElementsByClassName(\"video-stu\")[0].style.bottom = \"0px\";\n document.getElementsByClassName(\"video-stu\")[0].innerHTML = \"已暂停 ...\";\n }\n else {\n splay();\n video_btn.classList.add(\"videolive\"); // 用于判断切换页面时的状态\n }\n }\n bgvideo.onended = function () {\n bgvideo.setAttribute(\"src\", \"\");\n document.getElementById(\"video-add\").style.display = \"none\";\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\n if (video_btn) {\n video_btn.classList.add(\"loadvideo\");\n video_btn.classList.remove(\"video-pause\", \"videolive\", \"haslive\");\n if (Poi.movies.loop) {\n video_btn.click();\n }\n }\n };\n });\n const video_add = document.getElementById(\"video-add\");\n if (video_add)\n video_add.addEventListener(\"click\", getVideo);\n}\n//#endregion\nexport async function coverVideoIni() {\n initHLS();\n lazyloadPatch();\n}\nfunction canPlayHandler() {\n this.poster = '';\n}\n/**\n * 用户代理可能会禁止自动播放,此时需要撤掉poster\n */\nasync function lazyloadPatch() {\n const videos = document.querySelectorAll('video.lazyload');\n videos.forEach(video => video.addEventListener('canplay', canPlayHandler));\n}\nasync function initHLS() {\n const videos = document.querySelectorAll('video.hls');\n if (videos.length == 0)\n return;\n //检查浏览器是否原生支持\n if (videos[0].canPlayType('application/vnd.apple.mpegurl')) {\n for (const video of videos) {\n video.src = video.dataset.src || video.src;\n video.autoplay = true;\n }\n }\n else {\n if (!window.Hls) {\n try {\n const { default: Hls } = await import('hls.js');\n window.Hls = Hls;\n }\n catch (reason) {\n console.warn('Hls load failed: ', reason);\n }\n }\n if (!Hls.isSupported())\n console.error('Hls: Media Source Extensions is unsupported.');\n for (const video of videos) {\n const hls = new Hls();\n hls.loadSource(video.dataset.src || video.src);\n hls.attachMedia(video);\n hls.on(Hls.Events.MANIFEST_PARSED, function () {\n video.play();\n });\n }\n }\n}\n","import { buildAPI } from '../common/util';\nimport { __ } from './sakurairo_global';\nlet QueryStorage;\nfunction search_result(keyword, link, fa, title, iconfont, comments, text) {\n if (keyword) {\n var s = keyword.trim().split(\" \"), a = title.indexOf(s[s.length - 1]), b = text.indexOf(s[s.length - 1]);\n title = a < 60 ? title.slice(0, 80) : title.slice(a - 30, a + 30);\n title = title.replace(s[s.length - 1], ' ' + s[s.length - 1].toUpperCase() + ' ');\n text = b < 60 ? text.slice(0, 80) : text.slice(b - 30, b + 30);\n text = text.replace(s[s.length - 1], ' ' + s[s.length - 1].toUpperCase() + ' ');\n }\n return `
${title}${comments}

${text}

`;\n}\nfunction Cx(array, query) {\n for (let s = 0; s < query.length; s++) {\n if (['.', '?', '*'].indexOf(query[s]) != -1) {\n query = query.slice(0, s) + \"\\\\\" + query.slice(s);\n s++;\n }\n }\n query = query.replace(query, \"^(?=.*?\" + query + \").+$\").replace(/\\s/g, \")(?=.*?\");\n return array.filter(v => Object.values(v)\n .some(v => new RegExp(query + '').test(v)));\n}\nfunction query(B, A) {\n var s, y = \"\", w = \"\", u = \"\", r = \"\", p = \"\", F = \"\", G = '
', D = \"
\", E = \"\", C = Cx(B, A.trim());\n for (const H of C) {\n switch (H.type) {\n case \"post\":\n w = w + search_result(A, H.link, \"file\", H.title, \"mark\", H.comments, H.text);\n break;\n case \"tag\":\n p = p + search_result(\"\", H.link, \"tag\", H.title, \"none\", \"\", \"\");\n break;\n case \"category\":\n r = r + search_result(\"\", H.link, \"folder\", H.title, \"none\", \"\", \"\");\n break;\n case \"page\":\n u = u + search_result(A, H.link, \"file\", H.title, \"mark\", H.comments, H.text);\n break;\n case \"comment\":\n F = F + search_result(A, H.link, \"comment\", H.title, \"none\", \"\", H.text);\n break;\n }\n }\n w && (y = y + G + __(\"文章\") + E + w + D);\n u && (y = y + G + __(\"页面\") + E + u + D);\n r && (y = y + G + __(\"分类\") + E + r + D);\n p && (y = y + G + __(\"标签\") + E + p + D);\n F && (y = y + G + __(\"评论\") + E + F + D);\n s = document.getElementById(\"PostlistBox\");\n s.innerHTML = y;\n}\nfunction search_a(val) {\n const otxt = document.getElementById(\"search-input\");\n if (sessionStorage.getItem('search') != null) {\n QueryStorage = JSON.parse(sessionStorage.getItem('search'));\n query(QueryStorage, otxt.value);\n div_href();\n }\n else {\n fetch(val)\n .then(async (resp) => {\n if (resp.ok) {\n const json = await resp.text();\n if (json != \"\") {\n sessionStorage.setItem('search', json);\n QueryStorage = JSON.parse(json);\n query(QueryStorage, otxt.value);\n div_href();\n }\n }\n else {\n console.warn('HTTP ' + resp.status);\n }\n })\n .catch(reason => console.warn(reason));\n }\n}\n/* if (!Object.values) Object.values = function (obj) {\n if (obj !== Object(obj))\n throw new TypeError('Object.values called on a non-object');\n var val = [],\n key;\n for (key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n val.push(obj[key]);\n }\n }\n return val;\n } */\nfunction div_href() {\n const search_close = document.querySelector(\".search_close\");\n const Ty = document.getElementById('Ty');\n for (const ele of document.getElementsByClassName('ins-selectable')) {\n ele.addEventListener(\"click\", () => {\n Ty.href = ele.getAttribute('href');\n Ty.click();\n search_close.click();\n });\n }\n /* $(\".ins-selectable\").each(function () {\n $(this).click(function () {\n $(\"#Ty\").attr('href', $(this).attr('href'));\n $(\"#Ty\").click();\n $(\".search_close\").click();\n });\n }); */\n}\nexport function jsSearchCallback() {\n //$('.js-toggle-search').toggleClass('is-active');\n document.getElementsByClassName('js-toggle-search')[0].classList.toggle('is-active');\n //$('.js-search').toggleClass('is-visible');\n document.getElementsByClassName('js-search')[0].classList.toggle('is-visible');\n //$('html').css('overflow-y', 'hidden');\n document.documentElement.style.overflowY = 'hidden';\n if (mashiro_option.live_search) {\n QueryStorage = [];\n search_a(buildAPI(Poi.api + \"sakura/v1/cache_search/json\"));\n var otxt = document.getElementById(\"search-input\"), \n //list = document.getElementById(\"PostlistBox\"),\n //Record = list.innerHTML,\n searchFlag = null;\n otxt.oninput = function () {\n if (searchFlag != null) {\n clearTimeout(searchFlag);\n }\n searchFlag = setTimeout(function () {\n query(QueryStorage, otxt.value);\n div_href();\n }, 250);\n };\n }\n}\n","/**\n * app.js - Client script bundle for Sakurairo, a WordPress theme.\n * @author bymoye \n * @author KotoriK\n * @license GPL-v2\n * @date 2021.3.21\n * Github Repository:\n * @url https://github.com/Fuukei/Sakurairo_Scripts\n * @url https://github.com/mirai-mamori/Sakurairo commit f7db3c5\n * \n * *** ACKNOWLEDGEMENT *** \n * \n * *** modified on mashirozx/Sakura/js/sakura-app.js ***\n * Sakura theme application bundle\n * @author Mashiro\n * @url https://2heng.xin\n * @date 2019.8.3\n * *** ***\n * \n * *** inherited from louie-senpai/Siren/js/app.js ***\n * Siren application js\n * @author Louie\n * @url http://i94.me\n * @date 2016.11.19\n * *** ***\n * \n * inherited from Xoin-Yang/Akina/js/global.js\n * @author Xoin-Yang\n * @date 2017.04.25\n * @url http://www.akina.pw/\n * *** END OF ACKNOWLEDGEMENT *** \n * \n * Press 'F' to pay respects.\n * \n */\n\nimport { nextBG, preBG, initCoverBG, getCoverPath, getCurrentBG } from './coverBackground'\nimport add_copyright from './copyright'\nimport { createButterbar } from '../common/butterbar'\nimport { loadCSS } from 'fg-loadcss'\nimport { lazyload } from 'lazyload'\nimport './global-func'\nimport { ready, slideToggle } from '../common/util'\nimport about_us from './about_us'\nimport preload_screen from './preload_screen'\nimport { _$ } from './sakurairo_global'\nimport { isSupported } from './compatibility'\nimport hitokoto from './hitokoto'\nimport { web_audio } from './web_audio'\nimport { open, close } from './mobile_nav'\nimport { XLS, post_list_show_animation } from './posts'\nimport { init, updateThemeSkin } from './theme-color'\n/**\n * 检查是否应当开启Poi.pjax\n * @seealso https://github.com/PaperStrike/Pjax#compatibility\n */\nPoi.pjax = Poi.pjax && isSupported({ Firefox: 60, Edg: 79, Chrome: 66, OPR: 53, AppleWebKit: 606/**Safari 12 */ });\nPoi.pjax && import('@sliphua/pjax').then(({ default: Pjax }) =>\n new Pjax({\n selectors: [\"#page\", \"title\", \".footer-device\", \"#_mashiro_\", \"#login-link\"],\n scripts: \"#_mashiro_\",\n timeout: 8000,\n defaultTrigger: {\n exclude: 'a[data-no-pjax]',\n }\n })\n)\nloadCSS(mashiro_option.jsdelivr_css_src);\nloadCSS(mashiro_option.entry_content_style_src);\nloadCSS(\"https://at.alicdn.com/t/font_679578_qyt5qzzavdo39pb9.css\");\n\nmashiro_global.variables = new function () {\n this.skinSecter = true;\n}\nimport { initFontControl, loadFontSetting } from './font_control'\n\nfunction scrollBar() {\n if (document.body.clientWidth > 860) {\n window.addEventListener(\"scroll\", () => {\n let s = document.documentElement.scrollTop || document.body.scrollTop,\n a = document.documentElement.scrollHeight || document.body.scrollHeight,\n b = window.innerHeight, c,\n result = parseInt(s / (a - b) * 100),\n cached = document.getElementById('bar');\n cached.style.width = result + \"%\";\n /* switch (true) {\n case (result <= 19): c = '#cccccc'; break;\n case (result <= 39): c = '#50bcb6'; break;\n case (result <= 59): c = '#85c440'; break;\n case (result <= 79): c = '#f2b63c'; break;\n case (result <= 99): c = '#FF0000'; break;\n case (result == 100): c = '#5aaadb'; break;\n default: c = \"orange\";\n }\n cached.style.background = c; */\n //炫彩scrollbar好像不是很好看,又被php那边的样式强制覆盖了,就先注释掉\n const skinMenu = document.querySelector(\".skin-menu\");\n skinMenu && skinMenu.classList.remove(\"show\");\n })\n }\n}\n\nfunction checkSkinSecter() {\n if (mashiro_global.variables.skinSecter === false) {\n const pattern = document.querySelector(\".pattern-center\"),\n headertop = document.querySelector(\".headertop-bar\");\n if (pattern) {\n pattern.classList.remove(\"pattern-center\");\n pattern.classList.add(\"pattern-center-sakura\");\n }\n if (headertop) {\n headertop.classList.remove(\"headertop-bar\");\n headertop.classList.add(\"headertop-bar-sakura\");\n }\n } else {\n const pattern = document.querySelector(\".pattern-center-sakura\"),\n headertop = document.querySelector(\".headertop-bar-sakura\");\n if (pattern) {\n pattern.classList.remove(\"pattern-center-sakura\");\n pattern.classList.add(\"pattern-center\");\n }\n if (headertop) {\n headertop.classList.remove(\"headertop-bar-sakura\");\n headertop.classList.add(\"headertop-bar\");\n }\n }\n}\nimport { checkDarkModeSetting, turnOnDarkMode, turnOffDarkMode, } from './darkmode'\nfunction no_right_click() {\n const pri = document.getElementById(\"primary\");\n if (pri) pri.addEventListener(\"contextmenu\", function (e) {\n if (e.target.nodeName.toLowerCase() == \"img\") {\n e.preventDefault();\n e.stopPropagation();\n }\n })\n}\nno_right_click();\n\nasync function changeBG(bgid) {\n //@sideeffect\n mashiro_global.variables.skinSecter = bgid == \"white-bg\" || bgid == \"dark-bg\";\n checkSkinSecter();\n const now_bg_url = document.body.style.backgroundImage\n let bg_url;\n switch (bgid) {\n case \"white-bg\":\n if (mashiro_option.site_bg_as_cover) {\n //if(mashiro_option.cache_cover && now_bg_url.match(/^url\\(\"blob:/)) return\n bg_url = await getCoverPath()\n } else {\n bg_url = mashiro_option.skin_bg0;\n }\n break;\n case \"diy1-bg\":\n bg_url = mashiro_option.skin_bg1;\n break;\n case \"diy2-bg\":\n bg_url = mashiro_option.skin_bg2;\n break;\n case \"diy3-bg\":\n bg_url = mashiro_option.skin_bg3;\n break;\n case \"diy4-bg\":\n bg_url = mashiro_option.skin_bg4;\n break;\n }\n if (now_bg_url != bg_url) {\n document.body.style.backgroundImage = bg_url ? `url(${bg_url})` : '';\n }\n}\n\nfunction bgButtonAddListener() {\n const next = document.getElementById(\"bg-next\"),\n pre = document.getElementById(\"bg-pre\");\n if (next) { next.onclick = nextBG };\n if (pre) { pre.onclick = preBG };\n}\n\nfunction topFunction() {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\"\n });\n}\n\nfunction timeSeriesReload(flag) {\n let archives = document.getElementById('archives');\n if (archives == null) return;\n let al_li = archives.getElementsByClassName('al_mon');\n if (flag == true) {\n archives.addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"al_mon\")) {\n slideToggle(e.target.nextElementSibling, 500);\n e.preventDefault();\n }\n })\n lazyload();\n } else {\n (function () {\n let al_expand_collapse = document.getElementById('al_expand_collapse');\n al_expand_collapse.style.cursor = \"s-resize\";\n for (let i = 0; i < al_li.length; i++) {\n let a = al_li[i],\n num = a.nextElementSibling.getElementsByTagName('li').length;\n a.style.cursor = \"s-resize\";\n a.querySelector('#post-num').textContent = num;\n }\n let al_post_list = archives.getElementsByClassName(\"al_post_list\"),\n al_post_list_f = al_post_list[0];\n for (let i = 0; i < al_post_list.length; i++) {\n slideToggle(al_post_list[i], 500, 'hide', function () {\n slideToggle(al_post_list_f, 500, 'show');\n })\n }\n archives.addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"al_mon\")) {\n slideToggle(e.target.nextElementSibling, 500);\n e.preventDefault();\n }\n })\n if (document.body.clientWidth > 860) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n el.parentNode.addEventListener('mouseover', function () {\n slideToggle(el, 500, 'show');\n return false;\n })\n }\n if (false) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n el.parentNode.addEventListener('mouseover', function () {\n slideToggle(el, 500, 'hide');\n return false;\n })\n }\n }\n let al_expand_collapse_click = 0;\n al_expand_collapse.addEventListener('click', function () {\n if (al_expand_collapse_click == 0) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n slideToggle(el, 500, 'show');\n };\n al_expand_collapse_click++;\n } else if (al_expand_collapse_click == 1) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n slideToggle(el, 500, 'hide');\n };\n al_expand_collapse_click--;\n }\n });\n }\n })();\n }\n}\n\ntimeSeriesReload();\n\nadd_copyright()\n\nif (mashiro_option.float_player_on) {\n if (document.body.clientWidth > 860) {\n import('./aplayer').then(({ aplayerInit }) => aplayerInit())\n }\n}\n\nfunction activate_widget() {\n let secondary = document.getElementById(\"secondary\");\n if (document.body.clientWidth > 860) {\n let show_hide = document.querySelector(\".show-hide\");\n show_hide && show_hide.addEventListener(\"click\", function () {\n secondary && secondary.classList.toggle(\"active\");\n });\n } else {\n secondary && secondary.remove();\n }\n}\nsetTimeout(function () {\n activate_widget();\n}, 100);\n\n//#region Siren\nimport { liveplay, livepause, coverVideo, coverVideoIni } from './video'\nfunction MN() {\n const iconflat = document.querySelector(\".iconflat\");\n iconflat && iconflat.addEventListener(\"click\", (e) => {\n e.stopPropagation()\n if (document.body.classList.contains(\"navOpen\")) {\n close()\n } else {\n open()\n }\n });\n}\n\nfunction MNH() {\n if (document.body.classList.contains(\"navOpen\")) {\n close()\n }\n}\nfunction auto_height() {\n if (Poi.windowheight == 'auto') {\n if (document.querySelector(\"h1.main-title\")) {\n //let _height = document.documentElement.clientHeight + \"px\";\n const centerbg = document.getElementById(\"centerbg\")\n const bgvideo = document.getElementById(\"bgvideo\")\n if (centerbg) centerbg.style.height = \"100vh\";\n if (bgvideo) bgvideo.style.minHeight = \"100vh\";\n }\n } else {\n document.querySelector(\".headertop\") && document.querySelector(\".headertop\").classList.add(\"headertop-bar\");\n }\n}\nfunction PE() {\n if (document.querySelector(\".headertop\")) {\n let headertop = document.querySelector(\".headertop\"),\n blank = document.querySelector(\".blank\");\n if (document.querySelector(\".main-title\")) {\n try {\n blank.style.paddingTop = \"0px\";\n } catch (e) { }\n headertop.style.height = \"auto\";\n headertop.style.display = \"\";\n if (Poi.movies.live) liveplay();\n } else {\n try {\n blank.style.paddingTop = \"75px\";\n } catch (e) { }\n headertop.style.height = \"0px\";\n headertop.style.display = \"none\";\n livepause();\n }\n }\n}\nimport { jsSearchCallback } from './search'\nfunction CE() {\n let comments_fold = document.querySelector(\".comments-fold\");\n let comments_main = document.querySelector(\".comments-main\");\n if (comments_fold != null) {\n comments_fold.style.display = \"block\";\n comments_main.style.display = \"none\";\n comments_fold.addEventListener(\"click\", function () {\n slideToggle(comments_main, 500, 'show');\n comments_fold.style.display = \"none\";\n });\n }\n let archives = document.getElementsByClassName(\"archives\");\n if (archives.length > 0) {\n for (let i = 0; i < archives.length; i++) {\n archives[i].style.display = \"none\";\n }\n archives[0].style.display = \"\";\n let h3 = document.getElementById(\"archives-temp\").getElementsByTagName(\"h3\");\n for (let i = 0; i < h3.length; i++) {\n h3[i].addEventListener(\"click\", (e) => {\n e.preventDefault();\n e.stopPropagation();\n slideToggle(e.target.nextElementSibling, 300);\n })\n }\n }\n // $('.comments-hidden').show();\n // $('.comments-main').hide();\n // $('.comments-hidden').click(function () {\n // $('.comments-main').slideDown(500);\n // $('.comments-hidden').hide();\n // });\n // $('.archives').hide();\n // $('.archives:first').show();\n // $('#archives-temp h3').click(function () {\n // $(this).next().slideToggle('fast');\n // return false;\n // });\n /*if (mashiro_option.baguetteBoxON) {\n baguetteBox.run('.entry-content', {\n captions: function (element) {\n return element.getElementsByTagName('img')[0].alt;\n },\n ignoreClass: 'fancybox',\n });\n }*/\n\n for (const ele of document.getElementsByClassName('js-toggle-search')) {\n ele.addEventListener('click', jsSearchCallback);\n }\n\n const sc = document.querySelector(\".search_close\");\n sc && sc.addEventListener(\"click\", function () {\n let js_search = document.getElementsByClassName(\"js-search\")[0];\n if (js_search.classList.contains(\"is-visible\")) {\n document.getElementsByClassName(\"js-toggle-search\")[0].classList.toggle(\"is-active\");\n js_search.classList.toggle(\"is-visible\");\n document.documentElement.style.overflowY = \"unset\";\n }\n });\n try {\n let show_Nav = document.getElementById(\"show-nav\");\n show_Nav.addEventListener(\"click\", function () {\n if (show_Nav.classList.contains(\"showNav\")) {\n show_Nav.classList.remove(\"showNav\");\n show_Nav.classList.add(\"hideNav\");\n let sln = document.querySelector(\".site-top .lower nav\");\n sln && sln.classList.add(\"navbar\");\n } else {\n show_Nav.classList.remove(\"hideNav\");\n show_Nav.classList.add(\"showNav\");\n let sln = document.querySelector(\".site-top .lower nav\");\n sln && sln.classList.remove(\"navbar\");\n }\n });\n document.getElementById(\"loading\").addEventListener(\"click\", function () {\n let loading = document.getElementById(\"loading\");\n loading.classList.add(\"hide\");\n loading.classList.remove(\"show\");\n });\n } catch (e) { }\n}\nfunction NH() {\n const thresold = 0,\n siteHeader = document.querySelector(\".site-header\")\n window.addEventListener(\"scroll\", () => {\n const scrollTop = document.documentElement.scrollTop || window.pageYOffset;\n if (scrollTop > thresold) {\n siteHeader.classList.add(\"yya\");\n } else {\n siteHeader.classList.remove(\"yya\");\n }\n })\n // $(window).scroll(function () {\n // var s = $(document).scrollTop(),\n // cached = $('.site-header');\n // if (s == h1) {\n // cached.removeClass('yya');\n // }\n // if (s > h1) {\n // cached.addClass('yya');\n // }\n // });\n}\nfunction GT() {\n let mb_to_top = document.querySelector(\"#moblieGoTop\"),\n changskin = document.querySelector(\"#changskin\");\n window.addEventListener(\"scroll\", () => {\n const scroll = document.documentElement.scrollTop || document.body.scrollTop;\n const cssText = scroll > 20 ? \"scale(1)\" : \"scale(0)\"\n mb_to_top.style.transform = cssText;\n changskin.style.transform = cssText;\n })\n mb_to_top.onclick = topFunction\n}\n\n//#endregion Siren\nif (Poi.pjax) {\n document.addEventListener(\"pjax:send\", () => {\n for (const element of document.getElementsByClassName(\"normal-cover-video\")) {\n element.pause();\n element.src = '';\n element.load = '';\n }\n document.getElementById(\"bar\").style.width = \"0%\";\n if (mashiro_option.NProgressON) import('nprogress').then(({ default: NProgress }) => { NProgress.start() })\n MNH();\n });\n document.addEventListener(\"pjax:complete\", function () {\n auto_height();\n initCoverBG()\n PE();\n CE();\n if (mashiro_option.land_at_home) XLS();\n if (mashiro_option.NProgressON) import('nprogress').then(({ default: NProgress }) => { NProgress.done() })\n //#region mashiro_global.ini.pjax();\n //#region pjaxInit\n no_right_click();\n loadFontSetting()\n let _p = document.getElementsByTagName(\"p\");\n for (let i = 0; i < _p.length; i++) {\n _p[i].classList.remove(\"head-copyright\");\n }\n let _div = document.getElementsByTagName(\"div\"),\n tla = document.getElementById(\"to-load-aplayer\");\n tla && tla.addEventListener(\"click\", () => {\n /* try {\n reloadHermit();\n } catch (e) { }; */\n for (let i = 0; i < _div.length; i++) {\n _div[i].classList.remove(\"load-aplayer\");\n }\n });\n /* for (let i = 0; i < _div.length; i++) {\n if (_div[i].classList.contains(\"aplayer\")) {\n try {\n reloadHermit();\n } catch { };\n }\n } */\n let iconflat = document.getElementsByClassName(\"iconflat\");\n if (iconflat.length != 0) {\n iconflat[0].style.width = '50px';\n iconflat[0].style.height = '50px';\n }\n let openNav = document.getElementsByClassName(\"openNav\");\n if (openNav.length != 0) {\n openNav[0].style.height = '50px';\n }\n bgButtonAddListener()\n timeSeriesReload();\n add_copyright();\n //#endregion pjaxInit\n post_list_show_animation();\n web_audio();\n coverVideoIni();\n checkSkinSecter();\n NH();\n //#endregion\n let loading = document.getElementById(\"loading\");\n if (loading) {\n loading.classList.add(\"hide\");\n loading.classList.remove(\"show\");\n }\n //未实际使用的选项\n /* if (Poi.codelamp == 'open') {\n self.Prism.highlightAll(event)\n }; */\n if (document.querySelector(\".js-search.is-visible\")) {\n document.getElementsByClassName(\"js-toggle-search\")[0].classList.toggle(\"is-active\");\n document.getElementsByClassName(\"js-search\")[0].classList.toggle(\"is-visible\");\n document.documentElement.style.overflowY = \"unset\";\n }\n hitokoto()\n lazyload();\n });\n document.addEventListener(\"pjax:success\", function () {\n //pjax加载时自动拉取page.js\n if (!mashiro_option.land_at_home && !document.getElementById('app-page-js')) {\n // id需要与php侧同步\n const script_app = document.getElementById('app-js')\n const script_app_page = document.createElement('script')\n script_app_page.src = script_app.src.replace('/app.js', '/page.js')\n script_app_page.id = 'app-page-js'\n document.body.appendChild(script_app_page)\n }\n //发送页面浏览事件\n\n /**\n * Google Analytics\n * @seealso https://developers.google.com/analytics/devguides/collection/gtagjs/pages\n */\n if (window.gtag) {\n gtag('config', Poi.google_analytics_id, {\n 'page_path': window.location.pathname\n });\n }\n /**\n * 百度统计\n * @seealso https://tongji.baidu.com/web/help/article?id=235\n */\n if (window._hmt) {\n _hmt.push(['_trackPageview', pageURL]);\n }\n });\n document.addEventListener(\"pjax:error\", (e) => {\n createButterbar(_$('页面加载出错了 HTTP {0}', e.request.status))\n })\n window.addEventListener('popstate', function (e) {\n auto_height();\n hitokoto()\n PE();\n CE();\n timeSeriesReload(true);\n post_list_show_animation();\n }, false);\n}\n\n/* let isWebkit = navigator.userAgent.toLowerCase().indexOf('webkit') > -1,\n isOpera = navigator.userAgent.toLowerCase().indexOf('opera') > -1,\n isIe = navigator.userAgent.toLowerCase().indexOf('msie') > -1;\nif ((isWebkit || isOpera || isIe) && document.getElementById && window.addEventListener) { */\nwindow.addEventListener('hashchange', function () {\n let id = location.hash.substring(1),\n element;\n if (!(/^[A-z0-9_-]+$/.test(id))) {\n return;\n }\n element = document.getElementById(id);\n if (element) {\n if (!(/^(?:a|select|input|button|textarea)$/i.test(element.tagName))) {\n element.tabIndex = -1;\n }\n element.focus();\n }\n}, false);\n/* } */\n\nfunction addSkinMenuListener() {\n const cached = document.querySelectorAll(\".menu-list li\");\n cached.forEach(e => {\n e.addEventListener(\"click\", function () {\n const tagid = this.id;\n if (tagid == \"dark-bg\") {\n turnOnDarkMode(true)\n } else {\n turnOffDarkMode(true)\n changeBG(tagid)\n localStorage.setItem(\"bgImgSetting\", tagid)\n }\n closeSkinMenu();\n });\n });\n}\nfunction checkBgImgSetting() {\n changeBG(localStorage.getItem(\"bgImgSetting\") || 'white-bg');\n}\n\ncheckBgImgSetting()\ncheckDarkModeSetting();\n\nfunction closeSkinMenu() {\n document.querySelector(\".skin-menu\").classList.remove(\"show\");\n setTimeout(function () {\n if (document.querySelector(\".changeSkin-gear\") != null) {\n document.querySelector(\".changeSkin-gear\").style.visibility = \"visible\";\n }\n }, 300);\n}\nimport POWERMODE from 'activate-power-mode'\n\nfunction powermode() {\n POWERMODE.colorful = true;\n POWERMODE.shake = false;\n document.body.addEventListener('input', POWERMODE)\n}\n//afterDOMContentLoaded\n\nready(function () {\n initCoverBG().then(() => {\n if (isSupported({ AppleWebKit: 605 })) {\n init()\n updateThemeSkin(getCurrentBG())\n }\n })\n addSkinMenuListener();\n //let checkskin_bg = (a) => a == \"none\" ? \"\" : a;\n let changskin = document.querySelector(\"#changskin\"),\n close_SkinMenu = document.querySelector(\".skin-menu #close-skinMenu\");\n changskin && changskin.addEventListener(\"click\", function () {\n document.querySelector(\".skin-menu\").classList.toggle(\"show\");\n })\n close_SkinMenu && close_SkinMenu.addEventListener(\"click\", function () {\n closeSkinMenu();\n })\n\n auto_height();\n PE();\n NH();\n GT();\n XLS();\n CE();\n MN();\n coverVideo();\n hitokoto()\n bgButtonAddListener()\n initFontControl()\n web_audio()\n preload_screen()\n lazyload();\n powermode()\n about_us()\n\n});\n//#region mashiro_global.ini.normalize();\npost_list_show_animation();\ncoverVideoIni();\ncheckSkinSecter();\nscrollBar();\n//#endregion","export default function about_us() {\n console.log('%c Sakurairo %c https://github.com/mirai-mamori/Sakurairo', 'background:#D05A6E;color:#fffffb', '');\n console.log(` 僕らは求めるものも\n 描いてる未来も違うけれど\n 手と手を取り合えたなら\n きっと笑い合える日が来るから\n %c——「ツバメ」`, 'font-style:italic');\n}\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","factory","modules","installedModules","moduleId","exports","module","id","loaded","call","m","c","p","canvas","document","createElement","width","window","innerWidth","height","innerHeight","style","cssText","addEventListener","body","appendChild","context","getContext","particles","particlePointer","rendering","getRandom","min","max","Math","random","getColor","el","POWERMODE","colorful","u","getComputedStyle","color","createParticle","x","y","alpha","velocity","caret","bcr","activeElement","tagName","getAttribute","offset","selectionEnd","getBoundingClientRect","left","top","selection","getSelection","rangeCount","range","getRangeAt","startNode","startContainer","nodeType","TEXT_NODE","parentNode","getCaret","numParticles","round","shake","intensity","marginLeft","marginTop","setTimeout","requestAnimationFrame","loop","clearRect","rendered","rect","i","length","particle","globalAlpha","fillStyle","fillRect","properties","isFirefox","mozInnerScreenX","getCaretCoordinates","element","position","options","debug","querySelector","removeChild","div","computed","currentStyle","whiteSpace","nodeName","wordWrap","visibility","forEach","prop","scrollHeight","parseInt","overflowY","overflow","textContent","value","substring","replace","span","coordinates","offsetTop","offsetLeft","backgroundColor","imgError","ele","type","src","cmt_showPopup","popup","classList","add","onblur","remove","coverVideo","video","getElementById","btn_playControl","paused","play","innerHTML","pause","coverVideoMute","btn_volumeControl","muted","killCoverVideo","e","mail_me","open","mashiro_option","email_name","email_domain","headertop_down","coverOffset","pageYOffset","scrollTo","behavior","xyz","name","channel","alias","lab","z","y2","l","a","b","pow","rgb","A","C","D50","D55","D65","D75","F2","F7","F11","E","whitepoint","_xyz","white","r","g","w","this","loadCSS","href","before","media","attributes","ref","doc","ss","refs","getElementsByTagName","childNodes","sheets","styleSheets","attributeName","hasOwnProperty","setAttribute","rel","ready","cb","insertBefore","nextSibling","onloadcssdefined","resolvedHref","loadCB","removeEventListener","messageIds","onMessage","self","message","data","Array","isArray","messageId","error","result","callback","_callbacks","PromiseWorker","worker","_worker","prototype","postMessage","userMessage","messageToSend","Promise","resolve","reject","Error","controller","MessageChannel","port1","onmessage","port2","defaults","srcset","selector","root","rootMargin","threshold","LazyLoad","constructor","elms","obs","doLoad","settings","toLowerCase","backgroundImage","Object","assign","querySelectorAll","init","IntersectionObserver","load","entries","entry","isIntersecting","unobserve","target","image","observe","loadAndDestroy","destroy","disconnect","lazyload","images","clearButterbar","butterBar","getElementsByClassName","createButterbar","keep","readyFunctionList","onlyOnceATime","func","isRunning","args","finally","console","warn","whileReady","fn","readyState","push","getFileNameMain","fileName","slideToggle","duration","mode","dom","status","flag","transition","clearTimeout","tagTimer","display","tagHeight","clientHeight","buildAPI","apiPath","params","nonce","path","URL","searchParams","key","set","Poi","toString","mediaQuery","matchMedia","inDarkMode","isInDarkMode","informDarkModeChange","nextValue","dispatchEvent","CustomEvent","detail","mediaQueryCallback","localStorage","getItem","matches","darkmode","turnOnDarkMode","turnOffDarkMode","saveUserSetting","ifDarkmodeShouldOn","removeItem","setItem","userTriggered","documentElement","dm_strategy","today","Date","getHours","checkTime","checkDarkModeSetting","dark","removeListener","addListener","__","defaultStr","_sakurairoi18n","_$","replacements","template","index","sakurairoGlobal","opt","registerOnGlobal","defineProperty","writable","enumerable","_sakurairo","__webpack_module_cache__","__webpack_require__","cachedModule","undefined","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","keys","every","splice","n","getter","__esModule","d","getPrototypeOf","obj","__proto__","t","then","ns","create","def","current","indexOf","getOwnPropertyNames","definition","o","get","f","chunkId","all","reduce","promises","globalThis","Function","url","done","script","needAttach","scripts","s","charset","timeout","nc","onScriptComplete","prev","event","onerror","onload","doneFns","bind","head","Symbol","toStringTag","scriptUrl","importScripts","location","currentScript","baseURI","installedChunks","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","intervalId","navigator","userAgentData","test","userAgent","indexedDB","databases","tryIdb","setInterval","clearInterval","promisifyRequest","oncomplete","onsuccess","onabort","createStore","dbName","storeName","dbp","onupgradeneeded","createObjectStore","txMode","db","transaction","objectStore","store","_a","_version_ctrl","cookie_version_control","UA","uaMatches","from","matchAll","isSupported","checkList","_","version","parseFloat","Accept_Image","acceptList","Chrome","OPR","Firefox","Edg","AppleWebKit","days","expires","now","toUTCString","cookie","setCookie","reverse","join","setAcceptImage","bgn","blob_url","async","nextBG","changeCoverBG","getCoverPath","preBG","centerbg","site_bg_as_cover","parseCSSUrl","match","getCurrentBG","getAPIPath","useBGN","cover_api_url","cover_api","clientWidth","random_graphs_mts","search","cache_cover","coverBG","ArrayBuffer","revokeObjectURL","createObjectURL","Blob","resp","fetch","headers","Accept","ok","buf","arrayBuffer","put","TypeError","delete","fetchAndCache","initCoverBG","background","land_at_home","txt","author_name","site_name","copytext","selectionText","selectionTxt","preventDefault","htmlData","textData","clipboardData","setData","setClipboardText","add_copyright","clipboardCopyright","removeScreen","preload","preload_blur","animate","filter","backdropFilter","opacity","fill","easing","onfinish","hitokoto","yiyan","yiyan_api","api_path","innerText","api","res","json","from_who","web_audio","audio","AudioContext","webkitAudioContext","ctx","sheet","split","readSheetOption","select","createOscillator","createGain","mainGain","connect","destination","gain","setValueAtTime","main_gain","currentTime","frequency","linearRampToValueAtTime","start","exponentialRampToValueAtTime","stop","h","pageX","pageY","zIndex","stopPropagation","mainContainer","toggle","load_post_timer","load_post","now_href","pagination_a","contains","text","DOM","DOMParser","parseFromString","paga","paga_innerText","nextHref","main","append","dpga","addps","post_list_show_animation","tempScrollTop","scrollTop","io","article","willChange","articles","XLS_Listener","XLS","intersectionRatio","_page_next","href_page_next","load_key","load_time","title","log","naturalWidth","naturalHeight","sqrt","drawImage","getImageData","btnSerif","btnSansSerif","Worker","updateThemeSkin","coverBGUrl","imgElement","k","iteration","img","label","centroid","sort","metaLight","content","map","floor","_updateThemeSkin","slice","concat","findIndex","change_font_listener","btn","dataset","setButtonState","loadFontSetting","nowFont","font_name","initFontControl","bgvideo","videoList","movies","unplayedIndex","getVideo","video_stu","nextIndex","_getNextRandomVideo","bottom","origin","splay","video_btn","float_player_on","destroyAllAplayer","spause","coverVideoIni","videos","canPlayType","autoplay","Hls","default","reason","hls","loadSource","attachMedia","on","Events","MANIFEST_PARSED","initHLS","canPlayHandler","lazyloadPatch","poster","QueryStorage","search_result","keyword","link","fa","iconfont","comments","trim","toUpperCase","query","B","F","G","D","array","v","values","RegExp","Cx","H","div_href","search_close","Ty","click","jsSearchCallback","live_search","val","otxt","sessionStorage","JSON","parse","catch","search_a","searchFlag","oninput","checkSkinSecter","mashiro_global","variables","skinSecter","pattern","headertop","no_right_click","pri","changeBG","bgid","now_bg_url","bg_url","skin_bg0","skin_bg1","skin_bg2","skin_bg3","skin_bg4","bgButtonAddListener","next","pre","onclick","topFunction","timeSeriesReload","archives","al_li","nextElementSibling","al_expand_collapse","cursor","num","al_post_list","al_post_list_f","al_expand_collapse_click","MN","iconflat","close","auto_height","windowheight","minHeight","PE","blank","paddingTop","live","oncanplay","livepause","CE","comments_fold","comments_main","h3","sc","js_search","show_Nav","sln","loading","NH","siteHeader","closeSkinMenu","pjax","Pjax","selectors","defaultTrigger","exclude","jsdelivr_css_src","entry_content_style_src","aplayerInit","secondary","show_hide","activate_widget","NProgressON","NProgress","_p","_div","tla","openNav","script_app","script_app_page","gtag","google_analytics_id","pathname","_hmt","pageURL","hash","tabIndex","focus","tagid","changskin","close_SkinMenu","mb_to_top","transform","GT","onended","video_add","preload_screen","skinMenu"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"app.js","mappings":"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","sources":["webpack://sakurairo-scripts/webpack/runtime/chunk loaded","webpack://sakurairo-scripts/webpack/runtime/create fake namespace object","webpack://sakurairo-scripts/webpack/runtime/load script","webpack://sakurairo-scripts/./node_modules/activate-power-mode/dist/activate-power-mode.js","webpack://sakurairo-scripts/./src/sakura-app/global-func.js","webpack://sakurairo-scripts/./node_modules/color-space/lab.js","webpack://sakurairo-scripts/./node_modules/color-space/rgb.js","webpack://sakurairo-scripts/./node_modules/color-space/xyz.js","webpack://sakurairo-scripts/./node_modules/fg-loadcss/src/loadCSS.js","webpack://sakurairo-scripts/./node_modules/promise-worker/index.js","webpack://sakurairo-scripts/./node_modules/lazyload/src/lazyload.ts","webpack://sakurairo-scripts/./src/common/butterbar.ts","webpack://sakurairo-scripts/./src/common/util.ts","webpack://sakurairo-scripts/./src/sakura-app/darkmode.ts","webpack://sakurairo-scripts/./src/sakura-app/sakurairo_global.ts","webpack://sakurairo-scripts/webpack/bootstrap","webpack://sakurairo-scripts/webpack/runtime/compat get default export","webpack://sakurairo-scripts/webpack/runtime/define property getters","webpack://sakurairo-scripts/webpack/runtime/ensure chunk","webpack://sakurairo-scripts/webpack/runtime/get javascript chunk filename","webpack://sakurairo-scripts/webpack/runtime/global","webpack://sakurairo-scripts/webpack/runtime/hasOwnProperty shorthand","webpack://sakurairo-scripts/webpack/runtime/make namespace object","webpack://sakurairo-scripts/webpack/runtime/publicPath","webpack://sakurairo-scripts/webpack/runtime/jsonp chunk loading","webpack://sakurairo-scripts/./node_modules/safari-14-idb-fix/dist/index.js","webpack://sakurairo-scripts/./node_modules/idb-keyval/dist/index.js","webpack://sakurairo-scripts/./src/sakura-app/cache.ts","webpack://sakurairo-scripts/./src/common/cookie.ts","webpack://sakurairo-scripts/./src/sakura-app/compatibility.ts","webpack://sakurairo-scripts/./src/sakura-app/coverBackground.ts","webpack://sakurairo-scripts/./src/sakura-app/copyright.ts","webpack://sakurairo-scripts/./src/sakura-app/preload_screen.ts","webpack://sakurairo-scripts/./src/sakura-app/hitokoto.ts","webpack://sakurairo-scripts/./src/sakura-app/web_audio.ts","webpack://sakurairo-scripts/./src/sakura-app/mobile_nav.ts","webpack://sakurairo-scripts/./src/sakura-app/posts.js","webpack://sakurairo-scripts/./node_modules/@kotorik/palette/dist/index.mjs","webpack://sakurairo-scripts/./src/sakura-app/theme-color/index.ts","webpack://sakurairo-scripts/./src/sakura-app/font_control.ts","webpack://sakurairo-scripts/./src/sakura-app/video.ts","webpack://sakurairo-scripts/./src/sakura-app/search.ts","webpack://sakurairo-scripts/./src/sakura-app/index.js","webpack://sakurairo-scripts/./src/sakura-app/about_us.ts"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"sakurairo-scripts:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"POWERMODE\"] = factory();\n\telse\n\t\troot[\"POWERMODE\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar canvas = document.createElement('canvas');\n\tcanvas.width = window.innerWidth;\n\tcanvas.height = window.innerHeight;\n\tcanvas.style.cssText = 'position:fixed;top:0;left:0;pointer-events:none;z-index:999999';\n\twindow.addEventListener('resize', function () {\n\t canvas.width = window.innerWidth;\n\t canvas.height = window.innerHeight;\n\t});\n\tdocument.body.appendChild(canvas);\n\tvar context = canvas.getContext('2d');\n\tvar particles = [];\n\tvar particlePointer = 0;\n\tvar rendering = false;\n\n\tPOWERMODE.shake = true;\n\n\tfunction getRandom(min, max) {\n\t return Math.random() * (max - min) + min;\n\t}\n\n\tfunction getColor(el) {\n\t if (POWERMODE.colorful) {\n\t var u = getRandom(0, 360);\n\t return 'hsla(' + getRandom(u - 10, u + 10) + ', 100%, ' + getRandom(50, 80) + '%, ' + 1 + ')';\n\t } else {\n\t return window.getComputedStyle(el).color;\n\t }\n\t}\n\n\tfunction getCaret() {\n\t var el = document.activeElement;\n\t var bcr;\n\t if (el.tagName === 'TEXTAREA' ||\n\t (el.tagName === 'INPUT' && el.getAttribute('type') === 'text')) {\n\t var offset = __webpack_require__(1)(el, el.selectionEnd);\n\t bcr = el.getBoundingClientRect();\n\t return {\n\t x: offset.left + bcr.left,\n\t y: offset.top + bcr.top,\n\t color: getColor(el)\n\t };\n\t }\n\t var selection = window.getSelection();\n\t if (selection.rangeCount) {\n\t var range = selection.getRangeAt(0);\n\t var startNode = range.startContainer;\n\t if (startNode.nodeType === document.TEXT_NODE) {\n\t startNode = startNode.parentNode;\n\t }\n\t bcr = range.getBoundingClientRect();\n\t return {\n\t x: bcr.left,\n\t y: bcr.top,\n\t color: getColor(startNode)\n\t };\n\t }\n\t return { x: 0, y: 0, color: 'transparent' };\n\t}\n\n\tfunction createParticle(x, y, color) {\n\t return {\n\t x: x,\n\t y: y,\n\t alpha: 1,\n\t color: color,\n\t velocity: {\n\t x: -1 + Math.random() * 2,\n\t y: -3.5 + Math.random() * 2\n\t }\n\t };\n\t}\n\n\tfunction POWERMODE() {\n\t { // spawn particles\n\t var caret = getCaret();\n\t var numParticles = 5 + Math.round(Math.random() * 10);\n\t while (numParticles--) {\n\t particles[particlePointer] = createParticle(caret.x, caret.y, caret.color);\n\t particlePointer = (particlePointer + 1) % 500;\n\t }\n\t }\n\t { // shake screen\n\t if (POWERMODE.shake) {\n\t var intensity = 1 + 2 * Math.random();\n\t var x = intensity * (Math.random() > 0.5 ? -1 : 1);\n\t var y = intensity * (Math.random() > 0.5 ? -1 : 1);\n\t document.body.style.marginLeft = x + 'px';\n\t document.body.style.marginTop = y + 'px';\n\t setTimeout(function() {\n\t document.body.style.marginLeft = '';\n\t document.body.style.marginTop = '';\n\t }, 75);\n\t }\n\t }\n\t if(!rendering){\n\t requestAnimationFrame(loop);\n\t }\n\t};\n\tPOWERMODE.colorful = false;\n\n\tfunction loop() {\n\t rendering = true;\n\t context.clearRect(0, 0, canvas.width, canvas.height);\n\t var rendered = false;\n\t var rect = canvas.getBoundingClientRect();\n\t for (var i = 0; i < particles.length; ++i) {\n\t var particle = particles[i];\n\t if (particle.alpha <= 0.1) continue;\n\t particle.velocity.y += 0.075;\n\t particle.x += particle.velocity.x;\n\t particle.y += particle.velocity.y;\n\t particle.alpha *= 0.96;\n\t context.globalAlpha = particle.alpha;\n\t context.fillStyle = particle.color;\n\t context.fillRect(\n\t Math.round(particle.x - 1.5) - rect.left,\n\t Math.round(particle.y - 1.5) - rect.top,\n\t 3, 3\n\t );\n\t rendered = true;\n\t }\n\t if(rendered){\n\t requestAnimationFrame(loop);\n\t }else{\n\t rendering = false;\n\t }\n\t}\n\n\tmodule.exports = POWERMODE;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t/* jshint browser: true */\n\n\t(function () {\n\n\t// The properties that we copy into a mirrored div.\n\t// Note that some browsers, such as Firefox,\n\t// do not concatenate properties, i.e. padding-top, bottom etc. -> padding,\n\t// so we have to do every single property specifically.\n\tvar properties = [\n\t 'direction', // RTL support\n\t 'boxSizing',\n\t 'width', // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\n\t 'height',\n\t 'overflowX',\n\t 'overflowY', // copy the scrollbar for IE\n\n\t 'borderTopWidth',\n\t 'borderRightWidth',\n\t 'borderBottomWidth',\n\t 'borderLeftWidth',\n\t 'borderStyle',\n\n\t 'paddingTop',\n\t 'paddingRight',\n\t 'paddingBottom',\n\t 'paddingLeft',\n\n\t // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n\t 'fontStyle',\n\t 'fontVariant',\n\t 'fontWeight',\n\t 'fontStretch',\n\t 'fontSize',\n\t 'fontSizeAdjust',\n\t 'lineHeight',\n\t 'fontFamily',\n\n\t 'textAlign',\n\t 'textTransform',\n\t 'textIndent',\n\t 'textDecoration', // might not make a difference, but better be safe\n\n\t 'letterSpacing',\n\t 'wordSpacing',\n\n\t 'tabSize',\n\t 'MozTabSize'\n\n\t];\n\n\tvar isFirefox = window.mozInnerScreenX != null;\n\n\tfunction getCaretCoordinates(element, position, options) {\n\n\t var debug = options && options.debug || false;\n\t if (debug) {\n\t var el = document.querySelector('#input-textarea-caret-position-mirror-div');\n\t if ( el ) { el.parentNode.removeChild(el); }\n\t }\n\n\t // mirrored div\n\t var div = document.createElement('div');\n\t div.id = 'input-textarea-caret-position-mirror-div';\n\t document.body.appendChild(div);\n\n\t var style = div.style;\n\t var computed = window.getComputedStyle? getComputedStyle(element) : element.currentStyle; // currentStyle for IE < 9\n\n\t // default textarea styles\n\t style.whiteSpace = 'pre-wrap';\n\t if (element.nodeName !== 'INPUT')\n\t style.wordWrap = 'break-word'; // only for textarea-s\n\n\t // position off-screen\n\t style.position = 'absolute'; // required to return coordinates properly\n\t if (!debug)\n\t style.visibility = 'hidden'; // not 'display: none' because we want rendering\n\n\t // transfer the element's properties to the div\n\t properties.forEach(function (prop) {\n\t style[prop] = computed[prop];\n\t });\n\n\t if (isFirefox) {\n\t // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n\t if (element.scrollHeight > parseInt(computed.height))\n\t style.overflowY = 'scroll';\n\t } else {\n\t style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n\t }\n\n\t div.textContent = element.value.substring(0, position);\n\t // the second special handling for input type=\"text\" vs textarea: spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n\t if (element.nodeName === 'INPUT')\n\t div.textContent = div.textContent.replace(/\\s/g, \"\\u00a0\");\n\n\t var span = document.createElement('span');\n\t // Wrapping must be replicated *exactly*, including when a long word gets\n\t // onto the next line, with whitespace at the end of the line before (#7).\n\t // The *only* reliable way to do that is to copy the *entire* rest of the\n\t // textarea's content into the created at the caret position.\n\t // for inputs, just '.' would be enough, but why bother?\n\t span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\n\t div.appendChild(span);\n\n\t var coordinates = {\n\t top: span.offsetTop + parseInt(computed['borderTopWidth']),\n\t left: span.offsetLeft + parseInt(computed['borderLeftWidth'])\n\t };\n\n\t if (debug) {\n\t span.style.backgroundColor = '#aaa';\n\t } else {\n\t document.body.removeChild(div);\n\t }\n\n\t return coordinates;\n\t}\n\n\tif (typeof module != \"undefined\" && typeof module.exports != \"undefined\") {\n\t module.exports = getCaretCoordinates;\n\t} else {\n\t window.getCaretCoordinates = getCaretCoordinates;\n\t}\n\n\t}());\n\n/***/ })\n/******/ ])\n});\n;","function imgError(ele, type) {\n switch (type) {\n case 1:\n ele.src = 'https://view.moezx.cc/images/2017/12/30/Transparent_Akkarin.th.jpg';\n break;\n case 2:\n ele.src = 'https://sdn.geekzu.org/avatar/?s=80&d=mm&r=g';\n break;\n default:\n ele.src = 'https://view.moezx.cc/images/2018/05/13/image-404.png';\n }\n}\nfunction cmt_showPopup(ele) {\n let popup = ele.querySelector(\"#thePopup\");\n popup.classList.add(\"show\");\n ele.querySelector(\"input\").onblur = () => {\n popup.classList.remove(\"show\");\n }\n}\n/*视频feature*/\nfunction coverVideo() {\n let video = document.getElementById(\"coverVideo\"),\n btn_playControl = document.getElementById(\"cv-pc\");\n\n if (video.paused) {\n video.play();\n try {\n btn_playControl.innerHTML = '';\n } catch { };\n //console.info('play:coverVideo()');\n } else {\n video.pause();\n try {\n btn_playControl.innerHTML = '';\n } catch { };\n //console.info('pause:coverVideo()');\n }\n}\nfunction coverVideoMute() {\n const video = document.getElementById(\"coverVideo\")\n const btn_volumeControl = document.getElementById(\"cv-vc\");\n if (video.muted) {\n video.muted = false\n btn_volumeControl.innerHTML = ''\n } else {\n video.muted = true\n btn_volumeControl.innerHTML = ''\n }\n}\nfunction killCoverVideo() {\n var video = document.getElementById(\"coverVideo\");\n var btn_playControl = document.getElementById(\"cv-pc\");\n\n if (video.paused) {\n //console.info('none:killCoverVideo()');\n } else {\n video.pause();\n try {\n btn_playControl.innerHTML = '';\n } catch (e) { };\n //console.info('pause:killCoverVideo()');\n }\n}\n\nfunction mail_me() {\n window.open(\"mailto:\" + mashiro_option.email_name + \"@\" + mashiro_option.email_domain);\n}\n/* 首页下拉箭头 */\nfunction headertop_down() {\n let coverOffset = document.getElementById(\"content\").getBoundingClientRect().top + window.pageYOffset;\n window.scrollTo({\n top: coverOffset,\n behavior: \"smooth\"\n });\n}\nwindow.imgError = imgError\nwindow.cmt_showPopup = cmt_showPopup\nwindow.coverVideo = coverVideo\nwindow.coverVideoMute = coverVideoMute\nwindow.killCoverVideo = killCoverVideo\nwindow.mail_me = mail_me\nwindow.headertop_down = headertop_down","/**\n * CIE LAB space model\n *\n * @module color-space/lab\n */\n'use strict'\n\nvar xyz = require('./xyz');\n\nmodule.exports = {\n\tname: 'lab',\n\tmin: [0,-100,-100],\n\tmax: [100,100,100],\n\tchannel: ['lightness', 'a', 'b'],\n\talias: ['LAB', 'cielab'],\n\n\txyz: function(lab) {\n\t\tvar l = lab[0],\n\t\t\t\ta = lab[1],\n\t\t\t\tb = lab[2],\n\t\t\t\tx, y, z, y2;\n\n\t\tif (l <= 8) {\n\t\t\ty = (l * 100) / 903.3;\n\t\t\ty2 = (7.787 * (y / 100)) + (16 / 116);\n\t\t} else {\n\t\t\ty = 100 * Math.pow((l + 16) / 116, 3);\n\t\t\ty2 = Math.pow(y / 100, 1/3);\n\t\t}\n\n\t\tx = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);\n\n\t\tz = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);\n\n\t\treturn [x, y, z];\n\t}\n};\n\n\n//extend xyz\nxyz.lab = function(xyz){\n\tvar x = xyz[0],\n\t\t\ty = xyz[1],\n\t\t\tz = xyz[2],\n\t\t\tl, a, b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n","/**\n * RGB space.\n *\n * @module color-space/rgb\n */\n'use strict'\n\nmodule.exports = {\n\tname: 'rgb',\n\tmin: [0,0,0],\n\tmax: [255,255,255],\n\tchannel: ['red', 'green', 'blue'],\n\talias: ['RGB']\n};\n","/**\n * CIE XYZ\n *\n * @module color-space/xyz\n */\n'use strict'\n\nvar rgb = require('./rgb');\n\nvar xyz = {\n\tname: 'xyz',\n\tmin: [0,0,0],\n\tchannel: ['X','Y','Z'],\n\talias: ['XYZ', 'ciexyz', 'cie1931']\n};\n\n\n/**\n * Whitepoint reference values with observer/illuminant\n *\n * http://en.wikipedia.org/wiki/Standard_illuminant\n */\nxyz.whitepoint = {\n\t//1931 2°\n\t2: {\n\t\t//incadescent\n\t\tA:[109.85, 100, 35.585],\n\t\t// B:[],\n\t\tC: [98.074, 100, 118.232],\n\t\tD50: [96.422, 100, 82.521],\n\t\tD55: [95.682, 100, 92.149],\n\t\t//daylight\n\t\tD65: [95.045592705167, 100, 108.9057750759878],\n\t\tD75: [94.972, 100, 122.638],\n\t\t//flourescent\n\t\t// F1: [],\n\t\tF2: [99.187, 100, 67.395],\n\t\t// F3: [],\n\t\t// F4: [],\n\t\t// F5: [],\n\t\t// F6:[],\n\t\tF7: [95.044, 100, 108.755],\n\t\t// F8: [],\n\t\t// F9: [],\n\t\t// F10: [],\n\t\tF11: [100.966, 100, 64.370],\n\t\t// F12: [],\n\t\tE: [100,100,100]\n\t},\n\n\t//1964 10°\n\t10: {\n\t\t//incadescent\n\t\tA:[111.144, 100, 35.200],\n\t\tC: [97.285, 100, 116.145],\n\t\tD50: [96.720, 100, 81.427],\n\t\tD55: [95.799, 100, 90.926],\n\t\t//daylight\n\t\tD65: [94.811, 100, 107.304],\n\t\tD75: [94.416, 100, 120.641],\n\t\t//flourescent\n\t\tF2: [103.280, 100, 69.026],\n\t\tF7: [95.792, 100, 107.687],\n\t\tF11: [103.866, 100, 65.627],\n\t\tE: [100,100,100]\n\t}\n};\n\n\n/**\n * Top values are the whitepoint’s top values, default are D65\n */\nxyz.max = xyz.whitepoint[2].D65;\n\n\n/**\n * Transform xyz to rgb\n *\n * @param {Array} xyz Array of xyz values\n *\n * @return {Array} RGB values\n */\nxyz.rgb = function (_xyz, white) {\n\t//FIXME: make sure we have to divide like this. Probably we have to replace matrix as well then\n\twhite = white || xyz.whitepoint[2].E;\n\n\tvar x = _xyz[0] / white[0],\n\t\ty = _xyz[1] / white[1],\n\t\tz = _xyz[2] / white[2],\n\t\tr, g, b;\n\n\t// assume sRGB\n\t// http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\tr = (x * 3.240969941904521) + (y * -1.537383177570093) + (z * -0.498610760293);\n\tg = (x * -0.96924363628087) + (y * 1.87596750150772) + (z * 0.041555057407175);\n\tb = (x * 0.055630079696993) + (y * -0.20397695888897) + (z * 1.056971514242878);\n\n\tr = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r = (r * 12.92);\n\n\tg = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g = (g * 12.92);\n\n\tb = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b = (b * 12.92);\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n}\n\n\n\n/**\n * RGB to XYZ\n *\n * @param {Array} rgb RGB channels\n *\n * @return {Array} XYZ channels\n */\nrgb.xyz = function(rgb, white) {\n\tvar r = rgb[0] / 255,\n\t\t\tg = rgb[1] / 255,\n\t\t\tb = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.41239079926595) + (g * 0.35758433938387) + (b * 0.18048078840183);\n\tvar y = (r * 0.21263900587151) + (g * 0.71516867876775) + (b * 0.072192315360733);\n\tvar z = (r * 0.019330818715591) + (g * 0.11919477979462) + (b * 0.95053215224966);\n\n\twhite = white || xyz.whitepoint[2].E;\n\n\treturn [x * white[0], y * white[1], z * white[2]];\n};\n\n\n\nmodule.exports = xyz;\n","/*! loadCSS. [c]2020 Filament Group, Inc. MIT License */\n(function(w){\n\t\"use strict\";\n\t/* exported loadCSS */\n\tvar loadCSS = function( href, before, media, attributes ){\n\t\t// Arguments explained:\n\t\t// `href` [REQUIRED] is the URL for your CSS file.\n\t\t// `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet before\n\t\t// By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document.\n\t\t// `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all'\n\t\t// `attributes` [OPTIONAL] is the Object of attribute name/attribute value pairs to set on the stylesheet's DOM Element.\n\t\tvar doc = w.document;\n\t\tvar ss = doc.createElement( \"link\" );\n\t\tvar ref;\n\t\tif( before ){\n\t\t\tref = before;\n\t\t}\n\t\telse {\n\t\t\tvar refs = ( doc.body || doc.getElementsByTagName( \"head\" )[ 0 ] ).childNodes;\n\t\t\tref = refs[ refs.length - 1];\n\t\t}\n\n\t\tvar sheets = doc.styleSheets;\n\t\t// Set any of the provided attributes to the stylesheet DOM Element.\n\t\tif( attributes ){\n\t\t\tfor( var attributeName in attributes ){\n\t\t\t\tif( attributes.hasOwnProperty( attributeName ) ){\n\t\t\t\t\tss.setAttribute( attributeName, attributes[attributeName] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tss.rel = \"stylesheet\";\n\t\tss.href = href;\n\t\t// temporarily set media to something inapplicable to ensure it'll fetch without blocking render\n\t\tss.media = \"only x\";\n\n\t\t// wait until body is defined before injecting link. This ensures a non-blocking load in IE11.\n\t\tfunction ready( cb ){\n\t\t\tif( doc.body ){\n\t\t\t\treturn cb();\n\t\t\t}\n\t\t\tsetTimeout(function(){\n\t\t\t\tready( cb );\n\t\t\t});\n\t\t}\n\t\t// Inject link\n\t\t\t// Note: the ternary preserves the existing behavior of \"before\" argument, but we could choose to change the argument to \"after\" in a later release and standardize on ref.nextSibling for all refs\n\t\t\t// Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/\n\t\tready( function(){\n\t\t\tref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) );\n\t\t});\n\t\t// A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet.\n\t\tvar onloadcssdefined = function( cb ){\n\t\t\tvar resolvedHref = ss.href;\n\t\t\tvar i = sheets.length;\n\t\t\twhile( i-- ){\n\t\t\t\tif( sheets[ i ].href === resolvedHref ){\n\t\t\t\t\treturn cb();\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetTimeout(function() {\n\t\t\t\tonloadcssdefined( cb );\n\t\t\t});\n\t\t};\n\n\t\tfunction loadCB(){\n\t\t\tif( ss.addEventListener ){\n\t\t\t\tss.removeEventListener( \"load\", loadCB );\n\t\t\t}\n\t\t\tss.media = media || \"all\";\n\t\t}\n\n\t\t// once loaded, set link's media back to `all` so that the stylesheet applies once it loads\n\t\tif( ss.addEventListener ){\n\t\t\tss.addEventListener( \"load\", loadCB);\n\t\t}\n\t\tss.onloadcssdefined = onloadcssdefined;\n\t\tonloadcssdefined( loadCB );\n\t\treturn ss;\n\t};\n\t// commonjs\n\tif( typeof exports !== \"undefined\" ){\n\t\texports.loadCSS = loadCSS;\n\t}\n\telse {\n\t\tw.loadCSS = loadCSS;\n\t}\n}( typeof global !== \"undefined\" ? global : this ));\n","'use strict'\n\nvar messageIds = 0\n\nfunction onMessage (self, e) {\n var message = e.data\n if (!Array.isArray(message) || message.length < 2) {\n // Ignore - this message is not for us.\n return\n }\n var messageId = message[0]\n var error = message[1]\n var result = message[2]\n\n var callback = self._callbacks[messageId]\n\n if (!callback) {\n // Ignore - user might have created multiple PromiseWorkers.\n // This message is not for us.\n return\n }\n\n delete self._callbacks[messageId]\n callback(error, result)\n}\n\nfunction PromiseWorker (worker) {\n var self = this\n self._worker = worker\n self._callbacks = {}\n\n worker.addEventListener('message', function (e) {\n onMessage(self, e)\n })\n}\n\nPromiseWorker.prototype.postMessage = function (userMessage) {\n var self = this\n var messageId = messageIds++\n\n var messageToSend = [messageId, userMessage]\n\n return new Promise(function (resolve, reject) {\n self._callbacks[messageId] = function (error, result) {\n if (error) {\n return reject(new Error(error.message))\n }\n resolve(result)\n }\n\n /* istanbul ignore if */\n if (typeof self._worker.controller !== 'undefined') {\n // service worker, use MessageChannels because e.source is broken in Chrome < 51:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=543198\n var channel = new MessageChannel()\n channel.port1.onmessage = function (e) {\n onMessage(self, e)\n }\n self._worker.controller.postMessage(messageToSend, [channel.port2])\n } else {\n // web worker\n self._worker.postMessage(messageToSend)\n }\n })\n}\n\nmodule.exports = PromiseWorker\n","/**\n * default option\n */\nconst defaults = {\n src: \"data-src\",\n srcset: \"data-srcset\",\n selector: \".lazyload\",\n root: null,\n rootMargin: \"0px\",\n threshold: 0\n};\n/**\n * @class LazyLoad\n */\nexport default class LazyLoad {\n constructor(elms, options) {\n this.obs = null;\n this.doLoad = (element) => {\n const { settings } = this;\n const src = element.getAttribute(settings.src);\n const srcset = element.getAttribute(settings.srcset);\n const tagName = element.tagName.toLowerCase();\n if (tagName === 'video') {\n if (src) {\n element.src = src;\n }\n }\n else if (tagName === 'img') {\n if (src) {\n element.src = src;\n }\n if (srcset) {\n //@ts-ignore\n element.srcset = srcset;\n }\n }\n else {\n element.style.backgroundImage = \"url('\" + src + \"')\";\n }\n };\n this.settings = Object.assign(Object.assign({}, defaults), options);\n this.elms = elms || document.querySelectorAll(this.settings.selector);\n this.init();\n }\n init() {\n /* Without observers load everything and bail out early. */\n if (!IntersectionObserver) {\n this.load();\n return;\n }\n const self = this;\n this.obs = new IntersectionObserver(function (entries) {\n Array.prototype.forEach.call(entries, function (entry) {\n if (entry.isIntersecting) {\n self.obs.unobserve(entry.target);\n self.doLoad(entry.target);\n }\n });\n }, {\n root: this.settings.root,\n rootMargin: this.settings.rootMargin,\n threshold: [this.settings.threshold]\n });\n this.elms.forEach((image) => {\n self.obs.observe(image);\n });\n }\n loadAndDestroy() {\n if (!this.settings) {\n return;\n }\n this.load();\n this.destroy();\n }\n load() {\n if (!this.settings) {\n return;\n }\n const { settings } = this;\n Array.prototype.forEach.call(this.elms, this.doLoad);\n }\n /**\n * Destroy Lazyload Instance\n * @returns\n */\n destroy() {\n if (!this.settings) {\n return;\n }\n this.obs.disconnect();\n this.settings = null;\n }\n}\nexport const lazyload = (images, options) => new LazyLoad(images, options);\n","export function clearButterbar() {\n const butterBar = document.getElementsByClassName(\"butterBar\");\n if (butterBar.length > 0) {\n for (let i = 0; i < butterBar.length; i++) {\n butterBar[i].remove();\n }\n }\n}\nexport function createButterbar(message, keep) {\n clearButterbar();\n /* document.body.insertAdjacentHTML('beforeend', '

' + message + '

');\n */\n const div = document.createElement('div');\n const p = document.createElement('p');\n div.classList.add('butterBar', 'butterBar--center');\n p.classList.add('butterBar-message');\n p.innerHTML = message;\n div.appendChild(p);\n document.body.appendChild(div);\n if (keep !== true)\n setTimeout(() => { clearButterbar(); }, typeof keep == 'number' ? keep : 6000);\n return div;\n}\n","let readyFunctionList = [];\n/**\n * 传入的函数同时间只能运行一个\n * @param func 要包装的函数\n * @returns 包装后的函数\n */\nexport const onlyOnceATime = (func) => {\n let isRunning = false;\n return (...args) => {\n if (!isRunning) {\n isRunning = true;\n try {\n const result = func(...args);\n if (result instanceof Promise) {\n result.finally(() => isRunning = false);\n }\n else {\n isRunning = false;\n }\n return result;\n }\n catch (e) {\n console.warn(e);\n isRunning = false;\n }\n }\n };\n};\nconst whileReady = () => {\n document.removeEventListener('DOMContentLoaded', whileReady);\n for (const fn of readyFunctionList) {\n fn();\n }\n readyFunctionList = [];\n};\n/**\n * 延迟函数到DOM树加载完成后执行\n * @seealso https://developer.mozilla.org/zh-CN/docs/Web/API/Document/readyState\n * @param fn 要延迟执行的函数\n */\nexport const ready = function (fn) {\n //interactive:等价于事件DOMContentLoaded\n //complete:等价于事件load\n if (document.readyState !== 'loading') {\n return fn();\n }\n if (readyFunctionList.length == 0) {\n document.addEventListener('DOMContentLoaded', whileReady, false);\n }\n readyFunctionList.push(fn);\n};\n/**\n * 获取文件名的主名部分(即去除扩展名)\n * @param fileName 文件名\n * @returns 主名\n */\nexport const getFileNameMain = (fileName) => fileName.replace(/\\.\\w+$/, '');\nexport function slideToggle(el, duration = 1000, mode = '', callback) {\n let dom = el;\n dom.status = dom.status || getComputedStyle(dom, null)['display'];\n const flag = dom.status != 'none';\n if ((flag == true && mode == \"show\") || (flag == false && mode == \"hide\"))\n return;\n dom.status = flag ? 'none' : 'block';\n dom.style.transition = 'height ' + duration / 1000 + 's';\n dom.style.overflow = 'hidden';\n clearTimeout(dom.tagTimer);\n dom.tagTimer = dom.tagTimer || null;\n dom.style.display = 'block';\n dom.tagHeight = dom.tagHeight || dom.clientHeight + 'px';\n dom.style.display = '';\n dom.style.height = flag ? dom.tagHeight : \"0px\";\n setTimeout(() => {\n dom.style.height = flag ? \"0px\" : dom.tagHeight;\n }, 0);\n dom.tagTimer = setTimeout(() => {\n dom.style.display = flag ? 'none' : 'block';\n dom.style.transition = '';\n dom.style.overflow = '';\n dom.style.height = '';\n dom.status = dom.tagHeight = null;\n }, duration);\n if (callback)\n callback();\n}\nexport function buildAPI(apiPath, params = {}, nonce = true) {\n const path = new URL(apiPath);\n const { searchParams } = path;\n for (const [key, value] of Object.entries(params)) {\n searchParams.set(key, value);\n }\n if (nonce)\n searchParams.set(\"_wpnonce\", Poi.nonce);\n return path.toString();\n}\n","const mediaQuery = window.matchMedia('(prefers-color-scheme:dark)');\nlet inDarkMode = false;\nexport const isInDarkMode = () => inDarkMode;\nfunction informDarkModeChange(nextValue) {\n if (nextValue !== inDarkMode) {\n document.dispatchEvent(new CustomEvent(\"darkmode\", { detail: nextValue }));\n inDarkMode = nextValue;\n }\n}\nfunction mediaQueryCallback() {\n const dark = localStorage.getItem(\"dark\");\n //仅在深色模式不是用户主动设置时触发\n if (!dark) {\n if (mediaQuery.matches && mashiro_option.darkmode) {\n turnOnDarkMode();\n }\n else {\n turnOffDarkMode();\n }\n }\n}\nif (mashiro_option.dm_strategy === 'client') {\n mediaQuery.removeEventListener ? mediaQuery.removeEventListener('change', mediaQueryCallback) : mediaQuery.removeListener(mediaQueryCallback);\n mediaQuery.addEventListener ? mediaQuery.addEventListener('change', mediaQueryCallback) : mediaQuery.addListener(mediaQueryCallback);\n}\nfunction saveUserSetting(value) {\n if (value == ifDarkmodeShouldOn()) {\n //用户设置与自动切换深色模式判断一致时,恢复自动切换\n localStorage.removeItem('dark');\n }\n else {\n if (value == true) {\n localStorage.setItem(\"dark\", \"1\");\n }\n else {\n localStorage.setItem(\"dark\", \"0\");\n }\n }\n //localStorage.setItem(\"bgImgSetting\", \"white-bg\");\n}\nexport function turnOnDarkMode(userTriggered) {\n document.documentElement.style.backgroundColor = \"#333\";\n document.getElementsByClassName(\"site-content\")[0].style.backgroundColor = \"#333\";\n document.body.classList.add(\"dark\");\n if (userTriggered)\n saveUserSetting(true);\n informDarkModeChange(true);\n}\nexport function turnOffDarkMode(userTriggered) {\n document.documentElement.style.backgroundColor = \"\";\n document.getElementsByClassName(\"site-content\")[0].style.backgroundColor = \"rgba(255, 255, 255, .8)\";\n document.body.classList.remove(\"dark\");\n document.body.classList.remove(\"dynamic\");\n informDarkModeChange(false);\n if (userTriggered) {\n saveUserSetting(false);\n //document.body.style.backgroundImage = `url(${mashiro_option.skin_bg0})`;\n }\n}\n/**\n * 检查是否在深色模式时间\n * @returns {boolean}\n */\nfunction checkTime() {\n const today = new Date();\n return (today.getHours() > 21 || today.getHours() < 7);\n}\nexport function ifDarkmodeShouldOn() {\n switch (mashiro_option.dm_strategy) {\n case 'client':\n return mediaQuery.matches;\n case 'eien':\n return true;\n default: /**case time */\n return checkTime();\n }\n}\nexport function checkDarkModeSetting() {\n const dark = localStorage.getItem(\"dark\");\n if (!dark) {\n //无用户设置时,自动切换深色模式\n if (ifDarkmodeShouldOn() && mashiro_option.darkmode) {\n turnOnDarkMode();\n }\n else {\n turnOffDarkMode();\n }\n }\n else {\n if (dark == '1') {\n turnOnDarkMode();\n }\n else {\n turnOffDarkMode();\n }\n }\n}\n/* function mobile_dark_light() {\n if (document.body.classList.contains(\"dark\")) {\n document.documentElement.style.background = \"unset\";\n document.body.classList.remove(\"dark\");\n document.getElementById(\"moblieDarkLight\").innerHTML = '';\n setCookie(\"dark\", \"0\", 0.33);\n } else {\n document.documentElement.style.background = \"#333333\";\n document.getElementById(\"moblieDarkLight\").innerHTML = '';\n document.body.classList.add(\"dark\");\n setCookie(\"dark\", \"1\", 0.33);\n }\n} */ \n","/**\n *\n * @param key 这段句子的中文表述(默认语言)\n */\n//@ts-ignore\nexport const __ = (defaultStr) => (window._sakurairoi18n && _sakurairoi18n[defaultStr]) || defaultStr;\n/**\n *\n * 占位符格式 {index} ex.{0}\n * @param defaultStr 这段句子的中文表述(默认语言)\n * @param replacements 句子中占位符的替代元素\n */\nexport const _$ = (defaultStr, ...replacements) => {\n let template = __(defaultStr);\n for (const index in replacements) {\n template = template.replace('{' + index + '}', replacements[index]);\n }\n return template;\n};\nexport const sakurairoGlobal = {\n opt: {},\n /* _sys_call:sys_call\n */ \n};\n/**\n * 在sakurairoGlobal注册一个对象\n * @param key\n * @param value\n * @returns\n */\nexport const registerOnGlobal = (key, value) => Object.defineProperty(sakurairoGlobal, key, {\n value: value,\n writable: false,\n enumerable: true,\n});\nif ('_sakurairo' in window) {\n //@ts-ignore\n const _sakurairo = window._sakurairo;\n if ('opt' in _sakurairo) {\n sakurairoGlobal.opt = _sakurairo.opt;\n }\n}\n//@ts-ignore\nwindow._sakurairo = sakurairoGlobal;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"8\":\"lg-plugin-0\",\"238\":\"lg-plugin-1\",\"359\":\"lg-plugin-5\",\"400\":\"lg-plugin-4\",\"515\":\"lg-plugin-6\",\"568\":\"lg-plugin-10\",\"642\":\"lg-plugin-8\",\"649\":\"lg-plugin-3\",\"719\":\"lg-plugin-11\",\"725\":\"lg-plugin-9\",\"846\":\"lg-plugin-2\",\"893\":\"lg-plugin-7\"}[chunkId] || chunkId) + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksakurairo_scripts\"] = self[\"webpackChunksakurairo_scripts\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","/**\n * Work around Safari 14 IndexedDB open bug.\n *\n * Safari has a horrible bug where IDB requests can hang while the browser is starting up. https://bugs.webkit.org/show_bug.cgi?id=226547\n * The only solution is to keep nudging it until it's awake.\n */\nfunction idbReady() {\n var isSafari = !navigator.userAgentData &&\n /Safari\\//.test(navigator.userAgent) &&\n !/Chrom(e|ium)\\//.test(navigator.userAgent);\n // No point putting other browsers or older versions of Safari through this mess.\n if (!isSafari || !indexedDB.databases)\n return Promise.resolve();\n var intervalId;\n return new Promise(function (resolve) {\n var tryIdb = function () { return indexedDB.databases().finally(resolve); };\n intervalId = setInterval(tryIdb, 100);\n tryIdb();\n }).finally(function () { return clearInterval(intervalId); });\n}\n\nexport default idbReady;\n","import safariFix from 'safari-14-idb-fix';\n\nfunction promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n // @ts-ignore - file size hacks\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n // @ts-ignore - file size hacks\n request.onabort = request.onerror = () => reject(request.error);\n });\n}\nfunction createStore(dbName, storeName) {\n const dbp = safariFix().then(() => {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n return promisifyRequest(request);\n });\n return (txMode, callback) => dbp.then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName)));\n}\nlet defaultGetStoreFunc;\nfunction defaultGetStore() {\n if (!defaultGetStoreFunc) {\n defaultGetStoreFunc = createStore('keyval-store', 'keyval');\n }\n return defaultGetStoreFunc;\n}\n/**\n * Get a value by its key.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction get(key, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => promisifyRequest(store.get(key)));\n}\n/**\n * Set a value with a key.\n *\n * @param key\n * @param value\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction set(key, value, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Set multiple values at once. This is faster than calling set() multiple times.\n * It's also atomic – if one of the pairs can't be added, none will be added.\n *\n * @param entries Array of entries, where each entry is an array of `[key, value]`.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction setMany(entries, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n entries.forEach((entry) => store.put(entry[1], entry[0]));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get multiple values by their keys\n *\n * @param keys\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction getMany(keys, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => Promise.all(keys.map((key) => promisifyRequest(store.get(key)))));\n}\n/**\n * Update a value. This lets you see the old value and update it as an atomic operation.\n *\n * @param key\n * @param updater A callback that takes the old value and returns a new value.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction update(key, updater, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => \n // Need to create the promise manually.\n // If I try to chain promises, the transaction closes in browsers\n // that use a promise polyfill (IE10/11).\n new Promise((resolve, reject) => {\n store.get(key).onsuccess = function () {\n try {\n store.put(updater(this.result), key);\n resolve(promisifyRequest(store.transaction));\n }\n catch (err) {\n reject(err);\n }\n };\n }));\n}\n/**\n * Delete a particular key from the store.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction del(key, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Delete multiple keys at once.\n *\n * @param keys List of keys to delete.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction delMany(keys, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n keys.forEach((key) => store.delete(key));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Clear all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction clear(customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.clear();\n return promisifyRequest(store.transaction);\n });\n}\nfunction eachCursor(customStore, callback) {\n return customStore('readonly', (store) => {\n // This would be store.getAllKeys(), but it isn't supported by Edge or Safari.\n // And openKeyCursor isn't supported by Safari.\n store.openCursor().onsuccess = function () {\n if (!this.result)\n return;\n callback(this.result);\n this.result.continue();\n };\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get all keys in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction keys(customStore = defaultGetStore()) {\n const items = [];\n return eachCursor(customStore, (cursor) => items.push(cursor.key)).then(() => items);\n}\n/**\n * Get all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction values(customStore = defaultGetStore()) {\n const items = [];\n return eachCursor(customStore, (cursor) => items.push(cursor.value)).then(() => items);\n}\n/**\n * Get all entries in the store. Each entry is an array of `[key, value]`.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction entries(customStore = defaultGetStore()) {\n const items = [];\n return eachCursor(customStore, (cursor) => items.push([cursor.key, cursor.value])).then(() => items);\n}\n\nexport { clear, createStore, del, delMany, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n","import { createStore, promisifyRequest } from 'idb-keyval';\nconst store = createStore('sakurairo', 'cache');\nconst get = (key) => store('readonly', (store) => promisifyRequest(store.get(key)));\nconst set = (key, value) => store('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n});\nconst del = (key) => store('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n});\nexport { get, set, del };\n","var _a;\n/**\n * Cookie\n * from github.com/mirai-mamori/Sakurairo ./js/sakura-app.js ,commit 71f5a0c\n * @license GPL-v2\n * @date 2021.03\n */\nlet _version_ctrl = (_a = mashiro_option.cookie_version_control) !== null && _a !== void 0 ? _a : '';\nexport function setCookie(key, value, days) {\n const expires = days ? \"; expires=\" + new Date(Date.now() + (days * 24 * 60 * 60 * 1000)).toUTCString() : \"\";\n document.cookie = key + _version_ctrl + \"=\" + (value || \"\") + expires + \"; path=/\";\n}\nexport function getCookie(key) {\n const nameEQ = key + _version_ctrl + \"=\", ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) == ' ')\n c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) == 0)\n return c.substring(nameEQ.length, c.length);\n }\n return null;\n}\nexport function removeCookie(key) {\n document.cookie = key + _version_ctrl + '=; Max-Age=-99999999;';\n}\n","const UA = navigator.userAgent;\n/**\n * 关于AppleWebkit与Safari版本的对应,参考:\n * @seealso https://gist.github.com/jakub-g/48a16195280a7023f570ffa5c8a4eae5\n * @seealso https://en.wikipedia.org/wiki/Safari_version_history\n *\n * Opera浏览器自15以来更换了User Agent\n * OPR/*\n */\nconst uaMatches = Array.from(UA.matchAll(/(Firefox|Chrome|Version|OPR|Edg)\\/(\\d+)/ig));\nimport { setCookie } from '../common/cookie';\nfunction setAcceptImage() {\n const acceptList = ['image/*,*/*;q=0.8'];\n if (isSupported({ Chrome: 59, OPR: 46, Firefox: 3, Edg: 79, Version: 8 /**Safari 8 */ })) {\n acceptList.push('image/apng');\n if (isSupported({ Chrome: 32, OPR: 19, Firefox: 65, Edg: 18, Version: 14 /**Safari 14 */ })) {\n setCookie('su_webp', '1', 114514);\n acceptList.push('image/webp');\n if (isSupported({ Chrome: 85, OPR: 71, Firefox: 93 })) {\n acceptList.push('image/avif');\n }\n }\n }\n return acceptList.reverse().join(',');\n}\nexport function isSupported(checkList) {\n for (const [_, name, version] of uaMatches) {\n if (parseFloat(version) >= checkList[name]) {\n return true;\n }\n }\n return false;\n}\nexport const Accept_Image = setAcceptImage();\n","import { get, set, del } from './cache';\nimport { Accept_Image } from './compatibility';\nimport { __ } from './sakurairo_global';\nlet bgn = 1;\nlet blob_url = '';\nexport async function nextBG() {\n changeCoverBG(await getCoverPath(true));\n bgn++;\n}\nexport async function preBG() {\n bgn--;\n changeCoverBG(await getCoverPath(true));\n}\nconst centerbg = document.querySelector(\".centerbg\");\n/**\n * 更改封面背景\n */\nexport const changeCoverBG = mashiro_option.site_bg_as_cover ? (url) => {\n document.body.style.backgroundImage = `url(${url})`;\n document.dispatchEvent(new CustomEvent('coverBG_change', { detail: url }));\n} :\n centerbg ? (url) => {\n centerbg.style.backgroundImage = `url(${url})`;\n document.dispatchEvent(new CustomEvent('coverBG_change', { detail: url }));\n } : () => { };\nfunction parseCSSUrl(cssText) {\n const result = cssText === null || cssText === void 0 ? void 0 : cssText.match(/^url\\(\"(.+)\"\\)$/);\n if (result) {\n return result[1];\n }\n}\n/**\n * 返回当前封面背景的URL\n */\nexport const getCurrentBG = mashiro_option.site_bg_as_cover ? () => parseCSSUrl(document.body.style.backgroundImage) :\n () => parseCSSUrl(centerbg.style.backgroundImage);\nfunction getAPIPath(useBGN = false) {\n const cover_api_url = new URL(mashiro_option.cover_api);\n if (document.body.clientWidth < 860 && mashiro_option.random_graphs_mts == true) {\n cover_api_url.searchParams.set('type', 'mobile');\n return cover_api_url.toString() + (useBGN ? \"&\" + bgn : '');\n }\n else {\n return cover_api_url.toString() + (useBGN ? (cover_api_url.search === '' ? \"?\" : '&') + bgn : '');\n }\n}\nexport const getCoverPath = mashiro_option.cache_cover ? (useBGN = false) => get('cover').then(coverBG => {\n if (coverBG && coverBG instanceof ArrayBuffer) {\n cleanBlobUrl();\n blob_url = URL.createObjectURL(new Blob([coverBG]));\n return blob_url;\n }\n else {\n //fallback\n return getAPIPath(useBGN);\n }\n}).finally(() => {\n fetchAndCache(useBGN);\n})\n : getAPIPath;\nasync function fetchAndCache(useBGN = false) {\n try {\n const resp = await fetch(getAPIPath(useBGN), { headers: { Accept: Accept_Image } });\n if (resp.ok) {\n const buf = await resp.arrayBuffer();\n try {\n set('cover', buf);\n /**\n * @problem Safari暂时不支持indexdb存储blob\n * DataCloneError: Failed to store record in an IDBObjectStore: BlobURLs are not yet supported.\n * @seealso https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/indexeddb-best-practices#keeping_your_app_predictable\n */\n }\n catch (e) {\n //catch: FireFox无痕模式下数据库不允许修改\n /**\n * @problem FireFox无痕模式下数据库不允许修改\n * DOMException: A mutation operation was attempted on a database that did not allow mutations\n * Chrome不会报错\n * 像是火狐的设计 https://wiki.mozilla.org/Private_Browsing#Persistent_Storage\n * 变通方法 https://bugzilla.mozilla.org/show_bug.cgi?id=1639542#c9\n */\n console.warn(e);\n }\n }\n }\n catch (e) {\n if (e instanceof TypeError) {\n console.warn(__('你的封面API好像不支持跨域调用,这种情况下缓存是不会生效的哦'));\n del('cover');\n }\n }\n}\nfunction cleanBlobUrl() {\n URL.revokeObjectURL(blob_url);\n blob_url = '';\n}\n/* export function initCoverBG() {\n if (mashiro_option.site_bg_as_cover) {\n if (centerbg) centerbg.style.background = '#0000'\n }\n} */ \n","import { createButterbar } from \"../common/butterbar\";\nimport { __ } from \"./sakurairo_global\";\nconst txt = [\n \"# 商业转载请联系作者获得授权,非商业转载请注明出处。\",\n \"# For commercial use, please contact the author for authorization. For non-commercial use, please indicate the source.\",\n \"# 协议(License):署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)\",\n \"# 作者(Author):\" + mashiro_option.author_name,\n \"# 链接(URL):\" + window.location.href,\n \"# 来源(Source):\" + mashiro_option.site_name,\n];\nfunction setClipboardText(event, selectionTxt) {\n event.preventDefault();\n const htmlData = txt.join('
') + \"

\" + selectionTxt.replace(/\\r\\n/g, \"
\"), textData = txt.join('\\n') + \"\\n\\n\" + selectionTxt.toString().replace(/\\r\\n/g, \"\\n\");\n if (event.clipboardData) {\n event.clipboardData.setData(\"text/html\", htmlData);\n event.clipboardData.setData(\"text/plain\", textData);\n }\n else if (window.clipboardData) {\n //deprecate?\n return window.clipboardData.setData(\"text\", textData);\n }\n}\nfunction copytext(e) {\n const selection = window.getSelection();\n if (selection) {\n const selectionText = selection.toString();\n if (selectionText.length > 30) {\n setClipboardText(e, selectionText);\n createButterbar(__(\"复制成功!\"), 1000);\n }\n }\n}\n/**\n * 添加复制时的版权提示\n */\nexport default function add_copyright() {\n if (mashiro_option.clipboardCopyright) {\n document.body.removeEventListener(\"copy\", copytext);\n document.body.addEventListener(\"copy\", copytext);\n }\n}\n","export default function () {\n const preload = document.getElementById(\"preload\");\n if (preload) {\n if (document.readyState === 'complete')\n return removeScreen(preload);\n window.addEventListener('load', () => {\n removeScreen(preload);\n });\n }\n}\nfunction removeScreen(preload) {\n document.documentElement.style.overflowY = 'unset';\n if (mashiro_option.preload_blur != 0) {\n try {\n preload.animate([\n { filter: \"blur(0px)\", backdropFilter: \"blur(10px)\", opacity: 1 },\n { backdropFilter: \"blur(0px)grayscale(0)\", opacity: 0.1 },\n { opacity: 0, filter: \"blur(100px)\", }\n ], { duration: mashiro_option.preload_blur, fill: \"forwards\", easing: \"ease\" }).onfinish = () => {\n preload.remove();\n };\n return;\n }\n catch (error) {\n console.warn(error);\n }\n }\n preload.classList.add('hide');\n preload.classList.remove('show');\n setTimeout(() => preload.remove(), 233);\n}\n","export default async function hitokoto() {\n var _a;\n if (mashiro_option.yiyan) {\n const yiyan = document.getElementById(\"footer_yiyan\");\n const api_group = (_a = mashiro_option.yiyan_api) !== null && _a !== void 0 ? _a : [\"https://api.maho.cc/yiyan/\"];\n if (api_group.length == 0) {\n console.warn('一言API路径为空');\n }\n else if (yiyan) {\n for (const api_path of mashiro_option.yiyan_api) {\n try {\n const txt = await request(api_path);\n yiyan.innerText = txt;\n break;\n }\n catch (e) {\n console.warn(`一言api: 尝试联系\"${api_path}\"时出错。\\n`, e);\n continue;\n }\n }\n }\n }\n}\nconst request = async (api) => {\n const res = await fetch(api, { headers: { Accept: \"application/json\" } });\n if (res.ok) {\n const data = await res.json();\n const from_who = (data.from_who == 'null' ? null : data.from_who) || '';\n const from = data.from != data.from_who ? `「${data['from']}」` : '';\n const hitokoto = data.hitokoto;\n return hitokoto + '——' + from_who + from;\n }\n else {\n throw res.status;\n }\n};\n","import { sakurairoGlobal } from \"./sakurairo_global\";\nexport function web_audio() {\n if (!mashiro_option.audio)\n return;\n //@ts-ignore\n const AudioContext = window.AudioContext || window.webkitAudioContext;\n if (AudioContext) {\n let ctx = new AudioContext, t = readSheetOption() || sheet, i = 0, o = 1, dom, a = \"♪ ♩ ♫ ♬ ♭ € § ¶ ♯\".split(\" \"), selects = document.querySelectorAll(\".site-title, #moblieGoTop, .site-branding, .searchbox, .changeSkin-gear, .menu-list li\");\n selects.forEach((select) => {\n select.addEventListener(\"mouseenter\", (e) => {\n var _a;\n if (dom)\n return;\n let r = t[i];\n if (!r) {\n (i = 0, r = t[i]);\n }\n i += o;\n const c = ctx.createOscillator(), l = ctx.createGain(), mainGain = ctx.createGain();\n c.connect(l);\n l.connect(mainGain);\n mainGain.connect(ctx.destination);\n mainGain.gain.setValueAtTime(((_a = sakurairoGlobal.opt.web_audio) === null || _a === void 0 ? void 0 : _a.main_gain) || 1, ctx.currentTime);\n c.type = \"sine\";\n c.frequency.value = r;\n l.gain.setValueAtTime(0, ctx.currentTime);\n l.gain.linearRampToValueAtTime(1, ctx.currentTime + .01);\n c.start(ctx.currentTime);\n l.gain.exponentialRampToValueAtTime(.001, ctx.currentTime + 1);\n c.stop(ctx.currentTime + 1);\n const d = Math.round(7 * Math.random());\n const h = e.pageX;\n const p = e.pageY - 5;\n dom = document.createElement(\"b\");\n dom.textContent = a[d];\n dom.style.zIndex = \"99999\";\n dom.style.top = p - 100 + \"px\";\n dom.style.left = h + \"px\";\n dom.style.position = \"absolute\";\n dom.style.color = \"#FF6EB4\";\n document.body.appendChild(dom);\n dom.animate([\n { top: p + \"px\" },\n { opacity: 0 }\n ], {\n duration: 500\n });\n setTimeout(() => {\n dom.remove();\n dom = null;\n }, 500);\n e.stopPropagation();\n });\n });\n }\n}\n//欢乐颂\n/*t = \"329.628 329.628 349.228 391.995 391.995 349.228 329.628 293.665 261.626 261.626 293.665 329.628 329.628 293.665 293.665 329.628 329.628 349.228 391.995 391.995 349.228 329.628 293.665 261.626 261.626 293.665 329.628 293.665 261.626 261.626 293.665 293.665 329.628 261.626 293.665 329.628 349.228 329.628 261.626 293.665 329.628 349.228 329.628 293.665 261.626 293.665 195.998 329.628 329.628 349.228 391.995 391.995 349.228 329.628 293.665 261.626 261.626 293.665 329.628 293.665 261.626 261.626\".split(\" \")*/\n//天空之城\nconst sheet = \"880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 659 698 659 698 1046 659 1046 1046 1046 987 698 698 987 987 880 987 1046 987 1046 1318 987 659 659 880 784 880 1046 784 659 698 1046 987 1046 1174 1174 1174 1046 1046 880 987 784 880 1046 1174 1318 1174 1318 1567 1046 987 1046 1318 1318 1174 784 784 880 1046 987 1174 1046 784 784 1396 1318 1174 659 1318 1046 1318 1760 1567 1567 1318 1174 1046 1046 1174 1046 1174 1567 1318 1318 1760 1567 1318 1174 1046 1046 1174 1046 1174 987 880 880 987 880\".split(\" \");\nfunction readSheetOption() {\n var _a;\n const sheet = (_a = sakurairoGlobal.opt.web_audio) === null || _a === void 0 ? void 0 : _a.sheet;\n if (typeof sheet == 'string') {\n return sheet.split(' ');\n }\n else if (sheet instanceof Array) {\n return sheet;\n }\n}\n","const mainContainer = document.getElementById(\"main-container\");\nfunction toggle() {\n document.body.classList.toggle(\"navOpen\");\n mainContainer.classList.toggle(\"open\");\n document.getElementById(\"mo-nav\").classList.toggle(\"open\");\n document.querySelector(\".openNav\").classList.toggle(\"open\");\n document.querySelector(\".site-header\").classList.toggle(\"open\");\n}\nexport function open() {\n toggle();\n document.documentElement.style.overflow = \"hidden\";\n mainContainer.addEventListener('click', close);\n}\nexport function close() {\n toggle();\n document.documentElement.style.overflow = \"unset\";\n mainContainer.removeEventListener('click', close);\n}\n","import { onlyOnceATime } from \"../common/util\";\nimport { lazyload } from 'lazyload'\nimport { __ } from './sakurairo_global'\n\nlet load_post_timer;\nconst load_post = onlyOnceATime(function load_post() {\n const now_href = document.location.href\n const pagination_a = document.querySelector('#pagination a');\n if (pagination_a.classList.contains(\"loading\")) return;\n pagination_a.classList.add(\"loading\");\n pagination_a.innerText = \"\";\n\n // $('#pagination a').addClass(\"loading\").text(\"\");\n fetch(pagination_a.getAttribute(\"href\") + \"#main\")\n .then(async resp => {\n const text = await resp.text()\n //在进行DOM操作前检查页面是否已经变化,防止错误加载到其他页面上\n if (now_href != document.location.href) return /**如果页面状态发生了变化,那么也应该不用理加载提示符 */\n const parser = new DOMParser(),\n DOM = parser.parseFromString(text, \"text/html\"),\n result = DOM.querySelectorAll(\"#main .post\"),\n paga = DOM.querySelector(\"#pagination a\"),\n paga_innerText = paga && paga.innerText,\n nextHref = paga && paga.getAttribute(\"href\"),\n main = document.getElementById(\"main\")\n for (let i = 0; i < result.length; i++) {\n main.append(result[i])\n }\n //if (resp.ok) {\n // result = $(data).find(\"#main .post\");\n // nextHref = $(data).find(\"#pagination a\").attr(\"href\");\n // $(\"#main\").append(result.fadeIn(500));\n const dpga = document.querySelector(\"#pagination a\"),\n addps = document.querySelector(\"#add_post span\");\n if (dpga) {\n dpga.classList.remove(\"loading\");\n dpga.innerText = paga_innerText;\n }\n if (addps) {\n addps.classList.remove(\"loading\");\n addps.innerText = \"\";\n }\n // $(\"#pagination a\").removeClass(\"loading\").text(\"Previous\");\n // $('#add_post span').removeClass(\"loading\").text(\"\");\n lazyload();\n post_list_show_animation();\n document.dispatchEvent(new CustomEvent('ajax_post_loaded',))\n if (nextHref != undefined) {\n pagination_a.setAttribute(\"href\", nextHref);\n // $(\"#pagination a\").attr(\"href\", nextHref);\n //加载完成上滑\n let tempScrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;;\n // window.scrollTo(tempScrollTop);\n // $(window).scrollTop(tempScrollTop);\n window.scrollTo({\n top: tempScrollTop + 300,\n behavior: 'smooth'\n })\n // $body.animate({\n // scrollTop: tempScrollTop + 300\n //\n // }, 666)\n } else {\n document.getElementById(\"pagination\").innerHTML = \"\" + __(\"很高兴你翻到这里,但是真的没有了...\") + \"\";\n // $(\"#pagination\").html(\"很高兴你翻到这里,但是真的没有了...\");\n }\n //}\n\n })\n /* $.ajax({\n type: \"POST\",\n url: $('#pagination a').attr(\"href\") + \"#main\",\n success: function (data) {\n result = $(data).find(\"#main .post\");\n nextHref = $(data).find(\"#pagination a\").attr(\"href\");\n $(\"#main\").append(result.fadeIn(500));\n $(\"#pagination a\").removeClass(\"loading\").text(\"Previous\");\n $('#add_post span').removeClass(\"loading\").text(\"\");\n lazyload();\n post_list_show_animation();\n if (nextHref != undefined) {\n $(\"#pagination a\").attr(\"href\", nextHref);\n //加载完成上滑\n var tempScrollTop = $(window).scrollTop();\n $(window).scrollTop(tempScrollTop);\n $body.animate({\n scrollTop: tempScrollTop + 300\n\n }, 666)\n } else {\n $(\"#pagination\").html(\"很高兴你翻到这里,但是真的没有了...\");\n }\n }\n }); */\n})\nexport function post_list_show_animation() {\n if (document.querySelector('article') && document.querySelector('article').classList.contains(\"post-list-thumb\")) {\n const options = {\n root: null,\n threshold: [0.66]\n },\n callback = (entries) => {\n entries.forEach(window.IntersectionObserver ? (article) => {\n if (article.target.classList.contains(\"post-list-show\")) {\n article.target.style.willChange = 'auto';\n io.unobserve(article.target)\n } else if (article.isIntersecting) {\n article.target.classList.add(\"post-list-show\");\n article.target.style.willChange = 'auto';\n io.unobserve(article.target)\n }\n } : (article) => {\n article.target.style.willChange = 'auto';\n if (article.target.classList.contains(\"post-list-show\") === false) {\n article.target.classList.add(\"post-list-show\");\n }\n\n })\n },\n io = new IntersectionObserver(callback, options),\n articles = document.getElementsByClassName('post-list-thumb');\n for (let a = 0; a < articles.length; a++) {\n io.observe(articles[a]);\n }\n }\n}\nfunction XLS_Listener(e) {\n if (e.target === document.querySelector(\"#pagination a\")) {\n e.preventDefault();\n e.stopPropagation();\n clearTimeout(load_post_timer);\n load_post();\n }\n}\nexport function XLS() {\n const intersectionObserver = new IntersectionObserver(function (entries) {\n if (entries[0].intersectionRatio <= 0) return;\n // var page_next = $('#pagination a').attr(\"href\");\n const _page_next = document.querySelector('#pagination a')\n if (_page_next) {\n const href_page_next = _page_next.getAttribute(\"href\"),\n load_key = document.getElementById(\"add_post_time\");\n if (href_page_next != undefined && load_key) {\n const load_time = load_key.title;\n if (load_time != \"233\") {\n console.log(\"%c 自动加载时倒计时 %c\", \"background:#9a9da2; color:#ffffff; border-radius:4px;\", \"\", \"\", load_time);\n load_post_timer = setTimeout(function () {\n load_post();\n }, load_time * 1000);\n }\n }\n }\n });\n intersectionObserver.observe(\n document.querySelector('.footer-device')\n );\n document.body.removeEventListener('click', XLS_Listener)\n document.body.addEventListener(\"click\", XLS_Listener)\n}","import r from\"color-space/rgb.js\";import t from\"color-space/xyz.js\";import n from\"color-space/lab.js\";function e(r,t,n){var e=r[t++]-n[0],a=r[t++]-n[1],o=r[t++]-n[2],i=r[t++]-n[3];return Math.pow(e,2)+Math.pow(a,2)+Math.pow(o,2)+Math.pow(i,2)}function a(r,t,n,a){void 0===a&&(a=1);for(var i,u,f,l,c,v=[],h=[],s=[],d=0,m=0;m1){var i=e/Math.sqrt(o),u=a/Math.sqrt(o),f=r(i,u);return null==f||f.drawImage(t,0,0,i,u),null==f?void 0:f.getImageData(0,0,i,u)}var l=r(e,a);return null==l||l.drawImage(t,0,0),null==l?void 0:l.getImageData(0,0,e,a)}function m(r,t){(null==t||t>r.length)&&(t=r.length);for(var n=0,e=new Array(t);n(o=e[1])?o>i?[a,i]:a>i?[a,o]:[i,o]:o>i?i>a?[o,a]:[o,i]:[i,a]),f=u[0],l=u[1],c=f-l,v=f+l;if(0==c)t=0,n=0;else{if(f==r[0]){var h=60*(r[1]-r[2])/c;t=h<0?h+360:h}else t=f==r[1]?60*(r[2]-r[0])/c+120:60*(r[0]-r[1])/c+240;n=0==v?0:v<=1?c/v:c/(2-v)}return[t,n,v/2,r[3]]}var y=function(r){return void 0===r&&(r=[0,1,2,3]),function(t,n){for(var e,a,o=function(r,t){var n=\"undefined\"!=typeof Symbol&&r[Symbol.iterator]||r[\"@@iterator\"];if(n)return(n=n.call(r)).next.bind(n);if(Array.isArray(r)||(n=function(r,t){if(r){if(\"string\"==typeof r)return m(r,t);var n=Object.prototype.toString.call(r).slice(8,-1);return\"Object\"===n&&r.constructor&&(n=r.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(r):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(r,t):void 0}}(r))){n&&(r=n);var e=0;return function(){return e>=r.length?{done:!0}:{done:!1,value:r[e++]}}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}(r);!(a=o()).done;){var i=a.value;if(0!=(e=t[i]-n[i]))return e}return e}},b=function(r){return\"hsla(\"+r[0]+\"deg,\"+100*r[1]+\"%,\"+100*r[2]+\"%,\"+r[3]+\")\"},w=function(r){return\"rgba(\"+r.map(function(r){return Math.floor(r)}).join(\",\")+\")\"};function M(n){for(var e=[],a=0;a value == max);\n _updateThemeSkin(rgbaCSSText(labaToRGBA(centroid[index])));\n }\n catch (error) {\n console.error(error);\n _updateThemeSkin(getComputedStyle(document.documentElement).getPropertyValue('--theme-skin-matching')); //回滚\n }\n}\nfunction _updateThemeSkin(color_css) {\n //TODO: 暗色模式支持\n const metaLight = document.querySelector('meta[name=theme-color][media=\"(prefers-color-scheme: light)\"]');\n /* const metaDark = document.querySelector('meta[name=theme-color][media=\"(prefers-color-scheme: dark)\"]')\n const [h,s,l,a] = rgbaToHSLA(color) */\n metaLight && (metaLight.content = color_css);\n /* metaDark && (metaDark.content = hslaCSSText([h,s,l,a]))\n */ \n}\nexport function initThemeColor() {\n if (!worker)\n worker = new PromiseWorker(new Worker(new URL('./worker.ts', import.meta.url)));\n document.addEventListener('coverBG_change', (({ detail: coverBGUrl }) => updateThemeSkin(coverBGUrl)));\n}\n","import { createButterbar } from \"../common/butterbar\";\nimport { __ } from \"./sakurairo_global\";\nlet btnSerif, btnSansSerif;\nfunction Serif() {\n if (document.body.clientWidth <= 860) {\n createButterbar(__(\"将从网络加载字体,流量请注意\"));\n }\n document.body.classList.add(\"serif\");\n setButtonState('serif');\n localStorage.setItem(\"font_family\", \"serif\");\n}\nfunction SansSerif() {\n document.body.classList.remove(\"serif\");\n setButtonState('sans-serif');\n localStorage.setItem(\"font_family\", \"sans-serif\");\n}\nfunction change_font_listener(btn) {\n return () => {\n const { name } = btn.dataset;\n const nowFont = localStorage.getItem(\"font_family\");\n if (name == nowFont) {\n return;\n }\n else {\n if (name == 'serif') {\n Serif();\n }\n else {\n SansSerif();\n }\n }\n };\n}\nexport function loadFontSetting() {\n const nowFont = localStorage.getItem(\"font_family\");\n if (!nowFont || nowFont == \"serif\") {\n document.body.classList.add(\"serif\");\n }\n}\nfunction setButtonState(font_name) {\n if (font_name !== null && font_name !== void 0 ? font_name : localStorage.getItem(\"font_family\") == 'sans-serif') {\n btnSerif.classList.remove(\"selected\");\n btnSansSerif.classList.add(\"selected\");\n }\n else {\n btnSansSerif.classList.remove(\"selected\");\n btnSerif.classList.add(\"selected\");\n }\n}\nfunction initDOMCache() {\n btnSerif = document.getElementsByClassName(\"control-btn-serif\")[0];\n btnSansSerif = document.getElementsByClassName(\"control-btn-sans-serif\")[0];\n return btnSansSerif && btnSerif;\n}\nfunction initListener() {\n btnSerif.addEventListener('click', change_font_listener(btnSerif));\n btnSansSerif.addEventListener('click', change_font_listener(btnSansSerif));\n}\nexport function initFontControl() {\n const result = initDOMCache();\n if (!result)\n localStorage.removeItem('font_family'); //样式菜单“简单”时,使用默认字体 “A”\n loadFontSetting();\n if (result) {\n setButtonState();\n initListener();\n }\n}\n","var _a;\nimport { getFileNameMain } from '../common/util';\nimport { __ } from './sakurairo_global';\nconst bgvideo = document.getElementById(\"bgvideo\");\nconst videoList = ((_a = Poi.movies.name) === null || _a === void 0 ? void 0 : _a.split(\",\")) || []; // 视频列表\nlet unplayedIndex = new Array(videoList.length).fill(0).map((_, index) => index);\n//#region 背景视频\nconst _getNextRandomVideo = () => {\n if (unplayedIndex.length == 0) {\n unplayedIndex = new Array(videoList.length).fill(0).map((_, index) => index);\n }\n const nextIndex = Math.floor(Math.random() * unplayedIndex.length);\n return videoList[unplayedIndex.splice(nextIndex, 1)[0]];\n};\nfunction getVideo() {\n const video_stu = document.getElementsByClassName(\"video-stu\")[0];\n const fileName = _getNextRandomVideo(); // 随机抽取视频\n video_stu.innerHTML = __(\"正在载入视频 ...\");\n video_stu.style.bottom = \"0px\";\n //这里不需要检验Poi.movies是不是字符串,因为应该在前边检查\n bgvideo.setAttribute(\"src\", new URL(fileName, Poi.movies.url || location.origin).toString());\n bgvideo.setAttribute(\"video-name\", getFileNameMain(fileName));\n}\n/**\n * 播放\n */\nfunction splay() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) {\n video_btn.classList.add(\"video-pause\");\n video_btn.classList.remove(\"video-play\");\n video_btn.style.display = \"\";\n }\n try {\n document.querySelector(\".video-stu\").style.bottom = \"-100px\";\n document.querySelector(\".focusinfo\").style.top = \"-999px\";\n if (mashiro_option.float_player_on) {\n import('./aplayer').then(({ destroyAllAplayer }) => {\n destroyAllAplayer();\n bgvideo.play();\n });\n return;\n }\n }\n catch (e) {\n console.warn(e);\n }\n bgvideo.play();\n}\n/**\n * 暂停\n */\nfunction spause() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) {\n video_btn.classList.add(\"video-play\");\n video_btn.classList.remove(\"video-pause\");\n }\n try {\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\n }\n catch (_a) { }\n bgvideo.pause();\n}\n/**\n * 自动续播 - 播放\n */\nexport function liveplay() {\n if (bgvideo && bgvideo.oncanplay != undefined && document.querySelector(\".haslive\")) { // 检查视频数据\n if (document.querySelector(\".videolive\")) { // 检查播放状态\n splay();\n }\n }\n}\nexport function livepause() {\n if (bgvideo && bgvideo.oncanplay != undefined && document.querySelector(\".haslive\")) { // 检查视频数据\n spause();\n let video_stu = document.getElementsByClassName(\"video-stu\")[0];\n video_stu.style.bottom = \"0px\";\n video_stu.innerHTML = __(\"已暂停...\");\n }\n}\nexport function coverVideo() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn)\n video_btn.addEventListener(\"click\", function () {\n if (this.classList.contains(\"loadvideo\")) {\n this.classList.add(\"video-pause\");\n this.classList.remove(\"loadvideo\");\n getVideo();\n bgvideo.oncanplay = function () {\n splay();\n document.getElementById(\"video-add\").style.display = \"block\";\n video_btn.classList.add(\"videolive\", \"haslive\"); // MDZZ\n };\n }\n else {\n if (this.classList.contains(\"video-pause\")) {\n spause();\n video_btn.classList.remove(\"videolive\");\n document.getElementsByClassName(\"video-stu\")[0].style.bottom = \"0px\";\n document.getElementsByClassName(\"video-stu\")[0].innerHTML = \"已暂停 ...\";\n }\n else {\n splay();\n video_btn.classList.add(\"videolive\"); // 用于判断切换页面时的状态\n }\n }\n bgvideo.onended = function () {\n bgvideo.setAttribute(\"src\", \"\");\n document.getElementById(\"video-add\").style.display = \"none\";\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\n if (video_btn) {\n video_btn.classList.add(\"loadvideo\");\n video_btn.classList.remove(\"video-pause\", \"videolive\", \"haslive\");\n if (Poi.movies.loop) {\n video_btn.click();\n }\n }\n };\n });\n const video_add = document.getElementById(\"video-add\");\n if (video_add)\n video_add.addEventListener(\"click\", getVideo);\n}\n//#endregion\nexport async function coverVideoIni() {\n initHLS();\n lazyloadPatch();\n}\nfunction canPlayHandler() {\n this.poster = '';\n}\n/**\n * 用户代理可能会禁止自动播放,此时需要撤掉poster\n */\nasync function lazyloadPatch() {\n const videos = document.querySelectorAll('video.lazyload');\n videos.forEach(video => video.addEventListener('canplay', canPlayHandler));\n}\nasync function initHLS() {\n const videos = document.querySelectorAll('video.hls');\n if (videos.length == 0)\n return;\n //检查浏览器是否原生支持\n if (videos[0].canPlayType('application/vnd.apple.mpegurl')) {\n for (const video of videos) {\n video.src = video.dataset.src || video.src;\n video.autoplay = true;\n }\n }\n else {\n if (!window.Hls) {\n try {\n const { default: Hls } = await import('hls.js');\n window.Hls = Hls;\n }\n catch (reason) {\n console.warn('Hls load failed: ', reason);\n }\n }\n if (!Hls.isSupported())\n console.error('Hls: Media Source Extensions is unsupported.');\n for (const video of videos) {\n const hls = new Hls();\n hls.loadSource(video.dataset.src || video.src);\n hls.attachMedia(video);\n hls.on(Hls.Events.MANIFEST_PARSED, function () {\n video.play();\n });\n }\n }\n}\n","import { buildAPI } from '../common/util';\nimport { __ } from './sakurairo_global';\nlet QueryStorage;\nfunction search_result(keyword, link, fa, title, iconfont, comments, text) {\n if (keyword) {\n var s = keyword.trim().split(\" \"), a = title.indexOf(s[s.length - 1]), b = text.indexOf(s[s.length - 1]);\n title = a < 60 ? title.slice(0, 80) : title.slice(a - 30, a + 30);\n title = title.replace(s[s.length - 1], ' ' + s[s.length - 1].toUpperCase() + ' ');\n text = b < 60 ? text.slice(0, 80) : text.slice(b - 30, b + 30);\n text = text.replace(s[s.length - 1], ' ' + s[s.length - 1].toUpperCase() + ' ');\n }\n return `
${title}${comments}

${text}

`;\n}\nfunction Cx(array, query) {\n for (let s = 0; s < query.length; s++) {\n if (['.', '?', '*'].indexOf(query[s]) != -1) {\n query = query.slice(0, s) + \"\\\\\" + query.slice(s);\n s++;\n }\n }\n query = query.replace(query, \"^(?=.*?\" + query + \").+$\").replace(/\\s/g, \")(?=.*?\");\n return array.filter(v => Object.values(v)\n .some(v => new RegExp(query + '').test(v)));\n}\nfunction query(B, A) {\n var s, y = \"\", w = \"\", u = \"\", r = \"\", p = \"\", F = \"\", G = '
', D = \"
\", E = \"\", C = Cx(B, A.trim());\n for (const H of C) {\n switch (H.type) {\n case \"post\":\n w = w + search_result(A, H.link, \"file\", H.title, \"mark\", H.comments, H.text);\n break;\n case \"tag\":\n p = p + search_result(\"\", H.link, \"tag\", H.title, \"none\", \"\", \"\");\n break;\n case \"category\":\n r = r + search_result(\"\", H.link, \"folder\", H.title, \"none\", \"\", \"\");\n break;\n case \"page\":\n u = u + search_result(A, H.link, \"file\", H.title, \"mark\", H.comments, H.text);\n break;\n case \"comment\":\n F = F + search_result(A, H.link, \"comment\", H.title, \"none\", \"\", H.text);\n break;\n }\n }\n w && (y = y + G + __(\"文章\") + E + w + D);\n u && (y = y + G + __(\"页面\") + E + u + D);\n r && (y = y + G + __(\"分类\") + E + r + D);\n p && (y = y + G + __(\"标签\") + E + p + D);\n F && (y = y + G + __(\"评论\") + E + F + D);\n s = document.getElementById(\"PostlistBox\");\n s.innerHTML = y;\n}\nfunction search_a(val) {\n const otxt = document.getElementById(\"search-input\");\n if (sessionStorage.getItem('search') != null) {\n QueryStorage = JSON.parse(sessionStorage.getItem('search'));\n query(QueryStorage, otxt.value);\n div_href();\n }\n else {\n fetch(val)\n .then(async (resp) => {\n if (resp.ok) {\n const json = await resp.text();\n if (json != \"\") {\n sessionStorage.setItem('search', json);\n QueryStorage = JSON.parse(json);\n query(QueryStorage, otxt.value);\n div_href();\n }\n }\n else {\n console.warn('HTTP ' + resp.status);\n }\n })\n .catch(reason => console.warn(reason));\n }\n}\n/* if (!Object.values) Object.values = function (obj) {\n if (obj !== Object(obj))\n throw new TypeError('Object.values called on a non-object');\n var val = [],\n key;\n for (key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n val.push(obj[key]);\n }\n }\n return val;\n } */\nfunction div_href() {\n const search_close = document.querySelector(\".search_close\");\n const Ty = document.getElementById('Ty');\n for (const ele of document.getElementsByClassName('ins-selectable')) {\n ele.addEventListener(\"click\", () => {\n Ty.href = ele.getAttribute('href');\n Ty.click();\n search_close.click();\n });\n }\n /* $(\".ins-selectable\").each(function () {\n $(this).click(function () {\n $(\"#Ty\").attr('href', $(this).attr('href'));\n $(\"#Ty\").click();\n $(\".search_close\").click();\n });\n }); */\n}\nexport function jsSearchCallback() {\n //$('.js-toggle-search').toggleClass('is-active');\n document.getElementsByClassName('js-toggle-search')[0].classList.toggle('is-active');\n //$('.js-search').toggleClass('is-visible');\n document.getElementsByClassName('js-search')[0].classList.toggle('is-visible');\n //$('html').css('overflow-y', 'hidden');\n document.documentElement.style.overflowY = 'hidden';\n if (mashiro_option.live_search) {\n QueryStorage = [];\n search_a(buildAPI(Poi.api + \"sakura/v1/cache_search/json\"));\n var otxt = document.getElementById(\"search-input\"), \n //list = document.getElementById(\"PostlistBox\"),\n //Record = list.innerHTML,\n searchFlag = null;\n otxt.oninput = function () {\n if (searchFlag != null) {\n clearTimeout(searchFlag);\n }\n searchFlag = setTimeout(function () {\n query(QueryStorage, otxt.value);\n div_href();\n }, 250);\n };\n }\n}\n","/**\n * app.js - Client script bundle for Sakurairo, a WordPress theme.\n * @author bymoye \n * @author KotoriK\n * @license GPL-v2\n * @date 2021.3.21\n * Github Repository:\n * @url https://github.com/Fuukei/Sakurairo_Scripts\n * @url https://github.com/mirai-mamori/Sakurairo commit f7db3c5\n * \n * *** ACKNOWLEDGEMENT *** \n * \n * *** modified on mashirozx/Sakura/js/sakura-app.js ***\n * Sakura theme application bundle\n * @author Mashiro\n * @url https://2heng.xin\n * @date 2019.8.3\n * *** ***\n * \n * *** inherited from louie-senpai/Siren/js/app.js ***\n * Siren application js\n * @author Louie\n * @url http://i94.me\n * @date 2016.11.19\n * *** ***\n * \n * inherited from Xoin-Yang/Akina/js/global.js\n * @author Xoin-Yang\n * @date 2017.04.25\n * @url http://www.akina.pw/\n * *** END OF ACKNOWLEDGEMENT *** \n * \n * Press 'F' to pay respects.\n * \n */\n\nimport { nextBG, preBG, getCoverPath, getCurrentBG, changeCoverBG } from './coverBackground'\nimport add_copyright from './copyright'\nimport { createButterbar } from '../common/butterbar'\nimport { loadCSS } from 'fg-loadcss'\nimport { lazyload } from 'lazyload'\nimport './global-func'\nimport { ready, slideToggle } from '../common/util'\nimport about_us from './about_us'\nimport preload_screen from './preload_screen'\nimport { _$ } from './sakurairo_global'\nimport { isSupported } from './compatibility'\nimport hitokoto from './hitokoto'\nimport { web_audio } from './web_audio'\nimport { open, close } from './mobile_nav'\nimport { XLS, post_list_show_animation } from './posts'\nimport { initThemeColor, updateThemeSkin } from './theme-color'\n/**\n * 检查是否应当开启Poi.pjax\n * @seealso https://github.com/PaperStrike/Pjax#compatibility\n */\nPoi.pjax = Poi.pjax && isSupported({ Firefox: 60, Edg: 79, Chrome: 66, OPR: 53, Version: 12/**Safari 12 */ });\nPoi.pjax && import('@sliphua/pjax').then(({ default: Pjax }) =>\n new Pjax({\n selectors: [\"#page\", \"title\", \".footer-device\", \"#_mashiro_\", \"#login-link\"],\n scripts: \"#_mashiro_\",\n timeout: 8000,\n defaultTrigger: {\n exclude: 'a[data-no-pjax]',\n }\n })\n)\nloadCSS(mashiro_option.jsdelivr_css_src);\nloadCSS(mashiro_option.entry_content_style_src);\nloadCSS(\"https://at.alicdn.com/t/font_679578_qyt5qzzavdo39pb9.css\");\n\nmashiro_global.variables = new function () {\n this.skinSecter = true;\n}\nimport { initFontControl, loadFontSetting } from './font_control'\n\nfunction scrollBar() {\n if (document.body.clientWidth > 860) {\n window.addEventListener(\"scroll\", () => {\n let s = document.documentElement.scrollTop || document.body.scrollTop,\n a = document.documentElement.scrollHeight || document.body.scrollHeight,\n b = window.innerHeight, c,\n result = parseInt(s / (a - b) * 100),\n cached = document.getElementById('bar');\n cached.style.width = result + \"%\";\n /* switch (true) {\n case (result <= 19): c = '#cccccc'; break;\n case (result <= 39): c = '#50bcb6'; break;\n case (result <= 59): c = '#85c440'; break;\n case (result <= 79): c = '#f2b63c'; break;\n case (result <= 99): c = '#FF0000'; break;\n case (result == 100): c = '#5aaadb'; break;\n default: c = \"orange\";\n }\n cached.style.background = c; */\n //炫彩scrollbar好像不是很好看,又被php那边的样式强制覆盖了,就先注释掉\n const skinMenu = document.querySelector(\".skin-menu\");\n skinMenu && skinMenu.classList.remove(\"show\");\n })\n }\n}\n\nfunction checkSkinSecter() {\n if (mashiro_global.variables.skinSecter === false) {\n const pattern = document.querySelector(\".pattern-center\"),\n headertop = document.querySelector(\".headertop-bar\");\n if (pattern) {\n pattern.classList.remove(\"pattern-center\");\n pattern.classList.add(\"pattern-center-sakura\");\n }\n if (headertop) {\n headertop.classList.remove(\"headertop-bar\");\n headertop.classList.add(\"headertop-bar-sakura\");\n }\n } else {\n const pattern = document.querySelector(\".pattern-center-sakura\"),\n headertop = document.querySelector(\".headertop-bar-sakura\");\n if (pattern) {\n pattern.classList.remove(\"pattern-center-sakura\");\n pattern.classList.add(\"pattern-center\");\n }\n if (headertop) {\n headertop.classList.remove(\"headertop-bar-sakura\");\n headertop.classList.add(\"headertop-bar\");\n }\n }\n}\nimport { checkDarkModeSetting, turnOnDarkMode, turnOffDarkMode, } from './darkmode'\nfunction no_right_click() {\n const pri = document.getElementById(\"primary\");\n if (pri) pri.addEventListener(\"contextmenu\", function (e) {\n if (e.target.nodeName.toLowerCase() == \"img\") {\n e.preventDefault();\n e.stopPropagation();\n }\n })\n}\nno_right_click();\n\nasync function changeSkin(tagId) {\n //@sideeffect\n mashiro_global.variables.skinSecter = tagId == \"white-bg\" || tagId == \"dark-bg\";\n checkSkinSecter();\n let bg_url;\n switch (tagId) {\n case \"white-bg\":\n if (mashiro_option.site_bg_as_cover) {\n bg_url = await getCoverPath()\n changeCoverBG(bg_url)\n return\n } else {\n if (!mashiro_option.land_at_home) return //在非主页上,.centerbg不显示,因此没有必要更新\n bg_url = mashiro_option.skin_bg0;\n }\n break;\n case \"diy1-bg\":\n bg_url = mashiro_option.skin_bg1;\n break;\n case \"diy2-bg\":\n bg_url = mashiro_option.skin_bg2;\n break;\n case \"diy3-bg\":\n bg_url = mashiro_option.skin_bg3;\n break;\n case \"diy4-bg\":\n bg_url = mashiro_option.skin_bg4;\n break;\n }\n document.body.style.backgroundImage = bg_url ? `url(${bg_url})` : '';\n}\n\nfunction bgButtonAddListener() {\n const next = document.getElementById(\"bg-next\"),\n pre = document.getElementById(\"bg-pre\");\n if (next) { next.onclick = nextBG };\n if (pre) { pre.onclick = preBG };\n}\n\nfunction topFunction() {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\"\n });\n}\n\nfunction timeSeriesReload(flag) {\n let archives = document.getElementById('archives');\n if (archives == null) return;\n let al_li = archives.getElementsByClassName('al_mon');\n if (flag == true) {\n archives.addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"al_mon\")) {\n slideToggle(e.target.nextElementSibling, 500);\n e.preventDefault();\n }\n })\n lazyload();\n } else {\n (function () {\n let al_expand_collapse = document.getElementById('al_expand_collapse');\n al_expand_collapse.style.cursor = \"s-resize\";\n for (let i = 0; i < al_li.length; i++) {\n let a = al_li[i],\n num = a.nextElementSibling.getElementsByTagName('li').length;\n a.style.cursor = \"s-resize\";\n a.querySelector('#post-num').textContent = num;\n }\n let al_post_list = archives.getElementsByClassName(\"al_post_list\"),\n al_post_list_f = al_post_list[0];\n for (let i = 0; i < al_post_list.length; i++) {\n slideToggle(al_post_list[i], 500, 'hide', function () {\n slideToggle(al_post_list_f, 500, 'show');\n })\n }\n archives.addEventListener(\"click\", function (e) {\n if (e.target.classList.contains(\"al_mon\")) {\n slideToggle(e.target.nextElementSibling, 500);\n e.preventDefault();\n }\n })\n if (document.body.clientWidth > 860) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n el.parentNode.addEventListener('mouseover', function () {\n slideToggle(el, 500, 'show');\n return false;\n })\n }\n if (false) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n el.parentNode.addEventListener('mouseover', function () {\n slideToggle(el, 500, 'hide');\n return false;\n })\n }\n }\n let al_expand_collapse_click = 0;\n al_expand_collapse.addEventListener('click', function () {\n if (al_expand_collapse_click == 0) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n slideToggle(el, 500, 'show');\n };\n al_expand_collapse_click++;\n } else if (al_expand_collapse_click == 1) {\n for (let i = 0; i < al_post_list.length; i++) {\n let el = al_post_list[i];\n slideToggle(el, 500, 'hide');\n };\n al_expand_collapse_click--;\n }\n });\n }\n })();\n }\n}\n\ntimeSeriesReload();\n\nadd_copyright()\n\nif (mashiro_option.float_player_on) {\n if (document.body.clientWidth > 860) {\n import('./aplayer').then(({ aplayerInit }) => aplayerInit())\n }\n}\n\nfunction activate_widget() {\n let secondary = document.getElementById(\"secondary\");\n if (document.body.clientWidth > 860) {\n let show_hide = document.querySelector(\".show-hide\");\n show_hide && show_hide.addEventListener(\"click\", function () {\n secondary && secondary.classList.toggle(\"active\");\n });\n } else {\n secondary && secondary.remove();\n }\n}\nsetTimeout(function () {\n activate_widget();\n}, 100);\n\n//#region Siren\nimport { liveplay, livepause, coverVideo, coverVideoIni } from './video'\nfunction MN() {\n const iconflat = document.querySelector(\".iconflat\");\n iconflat && iconflat.addEventListener(\"click\", (e) => {\n e.stopPropagation()\n if (document.body.classList.contains(\"navOpen\")) {\n close()\n } else {\n open()\n }\n });\n}\n\nfunction MNH() {\n if (document.body.classList.contains(\"navOpen\")) {\n close()\n }\n}\nfunction auto_height() {\n if (Poi.windowheight == 'auto') {\n if (document.querySelector(\"h1.main-title\")) {\n //let _height = document.documentElement.clientHeight + \"px\";\n const centerbg = document.getElementById(\"centerbg\")\n const bgvideo = document.getElementById(\"bgvideo\")\n if (centerbg) centerbg.style.height = \"100vh\";\n if (bgvideo) bgvideo.style.minHeight = \"100vh\";\n }\n } else {\n document.querySelector(\".headertop\") && document.querySelector(\".headertop\").classList.add(\"headertop-bar\");\n }\n}\nfunction PE() {\n if (document.querySelector(\".headertop\")) {\n let headertop = document.querySelector(\".headertop\"),\n blank = document.querySelector(\".blank\");\n if (document.querySelector(\".main-title\")) {\n try {\n blank.style.paddingTop = \"0px\";\n } catch (e) { }\n headertop.style.height = \"auto\";\n headertop.style.display = \"\";\n if (Poi.movies.live) liveplay();\n } else {\n try {\n blank.style.paddingTop = \"75px\";\n } catch (e) { }\n headertop.style.height = \"0px\";\n headertop.style.display = \"none\";\n livepause();\n }\n }\n}\nimport { jsSearchCallback } from './search'\nfunction CE() {\n let comments_fold = document.querySelector(\".comments-fold\");\n let comments_main = document.querySelector(\".comments-main\");\n if (comments_fold != null) {\n comments_fold.style.display = \"block\";\n comments_main.style.display = \"none\";\n comments_fold.addEventListener(\"click\", function () {\n slideToggle(comments_main, 500, 'show');\n comments_fold.style.display = \"none\";\n });\n }\n let archives = document.getElementsByClassName(\"archives\");\n if (archives.length > 0) {\n for (let i = 0; i < archives.length; i++) {\n archives[i].style.display = \"none\";\n }\n archives[0].style.display = \"\";\n let h3 = document.getElementById(\"archives-temp\").getElementsByTagName(\"h3\");\n for (let i = 0; i < h3.length; i++) {\n h3[i].addEventListener(\"click\", (e) => {\n e.preventDefault();\n e.stopPropagation();\n slideToggle(e.target.nextElementSibling, 300);\n })\n }\n }\n // $('.comments-hidden').show();\n // $('.comments-main').hide();\n // $('.comments-hidden').click(function () {\n // $('.comments-main').slideDown(500);\n // $('.comments-hidden').hide();\n // });\n // $('.archives').hide();\n // $('.archives:first').show();\n // $('#archives-temp h3').click(function () {\n // $(this).next().slideToggle('fast');\n // return false;\n // });\n /*if (mashiro_option.baguetteBoxON) {\n baguetteBox.run('.entry-content', {\n captions: function (element) {\n return element.getElementsByTagName('img')[0].alt;\n },\n ignoreClass: 'fancybox',\n });\n }*/\n\n for (const ele of document.getElementsByClassName('js-toggle-search')) {\n ele.addEventListener('click', jsSearchCallback);\n }\n\n const sc = document.querySelector(\".search_close\");\n sc && sc.addEventListener(\"click\", function () {\n let js_search = document.getElementsByClassName(\"js-search\")[0];\n if (js_search.classList.contains(\"is-visible\")) {\n document.getElementsByClassName(\"js-toggle-search\")[0].classList.toggle(\"is-active\");\n js_search.classList.toggle(\"is-visible\");\n document.documentElement.style.overflowY = \"unset\";\n }\n });\n try {\n let show_Nav = document.getElementById(\"show-nav\");\n show_Nav.addEventListener(\"click\", function () {\n if (show_Nav.classList.contains(\"showNav\")) {\n show_Nav.classList.remove(\"showNav\");\n show_Nav.classList.add(\"hideNav\");\n let sln = document.querySelector(\".site-top .lower nav\");\n sln && sln.classList.add(\"navbar\");\n } else {\n show_Nav.classList.remove(\"hideNav\");\n show_Nav.classList.add(\"showNav\");\n let sln = document.querySelector(\".site-top .lower nav\");\n sln && sln.classList.remove(\"navbar\");\n }\n });\n document.getElementById(\"loading\").addEventListener(\"click\", function () {\n let loading = document.getElementById(\"loading\");\n loading.classList.add(\"hide\");\n loading.classList.remove(\"show\");\n });\n } catch (e) { }\n}\nfunction NH() {\n const thresold = 0,\n siteHeader = document.querySelector(\".site-header\")\n window.addEventListener(\"scroll\", () => {\n const scrollTop = document.documentElement.scrollTop || window.pageYOffset;\n if (scrollTop > thresold) {\n siteHeader.classList.add(\"yya\");\n } else {\n siteHeader.classList.remove(\"yya\");\n }\n })\n // $(window).scroll(function () {\n // var s = $(document).scrollTop(),\n // cached = $('.site-header');\n // if (s == h1) {\n // cached.removeClass('yya');\n // }\n // if (s > h1) {\n // cached.addClass('yya');\n // }\n // });\n}\nfunction GT() {\n let mb_to_top = document.querySelector(\"#moblieGoTop\"),\n changskin = document.querySelector(\"#changskin\");\n window.addEventListener(\"scroll\", () => {\n const scroll = document.documentElement.scrollTop || document.body.scrollTop;\n const cssText = scroll > 20 ? \"scale(1)\" : \"scale(0)\"\n mb_to_top.style.transform = cssText;\n changskin.style.transform = cssText;\n })\n mb_to_top.onclick = topFunction\n}\n\n//#endregion Siren\nif (Poi.pjax) {\n document.addEventListener(\"pjax:send\", () => {\n for (const element of document.getElementsByClassName(\"normal-cover-video\")) {\n element.pause();\n element.src = '';\n element.load = '';\n }\n document.getElementById(\"bar\").style.width = \"0%\";\n if (mashiro_option.NProgressON) import('nprogress').then(({ default: NProgress }) => { NProgress.start() })\n MNH();\n });\n document.addEventListener(\"pjax:complete\", function () {\n auto_height();\n PE();\n CE();\n if (mashiro_option.land_at_home) XLS();\n if (mashiro_option.NProgressON) import('nprogress').then(({ default: NProgress }) => { NProgress.done() })\n //#region mashiro_global.ini.pjax();\n //#region pjaxInit\n no_right_click();\n loadFontSetting()\n let _p = document.getElementsByTagName(\"p\");\n for (let i = 0; i < _p.length; i++) {\n _p[i].classList.remove(\"head-copyright\");\n }\n let _div = document.getElementsByTagName(\"div\"),\n tla = document.getElementById(\"to-load-aplayer\");\n tla && tla.addEventListener(\"click\", () => {\n /* try {\n reloadHermit();\n } catch (e) { }; */\n for (let i = 0; i < _div.length; i++) {\n _div[i].classList.remove(\"load-aplayer\");\n }\n });\n /* for (let i = 0; i < _div.length; i++) {\n if (_div[i].classList.contains(\"aplayer\")) {\n try {\n reloadHermit();\n } catch { };\n }\n } */\n let iconflat = document.getElementsByClassName(\"iconflat\");\n if (iconflat.length != 0) {\n iconflat[0].style.width = '50px';\n iconflat[0].style.height = '50px';\n }\n let openNav = document.getElementsByClassName(\"openNav\");\n if (openNav.length != 0) {\n openNav[0].style.height = '50px';\n }\n bgButtonAddListener()\n timeSeriesReload();\n add_copyright();\n //#endregion pjaxInit\n post_list_show_animation();\n web_audio();\n coverVideoIni();\n checkSkinSecter();\n NH();\n //#endregion\n let loading = document.getElementById(\"loading\");\n if (loading) {\n loading.classList.add(\"hide\");\n loading.classList.remove(\"show\");\n }\n //未实际使用的选项\n /* if (Poi.codelamp == 'open') {\n self.Prism.highlightAll(event)\n }; */\n if (document.querySelector(\".js-search.is-visible\")) {\n document.getElementsByClassName(\"js-toggle-search\")[0].classList.toggle(\"is-active\");\n document.getElementsByClassName(\"js-search\")[0].classList.toggle(\"is-visible\");\n document.documentElement.style.overflowY = \"unset\";\n }\n hitokoto()\n lazyload();\n });\n document.addEventListener(\"pjax:success\", function () {\n //pjax加载时自动拉取page.js\n if (!mashiro_option.land_at_home && !document.getElementById('app-page-js')) {\n // id需要与php侧同步\n const script_app = document.getElementById('app-js')\n const script_app_page = document.createElement('script')\n script_app_page.src = script_app.src.replace('/app.js', '/page.js')\n script_app_page.id = 'app-page-js'\n document.body.appendChild(script_app_page)\n }\n //发送页面浏览事件\n\n /**\n * Google Analytics\n * @seealso https://developers.google.com/analytics/devguides/collection/gtagjs/pages\n */\n if (window.gtag) {\n gtag('config', Poi.google_analytics_id, {\n 'page_path': window.location.pathname\n });\n }\n /**\n * 百度统计\n * @seealso https://tongji.baidu.com/web/help/article?id=235\n */\n if (window._hmt) {\n _hmt.push(['_trackPageview', pageURL]);\n }\n });\n document.addEventListener(\"pjax:error\", (e) => {\n createButterbar(_$('页面加载出错了 HTTP {0}', e.request.status))\n })\n window.addEventListener('popstate', function (e) {\n auto_height();\n hitokoto()\n PE();\n CE();\n timeSeriesReload(true);\n post_list_show_animation();\n }, false);\n}\n\n/* let isWebkit = navigator.userAgent.toLowerCase().indexOf('webkit') > -1,\n isOpera = navigator.userAgent.toLowerCase().indexOf('opera') > -1,\n isIe = navigator.userAgent.toLowerCase().indexOf('msie') > -1;\nif ((isWebkit || isOpera || isIe) && document.getElementById && window.addEventListener) { */\nwindow.addEventListener('hashchange', function () {\n const id = location.hash.substring(1)\n if (!(/^[A-z0-9_-]+$/.test(id))) {\n return;\n }\n const element = document.getElementById(id);\n if (element) {\n if (!(/^(?:a|select|input|button|textarea)$/i.test(element.tagName))) {\n element.tabIndex = -1;\n }\n element.focus();\n }\n}, false);\n/* } */\n\nfunction addSkinMenuListener() {\n const cached = document.querySelectorAll(\".menu-list li\");\n cached.forEach(e => {\n e.addEventListener(\"click\", function () {\n const tagid = this.id;\n if (tagid == \"dark-bg\") {\n turnOnDarkMode(true)\n } else {\n turnOffDarkMode(true)\n changeSkin(tagid)\n localStorage.setItem(\"bgImgSetting\", tagid)\n }\n closeSkinMenu();\n });\n });\n}\nfunction checkBgImgSetting() {\n return changeSkin(localStorage.getItem(\"bgImgSetting\") || 'white-bg');\n}\n\n\ncheckDarkModeSetting();\n\nfunction closeSkinMenu() {\n document.querySelector(\".skin-menu\").classList.remove(\"show\");\n setTimeout(function () {\n if (document.querySelector(\".changeSkin-gear\") != null) {\n document.querySelector(\".changeSkin-gear\").style.visibility = \"visible\";\n }\n }, 300);\n}\nimport POWERMODE from 'activate-power-mode'\n\nfunction powermode() {\n POWERMODE.colorful = true;\n POWERMODE.shake = false;\n document.body.addEventListener('input', POWERMODE)\n}\n//afterDOMContentLoaded\n\nready(function () {\n checkBgImgSetting()\n .then(() => {\n if (isSupported({ Version: 15/**Safari 15 */ })) {\n initThemeColor()\n const bgUrl = getCurrentBG()\n if (bgUrl) updateThemeSkin(bgUrl)\n }\n })\n addSkinMenuListener();\n //let checkskin_bg = (a) => a == \"none\" ? \"\" : a;\n let changskin = document.querySelector(\"#changskin\"),\n close_SkinMenu = document.querySelector(\".skin-menu #close-skinMenu\");\n changskin && changskin.addEventListener(\"click\", function () {\n document.querySelector(\".skin-menu\").classList.toggle(\"show\");\n })\n close_SkinMenu && close_SkinMenu.addEventListener(\"click\", function () {\n closeSkinMenu();\n })\n\n auto_height();\n PE();\n NH();\n GT();\n XLS();\n CE();\n MN();\n coverVideo();\n hitokoto()\n bgButtonAddListener()\n initFontControl()\n web_audio()\n preload_screen()\n lazyload();\n powermode()\n about_us()\n\n});\n//#region mashiro_global.ini.normalize();\npost_list_show_animation();\ncoverVideoIni();\ncheckSkinSecter();\nscrollBar();\n//#endregion","export default function about_us() {\n console.log('%c Sakurairo %c https://github.com/mirai-mamori/Sakurairo', 'background:#D05A6E;color:#fffffb', '');\n console.log(` 僕らは求めるものも\n 描いてる未来も違うけれど\n 手と手を取り合えたなら\n きっと笑い合える日が来るから\n %c——「ツバメ」`, 'font-style:italic');\n}\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","factory","modules","installedModules","moduleId","exports","module","id","loaded","call","m","c","p","canvas","document","createElement","width","window","innerWidth","height","innerHeight","style","cssText","addEventListener","body","appendChild","context","getContext","particles","particlePointer","rendering","getRandom","min","max","Math","random","getColor","el","POWERMODE","colorful","u","getComputedStyle","color","createParticle","x","y","alpha","velocity","caret","bcr","activeElement","tagName","getAttribute","offset","selectionEnd","getBoundingClientRect","left","top","selection","getSelection","rangeCount","range","getRangeAt","startNode","startContainer","nodeType","TEXT_NODE","parentNode","getCaret","numParticles","round","shake","intensity","marginLeft","marginTop","setTimeout","requestAnimationFrame","loop","clearRect","rendered","rect","i","length","particle","globalAlpha","fillStyle","fillRect","properties","isFirefox","mozInnerScreenX","getCaretCoordinates","element","position","options","debug","querySelector","removeChild","div","computed","currentStyle","whiteSpace","nodeName","wordWrap","visibility","forEach","prop","scrollHeight","parseInt","overflowY","overflow","textContent","value","substring","replace","span","coordinates","offsetTop","offsetLeft","backgroundColor","imgError","ele","type","src","cmt_showPopup","popup","classList","add","onblur","remove","coverVideo","video","getElementById","btn_playControl","paused","play","innerHTML","pause","coverVideoMute","btn_volumeControl","muted","killCoverVideo","e","mail_me","open","mashiro_option","email_name","email_domain","headertop_down","coverOffset","pageYOffset","scrollTo","behavior","xyz","name","channel","alias","lab","z","y2","l","a","b","pow","rgb","A","C","D50","D55","D65","D75","F2","F7","F11","E","whitepoint","_xyz","white","r","g","w","this","loadCSS","href","before","media","attributes","ref","doc","ss","refs","getElementsByTagName","childNodes","sheets","styleSheets","attributeName","hasOwnProperty","setAttribute","rel","ready","cb","insertBefore","nextSibling","onloadcssdefined","resolvedHref","loadCB","removeEventListener","messageIds","onMessage","self","message","data","Array","isArray","messageId","error","result","callback","_callbacks","PromiseWorker","worker","_worker","prototype","postMessage","userMessage","messageToSend","Promise","resolve","reject","Error","controller","MessageChannel","port1","onmessage","port2","defaults","srcset","selector","root","rootMargin","threshold","LazyLoad","constructor","elms","obs","doLoad","settings","toLowerCase","backgroundImage","Object","assign","querySelectorAll","init","IntersectionObserver","load","entries","entry","isIntersecting","unobserve","target","image","observe","loadAndDestroy","destroy","disconnect","lazyload","images","clearButterbar","butterBar","getElementsByClassName","createButterbar","keep","readyFunctionList","onlyOnceATime","func","isRunning","args","finally","console","warn","whileReady","fn","readyState","push","getFileNameMain","fileName","slideToggle","duration","mode","dom","status","flag","transition","clearTimeout","tagTimer","display","tagHeight","clientHeight","buildAPI","apiPath","params","nonce","path","URL","searchParams","key","set","Poi","toString","mediaQuery","matchMedia","inDarkMode","isInDarkMode","informDarkModeChange","nextValue","dispatchEvent","CustomEvent","detail","mediaQueryCallback","localStorage","getItem","matches","darkmode","turnOnDarkMode","turnOffDarkMode","saveUserSetting","ifDarkmodeShouldOn","removeItem","setItem","userTriggered","documentElement","dm_strategy","today","Date","getHours","checkTime","checkDarkModeSetting","dark","removeListener","addListener","__","defaultStr","_sakurairoi18n","_$","replacements","template","index","sakurairoGlobal","opt","registerOnGlobal","defineProperty","writable","enumerable","_sakurairo","__webpack_module_cache__","__webpack_require__","cachedModule","undefined","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","keys","every","splice","n","getter","__esModule","d","getPrototypeOf","obj","__proto__","t","then","ns","create","def","current","indexOf","getOwnPropertyNames","definition","o","get","f","chunkId","all","reduce","promises","globalThis","Function","url","done","script","needAttach","scripts","s","charset","timeout","nc","onScriptComplete","prev","event","onerror","onload","doneFns","bind","head","Symbol","toStringTag","scriptUrl","importScripts","location","currentScript","baseURI","installedChunks","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","intervalId","navigator","userAgentData","test","userAgent","indexedDB","databases","tryIdb","setInterval","clearInterval","promisifyRequest","oncomplete","onsuccess","onabort","createStore","dbName","storeName","dbp","onupgradeneeded","createObjectStore","txMode","db","transaction","objectStore","store","_a","_version_ctrl","cookie_version_control","UA","uaMatches","from","matchAll","isSupported","checkList","_","version","parseFloat","Accept_Image","acceptList","Chrome","OPR","Firefox","Edg","Version","days","expires","now","toUTCString","cookie","setCookie","reverse","join","setAcceptImage","bgn","blob_url","async","nextBG","changeCoverBG","getCoverPath","preBG","centerbg","site_bg_as_cover","parseCSSUrl","match","getCurrentBG","getAPIPath","useBGN","cover_api_url","cover_api","clientWidth","random_graphs_mts","search","cache_cover","coverBG","ArrayBuffer","revokeObjectURL","createObjectURL","Blob","resp","fetch","headers","Accept","ok","buf","arrayBuffer","put","TypeError","delete","fetchAndCache","txt","author_name","site_name","copytext","selectionText","selectionTxt","preventDefault","htmlData","textData","clipboardData","setData","setClipboardText","add_copyright","clipboardCopyright","removeScreen","preload","preload_blur","animate","filter","backdropFilter","opacity","fill","easing","onfinish","hitokoto","yiyan","yiyan_api","api_path","innerText","api","res","json","from_who","web_audio","audio","AudioContext","webkitAudioContext","ctx","sheet","split","readSheetOption","select","createOscillator","createGain","mainGain","connect","destination","gain","setValueAtTime","main_gain","currentTime","frequency","linearRampToValueAtTime","start","exponentialRampToValueAtTime","stop","h","pageX","pageY","zIndex","stopPropagation","mainContainer","toggle","load_post_timer","load_post","now_href","pagination_a","contains","text","DOM","DOMParser","parseFromString","paga","paga_innerText","nextHref","main","append","dpga","addps","post_list_show_animation","tempScrollTop","scrollTop","io","article","willChange","articles","XLS_Listener","XLS","intersectionRatio","_page_next","href_page_next","load_key","load_time","title","log","naturalWidth","naturalHeight","sqrt","drawImage","getImageData","btnSerif","btnSansSerif","updateThemeSkin","coverBGUrl","imgElement","k","iteration","img","label","centroid","_updateThemeSkin","map","floor","slice","concat","findIndex","getPropertyValue","color_css","metaLight","content","change_font_listener","btn","dataset","setButtonState","loadFontSetting","nowFont","font_name","initFontControl","bgvideo","videoList","movies","unplayedIndex","getVideo","video_stu","nextIndex","_getNextRandomVideo","bottom","origin","splay","video_btn","float_player_on","destroyAllAplayer","spause","coverVideoIni","videos","canPlayType","autoplay","Hls","default","reason","hls","loadSource","attachMedia","on","Events","MANIFEST_PARSED","initHLS","canPlayHandler","lazyloadPatch","poster","QueryStorage","search_result","keyword","link","fa","iconfont","comments","trim","toUpperCase","query","B","F","G","D","array","v","values","RegExp","Cx","H","div_href","search_close","Ty","click","jsSearchCallback","live_search","val","otxt","sessionStorage","JSON","parse","catch","search_a","searchFlag","oninput","checkSkinSecter","mashiro_global","variables","skinSecter","pattern","headertop","no_right_click","pri","changeSkin","tagId","bg_url","land_at_home","skin_bg0","skin_bg1","skin_bg2","skin_bg3","skin_bg4","bgButtonAddListener","next","pre","onclick","topFunction","timeSeriesReload","archives","al_li","nextElementSibling","al_expand_collapse","cursor","num","al_post_list","al_post_list_f","al_expand_collapse_click","MN","iconflat","close","auto_height","windowheight","minHeight","PE","blank","paddingTop","live","oncanplay","livepause","CE","comments_fold","comments_main","h3","sc","js_search","show_Nav","sln","loading","NH","siteHeader","closeSkinMenu","pjax","Pjax","selectors","defaultTrigger","exclude","jsdelivr_css_src","entry_content_style_src","aplayerInit","secondary","show_hide","activate_widget","NProgressON","NProgress","_p","_div","tla","openNav","script_app","script_app_page","gtag","google_analytics_id","pathname","_hmt","pageURL","hash","tabIndex","focus","Worker","bgUrl","tagid","changskin","close_SkinMenu","mb_to_top","transform","GT","onended","video_add","preload_screen","skinMenu"],"sourceRoot":""} \ No newline at end of file diff --git a/js/page.js b/js/page.js index 2f9f7f32..dfd81409 100644 --- a/js/page.js +++ b/js/page.js @@ -1,3 +1,3 @@ /*! For license information please see page.js.LICENSE.txt */ -(self.webpackChunksakurairo_scripts=self.webpackChunksakurairo_scripts||[]).push([[768],{4689:function(){const e=[".bili",".menhera",".tieba"];window.motionSwitch=function(t){for(let t=0;tn(8508)(`./${e}/lg-${e}.es5.js`))))).map((e=>"fulfilled"==e.status?e.value.default:console.error("加载lightGallery的插件时出错啦!",e.reason)))},r))}}function s(){!function(){const e=document.getElementsByClassName("collapseButton");if(e.length>0){const t=e=>{(0,a.wy)(e.target.parentNode.parentNode.parentNode.querySelector(".xContent"))};for(const n of e)n.addEventListener("click",t)}}(),i(),async function(){document.getElementsByTagName("math").length>0&&("MathJax"in window||(window.MathJax={svg:{fontCache:"global"},startup:{typeset:!1},chtml:{fontURL:"https://cdn.jsdelivr.net/npm/mathjax/es5/output/chtml/fonts/woff-v2",mathmlSpacing:!0}}),await n.e(490).then(n.t.bind(n,2490,23)),window.MathJax.typeset())}()}var l=n(9791),c=n(9354),u=(n(4689),n(2568)),m=n.n(u);const d=(e,t=80)=>"https://"+Poi.gravatar_url+"/"+m()(e)+".jpg?s="+t+"&d=mm";function g(){let e=!1;const t=document.querySelector("input#author"),n=document.querySelector("input#qq"),o=document.querySelector("input#email"),r=document.querySelector("input#url"),i=document.querySelector(".qq-check"),s=document.querySelector(".gravatar-check"),l=document.querySelector("div.comment-user-avatar img");if(null==t)return;localStorage.getItem("user_qq")||localStorage.getItem("user_qq_email")||localStorage.getItem("user_author")||(n.value=t.value=o.value=r.value=""),localStorage.getItem("user_avatar")&&localStorage.getItem("user_qq")&&localStorage.getItem("user_qq_email")&&(l.setAttribute("src",localStorage.getItem("user_avatar")),t.value=localStorage.getItem("user_author"),o.value=localStorage.getItem("user_qq")+"@qq.com",n.value=localStorage.getItem("user_qq"),mashiro_option.qzone_autocomplete&&(r.value="https://user.qzone.qq.com/"+localStorage.getItem("user_qq")),n.value&&(i.style.display="block",s.style.display="none"));let c=o.value;t.addEventListener("blur",(()=>{const u=t.value;if(/^[1-9]\d{4,9}$/.test(u)){const m=()=>{n.value="",i.style.display="none",s.style.display="block",l.setAttribute("src",d(o.value,80)),localStorage.setItem("user_qq",""),localStorage.setItem("user_email",o.value),localStorage.setItem("user_avatar",d(o.value,80))};fetch((0,a.bf)(mashiro_option.qq_api_url,{qq:u})).then((async a=>{if(a.ok)try{const m=await a.json();t.value=m.name,o.value=u.trim()+"@qq.com",mashiro_option.qzone_autocomplete&&(r.value="https://user.qzone.qq.com/"+u.trim()),l.setAttribute("src","https://q2.qlogo.cn/headimg_dl?dst_uin="+u+"&spec=100"),e=!0,n.value=u.trim(),n.value&&(i.style.display="block",s.style.display="none"),localStorage.setItem("user_author",m.name),localStorage.setItem("user_qq",u),localStorage.setItem("is_user_qq","yes"),localStorage.setItem("user_qq_email",u+"@qq.com"),localStorage.setItem("user_email",u+"@qq.com"),c=o.value,l.setAttribute("src",m.avatar),localStorage.setItem("user_avatar",m.avatar)}catch(e){console.warn(e),m()}else m()}))}})),localStorage.getItem("user_avatar")&&localStorage.getItem("user_email")&&"no"==localStorage.getItem("is_user_qq")&&!localStorage.getItem("user_qq_email")&&(l.setAttribute("src",localStorage.getItem("user_avatar")),o.value=localStorage.getItem("user_mail"),n.value="",n.value||(i.style.display="none",s.style.display="block")),o.addEventListener("blur",(function(){let t=o.value;0!=e&&c==t||""==t||(l.setAttribute("src",d(t,80)),localStorage.setItem("user_avatar",d(t,80)),localStorage.setItem("user_email",t),localStorage.setItem("user_qq_email",""),localStorage.setItem("is_user_qq","no"),n.value="",n.value||(i.style.display="none",s.style.display="block"))})),localStorage.getItem("user_url")&&(r.value=localStorage.getItem("user_url")),r.addEventListener("blur",(function(){let e=r.value;r.value=e,localStorage.setItem("user_url",e)})),localStorage.getItem("user_author")&&(t.value=localStorage.getItem("user_author")),t.addEventListener("blur",(function(){let e=t.value;t.value=e,localStorage.setItem("user_author",e)}))}const f={respondId:"",moveForm:function(e,t,n){const o=document.getElementById(e),a=document.getElementById(n),r=document.getElementById("cancel-comment-reply-link"),i=document.getElementById("comment_parent");if(this.respondId=n,!document.getElementById("wp-temp-form-div")){const e=document.createElement("div");e.id="wp-temp-form-div",e.style.display="none",a.parentNode.insertBefore(e,a)}if(o)o.parentNode.insertBefore(a,o.nextSibling);else{const e=document.getElementById("wp-temp-form-div");document.getElementById("comment_parent").value="0",e.parentNode.insertBefore(a,e),e.remove()}const s=document.getElementById("respond");window.scrollTo({top:s.getBoundingClientRect().top+window.pageYOffset-s.clientTop-100,behavior:"smooth"}),i.value=t,r.style.display="",r.onclick=function(e){var t=f,n=document.getElementById("wp-temp-form-div"),o=document.getElementById(t.respondId);return document.getElementById("comment_parent").value="0",n&&o&&(n.parentNode.insertBefore(o,n),n.remove()),this.style.display="none",this.onclick=null,!1};try{document.getElementById("comment").focus()}catch(e){}return!1}};var p,h=f,y=n(302);const v={autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",contenteditable:"false",design:"by Mashiro"};function _(e,t){if(!e.children[0])return;let n="text";const o=e.children[0].className.match(/language-(\w+)/i);o&&(n=o[1]),e.classList.add("highlight-wrap");for(const t in v)e.setAttribute(t,v[t]);t.setAttribute("data-rel",n.toUpperCase())}const b=e=>{const t=e.target;if(t.classList.contains("highlight-wrap")){if(t.classList.contains("code-block-fullscreen"))t.remove();else{const e=t.cloneNode(!0);e.classList.toggle("code-block-fullscreen"),document.body.append(e)}document.documentElement.classList.toggle("code-block-fullscreen-html-scroll")}};async function w(e,t){try{await async function(){try{window.hljs||(window.hljs=(await Promise.all([n.e(857),n.e(128),n.e(980),n.e(49),n.e(82),n.e(930),n.e(529),n.e(420),n.e(223),n.e(302),n.e(587)]).then(n.bind(n,637))).default,await n.e(241).then(n.t.bind(n,5241,23)))}catch(e){console.warn(e)}}();for(let e=0;e{var e;const{light:t,dark:n}=(null==(e=mashiro_option.code_highlight_prism)?void 0:e.theme)??{},o={light:t??"themes/prism.min.css",dark:n??"themes/prism-tomorrow.min.css"};for(const e in o)o[e]=new URL(o[e],S).toString();return o})();function L(e){const t=e?q.dark:q.light;if(E){if(E.href!==t){const e=(0,o.loadCSS)(t);e.addEventListener("load",(()=>{E.remove(),E=e}))}}else E=(0,o.loadCSS)(t)}const I=e=>{L(e.detail)};async function B(e){try{await async function(){try{window.Prism||(L((0,y.N2)()),document.addEventListener("darkmode",I),(0,o.loadCSS)(new URL("plugins/toolbar/prism-toolbar.min.css",S).toString()),(0,o.loadCSS)(new URL("plugins/previewers/prism-previewers.min.css",S).toString()),await n.e(953).then(n.bind(n,3953)),Prism.plugins.autoloader.languages_path=new URL("components/",S).toString())}catch(e){console.warn(e)}}();let t=!1,a=!1;mashiro_option.code_highlight_prism.line_number_all&&(document.querySelector(".entry-content").classList.add("line-numbers"),t=!0);for(const n of e)if(n.parentElement.classList.contains("line-numbers")&&(t=!0),n.classList.contains("match-braces")&&(a=!0,1==t))break;await Promise.all([t&&((0,o.loadCSS)(new URL("plugins/line-numbers/prism-line-numbers.min.css",S).toString()),n.e(759).then(n.t.bind(n,8759,23))),a&&((0,o.loadCSS)(new URL("plugins/match-braces/prism-match-braces.min.css",S).toString()),n.e(873).then(n.t.bind(n,7873,23)))]);for(const t of e)Prism.highlightElement(t);Prism.plugins.fileHighlight&&Prism.plugins.fileHighlight.highlight()}catch(e){console.warn(e)}}var k=n(2605);const T=e=>{const t=e.target;if(t===document.querySelector("#bangumi-pagination a")){if(e.preventDefault(),e.stopPropagation(),t.classList.contains("loading"))return;t.classList.add("loading"),t.textContent="",fetch(t.dataset.href+"&_wpnonce="+Poi.nonce,{method:"POST"}).then((async e=>{const t=await e.json();if(!e.ok)throw Error(`Error,Status:${e.status}`);document.getElementById("bangumi-pagination").remove(),document.querySelector(".row").insertAdjacentHTML("beforeend",t),(0,l.m)()})).catch((e=>{console.error(e),(0,c.f)(e),t.classList.remove("loading"),t.innerHTML=' ERROR '}))}};function j(){const e=document.getElementsByTagName("section");let t=!1;for(let n=0;n0){for(let e=0;e');const{default:e}=await n.e(152).then(n.t.bind(n,2152,23));new e(".copy-code")}}function C(){document.getElementsByClassName("comment_inline_img").length&&document.getElementsByClassName("comments-main")[0].addEventListener("click",(function(e){e.target.classList.contains("comment_inline_img")&&window.open(e.target.src)}))}function A(){document.getElementsByClassName("emoji-item").length&&document.querySelector(".menhera-container").addEventListener("click",(function(e){e.target.classList.contains("emoji-item")&&grin(e.target.innerText,"custom","`","` ")}))}function N(){const e="commentwrap",t=document.getElementById("commentform");if(t){let n=!1;t.addEventListener("submit",(function(t){if(t.stopPropagation(),t.preventDefault(),n)return;const o=(0,c.f)((0,k.__)("提交中...."),!0),a=new FormData(this);a.append("action","ajax_comment"),n=!0,fetch(Poi.ajaxurl,{method:this.attributes.method.value,body:a}).then((async t=>{const n=await t.text();if(t.ok){Array.from(document.getElementsByTagName("textarea")).forEach((e=>e.value=""));const t=document.getElementById("cancel-comment-reply-link"),o=document.getElementById("wp-temp-form-div"),a=document.getElementById(h.respondId);"0"!=document.getElementById("comment_parent").value?document.getElementById("respond").insertAdjacentHTML("beforebegin",'
    '+n+"
"):document.getElementsByClassName(e).length?"asc"==Poi.order?document.getElementsByClassName("commentwrap")[1].insertAdjacentHTML("beforeend",n):document.getElementsByClassName("commentwrap")[1].insertAdjacentHTML("afterbegin",n):"bottom"==Poi.formpostion?document.getElementById("respond").insertAdjacentHTML("beforebegin",'
    '+n+"
"):document.getElementById("respond").insertAdjacentHTML("afterend",'
    '+n+"
"),(0,c.f)((0,k.__)("提交成功")),document.dispatchEvent(new CustomEvent("ajax_comment_complete")),t.style.display="none",t.onclick=null,document.getElementById("comment_parent").value="0",o&&a&&(o.parentNode.insertBefore(a,o),o.remove())}else(0,c.f)(n??"HTTP"+t.status+":"+t.statusText)})).catch((e=>{(0,c.f)(e)})).finally((()=>{o.remove(),n=!1}))}))}}function M(){let e=document.getElementsByClassName("sm"),t=document.querySelector(".comments-main");e.length&&t&&("new"==Poi.reply_link_version&&t.addEventListener("click",(function(e){if(e.target.classList.contains("comment-reply-link")){e.preventDefault(),e.stopPropagation();let t=e.target.getAttribute("data-commentid");h.moveForm("comment-"+t,t,"respond",this.getAttribute("data-postid"))}})),t.addEventListener("click",(e=>{let t=e.target.parentNode;if(t.classList.contains("sm")){let e=(0,k.__)("您真的要设为私密吗?");if(1==confirm(e)){if(t.classList.contains("private_now"))return alert((0,k.__)("您之前已设过私密评论")),!1;{t.classList.add("private_now");let e=t.getAttribute("data-idp"),n=t.getAttribute("data-actionp"),o=t.getElementsByClassName("has_set_private")[0],a="action=siren_private&p_id="+e+"&p_action="+n,r=new XMLHttpRequest;return r.onreadystatechange=function(){4==this.readyState&&200==this.status&&(o.innerHTML=r.responseText)},r.open("POST","/wp-admin/admin-ajax.php",!0),r.setRequestHeader("Content-type","application/x-www-form-urlencoded"),r.send(a),!1}}}})))}function H(){const e=document.querySelector(".toc-container"),t=document.querySelector(".site-content");if(e&&t){const n=()=>{e.style.height=(0,a.VV)(t.getBoundingClientRect().height,document.documentElement.offsetHeight-e.offsetTop)+"px"};n(),window.addEventListener("resize",n,{passive:!0})}}function P(e){if(!(document.body.clientWidth<=1200))if(document.querySelector("div.have-toc")||document.querySelector("div.has-toc")){if(e&&document.getElementsByClassName("toc").length>0){let e=1,t="sakura"==mashiro_option.entry_content_theme?document.querySelector("article.type-post")?document.querySelector("div.pattern-attachment-img")?-75:200:375:window.innerHeight/2,o=document.querySelectorAll(".entry-content,.links");for(let t=0;t{let{default:n}=e;n.init({tocSelector:".toc",contentSelector:[".entry-content",".links"],headingSelector:"h1, h2, h3, h4, h5",headingsOffset:t-window.innerHeight/2})}))}}else{let e=document.getElementsByClassName("toc-container")[0];e&&(e.remove(),e=null)}}function O(){let e=document.getElementById("emotion-toggle");e&&e.addEventListener("click",(function(){document.querySelector(".emotion-toggle-off").classList.toggle("emotion-hide"),document.querySelector(".emotion-toggle-on").classList.toggle("emotion-show"),document.querySelector(".emotion-box").classList.toggle("emotion-box-show")}))}function R(){const e=document.querySelector(".form-submit #submit");if(null==e)return;if(!mashiro_option.comment_upload_img)return void(e.style.width="100%");e.insertAdjacentHTML("afterend",''),function(){let e=document.getElementsByClassName("insert-image-tips")[0],t=document.getElementById("upload-img-file");t&&t.addEventListener("change",(function(){if(this.files.length>10)return(0,c.f)((0,k.__)("每次上传上限为10张")),0;for(let e=0;e=5242880)return void alert((0,k._$)("图片上传大小限制为5 MB\n\n「{0}」\n\n这张图太大啦~请重新上传噢!",this.files[e].name));for(let t=0;t