diff --git a/header.php b/header.php index 28a7ba58..8bcfa557 100644 --- a/header.php +++ b/header.php @@ -153,10 +153,12 @@ function gtag() {
- diff --git a/inc/admin_addcss.php b/inc/admin_addcss.php index b225b0cc..c212286d 100644 --- a/inc/admin_addcss.php +++ b/inc/admin_addcss.php @@ -132,4 +132,9 @@ display: block !important; } +.csf-nav { + position: -webkit-sticky; + position: sticky; + top: 125px; +} \ No newline at end of file diff --git a/inc/classes/Images.php b/inc/classes/Images.php index 139e6a44..a21cdf52 100644 --- a/inc/classes/Images.php +++ b/inc/classes/Images.php @@ -28,12 +28,12 @@ public function Chevereto_API($image) { ); $response = wp_remote_post($upload_url, $args); - $reply = json_decode($response["body"]); + $reply = json_decode($response['body']); if ($reply->status_txt == 'OK' && $reply->status_code == 200) { $status = 200; $success = true; - $message = "success"; + $message = 'success'; $link = $reply->image->image->url; $proxy = iro_opt('comment_image_proxy') . $link; } else { @@ -68,12 +68,12 @@ public function Imgur_API($image) { ); $response = wp_remote_post($upload_url, $args); - $reply = json_decode($response["body"]); + $reply = json_decode($response['body']); if ($reply->success && $reply->status == 200) { $status = 200; $success = true; - $message = "success"; + $message = 'success'; $link = $reply->data->link; $proxy = iro_opt('comment_image_proxy') . $link; } else { @@ -98,19 +98,19 @@ public function Imgur_API($image) { */ public function SMMS_API($image) { $client_id = $this->smms_client_id; - $upload_url = "https://sm.ms/api/v2/upload"; + $upload_url = 'https://sm.ms/api/v2/upload'; $filename = $image['cmt_img_file']['name']; $filedata = $image['cmt_img_file']['tmp_name']; $Boundary = wp_generate_password(); $bits = file_get_contents($filedata); $args = array( - "headers" => "Content-Type: multipart/form-data; boundary=$Boundary\r\n\r\nAuthorization: Basic $client_id\r\n\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97", - "body" => "--$Boundary\r\nContent-Disposition: form-data; name=\"smfile\"; filename=\"$filename\"\r\n\r\n$bits\r\n\r\n--$Boundary--" + 'headers' => "Content-Type: multipart/form-data; boundary=$Boundary\r\n\r\nAuthorization: Basic $client_id\r\n\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97", + 'body' => "--$Boundary\r\nContent-Disposition: form-data; name=\"smfile\"; filename=\"$filename\"\r\n\r\n$bits\r\n\r\n--$Boundary--" ); $response = wp_remote_post($upload_url, $args); - $reply = json_decode($response["body"]); + $reply = json_decode($response['body']); if ($reply->success && $reply->code == 'success') { $status = 200; @@ -142,12 +142,12 @@ public function SMMS_API($image) { } public static function cover_gallery() { - if (iro_opt('random_graphs_options') == "local") { - $img_array = glob(get_template_directory() . "/manifest/gallary/*.{gif,jpg,png}", GLOB_BRACE); + if (iro_opt('random_graphs_options') == 'local') { + $img_array = glob(get_template_directory() . '/manifest/gallary/*.{gif,jpg,png}', GLOB_BRACE); $img = array_rand($img_array); $imgurl = trim($img_array[$img]); $imgurl = str_replace(get_template_directory(), get_template_directory_uri(), $imgurl); - } elseif (iro_opt('random_graphs_options') == "external_api") { + } elseif (iro_opt('random_graphs_options') == 'external_api') { $imgurl = iro_opt('random_graphs_link'); } else { global $sakura_image_array; @@ -155,21 +155,21 @@ public static function cover_gallery() { $img = array_rand($img_array); $img_domain = iro_opt('random_graphs_link') ? iro_opt('random_graphs_link') : get_template_directory_uri(); if (strpos($_SERVER['HTTP_ACCEPT'], 'image/webp') !== false) { - $imgurl = $img_domain . "/manifest/" . $img_array[$img]["webp"][0]; + $imgurl = $img_domain . "/manifest/" . $img_array[$img]['webp'][0]; } else { - $imgurl = $img_domain . "/manifest/" . $img_array[$img]["jpeg"][0]; + $imgurl = $img_domain . "/manifest/" . $img_array[$img]['jpeg'][0]; } } return $imgurl; } public static function mobile_cover_gallery() { - if (iro_opt('random_graphs_options') == "local") { - $img_array = glob(get_template_directory() . "/manifest/gallary/*.{gif,jpg,png}", GLOB_BRACE); + if (iro_opt('random_graphs_options') == 'local') { + $img_array = glob(get_template_directory() . '/manifest/gallary/*.{gif,jpg,png}', GLOB_BRACE); $img = array_rand($img_array); $imgurl = trim($img_array[$img]); $imgurl = str_replace(get_template_directory(), get_template_directory_uri(), $imgurl); - } elseif (iro_opt('random_graphs_options') == "external_api") { + } elseif (iro_opt('random_graphs_options') == 'external_api') { //$imgurl = iro_opt('random_graphs_link'); $imgurl = iro_opt('random_graphs_link_mobile'); } else { @@ -178,16 +178,16 @@ public static function mobile_cover_gallery() { $img = array_rand($img_array); $img_domain = iro_opt('random_graphs_link') ? iro_opt('random_graphs_link') : get_template_directory_uri(); if (strpos($_SERVER['HTTP_ACCEPT'], 'image/webp')) { - $imgurl = $img_domain . "/manifest/" . $img_array[$img]["webp"][0]; + $imgurl = $img_domain . "/manifest/" . $img_array[$img]['webp'][0]; } else { - $imgurl = $img_domain . "/manifest/" . $img_array[$img]["jpeg"][0]; + $imgurl = $img_domain . "/manifest/" . $img_array[$img]['jpeg'][0]; } } return $imgurl; } public static function feature_gallery() { - if (iro_opt('post_cover_options') == "type_2") { + if (iro_opt('post_cover_options') == 'type_2') { $imgurl = iro_opt('post_cover'); } else { $imgurl = self::cover_gallery(); diff --git a/inc/theme_plus.php b/inc/theme_plus.php index df61c26e..366840fc 100644 --- a/inc/theme_plus.php +++ b/inc/theme_plus.php @@ -10,6 +10,13 @@ // 去除顶部工具栏 show_admin_bar(false); +function get_edit_html():string{ + global $user_ID; + if ($user_ID && current_user_can('level_10')) { + return '·'.__("EDIT","sakurairo").''; +} + return ''; +} /* * 视频 @@ -293,12 +300,7 @@ function the_headPattern(){ $center = 'single-center'; $header = 'single-header'; //$ava = iro_opt('personal_avatar', '') ? iro_opt('personal_avatar', '') : get_avatar_url(get_the_author_meta('user_email')); - global $user_ID; - if($user_ID && current_user_can('level_10')) { - $edit_this_post_link = '·EDIT'; - } else { - $edit_this_post_link = ''; - } + $edit_this_post_link = get_edit_html(); $t .= the_title( '

', '

', false); $t .= '

'.get_avatar(get_the_author_meta('ID'),64) .''. get_the_author() .'·'. poi_time_since(get_post_time('U', true),false,true) .'·'. get_post_views(get_the_ID()) .' '._n("View","Views",get_post_views(get_the_ID()),"sakurairo")/*次阅读*/.$edit_this_post_link.'

'; endwhile; endif; @@ -326,141 +328,93 @@ function the_headPattern(){ endif; } -/*视频封面*/ -function the_video_headPattern_hls(){ - $t = ''; // 标题 - $full_image_url = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), 'full'); - $thubm_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(get_the_ID()), 'thumbnail'); - - $video_cover = get_post_meta(get_the_ID(), 'video_cover', true); - $video_cover_thumb = get_post_meta(get_the_ID(), 'video_cover_thumb', true); - // 检查这个字段是否有值 - if (empty ( $video_cover_thumb )) { //如果值为空,输出默认值 - $video_poster_attr = ""; - } else { - $video_poster_attr = ' poster="' . $video_cover_thumb . '" '; - } +/** + * 文章封面视频 + * @param isHls + */ +function the_video_headPattern(bool $isHls = false) +{ + $t = ''; // 标题 + $full_image_urls = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), 'full'); + $thubm_image_urls = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), 'thumbnail'); - if(is_single()){ - $full_image_url = !empty($full_image_url) ? $full_image_url[0] : null; - $thubm_image_url = !empty($thubm_image_url) ? $thubm_image_url[0] : null; - if (have_posts()) : while (have_posts()) : the_post(); - $center = 'single-center'; - $header = 'single-header'; - //$ava = iro_opt('personal_avatar', '') ? iro_opt('personal_avatar', '') : get_avatar_url(get_the_author_meta('user_email')); - global $user_ID; - if($user_ID && current_user_can('level_10')) { - $edit_this_post_link = '·EDIT'; - } else { - $edit_this_post_link = ''; - } - $t .= the_title( '

', '

', false); - $t .= '

'.get_avatar(get_the_author_meta('ID'),64) .''. get_the_author() .'·'. poi_time_since(get_post_time('U', true),false,true) .'·'. get_post_views(get_the_ID()) .' '._n("View","Views",get_post_views(get_the_ID()),"sakurairo")/*次阅读*/.$edit_this_post_link.'

'; - endwhile; endif; - }elseif(is_page()){ - $full_image_url = $full_image_url[0]; - $thubm_image_url = $thubm_image_url[0]; - $t .= the_title( '

', '

', false); - }elseif(is_archive()){ - $full_image_url = z_taxonomy_image_url(); - $thubm_image_url = iro_opt('load_out_svg'); - $des = category_description() ? category_description() : ''; // 描述 - $t .= '

'.single_cat_title('', false).'

'; - $t .= ' '.$des.''; - }elseif(is_search()){ - $full_image_url = get_random_bg_url(); - $thubm_image_url = iro_opt('load_out_svg'); - $t .= '

'.sprintf( __( "Search results for \" %s \"","sakurairo" ), get_search_query()) ./*关于“ '.get_search_query().' ”的搜索结果*/'

'; - } - $thubm_image_url = $thubm_image_url . "#lazyload-blur"; - $thubm_image_url = str_replace(iro_opt('image_cdn'),'https://cdn.2heng.xin/',$thubm_image_url); - if(!iro_opt('patternimg')) $full_image_url = false; - if(!is_home() && $full_image_url) : ?> -
-
-
- -
- - -
-
-
'; - endif; -} -//普通视频 -function the_video_headPattern_normal(){ - $t = ''; // 标题 - $full_image_url = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), 'full'); - $thubm_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(get_the_ID()), 'thumbnail'); - $video_cover = get_post_meta(get_the_ID(), 'video_cover', true); $video_cover_thumb = get_post_meta(get_the_ID(), 'video_cover_thumb', true); // 检查这个字段是否有值 - if (empty ( $video_cover_thumb )) { //如果值为空,输出默认值 + if (empty($video_cover_thumb)) { //如果值为空,输出默认值 $video_poster_attr = ""; } else { $video_poster_attr = ' poster="' . $video_cover_thumb . '" '; } - - if(is_single()){ - $full_image_url = $full_image_url[0]; - $thubm_image_url = $thubm_image_url[0]; - if (have_posts()) : while (have_posts()) : the_post(); - $center = 'single-center'; - $header = 'single-header'; - //$ava = iro_opt('personal_avatar', '') ? iro_opt('personal_avatar', '') : get_avatar_url(get_the_author_meta('user_email')); - global $user_ID; - if($user_ID && current_user_can('level_10')) { - $edit_this_post_link = '·'._e("EDIT","sakurairo").''; - } else { - $edit_this_post_link = ''; + $full_image_url = !empty($full_image_urls) ? $full_image_urls[0] : null; + $thubm_image_url = !empty($thubm_image_urls) ? $thubm_image_urls[0] : null; + if (is_single()) { + while (have_posts()) { + the_post(); + $center = 'single-center'; + $header = 'single-header'; + //$ava = iro_opt('personal_avatar', '') ? iro_opt('personal_avatar', '') : get_avatar_url(get_the_author_meta('user_email')); + $edit_this_post_link = get_edit_html(); + $t .= the_title('

', '

', false); + $t .= '

' + . get_avatar(get_the_author_meta('ID'), 64) . '' + . get_the_author() . '·' + . poi_time_since(get_post_time('U', true), false, true) . '·' + . get_post_views(get_the_ID()) . ' ' + . _n("View", "Views", get_post_views(get_the_ID()), "sakurairo")/*次阅读*/ . $edit_this_post_link . '

'; + } + } elseif (is_page()) { + $t .= the_title('

', '

', false); + } elseif (is_archive()) { + $full_image_url = z_taxonomy_image_url(); + $thubm_image_url = iro_opt('load_out_svg'); + $des = category_description() ? category_description() : ''; // 描述 + $t .= '

' . single_cat_title('', false) . '

'; + $t .= ' ' . $des . ''; + } elseif (is_search()) { + $full_image_url = get_random_bg_url(); + $thubm_image_url = iro_opt('load_out_svg'); + $t .= '

' . sprintf(__("Search results for \" %s \"", "sakurairo"), get_search_query()) ./*关于“ '.get_search_query().' ”的搜索结果*/ '

'; + } + $thubm_image_url = $thubm_image_url . "#lazyload-blur"; + $thubm_image_url = str_replace(iro_opt('image_cdn'), 'https://cdn.2heng.xin/', $thubm_image_url); + if (!iro_opt('patternimg')) $full_image_url = false; + if (!is_home() && $full_image_url) { ?> +
+
+
+ + + + + +
+ +
+ +
+
+'; } - $t .= the_title( '

', '

', false); - $t .= '

'.get_avatar(get_the_author_meta('ID'),64) .''. get_the_author() .'·'. poi_time_since(get_post_time('U', true),false,true) .'·'. get_post_views(get_the_ID()) .' '._n("View","Views",get_post_views(get_the_ID()),"sakurairo")/*次阅读*/.$edit_this_post_link.'

'; - endwhile; endif; - }elseif(is_page()){ - $full_image_url = $full_image_url[0]; - $thubm_image_url = $thubm_image_url[0]; - $t .= the_title( '

', '

', false); - }elseif(is_archive()){ - $full_image_url = z_taxonomy_image_url(); - $thubm_image_url = iro_opt('load_out_svg'); - $des = category_description() ? category_description() : ''; // 描述 - $t .= '

'.single_cat_title('', false).'

'; - $t .= ' '.$des.''; - }elseif(is_search()){ - $full_image_url = get_random_bg_url(); - $thubm_image_url = iro_opt('load_out_svg'); - $t .= '

'.sprintf( __( "Search results for \" %s \"","sakurairo" ), get_search_query()) ./*关于“ '.get_search_query().' ”的搜索结果*/'

'; - } - $thubm_image_url = $thubm_image_url . "#lazyload-blur"; - $thubm_image_url = str_replace(iro_opt('image_cdn'),'https://cdn.2heng.xin/',$thubm_image_url); - if(!iro_opt('patternimg')) $full_image_url = false; - if(!is_home() && $full_image_url) : ?> -
-
-
- -
- - -
-
- '; - endif; } diff --git a/js/app.js b/js/app.js index 7cee28f4..aeeb1267 100644 --- a/js/app.js +++ b/js/app.js @@ -1,3 +1,3 @@ /*! For license information please see app.js.LICENSE.txt */ -(()=>{var e,t,n,o,i,r={5213:function(e){var t;t=function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,n),i.loaded=!0,i.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 i=o.getContext("2d"),r=[],s=0,a=!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 i=window.getSelection();if(i.rangeCount){var r=i.getRangeAt(0),s=r.startContainer;return s.nodeType===document.TEXT_NODE&&(s=s.parentNode),{x:(e=r.getBoundingClientRect()).left,y:e.top,color:l(s)}}return{x:0,y:0,color:"transparent"}}(),t=5+Math.round(10*Math.random());t--;)r[s]=d(e.x,e.y,e.color),s=(s+1)%500;if(u.shake){var o=1+2*Math.random(),i=o*(Math.random()>.5?-1:1),c=o*(Math.random()>.5?-1:1);document.body.style.marginLeft=i+"px",document.body.style.marginTop=c+"px",setTimeout((function(){document.body.style.marginLeft="",document.body.style.marginTop=""}),75)}a||requestAnimationFrame(m)}function m(){a=!0,i.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",a.textContent=e.value.substring(0,o),"INPUT"===e.nodeName&&(a.textContent=a.textContent.replace(/\s/g," "));var d=document.createElement("span");d.textContent=e.value.substring(o)||".",a.appendChild(d);var u={top:d.offsetTop+parseInt(l.borderTopWidth),left:d.offsetLeft+parseInt(l.borderLeftWidth)};return r?d.style.backgroundColor="#aaa":document.body.removeChild(a),u}void 0!==e&&void 0!==e.exports?e.exports=o:window.getCaretCoordinates=o}()}])},e.exports=t()},7652:()=>{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("coverVideo-btn");if(e.paused){e.play();try{t.innerHTML=''}catch{}}else{e.pause();try{t.innerHTML=''}catch{}}},window.killCoverVideo=function(){var e=document.getElementById("coverVideo"),t=document.getElementById("coverVideo-btn");if(e.paused);else{e.pause();try{t.innerHTML=''}catch(e){}}},window.mail_me=function(){var e="mailto:"+mashiro_option.email_name+"@"+mashiro_option.email_domain;window.open(e)},window.headertop_down=function(){let e=document.getElementById("content").getBoundingClientRect().top+window.pageYOffset;window.scrollTo({top:e,behavior:"smooth"})}},8487:function(e,t,n){var o;o=void 0!==n.g?n.g:this,t.loadCSS=function(e,t,n,i){var r,s=o.document,a=s.createElement("link");if(t)r=t;else{var c=(s.body||s.getElementsByTagName("head")[0]).childNodes;r=c[c.length-1]}var l=s.styleSheets;if(i)for(var d in i)i.hasOwnProperty(d)&&a.setAttribute(d,i[d]);a.rel="stylesheet",a.href=e,a.media="only x",function e(t){if(s.body)return t();setTimeout((function(){e(t)}))}((function(){r.parentNode.insertBefore(a,t?r:r.nextSibling)}));var u=function(e){for(var t=a.href,n=l.length;n--;)if(l[n].href===t)return e();setTimeout((function(){u(e)}))};function m(){a.addEventListener&&a.removeEventListener("load",m),a.media=n||"all"}return a.addEventListener&&a.addEventListener("load",m),a.onloadcssdefined=u,u(m),a}},9791:(e,t,n)=>{n.d(t,{m:()=>r});const o={src:"data-src",srcset:"data-srcset",selector:".lazyload",root:null,rootMargin:"0px",threshold:0};class i{constructor(e,t){this.observer=null,this.settings=Object.assign(Object.assign({},o),t),this.images=e||document.querySelectorAll(this.settings.selector),this.init()}init(){if(!IntersectionObserver)return void this.loadImages();const e=this;let t={root:this.settings.root,rootMargin:this.settings.rootMargin,threshold:[this.settings.threshold]};this.observer=new IntersectionObserver((function(t){Array.prototype.forEach.call(t,(function(t){if(t.isIntersecting){e.observer.unobserve(t.target);let n=t.target.getAttribute(e.settings.src),o=t.target.getAttribute(e.settings.srcset);"img"===t.target.tagName.toLowerCase()?(n&&(t.target.src=n),o&&(t.target.srcset=o)):t.target.style.backgroundImage="url("+n+")"}}))}),t),this.images.forEach((t=>{e.observer.observe(t)}))}loadAndDestroy(){this.settings&&(this.loadImages(),this.destroy())}loadImages(){if(!this.settings)return;const e=this;Array.prototype.forEach.call(this.images,(function(t){let n=t.getAttribute(e.settings.src),o=t.getAttribute(e.settings.srcset);"img"===t.tagName.toLowerCase()?(n&&(t.src=n),o&&(t.srcset=o)):t.style.backgroundImage="url('"+n+"')"}))}destroy(){this.settings&&(this.observer.disconnect(),this.settings=null)}}const r=(e,t)=>new i(e,t)},8381:(e,t,n)=>{function o(e,t={},n=!0){const o=new URL(e),{searchParams:i}=o;for(const[e,n]of Object.entries(t))i.set(e,n);return n&&i.set("_wpnonce",Poi.nonce),o.toString()}n.d(t,{Z:()=>o})},9354:(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:()=>i})},476:(e,t,n)=>{n.d(t,{NB:()=>o,Cd:()=>s,wy:()=>a,VV:()=>c});const o=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}}}};let i=[];const r=()=>{document.removeEventListener("DOMContentLoaded",r);for(const e of i)e();i=[]},s=function(e){if("loading"!==document.readyState)return e();0==i.length&&document.addEventListener("DOMContentLoaded",r,!1),i.push(e)};function a(e,t=1e3,n="",o){let i=e;i.status=i.status||getComputedStyle(i,null).display;const r="none"!=i.status;1==r&&"show"==n||0==r&&"hide"==n||(i.status=r?"none":"block",i.style.transition="height "+t/1e3+"s",i.style.overflow="hidden",clearTimeout(i.tagTimer),i.tagTimer=i.tagTimer||null,i.style.display="block",i.tagHeight=i.tagHeight||i.clientHeight+"px",i.style.display="",i.style.height=r?i.tagHeight:"0px",setTimeout((()=>{i.style.height=r?"0px":i.tagHeight}),0),i.tagTimer=setTimeout((()=>{i.style.display=r?"none":"block",i.style.transition="",i.style.overflow="",i.style.height="",i.status=i.tagHeight=null}),t),o&&o())}const c=(e,t)=>e{n.d(t,{N2:()=>r,B3:()=>l,Lg:()=>d,q1:()=>m});const o=window.matchMedia("(prefers-color-scheme:dark)");let i=!1;const r=()=>i;function s(e){e!==i&&(document.dispatchEvent(new CustomEvent("darkmode",{detail:e})),i=e)}function a(){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),s(!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"),s(!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",a):o.removeListener(a),o.addEventListener?o.addEventListener("change",a):o.addListener(a))},2605:(e,t,n)=>{n.d(t,{__:()=>o,_$:()=>i,o:()=>r});const o=e=>window._sakurairoi18n&&_sakurairoi18n[e]||e,i=(e,...t)=>{let n=o(e);for(const e in t)n=n.replace("{"+e+"}",t[e]);return n},r={opt:{},__:o};if("_sakurairo"in window){const e=window._sakurairo;"opt"in e&&(r.opt=e.opt)}window._sakurairo=r},655:(e,t,n)=>{n.d(t,{mG:()=>o});function o(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))}Object.create;Object.create}},s={};function a(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return r[e].call(n.exports,n,n.exports,a),n.exports}a.m=r,e=[],a.O=(t,n,o,i)=>{if(!n){var r=1/0;for(d=0;d=i)&&Object.keys(a.O).every((e=>a.O[e](n[c])))?n.splice(c--,1):(s=!1,i0&&e[d-1][2]>i;d--)e[d]=e[d-1];e[d]=[n,o,i]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,a.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 i=Object.create(null);a.r(i);var r={};t=t||[null,n({}),n([]),n(n)];for(var s=2&o&&e;"object"==typeof s&&!~t.indexOf(s);s=n(s))Object.getOwnPropertyNames(s).forEach((t=>r[t]=()=>e[t]));return r.default=()=>e,a.d(i,r),i},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,n)=>(a.f[n](e,t),t)),[])),a.u=e=>e+".js",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},i="sakurairo-scripts:",a.l=(e,t,n,r)=>{if(o[e])o[e].push(t);else{var s,c;if(void 0!==n)for(var l=document.getElementsByTagName("script"),d=0;d{s.onerror=s.onload=null,clearTimeout(g);var i=o[e];if(delete o[e],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},g=setTimeout(m.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=m.bind(null,s.onerror),s.onload=m.bind(null,s.onload),c&&document.head.appendChild(s)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{var e={143:0};a.f.j=(t,n)=>{var o=a.o(e,t)?e[t]:void 0;if(0!==o)if(o)n.push(o[2]);else{var i=new Promise(((n,i)=>o=e[t]=[n,i]));n.push(o[2]=i);var r=a.p+a.u(t),s=new Error;a.l(r,(n=>{if(a.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var i=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+i+": "+r+")",s.name="ChunkLoadError",s.type=i,s.request=r,o[1](s)}}),"chunk-"+t,t)}},a.O.j=t=>0===e[t];var t=(t,n)=>{var o,i,[r,s,c]=n,l=0;if(r.some((t=>0!==e[t]))){for(o in s)a.o(s,o)&&(a.m[o]=s[o]);if(c)var d=c(a)}for(t&&t(n);l{var e=a(655);const t=function(){if(!(!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent))||!indexedDB.databases)return Promise.resolve();let e;return new Promise((t=>{const n=()=>indexedDB.databases().finally(t);e=setInterval(n,100),n()})).finally((()=>clearInterval(e)))};function n(e){return new Promise(((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)}))}function o(e,o){const i=t().then((()=>{const t=indexedDB.open(e);return t.onupgradeneeded=()=>t.result.createObjectStore(o),n(t)}));return(e,t)=>i.then((n=>t(n.transaction(o,e).objectStore(o))))}let i;function r(){return i||(i=o("keyval-store","keyval")),i}const s=o("sakurairo","cache"),c=e=>function(e,t=r()){return t("readonly",(t=>n(t.get(e))))}(e,s),l=(e,t)=>function(e,t,o=r()){return o("readwrite",(o=>(o.put(t,e),n(o.transaction))))}(e,t,s),d=e=>function(e,t=r()){return t("readwrite",(t=>(t.delete(e),n(t.transaction))))}(e,s);var u=a(2605);let m=1,g="";function f(){return(0,e.mG)(this,void 0,void 0,(function*(){y(yield b(!0)),m++}))}function h(){return(0,e.mG)(this,void 0,void 0,(function*(){m--,y(yield b(!0))}))}const p=document.querySelector(".centerbg"),y=mashiro_option.site_bg_as_cover?e=>{document.body.style.backgroundImage=`url(${e})`}:p?e=>{p.style.backgroundImage=`url(${e})`}:()=>{};function v(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 b=mashiro_option.cache_cover?(t=!1)=>(0,e.mG)(void 0,void 0,void 0,(function*(){return c("cover").then((e=>e?e instanceof ArrayBuffer?(URL.revokeObjectURL(g),g="",g=URL.createObjectURL(new Blob([e])),g):void 0:v(t))).finally((()=>{!function(t=!1){(0,e.mG)(this,void 0,void 0,(function*(){try{const e=yield fetch(v(t));if(e.ok){const t=yield e.arrayBuffer();try{l("cover",t)}catch(e){console.warn(e)}}}catch(e){"object"==typeof e&&e instanceof TypeError&&(console.warn((0,u.__)("你的封面API好像不支持跨域调用,这种情况下缓存是不会生效的哦")),d("cover"))}}))}(t)}))})):v;function w(){return(0,e.mG)(this,void 0,void 0,(function*(){if(mashiro_option.site_bg_as_cover){if(p&&(p.style.background="#0000"),"white-bg"!==localStorage.getItem("bgImgSetting"))return}else if(!mashiro_option.land_at_home)return;y(yield b())}))}var E;let L=null!==(E=mashiro_option.cookie_version_control)&&void 0!==E?E:"";var _=a(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,_.f)((0,u.__)("复制成功!"),1e3))}}function x(){mashiro_option.clipboardCopyright&&(document.body.removeEventListener("copy",S),document.body.addEventListener("copy",S))}var B=a(8487),T=a(9791),I=(a(7652),a(476));const C="「人生的每个阶段的结束,是另一段漂流的开始。」",N="「人生的每個階段的結束,是另一段漂流的開始。」",q={ja:"「人生の各段階の終わりは、別の漂流の始まりです。」",en:"「The end of each stage of life is the beginning of another drifting.」"};function O(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)}const j=navigator.userAgent,A=-1!=j.indexOf("Chrome")?/(Chrome)\/(\d+)/i:/(Firefox|Chrome|Version|Opera)\/(\d+)/i,P=j.match(A);function M(){var t;return(0,e.mG)(this,void 0,void 0,(function*(){if(mashiro_option.yiyan){const e=document.getElementById("footer_yiyan");if(0==(null!==(t=mashiro_option.yiyan_api)&&void 0!==t?t:["https://api.maho.cc/yiyan/"]).length)console.warn("一言API路径为空");else if(e)for(const t of mashiro_option.yiyan_api)try{const n=yield H(t);e.innerText=n}catch(e){console.warn(`一言api: 尝试联系"${t}"时出错。\n`,e);continue}}}))}const H=t=>(0,e.mG)(void 0,void 0,void 0,(function*(){const e=yield fetch(t);if(e.ok){const t=yield e.json(),n=("null"==t.from_who?null:t.from_who)||"",o=t.from!=t.from_who?`「${t.from}」`:"";return t.hitokoto+"——"+n+o}throw e.status}));function D(){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}()||R,i=0,r=1,s="♪ ♩ ♫ ♬ ♭ € § ¶ ♯".split(" ");document.querySelectorAll(".site-title, #moblieGoTop, .site-branding, .searchbox, .changeSkin-gear, .menu-list li").forEach((e=>{e.addEventListener("mouseenter",(e=>{var a;if(t)return;let c=o[i];c||(i=0,c=o[i]),i+=r;const l=n.createOscillator(),d=n.createGain(),m=n.createGain();l.connect(d),d.connect(m),m.connect(n.destination),m.gain.setValueAtTime((null===(a=u.o.opt.web_audio)||void 0===a?void 0:a.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 g=Math.round(7*Math.random()),f=e.pageX,h=e.pageY-5;t=document.createElement("b"),t.textContent=s[g],t.style.zIndex="99999",t.style.top=h-100+"px",t.style.left=f+"px",t.style.position="absolute",t.style.color="#FF6EB4",document.body.appendChild(t),t.animate([{top:h+"px"},{opacity:0}],{duration:500}),setTimeout((()=>{t.remove(),t=null}),500),e.stopPropagation()}))}))}}const R="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 z=document.getElementById("main-container");function V(){document.body.classList.toggle("navOpen"),z.classList.toggle("open"),document.getElementById("mo-nav").classList.toggle("open"),document.querySelector(".openNav").classList.toggle("open"),document.querySelector(".site-header").classList.toggle("open")}function U(){V(),document.documentElement.style.overflow="unset",z.removeEventListener("click",U)}let W;const F=(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(),i=(new DOMParser).parseFromString(o,"text/html"),r=i.querySelectorAll("#main .post"),s=i.querySelector("#pagination a"),a=s&&s.innerText,c=s&&s.getAttribute("href"),l=document.getElementById("main");if(e!=document.location.href)return;for(let e=0;e"})))}));function G(){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;n{const{name:t}=e.dataset;t!=localStorage.getItem("font_family")&&("serif"==t?(document.body.clientWidth<=860&&(0,_.f)("将从网络加载字体,流量请注意"),document.body.classList.add("serif"),Q("serif"),localStorage.setItem("font_family","serif")):(document.body.classList.remove("serif"),Q("sans-serif"),localStorage.setItem("font_family","sans-serif")))}}function K(){const e=localStorage.getItem("font_family");e&&"serif"!=e||document.body.classList.add("serif")}function Q(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 ee(){const e=(X=document.getElementsByClassName("control-btn-serif")[0],J=document.getElementsByClassName("control-btn-sans-serif")[0],J&&X);e||localStorage.removeItem("font_family"),K(),e&&(Q(),X.addEventListener("click",Z(X)),J.addEventListener("click",Z(J)))}var te=a(302),ne=a(8381);let oe;function ie(e,t,n,o,i,r,s){if(e){var a=e.trim().split(" "),c=o.indexOf(a[a.length-1]),l=s.indexOf(a[a.length-1]);o=(o=c<60?o.slice(0,80):o.slice(c-30,c+30)).replace(a[a.length-1],' '+a[a.length-1].toUpperCase()+" "),s=(s=l<60?s.slice(0,80):s.slice(l-30,l+30)).replace(a[a.length-1],' '+a[a.length-1].toUpperCase()+" ")}return'
'+o+' '+r+'

'+s+"

"}function re(e,t){var n="",o="",i="",r="",s="",a="",c='
',l="
",d="",u=function(e,t){for(let e=0;eObject.values(e).some((e=>new RegExp(t+"").test(e)))))}(e,t.trim());for(const e of u)switch(e.type){case"post":o+=ie(t,e.link,"file",e.title,"mark",e.comments,e.text);break;case"tag":s+=ie("",e.link,"tag",e.title,"none","","");break;case"category":r+=ie("",e.link,"folder",e.title,"none","","");break;case"page":i+=ie(t,e.link,"file",e.title,"mark",e.comments,e.text);break;case"comment":a+=ie(t,e.link,"comment",e.title,"none","",e.text)}o&&(n=n+c+"文章"+d+o+l),i&&(n=n+c+"页面"+d+i+l),r&&(n=n+c+"分类"+d+r+l),s&&(n=n+c+"标签"+d+s+l),a&&(n=n+c+"评论"+d+a+l),document.getElementById("PostlistBox").innerHTML=n}function se(){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 ae(){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){oe=[],function(t){const n=document.getElementById("search-input");null!=sessionStorage.getItem("search")?(oe=JSON.parse(sessionStorage.getItem("search")),re(oe,n.value),se()):fetch(t).then((t=>(0,e.mG)(this,void 0,void 0,(function*(){if(t.ok){const e=yield t.text();""!=e&&(sessionStorage.setItem("search",e),oe=JSON.parse(e),re(oe,n.value),se())}else console.warn("HTTP "+t.status)})))).catch((e=>console.warn(e)))}((0,ne.Z)(Poi.api+"sakura/v1/cache_search/json"));var t=document.getElementById("search-input"),n=null;t.oninput=function(){null!=n&&clearTimeout(n),n=setTimeout((function(){re(oe,t.value),se()}),250)}}}var ce,le=a(5213),de=a.n(le);function ue(){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 me(){const e=document.getElementById("primary");e&&e.addEventListener("contextmenu",(function(e){"img"==e.target.nodeName.toLowerCase()&&(e.preventDefault(),e.stopPropagation())}))}async function ge(e){mashiro_global.variables.skinSecter="white-bg"==e||"dark-bg"==e,ue();const t=document.body.style.backgroundImage;let n;switch(e){case"white-bg":n=mashiro_option.site_bg_as_cover?await b():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 fe(){const e=document.getElementById("bg-next"),t=document.getElementById("bg-pre");e&&(e.onclick=f),t&&(t.onclick=h)}function he(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{window.Hls=e.default,pe()})).catch((e=>console.warn("Hls load failed: ",e))))}0===document.createElement("canvas").toDataURL("image/webp").indexOf("data:image/webp")&&function(e,t,n){const o=n?"; expires="+new Date(Date.now()+24*n*60*60*1e3).toUTCString():"";document.cookie=e+L+"="+(t||"")+o+"; path=/"}("su_webp","1",114514),Poi.pjax=(ce={Firefox:84,Edg:88,Chrome:88,Opera:74,Version:9},P&&parseInt(P[2])>=ce[P[1]]&&Poi.pjax),Poi.pjax&&a.e(48).then(a.bind(a,3048)).then((({default:e})=>new e({selectors:["#page","title",".footer-device","#_mashiro_"],scripts:"#_mashiro_",timeout:8e3}))),(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},me(),he(),x(),mashiro_option.float_player_on&&document.body.clientWidth>860&&a.e(280).then(a.bind(a,8280)).then((({aplayerInit:e})=>e())),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);const ve=document.getElementById("bgvideo");function be(){const e=document.querySelector(".iconflat");e&&e.addEventListener("click",(e=>{e.stopPropagation(),document.body.classList.contains("navOpen")?U():(V(),document.documentElement.style.overflow="hidden",z.addEventListener("click",U))}))}function we(){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 a.e(280).then(a.bind(a,8280)).then((({destroyAllAplayer:e})=>{e(),ve.play()}))}catch(e){console.warn(e)}ve.play()}function Ee(){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{}ve.pause()}function Le(){const e=document.getElementsByClassName("video-stu")[0],t=Poi.movies.name.split(","),n=t[Math.floor(Math.random()*t.length)],o=document.getElementById("bgvideo");e.innerHTML="正在载入视频 ...",e.style.bottom="0px",o.setAttribute("src",new URL(n,Poi.movies.url||location.origin).toString()),o.setAttribute("video-name",n)}function _e(){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 ke(){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="","open"==Poi.movies.live&&ve&&null!=ve.oncanplay&&document.querySelector(".haslive")&&document.querySelector(".videolive")&&we()}else{try{t.style.paddingTop="75px"}catch(e){}e.style.height="0px",e.style.display="none",function(){if(ve&&null!=ve.oncanplay&&document.querySelector(".haslive")){Ee();let e=document.getElementsByClassName("video-stu")[0];e.style.bottom="0px",e.innerHTML="已暂停 ..."}}()}}}function Se(){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",ae);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 xe(){const e=document.querySelector(".site-header");window.addEventListener("scroll",(()=>{(document.documentElement.scrollTop||window.pageYOffset)>0?e.classList.add("yya"):e.classList.remove("yya")}))}function Be(){let e=document.querySelector("#moblieGoTop"),t=document.querySelector("#changskin");window.addEventListener("scroll",(()=>{(document.documentElement.scrollTop||document.body.scrollTop)>20?(e.style.transform="scale(1)",t.style.transform="scale(1)"):(e.style.transform="scale(0)",t.style.transform="scale(0)")})),e.onclick=function(){window.scrollTo({top:0,behavior:"smooth"})}}var Te;function Ie(){document.querySelector(".skin-menu").classList.remove("show"),setTimeout((function(){null!=document.querySelector(".changeSkin-gear")&&(document.querySelector(".changeSkin-gear").style.visibility="visible")}),300)}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&&a.e(865).then(a.t.bind(a,4865,23)).then((({default:e})=>{e.start()})),document.body.classList.contains("navOpen")&&U()})),document.addEventListener("pjax:complete",(function(){_e(),w(),ke(),Se(),mashiro_option.land_at_home&&Y(),mashiro_option.NProgressON&&a.e(865).then(a.t.bind(a,4865,23)).then((({default:e})=>{e.done()})),me(),K();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){_e(),M(),ke(),Se(),he(!0),G()}),!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),ge(null!=(Te=localStorage.getItem("bgImgSetting"))?Te:"white-bg"),(0,te.q1)(),(0,I.Cd)((function(){w(),document.querySelectorAll(".menu-list li").forEach((e=>{e.addEventListener("click",(function(){const e=this.id;"dark-bg"==e?(0,te.B3)(!0):((0,te.Lg)(!0),ge(e),localStorage.setItem("bgImgSetting",e)),Ie()}))}));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(){Ie()})),_e(),ke(),xe(),Be(),Y(),Se(),be(),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"),Le(),ve.oncanplay=function(){we(),document.getElementById("video-add").style.display="block",e.classList.add("videolive","haslive")}):this.classList.contains("video-pause")?(Ee(),e.classList.remove("videolive"),document.getElementsByClassName("video-stu")[0].style.bottom="0px",document.getElementsByClassName("video-stu")[0].innerHTML="已暂停 ..."):(we(),e.classList.add("videolive")),ve.onended=function(){ve.setAttribute("src",""),document.getElementById("video-add").style.display="none",e&&e.classList.add("loadvideo"),e&&e.classList.remove("video-pause","videolive","haslive"),document.querySelector(".focusinfo").style.top="49.3%"}}));const t=document.getElementById("video-add");t&&t.addEventListener("click",(function(){Le()}))}(),M(),fe(),ee(),D(),function(){const e=document.getElementById("preload");if(e){if("complete"===document.readyState)return O(e);window.addEventListener("load",(()=>{O(e)}))}}(),(0,T.m)(),de().colorful=!0,de().shake=!1,document.body.addEventListener("input",de()),function(){console.log("Sakurairo","https://github.com/mirai-mamori/Sakurairo");const e=navigator.language.match(/^([a-z]+)(?:-Han(s|t))?(?:-(\S+))?/i);if(e){const t=e[1];if("zh"==t.toLowerCase())switch(e[2]){case"s":return void console.log(C);case"t":return void console.log(N);default:e[3]?"cn"==e[3].toLowerCase()?console.log(C):console.log(N):console.log(C)}else console.log(q[t.toLowerCase()]||q.en)}}()})),G(),ye(),ue(),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 i=document.querySelector(".skin-menu");i&&i.classList.remove("show")}))})(),c=a.O(c)})(); +(()=>{var e,t,n,o,i,r={5213:function(e){var t;t=function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,n),i.loaded=!0,i.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 i=o.getContext("2d"),r=[],s=0,a=!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 i=window.getSelection();if(i.rangeCount){var r=i.getRangeAt(0),s=r.startContainer;return s.nodeType===document.TEXT_NODE&&(s=s.parentNode),{x:(e=r.getBoundingClientRect()).left,y:e.top,color:l(s)}}return{x:0,y:0,color:"transparent"}}(),t=5+Math.round(10*Math.random());t--;)r[s]=d(e.x,e.y,e.color),s=(s+1)%500;if(u.shake){var o=1+2*Math.random(),i=o*(Math.random()>.5?-1:1),c=o*(Math.random()>.5?-1:1);document.body.style.marginLeft=i+"px",document.body.style.marginTop=c+"px",setTimeout((function(){document.body.style.marginLeft="",document.body.style.marginTop=""}),75)}a||requestAnimationFrame(m)}function m(){a=!0,i.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",a.textContent=e.value.substring(0,o),"INPUT"===e.nodeName&&(a.textContent=a.textContent.replace(/\s/g," "));var d=document.createElement("span");d.textContent=e.value.substring(o)||".",a.appendChild(d);var u={top:d.offsetTop+parseInt(l.borderTopWidth),left:d.offsetLeft+parseInt(l.borderLeftWidth)};return r?d.style.backgroundColor="#aaa":document.body.removeChild(a),u}void 0!==e&&void 0!==e.exports?e.exports=o:window.getCaretCoordinates=o}()}])},e.exports=t()},7652:()=>{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("coverVideo-btn");if(e.paused){e.play();try{t.innerHTML=''}catch{}}else{e.pause();try{t.innerHTML=''}catch{}}},window.killCoverVideo=function(){var e=document.getElementById("coverVideo"),t=document.getElementById("coverVideo-btn");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"})}},8487:function(e,t,n){var o;o=void 0!==n.g?n.g:this,t.loadCSS=function(e,t,n,i){var r,s=o.document,a=s.createElement("link");if(t)r=t;else{var c=(s.body||s.getElementsByTagName("head")[0]).childNodes;r=c[c.length-1]}var l=s.styleSheets;if(i)for(var d in i)i.hasOwnProperty(d)&&a.setAttribute(d,i[d]);a.rel="stylesheet",a.href=e,a.media="only x",function e(t){if(s.body)return t();setTimeout((function(){e(t)}))}((function(){r.parentNode.insertBefore(a,t?r:r.nextSibling)}));var u=function(e){for(var t=a.href,n=l.length;n--;)if(l[n].href===t)return e();setTimeout((function(){u(e)}))};function m(){a.addEventListener&&a.removeEventListener("load",m),a.media=n||"all"}return a.addEventListener&&a.addEventListener("load",m),a.onloadcssdefined=u,u(m),a}},9791:(e,t,n)=>{n.d(t,{m:()=>r});const o={src:"data-src",srcset:"data-srcset",selector:".lazyload",root:null,rootMargin:"0px",threshold:0};class i{constructor(e,t){this.observer=null,this.settings=Object.assign(Object.assign({},o),t),this.images=e||document.querySelectorAll(this.settings.selector),this.init()}init(){if(!IntersectionObserver)return void this.loadImages();const e=this;let t={root:this.settings.root,rootMargin:this.settings.rootMargin,threshold:[this.settings.threshold]};this.observer=new IntersectionObserver((function(t){Array.prototype.forEach.call(t,(function(t){if(t.isIntersecting){e.observer.unobserve(t.target);let n=t.target.getAttribute(e.settings.src),o=t.target.getAttribute(e.settings.srcset);"img"===t.target.tagName.toLowerCase()?(n&&(t.target.src=n),o&&(t.target.srcset=o)):t.target.style.backgroundImage="url("+n+")"}}))}),t),this.images.forEach((t=>{e.observer.observe(t)}))}loadAndDestroy(){this.settings&&(this.loadImages(),this.destroy())}loadImages(){if(!this.settings)return;const e=this;Array.prototype.forEach.call(this.images,(function(t){let n=t.getAttribute(e.settings.src),o=t.getAttribute(e.settings.srcset);"img"===t.tagName.toLowerCase()?(n&&(t.src=n),o&&(t.srcset=o)):t.style.backgroundImage="url('"+n+"')"}))}destroy(){this.settings&&(this.observer.disconnect(),this.settings=null)}}const r=(e,t)=>new i(e,t)},8381:(e,t,n)=>{function o(e,t={},n=!0){const o=new URL(e),{searchParams:i}=o;for(const[e,n]of Object.entries(t))i.set(e,n);return n&&i.set("_wpnonce",Poi.nonce),o.toString()}n.d(t,{Z:()=>o})},9354:(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:()=>i})},476:(e,t,n)=>{n.d(t,{NB:()=>o,Cd:()=>s,wy:()=>a,VV:()=>c,cG:()=>l});const o=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}}}};let i=[];const r=()=>{document.removeEventListener("DOMContentLoaded",r);for(const e of i)e();i=[]},s=function(e){if("loading"!==document.readyState)return e();0==i.length&&document.addEventListener("DOMContentLoaded",r,!1),i.push(e)};function a(e,t=1e3,n="",o){let i=e;i.status=i.status||getComputedStyle(i,null).display;const r="none"!=i.status;1==r&&"show"==n||0==r&&"hide"==n||(i.status=r?"none":"block",i.style.transition="height "+t/1e3+"s",i.style.overflow="hidden",clearTimeout(i.tagTimer),i.tagTimer=i.tagTimer||null,i.style.display="block",i.tagHeight=i.tagHeight||i.clientHeight+"px",i.style.display="",i.style.height=r?i.tagHeight:"0px",setTimeout((()=>{i.style.height=r?"0px":i.tagHeight}),0),i.tagTimer=setTimeout((()=>{i.style.display=r?"none":"block",i.style.transition="",i.style.overflow="",i.style.height="",i.status=i.tagHeight=null}),t),o&&o())}const c=(e,t)=>ee.replace(/\.\w+$/,"")},302:(e,t,n)=>{n.d(t,{N2:()=>r,B3:()=>l,Lg:()=>d,q1:()=>m});const o=window.matchMedia("(prefers-color-scheme:dark)");let i=!1;const r=()=>i;function s(e){e!==i&&(document.dispatchEvent(new CustomEvent("darkmode",{detail:e})),i=e)}function a(){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),s(!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"),s(!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",a):o.removeListener(a),o.addEventListener?o.addEventListener("change",a):o.addListener(a))},2605:(e,t,n)=>{n.d(t,{__:()=>o,_$:()=>i,o:()=>r});const o=e=>window._sakurairoi18n&&_sakurairoi18n[e]||e,i=(e,...t)=>{let n=o(e);for(const e in t)n=n.replace("{"+e+"}",t[e]);return n},r={opt:{},__:o};if("_sakurairo"in window){const e=window._sakurairo;"opt"in e&&(r.opt=e.opt)}window._sakurairo=r},655:(e,t,n)=>{n.d(t,{mG:()=>o});function o(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))}Object.create;Object.create}},s={};function a(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return r[e].call(n.exports,n,n.exports,a),n.exports}a.m=r,e=[],a.O=(t,n,o,i)=>{if(!n){var r=1/0;for(d=0;d=i)&&Object.keys(a.O).every((e=>a.O[e](n[c])))?n.splice(c--,1):(s=!1,i0&&e[d-1][2]>i;d--)e[d]=e[d-1];e[d]=[n,o,i]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,a.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 i=Object.create(null);a.r(i);var r={};t=t||[null,n({}),n([]),n(n)];for(var s=2&o&&e;"object"==typeof s&&!~t.indexOf(s);s=n(s))Object.getOwnPropertyNames(s).forEach((t=>r[t]=()=>e[t]));return r.default=()=>e,a.d(i,r),i},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,n)=>(a.f[n](e,t),t)),[])),a.u=e=>e+".js",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},i="sakurairo-scripts:",a.l=(e,t,n,r)=>{if(o[e])o[e].push(t);else{var s,c;if(void 0!==n)for(var l=document.getElementsByTagName("script"),d=0;d{s.onerror=s.onload=null,clearTimeout(g);var i=o[e];if(delete o[e],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},g=setTimeout(m.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=m.bind(null,s.onerror),s.onload=m.bind(null,s.onload),c&&document.head.appendChild(s)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{var e={143:0};a.f.j=(t,n)=>{var o=a.o(e,t)?e[t]:void 0;if(0!==o)if(o)n.push(o[2]);else{var i=new Promise(((n,i)=>o=e[t]=[n,i]));n.push(o[2]=i);var r=a.p+a.u(t),s=new Error;a.l(r,(n=>{if(a.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var i=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+i+": "+r+")",s.name="ChunkLoadError",s.type=i,s.request=r,o[1](s)}}),"chunk-"+t,t)}},a.O.j=t=>0===e[t];var t=(t,n)=>{var o,i,[r,s,c]=n,l=0;if(r.some((t=>0!==e[t]))){for(o in s)a.o(s,o)&&(a.m[o]=s[o]);if(c)var d=c(a)}for(t&&t(n);l{var e=a(655);const t=function(){if(!(!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent))||!indexedDB.databases)return Promise.resolve();let e;return new Promise((t=>{const n=()=>indexedDB.databases().finally(t);e=setInterval(n,100),n()})).finally((()=>clearInterval(e)))};function n(e){return new Promise(((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)}))}function o(e,o){const i=t().then((()=>{const t=indexedDB.open(e);return t.onupgradeneeded=()=>t.result.createObjectStore(o),n(t)}));return(e,t)=>i.then((n=>t(n.transaction(o,e).objectStore(o))))}let i;function r(){return i||(i=o("keyval-store","keyval")),i}const s=o("sakurairo","cache"),c=e=>function(e,t=r()){return t("readonly",(t=>n(t.get(e))))}(e,s),l=(e,t)=>function(e,t,o=r()){return o("readwrite",(o=>(o.put(t,e),n(o.transaction))))}(e,t,s),d=e=>function(e,t=r()){return t("readwrite",(t=>(t.delete(e),n(t.transaction))))}(e,s);var u;let m=null!==(u=mashiro_option.cookie_version_control)&&void 0!==u?u:"";const g=navigator.userAgent.match(/(Firefox|Chrome|Version|Opera|Edg)\/(\d+)/i);function f(e){return g&&e[g[1]]&&parseInt(g[2])>=e[g[1]]}const h=function(){const e=[];return f({Chrome:59,Opera:46,Firefox:3,Edg:79,Version:8})&&(e.push("image/apng"),f({Chrome:32,Opera: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+m+"="+(t||"")+o+"; path=/"}("su_webp","1",114514),e.push("image/webp"),f({Chrome:85,Opera:71,Firefox:93})&&e.push("image/avif"))),e.reverse().join(",")+",image/*,*/*;q=0.8"}();var p=a(2605);let y=1,v="";function b(){return(0,e.mG)(this,void 0,void 0,(function*(){L(yield k(!0)),y++}))}function w(){return(0,e.mG)(this,void 0,void 0,(function*(){y--,L(yield k(!0))}))}const E=document.querySelector(".centerbg"),L=mashiro_option.site_bg_as_cover?e=>{document.body.style.backgroundImage=`url(${e})`}:E?e=>{E.style.backgroundImage=`url(${e})`}:()=>{};function _(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?"&"+y:"")):t.toString()+(e?(""===t.search?"?":"&")+y:"")}const k=mashiro_option.cache_cover?(t=!1)=>(0,e.mG)(void 0,void 0,void 0,(function*(){return c("cover").then((e=>e?e instanceof ArrayBuffer?(URL.revokeObjectURL(v),v="",v=URL.createObjectURL(new Blob([e])),v):void 0:_(t))).finally((()=>{!function(t=!1){(0,e.mG)(this,void 0,void 0,(function*(){try{const e=yield fetch(_(t),{headers:{Accept:h}});if(e.ok){const t=yield e.arrayBuffer();try{l("cover",t)}catch(e){console.warn(e)}}}catch(e){e instanceof TypeError&&(console.warn((0,p.__)("你的封面API好像不支持跨域调用,这种情况下缓存是不会生效的哦")),d("cover"))}}))}(t)}))})):_;function S(){return(0,e.mG)(this,void 0,void 0,(function*(){if(mashiro_option.site_bg_as_cover){if(E&&(E.style.background="#0000"),"white-bg"!==localStorage.getItem("bgImgSetting"))return}else if(!mashiro_option.land_at_home)return;L(yield k())}))}var x=a(9354);const T=["# 商业转载请联系作者获得授权,非商业转载请注明出处。","# 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 B(e){const t=window.getSelection();if(t){const n=t.toString();n.length>30&&(!function(e,t){e.preventDefault();const n=T.join("
")+"

"+t.replace(/\r\n/g,"
"),o=T.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,x.f)((0,p.__)("复制成功!"),1e3))}}function I(){mashiro_option.clipboardCopyright&&(document.body.removeEventListener("copy",B),document.body.addEventListener("copy",B))}var C=a(8487),N=a(9791),q=(a(7652),a(476));const O="「人生的每个阶段的结束,是另一段漂流的开始。」",j="「人生的每個階段的結束,是另一段漂流的開始。」",A={ja:"「人生の各段階の終わりは、別の漂流の始まりです。」",en:"「The end of each stage of life is the beginning of another drifting.」"};function P(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)}function M(){var t;return(0,e.mG)(this,void 0,void 0,(function*(){if(mashiro_option.yiyan){const e=document.getElementById("footer_yiyan");if(0==(null!==(t=mashiro_option.yiyan_api)&&void 0!==t?t:["https://api.maho.cc/yiyan/"]).length)console.warn("一言API路径为空");else if(e)for(const t of mashiro_option.yiyan_api)try{const n=yield H(t);e.innerText=n;break}catch(e){console.warn(`一言api: 尝试联系"${t}"时出错。\n`,e);continue}}}))}const H=t=>(0,e.mG)(void 0,void 0,void 0,(function*(){const e=yield fetch(t,{headers:{Accept:"application/json"}});if(e.ok){const t=yield e.json(),n=("null"==t.from_who?null:t.from_who)||"",o=t.from!=t.from_who?`「${t.from}」`:"";return t.hitokoto+"——"+n+o}throw e.status}));function D(){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=p.o.opt.web_audio)||void 0===e?void 0:e.sheet;if("string"==typeof t)return t.split(" ");if(t instanceof Array)return t}()||R,i=0,r=1,s="♪ ♩ ♫ ♬ ♭ € § ¶ ♯".split(" ");document.querySelectorAll(".site-title, #moblieGoTop, .site-branding, .searchbox, .changeSkin-gear, .menu-list li").forEach((e=>{e.addEventListener("mouseenter",(e=>{var a;if(t)return;let c=o[i];c||(i=0,c=o[i]),i+=r;const l=n.createOscillator(),d=n.createGain(),u=n.createGain();l.connect(d),d.connect(u),u.connect(n.destination),u.gain.setValueAtTime((null===(a=p.o.opt.web_audio)||void 0===a?void 0:a.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 m=Math.round(7*Math.random()),g=e.pageX,f=e.pageY-5;t=document.createElement("b"),t.textContent=s[m],t.style.zIndex="99999",t.style.top=f-100+"px",t.style.left=g+"px",t.style.position="absolute",t.style.color="#FF6EB4",document.body.appendChild(t),t.animate([{top:f+"px"},{opacity:0}],{duration:500}),setTimeout((()=>{t.remove(),t=null}),500),e.stopPropagation()}))}))}}const R="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 z=document.getElementById("main-container");function V(){document.body.classList.toggle("navOpen"),z.classList.toggle("open"),document.getElementById("mo-nav").classList.toggle("open"),document.querySelector(".openNav").classList.toggle("open"),document.querySelector(".site-header").classList.toggle("open")}function F(){V(),document.documentElement.style.overflow="unset",z.removeEventListener("click",F)}let W;const G=(0,q.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(),i=(new DOMParser).parseFromString(o,"text/html"),r=i.querySelectorAll("#main .post"),s=i.querySelector("#pagination a"),a=s&&s.innerText,c=s&&s.getAttribute("href"),l=document.getElementById("main");if(e!=document.location.href)return;for(let e=0;e"})))}));function U(){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;n{const{name:t}=e.dataset;t!=localStorage.getItem("font_family")&&("serif"==t?(document.body.clientWidth<=860&&(0,x.f)("将从网络加载字体,流量请注意"),document.body.classList.add("serif"),Q("serif"),localStorage.setItem("font_family","serif")):(document.body.classList.remove("serif"),Q("sans-serif"),localStorage.setItem("font_family","sans-serif")))}}function K(){const e=localStorage.getItem("font_family");e&&"serif"!=e||document.body.classList.add("serif")}function Q(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 ee(){const e=(X=document.getElementsByClassName("control-btn-serif")[0],J=document.getElementsByClassName("control-btn-sans-serif")[0],J&&X);e||localStorage.removeItem("font_family"),K(),e&&(Q(),X.addEventListener("click",Z(X)),J.addEventListener("click",Z(J)))}var te=a(302);const ne=Poi.movies.name&&Poi.movies.name.split(","),oe=document.getElementById("bgvideo");function ie(){const e=document.getElementById("coverVideo"),t=e.dataset.src;if(Hls.isSupported()){const n=new Hls;n.loadSource(t),n.attachMedia(e),n.on(Hls.Events.MANIFEST_PARSED,(function(){e.play()}))}else e.canPlayType("application/vnd.apple.mpegurl")&&(e.src=t,e.addEventListener("loadedmetadata",(function(){e.play()})))}function re(){const e=document.getElementsByClassName("video-stu")[0],t=ne[Math.floor(Math.random()*ne.length)],n=document.getElementById("bgvideo");e.innerHTML="正在载入视频 ...",e.style.bottom="0px",n.setAttribute("src",new URL(t,Poi.movies.url||location.origin).toString()),n.setAttribute("video-name",(0,q.cG)(t))}function se(){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 a.e(280).then(a.bind(a,8280)).then((({destroyAllAplayer:e})=>{e(),oe.play()}))}catch(e){console.warn(e)}oe.play()}function ae(){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){}oe.pause()}function ce(){let e=document.getElementsByTagName("video")[0];e&&e.classList.contains("hls")&&(window.Hls?ie():a.e(631).then(a.t.bind(a,7631,23)).then((e=>{window.Hls=e.default,ie()})).catch((e=>console.warn("Hls load failed: ",e))))}var le=a(8381);let de;function ue(e,t,n,o,i,r,s){if(e){var a=e.trim().split(" "),c=o.indexOf(a[a.length-1]),l=s.indexOf(a[a.length-1]);o=(o=c<60?o.slice(0,80):o.slice(c-30,c+30)).replace(a[a.length-1],' '+a[a.length-1].toUpperCase()+" "),s=(s=l<60?s.slice(0,80):s.slice(l-30,l+30)).replace(a[a.length-1],' '+a[a.length-1].toUpperCase()+" ")}return'
'+o+' '+r+'

'+s+"

"}function me(e,t){var n="",o="",i="",r="",s="",a="",c='
',l="
",d="",u=function(e,t){for(let e=0;eObject.values(e).some((e=>new RegExp(t+"").test(e)))))}(e,t.trim());for(const e of u)switch(e.type){case"post":o+=ue(t,e.link,"file",e.title,"mark",e.comments,e.text);break;case"tag":s+=ue("",e.link,"tag",e.title,"none","","");break;case"category":r+=ue("",e.link,"folder",e.title,"none","","");break;case"page":i+=ue(t,e.link,"file",e.title,"mark",e.comments,e.text);break;case"comment":a+=ue(t,e.link,"comment",e.title,"none","",e.text)}o&&(n=n+c+"文章"+d+o+l),i&&(n=n+c+"页面"+d+i+l),r&&(n=n+c+"分类"+d+r+l),s&&(n=n+c+"标签"+d+s+l),a&&(n=n+c+"评论"+d+a+l),document.getElementById("PostlistBox").innerHTML=n}function ge(){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 fe(){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){de=[],function(t){const n=document.getElementById("search-input");null!=sessionStorage.getItem("search")?(de=JSON.parse(sessionStorage.getItem("search")),me(de,n.value),ge()):fetch(t).then((t=>(0,e.mG)(this,void 0,void 0,(function*(){if(t.ok){const e=yield t.text();""!=e&&(sessionStorage.setItem("search",e),de=JSON.parse(e),me(de,n.value),ge())}else console.warn("HTTP "+t.status)})))).catch((e=>console.warn(e)))}((0,le.Z)(Poi.api+"sakura/v1/cache_search/json"));var t=document.getElementById("search-input"),n=null;t.oninput=function(){null!=n&&clearTimeout(n),n=setTimeout((function(){me(de,t.value),ge()}),250)}}}var he,pe=a(5213),ye=a.n(pe);function ve(){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 be(){const e=document.getElementById("primary");e&&e.addEventListener("contextmenu",(function(e){"img"==e.target.nodeName.toLowerCase()&&(e.preventDefault(),e.stopPropagation())}))}async function we(e){mashiro_global.variables.skinSecter="white-bg"==e||"dark-bg"==e,ve();const t=document.body.style.backgroundImage;let n;switch(e){case"white-bg":n=mashiro_option.site_bg_as_cover?await k():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 Ee(){const e=document.getElementById("bg-next"),t=document.getElementById("bg-pre");e&&(e.onclick=b),t&&(t.onclick=w)}function Le(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,q.wy)(e.target.nextElementSibling,500),e.preventDefault())})),(0,N.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")?F():(V(),document.documentElement.style.overflow="hidden",z.addEventListener("click",F))}))}function ke(){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 Se(){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="","open"==Poi.movies.live&&oe&&null!=oe.oncanplay&&document.querySelector(".haslive")&&document.querySelector(".videolive")&&se()}else{try{t.style.paddingTop="75px"}catch(e){}e.style.height="0px",e.style.display="none",function(){if(oe&&null!=oe.oncanplay&&document.querySelector(".haslive")){ae();let e=document.getElementsByClassName("video-stu")[0];e.style.bottom="0px",e.innerHTML="已暂停 ..."}}()}}}function xe(){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,q.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,q.wy)(e.target.nextElementSibling,300)}))}for(const e of document.getElementsByClassName("js-toggle-search"))e.addEventListener("click",fe);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 Te(){const e=document.querySelector(".site-header");window.addEventListener("scroll",(()=>{(document.documentElement.scrollTop||window.pageYOffset)>0?e.classList.add("yya"):e.classList.remove("yya")}))}function Be(){let e=document.querySelector("#moblieGoTop"),t=document.querySelector("#changskin");window.addEventListener("scroll",(()=>{(document.documentElement.scrollTop||document.body.scrollTop)>20?(e.style.transform="scale(1)",t.style.transform="scale(1)"):(e.style.transform="scale(0)",t.style.transform="scale(0)")})),e.onclick=function(){window.scrollTo({top:0,behavior:"smooth"})}}function Ie(){document.querySelector(".skin-menu").classList.remove("show"),setTimeout((function(){null!=document.querySelector(".changeSkin-gear")&&(document.querySelector(".changeSkin-gear").style.visibility="visible")}),300)}Poi.pjax=f({Firefox:84,Edg:88,Chrome:88,Opera:74,Version:9})&&Poi.pjax,Poi.pjax&&a.e(48).then(a.bind(a,3048)).then((({default:e})=>new e({selectors:["#page","title",".footer-device","#_mashiro_"],scripts:"#_mashiro_",timeout:8e3}))),(0,C.loadCSS)(mashiro_option.jsdelivr_css_src),(0,C.loadCSS)(mashiro_option.entry_content_style_src),(0,C.loadCSS)("https://at.alicdn.com/t/font_679578_qyt5qzzavdo39pb9.css"),mashiro_global.variables=new function(){this.skinSecter=!0},be(),Le(),I(),mashiro_option.float_player_on&&document.body.clientWidth>860&&a.e(280).then(a.bind(a,8280)).then((({aplayerInit:e})=>e())),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&&a.e(865).then(a.t.bind(a,4865,23)).then((({default:e})=>{e.start()})),document.body.classList.contains("navOpen")&&F()})),document.addEventListener("pjax:complete",(function(){ke(),S(),Se(),xe(),mashiro_option.land_at_home&&Y(),mashiro_option.NProgressON&&a.e(865).then(a.t.bind(a,4865,23)).then((({default:e})=>{e.done()})),be(),K();let e=document.getElementsByTagName("p");for(let t=0;t{for(let e=0;e{(0,x.f)((0,p._$)("页面加载出错了 HTTP {0}",e.request.status))})),window.addEventListener("popstate",(function(e){ke(),M(),Se(),xe(),Le(!0),U()}),!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),we(null!=(he=localStorage.getItem("bgImgSetting"))?he:"white-bg"),(0,te.q1)(),(0,q.Cd)((function(){S(),document.querySelectorAll(".menu-list li").forEach((e=>{e.addEventListener("click",(function(){const e=this.id;"dark-bg"==e?(0,te.B3)(!0):((0,te.Lg)(!0),we(e),localStorage.setItem("bgImgSetting",e)),Ie()}))}));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(){Ie()})),ke(),Se(),Te(),Be(),Y(),xe(),_e(),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"),re(),oe.oncanplay=function(){se(),document.getElementById("video-add").style.display="block",e.classList.add("videolive","haslive")}):this.classList.contains("video-pause")?(ae(),e.classList.remove("videolive"),document.getElementsByClassName("video-stu")[0].style.bottom="0px",document.getElementsByClassName("video-stu")[0].innerHTML="已暂停 ..."):(se(),e.classList.add("videolive")),oe.onended=function(){oe.setAttribute("src",""),document.getElementById("video-add").style.display="none",e&&e.classList.add("loadvideo"),e&&e.classList.remove("video-pause","videolive","haslive"),document.querySelector(".focusinfo").style.top="49.3%"}}));const t=document.getElementById("video-add");t&&t.addEventListener("click",(function(){re()}))}(),M(),Ee(),ee(),D(),function(){const e=document.getElementById("preload");if(e){if("complete"===document.readyState)return P(e);window.addEventListener("load",(()=>{P(e)}))}}(),(0,N.m)(),ye().colorful=!0,ye().shake=!1,document.body.addEventListener("input",ye()),function(){console.log("Sakurairo","https://github.com/mirai-mamori/Sakurairo");const e=navigator.language.match(/^([a-z]+)(?:-Han(s|t))?(?:-(\S+))?/i);if(e){const t=e[1];if("zh"==t.toLowerCase())switch(e[2]){case"s":return void console.log(O);case"t":return void console.log(j);default:e[3]?"cn"==e[3].toLowerCase()?console.log(O):console.log(j):console.log(O)}else console.log(A[t.toLowerCase()]||A.en)}}()})),U(),ce(),ve(),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 i=document.querySelector(".skin-menu");i&&i.classList.remove("show")}))})(),c=a.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 6122cc9b..bb1f043f 100644 --- a/js/app.js.LICENSE.txt +++ b/js/app.js.LICENSE.txt @@ -40,4 +40,4 @@ * */ -//! build d09ae55 2021/8/27 +//! build a3ed6ef 2021/9/13 diff --git a/js/app.js.br b/js/app.js.br index e5f343f5..f4599391 100644 Binary files a/js/app.js.br and b/js/app.js.br differ diff --git a/js/app.js.gz b/js/app.js.gz index c953a862..b31781f3 100644 Binary files a/js/app.js.gz and b/js/app.js.gz differ diff --git a/js/app.js.map b/js/app.js.map index 81456ae6..b9a9907a 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/fg-loadcss/src/loadCSS.js","webpack://sakurairo-scripts/./node_modules/lazyload/src/lazyload.ts","webpack://sakurairo-scripts/./src/common/api.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/./node_modules/tslib/tslib.es6.js","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/esm/index.js","webpack://sakurairo-scripts/./node_modules/idb-keyval/dist/esm/index.js","webpack://sakurairo-scripts/./src/sakura-app/cache.ts","webpack://sakurairo-scripts/./src/sakura-app/coverBackground.ts","webpack://sakurairo-scripts/./src/common/cookie.ts","webpack://sakurairo-scripts/./src/sakura-app/copyright.ts","webpack://sakurairo-scripts/./src/sakura-app/about_us.ts","webpack://sakurairo-scripts/./src/sakura-app/preload_screen.ts","webpack://sakurairo-scripts/./src/sakura-app/browser_detect.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/./src/sakura-app/font_control.ts","webpack://sakurairo-scripts/./src/sakura-app/search.ts","webpack://sakurairo-scripts/./src/sakura-app/index.js"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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, fn, priority] = deferred[i];\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((key) => (__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 ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (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((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (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 = (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 = (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((fn) => (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 = document.getElementById(\"coverVideo-btn\");\n\n if (video.paused) {\n video.play();\n try {\n btn.innerHTML = '';\n } catch { };\n //console.info('play:coverVideo()');\n } else {\n video.pause();\n try {\n btn.innerHTML = '';\n } catch { };\n //console.info('pause:coverVideo()');\n }\n}\n\nfunction killCoverVideo() {\n var video = document.getElementById(\"coverVideo\");\n var btn = document.getElementById(\"coverVideo-btn\");\n\n if (video.paused) {\n //console.info('none:killCoverVideo()');\n } else {\n video.pause();\n try {\n btn.innerHTML = '';\n } catch (e) { };\n //console.info('pause:killCoverVideo()');\n }\n}\nfunction mail_me() {\n var mail = \"mailto:\" + mashiro_option.email_name + \"@\" + mashiro_option.email_domain;\n window.open(mail);\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.killCoverVideo = killCoverVideo\nwindow.mail_me = mail_me\nwindow.headertop_down = headertop_down","/*! 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","/**\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(images, options) {\n this.observer = null;\n this.settings = Object.assign(Object.assign({}, defaults), options);\n this.images = images || 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.loadImages();\n return;\n }\n const self = this;\n let observerConfig = {\n root: this.settings.root,\n rootMargin: this.settings.rootMargin,\n threshold: [this.settings.threshold]\n };\n this.observer = new IntersectionObserver(function (entries) {\n Array.prototype.forEach.call(entries, function (entry) {\n if (entry.isIntersecting) {\n self.observer.unobserve(entry.target);\n let src = entry.target.getAttribute(self.settings.src);\n let srcset = entry.target.getAttribute(self.settings.srcset);\n if (\"img\" === entry.target.tagName.toLowerCase()) {\n if (src) {\n entry.target.src = src;\n }\n if (srcset) {\n entry.target.srcset = srcset;\n }\n }\n else {\n entry.target.style.backgroundImage = \"url(\" + src + \")\";\n }\n }\n });\n }, observerConfig);\n this.images.forEach((image) => {\n self.observer.observe(image);\n });\n }\n loadAndDestroy() {\n if (!this.settings) {\n return;\n }\n this.loadImages();\n this.destroy();\n }\n loadImages() {\n if (!this.settings) {\n return;\n }\n const self = this;\n Array.prototype.forEach.call(this.images, function (image) {\n let src = image.getAttribute(self.settings.src);\n let srcset = image.getAttribute(self.settings.srcset);\n if (\"img\" === image.tagName.toLowerCase()) {\n if (src) {\n image.src = src;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n }\n else {\n image.style.backgroundImage = \"url('\" + src + \"')\";\n }\n });\n }\n /**\n * Destroy Lazyload Instance\n * @returns\n */\n destroy() {\n if (!this.settings) {\n return;\n }\n this.observer.disconnect();\n this.settings = null;\n }\n}\nexport const lazyload = (images, options) => new LazyLoad(images, options);\n","export default function (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","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","/**\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};\nlet readyFunctionList = [];\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};\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}\n/* export const max = (a: number, b: number) => a > b ? a : b\n */ export const min = (a, b) => a < b ? a : b;\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 __\n /* _sys_call:sys_call\n */ \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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((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 = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + 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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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;","// no baseURI\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 = (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((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 = (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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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((id) => (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 * https://bugs.webkit.org/show_bug.cgi?id=226547\n * Safari has a horrible bug where IDB requests can hang while the browser is starting up.\n * The only solution is to keep nudging it until it's awake.\n * This probably creates garbage, but garbage is better than totally failing.\n */\nfunction idbReady() {\n const 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 let intervalId;\n return new Promise((resolve) => {\n const tryIdb = () => indexedDB.databases().finally(resolve);\n intervalId = setInterval(tryIdb, 100);\n tryIdb();\n }).finally(() => 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 * 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, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n","import { createStore, get as idbget, set as idbset, del as idbdel } from 'idb-keyval';\nconst store = createStore('sakurairo', 'cache');\nconst get = (key) => idbget(key, store);\nconst set = (key, value) => idbset(key, value, store);\nconst del = (key) => idbdel(key, store);\nexport { get, set, del };\n","import { __awaiter } from \"tslib\";\nimport { get, set, del } from './cache';\nimport { __ } from './sakurairo_global';\nlet bgn = 1;\nlet blob_url = '';\nexport function nextBG() {\n return __awaiter(this, void 0, void 0, function* () {\n changeCoverBG(yield getCoverPath(true));\n bgn++;\n });\n}\nexport function preBG() {\n return __awaiter(this, void 0, void 0, function* () {\n bgn--;\n changeCoverBG(yield getCoverPath(true));\n });\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} :\n centerbg ? (url) => {\n centerbg.style.backgroundImage = `url(${url})`;\n } : () => { };\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) => __awaiter(void 0, void 0, void 0, function* () {\n return get('cover').then(coverBG => {\n if (coverBG) {\n if (coverBG instanceof ArrayBuffer) {\n cleanBlobUrl();\n blob_url = URL.createObjectURL(new Blob([coverBG]));\n return blob_url;\n }\n }\n else {\n //fallback\n return getAPIPath(useBGN);\n }\n }).finally(() => {\n fetchAndCache(useBGN);\n });\n})\n : getAPIPath;\nfunction fetchAndCache(useBGN = false) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const resp = yield fetch(getAPIPath(useBGN));\n if (resp.ok) {\n const buf = yield 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 (typeof e == 'object' && e instanceof TypeError) {\n console.warn(__('你的封面API好像不支持跨域调用,这种情况下缓存是不会生效的哦'));\n del('cover');\n }\n }\n });\n}\nfunction cleanBlobUrl() {\n URL.revokeObjectURL(blob_url);\n blob_url = '';\n}\nexport function initCoverBG() {\n return __awaiter(this, void 0, void 0, function* () {\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(yield getCoverPath());\n });\n}\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","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 about_us() {\n console.log('Sakurairo', 'https://github.com/mirai-mamori/Sakurairo');\n //hitokoto\n const lang = navigator.language;\n /**\n * @seealso https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry\n */\n const matchResult = lang.match(/^([a-z]+)(?:-Han(s|t))?(?:-(\\S+))?/i);\n if (matchResult) {\n const lang_prefix = matchResult[1];\n if (lang_prefix.toLowerCase() == 'zh') {\n const han_suffix = matchResult[2];\n switch (han_suffix) {\n case 's':\n console.log(zhHans);\n return;\n case 't':\n console.log(zhHant);\n return;\n default:\n if (matchResult[3]) {\n if (matchResult[3].toLowerCase() == 'cn') {\n console.log(zhHans);\n }\n else {\n console.log(zhHant);\n }\n }\n else {\n console.log(zhHans);\n }\n }\n }\n else {\n console.log(VersionHitokoto[lang_prefix.toLowerCase()] || VersionHitokoto.en);\n }\n }\n /* console.log(\"%c Mashiro %c\", \"background:#24272A; color:#ffffff\", \"\", \"https://2heng.xin/\");\n console.log(\"%c Github %c\", \"background:#24272A; color:#ffffff\", \"\", \"https://github.com/mashirozx\"); */\n}\nconst zhHans = \"「人生的每个阶段的结束,是另一段漂流的开始。」\";\nconst zhHant = \"「人生的每個階段的結束,是另一段漂流的開始。」\";\nconst VersionHitokoto = {\n ja: \"「人生の各段階の終わりは、別の漂流の始まりです。」\",\n en: \"「The end of each stage of life is the beginning of another drifting.」\",\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","const UA = navigator.userAgent;\nconst reg = UA.indexOf('Chrome') != -1 ? /(Chrome)\\/(\\d+)/i : /(Firefox|Chrome|Version|Opera)\\/(\\d+)/i;\nconst version = UA.match(reg);\nexport function isSupported(checkList) {\n return version && (parseInt(version[2]) >= checkList[version[1]]);\n}\n","import { __awaiter } from \"tslib\";\nexport default function hitokoto() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\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 = yield _hitokoto(api_path);\n yiyan.innerText = txt;\n }\n catch (e) {\n console.warn(`一言api: 尝试联系\"${api_path}\"时出错。\\n`, e);\n continue;\n }\n }\n }\n }\n });\n}\nconst _hitokoto = (api) => __awaiter(void 0, void 0, void 0, function* () {\n const res = yield fetch(api);\n if (res.ok) {\n const data = yield 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 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 //在进行DOM操作前检查页面是否已经变化,防止错误加载到其他页面上\n if (now_href != document.location.href) return /**如果页面状态发生了变化,那么也应该不用理加载提示符 */\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 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 { createButterbar } from \"../common/butterbar\";\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","import { __awaiter } from \"tslib\";\nimport buildAPI from '../common/api';\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((resp) => __awaiter(this, void 0, void 0, function* () {\n if (resp.ok) {\n const json = yield 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 * *** ACKNOWLEDGEMENT *** \n * \n * Press 'F' to pay respects.\n * \n */\n\nimport { nextBG, preBG, initCoverBG, getCoverPath } from './coverBackground'\nimport { setCookie, } from '../common/cookie'\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 './browser_detect'\nimport hitokoto from './hitokoto'\nimport { web_audio } from './web_audio'\nimport { open, close } from './mobile_nav'\nimport { XLS,post_list_show_animation } from './posts'\nif (document.createElement('canvas').toDataURL('image/webp').indexOf('data:image/webp') === 0)\n setCookie('su_webp', '1', 114514)\n//检查是否应当开启Poi.pjax\nPoi.pjax = isSupported({ Firefox: 84, Edg: 88, Chrome: 88, Opera: 74, Version: 9 }) && Poi.pjax;\nPoi.pjax && import('@sliphua/pjax').then(({ default: Pjax }) =>\n new Pjax({\n selectors: [\"#page\", \"title\", \".footer-device\", \"#_mashiro_\"],\n scripts: \"#_mashiro_\",\n timeout: 8000,\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\nfunction loadHls() {\n const video = document.getElementById('coverVideo'),\n video_src = document.getElementById(\"coverVideo\").getAttribute(\"data-src\");\n if (Hls.isSupported()) {\n const hls = new Hls();\n hls.loadSource(video_src);\n hls.attachMedia(video);\n hls.on(Hls.Events.MANIFEST_PARSED, function () {\n video.play();\n });\n } else if (video.canPlayType('application/vnd.apple.mpegurl')) {\n video.src = video_src;\n video.addEventListener('loadedmetadata', function () {\n video.play();\n });\n }\n}\n\nfunction coverVideoIni() {\n let video = document.getElementsByTagName('video')[0];\n if (video && video.classList.contains('hls')) {\n if (window.Hls) {\n loadHls();\n } else {\n import('hls.js')\n .then(hls => {\n //export to GLOBAL\n window.Hls = hls.default\n loadHls();\n })\n .catch(reason => console.warn('Hls load failed: ', reason))\n }\n }\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\nconst s = document.getElementById(\"bgvideo\");\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 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 s.play();\n })\n return\n }\n } catch (e) {\n console.warn(e)\n }\n s.play();\n} function 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 } catch { }\n s.pause();\n}\nfunction liveplay() {\n if (s && s.oncanplay != undefined && document.querySelector(\".haslive\")) {\n if (document.querySelector(\".videolive\")) {\n splay();\n }\n }\n}\nfunction livepause() {\n if (s && s.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}\nfunction readCoverVideoSourceFromPoi() {\n const video_stu = document.getElementsByClassName(\"video-stu\")[0];\n const titles = Poi.movies.name.split(\",\"),\n title = titles[Math.floor(Math.random() * titles.length)],\n bgvideo = document.getElementById(\"bgvideo\");\n video_stu.innerHTML = \"正在载入视频 ...\";\n video_stu.style.bottom = \"0px\";\n bgvideo.setAttribute(\"src\", new URL(title, Poi.movies.url || location.origin).toString());\n bgvideo.setAttribute(\"video-name\", title);\n}\nfunction LV() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) video_btn.addEventListener(\"click\", function () {\n if (this.classList.contains(\"loadvideo\")) {\n this.classList.add(\"video-pause\");\n this.classList.remove(\"loadvideo\");\n readCoverVideoSourceFromPoi();\n s.oncanplay = function () {\n splay();\n document.getElementById(\"video-add\").style.display = \"block\";\n video_btn.classList.add(\"videolive\", \"haslive\");\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 } else {\n splay();\n video_btn.classList.add(\"videolive\");\n }\n }\n s.onended = function () {\n s.setAttribute(\"src\", \"\");\n document.getElementById(\"video-add\").style.display = \"none\";\n video_btn && video_btn.classList.add(\"loadvideo\");\n video_btn && video_btn.classList.remove(\"video-pause\", \"videolive\", \"haslive\");\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\n }\n });\n const video_add = document.getElementById(\"video-add\")\n if (video_add) video_add.addEventListener(\"click\", function () {\n readCoverVideoSourceFromPoi();\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 == 'open') 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 let scroll = document.documentElement.scrollTop || document.body.scrollTop;\n if (scroll > 20) {\n mb_to_top.style.transform = \"scale(1)\";\n changskin.style.transform = \"scale(1)\";\n } else {\n mb_to_top.style.transform = \"scale(0)\";\n changskin.style.transform = \"scale(0)\";\n }\n })\n mb_to_top.onclick = function () {\n topFunction();\n }\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()\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 LV();\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"],"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","paused","play","innerHTML","pause","killCoverVideo","e","mail_me","mail","mashiro_option","email_name","email_domain","open","headertop_down","coverOffset","pageYOffset","scrollTo","behavior","w","g","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","defaults","srcset","selector","root","rootMargin","threshold","LazyLoad","images","observer","settings","Object","assign","querySelectorAll","init","IntersectionObserver","loadImages","self","observerConfig","entries","Array","prototype","entry","isIntersecting","unobserve","target","toLowerCase","backgroundImage","image","observe","destroy","disconnect","lazyload","apiPath","params","nonce","path","URL","searchParams","key","set","Poi","toString","clearButterbar","butterBar","getElementsByClassName","createButterbar","message","keep","onlyOnceATime","func","isRunning","args","result","Promise","finally","console","warn","readyFunctionList","whileReady","fn","readyState","push","slideToggle","duration","mode","callback","dom","status","flag","transition","clearTimeout","tagTimer","display","tagHeight","clientHeight","a","b","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","_sakurairo","__awaiter","thisArg","_arguments","P","generator","resolve","reject","fulfilled","step","next","rejected","done","then","apply","create","__webpack_module_cache__","__webpack_require__","cachedModule","undefined","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","j","keys","every","splice","r","n","getter","__esModule","d","getPrototypeOf","obj","t","ns","def","current","indexOf","getOwnPropertyNames","definition","o","defineProperty","enumerable","get","f","chunkId","all","reduce","promises","globalThis","Function","l","url","script","needAttach","scripts","s","charset","timeout","nc","onScriptComplete","prev","event","onerror","onload","doneFns","bind","head","Symbol","toStringTag","scriptUrl","importScripts","location","currentScript","Error","installedChunks","143","installedChunkData","promise","error","errorType","realSrc","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","navigator","userAgentData","test","userAgent","indexedDB","databases","intervalId","tryIdb","setInterval","clearInterval","promisifyRequest","oncomplete","onsuccess","onabort","createStore","dbName","storeName","dbp","onupgradeneeded","createObjectStore","txMode","db","transaction","objectStore","defaultGetStoreFunc","defaultGetStore","store","customStore","put","delete","bgn","blob_url","nextBG","changeCoverBG","getCoverPath","preBG","centerbg","site_bg_as_cover","getAPIPath","useBGN","cover_api_url","cover_api","clientWidth","random_graphs_mts","search","cache_cover","coverBG","ArrayBuffer","revokeObjectURL","createObjectURL","Blob","resp","fetch","ok","buf","arrayBuffer","TypeError","fetchAndCache","initCoverBG","background","land_at_home","_a","_version_ctrl","cookie_version_control","txt","author_name","site_name","copytext","selectionText","selectionTxt","preventDefault","htmlData","join","textData","clipboardData","setData","setClipboardText","add_copyright","clipboardCopyright","zhHans","zhHant","VersionHitokoto","ja","en","removeScreen","preload","preload_blur","animate","filter","backdropFilter","opacity","fill","easing","onfinish","UA","reg","version","match","hitokoto","yiyan","yiyan_api","api_path","_hitokoto","innerText","api","res","json","from_who","from","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","async","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","btnSerif","btnSansSerif","change_font_listener","dataset","setButtonState","loadFontSetting","nowFont","font_name","initFontControl","QueryStorage","search_result","keyword","link","fa","iconfont","comments","trim","slice","toUpperCase","query","B","A","F","G","D","E","C","array","v","values","RegExp","Cx","H","div_href","search_close","Ty","click","jsSearchCallback","live_search","val","otxt","sessionStorage","JSON","parse","catch","reason","search_a","searchFlag","oninput","checkList","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","pre","onclick","timeSeriesReload","archives","al_li","nextElementSibling","al_expand_collapse","cursor","num","al_post_list","al_post_list_f","al_expand_collapse_click","loadHls","video_src","Hls","isSupported","hls","loadSource","attachMedia","on","Events","MANIFEST_PARSED","canPlayType","coverVideoIni","default","toDataURL","days","expires","now","toUTCString","cookie","setCookie","pjax","Firefox","Edg","Chrome","Opera","Version","Pjax","selectors","jsdelivr_css_src","entry_content_style_src","float_player_on","aplayerInit","secondary","show_hide","activate_widget","MN","iconflat","close","splay","video_btn","bottom","destroyAllAplayer","spause","readCoverVideoSourceFromPoi","video_stu","titles","movies","floor","bgvideo","origin","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","GT","mb_to_top","changskin","transform","closeSkinMenu","load","NProgressON","NProgress","_p","_div","tla","openNav","script_app","script_app_page","gtag","google_analytics_id","pathname","_hmt","pageURL","hash","tabIndex","focus","tagid","close_SkinMenu","onended","video_add","LV","preload_screen","matchResult","language","lang_prefix","about_us","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/fg-loadcss/src/loadCSS.js","webpack://sakurairo-scripts/./node_modules/lazyload/src/lazyload.ts","webpack://sakurairo-scripts/./src/common/api.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/./node_modules/tslib/tslib.es6.js","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/esm/index.js","webpack://sakurairo-scripts/./node_modules/idb-keyval/dist/esm/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/about_us.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/./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"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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, fn, priority] = deferred[i];\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((key) => (__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 ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (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((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (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 = (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 = (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((fn) => (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) {\r\n\tif(typeof exports === 'object' && typeof module === 'object')\r\n\t\tmodule.exports = factory();\r\n\telse if(typeof define === 'function' && define.amd)\r\n\t\tdefine([], factory);\r\n\telse if(typeof exports === 'object')\r\n\t\texports[\"POWERMODE\"] = factory();\r\n\telse\r\n\t\troot[\"POWERMODE\"] = factory();\r\n})(this, function() {\r\nreturn /******/ (function(modules) { // webpackBootstrap\r\n/******/ \t// The module cache\r\n/******/ \tvar installedModules = {};\r\n\r\n/******/ \t// The require function\r\n/******/ \tfunction __webpack_require__(moduleId) {\r\n\r\n/******/ \t\t// Check if module is in cache\r\n/******/ \t\tif(installedModules[moduleId])\r\n/******/ \t\t\treturn installedModules[moduleId].exports;\r\n\r\n/******/ \t\t// Create a new module (and put it into the cache)\r\n/******/ \t\tvar module = installedModules[moduleId] = {\r\n/******/ \t\t\texports: {},\r\n/******/ \t\t\tid: moduleId,\r\n/******/ \t\t\tloaded: false\r\n/******/ \t\t};\r\n\r\n/******/ \t\t// Execute the module function\r\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n\r\n/******/ \t\t// Flag the module as loaded\r\n/******/ \t\tmodule.loaded = true;\r\n\r\n/******/ \t\t// Return the exports of the module\r\n/******/ \t\treturn module.exports;\r\n/******/ \t}\r\n\r\n\r\n/******/ \t// expose the modules object (__webpack_modules__)\r\n/******/ \t__webpack_require__.m = modules;\r\n\r\n/******/ \t// expose the module cache\r\n/******/ \t__webpack_require__.c = installedModules;\r\n\r\n/******/ \t// __webpack_public_path__\r\n/******/ \t__webpack_require__.p = \"\";\r\n\r\n/******/ \t// Load entry module and return exports\r\n/******/ \treturn __webpack_require__(0);\r\n/******/ })\r\n/************************************************************************/\r\n/******/ ([\r\n/* 0 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t'use strict';\r\n\r\n\tvar canvas = document.createElement('canvas');\r\n\tcanvas.width = window.innerWidth;\r\n\tcanvas.height = window.innerHeight;\r\n\tcanvas.style.cssText = 'position:fixed;top:0;left:0;pointer-events:none;z-index:999999';\r\n\twindow.addEventListener('resize', function () {\r\n\t canvas.width = window.innerWidth;\r\n\t canvas.height = window.innerHeight;\r\n\t});\r\n\tdocument.body.appendChild(canvas);\r\n\tvar context = canvas.getContext('2d');\r\n\tvar particles = [];\r\n\tvar particlePointer = 0;\r\n\tvar rendering = false;\r\n\r\n\tPOWERMODE.shake = true;\r\n\r\n\tfunction getRandom(min, max) {\r\n\t return Math.random() * (max - min) + min;\r\n\t}\r\n\r\n\tfunction getColor(el) {\r\n\t if (POWERMODE.colorful) {\r\n\t var u = getRandom(0, 360);\r\n\t return 'hsla(' + getRandom(u - 10, u + 10) + ', 100%, ' + getRandom(50, 80) + '%, ' + 1 + ')';\r\n\t } else {\r\n\t return window.getComputedStyle(el).color;\r\n\t }\r\n\t}\r\n\r\n\tfunction getCaret() {\r\n\t var el = document.activeElement;\r\n\t var bcr;\r\n\t if (el.tagName === 'TEXTAREA' ||\r\n\t (el.tagName === 'INPUT' && el.getAttribute('type') === 'text')) {\r\n\t var offset = __webpack_require__(1)(el, el.selectionEnd);\r\n\t bcr = el.getBoundingClientRect();\r\n\t return {\r\n\t x: offset.left + bcr.left,\r\n\t y: offset.top + bcr.top,\r\n\t color: getColor(el)\r\n\t };\r\n\t }\r\n\t var selection = window.getSelection();\r\n\t if (selection.rangeCount) {\r\n\t var range = selection.getRangeAt(0);\r\n\t var startNode = range.startContainer;\r\n\t if (startNode.nodeType === document.TEXT_NODE) {\r\n\t startNode = startNode.parentNode;\r\n\t }\r\n\t bcr = range.getBoundingClientRect();\r\n\t return {\r\n\t x: bcr.left,\r\n\t y: bcr.top,\r\n\t color: getColor(startNode)\r\n\t };\r\n\t }\r\n\t return { x: 0, y: 0, color: 'transparent' };\r\n\t}\r\n\r\n\tfunction createParticle(x, y, color) {\r\n\t return {\r\n\t x: x,\r\n\t y: y,\r\n\t alpha: 1,\r\n\t color: color,\r\n\t velocity: {\r\n\t x: -1 + Math.random() * 2,\r\n\t y: -3.5 + Math.random() * 2\r\n\t }\r\n\t };\r\n\t}\r\n\r\n\tfunction POWERMODE() {\r\n\t { // spawn particles\r\n\t var caret = getCaret();\r\n\t var numParticles = 5 + Math.round(Math.random() * 10);\r\n\t while (numParticles--) {\r\n\t particles[particlePointer] = createParticle(caret.x, caret.y, caret.color);\r\n\t particlePointer = (particlePointer + 1) % 500;\r\n\t }\r\n\t }\r\n\t { // shake screen\r\n\t if (POWERMODE.shake) {\r\n\t var intensity = 1 + 2 * Math.random();\r\n\t var x = intensity * (Math.random() > 0.5 ? -1 : 1);\r\n\t var y = intensity * (Math.random() > 0.5 ? -1 : 1);\r\n\t document.body.style.marginLeft = x + 'px';\r\n\t document.body.style.marginTop = y + 'px';\r\n\t setTimeout(function() {\r\n\t document.body.style.marginLeft = '';\r\n\t document.body.style.marginTop = '';\r\n\t }, 75);\r\n\t }\r\n\t }\r\n\t if(!rendering){\r\n\t requestAnimationFrame(loop);\r\n\t }\r\n\t};\r\n\tPOWERMODE.colorful = false;\r\n\r\n\tfunction loop() {\r\n\t rendering = true;\r\n\t context.clearRect(0, 0, canvas.width, canvas.height);\r\n\t var rendered = false;\r\n\t var rect = canvas.getBoundingClientRect();\r\n\t for (var i = 0; i < particles.length; ++i) {\r\n\t var particle = particles[i];\r\n\t if (particle.alpha <= 0.1) continue;\r\n\t particle.velocity.y += 0.075;\r\n\t particle.x += particle.velocity.x;\r\n\t particle.y += particle.velocity.y;\r\n\t particle.alpha *= 0.96;\r\n\t context.globalAlpha = particle.alpha;\r\n\t context.fillStyle = particle.color;\r\n\t context.fillRect(\r\n\t Math.round(particle.x - 1.5) - rect.left,\r\n\t Math.round(particle.y - 1.5) - rect.top,\r\n\t 3, 3\r\n\t );\r\n\t rendered = true;\r\n\t }\r\n\t if(rendered){\r\n\t requestAnimationFrame(loop);\r\n\t }else{\r\n\t rendering = false;\r\n\t }\r\n\t}\r\n\r\n\tmodule.exports = POWERMODE;\r\n\r\n\r\n/***/ }),\r\n/* 1 */\r\n/***/ (function(module, exports) {\r\n\r\n\t/* jshint browser: true */\r\n\r\n\t(function () {\r\n\r\n\t// The properties that we copy into a mirrored div.\r\n\t// Note that some browsers, such as Firefox,\r\n\t// do not concatenate properties, i.e. padding-top, bottom etc. -> padding,\r\n\t// so we have to do every single property specifically.\r\n\tvar properties = [\r\n\t 'direction', // RTL support\r\n\t 'boxSizing',\r\n\t 'width', // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\r\n\t 'height',\r\n\t 'overflowX',\r\n\t 'overflowY', // copy the scrollbar for IE\r\n\r\n\t 'borderTopWidth',\r\n\t 'borderRightWidth',\r\n\t 'borderBottomWidth',\r\n\t 'borderLeftWidth',\r\n\t 'borderStyle',\r\n\r\n\t 'paddingTop',\r\n\t 'paddingRight',\r\n\t 'paddingBottom',\r\n\t 'paddingLeft',\r\n\r\n\t // https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n\t 'fontStyle',\r\n\t 'fontVariant',\r\n\t 'fontWeight',\r\n\t 'fontStretch',\r\n\t 'fontSize',\r\n\t 'fontSizeAdjust',\r\n\t 'lineHeight',\r\n\t 'fontFamily',\r\n\r\n\t 'textAlign',\r\n\t 'textTransform',\r\n\t 'textIndent',\r\n\t 'textDecoration', // might not make a difference, but better be safe\r\n\r\n\t 'letterSpacing',\r\n\t 'wordSpacing',\r\n\r\n\t 'tabSize',\r\n\t 'MozTabSize'\r\n\r\n\t];\r\n\r\n\tvar isFirefox = window.mozInnerScreenX != null;\r\n\r\n\tfunction getCaretCoordinates(element, position, options) {\r\n\r\n\t var debug = options && options.debug || false;\r\n\t if (debug) {\r\n\t var el = document.querySelector('#input-textarea-caret-position-mirror-div');\r\n\t if ( el ) { el.parentNode.removeChild(el); }\r\n\t }\r\n\r\n\t // mirrored div\r\n\t var div = document.createElement('div');\r\n\t div.id = 'input-textarea-caret-position-mirror-div';\r\n\t document.body.appendChild(div);\r\n\r\n\t var style = div.style;\r\n\t var computed = window.getComputedStyle? getComputedStyle(element) : element.currentStyle; // currentStyle for IE < 9\r\n\r\n\t // default textarea styles\r\n\t style.whiteSpace = 'pre-wrap';\r\n\t if (element.nodeName !== 'INPUT')\r\n\t style.wordWrap = 'break-word'; // only for textarea-s\r\n\r\n\t // position off-screen\r\n\t style.position = 'absolute'; // required to return coordinates properly\r\n\t if (!debug)\r\n\t style.visibility = 'hidden'; // not 'display: none' because we want rendering\r\n\r\n\t // transfer the element's properties to the div\r\n\t properties.forEach(function (prop) {\r\n\t style[prop] = computed[prop];\r\n\t });\r\n\r\n\t if (isFirefox) {\r\n\t // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\r\n\t if (element.scrollHeight > parseInt(computed.height))\r\n\t style.overflowY = 'scroll';\r\n\t } else {\r\n\t style.overflow = 'hidden'; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\r\n\t }\r\n\r\n\t div.textContent = element.value.substring(0, position);\r\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\r\n\t if (element.nodeName === 'INPUT')\r\n\t div.textContent = div.textContent.replace(/\\s/g, \"\\u00a0\");\r\n\r\n\t var span = document.createElement('span');\r\n\t // Wrapping must be replicated *exactly*, including when a long word gets\r\n\t // onto the next line, with whitespace at the end of the line before (#7).\r\n\t // The *only* reliable way to do that is to copy the *entire* rest of the\r\n\t // textarea's content into the created at the caret position.\r\n\t // for inputs, just '.' would be enough, but why bother?\r\n\t span.textContent = element.value.substring(position) || '.'; // || because a completely empty faux span doesn't render at all\r\n\t div.appendChild(span);\r\n\r\n\t var coordinates = {\r\n\t top: span.offsetTop + parseInt(computed['borderTopWidth']),\r\n\t left: span.offsetLeft + parseInt(computed['borderLeftWidth'])\r\n\t };\r\n\r\n\t if (debug) {\r\n\t span.style.backgroundColor = '#aaa';\r\n\t } else {\r\n\t document.body.removeChild(div);\r\n\t }\r\n\r\n\t return coordinates;\r\n\t}\r\n\r\n\tif (typeof module != \"undefined\" && typeof module.exports != \"undefined\") {\r\n\t module.exports = getCaretCoordinates;\r\n\t} else {\r\n\t window.getCaretCoordinates = getCaretCoordinates;\r\n\t}\r\n\r\n\t}());\r\n\r\n/***/ })\r\n/******/ ])\r\n});\r\n;","function imgError(ele, type) {\r\n switch (type) {\r\n case 1:\r\n ele.src = 'https://view.moezx.cc/images/2017/12/30/Transparent_Akkarin.th.jpg';\r\n break;\r\n case 2:\r\n ele.src = 'https://sdn.geekzu.org/avatar/?s=80&d=mm&r=g';\r\n break;\r\n default:\r\n ele.src = 'https://view.moezx.cc/images/2018/05/13/image-404.png';\r\n }\r\n}\r\nfunction cmt_showPopup(ele) {\r\n let popup = ele.querySelector(\"#thePopup\");\r\n popup.classList.add(\"show\");\r\n ele.querySelector(\"input\").onblur = () => {\r\n popup.classList.remove(\"show\");\r\n }\r\n}\r\n/*视频feature*/\r\nfunction coverVideo() {\r\n let video = document.getElementById(\"coverVideo\"),\r\n btn = document.getElementById(\"coverVideo-btn\");\r\n\r\n if (video.paused) {\r\n video.play();\r\n try {\r\n btn.innerHTML = '';\r\n } catch { };\r\n //console.info('play:coverVideo()');\r\n } else {\r\n video.pause();\r\n try {\r\n btn.innerHTML = '';\r\n } catch { };\r\n //console.info('pause:coverVideo()');\r\n }\r\n}\r\n\r\nfunction killCoverVideo() {\r\n var video = document.getElementById(\"coverVideo\");\r\n var btn = document.getElementById(\"coverVideo-btn\");\r\n\r\n if (video.paused) {\r\n //console.info('none:killCoverVideo()');\r\n } else {\r\n video.pause();\r\n try {\r\n btn.innerHTML = '';\r\n } catch (e) { };\r\n //console.info('pause:killCoverVideo()');\r\n }\r\n}\r\nfunction mail_me() {\r\n window.open(\"mailto:\" + mashiro_option.email_name + \"@\" + mashiro_option.email_domain);\r\n}\r\n/* 首页下拉箭头 */\r\nfunction headertop_down() {\r\n let coverOffset = document.getElementById(\"content\").getBoundingClientRect().top + window.pageYOffset;\r\n window.scrollTo({\r\n top: coverOffset,\r\n behavior: \"smooth\"\r\n });\r\n}\r\nwindow.imgError = imgError\r\nwindow.cmt_showPopup = cmt_showPopup\r\nwindow.coverVideo = coverVideo\r\nwindow.killCoverVideo = killCoverVideo\r\nwindow.mail_me = mail_me\r\nwindow.headertop_down = headertop_down","/*! 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","/**\r\n * default option\r\n */\r\nconst defaults = {\r\n src: \"data-src\",\r\n srcset: \"data-srcset\",\r\n selector: \".lazyload\",\r\n root: null,\r\n rootMargin: \"0px\",\r\n threshold: 0\r\n};\r\n/**\r\n * @class LazyLoad\r\n */\r\nexport default class LazyLoad {\r\n constructor(images, options) {\r\n this.observer = null;\r\n this.settings = Object.assign(Object.assign({}, defaults), options);\r\n this.images = images || document.querySelectorAll(this.settings.selector);\r\n this.init();\r\n }\r\n init() {\r\n /* Without observers load everything and bail out early. */\r\n if (!IntersectionObserver) {\r\n this.loadImages();\r\n return;\r\n }\r\n const self = this;\r\n let observerConfig = {\r\n root: this.settings.root,\r\n rootMargin: this.settings.rootMargin,\r\n threshold: [this.settings.threshold]\r\n };\r\n this.observer = new IntersectionObserver(function (entries) {\r\n Array.prototype.forEach.call(entries, function (entry) {\r\n if (entry.isIntersecting) {\r\n self.observer.unobserve(entry.target);\r\n let src = entry.target.getAttribute(self.settings.src);\r\n let srcset = entry.target.getAttribute(self.settings.srcset);\r\n if (\"img\" === entry.target.tagName.toLowerCase()) {\r\n if (src) {\r\n entry.target.src = src;\r\n }\r\n if (srcset) {\r\n entry.target.srcset = srcset;\r\n }\r\n }\r\n else {\r\n entry.target.style.backgroundImage = \"url(\" + src + \")\";\r\n }\r\n }\r\n });\r\n }, observerConfig);\r\n this.images.forEach((image) => {\r\n self.observer.observe(image);\r\n });\r\n }\r\n loadAndDestroy() {\r\n if (!this.settings) {\r\n return;\r\n }\r\n this.loadImages();\r\n this.destroy();\r\n }\r\n loadImages() {\r\n if (!this.settings) {\r\n return;\r\n }\r\n const self = this;\r\n Array.prototype.forEach.call(this.images, function (image) {\r\n let src = image.getAttribute(self.settings.src);\r\n let srcset = image.getAttribute(self.settings.srcset);\r\n if (\"img\" === image.tagName.toLowerCase()) {\r\n if (src) {\r\n image.src = src;\r\n }\r\n if (srcset) {\r\n image.srcset = srcset;\r\n }\r\n }\r\n else {\r\n image.style.backgroundImage = \"url('\" + src + \"')\";\r\n }\r\n });\r\n }\r\n /**\r\n * Destroy Lazyload Instance\r\n * @returns\r\n */\r\n destroy() {\r\n if (!this.settings) {\r\n return;\r\n }\r\n this.observer.disconnect();\r\n this.settings = null;\r\n }\r\n}\r\nexport const lazyload = (images, options) => new LazyLoad(images, options);\r\n","export default function (apiPath, params = {}, nonce = true) {\r\n const path = new URL(apiPath);\r\n const { searchParams } = path;\r\n for (const [key, value] of Object.entries(params)) {\r\n searchParams.set(key, value);\r\n }\r\n if (nonce)\r\n searchParams.set(\"_wpnonce\", Poi.nonce);\r\n return path.toString();\r\n}\r\n","export function clearButterbar() {\r\n const butterBar = document.getElementsByClassName(\"butterBar\");\r\n if (butterBar.length > 0) {\r\n for (let i = 0; i < butterBar.length; i++) {\r\n butterBar[i].remove();\r\n }\r\n }\r\n}\r\nexport function createButterbar(message, keep) {\r\n clearButterbar();\r\n /* document.body.insertAdjacentHTML('beforeend', '

' + message + '

');\r\n */\r\n const div = document.createElement('div');\r\n const p = document.createElement('p');\r\n div.classList.add('butterBar', 'butterBar--center');\r\n p.classList.add('butterBar-message');\r\n p.innerHTML = message;\r\n div.appendChild(p);\r\n document.body.appendChild(div);\r\n if (keep !== true)\r\n setTimeout(() => { clearButterbar(); }, typeof keep == 'number' ? keep : 6000);\r\n return div;\r\n}\r\n","/**\r\n * 传入的函数同时间只能运行一个\r\n * @param func 要包装的函数\r\n * @returns 包装后的函数\r\n */\r\nexport const onlyOnceATime = (func) => {\r\n let isRunning = false;\r\n return (...args) => {\r\n if (!isRunning) {\r\n isRunning = true;\r\n try {\r\n const result = func(...args);\r\n if (result instanceof Promise) {\r\n result.finally(() => isRunning = false);\r\n }\r\n else {\r\n isRunning = false;\r\n }\r\n return result;\r\n }\r\n catch (e) {\r\n console.warn(e);\r\n isRunning = false;\r\n }\r\n }\r\n };\r\n};\r\nlet readyFunctionList = [];\r\nconst whileReady = () => {\r\n document.removeEventListener('DOMContentLoaded', whileReady);\r\n for (const fn of readyFunctionList) {\r\n fn();\r\n }\r\n readyFunctionList = [];\r\n};\r\n/**\r\n * 延迟函数到DOM树加载完成后执行\r\n * @seealso https://developer.mozilla.org/zh-CN/docs/Web/API/Document/readyState\r\n * @param fn 要延迟执行的函数\r\n */\r\nexport const ready = function (fn) {\r\n //interactive:等价于事件DOMContentLoaded\r\n //complete:等价于事件load\r\n if (document.readyState !== 'loading') {\r\n return fn();\r\n }\r\n if (readyFunctionList.length == 0) {\r\n document.addEventListener('DOMContentLoaded', whileReady, false);\r\n }\r\n readyFunctionList.push(fn);\r\n};\r\nexport function slideToggle(el, duration = 1000, mode = '', callback) {\r\n let dom = el;\r\n dom.status = dom.status || getComputedStyle(dom, null)['display'];\r\n const flag = dom.status != 'none';\r\n if ((flag == true && mode == \"show\") || (flag == false && mode == \"hide\"))\r\n return;\r\n dom.status = flag ? 'none' : 'block';\r\n dom.style.transition = 'height ' + duration / 1000 + 's';\r\n dom.style.overflow = 'hidden';\r\n clearTimeout(dom.tagTimer);\r\n dom.tagTimer = dom.tagTimer || null;\r\n dom.style.display = 'block';\r\n dom.tagHeight = dom.tagHeight || dom.clientHeight + 'px';\r\n dom.style.display = '';\r\n dom.style.height = flag ? dom.tagHeight : \"0px\";\r\n setTimeout(() => {\r\n dom.style.height = flag ? \"0px\" : dom.tagHeight;\r\n }, 0);\r\n dom.tagTimer = setTimeout(() => {\r\n dom.style.display = flag ? 'none' : 'block';\r\n dom.style.transition = '';\r\n dom.style.overflow = '';\r\n dom.style.height = '';\r\n dom.status = dom.tagHeight = null;\r\n }, duration);\r\n if (callback)\r\n callback();\r\n}\r\n/* export const max = (a: number, b: number) => a > b ? a : b\r\n */ export const min = (a, b) => a < b ? a : b;\r\n/**\r\n * 获取文件名的主名部分(即去除扩展名)\r\n * @param fileName 文件名\r\n * @returns 主名\r\n */\r\nexport const getFileNameMain = (fileName) => fileName.replace(/\\.\\w+$/, '');\r\n","const mediaQuery = window.matchMedia('(prefers-color-scheme:dark)');\r\nlet inDarkMode = false;\r\nexport const isInDarkMode = () => inDarkMode;\r\nfunction informDarkModeChange(nextValue) {\r\n if (nextValue !== inDarkMode) {\r\n document.dispatchEvent(new CustomEvent(\"darkmode\", { detail: nextValue }));\r\n inDarkMode = nextValue;\r\n }\r\n}\r\nfunction mediaQueryCallback() {\r\n const dark = localStorage.getItem(\"dark\");\r\n //仅在深色模式不是用户主动设置时触发\r\n if (!dark) {\r\n if (mediaQuery.matches && mashiro_option.darkmode) {\r\n turnOnDarkMode();\r\n }\r\n else {\r\n turnOffDarkMode();\r\n }\r\n }\r\n}\r\nif (mashiro_option.dm_strategy === 'client') {\r\n mediaQuery.removeEventListener ? mediaQuery.removeEventListener('change', mediaQueryCallback) : mediaQuery.removeListener(mediaQueryCallback);\r\n mediaQuery.addEventListener ? mediaQuery.addEventListener('change', mediaQueryCallback) : mediaQuery.addListener(mediaQueryCallback);\r\n}\r\nfunction saveUserSetting(value) {\r\n if (value == ifDarkmodeShouldOn()) {\r\n //用户设置与自动切换深色模式判断一致时,恢复自动切换\r\n localStorage.removeItem('dark');\r\n }\r\n else {\r\n if (value == true) {\r\n localStorage.setItem(\"dark\", \"1\");\r\n }\r\n else {\r\n localStorage.setItem(\"dark\", \"0\");\r\n }\r\n }\r\n //localStorage.setItem(\"bgImgSetting\", \"white-bg\");\r\n}\r\nexport function turnOnDarkMode(userTriggered) {\r\n document.documentElement.style.backgroundColor = \"#333\";\r\n document.getElementsByClassName(\"site-content\")[0].style.backgroundColor = \"#333\";\r\n document.body.classList.add(\"dark\");\r\n if (userTriggered)\r\n saveUserSetting(true);\r\n informDarkModeChange(true);\r\n}\r\nexport function turnOffDarkMode(userTriggered) {\r\n document.documentElement.style.backgroundColor = \"\";\r\n document.getElementsByClassName(\"site-content\")[0].style.backgroundColor = \"rgba(255, 255, 255, .8)\";\r\n document.body.classList.remove(\"dark\");\r\n document.body.classList.remove(\"dynamic\");\r\n informDarkModeChange(false);\r\n if (userTriggered) {\r\n saveUserSetting(false);\r\n //document.body.style.backgroundImage = `url(${mashiro_option.skin_bg0})`;\r\n }\r\n}\r\n/**\r\n * 检查是否在深色模式时间\r\n * @returns {boolean}\r\n */\r\nfunction checkTime() {\r\n const today = new Date();\r\n return (today.getHours() > 21 || today.getHours() < 7);\r\n}\r\nexport function ifDarkmodeShouldOn() {\r\n switch (mashiro_option.dm_strategy) {\r\n case 'client':\r\n return mediaQuery.matches;\r\n case 'eien':\r\n return true;\r\n default: /**case time */\r\n return checkTime();\r\n }\r\n}\r\nexport function checkDarkModeSetting() {\r\n const dark = localStorage.getItem(\"dark\");\r\n if (!dark) {\r\n //无用户设置时,自动切换深色模式\r\n if (ifDarkmodeShouldOn() && mashiro_option.darkmode) {\r\n turnOnDarkMode();\r\n }\r\n else {\r\n turnOffDarkMode();\r\n }\r\n }\r\n else {\r\n if (dark == '1') {\r\n turnOnDarkMode();\r\n }\r\n else {\r\n turnOffDarkMode();\r\n }\r\n }\r\n}\r\n/* function mobile_dark_light() {\r\n if (document.body.classList.contains(\"dark\")) {\r\n document.documentElement.style.background = \"unset\";\r\n document.body.classList.remove(\"dark\");\r\n document.getElementById(\"moblieDarkLight\").innerHTML = '';\r\n setCookie(\"dark\", \"0\", 0.33);\r\n } else {\r\n document.documentElement.style.background = \"#333333\";\r\n document.getElementById(\"moblieDarkLight\").innerHTML = '';\r\n document.body.classList.add(\"dark\");\r\n setCookie(\"dark\", \"1\", 0.33);\r\n }\r\n} */ \r\n","/**\r\n *\r\n * @param key 这段句子的中文表述(默认语言)\r\n */\r\n//@ts-ignore\r\nexport const __ = (defaultStr) => (window._sakurairoi18n && _sakurairoi18n[defaultStr]) || defaultStr;\r\n/**\r\n *\r\n * 占位符格式 {index} ex.{0}\r\n * @param defaultStr 这段句子的中文表述(默认语言)\r\n * @param replacements 句子中占位符的替代元素\r\n */\r\nexport const _$ = (defaultStr, ...replacements) => {\r\n let template = __(defaultStr);\r\n for (const index in replacements) {\r\n template = template.replace('{' + index + '}', replacements[index]);\r\n }\r\n return template;\r\n};\r\nexport const sakurairoGlobal = {\r\n opt: {},\r\n __\r\n /* _sys_call:sys_call\r\n */ \r\n};\r\nif ('_sakurairo' in window) {\r\n //@ts-ignore\r\n const _sakurairo = window._sakurairo;\r\n if ('opt' in _sakurairo) {\r\n sakurairoGlobal.opt = _sakurairo.opt;\r\n }\r\n}\r\n//@ts-ignore\r\nwindow._sakurairo = sakurairoGlobal;\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((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 = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + 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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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;","// no baseURI\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 = (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((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 = (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 = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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((id) => (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 * https://bugs.webkit.org/show_bug.cgi?id=226547\n * Safari has a horrible bug where IDB requests can hang while the browser is starting up.\n * The only solution is to keep nudging it until it's awake.\n * This probably creates garbage, but garbage is better than totally failing.\n */\nfunction idbReady() {\n const 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 let intervalId;\n return new Promise((resolve) => {\n const tryIdb = () => indexedDB.databases().finally(resolve);\n intervalId = setInterval(tryIdb, 100);\n tryIdb();\n }).finally(() => 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 * 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, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n","import { createStore, get as idbget, set as idbset, del as idbdel } from 'idb-keyval';\r\nconst store = createStore('sakurairo', 'cache');\r\nconst get = (key) => idbget(key, store);\r\nconst set = (key, value) => idbset(key, value, store);\r\nconst del = (key) => idbdel(key, store);\r\nexport { get, set, del };\r\n","var _a;\r\n/**\r\n * Cookie\r\n * from github.com/mirai-mamori/Sakurairo ./js/sakura-app.js ,commit 71f5a0c\r\n * @license GPL-v2\r\n * @date 2021.03\r\n */\r\nlet _version_ctrl = (_a = mashiro_option.cookie_version_control) !== null && _a !== void 0 ? _a : '';\r\nexport function setCookie(key, value, days) {\r\n const expires = days ? \"; expires=\" + new Date(Date.now() + (days * 24 * 60 * 60 * 1000)).toUTCString() : \"\";\r\n document.cookie = key + _version_ctrl + \"=\" + (value || \"\") + expires + \"; path=/\";\r\n}\r\nexport function getCookie(key) {\r\n const nameEQ = key + _version_ctrl + \"=\", ca = document.cookie.split(';');\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) == ' ')\r\n c = c.substring(1, c.length);\r\n if (c.indexOf(nameEQ) == 0)\r\n return c.substring(nameEQ.length, c.length);\r\n }\r\n return null;\r\n}\r\nexport function removeCookie(key) {\r\n document.cookie = key + _version_ctrl + '=; Max-Age=-99999999;';\r\n}\r\n","const UA = navigator.userAgent;\r\nconst reg = /(Firefox|Chrome|Version|Opera|Edg)\\/(\\d+)/i;\r\nconst version = UA.match(reg);\r\nimport { setCookie } from '../common/cookie';\r\nfunction setAcceptImage() {\r\n const acceptList = [];\r\n if (isSupported({ Chrome: 59, Opera: 46, Firefox: 3, Edg: 79, Version: 8 })) {\r\n acceptList.push('image/apng');\r\n if (isSupported({ Chrome: 32, Opera: 19, Firefox: 65, Edg: 18, Version: 14 })) {\r\n setCookie('su_webp', '1', 114514);\r\n acceptList.push('image/webp');\r\n if (isSupported({ Chrome: 85, Opera: 71, Firefox: 93 })) {\r\n acceptList.push('image/avif');\r\n }\r\n }\r\n }\r\n return acceptList.reverse().join(',') + ',image/*,*/*;q=0.8';\r\n}\r\nexport function isSupported(checkList) {\r\n return version && checkList[version[1]] /**如果目前还没有版本支持,就填undefined */ && (parseInt(version[2]) >= checkList[version[1]]);\r\n}\r\nexport const Accept_Image = setAcceptImage();\r\n","import { __awaiter } from \"tslib\";\r\nimport { get, set, del } from './cache';\r\nimport { Accept_Image } from './compatibility';\r\nimport { __ } from './sakurairo_global';\r\nlet bgn = 1;\r\nlet blob_url = '';\r\nexport function nextBG() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n changeCoverBG(yield getCoverPath(true));\r\n bgn++;\r\n });\r\n}\r\nexport function preBG() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n bgn--;\r\n changeCoverBG(yield getCoverPath(true));\r\n });\r\n}\r\nconst centerbg = document.querySelector(\".centerbg\");\r\n/**\r\n * 更改封面背景\r\n */\r\nconst changeCoverBG = mashiro_option.site_bg_as_cover ? (url) => {\r\n document.body.style.backgroundImage = `url(${url})`;\r\n} :\r\n centerbg ? (url) => {\r\n centerbg.style.backgroundImage = `url(${url})`;\r\n } : () => { };\r\nfunction getAPIPath(useBGN = false) {\r\n const cover_api_url = new URL(mashiro_option.cover_api);\r\n if (document.body.clientWidth < 860 && mashiro_option.random_graphs_mts == true) {\r\n cover_api_url.searchParams.set('type', 'mobile');\r\n return cover_api_url.toString() + (useBGN ? \"&\" + bgn : '');\r\n }\r\n else {\r\n return cover_api_url.toString() + (useBGN ? (cover_api_url.search === '' ? \"?\" : '&') + bgn : '');\r\n }\r\n}\r\nexport const getCoverPath = mashiro_option.cache_cover ? (useBGN = false) => __awaiter(void 0, void 0, void 0, function* () {\r\n return get('cover').then(coverBG => {\r\n if (coverBG) {\r\n if (coverBG instanceof ArrayBuffer) {\r\n cleanBlobUrl();\r\n blob_url = URL.createObjectURL(new Blob([coverBG]));\r\n return blob_url;\r\n }\r\n }\r\n else {\r\n //fallback\r\n return getAPIPath(useBGN);\r\n }\r\n }).finally(() => {\r\n fetchAndCache(useBGN);\r\n });\r\n})\r\n : getAPIPath;\r\nfunction fetchAndCache(useBGN = false) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const resp = yield fetch(getAPIPath(useBGN), { headers: { Accept: Accept_Image } });\r\n if (resp.ok) {\r\n const buf = yield resp.arrayBuffer();\r\n try {\r\n set('cover', buf);\r\n /**\r\n * @problem Safari暂时不支持indexdb存储blob\r\n * DataCloneError: Failed to store record in an IDBObjectStore: BlobURLs are not yet supported.\r\n * @seealso https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/indexeddb-best-practices#keeping_your_app_predictable\r\n */\r\n }\r\n catch (e) {\r\n //catch: FireFox无痕模式下数据库不允许修改\r\n /**\r\n * @problem FireFox无痕模式下数据库不允许修改\r\n * DOMException: A mutation operation was attempted on a database that did not allow mutations\r\n * Chrome不会报错\r\n * 像是火狐的设计 https://wiki.mozilla.org/Private_Browsing#Persistent_Storage\r\n * 变通方法 https://bugzilla.mozilla.org/show_bug.cgi?id=1639542#c9\r\n */\r\n console.warn(e);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n if (e instanceof TypeError) {\r\n console.warn(__('你的封面API好像不支持跨域调用,这种情况下缓存是不会生效的哦'));\r\n del('cover');\r\n }\r\n }\r\n });\r\n}\r\nfunction cleanBlobUrl() {\r\n URL.revokeObjectURL(blob_url);\r\n blob_url = '';\r\n}\r\nexport function initCoverBG() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (mashiro_option.site_bg_as_cover) {\r\n if (centerbg)\r\n centerbg.style.background = '#0000';\r\n if (localStorage.getItem('bgImgSetting') !== 'white-bg') {\r\n return;\r\n }\r\n }\r\n else if (!mashiro_option.land_at_home)\r\n return; //防止.centerbg在非主页加载图片\r\n changeCoverBG(yield getCoverPath());\r\n });\r\n}\r\n","import { createButterbar } from \"../common/butterbar\";\r\nimport { __ } from \"./sakurairo_global\";\r\nconst txt = [\r\n \"# 商业转载请联系作者获得授权,非商业转载请注明出处。\",\r\n \"# For commercial use, please contact the author for authorization. For non-commercial use, please indicate the source.\",\r\n \"# 协议(License):署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)\",\r\n \"# 作者(Author):\" + mashiro_option.author_name,\r\n \"# 链接(URL):\" + window.location.href,\r\n \"# 来源(Source):\" + mashiro_option.site_name,\r\n];\r\nfunction setClipboardText(event, selectionTxt) {\r\n event.preventDefault();\r\n const htmlData = txt.join('
') + \"

\" + selectionTxt.replace(/\\r\\n/g, \"
\"), textData = txt.join('\\n') + \"\\n\\n\" + selectionTxt.toString().replace(/\\r\\n/g, \"\\n\");\r\n if (event.clipboardData) {\r\n event.clipboardData.setData(\"text/html\", htmlData);\r\n event.clipboardData.setData(\"text/plain\", textData);\r\n }\r\n else if (window.clipboardData) {\r\n //deprecate?\r\n return window.clipboardData.setData(\"text\", textData);\r\n }\r\n}\r\nfunction copytext(e) {\r\n const selection = window.getSelection();\r\n if (selection) {\r\n const selectionText = selection.toString();\r\n if (selectionText.length > 30) {\r\n setClipboardText(e, selectionText);\r\n createButterbar(__(\"复制成功!\"), 1000);\r\n }\r\n }\r\n}\r\n/**\r\n * 添加复制时的版权提示\r\n */\r\nexport default function add_copyright() {\r\n if (mashiro_option.clipboardCopyright) {\r\n document.body.removeEventListener(\"copy\", copytext);\r\n document.body.addEventListener(\"copy\", copytext);\r\n }\r\n}\r\n","export default function about_us() {\r\n console.log('Sakurairo', 'https://github.com/mirai-mamori/Sakurairo');\r\n //hitokoto\r\n const lang = navigator.language;\r\n /**\r\n * @seealso https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry\r\n */\r\n const matchResult = lang.match(/^([a-z]+)(?:-Han(s|t))?(?:-(\\S+))?/i);\r\n if (matchResult) {\r\n const lang_prefix = matchResult[1];\r\n if (lang_prefix.toLowerCase() == 'zh') {\r\n const han_suffix = matchResult[2];\r\n switch (han_suffix) {\r\n case 's':\r\n console.log(zhHans);\r\n return;\r\n case 't':\r\n console.log(zhHant);\r\n return;\r\n default:\r\n if (matchResult[3]) {\r\n if (matchResult[3].toLowerCase() == 'cn') {\r\n console.log(zhHans);\r\n }\r\n else {\r\n console.log(zhHant);\r\n }\r\n }\r\n else {\r\n console.log(zhHans);\r\n }\r\n }\r\n }\r\n else {\r\n console.log(VersionHitokoto[lang_prefix.toLowerCase()] || VersionHitokoto.en);\r\n }\r\n }\r\n /* console.log(\"%c Mashiro %c\", \"background:#24272A; color:#ffffff\", \"\", \"https://2heng.xin/\");\r\n console.log(\"%c Github %c\", \"background:#24272A; color:#ffffff\", \"\", \"https://github.com/mashirozx\"); */\r\n}\r\nconst zhHans = \"「人生的每个阶段的结束,是另一段漂流的开始。」\";\r\nconst zhHant = \"「人生的每個階段的結束,是另一段漂流的開始。」\";\r\nconst VersionHitokoto = {\r\n ja: \"「人生の各段階の終わりは、別の漂流の始まりです。」\",\r\n en: \"「The end of each stage of life is the beginning of another drifting.」\",\r\n};\r\n","export default function () {\r\n const preload = document.getElementById(\"preload\");\r\n if (preload) {\r\n if (document.readyState === 'complete')\r\n return removeScreen(preload);\r\n window.addEventListener('load', () => {\r\n removeScreen(preload);\r\n });\r\n }\r\n}\r\nfunction removeScreen(preload) {\r\n document.documentElement.style.overflowY = 'unset';\r\n if (mashiro_option.preload_blur != 0) {\r\n try {\r\n preload.animate([\r\n { filter: \"blur(0px)\", backdropFilter: \"blur(10px)\", opacity: 1 },\r\n { backdropFilter: \"blur(0px)grayscale(0)\", opacity: 0.1 },\r\n { opacity: 0, filter: \"blur(100px)\", }\r\n ], { duration: mashiro_option.preload_blur, fill: \"forwards\", easing: \"ease\" }).onfinish = () => {\r\n preload.remove();\r\n };\r\n return;\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n }\r\n preload.classList.add('hide');\r\n preload.classList.remove('show');\r\n setTimeout(() => preload.remove(), 233);\r\n}\r\n","import { __awaiter } from \"tslib\";\r\nexport default function hitokoto() {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (mashiro_option.yiyan) {\r\n const yiyan = document.getElementById(\"footer_yiyan\");\r\n const api_group = (_a = mashiro_option.yiyan_api) !== null && _a !== void 0 ? _a : [\"https://api.maho.cc/yiyan/\"];\r\n if (api_group.length == 0) {\r\n console.warn('一言API路径为空');\r\n }\r\n else if (yiyan) {\r\n for (const api_path of mashiro_option.yiyan_api) {\r\n try {\r\n const txt = yield _hitokoto(api_path);\r\n yiyan.innerText = txt;\r\n break;\r\n }\r\n catch (e) {\r\n console.warn(`一言api: 尝试联系\"${api_path}\"时出错。\\n`, e);\r\n continue;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n}\r\nconst _hitokoto = (api) => __awaiter(void 0, void 0, void 0, function* () {\r\n const res = yield fetch(api, { headers: { Accept: \"application/json\" } });\r\n if (res.ok) {\r\n const data = yield res.json();\r\n const from_who = (data.from_who == 'null' ? null : data.from_who) || '';\r\n const from = data.from != data.from_who ? `「${data['from']}」` : '';\r\n const hitokoto = data.hitokoto;\r\n return hitokoto + '——' + from_who + from;\r\n }\r\n else {\r\n throw res.status;\r\n }\r\n});\r\n","import { sakurairoGlobal } from \"./sakurairo_global\";\r\nexport function web_audio() {\r\n if (!mashiro_option.audio)\r\n return;\r\n //@ts-ignore\r\n const AudioContext = window.AudioContext || window.webkitAudioContext;\r\n if (AudioContext) {\r\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\");\r\n selects.forEach((select) => {\r\n select.addEventListener(\"mouseenter\", (e) => {\r\n var _a;\r\n if (dom)\r\n return;\r\n let r = t[i];\r\n if (!r) {\r\n (i = 0, r = t[i]);\r\n }\r\n i += o;\r\n const c = ctx.createOscillator(), l = ctx.createGain(), mainGain = ctx.createGain();\r\n c.connect(l);\r\n l.connect(mainGain);\r\n mainGain.connect(ctx.destination);\r\n mainGain.gain.setValueAtTime(((_a = sakurairoGlobal.opt.web_audio) === null || _a === void 0 ? void 0 : _a.main_gain) || 1, ctx.currentTime);\r\n c.type = \"sine\";\r\n c.frequency.value = r;\r\n l.gain.setValueAtTime(0, ctx.currentTime);\r\n l.gain.linearRampToValueAtTime(1, ctx.currentTime + .01);\r\n c.start(ctx.currentTime);\r\n l.gain.exponentialRampToValueAtTime(.001, ctx.currentTime + 1);\r\n c.stop(ctx.currentTime + 1);\r\n const d = Math.round(7 * Math.random());\r\n const h = e.pageX;\r\n const p = e.pageY - 5;\r\n dom = document.createElement(\"b\");\r\n dom.textContent = a[d];\r\n dom.style.zIndex = \"99999\";\r\n dom.style.top = p - 100 + \"px\";\r\n dom.style.left = h + \"px\";\r\n dom.style.position = \"absolute\";\r\n dom.style.color = \"#FF6EB4\";\r\n document.body.appendChild(dom);\r\n dom.animate([\r\n { top: p + \"px\" },\r\n { opacity: 0 }\r\n ], {\r\n duration: 500\r\n });\r\n setTimeout(() => {\r\n dom.remove();\r\n dom = null;\r\n }, 500);\r\n e.stopPropagation();\r\n });\r\n });\r\n }\r\n}\r\n//欢乐颂\r\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(\" \")*/\r\n//天空之城\r\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(\" \");\r\nfunction readSheetOption() {\r\n var _a;\r\n const sheet = (_a = sakurairoGlobal.opt.web_audio) === null || _a === void 0 ? void 0 : _a.sheet;\r\n if (typeof sheet == 'string') {\r\n return sheet.split(' ');\r\n }\r\n else if (sheet instanceof Array) {\r\n return sheet;\r\n }\r\n}\r\n","const mainContainer = document.getElementById(\"main-container\");\r\nfunction toggle() {\r\n document.body.classList.toggle(\"navOpen\");\r\n mainContainer.classList.toggle(\"open\");\r\n document.getElementById(\"mo-nav\").classList.toggle(\"open\");\r\n document.querySelector(\".openNav\").classList.toggle(\"open\");\r\n document.querySelector(\".site-header\").classList.toggle(\"open\");\r\n}\r\nexport function open() {\r\n toggle();\r\n document.documentElement.style.overflow = \"hidden\";\r\n mainContainer.addEventListener('click', close);\r\n}\r\nexport function close() {\r\n toggle();\r\n document.documentElement.style.overflow = \"unset\";\r\n mainContainer.removeEventListener('click', close);\r\n}\r\n","import { onlyOnceATime } from \"../common/util\";\r\nimport { lazyload } from 'lazyload'\r\nimport { __ } from './sakurairo_global'\r\n\r\nlet load_post_timer;\r\nconst load_post = onlyOnceATime(function load_post() {\r\n const now_href = document.location.href\r\n const pagination_a = document.querySelector('#pagination a');\r\n if (pagination_a.classList.contains(\"loading\")) return;\r\n pagination_a.classList.add(\"loading\");\r\n pagination_a.innerText = \"\";\r\n\r\n // $('#pagination a').addClass(\"loading\").text(\"\");\r\n fetch(pagination_a.getAttribute(\"href\") + \"#main\")\r\n .then(async resp => {\r\n const text = await resp.text()\r\n const parser = new DOMParser(),\r\n DOM = parser.parseFromString(text, \"text/html\"),\r\n result = DOM.querySelectorAll(\"#main .post\"),\r\n paga = DOM.querySelector(\"#pagination a\"),\r\n paga_innerText = paga && paga.innerText,\r\n nextHref = paga && paga.getAttribute(\"href\"),\r\n main = document.getElementById(\"main\")\r\n //在进行DOM操作前检查页面是否已经变化,防止错误加载到其他页面上\r\n if (now_href != document.location.href) return /**如果页面状态发生了变化,那么也应该不用理加载提示符 */\r\n for (let i = 0; i < result.length; i++) {\r\n main.append(result[i])\r\n }\r\n //if (resp.ok) {\r\n // result = $(data).find(\"#main .post\");\r\n // nextHref = $(data).find(\"#pagination a\").attr(\"href\");\r\n // $(\"#main\").append(result.fadeIn(500));\r\n const dpga = document.querySelector(\"#pagination a\"),\r\n addps = document.querySelector(\"#add_post span\");\r\n if (dpga) {\r\n dpga.classList.remove(\"loading\");\r\n dpga.innerText = paga_innerText;\r\n }\r\n if (addps) {\r\n addps.classList.remove(\"loading\");\r\n addps.innerText = \"\";\r\n }\r\n // $(\"#pagination a\").removeClass(\"loading\").text(\"Previous\");\r\n // $('#add_post span').removeClass(\"loading\").text(\"\");\r\n lazyload();\r\n post_list_show_animation();\r\n if (nextHref != undefined) {\r\n pagination_a.setAttribute(\"href\", nextHref);\r\n // $(\"#pagination a\").attr(\"href\", nextHref);\r\n //加载完成上滑\r\n let tempScrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;;\r\n // window.scrollTo(tempScrollTop);\r\n // $(window).scrollTop(tempScrollTop);\r\n window.scrollTo({\r\n top: tempScrollTop + 300,\r\n behavior: 'smooth'\r\n })\r\n // $body.animate({\r\n // scrollTop: tempScrollTop + 300\r\n //\r\n // }, 666)\r\n } else {\r\n document.getElementById(\"pagination\").innerHTML = \"\" + __(\"很高兴你翻到这里,但是真的没有了...\") + \"\";\r\n // $(\"#pagination\").html(\"很高兴你翻到这里,但是真的没有了...\");\r\n }\r\n //}\r\n\r\n })\r\n /* $.ajax({\r\n type: \"POST\",\r\n url: $('#pagination a').attr(\"href\") + \"#main\",\r\n success: function (data) {\r\n result = $(data).find(\"#main .post\");\r\n nextHref = $(data).find(\"#pagination a\").attr(\"href\");\r\n $(\"#main\").append(result.fadeIn(500));\r\n $(\"#pagination a\").removeClass(\"loading\").text(\"Previous\");\r\n $('#add_post span').removeClass(\"loading\").text(\"\");\r\n lazyload();\r\n post_list_show_animation();\r\n if (nextHref != undefined) {\r\n $(\"#pagination a\").attr(\"href\", nextHref);\r\n //加载完成上滑\r\n var tempScrollTop = $(window).scrollTop();\r\n $(window).scrollTop(tempScrollTop);\r\n $body.animate({\r\n scrollTop: tempScrollTop + 300\r\n\r\n }, 666)\r\n } else {\r\n $(\"#pagination\").html(\"很高兴你翻到这里,但是真的没有了...\");\r\n }\r\n }\r\n }); */\r\n})\r\nexport function post_list_show_animation() {\r\n if (document.querySelector('article') && document.querySelector('article').classList.contains(\"post-list-thumb\")) {\r\n const options = {\r\n root: null,\r\n threshold: [0.66]\r\n },\r\n callback = (entries) => {\r\n entries.forEach(window.IntersectionObserver ? (article) => {\r\n if (article.target.classList.contains(\"post-list-show\")) {\r\n article.target.style.willChange = 'auto';\r\n io.unobserve(article.target)\r\n } else if (article.isIntersecting) {\r\n article.target.classList.add(\"post-list-show\");\r\n article.target.style.willChange = 'auto';\r\n io.unobserve(article.target)\r\n }\r\n } : (article) => {\r\n article.target.style.willChange = 'auto';\r\n if (article.target.classList.contains(\"post-list-show\") === false) {\r\n article.target.classList.add(\"post-list-show\");\r\n }\r\n\r\n })\r\n },\r\n io = new IntersectionObserver(callback, options),\r\n articles = document.getElementsByClassName('post-list-thumb');\r\n for (let a = 0; a < articles.length; a++) {\r\n io.observe(articles[a]);\r\n }\r\n }\r\n}\r\nfunction XLS_Listener(e) {\r\n if (e.target === document.querySelector(\"#pagination a\")) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n clearTimeout(load_post_timer);\r\n load_post();\r\n }\r\n}\r\nexport function XLS() {\r\n const intersectionObserver = new IntersectionObserver(function (entries) {\r\n if (entries[0].intersectionRatio <= 0) return;\r\n // var page_next = $('#pagination a').attr(\"href\");\r\n const _page_next = document.querySelector('#pagination a')\r\n if (_page_next) {\r\n const href_page_next = _page_next.getAttribute(\"href\"),\r\n load_key = document.getElementById(\"add_post_time\");\r\n if (href_page_next != undefined && load_key) {\r\n const load_time = load_key.title;\r\n if (load_time != \"233\") {\r\n console.log(\"%c 自动加载时倒计时 %c\", \"background:#9a9da2; color:#ffffff; border-radius:4px;\", \"\", \"\", load_time);\r\n load_post_timer = setTimeout(function () {\r\n load_post();\r\n }, load_time * 1000);\r\n }\r\n }\r\n }\r\n });\r\n intersectionObserver.observe(\r\n document.querySelector('.footer-device')\r\n );\r\n document.body.removeEventListener('click', XLS_Listener)\r\n document.body.addEventListener(\"click\", XLS_Listener)\r\n}","import { createButterbar } from \"../common/butterbar\";\r\nlet btnSerif, btnSansSerif;\r\nfunction Serif() {\r\n if (document.body.clientWidth <= 860) {\r\n createButterbar(\"将从网络加载字体,流量请注意\");\r\n }\r\n document.body.classList.add(\"serif\");\r\n setButtonState('serif');\r\n localStorage.setItem(\"font_family\", \"serif\");\r\n}\r\nfunction SansSerif() {\r\n document.body.classList.remove(\"serif\");\r\n setButtonState('sans-serif');\r\n localStorage.setItem(\"font_family\", \"sans-serif\");\r\n}\r\nfunction change_font_listener(btn) {\r\n return () => {\r\n const { name } = btn.dataset;\r\n const nowFont = localStorage.getItem(\"font_family\");\r\n if (name == nowFont) {\r\n return;\r\n }\r\n else {\r\n if (name == 'serif') {\r\n Serif();\r\n }\r\n else {\r\n SansSerif();\r\n }\r\n }\r\n };\r\n}\r\nexport function loadFontSetting() {\r\n const nowFont = localStorage.getItem(\"font_family\");\r\n if (!nowFont || nowFont == \"serif\") {\r\n document.body.classList.add(\"serif\");\r\n }\r\n}\r\nfunction setButtonState(font_name) {\r\n if (font_name !== null && font_name !== void 0 ? font_name : localStorage.getItem(\"font_family\") == 'sans-serif') {\r\n btnSerif.classList.remove(\"selected\");\r\n btnSansSerif.classList.add(\"selected\");\r\n }\r\n else {\r\n btnSansSerif.classList.remove(\"selected\");\r\n btnSerif.classList.add(\"selected\");\r\n }\r\n}\r\nfunction initDOMCache() {\r\n btnSerif = document.getElementsByClassName(\"control-btn-serif\")[0];\r\n btnSansSerif = document.getElementsByClassName(\"control-btn-sans-serif\")[0];\r\n return btnSansSerif && btnSerif;\r\n}\r\nfunction initListener() {\r\n btnSerif.addEventListener('click', change_font_listener(btnSerif));\r\n btnSansSerif.addEventListener('click', change_font_listener(btnSansSerif));\r\n}\r\nexport function initFontControl() {\r\n const result = initDOMCache();\r\n if (!result)\r\n localStorage.removeItem('font_family'); //样式菜单“简单”时,使用默认字体 “A”\r\n loadFontSetting();\r\n if (result) {\r\n setButtonState();\r\n initListener();\r\n }\r\n}\r\n","import { getFileNameMain } from '../common/util';\r\nconst videoList = Poi.movies.name && Poi.movies.name.split(\",\");\r\nconst s = document.getElementById(\"bgvideo\");\r\nfunction loadHls() {\r\n const video = document.getElementById('coverVideo'), video_src = video.dataset.src;\r\n if (Hls.isSupported()) {\r\n const hls = new Hls();\r\n hls.loadSource(video_src);\r\n hls.attachMedia(video);\r\n hls.on(Hls.Events.MANIFEST_PARSED, function () {\r\n video.play();\r\n });\r\n }\r\n else if (video.canPlayType('application/vnd.apple.mpegurl')) {\r\n video.src = video_src;\r\n video.addEventListener('loadedmetadata', function () {\r\n video.play();\r\n });\r\n }\r\n}\r\nfunction getVideo() {\r\n const video_stu = document.getElementsByClassName(\"video-stu\")[0];\r\n const fileName = videoList[Math.floor(Math.random() * videoList.length)], bgvideo = document.getElementById(\"bgvideo\");\r\n video_stu.innerHTML = \"正在载入视频 ...\";\r\n video_stu.style.bottom = \"0px\";\r\n bgvideo.setAttribute(\"src\", new URL(fileName, Poi.movies.url || location.origin).toString());\r\n bgvideo.setAttribute(\"video-name\", getFileNameMain(fileName));\r\n}\r\nfunction splay() {\r\n let video_btn = document.getElementById(\"video-btn\");\r\n if (video_btn) {\r\n video_btn.classList.add(\"video-pause\");\r\n video_btn.classList.remove(\"video-play\");\r\n video_btn.style.display = \"\";\r\n }\r\n try {\r\n document.querySelector(\".video-stu\").style.bottom = \"-100px\";\r\n document.querySelector(\".focusinfo\").style.top = \"-999px\";\r\n if (mashiro_option.float_player_on) {\r\n import('./aplayer').then(({ destroyAllAplayer }) => {\r\n destroyAllAplayer();\r\n s.play();\r\n });\r\n return;\r\n }\r\n }\r\n catch (e) {\r\n console.warn(e);\r\n }\r\n s.play();\r\n}\r\nfunction spause() {\r\n let video_btn = document.getElementById(\"video-btn\");\r\n if (video_btn) {\r\n video_btn.classList.add(\"video-play\");\r\n video_btn.classList.remove(\"video-pause\");\r\n }\r\n try {\r\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\r\n }\r\n catch (_a) { }\r\n s.pause();\r\n}\r\nexport function liveplay() {\r\n if (s && s.oncanplay != undefined && document.querySelector(\".haslive\")) {\r\n if (document.querySelector(\".videolive\")) {\r\n splay();\r\n }\r\n }\r\n}\r\nexport function livepause() {\r\n if (s && s.oncanplay != undefined && document.querySelector(\".haslive\")) {\r\n spause();\r\n let video_stu = document.getElementsByClassName(\"video-stu\")[0];\r\n video_stu.style.bottom = \"0px\";\r\n video_stu.innerHTML = \"已暂停 ...\";\r\n }\r\n}\r\nexport function coverVideo() {\r\n let video_btn = document.getElementById(\"video-btn\");\r\n if (video_btn)\r\n video_btn.addEventListener(\"click\", function () {\r\n if (this.classList.contains(\"loadvideo\")) {\r\n this.classList.add(\"video-pause\");\r\n this.classList.remove(\"loadvideo\");\r\n getVideo();\r\n s.oncanplay = function () {\r\n splay();\r\n document.getElementById(\"video-add\").style.display = \"block\";\r\n video_btn.classList.add(\"videolive\", \"haslive\");\r\n };\r\n }\r\n else {\r\n if (this.classList.contains(\"video-pause\")) {\r\n spause();\r\n video_btn.classList.remove(\"videolive\");\r\n document.getElementsByClassName(\"video-stu\")[0].style.bottom = \"0px\";\r\n document.getElementsByClassName(\"video-stu\")[0].innerHTML = \"已暂停 ...\";\r\n }\r\n else {\r\n splay();\r\n video_btn.classList.add(\"videolive\");\r\n }\r\n }\r\n s.onended = function () {\r\n s.setAttribute(\"src\", \"\");\r\n document.getElementById(\"video-add\").style.display = \"none\";\r\n video_btn && video_btn.classList.add(\"loadvideo\");\r\n video_btn && video_btn.classList.remove(\"video-pause\", \"videolive\", \"haslive\");\r\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\r\n };\r\n });\r\n const video_add = document.getElementById(\"video-add\");\r\n if (video_add)\r\n video_add.addEventListener(\"click\", function () {\r\n getVideo();\r\n });\r\n}\r\nexport function coverVideoIni() {\r\n let video = document.getElementsByTagName('video')[0];\r\n if (video && video.classList.contains('hls')) {\r\n if (window.Hls) {\r\n loadHls();\r\n }\r\n else {\r\n import('hls.js')\r\n .then(hls => {\r\n //export to GLOBAL\r\n window.Hls = hls.default;\r\n loadHls();\r\n })\r\n .catch(reason => console.warn('Hls load failed: ', reason));\r\n }\r\n }\r\n}\r\n","import { __awaiter } from \"tslib\";\r\nimport buildAPI from '../common/api';\r\nlet QueryStorage;\r\nfunction search_result(keyword, link, fa, title, iconfont, comments, text) {\r\n if (keyword) {\r\n var s = keyword.trim().split(\" \"), a = title.indexOf(s[s.length - 1]), b = text.indexOf(s[s.length - 1]);\r\n title = a < 60 ? title.slice(0, 80) : title.slice(a - 30, a + 30);\r\n title = title.replace(s[s.length - 1], ' ' + s[s.length - 1].toUpperCase() + ' ');\r\n text = b < 60 ? text.slice(0, 80) : text.slice(b - 30, b + 30);\r\n text = text.replace(s[s.length - 1], ' ' + s[s.length - 1].toUpperCase() + ' ');\r\n }\r\n return '
' + title + ' ' + comments + '' + '

' + text + '

';\r\n}\r\nfunction Cx(array, query) {\r\n for (let s = 0; s < query.length; s++) {\r\n if (['.', '?', '*'].indexOf(query[s]) != -1) {\r\n query = query.slice(0, s) + \"\\\\\" + query.slice(s);\r\n s++;\r\n }\r\n }\r\n query = query.replace(query, \"^(?=.*?\" + query + \").+$\").replace(/\\s/g, \")(?=.*?\");\r\n return array.filter(v => Object.values(v)\r\n .some(v => new RegExp(query + '').test(v)));\r\n}\r\nfunction query(B, A) {\r\n var s, y = \"\", w = \"\", u = \"\", r = \"\", p = \"\", F = \"\", G = '
', D = \"
\", E = \"\", C = Cx(B, A.trim());\r\n for (const H of C) {\r\n switch (H.type) {\r\n case \"post\":\r\n w = w + search_result(A, H.link, \"file\", H.title, \"mark\", H.comments, H.text);\r\n break;\r\n case \"tag\":\r\n p = p + search_result(\"\", H.link, \"tag\", H.title, \"none\", \"\", \"\");\r\n break;\r\n case \"category\":\r\n r = r + search_result(\"\", H.link, \"folder\", H.title, \"none\", \"\", \"\");\r\n break;\r\n case \"page\":\r\n u = u + search_result(A, H.link, \"file\", H.title, \"mark\", H.comments, H.text);\r\n break;\r\n case \"comment\":\r\n F = F + search_result(A, H.link, \"comment\", H.title, \"none\", \"\", H.text);\r\n break;\r\n }\r\n }\r\n w && (y = y + G + \"文章\" + E + w + D);\r\n u && (y = y + G + \"页面\" + E + u + D);\r\n r && (y = y + G + \"分类\" + E + r + D);\r\n p && (y = y + G + \"标签\" + E + p + D);\r\n F && (y = y + G + \"评论\" + E + F + D);\r\n s = document.getElementById(\"PostlistBox\");\r\n s.innerHTML = y;\r\n}\r\nfunction search_a(val) {\r\n const otxt = document.getElementById(\"search-input\");\r\n if (sessionStorage.getItem('search') != null) {\r\n QueryStorage = JSON.parse(sessionStorage.getItem('search'));\r\n query(QueryStorage, otxt.value);\r\n div_href();\r\n }\r\n else {\r\n fetch(val)\r\n .then((resp) => __awaiter(this, void 0, void 0, function* () {\r\n if (resp.ok) {\r\n const json = yield resp.text();\r\n if (json != \"\") {\r\n sessionStorage.setItem('search', json);\r\n QueryStorage = JSON.parse(json);\r\n query(QueryStorage, otxt.value);\r\n div_href();\r\n }\r\n }\r\n else {\r\n console.warn('HTTP ' + resp.status);\r\n }\r\n }))\r\n .catch(reason => console.warn(reason));\r\n }\r\n}\r\n/* if (!Object.values) Object.values = function (obj) {\r\n if (obj !== Object(obj))\r\n throw new TypeError('Object.values called on a non-object');\r\n var val = [],\r\n key;\r\n for (key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n val.push(obj[key]);\r\n }\r\n }\r\n return val;\r\n } */\r\nfunction div_href() {\r\n const search_close = document.querySelector(\".search_close\");\r\n const Ty = document.getElementById('Ty');\r\n for (const ele of document.getElementsByClassName('ins-selectable')) {\r\n ele.addEventListener(\"click\", () => {\r\n Ty.href = ele.getAttribute('href');\r\n Ty.click();\r\n search_close.click();\r\n });\r\n }\r\n /* $(\".ins-selectable\").each(function () {\r\n $(this).click(function () {\r\n $(\"#Ty\").attr('href', $(this).attr('href'));\r\n $(\"#Ty\").click();\r\n $(\".search_close\").click();\r\n });\r\n }); */\r\n}\r\nexport function jsSearchCallback() {\r\n //$('.js-toggle-search').toggleClass('is-active');\r\n document.getElementsByClassName('js-toggle-search')[0].classList.toggle('is-active');\r\n //$('.js-search').toggleClass('is-visible');\r\n document.getElementsByClassName('js-search')[0].classList.toggle('is-visible');\r\n //$('html').css('overflow-y', 'hidden');\r\n document.documentElement.style.overflowY = 'hidden';\r\n if (mashiro_option.live_search) {\r\n QueryStorage = [];\r\n search_a(buildAPI(Poi.api + \"sakura/v1/cache_search/json\"));\r\n var otxt = document.getElementById(\"search-input\"), \r\n //list = document.getElementById(\"PostlistBox\"),\r\n //Record = list.innerHTML,\r\n searchFlag = null;\r\n otxt.oninput = function () {\r\n if (searchFlag != null) {\r\n clearTimeout(searchFlag);\r\n }\r\n searchFlag = setTimeout(function () {\r\n query(QueryStorage, otxt.value);\r\n div_href();\r\n }, 250);\r\n };\r\n }\r\n}\r\n","/**\r\n * app.js - Client script bundle for Sakurairo, a WordPress theme.\r\n * @author bymoye \r\n * @author KotoriK\r\n * @license GPL-v2\r\n * @date 2021.3.21\r\n * Github Repository:\r\n * @url https://github.com/Fuukei/Sakurairo_Scripts\r\n * @url https://github.com/mirai-mamori/Sakurairo commit f7db3c5 \r\n * \r\n * *** ACKNOWLEDGEMENT *** \r\n * \r\n * *** modified on mashirozx/Sakura/js/sakura-app.js ***\r\n * Sakura theme application bundle\r\n * @author Mashiro\r\n * @url https://2heng.xin\r\n * @date 2019.8.3\r\n * *** ***\r\n * \r\n * *** inherited from louie-senpai/Siren/js/app.js ***\r\n * Siren application js\r\n * @author Louie\r\n * @url http://i94.me\r\n * @date 2016.11.19\r\n * *** ***\r\n * \r\n * inherited from Xoin-Yang/Akina/js/global.js\r\n * *** ACKNOWLEDGEMENT *** \r\n * \r\n * Press 'F' to pay respects.\r\n * \r\n */\r\n\r\nimport { nextBG, preBG, initCoverBG, getCoverPath } from './coverBackground'\r\nimport add_copyright from './copyright'\r\nimport { createButterbar } from '../common/butterbar'\r\nimport { loadCSS } from 'fg-loadcss'\r\nimport { lazyload } from 'lazyload'\r\nimport './global-func'\r\nimport { ready, slideToggle } from '../common/util'\r\nimport about_us from './about_us'\r\nimport preload_screen from './preload_screen'\r\nimport { _$ } from './sakurairo_global'\r\nimport { isSupported } from './compatibility'\r\nimport hitokoto from './hitokoto'\r\nimport { web_audio } from './web_audio'\r\nimport { open, close } from './mobile_nav'\r\nimport { XLS,post_list_show_animation } from './posts'\r\n\r\n//检查是否应当开启Poi.pjax\r\nPoi.pjax = isSupported({ Firefox: 84, Edg: 88, Chrome: 88, Opera: 74, Version: 9 }) && Poi.pjax;\r\nPoi.pjax && import('@sliphua/pjax').then(({ default: Pjax }) =>\r\n new Pjax({\r\n selectors: [\"#page\", \"title\", \".footer-device\", \"#_mashiro_\"],\r\n scripts: \"#_mashiro_\",\r\n timeout: 8000,\r\n })\r\n)\r\nloadCSS(mashiro_option.jsdelivr_css_src);\r\nloadCSS(mashiro_option.entry_content_style_src);\r\nloadCSS(\"https://at.alicdn.com/t/font_679578_qyt5qzzavdo39pb9.css\");\r\n\r\nmashiro_global.variables = new function () {\r\n this.skinSecter = true;\r\n}\r\nimport { initFontControl, loadFontSetting } from './font_control'\r\n\r\nfunction scrollBar() {\r\n if (document.body.clientWidth > 860) {\r\n window.addEventListener(\"scroll\", () => {\r\n let s = document.documentElement.scrollTop || document.body.scrollTop,\r\n a = document.documentElement.scrollHeight || document.body.scrollHeight,\r\n b = window.innerHeight, c,\r\n result = parseInt(s / (a - b) * 100),\r\n cached = document.getElementById('bar');\r\n cached.style.width = result + \"%\";\r\n /* switch (true) {\r\n case (result <= 19): c = '#cccccc'; break;\r\n case (result <= 39): c = '#50bcb6'; break;\r\n case (result <= 59): c = '#85c440'; break;\r\n case (result <= 79): c = '#f2b63c'; break;\r\n case (result <= 99): c = '#FF0000'; break;\r\n case (result == 100): c = '#5aaadb'; break;\r\n default: c = \"orange\";\r\n }\r\n cached.style.background = c; */\r\n //炫彩scrollbar好像不是很好看,又被php那边的样式强制覆盖了,就先注释掉\r\n const skinMenu = document.querySelector(\".skin-menu\");\r\n skinMenu && skinMenu.classList.remove(\"show\");\r\n })\r\n }\r\n}\r\n\r\nfunction checkSkinSecter() {\r\n if (mashiro_global.variables.skinSecter === false) {\r\n const pattern = document.querySelector(\".pattern-center\"),\r\n headertop = document.querySelector(\".headertop-bar\");\r\n if (pattern) {\r\n pattern.classList.remove(\"pattern-center\");\r\n pattern.classList.add(\"pattern-center-sakura\");\r\n }\r\n if (headertop) {\r\n headertop.classList.remove(\"headertop-bar\");\r\n headertop.classList.add(\"headertop-bar-sakura\");\r\n }\r\n } else {\r\n const pattern = document.querySelector(\".pattern-center-sakura\"),\r\n headertop = document.querySelector(\".headertop-bar-sakura\");\r\n if (pattern) {\r\n pattern.classList.remove(\"pattern-center-sakura\");\r\n pattern.classList.add(\"pattern-center\");\r\n }\r\n if (headertop) {\r\n headertop.classList.remove(\"headertop-bar-sakura\");\r\n headertop.classList.add(\"headertop-bar\");\r\n }\r\n }\r\n}\r\nimport { checkDarkModeSetting, turnOnDarkMode, turnOffDarkMode, } from './darkmode'\r\nfunction no_right_click() {\r\n const pri = document.getElementById(\"primary\");\r\n if (pri) pri.addEventListener(\"contextmenu\", function (e) {\r\n if (e.target.nodeName.toLowerCase() == \"img\") {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n })\r\n}\r\nno_right_click();\r\n\r\nasync function changeBG(bgid) {\r\n //@sideeffect\r\n mashiro_global.variables.skinSecter = bgid == \"white-bg\" || bgid == \"dark-bg\";\r\n checkSkinSecter();\r\n const now_bg_url = document.body.style.backgroundImage\r\n let bg_url;\r\n switch (bgid) {\r\n case \"white-bg\":\r\n if (mashiro_option.site_bg_as_cover) {\r\n //if(mashiro_option.cache_cover && now_bg_url.match(/^url\\(\"blob:/)) return\r\n bg_url = await getCoverPath()\r\n } else {\r\n bg_url = mashiro_option.skin_bg0;\r\n }\r\n break;\r\n case \"diy1-bg\":\r\n bg_url = mashiro_option.skin_bg1;\r\n break;\r\n case \"diy2-bg\":\r\n bg_url = mashiro_option.skin_bg2;\r\n break;\r\n case \"diy3-bg\":\r\n bg_url = mashiro_option.skin_bg3;\r\n break;\r\n case \"diy4-bg\":\r\n bg_url = mashiro_option.skin_bg4;\r\n break;\r\n }\r\n if (now_bg_url != bg_url) {\r\n document.body.style.backgroundImage = bg_url ? `url(${bg_url})` : '';\r\n }\r\n}\r\n\r\nfunction bgButtonAddListener() {\r\n const next = document.getElementById(\"bg-next\"),\r\n pre = document.getElementById(\"bg-pre\");\r\n if (next) { next.onclick = nextBG };\r\n if (pre) { pre.onclick = preBG };\r\n}\r\n\r\nfunction topFunction() {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\"\r\n });\r\n}\r\n\r\nfunction timeSeriesReload(flag) {\r\n let archives = document.getElementById('archives');\r\n if (archives == null) return;\r\n let al_li = archives.getElementsByClassName('al_mon');\r\n if (flag == true) {\r\n archives.addEventListener(\"click\", function (e) {\r\n if (e.target.classList.contains(\"al_mon\")) {\r\n slideToggle(e.target.nextElementSibling, 500);\r\n e.preventDefault();\r\n }\r\n })\r\n lazyload();\r\n } else {\r\n (function () {\r\n let al_expand_collapse = document.getElementById('al_expand_collapse');\r\n al_expand_collapse.style.cursor = \"s-resize\";\r\n for (let i = 0; i < al_li.length; i++) {\r\n let a = al_li[i],\r\n num = a.nextElementSibling.getElementsByTagName('li').length;\r\n a.style.cursor = \"s-resize\";\r\n a.querySelector('#post-num').textContent = num;\r\n }\r\n let al_post_list = archives.getElementsByClassName(\"al_post_list\"),\r\n al_post_list_f = al_post_list[0];\r\n for (let i = 0; i < al_post_list.length; i++) {\r\n slideToggle(al_post_list[i], 500, 'hide', function () {\r\n slideToggle(al_post_list_f, 500, 'show');\r\n })\r\n }\r\n archives.addEventListener(\"click\", function (e) {\r\n if (e.target.classList.contains(\"al_mon\")) {\r\n slideToggle(e.target.nextElementSibling, 500);\r\n e.preventDefault();\r\n }\r\n })\r\n if (document.body.clientWidth > 860) {\r\n for (let i = 0; i < al_post_list.length; i++) {\r\n let el = al_post_list[i];\r\n el.parentNode.addEventListener('mouseover', function () {\r\n slideToggle(el, 500, 'show');\r\n return false;\r\n })\r\n }\r\n if (false) {\r\n for (let i = 0; i < al_post_list.length; i++) {\r\n let el = al_post_list[i];\r\n el.parentNode.addEventListener('mouseover', function () {\r\n slideToggle(el, 500, 'hide');\r\n return false;\r\n })\r\n }\r\n }\r\n let al_expand_collapse_click = 0;\r\n al_expand_collapse.addEventListener('click', function () {\r\n if (al_expand_collapse_click == 0) {\r\n for (let i = 0; i < al_post_list.length; i++) {\r\n let el = al_post_list[i];\r\n slideToggle(el, 500, 'show');\r\n };\r\n al_expand_collapse_click++;\r\n } else if (al_expand_collapse_click == 1) {\r\n for (let i = 0; i < al_post_list.length; i++) {\r\n let el = al_post_list[i];\r\n slideToggle(el, 500, 'hide');\r\n };\r\n al_expand_collapse_click--;\r\n }\r\n });\r\n }\r\n })();\r\n }\r\n}\r\n\r\ntimeSeriesReload();\r\n\r\nadd_copyright()\r\n\r\nif (mashiro_option.float_player_on) {\r\n if (document.body.clientWidth > 860) {\r\n import('./aplayer').then(({ aplayerInit }) => aplayerInit())\r\n }\r\n}\r\n\r\nfunction activate_widget() {\r\n let secondary = document.getElementById(\"secondary\");\r\n if (document.body.clientWidth > 860) {\r\n let show_hide = document.querySelector(\".show-hide\");\r\n show_hide && show_hide.addEventListener(\"click\", function () {\r\n secondary && secondary.classList.toggle(\"active\");\r\n });\r\n } else {\r\n secondary && secondary.remove();\r\n }\r\n}\r\nsetTimeout(function () {\r\n activate_widget();\r\n}, 100);\r\n\r\n//#region Siren\r\nimport {liveplay,livepause,coverVideo,coverVideoIni} from './video'\r\nfunction MN() {\r\n const iconflat = document.querySelector(\".iconflat\");\r\n iconflat && iconflat.addEventListener(\"click\", (e) => {\r\n e.stopPropagation()\r\n if (document.body.classList.contains(\"navOpen\")) {\r\n close()\r\n } else {\r\n open()\r\n }\r\n });\r\n}\r\n\r\nfunction MNH() {\r\n if (document.body.classList.contains(\"navOpen\")) {\r\n close()\r\n }\r\n}\r\nfunction auto_height() {\r\n if (Poi.windowheight == 'auto') {\r\n if (document.querySelector(\"h1.main-title\")) {\r\n //let _height = document.documentElement.clientHeight + \"px\";\r\n const centerbg = document.getElementById(\"centerbg\")\r\n const bgvideo = document.getElementById(\"bgvideo\")\r\n if (centerbg) centerbg.style.height = \"100vh\";\r\n if (bgvideo) bgvideo.style.minHeight = \"100vh\";\r\n }\r\n } else {\r\n document.querySelector(\".headertop\") && document.querySelector(\".headertop\").classList.add(\"headertop-bar\");\r\n }\r\n}\r\nfunction PE() {\r\n if (document.querySelector(\".headertop\")) {\r\n let headertop = document.querySelector(\".headertop\"),\r\n blank = document.querySelector(\".blank\");\r\n if (document.querySelector(\".main-title\")) {\r\n try {\r\n blank.style.paddingTop = \"0px\";\r\n } catch (e) { }\r\n headertop.style.height = \"auto\";\r\n headertop.style.display = \"\";\r\n if (Poi.movies.live == 'open') liveplay();\r\n } else {\r\n try {\r\n blank.style.paddingTop = \"75px\";\r\n } catch (e) { }\r\n headertop.style.height = \"0px\";\r\n headertop.style.display = \"none\";\r\n livepause();\r\n }\r\n }\r\n}\r\nimport { jsSearchCallback } from './search'\r\nfunction CE() {\r\n let comments_fold = document.querySelector(\".comments-fold\");\r\n let comments_main = document.querySelector(\".comments-main\");\r\n if (comments_fold != null) {\r\n comments_fold.style.display = \"block\";\r\n comments_main.style.display = \"none\";\r\n comments_fold.addEventListener(\"click\", function () {\r\n slideToggle(comments_main, 500, 'show');\r\n comments_fold.style.display = \"none\";\r\n });\r\n }\r\n let archives = document.getElementsByClassName(\"archives\");\r\n if (archives.length > 0) {\r\n for (let i = 0; i < archives.length; i++) {\r\n archives[i].style.display = \"none\";\r\n }\r\n archives[0].style.display = \"\";\r\n let h3 = document.getElementById(\"archives-temp\").getElementsByTagName(\"h3\");\r\n for (let i = 0; i < h3.length; i++) {\r\n h3[i].addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n slideToggle(e.target.nextElementSibling, 300);\r\n })\r\n }\r\n }\r\n // $('.comments-hidden').show();\r\n // $('.comments-main').hide();\r\n // $('.comments-hidden').click(function () {\r\n // $('.comments-main').slideDown(500);\r\n // $('.comments-hidden').hide();\r\n // });\r\n // $('.archives').hide();\r\n // $('.archives:first').show();\r\n // $('#archives-temp h3').click(function () {\r\n // $(this).next().slideToggle('fast');\r\n // return false;\r\n // });\r\n /*if (mashiro_option.baguetteBoxON) {\r\n baguetteBox.run('.entry-content', {\r\n captions: function (element) {\r\n return element.getElementsByTagName('img')[0].alt;\r\n },\r\n ignoreClass: 'fancybox',\r\n });\r\n }*/\r\n\r\n for (const ele of document.getElementsByClassName('js-toggle-search')) {\r\n ele.addEventListener('click', jsSearchCallback);\r\n }\r\n\r\n const sc = document.querySelector(\".search_close\");\r\n sc && sc.addEventListener(\"click\", function () {\r\n let js_search = document.getElementsByClassName(\"js-search\")[0];\r\n if (js_search.classList.contains(\"is-visible\")) {\r\n document.getElementsByClassName(\"js-toggle-search\")[0].classList.toggle(\"is-active\");\r\n js_search.classList.toggle(\"is-visible\");\r\n document.documentElement.style.overflowY = \"unset\";\r\n }\r\n });\r\n try {\r\n let show_Nav = document.getElementById(\"show-nav\");\r\n show_Nav.addEventListener(\"click\", function () {\r\n if (show_Nav.classList.contains(\"showNav\")) {\r\n show_Nav.classList.remove(\"showNav\");\r\n show_Nav.classList.add(\"hideNav\");\r\n let sln = document.querySelector(\".site-top .lower nav\");\r\n sln && sln.classList.add(\"navbar\");\r\n } else {\r\n show_Nav.classList.remove(\"hideNav\");\r\n show_Nav.classList.add(\"showNav\");\r\n let sln = document.querySelector(\".site-top .lower nav\");\r\n sln && sln.classList.remove(\"navbar\");\r\n }\r\n });\r\n document.getElementById(\"loading\").addEventListener(\"click\", function () {\r\n let loading = document.getElementById(\"loading\");\r\n loading.classList.add(\"hide\");\r\n loading.classList.remove(\"show\");\r\n });\r\n } catch (e) { }\r\n}\r\nfunction NH() {\r\n const thresold = 0,\r\n siteHeader = document.querySelector(\".site-header\")\r\n window.addEventListener(\"scroll\", () => {\r\n const scrollTop = document.documentElement.scrollTop || window.pageYOffset;\r\n if (scrollTop > thresold) {\r\n siteHeader.classList.add(\"yya\");\r\n } else {\r\n siteHeader.classList.remove(\"yya\");\r\n }\r\n })\r\n // $(window).scroll(function () {\r\n // var s = $(document).scrollTop(),\r\n // cached = $('.site-header');\r\n // if (s == h1) {\r\n // cached.removeClass('yya');\r\n // }\r\n // if (s > h1) {\r\n // cached.addClass('yya');\r\n // }\r\n // });\r\n}\r\nfunction GT() {\r\n let mb_to_top = document.querySelector(\"#moblieGoTop\"),\r\n changskin = document.querySelector(\"#changskin\");\r\n window.addEventListener(\"scroll\", () => {\r\n let scroll = document.documentElement.scrollTop || document.body.scrollTop;\r\n if (scroll > 20) {\r\n mb_to_top.style.transform = \"scale(1)\";\r\n changskin.style.transform = \"scale(1)\";\r\n } else {\r\n mb_to_top.style.transform = \"scale(0)\";\r\n changskin.style.transform = \"scale(0)\";\r\n }\r\n })\r\n mb_to_top.onclick = function () {\r\n topFunction();\r\n }\r\n}\r\n\r\n//#endregion Siren\r\nif (Poi.pjax) {\r\n document.addEventListener(\"pjax:send\", () => {\r\n for (const element of document.getElementsByClassName(\"normal-cover-video\")) {\r\n element.pause();\r\n element.src = '';\r\n element.load = '';\r\n }\r\n document.getElementById(\"bar\").style.width = \"0%\";\r\n if (mashiro_option.NProgressON) import('nprogress').then(({ default: NProgress }) => { NProgress.start() })\r\n MNH();\r\n });\r\n document.addEventListener(\"pjax:complete\", function () {\r\n auto_height();\r\n initCoverBG()\r\n PE();\r\n CE();\r\n if (mashiro_option.land_at_home) XLS();\r\n if (mashiro_option.NProgressON) import('nprogress').then(({ default: NProgress }) => { NProgress.done() })\r\n //#region mashiro_global.ini.pjax();\r\n //#region pjaxInit\r\n no_right_click();\r\n loadFontSetting()\r\n let _p = document.getElementsByTagName(\"p\");\r\n for (let i = 0; i < _p.length; i++) {\r\n _p[i].classList.remove(\"head-copyright\");\r\n }\r\n let _div = document.getElementsByTagName(\"div\"),\r\n tla = document.getElementById(\"to-load-aplayer\");\r\n tla && tla.addEventListener(\"click\", () => {\r\n /* try {\r\n reloadHermit();\r\n } catch (e) { }; */\r\n for (let i = 0; i < _div.length; i++) {\r\n _div[i].classList.remove(\"load-aplayer\");\r\n }\r\n });\r\n /* for (let i = 0; i < _div.length; i++) {\r\n if (_div[i].classList.contains(\"aplayer\")) {\r\n try {\r\n reloadHermit();\r\n } catch { };\r\n }\r\n } */\r\n let iconflat = document.getElementsByClassName(\"iconflat\");\r\n if (iconflat.length != 0) {\r\n iconflat[0].style.width = '50px';\r\n iconflat[0].style.height = '50px';\r\n }\r\n let openNav = document.getElementsByClassName(\"openNav\");\r\n if (openNav.length != 0) {\r\n openNav[0].style.height = '50px';\r\n }\r\n bgButtonAddListener()\r\n timeSeriesReload();\r\n add_copyright();\r\n //#endregion pjaxInit\r\n post_list_show_animation();\r\n web_audio();\r\n coverVideoIni();\r\n checkSkinSecter();\r\n NH();\r\n //#endregion\r\n let loading = document.getElementById(\"loading\");\r\n if (loading) {\r\n loading.classList.add(\"hide\");\r\n loading.classList.remove(\"show\");\r\n }\r\n //未实际使用的选项\r\n /* if (Poi.codelamp == 'open') {\r\n self.Prism.highlightAll(event)\r\n }; */\r\n if (document.querySelector(\".js-search.is-visible\")) {\r\n document.getElementsByClassName(\"js-toggle-search\")[0].classList.toggle(\"is-active\");\r\n document.getElementsByClassName(\"js-search\")[0].classList.toggle(\"is-visible\");\r\n document.documentElement.style.overflowY = \"unset\";\r\n }\r\n hitokoto()\r\n lazyload();\r\n });\r\n document.addEventListener(\"pjax:success\", function () {\r\n //pjax加载时自动拉取page.js\r\n if (!mashiro_option.land_at_home && !document.getElementById('app-page-js')) {\r\n // id需要与php侧同步\r\n const script_app = document.getElementById('app-js')\r\n const script_app_page = document.createElement('script')\r\n script_app_page.src = script_app.src.replace('/app.js', '/page.js')\r\n script_app_page.id = 'app-page-js'\r\n document.body.appendChild(script_app_page)\r\n }\r\n //发送页面浏览事件\r\n\r\n /**\r\n * Google Analytics\r\n * @seealso https://developers.google.com/analytics/devguides/collection/gtagjs/pages\r\n */\r\n if (window.gtag) {\r\n gtag('config', Poi.google_analytics_id, {\r\n 'page_path': window.location.pathname\r\n });\r\n }\r\n /**\r\n * 百度统计\r\n * @seealso https://tongji.baidu.com/web/help/article?id=235\r\n */\r\n if (window._hmt) {\r\n _hmt.push(['_trackPageview', pageURL]);\r\n }\r\n });\r\n document.addEventListener(\"pjax:error\", (e) => {\r\n createButterbar(_$('页面加载出错了 HTTP {0}', e.request.status))\r\n })\r\n window.addEventListener('popstate', function (e) {\r\n auto_height();\r\n hitokoto()\r\n PE();\r\n CE();\r\n timeSeriesReload(true);\r\n post_list_show_animation();\r\n }, false);\r\n}\r\n\r\n/* let isWebkit = navigator.userAgent.toLowerCase().indexOf('webkit') > -1,\r\n isOpera = navigator.userAgent.toLowerCase().indexOf('opera') > -1,\r\n isIe = navigator.userAgent.toLowerCase().indexOf('msie') > -1;\r\nif ((isWebkit || isOpera || isIe) && document.getElementById && window.addEventListener) { */\r\nwindow.addEventListener('hashchange', function () {\r\n let id = location.hash.substring(1),\r\n element;\r\n if (!(/^[A-z0-9_-]+$/.test(id))) {\r\n return;\r\n }\r\n element = document.getElementById(id);\r\n if (element) {\r\n if (!(/^(?:a|select|input|button|textarea)$/i.test(element.tagName))) {\r\n element.tabIndex = -1;\r\n }\r\n element.focus();\r\n }\r\n}, false);\r\n/* } */\r\n\r\nfunction addSkinMenuListener() {\r\n const cached = document.querySelectorAll(\".menu-list li\");\r\n cached.forEach(e => {\r\n e.addEventListener(\"click\", function () {\r\n const tagid = this.id;\r\n if (tagid == \"dark-bg\") {\r\n turnOnDarkMode(true)\r\n } else {\r\n turnOffDarkMode(true)\r\n changeBG(tagid)\r\n localStorage.setItem(\"bgImgSetting\", tagid)\r\n }\r\n closeSkinMenu();\r\n });\r\n });\r\n}\r\nfunction checkBgImgSetting() {\r\n changeBG(localStorage.getItem(\"bgImgSetting\") ?? 'white-bg');\r\n}\r\n\r\ncheckBgImgSetting()\r\ncheckDarkModeSetting();\r\n\r\nfunction closeSkinMenu() {\r\n document.querySelector(\".skin-menu\").classList.remove(\"show\");\r\n setTimeout(function () {\r\n if (document.querySelector(\".changeSkin-gear\") != null) {\r\n document.querySelector(\".changeSkin-gear\").style.visibility = \"visible\";\r\n }\r\n }, 300);\r\n}\r\nimport POWERMODE from 'activate-power-mode'\r\n\r\nfunction powermode() {\r\n POWERMODE.colorful = true;\r\n POWERMODE.shake = false;\r\n document.body.addEventListener('input', POWERMODE)\r\n}\r\n//afterDOMContentLoaded\r\n\r\nready(function () {\r\n initCoverBG()\r\n addSkinMenuListener();\r\n //let checkskin_bg = (a) => a == \"none\" ? \"\" : a;\r\n let changskin = document.querySelector(\"#changskin\"),\r\n close_SkinMenu = document.querySelector(\".skin-menu #close-skinMenu\");\r\n changskin && changskin.addEventListener(\"click\", function () {\r\n document.querySelector(\".skin-menu\").classList.toggle(\"show\");\r\n })\r\n close_SkinMenu && close_SkinMenu.addEventListener(\"click\", function () {\r\n closeSkinMenu();\r\n })\r\n\r\n auto_height();\r\n PE();\r\n NH();\r\n GT();\r\n XLS();\r\n CE();\r\n MN();\r\n coverVideo();\r\n hitokoto()\r\n bgButtonAddListener()\r\n initFontControl()\r\n web_audio()\r\n preload_screen()\r\n lazyload();\r\n powermode()\r\n about_us()\r\n\r\n});\r\n//#region mashiro_global.ini.normalize();\r\npost_list_show_animation();\r\ncoverVideoIni();\r\ncheckSkinSecter();\r\nscrollBar();\r\n//#endregion"],"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","paused","play","innerHTML","pause","killCoverVideo","e","mail_me","open","mashiro_option","email_name","email_domain","headertop_down","coverOffset","pageYOffset","scrollTo","behavior","w","g","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","defaults","srcset","selector","root","rootMargin","threshold","LazyLoad","constructor","images","observer","settings","Object","assign","querySelectorAll","init","IntersectionObserver","loadImages","self","observerConfig","entries","Array","prototype","entry","isIntersecting","unobserve","target","toLowerCase","backgroundImage","image","observe","loadAndDestroy","destroy","disconnect","lazyload","apiPath","params","nonce","path","URL","searchParams","key","set","Poi","toString","clearButterbar","butterBar","getElementsByClassName","createButterbar","message","keep","onlyOnceATime","func","isRunning","args","result","Promise","finally","console","warn","readyFunctionList","whileReady","fn","readyState","push","slideToggle","duration","mode","callback","dom","status","flag","transition","clearTimeout","tagTimer","display","tagHeight","clientHeight","a","b","getFileNameMain","fileName","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","_sakurairo","__awaiter","thisArg","_arguments","P","generator","resolve","reject","fulfilled","step","next","rejected","done","then","apply","create","__webpack_module_cache__","__webpack_require__","cachedModule","undefined","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","j","keys","every","splice","r","n","getter","__esModule","d","getPrototypeOf","obj","t","ns","def","current","indexOf","getOwnPropertyNames","definition","o","defineProperty","enumerable","get","f","chunkId","all","reduce","promises","globalThis","Function","l","url","script","needAttach","scripts","s","charset","timeout","nc","onScriptComplete","prev","event","onerror","onload","doneFns","bind","head","Symbol","toStringTag","scriptUrl","importScripts","location","currentScript","Error","installedChunks","installedChunkData","promise","error","errorType","realSrc","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","navigator","userAgentData","test","userAgent","indexedDB","databases","intervalId","tryIdb","setInterval","clearInterval","promisifyRequest","oncomplete","onsuccess","onabort","createStore","dbName","storeName","dbp","onupgradeneeded","createObjectStore","txMode","db","transaction","objectStore","defaultGetStoreFunc","defaultGetStore","store","customStore","put","delete","_a","_version_ctrl","cookie_version_control","version","match","isSupported","checkList","Accept_Image","acceptList","Chrome","Opera","Firefox","Edg","Version","days","expires","now","toUTCString","cookie","setCookie","reverse","join","setAcceptImage","bgn","blob_url","nextBG","changeCoverBG","getCoverPath","preBG","centerbg","site_bg_as_cover","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","TypeError","fetchAndCache","initCoverBG","background","land_at_home","txt","author_name","site_name","copytext","selectionText","selectionTxt","preventDefault","htmlData","textData","clipboardData","setData","setClipboardText","add_copyright","clipboardCopyright","zhHans","zhHant","VersionHitokoto","ja","en","removeScreen","preload","preload_blur","animate","filter","backdropFilter","opacity","fill","easing","onfinish","hitokoto","yiyan","yiyan_api","api_path","_hitokoto","innerText","api","res","json","from_who","from","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","async","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","btnSerif","btnSansSerif","change_font_listener","dataset","setButtonState","loadFontSetting","nowFont","font_name","initFontControl","videoList","movies","loadHls","video_src","Hls","hls","loadSource","attachMedia","on","Events","MANIFEST_PARSED","canPlayType","getVideo","video_stu","floor","bgvideo","bottom","origin","splay","video_btn","float_player_on","destroyAllAplayer","spause","coverVideoIni","default","catch","reason","QueryStorage","search_result","keyword","link","fa","iconfont","comments","trim","slice","toUpperCase","query","B","A","F","G","D","E","C","array","v","values","RegExp","Cx","H","div_href","search_close","Ty","click","jsSearchCallback","live_search","val","otxt","sessionStorage","JSON","parse","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","pre","onclick","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","GT","mb_to_top","changskin","transform","closeSkinMenu","pjax","Pjax","selectors","jsdelivr_css_src","entry_content_style_src","aplayerInit","secondary","show_hide","activate_widget","load","NProgressON","NProgress","_p","_div","tla","openNav","script_app","script_app_page","gtag","google_analytics_id","pathname","_hmt","pageURL","hash","tabIndex","focus","tagid","close_SkinMenu","onended","video_add","preload_screen","matchResult","language","lang_prefix","about_us","skinMenu"],"sourceRoot":""} \ No newline at end of file diff --git a/js/login.js.LICENSE.txt b/js/login.js.LICENSE.txt index 24a11cc9..62cc00f5 100644 --- a/js/login.js.LICENSE.txt +++ b/js/login.js.LICENSE.txt @@ -1 +1 @@ -//! build d09ae55 2021/8/27 +//! build 4197950 2021/9/11 diff --git a/js/page.js.LICENSE.txt b/js/page.js.LICENSE.txt index 490289d7..1c9f5c01 100644 --- a/js/page.js.LICENSE.txt +++ b/js/page.js.LICENSE.txt @@ -5,4 +5,4 @@ * @license MIT */ -//! build d09ae55 2021/8/27 +//! build 4197950 2021/9/11 diff --git a/page-word.php b/page-word.php index 301db843..8ffab726 100644 --- a/page-word.php +++ b/page-word.php @@ -18,12 +18,10 @@ while (have_posts()) : the_post(); ?>
  • - -

    +
  • @@ -38,16 +36,17 @@ \ No newline at end of file diff --git a/style.css b/style.css index b7b5b94c..76e8b609 100644 --- a/style.css +++ b/style.css @@ -6,7 +6,7 @@ Theme URI: https://github.com/mirai-mamori/Sakurairo Author: Created by Fuukei Author URI: https://iro.tw/ Description: A colorful, Easy-to-use, Perfect Experience, and Powerful Customizable WordPress Theme (Based on Theme Sakura) -Version: 2.2.6.1 +Version: 2.2.7 Tested up to: 5.8 Requires at least: 5.5 Requires PHP: 7.1 @@ -672,9 +672,11 @@ a:hover { left: 0; margin: 0; padding: 0; - min-width: 99.999%; min-height: 550px; - z-index: 0 + z-index: 0; + object-fit: cover; + width:100%; + height:100%; } #video-add, @@ -8368,6 +8370,10 @@ td.hljs-ln-numbers { } /*cover video*/ +#coverVideo{ + width:100%; + height:100%; +} #coverVideo-btn { all: initial; display: inline-block; diff --git a/user/page-login.php b/user/page-login.php index e945bf73..6cfc92e2 100644 --- a/user/page-login.php +++ b/user/page-login.php @@ -13,26 +13,30 @@

    -

    -

    -

    +

    +

    +

    - + - + + +