From 0ebb33a1e4b60f948398cb5cbc960ce0cdf6931d Mon Sep 17 00:00:00 2001 From: Ukenn Date: Sat, 28 Aug 2021 12:01:42 +0800 Subject: [PATCH 01/23] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E9=A1=B5=E4=BE=A7?= =?UTF-8?q?=E8=BE=B9=E6=A0=8F=E9=80=89=E9=A1=B9=E8=B7=9F=E9=9A=8F=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=BB=9A=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/admin_addcss.php | 5 +++++ 1 file changed, 5 insertions(+) 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 From 431dc0ebba65eafb535899f093fb8eb7ffdcf552 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 13:26:02 +0800 Subject: [PATCH 02/23] =?UTF-8?q?fix(=E8=AF=B4=E8=AF=B4=E6=A8=A1=E6=9D=BF)?= =?UTF-8?q?:=20=E6=8F=92=E5=85=A5=E9=93=BE=E6=8E=A5=E5=90=8E=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=AD=98=E5=9C=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix #330 --- page-word.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/page-word.php b/page-word.php index 301db843..b29189af 100644 --- a/page-word.php +++ b/page-word.php @@ -18,12 +18,12 @@ while (have_posts()) : the_post(); ?>
  • - +

    -
    +
  • From b2bd57149eed42b7b1ebed68f968119788366dc3 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 13:29:45 +0800 Subject: [PATCH 03/23] =?UTF-8?q?feat(=E8=AF=B4=E8=AF=B4=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?):=20=E6=9B=B4=E6=94=B9=E6=97=B6=E9=97=B4=E8=A1=A8=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- page-word.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/page-word.php b/page-word.php index b29189af..ee6b19f9 100644 --- a/page-word.php +++ b/page-word.php @@ -22,7 +22,7 @@

    -

    +

    From 0f58eaf6e13db3f1c19d3812a0b7a1889c345f65 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 13:30:11 +0800 Subject: [PATCH 04/23] =?UTF-8?q?feat(=E8=AF=B4=E8=AF=B4=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?):=20=E5=88=A0=E9=99=A4=E7=A9=BA=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- page-word.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/page-word.php b/page-word.php index ee6b19f9..33bd8b8b 100644 --- a/page-word.php +++ b/page-word.php @@ -19,9 +19,7 @@
  • -

    -

  • From d78b895837e5cefafe488f1de998421e20caf8ba Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 13:36:32 +0800 Subject: [PATCH 05/23] =?UTF-8?q?perf(=E8=AF=B4=E8=AF=B4=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?):=20=E7=BC=93=E5=AD=98querySelector=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- page-word.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/page-word.php b/page-word.php index 33bd8b8b..e3c442e7 100644 --- a/page-word.php +++ b/page-word.php @@ -36,13 +36,14 @@ From 42c353fae1c3fe81507abc9497bbc04eb0b1ded0 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 13:36:52 +0800 Subject: [PATCH 06/23] =?UTF-8?q?style(=E8=AF=B4=E8=AF=B4=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF):=20=E6=96=87=E6=A1=A3=E7=BB=93=E6=9D=9F=E6=A0=87?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- page-word.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/page-word.php b/page-word.php index e3c442e7..029374bd 100644 --- a/page-word.php +++ b/page-word.php @@ -49,4 +49,4 @@ \ No newline at end of file From 3f934f30820c3de6317e6d739939c388438f9fd7 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 13:39:26 +0800 Subject: [PATCH 07/23] =?UTF-8?q?style(=E8=AF=B4=E8=AF=B4=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF):=20=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- page-word.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/page-word.php b/page-word.php index 029374bd..8ffab726 100644 --- a/page-word.php +++ b/page-word.php @@ -18,7 +18,7 @@ while (have_posts()) : the_post(); ?>
  • -
    +

    From 67639dc4b5502d75dde29f0dde808a5e07f9f85b Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 13:58:25 +0800 Subject: [PATCH 08/23] =?UTF-8?q?feat(=E5=B0=81=E9=9D=A2=E8=A7=86=E9=A2=91?= =?UTF-8?q?):=20=E8=87=AA=E5=8A=A8=E7=BC=A9=E6=94=BE=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Solve #329 --- style.css | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/style.css b/style.css index b7b5b94c..7c350c9b 100644 --- a/style.css +++ b/style.css @@ -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, From 46a398575a36f1c25fb9c65a7c8bde52d8276396 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 15:30:41 +0800 Subject: [PATCH 09/23] =?UTF-8?q?refactor:=20=E6=8F=90=E5=8F=96=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E2=80=9C=E7=BC=96=E8=BE=91=E6=9C=AC=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E2=80=9D=E7=9A=84html=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/theme_plus.php | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/inc/theme_plus.php b/inc/theme_plus.php index df61c26e..1a172383 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'; +} + 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; @@ -348,12 +350,8 @@ function the_video_headPattern_hls(){ $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; From ec404d518073883331a8ef4a39605c2c163dfad9 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 15:31:30 +0800 Subject: [PATCH 10/23] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=E9=A1=B9=E2=80=9CEDIT"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/theme_plus.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/theme_plus.php b/inc/theme_plus.php index 1a172383..cb8390a0 100644 --- a/inc/theme_plus.php +++ b/inc/theme_plus.php @@ -13,7 +13,7 @@ function get_edit_html():string{ global $user_ID; if ($user_ID && current_user_can('level_10')) { - return '·EDIT'; + return '·'.__("EDIT","sakurairo").''; } return ''; } From 7c4ff67d0ce6609e0ee61641690088d2c71b7765 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 15:56:51 +0800 Subject: [PATCH 11/23] =?UTF-8?q?refactor(=E6=96=87=E7=AB=A0=E5=B0=81?= =?UTF-8?q?=E9=9D=A2=E8=A7=86=E9=A2=91):=20=20=E5=90=88=E5=B9=B6=E4=B8=A4?= =?UTF-8?q?=E7=A7=8D=E8=A7=86=E9=A2=91=E7=9A=84=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- header.php | 10 ++- inc/theme_plus.php | 193 +++++++++++++++++---------------------------- 2 files changed, 77 insertions(+), 126 deletions(-) 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/theme_plus.php b/inc/theme_plus.php index cb8390a0..c015b56f 100644 --- a/inc/theme_plus.php +++ b/inc/theme_plus.php @@ -328,137 +328,86 @@ 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 . '" '; - } - - 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')); - $edit_this_post_link = get_edit_html(); +/** + * 文章封面视频 + * @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'); - $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_url) ? $full_image_urls[0] : null; + $thubm_image_url = !empty($thubm_image_url) ? $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')); + $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; } From 8ebe298257e3028a5444aee4d67cc754d590a965 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 15:59:19 +0800 Subject: [PATCH 12/23] =?UTF-8?q?fix(=E6=96=87=E7=AB=A0=E5=B0=81=E9=9D=A2?= =?UTF-8?q?=E8=A7=86=E9=A2=91):=20$header=E6=9C=AA=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/theme_plus.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/theme_plus.php b/inc/theme_plus.php index c015b56f..4175c42e 100644 --- a/inc/theme_plus.php +++ b/inc/theme_plus.php @@ -400,7 +400,7 @@ function the_video_headPattern(bool $isHls = false) display: none } -
    ">
    From 36e9a67e87f78457d9b83249dfd0647f68a44d39 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 16:00:17 +0800 Subject: [PATCH 13/23] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20"Your=20browser=20does=20not=20support=20H?= =?UTF-8?q?TML5=20video."?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/theme_plus.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/theme_plus.php b/inc/theme_plus.php index 4175c42e..b55c4e21 100644 --- a/inc/theme_plus.php +++ b/inc/theme_plus.php @@ -388,7 +388,7 @@ function the_video_headPattern(bool $isHls = false) ?> Date: Sat, 11 Sep 2021 16:14:37 +0800 Subject: [PATCH 14/23] Update theme_plus.php --- inc/theme_plus.php | 1 + 1 file changed, 1 insertion(+) diff --git a/inc/theme_plus.php b/inc/theme_plus.php index b55c4e21..7e581135 100644 --- a/inc/theme_plus.php +++ b/inc/theme_plus.php @@ -354,6 +354,7 @@ function the_video_headPattern(bool $isHls = false) $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 . '

    '; } From e875cbcd16f0cf99bd3337e2569489a6808cde52 Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 16:15:31 +0800 Subject: [PATCH 15/23] =?UTF-8?q?fix(=E6=96=87=E7=AB=A0=E5=B0=81=E9=9D=A2?= =?UTF-8?q?=E8=A7=86=E9=A2=91):=20=20$full=5Fimage=5Furl=E4=B8=BAfalse?= =?UTF-8?q?=E6=97=B6=E6=96=87=E7=AB=A0=E5=A4=B4=E9=83=A8=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/theme_plus.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/inc/theme_plus.php b/inc/theme_plus.php index 7e581135..95bde938 100644 --- a/inc/theme_plus.php +++ b/inc/theme_plus.php @@ -356,7 +356,14 @@ function the_video_headPattern(bool $isHls = false) //$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 . '

    '; + $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); @@ -374,7 +381,7 @@ function the_video_headPattern(bool $isHls = false) $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) { ?> + if (!is_home() /* && $full_image_url */) { ?>
    From f8793e79503e04ae9142376a138333853d2c6f5e Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 16:17:15 +0800 Subject: [PATCH 16/23] update js bundle to 1494c2b --- js/app.js | 2 +- js/app.js.LICENSE.txt | 2 +- js/app.js.br | Bin 12561 -> 12582 bytes js/app.js.gz | Bin 14428 -> 14459 bytes js/app.js.map | 2 +- js/login.js.LICENSE.txt | 2 +- js/page.js.LICENSE.txt | 2 +- 7 files changed, 5 insertions(+), 5 deletions(-) diff --git a/js/app.js b/js/app.js index 7cee28f4..810c315f 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=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 T=a(8487),B=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 U(){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 V(){U(),document.documentElement.style.overflow="unset",z.removeEventListener("click",V)}let W;const G=(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 F(){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);const ne=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,I.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,ye=a(5213),ve=a.n(ye);function be(){if(!1===mashiro_global.variables.skinSecter){const e=document.querySelector(".pattern-center"),t=document.querySelector(".headertop-bar");e&&(e.classList.remove("pattern-center"),e.classList.add("pattern-center-sakura")),t&&(t.classList.remove("headertop-bar"),t.classList.add("headertop-bar-sakura"))}else{const e=document.querySelector(".pattern-center-sakura"),t=document.querySelector(".headertop-bar-sakura");e&&(e.classList.remove("pattern-center-sakura"),e.classList.add("pattern-center")),t&&(t.classList.remove("headertop-bar-sakura"),t.classList.add("headertop-bar"))}}function we(){const e=document.getElementById("primary");e&&e.addEventListener("contextmenu",(function(e){"img"==e.target.nodeName.toLowerCase()&&(e.preventDefault(),e.stopPropagation())}))}async function Ee(e){mashiro_global.variables.skinSecter="white-bg"==e||"dark-bg"==e,be();const t=document.body.style.backgroundImage;let n;switch(e){case"white-bg":n=mashiro_option.site_bg_as_cover?await 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 Le(){const e=document.getElementById("bg-next"),t=document.getElementById("bg-pre");e&&(e.onclick=f),t&&(t.onclick=h)}function _e(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,B.m)()):function(){let e=document.getElementById("al_expand_collapse");e.style.cursor="s-resize";for(let e=0;e860){for(let e=0;e{e.stopPropagation(),document.body.classList.contains("navOpen")?V():(U(),document.documentElement.style.overflow="hidden",z.addEventListener("click",V))}))}function Se(){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 xe(){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 Te(){let e=document.querySelector(".comments-fold"),t=document.querySelector(".comments-main");null!=e&&(e.style.display="block",t.style.display="none",e.addEventListener("click",(function(){(0,I.wy)(t,500,"show"),e.style.display="none"})));let n=document.getElementsByClassName("archives");if(n.length>0){for(let e=0;e{e.preventDefault(),e.stopPropagation(),(0,I.wy)(e.target.nextElementSibling,300)}))}for(const e of document.getElementsByClassName("js-toggle-search"))e.addEventListener("click",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 Be(){const e=document.querySelector(".site-header");window.addEventListener("scroll",(()=>{(document.documentElement.scrollTop||window.pageYOffset)>0?e.classList.add("yya"):e.classList.remove("yya")}))}function Ie(){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 Ce(){document.querySelector(".skin-menu").classList.remove("show"),setTimeout((function(){null!=document.querySelector(".changeSkin-gear")&&(document.querySelector(".changeSkin-gear").style.visibility="visible")}),300)}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=(he={Firefox:84,Edg:88,Chrome:88,Opera:74,Version:9},P&&parseInt(P[2])>=he[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,T.loadCSS)(mashiro_option.jsdelivr_css_src),(0,T.loadCSS)(mashiro_option.entry_content_style_src),(0,T.loadCSS)("https://at.alicdn.com/t/font_679578_qyt5qzzavdo39pb9.css"),mashiro_global.variables=new function(){this.skinSecter=!0},we(),_e(),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),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")&&V()})),document.addEventListener("pjax:complete",(function(){Se(),w(),xe(),Te(),mashiro_option.land_at_home&&Y(),mashiro_option.NProgressON&&a.e(865).then(a.t.bind(a,4865,23)).then((({default:e})=>{e.done()})),we(),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){Se(),M(),xe(),Te(),_e(!0),F()}),!1)),window.addEventListener("hashchange",(function(){let e,t=location.hash.substring(1);/^[A-z0-9_-]+$/.test(t)&&(e=document.getElementById(t),e&&(/^(?:a|select|input|button|textarea)$/i.test(e.tagName)||(e.tabIndex=-1),e.focus()))}),!1),Ee(null!=(pe=localStorage.getItem("bgImgSetting"))?pe:"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),Ee(e),localStorage.setItem("bgImgSetting",e)),Ce()}))}));let e=document.querySelector("#changskin"),t=document.querySelector(".skin-menu #close-skinMenu");e&&e.addEventListener("click",(function(){document.querySelector(".skin-menu").classList.toggle("show")})),t&&t.addEventListener("click",(function(){Ce()})),Se(),xe(),Be(),Ie(),Y(),Te(),ke(),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(),Le(),ee(),D(),function(){const e=document.getElementById("preload");if(e){if("complete"===document.readyState)return O(e);window.addEventListener("load",(()=>{O(e)}))}}(),(0,B.m)(),ve().colorful=!0,ve().shake=!1,document.body.addEventListener("input",ve()),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)}}()})),F(),ce(),be(),document.body.clientWidth>860&&window.addEventListener("scroll",(()=>{let e=document.documentElement.scrollTop||document.body.scrollTop,t=document.documentElement.scrollHeight||document.body.scrollHeight,n=window.innerHeight,o=parseInt(e/(t-n)*100);document.getElementById("bar").style.width=o+"%";const 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..c0938d52 100644 --- a/js/app.js.LICENSE.txt +++ b/js/app.js.LICENSE.txt @@ -40,4 +40,4 @@ * */ -//! build d09ae55 2021/8/27 +//! build 1494c2b 2021/9/11 diff --git a/js/app.js.br b/js/app.js.br index e5f343f5497c05342241add2302f4281fc065285..07818a928d38b4a44a5e0073bf2c31bdef0e09fb 100644 GIT binary patch literal 12582 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 diff --git a/js/app.js.gz b/js/app.js.gz index c953a86256bc51e6856c70c34eb8e9688cbfb306..51d58b19d2bf5ac23a13c46b90bd7a35ca0cc918 100644 GIT binary patch literal 14459 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 diff --git a/js/app.js.map b/js/app.js.map index 81456ae6..3190583b 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/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/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) {\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 window.open(\"mailto:\" + mashiro_option.email_name + \"@\" + mashiro_option.email_domain);\n}\n/* 首页下拉箭头 */\nfunction headertop_down() {\n let coverOffset = document.getElementById(\"content\").getBoundingClientRect().top + window.pageYOffset;\n window.scrollTo({\n top: coverOffset,\n behavior: \"smooth\"\n });\n}\nwindow.imgError = imgError\nwindow.cmt_showPopup = cmt_showPopup\nwindow.coverVideo = coverVideo\nwindow.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/**\n * 获取文件名的主名部分(即去除扩展名)\n * @param fileName 文件名\n * @returns 主名\n */\nexport const getFileNameMain = (fileName) => fileName.replace(/\\.\\w+$/, '');\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 { getFileNameMain } from '../common/util';\nconst videoList = Poi.movies.name.split(\",\");\nconst s = document.getElementById(\"bgvideo\");\nfunction loadHls() {\n const video = document.getElementById('coverVideo'), video_src = video.dataset.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 }\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}\nfunction getVideo() {\n const video_stu = document.getElementsByClassName(\"video-stu\")[0];\n const fileName = videoList[Math.floor(Math.random() * videoList.length)], bgvideo = document.getElementById(\"bgvideo\");\n video_stu.innerHTML = \"正在载入视频 ...\";\n video_stu.style.bottom = \"0px\";\n bgvideo.setAttribute(\"src\", new URL(fileName, Poi.movies.url || location.origin).toString());\n bgvideo.setAttribute(\"video-name\", getFileNameMain(fileName));\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 }\n catch (e) {\n console.warn(e);\n }\n s.play();\n}\nfunction spause() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) {\n video_btn.classList.add(\"video-play\");\n video_btn.classList.remove(\"video-pause\");\n }\n try {\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\n }\n catch (_a) { }\n s.pause();\n}\nexport function liveplay() {\n if (s && s.oncanplay != undefined && document.querySelector(\".haslive\")) {\n if (document.querySelector(\".videolive\")) {\n splay();\n }\n }\n}\nexport function 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}\nexport function coverVideo() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn)\n video_btn.addEventListener(\"click\", function () {\n if (this.classList.contains(\"loadvideo\")) {\n this.classList.add(\"video-pause\");\n this.classList.remove(\"loadvideo\");\n getVideo();\n s.oncanplay = function () {\n splay();\n document.getElementById(\"video-add\").style.display = \"block\";\n video_btn.classList.add(\"videolive\", \"haslive\");\n };\n }\n else {\n if (this.classList.contains(\"video-pause\")) {\n spause();\n video_btn.classList.remove(\"videolive\");\n document.getElementsByClassName(\"video-stu\")[0].style.bottom = \"0px\";\n document.getElementsByClassName(\"video-stu\")[0].innerHTML = \"已暂停 ...\";\n }\n else {\n splay();\n video_btn.classList.add(\"videolive\");\n }\n }\n 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)\n video_add.addEventListener(\"click\", function () {\n getVideo();\n });\n}\nexport function coverVideoIni() {\n let video = document.getElementsByTagName('video')[0];\n if (video && video.classList.contains('hls')) {\n if (window.Hls) {\n loadHls();\n }\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}\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\nadd_copyright()\n\nif (mashiro_option.float_player_on) {\n if (document.body.clientWidth > 860) {\n import('./aplayer').then(({ aplayerInit }) => aplayerInit())\n }\n}\n\nfunction activate_widget() {\n let secondary = document.getElementById(\"secondary\");\n if (document.body.clientWidth > 860) {\n let show_hide = document.querySelector(\".show-hide\");\n show_hide && show_hide.addEventListener(\"click\", function () {\n secondary && secondary.classList.toggle(\"active\");\n });\n } else {\n secondary && secondary.remove();\n }\n}\nsetTimeout(function () {\n activate_widget();\n}, 100);\n\n//#region Siren\nimport {liveplay,livepause,coverVideo,coverVideoIni} from './video'\nfunction MN() {\n const iconflat = document.querySelector(\".iconflat\");\n iconflat && iconflat.addEventListener(\"click\", (e) => {\n e.stopPropagation()\n if (document.body.classList.contains(\"navOpen\")) {\n close()\n } else {\n open()\n }\n });\n}\n\nfunction MNH() {\n if (document.body.classList.contains(\"navOpen\")) {\n close()\n }\n}\nfunction auto_height() {\n if (Poi.windowheight == 'auto') {\n if (document.querySelector(\"h1.main-title\")) {\n //let _height = document.documentElement.clientHeight + \"px\";\n const centerbg = document.getElementById(\"centerbg\")\n const bgvideo = document.getElementById(\"bgvideo\")\n if (centerbg) centerbg.style.height = \"100vh\";\n if (bgvideo) bgvideo.style.minHeight = \"100vh\";\n }\n } else {\n document.querySelector(\".headertop\") && document.querySelector(\".headertop\").classList.add(\"headertop-bar\");\n }\n}\nfunction PE() {\n if (document.querySelector(\".headertop\")) {\n let headertop = document.querySelector(\".headertop\"),\n blank = document.querySelector(\".blank\");\n if (document.querySelector(\".main-title\")) {\n try {\n blank.style.paddingTop = \"0px\";\n } catch (e) { }\n headertop.style.height = \"auto\";\n headertop.style.display = \"\";\n if (Poi.movies.live == '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 coverVideo();\n hitokoto()\n bgButtonAddListener()\n initFontControl()\n web_audio()\n preload_screen()\n lazyload();\n powermode()\n about_us()\n\n});\n//#region mashiro_global.ini.normalize();\npost_list_show_animation();\ncoverVideoIni();\ncheckSkinSecter();\nscrollBar();\n//#endregion"],"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","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","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","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","videoList","movies","loadHls","video_src","Hls","isSupported","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","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","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","toDataURL","days","expires","now","toUTCString","cookie","setCookie","pjax","Firefox","Edg","Chrome","Opera","Version","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..2b08df16 100644 --- a/js/login.js.LICENSE.txt +++ b/js/login.js.LICENSE.txt @@ -1 +1 @@ -//! build d09ae55 2021/8/27 +//! build 1494c2b 2021/9/11 diff --git a/js/page.js.LICENSE.txt b/js/page.js.LICENSE.txt index 490289d7..843e7951 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 1494c2b 2021/9/11 From 62a69c2460e079e0e954d83d65b320083cecd2ff Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 16:19:17 +0800 Subject: [PATCH 17/23] =?UTF-8?q?fix(=E6=96=87=E7=AB=A0=E5=B0=81=E9=9D=A2?= =?UTF-8?q?=E8=A7=86=E9=A2=91):=20=E9=80=BB=E8=BE=91=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Revert e875cbc --- inc/theme_plus.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/theme_plus.php b/inc/theme_plus.php index 95bde938..dff0cad0 100644 --- a/inc/theme_plus.php +++ b/inc/theme_plus.php @@ -346,8 +346,8 @@ function the_video_headPattern(bool $isHls = false) } else { $video_poster_attr = ' poster="' . $video_cover_thumb . '" '; } - $full_image_url = !empty($full_image_url) ? $full_image_urls[0] : null; - $thubm_image_url = !empty($thubm_image_url) ? $thubm_image_urls[0] : null; + $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(); @@ -381,7 +381,7 @@ function the_video_headPattern(bool $isHls = false) $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 */) { ?> + if (!is_home() && $full_image_url) { ?>
    From 3930eba4c3a0ad88bdeb319203bded6b1eabe5bc Mon Sep 17 00:00:00 2001 From: KotoriK <52659125+KotoriK@users.noreply.github.com> Date: Sat, 11 Sep 2021 16:32:37 +0800 Subject: [PATCH 18/23] =?UTF-8?q?feat(=E6=96=87=E7=AB=A0=E5=B0=81=E9=9D=A2?= =?UTF-8?q?=E8=A7=86=E9=A2=91):=20=E4=BF=AE=E6=94=B9#coverVideo=E7=9A=84?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E6=A0=B7=E5=BC=8F=E7=9A=84=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=B1=82=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/theme_plus.php | 5 ++--- style.css | 4 ++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/inc/theme_plus.php b/inc/theme_plus.php index dff0cad0..366840fc 100644 --- a/inc/theme_plus.php +++ b/inc/theme_plus.php @@ -389,12 +389,11 @@ function the_video_headPattern(bool $isHls = false) - - + - `b%NDcCCC$Gw()Slr3_hV}E%<`t%8F33{Nb~V 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 diff --git a/js/app.js.map b/js/app.js.map index 3190583b..a977bae1 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/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) {\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 window.open(\"mailto:\" + mashiro_option.email_name + \"@\" + mashiro_option.email_domain);\n}\n/* 首页下拉箭头 */\nfunction headertop_down() {\n let coverOffset = document.getElementById(\"content\").getBoundingClientRect().top + window.pageYOffset;\n window.scrollTo({\n top: coverOffset,\n behavior: \"smooth\"\n });\n}\nwindow.imgError = imgError\nwindow.cmt_showPopup = cmt_showPopup\nwindow.coverVideo = coverVideo\nwindow.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/**\n * 获取文件名的主名部分(即去除扩展名)\n * @param fileName 文件名\n * @returns 主名\n */\nexport const getFileNameMain = (fileName) => fileName.replace(/\\.\\w+$/, '');\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 { getFileNameMain } from '../common/util';\nconst videoList = Poi.movies.name.split(\",\");\nconst s = document.getElementById(\"bgvideo\");\nfunction loadHls() {\n const video = document.getElementById('coverVideo'), video_src = video.dataset.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 }\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}\nfunction getVideo() {\n const video_stu = document.getElementsByClassName(\"video-stu\")[0];\n const fileName = videoList[Math.floor(Math.random() * videoList.length)], bgvideo = document.getElementById(\"bgvideo\");\n video_stu.innerHTML = \"正在载入视频 ...\";\n video_stu.style.bottom = \"0px\";\n bgvideo.setAttribute(\"src\", new URL(fileName, Poi.movies.url || location.origin).toString());\n bgvideo.setAttribute(\"video-name\", getFileNameMain(fileName));\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 }\n catch (e) {\n console.warn(e);\n }\n s.play();\n}\nfunction spause() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) {\n video_btn.classList.add(\"video-play\");\n video_btn.classList.remove(\"video-pause\");\n }\n try {\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\n }\n catch (_a) { }\n s.pause();\n}\nexport function liveplay() {\n if (s && s.oncanplay != undefined && document.querySelector(\".haslive\")) {\n if (document.querySelector(\".videolive\")) {\n splay();\n }\n }\n}\nexport function 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}\nexport function coverVideo() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn)\n video_btn.addEventListener(\"click\", function () {\n if (this.classList.contains(\"loadvideo\")) {\n this.classList.add(\"video-pause\");\n this.classList.remove(\"loadvideo\");\n getVideo();\n s.oncanplay = function () {\n splay();\n document.getElementById(\"video-add\").style.display = \"block\";\n video_btn.classList.add(\"videolive\", \"haslive\");\n };\n }\n else {\n if (this.classList.contains(\"video-pause\")) {\n spause();\n video_btn.classList.remove(\"videolive\");\n document.getElementsByClassName(\"video-stu\")[0].style.bottom = \"0px\";\n document.getElementsByClassName(\"video-stu\")[0].innerHTML = \"已暂停 ...\";\n }\n else {\n splay();\n video_btn.classList.add(\"videolive\");\n }\n }\n 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)\n video_add.addEventListener(\"click\", function () {\n getVideo();\n });\n}\nexport function coverVideoIni() {\n let video = document.getElementsByTagName('video')[0];\n if (video && video.classList.contains('hls')) {\n if (window.Hls) {\n loadHls();\n }\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}\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\nadd_copyright()\n\nif (mashiro_option.float_player_on) {\n if (document.body.clientWidth > 860) {\n import('./aplayer').then(({ aplayerInit }) => aplayerInit())\n }\n}\n\nfunction activate_widget() {\n let secondary = document.getElementById(\"secondary\");\n if (document.body.clientWidth > 860) {\n let show_hide = document.querySelector(\".show-hide\");\n show_hide && show_hide.addEventListener(\"click\", function () {\n secondary && secondary.classList.toggle(\"active\");\n });\n } else {\n secondary && secondary.remove();\n }\n}\nsetTimeout(function () {\n activate_widget();\n}, 100);\n\n//#region Siren\nimport {liveplay,livepause,coverVideo,coverVideoIni} from './video'\nfunction MN() {\n const iconflat = document.querySelector(\".iconflat\");\n iconflat && iconflat.addEventListener(\"click\", (e) => {\n e.stopPropagation()\n if (document.body.classList.contains(\"navOpen\")) {\n close()\n } else {\n open()\n }\n });\n}\n\nfunction MNH() {\n if (document.body.classList.contains(\"navOpen\")) {\n close()\n }\n}\nfunction auto_height() {\n if (Poi.windowheight == 'auto') {\n if (document.querySelector(\"h1.main-title\")) {\n //let _height = document.documentElement.clientHeight + \"px\";\n const centerbg = document.getElementById(\"centerbg\")\n const bgvideo = document.getElementById(\"bgvideo\")\n if (centerbg) centerbg.style.height = \"100vh\";\n if (bgvideo) bgvideo.style.minHeight = \"100vh\";\n }\n } else {\n document.querySelector(\".headertop\") && document.querySelector(\".headertop\").classList.add(\"headertop-bar\");\n }\n}\nfunction PE() {\n if (document.querySelector(\".headertop\")) {\n let headertop = document.querySelector(\".headertop\"),\n blank = document.querySelector(\".blank\");\n if (document.querySelector(\".main-title\")) {\n try {\n blank.style.paddingTop = \"0px\";\n } catch (e) { }\n headertop.style.height = \"auto\";\n headertop.style.display = \"\";\n if (Poi.movies.live == '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 coverVideo();\n hitokoto()\n bgButtonAddListener()\n initFontControl()\n web_audio()\n preload_screen()\n lazyload();\n powermode()\n about_us()\n\n});\n//#region mashiro_global.ini.normalize();\npost_list_show_animation();\ncoverVideoIni();\ncheckSkinSecter();\nscrollBar();\n//#endregion"],"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","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","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","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","videoList","movies","loadHls","video_src","Hls","isSupported","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","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","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","toDataURL","days","expires","now","toUTCString","cookie","setCookie","pjax","Firefox","Edg","Chrome","Opera","Version","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 +{"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) {\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 window.open(\"mailto:\" + mashiro_option.email_name + \"@\" + mashiro_option.email_domain);\n}\n/* 首页下拉箭头 */\nfunction headertop_down() {\n let coverOffset = document.getElementById(\"content\").getBoundingClientRect().top + window.pageYOffset;\n window.scrollTo({\n top: coverOffset,\n behavior: \"smooth\"\n });\n}\nwindow.imgError = imgError\nwindow.cmt_showPopup = cmt_showPopup\nwindow.coverVideo = coverVideo\nwindow.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/**\n * 获取文件名的主名部分(即去除扩展名)\n * @param fileName 文件名\n * @returns 主名\n */\nexport const getFileNameMain = (fileName) => fileName.replace(/\\.\\w+$/, '');\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","var _a;\n/**\n * Cookie\n * from github.com/mirai-mamori/Sakurairo ./js/sakura-app.js ,commit 71f5a0c\n * @license GPL-v2\n * @date 2021.03\n */\nlet _version_ctrl = (_a = mashiro_option.cookie_version_control) !== null && _a !== void 0 ? _a : '';\nexport function setCookie(key, value, days) {\n const expires = days ? \"; expires=\" + new Date(Date.now() + (days * 24 * 60 * 60 * 1000)).toUTCString() : \"\";\n document.cookie = key + _version_ctrl + \"=\" + (value || \"\") + expires + \"; path=/\";\n}\nexport function getCookie(key) {\n const nameEQ = key + _version_ctrl + \"=\", ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) == ' ')\n c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) == 0)\n return c.substring(nameEQ.length, c.length);\n }\n return null;\n}\nexport function removeCookie(key) {\n document.cookie = key + _version_ctrl + '=; Max-Age=-99999999;';\n}\n","const UA = navigator.userAgent;\nconst reg = /(Firefox|Chrome|Version|Opera|Edg)\\/(\\d+)/i;\nconst version = UA.match(reg);\nimport { setCookie } from '../common/cookie';\nfunction setAcceptImage() {\n const acceptList = [];\n if (isSupported({ Chrome: 59, Opera: 46, Firefox: 3, Edg: 79, Version: 8 })) {\n acceptList.push('image/apng');\n if (isSupported({ Chrome: 32, Opera: 19, Firefox: 65, Edg: 18, Version: 14 })) {\n setCookie('su_webp', '1', 114514);\n acceptList.push('image/webp');\n if (isSupported({ Chrome: 85, Opera: 71, Firefox: 93 })) {\n acceptList.push('image/avif');\n }\n }\n }\n return acceptList.reverse().join(',') + ',image/*,*/*;q=0.8';\n}\nexport function isSupported(checkList) {\n return version && checkList[version[1]] /**如果目前还没有版本支持,就填undefined */ && (parseInt(version[2]) >= checkList[version[1]]);\n}\nexport const Accept_Image = setAcceptImage();\n","import { __awaiter } from \"tslib\";\nimport { get, set, del } from './cache';\nimport { Accept_Image } from './compatibility';\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), { headers: { Accept: Accept_Image } });\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 (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","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","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 break;\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, { headers: { Accept: \"application/json\" } });\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 { getFileNameMain } from '../common/util';\nconst videoList = Poi.movies.name.split(\",\");\nconst s = document.getElementById(\"bgvideo\");\nfunction loadHls() {\n const video = document.getElementById('coverVideo'), video_src = video.dataset.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 }\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}\nfunction getVideo() {\n const video_stu = document.getElementsByClassName(\"video-stu\")[0];\n const fileName = videoList[Math.floor(Math.random() * videoList.length)], bgvideo = document.getElementById(\"bgvideo\");\n video_stu.innerHTML = \"正在载入视频 ...\";\n video_stu.style.bottom = \"0px\";\n bgvideo.setAttribute(\"src\", new URL(fileName, Poi.movies.url || location.origin).toString());\n bgvideo.setAttribute(\"video-name\", getFileNameMain(fileName));\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 }\n catch (e) {\n console.warn(e);\n }\n s.play();\n}\nfunction spause() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) {\n video_btn.classList.add(\"video-play\");\n video_btn.classList.remove(\"video-pause\");\n }\n try {\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\n }\n catch (_a) { }\n s.pause();\n}\nexport function liveplay() {\n if (s && s.oncanplay != undefined && document.querySelector(\".haslive\")) {\n if (document.querySelector(\".videolive\")) {\n splay();\n }\n }\n}\nexport function 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}\nexport function coverVideo() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn)\n video_btn.addEventListener(\"click\", function () {\n if (this.classList.contains(\"loadvideo\")) {\n this.classList.add(\"video-pause\");\n this.classList.remove(\"loadvideo\");\n getVideo();\n s.oncanplay = function () {\n splay();\n document.getElementById(\"video-add\").style.display = \"block\";\n video_btn.classList.add(\"videolive\", \"haslive\");\n };\n }\n else {\n if (this.classList.contains(\"video-pause\")) {\n spause();\n video_btn.classList.remove(\"videolive\");\n document.getElementsByClassName(\"video-stu\")[0].style.bottom = \"0px\";\n document.getElementsByClassName(\"video-stu\")[0].innerHTML = \"已暂停 ...\";\n }\n else {\n splay();\n video_btn.classList.add(\"videolive\");\n }\n }\n 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)\n video_add.addEventListener(\"click\", function () {\n getVideo();\n });\n}\nexport function coverVideoIni() {\n let video = document.getElementsByTagName('video')[0];\n if (video && video.classList.contains('hls')) {\n if (window.Hls) {\n loadHls();\n }\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}\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 add_copyright from './copyright'\nimport { createButterbar } from '../common/butterbar'\nimport { loadCSS } from 'fg-loadcss'\nimport { lazyload } from 'lazyload'\nimport './global-func'\nimport { ready, slideToggle } from '../common/util'\nimport about_us from './about_us'\nimport preload_screen from './preload_screen'\nimport { _$ } from './sakurairo_global'\nimport { isSupported } from './compatibility'\nimport hitokoto from './hitokoto'\nimport { web_audio } from './web_audio'\nimport { open, close } from './mobile_nav'\nimport { XLS,post_list_show_animation } from './posts'\n\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\nadd_copyright()\n\nif (mashiro_option.float_player_on) {\n if (document.body.clientWidth > 860) {\n import('./aplayer').then(({ aplayerInit }) => aplayerInit())\n }\n}\n\nfunction activate_widget() {\n let secondary = document.getElementById(\"secondary\");\n if (document.body.clientWidth > 860) {\n let show_hide = document.querySelector(\".show-hide\");\n show_hide && show_hide.addEventListener(\"click\", function () {\n secondary && secondary.classList.toggle(\"active\");\n });\n } else {\n secondary && secondary.remove();\n }\n}\nsetTimeout(function () {\n activate_widget();\n}, 100);\n\n//#region Siren\nimport {liveplay,livepause,coverVideo,coverVideoIni} from './video'\nfunction MN() {\n const iconflat = document.querySelector(\".iconflat\");\n iconflat && iconflat.addEventListener(\"click\", (e) => {\n e.stopPropagation()\n if (document.body.classList.contains(\"navOpen\")) {\n close()\n } else {\n open()\n }\n });\n}\n\nfunction MNH() {\n if (document.body.classList.contains(\"navOpen\")) {\n close()\n }\n}\nfunction auto_height() {\n if (Poi.windowheight == 'auto') {\n if (document.querySelector(\"h1.main-title\")) {\n //let _height = document.documentElement.clientHeight + \"px\";\n const centerbg = document.getElementById(\"centerbg\")\n const bgvideo = document.getElementById(\"bgvideo\")\n if (centerbg) centerbg.style.height = \"100vh\";\n if (bgvideo) bgvideo.style.minHeight = \"100vh\";\n }\n } else {\n document.querySelector(\".headertop\") && document.querySelector(\".headertop\").classList.add(\"headertop-bar\");\n }\n}\nfunction PE() {\n if (document.querySelector(\".headertop\")) {\n let headertop = document.querySelector(\".headertop\"),\n blank = document.querySelector(\".blank\");\n if (document.querySelector(\".main-title\")) {\n try {\n blank.style.paddingTop = \"0px\";\n } catch (e) { }\n headertop.style.height = \"auto\";\n headertop.style.display = \"\";\n if (Poi.movies.live == '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 coverVideo();\n hitokoto()\n bgButtonAddListener()\n initFontControl()\n web_audio()\n preload_screen()\n lazyload();\n powermode()\n about_us()\n\n});\n//#region mashiro_global.ini.normalize();\npost_list_show_animation();\ncoverVideoIni();\ncheckSkinSecter();\nscrollBar();\n//#endregion"],"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","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","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","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","_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 2b08df16..62cc00f5 100644 --- a/js/login.js.LICENSE.txt +++ b/js/login.js.LICENSE.txt @@ -1 +1 @@ -//! build 1494c2b 2021/9/11 +//! build 4197950 2021/9/11 diff --git a/js/page.js.LICENSE.txt b/js/page.js.LICENSE.txt index 843e7951..1c9f5c01 100644 --- a/js/page.js.LICENSE.txt +++ b/js/page.js.LICENSE.txt @@ -5,4 +5,4 @@ * @license MIT */ -//! build 1494c2b 2021/9/11 +//! build 4197950 2021/9/11 From 5ace3abf0252b4aa02ac72386a5d0f890a7c3aa0 Mon Sep 17 00:00:00 2001 From: bymoye <964907582@qq.com> Date: Sun, 12 Sep 2021 11:41:32 +0800 Subject: [PATCH 20/23] =?UTF-8?q?fix(=E7=99=BB=E5=BD=95=E6=A8=A1=E6=9D=BF)?= =?UTF-8?q?:=20php8=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/classes/Images.php | 38 +++++++++++++++++++------------------- user/page-login.php | 34 +++++++++++++++++++--------------- 2 files changed, 38 insertions(+), 34 deletions(-) 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/user/page-login.php b/user/page-login.php index e945bf73..6eb817d5 100644 --- a/user/page-login.php +++ b/user/page-login.php @@ -13,26 +13,30 @@

    -

    -

    +

    +

    -
    +
    - + + + From c453bf5227a5397c361aeb29d41203e03f0d6b6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9F=93=E5=B7=9D=20=E7=9E=B3?= Date: Sun, 12 Sep 2021 19:32:14 +0800 Subject: [PATCH 21/23] Version 2.2.7 --- style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/style.css b/style.css index 24c5bbb7..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 From 27b13cbf14c1ed3dcc4d0e8ba689b9b990eaa5c3 Mon Sep 17 00:00:00 2001 From: bymoye <964907582@qq.com> Date: Sun, 12 Sep 2021 20:55:13 +0800 Subject: [PATCH 22/23] =?UTF-8?q?fix(=E7=99=BB=E5=BD=95=E6=A8=A1=E6=9D=BF)?= =?UTF-8?q?:=20=E6=84=8F=E4=B9=89=E4=B8=8D=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- user/page-login.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user/page-login.php b/user/page-login.php index 6eb817d5..6cfc92e2 100644 --- a/user/page-login.php +++ b/user/page-login.php @@ -15,7 +15,7 @@

    -

    +

    From c767eb88ed617ad34369e60e61b52c006ca8ac95 Mon Sep 17 00:00:00 2001 From: bymoye <964907582@qq.com> Date: Mon, 13 Sep 2021 13:06:47 +0800 Subject: [PATCH 23/23] update app js to a3ed6ef --- js/app.js | 2 +- js/app.js.LICENSE.txt | 2 +- js/app.js.br | Bin 12648 -> 12656 bytes js/app.js.gz | Bin 14538 -> 14542 bytes js/app.js.map | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) diff --git a/js/app.js b/js/app.js index dd389abe..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(){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.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)})(); +(()=>{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 1af895ab..bb1f043f 100644 --- a/js/app.js.LICENSE.txt +++ b/js/app.js.LICENSE.txt @@ -40,4 +40,4 @@ * */ -//! build 4197950 2021/9/11 +//! build a3ed6ef 2021/9/13 diff --git a/js/app.js.br b/js/app.js.br index 4eaa85f2f056ef823541472ac23284641e0cccfa..f45993919a34c369ae7389c058449d419b2453ee 100644 GIT binary patch literal 12656 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 WAC=qn6~N8{c;(~6^JYYq3D*gUN{mhb diff --git a/js/app.js.gz b/js/app.js.gz index 838dfe463b7349b0823afd9e372df118dd840360..b31781f3a11ec467de10fd18d5be9d3cdc965ab7 100644 GIT binary patch delta 4126 zcmV+(5aI92an5lHABzY8000000t>H7I}Q=Z6xMbj;9>JjEEY)!q|9H#3CcadQSM z%22@06pxT&Jz(_beULihb#?r~v@(M_QZC3wTRL#o!hDY!rNDNR#8q)D(AU!jbc+?y z48`{KwHsHjTwcH3xV84e`sHVHmwTvKsi+|$4wu_aH@F39=u%_m3<`Szout87`dxqC z?nS<&%y>X4VSGY_K;G)`#KmD6lUmlGH{wqc1Bw=*6em3abLgYCL7GGmwSj!(ZwU$1 zaaC(`8kx2rwAl_!Nd-P2;ha$3b9 z+#(8y0J-Chma+uKg0<3V$imtPx2`FYiLI^P&?J_~fNQWRY(cXZM&{O6Sg< z!|#SnM*t0O(!hT4s1XLa*om&q%`>ZIsgZESAqbbPVp{4L-V?>72dzw4ufI4bx!3S}cL7qtOqJ$^8X8 zwnk^a$H_Z8eoWX!ijI^2DHne)%YOE;lO8B%9v3Gy#AvWw-qZ}G3y8PmIi_j>nOa3s zd?YCteorVRT0F!5J#K1uVzF2V5yGVCqHq^^fQ2;mE84WubJy;Mn;n}&l~Oz*s}|xJ zujcucay_(TI>b*m6jjw*v$R-d&Eg`0ukv%sRl%M)-*KZ|71CK)_eyHJ{E!0uUno3N z%oRt!@@`i}N-P?M^9%U-1w&jZIM)^R=3`g<|BSB4AO+8yZ+UyFHjfw*gl#+= zUJ$R;fCv1CQJ|Q+#xupF_>6JkyioaG7!Gy)Ofi7$iLtJWVNr{Y?ExeqSCjuL7k}S+ zeBXddV^sHap*)P{f}sVi;lg1~oXaG0JVx5W9||lKn!CFB4sTS*pxA8+gZoQHOu0jm;FaDT)gPnn+Rr z;^?yX8anKW6kuqulGLHV$vpoOW`BIatULDUI-NYU?BY|oL!We4gC$EKb`(xRwCUwx zTr#X;j0br%kc&v0FYxx|gRYt2ky>#Gjc|ZCj3c-5NL0U`B_knmafnhxJtC!ZH7q(k z>@Y{8>@G95(S;q}gazK{P>?J%C3Xl~Vh%q@EbZWnUw!4_&wgYSTd)azI-HYR zEIogU>|%J3(*XzB25yh#ZbwW|gb*4{KP293N?8BfhlUP?0Yc%4OmiMD0#6W3mZp@o znQ&z=US)+ENGNPdH&}ei9jDpmLmKKy9lH~kgq2OAL=pOI)CA|nC2@(}c=O>%r6<-# z*Vp*D>P~c(RFNcyo#UZf4bh+lTq8yd(gS}Qk3^RpUQtD%#H|}Op^S)mjEBZXln-iP zbrV|p-1^NM!a8Q2RNi7RGc61rD?&XngiEU`Eq988(mm8>a4SqS7c=FkmPk8Z&5)YN zp`OJQgZfi9Qbli=A06 zqb?OYw!>K$`BS`&)nbPj93n8gT+>nP$*oBC1_ikyBn?yxJPzyvVBU7UU>y}p(G19{ z>tcxFAPZtVSs|WX%u(8+u+75)jS_!ZM(P}qdh#VoV$~3^Wsr-JDu*r&xzLOsZ(R*^s`$tDZRSDFS(J_&+@US1js)VT?ut1 z5wK7)aC>U(QulS`;XU`YG~bR+k1$e`=YHvG<~pJm_^uWXwEKLozOg(-)Eq zyC^--Gm ztTTl+OZ4bv6MWCbDPwcwYWj2ti9TO!u7Wh9TvInn@L6V#xU4en ze=C1Ved6@dASspT7|K9b-8N}%l^0ESB|j|Oa2zrZ3Z=2Ud~}-qVy8mh{NfOW?iMxK_?LxyNMV?ENxB-4L zZO+};C)LK3G6Wy06j@fIbUL`DMWuId>V;+U2{(i!<0p4U zQZj)sjbAa;dPvUk#AzPlKC>H?`cv2{dQ{1iat)dBUpbU|66M(QD*)96+eiIKL3A8rRSs7PIf8b}>wm{6h*YDa{Yks}ne<0Bf0%YDClL%U zNP4i~PXzR#+GO8QQh+yk9)#V59`92ay=!^6b2D6H!u<+szk-oj)acM z1VLotx8-TyLMF+!nZ{`JfBNhE@ssgKPqYv&Tt9a=0#JA?o0O>5Y(XYQ>=BcBp8UD* zJeohTu$&;m)t>Jqz!;=>dteE2imY?@j(gy2n|&2ZaCM2|Ca$hB6>o4=#T#5oLn)ra zaD(b=rXKLhVs0+24m)-&mLW}d>=M^ZkUJLz1Tg#RLf*K#K~DT=e}NW~0~>ZoXU3_9 z(qbB$EDe*dr7{`kyt>L4kvT&SaVKtZ;FzOEGmaY+iF;~syrlE6A+L&R z&@7MpDhs&*J0AeCg<<pbU|~xzUm~Zh&+WLFM<}%M9GG{q*_42L^YgEc7Wk~jk2gSxq0q+tvl9gNR66ULqvoO|l z{nP~JI-1C-OgW^V3Z?dchUEGG%*RN|sqDI`8PjILe>5^u{D@RKHx;wYO;*x$yCr0V zN_XO!6x~=Ji?ZazTXbsT)^#EZ**$*?Py=1EWGrC2wy4bZfLiE%nHp+EUE9}A@a7i$ zB}ap8uPyE>Z-*f)PQwjc|1j~Ial>n|KGxj8nAp|f@R^v1r!Ih)s`~(UIzYSeSH!yB zFd85Ne>8V*K^^4E%doZ=U%0k8)1q;48wM$>^5Gqy0uE02G|Dr86k+WCNADEK=c!*F z7!+8W?#@u|Pt@i_;i?;Uu^b;V_YpC=o+Czp1@P+A7m1C)>$4|Ux&zRqu9qBf85foCX>M|5hunLzF^j??vdcykI2#L z2ro_#gCjJ6MXd%!Cu1xq;&m33ipMU_-SN6a||6KTXk|%Cm)2q~9!I!gZ2wPclJj z!+%0?S>fzd!^380(B%v;!P6;1$xwH~UR4_kt*vZ!xnt-A(2RqowVo8zMe^izbEwpq zgI_}>bmm9a!XkMHDzyjcS`Om)PZ%3Cf15J-!#E-E_G* z<(!m1BgM}fsK%M6p0tXI#w@(WbGXk#Ghxa32ja(D`s{~%+(AUc_;gDmjaGRfGz|u% zz+otV+%YsZeihlLJeM}G#(3UM8P^j?+>u0Sk}48gj0dcV9iA46Y19Rh!p+K9e?Y?N zAe9I8NEmpD%i%hb=JYNjynJUO&81qU5Q8P9bB7jV=MeAOpa2frJsuw@w_P9EO-mlWnOx+Km0niPHx@VRMiV^&@G;+TJzsA%Uq>~cn|E-> zw6%?)fovWft=T*fzC4zY(lQC{1ZCQcTKCx_FHKOr>*Rg>*TQpUd<7y8RHS{`U4bM; zV(6q-|L_GfDFxPPRB}CuE-5S;Ppd17JZBa@p+;9=PBRDLj%zx2rCU>6r1oDH7EZ~F c1FnOB0^AZv1dfnz0LZ)l7Y&#cfRLpC05GKC!~g&Q delta 4195 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 {\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 window.open(\"mailto:\" + mashiro_option.email_name + \"@\" + mashiro_option.email_domain);\n}\n/* 首页下拉箭头 */\nfunction headertop_down() {\n let coverOffset = document.getElementById(\"content\").getBoundingClientRect().top + window.pageYOffset;\n window.scrollTo({\n top: coverOffset,\n behavior: \"smooth\"\n });\n}\nwindow.imgError = imgError\nwindow.cmt_showPopup = cmt_showPopup\nwindow.coverVideo = coverVideo\nwindow.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/**\n * 获取文件名的主名部分(即去除扩展名)\n * @param fileName 文件名\n * @returns 主名\n */\nexport const getFileNameMain = (fileName) => fileName.replace(/\\.\\w+$/, '');\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","var _a;\n/**\n * Cookie\n * from github.com/mirai-mamori/Sakurairo ./js/sakura-app.js ,commit 71f5a0c\n * @license GPL-v2\n * @date 2021.03\n */\nlet _version_ctrl = (_a = mashiro_option.cookie_version_control) !== null && _a !== void 0 ? _a : '';\nexport function setCookie(key, value, days) {\n const expires = days ? \"; expires=\" + new Date(Date.now() + (days * 24 * 60 * 60 * 1000)).toUTCString() : \"\";\n document.cookie = key + _version_ctrl + \"=\" + (value || \"\") + expires + \"; path=/\";\n}\nexport function getCookie(key) {\n const nameEQ = key + _version_ctrl + \"=\", ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) == ' ')\n c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) == 0)\n return c.substring(nameEQ.length, c.length);\n }\n return null;\n}\nexport function removeCookie(key) {\n document.cookie = key + _version_ctrl + '=; Max-Age=-99999999;';\n}\n","const UA = navigator.userAgent;\nconst reg = /(Firefox|Chrome|Version|Opera|Edg)\\/(\\d+)/i;\nconst version = UA.match(reg);\nimport { setCookie } from '../common/cookie';\nfunction setAcceptImage() {\n const acceptList = [];\n if (isSupported({ Chrome: 59, Opera: 46, Firefox: 3, Edg: 79, Version: 8 })) {\n acceptList.push('image/apng');\n if (isSupported({ Chrome: 32, Opera: 19, Firefox: 65, Edg: 18, Version: 14 })) {\n setCookie('su_webp', '1', 114514);\n acceptList.push('image/webp');\n if (isSupported({ Chrome: 85, Opera: 71, Firefox: 93 })) {\n acceptList.push('image/avif');\n }\n }\n }\n return acceptList.reverse().join(',') + ',image/*,*/*;q=0.8';\n}\nexport function isSupported(checkList) {\n return version && checkList[version[1]] /**如果目前还没有版本支持,就填undefined */ && (parseInt(version[2]) >= checkList[version[1]]);\n}\nexport const Accept_Image = setAcceptImage();\n","import { __awaiter } from \"tslib\";\nimport { get, set, del } from './cache';\nimport { Accept_Image } from './compatibility';\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), { headers: { Accept: Accept_Image } });\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 (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","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","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 break;\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, { headers: { Accept: \"application/json\" } });\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 { getFileNameMain } from '../common/util';\nconst videoList = Poi.movies.name.split(\",\");\nconst s = document.getElementById(\"bgvideo\");\nfunction loadHls() {\n const video = document.getElementById('coverVideo'), video_src = video.dataset.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 }\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}\nfunction getVideo() {\n const video_stu = document.getElementsByClassName(\"video-stu\")[0];\n const fileName = videoList[Math.floor(Math.random() * videoList.length)], bgvideo = document.getElementById(\"bgvideo\");\n video_stu.innerHTML = \"正在载入视频 ...\";\n video_stu.style.bottom = \"0px\";\n bgvideo.setAttribute(\"src\", new URL(fileName, Poi.movies.url || location.origin).toString());\n bgvideo.setAttribute(\"video-name\", getFileNameMain(fileName));\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 }\n catch (e) {\n console.warn(e);\n }\n s.play();\n}\nfunction spause() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn) {\n video_btn.classList.add(\"video-play\");\n video_btn.classList.remove(\"video-pause\");\n }\n try {\n document.querySelector(\".focusinfo\").style.top = \"49.3%\";\n }\n catch (_a) { }\n s.pause();\n}\nexport function liveplay() {\n if (s && s.oncanplay != undefined && document.querySelector(\".haslive\")) {\n if (document.querySelector(\".videolive\")) {\n splay();\n }\n }\n}\nexport function 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}\nexport function coverVideo() {\n let video_btn = document.getElementById(\"video-btn\");\n if (video_btn)\n video_btn.addEventListener(\"click\", function () {\n if (this.classList.contains(\"loadvideo\")) {\n this.classList.add(\"video-pause\");\n this.classList.remove(\"loadvideo\");\n getVideo();\n s.oncanplay = function () {\n splay();\n document.getElementById(\"video-add\").style.display = \"block\";\n video_btn.classList.add(\"videolive\", \"haslive\");\n };\n }\n else {\n if (this.classList.contains(\"video-pause\")) {\n spause();\n video_btn.classList.remove(\"videolive\");\n document.getElementsByClassName(\"video-stu\")[0].style.bottom = \"0px\";\n document.getElementsByClassName(\"video-stu\")[0].innerHTML = \"已暂停 ...\";\n }\n else {\n splay();\n video_btn.classList.add(\"videolive\");\n }\n }\n 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)\n video_add.addEventListener(\"click\", function () {\n getVideo();\n });\n}\nexport function coverVideoIni() {\n let video = document.getElementsByTagName('video')[0];\n if (video && video.classList.contains('hls')) {\n if (window.Hls) {\n loadHls();\n }\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}\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 add_copyright from './copyright'\nimport { createButterbar } from '../common/butterbar'\nimport { loadCSS } from 'fg-loadcss'\nimport { lazyload } from 'lazyload'\nimport './global-func'\nimport { ready, slideToggle } from '../common/util'\nimport about_us from './about_us'\nimport preload_screen from './preload_screen'\nimport { _$ } from './sakurairo_global'\nimport { isSupported } from './compatibility'\nimport hitokoto from './hitokoto'\nimport { web_audio } from './web_audio'\nimport { open, close } from './mobile_nav'\nimport { XLS,post_list_show_animation } from './posts'\n\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\nadd_copyright()\n\nif (mashiro_option.float_player_on) {\n if (document.body.clientWidth > 860) {\n import('./aplayer').then(({ aplayerInit }) => aplayerInit())\n }\n}\n\nfunction activate_widget() {\n let secondary = document.getElementById(\"secondary\");\n if (document.body.clientWidth > 860) {\n let show_hide = document.querySelector(\".show-hide\");\n show_hide && show_hide.addEventListener(\"click\", function () {\n secondary && secondary.classList.toggle(\"active\");\n });\n } else {\n secondary && secondary.remove();\n }\n}\nsetTimeout(function () {\n activate_widget();\n}, 100);\n\n//#region Siren\nimport {liveplay,livepause,coverVideo,coverVideoIni} from './video'\nfunction MN() {\n const iconflat = document.querySelector(\".iconflat\");\n iconflat && iconflat.addEventListener(\"click\", (e) => {\n e.stopPropagation()\n if (document.body.classList.contains(\"navOpen\")) {\n close()\n } else {\n open()\n }\n });\n}\n\nfunction MNH() {\n if (document.body.classList.contains(\"navOpen\")) {\n close()\n }\n}\nfunction auto_height() {\n if (Poi.windowheight == 'auto') {\n if (document.querySelector(\"h1.main-title\")) {\n //let _height = document.documentElement.clientHeight + \"px\";\n const centerbg = document.getElementById(\"centerbg\")\n const bgvideo = document.getElementById(\"bgvideo\")\n if (centerbg) centerbg.style.height = \"100vh\";\n if (bgvideo) bgvideo.style.minHeight = \"100vh\";\n }\n } else {\n document.querySelector(\".headertop\") && document.querySelector(\".headertop\").classList.add(\"headertop-bar\");\n }\n}\nfunction PE() {\n if (document.querySelector(\".headertop\")) {\n let headertop = document.querySelector(\".headertop\"),\n blank = document.querySelector(\".blank\");\n if (document.querySelector(\".main-title\")) {\n try {\n blank.style.paddingTop = \"0px\";\n } catch (e) { }\n headertop.style.height = \"auto\";\n headertop.style.display = \"\";\n if (Poi.movies.live == '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 coverVideo();\n hitokoto()\n bgButtonAddListener()\n initFontControl()\n web_audio()\n preload_screen()\n lazyload();\n powermode()\n about_us()\n\n});\n//#region mashiro_global.ini.normalize();\npost_list_show_animation();\ncoverVideoIni();\ncheckSkinSecter();\nscrollBar();\n//#endregion"],"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","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","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","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","_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 +{"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