diff --git a/2020/08/02/web2/index.html b/2020/08/02/web2/index.html deleted file mode 100644 index 9cb960d..0000000 --- a/2020/08/02/web2/index.html +++ /dev/null @@ -1,586 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 网页设计/css - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

网页设计/css

- -
- -

响应式网页设计原则:创建媒体查询

媒体查询是CSS3中引入的一项新技术,可根据不同的视口大小更改内容的表示形式。视口是用户在网页上的可见区域,视用于访问站点的设备而异。

-

媒体查询由一种媒体类型组成,如果该媒体类型与显示文档的设备类型匹配,则将应用样式。您可以在媒体查询中根据需要选择任意多个选择器和样式。

-

以下是媒体查询的示例,该查询在设备的宽度小于或等于100px时返回内容:

-
1
@media (max-width: 100px) { /* CSS Rules */ }
-

当设备的高度大于或等于350px时,以下媒体查询将返回内容:

-
1
@media (min-height: 350px) { /* CSS Rules */ }
-

** 请记住,仅当媒体类型与所使用设备的媒体类型匹配时,才会应用媒体查询中的CSS。**

-

例子:

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<style>
p {
font-size: 20px;
}

/* Only change code below this line */
@media (max-height: 800px) {
p {
font-size: 10px;
}
}

/* CSS Rules */
/* Only change code above this line */
</style>
-
-

自适应网页设计原则:使图像具有响应性

使用CSS使图像具有响应性实际上非常简单。您只需要向图像添加以下属性:

-
1
2
3
4
img {
max-width: 100%;
height: auto;
}
-

max-width的100%将确保图像不会比它在容器更宽,而height中auto将会使图像保持其原始宽高比。

-

例子:

-
1
2
3
4
5
6
7
8
9
10
11
<style>
.responsive-img {


}

img {
max-width: 100%;
height:auto;
}
</style>
-
-

响应式Web设计原则:使用视网膜图像进行高分辨率显示

随着互联网连接设备的增加,它们的尺寸和规格也有所不同,并且它们使用的显示器在内部和外部可能会有所不同。像素密度是一个设备上可能与其他设备不同的方面,这种密度称为“像素每英寸(PPI)”或“每英寸点数(DPI)”。最著名的显示器就是最新的Apple MacBook Pro笔记本电脑和最近的iMac电脑上的“视网膜显示器”。由于“视网膜”和“非视网膜”显示器之间的像素密度不同,因此某些未考虑高分辨率显示器的图像在高分辨率显示器上渲染时可能看起来“像素化”。

-

使图像正确显示在高分辨率显示器(例如MacBook Pro“视网膜显示器”)上的最简单方法是将其width和height值定义为原始文件的一半。这是仅使用原始高度和宽度一半的图像的示例:

-
1
2
3
4
<style>
img { height: 250px; width: 250px; }
</style>
<img src="coolPic500x500" alt="A most excellent picture">
-

响应式网页设计原则:使版式具有响应性

您可以使用视口单位进行响应式排版,而不必使用文本em或不px调整文本大小。视口单位(如百分比)是相对单位,但它们基于不同的项目。视口单位是相对于设备的视口尺寸(宽度或高度),而百分比是相对于父容器元素的大小。

-

四个不同的视口单位是:

-

vw(视口宽度):10vw将为视口宽度的10%。
vh(视口高度):3vh将为视口高度的3%。
vmin(最小视口):70vmin将是视口较小尺寸(高度或宽度)的70%。
vmax(最大视口):100vmax将是视口较大尺寸(高度或宽度)的100%。
这是一个将body标签设置为视口宽度的30%的示例。

-
1
2
body { width: 30vw; }

-

CSS Flexbox:使用显示:flex定位两个框

本节使用交替的质询样式来说明如何使用CSS灵活地放置元素。首先,挑战将解释理论,然后使用简单的tweet组件进行实际挑战将应用flexbox概念。

-

将CSS属性display: flex;放在元素上可让您使用其他flex属性来构建响应页面。

- -
-
-
-
- -

CSS Flexbox:在Tweet嵌入中添加Flex超级功能

右侧是将用作实际示例的推特嵌入。在不同布局下,某些元素看起来会更好。最后的挑战证明了display: flex。在这里,您将把它添加到嵌入的推文中的几个组件中,以开始调整其位置。

- -
- Quincy Larson's profile picture -
-

Quincy Larson

-

@ossia

-
- -
-
-

I meet so many people who are in search of that one trick that will help them work smart. Even if you work smart, you still have to work hard.

- 1:32 PM - 12 Jan 2018 -
-
-
-
-
- 107 Retweets -
- -
-
- - - -
-
- -
-

CSS Flexbox:使用flex-direction属性创建一行

添加display: flex到元素会将其变成flex容器。这样就可以将该元素的所有子元素对齐到行或列中。通过将flex-direction属性添加到父项并将其设置为行或列来执行此操作。创建一行将使子代水平对齐,创建一列将使子代垂直对齐。

-

其他选项为flex-direction行反向和列反向。

-

注意:该flex-direction属性的默认值为row。

- -
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- -
- - -
-
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/2021/01/22/Rep/index.html b/2021/01/22/Rep/index.html deleted file mode 100644 index 4f5dd6c..0000000 --- a/2021/01/22/Rep/index.html +++ /dev/null @@ -1,573 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 正则表达式 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

正则表达式

- -
-

正则表达式学习

-

例子

-
1
2
3
4
5
6
7
^[0-9]+abs$

- ^ 为匹配输入字符串的开始位置。

- [0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。

- abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。
-
1
2
3
^[a-z0-9_-]{3,15}$
- [a-z0-9_-]表示字母(a-z)数字(0-9)还有加上下划线连字符
- {3,15}表示3-15个字符
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
字符描述
[ABC]匹配 […] 中的所有字符,例如 [aeiou] 匹配字符串 “google runoob taobao” 中所有的 e o u a 字母。
[^ABC]匹配除了 […] 中字符的所有字符,例如 [^aeiou] 匹配字符串 “google runoob taobao” 中除了 e o u a 字母的所有字母。
[A-Z]表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。
.匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]。
[\s\S]匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,包括换行。
\w匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
-

特殊字符

所谓特殊字符,就是一些有特殊含义的字符,如上面说的 runoob 中的 ,简单的说就是表示任何字符串的意思。如果要查找字符串中的 * 符号,则需要对 * 进行转义,即在其前加一个 : runo\ob 匹配 runoob。

-

许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符”转义”,即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
特殊字符描述
$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。要匹配 $ 字符本身,请使用 $。
( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
*匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
+匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
.匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。
[标记一个中括号表达式的开始。要匹配 [,请使用 [。
?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。
\将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。’\n’ 匹配换行符。序列 ‘\‘ 匹配 “",而 ‘(‘ 则匹配 “(“。
^匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 ^。
{标记限定符表达式的开始。要匹配 {,请使用 {。
-

限定符

限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。

-

正则表达式的限定符有:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
字符描述
*匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。
+匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
?匹配前面的子表达式零次或一次。例如,”do(es)?” 可以匹配 “do” 、 “does” 中的 “does” 、 “doxy” 中的 “do” 。? 等价于 {0,1}。
{n}n 是一个非负整数。匹配确定的 n 次。例如,’o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
{n,}n 是一个非负整数。至少匹配n 次。例如,’o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。’o{1,}’ 等价于 ‘o+’。’o{0,}’ 则等价于 ‘o*’。
{n,m}m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,”o{1,3}” 将匹配 “fooooood” 中的前三个 o。’o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格。
-

以下正则表达式匹配一个正整数,[1-9]设置第一个数字不是 0,[0-9]* 表示任意多个数字:

-
1
/[1-9][0-9]*/
-
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- - -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/2021/01/27/tabs/index.html b/2021/01/27/tabs/index.html deleted file mode 100644 index c515e21..0000000 --- a/2021/01/27/tabs/index.html +++ /dev/null @@ -1,512 +0,0 @@ - - - - - - - - - - - - - - - - - - - - tab的实现 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

tab的实现

- -
-

tab实现的方法

下面的代码的注释中已经描述的十分清楚。
主要就是css+js的方法实现点击就切换的方法.

-

setAttibute函数:

定义和用法

-
setAttribute() 方法添加指定的属性,并为其赋指定的值。
-
-如果这个指定的属性已存在,则仅设置/更改值。
-setAttribute(string name, string value):
-增加一个指定名称和值的新属性,或者把一个现有的属性设定为指定的值。
-

语法:

1
element.setAttribute(attributename,attributevalue)
-

参数

- - - - - - - - - - - - - - - - - -
参数类型描述
attributenamestring必需。您希望添加的属性的名称。
attributevalueString必需。您希望添加的属性值。
-

例子:

1
2
3
4
var input = document.createElement("input");
input.setAttribute("type", "text");
input.setAttribute("name", "q");
input.setAttribute("class",bordercss);
-
1
<input type="text" name="q" class="bordercss">,即,input控件具有bordercss样式属性
-

getAttribute()函数

定义和用法

getAttribute() 方法返回指定属性名的属性值。
-提示:如果您希望以 Attr 对象返回属性,请使getAttributeNode。
---------------------------------------------------------
-getAttribute()方法是一个函数。它只有一个参数——你打算查询的属性的名字,下面为大家介绍下其具体的使用
-

语法

1
element.getAttribute(attributename)
-

参数

- - - - - - - - - - - - -
参数类型描述
attributename字符串值。必需。需要获得属性值的属性名称。
-

返回值

- - - - - - - - - - -
类型描述
String指定属性的值。
-

注意

-

不过,getAttribute()方法不能通过document对象调用,这与我们此前介绍过的其他方法不同。我们只能通过一个元素节点对象调用它。

-

可以把它与getElementsByTagName()方法结合起来,去查询每个<p>元素的title属性

-

例子

1
2
3
4
5
var text=document.getElementsByTagName("p");
for (var i=0;i<text.length;i++)
{
alert(text[i].getAttribute("title"));
}
-

代码展示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/style.css">
<title>手风琴</title>
</head>

<body>
<div class="tabs">
<div class="nav-tab">
<span class="dis">张羽习</span>
<span>李一桐</span>
<span>冷檬</span>

</div>
<div class="content">
<ul>
<li class="info">张羽习</li>
<li>李一桐</li>
<li>冷檬</li>
</ul>
</div>
</div>
<script>
var spanlist = document.querySelectorAll('span');
var lis = document.querySelectorAll('li');
for (var i =0 ; i < spanlist.length; i++) {
//添加自定义属性
spanlist[i].setAttribute('index', i);
//获取span点击事件
spanlist[i].onclick= function() {
console.log(spanlist)
//获取自定义属性,然后遍历数组
var index = this.getAttribute('index');
//遍历lis这个数组,然后再用if进行判断是不是这个
for (var l = 0; l < lis.length; l++) {
//通过if来判定 两个伪数组的下标是否相同,如果相同就改变属性 ---(style.display 和 classroom的值)
if (index == l) {
//注意是==
//如果index下标和j的下标一样的就执行代码
spanlist[l].className = 'dis';
lis[l].style.display = 'block';
} else {// if 和else需要写完整以后才能执行
spanlist[l].className = '';
lis[l].style.display = 'none';
}
}
}

}
</script>
</body>

</html>
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
*{
margin: 0;
padding: 0;
}

.tabs .nav-tab{
width: 300px;
height: 40px;
background: #e5e6e5;
}
.tabs .nav-tab span{
width: 100px;
padding: 10px;
position: relative;
top: 10px;
}
.tabs .nav-tab span:hover{
background: #bcbdbd;
}
.content {
width: 300px;
background: black;
}
.content ul li {
margin: 5px;
padding: 10px;
color: #fff;
display: none;
}
.content .info{
display: block;
}
-
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- - -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/2021/01/29/timeLine/index.html b/2021/01/29/timeLine/index.html deleted file mode 100644 index 197f6a0..0000000 --- a/2021/01/29/timeLine/index.html +++ /dev/null @@ -1,579 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 时光轴 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

时光轴

- -
-

简易的时光轴练习

相关知识

这个简易的时光轴的实现,使用了html和css.元素主要有时间,图片,文字.

- -

list-style

定义和用法

-

list-style 简写属性在一个声明中设置所有的列表属性。

-

说明

-

该属性是一个简写属性,涵盖了所有其他列表样式属性。由于它应用到所有 display 为 list-item 的元素,所以在普通的 HTML 和 XHTML 中只能用于 li 元素,不过实际上它可以应用到任何元素,并由 list-item 元素继承。

-

可以按顺序设置如下属性:

-
1
2
3
list-style-type
list-style-position
list-style-image
-

可以不设置其中的某个值,比如 “list-style:circle inside;” 也是允许的。未设置的属性会使用其默认值。
|默认值:|disc outside none|
|—-|—-|
|继承性:|yes|
|版本:|CSS1|
|JavaScript 语法:|object.style.listStyle=”decimal inside”|

-
- - - - - - - - - - - - - - - - - - - - - - - -
描述
list-style-type设置列表项标记的类型。
list-style-position设置在何处放置列表项标记。
list-style-image使用图像来替换列表项的标记
inherit规定应该从父元素继承 list-style 属性的值。
-

transform属性

属性定义及使用说明
Transform属性应用于元素的2D或3D转换。这个属性允许你将元素旋转,缩放,移动,倾斜等。
|默认值:|none|
|—-|—-|
|继承:|no|
|版本:|CSS3|
|JavaScript 语法:|object.style.transform=”rotate(7deg)”|

-

语法

-
1
transform: none|transform-functions;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
描述
none定义不进行转换。
matrix(n,n,n,n,n,n)定义 2D 转换,使用六个值的矩阵。
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n)定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate(x,y)定义 2D 转换。
translate3d(x,y,z)定义 3D 转换。
translateX(x)定义转换,只是用 X 轴的值
translateY(y)定义转换,只是用 Y 轴的值。
translateZ(z)定义 3D 转换,只是用 Z 轴的值。
scale(x[,y]?)定义 2D 缩放转换。
scale3d(x,y,z)定义 3D 缩放转换。
scaleX(x)通过设置 X 轴的值来定义缩放转换
scaleY(y)通过设置 Y 轴的值来定义缩放转换。
rotate(angle)定义 2D 旋转,在参数中规定角度
还有很多,点击查看
-

transition

属性定义及使用说明

-

transition 属性设置元素当过渡效果,四个简写属性为:

-
1
2
3
4
transition-property
transition-duration
transition-timing-function
transition-delay
-

注意: 始终指定transition-duration属性,否则持续时间为0,transition不会有任何效果。
|默认值|all 0 ease 0|
|—-|—-|
|继承:| no|
|版本:| CSS3|
|JavaScript 语法:|object.style.transition=”width 2s”|

- - - - - - - - - - - - - - - - - - - - - - - -
描述
transition-property指定CSS属性的name,transition效果
transition-durationtransition效果需要指定多少秒或毫秒才能完成
transition-timing-function指定transition效果的转速曲线
transition-delay定义transition效果开始的时候
-

代码展示

html

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/style.css">
<title>时光轴效果</title>
</head>

<body>
<ul>
<li>
<span>2021年1月28日21:11:41</span>
<div class="content">
<div class="content-img">
<img src="img/01.jpg" alt="羽习">
</div>
<div class="content-words">
不见你,恍如三秋啊!
</div>
</div>
</li>
<li>
<span>2021年1月28日21:11:51</span>
<div class="content">
<div class="content-img">
<img src="img/02.jpg" alt="羽习">
</div>
<div class="content-words">
对你有时候甚是思念
</div>
</div>
</li>
<li>
<span>2021年1月28日21:11:56</span>
<div class="content">
<div class="content-img">
<img src="img/03.jpg" alt="羽习">
</div>
<div class="content-words">
有时候就是想想就好,没有想过我的结果,就是做出这一步
</div>
</div>
</li>
</ul>
</body>

</html>
-

css

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
*{
margin: 0;
padding: 0;
}

ul{
list-style: none;
}

ul{
max-width: 600px;
margin: 100px auto;
border: 1px solid #ddd;
position: relative;
padding-left:20px ;
}
ul::before{
content: '';
width: 5px;
position: absolute;
top: 0;
bottom: 0;
background-color: #00ffff;
left: 0;
}
ul li{
margin-bottom: 20px;
position: relative;
}

ul li::before{
content: '';
width: 20px;
height: 20px;
background-color: #00ffff ;
position: absolute;
border-radius: 50%;
left: -28px;
box-shadow: 0 0 6px;
}
ul li span {
color: gray;
}

ul li .content{
padding-top: 20px ;
}

ul li .content-img{
overflow: hidden;
}

ul li .content-img img{
width: 100px;
transition: transform 0.4s;
}

ul li .content-img img:hover{
transform: scale(1.1);
}
ul li .content .content-words{
text-align: justify;
font-size: 18px;
padding-top: 18px;
line-height: 1.6;
transition: transform 0.4s;
}
ul li .content .content-words:hover{
transform:translateX(10px);
color: gray;
}
-
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- - -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/2021/02/25/xiaoa/index.html b/2021/02/25/xiaoa/index.html deleted file mode 100644 index 9b6adb6..0000000 --- a/2021/02/25/xiaoa/index.html +++ /dev/null @@ -1,481 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 生成自己小爱同学超级课程表 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

生成自己小爱同学超级课程表

- -
-

前言

-

开发者

-

我看过超级课程表的一键导入课表,还有我们学校的一个公众号的一键导入课表,我为此深深着迷.现在看到小爱同学的这一款,总体来说不难.
下面请看我慢慢道来。

-

开发者文档

开发文档很重要,不要忘记了。
https://ldtu0m3md0.feishu.cn/docs/doccnhZPl8KnswEthRXUz8ivnhb#26bux2

-

我的学校代码

我们要写的代码主要为 scheduleHtmlProvider.js 和 scheduleHtmlParser.js 这两个文件.如果你的学校是正方教务系统的话,可以在默认的基础上修改,一般不需要大改.

-

Provider是用来获取html的函数,将获取到的html传给 Parser 进行数据处理,截取出对应的课程信息,再封装为规定的json格式数据返回。

-

代码讲解

以下是默认的Provider函数

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function scheduleHtmlProvider(iframeContent = "", frameContent = "", dom = document) {
//除函数名外都可编辑
//以下为示例,您可以完全重写或在此基础上更改

const ifrs = dom.getElementsByTagName("iframe");
const frs = dom.getElementsByTagName("frame");

if (ifrs.length) {
for (let i = 0; i < ifrs.length; i++) {
const dom = ifrs[i].contentWindow.document;
iframeContent += scheduleHtmlProvider(iframeContent, frameContent, dom);
}
}
if (frs.length) {
for (let i = 0; i < frs.length; i++) {
const dom = frs[i].contentDocument.body.parentElement;
frameContent += scheduleHtmlProvider(iframeContent, frameContent, dom);
}
}
if(!ifrs.length && !frs.length){
return dom.querySelector('body').outerHTML
}
return dom.getElementsByTagName('html')[0].innerHTML + iframeContent+frameContent
}
-

其实我们主要去看 scheduleHtmlParser.js 这个文件,我会详细的介绍这个文件的

-

(scheduleHtmlParser函数的输出须符合以下数据结构)

- - - - - - - - - - - - - - - - - - - - - -
参数名术语解释是否必填说明
courseInfoArray[{},{}课程表详细信息:
name: String 课程
position: Sting 教室
teacher:String 教师
weeks:Array(非空)第几周
day:Sring 星期几
section:[] 第几节
sectionTimesArray[{},{}]课时信息:
section: Number 第几节
startTime: String 开始时间
endTime: String 结束时间
-

我为缩短开发的时间,然后直接使用默认的,在默认的基础上修改.
其实,Parser 对象选择和Jquery相似,主要是使用正则表达式

-

我已经在里面写了注释,具体看它把,不懂可以留言

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
function scheduleHtmlParser(html) {
/*
Author: @Weiwei
Version: v0.1.1
*/

let timeJsonArray = [];
let result = []; //放置结果的数组
let allDom = $('#table1 .timetable_con'); //变量allDom作为选择器选择id为table1 class类为timetable_con
for (let u = 0; u < allDom.length; u++) { //for循环遍历allDom
let re = {
sections: [],
weeks: []
}
let aaa = $(allDom[u]).find('span')
let week = $(allDom[u]).parent('td')[0].attribs.id //获取当前第几周
if (week) {
re.day = week.split('-')[0] //获取当前是周几,分词然后获取第一个内容
}
for (let i = 0; i < aaa.length; i++) {
// 获取上课地点
if (aaa[i].attribs.title == '上课地点') {

for (let j = 0; j < $(aaa[i]).next()[0].children.length; j++) {
re.position = $(aaa[i]).next()[0].children[j].data
}
}
//获取有多少周课
if (aaa[i].attribs.title == '节/周') {

for (let j = 0; j < $(aaa[i]).next()[0].children.length; j++) {

let lesson = $(aaa[i]).next()[0].children[j].data
// console.log("lesson为"+lesson)
for (let a = Number(lesson.split(')')[0].split('(')[1].split('-')[0]); a < Number(lesson.split(')')[0].split('(')[1].split('-')[1].split('节')[0]) + 1; a++) {
// console.log("a1为"+a)
re.sections.push({
section: a
})
}


//一个学期上上课的周数
if (lesson.length == 20) {

for (let a = Number(lesson.split(')')[1].split('-')[0]); a < Number(lesson.split(')')[2].split('-')[1].split('周')[0]) + 1; a++) {

re.weeks.push(a)
}

} else if (lesson.length == 15) {

for (let a = Number(lesson.split(')')[1].split('-')[0]); a < Number(lesson.split(')')[1].split('-')[1].split('周')[0]) + 1; a++) {

let evenNum = a;
if (evenNum % 2 == 0) {
re.weeks.push(evenNum)
}

}

} else {

for (let a = Number(lesson.split(')')[1].split('-')[0]); a < Number(lesson.split(')')[1].split('-')[1].split('周')[0]) + 1; a++) {

re.weeks.push(a)
}
}


}
}
//获取授课教师姓名
if (aaa[i].attribs.title == '教师') {

for (let j = 0; j < $(aaa[i]).next()[0].children.length; j++) {
re.teacher = $(aaa[i]).next()[0].children[j].data
}
}

if (aaa[i].attribs.class == 'title') {

for (let j = 0; j < $(aaa[i]).children()[0].children.length; j++) {
re.name = $(aaa[i]).children()[0].children[j].data

}
}

}
result.push(re)
}




// 上课时间

var classTime = [
{ "section": 1, "startTime": "08:00", "endTime": "08:50" },
{ "section": 2, "startTime": "09:00", "endTime": "09:50" },
{ "section": 3, "startTime": "10:15", "endTime": "11:05" },
{ "section": 4, "startTime": "11:25", "endTime": "12:15" },
{ "section": 5, "startTime": "14:00", "endTime": "14:50" },
{ "section": 6, "startTime": "15:00", "endTime": "15:50" },
{ "section": 7, "startTime": "16:00", "endTime": "16:50" },
{ "section": 8, "startTime": "17:00", "endTime": "17:50" },
{ "section": 9, "startTime": "18:30", "endTime": "20:20" },
{ "section": 10, "startTime": "20:30", "endTime": "21:20" },
]


console.log(result)
console.log(classTime)
return {
courseInfos: result,
sectionTimes: classTime
}





}


-
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- - -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/2021/03/14/html-tupianfangda/index.html b/2021/03/14/html-tupianfangda/index.html deleted file mode 100644 index b89aea0..0000000 --- a/2021/03/14/html-tupianfangda/index.html +++ /dev/null @@ -1,483 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 鼠标移上去图片放大 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

鼠标移上去图片放大

- -
-

图片放大

-

html文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>鼠标移上去图片放大</title>
<link rel="stylesheet" href="css/style.css"/>
</head>
<body>
<div id="image"></div>
<script src="js/01.js"></script>
</body>
</html>
````

```css
/*
content: 鼠标移上去放大样式表
author: weiWei
time: 2021/03/14 13:54
class: imation
*/


body{
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
#image{
width: 300px;
height: 300px;
background-color: #000;
background-image: url(../img/dog.jpg);
background-size: 300px;
background-repeat: no-repeat;
}

#image[index]{
background-size: 900px 900px;
background-position: calc(var(--x)*100%) calc(var(--y)*100%);
}
- -
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
content: 鼠标移上去放大脚本
author: weiWei
time: 2021/03/14 13:54
class: imation
*/

//电脑版鼠标移动事件
document.querySelector('#image').addEventListener('mouseenter', enterImage);//进入图片触发mouseenter

document.querySelector('#image').addEventListener('mousemove', moveImage);//鼠标在图片游动上触发mousemove

document.querySelector('#image').addEventListener('mouseleave', leaveImage);//离开图片触发mouseenter

//手机触摸事件
document.querySelector('#image').addEventListener('touchstart', enterImage);//触摸进入图片触发

document.querySelector('#image').addEventListener('touchmove', moveImage);//在图片上触摸滑动触发

document.querySelector('#image').addEventListener('touchend', leaveImage);//离开图片触发


//进入图片的函数
function enterImage(e) {
e.target.setAttribute('index', 1);
moveImage(e);
}
/*
touch事件的event没有offsetX和offsetY
*/
//鼠标在图片上面移动
function moveImage(e) {
let rect = e.target.getBoundingClientRect();

//自己定义offsetX和offsetY
let offsetX , offsetY ;
if(['touchstart', 'touchmove', 'touchend'].includes(e.type)){
offsetX = e.touches[0].pageX - rect.left;
offsetY = e.touches[0].pageY - rect.top;
e.preventDefault()
}else{
offsetX = e.offsetX;
offsetY = e.offsetY;
}

let x = offsetX / rect.width; //获取图片在X轴的位移
let y = offsetY / rect.height; //获取图片在Y轴的位移

e.target.style.setProperty('--x', x);
e.target.style.setProperty('--y', y);
}

//鼠标在离开图片以后
function leaveImage(e) {
e.target.removeAttribute('index',1);
moveImage(e);
}

-

心得

    -
  • css变量

    -
    # 解释
    - - CSS 变量是由CSS作者定义的实体,其中包含要在整个文档中重复使用的特定值。使用自定义属性来设置变量名,并使用特定的 var() 来访问。(比如  color: var(--main-color);)。
    -# 解决问题
    - 在构建大型站点的时候,面对很多的重复使用信息,可以设定变量,重复使用
    - CSS变量为我们带来一些预处理器的便利,并且不需要额外的编译。
    -
    -并使用特定的 var() 来访问。(比如  color: var(--main-color);)。
    -
  • -
-
    -
  • 鼠标事件

    -

    mouseenter: 鼠标进入

    -

    mousemove: 鼠标移动

    -

    mouseleave: 鼠标离开

    -

    addEventListener(‘event’,’function’,useCapture)

     方法用于向指定元素添加事件句柄。
    -

    参数:

    -
      event: 必须。字符串,指定事件名。
    -  function: 指定要触发的函数名称
    -  useCapture: 可有可无,放置布尔值
    -   可能值:
    -        true - 事件句柄在捕获阶段执行
    -        false- 默认。事件句柄在冒泡阶段执行
    -

    注意: 不要使用 “on” 前缀。 例如,使用 “click” ,而不是使用 “onclick”。

    -
  • -
  • 形式参数e

    -

    这里的e是参数的名字。参数分为:
    1.形参:形式参数,相当于函数声明的局部变量,实参把自己的值赋给形参,形参就保存了这个值
    2.形参只能在函数内部使用。

    -
  • -
  • 移动端 touch事件
    Touch
    Touch对象代表一个触点,可以通过 event.touches[0]获取,每个触点包含位置,大小,形状,压力大小,和目标 element属性。

    -
  • -
- -
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- - -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2021/08/17/\345\211\215\347\253\257\345\212\240\346\262\271\347\253\231/index.html" "b/2021/08/17/\345\211\215\347\253\257\345\212\240\346\262\271\347\253\231/index.html" deleted file mode 100644 index 9d82fbf..0000000 --- "a/2021/08/17/\345\211\215\347\253\257\345\212\240\346\262\271\347\253\231/index.html" +++ /dev/null @@ -1,458 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 前端加油站(长期更新) - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

前端加油站(长期更新)

- -
-

前端加油站

4. 什么是同源策略,为什么会有这样的策略?本地开发时如何独立解决接口跨域的问题?

同源策略?

-

同源策略是一种安全机制,限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互,这是一个用于隔离潜在恶意文件的重要机制。(可扩展到域、cookie、iframe、postmessage等细节)

-

谁受约束? Cookie , Dom , 第三方插件以及 XMLHttpRequest 都受到同源策略的约束

-

Cookie:

-

只有同源的网页才能共享,但是若两个页面一级域名相同,只是二级域名不同,那么浏览器可以通过设置document.domain来共享 Cookie

-

XMLHttpRequest

-

它受到同源策略的约束,不能跨域访问资源,但是 W3C 委员会制定了 XMLHttpRequest 跨域访问标准。 通过目标返回的 HTTP 头来授权,是否允许跨域访问。实现这一点的安全基础是 JavaScript 无法控制 HTTP 头

-

为什么会有这样的策略(目的)

-

为了保证用户信息的安全,防止恶意的网站窃取数据。

-

本地开发时如何独立解决接口跨域的问题(解决办法)

-

反向代理如 “配置nginx 与 host”、“webpack-dev-server proxy”,有理、可行即可
还可以延伸考察候选人对跨域请求和cookie配置等相关概念的掌握: 1、xhr.withCredentials = true; // 携带跨域cookie fetch: credentials: “include” 2、服务器端使用CROS协议解决跨域访问数据问题时,需要设置响应消息头Access-Control-Allow-Credentials值为“true”。 同时,还需要设置响应消息头Access-Control-Allow-Origin值为域名或者通配符“*”

- -
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- - -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2021/08/20/\346\240\241\346\213\233100\351\242\230/index.html" "b/2021/08/20/\346\240\241\346\213\233100\351\242\230/index.html" deleted file mode 100644 index 5ba24e1..0000000 --- "a/2021/08/20/\346\240\241\346\213\233100\351\242\230/index.html" +++ /dev/null @@ -1,601 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

- -
-

校招100题

[TOC]

-

T.001

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

-

示例 1:

-

输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:

-

输入: s = “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:

-

输入: s = “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是 子串 的长度,”pwke” 是一个子序列,不是子串。
示例 4:

-

输入: s = “”
输出: 0

-

提示:

-

0 <= s.length <= 5 * 104
s 由英文字母、数字、符号和空格组成

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var lengthOfLongestSubstring = function(s) {

const map = new Map();
let ans = 0; //作为结果
let start = 0, end = 0;

for (end; end < s.length; end++) {
let item = map.get(s[end])
map.has(s[end]) ? start = Math.max(item, start) : ''; //用来改变起点
ans = Math.max(ans, end - start + 1)
map.set(s[end], end + 1)
}

return ans
};

- - - - -

T.004

1. 两数之和

-

难度简单11864

-

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

-

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

-

你可以按任意顺序返回答案。

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function (nums, target) {
const map = new Map()

for (let i = 0; i < nums.length; i++) {
if (map.has(target - nums[i])) {
let list = map.get(target - nums[i])
return [list, i]
}
map.set(nums[i], i)
}
};
/*
因此,我们需要一种更优秀的方法,能够快速寻找数组中是否存在目标元素。如果存在,我们需要找出它的索引。

使用哈希表,可以将寻找 target - x 的时间复杂度降低到从 O(N)O(N) 降低到 O(1)O(1)。

这样我们创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。*/

- - - - -

T.006

33. 搜索旋转排序数组

-

难度中等1522

-

整数数组 nums 按升序排列,数组中的值 互不相同

-

在传递给函数之前,nums 在预先未知的某个下标 k0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]

-

给你 旋转后 的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1

-

T.010

42. 接雨水

-

难度困难2605

-

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

-

T.011

53. 最大子序和

-

难度简单3593

-

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

-
1
2
3
4
5
6
7
8
9
10
11
12
/**
* @param {number[]} nums
* @return {number}
*/
var maxSubArray = function (nums) {
let maxsum = nums[0] , next=0
nums.forEach(item => {
next = Math.max(item, next+item)
maxsum = Math.max(next, maxsum)
})
return maxsum
};
- - - - -

T.012

88. 合并两个有序数组

-

难度简单1058

-

给你两个按 非递减顺序 排列的整数数组 nums1nums2,另有两个整数 mn ,分别表示 nums1nums2 中的元素数目。

-

请你 合并 nums2nums1 中,使合并后的数组同样按 非递减顺序 排列。

-

注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
* @param {number[]} nums1
* @param {number} m
* @param {number[]} nums2
* @param {number} n
* @return {void} Do not return anything, modify nums1 in-place instead.
*/
var merge = function(nums1, m, nums2, n) {
let sort = new Array(m +n).fill(0)
let pre = 0, next = 0
let cur
while(pre < m || next < n){
if(next === n){
cur = nums1[pre]
pre++
}else if(pre == m){
cur = nums2[next]
next++
}else if(nums1[pre] <= nums2[next]){
cur = nums1[pre]
pre++
}else{
cur = nums2[next]
next++
}

sort[pre + next - 1] = cur
}
for(let i in sort){
nums1[i] = sort[i]
}
};
-
-

08.24

-
-

T.016

121. 买卖股票的最佳时机

-

难度简单1799

-

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

-

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

-

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//暴力解法(不推荐)
var maxProfit = function(prices) {
let maxFit=0,cmax = 0
for(let i = 0; i < prices.length; i++){

for(let j = i; j < prices.length; j++){
cmax = Math.max(cmax,prices[j] - prices[i])
}
maxFit = Math.max(cmax,maxFit)


}
if(maxFit > 0){
return maxFit
}else{
return 0
}

};


- - - - -
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//推荐
/**
* @param {number[]} prices
* @return {number}
*/
var maxProfit = function(prices) {
let maxFit=0
let minPri = Infinity //不知道最小值多大,先定义无限大
for(let i = 0; i < prices.length; i++){
// 寻找最小值
if(prices[i] < minPri){
minPri = prices[i]
// 当前的结果大于历史的最高值,就改变当前的最大值
}else if(prices[i] - minPri > maxFit){
maxFit = prices[i] - minPri
}

}
return maxFit
};
- - -

T.017

141. 环形链表

-

难度简单1177

-

给定一个链表,判断链表中是否有环。

-

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos-1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。

-

如果链表中存在环,则返回 true 。 否则,返回 false

-

T.018

146. LRU 缓存机制

-

难度中等1572

-

运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制

-

实现 LRUCache 类:

-
    -
  • LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存
  • -
  • int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1
  • -
  • void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。
  • -
-

进阶:你是否可以在 O(1) 时间复杂度内完成这两种操作?

-

T.019

160. 相交链表

-

难度简单1324

-

给你两个单链表的头节点 headAheadB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null

-

图示两个链表在节点 c1 开始相交

-

img

-

题目数据 保证 整个链式结构中不存在环。

-

注意,函数返回结果后,链表必须 保持其原始结构

-

T.020

199. 二叉树的右视图

-

难度中等524

-

给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

-

T.021

200. 岛屿数量

-

难度中等1295

-

给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。

-

岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。

-

此外,你可以假设该网格的四条边均被水包围。

-

T.034

69. x 的平方根

-

难度简单757

-

实现 int sqrt(int x) 函数。

-

计算并返回 x 的平方根,其中 x 是非负整数。

-

由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// X的平方根
// 二分法
/**
* @param {number} x
* @return {number}
*/
var mySqrt = function(x) {
// 定义上界, 下界,
let start = 0, end = x,res;
while(start <= end){
let mid = ~~(start + (end-start) / 2)
if(mid *mid <= x){
res = mid
start = mid +1
}else{
end = mid -1
}
}
return res
};
- - - - -

T.035

70. 爬楼梯

-

难度简单1838

-

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

-

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

-

注意:给定 n 是一个正整数。

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 爬楼梯

/**
* @param {number} n
* @return {number}
*/
var climbStairs = function(n) {
let p1 =0 , p2 = 0 , res =1;
for(let i = 0 ; i < n ; i++){
p1 = p2
p2 = res
res = p1 + p2
}
return res
};

climbStairs(6)
- - - - - - -

T.036

76. 最小覆盖子串

-

难度困难1317

-

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ""

-

注意:

-
    -
  • 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。
  • -
  • 如果 s 中存在这样的子串,我们保证它是唯一的答案。
  • -
-

T.037

92. 反转链表 II

-

难度中等1005

-

给你单链表的头指针 head 和两个整数 leftright ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表

-

T.038

94. 二叉树的中序遍历

-

难度简单1081

-

给定一个二叉树的根节点 root ,返回它的 中序 遍历。

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {number[]}
*/
var inorderTraversal = function(root) {
let res = []
let inSort = (root) =>{
if(!root){
return;
}
inSort(root.left)
res.push(root.val)
inSort(root.right)
}

inSort(root)

return res

};
- - - - -

T.039

98. 验证二叉搜索树

-

难度中等1194

-

给定一个二叉树,判断其是否是一个有效的二叉搜索树。

-

假设一个二叉搜索树具有如下特征:

-
    -
  • 节点的左子树只包含小于当前节点的数。
  • -
  • 节点的右子树只包含大于当前节点的数。
  • -
  • 所有左子树和右子树自身必须也是二叉搜索树。
  • -
-

T.040

101. 对称二叉树

-

难度简单1515

-

给定一个二叉树,检查它是否是镜像对称的。

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {boolean}
*/
var isSymmetric = function (root) {
if (!root) return true;

let isMirror = (l, r) => {
// 空子树也为镜像
if (!l && !r) {
return true
}
if (l && r && l.val == r.val && isMirror(l.left, r.right) && isMirror(l.right, r.left)) {
return true
}
return false

}

return isMirror(root.left, root.right)
};
- - - - - -

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

-
1
2
3
4
5
    1
/ \
2 2
/ \ / \
3 4 4 3
-

T.041

112. 路径总和

-

难度简单653

-

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum

-

叶子节点 是指没有子节点的节点。

-

T.042

113. 路径总和 II

-

难度中等564

-

给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。

-

叶子节点 是指没有子节点的节点。

- -
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- - -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/2021/08/23/termux/index.html b/2021/08/23/termux/index.html deleted file mode 100644 index ca7295b..0000000 --- a/2021/08/23/termux/index.html +++ /dev/null @@ -1,446 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

- -
-

安装openssh在电脑上运行

1
pkg install openssh
-

修改密码代码:

-
1
passwd
- - -

更换termux为国内源

1
2
3
4
5
6
7
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list

sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list

sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list

pkg update
- -
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- - -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2021/08/30/js\345\206\215\347\216\260/index.html" "b/2021/08/30/js\345\206\215\347\216\260/index.html" deleted file mode 100644 index 4c1c8cc..0000000 --- "a/2021/08/30/js\345\206\215\347\216\260/index.html" +++ /dev/null @@ -1,533 +0,0 @@ - - - - - - - - - - - - - - - - - - - - js再看 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

js再看

- -
-

js与Unicode字符集

1
2
3
4
5
6
7
8
9
10
11
const CARD_PONITS = ['A','1','2','3','4','5','6','7','8','9','10','J','P','Q'];
const CARD_SUITS = ['♥','♣','♠','♦'];

function getRandomItem(list){
return list[Math.floor(Math.random(list.length))]
}

function getRandomCard(){
const point = getRandomItem(CARD_POINTS);
const suit = getRandomItem(CARD_SUITS);
}
- - -

不允许换行

    -
  • return和返回值之间
  • -
  • break/continue和label之间
  • -
  • 变量和++ , -- 后缀运算符之间
  • -
  • throw 和异常对象之间
  • -
  • 箭头函数的参数列表和箭头 => 之间
  • -
  • yield和迭代值之间
  • -
  • async 和 异步函数声明, 函数表达式, 方法名
  • -
-

var变量提升

1
2
3
4
5
6
7
8
9
10
11
12
console.log( a === undefined) //true
var a = 10;

function foo(){
console.log(a,i); //undefined , undefined

var a = 20;
for(var i = 0; i < a ; i++){

}
console.log(a,i); //20 ,20
}
- - -

let 暂存死区(DTZ)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
let x = 10;
console.log('x is '+x); //x is 10
}

console.log(typeof a); //error

let x = 10
function foo(){
console.log(x); // undefined
var x = 20;
return x*x
}

console.log(foo()); //400
- - -

隐式类型转换

    -
  • 字符串与数值相加时, 数值被转换为字符串
  • -
  • 字符串参与飞假发数学运算时, 字符串被转换为数值
  • -
  • 布尔值与数值进行运算时, true视为1 , false 视为0
  • -
  • 布尔值与字符串进行相加时, 布尔值视为字符串
  • -
-
1
2
3
4
5
6
7
8
9
10
11
const a= 10 , b= 'abc,c= 1;
console.log(a + b + c); //10abc1

const a = 123 , b = '456' , c = 1
console.log(a + b - c); //123455

const a = true , b = false
console.log(a + 1, b * 3); //2 0

const a = true , b = false
console.log(a + '', b + 'foobar')
- - -

== 与 ====

    -
  • 使用 == 操作符比较时, 会触发隐式类型转换
  • -
  • 值用 === 操作符比较时, 不会触发隐式类型转换
  • -
  • 一般原则出来与null比较外,尽量使用 ===
  • -
-

显示类型转换

通过调用方法Number , String, Boolean

-

NULL和 Undefined

Null和Undefined 是javascript 中的两种原始类型

-

它们分别只有一个值

-
    -
  • Null 的值是null
  • -
  • Undefined 的值是undefined
  • -
  • 在非严格比较下, null == undefined
  • -
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
let foo //变量标识符被声明而没有初始化
console.log(foo)

function bar(a,b){
return [a,b]
}

// bar函数的第二个形参没有传入实参

console.log(bar(1)) // [1, undefined]

let sum = 0;
function addSum(sum){
sum += sum;
}

// addSum 没有return
console.log(addSum(10)); // undefined

// 访问p对象不存在的z属性
let p = {x:1, y:2}
console.log(p.z); //undefined

let foo = null;
console.log(foo) // null

- - -

私有属性

新的语言标准private field 有些不理想 , 所以也可以采用Symbol来定义私有属性

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const size = Symbol('size');

class Collection{
constructor(){
this[size] = 0
}

add(item){
this[this[size]] = item;
this[size]++;
}

static sizeOf(instance){
return instance[size];
}
- - -

内置Symbol

ES6内置了一些有用的Symbol, 可以用来控制对象的一些内部行为

-
    -
  • Symbol.iterator
  • -
  • Symbol.toPrimitive
  • -
  • Symbol.toStringTag
  • -
-

小结

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Path {
constructor(){
this._points = []
}

add(..points){
this._ponits.push(..points);
}

*[Symbol.iterator](){
yield * this._points;
}
gwt length(){
return this._points.length;
}
}

const path = new Path();
path.add([1,1],[1,2],[2,3]);
console.log(path.length);

for(let point of path){
console.log(point); //[1,2],[1,2],[2,3]
}
- - -

执行上下文

函数有执行上下文,运行时会产生‘闭包

-
    -
  • 闭包是运行有函数调用而成
  • -
  • 通过闭包可访问执行上下文中的数据
  • -
  • 如果产生闭包的引用被销毁, 闭包被销毁
  • -
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function sayHelloTo(person){
return function(){
console.log(`Hello World`);
}
}

let greeting1 = sayHelloTo("Tom");
let greeting2 = sayHelloTo("Jerry");

greeting1(); // Hello Tom
greeting2(); // Hello Jerry

greeting1 = null;
geerting2 = null;
- - -

this上下文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const person = {
firstName: '三',
lastName:'张',
getFullName:function(){
return this.lastName+' '+ this.firstName;
}
}

console.log(person.firstName);// 三
console.log(person.lastName); //张
console.log(person.getFullName()) //张三

person.sayHelloTo = function(){
console.log(`Hello ${this.lastName}`);
}

person.sayHelloTo(); //Hello 张
setTimeout(person.sayHelloTo,100); //Hello undefined
- - -

构造

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 字面量
{
let myObj = {
name:'ak',
birday:'12-29'
}
}

// 构造器(不推荐)

{
let myObj = new Object();
myObj.name = 'ak'
myObj.birday = '12-29'
}

// 原型(高级用法)

{
let myObj = Object.create({
name:'ak',
birday:'12-29'
})
}
- - -

构造器与类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//函数作为构造器
{
function Vetor2d(x,y){
this.x = x;
this.y = y;
}

const v = new Vector2d(3,4)
console.log(v)
}

//定义class

{
class Vector{
constructor(x,y){
this.x = x ;
this.y = y
}
}
const v = new Vector(3,4)
console.log(v)
}

- - - - -

原则

版本一

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const btn= document.getElementById('modeBtn')

btn.addEventListener('click',(e) => {
const body = document.body;
if(e.target.innerHtml ==='白天'){
body.style.backgroundColor = 'black';
body.style.color = 'white'
e.target.innerHtml = '黑夜'
}else{
body.style.backgroundColor = 'black';
body.style.color = 'white';
e.target.innerHtml = '白天'
}
});

- - -

版本二

1
2
3
4
5
6
7
8
9
const btn = document.getElementById('modeBtn');
btn.addEventListener('click',(e) => {
const body = document.body;
if(body.className != 'night'){
body.className = 'night'
}else{
body.className = '';
}
})
- - -

版本一和版本二区别:

-

一 代码的可读性不强, 二 代码可读性强. 各司其职, js用来逻辑的切换 , css用来做样式

-

组件

组件是web上抽出来的一个个包含模板HTML JS CSS 的单元

- -
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- - -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2021/09/01/\347\273\203\346\211\213\351\241\271\347\233\256\350\256\260\345\275\225/index.html" "b/2021/09/01/\347\273\203\346\211\213\351\241\271\347\233\256\350\256\260\345\275\225/index.html" deleted file mode 100644 index 12a3577..0000000 --- "a/2021/09/01/\347\273\203\346\211\213\351\241\271\347\233\256\350\256\260\345\275\225/index.html" +++ /dev/null @@ -1,501 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

- -
-

练手项目记录

1. React实现计算器

-

信息

-
-
1
2
3
Time: 2021 09.01 - 09.02
name: 计算器
技术:
-
    -
  1. 练习到state, props 等
  2. -
-

缺陷: 利用了eval()这个方法,这个方法是有害的

-

2. 随机点名

-

信息

-
-
1
2
3
Time: 2021 09.03 - 09.04
name: 随机点名
技术:
- - -
    -
  1. react提示ach child in a list should have a unique “key” prop
  2. -
-

img

-

解决方法是在key={index} ,分配一个unique-key ,这个需要注意!

-

3. 轮播图

-

信息

-
-
1
2
3
Time: 2021 09.04 - 
name: 轮播图
技术:
-
-

需求

-
-
    -
  1. 实现左右切换
  2. -
  3. 点击按钮切换
  4. -
-
-

问题

-
-
    -
  1. react 中img 标签加载图片的问题?
  2. -
  3. 图片居中方法
  4. -
  5. 使用阴影
  6. -
-

4. admin后台管理

-

信息

-
-
1
2
3
Time: 2021 09.06 - 09.13 
name: 后台管理
技术:
- - -
-

问题

-
-
    -
  1. react-router-dom 中哈希路由
  2. -
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 先引用哈希路由

import {HashRouter} from 'react-router-dom'


//在index.js中(不推荐)

<Router>
<Switch>
<Router path="/login" component={Login} />
<Router path="/admin/products" component={List} />
</Switch>
</Router>

//配置路由文件,在src中配置routes文件
-
    -
  1. 路由如何配置
  2. -
-
    -
  1. 左边导航栏如何动态生成
  2. -
-
    -
  1. antd动态引入icon
  2. -
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
export const getIcon = string => {
return {
AuditOutlined:<AuditOutlined/>,
AppstoreAddOutlined:<AppstoreAddOutlined/>,
ContactsOutlined:<ContactsOutlined />,
ControlOutlined:<ControlOutlined/>,
FormOutlined:<FormOutlined/>,
FileTextOutlined:<FileTextOutlined/>,
HighlightOutlined:<HighlightOutlined/>,
ProfileOutlined:<ProfileOutlined/>,
TeamOutlined:<TeamOutlined/>,
TagsOutlined:<TeamOutlined/>,
CopyOutlined:<CopyOutlined/>,
CheckCircleOutlined:<CheckCircleOutlined/>,
ExclamationCircleOutlined:<ExclamationCircleOutlined/>,
BlockOutlined:<BlockOutlined/>
}[string]}

<MenuItem key={item.key} icon={getIcon(item.icon)}>{item.name}</MenuItem>
- -
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- - -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2021/09/02/react\347\224\237\345\221\275\345\221\250\346\234\237/index.html" "b/2021/09/02/react\347\224\237\345\221\275\345\221\250\346\234\237/index.html" deleted file mode 100644 index dbd5bd6..0000000 --- "a/2021/09/02/react\347\224\237\345\221\275\345\221\250\346\234\237/index.html" +++ /dev/null @@ -1,474 +0,0 @@ - - - - - - - - - - - - - - - - - - - - React的生命周期 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

React的生命周期

- -
-

React的生命周期从创建到卸载经历以下三阶段:

-
    -
  • 挂载阶段 - 组件实例被创建和插入Dom树的过程
  • -
  • 更新阶段 - 组件被重新渲染过程
  • -
  • 卸载阶段 - 组件从Dom树中被删除的过程
  • -
-

17 版本前生命周期

-

挂载阶段

-
-

初始化操作, 如下几个钩子函数

-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
static defaultProps
-- 设置props数据类型

static proTypes
-- props数据类型检查

constructor(props)
-- 构造函数

componentWillMount()
-- 组件前挂载前函数

render()
-- 组件更新钩子

componentDidMount()
-- 组件挂载成功钩子, 该过程组件已经成功挂载到真实Dom

注意: static 静态方法不依赖构造函数, 只跟类有关, 可优先于构造函数执行
- - -
-

更新阶段

-
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
componentWillReceiveProps(newProps)
-- 父组件更新props钩子

shouldComponentUpdate()
-- 组件是否更新钩子

componentWillUpdate()
-- 组件更新前钩子

render()
-- 组件渲染钩子

componentDidUpdate()
-- 组件更新成功钩子
- - -
-

卸载阶段

-
-
1
2
3
这个阶段主要从Dom树中删除组件操作, 它的钩子函数:
componentWillUnmount()
-- 组件将要被卸载的时候调用
- - - - - -
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- - -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2021/09/03/C++\346\227\245\350\256\260/index.html" "b/2021/09/03/C++\346\227\245\350\256\260/index.html" deleted file mode 100644 index 52355d3..0000000 --- "a/2021/09/03/C++\346\227\245\350\256\260/index.html" +++ /dev/null @@ -1,518 +0,0 @@ - - - - - - - - - - - - - - - - - - - - C++日记 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

C++日记

- -
-

第一阶段 - - C++基础语法入门

day 1

输出Hello World

1
2
3
4
5
6
7
8
9
#include <iostream> 

using namespace std; //表示使用std的命名的空间

int main()
{
cout << "你好世界"; //会在屏幕上显示消息 "Hello World"。
return 0; //终止程序
}
- - -

Day 2

常量

C++ 定义常量两种方式

-
    -
  1. #define 宏常量 #define 常量名 常量值
  2. -
  3. const 修饰的变量 const 数据类型 常量名 常量值
  4. -
-

sizeof关键字

1
2
3
1. 整型:short ,int ,long ,long long
2. 可以利用sizeof求出数据类型占用的内存
3. 语法: sizeof(数据类型/ 变量)
- - -

实型

    -
  1. 单精度 float
  2. -
  3. 双精度 double
  4. -
- - - - - - - - - - - - - - - - - - -
数据类型占用空间有效数字范围
float4字节7位有效数字
double8字节15-16位有效数字
-

字符型

作用: 字符型变量用于显示单个字符

-

语法: char ch = ‘a’;

-

注意

-
    -
  1. 在显示字符型变量时, 用单引号符号括起来 , 不能用双引号
  2. -
  3. 单引号只能由一个字符 , 不可以是字符串
  4. -
-

C和C++ 中字符型变量只占用1个字符

-

强制转换类型前面加(int) – 转为整数型

-

转义字符

- - - - - - - - - - - - - - - - - - - - - - -
转义字符含义ASCII码值
\a换行 , 将当前位置移到下一行头010
\\表示反斜杠092
\t水平制表符(跳到下一个TAB位置)009
-

字符串型

C语言:

-

char 变量名[] = "字符串值"

-

C++风格:

-

string 变量名 = "字符串值"

-

第二阶段 - - 核心编程

第三阶段 - - C++ 提高编程

-
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- - -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2021/09/04/javascript\346\225\260\346\215\256\347\273\223\346\236\204/index.html" "b/2021/09/04/javascript\346\225\260\346\215\256\347\273\223\346\236\204/index.html" deleted file mode 100644 index d77d994..0000000 --- "a/2021/09/04/javascript\346\225\260\346\215\256\347\273\223\346\236\204/index.html" +++ /dev/null @@ -1,455 +0,0 @@ - - - - - - - - - - - - - - - - - - - - js数据结构 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

js数据结构

- -
-

    -
  • push(element); 添加一个(或几个)新元素
  • -
  • pop(); 移除栈顶的元素, 同时返回被移除的元素
  • -
  • peek(); 返回栈顶的元素, 不对栈做任何修改(这个方法不会移除栈顶的元素,仅仅返回它)
  • -
  • isEmpty(); 如果栈里没有任何元素就返回true, 否则返回false
  • -
  • clear(); 移除栈里的所有元素
  • -
  • size(); 返回栈里的元素个数,
  • -
- -
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
- - -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/2021/09/09/C++\346\225\260\346\215\256\347\273\223\346\236\204/index.html" "b/2021/09/09/C++\346\225\260\346\215\256\347\273\223\346\236\204/index.html" deleted file mode 100644 index 2ed9d9b..0000000 --- "a/2021/09/09/C++\346\225\260\346\215\256\347\273\223\346\236\204/index.html" +++ /dev/null @@ -1,447 +0,0 @@ - - - - - - - - - - - - - - - - - - - - C++数据结构 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - -
-
-
-
-
-
-
- -

C++数据结构

- -
-

线性表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//顺序表静态分配定义
#define Maxsize 100 //最大空间

typedef struct{
ElemType data[Maxsize]; //一维数组
int length; //顺序表的长度
}SqList


// ElemType 元素类型, 需要什么类型就写什么类型
// 用typedef将结构体等价于类型名SqlList


//顺序表动态分配的定义
#define MaxSize 100 // 最大空间
typedef struct{
ElemType * elem;
int length; // 顺序表的长度
}
- - -

顺序表基本操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//1. 初始化
bool InitList(SqlList, &L) //构造一个空的顺序表L
{
//前面加&表示引用参数, 函数内部的改变跳出函数后仍然有效
//如果不加&, 函数内部的改变在跳出函数便会无效
L.elem = new int[MaxSize]; //为顺序表动态分配MaxSize个空间
if(!L.elem) retuurn false; //分配空间失败
L.length = 0; //顺序表长度为0
return 0;
}

//2. 创建
bool CreateList(Sqlist, &L) //创建一个顺序表L
{
//前面加&表示引用参数, 函数内部的改变跳出函数后仍然有效
//如果不加&, 函数内部的改变在跳出函数便会无效

int x , i = 0;
while(x != 1) //输入-1时, 结束也可以设置其他的结束条件
{
if(L.length == Maxsize)
{
cout << "顺序表已满"
return false;
}
cin >>x;//输入一个数据元素
L.elem[i++] = x ; //将数据存入第i个位置, 然后i++
L.length++; //顺序表长度加1
}
return true;
}

//3.取值

bool GetElem(SqList L ,int i , int &e)
{
if(i < 1 || i > L.length) return false;
//判断i值是否合理,若不合理, 则返回false
e = L.elem[i - i]; //第i-1个单元存储着第i个数据
return true;
}

//4.查找

int LocateElem(SqList L, int e)
{
for(i = 0;i < SqList.length;i++)
if(L.elem[i] == e) return i + 1; //下标为i 实际为第i+1个元素
return -1; //如果没找到, 则返回-1
}

//5. 插入
bool ListInsert_Sq(SqList &L,int i , int e)
{
if(i < 1 || i > L.length) return false; //i值不合法
if(L.length == Maxsize) return false; //存储空间已满
for(int j = L.lenght-1; j >= i -1; j--)
L.elem[j+1] = L.elem[j]; //从最后一个元素开始后移, 直到第i个元素后移
L.elem[i-1] = e; //将新元素e放入第i个位置
L.length++; //表长加1
return true;
}

//6. 删除
bool ListDelete_Sq(SqList &L,int i , int e)
{
if(i < 1 || i > L.length) return false; //i值不合法
e = L.elem[i-1]; //将欲删除的元素保存在e中
for(int j=i;j <= L.length-1; j++)
L.elem[j-1] = L.elem[j]; //被删除元素之后的元素前移
L.length--; //表长度减一
return true;
}
-

-
1
顺序表的操作是不是和Javascript中数据操作差不多
- -
-
-
- - -

- - 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处! - -

- - -
-
- - -
- -
- -
- - -
-
-
-
- -
-
-

 目录

-
-
- -
- -
-
- - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/404.html b/404.html index c977820..f87cab1 100644 --- a/404.html +++ b/404.html @@ -1,317 +1,7 @@ - - - - - - - - - - - - - - - - - - - - 页面走丢啦~ - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - - - - - - - - - - - - - - - - -
-
- 爱做梦的人,努力奔跑中... -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 404 - 满河星 +

Not Found

+对不起,这个链接坏了。可能有些东西被删除,或者被移动了。无论如何,这里没什么可看的。 +

传送回首页
\ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..7266543 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +leewei0923.com \ No newline at end of file diff --git a/_astro/ActionAside.DYXua3J_.js b/_astro/ActionAside.DYXua3J_.js new file mode 100644 index 0000000..5262e6f --- /dev/null +++ b/_astro/ActionAside.DYXua3J_.js @@ -0,0 +1,9 @@ +import{j as g}from"./jsx-runtime.CPK7-dcL.js";import{s as v,a as D}from"./config.tnfO5ZdO.js";import{R as y,r as I}from"./index.BufDd4G-.js";import{m as T,a as U}from"./metaInfo.Cz7K8-yW.js";import{c as j}from"./clsx.B-dksMZM.js";import{B as k}from"./react-toastify.esm.B4Q9Ck-v.js";import{m as $}from"./context.CJffD2Ld.js";import{a as Q,u as x}from"./react.DwV23UbX.js";import{m as S}from"./motion.BDB0jV8x.js";import"./_commonjsHelpers.Cpj98o6Y.js";import"./SVGVisualElement.De6LOhF_.js";var H=Object.defineProperty,P=Object.getOwnPropertySymbols,L=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,b=(c,r,a)=>r in c?H(c,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):c[r]=a,Y=(c,r)=>{for(var a in r||(r={}))L.call(r,a)&&b(c,a,r[a]);if(P)for(var a of P(r))O.call(r,a)&&b(c,a,r[a]);return c},G=(c,r)=>{var a={};for(var i in c)L.call(c,i)&&r.indexOf(i)<0&&(a[i]=c[i]);if(c!=null&&P)for(var i of P(c))r.indexOf(i)<0&&O.call(c,i)&&(a[i]=c[i]);return a};/** + * @license QR Code generator library (TypeScript) + * Copyright (c) Project Nayuki. + * SPDX-License-Identifier: MIT + */var R;(c=>{const r=class{constructor(t,e,o,n){if(this.version=t,this.errorCorrectionLevel=e,this.modules=[],this.isFunction=[],tr.MAX_VERSION)throw new RangeError("Version value out of range");if(n<-1||n>7)throw new RangeError("Mask value out of range");this.size=t*4+17;let s=[];for(let l=0;l7)throw new RangeError("Invalid value");let l,p;for(l=o;;l++){const E=r.getNumDataCodewords(l,e)*8,w=C.getTotalBits(t,l);if(w<=E){p=w;break}if(l>=n)throw new RangeError("Data too long")}for(const E of[r.Ecc.MEDIUM,r.Ecc.QUARTILE,r.Ecc.HIGH])h&&p<=r.getNumDataCodewords(l,E)*8&&(e=E);let f=[];for(const E of t){i(E.mode.modeBits,4,f),i(E.numChars,E.mode.numCharCountBits(l),f);for(const w of E.getData())f.push(w)}u(f.length==p);const A=r.getNumDataCodewords(l,e)*8;u(f.length<=A),i(0,Math.min(4,A-f.length),f),i(0,(8-f.length%8)%8,f),u(f.length%8==0);for(let E=236;f.lengthM[w>>>3]|=E<<7-(w&7)),new r(l,e,M,s)}getModule(t,e){return 0<=t&&t>>9)*1335;const n=(e<<10|o)^21522;u(n>>>15==0);for(let s=0;s<=5;s++)this.setFunctionModule(8,s,m(n,s));this.setFunctionModule(8,7,m(n,6)),this.setFunctionModule(8,8,m(n,7)),this.setFunctionModule(7,8,m(n,8));for(let s=9;s<15;s++)this.setFunctionModule(14-s,8,m(n,s));for(let s=0;s<8;s++)this.setFunctionModule(this.size-1-s,8,m(n,s));for(let s=8;s<15;s++)this.setFunctionModule(8,this.size-15+s,m(n,s));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let t=this.version;for(let o=0;o<12;o++)t=t<<1^(t>>>11)*7973;const e=this.version<<12|t;u(e>>>18==0);for(let o=0;o<18;o++){const n=m(e,o),s=this.size-11+o%3,h=Math.floor(o/3);this.setFunctionModule(s,h,n),this.setFunctionModule(h,s,n)}}drawFinderPattern(t,e){for(let o=-4;o<=4;o++)for(let n=-4;n<=4;n++){const s=Math.max(Math.abs(n),Math.abs(o)),h=t+n,l=e+o;0<=h&&h{(E!=p-s||N>=l)&&M.push(w[E])});return u(M.length==h),M}drawCodewords(t){if(t.length!=Math.floor(r.getNumRawDataModules(this.version)/8))throw new RangeError("Invalid argument");let e=0;for(let o=this.size-1;o>=1;o-=2){o==6&&(o=5);for(let n=0;n>>3],7-(e&7)),e++)}}u(e==t.length*8)}applyMask(t){if(t<0||t>7)throw new RangeError("Mask value out of range");for(let e=0;e5&&t++):(this.finderPenaltyAddHistory(l,p),h||(t+=this.finderPenaltyCountPatterns(p)*r.PENALTY_N3),h=this.modules[s][f],l=1);t+=this.finderPenaltyTerminateAndCount(h,l,p)*r.PENALTY_N3}for(let s=0;s5&&t++):(this.finderPenaltyAddHistory(l,p),h||(t+=this.finderPenaltyCountPatterns(p)*r.PENALTY_N3),h=this.modules[f][s],l=1);t+=this.finderPenaltyTerminateAndCount(h,l,p)*r.PENALTY_N3}for(let s=0;sh+(l?1:0),e);const o=this.size*this.size,n=Math.ceil(Math.abs(e*20-o*10)/o)-1;return u(0<=n&&n<=9),t+=n*r.PENALTY_N4,u(0<=t&&t<=2568888),t}getAlignmentPatternPositions(){if(this.version==1)return[];{const t=Math.floor(this.version/7)+2,e=this.version==32?26:Math.ceil((this.version*4+4)/(t*2-2))*2;let o=[6];for(let n=this.size-7;o.lengthr.MAX_VERSION)throw new RangeError("Version number out of range");let e=(16*t+128)*t+64;if(t>=2){const o=Math.floor(t/7)+2;e-=(25*o-10)*o-55,t>=7&&(e-=36)}return u(208<=e&&e<=29648),e}static getNumDataCodewords(t,e){return Math.floor(r.getNumRawDataModules(t)/8)-r.ECC_CODEWORDS_PER_BLOCK[e.ordinal][t]*r.NUM_ERROR_CORRECTION_BLOCKS[e.ordinal][t]}static reedSolomonComputeDivisor(t){if(t<1||t>255)throw new RangeError("Degree out of range");let e=[];for(let n=0;n0);for(const n of t){const s=n^o.shift();o.push(0),e.forEach((h,l)=>o[l]^=r.reedSolomonMultiply(h,s))}return o}static reedSolomonMultiply(t,e){if(t>>>8||e>>>8)throw new RangeError("Byte out of range");let o=0;for(let n=7;n>=0;n--)o=o<<1^(o>>>7)*285,o^=(e>>>n&1)*t;return u(o>>>8==0),o}finderPenaltyCountPatterns(t){const e=t[1];u(e<=this.size*3);const o=e>0&&t[2]==e&&t[3]==e*3&&t[4]==e&&t[5]==e;return(o&&t[0]>=e*4&&t[6]>=e?1:0)+(o&&t[6]>=e*4&&t[0]>=e?1:0)}finderPenaltyTerminateAndCount(t,e,o){return t&&(this.finderPenaltyAddHistory(e,o),e=0),e+=this.size,this.finderPenaltyAddHistory(e,o),this.finderPenaltyCountPatterns(o)}finderPenaltyAddHistory(t,e){e[0]==0&&(t+=this.size),e.pop(),e.unshift(t)}};let a=r;a.MIN_VERSION=1,a.MAX_VERSION=40,a.PENALTY_N1=3,a.PENALTY_N2=3,a.PENALTY_N3=40,a.PENALTY_N4=10,a.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],a.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],c.QrCode=a;function i(t,e,o){if(e<0||e>31||t>>>e)throw new RangeError("Value out of range");for(let n=e-1;n>=0;n--)o.push(t>>>n&1)}function m(t,e){return(t>>>e&1)!=0}function u(t){if(!t)throw new Error("Assertion error")}const d=class{constructor(t,e,o){if(this.mode=t,this.numChars=e,this.bitData=o,e<0)throw new RangeError("Invalid argument");this.bitData=o.slice()}static makeBytes(t){let e=[];for(const o of t)i(o,8,e);return new d(d.Mode.BYTE,t.length,e)}static makeNumeric(t){if(!d.isNumeric(t))throw new RangeError("String contains non-numeric characters");let e=[];for(let o=0;o=1<{(r=>{const a=class{constructor(m,u){this.ordinal=m,this.formatBits=u}};let i=a;i.LOW=new a(0,1),i.MEDIUM=new a(1,0),i.QUARTILE=new a(2,3),i.HIGH=new a(3,2),r.Ecc=i})(c.QrCode||(c.QrCode={}))})(R||(R={}));(c=>{(r=>{const a=class{constructor(m,u){this.modeBits=m,this.numBitsCharCount=u}numCharCountBits(m){return this.numBitsCharCount[Math.floor((m+7)/17)]}};let i=a;i.NUMERIC=new a(1,[10,12,14]),i.ALPHANUMERIC=new a(2,[9,11,13]),i.BYTE=new a(4,[8,16,16]),i.KANJI=new a(8,[8,10,12]),i.ECI=new a(7,[0,0,0]),r.Mode=i})(c.QrSegment||(c.QrSegment={}))})(R||(R={}));var _=R;/** + * @license qrcode.react + * Copyright (c) Paul O'Shannessy + * SPDX-License-Identifier: ISC + */var X={L:_.QrCode.Ecc.LOW,M:_.QrCode.Ecc.MEDIUM,Q:_.QrCode.Ecc.QUARTILE,H:_.QrCode.Ecc.HIGH},V=128,K="L",W="#FFFFFF",Z="#000000",J=!1,B=4,q=.1;function tt(c,r=0){const a=[];return c.forEach(function(i,m){let u=null;i.forEach(function(d,C){if(!d&&u!==null){a.push(`M${u+r} ${m+r}h${C-u}v1H${u+r}z`),u=null;return}if(C===i.length-1){if(!d)return;u===null?a.push(`M${C+r},${m+r} h1v1H${C+r}z`):a.push(`M${u+r},${m+r} h${C+1-u}v1H${u+r}z`);return}d&&u===null&&(u=C)})}),a.join("")}function et(c,r){return c.slice().map((a,i)=>i=r.y+r.h?a:a.map((m,u)=>u=r.x+r.w?m:!1))}function ot(c,r,a,i){if(i==null)return null;const m=a?B:0,u=c.length+m*2,d=Math.floor(r*q),C=u/r,t=(i.width||d)*C,e=(i.height||d)*C,o=i.x==null?c.length/2-t/2:i.x*C,n=i.y==null?c.length/2-e/2:i.y*C;let s=null;if(i.excavate){let h=Math.floor(o),l=Math.floor(n),p=Math.ceil(t+o-h),f=Math.ceil(e+n-l);s={x:h,y:l,w:p,h:f}}return{x:o,y:n,h:e,w:t,excavation:s}}(function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0})();function nt(c){const r=c,{value:a,size:i=V,level:m=K,bgColor:u=W,fgColor:d=Z,includeMargin:C=J,imageSettings:t}=r,e=G(r,["value","size","level","bgColor","fgColor","includeMargin","imageSettings"]);let o=_.QrCode.encodeText(a,X[m]).getModules();const n=C?B:0,s=o.length+n*2,h=ot(o,i,C,t);let l=null;t!=null&&h!=null&&(h.excavation!=null&&(o=et(o,h.excavation)),l=y.createElement("image",{xlinkHref:t.src,height:h.h,width:h.w,x:h.x+n,y:h.y+n,preserveAspectRatio:"none"}));const p=tt(o,n);return y.createElement("svg",Y({height:i,width:i,viewBox:`0 0 ${s} ${s}`},e),y.createElement("path",{fill:u,d:`M0,0 h${s}v${s}H0z`,shapeRendering:"crispEdges"}),y.createElement("path",{fill:d,d:p,shapeRendering:"crispEdges"}),l)}function F(){const c=I.useId(),r=I.useRef(0),a=Q($);return{present(i){const m=`${c}-${r.current++}`,u={...i,id:i.id??m};return a(d=>[...d,u]),()=>{a(d=>d.filter(C=>C.id!==u.id))}}}}const rt=[{name:"Twitter",icon:"icon-x",onClick:c=>{window.open(`https://twitter.com/intent/tweet?url=${encodeURIComponent(c.url)}&text=${encodeURIComponent(c.text)}&via=${encodeURIComponent(v.title)}`)}},{name:"复制链接",icon:"icon-link",onClick:c=>{navigator.clipboard.writeText(c.url),k.success("已复制到剪贴板")}}];function Mt(){return g.jsxs("div",{className:"absolute left-0 bottom-0 flex flex-col gap-4",style:{transform:"translateY(calc(100% + 24px))"},children:[g.jsx(st,{}),g.jsx(at,{})]})}function st(){const c=x(T),r=x(U),{present:a}=F(),i=new URL(c,v.url).href,m=`嘿,我发现了一片宝藏文章「${r}」哩,快来看看吧!`,u=()=>{a({content:g.jsx(it,{url:i,text:m})})};return g.jsx("button",{type:"button","aria-label":"Share this post",className:"size-6 text-xl leading-none hover:text-accent",onClick:()=>u(),children:g.jsx("i",{className:"iconfont icon-share"})})}function it({url:c,text:r}){return g.jsxs(S.div,{className:"bg-primary rounded-lg p-2 min-w-[420px] border border-primary flex flex-col",initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.8},children:[g.jsx("h2",{className:"px-3 py-1 font-bold",children:"分享此内容"}),g.jsx("hr",{className:"my-2 border-primary"}),g.jsxs("div",{className:"px-3 py-2 grid grid-cols-[180px_auto] gap-3",children:[g.jsx(nt,{value:c,size:180}),g.jsxs("div",{className:"flex flex-col gap-2",children:[g.jsx("div",{className:"text-sm",children:"分享到..."}),g.jsx("ul",{className:"flex flex-col gap-2",children:rt.map(a=>g.jsxs("li",{className:"px-2 py-1 flex gap-2 cursor-pointer rounded-md hover:bg-secondary",onClick:()=>a.onClick({url:c,text:r}),role:"button","aria-label":`Share to ${a.name}`,children:[g.jsx("i",{className:j("iconfont text-accent",a.icon)}),g.jsx("span",{children:a.name})]},a.name))})]})]})]})}function at(){const{present:c}=F(),r=()=>{c({content:g.jsx(lt,{})})};return g.jsx("button",{type:"button","aria-label":"Donate to author",className:"size-6 text-xl leading-none hover:text-accent",onClick:()=>r(),children:g.jsx("i",{className:"iconfont icon-user-heart"})})}function lt(){return g.jsxs(S.div,{initial:{y:20,opacity:0},animate:{y:0,opacity:1},exit:{y:20,opacity:0},children:[g.jsx("h2",{className:"text-center mb-5",children:"感谢您的支持,这将成为我前进的最大动力。"}),g.jsx("div",{className:"flex flex-wrap gap-4 justify-center",children:g.jsx("img",{className:"object-cover",width:300,height:300,src:D.wechat,alt:"微信赞赏码",loading:"lazy",decoding:"async"})})]})}export{Mt as ActionAside}; diff --git a/_astro/BackToTopFAB.Ch5_MK60.js b/_astro/BackToTopFAB.Ch5_MK60.js new file mode 100644 index 0000000..a47fb1c --- /dev/null +++ b/_astro/BackToTopFAB.Ch5_MK60.js @@ -0,0 +1 @@ +import{j as o}from"./jsx-runtime.CPK7-dcL.js";import{p as r}from"./scrollInfo.tlMeSMyI.js";import{A as a}from"./index.D5WDNt1Z.js";import{m as c}from"./motion.BDB0jV8x.js";import{u as s}from"./react.DwV23UbX.js";import"./index.BufDd4G-.js";import"./_commonjsHelpers.Cpj98o6Y.js";import"./SVGVisualElement.De6LOhF_.js";function f(){const i=s(r)>100;return o.jsx("div",{className:"fixed right-4 bottom-6 z-10",children:o.jsx(a,{children:i&&o.jsx(e,{})})})}function e(){const t=()=>{window.scrollTo({top:0,behavior:"smooth"})};return o.jsx(c.button,{className:"size-10 rounded-full shadow-lg shadow-zinc-800/5 border border-primary bg-white/50 dark:bg-zinc-800/50 backdrop-blur",type:"button","aria-label":"Back to top",onClick:t,initial:{opacity:0,scale:0},animate:{opacity:1,scale:1},exit:{opacity:0,scale:0},children:o.jsx("i",{className:"iconfont icon-rocket"})})}export{f as BackToTopFAB}; diff --git a/_astro/Flashlight.bV4yLlMw.js b/_astro/Flashlight.bV4yLlMw.js new file mode 100644 index 0000000..82c8a0a --- /dev/null +++ b/_astro/Flashlight.bV4yLlMw.js @@ -0,0 +1,6 @@ +import{j as u}from"./jsx-runtime.CPK7-dcL.js";import{r as e}from"./index.BufDd4G-.js";import"./_commonjsHelpers.Cpj98o6Y.js";function p(){const[s,n]=e.useState(0),[a,i]=e.useState(0),t=!window.matchMedia("(hover: hover)").matches;if(t)return null;const c=`radial-gradient( + circle 16vmax at ${s}px ${a}px, + rgba(0, 0, 0, 0) 0%, + rgba(0, 0, 0, 0.5) 80%, + rgba(0, 0, 0, 0.8) 100% + )`;return e.useLayoutEffect(()=>{const o=r=>{n(r.clientX),i(r.clientY)};return document.addEventListener("mousemove",o),()=>{document.removeEventListener("mousemove",o)}},[]),u.jsx("div",{className:"fixed inset-0 z-50 pointer-events-none",style:{backgroundImage:c,display:t?"none":"block"}})}export{p as Flashlight}; diff --git a/_astro/Header.BtXiY0cs.js b/_astro/Header.BtXiY0cs.js new file mode 100644 index 0000000..63849eb --- /dev/null +++ b/_astro/Header.BtXiY0cs.js @@ -0,0 +1 @@ +import{j as e}from"./jsx-runtime.CPK7-dcL.js";import{a as C,b as I,m as H,p as B,h as O}from"./metaInfo.Cz7K8-yW.js";import{p as m,a as Y}from"./scrollInfo.tlMeSMyI.js";import{i as D}from"./viewport.DFDljuaQ.js";import{f as P}from"./floor.BMxdpmqZ.js";import{u as a,a as R}from"./react.DwV23UbX.js";import{r as c}from"./index.BufDd4G-.js";import{m as b,b as L,s as V}from"./config.tnfO5ZdO.js";import{c as u}from"./clsx.B-dksMZM.js";import{R as E,s as T}from"./searchPanel.DWea59xz.js";import{A as l}from"./index.D5WDNt1Z.js";import{m as i}from"./motion.BDB0jV8x.js";import{$ as X,a as Z,b as _,c as q,d as F}from"./index.DVTHFJB7.js";import"./toNumber.DCaU3JdG.js";import"./_commonjsHelpers.Cpj98o6Y.js";import"./index.BmB7TLDX.js";import"./SVGVisualElement.De6LOhF_.js";const x=50;function G(){const t=a(m);return t>=x?1:P(t/x,2)}function y(){return a(O)}function J(){return a(m)=x}function K(){const t=a(C),s=a(I),n=a(H);return{title:t,description:s,slug:n}}function Q(){return a(B)}function U(){const t=a(m),s=a(Y);return y()&&t>=400&&s==="up"}function W(){const t=G();return e.jsx("div",{className:"absolute inset-0 -z-1 border-b border-primary bg-white/70 dark:bg-zinc-800/70 backdrop-saturate-150 backdrop-blur-lg transform-gpu",style:{opacity:t}})}function ee(){return e.jsxs(e.Fragment,{children:[e.jsx(te,{}),e.jsx(se,{})]})}function te(){const t=J(),s=p();return e.jsx(l,{children:!s&&e.jsx(i.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},children:e.jsx(v,{isBgShow:t})})})}function se(){const t=U();return e.jsx(E,{children:e.jsx(l,{children:t&&e.jsx(i.div,{className:"fixed z-10 top-12 inset-x-0 flex justify-center pointer-events-none",initial:{y:-20},animate:{y:0},exit:{y:-20,opacity:0},children:e.jsx(v,{isBgShow:!0})})})})}function v({isBgShow:t}){const s=Q(),[n,r]=c.useState(0),[h,N]=c.useState(0),[M,S]=c.useState(0),k=`radial-gradient(${M}px circle at ${n}px ${h}px, rgb(var(--color-accent) / 0.12) 0%, transparent 65%)`,$=({clientX:o,clientY:z,currentTarget:A})=>{const d=A.getBoundingClientRect();r(o-d.left),N(z-d.top),S(Math.sqrt(d.width**2+d.height**2)/2.5)};return e.jsxs("nav",{className:u("relative rounded-full group pointer-events-auto",{"shadow-lg shadow-zinc-800/5 border border-primary bg-white/50 dark:bg-zinc-800/50 backdrop-blur":t}),onMouseMove:$,children:[e.jsx("div",{className:"absolute -z-1 -inset-px rounded-full opacity-0 group-hover:opacity-100",style:{background:k},"aria-hidden":!0}),e.jsx("div",{className:"text-sm px-4 flex",children:b.map(o=>e.jsx(ne,{href:o.link,title:o.name,icon:o.icon,isActive:s===o.link},o.name))})]})}function ne({href:t,isActive:s,title:n,icon:r}){return e.jsxs("a",{className:u("relative block px-4 py-1.5",s?"text-accent":"hover:text-accent"),href:t,children:[e.jsxs("div",{className:"flex space-x-2",children:[s&&e.jsx(i.i,{className:u("iconfont",r),initial:{y:10,opacity:0},animate:{y:0,opacity:1}}),e.jsx("span",{children:n})]}),s&&e.jsx("div",{className:"absolute inset-x-0 bottom-0 h-px bg-gradient-to-r from-transparent via-accent/70 to-transparent"})]})}function ae(){const t=R(T);return e.jsx("button",{className:"size-9 rounded-full shadow-lg shadow-zinc-800/5 border border-primary bg-white/50 dark:bg-zinc-800/50 backdrop-blur",type:"button","aria-label":"Search",onClick:()=>t(!0),children:e.jsx("i",{className:"iconfont icon-search"})})}function f(){const t=g(),s=p();return t?e.jsx(l,{children:!s&&e.jsx(i.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},children:e.jsx(j,{})})}):e.jsx(j,{})}function j(){return e.jsx("a",{className:"block",href:"/",title:"Nav to home",children:e.jsx("img",{className:"size-[40px] select-none object-cover rounded-2xl",src:L.avatar,alt:"Site owner avatar"})})}function ie(){const{title:t,description:s,slug:n}=K(),r=p();return e.jsx(l,{children:r&&e.jsxs(i.div,{className:"absolute inset-0 z-1 flex items-center justify-between md:px-10",initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:20},children:[e.jsxs("div",{className:"grow min-w-0",children:[e.jsx("div",{className:"text-secondary text-xs truncate",children:s}),e.jsx("h2",{className:"truncate text-lg",children:t})]}),e.jsxs("div",{className:"hidden md:block min-w-0 text-right",children:[e.jsx("div",{className:"text-secondary text-xs truncate",children:n}),e.jsx("div",{children:V.title})]})]})})}const re={hidden:{x:"-100%",transition:{duration:.2,ease:"easeOut"}},visible:{x:0,transition:{staggerChildren:.1,delayChildren:.1,duration:.2,ease:"easeOut"}}},oe={hidden:{opacity:0,x:"-100%"},visible:{opacity:1,x:0}};function ce({zIndex:t=999}){const[s,n]=c.useState(!1),r=t-1,h=t;return e.jsxs(X,{open:s,onOpenChange:n,children:[e.jsx(Z,{asChild:!0,children:e.jsx(le,{})}),e.jsx(l,{children:s&&e.jsxs(_,{forceMount:!0,children:[e.jsx(q,{asChild:!0,children:e.jsx(i.div,{className:"fixed inset-0 bg-gray-800/40",style:{zIndex:r},initial:{opacity:0},animate:{opacity:1},exit:{opacity:0,transition:{delay:.1}}})}),e.jsx(F,{asChild:!0,children:e.jsx(i.div,{className:"fixed left-0 inset-y-0 h-full bg-primary rounded-r-lg p-4 flex flex-col justify-center w-[260px] max-w-[80%]",style:{zIndex:h},variants:re,initial:"hidden",animate:"visible",exit:"hidden",children:e.jsx(w.Provider,{value:{dismiss(){n(!1)}},children:e.jsx(de,{})})})})]})})]})}const le=c.forwardRef((t,s)=>e.jsx("button",{ref:s,className:"size-9 rounded-full shadow-lg shadow-zinc-800/5 border border-primary bg-white/50 dark:bg-zinc-800/50 backdrop-blur",type:"button","aria-label":"Open menu",...t,children:e.jsx("i",{className:"iconfont icon-menu"})}));function de(){const{dismiss:t}=c.useContext(w);return e.jsx("ul",{className:"mt-8 pb-8 overflow-y-auto overflow-x-hidden min-h-0",children:b.map(s=>e.jsx(i.li,{variants:oe,children:e.jsxs("a",{className:"inline-flex p-2 space-x-4",href:s.link,onClick:t,children:[e.jsx("i",{className:u("iconfont",s.icon)}),e.jsx("span",{children:s.name})]})},s.name))})}const w=c.createContext(null);function ze(){const t=g();return e.jsxs("header",{className:"fixed top-0 inset-x-0 h-[64px] z-10 overflow-hidden",children:[e.jsx(W,{}),e.jsxs("div",{className:"max-w-[1100px] h-full md:px-4 mx-auto grid grid-cols-[64px_auto_64px]",children:[e.jsx("div",{className:"flex items-center justify-center",children:t?e.jsx(ce,{}):e.jsx(f,{})}),e.jsxs("div",{className:"relative flex items-center justify-center",children:[t?e.jsx(f,{}):e.jsx(ee,{}),e.jsx(ie,{})]}),e.jsx("div",{className:"flex items-center justify-center",children:e.jsx(ae,{})})]})]})}export{ze as Header}; diff --git a/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2 b/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2 new file mode 100644 index 0000000..0acaaff Binary files /dev/null and b/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2 differ diff --git a/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff b/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff new file mode 100644 index 0000000..b804d7b Binary files /dev/null and b/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff differ diff --git a/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf b/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf new file mode 100644 index 0000000..c6f9a5e Binary files /dev/null and b/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf differ diff --git a/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf b/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf new file mode 100644 index 0000000..9ff4a5e Binary files /dev/null and b/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf differ diff --git a/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff b/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff new file mode 100644 index 0000000..9759710 Binary files /dev/null and b/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff differ diff --git a/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 b/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 new file mode 100644 index 0000000..f390922 Binary files /dev/null and b/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 differ diff --git a/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff b/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff new file mode 100644 index 0000000..9bdd534 Binary files /dev/null and b/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff differ diff --git a/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 b/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 new file mode 100644 index 0000000..75344a1 Binary files /dev/null and b/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 differ diff --git a/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf b/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf new file mode 100644 index 0000000..f522294 Binary files /dev/null and b/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf differ diff --git a/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf b/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf new file mode 100644 index 0000000..4e98259 Binary files /dev/null and b/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf differ diff --git a/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff b/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff new file mode 100644 index 0000000..e7730f6 Binary files /dev/null and b/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff differ diff --git a/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 b/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 new file mode 100644 index 0000000..395f28b Binary files /dev/null and b/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 differ diff --git a/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf b/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf new file mode 100644 index 0000000..b8461b2 Binary files /dev/null and b/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf differ diff --git a/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 b/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 new file mode 100644 index 0000000..735f694 Binary files /dev/null and b/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 differ diff --git a/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff b/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff new file mode 100644 index 0000000..acab069 Binary files /dev/null and b/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff differ diff --git a/_astro/KaTeX_Main-Bold.Cx986IdX.woff2 b/_astro/KaTeX_Main-Bold.Cx986IdX.woff2 new file mode 100644 index 0000000..ab2ad21 Binary files /dev/null and b/_astro/KaTeX_Main-Bold.Cx986IdX.woff2 differ diff --git a/_astro/KaTeX_Main-Bold.Jm3AIy58.woff b/_astro/KaTeX_Main-Bold.Jm3AIy58.woff new file mode 100644 index 0000000..f38136a Binary files /dev/null and b/_astro/KaTeX_Main-Bold.Jm3AIy58.woff differ diff --git a/_astro/KaTeX_Main-Bold.waoOVXN0.ttf b/_astro/KaTeX_Main-Bold.waoOVXN0.ttf new file mode 100644 index 0000000..4060e62 Binary files /dev/null and b/_astro/KaTeX_Main-Bold.waoOVXN0.ttf differ diff --git a/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 b/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 new file mode 100644 index 0000000..5931794 Binary files /dev/null and b/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 differ diff --git a/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf b/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf new file mode 100644 index 0000000..dc00797 Binary files /dev/null and b/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf differ diff --git a/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff b/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff new file mode 100644 index 0000000..67807b0 Binary files /dev/null and b/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff differ diff --git a/_astro/KaTeX_Main-Italic.3WenGoN9.ttf b/_astro/KaTeX_Main-Italic.3WenGoN9.ttf new file mode 100644 index 0000000..0e9b0f3 Binary files /dev/null and b/_astro/KaTeX_Main-Italic.3WenGoN9.ttf differ diff --git a/_astro/KaTeX_Main-Italic.BMLOBm91.woff b/_astro/KaTeX_Main-Italic.BMLOBm91.woff new file mode 100644 index 0000000..6f43b59 Binary files /dev/null and b/_astro/KaTeX_Main-Italic.BMLOBm91.woff differ diff --git a/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2 b/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2 new file mode 100644 index 0000000..b50920e Binary files /dev/null and b/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2 differ diff --git a/_astro/KaTeX_Main-Regular.B22Nviop.woff2 b/_astro/KaTeX_Main-Regular.B22Nviop.woff2 new file mode 100644 index 0000000..eb24a7b Binary files /dev/null and b/_astro/KaTeX_Main-Regular.B22Nviop.woff2 differ diff --git a/_astro/KaTeX_Main-Regular.Dr94JaBh.woff b/_astro/KaTeX_Main-Regular.Dr94JaBh.woff new file mode 100644 index 0000000..21f5812 Binary files /dev/null and b/_astro/KaTeX_Main-Regular.Dr94JaBh.woff differ diff --git a/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf b/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf new file mode 100644 index 0000000..dd45e1e Binary files /dev/null and b/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf differ diff --git a/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf b/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf new file mode 100644 index 0000000..728ce7a Binary files /dev/null and b/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf differ diff --git a/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 b/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 new file mode 100644 index 0000000..2965702 Binary files /dev/null and b/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 differ diff --git a/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff b/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff new file mode 100644 index 0000000..0ae390d Binary files /dev/null and b/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff differ diff --git a/_astro/KaTeX_Math-Italic.DA0__PXp.woff b/_astro/KaTeX_Math-Italic.DA0__PXp.woff new file mode 100644 index 0000000..eb5159d Binary files /dev/null and b/_astro/KaTeX_Math-Italic.DA0__PXp.woff differ diff --git a/_astro/KaTeX_Math-Italic.flOr_0UB.ttf b/_astro/KaTeX_Math-Italic.flOr_0UB.ttf new file mode 100644 index 0000000..70d559b Binary files /dev/null and b/_astro/KaTeX_Math-Italic.flOr_0UB.ttf differ diff --git a/_astro/KaTeX_Math-Italic.t53AETM-.woff2 b/_astro/KaTeX_Math-Italic.t53AETM-.woff2 new file mode 100644 index 0000000..215c143 Binary files /dev/null and b/_astro/KaTeX_Math-Italic.t53AETM-.woff2 differ diff --git a/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf b/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf new file mode 100644 index 0000000..2f65a8a Binary files /dev/null and b/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf differ diff --git a/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 b/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 new file mode 100644 index 0000000..cfaa3bd Binary files /dev/null and b/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 differ diff --git a/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff b/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff new file mode 100644 index 0000000..8d47c02 Binary files /dev/null and b/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff differ diff --git a/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 b/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 new file mode 100644 index 0000000..349c06d Binary files /dev/null and b/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 differ diff --git a/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff b/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff new file mode 100644 index 0000000..7e02df9 Binary files /dev/null and b/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff differ diff --git a/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf b/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf new file mode 100644 index 0000000..d5850df Binary files /dev/null and b/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf differ diff --git a/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf b/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf new file mode 100644 index 0000000..537279f Binary files /dev/null and b/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf differ diff --git a/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff b/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff new file mode 100644 index 0000000..31b8482 Binary files /dev/null and b/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff differ diff --git a/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 b/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 new file mode 100644 index 0000000..a90eea8 Binary files /dev/null and b/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 differ diff --git a/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf b/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf new file mode 100644 index 0000000..fd679bf Binary files /dev/null and b/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf differ diff --git a/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2 b/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2 new file mode 100644 index 0000000..b3048fc Binary files /dev/null and b/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2 differ diff --git a/_astro/KaTeX_Script-Regular.D5yQViql.woff b/_astro/KaTeX_Script-Regular.D5yQViql.woff new file mode 100644 index 0000000..0e7da82 Binary files /dev/null and b/_astro/KaTeX_Script-Regular.D5yQViql.woff differ diff --git a/_astro/KaTeX_Size1-Regular.C195tn64.woff b/_astro/KaTeX_Size1-Regular.C195tn64.woff new file mode 100644 index 0000000..7f292d9 Binary files /dev/null and b/_astro/KaTeX_Size1-Regular.C195tn64.woff differ diff --git a/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf b/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf new file mode 100644 index 0000000..871fd7d Binary files /dev/null and b/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf differ diff --git a/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2 b/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2 new file mode 100644 index 0000000..c5a8462 Binary files /dev/null and b/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2 differ diff --git a/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf b/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf new file mode 100644 index 0000000..7a212ca Binary files /dev/null and b/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf differ diff --git a/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2 b/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2 new file mode 100644 index 0000000..e1bccfe Binary files /dev/null and b/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2 differ diff --git a/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff b/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff new file mode 100644 index 0000000..d241d9b Binary files /dev/null and b/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff differ diff --git a/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff b/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff new file mode 100644 index 0000000..e6e9b65 Binary files /dev/null and b/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff differ diff --git a/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf b/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf new file mode 100644 index 0000000..00bff34 Binary files /dev/null and b/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf differ diff --git a/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff b/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff new file mode 100644 index 0000000..e1ec545 Binary files /dev/null and b/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff differ diff --git a/_astro/KaTeX_Size4-Regular.DWFBv043.ttf b/_astro/KaTeX_Size4-Regular.DWFBv043.ttf new file mode 100644 index 0000000..74f0892 Binary files /dev/null and b/_astro/KaTeX_Size4-Regular.DWFBv043.ttf differ diff --git a/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2 b/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2 new file mode 100644 index 0000000..680c130 Binary files /dev/null and b/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2 differ diff --git a/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff b/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff new file mode 100644 index 0000000..2432419 Binary files /dev/null and b/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff differ diff --git a/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 b/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 new file mode 100644 index 0000000..771f1af Binary files /dev/null and b/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 differ diff --git a/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf b/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf new file mode 100644 index 0000000..c83252c Binary files /dev/null and b/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf differ diff --git a/_astro/Outdate.C-TADoIj.js b/_astro/Outdate.C-TADoIj.js new file mode 100644 index 0000000..074e83b --- /dev/null +++ b/_astro/Outdate.C-TADoIj.js @@ -0,0 +1 @@ +import{j as e}from"./jsx-runtime.CPK7-dcL.js";import{r}from"./index.BufDd4G-.js";import{g as o,d as a}from"./date.CeBf7uU2.js";import{A as m}from"./index.D5WDNt1Z.js";import{m as f}from"./motion.BDB0jV8x.js";import"./_commonjsHelpers.Cpj98o6Y.js";import"./SVGVisualElement.De6LOhF_.js";function l({lastMod:t}){const[i,s]=r.useState(!1);return r.useEffect(()=>{o(t)>30&&s(!0)},[t]),e.jsx(m,{children:i&&e.jsx(f.div,{className:"flex justify-center text-sm p-4 rounded-lg bg-amber-300/10 border border-amber-300",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},children:e.jsxs("span",{children:["这篇文章最后修改于 ",a(t),",部分内容可能已经不适用,如有疑问可联系作者。"]})})})}export{l as Outdate}; diff --git a/_astro/PostCardHoverOverlay.DTQzc3Oj.js b/_astro/PostCardHoverOverlay.DTQzc3Oj.js new file mode 100644 index 0000000..4519134 --- /dev/null +++ b/_astro/PostCardHoverOverlay.DTQzc3Oj.js @@ -0,0 +1 @@ +import{j as t}from"./jsx-runtime.CPK7-dcL.js";import{r as n}from"./index.BufDd4G-.js";import{A as m}from"./index.D5WDNt1Z.js";import{m as d}from"./motion.BDB0jV8x.js";import"./_commonjsHelpers.Cpj98o6Y.js";import"./SVGVisualElement.De6LOhF_.js";function h(){const s=n.useRef(null),[c,r]=n.useState(!1),o=()=>{r(!0)},a=()=>{r(!1)},i=()=>{r(!0)},l=()=>{r(!1)};return n.useEffect(()=>{const u=s.current;if(!u)return;const e=u.parentElement?.parentElement;if(e)return e.addEventListener("mouseenter",o),e.addEventListener("mouseleave",a),e.addEventListener("focus",i),e.addEventListener("blur",l),()=>{e.removeEventListener("mouseenter",o),e.removeEventListener("mouseleave",a),e.removeEventListener("focus",i),e.removeEventListener("blur",l)}},[]),t.jsxs(t.Fragment,{children:[t.jsx("div",{ref:s,className:"hidden"}),t.jsx(m,{children:c&&t.jsx(d.div,{className:"absolute inset-y-4 -inset-x-4 -z-1 bg-accent/10 rounded-lg",initial:{opacity:.2,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},layout:!0,layoutId:"post-card-hover-overlay"})})]})}export{h as PostCardHoverOverlay}; diff --git a/_astro/PostCopyright.D368sPar.js b/_astro/PostCopyright.D368sPar.js new file mode 100644 index 0000000..5594657 --- /dev/null +++ b/_astro/PostCopyright.D368sPar.js @@ -0,0 +1,128 @@ +import{j as c}from"./jsx-runtime.CPK7-dcL.js";import{b as a,s as h}from"./config.tnfO5ZdO.js";import{e as m}from"./date.CeBf7uU2.js";import{r as e}from"./index.BufDd4G-.js";import{B as v}from"./react-toastify.esm.B4Q9Ck-v.js";import"./_commonjsHelpers.Cpj98o6Y.js";import"./clsx.B-dksMZM.js";const d=` + + + +`;function p(){return c.jsx("div",{className:"animated-signature",dangerouslySetInnerHTML:{__html:d}})}function x(t){return new URL(t,h.url).href}function N({title:t,slug:r,lastMod:n}){const[l,o]=e.useState(""),s=x(r);function i(){navigator.clipboard.writeText(s),v.success("已复制文章链接")}return e.useEffect(()=>{o(m(n))},[n]),c.jsxs("section",{className:"text-xs leading-loose text-secondary",children:[c.jsxs("p",{children:["文章标题:",t]}),c.jsxs("p",{children:["文章作者:",a.name]}),c.jsxs("p",{children:[c.jsxs("span",{children:["文章链接:",s]}),c.jsx("span",{role:"button",className:"cursor-pointer select-none",onClick:i,children:"[复制]"})]}),c.jsxs("p",{children:["最后修改时间:",l]}),c.jsx("hr",{className:"my-3 border-primary"}),c.jsxs("div",{children:[c.jsx("div",{className:"float-right ml-4 my-2",children:c.jsx(p,{})}),c.jsxs("p",{children:["商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。",c.jsx("br",{}),"本文采用",c.jsx("a",{className:"hover:underline hover:text-accent underline-offset-2",href:"https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh",target:"_blank",rel:"noopener noreferrer",children:"CC BY-NC-SA 4.0"}),"进行许可。"]})]})]})}export{N as PostCopyright}; diff --git a/_astro/PostToc.CMfrgcLE.js b/_astro/PostToc.CMfrgcLE.js new file mode 100644 index 0000000..bcb2984 --- /dev/null +++ b/_astro/PostToc.CMfrgcLE.js @@ -0,0 +1 @@ +import{j as s}from"./jsx-runtime.CPK7-dcL.js";import{p as T,a as y}from"./scrollInfo.tlMeSMyI.js";import{c as h}from"./clsx.B-dksMZM.js";import{r as a}from"./index.BufDd4G-.js";import{u as x}from"./react.DwV23UbX.js";import"./_commonjsHelpers.Cpj98o6Y.js";function v(){const[i,l]=a.useState(""),t=x(T);return a.useEffect(()=>{const o=document.querySelector("#markdown-wrapper");if(!o)return;const r=Array.from(o.querySelectorAll("h1,h2,h3,h4,h5,h6"));for(let c=0;c80){a.startTransition(()=>{l(n.id)});break}}},[t]),i}function E({headings:i}){const l=v();return s.jsx("ul",{className:"relative overflow-y-auto space-y-2 group text-sm",style:{maxHeight:"min(380px, calc(100vh - 250px))",scrollbarWidth:"none"},children:i.map(t=>s.jsx(j,{slug:t.slug,text:t.text,depth:t.depth,isActive:t.slug===l},t.slug))})}function j({slug:i,text:l,depth:t,isActive:o}){const r=a.useRef(null),c=x(y);return a.useEffect(()=>{if(!o)return;const n=r.current;if(!n)return;const e=n.parentElement;if(!e)return;const p=e.clientHeight,m=n.clientHeight,u=n.offsetTop,g=e.scrollTop,f=u-g,d=f+m;(f<0||d>p)&&(c==="up"?e.scrollTop=u-p+m:e.scrollTop=u)},[o]),s.jsxs("li",{className:"relative",ref:r,children:[s.jsx("span",{className:h("absolute left-0 top-2 h-1 rounded-full",o?"bg-accent":"bg-zinc-300 dark:bg-zinc-700"),style:{width:`${4*(7-t)}px`}}),s.jsx("a",{className:h("inline-block pl-8 opacity-0 transition-opacity duration-300",o?"opacity-100":"group-hover:opacity-100 text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100"),href:`#${i}`,children:s.jsx("span",{children:l})})]})}export{E as PostToc}; diff --git a/_astro/Provider.ZnDbPSzS.js b/_astro/Provider.ZnDbPSzS.js new file mode 100644 index 0000000..5ebdfc2 --- /dev/null +++ b/_astro/Provider.ZnDbPSzS.js @@ -0,0 +1 @@ +import{j as f}from"./jsx-runtime.CPK7-dcL.js";import{r as v}from"./index.BufDd4G-.js";import{p as C,a as W,b as D,m as F}from"./metaInfo.Cz7K8-yW.js";import{a as m,u as _}from"./react.DwV23UbX.js";import{p as O,a as q}from"./scrollInfo.tlMeSMyI.js";import{r as H,t as M,i as w}from"./toNumber.DCaU3JdG.js";import{s as N,g as U,c as y}from"./theme.BLaxzHfN.js";import{t as V}from"./theme.K1S-wrqJ.js";import{i as X}from"./viewport.DFDljuaQ.js";import"./_commonjsHelpers.Cpj98o6Y.js";var S=function(){return H.Date.now()},$="Expected a function",z=Math.max,Y=Math.min;function B(t,n,e){var r,o,c,s,a,l,d=0,L=!1,g=!1,T=!0;if(typeof t!="function")throw new TypeError($);n=M(n)||0,w(e)&&(L=!!e.leading,g="maxWait"in e,c=g?z(M(e.maxWait)||0,n):c,T="trailing"in e?!!e.trailing:T);function E(i){var u=r,h=o;return r=o=void 0,d=i,s=t.apply(h,u),s}function P(i){return d=i,a=setTimeout(p,n),L?E(i):s}function R(i){var u=i-l,h=i-d,I=n-u;return g?Y(I,c-h):I}function A(i){var u=i-l,h=i-d;return l===void 0||u>=n||u<0||g&&h>=c}function p(){var i=S();if(A(i))return b(i);a=setTimeout(p,R(i))}function b(i){return a=void 0,T&&r?E(i):(r=o=void 0,s)}function j(){a!==void 0&&clearTimeout(a),d=0,r=l=o=a=void 0}function k(){return a===void 0?s:b(S())}function x(){var i=S(),u=A(i);if(r=arguments,o=this,l=i,u){if(a===void 0)return P(l);if(g)return clearTimeout(a),a=setTimeout(p,n),E(l)}return a===void 0&&(a=setTimeout(p,n)),s}return x.cancel=j,x.flush=k,x}var G="Expected a function";function J(t,n,e){var r=!0,o=!0;if(typeof t!="function")throw new TypeError(G);return w(e)&&(r="leading"in e?!!e.leading:r,o="trailing"in e?!!e.trailing:o),B(t,n,{leading:r,maxWait:n,trailing:o})}function K({pathName:t,title:n="",description:e="",slug:r=""}){const o=m(C),c=m(W),s=m(D),a=m(F);return v.useEffect(()=>{o(t!=="/"?t.replace(/\/$/,""):t),c(n),s(e),a(r)},[t,n,e,r]),null}function Q(){const t=m(O),n=m(q),e=v.useRef(0),r=J(()=>{let o=document.documentElement.scrollTop;if(o===0){const c=document.body.style;if(c.position==="fixed"){const s=c.top;o=Math.abs(parseInt(s,10))}}n(e.current-o>0?"up":"down"),e.current=o,t(o)},16,{leading:!1});return v.useLayoutEffect(()=>(r(),window.addEventListener("scroll",r),()=>{window.removeEventListener("scroll",r)}),[]),null}function Z(){const t=_(V);function n(e){t==="system"&&y(e.matches?"dark":"light")}return v.useEffect(()=>{if(N(t),t==="system"){const r=U();y(r)}else y(t);const e=window.matchMedia("(prefers-color-scheme: dark)");return e.addEventListener("change",n),()=>{e.removeEventListener("change",n)}},[t]),null}function ee(){const t=m(X),n=e=>{t(!e.matches)};return v.useEffect(()=>{const e=window.matchMedia("(min-width: 768px)");return t(!e.matches),e.addEventListener("change",n),()=>{e.removeEventListener("change",n)}},[]),null}function me(t){return f.jsxs(f.Fragment,{children:[f.jsx(K,{...t}),f.jsx(Q,{}),f.jsx(Z,{}),f.jsx(ee,{})]})}export{me as Provider}; diff --git a/_astro/ReadingProgress.B3MqqCM9.js b/_astro/ReadingProgress.B3MqqCM9.js new file mode 100644 index 0000000..2a23af2 --- /dev/null +++ b/_astro/ReadingProgress.B3MqqCM9.js @@ -0,0 +1 @@ +import{j as s}from"./jsx-runtime.CPK7-dcL.js";import{r as i}from"./index.BufDd4G-.js";import{p as a}from"./scrollInfo.tlMeSMyI.js";import{f}from"./floor.BMxdpmqZ.js";import{u as p}from"./react.DwV23UbX.js";import"./_commonjsHelpers.Cpj98o6Y.js";import"./toNumber.DCaU3JdG.js";function w(){const[n,e]=i.useState(0),t=p(a);return i.useEffect(()=>{const o=document.querySelector("#markdown-wrapper");if(!o)return;const{offsetHeight:c,offsetTop:m}=o,r=c+m-window.innerHeight;t>r?e(100):e(f(t/r*100))},[t]),s.jsx("div",{children:s.jsxs("span",{className:"text-sm",children:["进度 ",n,"%"]})})}export{w as ReadingProgress}; diff --git a/_astro/RelativeDate.CadPNpCf.js b/_astro/RelativeDate.CadPNpCf.js new file mode 100644 index 0000000..96e8e35 --- /dev/null +++ b/_astro/RelativeDate.CadPNpCf.js @@ -0,0 +1 @@ +import{j as a}from"./jsx-runtime.CPK7-dcL.js";import{d as i,f as m}from"./date.CeBf7uU2.js";import{r}from"./index.BufDd4G-.js";import"./_commonjsHelpers.Cpj98o6Y.js";function u({date:t}){const[o,s]=r.useState(i(t));return r.useEffect(()=>{const e=m(t);e&&s(e)},[t]),a.jsx("span",{children:o})}export{u as RelativeDate}; diff --git a/_astro/RunningDays.C5036bF5.js b/_astro/RunningDays.C5036bF5.js new file mode 100644 index 0000000..39fedc2 --- /dev/null +++ b/_astro/RunningDays.C5036bF5.js @@ -0,0 +1 @@ +import{j as s}from"./jsx-runtime.CPK7-dcL.js";import{r}from"./index.BufDd4G-.js";import{f as a}from"./config.tnfO5ZdO.js";import{g as n}from"./date.CeBf7uU2.js";import"./_commonjsHelpers.Cpj98o6Y.js";function c(){const[t,o]=r.useState(0);return r.useLayoutEffect(()=>{const e=n(new Date(a.startTime));o(e)},[]),t<0?s.jsx("span",{children:"Ops! 网站还没有发布"}):s.jsxs("span",{children:["已经运行了 ",t," 天"]})}export{c as RunningDays}; diff --git a/_astro/SVGVisualElement.De6LOhF_.js b/_astro/SVGVisualElement.De6LOhF_.js new file mode 100644 index 0000000..4a57186 --- /dev/null +++ b/_astro/SVGVisualElement.De6LOhF_.js @@ -0,0 +1 @@ +const us=typeof document<"u",we=t=>t.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),cs="framerAppearId",hs="data-"+we(cs),fs={skipAnimations:!1,useManualTiming:!1};class Ee{constructor(){this.order=[],this.scheduled=new Set}add(e){if(!this.scheduled.has(e))return this.scheduled.add(e),this.order.push(e),!0}remove(e){const s=this.order.indexOf(e);s!==-1&&(this.order.splice(s,1),this.scheduled.delete(e))}clear(){this.order.length=0,this.scheduled.clear()}}function ds(t){let e=new Ee,s=new Ee,n=0,r=!1,i=!1;const o=new WeakSet,a={schedule:(l,c=!1,u=!1)=>{const h=u&&r,f=h?e:s;return c&&o.add(l),f.add(l)&&h&&r&&(n=e.order.length),l},cancel:l=>{s.remove(l),o.delete(l)},process:l=>{if(r){i=!0;return}if(r=!0,[e,s]=[s,e],s.clear(),n=e.order.length,n)for(let c=0;c(h[f]=ds(()=>s=!0),h),{}),o=h=>{i[h].process(r)},a=()=>{const h=performance.now();s=!1,r.delta=n?1e3/60:Math.max(Math.min(h-r.timestamp,ps),1),r.timestamp=h,r.isProcessing=!0,ee.forEach(o),r.isProcessing=!1,s&&e&&(n=!1,t(a))},l=()=>{s=!0,n=!0,r.isProcessing||t(a)};return{schedule:ee.reduce((h,f)=>{const d=i[f];return h[f]=(m,g=!1,b=!1)=>(s||l(),d.schedule(m,g,b)),h},{}),cancel:h=>ee.forEach(f=>i[f].cancel(h)),state:r,steps:i}}function gs(t){return t&&typeof t=="object"&&Object.prototype.hasOwnProperty.call(t,"current")}function dt(t){return typeof t=="string"||Array.isArray(t)}function ys(t){return t!==null&&typeof t=="object"&&typeof t.start=="function"}const vs=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Se=["initial",...vs];function pt(t){return ys(t.animate)||Se.some(e=>dt(t[e]))}function bs(t){return!!(pt(t)||t.variants)}const ke={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},Me={};for(const t in ke)Me[t]={isEnabled:e=>ke[t].some(s=>!!e[s])};const mt={};function _r(t){Object.assign(mt,t)}const q=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],E=new Set(q);function Ts(t,{layout:e,layoutId:s}){return E.has(t)||t.startsWith("origin")||(e||s!==void 0)&&(!!mt[t]||t==="opacity")}const S=t=>!!(t&&t.getVelocity),Vs={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},xs=q.length;function ws(t,{enableHardwareAcceleration:e=!0,allowTransformNone:s=!0},n,r){let i="";for(let o=0;oe=>typeof e=="string"&&e.startsWith(t),yt=gt("--"),Ss=gt("var(--"),Ae=t=>Ss(t)?Ms.test(t.split("/*")[0].trim()):!1,Ms=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,As=(t,e)=>e&&typeof t=="number"?e.transform(t):t,_=(t,e,s)=>s>e?e:stypeof t=="number",parse:parseFloat,transform:t=>t},z={...U,transform:t=>_(0,1,t)},te={...U,default:1},Y=t=>Math.round(t*1e5)/1e5,Ce=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu,Cs=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,Ps=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu;function H(t){return typeof t=="string"}const Z=t=>({test:e=>H(e)&&e.endsWith(t)&&e.split(" ").length===1,parse:parseFloat,transform:e=>`${e}${t}`}),F=Z("deg"),L=Z("%"),p=Z("px"),Fs=Z("vh"),Rs=Z("vw"),Le={...L,parse:t=>L.parse(t)/100,transform:t=>L.transform(t*100)},je={...U,transform:Math.round},vt={borderWidth:p,borderTopWidth:p,borderRightWidth:p,borderBottomWidth:p,borderLeftWidth:p,borderRadius:p,radius:p,borderTopLeftRadius:p,borderTopRightRadius:p,borderBottomRightRadius:p,borderBottomLeftRadius:p,width:p,maxWidth:p,height:p,maxHeight:p,size:p,top:p,right:p,bottom:p,left:p,padding:p,paddingTop:p,paddingRight:p,paddingBottom:p,paddingLeft:p,margin:p,marginTop:p,marginRight:p,marginBottom:p,marginLeft:p,rotate:F,rotateX:F,rotateY:F,rotateZ:F,scale:te,scaleX:te,scaleY:te,scaleZ:te,skew:F,skewX:F,skewY:F,distance:p,translateX:p,translateY:p,translateZ:p,x:p,y:p,z:p,perspective:p,transformPerspective:p,opacity:z,originX:Le,originY:Le,originZ:p,zIndex:je,backgroundPositionX:p,backgroundPositionY:p,fillOpacity:z,strokeOpacity:z,numOctaves:je};function bt(t,e,s,n){const{style:r,vars:i,transform:o,transformOrigin:a}=t;let l=!1,c=!1,u=!0;for(const h in e){const f=e[h];if(yt(h)){i[h]=f;continue}const d=vt[h],m=As(f,d);if(E.has(h)){if(l=!0,o[h]=m,!u)continue;f!==(d.default||0)&&(u=!1)}else h.startsWith("origin")?(c=!0,a[h]=m):r[h]=m}if(e.transform||(l||n?r.transform=ws(t.transform,s,u,n):r.transform&&(r.transform="none")),c){const{originX:h="50%",originY:f="50%",originZ:d=0}=a;r.transformOrigin=`${h} ${f} ${d}`}}function _e(t,e,s){return typeof t=="string"?t:p.transform(e+s*t)}function Os(t,e,s){const n=_e(e,t.x,t.width),r=_e(s,t.y,t.height);return`${n} ${r}`}const Ds={offset:"stroke-dashoffset",array:"stroke-dasharray"},Bs={offset:"strokeDashoffset",array:"strokeDasharray"};function Is(t,e,s=1,n=0,r=!0){t.pathLength=1;const i=r?Ds:Bs;t[i.offset]=p.transform(-n);const o=p.transform(e),a=p.transform(s);t[i.array]=`${o} ${a}`}function Ks(t,{attrX:e,attrY:s,attrScale:n,originX:r,originY:i,pathLength:o,pathSpacing:a=1,pathOffset:l=0,...c},u,h,f){if(bt(t,c,u,f),h){t.style.viewBox&&(t.attrs.viewBox=t.style.viewBox);return}t.attrs=t.style,t.style={};const{attrs:d,style:m,dimensions:g}=t;d.transform&&(g&&(m.transform=d.transform),delete d.transform),g&&(r!==void 0||i!==void 0||m.transform)&&(m.transformOrigin=Os(g,r!==void 0?r:.5,i!==void 0?i:.5)),e!==void 0&&(d.x=e),s!==void 0&&(d.y=s),n!==void 0&&(d.scale=n),o!==void 0&&Is(d,o,a,l,!1)}const Ns=t=>typeof t=="string"&&t.toLowerCase()==="svg";function Tt(t,{style:e,vars:s},n,r){Object.assign(t.style,e,r&&r.getProjectionStyles(n));for(const i in s)t.style.setProperty(i,s[i])}const Vt=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Es(t,e,s,n){Tt(t,e,void 0,n);for(const r in e.attrs)t.setAttribute(Vt.has(r)?r:we(r),e.attrs[r])}function xt(t,e,s){var n;const{style:r}=t,i={};for(const o in r)(S(r[o])||e.style&&S(e.style[o])||Ts(o,t)||((n=s?.getValue(o))===null||n===void 0?void 0:n.liveStyle)!==void 0)&&(i[o]=r[o]);return i}function ks(t,e,s){const n=xt(t,e,s);for(const r in t)if(S(t[r])||S(e[r])){const i=q.indexOf(r)!==-1?"attr"+r.charAt(0).toUpperCase()+r.substring(1):r;n[i]=t[r]}return n}function wt(t,e,s,n={},r={}){return typeof e=="function"&&(e=e(s!==void 0?s:t.custom,n,r)),typeof e=="string"&&(e=t.variants&&t.variants[e]),typeof e=="function"&&(e=e(s!==void 0?s:t.custom,n,r)),e}const Ls=t=>Array.isArray(t),Wr=t=>!!(t&&typeof t=="object"&&t.mix&&t.toValue),js=t=>Ls(t)?t[t.length-1]||0:t,N=t=>t,{schedule:O,cancel:pe,state:ne,steps:Ur}=ms(typeof requestAnimationFrame<"u"?requestAnimationFrame:N,!0),_s=(t,e)=>s=>e(t(s)),Pe=(...t)=>t.reduce(_s);function Ws(t){const e={};return t.values.forEach((s,n)=>e[n]=s.get()),e}function Us(t){const e={};return t.values.forEach((s,n)=>e[n]=s.getVelocity()),e}function $s(t,e,s){const n=t.getProps();return wt(n,e,s!==void 0?s:n.custom,Ws(t),Us(t))}const I=t=>t*1e3,R=t=>t/1e3,Gs={type:"spring",stiffness:500,damping:25,restSpeed:10},zs=t=>({type:"spring",stiffness:550,damping:t===0?2*Math.sqrt(550):30,restSpeed:10}),Ys={type:"keyframes",duration:.8},Xs={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},qs=(t,{keyframes:e})=>e.length>2?Ys:E.has(t)?t.startsWith("scale")?zs(e[1]):Gs:Xs;function Hs({when:t,delay:e,delayChildren:s,staggerChildren:n,staggerDirection:r,repeat:i,repeatType:o,repeatDelay:a,from:l,elapsed:c,...u}){return!!Object.keys(u).length}function St(t,e){return t[e]||t.default||t}const Zs=t=>t!==null;function le(t,{repeat:e,repeatType:s="loop"},n){const r=t.filter(Zs),i=e&&s!=="loop"&&e%2===1?0:r.length-1;return!i||n===void 0?r[i]:n}let se;function Qs(){se=void 0}const j={now:()=>(se===void 0&&j.set(ne.isProcessing||fs.useManualTiming?ne.timestamp:performance.now()),se),set:t=>{se=t,queueMicrotask(Qs)}},Mt=t=>/^0[^.\s]+$/u.test(t);function Js(t){return typeof t=="number"?t===0:t!==null?t==="none"||t==="0"||Mt(t):!0}let At=N;const Ct=t=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t),en=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function tn(t){const e=en.exec(t);if(!e)return[,];const[,s,n,r]=e;return[`--${s??n}`,r]}function Pt(t,e,s=1){const[n,r]=tn(t);if(!n)return;const i=window.getComputedStyle(e).getPropertyValue(n);if(i){const o=i.trim();return Ct(o)?parseFloat(o):o}return Ae(r)?Pt(r,e,s+1):r}const sn=new Set(["width","height","top","left","right","bottom","x","y","translateX","translateY"]),We=t=>t===U||t===p,Ue=(t,e)=>parseFloat(t.split(", ")[e]),$e=(t,e)=>(s,{transform:n})=>{if(n==="none"||!n)return 0;const r=n.match(/^matrix3d\((.+)\)$/u);if(r)return Ue(r[1],e);{const i=n.match(/^matrix\((.+)\)$/u);return i?Ue(i[1],t):0}},nn=new Set(["x","y","z"]),rn=q.filter(t=>!nn.has(t));function on(t){const e=[];return rn.forEach(s=>{const n=t.getValue(s);n!==void 0&&(e.push([s,n.get()]),n.set(s.startsWith("scale")?1:0))}),e}const W={width:({x:t},{paddingLeft:e="0",paddingRight:s="0"})=>t.max-t.min-parseFloat(e)-parseFloat(s),height:({y:t},{paddingTop:e="0",paddingBottom:s="0"})=>t.max-t.min-parseFloat(e)-parseFloat(s),top:(t,{top:e})=>parseFloat(e),left:(t,{left:e})=>parseFloat(e),bottom:({y:t},{top:e})=>parseFloat(e)+(t.max-t.min),right:({x:t},{left:e})=>parseFloat(e)+(t.max-t.min),x:$e(4,13),y:$e(5,14)};W.translateX=W.x;W.translateY=W.y;const Ft=t=>e=>e.test(t),an={test:t=>t==="auto",parse:t=>t},Rt=[U,p,L,F,Rs,Fs,an],Ge=t=>Rt.find(Ft(t)),K=new Set;let me=!1,ge=!1;function Ot(){if(ge){const t=Array.from(K).filter(n=>n.needsMeasurement),e=new Set(t.map(n=>n.element)),s=new Map;e.forEach(n=>{const r=on(n);r.length&&(s.set(n,r),n.render())}),t.forEach(n=>n.measureInitialState()),e.forEach(n=>{n.render();const r=s.get(n);r&&r.forEach(([i,o])=>{var a;(a=n.getValue(i))===null||a===void 0||a.set(o)})}),t.forEach(n=>n.measureEndState()),t.forEach(n=>{n.suspendedScrollY!==void 0&&window.scrollTo(0,n.suspendedScrollY)})}ge=!1,me=!1,K.forEach(t=>t.complete()),K.clear()}function Dt(){K.forEach(t=>{t.readKeyframes(),t.needsMeasurement&&(ge=!0)})}function ln(){Dt(),Ot()}class Fe{constructor(e,s,n,r,i,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...e],this.onComplete=s,this.name=n,this.motionValue=r,this.element=i,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(K.add(this),me||(me=!0,O.read(Dt),O.resolveKeyframes(Ot))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:e,name:s,element:n,motionValue:r}=this;for(let i=0;is=>!!(H(s)&&Ps.test(s)&&s.startsWith(t)||e&&Object.prototype.hasOwnProperty.call(s,e)),Bt=(t,e,s)=>n=>{if(!H(n))return n;const[r,i,o,a]=n.match(Ce);return{[t]:parseFloat(r),[e]:parseFloat(i),[s]:parseFloat(o),alpha:a!==void 0?parseFloat(a):1}},un=t=>_(0,255,t),ue={...U,transform:t=>Math.round(un(t))},B={test:Re("rgb","red"),parse:Bt("red","green","blue"),transform:({red:t,green:e,blue:s,alpha:n=1})=>"rgba("+ue.transform(t)+", "+ue.transform(e)+", "+ue.transform(s)+", "+Y(z.transform(n))+")"};function cn(t){let e="",s="",n="",r="";return t.length>5?(e=t.substring(1,3),s=t.substring(3,5),n=t.substring(5,7),r=t.substring(7,9)):(e=t.substring(1,2),s=t.substring(2,3),n=t.substring(3,4),r=t.substring(4,5),e+=e,s+=s,n+=n,r+=r),{red:parseInt(e,16),green:parseInt(s,16),blue:parseInt(n,16),alpha:r?parseInt(r,16)/255:1}}const ye={test:Re("#"),parse:cn,transform:B.transform},k={test:Re("hsl","hue"),parse:Bt("hue","saturation","lightness"),transform:({hue:t,saturation:e,lightness:s,alpha:n=1})=>"hsla("+Math.round(t)+", "+L.transform(Y(e))+", "+L.transform(Y(s))+", "+Y(z.transform(n))+")"},x={test:t=>B.test(t)||ye.test(t)||k.test(t),parse:t=>B.test(t)?B.parse(t):k.test(t)?k.parse(t):ye.parse(t),transform:t=>H(t)?t:t.hasOwnProperty("red")?B.transform(t):k.transform(t)};function hn(t){var e,s;return isNaN(t)&&H(t)&&(((e=t.match(Ce))===null||e===void 0?void 0:e.length)||0)+(((s=t.match(Cs))===null||s===void 0?void 0:s.length)||0)>0}const It="number",Kt="color",fn="var",dn="var(",ze="${}",pn=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function re(t){const e=t.toString(),s=[],n={color:[],number:[],var:[]},r=[];let i=0;const a=e.replace(pn,l=>(x.test(l)?(n.color.push(i),r.push(Kt),s.push(x.parse(l))):l.startsWith(dn)?(n.var.push(i),r.push(fn),s.push(l)):(n.number.push(i),r.push(It),s.push(parseFloat(l))),++i,ze)).split(ze);return{values:s,split:a,indexes:n,types:r}}function Nt(t){return re(t).values}function Et(t){const{split:e,types:s}=re(t),n=e.length;return r=>{let i="";for(let o=0;otypeof t=="number"?0:t;function gn(t){const e=Nt(t);return Et(t)(e.map(mn))}const $={test:hn,parse:Nt,createTransformer:Et,getAnimatableNone:gn},yn=new Set(["brightness","contrast","saturate","opacity"]);function vn(t){const[e,s]=t.slice(0,-1).split("(");if(e==="drop-shadow")return t;const[n]=s.match(Ce)||[];if(!n)return t;const r=s.replace(n,"");let i=yn.has(e)?1:0;return n!==s&&(i*=100),e+"("+i+r+")"}const bn=/\b([a-z-]*)\(.*?\)/gu,ve={...$,getAnimatableNone:t=>{const e=t.match(bn);return e?e.map(vn).join(" "):t}},Tn={...vt,color:x,backgroundColor:x,outlineColor:x,fill:x,stroke:x,borderColor:x,borderTopColor:x,borderRightColor:x,borderBottomColor:x,borderLeftColor:x,filter:ve,WebkitFilter:ve},Oe=t=>Tn[t];function kt(t,e){let s=Oe(t);return s!==ve&&(s=$),s.getAnimatableNone?s.getAnimatableNone(e):void 0}function Vn(t,e,s){let n=0,r;for(;n{s.getValue(l).set(c)}),this.resolveNoneKeyframes()}}function xn(t){let e;return()=>(e===void 0&&(e=t()),e)}const Ye=(t,e)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&($.test(t)||t==="0")&&!t.startsWith("url("));function wn(t){const e=t[0];if(t.length===1)return!0;for(let s=0;s{this.resolveFinishedPromise=e})}}function _t(t,e){return e?t*(1e3/e):0}const Mn=5;function Wt(t,e,s){const n=Math.max(e-Mn,0);return _t(s-t(n),e-n)}const ce=.001,An=.01,Cn=10,Pn=.05,Fn=1;function Rn({duration:t=800,bounce:e=.25,velocity:s=0,mass:n=1}){let r,i,o=1-e;o=_(Pn,Fn,o),t=_(An,Cn,R(t)),o<1?(r=c=>{const u=c*o,h=u*t,f=u-s,d=be(c,o),m=Math.exp(-h);return ce-f/d*m},i=c=>{const h=c*o*t,f=h*s+s,d=Math.pow(o,2)*Math.pow(c,2)*t,m=Math.exp(-h),g=be(Math.pow(c,2),o);return(-r(c)+ce>0?-1:1)*((f-d)*m)/g}):(r=c=>{const u=Math.exp(-c*t),h=(c-s)*t+1;return-ce+u*h},i=c=>{const u=Math.exp(-c*t),h=(s-c)*(t*t);return u*h});const a=5/t,l=Dn(r,i,a);if(t=I(t),isNaN(l))return{stiffness:100,damping:10,duration:t};{const c=Math.pow(l,2)*n;return{stiffness:c,damping:o*2*Math.sqrt(n*c),duration:t}}}const On=12;function Dn(t,e,s){let n=s;for(let r=1;rt[s]!==void 0)}function Kn(t){let e={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...t};if(!Xe(t,In)&&Xe(t,Bn)){const s=Rn(t);e={...e,...s,mass:1},e.isResolvedFromDuration=!0}return e}function Ut({keyframes:t,restDelta:e,restSpeed:s,...n}){const r=t[0],i=t[t.length-1],o={done:!1,value:r},{stiffness:a,damping:l,mass:c,duration:u,velocity:h,isResolvedFromDuration:f}=Kn({...n,velocity:-R(n.velocity||0)}),d=h||0,m=l/(2*Math.sqrt(a*c)),g=i-r,b=R(Math.sqrt(a/c)),w=Math.abs(g)<5;s||(s=w?.01:2),e||(e=w?.005:.5);let M;if(m<1){const v=be(b,m);M=V=>{const T=Math.exp(-m*b*V);return i-T*((d+m*b*g)/v*Math.sin(v*V)+g*Math.cos(v*V))}}else if(m===1)M=v=>i-Math.exp(-b*v)*(g+(d+b*g)*v);else{const v=b*Math.sqrt(m*m-1);M=V=>{const T=Math.exp(-m*b*V),A=Math.min(v*V,300);return i-T*((d+m*b*g)*Math.sinh(A)+v*g*Math.cosh(A))/v}}return{calculatedDuration:f&&u||null,next:v=>{const V=M(v);if(f)o.done=v>=u;else{let T=d;v!==0&&(m<1?T=Wt(M,v,V):T=0);const A=Math.abs(T)<=s,D=Math.abs(i-V)<=e;o.done=A&&D}return o.value=o.done?i:V,o}}}function qe({keyframes:t,velocity:e=0,power:s=.8,timeConstant:n=325,bounceDamping:r=10,bounceStiffness:i=500,modifyTarget:o,min:a,max:l,restDelta:c=.5,restSpeed:u}){const h=t[0],f={done:!1,value:h},d=y=>a!==void 0&&yl,m=y=>a===void 0?l:l===void 0||Math.abs(a-y)-g*Math.exp(-y/n),v=y=>w+M(y),V=y=>{const C=M(y),P=v(y);f.done=Math.abs(C)<=c,f.value=f.done?w:P};let T,A;const D=y=>{d(f.value)&&(T=y,A=Ut({keyframes:[f.value,m(f.value)],velocity:Wt(v,y,f.value),damping:r,stiffness:i,restDelta:c,restSpeed:u}))};return D(0),{calculatedDuration:null,next:y=>{let C=!1;return!A&&T===void 0&&(C=!0,V(y),D(y)),T!==void 0&&y>=T?A.next(y-T):(!C&&V(y),f)}}}const $t=(t,e,s)=>(((1-3*s+3*e)*t+(3*s-6*e))*t+3*e)*t,Nn=1e-7,En=12;function kn(t,e,s,n,r){let i,o,a=0;do o=e+(s-e)/2,i=$t(o,n,r)-t,i>0?s=o:e=o;while(Math.abs(i)>Nn&&++akn(i,0,1,t,s);return i=>i===0||i===1?i:$t(r(i),e,n)}const Ln=Q(.42,0,1,1),jn=Q(0,0,.58,1),Gt=Q(.42,0,.58,1),_n=t=>Array.isArray(t)&&typeof t[0]!="number",zt=t=>e=>e<=.5?t(2*e)/2:(2-t(2*(1-e)))/2,Yt=t=>e=>1-t(1-e),De=t=>1-Math.sin(Math.acos(t)),Wn=Yt(De),Un=zt(De),Xt=Q(.33,1.53,.69,.99),Be=Yt(Xt),$n=zt(Be),Gn=t=>(t*=2)<1?.5*Be(t):.5*(2-Math.pow(2,-10*(t-1))),zn={linear:N,easeIn:Ln,easeInOut:Gt,easeOut:jn,circIn:De,circInOut:Un,circOut:Wn,backIn:Be,backInOut:$n,backOut:Xt,anticipate:Gn},He=t=>{if(Array.isArray(t)){At(t.length===4);const[e,s,n,r]=t;return Q(e,s,n,r)}else if(typeof t=="string")return zn[t];return t},qt=(t,e,s)=>{const n=e-t;return n===0?1:(s-t)/n},J=(t,e,s)=>t+(e-t)*s;function he(t,e,s){return s<0&&(s+=1),s>1&&(s-=1),s<1/6?t+(e-t)*6*s:s<1/2?e:s<2/3?t+(e-t)*(2/3-s)*6:t}function Yn({hue:t,saturation:e,lightness:s,alpha:n}){t/=360,e/=100,s/=100;let r=0,i=0,o=0;if(!e)r=i=o=s;else{const a=s<.5?s*(1+e):s+e-s*e,l=2*s-a;r=he(l,a,t+1/3),i=he(l,a,t),o=he(l,a,t-1/3)}return{red:Math.round(r*255),green:Math.round(i*255),blue:Math.round(o*255),alpha:n}}const fe=(t,e,s)=>{const n=t*t,r=s*(e*e-n)+n;return r<0?0:Math.sqrt(r)},Xn=[ye,B,k],qn=t=>Xn.find(e=>e.test(t));function Ze(t){const e=qn(t);let s=e.parse(t);return e===k&&(s=Yn(s)),s}const Qe=(t,e)=>{const s=Ze(t),n=Ze(e),r={...s};return i=>(r.red=fe(s.red,n.red,i),r.green=fe(s.green,n.green,i),r.blue=fe(s.blue,n.blue,i),r.alpha=J(s.alpha,n.alpha,i),B.transform(r))};function Te(t,e){return s=>s>0?e:t}function Hn(t,e){return s=>J(t,e,s)}function Ie(t){return typeof t=="number"?Hn:typeof t=="string"?Ae(t)?Te:x.test(t)?Qe:Jn:Array.isArray(t)?Ht:typeof t=="object"?x.test(t)?Qe:Zn:Te}function Ht(t,e){const s=[...t],n=s.length,r=t.map((i,o)=>Ie(i)(i,e[o]));return i=>{for(let o=0;o{for(const i in n)s[i]=n[i](r);return s}}function Qn(t,e){var s;const n=[],r={color:0,var:0,number:0};for(let i=0;i{const s=$.createTransformer(e),n=re(t),r=re(e);return n.indexes.var.length===r.indexes.var.length&&n.indexes.color.length===r.indexes.color.length&&n.indexes.number.length>=r.indexes.number.length?Pe(Ht(Qn(n,r),r.values),s):Te(t,e)};function Zt(t,e,s){return typeof t=="number"&&typeof e=="number"&&typeof s=="number"?J(t,e,s):Ie(t)(t,e)}function er(t,e,s){const n=[],r=s||Zt,i=t.length-1;for(let o=0;oe[0];if(i===2&&t[0]===t[1])return()=>e[1];t[0]>t[i-1]&&(t=[...t].reverse(),e=[...e].reverse());const o=er(e,n,r),a=o.length,l=c=>{let u=0;if(a>1)for(;ul(_(t[0],t[i-1],c)):l}function sr(t,e){const s=t[t.length-1];for(let n=1;n<=e;n++){const r=qt(0,e,n);t.push(J(s,1,r))}}function nr(t){const e=[0];return sr(e,t.length-1),e}function rr(t,e){return t.map(s=>s*e)}function ir(t,e){return t.map(()=>e||Gt).splice(0,t.length-1)}function ie({duration:t=300,keyframes:e,times:s,ease:n="easeInOut"}){const r=_n(n)?n.map(He):He(n),i={done:!1,value:e[0]},o=rr(s&&s.length===e.length?s:nr(e),t),a=tr(o,e,{ease:Array.isArray(r)?r:ir(e,r)});return{calculatedDuration:t,next:l=>(i.value=a(l),i.done=l>=t,i)}}const Je=2e4;function or(t){let e=0;const s=50;let n=t.next(e);for(;!n.done&&e=Je?1/0:e}const ar=t=>{const e=({timestamp:s})=>t(s);return{start:()=>O.update(e,!0),stop:()=>pe(e),now:()=>ne.isProcessing?ne.timestamp:j.now()}},lr={decay:qe,inertia:qe,tween:ie,keyframes:ie,spring:Ut},ur=t=>t/100;class Ke extends jt{constructor({KeyframeResolver:e=Fe,...s}){super(s),this.holdTime=null,this.startTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.state="idle";const{name:n,motionValue:r,keyframes:i}=this.options,o=(a,l)=>this.onKeyframesResolved(a,l);n&&r&&r.owner?this.resolver=r.owner.resolveKeyframes(i,o,n,r):this.resolver=new e(i,o,n,r),this.resolver.scheduleResolve()}initPlayback(e){const{type:s="keyframes",repeat:n=0,repeatDelay:r=0,repeatType:i,velocity:o=0}=this.options,a=lr[s]||ie;let l,c;a!==ie&&typeof e[0]!="number"&&(l=Pe(ur,Zt(e[0],e[1])),e=[0,100]);const u=a({...this.options,keyframes:e});i==="mirror"&&(c=a({...this.options,keyframes:[...e].reverse(),velocity:-o})),u.calculatedDuration===null&&(u.calculatedDuration=or(u));const{calculatedDuration:h}=u,f=h+r,d=f*(n+1)-r;return{generator:u,mirroredGenerator:c,mapPercentToKeyframes:l,calculatedDuration:h,resolvedDuration:f,totalDuration:d}}onPostResolved(){const{autoplay:e=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!e?this.pause():this.state=this.pendingPlayState}tick(e,s=!1){const{resolved:n}=this;if(!n){const{keyframes:y}=this.options;return{done:!0,value:y[y.length-1]}}const{finalKeyframe:r,generator:i,mirroredGenerator:o,mapPercentToKeyframes:a,keyframes:l,calculatedDuration:c,totalDuration:u,resolvedDuration:h}=n;if(this.startTime===null)return i.next(0);const{delay:f,repeat:d,repeatType:m,repeatDelay:g,onUpdate:b}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-u/this.speed,this.startTime)),s?this.currentTime=e:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(e-this.startTime)*this.speed;const w=this.currentTime-f*(this.speed>=0?1:-1),M=this.speed>=0?w<0:w>u;this.currentTime=Math.max(w,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=u);let v=this.currentTime,V=i;if(d){const y=Math.min(this.currentTime,u)/h;let C=Math.floor(y),P=y%1;!P&&y>=1&&(P=1),P===1&&C--,C=Math.min(C,d+1),!!(C%2)&&(m==="reverse"?(P=1-P,g&&(P-=g/h)):m==="mirror"&&(V=o)),v=_(0,1,P)*h}const T=M?{done:!1,value:l[0]}:V.next(v);a&&(T.value=a(T.value));let{done:A}=T;!M&&c!==null&&(A=this.speed>=0?this.currentTime>=u:this.currentTime<=0);const D=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&A);return D&&r!==void 0&&(T.value=le(l,this.options,r)),b&&b(T.value),D&&this.finish(),T}get duration(){const{resolved:e}=this;return e?R(e.calculatedDuration):0}get time(){return R(this.currentTime)}set time(e){e=I(e),this.currentTime=e,this.holdTime!==null||this.speed===0?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.speed)}get speed(){return this.playbackSpeed}set speed(e){const s=this.playbackSpeed!==e;this.playbackSpeed=e,s&&(this.time=R(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:e=ar,onPlay:s}=this.options;this.driver||(this.driver=e(r=>this.tick(r))),s&&s();const n=this.driver.now();this.holdTime!==null?this.startTime=n-this.holdTime:(!this.startTime||this.state==="finished")&&(this.startTime=n),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var e;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(e=this.currentTime)!==null&&e!==void 0?e:0}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:e}=this.options;e&&e()}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:e}=this.options;e&&e()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}}const Qt=t=>Array.isArray(t)&&typeof t[0]=="number";function Jt(t){return!!(!t||typeof t=="string"&&t in Ne||Qt(t)||Array.isArray(t)&&t.every(Jt))}const G=([t,e,s,n])=>`cubic-bezier(${t}, ${e}, ${s}, ${n})`,Ne={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:G([0,.65,.55,1]),circOut:G([.55,0,1,.45]),backIn:G([.31,.01,.66,-.59]),backOut:G([.33,1.53,.69,.99])};function cr(t){return es(t)||Ne.easeOut}function es(t){if(t)return Qt(t)?G(t):Array.isArray(t)?t.map(cr):Ne[t]}function hr(t,e,s,{delay:n=0,duration:r=300,repeat:i=0,repeatType:o="loop",ease:a,times:l}={}){const c={[e]:s};l&&(c.offset=l);const u=es(a);return Array.isArray(u)&&(c.easing=u),t.animate(c,{delay:n,duration:r,easing:Array.isArray(u)?"linear":u,fill:"both",iterations:i+1,direction:o==="reverse"?"alternate":"normal"})}const fr=xn(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),dr=new Set(["opacity","clipPath","filter","transform"]),oe=10,pr=2e4;function mr(t){return t.type==="spring"||t.name==="backgroundColor"||!Jt(t.ease)}function gr(t,e){const s=new Ke({...e,keyframes:t,repeat:0,delay:0,isGenerator:!0});let n={done:!1,value:t[0]};const r=[];let i=0;for(;!n.done&&ithis.onKeyframesResolved(i,o),s,n),this.resolver.scheduleResolve()}initPlayback(e,s){var n;let{duration:r=300,times:i,ease:o,type:a,motionValue:l,name:c}=this.options;if(!(!((n=l.owner)===null||n===void 0)&&n.current))return!1;if(mr(this.options)){const{onComplete:h,onUpdate:f,motionValue:d,...m}=this.options,g=gr(e,m);e=g.keyframes,e.length===1&&(e[1]=e[0]),r=g.duration,i=g.times,o=g.ease,a="keyframes"}const u=hr(l.owner.current,c,e,{...this.options,duration:r,times:i,ease:o});return u.startTime=j.now(),this.pendingTimeline?(u.timeline=this.pendingTimeline,this.pendingTimeline=void 0):u.onfinish=()=>{const{onComplete:h}=this.options;l.set(le(e,this.options,s)),h&&h(),this.cancel(),this.resolveFinishedPromise()},{animation:u,duration:r,times:i,type:a,ease:o,keyframes:e}}get duration(){const{resolved:e}=this;if(!e)return 0;const{duration:s}=e;return R(s)}get time(){const{resolved:e}=this;if(!e)return 0;const{animation:s}=e;return R(s.currentTime||0)}set time(e){const{resolved:s}=this;if(!s)return;const{animation:n}=s;n.currentTime=I(e)}get speed(){const{resolved:e}=this;if(!e)return 1;const{animation:s}=e;return s.playbackRate}set speed(e){const{resolved:s}=this;if(!s)return;const{animation:n}=s;n.playbackRate=e}get state(){const{resolved:e}=this;if(!e)return"idle";const{animation:s}=e;return s.playState}attachTimeline(e){if(!this._resolved)this.pendingTimeline=e;else{const{resolved:s}=this;if(!s)return N;const{animation:n}=s;n.timeline=e,n.onfinish=null}return N}play(){if(this.isStopped)return;const{resolved:e}=this;if(!e)return;const{animation:s}=e;s.playState==="finished"&&this.updateFinishedPromise(),s.play()}pause(){const{resolved:e}=this;if(!e)return;const{animation:s}=e;s.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;const{resolved:e}=this;if(!e)return;const{animation:s,keyframes:n,duration:r,type:i,ease:o,times:a}=e;if(!(s.playState==="idle"||s.playState==="finished")){if(this.time){const{motionValue:l,onUpdate:c,onComplete:u,...h}=this.options,f=new Ke({...h,keyframes:n,duration:r,type:i,ease:o,times:a,isGenerator:!0}),d=I(this.time);l.setWithVelocity(f.sample(d-oe).value,f.sample(d).value,oe)}this.cancel()}}complete(){const{resolved:e}=this;e&&e.animation.finish()}cancel(){const{resolved:e}=this;e&&e.animation.cancel()}static supports(e){const{motionValue:s,name:n,repeatDelay:r,repeatType:i,damping:o,type:a}=e;return fr()&&n&&dr.has(n)&&s&&s.owner&&s.owner.current instanceof HTMLElement&&!s.owner.getProps().onUpdate&&!r&&i!=="mirror"&&o!==0&&a!=="inertia"}}const ts=(t,e,s,n={},r,i)=>o=>{const a=St(n,t)||{},l=a.delay||n.delay||0;let{elapsed:c=0}=n;c=c-I(l);let u={keyframes:Array.isArray(s)?s:[null,s],ease:"easeOut",velocity:e.getVelocity(),...a,delay:-c,onUpdate:f=>{e.set(f),a.onUpdate&&a.onUpdate(f)},onComplete:()=>{o(),a.onComplete&&a.onComplete()},name:t,motionValue:e,element:i?void 0:r};Hs(a)||(u={...u,...qs(t,u)}),u.duration&&(u.duration=I(u.duration)),u.repeatDelay&&(u.repeatDelay=I(u.repeatDelay)),u.from!==void 0&&(u.keyframes[0]=u.from);let h=!1;if((u.type===!1||u.duration===0&&!u.repeatDelay)&&(u.duration=0,u.delay===0&&(h=!0)),h&&!i&&e.get()!==void 0){const f=le(u.keyframes,a);if(f!==void 0){O.update(()=>{u.onUpdate(f),u.onComplete()});return}}return!i&&et.supports(u)?new et(u):new Ke(u)};function ae(t){return!!(S(t)&&t.add)}function yr(t,e){t.indexOf(e)===-1&&t.push(e)}function vr(t,e){const s=t.indexOf(e);s>-1&&t.splice(s,1)}class ss{constructor(){this.subscriptions=[]}add(e){return yr(this.subscriptions,e),()=>vr(this.subscriptions,e)}notify(e,s,n){const r=this.subscriptions.length;if(r)if(r===1)this.subscriptions[0](e,s,n);else for(let i=0;i!isNaN(parseFloat(t));class Tr{constructor(e,s={}){this.version="11.1.5",this.canTrackVelocity=!1,this.events={},this.updateAndNotify=(n,r=!0)=>{const i=j.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(n),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),r&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(e),this.canTrackVelocity=br(this.current),this.owner=s.owner}setCurrent(e){this.current=e,this.updatedAt=j.now()}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on("change",e)}on(e,s){this.events[e]||(this.events[e]=new ss);const n=this.events[e].add(s);return e==="change"?()=>{n(),O.read(()=>{this.events.change.getSize()||this.stop()})}:n}clearListeners(){for(const e in this.events)this.events[e].clear()}attach(e,s){this.passiveEffect=e,this.stopPassiveEffect=s}set(e,s=!0){!s||!this.passiveEffect?this.updateAndNotify(e,s):this.passiveEffect(e,this.updateAndNotify)}setWithVelocity(e,s,n){this.set(s),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-n}jump(e,s=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,s&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const e=j.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||e-this.updatedAt>tt)return 0;const s=Math.min(this.updatedAt-this.prevUpdatedAt,tt);return _t(parseFloat(this.current)-parseFloat(this.prevFrameValue),s)}start(e){return this.stop(),new Promise(s=>{this.hasAnimated=!0,this.animation=e(s),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function X(t,e){return new Tr(t,e)}function Vr(t,e,s){t.hasValue(e)?t.getValue(e).set(s):t.addValue(e,X(s))}function xr(t,e){const s=$s(t,e);let{transitionEnd:n={},transition:r={},...i}=s||{};i={...i,...n};for(const o in i){const a=js(i[o]);Vr(t,o,a)}}function wr({protectedKeys:t,needsAnimating:e},s){const n=t.hasOwnProperty(s)&&e[s]!==!0;return e[s]=!1,n}function $r(t,e,{delay:s=0,transitionOverride:n,type:r}={}){var i;let{transition:o=t.getDefaultTransition(),transitionEnd:a,...l}=e;const c=t.getValue("willChange");n&&(o=n);const u=[],h=r&&t.animationState&&t.animationState.getState()[r];for(const f in l){const d=t.getValue(f,(i=t.latestValues[f])!==null&&i!==void 0?i:null),m=l[f];if(m===void 0||h&&wr(h,f))continue;const g={delay:s,elapsed:0,...St(o||{},f)};let b=!1;if(window.HandoffAppearAnimations){const v=t.getProps()[hs];if(v){const V=window.HandoffAppearAnimations(v,f);V!==null&&(g.elapsed=V,b=!0)}}d.start(ts(f,d,m,t.shouldReduceMotion&&E.has(f)?{type:!1}:g,t,b));const w=d.animation;w&&(ae(c)&&(c.add(f),w.then(()=>c.remove(f))),u.push(w))}return a&&Promise.all(u).then(()=>{O.update(()=>{a&&xr(t,a)})}),u}const st=()=>({translate:0,scale:1,origin:0,originPoint:0}),Gr=()=>({x:st(),y:st()}),nt=()=>({min:0,max:0}),ns=()=>({x:nt(),y:nt()});function Sr({top:t,left:e,right:s,bottom:n}){return{x:{min:e,max:s},y:{min:t,max:n}}}function zr({x:t,y:e}){return{top:e.min,right:t.max,bottom:e.max,left:t.min}}function Mr(t,e){if(!e)return t;const s=e({x:t.left,y:t.top}),n=e({x:t.right,y:t.bottom});return{top:s.y,left:s.x,bottom:n.y,right:n.x}}function de(t){return t===void 0||t===1}function Ar({scale:t,scaleX:e,scaleY:s}){return!de(t)||!de(e)||!de(s)}function Cr(t){return Ar(t)||Pr(t)||t.z||t.rotate||t.rotateX||t.rotateY||t.skewX||t.skewY}function Pr(t){return rt(t.x)||rt(t.y)}function rt(t){return t&&t!=="0%"}function it(t,e,s){const n=t-s,r=e*n;return s+r}function ot(t,e,s,n,r){return r!==void 0&&(t=it(t,r,n)),it(t,s,n)+e}function Ve(t,e=0,s=1,n,r){t.min=ot(t.min,e,s,n,r),t.max=ot(t.max,e,s,n,r)}function Fr(t,{x:e,y:s}){Ve(t.x,e.translate,e.scale,e.originPoint),Ve(t.y,s.translate,s.scale,s.originPoint)}function Yr(t,e,s,n=!1){const r=s.length;if(!r)return;e.x=e.y=1;let i,o;for(let a=0;a1.0000000000001||t<.999999999999?t:1}function lt(t,e){t.min=t.min+e,t.max=t.max+e}function ut(t,e,[s,n,r]){const i=e[r]!==void 0?e[r]:.5,o=J(t.min,t.max,i);Ve(t,e[s],e[n],o,e.scale)}const Rr=["x","scaleX","originX"],Or=["y","scaleY","originY"];function ct(t,e){ut(t.x,e,Rr),ut(t.y,e,Or)}function rs(t,e){return Sr(Mr(t.getBoundingClientRect(),e))}function Xr(t,e,s){const n=rs(t,s),{scroll:r}=e;return r&&(lt(n.x,r.offset.x),lt(n.y,r.offset.y)),n}function qr(t){return t instanceof SVGElement&&t.tagName!=="svg"}function Hr(t,e,s){const n=S(t)?t:X(t);return n.start(ts("",n,e,s)),n.animation}const xe={current:null},is={current:!1};function Dr(){if(is.current=!0,!!us)if(window.matchMedia){const t=window.matchMedia("(prefers-reduced-motion)"),e=()=>xe.current=t.matches;t.addListener(e),e()}else xe.current=!1}function Br(t,e,s){const{willChange:n}=e;for(const r in e){const i=e[r],o=s[r];if(S(i))t.addValue(r,i),ae(n)&&n.add(r);else if(S(o))t.addValue(r,X(i,{owner:t})),ae(n)&&n.remove(r);else if(o!==i)if(t.hasValue(r)){const a=t.getValue(r);a.liveStyle===!0?a.jump(i):a.hasAnimated||a.set(i)}else{const a=t.getStaticValue(r);t.addValue(r,X(a!==void 0?a:i,{owner:t}))}}for(const r in s)e[r]===void 0&&t.removeValue(r);return e}const ht=new WeakMap,Ir=[...Rt,x,$],Kr=t=>Ir.find(Ft(t)),os=Object.keys(Me),Nr=os.length,ft=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],Er=Se.length;function as(t){if(t)return t.options.allowProjection!==!1?t.projection:as(t.parent)}class kr{scrapeMotionValuesFromProps(e,s,n){return{}}constructor({parent:e,props:s,presenceContext:n,reducedMotionConfig:r,blockInitialAnimation:i,visualState:o},a={}){this.resolveKeyframes=(f,d,m,g)=>new this.KeyframeResolver(f,d,m,g,this),this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Fe,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.scheduleRender=()=>O.render(this.render,!1,!0);const{latestValues:l,renderState:c}=o;this.latestValues=l,this.baseTarget={...l},this.initialValues=s.initial?{...l}:{},this.renderState=c,this.parent=e,this.props=s,this.presenceContext=n,this.depth=e?e.depth+1:0,this.reducedMotionConfig=r,this.options=a,this.blockInitialAnimation=!!i,this.isControllingVariants=pt(s),this.isVariantNode=bs(s),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(e&&e.current);const{willChange:u,...h}=this.scrapeMotionValuesFromProps(s,{},this);for(const f in h){const d=h[f];l[f]!==void 0&&S(d)&&(d.set(l[f],!1),ae(u)&&u.add(f))}}mount(e){this.current=e,ht.set(e,this),this.projection&&!this.projection.instance&&this.projection.mount(e),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((s,n)=>this.bindToMotionValue(n,s)),is.current||Dr(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:xe.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){var e;ht.delete(this.current),this.projection&&this.projection.unmount(),pe(this.notifyUpdate),pe(this.render),this.valueSubscriptions.forEach(s=>s()),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const s in this.events)this.events[s].clear();for(const s in this.features)(e=this.features[s])===null||e===void 0||e.unmount();this.current=null}bindToMotionValue(e,s){const n=E.has(e),r=s.on("change",o=>{this.latestValues[e]=o,this.props.onUpdate&&O.preRender(this.notifyUpdate),n&&this.projection&&(this.projection.isTransformDirty=!0)}),i=s.on("renderRequest",this.scheduleRender);this.valueSubscriptions.set(e,()=>{r(),i(),s.owner&&s.stop()})}sortNodePosition(e){return!this.current||!this.sortInstanceNodePosition||this.type!==e.type?0:this.sortInstanceNodePosition(this.current,e.current)}loadFeatures({children:e,...s},n,r,i){let o,a;for(let l=0;lthis.scheduleRender(),animationType:typeof c=="string"?c:"both",initialPromotionConfig:i,layoutScroll:f,layoutRoot:d})}return a}updateFeatures(){for(const e in this.features){const s=this.features[e];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}triggerBuild(){this.build(this.renderState,this.latestValues,this.options,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):ns()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,s){this.latestValues[e]=s}update(e,s){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=s;for(let n=0;ns.variantChildren.delete(e)}addValue(e,s){const n=this.values.get(e);s!==n&&(n&&this.removeValue(e),this.bindToMotionValue(e,s),this.values.set(e,s),this.latestValues[e]=s.get())}removeValue(e){this.values.delete(e);const s=this.valueSubscriptions.get(e);s&&(s(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,s){if(this.props.values&&this.props.values[e])return this.props.values[e];let n=this.values.get(e);return n===void 0&&s!==void 0&&(n=X(s===null?void 0:s,{owner:this}),this.addValue(e,n)),n}readValue(e,s){var n;let r=this.latestValues[e]!==void 0||!this.current?this.latestValues[e]:(n=this.getBaseTargetFromProps(this.props,e))!==null&&n!==void 0?n:this.readValueFromInstance(this.current,e,this.options);return r!=null&&(typeof r=="string"&&(Ct(r)||Mt(r))?r=parseFloat(r):!Kr(r)&&$.test(s)&&(r=kt(e,s)),this.setBaseTarget(e,S(r)?r.get():r)),S(r)?r.get():r}setBaseTarget(e,s){this.baseTarget[e]=s}getBaseTarget(e){var s;const{initial:n}=this.props;let r;if(typeof n=="string"||typeof n=="object"){const o=wt(this.props,n,(s=this.presenceContext)===null||s===void 0?void 0:s.custom);o&&(r=o[e])}if(n&&r!==void 0)return r;const i=this.getBaseTargetFromProps(this.props,e);return i!==void 0&&!S(i)?i:this.initialValues[e]!==void 0&&r===void 0?void 0:this.baseTarget[e]}on(e,s){return this.events[e]||(this.events[e]=new ss),this.events[e].add(s)}notify(e,...s){this.events[e]&&this.events[e].notify(...s)}}class ls extends kr{constructor(){super(...arguments),this.KeyframeResolver=Lt}sortInstanceNodePosition(e,s){return e.compareDocumentPosition(s)&2?1:-1}getBaseTargetFromProps(e,s){return e.style?e.style[s]:void 0}removeValueFromRenderState(e,{vars:s,style:n}){delete s[e],delete n[e]}}function Lr(t){return window.getComputedStyle(t)}class Zr extends ls{constructor(){super(...arguments),this.type="html"}readValueFromInstance(e,s){if(E.has(s)){const n=Oe(s);return n&&n.default||0}else{const n=Lr(e),r=(yt(s)?n.getPropertyValue(s):n[s])||0;return typeof r=="string"?r.trim():r}}measureInstanceViewportBox(e,{transformPagePoint:s}){return rs(e,s)}build(e,s,n,r){bt(e,s,n,r.transformTemplate)}scrapeMotionValuesFromProps(e,s,n){return xt(e,s,n)}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:e}=this.props;S(e)&&(this.childSubscription=e.on("change",s=>{this.current&&(this.current.textContent=`${s}`)}))}renderInstance(e,s,n,r){Tt(e,s,n,r)}}class Qr extends ls{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1}getBaseTargetFromProps(e,s){return e[s]}readValueFromInstance(e,s){if(E.has(s)){const n=Oe(s);return n&&n.default||0}return s=Vt.has(s)?s:we(s),e.getAttribute(s)}measureInstanceViewportBox(){return ns()}scrapeMotionValuesFromProps(e,s,n){return ks(e,s,n)}build(e,s,n,r){Ks(e,s,n,this.isSVGTag,r.transformTemplate)}renderInstance(e,s,n,r){Es(e,s,n,r)}mount(e){this.isSVGTag=Ns(e.tagName),super.mount(e)}}export{p as $,Me as A,Ts as B,bt as C,Ks as D,Ns as E,Wr as F,bs as G,Zr as H,ys as I,wt as J,ks as K,Es as L,xt as M,Pe as N,N as O,$s as P,Ls as Q,vs as R,Qr as S,ne as T,_ as U,ns as V,Xr as W,zr as X,ts as Y,L as Z,Sr as _,qr as a,$ as a0,_r as a1,Wn as a2,it as a3,yr as a4,j as a5,ss as a6,St as a7,Ur as a8,Cr as a9,lt as aa,ct as ab,Ar as ac,Fr as ad,Pr as ae,Yr as af,Gr as ag,mt as ah,or as b,pe as c,Je as d,R as e,O as f,_n as g,J as h,At as i,S as j,nr as k,sr as l,xn as m,I as n,Hr as o,qt as p,$r as q,vr as r,Ut as s,us as t,ms as u,ht as v,hs as w,gs as x,pt as y,dt as z}; diff --git a/_astro/SearchPanel.DIl3Gmhr.css b/_astro/SearchPanel.DIl3Gmhr.css new file mode 100644 index 0000000..c043f23 --- /dev/null +++ b/_astro/SearchPanel.DIl3Gmhr.css @@ -0,0 +1 @@ +/*! @docsearch/css 3.6.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 rgba(3,4,9,.30196078431372547);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}.DocSearch-Button-Key--pressed{transform:translate3d(0,1px,0);box-shadow:var(--docsearch-key-pressed-shadow)}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::-moz-placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}} diff --git a/_astro/SearchPanel.Qod9FXCK.js b/_astro/SearchPanel.Qod9FXCK.js new file mode 100644 index 0000000..5f2d574 --- /dev/null +++ b/_astro/SearchPanel.Qod9FXCK.js @@ -0,0 +1,13 @@ +import{j as wt}from"./jsx-runtime.CPK7-dcL.js";import{R as qr,s as Fr}from"./searchPanel.DWea59xz.js";import{c as Ze}from"./config.tnfO5ZdO.js";import{c as Br}from"./react.DwV23UbX.js";import{R as i,r as Kr}from"./index.BufDd4G-.js";import"./index.BmB7TLDX.js";import"./_commonjsHelpers.Cpj98o6Y.js";function Ur(){return i.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20","aria-hidden":"true"},i.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function Vr(e){return{current:e}}function sr(e,t){var r=void 0;return function(){for(var n=arguments.length,o=new Array(n),a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r=3,c=n===2&&o>=4,l=n===1&&o>=10;return a||c||l}var nn=["items"],on=["items"];function me(e){"@babel/helpers - typeof";return me=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},me(e)}function $e(e){return un(e)||ln(e)||cn(e)||an()}function an(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function cn(e,t){if(e){if(typeof e=="string")return tt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return tt(e,t)}}function ln(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function un(e){if(Array.isArray(e))return tt(e)}function tt(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function sn(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,a;for(a=0;a=0)&&(r[o]=e[o]);return r}function At(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function X(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:20,r=[],n=0;n0&&r("clickedObjectIDsAfterSearch",De(a),a[0].items)},clickedObjectIDs:function(){for(var o=arguments.length,a=new Array(o),c=0;c0&&r("clickedObjectIDs",De(a),a[0].items)},clickedFilters:function(){for(var o=arguments.length,a=new Array(o),c=0;c0&&e.apply(void 0,["clickedFilters"].concat(a))},convertedObjectIDsAfterSearch:function(){for(var o=arguments.length,a=new Array(o),c=0;c0&&r("convertedObjectIDsAfterSearch",De(a),a[0].items)},convertedObjectIDs:function(){for(var o=arguments.length,a=new Array(o),c=0;c0&&r("convertedObjectIDs",De(a),a[0].items)},convertedFilters:function(){for(var o=arguments.length,a=new Array(o),c=0;c0&&e.apply(void 0,["convertedFilters"].concat(a))},viewedObjectIDs:function(){for(var o=arguments.length,a=new Array(o),c=0;c0&&a.reduce(function(l,u){var s=u.items,p=mr(u,on);return[].concat($e(l),$e(dn(X(X({},p),{},{objectIDs:s?.map(function(f){var m=f.objectID;return m})||p.objectIDs})).map(function(f){return{items:s,payload:f}})))},[]).forEach(function(l){var u=l.items,s=l.payload;return r("viewedObjectIDs",[s],u)})},viewedFilters:function(){for(var o=arguments.length,a=new Array(o),c=0;c0&&e.apply(void 0,["viewedFilters"].concat(a))}}}function hn(e){var t=e.items,r=t.reduce(function(n,o){var a;return n[o.__autocomplete_indexName]=((a=n[o.__autocomplete_indexName])!==null&&a!==void 0?a:[]).concat(o),n},{});return Object.keys(r).map(function(n){var o=r[n];return{index:n,items:o,algoliaSource:["autocomplete"]}})}function Ge(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function pe(e){"@babel/helpers - typeof";return pe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pe(e)}function G(e){return Sn(e)||bn(e)||gn(e)||yn()}function yn(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gn(e,t){if(e){if(typeof e=="string")return rt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return rt(e,t)}}function bn(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Sn(e){if(Array.isArray(e))return rt(e)}function rt(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&jn({onItemsChange:n,items:m,insights:l,state:f}))}},0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(f){var m=f.setContext,b=f.onSelect,h=f.onActive;c("addAlgoliaAgent","insights-plugin"),m({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:l}}),b(function(v){var y=v.item,g=v.state,d=v.event;Ge(y)&&o({state:g,event:d,insights:l,item:y,insightsEvents:[q({eventName:"Item Selected"},jt({item:y,items:u.current}))]})}),h(function(v){var y=v.item,g=v.state,d=v.event;Ge(y)&&a({state:g,event:d,insights:l,item:y,insightsEvents:[q({eventName:"Item Active"},jt({item:y,items:u.current}))]})})},onStateChange:function(f){var m=f.state;s({state:m})},__autocomplete_pluginOptions:e}}function An(e){return q({onItemsChange:function(r){var n=r.insights,o=r.insightsEvents;n.viewedObjectIDs.apply(n,G(o.map(function(a){return q(q({},a),{},{algoliaSource:[].concat(G(a.algoliaSource||[]),["autocomplete-internal"])})})))},onSelect:function(r){var n=r.insights,o=r.insightsEvents;n.clickedObjectIDsAfterSearch.apply(n,G(o.map(function(a){return q(q({},a),{},{algoliaSource:[].concat(G(a.algoliaSource||[]),["autocomplete-internal"])})})))},onActive:Me},e)}function $n(e){var t="[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete";try{var r=e.document.createElement("script");r.async=!0,r.src=En,r.onerror=function(){console.error(t)},document.body.appendChild(r)}catch{console.error(t)}}function ke(e,t){var r=t;return{then:function(o,a){return ke(e.then(Ce(o,r,e),Ce(a,r,e)),r)},catch:function(o){return ke(e.catch(Ce(o,r,e)),r)},finally:function(o){return o&&r.onCancelList.push(o),ke(e.finally(Ce(o&&function(){return r.onCancelList=[],o()},r,e)),r)},cancel:function(){r.isCanceled=!0;var o=r.onCancelList;r.onCancelList=[],o.forEach(function(a){a()})},isCanceled:function(){return r.isCanceled===!0}}}function Dt(e){return ke(e,{isCanceled:!1,onCancelList:[]})}function Ce(e,t,r){return e?function(o){return t.isCanceled?o:e(o)}:r}function Dn(){var e=[];return{add:function(r){return e.push(r),r.finally(function(){e=e.filter(function(n){return n!==r})})},cancelAll:function(){e.forEach(function(r){return r.cancel()})},isEmpty:function(){return e.length===0}}}function Cn(){var e=-1,t=-1,r=void 0;return function(o){e++;var a=e;return Promise.resolve(o).then(function(c){return r&&a=r?n===null?null:0:o}function Tt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function xt(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0},reshape:function(c){var l=c.sources;return l}},e),{},{id:(r=e.id)!==null&&r!==void 0?r:zr(),plugins:o,initialState:Q({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(c){var l;(l=e.onStateChange)===null||l===void 0||l.call(e,c),o.forEach(function(u){var s;return(s=u.onStateChange)===null||s===void 0?void 0:s.call(u,c)})},onSubmit:function(c){var l;(l=e.onSubmit)===null||l===void 0||l.call(e,c),o.forEach(function(u){var s;return(s=u.onSubmit)===null||s===void 0?void 0:s.call(u,c)})},onReset:function(c){var l;(l=e.onReset)===null||l===void 0||l.call(e,c),o.forEach(function(u){var s;return(s=u.onReset)===null||s===void 0?void 0:s.call(u,c)})},getSources:function(c){return Promise.all([].concat(Gn(o.map(function(l){return l.getSources})),[e.getSources]).filter(Boolean).map(function(l){return Nn(l,c)})).then(function(l){return fe(l)}).then(function(l){return l.map(function(u){return Q(Q({},u),{},{onSelect:function(p){u.onSelect(p),t.forEach(function(f){var m;return(m=f.onSelect)===null||m===void 0?void 0:m.call(f,p)})},onActive:function(p){u.onActive(p),t.forEach(function(f){var m;return(m=f.onActive)===null||m===void 0?void 0:m.call(f,p)})},onResolve:function(p){u.onResolve(p),t.forEach(function(f){var m;return(m=f.onResolve)===null||m===void 0?void 0:m.call(f,p)})}})})})},navigator:Q({navigate:function(c){var l=c.itemUrl;n.location.assign(l)},navigateNewTab:function(c){var l=c.itemUrl,u=n.open(l,"_blank","noopener");u?.focus()},navigateNewWindow:function(c){var l=c.itemUrl;n.open(l,"_blank","noopener")}},e.navigator)})}function ge(e){"@babel/helpers - typeof";return ge=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ge(e)}function kt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function xe(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function jo(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,a;for(a=0;a=0)&&(r[o]=e[o]);return r}var le=null,qt=Cn();function Y(e){var t=e.event,r=e.nextState,n=r===void 0?{}:r,o=e.props,a=e.query,c=e.refresh,l=e.store,u=Eo(e,Oo);le&&o.environment.clearTimeout(le);var s=u.setCollections,p=u.setIsOpen,f=u.setQuery,m=u.setActiveItemId,b=u.setStatus;if(f(a),m(o.defaultActiveItemId),!a&&o.openOnFocus===!1){var h,v=l.getState().collections.map(function(d){return ce(ce({},d),{},{items:[]})});b("idle"),s(v),p((h=n.isOpen)!==null&&h!==void 0?h:o.shouldPanelOpen({state:l.getState()}));var y=Dt(qt(v).then(function(){return Promise.resolve()}));return l.pendingRequests.add(y)}b("loading"),le=o.environment.setTimeout(function(){b("stalled")},o.stallThreshold);var g=Dt(qt(o.getSources(ce({query:a,refresh:c,state:l.getState()},u)).then(function(d){return Promise.all(d.map(function(S){return Promise.resolve(S.getItems(ce({query:a,refresh:c,state:l.getState()},u))).then(function(E){return go(E,S.sourceId,l.getState())})})).then(bo).then(function(S){return So(S,d,l)}).then(function(S){return lo({collections:S,props:o,state:l.getState()})})}))).then(function(d){var S;b("idle"),s(d);var E=o.shouldPanelOpen({state:l.getState()});p((S=n.isOpen)!==null&&S!==void 0?S:o.openOnFocus&&!a&&E||E);var I=ee(l.getState());if(l.getState().activeItemId!==null&&I){var P=I.item,A=I.itemInputValue,$=I.itemUrl,N=I.source;N.onActive(ce({event:t,item:P,itemInputValue:A,itemUrl:$,refresh:c,source:N,state:l.getState()},u))}}).finally(function(){b("idle"),le&&o.environment.clearTimeout(le)});return l.pendingRequests.add(g)}function Oe(e){"@babel/helpers - typeof";return Oe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Oe(e)}var _o=["event","props","refresh","store"];function Ft(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function U(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function To(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,a;for(a=0;a=0)&&(r[o]=e[o]);return r}function xo(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,a=Co(e,_o);if(t.key==="ArrowUp"||t.key==="ArrowDown"){var c=function(){var h=r.environment.document.getElementById("".concat(r.id,"-item-").concat(o.getState().activeItemId));h&&(h.scrollIntoViewIfNeeded?h.scrollIntoViewIfNeeded(!1):h.scrollIntoView(!1))},l=function(){var h=ee(o.getState());if(o.getState().activeItemId!==null&&h){var v=h.item,y=h.itemInputValue,g=h.itemUrl,d=h.source;d.onActive(U({event:t,item:v,itemInputValue:y,itemUrl:g,refresh:n,source:d,state:o.getState()},a))}};t.preventDefault(),o.getState().isOpen===!1&&(r.openOnFocus||o.getState().query)?Y(U({event:t,props:r,query:o.getState().query,refresh:n,store:o},a)).then(function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),l(),setTimeout(c,0)}):(o.dispatch(t.key,{}),l(),c())}else if(t.key==="Escape")t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if(t.key==="Tab")o.dispatch("blur",null),o.pendingRequests.cancelAll();else if(t.key==="Enter"){if(o.getState().activeItemId===null||o.getState().collections.every(function(b){return b.items.length===0})){r.debug||o.pendingRequests.cancelAll();return}t.preventDefault();var u=ee(o.getState()),s=u.item,p=u.itemInputValue,f=u.itemUrl,m=u.source;if(t.metaKey||t.ctrlKey)f!==void 0&&(m.onSelect(U({event:t,item:s,itemInputValue:p,itemUrl:f,refresh:n,source:m,state:o.getState()},a)),r.navigator.navigateNewTab({itemUrl:f,item:s,state:o.getState()}));else if(t.shiftKey)f!==void 0&&(m.onSelect(U({event:t,item:s,itemInputValue:p,itemUrl:f,refresh:n,source:m,state:o.getState()},a)),r.navigator.navigateNewWindow({itemUrl:f,item:s,state:o.getState()}));else if(!t.altKey){if(f!==void 0){m.onSelect(U({event:t,item:s,itemInputValue:p,itemUrl:f,refresh:n,source:m,state:o.getState()},a)),r.navigator.navigate({itemUrl:f,item:s,state:o.getState()});return}Y(U({event:t,nextState:{isOpen:!1},props:r,query:p,refresh:n,store:o},a)).then(function(){m.onSelect(U({event:t,item:s,itemInputValue:p,itemUrl:f,refresh:n,source:m,state:o.getState()},a))})}}}function Ie(e){"@babel/helpers - typeof";return Ie=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ie(e)}var Ro=["props","refresh","store"],No=["inputElement","formElement","panelElement"],Lo=["inputElement"],ko=["inputElement","maxLength"],Mo=["sourceIndex"],Ho=["sourceIndex"],qo=["item","source","sourceIndex"];function Bt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function _(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Uo(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,a;for(a=0;a=0)&&(r[o]=e[o]);return r}function Vo(e){var t=e.props,r=e.refresh,n=e.store,o=V(e,Ro),a=function(v){var y=v.inputElement,g=v.formElement,d=v.panelElement,S=V(v,No);function E(I){var P=n.getState().isOpen||!n.pendingRequests.isEmpty();if(!(!P||I.target===y)){var A=[g,d].some(function($){return Mn($,I.target)});A===!1&&(n.dispatch("blur",null),t.debug||n.pendingRequests.cancelAll())}}return _({onTouchStart:E,onMouseDown:E,onTouchMove:function(P){n.getState().isOpen===!1||y!==t.environment.document.activeElement||P.target===y||y.blur()}},S)},c=function(v){return _({role:"combobox","aria-expanded":n.getState().isOpen,"aria-haspopup":"listbox","aria-owns":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},v)},l=function(v){v.inputElement;var y=V(v,Lo);return _({action:"",noValidate:!0,role:"search",onSubmit:function(d){var S;d.preventDefault(),t.onSubmit(_({event:d,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),(S=v.inputElement)===null||S===void 0||S.blur()},onReset:function(d){var S;d.preventDefault(),t.onReset(_({event:d,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),(S=v.inputElement)===null||S===void 0||S.focus()}},y)},u=function(v){var y;function g(D){(t.openOnFocus||n.getState().query)&&Y(_({event:D,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var d=v||{};d.inputElement;var S=d.maxLength,E=S===void 0?512:S,I=V(d,ko),P=ee(n.getState()),A=((y=t.environment.navigator)===null||y===void 0?void 0:y.userAgent)||"",$=qn(A),N=P!=null&&P.itemUrl&&!$?"go":"search";return _({"aria-autocomplete":"both","aria-activedescendant":n.getState().isOpen&&n.getState().activeItemId!==null?"".concat(t.id,"-item-").concat(n.getState().activeItemId):void 0,"aria-controls":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:n.getState().completion||n.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:N,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:E,type:"search",onChange:function(k){Y(_({event:k,props:t,query:k.currentTarget.value.slice(0,E),refresh:r,store:n},o))},onKeyDown:function(k){xo(_({event:k,props:t,refresh:r,store:n},o))},onFocus:g,onBlur:Me,onClick:function(k){v.inputElement===t.environment.document.activeElement&&!n.getState().isOpen&&g(k)}},I)},s=function(v,y){return typeof y<"u"?"".concat(v,"-").concat(y):v},p=function(v){var y=v||{},g=y.sourceIndex,d=V(y,Mo);return _({htmlFor:"".concat(s(t.id,g),"-input"),id:"".concat(s(t.id,g),"-label")},d)},f=function(v){var y=v||{},g=y.sourceIndex,d=V(y,Ho);return _({role:"listbox","aria-labelledby":"".concat(s(t.id,g),"-label"),id:"".concat(s(t.id,g),"-list")},d)},m=function(v){return _({onMouseDown:function(g){g.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},v)},b=function(v){var y=v.item,g=v.source,d=v.sourceIndex,S=V(v,qo);return _({id:"".concat(s(t.id,d),"-item-").concat(y.__autocomplete_id),role:"option","aria-selected":n.getState().activeItemId===y.__autocomplete_id,onMouseMove:function(I){if(y.__autocomplete_id!==n.getState().activeItemId){n.dispatch("mousemove",y.__autocomplete_id);var P=ee(n.getState());if(n.getState().activeItemId!==null&&P){var A=P.item,$=P.itemInputValue,N=P.itemUrl,D=P.source;D.onActive(_({event:I,item:A,itemInputValue:$,itemUrl:N,refresh:r,source:D,state:n.getState()},o))}}},onMouseDown:function(I){I.preventDefault()},onClick:function(I){var P=g.getItemInputValue({item:y,state:n.getState()}),A=g.getItemUrl({item:y,state:n.getState()}),$=A?Promise.resolve():Y(_({event:I,nextState:{isOpen:!1},props:t,query:P,refresh:r,store:n},o));$.then(function(){g.onSelect(_({event:I,item:y,itemInputValue:P,itemUrl:A,refresh:r,source:g,state:n.getState()},o))})}},S)};return{getEnvironmentProps:a,getRootProps:c,getFormProps:l,getLabelProps:p,getInputProps:u,getPanelProps:m,getListProps:f,getItemProps:b}}function Pe(e){"@babel/helpers - typeof";return Pe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pe(e)}function Kt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Wo(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Ea(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,a;for(a=0;a=0)&&(r[o]=e[o]);return r}function ja(e){var t=e.translations,r=t===void 0?{}:t,n=wa(e,ga),o=r.noResultsText,a=o===void 0?"No results for":o,c=r.suggestedQueryText,l=c===void 0?"Try searching for":c,u=r.reportMissingResultsText,s=u===void 0?"Believe this query should return results?":u,p=r.reportMissingResultsLinkText,f=p===void 0?"Let us know.":p,m=n.state.context.searchSuggestions;return i.createElement("div",{className:"DocSearch-NoResults"},i.createElement("div",{className:"DocSearch-Screen-Icon"},i.createElement(ha,null)),i.createElement("p",{className:"DocSearch-Title"},a,' "',i.createElement("strong",null,n.state.query),'"'),m&&m.length>0&&i.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},i.createElement("p",{className:"DocSearch-Help"},l,":"),i.createElement("ul",null,m.slice(0,3).reduce(function(b,h){return[].concat(ba(b),[i.createElement("li",{key:h},i.createElement("button",{className:"DocSearch-Prefill",key:h,type:"button",onClick:function(){n.setQuery(h.toLowerCase()+" "),n.refresh(),n.inputRef.current.focus()}},h))])},[]))),n.getMissingResultsUrl&&i.createElement("p",{className:"DocSearch-Help"},"".concat(s," "),i.createElement("a",{href:n.getMissingResultsUrl({query:n.state.query}),target:"_blank",rel:"noopener noreferrer"},f)))}var _a=["hit","attribute","tagName"];function Qt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Jt(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Da(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,a;for(a=0;a=0)&&(r[o]=e[o]);return r}function Zt(e,t){var r=t.split(".");return r.reduce(function(n,o){return n!=null&&n[o]?n[o]:null},e)}function Z(e){var t=e.hit,r=e.attribute,n=e.tagName,o=n===void 0?"span":n,a=$a(e,_a);return Kr.createElement(o,Jt(Jt({},a),{},{dangerouslySetInnerHTML:{__html:Zt(t,"_snippetResult.".concat(r,".value"))||Zt(t,r)}}))}function Gt(e,t){return Ra(e)||xa(e,t)||Ta(e,t)||Ca()}function Ca(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ta(e,t){if(e){if(typeof e=="string")return Yt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Yt(e,t)}}function Yt(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r|<\/mark>)/g,ka=RegExp(gr.source);function br(e){var t,r,n=e;if(!n.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=(n.__docsearch_parent?(t=n.__docsearch_parent)===null||t===void 0||(t=t._highlightResult)===null||t===void 0||(t=t.hierarchy)===null||t===void 0?void 0:t.lvl0:(r=e._highlightResult)===null||r===void 0||(r=r.hierarchy)===null||r===void 0?void 0:r.lvl0)||{},a=o.value;return a&&ka.test(a)?a.replace(gr,""):a}function lt(){return lt=Object.assign||function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Fa(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,a;for(a=0;a=0)&&(r[o]=e[o]);return r}function Ba(e){var t=e.translations,r=t===void 0?{}:t,n=qa(e,Ha),o=r.recentSearchesTitle,a=o===void 0?"Recent":o,c=r.noRecentSearchesText,l=c===void 0?"No recent searches":c,u=r.saveRecentSearchButtonTitle,s=u===void 0?"Save this search":u,p=r.removeRecentSearchButtonTitle,f=p===void 0?"Remove this search from history":p,m=r.favoriteSearchesTitle,b=m===void 0?"Favorite":m,h=r.removeFavoriteSearchButtonTitle,v=h===void 0?"Remove this search from favorites":h;return n.state.status==="idle"&&n.hasCollections===!1?n.disableUserPersonalization?null:i.createElement("div",{className:"DocSearch-StartScreen"},i.createElement("p",{className:"DocSearch-Help"},l)):n.hasCollections===!1?null:i.createElement("div",{className:"DocSearch-Dropdown-Container"},i.createElement(ct,qe({},n,{title:a,collection:n.state.collections[0],renderIcon:function(){return i.createElement("div",{className:"DocSearch-Hit-icon"},i.createElement(ua,null))},renderAction:function(g){var d=g.item,S=g.runFavoriteTransition,E=g.runDeleteTransition;return i.createElement(i.Fragment,null,i.createElement("div",{className:"DocSearch-Hit-action"},i.createElement("button",{className:"DocSearch-Hit-action-button",title:s,type:"submit",onClick:function(P){P.preventDefault(),P.stopPropagation(),S(function(){n.favoriteSearches.add(d),n.recentSearches.remove(d),n.refresh()})}},i.createElement(zt,null))),i.createElement("div",{className:"DocSearch-Hit-action"},i.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(P){P.preventDefault(),P.stopPropagation(),E(function(){n.recentSearches.remove(d),n.refresh()})}},i.createElement(at,null))))}})),i.createElement(ct,qe({},n,{title:b,collection:n.state.collections[1],renderIcon:function(){return i.createElement("div",{className:"DocSearch-Hit-icon"},i.createElement(zt,null))},renderAction:function(g){var d=g.item,S=g.runDeleteTransition;return i.createElement("div",{className:"DocSearch-Hit-action"},i.createElement("button",{className:"DocSearch-Hit-action-button",title:v,type:"submit",onClick:function(I){I.preventDefault(),I.stopPropagation(),S(function(){n.favoriteSearches.remove(d),n.refresh()})}},i.createElement(at,null)))}})))}var Ka=["translations"];function Fe(){return Fe=Object.assign||function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Va(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,a;for(a=0;a=0)&&(r[o]=e[o]);return r}var Wa=i.memo(function(e){var t=e.translations,r=t===void 0?{}:t,n=Ua(e,Ka);if(n.state.status==="error")return i.createElement(ya,{translations:r?.errorScreen});var o=n.state.collections.some(function(a){return a.items.length>0});return n.state.query?o===!1?i.createElement(ja,Fe({},n,{translations:r?.noResultsScreen})):i.createElement(Ma,n):i.createElement(Ba,Fe({},n,{hasCollections:o,translations:r?.startScreen}))},function(t,r){return r.state.status==="loading"||r.state.status==="stalled"}),za=["translations"];function Be(){return Be=Object.assign||function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Ja(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,a;for(a=0;a=0)&&(r[o]=e[o]);return r}function Za(e){var t=e.translations,r=t===void 0?{}:t,n=Qa(e,za),o=r.resetButtonTitle,a=o===void 0?"Clear the query":o,c=r.resetButtonAriaLabel,l=c===void 0?"Clear the query":c,u=r.cancelButtonText,s=u===void 0?"Cancel":u,p=r.cancelButtonAriaLabel,f=p===void 0?"Cancel":p,m=r.searchInputLabel,b=m===void 0?"Search":m,h=n.getFormProps({inputElement:n.inputRef.current}),v=h.onReset;return i.useEffect(function(){n.autoFocus&&n.inputRef.current&&n.inputRef.current.focus()},[n.autoFocus,n.inputRef]),i.useEffect(function(){n.isFromSelection&&n.inputRef.current&&n.inputRef.current.select()},[n.isFromSelection,n.inputRef]),i.createElement(i.Fragment,null,i.createElement("form",{className:"DocSearch-Form",onSubmit:function(g){g.preventDefault()},onReset:v},i.createElement("label",Be({className:"DocSearch-MagnifierLabel"},n.getLabelProps()),i.createElement(Ur,null),i.createElement("span",{className:"DocSearch-VisuallyHiddenForAccessibility"},b)),i.createElement("div",{className:"DocSearch-LoadingIndicator"},i.createElement(la,null)),i.createElement("input",Be({className:"DocSearch-Input",ref:n.inputRef},n.getInputProps({inputElement:n.inputRef.current,autoFocus:n.autoFocus,maxLength:yr}))),i.createElement("button",{type:"reset",title:a,className:"DocSearch-Reset","aria-label":l,hidden:!n.state.query},i.createElement(at,null))),i.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:n.onClose},s))}var Ga=["_highlightResult","_snippetResult"];function Ya(e,t){if(e==null)return{};var r=Xa(e,t),n,o;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Xa(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,a;for(a=0;a=0)&&(r[o]=e[o]);return r}function ei(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch{return!1}}function ti(e){return ei()===!1?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(r){return window.localStorage.setItem(e,JSON.stringify(r))},getItem:function(){var r=window.localStorage.getItem(e);return r?JSON.parse(r):[]}}}function tr(e){var t=e.key,r=e.limit,n=r===void 0?5:r,o=ti(t),a=o.getItem().slice(0,n);return{add:function(l){var u=l;u._highlightResult,u._snippetResult;var s=Ya(u,Ga),p=a.findIndex(function(f){return f.objectID===s.objectID});p>-1&&a.splice(p,1),a.unshift(s),a=a.slice(0,n),o.setItem(a)},remove:function(l){a=a.filter(function(u){return u.objectID!==l.objectID}),o.setItem(a)},getAll:function(){return a}}}function ri(e){const t=`algoliasearch-client-js-${e.key}`;let r;const n=()=>(r===void 0&&(r=e.localStorage||window.localStorage),r),o=()=>JSON.parse(n().getItem(t)||"{}"),a=l=>{n().setItem(t,JSON.stringify(l))},c=()=>{const l=e.timeToLive?e.timeToLive*1e3:null,u=o(),s=Object.fromEntries(Object.entries(u).filter(([,f])=>f.timestamp!==void 0));if(a(s),!l)return;const p=Object.fromEntries(Object.entries(s).filter(([,f])=>{const m=new Date().getTime();return!(f.timestamp+lPromise.resolve()}){return Promise.resolve().then(()=>{c();const p=JSON.stringify(l);return o()[p]}).then(p=>Promise.all([p?p.value:u(),p!==void 0])).then(([p,f])=>Promise.all([p,f||s.miss(p)])).then(([p])=>p)},set(l,u){return Promise.resolve().then(()=>{const s=o();return s[JSON.stringify(l)]={timestamp:new Date().getTime(),value:u},n().setItem(t,JSON.stringify(s)),u})},delete(l){return Promise.resolve().then(()=>{const u=o();delete u[JSON.stringify(l)],n().setItem(t,JSON.stringify(u))})},clear(){return Promise.resolve().then(()=>{n().removeItem(t)})}}}function ue(e){const t=[...e.caches],r=t.shift();return r===void 0?ni():{get(n,o,a={miss:()=>Promise.resolve()}){return r.get(n,o,a).catch(()=>ue({caches:t}).get(n,o,a))},set(n,o){return r.set(n,o).catch(()=>ue({caches:t}).set(n,o))},delete(n){return r.delete(n).catch(()=>ue({caches:t}).delete(n))},clear(){return r.clear().catch(()=>ue({caches:t}).clear())}}}function ni(){return{get(e,t,r={miss:()=>Promise.resolve()}){return t().then(o=>Promise.all([o,r.miss(o)])).then(([o])=>o)},set(e,t){return Promise.resolve(t)},delete(e){return Promise.resolve()},clear(){return Promise.resolve()}}}function Ye(e={serializable:!0}){let t={};return{get(r,n,o={miss:()=>Promise.resolve()}){const a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);const c=n(),l=o&&o.miss||(()=>Promise.resolve());return c.then(u=>l(u)).then(()=>c)},set(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete(r){return delete t[JSON.stringify(r)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}function oi(e,t,r){const n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers(){return e===Ke.WithinHeaders?n:{}},queryParameters(){return e===Ke.WithinQueryParameters?n:{}}}}function ai(e){let t=e.length-1;for(t;t>0;t--){const r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function Sr(e,t){return t&&Object.keys(t).forEach(r=>{e[r]=t[r](e)}),e}function Ue(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}const ut="4.23.3",Ke={WithinQueryParameters:0,WithinHeaders:1};function rr(e,t){const r=e||{},n=r.data||{};return Object.keys(r).forEach(o=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(o)===-1&&(n[o]=r[o])}),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}const te={Read:1,Write:2,Any:3},je={Up:1,Down:2,Timeouted:3},Or=2*60*1e3;function Ir(e,t=je.Up){return{...e,status:t,lastUpdate:Date.now()}}function ii(e){return e.status===je.Up||Date.now()-e.lastUpdate>Or}function ci(e){return e.status===je.Timeouted&&Date.now()-e.lastUpdate<=Or}function Pr(e){return typeof e=="string"?{protocol:"https",url:e,accept:te.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||te.Any}}const F={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};function li(e,t){return Promise.all(t.map(r=>e.get(r,()=>Promise.resolve(Ir(r))))).then(r=>{const n=r.filter(l=>ii(l)),o=r.filter(l=>ci(l)),a=[...n,...o],c=a.length>0?a.map(l=>Pr(l)):t;return{getTimeout(l,u){return(o.length===0&&l===0?1:o.length+3+l)*u},statelessHosts:c}})}const ui=({isTimedOut:e,status:t})=>!e&&~~t===0,si=e=>{const t=e.status;return e.isTimedOut||ui(e)||~~(t/100)!==2&&~~(t/100)!==4},fi=({status:e})=>~~(e/100)===2,mi=(e,t)=>si(e)?t.onRetry(e):fi(e)?t.onSuccess(e):t.onFail(e);function nr(e,t,r,n){const o=[],a=gi(r,n),c=bi(e,n),l=r.method,u=r.method!==F.Get?{}:{...r.data,...n.data},s={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...u,...n.queryParameters};let p=0;const f=(m,b)=>{const h=m.pop();if(h===void 0)throw Ii(or(o));const v={data:a,headers:c,method:l,url:yi(h,r.path,s),connectTimeout:b(p,e.timeouts.connect),responseTimeout:b(p,n.timeout)},y=d=>{const S={request:v,response:d,host:h,triesLeft:m.length};return o.push(S),S},g={onSuccess:d=>vi(d),onRetry(d){const S=y(d);return d.isTimedOut&&p++,Promise.all([e.logger.info("Retryable failure",Er(S)),e.hostsCache.set(h,Ir(h,d.isTimedOut?je.Timeouted:je.Down))]).then(()=>f(m,b))},onFail(d){throw y(d),hi(d,or(o))}};return e.requester.send(v).then(d=>mi(d,g))};return li(e.hostsCache,t).then(m=>f([...m.statelessHosts].reverse(),m.getTimeout))}function pi(e){const{hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:a,timeouts:c,userAgent:l,hosts:u,queryParameters:s,headers:p}=e,f={hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:a,timeouts:c,userAgent:l,headers:p,queryParameters:s,hosts:u.map(m=>Pr(m)),read(m,b){const h=rr(b,f.timeouts.read),v=()=>nr(f,f.hosts.filter(d=>(d.accept&te.Read)!==0),m,h);if((h.cacheable!==void 0?h.cacheable:m.cacheable)!==!0)return v();const g={request:m,mappedRequestOptions:h,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(g,()=>f.requestsCache.get(g,()=>f.requestsCache.set(g,v()).then(d=>Promise.all([f.requestsCache.delete(g),d]),d=>Promise.all([f.requestsCache.delete(g),Promise.reject(d)])).then(([d,S])=>S)),{miss:d=>f.responsesCache.set(g,d)})},write(m,b){return nr(f,f.hosts.filter(h=>(h.accept&te.Write)!==0),m,rr(b,f.timeouts.write))}};return f}function di(e){const t={value:`Algolia for JavaScript (${e})`,add(r){const n=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return t.value.indexOf(n)===-1&&(t.value=`${t.value}${n}`),t}};return t}function vi(e){try{return JSON.parse(e.content)}catch(t){throw Oi(t.message,e)}}function hi({content:e,status:t},r){let n=e;try{n=JSON.parse(e).message}catch{}return Si(n,t,r)}function yi(e,t,r){const n=wr(r);let o=`${e.protocol}://${e.url}/${t.charAt(0)==="/"?t.substr(1):t}`;return n.length&&(o+=`?${n}`),o}function wr(e){const t=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(e).map(r=>Ue("%s=%s",r,t(e[r])?JSON.stringify(e[r]):e[r])).join("&")}function gi(e,t){if(e.method===F.Get||e.data===void 0&&t.data===void 0)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}function bi(e,t){const r={...e.headers,...t.headers},n={};return Object.keys(r).forEach(o=>{const a=r[o];n[o.toLowerCase()]=a}),n}function or(e){return e.map(t=>Er(t))}function Er(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function Si(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}function Oi(e,t){return{name:"DeserializationError",message:e,response:t}}function Ii(e){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:e}}const Pi=e=>{const t=e.appId,r=oi(e.authMode!==void 0?e.authMode:Ke.WithinHeaders,t,e.apiKey),n=pi({hosts:[{url:`${t}-dsn.algolia.net`,accept:te.Read},{url:`${t}.algolia.net`,accept:te.Write}].concat(ai([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}});return Sr({transporter:n,appId:t,addAlgoliaAgent(a,c){n.userAgent.add({segment:a,version:c})},clearCache(){return Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>{})}},e.methods)},wi=e=>(t,r)=>t.method===F.Get?e.transporter.read(t,r):e.transporter.write(t,r),jr=e=>(t,r={})=>{const n={transporter:e.transporter,appId:e.appId,indexName:t};return Sr(n,r.methods)},ar=e=>(t,r)=>{const n=t.map(o=>({...o,params:wr(o.params||{})}));return e.transporter.read({method:F.Post,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},ir=e=>(t,r)=>Promise.all(t.map(n=>{const{facetName:o,facetQuery:a,...c}=n.params;return jr(e)(n.indexName,{methods:{searchForFacetValues:_r}}).searchForFacetValues(o,a,{...r,...c})})),Ei=e=>(t,r,n)=>e.transporter.read({method:F.Post,path:Ue("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),ji=e=>(t,r)=>e.transporter.read({method:F.Post,path:Ue("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),_r=e=>(t,r,n)=>e.transporter.read({method:F.Post,path:Ue("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),st={Debug:1,Info:2,Error:3};function _i(e){return{debug(t,r){return st.Debug>=e&&console.debug(t,r),Promise.resolve()},info(t,r){return st.Info>=e&&console.info(t,r),Promise.resolve()},error(t,r){return console.error(t,r),Promise.resolve()}}}const Ai=e=>(t,r)=>{const n=t.map(o=>({...o,threshold:o.threshold||0}));return e.transporter.read({method:F.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)};function $i(){return{send(e){return new Promise(t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach(c=>r.setRequestHeader(c,e.headers[c]));const n=(c,l)=>setTimeout(()=>{r.abort(),t({status:0,content:l,isTimedOut:!0})},c*1e3),o=n(e.connectTimeout,"Connection timeout");let a;r.onreadystatechange=()=>{r.readyState>r.OPENED&&a===void 0&&(clearTimeout(o),a=n(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{r.status===0&&(clearTimeout(o),clearTimeout(a),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(o),clearTimeout(a),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)})}}}function Ar(e,t,r){const n={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:$i(),logger:_i(st.Error),responsesCache:Ye(),requestsCache:Ye({serializable:!1}),hostsCache:ue({caches:[ri({key:`${ut}-${e}`}),Ye()]}),userAgent:di(ut).add({segment:"Browser",version:"lite"}),authMode:Ke.WithinQueryParameters};return Pi({...n,...r,methods:{search:ar,searchForFacetValues:ir,multipleQueries:ar,multipleSearchForFacetValues:ir,customRequest:wi,initIndex:o=>a=>jr(o)(a,{methods:{search:ji,searchForFacetValues:_r,findAnswers:Ei}}),getRecommendations:Ai}})}Ar.version=ut;var cr="3.6.0";function Di(e,t,r){var n=i.useMemo(function(){var o=Ar(e,t);return o.addAlgoliaAgent("docsearch",cr),/docsearch.js \(.*\)/.test(o.transporter.userAgent.value)===!1&&o.addAlgoliaAgent("docsearch-react",cr),r(o)},[e,t,r]);return n}function Ci(e){var t=e.getEnvironmentProps,r=e.panelElement,n=e.formElement,o=e.inputElement;i.useEffect(function(){if(r&&n&&o){var a=t({panelElement:r,formElement:n,inputElement:o}),c=a.onTouchStart,l=a.onTouchMove;return window.addEventListener("touchstart",c),window.addEventListener("touchmove",l),function(){window.removeEventListener("touchstart",c),window.removeEventListener("touchmove",l)}}},[t,r,n,o])}function Ti(e){var t=e.container;i.useEffect(function(){if(!t)return;var r=t.querySelectorAll("a[href]:not([disabled]), button:not([disabled]), input:not([disabled])"),n=r[0],o=r[r.length-1];function a(c){c.key==="Tab"&&(c.shiftKey?document.activeElement===n&&(c.preventDefault(),o.focus()):document.activeElement===o&&(c.preventDefault(),n.focus()))}return t.addEventListener("keydown",a),function(){t.removeEventListener("keydown",a)}},[t])}var xi=["footer","searchBox"];function se(){return se=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Fi(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,a;for(a=0;a=0)&&(r[o]=e[o]);return r}function Bi(e){var t=e.appId,r=e.apiKey,n=e.indexName,o=e.placeholder,a=o===void 0?"Search docs":o,c=e.searchParameters,l=e.maxResultsPerGroup,u=e.onClose,s=u===void 0?La:u,p=e.transformItems,f=p===void 0?er:p,m=e.hitComponent,b=m===void 0?ca:m,h=e.resultsFooterComponent,v=h===void 0?function(){return null}:h,y=e.navigator,g=e.initialScrollY,d=g===void 0?0:g,S=e.transformSearchClient,E=S===void 0?er:S,I=e.disableUserPersonalization,P=I===void 0?!1:I,A=e.initialQuery,$=A===void 0?"":A,N=e.translations,D=N===void 0?{}:N,k=e.getMissingResultsUrl,ft=e.insights,Ve=ft===void 0?!1:ft,$r=D.footer,Dr=D.searchBox,Cr=qi(D,xi),Tr=i.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),mt=Ni(Tr,2),M=mt[0],xr=mt[1],pt=i.useRef(null),We=i.useRef(null),dt=i.useRef(null),_e=i.useRef(null),re=i.useRef(null),H=i.useRef(10),vt=i.useRef(typeof window<"u"?window.getSelection().toString().slice(0,yr):"").current,B=i.useRef($||vt).current,ht=Di(t,r,E),z=i.useRef(tr({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(n),limit:10})).current,ne=i.useRef(tr({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(n),limit:z.getAll().length===0?7:4})).current,oe=i.useCallback(function(w){if(!P){var x=w.type==="content"?w.__docsearch_parent:w;x&&z.getAll().findIndex(function(ze){return ze.objectID===x.objectID})===-1&&ne.add(x)}},[z,ne,P]),Rr=i.useCallback(function(j){if(!(!M.context.algoliaInsightsPlugin||!j.__autocomplete_id)){var w=j,x={eventName:"Item Selected",index:w.__autocomplete_indexName,items:[w],positions:[j.__autocomplete_id],queryID:w.__autocomplete_queryID};M.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(x)}},[M.context.algoliaInsightsPlugin]),ae=i.useMemo(function(){return oa({id:"docsearch",defaultActiveItemId:0,placeholder:a,openOnFocus:!0,initialState:{query:B,context:{searchSuggestions:[]}},insights:Ve,navigator:y,onStateChange:function(w){xr(w.state)},getSources:function(w){var x=w.query,ze=w.state,gt=w.setContext,kr=w.setStatus;if(!x)return P?[]:[{sourceId:"recentSearches",onSelect:function(C){var T=C.item,ie=C.event;oe(T),Le(ie)||s()},getItemUrl:function(C){var T=C.item;return T.url},getItems:function(){return ne.getAll()}},{sourceId:"favoriteSearches",onSelect:function(C){var T=C.item,ie=C.event;oe(T),Le(ie)||s()},getItemUrl:function(C){var T=C.item;return T.url},getItems:function(){return z.getAll()}}];var bt=!!Ve;return ht.search([{query:x,indexName:n,params:Xe({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(H.current),"hierarchy.lvl2:".concat(H.current),"hierarchy.lvl3:".concat(H.current),"hierarchy.lvl4:".concat(H.current),"hierarchy.lvl5:".concat(H.current),"hierarchy.lvl6:".concat(H.current),"content:".concat(H.current)],snippetEllipsisText:"…",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:bt},c)}]).catch(function(R){throw R.name==="RetryError"&&kr("error"),R}).then(function(R){var C=R.results,T=C[0],ie=T.hits,Mr=T.nbHits,Qe=Xt(ie,function(Je){return br(Je)},l);ze.context.searchSuggestions.length0&&(yt(),re.current&&re.current.focus())},[B,yt]),i.useEffect(function(){function j(){if(We.current){var w=window.innerHeight*.01;We.current.style.setProperty("--docsearch-vh","".concat(w,"px"))}}return j(),window.addEventListener("resize",j),function(){window.removeEventListener("resize",j)}},[]),i.createElement("div",se({ref:pt},Lr({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container",M.status==="stalled"&&"DocSearch-Container--Stalled",M.status==="error"&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(w){w.target===w.currentTarget&&s()}}),i.createElement("div",{className:"DocSearch-Modal",ref:We},i.createElement("header",{className:"DocSearch-SearchBar",ref:dt},i.createElement(Za,se({},ae,{state:M,autoFocus:B.length===0,inputRef:re,isFromSelection:!!B&&B===vt,translations:Dr,onClose:s}))),i.createElement("div",{className:"DocSearch-Dropdown",ref:_e},i.createElement(Wa,se({},ae,{indexName:n,state:M,hitComponent:b,resultsFooterComponent:v,disableUserPersonalization:P,recentSearches:ne,favoriteSearches:z,inputRef:re,translations:Cr,getMissingResultsUrl:k,onItemClick:function(w,x){Rr(w),oe(w),Le(x)||s()}}))),i.createElement("footer",{className:"DocSearch-Footer"},i.createElement(ia,{translations:$r}))))}function Ki(e){var t=e.target,r=t.tagName;return t.isContentEditable||r==="INPUT"||r==="SELECT"||r==="TEXTAREA"}function Ui(e){var t=e.isOpen,r=e.onOpen,n=e.onClose,o=e.onInput,a=e.searchButtonRef;i.useEffect(function(){function c(l){var u;function s(){document.body.classList.contains("DocSearch--active")||r()}(l.keyCode===27&&t||((u=l.key)===null||u===void 0?void 0:u.toLowerCase())==="k"&&(l.metaKey||l.ctrlKey)||!Ki(l)&&l.key==="/"&&!t)&&(l.preventDefault(),t?n():document.body.classList.contains("DocSearch--active")||s()),a&&a.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(l.keyCode))&&o(l)}return window.addEventListener("keydown",c),function(){window.removeEventListener("keydown",c)}},[t,r,n,o,a])}function Yi(){const[e,t]=Br(Fr),r=()=>{t(!0)},n=()=>{t(!1)};return Ui({isOpen:e,onOpen:r,onClose:n}),e&&wt.jsx(qr,{children:wt.jsx(Bi,{appId:Ze.docSearch.appId,apiKey:Ze.docSearch.apiKey,indexName:Ze.docSearch.indexName,initialScrollY:window.scrollY,onClose:n})})}export{Yi as SearchPanel}; diff --git a/_astro/SocialList.Cf3WlP-H.js b/_astro/SocialList.Cf3WlP-H.js new file mode 100644 index 0000000..d89e695 --- /dev/null +++ b/_astro/SocialList.Cf3WlP-H.js @@ -0,0 +1 @@ +import{j as t}from"./jsx-runtime.CPK7-dcL.js";import{c as r}from"./clsx.B-dksMZM.js";import{h as n}from"./config.tnfO5ZdO.js";import{m as i}from"./motion.BDB0jV8x.js";import"./index.BufDd4G-.js";import"./_commonjsHelpers.Cpj98o6Y.js";import"./SVGVisualElement.De6LOhF_.js";const a={hidden:{opacity:0,y:40},visible:{opacity:1,y:0}};function u({className:s}){return t.jsx(i.ul,{className:r("flex gap-4 flex-wrap items-center justify-center lg:justify-start",s),initial:"hidden",animate:"visible",transition:{staggerChildren:.1},children:n.socials.map(e=>t.jsx(i.li,{variants:a,children:t.jsxs("a",{className:"relative size-9 text-white text-xl flex justify-center items-center group",href:e.url,title:e.name,target:"_blank",rel:"noopener noreferrer",children:[t.jsx("span",{className:"absolute inset-0 -z-1 rounded-full group-hover:scale-105 transition",style:{backgroundColor:e.color}}),t.jsx("i",{className:r("iconfont",e.icon)})]})},e.name))})}export{u as SocialList}; diff --git a/_astro/ThemeSwitch.GY1c7j8U.js b/_astro/ThemeSwitch.GY1c7j8U.js new file mode 100644 index 0000000..2385f9a --- /dev/null +++ b/_astro/ThemeSwitch.GY1c7j8U.js @@ -0,0 +1 @@ +import{j as e}from"./jsx-runtime.CPK7-dcL.js";import{t as o}from"./theme.K1S-wrqJ.js";import{c as r}from"./react.DwV23UbX.js";import"./index.BufDd4G-.js";import"./_commonjsHelpers.Cpj98o6Y.js";import"./theme.BLaxzHfN.js";function x(){const[s,t]=r(o),i={light:4,system:36,dark:68}[s];return e.jsxs("div",{className:"relative inline-block",children:[e.jsx("div",{className:"absolute -z-1 top-1 size-[32px] rounded-full bg-primary transition-transform shadow",style:{transform:`translateX(${i}px)`}}),e.jsxs("div",{className:"p-[3px] flex rounded-full border border-primary",role:"radiogroup",children:[e.jsx("button",{className:"size-[32px] flex items-center justify-center",type:"button","aria-label":"Switch to light theme",onClick:()=>t("light"),children:e.jsx("i",{className:"iconfont icon-sun"})}),e.jsx("button",{className:"size-[32px] flex items-center justify-center",type:"button","aria-label":"Switch to system theme",onClick:()=>t("system"),children:e.jsx("i",{className:"iconfont icon-computer"})}),e.jsx("button",{className:"size-[32px] flex items-center justify-center",type:"button","aria-label":"Switch to dark theme",onClick:()=>t("dark"),children:e.jsx("i",{className:"iconfont icon-moon"})})]})]})}export{x as ThemeSwitch}; diff --git a/_astro/TimelineProgress.BxyoLFgj.js b/_astro/TimelineProgress.BxyoLFgj.js new file mode 100644 index 0000000..c7ef113 --- /dev/null +++ b/_astro/TimelineProgress.BxyoLFgj.js @@ -0,0 +1 @@ +import{j as S}from"./jsx-runtime.CPK7-dcL.js";import{r as E}from"./index.BufDd4G-.js";import{g as Z,a as $,b as tt,c as et}from"./date.CeBf7uU2.js";import{i as nt,f as st,c as at,m as rt,a as it,S as ot,H as lt,v as Y,s as ut,b as ct,d as ft,e as mt,g as pt,h as ht,r as gt,j as U,k as dt,l as yt,p as At,n as St,o as W,q as vt}from"./SVGVisualElement.De6LOhF_.js";import"./_commonjsHelpers.Cpj98o6Y.js";function _(t,e,s){var n;if(typeof t=="string"){let a=document;e&&(nt(!!e.current),a=e.current),s?((n=s[t])!==null&&n!==void 0||(s[t]=a.querySelectorAll(t)),t=s[t]):t=a.querySelectorAll(t)}else t instanceof Element&&(t=[t]);return Array.from(t||[])}function Et(t,e){let s;const n=()=>{const{currentTime:a}=e,i=(a===null?0:a.value)/100;s!==i&&t(i),s=i};return st.update(n,!0),()=>at(n)}const xt=rt(()=>window.ScrollTimeline!==void 0);class q{constructor(e){this.animations=e.filter(Boolean)}then(e,s){return Promise.all(this.animations).then(e).catch(s)}getAll(e){return this.animations[0][e]}setAll(e,s){for(let n=0;n{if(xt()&&n.attachTimeline)n.attachTimeline(e);else return n.pause(),Et(a=>{n.time=n.duration*a},e)});return()=>{s.forEach((n,a)=>{n&&n(),this.animations[a].stop()})}}get time(){return this.getAll("time")}set time(e){this.setAll("time",e)}get speed(){return this.getAll("speed")}set speed(e){this.setAll("speed",e)}get duration(){let e=0;for(let s=0;ss[e]())}play(){this.runAll("play")}pause(){this.runAll("pause")}stop(){this.runAll("stop")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}function Tt(t){return typeof t=="object"&&!Array.isArray(t)}function Dt(t){const e={presenceContext:null,props:{},visualState:{renderState:{transform:{},transformOrigin:{},style:{},vars:{},attrs:{}},latestValues:{}}},s=it(t)?new ot(e,{enableHardwareAcceleration:!1}):new lt(e,{enableHardwareAcceleration:!0});s.mount(t),Y.set(t,s)}function wt(t,e=100){const s=ut({keyframes:[0,e],...t}),n=Math.min(ct(s),ft);return{type:"keyframes",ease:a=>s.next(n*a).value/e,duration:mt(n)}}function B(t,e,s,n){var a;return typeof e=="number"?e:e.startsWith("-")||e.startsWith("+")?Math.max(0,t+parseFloat(e)):e==="<"?s:(a=n.get(e))!==null&&a!==void 0?a:t}const bt=(t,e,s)=>{const n=e-t;return((s-t)%n+n)%n+t};function Mt(t,e){return pt(t)?t[bt(0,t.length,e)]:t}function jt(t,e,s){for(let n=0;ne&&a.at{const c=It(d),{delay:V=0,times:b=dt(c),type:J="keyframes",...Q}=y;let{ease:F=e.ease||"easeOut",duration:A}=y;const I=typeof V=="function"?V(M,j):V,N=c.length;if(N<=2&&J==="spring"){let k=100;if(N===2&&Kt(c)){const X=c[1]-c[0];k=Math.abs(X)}const H={...Q};A!==void 0&&(H.duration=St(A));const L=wt(H,k);F=L.ease,A=L.duration}A??(A=a);const G=l+I,K=G+A;b.length===1&&b[0]===0&&(b[1]=1);const P=b.length-c.length;P>0&&yt(b,P),c.length===1&&c.unshift(null),Vt(v,c,F,b,G,K),p=Math.max(I+A,p),T=Math.max(K,T)};if(U(x)){const d=C(x,i);w(g,m,R("default",d))}else{const d=_(x,n,f),y=d.length;for(let v=0;v{for(const x in D){const g=D[x];g.sort(Ot);const m=[],p=[],w=[];for(let y=0;ytypeof t=="number",Kt=t=>t.every(Gt);function z(t,e,s,n){const a=_(t,n),r=a.length,i=[];for(let f=0;fArray.isArray(t)&&Array.isArray(t[0]);function kt(t,e,s){const n=[];return Ft(t,e,s).forEach(({keyframes:r,transition:i},f)=>{let o;U(f)?o=W(f,r.default,i.default):o=z(f,r,i),n.push(o)}),new q(n)}const Ht=t=>{function e(s,n,a){let r;return Pt(s)?r=kt(s,n,t):Tt(n)?r=z(s,n,a,t):r=W(s,n,a),t&&t.animations.push(r),r}return e},Lt=Ht();function _t(){const[t,e]=E.useState(0),[s,n]=E.useState(0),[a,r]=E.useState(0),[i,f]=E.useState(0),o=()=>{const u=new Date;e(u.getFullYear());const l=Z($(u),u);n(l),r(l/tt(u)*100);const T=u.getTime()-et(u).getTime();f(T/86400/1e3*100)};return E.useEffect(()=>{o();const u=setInterval(o,1e3);return()=>{clearInterval(u)}},[]),S.jsxs(S.Fragment,{children:[S.jsxs("p",{className:"mt-4",children:["今天是 ",t," 年的第 ",S.jsx(O,{to:s,decimals:0})," 天"]}),S.jsxs("p",{className:"mt-4",children:["今年已过 ",S.jsx(O,{to:a,decimals:5}),"%"]}),S.jsxs("p",{className:"mt-4",children:["今天已过 ",S.jsx(O,{to:i,decimals:5}),"%"]})]})}function O({to:t,decimals:e,duration:s=1}){const n=E.useRef(null),a=E.useRef(0);return E.useEffect(()=>{if(!n.current)return;const r=Lt(a.current,t,{duration:s,onUpdate:i=>{n.current.textContent=i.toFixed(e)}});return a.current=t,()=>{r.stop()}},[t,e,s]),S.jsx("span",{ref:n})}export{_t as TimelineProgress}; diff --git a/_astro/ToastContainer.BTGsrsBX.css b/_astro/ToastContainer.BTGsrsBX.css new file mode 100644 index 0000000..2e19cc6 --- /dev/null +++ b/_astro/ToastContainer.BTGsrsBX.css @@ -0,0 +1 @@ +:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: #e74c3c;--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient( to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55 );--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%)}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right)}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%)}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right)}@media only screen and (max-width : 480px){.Toastify__toast-container{width:100vw;padding:0;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}}.Toastify__toast{--y: 0;position:relative;touch-action:none;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px #0000001a;display:flex;justify-content:space-between;max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0;overflow:hidden}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;flex:1 1 auto;padding:6px;display:flex;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;flex:1}.Toastify__toast-icon{margin-inline-end:10px;width:20px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width : 480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;align-self:flex-start;z-index:1}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial;border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp{position:absolute;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}} diff --git a/_astro/ToastContainer.D3GLraOJ.js b/_astro/ToastContainer.D3GLraOJ.js new file mode 100644 index 0000000..4c9a42e --- /dev/null +++ b/_astro/ToastContainer.D3GLraOJ.js @@ -0,0 +1 @@ +import{j as t}from"./jsx-runtime.CPK7-dcL.js";import{Q as r}from"./react-toastify.esm.B4Q9Ck-v.js";import"./index.BufDd4G-.js";import"./_commonjsHelpers.Cpj98o6Y.js";import"./clsx.B-dksMZM.js";function p(){return t.jsx(r,{position:"bottom-right",autoClose:3e3,hideProgressBar:!0,closeButton:e,toastClassName:"!bg-primary !text-primary text-sm border border-primary"})}function e({closeToast:o}){return t.jsx("button",{type:"button","aria-label":"Close Toast",className:"text-lg opacity-50 hover:opacity-100",onClick:o,children:t.jsx("i",{className:"iconfont icon-close"})})}export{p as ToastContainer}; diff --git a/_astro/Waline.D9foHWi6.js b/_astro/Waline.D9foHWi6.js new file mode 100644 index 0000000..7c551ac --- /dev/null +++ b/_astro/Waline.D9foHWi6.js @@ -0,0 +1,72 @@ +import{j as wo}from"./jsx-runtime.CPK7-dcL.js";import{r as $i}from"./index.BufDd4G-.js";import{c as Qn}from"./_commonjsHelpers.Cpj98o6Y.js";/* empty css */const Nl={"Content-Type":"application/json"},At=e=>`${e.replace(/\/?$/,"/")}api/`,Ht=(e,t="")=>{if(typeof e=="object"&&e.errno)throw new TypeError(`${t} failed with ${e.errno}: ${e.errmsg}`);return e},Bl=({serverURL:e,lang:t,paths:n,type:r,signal:i})=>fetch(`${At(e)}article?path=${encodeURIComponent(n.join(","))}&type=${encodeURIComponent(r.join(","))}&lang=${t}`,{signal:i}).then(l=>l.json()).then(l=>Ht(l,"Get counter").data),Pr=({serverURL:e,lang:t,path:n,type:r,action:i})=>fetch(`${At(e)}article?lang=${t}`,{method:"POST",headers:Nl,body:JSON.stringify({path:n,type:r,action:i})}).then(l=>l.json()).then(l=>Ht(l,"Update counter").data),_o=({serverURL:e,lang:t,path:n,page:r,pageSize:i,sortBy:l,signal:s,token:o})=>{const a={};return o&&(a.Authorization=`Bearer ${o}`),fetch(`${At(e)}comment?path=${encodeURIComponent(n)}&pageSize=${i}&page=${r}&lang=${t}&sortBy=${l}`,{signal:s,headers:a}).then(c=>c.json()).then(c=>Ht(c,"Get comment data").data)},ko=({serverURL:e,lang:t,token:n,comment:r})=>{const i={"Content-Type":"application/json"};return n&&(i.Authorization=`Bearer ${n}`),fetch(`${At(e)}comment?lang=${t}`,{method:"POST",headers:i,body:JSON.stringify(r)}).then(l=>l.json())},xo=({serverURL:e,lang:t,token:n,objectId:r})=>fetch(`${At(e)}comment/${r}?lang=${t}`,{method:"DELETE",headers:{Authorization:`Bearer ${n}`}}).then(i=>i.json()).then(i=>Ht(i,"Delete comment")),Hn=({serverURL:e,lang:t,token:n,objectId:r,comment:i})=>fetch(`${At(e)}comment/${r}?lang=${t}`,{method:"PUT",headers:{...Nl,Authorization:`Bearer ${n}`},body:JSON.stringify(i)}).then(l=>l.json()).then(l=>Ht(l,"Update comment")),Eo=({serverURL:e,lang:t,paths:n,signal:r})=>fetch(`${At(e)}comment?type=count&url=${encodeURIComponent(n.join(","))}&lang=${t}`,{signal:r}).then(i=>i.json()).then(i=>Ht(i,"Get comment count").data),Co=({lang:e,serverURL:t})=>{const n=(window.innerWidth-450)/2,r=(window.innerHeight-450)/2,i=window.open(`${t.replace(/\/$/,"")}/ui/login?lng=${encodeURIComponent(e)}`,"_blank",`width=450,height=450,left=${n},top=${r},scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no`);return i?.postMessage({type:"TOKEN",data:null},"*"),new Promise(l=>{const s=({data:o})=>{!o||typeof o!="object"||o.type!=="userInfo"||o.data.token&&(i?.close(),window.removeEventListener("message",s),l(o.data))};window.addEventListener("message",s)})},So=({serverURL:e,lang:t,paths:n,signal:r})=>Bl({serverURL:e,lang:t,paths:n,type:["time"],signal:r}),To=e=>Pr({...e,type:"time",action:"inc"});/** +* @vue/shared v3.4.26 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Jr(e,t){const n=new Set(e.split(","));return t?r=>n.has(r.toLowerCase()):r=>n.has(r)}const pe={},Pt=[],ze=()=>{},Ro=()=>!1,ur=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Xr=e=>e.startsWith("onUpdate:"),ke=Object.assign,ei=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},$o=Object.prototype.hasOwnProperty,ee=(e,t)=>$o.call(e,t),F=Array.isArray,Mt=e=>wn(e)==="[object Map]",Nt=e=>wn(e)==="[object Set]",Ai=e=>wn(e)==="[object Date]",G=e=>typeof e=="function",be=e=>typeof e=="string",it=e=>typeof e=="symbol",he=e=>e!==null&&typeof e=="object",Wl=e=>(he(e)||G(e))&&G(e.then)&&G(e.catch),ql=Object.prototype.toString,wn=e=>ql.call(e),Ao=e=>wn(e).slice(8,-1),Kl=e=>wn(e)==="[object Object]",ti=e=>be(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,rn=Jr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),fr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Io=/-(\w)/g,Je=fr(e=>e.replace(Io,(t,n)=>n?n.toUpperCase():"")),Lo=/\B([A-Z])/g,Bt=fr(e=>e.replace(Lo,"-$1").toLowerCase()),dr=fr(e=>e.charAt(0).toUpperCase()+e.slice(1)),xr=fr(e=>e?`on${dr(e)}`:""),pt=(e,t)=>!Object.is(e,t),Nn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Yn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Ii;const ln=()=>Ii||(Ii=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function dn(e){if(F(e)){const t={};for(let n=0;n{if(n){const r=n.split(Po);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function ye(e){let t="";if(be(e))t=e;else if(F(e))for(let n=0;nRt(n,t))}const se=e=>be(e)?e:e==null?"":F(e)||he(e)&&(e.toString===ql||!G(e.toString))?JSON.stringify(e,Ql,2):String(e),Ql=(e,t)=>t&&t.__v_isRef?Ql(e,t.value):Mt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,i],l)=>(n[Er(r,l)+" =>"]=i,n),{})}:Nt(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Er(n))}:it(t)?Er(t):he(t)&&!F(t)&&!Kl(t)?String(t):t,Er=(e,t="")=>{var n;return it(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.4.26 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Pe;class Do{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Pe,!t&&Pe&&(this.index=(Pe.scopes||(Pe.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Pe;try{return Pe=this,t()}finally{Pe=n}}}on(){Pe=this}off(){Pe=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),yt()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=dt,n=Ct;try{return dt=!0,Ct=this,this._runnings++,Li(this),this.fn()}finally{Oi(this),this._runnings--,Ct=n,dt=t}}stop(){this.active&&(Li(this),Oi(this),this.onStop&&this.onStop(),this.active=!1)}}function No(e){return e.value}function Li(e){e._trackId++,e._depsLength=0}function Oi(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},jr=new WeakMap,St=Symbol(""),Ur=Symbol("");function Le(e,t,n){if(dt&&Ct){let r=jr.get(e);r||jr.set(e,r=new Map);let i=r.get(n);i||r.set(n,i=ns(()=>r.delete(n))),es(Ct,i)}}function nt(e,t,n,r,i,l){const s=jr.get(e);if(!s)return;let o=[];if(t==="clear")o=[...s.values()];else if(n==="length"&&F(e)){const a=Number(r);s.forEach((c,f)=>{(f==="length"||!it(f)&&f>=a)&&o.push(c)})}else switch(n!==void 0&&o.push(s.get(n)),t){case"add":F(e)?ti(n)&&o.push(s.get("length")):(o.push(s.get(St)),Mt(e)&&o.push(s.get(Ur)));break;case"delete":F(e)||(o.push(s.get(St)),Mt(e)&&o.push(s.get(Ur)));break;case"set":Mt(e)&&o.push(s.get(St));break}ii();for(const a of o)a&&ts(a,4);li()}const Bo=Jr("__proto__,__v_isRef,__isVue"),rs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(it)),Pi=Wo();function Wo(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=re(this);for(let l=0,s=this.length;l{e[t]=function(...n){vt(),ii();const r=re(this)[t].apply(this,n);return li(),yt(),r}}),e}function qo(e){it(e)||(e=String(e));const t=re(this);return Le(t,"has",e),t.hasOwnProperty(e)}class is{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const i=this._isReadonly,l=this._isShallow;if(n==="__v_isReactive")return!i;if(n==="__v_isReadonly")return i;if(n==="__v_isShallow")return l;if(n==="__v_raw")return r===(i?l?la:as:l?os:ss).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const s=F(t);if(!i){if(s&&ee(Pi,n))return Reflect.get(Pi,n,r);if(n==="hasOwnProperty")return qo}const o=Reflect.get(t,n,r);return(it(n)?rs.has(n):Bo(n))||(i||Le(t,"get",n),l)?o:Ce(o)?s&&ti(n)?o:o.value:he(o)?i?_n(o):jt(o):o}}class ls extends is{constructor(t=!1){super(!1,t)}set(t,n,r,i){let l=t[n];if(!this._isShallow){const a=hn(l);if(!Jn(r)&&!hn(r)&&(l=re(l),r=re(r)),!F(t)&&Ce(l)&&!Ce(r))return a?!1:(l.value=r,!0)}const s=F(t)&&ti(n)?Number(n)e,hr=e=>Reflect.getPrototypeOf(e);function An(e,t,n=!1,r=!1){e=e.__v_raw;const i=re(e),l=re(t);n||(pt(t,l)&&Le(i,"get",t),Le(i,"get",l));const{has:s}=hr(i),o=r?si:n?ci:pn;if(s.call(i,t))return o(e.get(t));if(s.call(i,l))return o(e.get(l));e!==i&&e.get(t)}function In(e,t=!1){const n=this.__v_raw,r=re(n),i=re(e);return t||(pt(e,i)&&Le(r,"has",e),Le(r,"has",i)),e===i?n.has(e):n.has(e)||n.has(i)}function Ln(e,t=!1){return e=e.__v_raw,!t&&Le(re(e),"iterate",St),Reflect.get(e,"size",e)}function Mi(e){e=re(e);const t=re(this);return hr(t).has.call(t,e)||(t.add(e),nt(t,"add",e,e)),this}function zi(e,t){t=re(t);const n=re(this),{has:r,get:i}=hr(n);let l=r.call(n,e);l||(e=re(e),l=r.call(n,e));const s=i.call(n,e);return n.set(e,t),l?pt(t,s)&&nt(n,"set",e,t):nt(n,"add",e,t),this}function ji(e){const t=re(this),{has:n,get:r}=hr(t);let i=n.call(t,e);i||(e=re(e),i=n.call(t,e)),r&&r.call(t,e);const l=t.delete(e);return i&&nt(t,"delete",e,void 0),l}function Ui(){const e=re(this),t=e.size!==0,n=e.clear();return t&&nt(e,"clear",void 0,void 0),n}function On(e,t){return function(r,i){const l=this,s=l.__v_raw,o=re(s),a=t?si:e?ci:pn;return!e&&Le(o,"iterate",St),s.forEach((c,f)=>r.call(i,a(c),a(f),l))}}function Pn(e,t,n){return function(...r){const i=this.__v_raw,l=re(i),s=Mt(l),o=e==="entries"||e===Symbol.iterator&&s,a=e==="keys"&&s,c=i[e](...r),f=n?si:t?ci:pn;return!t&&Le(l,"iterate",a?Ur:St),{next(){const{value:p,done:h}=c.next();return h?{value:p,done:h}:{value:o?[f(p[0]),f(p[1])]:f(p),done:h}},[Symbol.iterator](){return this}}}}function ot(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Yo(){const e={get(l){return An(this,l)},get size(){return Ln(this)},has:In,add:Mi,set:zi,delete:ji,clear:Ui,forEach:On(!1,!1)},t={get(l){return An(this,l,!1,!0)},get size(){return Ln(this)},has:In,add:Mi,set:zi,delete:ji,clear:Ui,forEach:On(!1,!0)},n={get(l){return An(this,l,!0)},get size(){return Ln(this,!0)},has(l){return In.call(this,l,!0)},add:ot("add"),set:ot("set"),delete:ot("delete"),clear:ot("clear"),forEach:On(!0,!1)},r={get(l){return An(this,l,!0,!0)},get size(){return Ln(this,!0)},has(l){return In.call(this,l,!0)},add:ot("add"),set:ot("set"),delete:ot("delete"),clear:ot("clear"),forEach:On(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(l=>{e[l]=Pn(l,!1,!1),n[l]=Pn(l,!0,!1),t[l]=Pn(l,!1,!0),r[l]=Pn(l,!0,!0)}),[e,n,t,r]}const[Jo,Xo,ea,ta]=Yo();function oi(e,t){const n=t?e?ta:ea:e?Xo:Jo;return(r,i,l)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?r:Reflect.get(ee(n,i)&&i in r?n:r,i,l)}const na={get:oi(!1,!1)},ra={get:oi(!1,!0)},ia={get:oi(!0,!1)};const ss=new WeakMap,os=new WeakMap,as=new WeakMap,la=new WeakMap;function sa(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function oa(e){return e.__v_skip||!Object.isExtensible(e)?0:sa(Ao(e))}function jt(e){return hn(e)?e:ai(e,!1,Go,na,ss)}function aa(e){return ai(e,!1,Qo,ra,os)}function _n(e){return ai(e,!0,Zo,ia,as)}function ai(e,t,n,r,i){if(!he(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const l=i.get(e);if(l)return l;const s=oa(e);if(s===0)return e;const o=new Proxy(e,s===2?r:n);return i.set(e,o),o}function sn(e){return hn(e)?sn(e.__v_raw):!!(e&&e.__v_isReactive)}function hn(e){return!!(e&&e.__v_isReadonly)}function Jn(e){return!!(e&&e.__v_isShallow)}function cs(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function ca(e){return Object.isExtensible(e)&&Gl(e,"__v_skip",!0),e}const pn=e=>he(e)?jt(e):e,ci=e=>he(e)?_n(e):e;class us{constructor(t,n,r,i){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new ri(()=>t(this._value),()=>Bn(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=r}get value(){const t=re(this);return(!t._cacheable||t.effect.dirty)&&pt(t._value,t._value=t.effect.run())&&Bn(t,4),fs(t),t.effect._dirtyLevel>=2&&Bn(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function ua(e,t,n=!1){let r,i;const l=G(e);return l?(r=e,i=ze):(r=e.get,i=e.set),new us(r,i,l||!i,n)}function fs(e){var t;dt&&Ct&&(e=re(e),es(Ct,(t=e.dep)!=null?t:e.dep=ns(()=>e.dep=void 0,e instanceof us?e:void 0)))}function Bn(e,t=4,n){e=re(e);const r=e.dep;r&&ts(r,t)}function Ce(e){return!!(e&&e.__v_isRef===!0)}function Z(e){return ds(e,!1)}function fa(e){return ds(e,!0)}function ds(e,t){return Ce(e)?e:new da(e,t)}class da{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:re(t),this._value=n?t:pn(t)}get value(){return fs(this),this._value}set value(t){const n=this.__v_isShallow||Jn(t)||hn(t);t=n?t:re(t),pt(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:pn(t),Bn(this,4))}}function X(e){return Ce(e)?e.value:e}const ha={get:(e,t,n)=>X(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const i=e[t];return Ce(i)&&!Ce(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function hs(e){return sn(e)?e:new Proxy(e,ha)}/** +* @vue/runtime-core v3.4.26 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function ht(e,t,n,r){try{return r?e(...r):e()}catch(i){pr(i,t,n)}}function He(e,t,n,r){if(G(e)){const i=ht(e,t,n,r);return i&&Wl(i)&&i.catch(l=>{pr(l,t,n)}),i}if(F(e)){const i=[];for(let l=0;l>>1,i=Ee[r],l=mn(i);lGe&&Ee.splice(t,1)}function va(e){F(e)?zt.push(...e):(!at||!at.includes(e,e.allowRecurse?xt+1:xt))&&zt.push(e),gs()}function Vi(e,t,n=gn?Ge+1:0){for(;nmn(n)-mn(r));if(zt.length=0,at){at.push(...t);return}for(at=t,xt=0;xte.id==null?1/0:e.id,ya=(e,t)=>{const n=mn(e)-mn(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function vs(e){Vr=!1,gn=!0,Ee.sort(ya);try{for(Ge=0;GeZe.emit(i,...l)),en=[]):typeof window<"u"&&window.HTMLElement&&!((r=(n=window.navigator)==null?void 0:n.userAgent)!=null&&r.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(l=>{ys(l,t)}),setTimeout(()=>{Ze||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Dr=!0,en=[])},3e3)):(Dr=!0,en=[])}function ba(e,t){gr("app:init",e,t,{Fragment:fe,Text:En,Comment:gt,Static:qn})}function wa(e){gr("app:unmount",e)}const _a=di("component:added"),bs=di("component:updated"),ka=di("component:removed"),xa=e=>{Ze&&typeof Ze.cleanupBuffer=="function"&&!Ze.cleanupBuffer(e)&&ka(e)};/*! #__NO_SIDE_EFFECTS__ */function di(e){return t=>{gr(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}function Ea(e,t,n){gr("component:emit",e.appContext.app,e,t,n)}function Ca(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||pe;let i=n;const l=t.startsWith("update:"),s=l&&t.slice(7);if(s&&s in r){const f=`${s==="modelValue"?"model":s}Modifiers`,{number:p,trim:h}=r[f]||pe;h&&(i=n.map(m=>be(m)?m.trim():m)),p&&(i=n.map(Yn))}__VUE_PROD_DEVTOOLS__&&Ea(e,t,i);let o,a=r[o=xr(t)]||r[o=xr(Je(t))];!a&&l&&(a=r[o=xr(Bt(t))]),a&&He(a,e,6,i);const c=r[o+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[o])return;e.emitted[o]=!0,He(c,e,6,i)}}function ws(e,t,n=!1){const r=t.emitsCache,i=r.get(e);if(i!==void 0)return i;const l=e.emits;let s={},o=!1;if(__VUE_OPTIONS_API__&&!G(e)){const a=c=>{const f=ws(c,t,!0);f&&(o=!0,ke(s,f))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!l&&!o?(he(e)&&r.set(e,null),null):(F(l)?l.forEach(a=>s[a]=null):ke(s,l),he(e)&&r.set(e,s),s)}function mr(e,t){return!e||!ur(t)?!1:(t=t.slice(2).replace(/Once$/,""),ee(e,t[0].toLowerCase()+t.slice(1))||ee(e,Bt(t))||ee(e,t))}let Re=null,_s=null;function Xn(e){const t=Re;return Re=e,_s=e&&e.type.__scopeId||null,t}function Sa(e,t=Re,n){if(!t||e._n)return e;const r=(...i)=>{r._d&&Yi(-1);const l=Xn(t);let s;try{s=e(...i)}finally{Xn(l),r._d&&Yi(1)}return __VUE_PROD_DEVTOOLS__&&bs(t),s};return r._n=!0,r._c=!0,r._d=!0,r}function Cr(e){const{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[l],slots:s,attrs:o,emit:a,render:c,renderCache:f,props:p,data:h,setupState:m,ctx:$,inheritAttrs:k}=e,S=Xn(e);let b,E;try{if(n.shapeFlag&4){const V=i||r,z=V;b=Ke(c.call(z,V,f,p,m,h,$)),E=o}else{const V=t;b=Ke(V.length>1?V(p,{attrs:o,slots:s,emit:a}):V(p,null)),E=t.props?o:Ta(o)}}catch(V){cn.length=0,pr(V,e,1),b=ae(gt)}let j=b;if(E&&k!==!1){const V=Object.keys(E),{shapeFlag:z}=j;V.length&&z&7&&(l&&V.some(Xr)&&(E=Ra(E,l)),j=Ut(j,E,!1,!0))}return n.dirs&&(j=Ut(j,null,!1,!0),j.dirs=j.dirs?j.dirs.concat(n.dirs):n.dirs),n.transition&&(j.transition=n.transition),b=j,Xn(S),b}const Ta=e=>{let t;for(const n in e)(n==="class"||n==="style"||ur(n))&&((t||(t={}))[n]=e[n]);return t},Ra=(e,t)=>{const n={};for(const r in e)(!Xr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function $a(e,t,n){const{props:r,children:i,component:l}=e,{props:s,children:o,patchFlag:a}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?Di(r,s,c):!!s;if(a&8){const f=t.dynamicProps;for(let p=0;pe.__isSuspense;function Ma(e,t){t&&t.pendingBranch?F(e)?t.effects.push(...e):t.effects.push(e):va(e)}const za=Symbol.for("v-scx"),ja=()=>Tt(za);function Hi(e,t){return hi(e,null,t)}const Mn={};function $e(e,t,n){return hi(e,t,n)}function hi(e,t,{immediate:n,deep:r,flush:i,once:l,onTrack:s,onTrigger:o}=pe){if(t&&l){const P=t;t=(...W)=>{P(...W),z()}}const a=xe,c=P=>r===!0?P:Et(P,r===!1?1:void 0);let f,p=!1,h=!1;if(Ce(e)?(f=()=>e.value,p=Jn(e)):sn(e)?(f=()=>c(e),p=!0):F(e)?(h=!0,p=e.some(P=>sn(P)||Jn(P)),f=()=>e.map(P=>{if(Ce(P))return P.value;if(sn(P))return c(P);if(G(P))return ht(P,a,2)})):G(e)?t?f=()=>ht(e,a,2):f=()=>(m&&m(),He(e,a,3,[$])):f=ze,t&&r){const P=f;f=()=>Et(P())}let m,$=P=>{m=j.onStop=()=>{ht(P,a,4),m=j.onStop=void 0}},k;if(yr)if($=ze,t?n&&He(t,a,3,[f(),h?[]:void 0,$]):f(),i==="sync"){const P=ja();k=P.__watcherHandles||(P.__watcherHandles=[])}else return ze;let S=h?new Array(e.length).fill(Mn):Mn;const b=()=>{if(!(!j.active||!j.dirty))if(t){const P=j.run();(r||p||(h?P.some((W,N)=>pt(W,S[N])):pt(P,S)))&&(m&&m(),He(t,a,3,[P,S===Mn?void 0:h&&S[0]===Mn?[]:S,$]),S=P)}else j.run()};b.allowRecurse=!!t;let E;i==="sync"?E=b:i==="post"?E=()=>Ie(b,a&&a.suspense):(b.pre=!0,a&&(b.id=a.uid),E=()=>fi(b));const j=new ri(f,ze,E),V=Yl(),z=()=>{j.stop(),V&&ei(V.effects,j)};return t?n?b():S=j.run():i==="post"?Ie(j.run.bind(j),a&&a.suspense):j.run(),k&&k.push(z),z}function Ua(e,t,n){const r=this.proxy,i=be(e)?e.includes(".")?xs(r,e):()=>r[e]:e.bind(r,r);let l;G(t)?l=t:(l=t.handler,n=t);const s=Cn(this),o=hi(i,l.bind(r),n);return s(),o}function xs(e,t){const n=t.split(".");return()=>{let r=e;for(let i=0;i{Et(r,t,n)});else if(Kl(e))for(const r in e)Et(e[r],t,n);return e}function zn(e,t){if(Re===null)return e;const n=br(Re)||Re.proxy,r=e.dirs||(e.dirs=[]);for(let i=0;i!!e.type.__asyncLoader,Es=e=>e.type.__isKeepAlive;function Va(e,t){Cs(e,"a",t)}function Da(e,t){Cs(e,"da",t)}function Cs(e,t,n=xe){const r=e.__wdc||(e.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(vr(t,r,n),n){let i=n.parent;for(;i&&i.parent;)Es(i.parent.vnode)&&Fa(r,t,n,i),i=i.parent}}function Fa(e,t,n,r){const i=vr(t,e,r,!0);qt(()=>{ei(r[t],i)},n)}function vr(e,t,n=xe,r=!1){if(n){const i=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...s)=>{if(n.isUnmounted)return;vt();const o=Cn(n),a=He(t,n,e,s);return o(),yt(),a});return r?i.unshift(l):i.push(l),l}}const st=e=>(t,n=xe)=>(!yr||e==="sp")&&vr(e,(...r)=>t(...r),n),Ha=st("bm"),Wt=st("m"),Na=st("bu"),Ba=st("u"),Ss=st("bum"),qt=st("um"),Wa=st("sp"),qa=st("rtg"),Ka=st("rtc");function Ga(e,t=xe){vr("ec",e,t)}function Ue(e,t,n,r){let i;const l=n&&n[r];if(F(e)||be(e)){i=new Array(e.length);for(let s=0,o=e.length;st(s,o,void 0,l&&l[o]));else{const s=Object.keys(e);i=new Array(s.length);for(let o=0,a=s.length;oe?Hs(e)?br(e)||e.proxy:Fr(e.parent):null,on=ke(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Fr(e.parent),$root:e=>Fr(e.root),$emit:e=>e.emit,$options:e=>__VUE_OPTIONS_API__?pi(e):e.type,$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,fi(e.update)}),$nextTick:e=>e.n||(e.n=kn.bind(e.proxy)),$watch:e=>__VUE_OPTIONS_API__?Ua.bind(e):ze}),Sr=(e,t)=>e!==pe&&!e.__isScriptSetup&&ee(e,t),Za={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:i,props:l,accessCache:s,type:o,appContext:a}=e;let c;if(t[0]!=="$"){const m=s[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return l[t]}else{if(Sr(r,t))return s[t]=1,r[t];if(i!==pe&&ee(i,t))return s[t]=2,i[t];if((c=e.propsOptions[0])&&ee(c,t))return s[t]=3,l[t];if(n!==pe&&ee(n,t))return s[t]=4,n[t];(!__VUE_OPTIONS_API__||Hr)&&(s[t]=0)}}const f=on[t];let p,h;if(f)return t==="$attrs"&&Le(e.attrs,"get",""),f(e);if((p=o.__cssModules)&&(p=p[t]))return p;if(n!==pe&&ee(n,t))return s[t]=4,n[t];if(h=a.config.globalProperties,ee(h,t))return h[t]},set({_:e},t,n){const{data:r,setupState:i,ctx:l}=e;return Sr(i,t)?(i[t]=n,!0):r!==pe&&ee(r,t)?(r[t]=n,!0):ee(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:l}},s){let o;return!!n[s]||e!==pe&&ee(e,s)||Sr(t,s)||(o=l[0])&&ee(o,s)||ee(r,s)||ee(on,s)||ee(i.config.globalProperties,s)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ee(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ni(e){return F(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Hr=!0;function Qa(e){const t=pi(e),n=e.proxy,r=e.ctx;Hr=!1,t.beforeCreate&&Bi(t.beforeCreate,e,"bc");const{data:i,computed:l,methods:s,watch:o,provide:a,inject:c,created:f,beforeMount:p,mounted:h,beforeUpdate:m,updated:$,activated:k,deactivated:S,beforeDestroy:b,beforeUnmount:E,destroyed:j,unmounted:V,render:z,renderTracked:P,renderTriggered:W,errorCaptured:N,serverPrefetch:Se,expose:q,inheritAttrs:de,components:me,directives:K,filters:B}=t;if(c&&Ya(c,r,null),s)for(const Q in s){const J=s[Q];G(J)&&(r[Q]=J.bind(n))}if(i){const Q=i.call(n,n);he(Q)&&(e.data=jt(Q))}if(Hr=!0,l)for(const Q in l){const J=l[Q],ve=G(J)?J.bind(n,n):G(J.get)?J.get.bind(n,n):ze,Ne=!G(J)&&G(J.set)?J.set.bind(n):ze,Be=_e({get:ve,set:Ne});Object.defineProperty(r,Q,{enumerable:!0,configurable:!0,get:()=>Be.value,set:Ae=>Be.value=Ae})}if(o)for(const Q in o)Ts(o[Q],r,n,Q);if(a){const Q=G(a)?a.call(n):a;Reflect.ownKeys(Q).forEach(J=>{$s(J,Q[J])})}f&&Bi(f,e,"c");function ne(Q,J){F(J)?J.forEach(ve=>Q(ve.bind(n))):J&&Q(J.bind(n))}if(ne(Ha,p),ne(Wt,h),ne(Na,m),ne(Ba,$),ne(Va,k),ne(Da,S),ne(Ga,N),ne(Ka,P),ne(qa,W),ne(Ss,E),ne(qt,V),ne(Wa,Se),F(q))if(q.length){const Q=e.exposed||(e.exposed={});q.forEach(J=>{Object.defineProperty(Q,J,{get:()=>n[J],set:ve=>n[J]=ve})})}else e.exposed||(e.exposed={});z&&e.render===ze&&(e.render=z),de!=null&&(e.inheritAttrs=de),me&&(e.components=me),K&&(e.directives=K)}function Ya(e,t,n=ze){F(e)&&(e=Nr(e));for(const r in e){const i=e[r];let l;he(i)?"default"in i?l=Tt(i.from||r,i.default,!0):l=Tt(i.from||r):l=Tt(i),Ce(l)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>l.value,set:s=>l.value=s}):t[r]=l}}function Bi(e,t,n){He(F(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ts(e,t,n,r){const i=r.includes(".")?xs(n,r):()=>n[r];if(be(e)){const l=t[e];G(l)&&$e(i,l)}else if(G(e))$e(i,e.bind(n));else if(he(e))if(F(e))e.forEach(l=>Ts(l,t,n,r));else{const l=G(e.handler)?e.handler.bind(n):t[e.handler];G(l)&&$e(i,l,e)}}function pi(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:l,config:{optionMergeStrategies:s}}=e.appContext,o=l.get(t);let a;return o?a=o:!i.length&&!n&&!r?a=t:(a={},i.length&&i.forEach(c=>er(a,c,s,!0)),er(a,t,s)),he(t)&&l.set(t,a),a}function er(e,t,n,r=!1){const{mixins:i,extends:l}=t;l&&er(e,l,n,!0),i&&i.forEach(s=>er(e,s,n,!0));for(const s in t)if(!(r&&s==="expose")){const o=Ja[s]||n&&n[s];e[s]=o?o(e[s],t[s]):t[s]}return e}const Ja={data:Wi,props:qi,emits:qi,methods:tn,computed:tn,beforeCreate:Te,created:Te,beforeMount:Te,mounted:Te,beforeUpdate:Te,updated:Te,beforeDestroy:Te,beforeUnmount:Te,destroyed:Te,unmounted:Te,activated:Te,deactivated:Te,errorCaptured:Te,serverPrefetch:Te,components:tn,directives:tn,watch:ec,provide:Wi,inject:Xa};function Wi(e,t){return t?e?function(){return ke(G(e)?e.call(this,this):e,G(t)?t.call(this,this):t)}:t:e}function Xa(e,t){return tn(Nr(e),Nr(t))}function Nr(e){if(F(e)){const t={};for(let n=0;n1)return n&&G(t)?t.call(r&&r.proxy):t}}const As={},Is=()=>Object.create(As),Ls=e=>Object.getPrototypeOf(e)===As;function rc(e,t,n,r=!1){const i={},l=Is();e.propsDefaults=Object.create(null),Os(e,t,i,l);for(const s in e.propsOptions[0])s in i||(i[s]=void 0);n?e.props=r?i:aa(i):e.type.props?e.props=i:e.props=l,e.attrs=l}function ic(e,t,n,r){const{props:i,attrs:l,vnode:{patchFlag:s}}=e,o=re(i),[a]=e.propsOptions;let c=!1;if((r||s>0)&&!(s&16)){if(s&8){const f=e.vnode.dynamicProps;for(let p=0;p{a=!0;const[h,m]=Ps(p,t,!0);ke(s,h),m&&o.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!l&&!a)return he(e)&&r.set(e,Pt),Pt;if(F(l))for(let f=0;f-1,m[1]=k<0||$-1||ee(m,"default"))&&o.push(p)}}}const c=[s,o];return he(e)&&r.set(e,c),c}function Ki(e){return e[0]!=="$"&&!rn(e)}function Gi(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function Zi(e,t){return Gi(e)===Gi(t)}function Qi(e,t){return F(t)?t.findIndex(n=>Zi(n,e)):G(t)&&Zi(t,e)?0:-1}const Ms=e=>e[0]==="_"||e==="$stable",gi=e=>F(e)?e.map(Ke):[Ke(e)],lc=(e,t,n)=>{if(t._n)return t;const r=Sa((...i)=>gi(t(...i)),n);return r._c=!1,r},zs=(e,t,n)=>{const r=e._ctx;for(const i in e){if(Ms(i))continue;const l=e[i];if(G(l))t[i]=lc(i,l,r);else if(l!=null){const s=gi(l);t[i]=()=>s}}},js=(e,t)=>{const n=gi(t);e.slots.default=()=>n},sc=(e,t)=>{const n=e.slots=Is();if(e.vnode.shapeFlag&32){const r=t._;r?(ke(n,t),Gl(n,"_",r,!0)):zs(t,n)}else t&&js(e,t)},oc=(e,t,n)=>{const{vnode:r,slots:i}=e;let l=!0,s=pe;if(r.shapeFlag&32){const o=t._;o?n&&o===1?l=!1:(ke(i,t),!n&&o===1&&delete i._):(l=!t.$stable,zs(t,i)),s=t}else t&&(js(e,t),s={default:1});if(l)for(const o in i)!Ms(o)&&s[o]==null&&delete i[o]};function Wr(e,t,n,r,i=!1){if(F(e)){e.forEach((h,m)=>Wr(h,t&&(F(t)?t[m]:t),n,r,i));return}if(Wn(r)&&!i)return;const l=r.shapeFlag&4?br(r.component)||r.component.proxy:r.el,s=i?null:l,{i:o,r:a}=e,c=t&&t.r,f=o.refs===pe?o.refs={}:o.refs,p=o.setupState;if(c!=null&&c!==a&&(be(c)?(f[c]=null,ee(p,c)&&(p[c]=null)):Ce(c)&&(c.value=null)),G(a))ht(a,o,12,[s,f]);else{const h=be(a),m=Ce(a);if(h||m){const $=()=>{if(e.f){const k=h?ee(p,a)?p[a]:f[a]:a.value;i?F(k)&&ei(k,l):F(k)?k.includes(l)||k.push(l):h?(f[a]=[l],ee(p,a)&&(p[a]=f[a])):(a.value=[l],e.k&&(f[e.k]=a.value))}else h?(f[a]=s,ee(p,a)&&(p[a]=s)):m&&(a.value=s,e.k&&(f[e.k]=s))};s?($.id=-1,Ie($,n)):$()}}}function ac(){typeof __VUE_OPTIONS_API__!="boolean"&&(ln().__VUE_OPTIONS_API__=!0),typeof __VUE_PROD_DEVTOOLS__!="boolean"&&(ln().__VUE_PROD_DEVTOOLS__=!1),typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__!="boolean"&&(ln().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__=!1)}const Ie=Ma;function cc(e){return uc(e)}function uc(e,t){ac();const n=ln();n.__VUE__=!0,__VUE_PROD_DEVTOOLS__&&ys(n.__VUE_DEVTOOLS_GLOBAL_HOOK__,n);const{insert:r,remove:i,patchProp:l,createElement:s,createText:o,createComment:a,setText:c,setElementText:f,parentNode:p,nextSibling:h,setScopeId:m=ze,insertStaticContent:$}=e,k=(u,d,g,v=null,y=null,_=null,T=void 0,x=null,C=!!d.dynamicChildren)=>{if(u===d)return;u&&!Yt(u,d)&&(v=wt(u),Ae(u,y,_,!0),u=null),d.patchFlag===-2&&(C=!1,d.dynamicChildren=null);const{type:w,ref:I,shapeFlag:D}=d;switch(w){case En:S(u,d,g,v);break;case gt:b(u,d,g,v);break;case qn:u==null&&E(d,g,v,T);break;case fe:me(u,d,g,v,y,_,T,x,C);break;default:D&1?z(u,d,g,v,y,_,T,x,C):D&6?K(u,d,g,v,y,_,T,x,C):(D&64||D&128)&&w.process(u,d,g,v,y,_,T,x,C,Xe)}I!=null&&y&&Wr(I,u&&u.ref,_,d||u,!d)},S=(u,d,g,v)=>{if(u==null)r(d.el=o(d.children),g,v);else{const y=d.el=u.el;d.children!==u.children&&c(y,d.children)}},b=(u,d,g,v)=>{u==null?r(d.el=a(d.children||""),g,v):d.el=u.el},E=(u,d,g,v)=>{[u.el,u.anchor]=$(u.children,d,g,v,u.el,u.anchor)},j=({el:u,anchor:d},g,v)=>{let y;for(;u&&u!==d;)y=h(u),r(u,g,v),u=y;r(d,g,v)},V=({el:u,anchor:d})=>{let g;for(;u&&u!==d;)g=h(u),i(u),u=g;i(d)},z=(u,d,g,v,y,_,T,x,C)=>{d.type==="svg"?T="svg":d.type==="math"&&(T="mathml"),u==null?P(d,g,v,y,_,T,x,C):Se(u,d,y,_,T,x,C)},P=(u,d,g,v,y,_,T,x)=>{let C,w;const{props:I,shapeFlag:D,transition:R,dirs:H}=u;if(C=u.el=s(u.type,_,I&&I.is,I),D&8?f(C,u.children):D&16&&N(u.children,C,null,v,y,Tr(u,_),T,x),H&&_t(u,null,v,"created"),W(C,u,u.scopeId,T,v),I){for(const oe in I)oe!=="value"&&!rn(oe)&&l(C,oe,null,I[oe],_,u.children,v,y,je);"value"in I&&l(C,"value",null,I.value,_),(w=I.onVnodeBeforeMount)&&qe(w,v,u)}__VUE_PROD_DEVTOOLS__&&(Object.defineProperty(C,"__vnode",{value:u,enumerable:!1}),Object.defineProperty(C,"__vueParentComponent",{value:v,enumerable:!1})),H&&_t(u,null,v,"beforeMount");const Y=fc(y,R);Y&&R.beforeEnter(C),r(C,d,g),((w=I&&I.onVnodeMounted)||Y||H)&&Ie(()=>{w&&qe(w,v,u),Y&&R.enter(C),H&&_t(u,null,v,"mounted")},y)},W=(u,d,g,v,y)=>{if(g&&m(u,g),v)for(let _=0;_{for(let w=C;w{const x=d.el=u.el;let{patchFlag:C,dynamicChildren:w,dirs:I}=d;C|=u.patchFlag&16;const D=u.props||pe,R=d.props||pe;let H;if(g&&kt(g,!1),(H=R.onVnodeBeforeUpdate)&&qe(H,g,d,u),I&&_t(d,u,g,"beforeUpdate"),g&&kt(g,!0),w?q(u.dynamicChildren,w,x,g,v,Tr(d,y),_):T||J(u,d,x,null,g,v,Tr(d,y),_,!1),C>0){if(C&16)de(x,d,D,R,g,v,y);else if(C&2&&D.class!==R.class&&l(x,"class",null,R.class,y),C&4&&l(x,"style",D.style,R.style,y),C&8){const Y=d.dynamicProps;for(let oe=0;oe{H&&qe(H,g,d,u),I&&_t(d,u,g,"updated")},v)},q=(u,d,g,v,y,_,T)=>{for(let x=0;x{if(g!==v){if(g!==pe)for(const x in g)!rn(x)&&!(x in v)&&l(u,x,g[x],null,T,d.children,y,_,je);for(const x in v){if(rn(x))continue;const C=v[x],w=g[x];C!==w&&x!=="value"&&l(u,x,w,C,T,d.children,y,_,je)}"value"in v&&l(u,"value",g.value,v.value,T)}},me=(u,d,g,v,y,_,T,x,C)=>{const w=d.el=u?u.el:o(""),I=d.anchor=u?u.anchor:o("");let{patchFlag:D,dynamicChildren:R,slotScopeIds:H}=d;H&&(x=x?x.concat(H):H),u==null?(r(w,g,v),r(I,g,v),N(d.children||[],g,I,y,_,T,x,C)):D>0&&D&64&&R&&u.dynamicChildren?(q(u.dynamicChildren,R,g,y,_,T,x),(d.key!=null||y&&d===y.subTree)&&Us(u,d,!0)):J(u,d,g,I,y,_,T,x,C)},K=(u,d,g,v,y,_,T,x,C)=>{d.slotScopeIds=x,u==null?d.shapeFlag&512?y.ctx.activate(d,g,v,T,C):B(d,g,v,y,_,T,C):le(u,d,C)},B=(u,d,g,v,y,_,T)=>{const x=u.component=wc(u,v,y);if(Es(u)&&(x.ctx.renderer=Xe),kc(x),x.asyncDep){if(y&&y.registerDep(x,ne),!u.el){const C=x.subTree=ae(gt);b(null,C,d,g)}}else ne(x,u,d,g,y,_,T)},le=(u,d,g)=>{const v=d.component=u.component;if($a(u,d,g))if(v.asyncDep&&!v.asyncResolved){Q(v,d,g);return}else v.next=d,ma(v.update),v.effect.dirty=!0,v.update();else d.el=u.el,v.vnode=d},ne=(u,d,g,v,y,_,T)=>{const x=()=>{if(u.isMounted){let{next:I,bu:D,u:R,parent:H,vnode:Y}=u;{const Ot=Vs(u);if(Ot){I&&(I.el=Y.el,Q(u,I,T)),Ot.asyncDep.then(()=>{u.isUnmounted||x()});return}}let oe=I,ge;kt(u,!1),I?(I.el=Y.el,Q(u,I,T)):I=Y,D&&Nn(D),(ge=I.props&&I.props.onVnodeBeforeUpdate)&&qe(ge,H,I,Y),kt(u,!0);const we=Cr(u),De=u.subTree;u.subTree=we,k(De,we,p(De.el),wt(De),u,y,_),I.el=we.el,oe===null&&Aa(u,we.el),R&&Ie(R,y),(ge=I.props&&I.props.onVnodeUpdated)&&Ie(()=>qe(ge,H,I,Y),y),__VUE_PROD_DEVTOOLS__&&bs(u)}else{let I;const{el:D,props:R}=d,{bm:H,m:Y,parent:oe}=u,ge=Wn(d);if(kt(u,!1),H&&Nn(H),!ge&&(I=R&&R.onVnodeBeforeMount)&&qe(I,oe,d),kt(u,!0),D&&A){const we=()=>{u.subTree=Cr(u),A(D,u.subTree,u,y,null)};ge?d.type.__asyncLoader().then(()=>!u.isUnmounted&&we()):we()}else{const we=u.subTree=Cr(u);k(null,we,g,v,u,y,_),d.el=we.el}if(Y&&Ie(Y,y),!ge&&(I=R&&R.onVnodeMounted)){const we=d;Ie(()=>qe(I,oe,we),y)}(d.shapeFlag&256||oe&&Wn(oe.vnode)&&oe.vnode.shapeFlag&256)&&u.a&&Ie(u.a,y),u.isMounted=!0,__VUE_PROD_DEVTOOLS__&&_a(u),d=g=v=null}},C=u.effect=new ri(x,ze,()=>fi(w),u.scope),w=u.update=()=>{C.dirty&&C.run()};w.id=u.uid,kt(u,!0),w()},Q=(u,d,g)=>{d.component=u;const v=u.vnode.props;u.vnode=d,u.next=null,ic(u,d.props,v,g),oc(u,d.children,g),vt(),Vi(u),yt()},J=(u,d,g,v,y,_,T,x,C=!1)=>{const w=u&&u.children,I=u?u.shapeFlag:0,D=d.children,{patchFlag:R,shapeFlag:H}=d;if(R>0){if(R&128){Ne(w,D,g,v,y,_,T,x,C);return}else if(R&256){ve(w,D,g,v,y,_,T,x,C);return}}H&8?(I&16&&je(w,y,_),D!==w&&f(g,D)):I&16?H&16?Ne(w,D,g,v,y,_,T,x,C):je(w,y,_,!0):(I&8&&f(g,""),H&16&&N(D,g,v,y,_,T,x,C))},ve=(u,d,g,v,y,_,T,x,C)=>{u=u||Pt,d=d||Pt;const w=u.length,I=d.length,D=Math.min(w,I);let R;for(R=0;RI?je(u,y,_,!0,!1,D):N(d,g,v,y,_,T,x,C,D)},Ne=(u,d,g,v,y,_,T,x,C)=>{let w=0;const I=d.length;let D=u.length-1,R=I-1;for(;w<=D&&w<=R;){const H=u[w],Y=d[w]=C?ct(d[w]):Ke(d[w]);if(Yt(H,Y))k(H,Y,g,null,y,_,T,x,C);else break;w++}for(;w<=D&&w<=R;){const H=u[D],Y=d[R]=C?ct(d[R]):Ke(d[R]);if(Yt(H,Y))k(H,Y,g,null,y,_,T,x,C);else break;D--,R--}if(w>D){if(w<=R){const H=R+1,Y=HR)for(;w<=D;)Ae(u[w],y,_,!0),w++;else{const H=w,Y=w,oe=new Map;for(w=Y;w<=R;w++){const Oe=d[w]=C?ct(d[w]):Ke(d[w]);Oe.key!=null&&oe.set(Oe.key,w)}let ge,we=0;const De=R-Y+1;let Ot=!1,Si=0;const Qt=new Array(De);for(w=0;w=De){Ae(Oe,y,_,!0);continue}let We;if(Oe.key!=null)We=oe.get(Oe.key);else for(ge=Y;ge<=R;ge++)if(Qt[ge-Y]===0&&Yt(Oe,d[ge])){We=ge;break}We===void 0?Ae(Oe,y,_,!0):(Qt[We-Y]=w+1,We>=Si?Si=We:Ot=!0,k(Oe,d[We],g,null,y,_,T,x,C),we++)}const Ti=Ot?dc(Qt):Pt;for(ge=Ti.length-1,w=De-1;w>=0;w--){const Oe=Y+w,We=d[Oe],Ri=Oe+1{const{el:_,type:T,transition:x,children:C,shapeFlag:w}=u;if(w&6){Be(u.component.subTree,d,g,v);return}if(w&128){u.suspense.move(d,g,v);return}if(w&64){T.move(u,d,g,Xe);return}if(T===fe){r(_,d,g);for(let D=0;Dx.enter(_),y);else{const{leave:D,delayLeave:R,afterLeave:H}=x,Y=()=>r(_,d,g),oe=()=>{D(_,()=>{Y(),H&&H()})};R?R(_,Y,oe):oe()}else r(_,d,g)},Ae=(u,d,g,v=!1,y=!1)=>{const{type:_,props:T,ref:x,children:C,dynamicChildren:w,shapeFlag:I,patchFlag:D,dirs:R}=u;if(x!=null&&Wr(x,null,g,u,!0),I&256){d.ctx.deactivate(u);return}const H=I&1&&R,Y=!Wn(u);let oe;if(Y&&(oe=T&&T.onVnodeBeforeUnmount)&&qe(oe,d,u),I&6)kr(u.component,g,v);else{if(I&128){u.suspense.unmount(g,v);return}H&&_t(u,null,d,"beforeUnmount"),I&64?u.type.remove(u,d,g,y,Xe,v):w&&(_!==fe||D>0&&D&64)?je(w,d,g,!1,!0):(_===fe&&D&384||!y&&I&16)&&je(C,d,g),v&&Gt(u)}(Y&&(oe=T&&T.onVnodeUnmounted)||H)&&Ie(()=>{oe&&qe(oe,d,u),H&&_t(u,null,d,"unmounted")},g)},Gt=u=>{const{type:d,el:g,anchor:v,transition:y}=u;if(d===fe){_r(g,v);return}if(d===qn){V(u);return}const _=()=>{i(g),y&&!y.persisted&&y.afterLeave&&y.afterLeave()};if(u.shapeFlag&1&&y&&!y.persisted){const{leave:T,delayLeave:x}=y,C=()=>T(g,_);x?x(u.el,_,C):C()}else _()},_r=(u,d)=>{let g;for(;u!==d;)g=h(u),i(u),u=g;i(d)},kr=(u,d,g)=>{const{bum:v,scope:y,update:_,subTree:T,um:x}=u;v&&Nn(v),y.stop(),_&&(_.active=!1,Ae(T,u,d,g)),x&&Ie(x,d),Ie(()=>{u.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve()),__VUE_PROD_DEVTOOLS__&&xa(u)},je=(u,d,g,v=!1,y=!1,_=0)=>{for(let T=_;Tu.shapeFlag&6?wt(u.component.subTree):u.shapeFlag&128?u.suspense.next():h(u.anchor||u.el);let Lt=!1;const Zt=(u,d,g)=>{u==null?d._vnode&&Ae(d._vnode,null,null,!0):k(d._vnode||null,u,d,null,null,null,g),Lt||(Lt=!0,Vi(),ms(),Lt=!1),d._vnode=u},Xe={p:k,um:Ae,m:Be,r:Gt,mt:B,mc:N,pc:J,pbc:q,n:wt,o:e};let O,A;return t&&([O,A]=t(Xe)),{render:Zt,hydrate:O,createApp:nc(Zt,O)}}function Tr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function kt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function fc(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Us(e,t,n=!1){const r=e.children,i=t.children;if(F(r)&&F(i))for(let l=0;l>1,e[n[o]]0&&(t[r]=n[l-1]),n[l]=r)}}for(l=n.length,s=n[l-1];l-- >0;)n[l]=s,s=t[s];return n}function Vs(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Vs(t)}const hc=e=>e.__isTeleport,fe=Symbol.for("v-fgt"),En=Symbol.for("v-txt"),gt=Symbol.for("v-cmt"),qn=Symbol.for("v-stc"),cn=[];let Fe=null;function L(e=!1){cn.push(Fe=e?null:[])}function pc(){cn.pop(),Fe=cn[cn.length-1]||null}let vn=1;function Yi(e){vn+=e}function Ds(e){return e.dynamicChildren=vn>0?Fe||Pt:null,pc(),vn>0&&Fe&&Fe.push(e),e}function M(e,t,n,r,i,l){return Ds(U(e,t,n,r,i,l,!0))}function lt(e,t,n,r,i){return Ds(ae(e,t,n,r,i,!0))}function qr(e){return e?e.__v_isVNode===!0:!1}function Yt(e,t){return e.type===t.type&&e.key===t.key}const Fs=({key:e})=>e??null,Kn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?be(e)||Ce(e)||G(e)?{i:Re,r:e,k:t,f:!!n}:e:null);function U(e,t=null,n=null,r=0,i=null,l=e===fe?0:1,s=!1,o=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Fs(t),ref:t&&Kn(t),scopeId:_s,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Re};return o?(mi(a,n),l&128&&e.normalize(a)):n&&(a.shapeFlag|=be(n)?8:16),vn>0&&!s&&Fe&&(a.patchFlag>0||l&6)&&a.patchFlag!==32&&Fe.push(a),a}const ae=gc;function gc(e,t=null,n=null,r=0,i=null,l=!1){if((!e||e===La)&&(e=gt),qr(e)){const o=Ut(e,t,!0);return n&&mi(o,n),vn>0&&!l&&Fe&&(o.shapeFlag&6?Fe[Fe.indexOf(e)]=o:Fe.push(o)),o.patchFlag|=-2,o}if(Tc(e)&&(e=e.__vccOpts),t){t=mc(t);let{class:o,style:a}=t;o&&!be(o)&&(t.class=ye(o)),he(a)&&(cs(a)&&!F(a)&&(a=ke({},a)),t.style=dn(a))}const s=be(e)?1:Pa(e)?128:hc(e)?64:he(e)?4:G(e)?2:0;return U(e,t,n,r,i,s,l,!0)}function mc(e){return e?cs(e)||Ls(e)?ke({},e):e:null}function Ut(e,t,n=!1,r=!1){const{props:i,ref:l,patchFlag:s,children:o,transition:a}=e,c=t?vc(i||{},t):i,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Fs(c),ref:t&&t.ref?n&&l?F(l)?l.concat(Kn(t)):[l,Kn(t)]:Kn(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==fe?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ut(e.ssContent),ssFallback:e.ssFallback&&Ut(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&(f.transition=a.clone(f)),f}function tt(e=" ",t=0){return ae(En,null,e,t)}function te(e="",t=!1){return t?(L(),lt(gt,null,e)):ae(gt,null,e)}function Ke(e){return e==null||typeof e=="boolean"?ae(gt):F(e)?ae(fe,null,e.slice()):typeof e=="object"?ct(e):ae(En,null,String(e))}function ct(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ut(e)}function mi(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(F(t))n=16;else if(typeof t=="object")if(r&65){const i=t.default;i&&(i._c&&(i._d=!1),mi(e,i()),i._c&&(i._d=!0));return}else{n=32;const i=t._;!i&&!Ls(t)?t._ctx=Re:i===3&&Re&&(Re.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else G(t)?(t={default:t,_ctx:Re},n=32):(t=String(t),r&64?(n=16,t=[tt(t)]):n=8);e.children=t,e.shapeFlag|=n}function vc(...e){const t={};for(let n=0;nxe||Re;let tr,Kr;{const e=ln(),t=(n,r)=>{let i;return(i=e[n])||(i=e[n]=[]),i.push(r),l=>{i.length>1?i.forEach(s=>s(l)):i[0](l)}};tr=t("__VUE_INSTANCE_SETTERS__",n=>xe=n),Kr=t("__VUE_SSR_SETTERS__",n=>yr=n)}const Cn=e=>{const t=xe;return tr(e),e.scope.on(),()=>{e.scope.off(),tr(t)}},Ji=()=>{xe&&xe.scope.off(),tr(null)};function Hs(e){return e.vnode.shapeFlag&4}let yr=!1;function kc(e,t=!1){t&&Kr(t);const{props:n,children:r}=e.vnode,i=Hs(e);rc(e,n,i,t),sc(e,r);const l=i?xc(e,t):void 0;return t&&Kr(!1),l}function xc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Za);const{setup:r}=n;if(r){const i=e.setupContext=r.length>1?Cc(e):null,l=Cn(e);vt();const s=ht(r,e,0,[e.props,i]);if(yt(),l(),Wl(s)){if(s.then(Ji,Ji),t)return s.then(o=>{Xi(e,o,t)}).catch(o=>{pr(o,e,0)});e.asyncDep=s}else Xi(e,s,t)}else Ns(e,t)}function Xi(e,t,n){G(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:he(t)&&(__VUE_PROD_DEVTOOLS__&&(e.devtoolsRawSetupState=t),e.setupState=hs(t)),Ns(e,n)}let el;function Ns(e,t,n){const r=e.type;if(!e.render){if(!t&&el&&!r.render){const i=r.template||pi(e).template;if(i){const{isCustomElement:l,compilerOptions:s}=e.appContext.config,{delimiters:o,compilerOptions:a}=r,c=ke(ke({isCustomElement:l,delimiters:o},s),a);r.render=el(i,c)}}e.render=r.render||ze}if(__VUE_OPTIONS_API__){const i=Cn(e);vt();try{Qa(e)}finally{yt(),i()}}}const Ec={get(e,t){return Le(e,"get",""),e[t]}};function Cc(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Ec),slots:e.slots,emit:e.emit,expose:t}}function br(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(hs(ca(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in on)return on[n](e)},has(t,n){return n in t||n in on}}))}function Sc(e,t=!0){return G(e)?e.displayName||e.name:e.name||t&&e.__name}function Tc(e){return G(e)&&"__vccOpts"in e}const _e=(e,t)=>ua(e,t,yr);function ie(e,t,n){const r=arguments.length;return r===2?he(t)&&!F(t)?qr(t)?ae(e,null,[t]):ae(e,t):ae(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&qr(n)&&(n=[n]),ae(e,t,n))}const tl="3.4.26";/** +* @vue/runtime-dom v3.4.26 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const Rc="http://www.w3.org/2000/svg",$c="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,nl=ut&&ut.createElement("template"),Ac={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const i=t==="svg"?ut.createElementNS(Rc,e):t==="mathml"?ut.createElementNS($c,e):ut.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&i.setAttribute("multiple",r.multiple),i},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,l){const s=n?n.previousSibling:t.lastChild;if(i&&(i===l||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===l||!(i=i.nextSibling)););else{nl.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const o=nl.content;if(r==="svg"||r==="mathml"){const a=o.firstChild;for(;a.firstChild;)o.appendChild(a.firstChild);o.removeChild(a)}t.insertBefore(o,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ic=Symbol("_vtc");function Lc(e,t,n){const r=e[Ic];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const nr=Symbol("_vod"),Bs=Symbol("_vsh"),rl={beforeMount(e,{value:t},{transition:n}){e[nr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Jt(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Jt(e,!0),r.enter(e)):r.leave(e,()=>{Jt(e,!1)}):Jt(e,t))},beforeUnmount(e,{value:t}){Jt(e,t)}};function Jt(e,t){e.style.display=t?e[nr]:"none",e[Bs]=!t}const Oc=Symbol(""),Pc=/(^|;)\s*display\s*:/;function Mc(e,t,n){const r=e.style,i=be(n);let l=!1;if(n&&!i){if(t)if(be(t))for(const s of t.split(";")){const o=s.slice(0,s.indexOf(":")).trim();n[o]==null&&Gn(r,o,"")}else for(const s in t)n[s]==null&&Gn(r,s,"");for(const s in n)s==="display"&&(l=!0),Gn(r,s,n[s])}else if(i){if(t!==n){const s=r[Oc];s&&(n+=";"+s),r.cssText=n,l=Pc.test(n)}}else t&&e.removeAttribute("style");nr in e&&(e[nr]=l?r.display:"",e[Bs]&&(r.display="none"))}const il=/\s*!important$/;function Gn(e,t,n){if(F(n))n.forEach(r=>Gn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=zc(e,t);il.test(n)?e.setProperty(Bt(r),n.replace(il,""),"important"):e[r]=n}}const ll=["Webkit","Moz","ms"],Rr={};function zc(e,t){const n=Rr[t];if(n)return n;let r=Je(t);if(r!=="filter"&&r in e)return Rr[t]=r;r=dr(r);for(let i=0;i$r||(Hc.then(()=>$r=0),$r=Date.now());function Bc(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;He(Wc(r,n.value),t,5,[r])};return n.value=e,n.attached=Nc(),n}function Wc(e,t){if(F(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>i=>!i._stopped&&r&&r(i))}else return t}const cl=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,qc=(e,t,n,r,i,l,s,o,a)=>{const c=i==="svg";t==="class"?Lc(e,r,c):t==="style"?Mc(e,n,r):ur(t)?Xr(t)||Dc(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Kc(e,t,r,c))?Uc(e,t,r,l,s,o,a):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),jc(e,t,r,c))};function Kc(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&cl(t)&&G(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return cl(t)&&be(n)?!1:t in e}const mt=e=>{const t=e.props["onUpdate:modelValue"]||!1;return F(t)?n=>Nn(t,n):t};function Gc(e){e.target.composing=!0}function ul(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ve=Symbol("_assign"),Gr={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[Ve]=mt(i);const l=r||i.props&&i.props.type==="number";et(e,t?"change":"input",s=>{if(s.target.composing)return;let o=e.value;n&&(o=o.trim()),l&&(o=Yn(o)),e[Ve](o)}),n&&et(e,"change",()=>{e.value=e.value.trim()}),t||(et(e,"compositionstart",Gc),et(e,"compositionend",ul),et(e,"change",ul))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:r,number:i}},l){if(e[Ve]=mt(l),e.composing)return;const s=(i||e.type==="number")&&!/^0\d/.test(e.value)?Yn(e.value):e.value,o=t??"";s!==o&&(document.activeElement===e&&e.type!=="range"&&(n||r&&e.value.trim()===o)||(e.value=o))}},Zc={deep:!0,created(e,t,n){e[Ve]=mt(n),et(e,"change",()=>{const r=e._modelValue,i=Vt(e),l=e.checked,s=e[Ve];if(F(r)){const o=ni(r,i),a=o!==-1;if(l&&!a)s(r.concat(i));else if(!l&&a){const c=[...r];c.splice(o,1),s(c)}}else if(Nt(r)){const o=new Set(r);l?o.add(i):o.delete(i),s(o)}else s(Ws(e,l))})},mounted:fl,beforeUpdate(e,t,n){e[Ve]=mt(n),fl(e,t,n)}};function fl(e,{value:t,oldValue:n},r){e._modelValue=t,F(t)?e.checked=ni(t,r.props.value)>-1:Nt(t)?e.checked=t.has(r.props.value):t!==n&&(e.checked=Rt(t,Ws(e,!0)))}const Qc={created(e,{value:t},n){e.checked=Rt(t,n.props.value),e[Ve]=mt(n),et(e,"change",()=>{e[Ve](Vt(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[Ve]=mt(r),t!==n&&(e.checked=Rt(t,r.props.value))}},Yc={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const i=Nt(t);et(e,"change",()=>{const l=Array.prototype.filter.call(e.options,s=>s.selected).map(s=>n?Yn(Vt(s)):Vt(s));e[Ve](e.multiple?i?new Set(l):l:l[0]),e._assigning=!0,kn(()=>{e._assigning=!1})}),e[Ve]=mt(r)},mounted(e,{value:t,modifiers:{number:n}}){dl(e,t)},beforeUpdate(e,t,n){e[Ve]=mt(n)},updated(e,{value:t,modifiers:{number:n}}){e._assigning||dl(e,t)}};function dl(e,t,n){const r=e.multiple,i=F(t);if(!(r&&!i&&!Nt(t))){for(let l=0,s=e.options.length;lString(f)===String(a)):o.selected=ni(t,a)>-1}else o.selected=t.has(a);else if(Rt(Vt(o),t)){e.selectedIndex!==l&&(e.selectedIndex=l);return}}!r&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Vt(e){return"_value"in e?e._value:e.value}function Ws(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Jc={created(e,t,n){jn(e,t,n,null,"created")},mounted(e,t,n){jn(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){jn(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){jn(e,t,n,r,"updated")}};function Xc(e,t){switch(e){case"SELECT":return Yc;case"TEXTAREA":return Gr;default:switch(t){case"checkbox":return Zc;case"radio":return Qc;default:return Gr}}}function jn(e,t,n,r,i){const s=Xc(e.tagName,n.props&&n.props.type)[i];s&&s(e,t,n,r)}const eu=ke({patchProp:qc},Ac);let hl;function tu(){return hl||(hl=cc(eu))}const nu=(...e)=>{const t=tu().createApp(...e),{mount:n}=t;return t.mount=r=>{const i=iu(r);if(!i)return;const l=t._component;!G(l)&&!l.render&&!l.template&&(l.template=i.innerHTML),i.innerHTML="";const s=n(i,!1,ru(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),s},t};function ru(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function iu(e){return be(e)?document.querySelector(e):e}function yn(e){return Yl()?(Ho(e),!0):!1}function rt(e){return typeof e=="function"?e():X(e)}const rr=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const lu=Object.prototype.toString,su=e=>lu.call(e)==="[object Object]",ir=()=>{};function qs(e,t){function n(...r){return new Promise((i,l)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(i).catch(l)})}return n}const Ks=e=>e();function ou(e,t={}){let n,r,i=ir;const l=o=>{clearTimeout(o),i(),i=ir};return o=>{const a=rt(e),c=rt(t.maxWait);return n&&l(n),a<=0||c!==void 0&&c<=0?(r&&(l(r),r=null),Promise.resolve(o())):new Promise((f,p)=>{i=t.rejectOnCancel?p:f,c&&!r&&(r=setTimeout(()=>{n&&l(n),r=null,f(o())},c)),n=setTimeout(()=>{r&&l(r),r=null,f(o())},a)})}}function au(e=Ks){const t=Z(!0);function n(){t.value=!1}function r(){t.value=!0}const i=(...l)=>{t.value&&e(...l)};return{isActive:_n(t),pause:n,resume:r,eventFilter:i}}function Gs(e){return e||_c()}function cu(e,t=200,n={}){return qs(ou(t,n),e)}function uu(e,t,n={}){const{eventFilter:r=Ks,...i}=n;return $e(e,qs(r,t),i)}function fu(e,t,n={}){const{eventFilter:r,...i}=n,{eventFilter:l,pause:s,resume:o,isActive:a}=au(r);return{stop:uu(e,t,{...i,eventFilter:l}),pause:s,resume:o,isActive:a}}function vi(e,t=!0,n){Gs()?Wt(e,n):t?e():kn(e)}function du(e,t){Gs(t)&&qt(e,t)}function hu(e,t=1e3,n={}){const{immediate:r=!0,immediateCallback:i=!1}=n;let l=null;const s=Z(!1);function o(){l&&(clearInterval(l),l=null)}function a(){s.value=!1,o()}function c(){const f=rt(t);f<=0||(s.value=!0,i&&e(),o(),l=setInterval(e,f))}if(r&&rr&&c(),Ce(t)||typeof t=="function"){const f=$e(t,()=>{s.value&&rr&&c()});yn(f)}return yn(a),{isActive:s,pause:a,resume:c}}function pu(e){var t;const n=rt(e);return(t=n?.$el)!=null?t:n}const lr=rr?window:void 0,Zs=rr?window.document:void 0;function pl(...e){let t,n,r,i;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,i]=e,t=lr):[t,n,r,i]=e,!t)return ir;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const l=[],s=()=>{l.forEach(f=>f()),l.length=0},o=(f,p,h,m)=>(f.addEventListener(p,h,m),()=>f.removeEventListener(p,h,m)),a=$e(()=>[pu(t),rt(i)],([f,p])=>{if(s(),!f)return;const h=su(p)?{...p}:p;l.push(...n.flatMap(m=>r.map($=>o(f,m,$,h))))},{immediate:!0,flush:"post"}),c=()=>{a(),s()};return yn(c),c}function gu(e,t={}){const{immediate:n=!0,fpsLimit:r=void 0,window:i=lr}=t,l=Z(!1),s=r?1e3/r:null;let o=0,a=null;function c(h){if(!l.value||!i)return;o||(o=h);const m=h-o;if(s&&me==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},gl="vueuse-storage";function Kt(e,t,n,r={}){var i;const{flush:l="pre",deep:s=!0,listenToStorageChanges:o=!0,writeDefaults:a=!0,mergeDefaults:c=!1,shallow:f,window:p=lr,eventFilter:h,onError:m=q=>{console.error(q)},initOnMounted:$}=r,k=(f?fa:Z)(typeof t=="function"?t():t);if(!n)try{n=yu("getDefaultStorage",()=>{var q;return(q=lr)==null?void 0:q.localStorage})()}catch(q){m(q)}if(!n)return k;const S=rt(t),b=bu(S),E=(i=r.serializer)!=null?i:wu[b],{pause:j,resume:V}=fu(k,()=>P(k.value),{flush:l,deep:s,eventFilter:h});p&&o&&vi(()=>{pl(p,"storage",N),pl(p,gl,Se),$&&N()}),$||N();function z(q,de){p&&p.dispatchEvent(new CustomEvent(gl,{detail:{key:e,oldValue:q,newValue:de,storageArea:n}}))}function P(q){try{const de=n.getItem(e);if(q==null)z(de,null),n.removeItem(e);else{const me=E.write(q);de!==me&&(n.setItem(e,me),z(de,me))}}catch(de){m(de)}}function W(q){const de=q?q.newValue:n.getItem(e);if(de==null)return a&&S!=null&&n.setItem(e,E.write(S)),S;if(!q&&c){const me=E.read(de);return typeof c=="function"?c(me,S):b==="object"&&!Array.isArray(me)?{...S,...me}:me}else return typeof de!="string"?de:E.read(de)}function N(q){if(!(q&&q.storageArea!==n)){if(q&&q.key==null){k.value=S;return}if(!(q&&q.key!==e)){j();try{q?.newValue!==E.write(k.value)&&(k.value=W(q))}catch(de){m(de)}finally{q?kn(V):V()}}}}function Se(q){N(q.detail)}return k}function _u(e={}){const{controls:t=!1,interval:n="requestAnimationFrame"}=e,r=Z(new Date),i=()=>r.value=new Date,l=n==="requestAnimationFrame"?gu(i,{immediate:!0}):hu(i,n,{immediate:!0});return t?{now:r,...l}:r}function ku(e,t=ir,n={}){const{immediate:r=!0,manual:i=!1,type:l="text/javascript",async:s=!0,crossOrigin:o,referrerPolicy:a,noModule:c,defer:f,document:p=Zs,attrs:h={}}=n,m=Z(null);let $=null;const k=E=>new Promise((j,V)=>{const z=N=>(m.value=N,j(N),N);if(!p){j(!1);return}let P=!1,W=p.querySelector(`script[src="${rt(e)}"]`);W?W.hasAttribute("data-loaded")&&z(W):(W=p.createElement("script"),W.type=l,W.async=s,W.src=rt(e),f&&(W.defer=f),o&&(W.crossOrigin=o),c&&(W.noModule=c),a&&(W.referrerPolicy=a),Object.entries(h).forEach(([N,Se])=>W?.setAttribute(N,Se)),P=!0),W.addEventListener("error",N=>V(N)),W.addEventListener("abort",N=>V(N)),W.addEventListener("load",()=>{W.setAttribute("data-loaded","true"),t(W),z(W)}),P&&(W=p.head.appendChild(W)),E||z(W)}),S=(E=!0)=>($||($=k(E)),$),b=()=>{if(!p)return;$=null,m.value&&(m.value=null);const E=p.querySelector(`script[src="${rt(e)}"]`);E&&p.head.removeChild(E)};return r&&!i&&vi(S),i||du(b),{scriptTag:m,load:S,unload:b}}let xu=0;function Eu(e,t={}){const n=Z(!1),{document:r=Zs,immediate:i=!0,manual:l=!1,id:s=`vueuse_styletag_${++xu}`}=t,o=Z(e);let a=()=>{};const c=()=>{if(!r)return;const p=r.getElementById(s)||r.createElement("style");p.isConnected||(p.id=s,t.media&&(p.media=t.media),r.head.appendChild(p)),!n.value&&(a=$e(o,h=>{p.textContent=h},{immediate:!0}),n.value=!0)},f=()=>{!r||!n.value||(a(),r.head.removeChild(r.getElementById(s)),n.value=!1)};return i&&!l&&vi(c),l||yn(f),{id:s,css:o,unload:f,load:c,isLoaded:_n(n)}}var un=new Map;function Cu(e){var t=un.get(e);t&&t.destroy()}function Su(e){var t=un.get(e);t&&t.update()}var nn=null;typeof window>"u"?((nn=function(e){return e}).destroy=function(e){return e},nn.update=function(e){return e}):((nn=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(n){return function(r){if(r&&r.nodeName&&r.nodeName==="TEXTAREA"&&!un.has(r)){var i,l=null,s=window.getComputedStyle(r),o=(i=r.value,function(){c({testForHeightReduction:i===""||!r.value.startsWith(i),restoreTextAlign:null}),i=r.value}),a=function(p){r.removeEventListener("autosize:destroy",a),r.removeEventListener("autosize:update",f),r.removeEventListener("input",o),window.removeEventListener("resize",f),Object.keys(p).forEach(function(h){return r.style[h]=p[h]}),un.delete(r)}.bind(r,{height:r.style.height,resize:r.style.resize,textAlign:r.style.textAlign,overflowY:r.style.overflowY,overflowX:r.style.overflowX,wordWrap:r.style.wordWrap});r.addEventListener("autosize:destroy",a),r.addEventListener("autosize:update",f),r.addEventListener("input",o),window.addEventListener("resize",f),r.style.overflowX="hidden",r.style.wordWrap="break-word",un.set(r,{destroy:a,update:f}),f()}function c(p){var h,m,$=p.restoreTextAlign,k=$===void 0?null:$,S=p.testForHeightReduction,b=S===void 0||S,E=s.overflowY;if(r.scrollHeight!==0&&(s.resize==="vertical"?r.style.resize="none":s.resize==="both"&&(r.style.resize="horizontal"),b&&(h=function(V){for(var z=[];V&&V.parentNode&&V.parentNode instanceof Element;)V.parentNode.scrollTop&&z.push([V.parentNode,V.parentNode.scrollTop]),V=V.parentNode;return function(){return z.forEach(function(P){var W=P[0],N=P[1];W.style.scrollBehavior="auto",W.scrollTop=N,W.style.scrollBehavior=null})}}(r),r.style.height=""),m=s.boxSizing==="content-box"?r.scrollHeight-(parseFloat(s.paddingTop)+parseFloat(s.paddingBottom)):r.scrollHeight+parseFloat(s.borderTopWidth)+parseFloat(s.borderBottomWidth),s.maxHeight!=="none"&&m>parseFloat(s.maxHeight)?(s.overflowY==="hidden"&&(r.style.overflow="scroll"),m=parseFloat(s.maxHeight)):s.overflowY!=="hidden"&&(r.style.overflow="hidden"),r.style.height=m+"px",k&&(r.style.textAlign=k),h&&h(),l!==m&&(r.dispatchEvent(new Event("autosize:resized",{bubbles:!0})),l=m),E!==s.overflow&&!k)){var j=s.textAlign;s.overflow==="hidden"&&(r.style.textAlign=j==="start"?"end":"start"),c({restoreTextAlign:j,testForHeightReduction:!0})}}function f(){c({testForHeightReduction:!0,restoreTextAlign:null})}}(n)}),e}).destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],Cu),e},nn.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],Su),e});var ml=nn;function yi(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let It=yi();function Qs(e){It=e}const Ys=/[&<>"']/,Tu=new RegExp(Ys.source,"g"),Js=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,Ru=new RegExp(Js.source,"g"),$u={"&":"&","<":"<",">":">",'"':""","'":"'"},vl=e=>$u[e];function Me(e,t){if(t){if(Ys.test(e))return e.replace(Tu,vl)}else if(Js.test(e))return e.replace(Ru,vl);return e}const Au=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function Iu(e){return e.replace(Au,(t,n)=>(n=n.toLowerCase(),n==="colon"?":":n.charAt(0)==="#"?n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""))}const Lu=/(^|[^\[])\^/g;function ue(e,t){let n=typeof e=="string"?e:e.source;t=t||"";const r={replace:(i,l)=>{let s=typeof l=="string"?l:l.source;return s=s.replace(Lu,"$1"),n=n.replace(i,s),r},getRegex:()=>new RegExp(n,t)};return r}function yl(e){try{e=encodeURI(e).replace(/%25/g,"%")}catch{return null}return e}const fn={exec:()=>null};function bl(e,t){const n=e.replace(/\|/g,(l,s,o)=>{let a=!1,c=s;for(;--c>=0&&o[c]==="\\";)a=!a;return a?"|":" |"}),r=n.split(/ \|/);let i=0;if(r[0].trim()||r.shift(),r.length>0&&!r[r.length-1].trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length{const l=i.match(/^\s+/);if(l===null)return i;const[s]=l;return s.length>=r.length?i.slice(r.length):i}).join(` +`)}class sr{options;rules;lexer;constructor(t){this.options=t||It}space(t){const n=this.rules.block.newline.exec(t);if(n&&n[0].length>0)return{type:"space",raw:n[0]}}code(t){const n=this.rules.block.code.exec(t);if(n){const r=n[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?r:Dn(r,` +`)}}}fences(t){const n=this.rules.block.fences.exec(t);if(n){const r=n[0],i=Pu(r,n[3]||"");return{type:"code",raw:r,lang:n[2]?n[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):n[2],text:i}}}heading(t){const n=this.rules.block.heading.exec(t);if(n){let r=n[2].trim();if(/#$/.test(r)){const i=Dn(r,"#");(this.options.pedantic||!i||/ $/.test(i))&&(r=i.trim())}return{type:"heading",raw:n[0],depth:n[1].length,text:r,tokens:this.lexer.inline(r)}}}hr(t){const n=this.rules.block.hr.exec(t);if(n)return{type:"hr",raw:n[0]}}blockquote(t){const n=this.rules.block.blockquote.exec(t);if(n){let r=n[0].replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,` + $1`);r=Dn(r.replace(/^ *>[ \t]?/gm,""),` +`);const i=this.lexer.state.top;this.lexer.state.top=!0;const l=this.lexer.blockTokens(r);return this.lexer.state.top=i,{type:"blockquote",raw:n[0],tokens:l,text:r}}}list(t){let n=this.rules.block.list.exec(t);if(n){let r=n[1].trim();const i=r.length>1,l={type:"list",raw:"",ordered:i,start:i?+r.slice(0,-1):"",loose:!1,items:[]};r=i?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=i?r:"[*+-]");const s=new RegExp(`^( {0,3}${r})((?:[ ][^\\n]*)?(?:\\n|$))`);let o="",a="",c=!1;for(;t;){let f=!1;if(!(n=s.exec(t))||this.rules.block.hr.test(t))break;o=n[0],t=t.substring(o.length);let p=n[2].split(` +`,1)[0].replace(/^\t+/,b=>" ".repeat(3*b.length)),h=t.split(` +`,1)[0],m=0;this.options.pedantic?(m=2,a=p.trimStart()):(m=n[2].search(/[^ ]/),m=m>4?1:m,a=p.slice(m),m+=n[1].length);let $=!1;if(!p&&/^ *$/.test(h)&&(o+=h+` +`,t=t.substring(h.length+1),f=!0),!f){const b=new RegExp(`^ {0,${Math.min(3,m-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),E=new RegExp(`^ {0,${Math.min(3,m-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),j=new RegExp(`^ {0,${Math.min(3,m-1)}}(?:\`\`\`|~~~)`),V=new RegExp(`^ {0,${Math.min(3,m-1)}}#`);for(;t;){const z=t.split(` +`,1)[0];if(h=z,this.options.pedantic&&(h=h.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),j.test(h)||V.test(h)||b.test(h)||E.test(t))break;if(h.search(/[^ ]/)>=m||!h.trim())a+=` +`+h.slice(m);else{if($||p.search(/[^ ]/)>=4||j.test(p)||V.test(p)||E.test(p))break;a+=` +`+h}!$&&!h.trim()&&($=!0),o+=z+` +`,t=t.substring(z.length+1),p=h.slice(m)}}l.loose||(c?l.loose=!0:/\n *\n *$/.test(o)&&(c=!0));let k=null,S;this.options.gfm&&(k=/^\[[ xX]\] /.exec(a),k&&(S=k[0]!=="[ ] ",a=a.replace(/^\[[ xX]\] +/,""))),l.items.push({type:"list_item",raw:o,task:!!k,checked:S,loose:!1,text:a,tokens:[]}),l.raw+=o}l.items[l.items.length-1].raw=o.trimEnd(),l.items[l.items.length-1].text=a.trimEnd(),l.raw=l.raw.trimEnd();for(let f=0;fm.type==="space"),h=p.length>0&&p.some(m=>/\n.*\n/.test(m.raw));l.loose=h}if(l.loose)for(let f=0;f$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",l=n[3]?n[3].substring(1,n[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):n[3];return{type:"def",tag:r,raw:n[0],href:i,title:l}}}table(t){const n=this.rules.block.table.exec(t);if(!n||!/[:|]/.test(n[2]))return;const r=bl(n[1]),i=n[2].replace(/^\||\| *$/g,"").split("|"),l=n[3]&&n[3].trim()?n[3].replace(/\n[ \t]*$/,"").split(` +`):[],s={type:"table",raw:n[0],header:[],align:[],rows:[]};if(r.length===i.length){for(const o of i)/^ *-+: *$/.test(o)?s.align.push("right"):/^ *:-+: *$/.test(o)?s.align.push("center"):/^ *:-+ *$/.test(o)?s.align.push("left"):s.align.push(null);for(const o of r)s.header.push({text:o,tokens:this.lexer.inline(o)});for(const o of l)s.rows.push(bl(o,s.header.length).map(a=>({text:a,tokens:this.lexer.inline(a)})));return s}}lheading(t){const n=this.rules.block.lheading.exec(t);if(n)return{type:"heading",raw:n[0],depth:n[2].charAt(0)==="="?1:2,text:n[1],tokens:this.lexer.inline(n[1])}}paragraph(t){const n=this.rules.block.paragraph.exec(t);if(n){const r=n[1].charAt(n[1].length-1)===` +`?n[1].slice(0,-1):n[1];return{type:"paragraph",raw:n[0],text:r,tokens:this.lexer.inline(r)}}}text(t){const n=this.rules.block.text.exec(t);if(n)return{type:"text",raw:n[0],text:n[0],tokens:this.lexer.inline(n[0])}}escape(t){const n=this.rules.inline.escape.exec(t);if(n)return{type:"escape",raw:n[0],text:Me(n[1])}}tag(t){const n=this.rules.inline.tag.exec(t);if(n)return!this.lexer.state.inLink&&/^/i.test(n[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:n[0]}}link(t){const n=this.rules.inline.link.exec(t);if(n){const r=n[2].trim();if(!this.options.pedantic&&/^$/.test(r))return;const s=Dn(r.slice(0,-1),"\\");if((r.length-s.length)%2===0)return}else{const s=Ou(n[2],"()");if(s>-1){const a=(n[0].indexOf("!")===0?5:4)+n[1].length+s;n[2]=n[2].substring(0,s),n[0]=n[0].substring(0,a).trim(),n[3]=""}}let i=n[2],l="";if(this.options.pedantic){const s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);s&&(i=s[1],l=s[3])}else l=n[3]?n[3].slice(1,-1):"";return i=i.trim(),/^$/.test(r)?i=i.slice(1):i=i.slice(1,-1)),wl(n,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:l&&l.replace(this.rules.inline.anyPunctuation,"$1")},n[0],this.lexer)}}reflink(t,n){let r;if((r=this.rules.inline.reflink.exec(t))||(r=this.rules.inline.nolink.exec(t))){const i=(r[2]||r[1]).replace(/\s+/g," "),l=n[i.toLowerCase()];if(!l){const s=r[0].charAt(0);return{type:"text",raw:s,text:s}}return wl(r,l,r[0],this.lexer)}}emStrong(t,n,r=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!i||i[3]&&r.match(/[\p{L}\p{N}]/u))return;if(!(i[1]||i[2]||"")||!r||this.rules.inline.punctuation.exec(r)){const s=[...i[0]].length-1;let o,a,c=s,f=0;const p=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(p.lastIndex=0,n=n.slice(-1*t.length+s);(i=p.exec(n))!=null;){if(o=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!o)continue;if(a=[...o].length,i[3]||i[4]){c+=a;continue}else if((i[5]||i[6])&&s%3&&!((s+a)%3)){f+=a;continue}if(c-=a,c>0)continue;a=Math.min(a,a+c+f);const h=[...i[0]][0].length,m=t.slice(0,s+i.index+h+a);if(Math.min(s,a)%2){const k=m.slice(1,-1);return{type:"em",raw:m,text:k,tokens:this.lexer.inlineTokens(k)}}const $=m.slice(2,-2);return{type:"strong",raw:m,text:$,tokens:this.lexer.inlineTokens($)}}}}codespan(t){const n=this.rules.inline.code.exec(t);if(n){let r=n[2].replace(/\n/g," ");const i=/[^ ]/.test(r),l=/^ /.test(r)&&/ $/.test(r);return i&&l&&(r=r.substring(1,r.length-1)),r=Me(r,!0),{type:"codespan",raw:n[0],text:r}}}br(t){const n=this.rules.inline.br.exec(t);if(n)return{type:"br",raw:n[0]}}del(t){const n=this.rules.inline.del.exec(t);if(n)return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2])}}autolink(t){const n=this.rules.inline.autolink.exec(t);if(n){let r,i;return n[2]==="@"?(r=Me(n[1]),i="mailto:"+r):(r=Me(n[1]),i=r),{type:"link",raw:n[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}}url(t){let n;if(n=this.rules.inline.url.exec(t)){let r,i;if(n[2]==="@")r=Me(n[0]),i="mailto:"+r;else{let l;do l=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])?.[0]??"";while(l!==n[0]);r=Me(n[0]),n[1]==="www."?i="http://"+n[0]:i=n[0]}return{type:"link",raw:n[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(t){const n=this.rules.inline.text.exec(t);if(n){let r;return this.lexer.state.inRawBlock?r=n[0]:r=Me(n[0]),{type:"text",raw:n[0],text:r}}}}const Mu=/^(?: *(?:\n|$))+/,zu=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,ju=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Sn=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Uu=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Xs=/(?:[*+-]|\d{1,9}[.)])/,eo=ue(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,Xs).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),bi=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Vu=/^[^\n]+/,wi=/(?!\s*\])(?:\\.|[^\[\]\\])+/,Du=ue(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",wi).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Fu=ue(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Xs).getRegex(),wr="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",_i=/|$))/,Hu=ue("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",_i).replace("tag",wr).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),to=ue(bi).replace("hr",Sn).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",wr).getRegex(),Nu=ue(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",to).getRegex(),ki={blockquote:Nu,code:zu,def:Du,fences:ju,heading:Uu,hr:Sn,html:Hu,lheading:eo,list:Fu,newline:Mu,paragraph:to,table:fn,text:Vu},_l=ue("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Sn).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",wr).getRegex(),Bu={...ki,table:_l,paragraph:ue(bi).replace("hr",Sn).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",_l).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",wr).getRegex()},Wu={...ki,html:ue(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",_i).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:fn,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ue(bi).replace("hr",Sn).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",eo).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},no=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,qu=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ro=/^( {2,}|\\)\n(?!\s*$)/,Ku=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,Qu=ue(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,Tn).getRegex(),Yu=ue("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,Tn).getRegex(),Ju=ue("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,Tn).getRegex(),Xu=ue(/\\([punct])/,"gu").replace(/punct/g,Tn).getRegex(),ef=ue(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),tf=ue(_i).replace("(?:-->|$)","-->").getRegex(),nf=ue("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",tf).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),or=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,rf=ue(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",or).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),io=ue(/^!?\[(label)\]\[(ref)\]/).replace("label",or).replace("ref",wi).getRegex(),lo=ue(/^!?\[(ref)\](?:\[\])?/).replace("ref",wi).getRegex(),lf=ue("reflink|nolink(?!\\()","g").replace("reflink",io).replace("nolink",lo).getRegex(),xi={_backpedal:fn,anyPunctuation:Xu,autolink:ef,blockSkip:Zu,br:ro,code:qu,del:fn,emStrongLDelim:Qu,emStrongRDelimAst:Yu,emStrongRDelimUnd:Ju,escape:no,link:rf,nolink:lo,punctuation:Gu,reflink:io,reflinkSearch:lf,tag:nf,text:Ku,url:fn},sf={...xi,link:ue(/^!?\[(label)\]\((.*?)\)/).replace("label",or).getRegex(),reflink:ue(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",or).getRegex()},Zr={...xi,escape:ue(no).replace("])","~|])").getRegex(),url:ue(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\a+" ".repeat(c.length));let r,i,l,s;for(;t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(o=>(r=o.call({lexer:this},t,n))?(t=t.substring(r.raw.length),n.push(r),!0):!1))){if(r=this.tokenizer.space(t)){t=t.substring(r.raw.length),r.raw.length===1&&n.length>0?n[n.length-1].raw+=` +`:n.push(r);continue}if(r=this.tokenizer.code(t)){t=t.substring(r.raw.length),i=n[n.length-1],i&&(i.type==="paragraph"||i.type==="text")?(i.raw+=` +`+r.raw,i.text+=` +`+r.text,this.inlineQueue[this.inlineQueue.length-1].src=i.text):n.push(r);continue}if(r=this.tokenizer.fences(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.heading(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.hr(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.blockquote(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.list(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.html(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.def(t)){t=t.substring(r.raw.length),i=n[n.length-1],i&&(i.type==="paragraph"||i.type==="text")?(i.raw+=` +`+r.raw,i.text+=` +`+r.raw,this.inlineQueue[this.inlineQueue.length-1].src=i.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.lheading(t)){t=t.substring(r.raw.length),n.push(r);continue}if(l=t,this.options.extensions&&this.options.extensions.startBlock){let o=1/0;const a=t.slice(1);let c;this.options.extensions.startBlock.forEach(f=>{c=f.call({lexer:this},a),typeof c=="number"&&c>=0&&(o=Math.min(o,c))}),o<1/0&&o>=0&&(l=t.substring(0,o+1))}if(this.state.top&&(r=this.tokenizer.paragraph(l))){i=n[n.length-1],s&&i.type==="paragraph"?(i.raw+=` +`+r.raw,i.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):n.push(r),s=l.length!==t.length,t=t.substring(r.raw.length);continue}if(r=this.tokenizer.text(t)){t=t.substring(r.raw.length),i=n[n.length-1],i&&i.type==="text"?(i.raw+=` +`+r.raw,i.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):n.push(r);continue}if(t){const o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){let r,i,l,s=t,o,a,c;if(this.tokens.links){const f=Object.keys(this.tokens.links);if(f.length>0)for(;(o=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)f.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,o.index)+"["+"a".repeat(o[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(o=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,o.index)+"["+"a".repeat(o[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(o=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,o.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(a||(c=""),a=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(f=>(r=f.call({lexer:this},t,n))?(t=t.substring(r.raw.length),n.push(r),!0):!1))){if(r=this.tokenizer.escape(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.tag(t)){t=t.substring(r.raw.length),i=n[n.length-1],i&&r.type==="text"&&i.type==="text"?(i.raw+=r.raw,i.text+=r.text):n.push(r);continue}if(r=this.tokenizer.link(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(r.raw.length),i=n[n.length-1],i&&r.type==="text"&&i.type==="text"?(i.raw+=r.raw,i.text+=r.text):n.push(r);continue}if(r=this.tokenizer.emStrong(t,s,c)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.codespan(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.br(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.del(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.autolink(t)){t=t.substring(r.raw.length),n.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(t))){t=t.substring(r.raw.length),n.push(r);continue}if(l=t,this.options.extensions&&this.options.extensions.startInline){let f=1/0;const p=t.slice(1);let h;this.options.extensions.startInline.forEach(m=>{h=m.call({lexer:this},p),typeof h=="number"&&h>=0&&(f=Math.min(f,h))}),f<1/0&&f>=0&&(l=t.substring(0,f+1))}if(r=this.tokenizer.inlineText(l)){t=t.substring(r.raw.length),r.raw.slice(-1)!=="_"&&(c=r.raw.slice(-1)),a=!0,i=n[n.length-1],i&&i.type==="text"?(i.raw+=r.raw,i.text+=r.text):n.push(r);continue}if(t){const f="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(f);break}else throw new Error(f)}}return n}}class ar{options;constructor(t){this.options=t||It}code(t,n,r){const i=(n||"").match(/^\S*/)?.[0];return t=t.replace(/\n$/,"")+` +`,i?'
'+(r?t:Me(t,!0))+`
+`:"
"+(r?t:Me(t,!0))+`
+`}blockquote(t){return`
+${t}
+`}html(t,n){return t}heading(t,n,r){return`${t} +`}hr(){return`
+`}list(t,n,r){const i=n?"ol":"ul",l=n&&r!==1?' start="'+r+'"':"";return"<"+i+l+`> +`+t+" +`}listitem(t,n,r){return`
  • ${t}
  • +`}checkbox(t){return"'}paragraph(t){return`

    ${t}

    +`}table(t,n){return n&&(n=`${n}`),` + +`+t+` +`+n+`
    +`}tablerow(t){return` +${t} +`}tablecell(t,n){const r=n.header?"th":"td";return(n.align?`<${r} align="${n.align}">`:`<${r}>`)+t+` +`}strong(t){return`${t}`}em(t){return`${t}`}codespan(t){return`${t}`}br(){return"
    "}del(t){return`${t}`}link(t,n,r){const i=yl(t);if(i===null)return r;t=i;let l='
    ",l}image(t,n,r){const i=yl(t);if(i===null)return r;t=i;let l=`${r}0&&h.tokens[0].type==="paragraph"?(h.tokens[0].text=S+" "+h.tokens[0].text,h.tokens[0].tokens&&h.tokens[0].tokens.length>0&&h.tokens[0].tokens[0].type==="text"&&(h.tokens[0].tokens[0].text=S+" "+h.tokens[0].tokens[0].text)):h.tokens.unshift({type:"text",text:S+" "}):k+=S+" "}k+=this.parse(h.tokens,c),f+=this.renderer.listitem(k,$,!!m)}r+=this.renderer.list(f,o,a);continue}case"html":{const s=l;r+=this.renderer.html(s.text,s.block);continue}case"paragraph":{const s=l;r+=this.renderer.paragraph(this.parseInline(s.tokens));continue}case"text":{let s=l,o=s.tokens?this.parseInline(s.tokens):s.text;for(;i+1{const o=l[s].flat(1/0);r=r.concat(this.walkTokens(o,n))}):l.tokens&&(r=r.concat(this.walkTokens(l.tokens,n)))}}return r}use(...t){const n=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(r=>{const i={...r};if(i.async=this.defaults.async||i.async||!1,r.extensions&&(r.extensions.forEach(l=>{if(!l.name)throw new Error("extension name required");if("renderer"in l){const s=n.renderers[l.name];s?n.renderers[l.name]=function(...o){let a=l.renderer.apply(this,o);return a===!1&&(a=s.apply(this,o)),a}:n.renderers[l.name]=l.renderer}if("tokenizer"in l){if(!l.level||l.level!=="block"&&l.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const s=n[l.level];s?s.unshift(l.tokenizer):n[l.level]=[l.tokenizer],l.start&&(l.level==="block"?n.startBlock?n.startBlock.push(l.start):n.startBlock=[l.start]:l.level==="inline"&&(n.startInline?n.startInline.push(l.start):n.startInline=[l.start]))}"childTokens"in l&&l.childTokens&&(n.childTokens[l.name]=l.childTokens)}),i.extensions=n),r.renderer){const l=this.defaults.renderer||new ar(this.defaults);for(const s in r.renderer){if(!(s in l))throw new Error(`renderer '${s}' does not exist`);if(s==="options")continue;const o=s,a=r.renderer[o],c=l[o];l[o]=(...f)=>{let p=a.apply(l,f);return p===!1&&(p=c.apply(l,f)),p||""}}i.renderer=l}if(r.tokenizer){const l=this.defaults.tokenizer||new sr(this.defaults);for(const s in r.tokenizer){if(!(s in l))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;const o=s,a=r.tokenizer[o],c=l[o];l[o]=(...f)=>{let p=a.apply(l,f);return p===!1&&(p=c.apply(l,f)),p}}i.tokenizer=l}if(r.hooks){const l=this.defaults.hooks||new Zn;for(const s in r.hooks){if(!(s in l))throw new Error(`hook '${s}' does not exist`);if(s==="options")continue;const o=s,a=r.hooks[o],c=l[o];Zn.passThroughHooks.has(s)?l[o]=f=>{if(this.defaults.async)return Promise.resolve(a.call(l,f)).then(h=>c.call(l,h));const p=a.call(l,f);return c.call(l,p)}:l[o]=(...f)=>{let p=a.apply(l,f);return p===!1&&(p=c.apply(l,f)),p}}i.hooks=l}if(r.walkTokens){const l=this.defaults.walkTokens,s=r.walkTokens;i.walkTokens=function(o){let a=[];return a.push(s.call(this,o)),l&&(a=a.concat(l.call(this,o))),a}}this.defaults={...this.defaults,...i}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,n){return Qe.lex(t,n??this.defaults)}parser(t,n){return Ye.parse(t,n??this.defaults)}#e(t,n){return(r,i)=>{const l={...i},s={...this.defaults,...l};this.defaults.async===!0&&l.async===!1&&(s.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),s.async=!0);const o=this.#t(!!s.silent,!!s.async);if(typeof r>"u"||r===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof r!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(r)+", string expected"));if(s.hooks&&(s.hooks.options=s),s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(r):r).then(a=>t(a,s)).then(a=>s.hooks?s.hooks.processAllTokens(a):a).then(a=>s.walkTokens?Promise.all(this.walkTokens(a,s.walkTokens)).then(()=>a):a).then(a=>n(a,s)).then(a=>s.hooks?s.hooks.postprocess(a):a).catch(o);try{s.hooks&&(r=s.hooks.preprocess(r));let a=t(r,s);s.hooks&&(a=s.hooks.processAllTokens(a)),s.walkTokens&&this.walkTokens(a,s.walkTokens);let c=n(a,s);return s.hooks&&(c=s.hooks.postprocess(c)),c}catch(a){return o(a)}}}#t(t,n){return r=>{if(r.message+=` +Please report this to https://github.com/markedjs/marked.`,t){const i="

    An error occurred:

    "+Me(r.message+"",!0)+"
    ";return n?Promise.resolve(i):i}if(n)return Promise.reject(r);throw r}}}const $t=new so;function ce(e,t){return $t.parse(e,t)}ce.options=ce.setOptions=function(e){return $t.setOptions(e),ce.defaults=$t.defaults,Qs(ce.defaults),ce};ce.getDefaults=yi;ce.defaults=It;ce.use=function(...e){return $t.use(...e),ce.defaults=$t.defaults,Qs(ce.defaults),ce};ce.walkTokens=function(e,t){return $t.walkTokens(e,t)};ce.parseInline=$t.parseInline;ce.Parser=Ye;ce.parser=Ye.parse;ce.Renderer=ar;ce.TextRenderer=Ei;ce.Lexer=Qe;ce.lexer=Qe.lex;ce.Tokenizer=sr;ce.Hooks=Zn;ce.parse=ce;ce.options;ce.setOptions;ce.use;ce.walkTokens;ce.parseInline;Ye.parse;Qe.lex;function af(e){if(typeof e=="function"&&(e={highlight:e}),!e||typeof e.highlight!="function")throw new Error("Must provide highlight function");return typeof e.langPrefix!="string"&&(e.langPrefix="language-"),{async:!!e.async,walkTokens(t){if(t.type!=="code")return;const n=kl(t.lang);if(e.async)return Promise.resolve(e.highlight(t.text,n,t.lang||"")).then(xl(t));const r=e.highlight(t.text,n,t.lang||"");if(r instanceof Promise)throw new Error("markedHighlight is not set to async but the highlight function is async. Set the async option to true on markedHighlight to await the async highlight function.");xl(t)(r)},renderer:{code(t,n,r){const i=kl(n),l=i?` class="${e.langPrefix}${Cl(i)}"`:"";return t=t.replace(/\n$/,""),`
    ${r?t:Cl(t,!0)}
    +
    `}}}}function kl(e){return(e||"").match(/\S*/)[0]}function xl(e){return t=>{typeof t=="string"&&t!==e.text&&(e.escaped=!0,e.text=t)}}const oo=/[&<>"']/,cf=new RegExp(oo.source,"g"),ao=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,uf=new RegExp(ao.source,"g"),ff={"&":"&","<":"<",">":">",'"':""","'":"'"},El=e=>ff[e];function Cl(e,t){if(t){if(oo.test(e))return e.replace(cf,El)}else if(ao.test(e))return e.replace(uf,El);return e}var co={},Dt={},Rn={},df=Qn&&Qn.__awaiter||function(e,t,n,r){function i(l){return l instanceof n?l:new n(function(s){s(l)})}return new(n||(n=Promise))(function(l,s){function o(f){try{c(r.next(f))}catch(p){s(p)}}function a(f){try{c(r.throw(f))}catch(p){s(p)}}function c(f){f.done?l(f.value):i(f.value).then(o,a)}c((r=r.apply(e,t||[])).next())})},hf=Qn&&Qn.__generator||function(e,t){var n={label:0,sent:function(){if(l[0]&1)throw l[1];return l[1]},trys:[],ops:[]},r,i,l,s;return s={next:o(0),throw:o(1),return:o(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function o(c){return function(f){return a([c,f])}}function a(c){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,i&&(l=c[0]&2?i.return:c[0]?i.throw||((l=i.return)&&l.call(i),0):i.next)&&!(l=l.call(i,c[1])).done)return l;switch(i=0,l&&(c=[c[0]&2,l.value]),c[0]){case 0:case 1:l=c;break;case 4:return n.label++,{value:c[1],done:!1};case 5:n.label++,i=c[1],c=[0];continue;case 7:c=n.ops.pop(),n.trys.pop();continue;default:if(l=n.trys,!(l=l.length>0&&l[l.length-1])&&(c[0]===6||c[0]===2)){n=0;continue}if(c[0]===3&&(!l||c[1]>l[0]&&c[1]"u")return Promise.reject(new Error("This is a library for the browser!"));if(e.getLoadingState()===ft.LOADED)return e.instance.getSiteKey()===t?Promise.resolve(e.instance):Promise.reject(new Error("reCAPTCHA already loaded with different site key!"));if(e.getLoadingState()===ft.LOADING)return t!==e.instanceSiteKey?Promise.reject(new Error("reCAPTCHA already loaded with different site key!")):new Promise(function(i,l){e.successfulLoadingConsumers.push(function(s){return i(s)}),e.errorLoadingRunnable.push(function(s){return l(s)})});e.instanceSiteKey=t,e.setLoadingState(ft.LOADING);var r=new e;return new Promise(function(i,l){r.loadScript(t,n.useRecaptchaNet||!1,n.useEnterprise||!1,n.renderParameters?n.renderParameters:{},n.customUrl).then(function(){e.setLoadingState(ft.LOADED);var s=r.doExplicitRender(grecaptcha,t,n.explicitRenderParameters?n.explicitRenderParameters:{},n.useEnterprise||!1),o=new gf.ReCaptchaInstance(t,s,grecaptcha);e.successfulLoadingConsumers.forEach(function(a){return a(o)}),e.successfulLoadingConsumers=[],n.autoHideBadge&&o.hideBadge(),e.instance=o,i(o)}).catch(function(s){e.errorLoadingRunnable.forEach(function(o){return o(s)}),e.errorLoadingRunnable=[],l(s)})})},e.getInstance=function(){return e.instance},e.setLoadingState=function(t){e.loadingState=t},e.getLoadingState=function(){return e.loadingState===null?ft.NOT_LOADED:e.loadingState},e.prototype.loadScript=function(t,n,r,i,l){var s=this;n===void 0&&(n=!1),r===void 0&&(r=!1),i===void 0&&(i={}),l===void 0&&(l="");var o=document.createElement("script");o.setAttribute("recaptcha-v3-script","");var a="https://www.google.com/recaptcha/api.js";n&&(r?a="https://recaptcha.net/recaptcha/enterprise.js":a="https://recaptcha.net/recaptcha/api.js"),r&&(a="https://www.google.com/recaptcha/enterprise.js"),l&&(a=l),i.render&&(i.render=void 0);var c=this.buildQueryString(i);return o.src=a+"?render=explicit"+c,new Promise(function(f,p){o.addEventListener("load",s.waitForScriptToLoad(function(){f(o)},r),!1),o.onerror=function(h){e.setLoadingState(ft.NOT_LOADED),p(h)},document.head.appendChild(o)})},e.prototype.buildQueryString=function(t){var n=Object.keys(t);return n.length<1?"":"&"+Object.keys(t).filter(function(r){return!!t[r]}).map(function(r){return r+"="+t[r]}).join("&")},e.prototype.waitForScriptToLoad=function(t,n){var r=this;return function(){window.grecaptcha===void 0?setTimeout(function(){r.waitForScriptToLoad(t,n)},e.SCRIPT_LOAD_DELAY):n?window.grecaptcha.enterprise.ready(function(){t()}):window.grecaptcha.ready(function(){t()})}},e.prototype.doExplicitRender=function(t,n,r,i){var l={sitekey:n,badge:r.badge,size:r.size,tabindex:r.tabindex};return r.container?i?t.enterprise.render(r.container,l):t.render(r.container,l):i?t.enterprise.render(l):t.render(l)},e.loadingState=null,e.instance=null,e.instanceSiteKey=null,e.successfulLoadingConsumers=[],e.errorLoadingRunnable=[],e.SCRIPT_LOAD_DELAY=25,e}();Dt.load=uo.load;Dt.getInstance=uo.getInstance;(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ReCaptchaInstance=e.getInstance=e.load=void 0;var t=Dt;Object.defineProperty(e,"load",{enumerable:!0,get:function(){return t.load}}),Object.defineProperty(e,"getInstance",{enumerable:!0,get:function(){return t.getInstance}});var n=Rn;Object.defineProperty(e,"ReCaptchaInstance",{enumerable:!0,get:function(){return n.ReCaptchaInstance}})})(co);const mf=["nick","mail","link"],Sl=e=>e.filter(t=>mf.includes(t)),Tl=["//unpkg.com/@waline/emojis@1.1.0/weibo"],vf=["//unpkg.com/@waline/emojis/tieba/tieba_agree.png","//unpkg.com/@waline/emojis/tieba/tieba_look_down.png","//unpkg.com/@waline/emojis/tieba/tieba_sunglasses.png","//unpkg.com/@waline/emojis/tieba/tieba_pick_nose.png","//unpkg.com/@waline/emojis/tieba/tieba_awkward.png","//unpkg.com/@waline/emojis/tieba/tieba_sleep.png"],yf=e=>new Promise((t,n)=>{if(e.size>128*1e3)return n(new Error("File too large! File size limit 128KB"));const r=new FileReader;r.readAsDataURL(e),r.onload=()=>{var i;return t(((i=r.result)==null?void 0:i.toString())||"")},r.onerror=n}),bf=e=>e===!0?'

    TeX is not available in preview

    ':'TeX is not available in preview',wf=e=>{const t=async(n,r={})=>fetch(`https://api.giphy.com/v1/gifs/${n}?${new URLSearchParams({lang:e,limit:"20",rating:"g",api_key:"6CIMLkNMMOhRcXPoMCPkFy4Ybk2XUiMp",...r}).toString()}`).then(i=>i.json()).then(({data:i})=>i.map(l=>({title:l.title,src:l.images.downsized_medium.url})));return{search:n=>t("search",{q:n,offset:"0"}),default:()=>t("trending",{}),more:(n,r=0)=>t("search",{q:n,offset:r.toString()})}},_f=/[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u309f\uac00-\ud7af\u0400-\u04FF]+|\w+/,kf=/{let t=0;return e.replace(Cf,(n,r,i)=>{if(i)return`${i}`;if(r==="<")return"<";let l;Ar[r]?l=Ar[r]:(l=Rl[t],Ar[r]=l);const s=`${r}`;return t=++t%Rl.length,s})},Tf=["nick","nickError","mail","mailError","link","optional","placeholder","sofa","submit","like","cancelLike","reply","cancelReply","comment","refresh","more","preview","emoji","uploadImage","seconds","minutes","hours","days","now","uploading","login","logout","admin","sticky","word","wordHint","anonymous","level0","level1","level2","level3","level4","level5","gif","gifSearchPlaceholder","profile","approved","waiting","spam","unsticky","oldest","latest","hottest","reactionTitle"],bt=e=>Object.fromEntries(e.map((t,n)=>[Tf[n],t]));var $l=bt(["NickName","NickName cannot be less than 3 bytes.","E-Mail","Please confirm your email address.","Website","Optional","Comment here...","No comment yet.","Submit","Like","Cancel like","Reply","Cancel reply","Comments","Refresh","Load More...","Preview","Emoji","Upload Image","seconds ago","minutes ago","hours ago","days ago","just now","Uploading","Login","logout","Admin","Sticky","Words",`Please input comments between $0 and $1 words! + Current word number: $2`,"Anonymous","Dwarves","Hobbits","Ents","Wizards","Elves","Maiar","GIF","Search GIF","Profile","Approved","Waiting","Spam","Unsticky","Oldest","Latest","Hottest","What do you think?"]),Al=bt(["Pseudo","Le pseudo ne peut pas faire moins de 3 octets.","E-mail","Veuillez confirmer votre adresse e-mail.","Site Web","Optionnel","Commentez ici...","Aucun commentaire pour l'instant.","Envoyer","J'aime","Annuler le j'aime","Répondre","Annuler la réponse","Commentaires","Actualiser","Charger plus...","Aperçu","Emoji","Télécharger une image","Il y a quelques secondes","Il y a quelques minutes","Il y a quelques heures","Il y a quelques jours","À l'instant","Téléchargement en cours","Connexion","Déconnexion","Admin","Épinglé","Mots",`Veuillez saisir des commentaires entre $0 et $1 mots ! + Nombre actuel de mots : $2`,"Anonyme","Nains","Hobbits","Ents","Mages","Elfes","Maïar","GIF","Rechercher un GIF","Profil","Approuvé","En attente","Indésirable","Détacher","Le plus ancien","Dernier","Le plus populaire","Qu'en pensez-vous ?"]),Il=bt(["ニックネーム","3バイト以上のニックネームをご入力ください.","メールアドレス","メールアドレスをご確認ください.","サイト","オプション","ここにコメント","コメントしましょう~","提出する","Like","Cancel like","返信する","キャンセル","コメント","更新","さらに読み込む","プレビュー","絵文字","画像をアップロード","秒前","分前","時間前","日前","たっだ今","アップロード","ログインする","ログアウト","管理者","トップに置く","ワード",`コメントは $0 から $1 ワードの間でなければなりません! + 現在の単語番号: $2`,"匿名","うえにん","なかにん","しもおし","特にしもおし","かげ","なぬし","GIF","探す GIF","個人情報","承認済み","待っている","スパム","べたつかない","逆順","正順","人気順","どう思いますか?"]),Rf=bt(["Apelido","Apelido não pode ser menor que 3 bytes.","E-Mail","Por favor, confirme seu endereço de e-mail.","Website","Opcional","Comente aqui...","Nenhum comentário, ainda.","Enviar","Like","Cancel like","Responder","Cancelar resposta","Comentários","Refrescar","Carregar Mais...","Visualizar","Emoji","Enviar Imagem","segundos atrás","minutos atrás","horas atrás","dias atrás","agora mesmo","Enviando","Entrar","Sair","Admin","Sticky","Palavras",`Favor enviar comentário com $0 a $1 palavras! + Número de palavras atuais: $2`,"Anônimo","Dwarves","Hobbits","Ents","Wizards","Elves","Maiar","GIF","Pesquisar GIF","informação pessoal","Aprovado","Espera","Spam","Unsticky","Mais velho","Mais recentes","Mais quente","O que você acha?"]),Ll=bt(["Псевдоним","Никнейм не может быть меньше 3 байт.","Эл. адрес","Пожалуйста, подтвердите адрес вашей электронной почты.","Веб-сайт","Необязательный","Комментарий здесь...","Пока нет комментариев.","Отправить","Like","Cancel like","Отвечать","Отменить ответ","Комментарии","Обновить","Загрузи больше...","Превью","эмодзи","Загрузить изображение","секунд назад","несколько минут назад","несколько часов назад","дней назад","прямо сейчас","Загрузка","Авторизоваться","Выход из системы","Админ","Липкий","Слова",`Пожалуйста, введите комментарии от $0 до $1 слов! +Номер текущего слова: $2`,"Анонимный","Dwarves","Hobbits","Ents","Wizards","Elves","Maiar","GIF","Поиск GIF","Персональные данные","Одобренный","Ожидающий","Спам","Нелипкий","самый старый","последний","самый горячий","Что вы думаете?"]),Ol=bt(["Tên","Tên không được nhỏ hơn 3 ký tự.","E-Mail","Vui lòng xác nhập địa chỉ email của bạn.","Website","Tùy chọn","Hãy bình luận có văn hoá!","Chưa có bình luận","Gửi","Thích","Bỏ thích","Trả lời","Hủy bỏ","bình luận","Làm mới","Tải thêm...","Xem trước","Emoji","Tải lên hình ảnh","giây trước","phút trước","giờ trước","ngày trước","Vừa xong","Đang tải lên","Đăng nhập","đăng xuất","Quản trị viên","Dính","từ",`Bình luận phải có độ dài giữa $0 và $1 từ! + Số từ hiện tại: $2`,"Vô danh","Người lùn","Người tí hon","Thần rừng","Pháp sư","Tiên tộc","Maiar","Ảnh GIF","Tìm kiếm ảnh GIF","thông tin cá nhân","Đã được phê duyệt","Đang chờ đợi","Thư rác","Không dính","lâu đời nhất","muộn nhất","nóng nhất","What do you think?"]),Pl=bt(["昵称","昵称不能少于3个字符","邮箱","请填写正确的邮件地址","网址","可选","欢迎评论","来发评论吧~","提交","喜欢","取消喜欢","回复","取消回复","评论","刷新","加载更多...","预览","表情","上传图片","秒前","分钟前","小时前","天前","刚刚","正在上传","登录","退出","博主","置顶","字",`评论字数应在 $0 到 $1 字之间! +当前字数:$2`,"匿名","潜水","冒泡","吐槽","活跃","话痨","传说","表情包","搜索表情包","个人资料","通过","待审核","垃圾","取消置顶","按倒序","按正序","按热度","你认为这篇文章怎么样?"]),$f=bt(["暱稱","暱稱不能少於3個字元","郵箱","請填寫正確的郵件地址","網址","可選","歡迎留言","來發留言吧~","送出","喜歡","取消喜歡","回覆","取消回覆","留言","重整","載入更多...","預覽","表情","上傳圖片","秒前","分鐘前","小時前","天前","剛剛","正在上傳","登入","登出","管理者","置頂","字",`留言字數應在 $0 到 $1 字之間! +目前字數:$2`,"匿名","潛水","冒泡","吐槽","活躍","多話","傳說","表情包","搜尋表情包","個人資料","通過","待審核","垃圾","取消置頂","最早","最新","熱門","你認為這篇文章怎麼樣?"]);const fo="en-US",Qr={zh:Pl,"zh-cn":Pl,"zh-tw":$f,en:$l,"en-us":$l,fr:Al,"fr-fr":Al,jp:Il,"jp-jp":Il,"pt-br":Rf,ru:Ll,"ru-ru":Ll,vi:Ol,"vi-vn":Ol},Af=e=>Qr[e.toLowerCase()]||Qr[fo],If=e=>Object.keys(Qr).includes(e.toLowerCase())?e:fo,ho=e=>{try{e=decodeURI(e)}catch{}return e},po=(e="")=>e.replace(/\/$/u,""),go=e=>/^(https?:)?\/\//.test(e),cr=e=>{const t=po(e);return go(t)?t:`https://${t}`},Lf=e=>Array.isArray(e)?e:e?[0,e]:!1,Ir=(e,t)=>typeof e=="function"?e:e===!1?!1:t,Of=({serverURL:e,path:t=location.pathname,lang:n=typeof navigator>"u"?"en-US":navigator.language,locale:r,emoji:i=Tl,meta:l=["nick","mail","link"],requiredMeta:s=[],dark:o=!1,pageSize:a=10,wordLimit:c,imageUploader:f,highlighter:p,texRenderer:h,copyright:m=!0,login:$="enable",search:k,reaction:S,recaptchaV3Key:b="",turnstileKey:E="",commentSorting:j="latest",...V})=>({serverURL:cr(e),path:ho(t),lang:If(n),locale:{...Af(n),...typeof r=="object"?r:{}},wordLimit:Lf(c),meta:Sl(l),requiredMeta:Sl(s),imageUploader:Ir(f,yf),highlighter:Ir(p,Sf),texRenderer:Ir(h,bf),dark:o,emoji:typeof i=="boolean"?i?Tl:[]:i,pageSize:a,login:$,copyright:m,search:k===!1?!1:typeof k=="object"?k:wf(n),recaptchaV3Key:b,turnstileKey:E,reaction:Array.isArray(S)?S:S===!0?vf:[],commentSorting:j,...V}),Ft=e=>typeof e=="string",Lr="{--waline-white:#000;--waline-light-grey:#666;--waline-dark-grey:#999;--waline-color:#888;--waline-bg-color:#1e1e1e;--waline-bg-color-light:#272727;--waline-bg-color-hover: #444;--waline-border-color:#333;--waline-disable-bg-color:#444;--waline-disable-color:#272727;--waline-bq-color:#272727;--waline-info-bg-color:#272727;--waline-info-color:#666}",Pf=e=>Ft(e)?e==="auto"?`@media(prefers-color-scheme:dark){body${Lr}}`:`${e}${Lr}`:e===!0?`:root${Lr}`:"",Or=(e,t)=>{let n=e.toString();for(;n.length{const t=Or(e.getDate(),2),n=Or(e.getMonth()+1,2);return`${Or(e.getFullYear(),2)}-${n}-${t}`},zf=(e,t,n)=>{if(!e)return"";const r=Ft(e)?new Date(e.indexOf(" ")!==-1?e.replace(/-/g,"/"):e):e,i=t.getTime()-r.getTime(),l=Math.floor(i/(24*3600*1e3));if(l===0){const s=i%864e5,o=Math.floor(s/(3600*1e3));if(o===0){const a=s%36e5,c=Math.floor(a/(60*1e3));if(c===0){const f=a%6e4;return`${Math.round(f/1e3)} ${n.seconds}`}return`${c} ${n.minutes}`}return`${o} ${n.hours}`}return l<0?n.now:l<8?`${l} ${n.days}`:Mf(r)},jf=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Uf=e=>jf.test(e),Vf=e=>!!/@[0-9]+\.[0-9]+\.[0-9]+/.test(e),Df=e=>{const t=Kt("WALINE_EMOJI",{}),n=Vf(e);if(n){const r=t.value[e];if(r)return Promise.resolve(r)}return fetch(`${e}/info.json`).then(r=>r.json()).then(r=>{const i={folder:e,...r};return n&&(t.value[e]=i),i})},Ml=(e,t="",n="",r="")=>`${t?`${t}/`:""}${n}${e}${r?`.${r}`:""}`,Ff=e=>Promise.all(e.map(t=>Ft(t)?Df(po(t)):Promise.resolve(t))).then(t=>{const n={tabs:[],map:{}};return t.forEach(r=>{const{name:i,folder:l,icon:s,prefix:o,type:a,items:c}=r;n.tabs.push({name:i,icon:Ml(s,l,o,a),items:c.map(f=>{const p=`${o||""}${f}`;return n.map[p]=Ml(f,l,o,a),p})})}),n}),mo=e=>{e.name!=="AbortError"&&console.error(e.message)},Hf=e=>e instanceof HTMLElement?e:Ft(e)?document.querySelector(e):null,Nf=e=>e.type.includes("image"),zl=e=>{const t=Array.from(e).find(Nf);return t?t.getAsFile():null},Bf=/\$.*?\$/,Wf=/^\$(.*?)\$/,qf=/^(?:\s{0,3})\$\$((?:[^\n]|\n[^\n])+?)\n{0,1}\$\$/,Kf=e=>[{name:"blockMath",level:"block",tokenizer(t){const n=qf.exec(t);if(n!==null)return{type:"html",raw:n[0],text:e(!0,n[1])}}},{name:"inlineMath",level:"inline",start(t){const n=t.search(Bf);return n!==-1?n:t.length},tokenizer(t){const n=Wf.exec(t);if(n!==null)return{type:"html",raw:n[0],text:e(!1,n[1])}}}],vo=(e="",t={})=>e.replace(/:(.+?):/g,(n,r)=>t[r]?`${r}`:n),Gf=(e,{emojiMap:t,highlighter:n,texRenderer:r})=>{const i=new so;if(i.setOptions({breaks:!0}),n&&i.use(af({highlight:n})),r){const l=Kf(r);i.use({extensions:l})}return i.parse(vo(e,t))},Yr=e=>e.dataset.path||null,Zf=e=>e.match(/[\w\d\s,.\u00C0-\u024F\u0400-\u04FF]+/giu),Qf=e=>e.match(/[\u4E00-\u9FD5]/gu),Yf=e=>{var t,n;return(((t=Zf(e))==null?void 0:t.reduce((r,i)=>r+(["",",","."].includes(i.trim())?0:i.trim().split(/\s+/u).length),0))||0)+(((n=Qf(e))==null?void 0:n.length)||0)},Jf=async()=>{if(!navigator)return"";const{userAgentData:e}=navigator;let t=navigator.userAgent;if(!e||e.platform!=="Windows")return t;const{platformVersion:n}=await e.getHighEntropyValues(["platformVersion"]);return n&&parseInt(n.split(".")[0])>=13&&(t=t.replace("Windows NT 10.0","Windows NT 11.0")),t},Xf=({serverURL:e,path:t=window.location.pathname,selector:n=".waline-comment-count",lang:r=navigator.language})=>{const i=new AbortController,l=document.querySelectorAll(n);return l.length&&Eo({serverURL:cr(e),paths:Array.from(l).map(s=>ho(Yr(s)||t)),lang:r,signal:i.signal}).then(s=>{l.forEach((o,a)=>{o.innerText=s[a].toString()})}).catch(mo),i.abort.bind(i)},jl=({size:e})=>ie("svg",{class:"wl-close-icon",viewBox:"0 0 1024 1024",width:e,height:e},[ie("path",{d:"M697.173 85.333h-369.92c-144.64 0-241.92 101.547-241.92 252.587v348.587c0 150.613 97.28 252.16 241.92 252.16h369.92c144.64 0 241.494-101.547 241.494-252.16V337.92c0-151.04-96.854-252.587-241.494-252.587z",fill:"currentColor"}),ie("path",{d:"m640.683 587.52-75.947-75.861 75.904-75.862a37.29 37.29 0 0 0 0-52.778 37.205 37.205 0 0 0-52.779 0l-75.946 75.818-75.862-75.946a37.419 37.419 0 0 0-52.821 0 37.419 37.419 0 0 0 0 52.821l75.947 75.947-75.776 75.733a37.29 37.29 0 1 0 52.778 52.821l75.776-75.776 75.947 75.947a37.376 37.376 0 0 0 52.779-52.821z",fill:"#888"})]),ed=()=>ie("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},ie("path",{d:"m341.013 394.667 27.755 393.45h271.83l27.733-393.45h64.106l-28.01 397.952a64 64 0 0 1-63.83 59.498H368.768a64 64 0 0 1-63.83-59.52l-28.053-397.93h64.128zm139.307 19.818v298.667h-64V414.485h64zm117.013 0v298.667h-64V414.485h64zM181.333 288h640v64h-640v-64zm453.483-106.667v64h-256v-64h256z",fill:"red"})),td=()=>ie("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},ie("path",{d:"M563.2 463.3 677 540c1.7 1.2 3.7 1.8 5.8 1.8.7 0 1.4-.1 2-.2 2.7-.5 5.1-2.1 6.6-4.4l25.3-37.8c1.5-2.3 2.1-5.1 1.6-7.8s-2.1-5.1-4.4-6.6l-73.6-49.1 73.6-49.1c2.3-1.5 3.9-3.9 4.4-6.6.5-2.7 0-5.5-1.6-7.8l-25.3-37.8a10.1 10.1 0 0 0-6.6-4.4c-.7-.1-1.3-.2-2-.2-2.1 0-4.1.6-5.8 1.8l-113.8 76.6c-9.2 6.2-14.7 16.4-14.7 27.5.1 11 5.5 21.3 14.7 27.4zM387 348.8h-45.5c-5.7 0-10.4 4.7-10.4 10.4v153.3c0 5.7 4.7 10.4 10.4 10.4H387c5.7 0 10.4-4.7 10.4-10.4V359.2c0-5.7-4.7-10.4-10.4-10.4zm333.8 241.3-41-20a10.3 10.3 0 0 0-8.1-.5c-2.6.9-4.8 2.9-5.9 5.4-30.1 64.9-93.1 109.1-164.4 115.2-5.7.5-9.9 5.5-9.5 11.2l3.9 45.5c.5 5.3 5 9.5 10.3 9.5h.9c94.8-8 178.5-66.5 218.6-152.7 2.4-5 .3-11.2-4.8-13.6zm186-186.1c-11.9-42-30.5-81.4-55.2-117.1-24.1-34.9-53.5-65.6-87.5-91.2-33.9-25.6-71.5-45.5-111.6-59.2-41.2-14-84.1-21.1-127.8-21.1h-1.2c-75.4 0-148.8 21.4-212.5 61.7-63.7 40.3-114.3 97.6-146.5 165.8-32.2 68.1-44.3 143.6-35.1 218.4 9.3 74.8 39.4 145 87.3 203.3.1.2.3.3.4.5l36.2 38.4c1.1 1.2 2.5 2.1 3.9 2.6 73.3 66.7 168.2 103.5 267.5 103.5 73.3 0 145.2-20.3 207.7-58.7 37.3-22.9 70.3-51.5 98.1-85 27.1-32.7 48.7-69.5 64.2-109.1 15.5-39.7 24.4-81.3 26.6-123.8 2.4-43.6-2.5-87-14.5-129zm-60.5 181.1c-8.3 37-22.8 72-43 104-19.7 31.1-44.3 58.6-73.1 81.7-28.8 23.1-61 41-95.7 53.4-35.6 12.7-72.9 19.1-110.9 19.1-82.6 0-161.7-30.6-222.8-86.2l-34.1-35.8c-23.9-29.3-42.4-62.2-55.1-97.7-12.4-34.7-18.8-71-19.2-107.9-.4-36.9 5.4-73.3 17.1-108.2 12-35.8 30-69.2 53.4-99.1 31.7-40.4 71.1-72 117.2-94.1 44.5-21.3 94-32.6 143.4-32.6 49.3 0 97 10.8 141.8 32 34.3 16.3 65.3 38.1 92 64.8 26.1 26 47.5 56 63.6 89.2 16.2 33.2 26.6 68.5 31 105.1 4.6 37.5 2.7 75.3-5.6 112.3z",fill:"currentColor"})),nd=()=>ie("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},[ie("path",{d:"M784 112H240c-88 0-160 72-160 160v480c0 88 72 160 160 160h544c88 0 160-72 160-160V272c0-88-72-160-160-160zm96 640c0 52.8-43.2 96-96 96H240c-52.8 0-96-43.2-96-96V272c0-52.8 43.2-96 96-96h544c52.8 0 96 43.2 96 96v480z",fill:"currentColor"}),ie("path",{d:"M352 480c52.8 0 96-43.2 96-96s-43.2-96-96-96-96 43.2-96 96 43.2 96 96 96zm0-128c17.6 0 32 14.4 32 32s-14.4 32-32 32-32-14.4-32-32 14.4-32 32-32zm462.4 379.2-3.2-3.2-177.6-177.6c-25.6-25.6-65.6-25.6-91.2 0l-80 80-36.8-36.8c-25.6-25.6-65.6-25.6-91.2 0L200 728c-4.8 6.4-8 14.4-8 24 0 17.6 14.4 32 32 32 9.6 0 16-3.2 22.4-9.6L380.8 640l134.4 134.4c6.4 6.4 14.4 9.6 24 9.6 17.6 0 32-14.4 32-32 0-9.6-4.8-17.6-9.6-24l-52.8-52.8 80-80L769.6 776c6.4 4.8 12.8 8 20.8 8 17.6 0 32-14.4 32-32 0-8-3.2-16-8-20.8z",fill:"currentColor"})]),rd=({active:e=!1})=>ie("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},[ie("path",{d:`M850.654 323.804c-11.042-25.625-26.862-48.532-46.885-68.225-20.022-19.61-43.258-34.936-69.213-45.73-26.78-11.124-55.124-16.727-84.375-16.727-40.622 0-80.256 11.123-114.698 32.135A214.79 214.79 0 0 0 512 241.819a214.79 214.79 0 0 0-23.483-16.562c-34.442-21.012-74.076-32.135-114.698-32.135-29.25 0-57.595 5.603-84.375 16.727-25.872 10.711-49.19 26.12-69.213 45.73-20.105 19.693-35.843 42.6-46.885 68.225-11.453 26.615-17.303 54.877-17.303 83.963 0 27.439 5.603 56.03 16.727 85.117 9.31 24.307 22.659 49.52 39.715 74.981 27.027 40.293 64.188 82.316 110.33 124.915 76.465 70.615 152.189 119.394 155.402 121.371l19.528 12.525c8.652 5.52 19.776 5.52 28.427 0l19.529-12.525c3.213-2.06 78.854-50.756 155.401-121.371 46.143-42.6 83.304-84.622 110.33-124.915 17.057-25.46 30.487-50.674 39.716-74.981 11.124-29.087 16.727-57.678 16.727-85.117.082-29.086-5.768-57.348-17.221-83.963z${e?"":"M512 761.5S218.665 573.55 218.665 407.767c0-83.963 69.461-152.023 155.154-152.023 60.233 0 112.473 33.618 138.181 82.727 25.708-49.109 77.948-82.727 138.18-82.727 85.694 0 155.155 68.06 155.155 152.023C805.335 573.551 512 761.5 512 761.5z"}`,fill:e?"red":"currentColor"})]),id=()=>ie("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},[ie("path",{d:"M710.816 654.301c70.323-96.639 61.084-230.578-23.705-314.843-46.098-46.098-107.183-71.109-172.28-71.109-65.008 0-126.092 25.444-172.28 71.109-45.227 46.098-70.756 107.183-70.756 172.106 0 64.923 25.444 126.007 71.194 172.106 46.099 46.098 107.184 71.109 172.28 71.109 51.414 0 100.648-16.212 142.824-47.404l126.53 126.006c7.058 7.06 16.297 10.979 26.406 10.979 10.105 0 19.343-3.919 26.402-10.979 14.467-14.467 14.467-38.172 0-52.723L710.816 654.301zm-315.107-23.265c-65.88-65.88-65.88-172.54 0-238.42 32.069-32.07 74.245-49.149 119.471-49.149 45.227 0 87.407 17.603 119.472 49.149 65.88 65.879 65.88 172.539 0 238.42-63.612 63.178-175.242 63.178-238.943 0zm0 0",fill:"currentColor"}),ie("path",{d:"M703.319 121.603H321.03c-109.8 0-199.469 89.146-199.469 199.38v382.034c0 109.796 89.236 199.38 199.469 199.38h207.397c20.653 0 37.384-16.645 37.384-37.299 0-20.649-16.731-37.296-37.384-37.296H321.03c-68.582 0-124.352-55.77-124.352-124.267V321.421c0-68.496 55.77-124.267 124.352-124.267h382.289c68.582 0 124.352 55.771 124.352 124.267V524.72c0 20.654 16.736 37.299 37.385 37.299 20.654 0 37.384-16.645 37.384-37.299V320.549c-.085-109.8-89.321-198.946-199.121-198.946zm0 0",fill:"currentColor"})]),ld=()=>ie("svg",{width:"16",height:"16",ariaHidden:"true"},ie("path",{d:"M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z",fill:"currentColor"})),sd=()=>ie("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},ie("path",{d:"M810.667 213.333a64 64 0 0 1 64 64V704a64 64 0 0 1-64 64H478.336l-146.645 96.107a21.333 21.333 0 0 1-33.024-17.856V768h-85.334a64 64 0 0 1-64-64V277.333a64 64 0 0 1 64-64h597.334zm0 64H213.333V704h149.334v63.296L459.243 704h351.424V277.333zm-271.36 213.334v64h-176.64v-64h176.64zm122.026-128v64H362.667v-64h298.666z",fill:"currentColor"})),od=()=>ie("svg",{viewBox:"0 0 1024 1024",width:"24",height:"24"},ie("path",{d:"M813.039 318.772L480.53 651.278H360.718V531.463L693.227 198.961C697.904 194.284 704.027 192 710.157 192C716.302 192 722.436 194.284 727.114 198.961L813.039 284.88C817.72 289.561 820 295.684 820 301.825C820 307.95 817.72 314.093 813.039 318.772ZM710.172 261.888L420.624 551.431V591.376H460.561L750.109 301.825L710.172 261.888ZM490.517 291.845H240.906V771.09H720.156V521.479C720.156 504.947 733.559 491.529 750.109 491.529C766.653 491.529 780.063 504.947 780.063 521.479V791.059C780.063 813.118 762.18 831 740.125 831H220.937C198.882 831 181 813.118 181 791.059V271.872C181 249.817 198.882 231.935 220.937 231.935H490.517C507.06 231.935 520.47 245.352 520.47 261.888C520.47 278.424 507.06 291.845 490.517 291.845Z",fill:"currentColor"})),ad=()=>ie("svg",{class:"verified-icon",viewBox:"0 0 1024 1024",width:"14",height:"14"},ie("path",{d:"m894.4 461.56-54.4-63.2c-10.4-12-18.8-34.4-18.8-50.4v-68c0-42.4-34.8-77.2-77.2-77.2h-68c-15.6 0-38.4-8.4-50.4-18.8l-63.2-54.4c-27.6-23.6-72.8-23.6-100.8 0l-62.8 54.8c-12 10-34.8 18.4-50.4 18.4h-69.2c-42.4 0-77.2 34.8-77.2 77.2v68.4c0 15.6-8.4 38-18.4 50l-54 63.6c-23.2 27.6-23.2 72.4 0 100l54 63.6c10 12 18.4 34.4 18.4 50v68.4c0 42.4 34.8 77.2 77.2 77.2h69.2c15.6 0 38.4 8.4 50.4 18.8l63.2 54.4c27.6 23.6 72.8 23.6 100.8 0l63.2-54.4c12-10.4 34.4-18.8 50.4-18.8h68c42.4 0 77.2-34.8 77.2-77.2v-68c0-15.6 8.4-38.4 18.8-50.4l54.4-63.2c23.2-27.6 23.2-73.2-.4-100.8zm-216-25.2-193.2 193.2a30 30 0 0 1-42.4 0l-96.8-96.8a30.16 30.16 0 0 1 0-42.4c11.6-11.6 30.8-11.6 42.4 0l75.6 75.6 172-172c11.6-11.6 30.8-11.6 42.4 0 11.6 11.6 11.6 30.8 0 42.4z",fill:"#27ae60"})),bn=({size:e=100})=>ie("svg",{width:e,height:e,viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"},ie("circle",{cx:50,cy:50,fill:"none",stroke:"currentColor",strokeWidth:"4",r:"40","stroke-dasharray":"85 30"},ie("animateTransform",{attributeName:"transform",type:"rotate",repeatCount:"indefinite",dur:"1s",values:"0 50 50;360 50 50",keyTimes:"0;1"}))),cd=()=>ie("svg",{width:24,height:24,fill:"currentcolor",viewBox:"0 0 24 24"},[ie("path",{style:"transform: translateY(0.5px)",d:"M18.968 10.5H15.968V11.484H17.984V12.984H15.968V15H14.468V9H18.968V10.5V10.5ZM8.984 9C9.26533 9 9.49967 9.09367 9.687 9.281C9.87433 9.46833 9.968 9.70267 9.968 9.984V10.5H6.499V13.5H8.468V12H9.968V14.016C9.968 14.2973 9.87433 14.5317 9.687 14.719C9.49967 14.9063 9.26533 15 8.984 15H5.984C5.70267 15 5.46833 14.9063 5.281 14.719C5.09367 14.5317 5 14.2973 5 14.016V9.985C5 9.70367 5.09367 9.46933 5.281 9.282C5.46833 9.09467 5.70267 9.001 5.984 9.001H8.984V9ZM11.468 9H12.968V15H11.468V9V9Z"}),ie("path",{d:"M18.5 3H5.75C3.6875 3 2 4.6875 2 6.75V18C2 20.0625 3.6875 21.75 5.75 21.75H18.5C20.5625 21.75 22.25 20.0625 22.25 18V6.75C22.25 4.6875 20.5625 3 18.5 3ZM20.75 18C20.75 19.2375 19.7375 20.25 18.5 20.25H5.75C4.5125 20.25 3.5 19.2375 3.5 18V6.75C3.5 5.5125 4.5125 4.5 5.75 4.5H18.5C19.7375 4.5 20.75 5.5125 20.75 6.75V18Z"})]),ud=()=>Kt("WALINE_USER_META",{nick:"",mail:"",link:""}),fd=()=>Kt("WALINE_COMMENT_BOX_EDITOR",""),dd="WALINE_LIKE";let Ul=null;const yo=()=>Ul||(Ul=Kt(dd,[])),hd="WALINE_REACTION";let Vl=null;const pd=()=>Vl??(Vl=Kt(hd,{})),Dl={},gd=e=>{const t=Dl[e]??(Dl[e]=co.load(e,{useRecaptchaNet:!0,autoHideBadge:!0}));return{execute:n=>t.then(r=>r.execute(n))}},md=e=>({execute:async t=>{const{load:n}=ku("https://challenges.cloudflare.com/turnstile/v0/api.js",void 0,{async:!1});await n();const r=window?.turnstile;return new Promise(i=>{r?.ready(()=>{r?.render(".wl-captcha-container",{sitekey:e,action:t,size:"compact",callback:i})})})}}),vd="WALINE_USER";let Fl=null;const Ci=()=>Fl??(Fl=Kt(vd,{})),yd={key:0,class:"wl-reaction"},bd=["textContent"],wd={class:"wl-reaction-list"},_d=["onClick"],kd={class:"wl-reaction-img"},xd=["src","alt"],Ed=["textContent"],Cd=["textContent"];var Sd=xn({__name:"ArticleReaction",setup(e,{expose:t}){t();const n=pd(),r=Tt("config"),i=Z(-1),l=Z([]),s=_e(()=>r.value.locale),o=_e(()=>r.value.reaction.length>0),a=_e(()=>{const{reaction:h,path:m}=r.value;return h.map(($,k)=>({icon:$,desc:s.value[`reaction${k}`],active:n.value[m]===k}))});let c;const f=async()=>{if(!o.value)return;const{serverURL:h,lang:m,path:$,reaction:k}=r.value,S=new AbortController;c=S.abort.bind(S);const b=await Bl({serverURL:h,lang:m,paths:[$],type:k.map((E,j)=>`reaction${j}`),signal:S.signal});l.value=k.map((E,j)=>b[0][`reaction${j}`])},p=async h=>{if(i.value===-1){const{serverURL:m,lang:$,path:k}=r.value,S=n.value[k];i.value=h,S!==void 0&&(await Pr({serverURL:m,lang:$,path:k,type:`reaction${S}`,action:"desc"}),l.value[S]=Math.max(l.value[S]-1,0)),S!==h&&(await Pr({serverURL:m,lang:$,path:k,type:`reaction${h}`}),l.value[h]=(l.value[h]||0)+1),S===h?delete n.value[k]:n.value[k]=h,i.value=-1}};return Wt(()=>{$e(()=>[r.value.serverURL,r.value.path],()=>{f()},{immediate:!0})}),qt(()=>c?.()),(h,m)=>a.value.length?(L(),M("div",yd,[U("div",{class:"wl-reaction-title",textContent:se(s.value.reactionTitle)},null,8,bd),U("ul",wd,[(L(!0),M(fe,null,Ue(a.value,({active:$,icon:k,desc:S},b)=>(L(),M("li",{key:b,class:ye(["wl-reaction-item",{active:$}]),onClick:E=>p(b)},[U("div",kd,[U("img",{src:k,alt:S},null,8,xd),i.value===b?(L(),lt(X(bn),{key:0,class:"wl-reaction-loading"})):(L(),M("div",{key:1,class:"wl-reaction-votes",textContent:se(l.value[b]||0)},null,8,Ed))]),U("div",{class:"wl-reaction-text",textContent:se(S)},null,8,Cd)],10,_d))),128))])])):te("v-if",!0)}}),$n=(e,t)=>{const n=e.__vccOpts||e;for(const[r,i]of t)n[r]=i;return n},Td=$n(Sd,[["__file","ArticleReaction.vue"]]);const Rd=["data-index"],$d=["src","title","onClick"];var Ad=xn({__name:"ImageWall",props:{items:{default:()=>[]},columnWidth:{default:300},gap:{default:0}},emits:["insert"],setup(e,{expose:t}){const n=e;t();let r=null;const i=Z(null),l=Z({}),s=Z([]),o=()=>{const h=Math.floor((i.value.getBoundingClientRect().width+n.gap)/(n.columnWidth+n.gap));return h>0?h:1},a=h=>new Array(h).fill(null).map(()=>[]),c=async h=>{var m;if(h>=n.items.length)return;await kn();const $=Array.from(((m=i.value)==null?void 0:m.children)||[]).reduce((k,S)=>S.getBoundingClientRect().height{if(s.value.length===o()&&!h)return;s.value=a(o());const m=window.scrollY;await c(0),window.scrollTo({top:m})},p=h=>{l.value[h.target.src]=!0};return Wt(()=>{f(!0),r=new ResizeObserver(()=>{f()}),r.observe(i.value),$e(()=>[n.items],()=>{l.value={},f(!0)}),$e(()=>[n.columnWidth,n.gap],()=>{f()})}),Ss(()=>r.unobserve(i.value)),(h,m)=>(L(),M("div",{ref_key:"wall",ref:i,class:"wl-gallery",style:dn({gap:`${h.gap}px`})},[(L(!0),M(fe,null,Ue(s.value,($,k)=>(L(),M("div",{key:k,class:"wl-gallery-column","data-index":k,style:dn({gap:`${h.gap}px`})},[(L(!0),M(fe,null,Ue($,S=>(L(),M(fe,{key:S},[l.value[h.items[S].src]?te("v-if",!0):(L(),lt(X(bn),{key:0,size:36,style:{margin:"20px auto"}})),U("img",{class:"wl-gallery-item",src:h.items[S].src,title:h.items[S].title,loading:"lazy",onLoad:p,onClick:b=>h.$emit("insert",`![](${h.items[S].src})`)},null,40,$d)],64))),128))],12,Rd))),128))],4))}}),Id=$n(Ad,[["__file","ImageWall.vue"]]);const Ld={class:"wl-comment"},Od={key:0,class:"wl-login-info"},Pd={class:"wl-avatar"},Md=["title"],zd=["title"],jd=["src"],Ud=["title","textContent"],Vd={class:"wl-panel"},Dd=["for","textContent"],Fd=["id","onUpdate:modelValue","name","type"],Hd=["placeholder"],Nd={class:"wl-preview"},Bd=U("hr",null,null,-1),Wd=["innerHTML"],qd={class:"wl-footer"},Kd={class:"wl-actions"},Gd={href:"https://guides.github.com/features/mastering-markdown/",title:"Markdown Guide","aria-label":"Markdown is supported",class:"wl-action",target:"_blank",rel:"noopener noreferrer"},Zd=["title"],Qd=["title"],Yd=["title"],Jd=["title"],Xd={class:"wl-info"},eh=U("div",{class:"wl-captcha-container"},null,-1),th={class:"wl-text-number"},nh={key:0},rh=["textContent"],ih=["textContent"],lh=["disabled"],sh=["placeholder"],oh={key:1,class:"wl-loading"},ah={key:0,class:"wl-tab-wrapper"},ch=["title","onClick"],uh=["src","alt"],fh={key:0,class:"wl-tabs"},dh=["onClick"],hh=["src","alt","title"],ph=["title"];var gh=xn({__name:"CommentBox",props:{edit:{default:null},rootId:{default:""},replyId:{default:""},replyUser:{default:""}},emits:["log","cancelEdit","cancelReply","submit"],setup(e,{expose:t,emit:n}){const r=e,i=n;t();const l=Tt("config"),s=fd(),o=ud(),a=Ci(),c=Z({}),f=Z(null),p=Z(null),h=Z(null),m=Z(null),$=Z(null),k=Z(null),S=Z(null),b=Z({tabs:[],map:{}}),E=Z(0),j=Z(!1),V=Z(!1),z=Z(!1),P=Z(""),W=Z(0),N=jt({loading:!0,list:[]}),Se=Z(0),q=Z(!1),de=Z(""),me=Z(!1),K=Z(!1),B=_e(()=>l.value.locale),le=_e(()=>{var O;return!!((O=a.value)!=null&&O.token)}),ne=_e(()=>l.value.imageUploader!==!1),Q=O=>{const A=f.value,u=A.selectionStart,d=A.selectionEnd||0,g=A.scrollTop;s.value=A.value.substring(0,u)+O+A.value.substring(d,A.value.length),A.focus(),A.selectionStart=u+O.length,A.selectionEnd=u+O.length,A.scrollTop=g},J=O=>{const A=O.key;(O.ctrlKey||O.metaKey)&&A==="Enter"&&Gt()},ve=O=>{const A=`![${l.value.locale.uploading} ${O.name}]()`;return Q(A),me.value=!0,Promise.resolve().then(()=>l.value.imageUploader(O)).then(u=>{s.value=s.value.replace(A,`\r +![${O.name}](${u})`)}).catch(u=>{alert(u.message),s.value=s.value.replace(A,"")}).then(()=>{me.value=!1})},Ne=O=>{var A;if((A=O.dataTransfer)!=null&&A.items){const u=zl(O.dataTransfer.items);u&&ne.value&&(ve(u),O.preventDefault())}},Be=O=>{if(O.clipboardData){const A=zl(O.clipboardData.items);A&&ne.value&&ve(A)}},Ae=()=>{const O=p.value;O.files&&ne.value&&ve(O.files[0]).then(()=>{O.value=""})},Gt=async()=>{var O,A,u,d,g,v;const{serverURL:y,lang:_,login:T,wordLimit:x,requiredMeta:C,recaptchaV3Key:w,turnstileKey:I}=l.value,D=await Jf(),R={comment:de.value,nick:o.value.nick,mail:o.value.mail,link:o.value.link,url:l.value.path,ua:D};if((O=a.value)!=null&&O.token&&!r.edit)R.nick=a.value.display_name,R.mail=a.value.email,R.link=a.value.url;else{if(T==="force")return;if(C.indexOf("nick")>-1&&!R.nick)return(A=c.value.nick)==null||A.focus(),alert(B.value.nickError);if(C.indexOf("mail")>-1&&!R.mail||R.mail&&!Uf(R.mail))return(u=c.value.mail)==null||u.focus(),alert(B.value.mailError);R.nick||(R.nick=B.value.anonymous)}if(!R.comment){(d=f.value)==null||d.focus();return}if(!q.value)return alert(B.value.wordHint.replace("$0",x[0].toString()).replace("$1",x[1].toString()).replace("$2",W.value.toString()));R.comment=vo(R.comment,b.value.map),r.replyId&&r.rootId&&(R.pid=r.replyId,R.rid=r.rootId,R.at=r.replyUser),me.value=!0;try{w&&(R.recaptchaV3=await gd(w).execute("social")),I&&(R.turnstile=await md(I).execute("social"));const H={serverURL:y,lang:_,token:(g=a.value)==null?void 0:g.token,comment:R},Y=await(r.edit?Hn({objectId:r.edit.objectId,...H}):ko(H));if(me.value=!1,Y.errmsg)return alert(Y.errmsg);i("submit",Y.data),s.value="",P.value="",r.replyId&&i("cancelReply"),(v=r.edit)!=null&&v.objectId&&i("cancelEdit")}catch(H){me.value=!1,alert(H.message)}},_r=O=>{O.preventDefault();const{lang:A,serverURL:u}=l.value;Co({serverURL:u,lang:A}).then(d=>{a.value=d,(d.remember?localStorage:sessionStorage).setItem("WALINE_USER",JSON.stringify(d)),i("log")})},kr=()=>{a.value={},localStorage.setItem("WALINE_USER","null"),sessionStorage.setItem("WALINE_USER","null"),i("log")},je=O=>{O.preventDefault();const{lang:A,serverURL:u}=l.value,d=800,g=800,v=(window.innerWidth-d)/2,y=(window.innerHeight-g)/2,_=new URLSearchParams({lng:A,token:a.value.token}),T=window.open(`${u}/ui/profile?${_.toString()}`,"_blank",`width=${d},height=${g},left=${v},top=${y},scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no`);T?.postMessage({type:"TOKEN",data:a.value.token},"*")},wt=O=>{var A,u,d,g;!((A=h.value)!=null&&A.contains(O.target))&&!((u=m.value)!=null&&u.contains(O.target))&&(j.value=!1),!((d=$.value)!=null&&d.contains(O.target))&&!((g=k.value)!=null&&g.contains(O.target))&&(V.value=!1)},Lt=async O=>{var A;const{scrollTop:u,clientHeight:d,scrollHeight:g}=O.target,v=(d+u)/g,y=l.value.search,_=((A=S.value)==null?void 0:A.value)||"";v<.9||N.loading||K.value||(N.loading=!0,(y.more&&N.list.length?await y.more(_,N.list.length):await y.search(_)).length?N.list=[...N.list,...y.more&&N.list.length?await y.more(_,N.list.length):await y.search(_)]:K.value=!0,N.loading=!1,setTimeout(()=>{O.target.scrollTop=u},50))},Zt=cu(O=>{N.list=[],K.value=!1,Lt(O)},300);$e([l,W],([O,A])=>{const{wordLimit:u}=O;u?Au[1]?(Se.value=u[1],q.value=!1):(Se.value=u[1],q.value=!0):(Se.value=0,q.value=!0)},{immediate:!0});const Xe=({data:O})=>{!O||O.type!=="profile"||(a.value={...a.value,...O.data},[localStorage,sessionStorage].filter(A=>A.getItem("WALINE_USER")).forEach(A=>A.setItem("WALINE_USER",JSON.stringify(a))))};return Wt(()=>{var O;document.body.addEventListener("click",wt),window.addEventListener("message",Xe),(O=r.edit)!=null&&O.objectId&&(s.value=r.edit.orig),$e(V,async A=>{if(!A)return;const u=l.value.search;S.value&&(S.value.value=""),N.loading=!0,N.list=u.default?await u.default():await u.search(""),N.loading=!1}),$e(()=>s.value,A=>{const{highlighter:u,texRenderer:d}=l.value;de.value=A,P.value=Gf(A,{emojiMap:b.value.map,highlighter:u,texRenderer:d}),W.value=Yf(A),A?ml(f.value):ml.destroy(f.value)},{immediate:!0}),$e(()=>l.value.emoji,A=>Ff(A).then(u=>{b.value=u}),{immediate:!0})}),qt(()=>{document.body.removeEventListener("click",wt),window.removeEventListener("message",Xe)}),(O,A)=>{var u,d;return L(),M("div",Ld,[X(l).login!=="disable"&&le.value&&!((u=O.edit)!=null&&u.objectId)?(L(),M("div",Od,[U("div",Pd,[U("button",{type:"submit",class:"wl-logout-btn",title:B.value.logout,onClick:kr},[ae(X(jl),{size:14})],8,Md),U("a",{href:"#",class:"wl-login-nick","aria-label":"Profile",title:B.value.profile,onClick:je},[U("img",{src:X(a).avatar,alt:"avatar"},null,8,jd)],8,zd)]),U("a",{href:"#",class:"wl-login-nick","aria-label":"Profile",title:B.value.profile,onClick:je,textContent:se(X(a).display_name)},null,8,Ud)])):te("v-if",!0),U("div",Vd,[X(l).login!=="force"&&X(l).meta.length&&!le.value?(L(),M("div",{key:0,class:ye(["wl-header",`item${X(l).meta.length}`])},[(L(!0),M(fe,null,Ue(X(l).meta,g=>(L(),M("div",{key:g,class:"wl-header-item"},[U("label",{for:`wl-${g}`,textContent:se(B.value[g]+(X(l).requiredMeta.includes(g)||!X(l).requiredMeta.length?"":`(${B.value.optional})`))},null,8,Dd),zn(U("input",{id:`wl-${g}`,ref_for:!0,ref:v=>{v&&(c.value[g]=v)},"onUpdate:modelValue":v=>X(o)[g]=v,class:ye(["wl-input",`wl-${g}`]),name:g,type:g==="mail"?"email":"text"},null,10,Fd),[[Jc,X(o)[g]]])]))),128))],2)):te("v-if",!0),zn(U("textarea",{id:"wl-edit",ref_key:"editorRef",ref:f,"onUpdate:modelValue":A[0]||(A[0]=g=>Ce(s)?s.value=g:null),class:"wl-editor",placeholder:O.replyUser?`@${O.replyUser}`:B.value.placeholder,onKeydown:J,onDrop:Ne,onPaste:Be},null,40,Hd),[[Gr,X(s)]]),zn(U("div",Nd,[Bd,U("h4",null,se(B.value.preview)+":",1),U("div",{class:"wl-content",innerHTML:P.value},null,8,Wd)],512),[[rl,z.value]]),U("div",qd,[U("div",Kd,[U("a",Gd,[ae(X(ld))]),zn(U("button",{ref_key:"emojiButtonRef",ref:h,type:"button",class:ye(["wl-action",{active:j.value}]),title:B.value.emoji,onClick:A[1]||(A[1]=g=>j.value=!j.value)},[ae(X(td))],10,Zd),[[rl,b.value.tabs.length]]),X(l).search?(L(),M("button",{key:0,ref_key:"gifButtonRef",ref:$,type:"button",class:ye(["wl-action",{active:V.value}]),title:B.value.gif,onClick:A[2]||(A[2]=g=>V.value=!V.value)},[ae(X(cd))],10,Qd)):te("v-if",!0),U("input",{id:"wl-image-upload",ref_key:"imageUploadRef",ref:p,class:"upload",type:"file",accept:".png,.jpg,.jpeg,.webp,.bmp,.gif",onChange:Ae},null,544),ne.value?(L(),M("label",{key:1,for:"wl-image-upload",class:"wl-action",title:B.value.uploadImage},[ae(X(nd))],8,Yd)):te("v-if",!0),U("button",{type:"button",class:ye(["wl-action",{active:z.value}]),title:B.value.preview,onClick:A[3]||(A[3]=g=>z.value=!z.value)},[ae(X(id))],10,Jd)]),U("div",Xd,[eh,U("div",th,[tt(se(W.value)+" ",1),X(l).wordLimit?(L(),M("span",nh,[tt("  /  "),U("span",{class:ye({illegal:!q.value}),textContent:se(Se.value)},null,10,rh)])):te("v-if",!0),tt("  "+se(B.value.word),1)]),X(l).login!=="disable"&&!le.value?(L(),M("button",{key:0,type:"button",class:"wl-btn",onClick:_r,textContent:se(B.value.login)},null,8,ih)):te("v-if",!0),X(l).login!=="force"||le.value?(L(),M("button",{key:1,type:"submit",class:"primary wl-btn",title:"Cmd|Ctrl + Enter",disabled:me.value,onClick:Gt},[me.value?(L(),lt(X(bn),{key:0,size:16})):(L(),M(fe,{key:1},[tt(se(B.value.submit),1)],64))],8,lh)):te("v-if",!0)]),U("div",{ref_key:"gifPopupRef",ref:k,class:ye(["wl-gif-popup",{display:V.value}])},[U("input",{ref_key:"gifSearchInputRef",ref:S,type:"text",placeholder:B.value.gifSearchPlaceholder,onInput:A[4]||(A[4]=(...g)=>X(Zt)&&X(Zt)(...g))},null,40,sh),N.list.length?(L(),lt(Id,{key:0,items:N.list,"column-width":200,gap:6,onInsert:A[5]||(A[5]=g=>Q(g)),onScroll:Lt},null,8,["items"])):te("v-if",!0),N.loading?(L(),M("div",oh,[ae(X(bn),{size:30})])):te("v-if",!0)],2),U("div",{ref_key:"emojiPopupRef",ref:m,class:ye(["wl-emoji-popup",{display:j.value}])},[(L(!0),M(fe,null,Ue(b.value.tabs,(g,v)=>(L(),M(fe,{key:g.name},[v===E.value?(L(),M("div",ah,[(L(!0),M(fe,null,Ue(g.items,y=>(L(),M("button",{key:y,type:"button",title:y,onClick:_=>Q(`:${y}:`)},[j.value?(L(),M("img",{key:0,class:"wl-emoji",src:b.value.map[y],alt:y,loading:"lazy",referrerPolicy:"no-referrer"},null,8,uh)):te("v-if",!0)],8,ch))),128))])):te("v-if",!0)],64))),128)),b.value.tabs.length>1?(L(),M("div",fh,[(L(!0),M(fe,null,Ue(b.value.tabs,(g,v)=>(L(),M("button",{key:g.name,type:"button",class:ye(["wl-tab",{active:E.value===v}]),onClick:y=>E.value=v},[U("img",{class:"wl-emoji",src:g.icon,alt:g.name,title:g.name,loading:"lazy",referrerPolicy:"no-referrer"},null,8,hh)],10,dh))),128))])):te("v-if",!0)],2)])]),O.replyId||(d=O.edit)!=null&&d.objectId?(L(),M("button",{key:1,type:"button",class:"wl-close",title:B.value.cancelReply,onClick:A[6]||(A[6]=g=>O.$emit(O.replyId?"cancelReply":"cancelEdit"))},[ae(X(jl),{size:24})],8,ph)):te("v-if",!0)])}}}),bo=$n(gh,[["__file","CommentBox.vue"]]);const mh=["id"],vh={class:"wl-user","aria-hidden":"true"},yh=["src"],bh={class:"wl-card"},wh={class:"wl-head"},_h=["href"],kh={key:1,class:"wl-nick"},xh=["textContent"],Eh=["textContent"],Ch=["textContent"],Sh=["textContent"],Th=["textContent"],Rh={class:"wl-comment-actions"},$h=["title"],Ah=["title"],Ih={class:"wl-meta","aria-hidden":"true"},Lh=["data-value","textContent"],Oh=["innerHTML"],Ph={key:1,class:"wl-admin-actions"},Mh={class:"wl-comment-status"},zh=["disabled","onClick","textContent"],jh={key:3,class:"wl-quote"};var Uh=xn({__name:"CommentCard",props:{comment:{},edit:{default:null},rootId:{},reply:{default:null}},emits:["log","submit","delete","edit","like","status","sticky","reply"],setup(e,{emit:t}){const n=e,r=t,i=["approved","waiting","spam"],l=Tt("config"),s=yo(),o=_u(),a=Ci(),c=_e(()=>l.value.locale),f=_e(()=>{const{link:b}=n.comment;return b?go(b)?b:`https://${b}`:""}),p=_e(()=>s.value.includes(n.comment.objectId)),h=_e(()=>zf(new Date(n.comment.time),o.value,c.value)),m=_e(()=>a.value.type==="administrator"),$=_e(()=>n.comment.user_id&&a.value.objectId===n.comment.user_id),k=_e(()=>{var b;return n.comment.objectId===((b=n.reply)==null?void 0:b.objectId)}),S=_e(()=>{var b;return n.comment.objectId===((b=n.edit)==null?void 0:b.objectId)});return(b,E)=>{var j;const V=Ia("CommentCard",!0);return L(),M("div",{id:b.comment.objectId,class:"wl-card-item"},[U("div",vh,[b.comment.avatar?(L(),M("img",{key:0,class:"wl-user-avatar",src:b.comment.avatar},null,8,yh)):te("v-if",!0),b.comment.type?(L(),lt(X(ad),{key:1})):te("v-if",!0)]),U("div",bh,[U("div",wh,[f.value?(L(),M("a",{key:0,class:"wl-nick",href:f.value,target:"_blank",rel:"nofollow noopener noreferrer"},se(b.comment.nick),9,_h)):(L(),M("span",kh,se(b.comment.nick),1)),b.comment.type==="administrator"?(L(),M("span",{key:2,class:"wl-badge",textContent:se(c.value.admin)},null,8,xh)):te("v-if",!0),b.comment.label?(L(),M("span",{key:3,class:"wl-badge",textContent:se(b.comment.label)},null,8,Eh)):te("v-if",!0),b.comment.sticky?(L(),M("span",{key:4,class:"wl-badge",textContent:se(c.value.sticky)},null,8,Ch)):te("v-if",!0),typeof b.comment.level=="number"?(L(),M("span",{key:5,class:ye(`wl-badge level${b.comment.level}`),textContent:se(c.value[`level${b.comment.level}`]||`Level ${b.comment.level}`)},null,10,Sh)):te("v-if",!0),U("span",{class:"wl-time",textContent:se(h.value)},null,8,Th),U("div",Rh,[m.value||$.value?(L(),M(fe,{key:0},[U("button",{type:"button",class:"wl-edit",onClick:E[0]||(E[0]=z=>r("edit",b.comment))},[ae(X(od))]),U("button",{type:"button",class:"wl-delete",onClick:E[1]||(E[1]=z=>r("delete",b.comment))},[ae(X(ed))])],64)):te("v-if",!0),U("button",{type:"button",class:"wl-like",title:p.value?c.value.cancelLike:c.value.like,onClick:E[2]||(E[2]=z=>r("like",b.comment))},[ae(X(rd),{active:p.value},null,8,["active"]),tt(" "+se("like"in b.comment?b.comment.like:""),1)],8,$h),U("button",{type:"button",class:ye(["wl-reply",{active:k.value}]),title:k.value?c.value.cancelReply:c.value.reply,onClick:E[3]||(E[3]=z=>r("reply",k.value?null:b.comment))},[ae(X(sd))],10,Ah)])]),U("div",Ih,[(L(),M(fe,null,Ue(["addr","browser","os"],z=>(L(),M(fe,null,[b.comment[z]?(L(),M("span",{key:z,class:ye(`wl-${z}`),"data-value":b.comment[z],textContent:se(b.comment[z])},null,10,Lh)):te("v-if",!0)],64))),64))]),S.value?te("v-if",!0):(L(),M("div",{key:0,class:"wl-content",innerHTML:b.comment.comment},null,8,Oh)),m.value&&!S.value?(L(),M("div",Ph,[U("span",Mh,[(L(),M(fe,null,Ue(i,z=>U("button",{key:z,type:"submit",class:ye(`wl-btn wl-${z}`),disabled:b.comment.status===z,onClick:P=>r("status",{status:z,comment:b.comment}),textContent:se(c.value[z])},null,10,zh)),64))]),m.value&&!("rid"in b.comment)?(L(),M("button",{key:0,type:"submit",class:"wl-btn wl-sticky",onClick:E[4]||(E[4]=z=>r("sticky",b.comment))},se(b.comment.sticky?c.value.unsticky:c.value.sticky),1)):te("v-if",!0)])):te("v-if",!0),k.value||S.value?(L(),M("div",{key:2,class:ye({"wl-reply-wrapper":k.value,"wl-edit-wrapper":S.value})},[ae(bo,{edit:b.edit,"reply-id":(j=b.reply)==null?void 0:j.objectId,"reply-user":b.comment.nick,"root-id":b.rootId,onLog:E[5]||(E[5]=z=>r("log")),onCancelReply:E[6]||(E[6]=z=>r("reply",null)),onCancelEdit:E[7]||(E[7]=z=>r("edit",null)),onSubmit:E[8]||(E[8]=z=>r("submit",z))},null,8,["edit","reply-id","reply-user","root-id"])],2)):te("v-if",!0),"children"in b.comment?(L(),M("div",jh,[(L(!0),M(fe,null,Ue(b.comment.children,z=>(L(),lt(V,{key:z.objectId,comment:z,reply:b.reply,edit:b.edit,"root-id":b.rootId,onLog:E[9]||(E[9]=P=>r("log")),onDelete:E[10]||(E[10]=P=>r("delete",P)),onEdit:E[11]||(E[11]=P=>r("edit",P)),onLike:E[12]||(E[12]=P=>r("like",P)),onReply:E[13]||(E[13]=P=>r("reply",P)),onStatus:E[14]||(E[14]=P=>r("status",P)),onSticky:E[15]||(E[15]=P=>r("sticky",P)),onSubmit:E[16]||(E[16]=P=>r("submit",P))},null,8,["comment","reply","edit","root-id"]))),128))])):te("v-if",!0)])],8,mh)}}}),Vh=$n(Uh,[["__file","CommentCard.vue"]]);const Dh="3.1.3",Fh={"data-waline":""},Hh={class:"wl-meta-head"},Nh={class:"wl-count"},Bh=["textContent"],Wh={class:"wl-sort"},qh=["onClick"],Kh={class:"wl-cards"},Gh={key:1,class:"wl-operation"},Zh=["textContent"],Qh={key:2,class:"wl-loading"},Yh=["textContent"],Jh={key:4,class:"wl-operation"},Xh=["textContent"],ep={key:5,class:"wl-power"},tp=U("a",{href:"https://github.com/walinejs/waline",target:"_blank",rel:"noopener noreferrer"}," Waline ",-1);var np=xn({__name:"WalineComment",props:["serverURL","path","meta","requiredMeta","dark","commentSorting","lang","locale","pageSize","wordLimit","emoji","login","highlighter","texRenderer","imageUploader","search","copyright","recaptchaV3Key","turnstileKey","reaction"],setup(e){const t=e,n={latest:"insertedAt_desc",oldest:"insertedAt_asc",hottest:"like_desc"},r=Object.keys(n),i=Ci(),l=yo(),s=Z("loading"),o=Z(0),a=Z(1),c=Z(0),f=_e(()=>Of(t)),p=Z(f.value.commentSorting),h=Z([]),m=Z(null),$=Z(null),k=_e(()=>Pf(f.value.dark)),S=_e(()=>f.value.locale);Eu(k,{id:"waline-darkmode"});let b;const E=K=>{var B;const{serverURL:le,path:ne,pageSize:Q}=f.value,J=new AbortController;s.value="loading",b?.(),_o({serverURL:le,lang:f.value.lang,path:ne,pageSize:Q,sortBy:n[p.value],page:K,signal:J.signal,token:(B=i.value)==null?void 0:B.token}).then(ve=>{s.value="success",o.value=ve.count,h.value.push(...ve.data),a.value=K,c.value=ve.totalPages}).catch(ve=>{ve.name!=="AbortError"&&(console.error(ve.message),s.value="error")}),b=J.abort.bind(J)},j=()=>E(a.value+1),V=()=>{o.value=0,h.value=[],E(1)},z=K=>{p.value!==K&&(p.value=K,V())},P=K=>{m.value=K},W=K=>{$.value=K},N=K=>{if($.value)$.value.comment=K.comment,$.value.orig=K.orig;else if("rid"in K){const B=h.value.find(({objectId:le})=>le===K.rid);if(!B)return;Array.isArray(B.children)||(B.children=[]),B.children.push(K)}else h.value.unshift(K),o.value+=1},Se=async({comment:K,status:B})=>{var le;if(K.status===B)return;const{serverURL:ne,lang:Q}=f.value;await Hn({serverURL:ne,lang:Q,token:(le=i.value)==null?void 0:le.token,objectId:K.objectId,comment:{status:B}}),K.status=B},q=async K=>{var B;if("rid"in K)return;const{serverURL:le,lang:ne}=f.value;await Hn({serverURL:le,lang:ne,token:(B=i.value)==null?void 0:B.token,objectId:K.objectId,comment:{sticky:K.sticky?0:1}}),K.sticky=!K.sticky},de=async({objectId:K})=>{var B;if(!confirm("Are you sure you want to delete this comment?"))return;const{serverURL:le,lang:ne}=f.value;await xo({serverURL:le,lang:ne,token:(B=i.value)==null?void 0:B.token,objectId:K}),h.value.some((Q,J)=>Q.objectId===K?(h.value=h.value.filter((ve,Ne)=>Ne!==J),!0):Q.children.some((ve,Ne)=>ve.objectId===K?(h.value[J].children=Q.children.filter((Be,Ae)=>Ae!==Ne),!0):!1))},me=async K=>{var B;const{serverURL:le,lang:ne}=f.value,{objectId:Q}=K,J=l.value.includes(Q);await Hn({serverURL:le,lang:ne,objectId:Q,token:(B=i.value)==null?void 0:B.token,comment:{like:!J}}),J?l.value=l.value.filter(ve=>ve!==Q):(l.value=[...l.value,Q],l.value.length>50&&(l.value=l.value.slice(-50))),K.like=(K.like||0)+(J?-1:1)};return $s("config",f),Wt(()=>{$e(()=>[t.serverURL,t.path],()=>V(),{immediate:!0})}),qt(()=>b?.()),(K,B)=>(L(),M("div",Fh,[ae(Td),m.value?te("v-if",!0):(L(),lt(bo,{key:0,onLog:V,onSubmit:N})),U("div",Hh,[U("div",Nh,[o.value?(L(),M("span",{key:0,class:"wl-num",textContent:se(o.value)},null,8,Bh)):te("v-if",!0),tt(" "+se(S.value.comment),1)]),U("ul",Wh,[(L(!0),M(fe,null,Ue(X(r),le=>(L(),M("li",{key:le,class:ye([le===p.value?"active":""]),onClick:ne=>z(le)},se(S.value[le]),11,qh))),128))])]),U("div",Kh,[(L(!0),M(fe,null,Ue(h.value,le=>(L(),lt(Vh,{key:le.objectId,"root-id":le.objectId,comment:le,reply:m.value,edit:$.value,onLog:V,onReply:P,onEdit:W,onSubmit:N,onStatus:Se,onDelete:de,onSticky:q,onLike:me},null,8,["root-id","comment","reply","edit"]))),128))]),s.value==="error"?(L(),M("div",Gh,[U("button",{type:"button",class:"wl-btn",onClick:V,textContent:se(S.value.refresh)},null,8,Zh)])):s.value==="loading"?(L(),M("div",Qh,[ae(X(bn),{size:30})])):h.value.length?a.value{t.forEach((n,r)=>{const i=e[r].time;typeof i=="number"&&(n.innerText=i.toString())})},ip=({serverURL:e,path:t=window.location.pathname,selector:n=".waline-pageview-count",update:r=!0,lang:i=navigator.language})=>{const l=new AbortController,s=Array.from(document.querySelectorAll(n)),o=c=>{const f=Yr(c);return f!==null&&t!==f},a=c=>So({serverURL:cr(e),paths:c.map(f=>Yr(f)||t),lang:i,signal:l.signal}).then(f=>Hl(f,c)).catch(mo);if(r){const c=s.filter(p=>!o(p)),f=s.filter(o);To({serverURL:cr(e),path:t,lang:i}).then(p=>Hl(p,c)),f.length&&a(f)}else a(s);return l.abort.bind(l)},lp=({el:e="#waline",path:t=window.location.pathname,comment:n=!1,pageview:r=!1,...i})=>{const l=e?Hf(e):null;if(e&&!l)throw new Error("Option 'el' do not match any domElement!");if(!i.serverURL)throw new Error("Option 'serverURL' is missing!");const s=jt({...i}),o=jt({comment:n,pageview:r,path:t}),a=()=>{o.comment&&Xf({serverURL:s.serverURL,path:o.path,...Ft(o.comment)?{selector:o.comment}:{}})},c=()=>{o.pageview&&ip({serverURL:s.serverURL,path:o.path,...Ft(o.pageview)?{selector:o.pageview}:{}})},f=l?nu(()=>ie(rp,{path:o.path,...s})):null;f&&f.mount(l);const p=Hi(a),h=Hi(c);return{el:l,update:({comment:m,pageview:$,path:k=window.location.pathname,...S}={})=>{Object.entries(S).forEach(([b,E])=>{s[b]=E}),o.path=k,m!==void 0&&(o.comment=m),$!==void 0&&(o.pageview=$)},destroy:()=>{f?.unmount(),p(),h()}}};function up({serverURL:e}){const t=$i.useRef(null);return $i.useEffect(()=>{const n=lp({el:t.current,serverURL:e,dark:"[data-theme='dark']",login:"force",imageUploader:!1,search:!1,locale:{placeholder:"发条友善的评论吧(支持 Markdown 语法)…"},emoji:["//unpkg.com/@waline/emojis@1.1.0/bilibili"]});return()=>{t.current&&n?.destroy()}},[e]),wo.jsx("div",{ref:t})}export{up as Waline}; diff --git a/_astro/_commonjsHelpers.Cpj98o6Y.js b/_astro/_commonjsHelpers.Cpj98o6Y.js new file mode 100644 index 0000000..b285ce5 --- /dev/null +++ b/_astro/_commonjsHelpers.Cpj98o6Y.js @@ -0,0 +1 @@ +var o=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function l(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}export{o as c,l as g}; diff --git a/_astro/_page_.UkPj7O65.css b/_astro/_page_.UkPj7O65.css new file mode 100644 index 0000000..838a94f --- /dev/null +++ b/_astro/_page_.UkPj7O65.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Noto Sans SC,Source Han Sans SC,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-px{inset:-1px}.inset-0{inset:0}.-inset-x-4{left:-1rem;right:-1rem}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.inset-y-4{top:1rem;bottom:1rem}.-left-8{left:-2rem}.-top-3{top:-.75rem}.bottom-0{bottom:0}.bottom-6{bottom:1.5rem}.left-0{left:0}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-12{top:3rem}.top-2{top:.5rem}.top-20{top:5rem}.top-\[30\%\]{top:30%}.-z-1{z-index:-1}.z-1{z-index:1}.z-10{z-index:10}.z-50{z-index:50}.col-start-1{grid-column-start:1}.float-right{float:right}.-my-4{margin-top:-1rem;margin-bottom:-1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.mb-2{margin-bottom:.5rem}.mb-24{margin-bottom:6rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.mt-\[120px\]{margin-top:120px}.mt-\[60px\]{margin-top:60px}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-video{aspect-ratio:16 / 9}.size-10{width:2.5rem;height:2.5rem}.size-16{width:4rem;height:4rem}.size-6{width:1.5rem;height:1.5rem}.size-8{width:2rem;height:2rem}.size-9{width:2.25rem;height:2.25rem}.size-\[200px\]{width:200px;height:200px}.size-\[32px\]{width:32px;height:32px}.size-\[40px\]{width:40px;height:40px}.size-\[80px\]{width:80px;height:80px}.size-full{width:100%;height:100%}.h-1{height:.25rem}.h-\[350px\]{height:350px}.h-\[40\%\]{height:40%}.h-\[64px\]{height:64px}.h-full{height:100%}.h-px{height:1px}.min-h-0{min-height:0px}.min-h-main{min-height:calc(100vh - 200px)}.w-\[100px\]{width:100px}.w-\[260px\]{width:260px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[420px\]{min-width:420px}.max-w-\[100px\]{max-width:100px}.max-w-\[1100px\]{max-width:1100px}.max-w-\[1300px\]{max-width:1300px}.max-w-\[590px\]{max-width:590px}.max-w-\[80\%\]{max-width:80%}.max-w-\[800px\]{max-width:800px}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-rotate-3{--tw-rotate: -3deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[180px_auto\]{grid-template-columns:180px auto}.grid-cols-\[64px_auto_64px\]{grid-template-columns:64px auto 64px}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-1{gap:.25rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-balance{text-wrap:balance}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity))}.border-primary{border-color:rgb(var(--color-border-primary))}.\!bg-primary{background-color:rgb(var(--color-bg-primary))!important}.bg-accent{--tw-bg-opacity: 1;background-color:rgb(var(--color-accent) / var(--tw-bg-opacity))}.bg-accent\/10{background-color:rgb(var(--color-accent) / .1)}.bg-accent\/30{background-color:rgb(var(--color-accent) / .3)}.bg-amber-300\/10{background-color:#fcd34d1a}.bg-gray-800\/40{background-color:#1f293766}.bg-primary{background-color:rgb(var(--color-bg-primary))}.bg-white\/50{background-color:#ffffff80}.bg-white\/70{background-color:#ffffffb3}.bg-zinc-100{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity))}.bg-zinc-300{--tw-bg-opacity: 1;background-color:rgb(212 212 216 / var(--tw-bg-opacity))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-accent\/5{--tw-gradient-from: rgb(var(--color-accent) / .05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(var(--color-accent) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-accent\/70{--tw-gradient-to: rgb(var(--color-accent) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(var(--color-accent) / .7) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-accent\/15{--tw-gradient-to: rgb(var(--color-accent) / .15) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.stroke-current{stroke:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-4{padding:1rem}.p-\[3px\]{padding:3px}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-8{padding-bottom:2rem}.pl-8{padding-left:2rem}.pt-16{padding-top:4rem}.text-center{text-align:center}.text-right{text-align:right}.font-\[\'Atkinson\'\]{font-family:Atkinson}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.text-\[4rem\]{font-size:4rem}.text-\[7rem\]{font-size:7rem}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-xl{font-size:1.25rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.leading-loose{line-height:2}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-widest{letter-spacing:.1em}.\!text-primary{color:rgb(var(--color-text-primary))!important}.text-accent{--tw-text-opacity: 1;color:rgb(var(--color-accent) / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-800\/90{color:#1f2937e6}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-secondary{color:rgb(var(--color-text-secondary))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-zinc-500{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity))}.decoration-dashed{text-decoration-style:dashed}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-zinc-800\/5{--tw-shadow-color: rgb(39 39 42 / .05);--tw-shadow: var(--tw-shadow-colored)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-lg{--tw-backdrop-blur: blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-saturate-150{--tw-backdrop-saturate: saturate(1.5);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-bg-color{transition-property:background-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-100{transition-delay:.1s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.hover\:bg-accent\/20:hover{background-color:rgb(var(--color-accent) / .2)}.hover\:bg-secondary:hover{background-color:rgb(var(--color-bg-secondary))}.hover\:text-accent:hover{--tw-text-opacity: 1;color:rgb(var(--color-accent) / var(--tw-text-opacity))}.hover\:text-accent\/80:hover{color:rgb(var(--color-accent) / .8)}.hover\:text-zinc-900:hover{--tw-text-opacity: 1;color:rgb(24 24 27 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus-visible\:outline-0:focus-visible{outline-width:0px}.group:hover .group-hover\:scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-accent\/20{background-color:rgb(var(--color-accent) / .2)}.group:hover .group-hover\:text-accent{--tw-text-opacity: 1;color:rgb(var(--color-accent) / var(--tw-text-opacity))}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width: 640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 768px){.md\:sticky{position:sticky}.md\:top-20{top:5rem}.md\:block{display:block}.md\:gap-8{gap:2rem}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:text-2xl{font-size:1.5rem}.md\:text-\[9rem\]{font-size:9rem}}@media (min-width: 1024px){.lg\:absolute{position:absolute}.lg\:-mt-16{margin-top:-4rem}.lg\:mt-0{margin-top:0}.lg\:block{display:block}.lg\:size-\[300px\]{width:300px;height:300px}.lg\:h-dvh{height:100dvh}.lg\:min-h-\[720px\]{min-height:720px}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-\[auto_260px\]{grid-template-columns:auto 260px}.lg\:grid-cols-\[auto_300px\]{grid-template-columns:auto 300px}.lg\:justify-start{justify-content:flex-start}.lg\:text-left{text-align:left}}.dark\:bg-zinc-700:where([data-theme=dark],[data-theme=dark] *){--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity))}.dark\:bg-zinc-800:where([data-theme=dark],[data-theme=dark] *){--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity))}.dark\:bg-zinc-800\/50:where([data-theme=dark],[data-theme=dark] *){background-color:#27272a80}.dark\:bg-zinc-800\/70:where([data-theme=dark],[data-theme=dark] *){background-color:#27272ab3}.dark\:text-black:where([data-theme=dark],[data-theme=dark] *){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.dark\:text-gray-200\/90:where([data-theme=dark],[data-theme=dark] *){color:#e5e7ebe6}.dark\:text-gray-300:where([data-theme=dark],[data-theme=dark] *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark\:hover\:text-zinc-100:hover:where([data-theme=dark],[data-theme=dark] *){--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity))} diff --git a/_astro/_spec_.CIWccrlH.css b/_astro/_spec_.CIWccrlH.css new file mode 100644 index 0000000..cdd411a --- /dev/null +++ b/_astro/_spec_.CIWccrlH.css @@ -0,0 +1 @@ +.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@font-face{font-family:iconfont;src:url(/fonts/iconfont.woff2?t=1716210197380) format("woff2"),url(/fonts/iconfont.woff?t=1716210197380) format("woff"),url(/fonts/iconfont.ttf?t=1716210197380) format("truetype")}.iconfont{font-family:iconfont;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-alert:before{content:""}.icon-check:before{content:""}.icon-error:before{content:""}.icon-info:before{content:""}.icon-close:before{content:""}.icon-user-heart:before{content:""}.icon-wechat:before{content:""}.icon-codepen:before{content:""}.icon-instagram:before{content:""}.icon-playstation:before{content:""}.icon-qq:before{content:""}.icon-steam:before{content:""}.icon-switch:before{content:""}.icon-telegram:before{content:""}.icon-twitch:before{content:""}.icon-weibo:before{content:""}.icon-xbox:before{content:""}.icon-github:before{content:""}.icon-down:before{content:""}.icon-map:before{content:""}.icon-more:before{content:""}.icon-left:before{content:""}.icon-right:before{content:""}.icon-rss:before{content:""}.icon-ghost:before{content:""}.icon-contacts-book:before{content:""}.icon-x:before{content:""}.icon-pen:before{content:""}.icon-t-box:before{content:""}.icon-hearts:before{content:""}.icon-text:before{content:""}.icon-netease-cloud-music:before{content:""}.icon-pushpin:before{content:""}.icon-arrow-left-up:before{content:""}.icon-computer:before{content:""}.icon-file-list:before{content:""}.icon-link:before{content:""}.icon-flask:before{content:""}.icon-douban:before{content:""}.icon-folder:before{content:""}.icon-hashtag:before{content:""}.icon-archive:before{content:""}.icon-calendar:before{content:""}.icon-mail:before{content:""}.icon-pantone:before{content:""}.icon-quotes-l:before{content:""}.icon-quotes-r:before{content:""}.icon-heart:before{content:""}.icon-bilibili:before{content:""}.icon-zhihu:before{content:""}.icon-rocket:before{content:""}.icon-arrow-left:before{content:""}.icon-arrow-right:before{content:""}.icon-external-link:before{content:""}.icon-loader:before{content:""}.icon-menu:before{content:""}.icon-search:before{content:""}.icon-share:before{content:""}.icon-timer:before{content:""}.icon-moon:before{content:""}.icon-sun:before{content:""}.shiki,.shiki span{color:var(--shiki-light)}[data-theme=dark] .shiki,[data-theme=dark] .shiki span{color:var(--shiki-dark)}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin-bottom:1.25rem}.markdown h1{margin-bottom:2rem;font-size:2.25rem;font-weight:800}.markdown h2{margin-top:3rem;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.markdown h3{margin-top:2rem;margin-bottom:.75rem;font-size:1.25rem;font-weight:600}.markdown h4{margin-top:1.5rem;margin-bottom:.5rem;font-weight:600}.markdown a{font-weight:400;--tw-text-opacity: 1;color:rgb(var(--color-accent) / var(--tw-text-opacity));text-underline-offset:2px}.markdown a:hover{text-decoration-line:underline}.markdown a+.icon-external-link{margin-left:.25rem;color:rgb(var(--color-text-secondary))}.markdown blockquote{margin-top:1.25rem;margin-bottom:1.25rem;border-left-width:2px;border-color:rgb(var(--color-accent) / .8);padding-left:1rem;font-style:italic;color:rgb(var(--color-text-secondary))}.markdown blockquote:before{content:"";font-family:iconfont;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;color:rgb(var(--color-accent) / .8)}.markdown blockquote>p:last-child{margin-bottom:0}.markdown :not(pre)>code{border-radius:.25rem;background-color:rgb(var(--color-bg-secondary));padding:.25rem .5rem;font-size:.875rem;font-weight:600}.markdown .code-block{position:relative;margin-top:2.5rem;margin-bottom:1.25rem;border-radius:.5rem;background-color:rgb(var(--color-bg-secondary))}.markdown .lang-tag{position:absolute;right:1.5rem;top:-1.5rem;display:flex;height:1.5rem;align-items:center;border-top-left-radius:.5rem;border-top-right-radius:.5rem;background-color:inherit;padding-left:1rem;padding-right:1rem;font-size:.875rem}.markdown pre{max-height:450px;overflow:auto;padding:1rem 1.5rem;font-size:.875rem;line-height:1.625}.markdown .table-wrapper{margin-top:1.25rem;margin-bottom:1.25rem;overflow-x:auto}.markdown table{margin-left:auto;margin-right:auto;width:auto;table-layout:auto;text-align:left;font-size:.875rem}.markdown tr{border-bottom-width:1px;border-color:rgb(var(--color-border-primary))}.markdown th,.markdown td{padding:.5rem}.markdown td{vertical-align:baseline}.markdown img{min-height:80px;min-width:80px;border-radius:.5rem;background-color:rgb(var(--color-bg-secondary))}.markdown figure{margin-bottom:1.25rem;display:flex;flex-direction:column;align-items:center}.markdown figcaption{margin-top:.75rem;font-size:.875rem;color:rgb(var(--color-text-secondary))}.markdown .heading-anchor{margin-left:.25rem;opacity:0}.markdown .heading-anchor:hover{text-decoration-line:none}.markdown .heading:hover .heading-anchor,.markdown .heading-anchor:focus-visible{opacity:1}.markdown iframe{width:100%;border-radius:.5rem;background-color:rgb(var(--color-bg-secondary))}.markdown iframe.codepen{min-height:450px}.markdown iframe.video{aspect-ratio:16 / 9}.markdown hr{margin-top:3rem;margin-bottom:3rem;margin-left:auto;margin-right:auto;max-width:100px;border-color:rgb(var(--color-border-primary))}.markdown ul{list-style-type:disc}.markdown ol{list-style-type:decimal}.markdown ol,.markdown ul{margin-top:1.25rem;margin-bottom:1.25rem}.markdown ol>:not([hidden])~:not([hidden]),.markdown ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.markdown ol,.markdown ul{padding-left:1.5rem}.markdown ul ul,.markdown ul ol,.markdown ol ul,.markdown ol ol{margin-top:.75rem;margin-bottom:.75rem}.markdown .spoiler{border-radius:.25rem;background-color:currentColor;font-style:normal;transition-property:background-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.markdown .spoiler:hover{background-color:transparent}.markdown h2+*{margin-top:0}.markdown h3+*{margin-top:0}.markdown h4+*{margin-top:0}.animated-signature path{stroke-dasharray:2400;stroke-dashoffset:2400;fill:transparent;animation:drawSignature 8s linear infinite both;stroke-width:2px;stroke:rgb(var(--color-text-primary))}@keyframes drawSignature{0%{stroke-dashoffset:2400}15%{fill:transparent}35%,75%{stroke-dashoffset:0;fill:rgb(var(--color-text-primary))}90%,to{stroke-dashoffset:2400;fill:transparent}}@font-face{font-family:Atkinson;src:url(/fonts/atkinson-regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson;src:url(/fonts/atkinson-bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}::-moz-selection{background-color:rgb(var(--color-accent) / 1);color:#fff}::selection{background-color:rgb(var(--color-accent) / 1);color:#fff}[data-theme=dark] ::-moz-selection{background-color:rgb(var(--color-accent) / .3)}[data-theme=dark] ::selection{background-color:rgb(var(--color-accent) / .3)}html{color:rgb(var(--color-text-primary));background-color:rgb(var(--color-bg-root));scroll-padding-top:64px}html.gray{filter:grayscale(1)}*{scrollbar-width:thin}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0}}@keyframes astroFadeOut{to{opacity:0}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}} diff --git a/_astro/_spec_.DT191Y-d.css b/_astro/_spec_.DT191Y-d.css new file mode 100644 index 0000000..39d405f --- /dev/null +++ b/_astro/_spec_.DT191Y-d.css @@ -0,0 +1 @@ +@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2) format("woff2"),url(/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff) format("woff"),url(/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2) format("woff2"),url(/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff) format("woff"),url(/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2) format("woff2"),url(/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff) format("woff"),url(/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2) format("woff2"),url(/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff) format("woff"),url(/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2) format("woff2"),url(/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff) format("woff"),url(/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Main-Bold.Cx986IdX.woff2) format("woff2"),url(/_astro/KaTeX_Main-Bold.Jm3AIy58.woff) format("woff"),url(/_astro/KaTeX_Main-Bold.waoOVXN0.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2) format("woff2"),url(/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff) format("woff"),url(/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2) format("woff2"),url(/_astro/KaTeX_Main-Italic.BMLOBm91.woff) format("woff"),url(/_astro/KaTeX_Main-Italic.3WenGoN9.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Main-Regular.B22Nviop.woff2) format("woff2"),url(/_astro/KaTeX_Main-Regular.Dr94JaBh.woff) format("woff"),url(/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2) format("woff2"),url(/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff) format("woff"),url(/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Math-Italic.t53AETM-.woff2) format("woff2"),url(/_astro/KaTeX_Math-Italic.DA0__PXp.woff) format("woff"),url(/_astro/KaTeX_Math-Italic.flOr_0UB.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2) format("woff2"),url(/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff) format("woff"),url(/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2) format("woff2"),url(/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff) format("woff"),url(/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2) format("woff2"),url(/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff) format("woff"),url(/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2) format("woff2"),url(/_astro/KaTeX_Script-Regular.D5yQViql.woff) format("woff"),url(/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2) format("woff2"),url(/_astro/KaTeX_Size1-Regular.C195tn64.woff) format("woff"),url(/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2) format("woff2"),url(/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff) format("woff"),url(/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC) format("woff2"),url(/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff) format("woff"),url(/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2) format("woff2"),url(/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff) format("woff"),url(/_astro/KaTeX_Size4-Regular.DWFBv043.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2) format("woff2"),url(/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff) format("woff"),url(/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.10"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}:root{--waline-font-size: 1rem;--waline-white: #fff;--waline-light-grey: #999;--waline-dark-grey: #666;--waline-theme-color: #27ae60;--waline-active-color: #2ecc71;--waline-color: #444;--waline-bg-color: #fff;--waline-bg-color-light: #f8f8f8;--waline-bg-color-hover: #f0f0f0;--waline-border-color: #ddd;--waline-disable-bg-color: #f8f8f8;--waline-disable-color: #000;--waline-code-bg-color: #282c34;--waline-bq-color: #f0f0f0;--waline-avatar-size: 3.25rem;--waline-m-avatar-size: calc(var(--waline-avatar-size) * 9 / 13);--waline-badge-color: #3498db;--waline-badge-font-size: .75em;--waline-info-bg-color: #f8f8f8;--waline-info-color: #999;--waline-info-font-size: .625em;--waline-border: 1px solid var(--waline-border-color);--waline-avatar-radius: 50%;--waline-box-shadow: none}[data-waline]{font-size:var(--waline-font-size);text-align:start}[dir=rtl] [data-waline]{direction:rtl}[data-waline] *{box-sizing:content-box;line-height:1.75}[data-waline] p{color:var(--waline-color)}[data-waline] a{position:relative;display:inline-block;color:var(--waline-theme-color);text-decoration:none;word-break:break-word;cursor:pointer}[data-waline] a:hover{color:var(--waline-active-color)}[data-waline] img{max-width:100%;max-height:400px;border:none}[data-waline] hr{margin:.825em 0;border-style:dashed;border-color:var(--waline-bg-color-light)}[data-waline] code,[data-waline] pre{margin:0;padding:.2em .4em;border-radius:3px;background:var(--waline-bg-color-light);font-size:85%}[data-waline] pre{overflow:auto;padding:10px;line-height:1.45}[data-waline] pre::-webkit-scrollbar{width:6px;height:6px}[data-waline] pre::-webkit-scrollbar-track-piece:horizontal{border-radius:6px;background:#0000001a}[data-waline] pre::-webkit-scrollbar-thumb:horizontal{width:6px;border-radius:6px;background:var(--waline-theme-color)}[data-waline] pre code{padding:0;background:#0000;color:var(--waline-color);white-space:pre-wrap;word-break:keep-all}[data-waline] blockquote{margin:.5em 0;padding:.5em 0 .5em 1em;border-inline-start:8px solid var(--waline-bq-color);color:var(--waline-dark-grey)}[data-waline] blockquote>p{margin:0}[data-waline] ol,[data-waline] ul{margin-inline-start:1.25em;padding:0}[data-waline] input[type=checkbox],[data-waline] input[type=radio]{display:inline-block;vertical-align:middle;margin-top:-2px}.wl-btn{display:inline-block;vertical-align:middle;min-width:2.5em;margin-bottom:0;padding:.5em 1em;border:1px solid var(--waline-border-color);border-radius:.5em;background:#0000;color:var(--waline-color);font-weight:400;font-size:.75em;line-height:1.5;text-align:center;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition-duration:.4s;touch-action:manipulation}.wl-btn:hover,.wl-btn:active{border-color:var(--waline-theme-color);color:var(--waline-theme-color)}.wl-btn:disabled{border-color:var(--waline-border-color);background:var(--waline-disable-bg-color);color:var(--waline-disable-color);cursor:not-allowed}.wl-btn.primary{border-color:var(--waline-theme-color);background:var(--waline-theme-color);color:var(--waline-white)}.wl-btn.primary:hover,.wl-btn.primary:active{border-color:var(--waline-active-color);background:var(--waline-active-color);color:var(--waline-white)}.wl-btn.primary:disabled{border-color:var(--waline-border-color);background:var(--waline-disable-bg-color);color:var(--waline-disable-color);cursor:not-allowed}.wl-loading{text-align:center}.wl-loading svg{margin:0 auto}.wl-comment{position:relative;display:flex;margin-bottom:.75em}.wl-close{position:absolute;top:-4px;inset-inline-end:-4px;padding:0;border:none;background:#0000;line-height:1;cursor:pointer}.wl-login-info{max-width:80px;margin-top:.75em;text-align:center}.wl-logout-btn{position:absolute;top:-10px;inset-inline-end:-10px;padding:3px;border:none;background:#0000;line-height:0;cursor:pointer}.wl-avatar{position:relative;width:var(--waline-avatar-size);height:var(--waline-avatar-size);margin:0 auto;border:var(--waline-border);border-radius:var(--waline-avatar-radius)}@media (max-width: 720px){.wl-avatar{width:var(--waline-m-avatar-size);height:var(--waline-m-avatar-size)}}.wl-avatar img{width:100%;height:100%;border-radius:var(--waline-avatar-radius)}.wl-login-nick{display:block;color:var(--waline-theme-color);font-size:.75em;word-break:break-all}.wl-panel{position:relative;flex-shrink:1;width:100%;margin:.5em;border:var(--waline-border);border-radius:.75em;background:var(--waline-bg-color);box-shadow:var(--waline-box-shadow)}.wl-header{display:flex;overflow:hidden;padding:0 4px;border-bottom:2px dashed var(--waline-border-color);border-top-left-radius:.75em;border-top-right-radius:.75em}@media (max-width: 580px){.wl-header{display:block}}.wl-header label{min-width:40px;padding:.75em .5em;color:var(--waline-color);font-size:.75em;text-align:center}.wl-header input{flex:1;width:0;padding:.5em;background:#0000;font-size:.625em;resize:none}.wl-header-item{display:flex;flex:1}@media (max-width: 580px){.wl-header-item:not(:last-child){border-bottom:2px dashed var(--waline-border-color)}}.wl-header-1 .wl-header-item{width:100%}.wl-header-2 .wl-header-item{width:50%}@media (max-width: 580px){.wl-header-2 .wl-header-item{flex:0;width:100%}}.wl-header-3 .wl-header-item{width:33.33%}@media (max-width: 580px){.wl-header-3 .wl-header-item{width:100%}}.wl-editor{position:relative;width:calc(100% - 1em);min-height:8.75em;margin:.75em .5em;border-radius:.5em;background:#0000;font-size:.875em;resize:vertical}.wl-editor,.wl-input{max-width:100%;border:none;color:var(--waline-color);outline:none;transition:all .25s ease}.wl-editor:focus,.wl-input:focus{background:var(--waline-bg-color-light)}.wl-preview{padding:0 .5em .5em}.wl-preview h4{margin:.25em;font-weight:700;font-size:.9375em}.wl-preview .wl-content{min-height:1.25em;padding:.25em;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.wl-preview .wl-content>*:first-child{margin-top:0}.wl-preview .wl-content>*:last-child{margin-bottom:0}.wl-footer{position:relative;display:flex;flex-wrap:wrap;margin:.5em .75em}.wl-actions{display:flex;flex:2;align-items:center}.wl-action{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em;margin:2px;padding:0;border:none;background:#0000;color:var(--waline-color);font-size:16px;cursor:pointer}.wl-action:hover{color:var(--waline-theme-color)}.wl-action.active{color:var(--waline-active-color)}#wl-image-upload{display:none}#wl-image-upload:focus+label{color:var(--waline-color)}#wl-image-upload:focus-visible+label{outline:-webkit-focus-ring-color auto 1px}.wl-info{display:flex;flex:3;align-items:center;justify-content:flex-end}.wl-info .wl-text-number{color:var(--waline-info-color);font-size:.75em}.wl-info .wl-text-number .illegal{color:red}.wl-info button{margin-inline-start:.75em}.wl-info button svg{display:block;margin:0 auto;line-height:18px}.wl-emoji-popup{position:absolute;top:100%;inset-inline-start:1.25em;z-index:10;display:none;width:100%;max-width:526px;border:var(--waline-border);border-radius:6px;background:var(--waline-bg-color);box-shadow:var(--waline-box-shadow)}.wl-emoji-popup.display{display:block}.wl-emoji-popup button{display:inline-block;vertical-align:middle;width:2em;margin:.125em;padding:0;border-width:0;background:#0000;font-size:inherit;line-height:2;text-align:center;cursor:pointer}.wl-emoji-popup button:hover{background:var(--waline-bg-color-hover)}.wl-emoji-popup .wl-emoji{display:inline-block;vertical-align:middle;max-width:1.5em;max-height:1.5em}.wl-emoji-popup .wl-tab-wrapper{overflow-y:auto;max-height:145px;padding:.5em}.wl-emoji-popup .wl-tab-wrapper::-webkit-scrollbar{width:6px;height:6px}.wl-emoji-popup .wl-tab-wrapper::-webkit-scrollbar-track-piece:vertical{border-radius:6px;background:#0000001a}.wl-emoji-popup .wl-tab-wrapper::-webkit-scrollbar-thumb:vertical{width:6px;border-radius:6px;background:var(--waline-theme-color)}.wl-emoji-popup .wl-tabs{position:relative;overflow-x:auto;padding:0 6px;white-space:nowrap}.wl-emoji-popup .wl-tabs:before{content:" ";position:absolute;top:0;right:0;left:0;z-index:2;height:1px;background:var(--waline-border-color)}.wl-emoji-popup .wl-tabs::-webkit-scrollbar{width:6px;height:6px}.wl-emoji-popup .wl-tabs::-webkit-scrollbar-track-piece:horizontal{border-radius:6px;background:#0000001a}.wl-emoji-popup .wl-tabs::-webkit-scrollbar-thumb:horizontal{height:6px;border-radius:6px;background:var(--waline-theme-color)}.wl-emoji-popup .wl-tab{position:relative;margin:0;padding:0 .5em}.wl-emoji-popup .wl-tab.active{z-index:3;border:1px solid var(--waline-border-color);border-top-width:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px;background:var(--waline-bg-color)}.wl-gif-popup{position:absolute;top:100%;inset-inline-start:1.25em;z-index:10;width:calc(100% - 3em);padding:.75em .75em .25em;border:var(--waline-border);border-radius:6px;background:var(--waline-bg-color);box-shadow:var(--waline-box-shadow);opacity:0;visibility:hidden;transition:transform .2s ease-out,opacity .2s ease-out;transform:scale(.9);transform-origin:0 0}.wl-gif-popup.display{opacity:1;visibility:visible;transform:none}.wl-gif-popup input{box-sizing:border-box;width:100%;margin-bottom:10px;padding:3px 5px;border:var(--waline-border)}.wl-gif-popup img{display:block;box-sizing:border-box;width:100%;border-width:2px;border-style:solid;border-color:#fff;cursor:pointer}.wl-gif-popup img:hover{border-color:var(--waline-theme-color);border-radius:2px}.wl-gallery{display:flex;overflow-y:auto;max-height:80vh}.wl-gallery-column{display:flex;flex:1;flex-direction:column;height:max-content}.wl-cards .wl-user{--avatar-size: var(--waline-avatar-size);position:relative;margin-inline-end:.75em}@media (max-width: 720px){.wl-cards .wl-user{--avatar-size: var(--waline-m-avatar-size)}}.wl-cards .wl-user .wl-user-avatar{width:var(--avatar-size);height:var(--avatar-size);border-radius:var(--waline-avatar-radius);box-shadow:var(--waline-box-shadow)}.wl-cards .wl-user .verified-icon{position:absolute;top:calc(var(--avatar-size)*3/4);inset-inline-start:calc(var(--avatar-size)*3/4);border-radius:50%;background:var(--waline-bg-color);box-shadow:var(--waline-box-shadow)}.wl-card-item{position:relative;display:flex;padding:.5em}.wl-card-item .wl-card-item{padding-inline-end:0}.wl-card{flex:1;width:0;padding-bottom:.5em;border-bottom:1px dashed var(--waline-border-color)}.wl-card:first-child{margin-inline-start:1em}.wl-card-item:last-child>.wl-card{border-bottom:none}.wl-card .wl-nick svg{position:relative;bottom:-.125em;line-height:1}.wl-card .wl-head{overflow:hidden;line-height:1.5}.wl-card .wl-head .wl-nick{position:relative;display:inline-block;margin-inline-end:.5em;font-weight:700;font-size:.875em;line-height:1;text-decoration:none}.wl-card span.wl-nick{color:var(--waline-dark-grey)}.wl-card .wl-badge{display:inline-block;margin-inline-end:1em;padding:0 .3em;border:1px solid var(--waline-badge-color);border-radius:4px;color:var(--waline-badge-color);font-size:var(--waline-badge-font-size)}.wl-card .wl-time{margin-inline-end:.875em;color:var(--waline-info-color);font-size:.75em}.wl-card .wl-meta{position:relative;line-height:1}.wl-card .wl-meta>span{display:inline-block;margin-inline-end:.25em;padding:2px 4px;border-radius:.2em;background:var(--waline-info-bg-color);color:var(--waline-info-color);font-size:var(--waline-info-font-size);line-height:1.5}.wl-card .wl-meta>span:empty{display:none}.wl-card .wl-comment-actions{float:right;line-height:1}[dir=rtl] .wl-card .wl-comment-actions{float:left}.wl-card .wl-delete,.wl-card .wl-like,.wl-card .wl-reply,.wl-card .wl-edit{display:inline-flex;align-items:center;border:none;background:#0000;color:var(--waline-color);line-height:1;cursor:pointer;transition:color .2s ease}.wl-card .wl-delete:hover,.wl-card .wl-like:hover,.wl-card .wl-reply:hover,.wl-card .wl-edit:hover{color:var(--waline-theme-color)}.wl-card .wl-delete.active,.wl-card .wl-like.active,.wl-card .wl-reply.active,.wl-card .wl-edit.active{color:var(--waline-active-color)}.wl-card .wl-content{position:relative;margin-bottom:.75em;padding-top:.625em;font-size:.875em;line-height:2;word-wrap:break-word}.wl-card .wl-content.expand{overflow:hidden;max-height:8em;cursor:pointer}.wl-card .wl-content.expand:before{content:"";position:absolute;top:0;bottom:3.15em;inset-inline-start:0;z-index:999;display:block;width:100%;background:linear-gradient(180deg,#000,#ffffffe6)}.wl-card .wl-content.expand:after{content:attr(data-expand);position:absolute;bottom:0;inset-inline-start:0;z-index:999;display:block;width:100%;height:3.15em;background:#ffffffe6;color:#828586;line-height:3.15em;text-align:center}.wl-card .wl-content>*:first-child{margin-top:0}.wl-card .wl-content>*:last-child{margin-bottom:0}.wl-card .wl-admin-actions{margin:8px 0;font-size:12px;text-align:right}.wl-card .wl-comment-status{margin:0 8px}.wl-card .wl-comment-status .wl-btn{border-radius:0}.wl-card .wl-comment-status .wl-btn:first-child{border-inline-end:0;border-radius:.5em 0 0 .5em}.wl-card .wl-comment-status .wl-btn:last-child{border-inline-start:0;border-radius:0 .5em .5em 0}.wl-card .wl-quote{border-inline-start:1px dashed rgba(237,237,237,.5)}.wl-card .wl-quote .wl-user{--avatar-size: var(--waline-m-avatar-size)}.wl-close-icon{color:var(--waline-border-color)}.wl-content .vemoji,.wl-content .wl-emoji{display:inline-block;vertical-align:baseline;height:1.25em;margin:-.125em .25em}.wl-content .wl-tex{background:var(--waline-info-bg-color);color:var(--waline-info-color)}.wl-content span.wl-tex{display:inline-block;margin-inline-end:.25em;padding:2px 4px;border-radius:.2em;font-size:var(--waline-info-font-size);line-height:1.5}.wl-content p.wl-tex{text-align:center}.wl-content .katex-display{overflow:auto hidden;-webkit-overflow-scrolling:touch;padding-top:.2em;padding-bottom:.2em}.wl-content .katex-display::-webkit-scrollbar{height:3px}.wl-content .katex-error{color:red}.wl-count{flex:1;font-weight:700;font-size:1.25em}.wl-empty{overflow:auto;padding:1.25em;color:var(--waline-color);text-align:center}.wl-operation{text-align:center}.wl-operation button{margin:1em 0}.wl-power{padding:.5em 0;color:var(--waline-light-grey);font-size:var(--waline-info-font-size);text-align:end}.wl-meta-head{display:flex;flex-direction:row;align-items:center;padding:.375em}.wl-sort{margin:0;list-style-type:none}.wl-sort li{display:inline-block;color:var(--waline-info-color);font-size:.75em;cursor:pointer}.wl-sort li.active{color:var(--waline-theme-color)}.wl-sort li+li{margin-inline-start:1em}.wl-reaction{overflow:auto hidden;margin-bottom:1.75em;text-align:center}.wl-reaction img{width:100%;height:100%;transition:all .25s ease-in-out}.wl-reaction-title{margin:16px auto;font-weight:700;font-size:18px}.wl-reaction-list{display:flex;flex-direction:row;gap:16px;justify-content:center;margin:0;padding:8px;list-style-type:none}@media (max-width: 580px){.wl-reaction-list{gap:12px}}[data-waline] .wl-reaction-list{margin-inline-start:0}.wl-reaction-item{display:flex;flex-direction:column;align-items:center;cursor:pointer}.wl-reaction-item:hover img,.wl-reaction-item.active img{transform:scale(1.15)}.wl-reaction-img{position:relative;width:42px;height:42px}@media (max-width: 580px){.wl-reaction-img{width:32px;height:32px}}.wl-reaction-loading{position:absolute;top:-4px;inset-inline-end:-5px;width:18px;height:18px;color:var(--waline-theme-color)}.wl-reaction-votes{position:absolute;top:-9px;inset-inline-end:-9px;min-width:1em;padding:2px;border:1px solid var(--waline-theme-color);border-radius:1em;background:var(--waline-bg-color);color:var(--waline-theme-color);font-weight:700;font-size:.75em;line-height:1}.wl-reaction-item.active .wl-reaction-votes{background:var(--waline-theme-color);color:var(--waline-bg-color)}.wl-reaction-text{font-size:.875em}.wl-reaction-item.active .wl-reaction-text{color:var(--waline-theme-color)}.wl-content pre,.wl-content pre[class*=language-]{overflow:auto;margin:.75rem 0;padding:1rem 1.25rem;border-radius:6px;background:var(--waline-code-bg-color);line-height:1.4}.wl-content pre code,.wl-content pre[class*=language-] code{padding:0;border-radius:0;background:#0000!important;color:#bbb;direction:ltr}.wl-content code[class*=language-],.wl-content pre[class*=language-]{background:none;color:#ccc;font-size:1em;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;text-align:left;white-space:pre;word-spacing:normal;word-wrap:normal;word-break:normal;tab-size:4;-webkit-hyphens:none;hyphens:none}.wl-content pre[class*=language-]{overflow:auto}.wl-content :not(pre)>code[class*=language-],.wl-content pre[class*=language-]{background:#2d2d2d}.wl-content :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.wl-content .token.comment,.wl-content .token.block-comment,.wl-content .token.prolog,.wl-content .token.doctype,.wl-content .token.cdata{color:#999}.wl-content .token.punctuation{color:#ccc}.wl-content .token.tag,.wl-content .token.attr-name,.wl-content .token.namespace,.wl-content .token.deleted{color:#e2777a}.wl-content .token.function-name{color:#6196cc}.wl-content .token.boolean,.wl-content .token.number,.wl-content .token.function{color:#f08d49}.wl-content .token.property,.wl-content .token.class-name,.wl-content .token.constant,.wl-content .token.symbol{color:#f8c555}.wl-content .token.selector,.wl-content .token.important,.wl-content .token.atrule,.wl-content .token.keyword,.wl-content .token.builtin{color:#cc99cd}.wl-content .token.string,.wl-content .token.char,.wl-content .token.attr-value,.wl-content .token.regex,.wl-content .token.variable{color:#7ec699}.wl-content .token.operator,.wl-content .token.entity,.wl-content .token.url{color:#67cdcc}.wl-content .token.important,.wl-content .token.bold{font-weight:700}.wl-content .token.italic{font-style:italic}.wl-content .token.entity{cursor:help}.wl-content .token.inserted{color:green}.wl-recent-item p{display:inline}.wl-user-list{padding:0;list-style:none}.wl-user-list a,.wl-user-list a:hover,.wl-user-list a:visited{color:var(--waline-color);text-decoration:none}.wl-user-list .wl-user-avatar{position:relative;display:inline-block;overflow:hidden;margin-inline-end:10px;border-radius:4px;line-height:0}.wl-user-list .wl-user-avatar>img{width:var(--waline-user-avatar-size, 48px);height:var(--waline-user-avatar-size, 48px)}.wl-user-list .wl-user-badge{position:absolute;bottom:0;inset-inline-end:0;min-width:.7em;height:1.5em;padding:0 .4em;border-radius:4px;background:var(--waline-info-bg-color);color:var(--waline-info-color);font-weight:700;font-size:10px;line-height:1.5em;text-align:center}.wl-user-list .wl-user-item{margin:10px 0}.wl-user-list .wl-user-item:nth-child(1) .wl-user-badge{background:var(--waline-rank-gold-bg-color, #fa3939);color:var(--waline-white);font-weight:700}.wl-user-list .wl-user-item:nth-child(2) .wl-user-badge{background:var(--waline-rank-silver-bg-color, #fb811c);color:var(--waline-white);font-weight:700}.wl-user-list .wl-user-item:nth-child(3) .wl-user-badge{background:var(--waline-rank-copper-bg-color, #feb207);color:var(--waline-white)}.wl-user-list .wl-user-meta{display:inline-block;vertical-align:top}.wl-user-list .wl-badge{display:inline-block;vertical-align:text-top;margin-inline-start:.5em;padding:0 .3em;border:1px solid var(--waline-badge-color);border-radius:4px;color:var(--waline-badge-color);font-size:var(--waline-badge-font-size)}.wl-user-wall{padding:0;list-style:none}.wl-user-wall .wl-user-badge,.wl-user-wall .wl-user-meta{display:none}.wl-user-wall .wl-user-item{position:relative;display:inline-block;transition:transform ease-in-out .2s}.wl-user-wall .wl-user-item:before,.wl-user-wall .wl-user-item:after{position:absolute;bottom:100%;left:50%;z-index:10;opacity:0;pointer-events:none;transition:all .18s ease-out .18s;transform:translate(-50%,4px);transform-origin:top}.wl-user-wall .wl-user-item:before{content:"";width:0;height:0;border:5px solid rgba(0,0,0,0);border-top-color:#101010f2}.wl-user-wall .wl-user-item:after{content:attr(aria-label);margin-bottom:10px;padding:.5em 1em;border-radius:2px;background:#101010f2;color:#fff;font-size:12px;white-space:nowrap}.wl-user-wall .wl-user-item:hover{transform:scale(1.1)}.wl-user-wall .wl-user-item:hover:before,.wl-user-wall .wl-user-item:hover:after{opacity:1;pointer-events:none;transform:translate(-50%)}.wl-user-wall .wl-user-item img{width:var(--waline-user-avatar-size, 48px);height:var(--waline-user-avatar-size, 48px)} diff --git a/_astro/_spec_.S7CTld6O.css b/_astro/_spec_.S7CTld6O.css new file mode 100644 index 0000000..48359bb --- /dev/null +++ b/_astro/_spec_.S7CTld6O.css @@ -0,0 +1 @@ +:root{--waline-font-size: 1rem;--waline-white: #fff;--waline-light-grey: #999;--waline-dark-grey: #666;--waline-theme-color: #27ae60;--waline-active-color: #2ecc71;--waline-color: #444;--waline-bg-color: #fff;--waline-bg-color-light: #f8f8f8;--waline-bg-color-hover: #f0f0f0;--waline-border-color: #ddd;--waline-disable-bg-color: #f8f8f8;--waline-disable-color: #000;--waline-code-bg-color: #282c34;--waline-bq-color: #f0f0f0;--waline-avatar-size: 3.25rem;--waline-m-avatar-size: calc(var(--waline-avatar-size) * 9 / 13);--waline-badge-color: #3498db;--waline-badge-font-size: .75em;--waline-info-bg-color: #f8f8f8;--waline-info-color: #999;--waline-info-font-size: .625em;--waline-border: 1px solid var(--waline-border-color);--waline-avatar-radius: 50%;--waline-box-shadow: none}[data-waline]{font-size:var(--waline-font-size);text-align:start}[dir=rtl] [data-waline]{direction:rtl}[data-waline] *{box-sizing:content-box;line-height:1.75}[data-waline] p{color:var(--waline-color)}[data-waline] a{position:relative;display:inline-block;color:var(--waline-theme-color);text-decoration:none;word-break:break-word;cursor:pointer}[data-waline] a:hover{color:var(--waline-active-color)}[data-waline] img{max-width:100%;max-height:400px;border:none}[data-waline] hr{margin:.825em 0;border-style:dashed;border-color:var(--waline-bg-color-light)}[data-waline] code,[data-waline] pre{margin:0;padding:.2em .4em;border-radius:3px;background:var(--waline-bg-color-light);font-size:85%}[data-waline] pre{overflow:auto;padding:10px;line-height:1.45}[data-waline] pre::-webkit-scrollbar{width:6px;height:6px}[data-waline] pre::-webkit-scrollbar-track-piece:horizontal{border-radius:6px;background:#0000001a}[data-waline] pre::-webkit-scrollbar-thumb:horizontal{width:6px;border-radius:6px;background:var(--waline-theme-color)}[data-waline] pre code{padding:0;background:#0000;color:var(--waline-color);white-space:pre-wrap;word-break:keep-all}[data-waline] blockquote{margin:.5em 0;padding:.5em 0 .5em 1em;border-inline-start:8px solid var(--waline-bq-color);color:var(--waline-dark-grey)}[data-waline] blockquote>p{margin:0}[data-waline] ol,[data-waline] ul{margin-inline-start:1.25em;padding:0}[data-waline] input[type=checkbox],[data-waline] input[type=radio]{display:inline-block;vertical-align:middle;margin-top:-2px}.wl-btn{display:inline-block;vertical-align:middle;min-width:2.5em;margin-bottom:0;padding:.5em 1em;border:1px solid var(--waline-border-color);border-radius:.5em;background:#0000;color:var(--waline-color);font-weight:400;font-size:.75em;line-height:1.5;text-align:center;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition-duration:.4s;touch-action:manipulation}.wl-btn:hover,.wl-btn:active{border-color:var(--waline-theme-color);color:var(--waline-theme-color)}.wl-btn:disabled{border-color:var(--waline-border-color);background:var(--waline-disable-bg-color);color:var(--waline-disable-color);cursor:not-allowed}.wl-btn.primary{border-color:var(--waline-theme-color);background:var(--waline-theme-color);color:var(--waline-white)}.wl-btn.primary:hover,.wl-btn.primary:active{border-color:var(--waline-active-color);background:var(--waline-active-color);color:var(--waline-white)}.wl-btn.primary:disabled{border-color:var(--waline-border-color);background:var(--waline-disable-bg-color);color:var(--waline-disable-color);cursor:not-allowed}.wl-loading{text-align:center}.wl-loading svg{margin:0 auto}.wl-comment{position:relative;display:flex;margin-bottom:.75em}.wl-close{position:absolute;top:-4px;inset-inline-end:-4px;padding:0;border:none;background:#0000;line-height:1;cursor:pointer}.wl-login-info{max-width:80px;margin-top:.75em;text-align:center}.wl-logout-btn{position:absolute;top:-10px;inset-inline-end:-10px;padding:3px;border:none;background:#0000;line-height:0;cursor:pointer}.wl-avatar{position:relative;width:var(--waline-avatar-size);height:var(--waline-avatar-size);margin:0 auto;border:var(--waline-border);border-radius:var(--waline-avatar-radius)}@media (max-width: 720px){.wl-avatar{width:var(--waline-m-avatar-size);height:var(--waline-m-avatar-size)}}.wl-avatar img{width:100%;height:100%;border-radius:var(--waline-avatar-radius)}.wl-login-nick{display:block;color:var(--waline-theme-color);font-size:.75em;word-break:break-all}.wl-panel{position:relative;flex-shrink:1;width:100%;margin:.5em;border:var(--waline-border);border-radius:.75em;background:var(--waline-bg-color);box-shadow:var(--waline-box-shadow)}.wl-header{display:flex;overflow:hidden;padding:0 4px;border-bottom:2px dashed var(--waline-border-color);border-top-left-radius:.75em;border-top-right-radius:.75em}@media (max-width: 580px){.wl-header{display:block}}.wl-header label{min-width:40px;padding:.75em .5em;color:var(--waline-color);font-size:.75em;text-align:center}.wl-header input{flex:1;width:0;padding:.5em;background:#0000;font-size:.625em;resize:none}.wl-header-item{display:flex;flex:1}@media (max-width: 580px){.wl-header-item:not(:last-child){border-bottom:2px dashed var(--waline-border-color)}}.wl-header-1 .wl-header-item{width:100%}.wl-header-2 .wl-header-item{width:50%}@media (max-width: 580px){.wl-header-2 .wl-header-item{flex:0;width:100%}}.wl-header-3 .wl-header-item{width:33.33%}@media (max-width: 580px){.wl-header-3 .wl-header-item{width:100%}}.wl-editor{position:relative;width:calc(100% - 1em);min-height:8.75em;margin:.75em .5em;border-radius:.5em;background:#0000;font-size:.875em;resize:vertical}.wl-editor,.wl-input{max-width:100%;border:none;color:var(--waline-color);outline:none;transition:all .25s ease}.wl-editor:focus,.wl-input:focus{background:var(--waline-bg-color-light)}.wl-preview{padding:0 .5em .5em}.wl-preview h4{margin:.25em;font-weight:700;font-size:.9375em}.wl-preview .wl-content{min-height:1.25em;padding:.25em;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.wl-preview .wl-content>*:first-child{margin-top:0}.wl-preview .wl-content>*:last-child{margin-bottom:0}.wl-footer{position:relative;display:flex;flex-wrap:wrap;margin:.5em .75em}.wl-actions{display:flex;flex:2;align-items:center}.wl-action{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em;margin:2px;padding:0;border:none;background:#0000;color:var(--waline-color);font-size:16px;cursor:pointer}.wl-action:hover{color:var(--waline-theme-color)}.wl-action.active{color:var(--waline-active-color)}#wl-image-upload{display:none}#wl-image-upload:focus+label{color:var(--waline-color)}#wl-image-upload:focus-visible+label{outline:-webkit-focus-ring-color auto 1px}.wl-info{display:flex;flex:3;align-items:center;justify-content:flex-end}.wl-info .wl-text-number{color:var(--waline-info-color);font-size:.75em}.wl-info .wl-text-number .illegal{color:red}.wl-info button{margin-inline-start:.75em}.wl-info button svg{display:block;margin:0 auto;line-height:18px}.wl-emoji-popup{position:absolute;top:100%;inset-inline-start:1.25em;z-index:10;display:none;width:100%;max-width:526px;border:var(--waline-border);border-radius:6px;background:var(--waline-bg-color);box-shadow:var(--waline-box-shadow)}.wl-emoji-popup.display{display:block}.wl-emoji-popup button{display:inline-block;vertical-align:middle;width:2em;margin:.125em;padding:0;border-width:0;background:#0000;font-size:inherit;line-height:2;text-align:center;cursor:pointer}.wl-emoji-popup button:hover{background:var(--waline-bg-color-hover)}.wl-emoji-popup .wl-emoji{display:inline-block;vertical-align:middle;max-width:1.5em;max-height:1.5em}.wl-emoji-popup .wl-tab-wrapper{overflow-y:auto;max-height:145px;padding:.5em}.wl-emoji-popup .wl-tab-wrapper::-webkit-scrollbar{width:6px;height:6px}.wl-emoji-popup .wl-tab-wrapper::-webkit-scrollbar-track-piece:vertical{border-radius:6px;background:#0000001a}.wl-emoji-popup .wl-tab-wrapper::-webkit-scrollbar-thumb:vertical{width:6px;border-radius:6px;background:var(--waline-theme-color)}.wl-emoji-popup .wl-tabs{position:relative;overflow-x:auto;padding:0 6px;white-space:nowrap}.wl-emoji-popup .wl-tabs:before{content:" ";position:absolute;top:0;right:0;left:0;z-index:2;height:1px;background:var(--waline-border-color)}.wl-emoji-popup .wl-tabs::-webkit-scrollbar{width:6px;height:6px}.wl-emoji-popup .wl-tabs::-webkit-scrollbar-track-piece:horizontal{border-radius:6px;background:#0000001a}.wl-emoji-popup .wl-tabs::-webkit-scrollbar-thumb:horizontal{height:6px;border-radius:6px;background:var(--waline-theme-color)}.wl-emoji-popup .wl-tab{position:relative;margin:0;padding:0 .5em}.wl-emoji-popup .wl-tab.active{z-index:3;border:1px solid var(--waline-border-color);border-top-width:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px;background:var(--waline-bg-color)}.wl-gif-popup{position:absolute;top:100%;inset-inline-start:1.25em;z-index:10;width:calc(100% - 3em);padding:.75em .75em .25em;border:var(--waline-border);border-radius:6px;background:var(--waline-bg-color);box-shadow:var(--waline-box-shadow);opacity:0;visibility:hidden;transition:transform .2s ease-out,opacity .2s ease-out;transform:scale(.9);transform-origin:0 0}.wl-gif-popup.display{opacity:1;visibility:visible;transform:none}.wl-gif-popup input{box-sizing:border-box;width:100%;margin-bottom:10px;padding:3px 5px;border:var(--waline-border)}.wl-gif-popup img{display:block;box-sizing:border-box;width:100%;border-width:2px;border-style:solid;border-color:#fff;cursor:pointer}.wl-gif-popup img:hover{border-color:var(--waline-theme-color);border-radius:2px}.wl-gallery{display:flex;overflow-y:auto;max-height:80vh}.wl-gallery-column{display:flex;flex:1;flex-direction:column;height:max-content}.wl-cards .wl-user{--avatar-size: var(--waline-avatar-size);position:relative;margin-inline-end:.75em}@media (max-width: 720px){.wl-cards .wl-user{--avatar-size: var(--waline-m-avatar-size)}}.wl-cards .wl-user .wl-user-avatar{width:var(--avatar-size);height:var(--avatar-size);border-radius:var(--waline-avatar-radius);box-shadow:var(--waline-box-shadow)}.wl-cards .wl-user .verified-icon{position:absolute;top:calc(var(--avatar-size)*3/4);inset-inline-start:calc(var(--avatar-size)*3/4);border-radius:50%;background:var(--waline-bg-color);box-shadow:var(--waline-box-shadow)}.wl-card-item{position:relative;display:flex;padding:.5em}.wl-card-item .wl-card-item{padding-inline-end:0}.wl-card{flex:1;width:0;padding-bottom:.5em;border-bottom:1px dashed var(--waline-border-color)}.wl-card:first-child{margin-inline-start:1em}.wl-card-item:last-child>.wl-card{border-bottom:none}.wl-card .wl-nick svg{position:relative;bottom:-.125em;line-height:1}.wl-card .wl-head{overflow:hidden;line-height:1.5}.wl-card .wl-head .wl-nick{position:relative;display:inline-block;margin-inline-end:.5em;font-weight:700;font-size:.875em;line-height:1;text-decoration:none}.wl-card span.wl-nick{color:var(--waline-dark-grey)}.wl-card .wl-badge{display:inline-block;margin-inline-end:1em;padding:0 .3em;border:1px solid var(--waline-badge-color);border-radius:4px;color:var(--waline-badge-color);font-size:var(--waline-badge-font-size)}.wl-card .wl-time{margin-inline-end:.875em;color:var(--waline-info-color);font-size:.75em}.wl-card .wl-meta{position:relative;line-height:1}.wl-card .wl-meta>span{display:inline-block;margin-inline-end:.25em;padding:2px 4px;border-radius:.2em;background:var(--waline-info-bg-color);color:var(--waline-info-color);font-size:var(--waline-info-font-size);line-height:1.5}.wl-card .wl-meta>span:empty{display:none}.wl-card .wl-comment-actions{float:right;line-height:1}[dir=rtl] .wl-card .wl-comment-actions{float:left}.wl-card .wl-delete,.wl-card .wl-like,.wl-card .wl-reply,.wl-card .wl-edit{display:inline-flex;align-items:center;border:none;background:#0000;color:var(--waline-color);line-height:1;cursor:pointer;transition:color .2s ease}.wl-card .wl-delete:hover,.wl-card .wl-like:hover,.wl-card .wl-reply:hover,.wl-card .wl-edit:hover{color:var(--waline-theme-color)}.wl-card .wl-delete.active,.wl-card .wl-like.active,.wl-card .wl-reply.active,.wl-card .wl-edit.active{color:var(--waline-active-color)}.wl-card .wl-content{position:relative;margin-bottom:.75em;padding-top:.625em;font-size:.875em;line-height:2;word-wrap:break-word}.wl-card .wl-content.expand{overflow:hidden;max-height:8em;cursor:pointer}.wl-card .wl-content.expand:before{content:"";position:absolute;top:0;bottom:3.15em;inset-inline-start:0;z-index:999;display:block;width:100%;background:linear-gradient(180deg,#000,#ffffffe6)}.wl-card .wl-content.expand:after{content:attr(data-expand);position:absolute;bottom:0;inset-inline-start:0;z-index:999;display:block;width:100%;height:3.15em;background:#ffffffe6;color:#828586;line-height:3.15em;text-align:center}.wl-card .wl-content>*:first-child{margin-top:0}.wl-card .wl-content>*:last-child{margin-bottom:0}.wl-card .wl-admin-actions{margin:8px 0;font-size:12px;text-align:right}.wl-card .wl-comment-status{margin:0 8px}.wl-card .wl-comment-status .wl-btn{border-radius:0}.wl-card .wl-comment-status .wl-btn:first-child{border-inline-end:0;border-radius:.5em 0 0 .5em}.wl-card .wl-comment-status .wl-btn:last-child{border-inline-start:0;border-radius:0 .5em .5em 0}.wl-card .wl-quote{border-inline-start:1px dashed rgba(237,237,237,.5)}.wl-card .wl-quote .wl-user{--avatar-size: var(--waline-m-avatar-size)}.wl-close-icon{color:var(--waline-border-color)}.wl-content .vemoji,.wl-content .wl-emoji{display:inline-block;vertical-align:baseline;height:1.25em;margin:-.125em .25em}.wl-content .wl-tex{background:var(--waline-info-bg-color);color:var(--waline-info-color)}.wl-content span.wl-tex{display:inline-block;margin-inline-end:.25em;padding:2px 4px;border-radius:.2em;font-size:var(--waline-info-font-size);line-height:1.5}.wl-content p.wl-tex{text-align:center}.wl-content .katex-display{overflow:auto hidden;-webkit-overflow-scrolling:touch;padding-top:.2em;padding-bottom:.2em}.wl-content .katex-display::-webkit-scrollbar{height:3px}.wl-content .katex-error{color:red}.wl-count{flex:1;font-weight:700;font-size:1.25em}.wl-empty{overflow:auto;padding:1.25em;color:var(--waline-color);text-align:center}.wl-operation{text-align:center}.wl-operation button{margin:1em 0}.wl-power{padding:.5em 0;color:var(--waline-light-grey);font-size:var(--waline-info-font-size);text-align:end}.wl-meta-head{display:flex;flex-direction:row;align-items:center;padding:.375em}.wl-sort{margin:0;list-style-type:none}.wl-sort li{display:inline-block;color:var(--waline-info-color);font-size:.75em;cursor:pointer}.wl-sort li.active{color:var(--waline-theme-color)}.wl-sort li+li{margin-inline-start:1em}.wl-reaction{overflow:auto hidden;margin-bottom:1.75em;text-align:center}.wl-reaction img{width:100%;height:100%;transition:all .25s ease-in-out}.wl-reaction-title{margin:16px auto;font-weight:700;font-size:18px}.wl-reaction-list{display:flex;flex-direction:row;gap:16px;justify-content:center;margin:0;padding:8px;list-style-type:none}@media (max-width: 580px){.wl-reaction-list{gap:12px}}[data-waline] .wl-reaction-list{margin-inline-start:0}.wl-reaction-item{display:flex;flex-direction:column;align-items:center;cursor:pointer}.wl-reaction-item:hover img,.wl-reaction-item.active img{transform:scale(1.15)}.wl-reaction-img{position:relative;width:42px;height:42px}@media (max-width: 580px){.wl-reaction-img{width:32px;height:32px}}.wl-reaction-loading{position:absolute;top:-4px;inset-inline-end:-5px;width:18px;height:18px;color:var(--waline-theme-color)}.wl-reaction-votes{position:absolute;top:-9px;inset-inline-end:-9px;min-width:1em;padding:2px;border:1px solid var(--waline-theme-color);border-radius:1em;background:var(--waline-bg-color);color:var(--waline-theme-color);font-weight:700;font-size:.75em;line-height:1}.wl-reaction-item.active .wl-reaction-votes{background:var(--waline-theme-color);color:var(--waline-bg-color)}.wl-reaction-text{font-size:.875em}.wl-reaction-item.active .wl-reaction-text{color:var(--waline-theme-color)}.wl-content pre,.wl-content pre[class*=language-]{overflow:auto;margin:.75rem 0;padding:1rem 1.25rem;border-radius:6px;background:var(--waline-code-bg-color);line-height:1.4}.wl-content pre code,.wl-content pre[class*=language-] code{padding:0;border-radius:0;background:#0000!important;color:#bbb;direction:ltr}.wl-content code[class*=language-],.wl-content pre[class*=language-]{background:none;color:#ccc;font-size:1em;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;text-align:left;white-space:pre;word-spacing:normal;word-wrap:normal;word-break:normal;tab-size:4;-webkit-hyphens:none;hyphens:none}.wl-content pre[class*=language-]{overflow:auto}.wl-content :not(pre)>code[class*=language-],.wl-content pre[class*=language-]{background:#2d2d2d}.wl-content :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.wl-content .token.comment,.wl-content .token.block-comment,.wl-content .token.prolog,.wl-content .token.doctype,.wl-content .token.cdata{color:#999}.wl-content .token.punctuation{color:#ccc}.wl-content .token.tag,.wl-content .token.attr-name,.wl-content .token.namespace,.wl-content .token.deleted{color:#e2777a}.wl-content .token.function-name{color:#6196cc}.wl-content .token.boolean,.wl-content .token.number,.wl-content .token.function{color:#f08d49}.wl-content .token.property,.wl-content .token.class-name,.wl-content .token.constant,.wl-content .token.symbol{color:#f8c555}.wl-content .token.selector,.wl-content .token.important,.wl-content .token.atrule,.wl-content .token.keyword,.wl-content .token.builtin{color:#cc99cd}.wl-content .token.string,.wl-content .token.char,.wl-content .token.attr-value,.wl-content .token.regex,.wl-content .token.variable{color:#7ec699}.wl-content .token.operator,.wl-content .token.entity,.wl-content .token.url{color:#67cdcc}.wl-content .token.important,.wl-content .token.bold{font-weight:700}.wl-content .token.italic{font-style:italic}.wl-content .token.entity{cursor:help}.wl-content .token.inserted{color:green}.wl-recent-item p{display:inline}.wl-user-list{padding:0;list-style:none}.wl-user-list a,.wl-user-list a:hover,.wl-user-list a:visited{color:var(--waline-color);text-decoration:none}.wl-user-list .wl-user-avatar{position:relative;display:inline-block;overflow:hidden;margin-inline-end:10px;border-radius:4px;line-height:0}.wl-user-list .wl-user-avatar>img{width:var(--waline-user-avatar-size, 48px);height:var(--waline-user-avatar-size, 48px)}.wl-user-list .wl-user-badge{position:absolute;bottom:0;inset-inline-end:0;min-width:.7em;height:1.5em;padding:0 .4em;border-radius:4px;background:var(--waline-info-bg-color);color:var(--waline-info-color);font-weight:700;font-size:10px;line-height:1.5em;text-align:center}.wl-user-list .wl-user-item{margin:10px 0}.wl-user-list .wl-user-item:nth-child(1) .wl-user-badge{background:var(--waline-rank-gold-bg-color, #fa3939);color:var(--waline-white);font-weight:700}.wl-user-list .wl-user-item:nth-child(2) .wl-user-badge{background:var(--waline-rank-silver-bg-color, #fb811c);color:var(--waline-white);font-weight:700}.wl-user-list .wl-user-item:nth-child(3) .wl-user-badge{background:var(--waline-rank-copper-bg-color, #feb207);color:var(--waline-white)}.wl-user-list .wl-user-meta{display:inline-block;vertical-align:top}.wl-user-list .wl-badge{display:inline-block;vertical-align:text-top;margin-inline-start:.5em;padding:0 .3em;border:1px solid var(--waline-badge-color);border-radius:4px;color:var(--waline-badge-color);font-size:var(--waline-badge-font-size)}.wl-user-wall{padding:0;list-style:none}.wl-user-wall .wl-user-badge,.wl-user-wall .wl-user-meta{display:none}.wl-user-wall .wl-user-item{position:relative;display:inline-block;transition:transform ease-in-out .2s}.wl-user-wall .wl-user-item:before,.wl-user-wall .wl-user-item:after{position:absolute;bottom:100%;left:50%;z-index:10;opacity:0;pointer-events:none;transition:all .18s ease-out .18s;transform:translate(-50%,4px);transform-origin:top}.wl-user-wall .wl-user-item:before{content:"";width:0;height:0;border:5px solid rgba(0,0,0,0);border-top-color:#101010f2}.wl-user-wall .wl-user-item:after{content:attr(aria-label);margin-bottom:10px;padding:.5em 1em;border-radius:2px;background:#101010f2;color:#fff;font-size:12px;white-space:nowrap}.wl-user-wall .wl-user-item:hover{transform:scale(1.1)}.wl-user-wall .wl-user-item:hover:before,.wl-user-wall .wl-user-item:hover:after{opacity:1;pointer-events:none;transform:translate(-50%)}.wl-user-wall .wl-user-item img{width:var(--waline-user-avatar-size, 48px);height:var(--waline-user-avatar-size, 48px)} diff --git a/_astro/client.D6AvsYfe.js b/_astro/client.D6AvsYfe.js new file mode 100644 index 0000000..e254c95 --- /dev/null +++ b/_astro/client.D6AvsYfe.js @@ -0,0 +1 @@ +import{r as o}from"./index.BufDd4G-.js";import{r as T}from"./index.BmB7TLDX.js";import"./_commonjsHelpers.Cpj98o6Y.js";var E,p,l=T;p=l.createRoot,E=l.hydrateRoot;const c=({value:t,name:e,hydrate:r=!0})=>{if(!t)return null;const a=r?"astro-slot":"astro-static-slot";return o.createElement(a,{name:e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:t}})};c.shouldComponentUpdate=()=>!1;function v(t){for(const e in t)if(e.startsWith("__reactContainer"))return e}function y(t){let e={};for(const r of t.attributes)e[r.name]=r.value;return t.firstChild===null?o.createElement(t.localName,e):o.createElement(t.localName,e,Array.from(t.childNodes).map(r=>r.nodeType===Node.TEXT_NODE?r.data:r.nodeType===Node.ELEMENT_NODE?y(r):void 0).filter(r=>!!r))}function M(t,e){if(e&&t){let r=[],a=document.createElement("template");a.innerHTML=t;for(let i of a.content.children)r.push(y(i));return r}else return t?o.createElement(c,{value:t}):void 0}let f=new WeakMap;const m=(t,e)=>{let r=f.get(t);return r||(r=e(),f.set(t,r)),r},b=t=>(e,r,{default:a,...i},{client:h})=>{if(!t.hasAttribute("ssr"))return;const N={identifierPrefix:t.getAttribute("prefix")};for(const[s,n]of Object.entries(i))r[s]=o.createElement(c,{value:n,name:s});const u=o.createElement(e,r,M(a,t.hasAttribute("data-react-children"))),d=v(t);if(d&&delete t[d],h==="only")return o.startTransition(()=>{m(t,()=>{const n=p(t);return t.addEventListener("astro:unmount",()=>n.unmount(),{once:!0}),n}).render(u)});o.startTransition(()=>{m(t,()=>{const n=E(t,u,N);return t.addEventListener("astro:unmount",()=>n.unmount(),{once:!0}),n}).render(u)})};export{b as default}; diff --git a/_astro/clsx.B-dksMZM.js b/_astro/clsx.B-dksMZM.js new file mode 100644 index 0000000..b8badeb --- /dev/null +++ b/_astro/clsx.B-dksMZM.js @@ -0,0 +1 @@ +function a(r){var f,n,t="";if(typeof r=="string"||typeof r=="number")t+=r;else if(typeof r=="object")if(Array.isArray(r)){var o=r.length;for(f=0;fdocument.dispatchEvent(new Event(c));class mt extends Event{from;to;direction;navigationType;sourceElement;info;newDocument;constructor(s,b,m,k,F,G,W,_,Y){super(s,b),this.from=m,this.to=k,this.direction=F,this.navigationType=G,this.sourceElement=W,this.info=_,this.newDocument=Y,Object.defineProperties(this,{from:{enumerable:!0},to:{enumerable:!0,writable:!0},direction:{enumerable:!0,writable:!0},navigationType:{enumerable:!0},sourceElement:{enumerable:!0},info:{enumerable:!0},newDocument:{enumerable:!0,writable:!0}})}}class bf extends mt{formData;loader;constructor(s,b,m,k,F,G,W,_,Y){super(sf,{cancelable:!0},s,b,m,k,F,G,W),this.formData=_,this.loader=Y.bind(this,this),Object.defineProperties(this,{formData:{enumerable:!0},loader:{enumerable:!0,writable:!0}})}}class pf extends mt{direction;viewTransition;swap;constructor(s,b,m){super(hf,void 0,s.from,s.to,s.direction,s.navigationType,s.sourceElement,s.info,s.newDocument),this.direction=s.direction,this.viewTransition=b,this.swap=m.bind(this,this),Object.defineProperties(this,{direction:{enumerable:!0},viewTransition:{enumerable:!0},swap:{enumerable:!0,writable:!0}})}}async function mf(c,s,b,m,k,F,G,W){const _=new bf(c,s,b,m,k,F,window.document,G,W);return document.dispatchEvent(_)&&(await _.loader(),_.defaultPrevented||(gf(vf),_.navigationType!=="traverse"&&Le({scrollX,scrollY}))),_}async function yf(c,s,b){const m=new pf(c,s,b);return document.dispatchEvent(m),m.swap(),m}const wf=history.pushState.bind(history),Wr=history.replaceState.bind(history),Le=c=>{history.state&&(history.scrollRestoration="manual",Wr({...history.state,...c},""))},Ne=!!document.startViewTransition,Ce=()=>!!document.querySelector('[name="astro-view-transitions-enabled"]'),yt=(c,s)=>c.pathname===s.pathname&&c.search===s.search;let Zr,Cr,Vr=!1,wt;const kt=c=>document.dispatchEvent(new Event(c)),$t=()=>kt("astro:page-load"),kf=()=>{let c=document.createElement("div");c.setAttribute("aria-live","assertive"),c.setAttribute("aria-atomic","true"),c.className="astro-route-announcer",document.body.append(c),setTimeout(()=>{let s=document.title||document.querySelector("h1")?.textContent||location.pathname;c.textContent=s},60)},gr="data-astro-transition-persist",_t="data-astro-transition",Et="data-astro-transition-fallback";let vt,Pr=0;history.state?(Pr=history.state.index,scrollTo({left:history.state.scrollX,top:history.state.scrollY})):Ce()&&(Wr({index:Pr,scrollX,scrollY},""),history.scrollRestoration="manual");async function $f(c,s){try{const b=await fetch(c,s),k=(b.headers.get("content-type")??"").split(";",1)[0].trim();return k!=="text/html"&&k!=="application/xhtml+xml"?null:{html:await b.text(),redirected:b.redirected?b.url:void 0,mediaType:k}}catch{return null}}function Tt(){const c=document.querySelector('[name="astro-view-transitions-fallback"]');return c?c.getAttribute("content"):"animate"}function _f(){let c=Promise.resolve();for(const s of Array.from(document.scripts)){if(s.dataset.astroExec==="")continue;const b=s.getAttribute("type");if(b&&b!=="module"&&b!=="text/javascript")continue;const m=document.createElement("script");m.innerHTML=s.innerHTML;for(const k of s.attributes){if(k.name==="src"){const F=new Promise(G=>{m.onload=m.onerror=G});c=c.then(()=>F)}m.setAttribute(k.name,k.value)}m.dataset.astroExec="",s.replaceWith(m)}return c}const xt=(c,s,b,m,k)=>{const F=yt(s,c),G=document.title;document.title=m;let W=!1;if(c.href!==location.href&&!k)if(b.history==="replace"){const _=history.state;Wr({...b.state,index:_.index,scrollX:_.scrollX,scrollY:_.scrollY},"",c.href)}else wf({...b.state,index:++Pr,scrollX:0,scrollY:0},"",c.href);if(document.title=G,Zr=c,F||(scrollTo({left:0,top:0,behavior:"instant"}),W=!0),k)scrollTo(k.scrollX,k.scrollY);else{if(c.hash){history.scrollRestoration="auto";const _=history.state;location.href=c.href,history.state||(Wr(_,""),F&&window.dispatchEvent(new PopStateEvent("popstate")))}else W||scrollTo({left:0,top:0,behavior:"instant"});history.scrollRestoration="manual"}};function Ef(c){const s=[];for(const b of c.querySelectorAll("head link[rel=stylesheet]"))if(!document.querySelector(`[${gr}="${b.getAttribute(gr)}"], link[rel=stylesheet][href="${b.getAttribute("href")}"]`)){const m=document.createElement("link");m.setAttribute("rel","preload"),m.setAttribute("as","style"),m.setAttribute("href",b.getAttribute("href")),s.push(new Promise(k=>{["load","error"].forEach(F=>m.addEventListener(F,k)),document.head.append(m)}))}return s}async function ht(c,s,b,m){const k=(R,H)=>{const Q=R.getAttribute(gr),g=Q&&H.head.querySelector(`[${gr}="${Q}"]`);if(g)return g;if(R.matches("link[rel=stylesheet]")){const q=R.getAttribute("href");return H.head.querySelector(`link[rel=stylesheet][href="${q}"]`)}return null},F=()=>{const R=document.activeElement;if(R?.closest(`[${gr}]`)){if(R instanceof HTMLInputElement||R instanceof HTMLTextAreaElement){const H=R.selectionStart,Q=R.selectionEnd;return{activeElement:R,start:H,end:Q}}return{activeElement:R}}else return{activeElement:null}},G=({activeElement:R,start:H,end:Q})=>{R&&(R.focus(),(R instanceof HTMLInputElement||R instanceof HTMLTextAreaElement)&&(R.selectionStart=H,R.selectionEnd=Q))},W=R=>{const H=R.dataset.astroTransitionPersistProps;return H==null||H==="false"},_=R=>{const H=document.documentElement,Q=[...H.attributes].filter(({name:O})=>(H.removeAttribute(O),O.startsWith("data-astro-")));[...R.newDocument.documentElement.attributes,...Q].forEach(({name:O,value:B})=>H.setAttribute(O,B));for(const O of document.scripts)for(const B of R.newDocument.scripts)if(!B.hasAttribute("data-astro-rerun")&&(!O.src&&O.textContent===B.textContent||O.src&&O.type===B.type&&O.src===B.src)){B.dataset.astroExec="";break}for(const O of Array.from(document.head.children)){const B=k(O,R.newDocument);B?B.remove():O.remove()}document.head.append(...R.newDocument.head.children);const g=document.body,q=F();document.body.replaceWith(R.newDocument.body);for(const O of g.querySelectorAll(`[${gr}]`)){const B=O.getAttribute(gr),ur=document.querySelector(`[${gr}="${B}"]`);ur&&(ur.replaceWith(O),ur.localName==="astro-island"&&W(O)&&(O.setAttribute("ssr",""),O.setAttribute("props",ur.getAttribute("props"))))}G(q)};async function Y(R){function H(O){const B=O.effect;return!B||!(B instanceof KeyframeEffect)||!B.target?!1:window.getComputedStyle(B.target,B.pseudoElement).animationIterationCount==="infinite"}const Q=document.getAnimations();document.documentElement.setAttribute(Et,R);const q=document.getAnimations().filter(O=>!Q.includes(O)&&!H(O));return Promise.all(q.map(O=>O.finished))}if(!Vr)document.documentElement.setAttribute(_t,c.direction),m==="animate"&&await Y("old");else throw new DOMException("Transition was skipped");const br=document.title,lr=await yf(c,Cr,_);xt(lr.to,lr.from,s,br,b),kt(df),m==="animate"&&!Vr&&Y("new").then(()=>wt())}async function At(c,s,b,m,k){if(!Ce()||location.origin!==b.origin){location.href=b.href;return}const F=k?"traverse":m.history==="replace"?"replace":"push";if(F!=="traverse"&&Le({scrollX,scrollY}),yt(s,b)&&(c!=="back"&&b.hash||c==="back"&&s.hash)){xt(b,s,m,document.title,k);return}const G=await mf(s,b,c,F,m.sourceElement,m.info,m.formData,W);if(G.defaultPrevented){location.href=b.href;return}async function W(_){const Y=_.to.href,br={};if(_.formData){br.method="POST";const H=_.sourceElement instanceof HTMLFormElement?_.sourceElement:_.sourceElement instanceof HTMLElement&&"form"in _.sourceElement?_.sourceElement.form:_.sourceElement?.closest("form");br.body=H?.attributes.getNamedItem("enctype")?.value==="application/x-www-form-urlencoded"?new URLSearchParams(_.formData):_.formData}const lr=await $f(Y,br);if(lr===null){_.preventDefault();return}if(lr.redirected&&(_.to=new URL(lr.redirected)),vt??=new DOMParser,_.newDocument=vt.parseFromString(lr.html,lr.mediaType),_.newDocument.querySelectorAll("noscript").forEach(H=>H.remove()),!_.newDocument.querySelector('[name="astro-view-transitions-enabled"]')&&!_.formData){_.preventDefault();return}const R=Ef(_.newDocument);R.length&&await Promise.all(R)}if(Vr=!1,Ne)Cr=document.startViewTransition(async()=>await ht(G,m,k));else{const _=(async()=>{await new Promise(Y=>setTimeout(Y)),await ht(G,m,k,Tt())})();Cr={updateCallbackDone:_,ready:_,finished:new Promise(Y=>wt=Y),skipTransition:()=>{Vr=!0}}}Cr.ready.then(async()=>{await _f(),$t(),kf()}),Cr.finished.then(()=>{document.documentElement.removeAttribute(_t),document.documentElement.removeAttribute(Et)}),await Cr.ready}async function dt(c,s){await At("forward",Zr,new URL(c,location.href),s??{})}function Tf(c){if(!Ce()&&c.state){location.reload();return}if(c.state===null)return;const s=history.state,b=s.index,m=b>Pr?"forward":"back";Pr=b,At(m,Zr,new URL(location.href),{},s)}const gt=()=>{history.state&&(scrollX!==history.state.scrollX||scrollY!==history.state.scrollY)&&Le({scrollX,scrollY})};{if(Ne||Tt()!=="none")if(Zr=new URL(location.href),addEventListener("popstate",Tf),addEventListener("load",$t),"onscrollend"in window)addEventListener("scrollend",gt);else{let c,s,b,m;const k=()=>{if(m!==history.state?.index){clearInterval(c),c=void 0;return}if(s===scrollY&&b===scrollX){clearInterval(c),c=void 0,gt();return}else s=scrollY,b=scrollX};addEventListener("scroll",()=>{c===void 0&&(m=history.state.index,s=scrollY,b=scrollX,c=window.setInterval(k,50))},{passive:!0})}for(const c of document.scripts)c.dataset.astroExec=""}const Mt=new Set,jr=new WeakSet;let Me,Lt,bt=!1;function xf(c){bt||(bt=!0,Me??=c?.prefetchAll??!1,Lt??=c?.defaultStrategy??"hover",Af(),Mf(),Lf(),Cf())}function Af(){for(const c of["touchstart","mousedown"])document.body.addEventListener(c,s=>{Dr(s.target,"tap")&&Jr(s.target.href,{with:"fetch",ignoreSlowConnection:!0})},{passive:!0})}function Mf(){let c;document.body.addEventListener("focusin",m=>{Dr(m.target,"hover")&&s(m)},{passive:!0}),document.body.addEventListener("focusout",b,{passive:!0}),Re(()=>{for(const m of document.getElementsByTagName("a"))jr.has(m)||Dr(m,"hover")&&(jr.add(m),m.addEventListener("mouseenter",s,{passive:!0}),m.addEventListener("mouseleave",b,{passive:!0}))});function s(m){const k=m.target.href;c&&clearTimeout(c),c=setTimeout(()=>{Jr(k,{with:"fetch"})},80)}function b(){c&&(clearTimeout(c),c=0)}}function Lf(){let c;Re(()=>{for(const s of document.getElementsByTagName("a"))jr.has(s)||Dr(s,"viewport")&&(jr.add(s),c??=Nf(),c.observe(s))})}function Nf(){const c=new WeakMap;return new IntersectionObserver((s,b)=>{for(const m of s){const k=m.target,F=c.get(k);m.isIntersecting?(F&&clearTimeout(F),c.set(k,setTimeout(()=>{b.unobserve(k),c.delete(k),Jr(k.href,{with:"link"})},300))):F&&(clearTimeout(F),c.delete(k))}})}function Cf(){Re(()=>{for(const c of document.getElementsByTagName("a"))Dr(c,"load")&&Jr(c.href,{with:"link"})})}function Jr(c,s){const b=s?.ignoreSlowConnection??!1;if(!Rf(c,b))return;if(Mt.add(c),(s?.with??"link")==="link"){const k=document.createElement("link");k.rel="prefetch",k.setAttribute("href",c),document.head.append(k)}else fetch(c).catch(k=>{console.log(`[astro] Failed to prefetch ${c}`),console.error(k)})}function Rf(c,s){if(!navigator.onLine||!s&&Nt())return!1;try{const b=new URL(c,location.href);return location.origin===b.origin&&(location.pathname!==b.pathname||location.search!==b.search)&&!Mt.has(c)}catch{}return!1}function Dr(c,s){if(c?.tagName!=="A")return!1;const b=c.dataset.astroPrefetch;return b==="false"?!1:s==="tap"&&(b!=null||Me)&&Nt()?!0:b==null&&Me||b===""?s===Lt:b===s}function Nt(){if("connection"in navigator){const c=navigator.connection;return c.saveData||/2g/.test(c.effectiveType)}return!1}function Re(c){c();let s=!1;document.addEventListener("astro:page-load",()=>{if(!s){s=!0;return}c()})}function Ff(){const c=document.querySelector('[name="astro-view-transitions-fallback"]');return c?c.getAttribute("content"):"animate"}function pt(c){return c.dataset.astroReload!==void 0}(Ne||Ff()!=="none")&&(document.addEventListener("click",c=>{let s=c.target;if(c.composed&&(s=c.composedPath()[0]),s instanceof Element&&(s=s.closest("a, area")),!(s instanceof HTMLAnchorElement)&&!(s instanceof SVGAElement)&&!(s instanceof HTMLAreaElement))return;const b=s instanceof HTMLElement?s.target:s.target.baseVal,m=s instanceof HTMLElement?s.href:s.href.baseVal,k=new URL(m,location.href).origin;pt(s)||s.hasAttribute("download")||!s.href||b&&b!=="_self"||k!==location.origin||c.button!==0||c.metaKey||c.ctrlKey||c.altKey||c.shiftKey||c.defaultPrevented||(c.preventDefault(),dt(m,{history:s.dataset.astroHistory==="replace"?"replace":"auto",sourceElement:s}))}),document.addEventListener("submit",c=>{let s=c.target;if(s.tagName!=="FORM"||c.defaultPrevented||pt(s))return;const b=s,m=c.submitter,k=new FormData(b,m);let F=m?.getAttribute("formaction")??b.action??location.pathname;const G=m?.getAttribute("formmethod")??b.method;if(G==="dialog"||location.origin!==new URL(F,location.href).origin)return;const W={sourceElement:m??b};if(G==="get"){const _=new URLSearchParams(k),Y=new URL(F);Y.search=_.toString(),F=Y.toString()}else W.formData=k;c.preventDefault(),dt(F,W)}),xf({prefetchAll:!0}));var Ct={exports:{}};/** + * chroma.js - JavaScript library for color conversions + * + * Copyright (c) 2011-2019, Gregor Aisch + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name Gregor Aisch may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL GREGOR AISCH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ------------------------------------------------------- + * + * chroma.js includes colors from colorbrewer2.org, which are released under + * the following license: + * + * Copyright (c) 2002 Cynthia Brewer, Mark Harrower, + * and The Pennsylvania State University. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the License. + * + * ------------------------------------------------------ + * + * Named colors are taken from X11 Color Names. + * http://www.w3.org/TR/css3-color/#svg-color + * + * @preserve + */(function(c,s){(function(b,m){c.exports=m()})(lf,function(){for(var b=function(r,e,a){return e===void 0&&(e=0),a===void 0&&(a=1),ra?a:r},m=b,k=function(r){r._clipped=!1,r._unclipped=r.slice(0);for(var e=0;e<=3;e++)e<3?((r[e]<0||r[e]>255)&&(r._clipped=!0),r[e]=m(r[e],0,255)):e===3&&(r[e]=m(r[e],0,1));return r},F={},G=0,W=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];G=3?Array.prototype.slice.call(r):br(r[0])=="object"&&e?e.split("").filter(function(a){return r[0][a]!==void 0}).map(function(a){return r[0][a]}):r[0]},R=Y,H=function(r){if(r.length<2)return null;var e=r.length-1;return R(r[e])=="string"?r[e].toLowerCase():null},Q=Math.PI,g={clip_rgb:k,limit:b,type:Y,unpack:lr,last:H,PI:Q,TWOPI:Q*2,PITHIRD:Q/3,DEG2RAD:Q/180,RAD2DEG:180/Q},q={format:{},autodetect:[]},O=g.last,B=g.clip_rgb,ur=g.type,pr=q,Fe=function(){for(var e=[],a=arguments.length;a--;)e[a]=arguments[a];var t=this;if(ur(e[0])==="object"&&e[0].constructor&&e[0].constructor===this.constructor)return e[0];var o=O(e),i=!1;if(!o){i=!0,pr.sorted||(pr.autodetect=pr.autodetect.sort(function(v,p){return p.p-v.p}),pr.sorted=!0);for(var n=0,l=pr.autodetect;n4?r[4]:1;return i===1?[0,0,0,n]:[a>=1?0:255*(1-a)*(1-i),t>=1?0:255*(1-t)*(1-i),o>=1?0:255*(1-o)*(1-i),n]},zt=Ot,qt=X,Pe=E,De=q,Gt=g.unpack,Ht=g.type,Yt=Dt;Pe.prototype.cmyk=function(){return Yt(this._rgb)},qt.cmyk=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Pe,[null].concat(r,["cmyk"])))},De.format.cmyk=zt,De.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Gt(r,"cmyk"),Ht(r)==="array"&&r.length===4)return"cmyk"}});var Bt=g.unpack,Xt=g.last,Qr=function(r){return Math.round(r*100)/100},Ut=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=Bt(r,"hsla"),t=Xt(r)||"lsa";return a[0]=Qr(a[0]||0),a[1]=Qr(a[1]*100)+"%",a[2]=Qr(a[2]*100)+"%",t==="hsla"||a.length>3&&a[3]<1?(a[3]=a.length>3?a[3]:1,t="hsla"):a.length=3,t+"("+a.join(",")+")"},Wt=Ut,Vt=g.unpack,jt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];r=Vt(r,"rgba");var a=r[0],t=r[1],o=r[2];a/=255,t/=255,o/=255;var i=Math.min(a,t,o),n=Math.max(a,t,o),l=(n+i)/2,f,u;return n===i?(f=0,u=Number.NaN):f=l<.5?(n-i)/(n+i):(n-i)/(2-n-i),a==n?u=(t-o)/(n-i):t==n?u=2+(o-a)/(n-i):o==n&&(u=4+(a-t)/(n-i)),u*=60,u<0&&(u+=360),r.length>3&&r[3]!==void 0?[u,f,l,r[3]]:[u,f,l]},Ie=jt,Zt=g.unpack,Jt=g.last,Qt=Wt,Kt=Ie,Kr=Math.round,rn=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=Zt(r,"rgba"),t=Jt(r)||"rgb";return t.substr(0,3)=="hsl"?Qt(Kt(a),t):(a[0]=Kr(a[0]),a[1]=Kr(a[1]),a[2]=Kr(a[2]),(t==="rgba"||a.length>3&&a[3]<1)&&(a[3]=a.length>3?a[3]:1,t="rgba"),t+"("+a.slice(0,t==="rgb"?3:4).join(",")+")")},en=rn,an=g.unpack,re=Math.round,tn=function(){for(var r,e=[],a=arguments.length;a--;)e[a]=arguments[a];e=an(e,"hsl");var t=e[0],o=e[1],i=e[2],n,l,f;if(o===0)n=l=f=i*255;else{var u=[0,0,0],v=[0,0,0],p=i<.5?i*(1+o):i+o-i*o,h=2*i-p,w=t/360;u[0]=w+1/3,u[1]=w,u[2]=w-1/3;for(var y=0;y<3;y++)u[y]<0&&(u[y]+=1),u[y]>1&&(u[y]-=1),6*u[y]<1?v[y]=h+(p-h)*6*u[y]:2*u[y]<1?v[y]=p:3*u[y]<2?v[y]=h+(p-h)*(2/3-u[y])*6:v[y]=h;r=[re(v[0]*255),re(v[1]*255),re(v[2]*255)],n=r[0],l=r[1],f=r[2]}return e.length>3?[n,l,f,e[3]]:[n,l,f,1]},Oe=tn,ze=Oe,qe=q,Ge=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,He=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,Ye=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,Be=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,Xe=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,Ue=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,We=Math.round,Ve=function(r){r=r.toLowerCase().trim();var e;if(qe.format.named)try{return qe.format.named(r)}catch{}if(e=r.match(Ge)){for(var a=e.slice(1,4),t=0;t<3;t++)a[t]=+a[t];return a[3]=1,a}if(e=r.match(He)){for(var o=e.slice(1,5),i=0;i<4;i++)o[i]=+o[i];return o}if(e=r.match(Ye)){for(var n=e.slice(1,4),l=0;l<3;l++)n[l]=We(n[l]*2.55);return n[3]=1,n}if(e=r.match(Be)){for(var f=e.slice(1,5),u=0;u<3;u++)f[u]=We(f[u]*2.55);return f[3]=+f[3],f}if(e=r.match(Xe)){var v=e.slice(1,4);v[1]*=.01,v[2]*=.01;var p=ze(v);return p[3]=1,p}if(e=r.match(Ue)){var h=e.slice(1,4);h[1]*=.01,h[2]*=.01;var w=ze(h);return w[3]=+e[4],w}};Ve.test=function(r){return Ge.test(r)||He.test(r)||Ye.test(r)||Be.test(r)||Xe.test(r)||Ue.test(r)};var nn=Ve,on=X,je=E,Ze=q,ln=g.type,fn=en,Je=nn;je.prototype.css=function(r){return fn(this._rgb,r)},on.css=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(je,[null].concat(r,["css"])))},Ze.format.css=Je,Ze.autodetect.push({p:5,test:function(r){for(var e=[],a=arguments.length-1;a-- >0;)e[a]=arguments[a+1];if(!e.length&&ln(r)==="string"&&Je.test(r))return"css"}});var Qe=E,cn=X,un=q,sn=g.unpack;un.format.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=sn(r,"rgba");return a[0]*=255,a[1]*=255,a[2]*=255,a},cn.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Qe,[null].concat(r,["gl"])))},Qe.prototype.gl=function(){var r=this._rgb;return[r[0]/255,r[1]/255,r[2]/255,r[3]]};var vn=g.unpack,hn=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=vn(r,"rgb"),t=a[0],o=a[1],i=a[2],n=Math.min(t,o,i),l=Math.max(t,o,i),f=l-n,u=f*100/255,v=n/(255-f)*100,p;return f===0?p=Number.NaN:(t===l&&(p=(o-i)/f),o===l&&(p=2+(i-t)/f),i===l&&(p=4+(t-o)/f),p*=60,p<0&&(p+=360)),[p,u,v]},dn=hn,gn=g.unpack,bn=Math.floor,pn=function(){for(var r,e,a,t,o,i,n=[],l=arguments.length;l--;)n[l]=arguments[l];n=gn(n,"hcg");var f=n[0],u=n[1],v=n[2],p,h,w;v=v*255;var y=u*255;if(u===0)p=h=w=v;else{f===360&&(f=0),f>360&&(f-=360),f<0&&(f+=360),f/=60;var T=bn(f),M=f-T,N=v*(1-u),S=N+y*(1-M),Z=N+y*M,j=N+y;switch(T){case 0:r=[j,Z,N],p=r[0],h=r[1],w=r[2];break;case 1:e=[S,j,N],p=e[0],h=e[1],w=e[2];break;case 2:a=[N,j,Z],p=a[0],h=a[1],w=a[2];break;case 3:t=[N,S,j],p=t[0],h=t[1],w=t[2];break;case 4:o=[Z,N,j],p=o[0],h=o[1],w=o[2];break;case 5:i=[j,N,S],p=i[0],h=i[1],w=i[2];break}}return[p,h,w,n.length>3?n[3]:1]},mn=pn,yn=g.unpack,wn=g.type,kn=X,Ke=E,ra=q,$n=dn;Ke.prototype.hcg=function(){return $n(this._rgb)},kn.hcg=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Ke,[null].concat(r,["hcg"])))},ra.format.hcg=mn,ra.autodetect.push({p:1,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=yn(r,"hcg"),wn(r)==="array"&&r.length===3)return"hcg"}});var _n=g.unpack,En=g.last,Or=Math.round,Tn=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=_n(r,"rgba"),t=a[0],o=a[1],i=a[2],n=a[3],l=En(r)||"auto";n===void 0&&(n=1),l==="auto"&&(l=n<1?"rgba":"rgb"),t=Or(t),o=Or(o),i=Or(i);var f=t<<16|o<<8|i,u="000000"+f.toString(16);u=u.substr(u.length-6);var v="0"+Or(n*255).toString(16);switch(v=v.substr(v.length-2),l.toLowerCase()){case"rgba":return"#"+u+v;case"argb":return"#"+v+u;default:return"#"+u}},ea=Tn,xn=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,An=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,Mn=function(r){if(r.match(xn)){(r.length===4||r.length===7)&&(r=r.substr(1)),r.length===3&&(r=r.split(""),r=r[0]+r[0]+r[1]+r[1]+r[2]+r[2]);var e=parseInt(r,16),a=e>>16,t=e>>8&255,o=e&255;return[a,t,o,1]}if(r.match(An)){(r.length===5||r.length===9)&&(r=r.substr(1)),r.length===4&&(r=r.split(""),r=r[0]+r[0]+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]);var i=parseInt(r,16),n=i>>24&255,l=i>>16&255,f=i>>8&255,u=Math.round((i&255)/255*100)/100;return[n,l,f,u]}throw new Error("unknown hex color: "+r)},aa=Mn,Ln=X,ta=E,Nn=g.type,na=q,Cn=ea;ta.prototype.hex=function(r){return Cn(this._rgb,r)},Ln.hex=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(ta,[null].concat(r,["hex"])))},na.format.hex=aa,na.autodetect.push({p:4,test:function(r){for(var e=[],a=arguments.length-1;a-- >0;)e[a]=arguments[a+1];if(!e.length&&Nn(r)==="string"&&[3,4,5,6,7,8,9].indexOf(r.length)>=0)return"hex"}});var Rn=g.unpack,oa=g.TWOPI,Fn=Math.min,Sn=Math.sqrt,Pn=Math.acos,Dn=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=Rn(r,"rgb"),t=a[0],o=a[1],i=a[2];t/=255,o/=255,i/=255;var n,l=Fn(t,o,i),f=(t+o+i)/3,u=f>0?1-l/f:0;return u===0?n=NaN:(n=(t-o+(t-i))/2,n/=Sn((t-o)*(t-o)+(t-i)*(o-i)),n=Pn(n),i>o&&(n=oa-n),n/=oa),[n*360,u,f]},In=Dn,On=g.unpack,ee=g.limit,kr=g.TWOPI,ae=g.PITHIRD,$r=Math.cos,zn=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];r=On(r,"hsi");var a=r[0],t=r[1],o=r[2],i,n,l;return isNaN(a)&&(a=0),isNaN(t)&&(t=0),a>360&&(a-=360),a<0&&(a+=360),a/=360,a<1/3?(l=(1-t)/3,i=(1+t*$r(kr*a)/$r(ae-kr*a))/3,n=1-(l+i)):a<2/3?(a-=1/3,i=(1-t)/3,n=(1+t*$r(kr*a)/$r(ae-kr*a))/3,l=1-(i+n)):(a-=2/3,n=(1-t)/3,l=(1+t*$r(kr*a)/$r(ae-kr*a))/3,i=1-(n+l)),i=ee(o*i*3),n=ee(o*n*3),l=ee(o*l*3),[i*255,n*255,l*255,r.length>3?r[3]:1]},qn=zn,Gn=g.unpack,Hn=g.type,Yn=X,ia=E,la=q,Bn=In;ia.prototype.hsi=function(){return Bn(this._rgb)},Yn.hsi=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(ia,[null].concat(r,["hsi"])))},la.format.hsi=qn,la.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Gn(r,"hsi"),Hn(r)==="array"&&r.length===3)return"hsi"}});var Xn=g.unpack,Un=g.type,Wn=X,fa=E,ca=q,Vn=Ie;fa.prototype.hsl=function(){return Vn(this._rgb)},Wn.hsl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(fa,[null].concat(r,["hsl"])))},ca.format.hsl=Oe,ca.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Xn(r,"hsl"),Un(r)==="array"&&r.length===3)return"hsl"}});var jn=g.unpack,Zn=Math.min,Jn=Math.max,Qn=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];r=jn(r,"rgb");var a=r[0],t=r[1],o=r[2],i=Zn(a,t,o),n=Jn(a,t,o),l=n-i,f,u,v;return v=n/255,n===0?(f=Number.NaN,u=0):(u=l/n,a===n&&(f=(t-o)/l),t===n&&(f=2+(o-a)/l),o===n&&(f=4+(a-t)/l),f*=60,f<0&&(f+=360)),[f,u,v]},Kn=Qn,ro=g.unpack,eo=Math.floor,ao=function(){for(var r,e,a,t,o,i,n=[],l=arguments.length;l--;)n[l]=arguments[l];n=ro(n,"hsv");var f=n[0],u=n[1],v=n[2],p,h,w;if(v*=255,u===0)p=h=w=v;else{f===360&&(f=0),f>360&&(f-=360),f<0&&(f+=360),f/=60;var y=eo(f),T=f-y,M=v*(1-u),N=v*(1-u*T),S=v*(1-u*(1-T));switch(y){case 0:r=[v,S,M],p=r[0],h=r[1],w=r[2];break;case 1:e=[N,v,M],p=e[0],h=e[1],w=e[2];break;case 2:a=[M,v,S],p=a[0],h=a[1],w=a[2];break;case 3:t=[M,N,v],p=t[0],h=t[1],w=t[2];break;case 4:o=[S,M,v],p=o[0],h=o[1],w=o[2];break;case 5:i=[v,M,N],p=i[0],h=i[1],w=i[2];break}}return[p,h,w,n.length>3?n[3]:1]},to=ao,no=g.unpack,oo=g.type,io=X,ua=E,sa=q,lo=Kn;ua.prototype.hsv=function(){return lo(this._rgb)},io.hsv=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(ua,[null].concat(r,["hsv"])))},sa.format.hsv=to,sa.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=no(r,"hsv"),oo(r)==="array"&&r.length===3)return"hsv"}});var zr={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},_r=zr,fo=g.unpack,va=Math.pow,co=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=fo(r,"rgb"),t=a[0],o=a[1],i=a[2],n=uo(t,o,i),l=n[0],f=n[1],u=n[2],v=116*f-16;return[v<0?0:v,500*(l-f),200*(f-u)]},te=function(r){return(r/=255)<=.04045?r/12.92:va((r+.055)/1.055,2.4)},ne=function(r){return r>_r.t3?va(r,1/3):r/_r.t2+_r.t0},uo=function(r,e,a){r=te(r),e=te(e),a=te(a);var t=ne((.4124564*r+.3575761*e+.1804375*a)/_r.Xn),o=ne((.2126729*r+.7151522*e+.072175*a)/_r.Yn),i=ne((.0193339*r+.119192*e+.9503041*a)/_r.Zn);return[t,o,i]},ha=co,Er=zr,so=g.unpack,vo=Math.pow,ho=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];r=so(r,"lab");var a=r[0],t=r[1],o=r[2],i,n,l,f,u,v;return n=(a+16)/116,i=isNaN(t)?n:n+t/500,l=isNaN(o)?n:n-o/200,n=Er.Yn*ie(n),i=Er.Xn*ie(i),l=Er.Zn*ie(l),f=oe(3.2404542*i-1.5371385*n-.4985314*l),u=oe(-.969266*i+1.8760108*n+.041556*l),v=oe(.0556434*i-.2040259*n+1.0572252*l),[f,u,v,r.length>3?r[3]:1]},oe=function(r){return 255*(r<=.00304?12.92*r:1.055*vo(r,1/2.4)-.055)},ie=function(r){return r>Er.t1?r*r*r:Er.t2*(r-Er.t0)},da=ho,go=g.unpack,bo=g.type,po=X,ga=E,ba=q,mo=ha;ga.prototype.lab=function(){return mo(this._rgb)},po.lab=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(ga,[null].concat(r,["lab"])))},ba.format.lab=da,ba.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=go(r,"lab"),bo(r)==="array"&&r.length===3)return"lab"}});var yo=g.unpack,wo=g.RAD2DEG,ko=Math.sqrt,$o=Math.atan2,_o=Math.round,Eo=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=yo(r,"lab"),t=a[0],o=a[1],i=a[2],n=ko(o*o+i*i),l=($o(i,o)*wo+360)%360;return _o(n*1e4)===0&&(l=Number.NaN),[t,n,l]},pa=Eo,To=g.unpack,xo=ha,Ao=pa,Mo=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=To(r,"rgb"),t=a[0],o=a[1],i=a[2],n=xo(t,o,i),l=n[0],f=n[1],u=n[2];return Ao(l,f,u)},Lo=Mo,No=g.unpack,Co=g.DEG2RAD,Ro=Math.sin,Fo=Math.cos,So=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=No(r,"lch"),t=a[0],o=a[1],i=a[2];return isNaN(i)&&(i=0),i=i*Co,[t,Fo(i)*o,Ro(i)*o]},ma=So,Po=g.unpack,Do=ma,Io=da,Oo=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];r=Po(r,"lch");var a=r[0],t=r[1],o=r[2],i=Do(a,t,o),n=i[0],l=i[1],f=i[2],u=Io(n,l,f),v=u[0],p=u[1],h=u[2];return[v,p,h,r.length>3?r[3]:1]},ya=Oo,zo=g.unpack,qo=ya,Go=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=zo(r,"hcl").reverse();return qo.apply(void 0,a)},Ho=Go,Yo=g.unpack,Bo=g.type,wa=X,qr=E,le=q,ka=Lo;qr.prototype.lch=function(){return ka(this._rgb)},qr.prototype.hcl=function(){return ka(this._rgb).reverse()},wa.lch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(qr,[null].concat(r,["lch"])))},wa.hcl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(qr,[null].concat(r,["hcl"])))},le.format.lch=ya,le.format.hcl=Ho,["lch","hcl"].forEach(function(r){return le.autodetect.push({p:2,test:function(){for(var e=[],a=arguments.length;a--;)e[a]=arguments[a];if(e=Yo(e,r),Bo(e)==="array"&&e.length===3)return r}})});var Xo={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},$a=Xo,Uo=E,_a=q,Wo=g.type,Rr=$a,Vo=aa,jo=ea;Uo.prototype.name=function(){for(var r=jo(this._rgb,"rgb"),e=0,a=Object.keys(Rr);e0;)e[a]=arguments[a+1];if(!e.length&&Wo(r)==="string"&&Rr[r.toLowerCase()])return"named"}});var Zo=g.unpack,Jo=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=Zo(r,"rgb"),t=a[0],o=a[1],i=a[2];return(t<<16)+(o<<8)+i},Qo=Jo,Ko=g.type,ri=function(r){if(Ko(r)=="number"&&r>=0&&r<=16777215){var e=r>>16,a=r>>8&255,t=r&255;return[e,a,t,1]}throw new Error("unknown num color: "+r)},ei=ri,ai=X,Ea=E,Ta=q,ti=g.type,ni=Qo;Ea.prototype.num=function(){return ni(this._rgb)},ai.num=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Ea,[null].concat(r,["num"])))},Ta.format.num=ei,Ta.autodetect.push({p:5,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r.length===1&&ti(r[0])==="number"&&r[0]>=0&&r[0]<=16777215)return"num"}});var oi=X,fe=E,xa=q,Aa=g.unpack,Ma=g.type,La=Math.round;fe.prototype.rgb=function(r){return r===void 0&&(r=!0),r===!1?this._rgb.slice(0,3):this._rgb.slice(0,3).map(La)},fe.prototype.rgba=function(r){return r===void 0&&(r=!0),this._rgb.slice(0,4).map(function(e,a){return a<3?r===!1?e:La(e):e})},oi.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(fe,[null].concat(r,["rgb"])))},xa.format.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=Aa(r,"rgba");return a[3]===void 0&&(a[3]=1),a},xa.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Aa(r,"rgba"),Ma(r)==="array"&&(r.length===3||r.length===4&&Ma(r[3])=="number"&&r[3]>=0&&r[3]<=1))return"rgb"}});var Gr=Math.log,ii=function(r){var e=r/100,a,t,o;return e<66?(a=255,t=e<6?0:-155.25485562709179-.44596950469579133*(t=e-2)+104.49216199393888*Gr(t),o=e<20?0:-254.76935184120902+.8274096064007395*(o=e-10)+115.67994401066147*Gr(o)):(a=351.97690566805693+.114206453784165*(a=e-55)-40.25366309332127*Gr(a),t=325.4494125711974+.07943456536662342*(t=e-50)-28.0852963507957*Gr(t),o=255),[a,t,o,1]},Na=ii,li=Na,fi=g.unpack,ci=Math.round,ui=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];for(var a=fi(r,"rgb"),t=a[0],o=a[2],i=1e3,n=4e4,l=.4,f;n-i>l;){f=(n+i)*.5;var u=li(f);u[2]/u[0]>=o/t?n=f:i=f}return ci(f)},si=ui,ce=X,Hr=E,ue=q,vi=si;Hr.prototype.temp=Hr.prototype.kelvin=Hr.prototype.temperature=function(){return vi(this._rgb)},ce.temp=ce.kelvin=ce.temperature=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Hr,[null].concat(r,["temp"])))},ue.format.temp=ue.format.kelvin=ue.format.temperature=Na;var hi=g.unpack,se=Math.cbrt,di=Math.pow,gi=Math.sign,bi=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=hi(r,"rgb"),t=a[0],o=a[1],i=a[2],n=[ve(t/255),ve(o/255),ve(i/255)],l=n[0],f=n[1],u=n[2],v=se(.4122214708*l+.5363325363*f+.0514459929*u),p=se(.2119034982*l+.6806995451*f+.1073969566*u),h=se(.0883024619*l+.2817188376*f+.6299787005*u);return[.2104542553*v+.793617785*p-.0040720468*h,1.9779984951*v-2.428592205*p+.4505937099*h,.0259040371*v+.7827717662*p-.808675766*h]},Ca=bi;function ve(r){var e=Math.abs(r);return e<.04045?r/12.92:(gi(r)||1)*di((e+.055)/1.055,2.4)}var pi=g.unpack,Yr=Math.pow,mi=Math.sign,yi=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];r=pi(r,"lab");var a=r[0],t=r[1],o=r[2],i=Yr(a+.3963377774*t+.2158037573*o,3),n=Yr(a-.1055613458*t-.0638541728*o,3),l=Yr(a-.0894841775*t-1.291485548*o,3);return[255*he(4.0767416621*i-3.3077115913*n+.2309699292*l),255*he(-1.2684380046*i+2.6097574011*n-.3413193965*l),255*he(-.0041960863*i-.7034186147*n+1.707614701*l),r.length>3?r[3]:1]},Ra=yi;function he(r){var e=Math.abs(r);return e>.0031308?(mi(r)||1)*(1.055*Yr(e,1/2.4)-.055):r*12.92}var wi=g.unpack,ki=g.type,$i=X,Fa=E,Sa=q,_i=Ca;Fa.prototype.oklab=function(){return _i(this._rgb)},$i.oklab=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Fa,[null].concat(r,["oklab"])))},Sa.format.oklab=Ra,Sa.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=wi(r,"oklab"),ki(r)==="array"&&r.length===3)return"oklab"}});var Ei=g.unpack,Ti=Ca,xi=pa,Ai=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var a=Ei(r,"rgb"),t=a[0],o=a[1],i=a[2],n=Ti(t,o,i),l=n[0],f=n[1],u=n[2];return xi(l,f,u)},Mi=Ai,Li=g.unpack,Ni=ma,Ci=Ra,Ri=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];r=Li(r,"lch");var a=r[0],t=r[1],o=r[2],i=Ni(a,t,o),n=i[0],l=i[1],f=i[2],u=Ci(n,l,f),v=u[0],p=u[1],h=u[2];return[v,p,h,r.length>3?r[3]:1]},Fi=Ri,Si=g.unpack,Pi=g.type,Di=X,Pa=E,Da=q,Ii=Mi;Pa.prototype.oklch=function(){return Ii(this._rgb)},Di.oklch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Pa,[null].concat(r,["oklch"])))},Da.format.oklch=Fi,Da.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Si(r,"oklch"),Pi(r)==="array"&&r.length===3)return"oklch"}});var Ia=E,Oi=g.type;Ia.prototype.alpha=function(r,e){return e===void 0&&(e=!1),r!==void 0&&Oi(r)==="number"?e?(this._rgb[3]=r,this):new Ia([this._rgb[0],this._rgb[1],this._rgb[2],r],"rgb"):this._rgb[3]};var zi=E;zi.prototype.clipped=function(){return this._rgb._clipped||!1};var mr=E,qi=zr;mr.prototype.darken=function(r){r===void 0&&(r=1);var e=this,a=e.lab();return a[0]-=qi.Kn*r,new mr(a,"lab").alpha(e.alpha(),!0)},mr.prototype.brighten=function(r){return r===void 0&&(r=1),this.darken(-r)},mr.prototype.darker=mr.prototype.darken,mr.prototype.brighter=mr.prototype.brighten;var Gi=E;Gi.prototype.get=function(r){var e=r.split("."),a=e[0],t=e[1],o=this[a]();if(t){var i=a.indexOf(t)-(a.substr(0,2)==="ok"?2:0);if(i>-1)return o[i];throw new Error("unknown channel "+t+" in mode "+a)}else return o};var Tr=E,Hi=g.type,Yi=Math.pow,Bi=1e-7,Xi=20;Tr.prototype.luminance=function(r){if(r!==void 0&&Hi(r)==="number"){if(r===0)return new Tr([0,0,0,this._rgb[3]],"rgb");if(r===1)return new Tr([255,255,255,this._rgb[3]],"rgb");var e=this.luminance(),a="rgb",t=Xi,o=function(n,l){var f=n.interpolate(l,.5,a),u=f.luminance();return Math.abs(r-u)r?o(n,f):o(f,l)},i=(e>r?o(new Tr([0,0,0]),this):o(this,new Tr([255,255,255]))).rgb();return new Tr(i.concat([this._rgb[3]]))}return Ui.apply(void 0,this._rgb.slice(0,3))};var Ui=function(r,e,a){return r=de(r),e=de(e),a=de(a),.2126*r+.7152*e+.0722*a},de=function(r){return r/=255,r<=.03928?r/12.92:Yi((r+.055)/1.055,2.4)},ar={},Oa=E,za=g.type,Br=ar,qa=function(r,e,a){a===void 0&&(a=.5);for(var t=[],o=arguments.length-3;o-- >0;)t[o]=arguments[o+3];var i=t[0]||"lrgb";if(!Br[i]&&!t.length&&(i=Object.keys(Br)[0]),!Br[i])throw new Error("interpolation mode "+i+" is not defined");return za(r)!=="object"&&(r=new Oa(r)),za(e)!=="object"&&(e=new Oa(e)),Br[i](r,e,a).alpha(r.alpha()+a*(e.alpha()-r.alpha()))},Ga=E,Wi=qa;Ga.prototype.mix=Ga.prototype.interpolate=function(r,e){e===void 0&&(e=.5);for(var a=[],t=arguments.length-2;t-- >0;)a[t]=arguments[t+2];return Wi.apply(void 0,[this,r,e].concat(a))};var Ha=E;Ha.prototype.premultiply=function(r){r===void 0&&(r=!1);var e=this._rgb,a=e[3];return r?(this._rgb=[e[0]*a,e[1]*a,e[2]*a,a],this):new Ha([e[0]*a,e[1]*a,e[2]*a,a],"rgb")};var ge=E,Vi=zr;ge.prototype.saturate=function(r){r===void 0&&(r=1);var e=this,a=e.lch();return a[1]+=Vi.Kn*r,a[1]<0&&(a[1]=0),new ge(a,"lch").alpha(e.alpha(),!0)},ge.prototype.desaturate=function(r){return r===void 0&&(r=1),this.saturate(-r)};var Ya=E,Ba=g.type;Ya.prototype.set=function(r,e,a){a===void 0&&(a=!1);var t=r.split("."),o=t[0],i=t[1],n=this[o]();if(i){var l=o.indexOf(i)-(o.substr(0,2)==="ok"?2:0);if(l>-1){if(Ba(e)=="string")switch(e.charAt(0)){case"+":n[l]+=+e;break;case"-":n[l]+=+e;break;case"*":n[l]*=+e.substr(1);break;case"/":n[l]/=+e.substr(1);break;default:n[l]=+e}else if(Ba(e)==="number")n[l]=e;else throw new Error("unsupported value for Color.set");var f=new Ya(n,o);return a?(this._rgb=f._rgb,this):f}throw new Error("unknown channel "+i+" in mode "+o)}else return n};var ji=E,Zi=function(r,e,a){var t=r._rgb,o=e._rgb;return new ji(t[0]+a*(o[0]-t[0]),t[1]+a*(o[1]-t[1]),t[2]+a*(o[2]-t[2]),"rgb")};ar.rgb=Zi;var Ji=E,be=Math.sqrt,xr=Math.pow,Qi=function(r,e,a){var t=r._rgb,o=t[0],i=t[1],n=t[2],l=e._rgb,f=l[0],u=l[1],v=l[2];return new Ji(be(xr(o,2)*(1-a)+xr(f,2)*a),be(xr(i,2)*(1-a)+xr(u,2)*a),be(xr(n,2)*(1-a)+xr(v,2)*a),"rgb")};ar.lrgb=Qi;var Ki=E,rl=function(r,e,a){var t=r.lab(),o=e.lab();return new Ki(t[0]+a*(o[0]-t[0]),t[1]+a*(o[1]-t[1]),t[2]+a*(o[2]-t[2]),"lab")};ar.lab=rl;var Xa=E,Ar=function(r,e,a,t){var o,i,n,l;t==="hsl"?(n=r.hsl(),l=e.hsl()):t==="hsv"?(n=r.hsv(),l=e.hsv()):t==="hcg"?(n=r.hcg(),l=e.hcg()):t==="hsi"?(n=r.hsi(),l=e.hsi()):t==="lch"||t==="hcl"?(t="hcl",n=r.hcl(),l=e.hcl()):t==="oklch"&&(n=r.oklch().reverse(),l=e.oklch().reverse());var f,u,v,p,h,w;(t.substr(0,1)==="h"||t==="oklch")&&(o=n,f=o[0],v=o[1],h=o[2],i=l,u=i[0],p=i[1],w=i[2]);var y,T,M,N;return!isNaN(f)&&!isNaN(u)?(u>f&&u-f>180?N=u-(f+360):u180?N=u+360-f:N=u-f,T=f+a*N):isNaN(f)?isNaN(u)?T=Number.NaN:(T=u,(h==1||h==0)&&t!="hsv"&&(y=p)):(T=f,(w==1||w==0)&&t!="hsv"&&(y=v)),y===void 0&&(y=v+a*(p-v)),M=h+a*(w-h),t==="oklch"?new Xa([M,y,T],t):new Xa([T,y,M],t)},el=Ar,Ua=function(r,e,a){return el(r,e,a,"lch")};ar.lch=Ua,ar.hcl=Ua;var al=E,tl=function(r,e,a){var t=r.num(),o=e.num();return new al(t+a*(o-t),"num")};ar.num=tl;var nl=Ar,ol=function(r,e,a){return nl(r,e,a,"hcg")};ar.hcg=ol;var il=Ar,ll=function(r,e,a){return il(r,e,a,"hsi")};ar.hsi=ll;var fl=Ar,cl=function(r,e,a){return fl(r,e,a,"hsl")};ar.hsl=cl;var ul=Ar,sl=function(r,e,a){return ul(r,e,a,"hsv")};ar.hsv=sl;var vl=E,hl=function(r,e,a){var t=r.oklab(),o=e.oklab();return new vl(t[0]+a*(o[0]-t[0]),t[1]+a*(o[1]-t[1]),t[2]+a*(o[2]-t[2]),"oklab")};ar.oklab=hl;var dl=Ar,gl=function(r,e,a){return dl(r,e,a,"oklch")};ar.oklch=gl;var pe=E,bl=g.clip_rgb,me=Math.pow,ye=Math.sqrt,we=Math.PI,Wa=Math.cos,Va=Math.sin,pl=Math.atan2,ml=function(r,e,a){e===void 0&&(e="lrgb"),a===void 0&&(a=null);var t=r.length;a||(a=Array.from(new Array(t)).map(function(){return 1}));var o=t/a.reduce(function(T,M){return T+M});if(a.forEach(function(T,M){a[M]*=o}),r=r.map(function(T){return new pe(T)}),e==="lrgb")return yl(r,a);for(var i=r.shift(),n=i.get(e),l=[],f=0,u=0,v=0;v=360;)y-=360;n[w]=y}else n[w]=n[w]/l[w];return h/=t,new pe(n,e).alpha(h>.99999?1:h,!0)},yl=function(r,e){for(var a=r.length,t=[0,0,0,0],o=0;o.9999999&&(t[3]=1),new pe(bl(t))},nr=X,Mr=g.type,wl=Math.pow,ke=function(r){var e="rgb",a=nr("#ccc"),t=0,o=[0,1],i=[],n=[0,0],l=!1,f=[],u=!1,v=0,p=1,h=!1,w={},y=!0,T=1,M=function(d){if(d=d||["#fff","#000"],d&&Mr(d)==="string"&&nr.brewer&&nr.brewer[d.toLowerCase()]&&(d=nr.brewer[d.toLowerCase()]),Mr(d)==="array"){d.length===1&&(d=[d[0],d[0]]),d=d.slice(0);for(var $=0;$=l[A];)A++;return A-1}return 0},S=function(d){return d},Z=function(d){return d},j=function(d,$){var A,x;if($==null&&($=!1),isNaN(d)||d===null)return a;if($)x=d;else if(l&&l.length>2){var J=N(d);x=J/(l.length-2)}else p!==v?x=(d-v)/(p-v):x=1;x=Z(x),$||(x=S(x)),T!==1&&(x=wl(x,T)),x=n[0]+x*(1-n[0]-n[1]),x=Math.min(1,Math.max(0,x));var z=Math.floor(x*1e4);if(y&&w[z])A=w[z];else{if(Mr(f)==="array")for(var C=0;C=P&&C===i.length-1){A=f[C];break}if(x>P&&x2){var C=d.map(function(D,I){return I/(d.length-1)}),P=d.map(function(D){return(D-v)/(p-v)});P.every(function(D,I){return C[I]===D})||(Z=function(D){if(D<=0||D>=1)return D;for(var I=0;D>=P[I+1];)I++;var ir=(D-P[I])/(P[I+1]-P[I]),hr=C[I]+ir*(C[I+1]-C[I]);return hr})}}return o=[v,p],L},L.mode=function(d){return arguments.length?(e=d,K(),L):e},L.range=function(d,$){return M(d),L},L.out=function(d){return u=d,L},L.spread=function(d){return arguments.length?(t=d,L):t},L.correctLightness=function(d){return d==null&&(d=!0),h=d,K(),h?S=function($){for(var A=j(0,!0).lab()[0],x=j(1,!0).lab()[0],J=A>x,z=j($,!0).lab()[0],C=A+(x-A)*$,P=z-C,D=0,I=1,ir=20;Math.abs(P)>.01&&ir-- >0;)(function(){return J&&(P*=-1),P<0?(D=$,$+=(I-$)*.5):(I=$,$+=(D-$)*.5),z=j($,!0).lab()[0],P=z-C})();return $}:S=function($){return $},L},L.padding=function(d){return d!=null?(Mr(d)==="number"&&(d=[d,d]),n=d,L):n},L.colors=function(d,$){arguments.length<2&&($="hex");var A=[];if(arguments.length===0)A=f.slice(0);else if(d===1)A=[L(.5)];else if(d>1){var x=o[0],J=o[1]-x;A=kl(0,d,!1).map(function(I){return L(x+I/(d-1)*J)})}else{r=[];var z=[];if(l&&l.length>2)for(var C=1,P=l.length,D=1<=P;D?CP;D?C++:C--)z.push((l[C-1]+l[C])*.5);else z=o;A=z.map(function(I){return L(I)})}return nr[$]&&(A=A.map(function(I){return I[$]()})),A},L.cache=function(d){return d!=null?(y=d,L):y},L.gamma=function(d){return d!=null?(T=d,L):T},L.nodata=function(d){return d!=null?(a=nr(d),L):a},L};function kl(r,e,a){for(var t=[],o=ri;o?n++:n--)t.push(n);return t}var Fr=E,$l=ke,_l=function(r){for(var e=[1,1],a=1;a=5){var u,v,p;u=r.map(function(h){return h.lab()}),p=r.length-1,v=_l(p),o=function(h){var w=1-h,y=[0,1,2].map(function(T){return u.reduce(function(M,N,S){return M+v[S]*Math.pow(w,p-S)*Math.pow(h,S)*N[T]},0)});return new Fr(y,"lab")}}else throw new RangeError("No point in running bezier with only one color.");return o},Tl=function(r){var e=El(r);return e.scale=function(){return $l(e)},e},$e=X,or=function(r,e,a){if(!or[a])throw new Error("unknown blend mode "+a);return or[a](r,e)},sr=function(r){return function(e,a){var t=$e(a).rgb(),o=$e(e).rgb();return $e.rgb(r(t,o))}},vr=function(r){return function(e,a){var t=[];return t[0]=r(e[0],a[0]),t[1]=r(e[1],a[1]),t[2]=r(e[2],a[2]),t}},xl=function(r){return r},Al=function(r,e){return r*e/255},Ml=function(r,e){return r>e?e:r},Ll=function(r,e){return r>e?r:e},Nl=function(r,e){return 255*(1-(1-r/255)*(1-e/255))},Cl=function(r,e){return e<128?2*r*e/255:255*(1-2*(1-r/255)*(1-e/255))},Rl=function(r,e){return 255*(1-(1-e/255)/(r/255))},Fl=function(r,e){return r===255?255:(r=255*(e/255)/(1-r/255),r>255?255:r)};or.normal=sr(vr(xl)),or.multiply=sr(vr(Al)),or.screen=sr(vr(Nl)),or.overlay=sr(vr(Cl)),or.darken=sr(vr(Ml)),or.lighten=sr(vr(Ll)),or.dodge=sr(vr(Fl)),or.burn=sr(vr(Rl));for(var Sl=or,_e=g.type,Pl=g.clip_rgb,Dl=g.TWOPI,Il=Math.pow,Ol=Math.sin,zl=Math.cos,ja=X,ql=function(r,e,a,t,o){r===void 0&&(r=300),e===void 0&&(e=-1.5),a===void 0&&(a=1),t===void 0&&(t=1),o===void 0&&(o=[0,1]);var i=0,n;_e(o)==="array"?n=o[1]-o[0]:(n=0,o=[o,o]);var l=function(f){var u=Dl*((r+120)/360+e*f),v=Il(o[0]+n*f,t),p=i!==0?a[0]+f*i:a,h=p*v*(1-v)/2,w=zl(u),y=Ol(u),T=v+h*(-.14861*w+1.78277*y),M=v+h*(-.29227*w-.90649*y),N=v+h*(1.97294*w);return ja(Pl([T*255,M*255,N*255,1]))};return l.start=function(f){return f==null?r:(r=f,l)},l.rotations=function(f){return f==null?e:(e=f,l)},l.gamma=function(f){return f==null?t:(t=f,l)},l.hue=function(f){return f==null?a:(a=f,_e(a)==="array"?(i=a[1]-a[0],i===0&&(a=a[1])):i=0,l)},l.lightness=function(f){return f==null?o:(_e(f)==="array"?(o=f,n=f[1]-f[0]):(o=[f,f],n=0),l)},l.scale=function(){return ja.scale(l)},l.hue(a),l},Gl=E,Hl="0123456789abcdef",Yl=Math.floor,Bl=Math.random,Xl=function(){for(var r="#",e=0;e<6;e++)r+=Hl.charAt(Yl(Bl()*16));return new Gl(r,"hex")},Ee=Y,Za=Math.log,Ul=Math.pow,Wl=Math.floor,Vl=Math.abs,Ja=function(r,e){e===void 0&&(e=null);var a={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0};return Ee(r)==="object"&&(r=Object.values(r)),r.forEach(function(t){e&&Ee(t)==="object"&&(t=t[e]),t!=null&&!isNaN(t)&&(a.values.push(t),a.sum+=t,ta.max&&(a.max=t),a.count+=1)}),a.domain=[a.min,a.max],a.limits=function(t,o){return Qa(a,t,o)},a},Qa=function(r,e,a){e===void 0&&(e="equal"),a===void 0&&(a=7),Ee(r)=="array"&&(r=Ja(r));var t=r.min,o=r.max,i=r.values.sort(function(xe,Ae){return xe-Ae});if(a===1)return[t,o];var n=[];if(e.substr(0,1)==="c"&&(n.push(t),n.push(o)),e.substr(0,1)==="e"){n.push(t);for(var l=1;l 0");var f=Math.LOG10E*Za(t),u=Math.LOG10E*Za(o);n.push(t);for(var v=1;v200&&(Z=!1)}for(var dr={},Lr=0;Lrt?(a+.05)/(t+.05):(t+.05)/(a+.05)},et=E,fr=Math.sqrt,U=Math.pow,Zl=Math.min,Jl=Math.max,at=Math.atan2,tt=Math.abs,Xr=Math.cos,nt=Math.sin,Ql=Math.exp,ot=Math.PI,Kl=function(r,e,a,t,o){a===void 0&&(a=1),t===void 0&&(t=1),o===void 0&&(o=1);var i=function(wr){return 360*wr/(2*ot)},n=function(wr){return 2*ot*wr/360};r=new et(r),e=new et(e);var l=Array.from(r.lab()),f=l[0],u=l[1],v=l[2],p=Array.from(e.lab()),h=p[0],w=p[1],y=p[2],T=(f+h)/2,M=fr(U(u,2)+U(v,2)),N=fr(U(w,2)+U(y,2)),S=(M+N)/2,Z=.5*(1-fr(U(S,7)/(U(S,7)+U(25,7)))),j=u*(1+Z),K=w*(1+Z),L=fr(U(j,2)+U(v,2)),d=fr(U(K,2)+U(y,2)),$=(L+d)/2,A=i(at(v,j)),x=i(at(y,K)),J=A>=0?A:A+360,z=x>=0?x:x+360,C=tt(J-z)>180?(J+z+360)/2:(J+z)/2,P=1-.17*Xr(n(C-30))+.24*Xr(n(2*C))+.32*Xr(n(3*C+6))-.2*Xr(n(4*C-63)),D=z-J;D=tt(D)<=180?D:z<=J?D+360:D-360,D=2*fr(L*d)*nt(n(D)/2);var I=h-f,ir=d-L,hr=1+.015*U(T-50,2)/fr(20+U(T-50,2)),dr=1+.045*$,Lr=1+.015*$*P,Nr=30*Ql(-U((C-275)/25,2)),cr=2*fr(U($,7)/(U($,7)+U(25,7))),yr=-cr*nt(2*n(Nr)),Sr=fr(U(I/(a*hr),2)+U(ir/(t*dr),2)+U(D/(o*Lr),2)+yr*(ir/(t*dr))*(D/(o*Lr)));return Jl(0,Zl(100,Sr))},it=E,rf=function(r,e,a){a===void 0&&(a="lab"),r=new it(r),e=new it(e);var t=r.get(a),o=e.get(a),i=0;for(var n in t){var l=(t[n]||0)-(o[n]||0);i+=l*l}return Math.sqrt(i)},ef=E,af=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];try{return new(Function.prototype.bind.apply(ef,[null].concat(r))),!0}catch{return!1}},lt=X,ft=ke,tf={cool:function(){return ft([lt.hsl(180,1,.9),lt.hsl(250,.7,.4)])},hot:function(){return ft(["#000","#f00","#ff0","#fff"]).mode("rgb")}},Ur={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},Te=0,ct=Object.keys(Ur);Te>>1,Y=C[H];if(0>>1;Hl(sl,P))mnl(Xt,sl)?(C[H]=Xt,C[mn]=P,H=mn):(C[H]=sl,C[pn]=P,H=pn);else if(mnl(Xt,P))C[H]=Xt,C[mn]=P,H=mn;else break e}}return z}function l(C,z){var P=C.sortIndex-z.sortIndex;return P!==0?P:C.id-z.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var u=Date,o=u.now();e.unstable_now=function(){return u.now()-o}}var s=[],d=[],v=1,m=null,p=3,g=!1,w=!1,k=!1,O=typeof setTimeout=="function"?setTimeout:null,c=typeof clearTimeout=="function"?clearTimeout:null,a=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function f(C){for(var z=t(d);z!==null;){if(z.callback===null)r(d);else if(z.startTime<=C)r(d),z.sortIndex=z.expirationTime,n(s,z);else break;z=t(d)}}function h(C){if(k=!1,f(C),!w)if(t(s)!==null)w=!0,ul(E);else{var z=t(d);z!==null&&ol(h,z.startTime-C)}}function E(C,z){w=!1,k&&(k=!1,c(N),N=-1),g=!0;var P=p;try{for(f(z),m=t(s);m!==null&&(!(m.expirationTime>z)||C&&!Ce());){var H=m.callback;if(typeof H=="function"){m.callback=null,p=m.priorityLevel;var Y=H(m.expirationTime<=z);z=e.unstable_now(),typeof Y=="function"?m.callback=Y:m===t(s)&&r(s),f(z)}else r(s);m=t(s)}if(m!==null)var Yt=!0;else{var pn=t(d);pn!==null&&ol(h,pn.startTime-z),Yt=!1}return Yt}finally{m=null,p=P,g=!1}}var x=!1,_=null,N=-1,B=5,T=-1;function Ce(){return!(e.unstable_now()-TC||125H?(C.sortIndex=P,n(d,C),t(s)===null&&C===t(d)&&(k?(c(N),N=-1):k=!0,ol(h,P-H))):(C.sortIndex=Y,n(s,C),w||g||(w=!0,ul(E))),C},e.unstable_shouldYield=Ce,e.unstable_wrapCallback=function(C){var z=p;return function(){var P=p;p=z;try{return C.apply(this,arguments)}finally{p=P}}}})(_o);xo.exports=_o;var Ta=xo.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var No=Pa,me=Ta;function y(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Fl=Object.prototype.hasOwnProperty,La=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,yu={},gu={};function Ma(e){return Fl.call(gu,e)?!0:Fl.call(yu,e)?!1:La.test(e)?gu[e]=!0:(yu[e]=!0,!1)}function Da(e,n,t,r){if(t!==null&&t.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return r?!1:t!==null?!t.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Ra(e,n,t,r){if(n===null||typeof n>"u"||Da(e,n,t,r))return!0;if(r)return!1;if(t!==null)switch(t.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function ie(e,n,t,r,l,i,u){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=t,this.propertyName=e,this.type=n,this.sanitizeURL=i,this.removeEmptyString=u}var q={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){q[e]=new ie(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];q[n]=new ie(n,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){q[e]=new ie(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){q[e]=new ie(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){q[e]=new ie(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){q[e]=new ie(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){q[e]=new ie(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){q[e]=new ie(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){q[e]=new ie(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ni=/[\-:]([a-z])/g;function zi(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(Ni,zi);q[n]=new ie(n,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(Ni,zi);q[n]=new ie(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(Ni,zi);q[n]=new ie(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){q[e]=new ie(e,1,!1,e.toLowerCase(),null,!1,!1)});q.xlinkHref=new ie("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){q[e]=new ie(e,1,!1,e.toLowerCase(),null,!0,!0)});function Pi(e,n,t,r){var l=q.hasOwnProperty(n)?q[n]:null;(l!==null?l.type!==0:r||!(2o||l[u]!==i[o]){var s=` +`+l[u].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=u&&0<=o);break}}}finally{cl=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?pt(e):""}function Fa(e){switch(e.tag){case 5:return pt(e.type);case 16:return pt("Lazy");case 13:return pt("Suspense");case 19:return pt("SuspenseList");case 0:case 2:case 15:return e=fl(e.type,!1),e;case 11:return e=fl(e.type.render,!1),e;case 1:return e=fl(e.type,!0),e;default:return""}}function Ul(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Mn:return"Fragment";case Ln:return"Portal";case Ol:return"Profiler";case Ti:return"StrictMode";case Il:return"Suspense";case jl:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case To:return(e.displayName||"Context")+".Consumer";case Po:return(e._context.displayName||"Context")+".Provider";case Li:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Mi:return n=e.displayName||null,n!==null?n:Ul(e.type)||"Memo";case Ye:n=e._payload,e=e._init;try{return Ul(e(n))}catch{}}return null}function Oa(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ul(n);case 8:return n===Ti?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function sn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Mo(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Ia(e){var n=Mo(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),r=""+e[n];if(!e.hasOwnProperty(n)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var l=t.get,i=t.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return l.call(this)},set:function(u){r=""+u,i.call(this,u)}}),Object.defineProperty(e,n,{enumerable:t.enumerable}),{getValue:function(){return r},setValue:function(u){r=""+u},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function Zt(e){e._valueTracker||(e._valueTracker=Ia(e))}function Do(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r="";return e&&(r=Mo(e)?e.checked?"true":"false":e.value),e=r,e!==t?(n.setValue(e),!0):!1}function Sr(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Vl(e,n){var t=n.checked;return V({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??e._wrapperState.initialChecked})}function ku(e,n){var t=n.defaultValue==null?"":n.defaultValue,r=n.checked!=null?n.checked:n.defaultChecked;t=sn(n.value!=null?n.value:t),e._wrapperState={initialChecked:r,initialValue:t,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function Ro(e,n){n=n.checked,n!=null&&Pi(e,"checked",n,!1)}function Al(e,n){Ro(e,n);var t=sn(n.value),r=n.type;if(t!=null)r==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?Bl(e,n.type,t):n.hasOwnProperty("defaultValue")&&Bl(e,n.type,sn(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function Su(e,n,t){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var r=n.type;if(!(r!=="submit"&&r!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,t||n===e.value||(e.value=n),e.defaultValue=n}t=e.name,t!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,t!==""&&(e.name=t)}function Bl(e,n,t){(n!=="number"||Sr(e.ownerDocument)!==e)&&(t==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}var mt=Array.isArray;function Hn(e,n,t,r){if(e=e.options,n){n={};for(var l=0;l"+n.valueOf().toString()+"",n=Jt.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function zt(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&t.nodeType===3){t.nodeValue=n;return}}e.textContent=n}var yt={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ja=["Webkit","ms","Moz","O"];Object.keys(yt).forEach(function(e){ja.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),yt[n]=yt[e]})});function jo(e,n,t){return n==null||typeof n=="boolean"||n===""?"":t||typeof n!="number"||n===0||yt.hasOwnProperty(e)&&yt[e]?(""+n).trim():n+"px"}function Uo(e,n){e=e.style;for(var t in n)if(n.hasOwnProperty(t)){var r=t.indexOf("--")===0,l=jo(t,n[t],r);t==="float"&&(t="cssFloat"),r?e.setProperty(t,l):e[t]=l}}var Ua=V({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Wl(e,n){if(n){if(Ua[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(y(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(y(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(y(61))}if(n.style!=null&&typeof n.style!="object")throw Error(y(62))}}function $l(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Kl=null;function Di(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Yl=null,Qn=null,Wn=null;function xu(e){if(e=$t(e)){if(typeof Yl!="function")throw Error(y(280));var n=e.stateNode;n&&(n=Gr(n),Yl(e.stateNode,e.type,n))}}function Vo(e){Qn?Wn?Wn.push(e):Wn=[e]:Qn=e}function Ao(){if(Qn){var e=Qn,n=Wn;if(Wn=Qn=null,xu(e),n)for(e=0;e>>=0,e===0?32:31-(Ga(e)/Za|0)|0}var qt=64,bt=4194304;function vt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function _r(e,n){var t=e.pendingLanes;if(t===0)return 0;var r=0,l=e.suspendedLanes,i=e.pingedLanes,u=t&268435455;if(u!==0){var o=u&~l;o!==0?r=vt(o):(i&=u,i!==0&&(r=vt(i)))}else u=t&~l,u!==0?r=vt(u):i!==0&&(r=vt(i));if(r===0)return 0;if(n!==0&&n!==r&&!(n&l)&&(l=r&-r,i=n&-n,l>=i||l===16&&(i&4194240)!==0))return n;if(r&4&&(r|=t&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=r;0t;t++)n.push(e);return n}function Qt(e,n,t){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-Pe(n),e[n]=t}function ec(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=wt),Ru=" ",Fu=!1;function us(e,n){switch(e){case"keyup":return Pc.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function os(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Dn=!1;function Lc(e,n){switch(e){case"compositionend":return os(n);case"keypress":return n.which!==32?null:(Fu=!0,Ru);case"textInput":return e=n.data,e===Ru&&Fu?null:e;default:return null}}function Mc(e,n){if(Dn)return e==="compositionend"||!Ai&&us(e,n)?(e=ls(),dr=ji=Je=null,Dn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:t,offset:n-e};e=r}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=Uu(t)}}function fs(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?fs(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function ds(){for(var e=window,n=Sr();n instanceof e.HTMLIFrameElement;){try{var t=typeof n.contentWindow.location.href=="string"}catch{t=!1}if(t)e=n.contentWindow;else break;n=Sr(e.document)}return n}function Bi(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function Ac(e){var n=ds(),t=e.focusedElem,r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&fs(t.ownerDocument.documentElement,t)){if(r!==null&&Bi(t)){if(n=r.start,e=r.end,e===void 0&&(e=n),"selectionStart"in t)t.selectionStart=n,t.selectionEnd=Math.min(e,t.value.length);else if(e=(n=t.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var l=t.textContent.length,i=Math.min(r.start,l);r=r.end===void 0?i:Math.min(r.end,l),!e.extend&&i>r&&(l=r,r=i,i=l),l=Vu(t,i);var u=Vu(t,r);l&&u&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==u.node||e.focusOffset!==u.offset)&&(n=n.createRange(),n.setStart(l.node,l.offset),e.removeAllRanges(),i>r?(e.addRange(n),e.extend(u.node,u.offset)):(n.setEnd(u.node,u.offset),e.addRange(n)))}}for(n=[],e=t;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,Rn=null,bl=null,St=null,ei=!1;function Au(e,n,t){var r=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;ei||Rn==null||Rn!==Sr(r)||(r=Rn,"selectionStart"in r&&Bi(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),St&&Rt(St,r)||(St=r,r=Pr(bl,"onSelect"),0In||(e.current=ui[In],ui[In]=null,In--)}function D(e,n){In++,ui[In]=e.current,e.current=n}var an={},te=fn(an),se=fn(!1),En=an;function Gn(e,n){var t=e.type.contextTypes;if(!t)return an;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var l={},i;for(i in t)l[i]=n[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=l),l}function ae(e){return e=e.childContextTypes,e!=null}function Lr(){F(se),F(te)}function Yu(e,n,t){if(te.current!==an)throw Error(y(168));D(te,n),D(se,t)}function Ss(e,n,t){var r=e.stateNode;if(n=n.childContextTypes,typeof r.getChildContext!="function")return t;r=r.getChildContext();for(var l in r)if(!(l in n))throw Error(y(108,Oa(e)||"Unknown",l));return V({},t,r)}function Mr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||an,En=te.current,D(te,e),D(se,se.current),!0}function Xu(e,n,t){var r=e.stateNode;if(!r)throw Error(y(169));t?(e=Ss(e,n,En),r.__reactInternalMemoizedMergedChildContext=e,F(se),F(te),D(te,e)):F(se),D(se,t)}var je=null,Zr=!1,_l=!1;function Es(e){je===null?je=[e]:je.push(e)}function qc(e){Zr=!0,Es(e)}function dn(){if(!_l&&je!==null){_l=!0;var e=0,n=M;try{var t=je;for(M=1;e>=u,l-=u,Ue=1<<32-Pe(n)+l|t<N?(B=_,_=null):B=_.sibling;var T=p(c,_,f[N],h);if(T===null){_===null&&(_=B);break}e&&_&&T.alternate===null&&n(c,_),a=i(T,a,N),x===null?E=T:x.sibling=T,x=T,_=B}if(N===f.length)return t(c,_),I&&vn(c,N),E;if(_===null){for(;NN?(B=_,_=null):B=_.sibling;var Ce=p(c,_,T.value,h);if(Ce===null){_===null&&(_=B);break}e&&_&&Ce.alternate===null&&n(c,_),a=i(Ce,a,N),x===null?E=Ce:x.sibling=Ce,x=Ce,_=B}if(T.done)return t(c,_),I&&vn(c,N),E;if(_===null){for(;!T.done;N++,T=f.next())T=m(c,T.value,h),T!==null&&(a=i(T,a,N),x===null?E=T:x.sibling=T,x=T);return I&&vn(c,N),E}for(_=r(c,_);!T.done;N++,T=f.next())T=g(_,c,N,T.value,h),T!==null&&(e&&T.alternate!==null&&_.delete(T.key===null?N:T.key),a=i(T,a,N),x===null?E=T:x.sibling=T,x=T);return e&&_.forEach(function(rt){return n(c,rt)}),I&&vn(c,N),E}function O(c,a,f,h){if(typeof f=="object"&&f!==null&&f.type===Mn&&f.key===null&&(f=f.props.children),typeof f=="object"&&f!==null){switch(f.$$typeof){case Gt:e:{for(var E=f.key,x=a;x!==null;){if(x.key===E){if(E=f.type,E===Mn){if(x.tag===7){t(c,x.sibling),a=l(x,f.props.children),a.return=c,c=a;break e}}else if(x.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===Ye&&no(E)===x.type){t(c,x.sibling),a=l(x,f.props),a.ref=ct(c,x,f),a.return=c,c=a;break e}t(c,x);break}else n(c,x);x=x.sibling}f.type===Mn?(a=Sn(f.props.children,c.mode,h,f.key),a.return=c,c=a):(h=kr(f.type,f.key,f.props,null,c.mode,h),h.ref=ct(c,a,f),h.return=c,c=h)}return u(c);case Ln:e:{for(x=f.key;a!==null;){if(a.key===x)if(a.tag===4&&a.stateNode.containerInfo===f.containerInfo&&a.stateNode.implementation===f.implementation){t(c,a.sibling),a=l(a,f.children||[]),a.return=c,c=a;break e}else{t(c,a);break}else n(c,a);a=a.sibling}a=Rl(f,c.mode,h),a.return=c,c=a}return u(c);case Ye:return x=f._init,O(c,a,x(f._payload),h)}if(mt(f))return w(c,a,f,h);if(it(f))return k(c,a,f,h);ur(c,f)}return typeof f=="string"&&f!==""||typeof f=="number"?(f=""+f,a!==null&&a.tag===6?(t(c,a.sibling),a=l(a,f),a.return=c,c=a):(t(c,a),a=Dl(f,c.mode,h),a.return=c,c=a),u(c)):t(c,a)}return O}var Jn=Ls(!0),Ms=Ls(!1),Kt={},Oe=fn(Kt),jt=fn(Kt),Ut=fn(Kt);function wn(e){if(e===Kt)throw Error(y(174));return e}function Zi(e,n){switch(D(Ut,n),D(jt,e),D(Oe,Kt),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:Ql(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=Ql(n,e)}F(Oe),D(Oe,n)}function qn(){F(Oe),F(jt),F(Ut)}function Ds(e){wn(Ut.current);var n=wn(Oe.current),t=Ql(n,e.type);n!==t&&(D(jt,e),D(Oe,t))}function Ji(e){jt.current===e&&(F(Oe),F(jt))}var j=fn(0);function jr(e){for(var n=e;n!==null;){if(n.tag===13){var t=n.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if(n.flags&128)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var Nl=[];function qi(){for(var e=0;et?t:4,e(!0);var r=zl.transition;zl.transition={};try{e(!1),n()}finally{M=t,zl.transition=r}}function Xs(){return Ee().memoizedState}function tf(e,n,t){var r=un(e);if(t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null},Gs(e))Zs(n,t);else if(t=Ns(e,n,t,r),t!==null){var l=le();Te(t,e,r,l),Js(t,n,r)}}function rf(e,n,t){var r=un(e),l={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(Gs(e))Zs(n,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=n.lastRenderedReducer,i!==null))try{var u=n.lastRenderedState,o=i(u,t);if(l.hasEagerState=!0,l.eagerState=o,Le(o,u)){var s=n.interleaved;s===null?(l.next=l,Xi(n)):(l.next=s.next,s.next=l),n.interleaved=l;return}}catch{}finally{}t=Ns(e,n,l,r),t!==null&&(l=le(),Te(t,e,r,l),Js(t,n,r))}}function Gs(e){var n=e.alternate;return e===U||n!==null&&n===U}function Zs(e,n){Et=Ur=!0;var t=e.pending;t===null?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function Js(e,n,t){if(t&4194240){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,Fi(e,t)}}var Vr={readContext:Se,useCallback:b,useContext:b,useEffect:b,useImperativeHandle:b,useInsertionEffect:b,useLayoutEffect:b,useMemo:b,useReducer:b,useRef:b,useState:b,useDebugValue:b,useDeferredValue:b,useTransition:b,useMutableSource:b,useSyncExternalStore:b,useId:b,unstable_isNewReconciler:!1},lf={readContext:Se,useCallback:function(e,n){return De().memoizedState=[e,n===void 0?null:n],e},useContext:Se,useEffect:ro,useImperativeHandle:function(e,n,t){return t=t!=null?t.concat([e]):null,hr(4194308,4,Qs.bind(null,n,e),t)},useLayoutEffect:function(e,n){return hr(4194308,4,e,n)},useInsertionEffect:function(e,n){return hr(4,2,e,n)},useMemo:function(e,n){var t=De();return n=n===void 0?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var r=De();return n=t!==void 0?t(n):n,r.memoizedState=r.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},r.queue=e,e=e.dispatch=tf.bind(null,U,e),[r.memoizedState,e]},useRef:function(e){var n=De();return e={current:e},n.memoizedState=e},useState:to,useDebugValue:ru,useDeferredValue:function(e){return De().memoizedState=e},useTransition:function(){var e=to(!1),n=e[0];return e=nf.bind(null,e[1]),De().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=U,l=De();if(I){if(t===void 0)throw Error(y(407));t=t()}else{if(t=n(),G===null)throw Error(y(349));xn&30||Os(r,n,t)}l.memoizedState=t;var i={value:t,getSnapshot:n};return l.queue=i,ro(js.bind(null,r,i,e),[e]),r.flags|=2048,Bt(9,Is.bind(null,r,i,t,n),void 0,null),t},useId:function(){var e=De(),n=G.identifierPrefix;if(I){var t=Ve,r=Ue;t=(r&~(1<<32-Pe(r)-1)).toString(32)+t,n=":"+n+"R"+t,t=Vt++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=u.createElement(t,{is:r.is}):(e=u.createElement(t),t==="select"&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,t),e[Re]=n,e[It]=r,ua(e,n,!1,!1),n.stateNode=e;e:{switch(u=$l(t,r),t){case"dialog":R("cancel",e),R("close",e),l=r;break;case"iframe":case"object":case"embed":R("load",e),l=r;break;case"video":case"audio":for(l=0;let&&(n.flags|=128,r=!0,ft(i,!1),n.lanes=4194304)}else{if(!r)if(e=jr(u),e!==null){if(n.flags|=128,r=!0,t=e.updateQueue,t!==null&&(n.updateQueue=t,n.flags|=4),ft(i,!0),i.tail===null&&i.tailMode==="hidden"&&!u.alternate&&!I)return ee(n),null}else 2*Q()-i.renderingStartTime>et&&t!==1073741824&&(n.flags|=128,r=!0,ft(i,!1),n.lanes=4194304);i.isBackwards?(u.sibling=n.child,n.child=u):(t=i.last,t!==null?t.sibling=u:n.child=u,i.last=u)}return i.tail!==null?(n=i.tail,i.rendering=n,i.tail=n.sibling,i.renderingStartTime=Q(),n.sibling=null,t=j.current,D(j,r?t&1|2:t&1),n):(ee(n),null);case 22:case 23:return au(),r=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(n.flags|=8192),r&&n.mode&1?fe&1073741824&&(ee(n),n.subtreeFlags&6&&(n.flags|=8192)):ee(n),null;case 24:return null;case 25:return null}throw Error(y(156,n.tag))}function pf(e,n){switch(Qi(n),n.tag){case 1:return ae(n.type)&&Lr(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return qn(),F(se),F(te),qi(),e=n.flags,e&65536&&!(e&128)?(n.flags=e&-65537|128,n):null;case 5:return Ji(n),null;case 13:if(F(j),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(y(340));Zn()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return F(j),null;case 4:return qn(),null;case 10:return Yi(n.type._context),null;case 22:case 23:return au(),null;case 24:return null;default:return null}}var sr=!1,ne=!1,mf=typeof WeakSet=="function"?WeakSet:Set,S=null;function An(e,n){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(r){A(e,n,r)}else t.current=null}function gi(e,n,t){try{t()}catch(r){A(e,n,r)}}var po=!1;function vf(e,n){if(ni=Nr,e=ds(),Bi(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{t=(t=e.ownerDocument)&&t.defaultView||window;var r=t.getSelection&&t.getSelection();if(r&&r.rangeCount!==0){t=r.anchorNode;var l=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{t.nodeType,i.nodeType}catch{t=null;break e}var u=0,o=-1,s=-1,d=0,v=0,m=e,p=null;n:for(;;){for(var g;m!==t||l!==0&&m.nodeType!==3||(o=u+l),m!==i||r!==0&&m.nodeType!==3||(s=u+r),m.nodeType===3&&(u+=m.nodeValue.length),(g=m.firstChild)!==null;)p=m,m=g;for(;;){if(m===e)break n;if(p===t&&++d===l&&(o=u),p===i&&++v===r&&(s=u),(g=m.nextSibling)!==null)break;m=p,p=m.parentNode}m=g}t=o===-1||s===-1?null:{start:o,end:s}}else t=null}t=t||{start:0,end:0}}else t=null;for(ti={focusedElem:e,selectionRange:t},Nr=!1,S=n;S!==null;)if(n=S,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,S=e;else for(;S!==null;){n=S;try{var w=n.alternate;if(n.flags&1024)switch(n.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var k=w.memoizedProps,O=w.memoizedState,c=n.stateNode,a=c.getSnapshotBeforeUpdate(n.elementType===n.type?k:_e(n.type,k),O);c.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var f=n.stateNode.containerInfo;f.nodeType===1?f.textContent="":f.nodeType===9&&f.documentElement&&f.removeChild(f.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(y(163))}}catch(h){A(n,n.return,h)}if(e=n.sibling,e!==null){e.return=n.return,S=e;break}S=n.return}return w=po,po=!1,w}function Ct(e,n,t){var r=n.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var i=l.destroy;l.destroy=void 0,i!==void 0&&gi(n,t,i)}l=l.next}while(l!==r)}}function br(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function wi(e){var n=e.ref;if(n!==null){var t=e.stateNode;switch(e.tag){case 5:e=t;break;default:e=t}typeof n=="function"?n(e):n.current=e}}function aa(e){var n=e.alternate;n!==null&&(e.alternate=null,aa(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Re],delete n[It],delete n[ii],delete n[Zc],delete n[Jc])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ca(e){return e.tag===5||e.tag===3||e.tag===4}function mo(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ca(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ki(e,n,t){var r=e.tag;if(r===5||r===6)e=e.stateNode,n?t.nodeType===8?t.parentNode.insertBefore(e,n):t.insertBefore(e,n):(t.nodeType===8?(n=t.parentNode,n.insertBefore(e,t)):(n=t,n.appendChild(e)),t=t._reactRootContainer,t!=null||n.onclick!==null||(n.onclick=Tr));else if(r!==4&&(e=e.child,e!==null))for(ki(e,n,t),e=e.sibling;e!==null;)ki(e,n,t),e=e.sibling}function Si(e,n,t){var r=e.tag;if(r===5||r===6)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Si(e,n,t),e=e.sibling;e!==null;)Si(e,n,t),e=e.sibling}var Z=null,Ne=!1;function Ke(e,n,t){for(t=t.child;t!==null;)fa(e,n,t),t=t.sibling}function fa(e,n,t){if(Fe&&typeof Fe.onCommitFiberUnmount=="function")try{Fe.onCommitFiberUnmount($r,t)}catch{}switch(t.tag){case 5:ne||An(t,n);case 6:var r=Z,l=Ne;Z=null,Ke(e,n,t),Z=r,Ne=l,Z!==null&&(Ne?(e=Z,t=t.stateNode,e.nodeType===8?e.parentNode.removeChild(t):e.removeChild(t)):Z.removeChild(t.stateNode));break;case 18:Z!==null&&(Ne?(e=Z,t=t.stateNode,e.nodeType===8?xl(e.parentNode,t):e.nodeType===1&&xl(e,t),Mt(e)):xl(Z,t.stateNode));break;case 4:r=Z,l=Ne,Z=t.stateNode.containerInfo,Ne=!0,Ke(e,n,t),Z=r,Ne=l;break;case 0:case 11:case 14:case 15:if(!ne&&(r=t.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var i=l,u=i.destroy;i=i.tag,u!==void 0&&(i&2||i&4)&&gi(t,n,u),l=l.next}while(l!==r)}Ke(e,n,t);break;case 1:if(!ne&&(An(t,n),r=t.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=t.memoizedProps,r.state=t.memoizedState,r.componentWillUnmount()}catch(o){A(t,n,o)}Ke(e,n,t);break;case 21:Ke(e,n,t);break;case 22:t.mode&1?(ne=(r=ne)||t.memoizedState!==null,Ke(e,n,t),ne=r):Ke(e,n,t);break;default:Ke(e,n,t)}}function vo(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var t=e.stateNode;t===null&&(t=e.stateNode=new mf),n.forEach(function(r){var l=xf.bind(null,e,r);t.has(r)||(t.add(r),r.then(l,l))})}}function xe(e,n){var t=n.deletions;if(t!==null)for(var r=0;rl&&(l=u),r&=~i}if(r=l,r=Q()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*yf(r/1960))-r,10e?16:e,qe===null)var r=!1;else{if(e=qe,qe=null,Hr=0,L&6)throw Error(y(331));var l=L;for(L|=4,S=e.current;S!==null;){var i=S,u=i.child;if(S.flags&16){var o=i.deletions;if(o!==null){for(var s=0;sQ()-ou?kn(e,0):uu|=t),ce(e,n)}function wa(e,n){n===0&&(e.mode&1?(n=bt,bt<<=1,!(bt&130023424)&&(bt=4194304)):n=1);var t=le();e=Qe(e,n),e!==null&&(Qt(e,n,t),ce(e,t))}function Cf(e){var n=e.memoizedState,t=0;n!==null&&(t=n.retryLane),wa(e,t)}function xf(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(t=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(y(314))}r!==null&&r.delete(n),wa(e,t)}var ka;ka=function(e,n,t){if(e!==null)if(e.memoizedProps!==n.pendingProps||se.current)oe=!0;else{if(!(e.lanes&t)&&!(n.flags&128))return oe=!1,ff(e,n,t);oe=!!(e.flags&131072)}else oe=!1,I&&n.flags&1048576&&Cs(n,Rr,n.index);switch(n.lanes=0,n.tag){case 2:var r=n.type;yr(e,n),e=n.pendingProps;var l=Gn(n,te.current);Kn(n,t),l=eu(null,n,r,e,l,t);var i=nu();return n.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,ae(r)?(i=!0,Mr(n)):i=!1,n.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Gi(n),l.updater=Jr,n.stateNode=l,l._reactInternals=n,fi(n,r,e,t),n=mi(null,n,r,!0,i,t)):(n.tag=0,I&&i&&Hi(n),re(null,n,l,t),n=n.child),n;case 16:r=n.elementType;e:{switch(yr(e,n),e=n.pendingProps,l=r._init,r=l(r._payload),n.type=r,l=n.tag=Nf(r),e=_e(r,e),l){case 0:n=pi(null,n,r,e,t);break e;case 1:n=ao(null,n,r,e,t);break e;case 11:n=oo(null,n,r,e,t);break e;case 14:n=so(null,n,r,_e(r.type,e),t);break e}throw Error(y(306,r,""))}return n;case 0:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:_e(r,l),pi(e,n,r,l,t);case 1:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:_e(r,l),ao(e,n,r,l,t);case 3:e:{if(ra(n),e===null)throw Error(y(387));r=n.pendingProps,i=n.memoizedState,l=i.element,zs(e,n),Ir(n,r,null,t);var u=n.memoizedState;if(r=u.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:u.cache,pendingSuspenseBoundaries:u.pendingSuspenseBoundaries,transitions:u.transitions},n.updateQueue.baseState=i,n.memoizedState=i,n.flags&256){l=bn(Error(y(423)),n),n=co(e,n,r,t,l);break e}else if(r!==l){l=bn(Error(y(424)),n),n=co(e,n,r,t,l);break e}else for(de=tn(n.stateNode.containerInfo.firstChild),pe=n,I=!0,ze=null,t=Ms(n,null,r,t),n.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(Zn(),r===l){n=We(e,n,t);break e}re(e,n,r,t)}n=n.child}return n;case 5:return Ds(n),e===null&&si(n),r=n.type,l=n.pendingProps,i=e!==null?e.memoizedProps:null,u=l.children,ri(r,l)?u=null:i!==null&&ri(r,i)&&(n.flags|=32),ta(e,n),re(e,n,u,t),n.child;case 6:return e===null&&si(n),null;case 13:return la(e,n,t);case 4:return Zi(n,n.stateNode.containerInfo),r=n.pendingProps,e===null?n.child=Jn(n,null,r,t):re(e,n,r,t),n.child;case 11:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:_e(r,l),oo(e,n,r,l,t);case 7:return re(e,n,n.pendingProps,t),n.child;case 8:return re(e,n,n.pendingProps.children,t),n.child;case 12:return re(e,n,n.pendingProps.children,t),n.child;case 10:e:{if(r=n.type._context,l=n.pendingProps,i=n.memoizedProps,u=l.value,D(Fr,r._currentValue),r._currentValue=u,i!==null)if(Le(i.value,u)){if(i.children===l.children&&!se.current){n=We(e,n,t);break e}}else for(i=n.child,i!==null&&(i.return=n);i!==null;){var o=i.dependencies;if(o!==null){u=i.child;for(var s=o.firstContext;s!==null;){if(s.context===r){if(i.tag===1){s=Ae(-1,t&-t),s.tag=2;var d=i.updateQueue;if(d!==null){d=d.shared;var v=d.pending;v===null?s.next=s:(s.next=v.next,v.next=s),d.pending=s}}i.lanes|=t,s=i.alternate,s!==null&&(s.lanes|=t),ai(i.return,t,n),o.lanes|=t;break}s=s.next}}else if(i.tag===10)u=i.type===n.type?null:i.child;else if(i.tag===18){if(u=i.return,u===null)throw Error(y(341));u.lanes|=t,o=u.alternate,o!==null&&(o.lanes|=t),ai(u,t,n),u=i.sibling}else u=i.child;if(u!==null)u.return=i;else for(u=i;u!==null;){if(u===n){u=null;break}if(i=u.sibling,i!==null){i.return=u.return,u=i;break}u=u.return}i=u}re(e,n,l.children,t),n=n.child}return n;case 9:return l=n.type,r=n.pendingProps.children,Kn(n,t),l=Se(l),r=r(l),n.flags|=1,re(e,n,r,t),n.child;case 14:return r=n.type,l=_e(r,n.pendingProps),l=_e(r.type,l),so(e,n,r,l,t);case 15:return ea(e,n,n.type,n.pendingProps,t);case 17:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:_e(r,l),yr(e,n),n.tag=1,ae(r)?(e=!0,Mr(n)):e=!1,Kn(n,t),Ts(n,r,l),fi(n,r,l,t),mi(null,n,r,!0,e,t);case 19:return ia(e,n,t);case 22:return na(e,n,t)}throw Error(y(156,n.tag))};function Sa(e,n){return Yo(e,n)}function _f(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function we(e,n,t,r){return new _f(e,n,t,r)}function fu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Nf(e){if(typeof e=="function")return fu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Li)return 11;if(e===Mi)return 14}return 2}function on(e,n){var t=e.alternate;return t===null?(t=we(e.tag,n,e.key,e.mode),t.elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=e.flags&14680064,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function kr(e,n,t,r,l,i){var u=2;if(r=e,typeof e=="function")fu(e)&&(u=1);else if(typeof e=="string")u=5;else e:switch(e){case Mn:return Sn(t.children,l,i,n);case Ti:u=8,l|=8;break;case Ol:return e=we(12,t,n,l|2),e.elementType=Ol,e.lanes=i,e;case Il:return e=we(13,t,n,l),e.elementType=Il,e.lanes=i,e;case jl:return e=we(19,t,n,l),e.elementType=jl,e.lanes=i,e;case Lo:return nl(t,l,i,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Po:u=10;break e;case To:u=9;break e;case Li:u=11;break e;case Mi:u=14;break e;case Ye:u=16,r=null;break e}throw Error(y(130,e==null?e:typeof e,""))}return n=we(u,t,n,l),n.elementType=e,n.type=r,n.lanes=i,n}function Sn(e,n,t,r){return e=we(7,e,r,n),e.lanes=t,e}function nl(e,n,t,r){return e=we(22,e,r,n),e.elementType=Lo,e.lanes=t,e.stateNode={isHidden:!1},e}function Dl(e,n,t){return e=we(6,e,null,n),e.lanes=t,e}function Rl(e,n,t){return n=we(4,e.children!==null?e.children:[],e.key,n),n.lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function zf(e,n,t,r,l){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=pl(0),this.expirationTimes=pl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=pl(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function du(e,n,t,r,l,i,u,o,s){return e=new zf(e,n,t,o,s),n===1?(n=1,i===!0&&(n|=8)):n=0,i=we(3,null,null,n),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},Gi(i),e}function Pf(e,n,t){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(_a)}catch(e){console.error(e)}}_a(),Co.exports=ve;var Rf=Co.exports;const If=za(Rf);export{If as $,Rf as r}; diff --git a/_astro/index.BufDd4G-.js b/_astro/index.BufDd4G-.js new file mode 100644 index 0000000..5e93eb1 --- /dev/null +++ b/_astro/index.BufDd4G-.js @@ -0,0 +1,9 @@ +import{g as D}from"./_commonjsHelpers.Cpj98o6Y.js";function T(e,t){for(var n=0;nu[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var w={exports:{}},r={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var y=Symbol.for("react.element"),V=Symbol.for("react.portal"),F=Symbol.for("react.fragment"),U=Symbol.for("react.strict_mode"),q=Symbol.for("react.profiler"),L=Symbol.for("react.provider"),M=Symbol.for("react.context"),N=Symbol.for("react.forward_ref"),z=Symbol.for("react.suspense"),B=Symbol.for("react.memo"),H=Symbol.for("react.lazy"),$=Symbol.iterator;function W(e){return e===null||typeof e!="object"?null:(e=$&&e[$]||e["@@iterator"],typeof e=="function"?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},j=Object.assign,C={};function p(e,t,n){this.props=e,this.context=t,this.refs=C,this.updater=n||g}p.prototype.isReactComponent={};p.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};p.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function O(){}O.prototype=p.prototype;function v(e,t,n){this.props=e,this.context=t,this.refs=C,this.updater=n||g}var S=v.prototype=new O;S.constructor=v;j(S,p.prototype);S.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,E={current:null},P={key:!0,ref:!0,__self:!0,__source:!0};function I(e,t,n){var u,o={},c=null,s=null;if(t!=null)for(u in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(c=""+t.key),t)x.call(t,u)&&!P.hasOwnProperty(u)&&(o[u]=t[u]);var f=arguments.length-2;if(f===1)o.children=n;else if(1(r.current=!0,()=>{r.current=!1}),[]),r}function S(){const r=F(),[o,e]=t.useState(0),s=t.useCallback(()=>{r.current&&e(o+1)},[o]);return[t.useCallback(()=>B.postRender(s),[s]),o]}class T extends t.Component{getSnapshotBeforeUpdate(o){const e=this.props.childRef.current;if(e&&o.isPresent&&!this.props.isPresent){const s=this.props.sizeRef.current;s.height=e.offsetHeight||0,s.width=e.offsetWidth||0,s.top=e.offsetTop,s.left=e.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function A({children:r,isPresent:o}){const e=t.useId(),s=t.useRef(null),m=t.useRef({width:0,height:0,top:0,left:0}),{nonce:l}=t.useContext(L);return t.useInsertionEffect(()=>{const{width:d,height:u,top:x,left:p}=m.current;if(o||!s.current||!d||!u)return;s.current.dataset.motionPopId=e;const n=document.createElement("style");return l&&(n.nonce=l),document.head.appendChild(n),n.sheet&&n.sheet.insertRule(` + [data-motion-pop-id="${e}"] { + position: absolute !important; + width: ${d}px !important; + height: ${u}px !important; + top: ${x}px !important; + left: ${p}px !important; + } + `),()=>{document.head.removeChild(n)}},[o]),a.jsx(T,{isPresent:o,childRef:s,sizeRef:m,children:t.cloneElement(r,{ref:s})})}const P=({children:r,initial:o,isPresent:e,onExitComplete:s,custom:m,presenceAffectsLayout:l,mode:d})=>{const u=O(D),x=t.useId(),p=t.useMemo(()=>({id:x,initial:o,isPresent:e,custom:m,onExitComplete:n=>{u.set(n,!0);for(const c of u.values())if(!c)return;s&&s()},register:n=>(u.set(n,!1),()=>u.delete(n))}),l?[Math.random()]:[e]);return t.useMemo(()=>{u.forEach((n,c)=>u.set(c,!1))},[e]),t.useEffect(()=>{!e&&!u.size&&s&&s()},[e]),d==="popLayout"&&(r=a.jsx(A,{isPresent:e,children:r})),a.jsx(U.Provider,{value:p,children:r})};function D(){return new Map}function G(r){return t.useEffect(()=>()=>r(),[])}const h=r=>r.key||"";function H(r,o){r.forEach(e=>{const s=h(e);o.set(s,e)})}function V(r){const o=[];return t.Children.forEach(r,e=>{t.isValidElement(e)&&o.push(e)}),o}const N=({children:r,custom:o,initial:e=!0,onExitComplete:s,exitBeforeEnter:m,presenceAffectsLayout:l=!0,mode:d="sync"})=>{const u=t.useContext(b).forceRender||S()[0],x=F(),p=V(r);let n=p;const c=t.useRef(new Map).current,g=t.useRef(n),C=t.useRef(new Map).current,M=t.useRef(!0);if(I(()=>{M.current=!1,H(p,C),g.current=n}),G(()=>{M.current=!0,C.clear(),c.clear()}),M.current)return a.jsx(a.Fragment,{children:n.map(i=>a.jsx(P,{isPresent:!0,initial:e?void 0:!1,presenceAffectsLayout:l,mode:d,children:i},h(i)))});n=[...n];const y=g.current.map(h),j=p.map(h),K=y.length;for(let i=0;i{if(j.indexOf(f)!==-1)return;const w=C.get(f);if(!w)return;const $=y.indexOf(f);let E=i;if(!E){const k=()=>{c.delete(f);const z=Array.from(C.keys()).filter(R=>!j.includes(R));if(z.forEach(R=>C.delete(R)),g.current=p.filter(R=>{const v=h(R);return v===f||z.includes(v)}),!c.size){if(x.current===!1)return;u(),s&&s()}};E=a.jsx(P,{isPresent:!1,onExitComplete:k,custom:o,presenceAffectsLayout:l,mode:d,children:w},h(w)),c.set(f,E)}n.splice($,0,E)}),n=n.map(i=>{const f=i.key;return c.has(f)?i:a.jsx(P,{isPresent:!0,presenceAffectsLayout:l,mode:d,children:i},h(i))}),a.jsx(a.Fragment,{children:c.size?n:n.map(i=>t.cloneElement(i))})};export{N as A}; diff --git a/_astro/index.DVTHFJB7.js b/_astro/index.DVTHFJB7.js new file mode 100644 index 0000000..c8ee939 --- /dev/null +++ b/_astro/index.DVTHFJB7.js @@ -0,0 +1,41 @@ +import{r as c,$ as je}from"./index.BufDd4G-.js";import{r as we,$ as Ke}from"./index.BmB7TLDX.js";function w(){return w=Object.assign?Object.assign.bind():function(e){for(var t=1;te.forEach(n=>Ve(n,t))}function M(...e){return c.useCallback(Oe(...e),e)}function He(e,t=[]){let n=[];function r(a,s){const i=c.createContext(s),d=n.length;n=[...n,s];function f(l){const{scope:p,children:m,...y}=l,u=p?.[e][d]||i,h=c.useMemo(()=>y,Object.values(y));return c.createElement(u.Provider,{value:h},m)}function v(l,p){const m=p?.[e][d]||i,y=c.useContext(m);if(y)return y;if(s!==void 0)return s;throw new Error(`\`${l}\` must be used within \`${a}\``)}return f.displayName=a+"Provider",[f,v]}const o=()=>{const a=n.map(s=>c.createContext(s));return function(i){const d=i?.[e]||a;return c.useMemo(()=>({[`__scope${e}`]:{...i,[e]:d}}),[i,d])}};return o.scopeName=e,[r,Xe(o,...t)]}function Xe(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(a){const s=r.reduce((i,{useScope:d,scopeName:f})=>{const l=d(a)[`__scope${f}`];return{...i,...l}},{});return c.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return n.scopeName=t.scopeName,n}const oe=globalThis?.document?c.useLayoutEffect:()=>{},Ye=je.useId||(()=>{});let ze=0;function Z(e){const[t,n]=c.useState(Ye());return oe(()=>{e||n(r=>r??String(ze++))},[e]),e||(t?`radix-${t}`:"")}function A(e){const t=c.useRef(e);return c.useEffect(()=>{t.current=e}),c.useMemo(()=>(...n)=>{var r;return(r=t.current)===null||r===void 0?void 0:r.call(t,...n)},[])}function Ge({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=Ze({defaultProp:t,onChange:n}),a=e!==void 0,s=a?e:r,i=A(n),d=c.useCallback(f=>{if(a){const l=typeof f=="function"?f(e):f;l!==e&&i(l)}else o(f)},[a,e,o,i]);return[s,d]}function Ze({defaultProp:e,onChange:t}){const n=c.useState(e),[r]=n,o=c.useRef(r),a=A(t);return c.useEffect(()=>{o.current!==r&&(a(r),o.current=r)},[r,o,a]),n}const ue=c.forwardRef((e,t)=>{const{children:n,...r}=e,o=c.Children.toArray(n),a=o.find(Qe);if(a){const s=a.props.children,i=o.map(d=>d===a?c.Children.count(s)>1?c.Children.only(null):c.isValidElement(s)?s.props.children:null:d);return c.createElement(ce,w({},r,{ref:t}),c.isValidElement(s)?c.cloneElement(s,void 0,i):null)}return c.createElement(ce,w({},r,{ref:t}),n)});ue.displayName="Slot";const ce=c.forwardRef((e,t)=>{const{children:n,...r}=e;return c.isValidElement(n)?c.cloneElement(n,{...Je(r,n.props),ref:t?Oe(t,n.ref):n.ref}):c.Children.count(n)>1?c.Children.only(null):null});ce.displayName="SlotClone";const qe=({children:e})=>c.createElement(c.Fragment,null,e);function Qe(e){return c.isValidElement(e)&&e.type===qe}function Je(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...i)=>{a(...i),o(...i)}:o&&(n[r]=o):r==="style"?n[r]={...o,...a}:r==="className"&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}const et=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],U=et.reduce((e,t)=>{const n=c.forwardRef((r,o)=>{const{asChild:a,...s}=r,i=a?ue:t;return c.useEffect(()=>{window[Symbol.for("radix-ui")]=!0},[]),c.createElement(i,w({},s,{ref:o}))});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function tt(e,t){e&&we.flushSync(()=>e.dispatchEvent(t))}function nt(e,t=globalThis?.document){const n=A(e);c.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r),()=>t.removeEventListener("keydown",r)},[n,t])}const ae="dismissableLayer.update",rt="dismissableLayer.pointerDownOutside",ot="dismissableLayer.focusOutside";let fe;const ct=c.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),at=c.forwardRef((e,t)=>{var n;const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:i,onDismiss:d,...f}=e,v=c.useContext(ct),[l,p]=c.useState(null),m=(n=l?.ownerDocument)!==null&&n!==void 0?n:globalThis?.document,[,y]=c.useState({}),u=M(t,E=>p(E)),h=Array.from(v.layers),[b]=[...v.layersWithOutsidePointerEventsDisabled].slice(-1),S=h.indexOf(b),$=l?h.indexOf(l):-1,g=v.layersWithOutsidePointerEventsDisabled.size>0,C=$>=S,F=it(E=>{const x=E.target,de=[...v.branches].some(G=>G.contains(x));!C||de||(a?.(E),i?.(E),E.defaultPrevented||d?.())},m),P=st(E=>{const x=E.target;[...v.branches].some(G=>G.contains(x))||(s?.(E),i?.(E),E.defaultPrevented||d?.())},m);return nt(E=>{$===v.layers.size-1&&(o?.(E),!E.defaultPrevented&&d&&(E.preventDefault(),d()))},m),c.useEffect(()=>{if(l)return r&&(v.layersWithOutsidePointerEventsDisabled.size===0&&(fe=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),v.layersWithOutsidePointerEventsDisabled.add(l)),v.layers.add(l),ve(),()=>{r&&v.layersWithOutsidePointerEventsDisabled.size===1&&(m.body.style.pointerEvents=fe)}},[l,m,r,v]),c.useEffect(()=>()=>{l&&(v.layers.delete(l),v.layersWithOutsidePointerEventsDisabled.delete(l),ve())},[l,v]),c.useEffect(()=>{const E=()=>y({});return document.addEventListener(ae,E),()=>document.removeEventListener(ae,E)},[]),c.createElement(U.div,w({},f,{ref:u,style:{pointerEvents:g?C?"auto":"none":void 0,...e.style},onFocusCapture:T(e.onFocusCapture,P.onFocusCapture),onBlurCapture:T(e.onBlurCapture,P.onBlurCapture),onPointerDownCapture:T(e.onPointerDownCapture,F.onPointerDownCapture)}))});function it(e,t=globalThis?.document){const n=A(e),r=c.useRef(!1),o=c.useRef(()=>{});return c.useEffect(()=>{const a=i=>{if(i.target&&!r.current){let f=function(){Pe(rt,n,d,{discrete:!0})};const d={originalEvent:i};i.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=f,t.addEventListener("click",o.current,{once:!0})):f()}else t.removeEventListener("click",o.current);r.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",a),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function st(e,t=globalThis?.document){const n=A(e),r=c.useRef(!1);return c.useEffect(()=>{const o=a=>{a.target&&!r.current&&Pe(ot,n,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function ve(){const e=new CustomEvent(ae);document.dispatchEvent(e)}function Pe(e,t,n,{discrete:r}){const o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?tt(o,a):o.dispatchEvent(a)}const q="focusScope.autoFocusOnMount",Q="focusScope.autoFocusOnUnmount",me={bubbles:!1,cancelable:!0},ut=c.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...s}=e,[i,d]=c.useState(null),f=A(o),v=A(a),l=c.useRef(null),p=M(t,u=>d(u)),m=c.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;c.useEffect(()=>{if(r){let u=function($){if(m.paused||!i)return;const g=$.target;i.contains(g)?l.current=g:R(l.current,{select:!0})},h=function($){if(m.paused||!i)return;const g=$.relatedTarget;g!==null&&(i.contains(g)||R(l.current,{select:!0}))},b=function($){if(document.activeElement===document.body)for(const C of $)C.removedNodes.length>0&&R(i)};document.addEventListener("focusin",u),document.addEventListener("focusout",h);const S=new MutationObserver(b);return i&&S.observe(i,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",u),document.removeEventListener("focusout",h),S.disconnect()}}},[r,i,m.paused]),c.useEffect(()=>{if(i){he.add(m);const u=document.activeElement;if(!i.contains(u)){const b=new CustomEvent(q,me);i.addEventListener(q,f),i.dispatchEvent(b),b.defaultPrevented||(lt(pt(Re(i)),{select:!0}),document.activeElement===u&&R(i))}return()=>{i.removeEventListener(q,f),setTimeout(()=>{const b=new CustomEvent(Q,me);i.addEventListener(Q,v),i.dispatchEvent(b),b.defaultPrevented||R(u??document.body,{select:!0}),i.removeEventListener(Q,v),he.remove(m)},0)}}},[i,f,v,m]);const y=c.useCallback(u=>{if(!n&&!r||m.paused)return;const h=u.key==="Tab"&&!u.altKey&&!u.ctrlKey&&!u.metaKey,b=document.activeElement;if(h&&b){const S=u.currentTarget,[$,g]=dt(S);$&&g?!u.shiftKey&&b===g?(u.preventDefault(),n&&R($,{select:!0})):u.shiftKey&&b===$&&(u.preventDefault(),n&&R(g,{select:!0})):b===S&&u.preventDefault()}},[n,r,m.paused]);return c.createElement(U.div,w({tabIndex:-1},s,{ref:p,onKeyDown:y}))});function lt(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(R(r,{select:t}),document.activeElement!==n)return}function dt(e){const t=Re(e),n=pe(t,e),r=pe(t.reverse(),e);return[n,r]}function Re(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function pe(e,t){for(const n of e)if(!ft(n,{upTo:t}))return n}function ft(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function vt(e){return e instanceof HTMLInputElement&&"select"in e}function R(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&vt(e)&&t&&e.select()}}const he=mt();function mt(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=be(e,t),e.unshift(t)},remove(t){var n;e=be(e,t),(n=e[0])===null||n===void 0||n.resume()}}}function be(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function pt(e){return e.filter(t=>t.tagName!=="A")}const ht=c.forwardRef((e,t)=>{var n;const{container:r=globalThis==null||(n=globalThis.document)===null||n===void 0?void 0:n.body,...o}=e;return r?Ke.createPortal(c.createElement(U.div,w({},o,{ref:t})),r):null});function bt(e,t){return c.useReducer((n,r)=>{const o=t[n][r];return o??n},e)}const Y=e=>{const{present:t,children:n}=e,r=$t(t),o=typeof n=="function"?n({present:r.isPresent}):c.Children.only(n),a=M(r.ref,o.ref);return typeof n=="function"||r.isPresent?c.cloneElement(o,{ref:a}):null};Y.displayName="Presence";function $t(e){const[t,n]=c.useState(),r=c.useRef({}),o=c.useRef(e),a=c.useRef("none"),s=e?"mounted":"unmounted",[i,d]=bt(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return c.useEffect(()=>{const f=W(r.current);a.current=i==="mounted"?f:"none"},[i]),oe(()=>{const f=r.current,v=o.current;if(v!==e){const p=a.current,m=W(f);e?d("MOUNT"):m==="none"||f?.display==="none"?d("UNMOUNT"):d(v&&p!==m?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,d]),oe(()=>{if(t){const f=l=>{const m=W(r.current).includes(l.animationName);l.target===t&&m&&we.flushSync(()=>d("ANIMATION_END"))},v=l=>{l.target===t&&(a.current=W(r.current))};return t.addEventListener("animationstart",v),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{t.removeEventListener("animationstart",v),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:c.useCallback(f=>{f&&(r.current=getComputedStyle(f)),n(f)},[])}}function W(e){return e?.animationName||"none"}let J=0;function gt(){c.useEffect(()=>{var e,t;const n=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(e=n[0])!==null&&e!==void 0?e:$e()),document.body.insertAdjacentElement("beforeend",(t=n[1])!==null&&t!==void 0?t:$e()),J++,()=>{J===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),J--}},[])}function $e(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",e}var O=function(){return O=Object.assign||function(t){for(var n,r=1,o=arguments.length;r"u")return Mt;var t=Ft(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Ut=Ae(),L="data-scroll-locked",Wt=function(e,t,n,r){var o=e.left,a=e.top,s=e.right,i=e.gap;return n===void 0&&(n="margin"),` + .`.concat(yt,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(i,"px ").concat(r,`; + } + body[`).concat(L,`] { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(o,`px; + padding-top: `).concat(a,`px; + padding-right: `).concat(s,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(i,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(i,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(H,` { + right: `).concat(i,"px ").concat(r,`; + } + + .`).concat(X,` { + margin-right: `).concat(i,"px ").concat(r,`; + } + + .`).concat(H," .").concat(H,` { + right: 0 `).concat(r,`; + } + + .`).concat(X," .").concat(X,` { + margin-right: 0 `).concat(r,`; + } + + body[`).concat(L,`] { + `).concat(Ct,": ").concat(i,`px; + } +`)},Ee=function(){var e=parseInt(document.body.getAttribute(L)||"0",10);return isFinite(e)?e:0},Bt=function(){c.useEffect(function(){return document.body.setAttribute(L,(Ee()+1).toString()),function(){var e=Ee()-1;e<=0?document.body.removeAttribute(L):document.body.setAttribute(L,e.toString())}},[])},jt=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;Bt();var a=c.useMemo(function(){return kt(o)},[o]);return c.createElement(Ut,{styles:Wt(a,!t,o,n?"":"!important")})},ie=!1;if(typeof window<"u")try{var B=Object.defineProperty({},"passive",{get:function(){return ie=!0,!0}});window.addEventListener("test",B,B),window.removeEventListener("test",B,B)}catch{ie=!1}var N=ie?{passive:!1}:!1,Kt=function(e){return e.tagName==="TEXTAREA"},Ne=function(e,t){var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!Kt(e)&&n[t]==="visible")},Vt=function(e){return Ne(e,"overflowY")},Ht=function(e){return Ne(e,"overflowX")},ye=function(e,t){var n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var r=_e(e,n);if(r){var o=Ie(e,n),a=o[1],s=o[2];if(a>s)return!0}n=n.parentNode}while(n&&n!==document.body);return!1},Xt=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},Yt=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},_e=function(e,t){return e==="v"?Vt(t):Ht(t)},Ie=function(e,t){return e==="v"?Xt(t):Yt(t)},zt=function(e,t){return e==="h"&&t==="rtl"?-1:1},Gt=function(e,t,n,r,o){var a=zt(e,window.getComputedStyle(t).direction),s=a*r,i=n.target,d=t.contains(i),f=!1,v=s>0,l=0,p=0;do{var m=Ie(e,i),y=m[0],u=m[1],h=m[2],b=u-h-a*y;(y||b)&&_e(e,i)&&(l+=b,p+=y),i=i.parentNode}while(!d&&i!==document.body||d&&(t.contains(i)||t===i));return(v&&(o&&l===0||!o&&s>l)||!v&&(o&&p===0||!o&&-s>p))&&(f=!0),f},j=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Ce=function(e){return[e.deltaX,e.deltaY]},Se=function(e){return e&&"current"in e?e.current:e},Zt=function(e,t){return e[0]===t[0]&&e[1]===t[1]},qt=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},Qt=0,_=[];function Jt(e){var t=c.useRef([]),n=c.useRef([0,0]),r=c.useRef(),o=c.useState(Qt++)[0],a=c.useState(function(){return Ae()})[0],s=c.useRef(e);c.useEffect(function(){s.current=e},[e]),c.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var u=Et([e.lockRef.current],(e.shards||[]).map(Se),!0).filter(Boolean);return u.forEach(function(h){return h.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),u.forEach(function(h){return h.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var i=c.useCallback(function(u,h){if("touches"in u&&u.touches.length===2)return!s.current.allowPinchZoom;var b=j(u),S=n.current,$="deltaX"in u?u.deltaX:S[0]-b[0],g="deltaY"in u?u.deltaY:S[1]-b[1],C,F=u.target,P=Math.abs($)>Math.abs(g)?"h":"v";if("touches"in u&&P==="h"&&F.type==="range")return!1;var E=ye(P,F);if(!E)return!0;if(E?C=P:(C=P==="v"?"h":"v",E=ye(P,F)),!E)return!1;if(!r.current&&"changedTouches"in u&&($||g)&&(r.current=C),!C)return!0;var x=r.current||C;return Gt(x,h,u,x==="h"?$:g,!0)},[]),d=c.useCallback(function(u){var h=u;if(!(!_.length||_[_.length-1]!==a)){var b="deltaY"in h?Ce(h):j(h),S=t.current.filter(function(C){return C.name===h.type&&C.target===h.target&&Zt(C.delta,b)})[0];if(S&&S.should){h.cancelable&&h.preventDefault();return}if(!S){var $=(s.current.shards||[]).map(Se).filter(Boolean).filter(function(C){return C.contains(h.target)}),g=$.length>0?i(h,$[0]):!s.current.noIsolation;g&&h.cancelable&&h.preventDefault()}}},[]),f=c.useCallback(function(u,h,b,S){var $={name:u,delta:h,target:b,should:S};t.current.push($),setTimeout(function(){t.current=t.current.filter(function(g){return g!==$})},1)},[]),v=c.useCallback(function(u){n.current=j(u),r.current=void 0},[]),l=c.useCallback(function(u){f(u.type,Ce(u),u.target,i(u,e.lockRef.current))},[]),p=c.useCallback(function(u){f(u.type,j(u),u.target,i(u,e.lockRef.current))},[]);c.useEffect(function(){return _.push(a),e.setCallbacks({onScrollCapture:l,onWheelCapture:l,onTouchMoveCapture:p}),document.addEventListener("wheel",d,N),document.addEventListener("touchmove",d,N),document.addEventListener("touchstart",v,N),function(){_=_.filter(function(u){return u!==a}),document.removeEventListener("wheel",d,N),document.removeEventListener("touchmove",d,N),document.removeEventListener("touchstart",v,N)}},[]);var m=e.removeScrollBar,y=e.inert;return c.createElement(c.Fragment,null,y?c.createElement(a,{styles:qt(o)}):null,m?c.createElement(jt,{gapMode:"margin"}):null)}const en=xt(Te,Jt);var Le=c.forwardRef(function(e,t){return c.createElement(z,O({},e,{ref:t,sideCar:en}))});Le.classNames=z.classNames;const tn=Le;var nn=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},I=new WeakMap,K=new WeakMap,V={},re=0,Me=function(e){return e&&(e.host||Me(e.parentNode))},rn=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=Me(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},on=function(e,t,n,r){var o=rn(t,Array.isArray(e)?e:[e]);V[n]||(V[n]=new WeakMap);var a=V[n],s=[],i=new Set,d=new Set(o),f=function(l){!l||i.has(l)||(i.add(l),f(l.parentNode))};o.forEach(f);var v=function(l){!l||d.has(l)||Array.prototype.forEach.call(l.children,function(p){if(i.has(p))v(p);else try{var m=p.getAttribute(r),y=m!==null&&m!=="false",u=(I.get(p)||0)+1,h=(a.get(p)||0)+1;I.set(p,u),a.set(p,h),s.push(p),u===1&&y&&K.set(p,!0),h===1&&p.setAttribute(n,"true"),y||p.setAttribute(r,"true")}catch(b){console.error("aria-hidden: cannot operate on ",p,b)}})};return v(t),i.clear(),re++,function(){s.forEach(function(l){var p=I.get(l)-1,m=a.get(l)-1;I.set(l,p),a.set(l,m),p||(K.has(l)||l.removeAttribute(r),K.delete(l)),m||l.removeAttribute(n)}),re--,re||(I=new WeakMap,I=new WeakMap,K=new WeakMap,V={})}},cn=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||nn(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live]"))),on(r,o,n,"aria-hidden")):function(){return null}};const Fe="Dialog",[ke,En]=He(Fe),[an,D]=ke(Fe),sn=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:a,modal:s=!0}=e,i=c.useRef(null),d=c.useRef(null),[f=!1,v]=Ge({prop:r,defaultProp:o,onChange:a});return c.createElement(an,{scope:t,triggerRef:i,contentRef:d,contentId:Z(),titleId:Z(),descriptionId:Z(),open:f,onOpenChange:v,onOpenToggle:c.useCallback(()=>v(l=>!l),[v]),modal:s},n)},un="DialogTrigger",ln=c.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=D(un,n),a=M(t,o.triggerRef);return c.createElement(U.button,w({type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":le(o.open)},r,{ref:a,onClick:T(e.onClick,o.onOpenToggle)}))}),Ue="DialogPortal",[dn,We]=ke(Ue,{forceMount:void 0}),fn=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,a=D(Ue,t);return c.createElement(dn,{scope:t,forceMount:n},c.Children.map(r,s=>c.createElement(Y,{present:n||a.open},c.createElement(ht,{asChild:!0,container:o},s))))},se="DialogOverlay",vn=c.forwardRef((e,t)=>{const n=We(se,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=D(se,e.__scopeDialog);return a.modal?c.createElement(Y,{present:r||a.open},c.createElement(mn,w({},o,{ref:t}))):null}),mn=c.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=D(se,n);return c.createElement(tn,{as:ue,allowPinchZoom:!0,shards:[o.contentRef]},c.createElement(U.div,w({"data-state":le(o.open)},r,{ref:t,style:{pointerEvents:"auto",...r.style}})))}),k="DialogContent",pn=c.forwardRef((e,t)=>{const n=We(k,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=D(k,e.__scopeDialog);return c.createElement(Y,{present:r||a.open},a.modal?c.createElement(hn,w({},o,{ref:t})):c.createElement(bn,w({},o,{ref:t})))}),hn=c.forwardRef((e,t)=>{const n=D(k,e.__scopeDialog),r=c.useRef(null),o=M(t,n.contentRef,r);return c.useEffect(()=>{const a=r.current;if(a)return cn(a)},[]),c.createElement(Be,w({},e,{ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:T(e.onCloseAutoFocus,a=>{var s;a.preventDefault(),(s=n.triggerRef.current)===null||s===void 0||s.focus()}),onPointerDownOutside:T(e.onPointerDownOutside,a=>{const s=a.detail.originalEvent,i=s.button===0&&s.ctrlKey===!0;(s.button===2||i)&&a.preventDefault()}),onFocusOutside:T(e.onFocusOutside,a=>a.preventDefault())}))}),bn=c.forwardRef((e,t)=>{const n=D(k,e.__scopeDialog),r=c.useRef(!1),o=c.useRef(!1);return c.createElement(Be,w({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{var s;if((s=e.onCloseAutoFocus)===null||s===void 0||s.call(e,a),!a.defaultPrevented){var i;r.current||(i=n.triggerRef.current)===null||i===void 0||i.focus(),a.preventDefault()}r.current=!1,o.current=!1},onInteractOutside:a=>{var s,i;(s=e.onInteractOutside)===null||s===void 0||s.call(e,a),a.defaultPrevented||(r.current=!0,a.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const d=a.target;((i=n.triggerRef.current)===null||i===void 0?void 0:i.contains(d))&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&o.current&&a.preventDefault()}}))}),Be=c.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:a,...s}=e,i=D(k,n),d=c.useRef(null),f=M(t,d);return gt(),c.createElement(c.Fragment,null,c.createElement(ut,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:a},c.createElement(at,w({role:"dialog",id:i.contentId,"aria-describedby":i.descriptionId,"aria-labelledby":i.titleId,"data-state":le(i.open)},s,{ref:f,onDismiss:()=>i.onOpenChange(!1)}))),!1)});function le(e){return e?"open":"closed"}const yn=sn,Cn=ln,Sn=fn,wn=vn,On=pn;export{yn as $,Cn as a,Sn as b,wn as c,On as d}; diff --git a/_astro/jsx-runtime.CPK7-dcL.js b/_astro/jsx-runtime.CPK7-dcL.js new file mode 100644 index 0000000..9139357 --- /dev/null +++ b/_astro/jsx-runtime.CPK7-dcL.js @@ -0,0 +1,9 @@ +import{r as l}from"./index.BufDd4G-.js";var f={exports:{}},n={};/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var u=l,m=Symbol.for("react.element"),x=Symbol.for("react.fragment"),y=Object.prototype.hasOwnProperty,a=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,v={key:!0,ref:!0,__self:!0,__source:!0};function i(t,r,p){var e,o={},s=null,_=null;p!==void 0&&(s=""+p),r.key!==void 0&&(s=""+r.key),r.ref!==void 0&&(_=r.ref);for(e in r)y.call(r,e)&&!v.hasOwnProperty(e)&&(o[e]=r[e]);if(t&&t.defaultProps)for(e in r=t.defaultProps,r)o[e]===void 0&&(o[e]=r[e]);return{$$typeof:m,type:t,key:s,ref:_,props:o,_owner:a.current}}n.Fragment=x;n.jsx=i;n.jsxs=i;f.exports=n;var d=f.exports;export{d as j}; diff --git a/_astro/metaInfo.Cz7K8-yW.js b/_astro/metaInfo.Cz7K8-yW.js new file mode 100644 index 0000000..817d35c --- /dev/null +++ b/_astro/metaInfo.Cz7K8-yW.js @@ -0,0 +1 @@ +import{b as t}from"./react.DwV23UbX.js";const r=t(""),n=t(""),c=t(""),e=t(""),p=t(o=>{const s=o(n),a=o(c),m=o(e);return s!==""&&a!==""&&m!==""});export{n as a,c as b,p as h,e as m,r as p}; diff --git a/_astro/modal.CElNq7ZG.js b/_astro/modal.CElNq7ZG.js new file mode 100644 index 0000000..166cccf --- /dev/null +++ b/_astro/modal.CElNq7ZG.js @@ -0,0 +1 @@ +import"./index.BufDd4G-.js";import{C as x,m as n}from"./context.CJffD2Ld.js";import{j as e}from"./jsx-runtime.CPK7-dcL.js";import{$ as l,b as p,c as f,d as b}from"./index.DVTHFJB7.js";import{m as u}from"./motion.BDB0jV8x.js";import{a as $,u as j}from"./react.DwV23UbX.js";import{A as y}from"./index.D5WDNt1Z.js";import"./_commonjsHelpers.Cpj98o6Y.js";import"./index.BmB7TLDX.js";import"./SVGVisualElement.De6LOhF_.js";function h({children:s,index:t,id:i}){const a=1e3+t,c=1e3+t+1,d=$(n),r=()=>{d(o=>o.filter(m=>m.id!==i))};return e.jsx(l,{open:!0,onOpenChange:o=>{o||r()},children:e.jsxs(p,{children:[e.jsx(f,{asChild:!0,children:e.jsx(u.div,{className:"fixed inset-0 bg-gray-800/40",style:{zIndex:a},initial:{opacity:0},animate:{opacity:1},exit:{opacity:0,transition:{delay:.1}}})}),e.jsx(b,{className:"fixed inset-0 flex items-center justify-center",style:{zIndex:c},onClick:o=>{o.target===o.currentTarget&&r()},children:e.jsx(x.Provider,{value:{dismiss:r},children:s})})]})})}function P(){const s=j(n);return e.jsx(y,{children:s.map((t,i)=>e.jsx(h,{index:i,id:t.id,children:t.content},t.id))})}export{P as ModalStack}; diff --git a/_astro/motion.BDB0jV8x.js b/_astro/motion.BDB0jV8x.js new file mode 100644 index 0000000..e87ec45 --- /dev/null +++ b/_astro/motion.BDB0jV8x.js @@ -0,0 +1 @@ +import{j as mt}from"./jsx-runtime.CPK7-dcL.js";import{r as g}from"./index.BufDd4G-.js";import{t as ye,u as ti,w as ei,x as $,y as ve,z as pt,A as Mt,j as Tt,B as ii,C as si,D as Pe,E as xe,F as ni,G as oi,I as St,J as ri,K as ai,f as M,L as li,M as ci,N as H,O as j,P as At,q as Te,Q as jt,R as Se,c as K,n as ui,e as hi,T as C,h as S,p as gt,U as Ae,V as T,W as fi,X as di,Y as mi,Z as Q,_ as pi,$ as De,a0 as Bt,a1 as gi,a2 as yi,a3 as kt,a4 as Ce,r as Le,a5 as Ve,a6 as vi,a as Pi,a7 as xi,a8 as rt,a9 as O,aa as U,ab as Y,ac as Ft,ad as Ti,ae as Si,af as Ai,ag as G,o as Di,ah as It,S as Ci,H as Li}from"./SVGVisualElement.De6LOhF_.js";const we=g.createContext({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"}),et=g.createContext({}),Dt=g.createContext(null),Vi=ye?g.useLayoutEffect:g.useEffect,Ee=g.createContext({strict:!1}),{schedule:Ct,cancel:wn}=ti(queueMicrotask,!1);function wi(t,e,i,s){const{visualElement:o}=g.useContext(et),h=g.useContext(Ee),n=g.useContext(Dt),r=g.useContext(we).reducedMotion,a=g.useRef();s=s||h.renderer,!a.current&&s&&(a.current=s(t,{visualState:e,parent:o,props:i,presenceContext:n,blockInitialAnimation:n?n.initial===!1:!1,reducedMotionConfig:r}));const l=a.current;g.useInsertionEffect(()=>{l&&l.update(i,n)});const c=g.useRef(!!(i[ei]&&!window.HandoffComplete));return Vi(()=>{l&&(Ct.postRender(l.render),c.current&&l.animationState&&l.animationState.animateChanges())}),g.useEffect(()=>{l&&(l.updateFeatures(),!c.current&&l.animationState&&l.animationState.animateChanges(),c.current&&(c.current=!1,window.HandoffComplete=!0))}),l}function Ei(t,e,i){return g.useCallback(s=>{s&&t.mount&&t.mount(s),e&&(s?e.mount(s):e.unmount()),i&&(typeof i=="function"?i(s):$(i)&&(i.current=s))},[e])}function bi(t,e){if(ve(t)){const{initial:i,animate:s}=t;return{initial:i===!1||pt(i)?i:void 0,animate:pt(s)?s:void 0}}return t.inherit!==!1?e:{}}function Ri(t){const{initial:e,animate:i}=bi(t,g.useContext(et));return g.useMemo(()=>({initial:e,animate:i}),[Ot(e),Ot(i)])}function Ot(t){return Array.isArray(t)?t.join(" "):t}function Mi(t){for(const e in t)Mt[e]={...Mt[e],...t[e]}}const be=g.createContext({}),Re=g.createContext({}),ji=Symbol.for("motionComponentSymbol");function Bi({preloadedFeatures:t,createVisualElement:e,useRender:i,useVisualState:s,Component:o}){t&&Mi(t);function h(r,a){let l;const c={...g.useContext(we),...r,layoutId:ki(r)},{isStatic:u}=c,f=Ri(r),d=s(r,u);if(!u&&ye){f.visualElement=wi(o,d,c,e);const p=g.useContext(Re),m=g.useContext(Ee).strict;f.visualElement&&(l=f.visualElement.loadFeatures(c,m,t,p))}return mt.jsxs(et.Provider,{value:f,children:[l&&f.visualElement?mt.jsx(l,{visualElement:f.visualElement,...c}):null,i(o,r,Ei(d,f.visualElement,a),d,u,f.visualElement)]})}const n=g.forwardRef(h);return n[ji]=o,n}function ki({layoutId:t}){const e=g.useContext(be).id;return e&&t!==void 0?e+"-"+t:t}function Fi(t){function e(s,o={}){return Bi(t(s,o))}if(typeof Proxy>"u")return e;const i=new Map;return new Proxy(e,{get:(s,o)=>(i.has(o)||i.set(o,e(o)),i.get(o))})}const Ii=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Lt(t){return typeof t!="string"||t.includes("-")?!1:!!(Ii.indexOf(t)>-1||/[A-Z]/u.test(t))}const Vt=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Me(t,e,i){for(const s in e)!Tt(e[s])&&!ii(s,i)&&(t[s]=e[s])}function Oi({transformTemplate:t},e,i){return g.useMemo(()=>{const s=Vt();return si(s,e,{enableHardwareAcceleration:!i},t),Object.assign({},s.vars,s.style)},[e])}function Ui(t,e,i){const s=t.style||{},o={};return Me(o,s,t),Object.assign(o,Oi(t,e,i)),o}function Gi(t,e,i){const s={},o=Ui(t,e,i);return t.drag&&t.dragListener!==!1&&(s.draggable=!1,o.userSelect=o.WebkitUserSelect=o.WebkitTouchCallout="none",o.touchAction=t.drag===!0?"none":`pan-${t.drag==="x"?"y":"x"}`),t.tabIndex===void 0&&(t.onTap||t.onTapStart||t.whileTap)&&(s.tabIndex=0),s.style=o,s}const Hi=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function tt(t){return t.startsWith("while")||t.startsWith("drag")&&t!=="draggable"||t.startsWith("layout")||t.startsWith("onTap")||t.startsWith("onPan")||t.startsWith("onLayout")||Hi.has(t)}let je=t=>!tt(t);function Ni(t){t&&(je=e=>e.startsWith("on")?!tt(e):t(e))}try{Ni(require("@emotion/is-prop-valid").default)}catch{}function Wi(t,e,i){const s={};for(const o in t)o==="values"&&typeof t.values=="object"||(je(o)||i===!0&&tt(o)||!e&&!tt(o)||t.draggable&&o.startsWith("onDrag"))&&(s[o]=t[o]);return s}const Be=()=>({...Vt(),attrs:{}});function $i(t,e,i,s){const o=g.useMemo(()=>{const h=Be();return Pe(h,e,{enableHardwareAcceleration:!1},xe(s),t.transformTemplate),{...h.attrs,style:{...h.style}}},[e]);if(t.style){const h={};Me(h,t.style,t),o.style={...h,...o.style}}return o}function zi(t=!1){return(i,s,o,{latestValues:h},n)=>{const a=(Lt(i)?$i:Gi)(s,h,n,i),l=Wi(s,typeof i=="string",t),c=i!==g.Fragment?{...l,...a,ref:o}:{},{children:u}=s,f=g.useMemo(()=>Tt(u)?u.get():u,[u]);return g.createElement(i,{...c,children:f})}}function _i(t){const e=g.useRef(null);return e.current===null&&(e.current=t()),e.current}function Z(t){const e=Tt(t)?t.get():t;return ni(e)?e.toValue():e}function Ki({scrapeMotionValuesFromProps:t,createRenderState:e,onMount:i},s,o,h){const n={latestValues:Xi(s,o,h,t),renderState:e()};return i&&(n.mount=r=>i(s,r,n)),n}const ke=t=>(e,i)=>{const s=g.useContext(et),o=g.useContext(Dt),h=()=>Ki(t,e,s,o);return i?h():_i(h)};function Xi(t,e,i,s){const o={},h=s(t,{});for(const f in h)o[f]=Z(h[f]);let{initial:n,animate:r}=t;const a=ve(t),l=oi(t);e&&l&&!a&&t.inherit!==!1&&(n===void 0&&(n=e.initial),r===void 0&&(r=e.animate));let c=i?i.initial===!1:!1;c=c||n===!1;const u=c?r:n;return u&&typeof u!="boolean"&&!St(u)&&(Array.isArray(u)?u:[u]).forEach(d=>{const p=ri(t,d);if(!p)return;const{transitionEnd:m,transition:x,...v}=p;for(const P in v){let y=v[P];if(Array.isArray(y)){const A=c?y.length-1:0;y=y[A]}y!==null&&(o[P]=y)}for(const P in m)o[P]=m[P]}),o}const Yi={useVisualState:ke({scrapeMotionValuesFromProps:ai,createRenderState:Be,onMount:(t,e,{renderState:i,latestValues:s})=>{M.read(()=>{try{i.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{i.dimensions={x:0,y:0,width:0,height:0}}}),M.render(()=>{Pe(i,s,{enableHardwareAcceleration:!1},xe(e.tagName),t.transformTemplate),li(e,i)})}})},qi={useVisualState:ke({scrapeMotionValuesFromProps:ci,createRenderState:Vt})};function Zi(t,{forwardMotionProps:e=!1},i,s){return{...Lt(t)?Yi:qi,preloadedFeatures:i,useRender:zi(e),createVisualElement:s,Component:t}}function R(t,e,i,s={passive:!0}){return t.addEventListener(e,i,s),()=>t.removeEventListener(e,i)}const Fe=t=>t.pointerType==="mouse"?typeof t.button!="number"||t.button<=0:t.isPrimary!==!1;function it(t,e="page"){return{point:{x:t[`${e}X`],y:t[`${e}Y`]}}}const Ji=t=>e=>Fe(e)&&t(e,it(e));function B(t,e,i,s){return R(t,e,Ji(i),s)}function Ie(t){let e=null;return()=>{const i=()=>{e=null};return e===null?(e=t,i):!1}}const Ut=Ie("dragHorizontal"),Gt=Ie("dragVertical");function Oe(t){let e=!1;if(t==="y")e=Gt();else if(t==="x")e=Ut();else{const i=Ut(),s=Gt();i&&s?e=()=>{i(),s()}:(i&&i(),s&&s())}return e}function Ue(){const t=Oe(!0);return t?(t(),!1):!0}class k{constructor(e){this.isMounted=!1,this.node=e}update(){}}function Ht(t,e){const i=e?"pointerenter":"pointerleave",s=e?"onHoverStart":"onHoverEnd",o=(h,n)=>{if(h.pointerType==="touch"||Ue())return;const r=t.getProps();t.animationState&&r.whileHover&&t.animationState.setActive("whileHover",e);const a=r[s];a&&a(h,n)};return B(t.current,i,o,{passive:!t.getProps()[s]})}class Qi extends k{mount(){this.unmount=H(Ht(this.node,!0),Ht(this.node,!1))}unmount(){}}class ts extends k{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(":focus-visible")}catch{e=!0}!e||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=H(R(this.node.current,"focus",()=>this.onFocus()),R(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const Ge=(t,e)=>e?t===e?!0:Ge(t,e.parentElement):!1;function at(t,e){if(!e)return;const i=new PointerEvent("pointer"+t);e(i,it(i))}class es extends k{constructor(){super(...arguments),this.removeStartListeners=j,this.removeEndListeners=j,this.removeAccessibleListeners=j,this.startPointerPress=(e,i)=>{if(this.isPressing)return;this.removeEndListeners();const s=this.node.getProps(),h=B(window,"pointerup",(r,a)=>{if(!this.checkPressEnd())return;const{onTap:l,onTapCancel:c,globalTapTarget:u}=this.node.getProps();!u&&!Ge(this.node.current,r.target)?c&&c(r,a):l&&l(r,a)},{passive:!(s.onTap||s.onPointerUp)}),n=B(window,"pointercancel",(r,a)=>this.cancelPress(r,a),{passive:!(s.onTapCancel||s.onPointerCancel)});this.removeEndListeners=H(h,n),this.startPress(e,i)},this.startAccessiblePress=()=>{const e=h=>{if(h.key!=="Enter"||this.isPressing)return;const n=r=>{r.key!=="Enter"||!this.checkPressEnd()||at("up",(a,l)=>{const{onTap:c}=this.node.getProps();c&&c(a,l)})};this.removeEndListeners(),this.removeEndListeners=R(this.node.current,"keyup",n),at("down",(r,a)=>{this.startPress(r,a)})},i=R(this.node.current,"keydown",e),s=()=>{this.isPressing&&at("cancel",(h,n)=>this.cancelPress(h,n))},o=R(this.node.current,"blur",s);this.removeAccessibleListeners=H(i,o)}}startPress(e,i){this.isPressing=!0;const{onTapStart:s,whileTap:o}=this.node.getProps();o&&this.node.animationState&&this.node.animationState.setActive("whileTap",!0),s&&s(e,i)}checkPressEnd(){return this.removeEndListeners(),this.isPressing=!1,this.node.getProps().whileTap&&this.node.animationState&&this.node.animationState.setActive("whileTap",!1),!Ue()}cancelPress(e,i){if(!this.checkPressEnd())return;const{onTapCancel:s}=this.node.getProps();s&&s(e,i)}mount(){const e=this.node.getProps(),i=B(e.globalTapTarget?window:this.node.current,"pointerdown",this.startPointerPress,{passive:!(e.onTapStart||e.onPointerStart)}),s=R(this.node.current,"focus",this.startAccessiblePress);this.removeStartListeners=H(i,s)}unmount(){this.removeStartListeners(),this.removeEndListeners(),this.removeAccessibleListeners()}}const yt=new WeakMap,lt=new WeakMap,is=t=>{const e=yt.get(t.target);e&&e(t)},ss=t=>{t.forEach(is)};function ns({root:t,...e}){const i=t||document;lt.has(i)||lt.set(i,{});const s=lt.get(i),o=JSON.stringify(e);return s[o]||(s[o]=new IntersectionObserver(ss,{root:t,...e})),s[o]}function os(t,e,i){const s=ns(e);return yt.set(t,i),s.observe(t),()=>{yt.delete(t),s.unobserve(t)}}const rs={some:0,all:1};class as extends k{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:e={}}=this.node.getProps(),{root:i,margin:s,amount:o="some",once:h}=e,n={root:i?i.current:void 0,rootMargin:s,threshold:typeof o=="number"?o:rs[o]},r=a=>{const{isIntersecting:l}=a;if(this.isInView===l||(this.isInView=l,h&&!l&&this.hasEnteredView))return;l&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",l);const{onViewportEnter:c,onViewportLeave:u}=this.node.getProps(),f=l?c:u;f&&f(a)};return os(this.node.current,n,r)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:e,prevProps:i}=this.node;["amount","margin","root"].some(ls(e,i))&&this.startObserver()}unmount(){}}function ls({viewport:t={}},{viewport:e={}}={}){return i=>t[i]!==e[i]}const cs={inView:{Feature:as},tap:{Feature:es},focus:{Feature:ts},hover:{Feature:Qi}};function He(t,e){if(!Array.isArray(e))return!1;const i=e.length;if(i!==t.length)return!1;for(let s=0;sPromise.all(Te(t,o,i)):()=>Promise.resolve(),r=t.variantChildren&&t.variantChildren.size?(l=0)=>{const{delayChildren:c=0,staggerChildren:u,staggerDirection:f}=h;return us(t,e,c+l,u,f,i)}:()=>Promise.resolve(),{when:a}=h;if(a){const[l,c]=a==="beforeChildren"?[n,r]:[r,n];return l().then(()=>c())}else return Promise.all([n(),r(i.delay)])}function us(t,e,i=0,s=0,o=1,h){const n=[],r=(t.variantChildren.size-1)*s,a=o===1?(l=0)=>l*s:(l=0)=>r-l*s;return Array.from(t.variantChildren).sort(hs).forEach((l,c)=>{l.notify("AnimationStart",e),n.push(vt(l,e,{...h,delay:i+a(c)}).then(()=>l.notify("AnimationComplete",e)))}),Promise.all(n)}function hs(t,e){return t.sortNodePosition(e)}function fs(t,e,i={}){t.notify("AnimationStart",e);let s;if(Array.isArray(e)){const o=e.map(h=>vt(t,h,i));s=Promise.all(o)}else if(typeof e=="string")s=vt(t,e,i);else{const o=typeof e=="function"?At(t,e,i.custom):e;s=Promise.all(Te(t,o,i))}return s.then(()=>{M.postRender(()=>{t.notify("AnimationComplete",e)})})}const ds=[...Se].reverse(),ms=Se.length;function ps(t){return e=>Promise.all(e.map(({animation:i,options:s})=>fs(t,i,s)))}function gs(t){let e=ps(t);const i=vs();let s=!0;const o=a=>(l,c)=>{var u;const f=At(t,c,a==="exit"?(u=t.presenceContext)===null||u===void 0?void 0:u.custom:void 0);if(f){const{transition:d,transitionEnd:p,...m}=f;l={...l,...m,...p}}return l};function h(a){e=a(t)}function n(a){const l=t.getProps(),c=t.getVariantContext(!0)||{},u=[],f=new Set;let d={},p=1/0;for(let x=0;xp&&A,wt=!1;const Et=Array.isArray(y)?y:[y];let N=Et.reduce(o(v),{});E===!1&&(N={});const{prevResolvedValues:bt={}}=P,Qe={...bt,...N},Rt=D=>{st=!0,f.has(D)&&(wt=!0,f.delete(D)),P.needsAnimating[D]=!0;const b=t.getValue(D);b&&(b.liveStyle=!1)};for(const D in Qe){const b=N[D],nt=bt[D];if(d.hasOwnProperty(D))continue;let ot=!1;jt(b)&&jt(nt)?ot=!He(b,nt):ot=b!==nt,ot?b!=null?Rt(D):f.add(D):b!==void 0&&f.has(D)?Rt(D):P.protectedKeys[D]=!0}P.prevProp=y,P.prevResolvedValues=N,P.isActive&&(d={...d,...N}),s&&t.blockInitialAnimation&&(st=!1),st&&(!X||wt)&&u.push(...Et.map(D=>({animation:D,options:{type:v}})))}if(f.size){const x={};f.forEach(v=>{const P=t.getBaseTarget(v),y=t.getValue(v);y&&(y.liveStyle=!0),x[v]=P??null}),u.push({animation:x})}let m=!!u.length;return s&&(l.initial===!1||l.initial===l.animate)&&!t.manuallyAnimateOnMount&&(m=!1),s=!1,m?e(u):Promise.resolve()}function r(a,l){var c;if(i[a].isActive===l)return Promise.resolve();(c=t.variantChildren)===null||c===void 0||c.forEach(f=>{var d;return(d=f.animationState)===null||d===void 0?void 0:d.setActive(a,l)}),i[a].isActive=l;const u=n(a);for(const f in i)i[f].protectedKeys={};return u}return{animateChanges:n,setActive:r,setAnimateFunction:h,getState:()=>i}}function ys(t,e){return typeof e=="string"?e!==t:Array.isArray(e)?!He(e,t):!1}function F(t=!1){return{isActive:t,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function vs(){return{animate:F(!0),whileInView:F(),whileHover:F(),whileTap:F(),whileDrag:F(),whileFocus:F(),exit:F()}}class Ps extends k{constructor(e){super(e),e.animationState||(e.animationState=gs(e))}updateAnimationControlsSubscription(){const{animate:e}=this.node.getProps();this.unmount(),St(e)&&(this.unmount=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:e}=this.node.getProps(),{animate:i}=this.node.prevProps||{};e!==i&&this.updateAnimationControlsSubscription()}unmount(){}}let xs=0;class Ts extends k{constructor(){super(...arguments),this.id=xs++}update(){if(!this.node.presenceContext)return;const{isPresent:e,onExitComplete:i}=this.node.presenceContext,{isPresent:s}=this.node.prevPresenceContext||{};if(!this.node.animationState||e===s)return;const o=this.node.animationState.setActive("exit",!e);i&&!e&&o.then(()=>i(this.id))}mount(){const{register:e}=this.node.presenceContext||{};e&&(this.unmount=e(this.id))}unmount(){}}const Ss={animation:{Feature:Ps},exit:{Feature:Ts}},Nt=(t,e)=>Math.abs(t-e);function As(t,e){const i=Nt(t.x,e.x),s=Nt(t.y,e.y);return Math.sqrt(i**2+s**2)}class Ne{constructor(e,i,{transformPagePoint:s,contextWindow:o,dragSnapToOrigin:h=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const u=ut(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,d=As(u.offset,{x:0,y:0})>=3;if(!f&&!d)return;const{point:p}=u,{timestamp:m}=C;this.history.push({...p,timestamp:m});const{onStart:x,onMove:v}=this.handlers;f||(x&&x(this.lastMoveEvent,u),this.startEvent=this.lastMoveEvent),v&&v(this.lastMoveEvent,u)},this.handlePointerMove=(u,f)=>{this.lastMoveEvent=u,this.lastMoveEventInfo=ct(f,this.transformPagePoint),M.update(this.updatePoint,!0)},this.handlePointerUp=(u,f)=>{this.end();const{onEnd:d,onSessionEnd:p,resumeAnimation:m}=this.handlers;if(this.dragSnapToOrigin&&m&&m(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const x=ut(u.type==="pointercancel"?this.lastMoveEventInfo:ct(f,this.transformPagePoint),this.history);this.startEvent&&d&&d(u,x),p&&p(u,x)},!Fe(e))return;this.dragSnapToOrigin=h,this.handlers=i,this.transformPagePoint=s,this.contextWindow=o||window;const n=it(e),r=ct(n,this.transformPagePoint),{point:a}=r,{timestamp:l}=C;this.history=[{...a,timestamp:l}];const{onSessionStart:c}=i;c&&c(e,ut(r,this.history)),this.removeListeners=H(B(this.contextWindow,"pointermove",this.handlePointerMove),B(this.contextWindow,"pointerup",this.handlePointerUp),B(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),K(this.updatePoint)}}function ct(t,e){return e?{point:e(t.point)}:t}function Wt(t,e){return{x:t.x-e.x,y:t.y-e.y}}function ut({point:t},e){return{point:t,delta:Wt(t,We(e)),offset:Wt(t,Ds(e)),velocity:Cs(e,.1)}}function Ds(t){return t[0]}function We(t){return t[t.length-1]}function Cs(t,e){if(t.length<2)return{x:0,y:0};let i=t.length-1,s=null;const o=We(t);for(;i>=0&&(s=t[i],!(o.timestamp-s.timestamp>ui(e)));)i--;if(!s)return{x:0,y:0};const h=hi(o.timestamp-s.timestamp);if(h===0)return{x:0,y:0};const n={x:(o.x-s.x)/h,y:(o.y-s.y)/h};return n.x===1/0&&(n.x=0),n.y===1/0&&(n.y=0),n}function L(t){return t.max-t.min}function Pt(t,e=0,i=.01){return Math.abs(t-e)<=i}function $t(t,e,i,s=.5){t.origin=s,t.originPoint=S(e.min,e.max,t.origin),t.scale=L(i)/L(e),(Pt(t.scale,1,1e-4)||isNaN(t.scale))&&(t.scale=1),t.translate=S(i.min,i.max,t.origin)-t.originPoint,(Pt(t.translate)||isNaN(t.translate))&&(t.translate=0)}function z(t,e,i,s){$t(t.x,e.x,i.x,s?s.originX:void 0),$t(t.y,e.y,i.y,s?s.originY:void 0)}function zt(t,e,i){t.min=i.min+e.min,t.max=t.min+L(e)}function Ls(t,e,i){zt(t.x,e.x,i.x),zt(t.y,e.y,i.y)}function _t(t,e,i){t.min=e.min-i.min,t.max=t.min+L(e)}function _(t,e,i){_t(t.x,e.x,i.x),_t(t.y,e.y,i.y)}function Vs(t,{min:e,max:i},s){return e!==void 0&&ti&&(t=s?S(i,t,s.max):Math.min(t,i)),t}function Kt(t,e,i){return{min:e!==void 0?t.min+e:void 0,max:i!==void 0?t.max+i-(t.max-t.min):void 0}}function ws(t,{top:e,left:i,bottom:s,right:o}){return{x:Kt(t.x,i,o),y:Kt(t.y,e,s)}}function Xt(t,e){let i=e.min-t.min,s=e.max-t.max;return e.max-e.mins?i=gt(e.min,e.max-s,t.min):s>o&&(i=gt(t.min,t.max-o,e.min)),Ae(0,1,i)}function Rs(t,e){const i={};return e.min!==void 0&&(i.min=e.min-t.min),e.max!==void 0&&(i.max=e.max-t.min),i}const xt=.35;function Ms(t=xt){return t===!1?t=0:t===!0&&(t=xt),{x:Yt(t,"left","right"),y:Yt(t,"top","bottom")}}function Yt(t,e,i){return{min:qt(t,e),max:qt(t,i)}}function qt(t,e){return typeof t=="number"?t:t[e]||0}function w(t){return[t("x"),t("y")]}const $e=({current:t})=>t?t.ownerDocument.defaultView:null,js=new WeakMap;class Bs{constructor(e){this.openGlobalLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=T(),this.visualElement=e}start(e,{snapToCursor:i=!1}={}){const{presenceContext:s}=this.visualElement;if(s&&s.isPresent===!1)return;const o=c=>{const{dragSnapToOrigin:u}=this.getProps();u?this.pauseAnimation():this.stopAnimation(),i&&this.snapToCursor(it(c,"page").point)},h=(c,u)=>{const{drag:f,dragPropagation:d,onDragStart:p}=this.getProps();if(f&&!d&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=Oe(f),!this.openGlobalLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),w(x=>{let v=this.getAxisMotionValue(x).get()||0;if(Q.test(v)){const{projection:P}=this.visualElement;if(P&&P.layout){const y=P.layout.layoutBox[x];y&&(v=L(y)*(parseFloat(v)/100))}}this.originPoint[x]=v}),p&&p(c,u);const{animationState:m}=this.visualElement;m&&m.setActive("whileDrag",!0)},n=(c,u)=>{const{dragPropagation:f,dragDirectionLock:d,onDirectionLock:p,onDrag:m}=this.getProps();if(!f&&!this.openGlobalLock)return;const{offset:x}=u;if(d&&this.currentDirection===null){this.currentDirection=ks(x),this.currentDirection!==null&&p&&p(this.currentDirection);return}this.updateAxis("x",u.point,x),this.updateAxis("y",u.point,x),this.visualElement.render(),m&&m(c,u)},r=(c,u)=>this.stop(c,u),a=()=>w(c=>{var u;return this.getAnimationState(c)==="paused"&&((u=this.getAxisMotionValue(c).animation)===null||u===void 0?void 0:u.play())}),{dragSnapToOrigin:l}=this.getProps();this.panSession=new Ne(e,{onSessionStart:o,onStart:h,onMove:n,onSessionEnd:r,resumeAnimation:a},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:l,contextWindow:$e(this.visualElement)})}stop(e,i){const s=this.isDragging;if(this.cancel(),!s)return;const{velocity:o}=i;this.startAnimation(o);const{onDragEnd:h}=this.getProps();h&&h(e,i)}cancel(){this.isDragging=!1;const{projection:e,animationState:i}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:s}=this.getProps();!s&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),i&&i.setActive("whileDrag",!1)}updateAxis(e,i,s){const{drag:o}=this.getProps();if(!s||!q(e,o,this.currentDirection))return;const h=this.getAxisMotionValue(e);let n=this.originPoint[e]+s[e];this.constraints&&this.constraints[e]&&(n=Vs(n,this.constraints[e],this.elastic[e])),h.set(n)}resolveConstraints(){var e;const{dragConstraints:i,dragElastic:s}=this.getProps(),o=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(e=this.visualElement.projection)===null||e===void 0?void 0:e.layout,h=this.constraints;i&&$(i)?this.constraints||(this.constraints=this.resolveRefConstraints()):i&&o?this.constraints=ws(o.layoutBox,i):this.constraints=!1,this.elastic=Ms(s),h!==this.constraints&&o&&this.constraints&&!this.hasMutatedConstraints&&w(n=>{this.constraints!==!1&&this.getAxisMotionValue(n)&&(this.constraints[n]=Rs(o.layoutBox[n],this.constraints[n]))})}resolveRefConstraints(){const{dragConstraints:e,onMeasureDragConstraints:i}=this.getProps();if(!e||!$(e))return!1;const s=e.current,{projection:o}=this.visualElement;if(!o||!o.layout)return!1;const h=fi(s,o.root,this.visualElement.getTransformPagePoint());let n=Es(o.layout.layoutBox,h);if(i){const r=i(di(n));this.hasMutatedConstraints=!!r,r&&(n=pi(r))}return n}startAnimation(e){const{drag:i,dragMomentum:s,dragElastic:o,dragTransition:h,dragSnapToOrigin:n,onDragTransitionEnd:r}=this.getProps(),a=this.constraints||{},l=w(c=>{if(!q(c,i,this.currentDirection))return;let u=a&&a[c]||{};n&&(u={min:0,max:0});const f=o?200:1e6,d=o?40:1e7,p={type:"inertia",velocity:s?e[c]:0,bounceStiffness:f,bounceDamping:d,timeConstant:750,restDelta:1,restSpeed:10,...h,...u};return this.startAxisValueAnimation(c,p)});return Promise.all(l).then(r)}startAxisValueAnimation(e,i){const s=this.getAxisMotionValue(e);return s.start(mi(e,s,0,i,this.visualElement))}stopAnimation(){w(e=>this.getAxisMotionValue(e).stop())}pauseAnimation(){w(e=>{var i;return(i=this.getAxisMotionValue(e).animation)===null||i===void 0?void 0:i.pause()})}getAnimationState(e){var i;return(i=this.getAxisMotionValue(e).animation)===null||i===void 0?void 0:i.state}getAxisMotionValue(e){const i=`_drag${e.toUpperCase()}`,s=this.visualElement.getProps(),o=s[i];return o||this.visualElement.getValue(e,(s.initial?s.initial[e]:void 0)||0)}snapToCursor(e){w(i=>{const{drag:s}=this.getProps();if(!q(i,s,this.currentDirection))return;const{projection:o}=this.visualElement,h=this.getAxisMotionValue(i);if(o&&o.layout){const{min:n,max:r}=o.layout.layoutBox[i];h.set(e[i]-S(n,r,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:e,dragConstraints:i}=this.getProps(),{projection:s}=this.visualElement;if(!$(i)||!s||!this.constraints)return;this.stopAnimation();const o={x:0,y:0};w(n=>{const r=this.getAxisMotionValue(n);if(r&&this.constraints!==!1){const a=r.get();o[n]=bs({min:a,max:a},this.constraints[n])}});const{transformTemplate:h}=this.visualElement.getProps();this.visualElement.current.style.transform=h?h({},""):"none",s.root&&s.root.updateScroll(),s.updateLayout(),this.resolveConstraints(),w(n=>{if(!q(n,e,null))return;const r=this.getAxisMotionValue(n),{min:a,max:l}=this.constraints[n];r.set(S(a,l,o[n]))})}addListeners(){if(!this.visualElement.current)return;js.set(this.visualElement,this);const e=this.visualElement.current,i=B(e,"pointerdown",a=>{const{drag:l,dragListener:c=!0}=this.getProps();l&&c&&this.start(a)}),s=()=>{const{dragConstraints:a}=this.getProps();$(a)&&(this.constraints=this.resolveRefConstraints())},{projection:o}=this.visualElement,h=o.addEventListener("measure",s);o&&!o.layout&&(o.root&&o.root.updateScroll(),o.updateLayout()),s();const n=R(window,"resize",()=>this.scalePositionWithinConstraints()),r=o.addEventListener("didUpdate",({delta:a,hasLayoutChanged:l})=>{this.isDragging&&l&&(w(c=>{const u=this.getAxisMotionValue(c);u&&(this.originPoint[c]+=a[c].translate,u.set(u.get()+a[c].translate))}),this.visualElement.render())});return()=>{n(),i(),h(),r&&r()}}getProps(){const e=this.visualElement.getProps(),{drag:i=!1,dragDirectionLock:s=!1,dragPropagation:o=!1,dragConstraints:h=!1,dragElastic:n=xt,dragMomentum:r=!0}=e;return{...e,drag:i,dragDirectionLock:s,dragPropagation:o,dragConstraints:h,dragElastic:n,dragMomentum:r}}}function q(t,e,i){return(e===!0||e===t)&&(i===null||i===t)}function ks(t,e=10){let i=null;return Math.abs(t.y)>e?i="y":Math.abs(t.x)>e&&(i="x"),i}class Fs extends k{constructor(e){super(e),this.removeGroupControls=j,this.removeListeners=j,this.controls=new Bs(e)}mount(){const{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||j}unmount(){this.removeGroupControls(),this.removeListeners()}}const Zt=t=>(e,i)=>{t&&t(e,i)};class Is extends k{constructor(){super(...arguments),this.removePointerDownListener=j}onPointerDown(e){this.session=new Ne(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:$e(this.node)})}createPanHandlers(){const{onPanSessionStart:e,onPanStart:i,onPan:s,onPanEnd:o}=this.node.getProps();return{onSessionStart:Zt(e),onStart:Zt(i),onMove:s,onEnd:(h,n)=>{delete this.session,o&&o(h,n)}}}mount(){this.removePointerDownListener=B(this.node.current,"pointerdown",e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}function Os(){const t=g.useContext(Dt);if(t===null)return[!0,null];const{isPresent:e,onExitComplete:i,register:s}=t,o=g.useId();return g.useEffect(()=>s(o),[]),!e&&i?[!1,()=>i&&i(o)]:[!0]}const J={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Jt(t,e){return e.max===e.min?0:t/(e.max-e.min)*100}const W={correct:(t,e)=>{if(!e.target)return t;if(typeof t=="string")if(De.test(t))t=parseFloat(t);else return t;const i=Jt(t,e.target.x),s=Jt(t,e.target.y);return`${i}% ${s}%`}},Us={correct:(t,{treeScale:e,projectionDelta:i})=>{const s=t,o=Bt.parse(t);if(o.length>5)return s;const h=Bt.createTransformer(t),n=typeof o[0]!="number"?1:0,r=i.x.scale*e.x,a=i.y.scale*e.y;o[0+n]/=r,o[1+n]/=a;const l=S(r,a,.5);return typeof o[2+n]=="number"&&(o[2+n]/=l),typeof o[3+n]=="number"&&(o[3+n]/=l),h(o)}};class Gs extends g.Component{componentDidMount(){const{visualElement:e,layoutGroup:i,switchLayoutGroup:s,layoutId:o}=this.props,{projection:h}=e;gi(Hs),h&&(i.group&&i.group.add(h),s&&s.register&&o&&s.register(h),h.root.didUpdate(),h.addEventListener("animationComplete",()=>{this.safeToRemove()}),h.setOptions({...h.options,onExitComplete:()=>this.safeToRemove()})),J.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){const{layoutDependency:i,visualElement:s,drag:o,isPresent:h}=this.props,n=s.projection;return n&&(n.isPresent=h,o||e.layoutDependency!==i||i===void 0?n.willUpdate():this.safeToRemove(),e.isPresent!==h&&(h?n.promote():n.relegate()||M.postRender(()=>{const r=n.getStack();(!r||!r.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:e}=this.props.visualElement;e&&(e.root.didUpdate(),Ct.postRender(()=>{!e.currentAnimation&&e.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:e,layoutGroup:i,switchLayoutGroup:s}=this.props,{projection:o}=e;o&&(o.scheduleCheckAfterUnmount(),i&&i.group&&i.group.remove(o),s&&s.deregister&&s.deregister(o))}safeToRemove(){const{safeToRemove:e}=this.props;e&&e()}render(){return null}}function ze(t){const[e,i]=Os(),s=g.useContext(be);return mt.jsx(Gs,{...t,layoutGroup:s,switchLayoutGroup:g.useContext(Re),isPresent:e,safeToRemove:i})}const Hs={borderRadius:{...W,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:W,borderTopRightRadius:W,borderBottomLeftRadius:W,borderBottomRightRadius:W,boxShadow:Us},_e=["TopLeft","TopRight","BottomLeft","BottomRight"],Ns=_e.length,Qt=t=>typeof t=="string"?parseFloat(t):t,te=t=>typeof t=="number"||De.test(t);function Ws(t,e,i,s,o,h){o?(t.opacity=S(0,i.opacity!==void 0?i.opacity:1,$s(s)),t.opacityExit=S(e.opacity!==void 0?e.opacity:1,0,zs(s))):h&&(t.opacity=S(e.opacity!==void 0?e.opacity:1,i.opacity!==void 0?i.opacity:1,s));for(let n=0;nse?1:i(gt(t,e,s))}function ie(t,e){t.min=e.min,t.max=e.max}function V(t,e){ie(t.x,e.x),ie(t.y,e.y)}function se(t,e,i,s,o){return t-=e,t=kt(t,1/i,s),o!==void 0&&(t=kt(t,1/o,s)),t}function _s(t,e=0,i=1,s=.5,o,h=t,n=t){if(Q.test(e)&&(e=parseFloat(e),e=S(n.min,n.max,e/100)-n.min),typeof e!="number")return;let r=S(h.min,h.max,s);t===h&&(r-=e),t.min=se(t.min,e,i,r,o),t.max=se(t.max,e,i,r,o)}function ne(t,e,[i,s,o],h,n){_s(t,e[i],e[s],e[o],e.scale,h,n)}const Ks=["x","scaleX","originX"],Xs=["y","scaleY","originY"];function oe(t,e,i,s){ne(t.x,e,Ks,i?i.x:void 0,s?s.x:void 0),ne(t.y,e,Xs,i?i.y:void 0,s?s.y:void 0)}function re(t){return t.translate===0&&t.scale===1}function Xe(t){return re(t.x)&&re(t.y)}function Ys(t,e){return t.x.min===e.x.min&&t.x.max===e.x.max&&t.y.min===e.y.min&&t.y.max===e.y.max}function Ye(t,e){return Math.round(t.x.min)===Math.round(e.x.min)&&Math.round(t.x.max)===Math.round(e.x.max)&&Math.round(t.y.min)===Math.round(e.y.min)&&Math.round(t.y.max)===Math.round(e.y.max)}function ae(t){return L(t.x)/L(t.y)}class qs{constructor(){this.members=[]}add(e){Ce(this.members,e),e.scheduleRender()}remove(e){if(Le(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){const i=this.members[this.members.length-1];i&&this.promote(i)}}relegate(e){const i=this.members.findIndex(o=>e===o);if(i===0)return!1;let s;for(let o=i;o>=0;o--){const h=this.members[o];if(h.isPresent!==!1){s=h;break}}return s?(this.promote(s),!0):!1}promote(e,i){const s=this.lead;if(e!==s&&(this.prevLead=s,this.lead=e,e.show(),s)){s.instance&&s.scheduleRender(),e.scheduleRender(),e.resumeFrom=s,i&&(e.resumeFrom.preserveOpacity=!0),s.snapshot&&(e.snapshot=s.snapshot,e.snapshot.latestValues=s.animationValues||s.latestValues),e.root&&e.root.isUpdating&&(e.isLayoutDirty=!0);const{crossfade:o}=e.options;o===!1&&s.hide()}}exitAnimationComplete(){this.members.forEach(e=>{const{options:i,resumingFrom:s}=e;i.onExitComplete&&i.onExitComplete(),s&&s.options.onExitComplete&&s.options.onExitComplete()})}scheduleRender(){this.members.forEach(e=>{e.instance&&e.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function le(t,e,i){let s="";const o=t.x.translate/e.x,h=t.y.translate/e.y,n=i?.z||0;if((o||h||n)&&(s=`translate3d(${o}px, ${h}px, ${n}px) `),(e.x!==1||e.y!==1)&&(s+=`scale(${1/e.x}, ${1/e.y}) `),i){const{transformPerspective:l,rotate:c,rotateX:u,rotateY:f,skewX:d,skewY:p}=i;l&&(s=`perspective(${l}px) ${s}`),c&&(s+=`rotate(${c}deg) `),u&&(s+=`rotateX(${u}deg) `),f&&(s+=`rotateY(${f}deg) `),d&&(s+=`skewX(${d}deg) `),p&&(s+=`skewY(${p}deg) `)}const r=t.x.scale*e.x,a=t.y.scale*e.y;return(r!==1||a!==1)&&(s+=`scale(${r}, ${a})`),s||"none"}const Zs=(t,e)=>t.depth-e.depth;class Js{constructor(){this.children=[],this.isDirty=!1}add(e){Ce(this.children,e),this.isDirty=!0}remove(e){Le(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(Zs),this.isDirty=!1,this.children.forEach(e)}}function Qs(t,e){const i=Ve.now(),s=({timestamp:o})=>{const h=o-i;h>=e&&(K(s),t(h-e))};return M.read(s,!0),()=>K(s)}function tn(t){window.MotionDebug&&window.MotionDebug.record(t)}const ht=["","X","Y","Z"],en={visibility:"hidden"},ce=1e3;let sn=0;const I={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0};function ft(t,e,i,s){const{latestValues:o}=e;o[t]&&(i[t]=o[t],e.setStaticValue(t,0),s&&(s[t]=0))}function qe({attachResizeListener:t,defaultParent:e,measureScroll:i,checkIsScrollRoot:s,resetTransform:o}){return class{constructor(n={},r=e?.()){this.id=sn++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,I.totalNodes=I.resolvedTargetDeltas=I.recalculatedProjection=0,this.nodes.forEach(rn),this.nodes.forEach(hn),this.nodes.forEach(fn),this.nodes.forEach(an),tn(I)},this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=n,this.root=r?r.root||r:this,this.path=r?[...r.path,r]:[],this.parent=r,this.depth=r?r.depth+1:0;for(let a=0;athis.root.updateBlockedByResize=!1;t(n,()=>{this.root.updateBlockedByResize=!0,u&&u(),u=Qs(f,250),J.hasAnimatedSinceResize&&(J.hasAnimatedSinceResize=!1,this.nodes.forEach(he))})}a&&this.root.registerSharedNode(a,this),this.options.animate!==!1&&c&&(a||l)&&this.addEventListener("didUpdate",({delta:u,hasLayoutChanged:f,hasRelativeTargetChanged:d,layout:p})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const m=this.options.transition||c.getDefaultTransition()||yn,{onLayoutAnimationStart:x,onLayoutAnimationComplete:v}=c.getProps(),P=!this.targetLayout||!Ye(this.targetLayout,p)||d,y=!f&&d;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||y||f&&(P||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(u,y);const A={...xi(m,"layout"),onPlay:x,onComplete:v};(c.shouldReduceMotion||this.options.layoutRoot)&&(A.delay=0,A.type=!1),this.startAnimation(A)}else f||he(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=p})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const n=this.getStack();n&&n.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,K(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(dn),this.animationId++)}getTransformTemplate(){const{visualElement:n}=this.options;return n&&n.getProps().transformTemplate}willUpdate(n=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let c=0;cthis.update()))}clearAllSnapshots(){this.nodes.forEach(ln),this.sharedNodes.forEach(mn)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,M.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){M.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let a=0;a{const E=A/1e3;fe(u.x,n.x,E),fe(u.y,n.y,E),this.setTargetDelta(u),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(_(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),pn(this.relativeTarget,this.relativeTargetOrigin,f,E),y&&Ys(this.relativeTarget,y)&&(this.isProjectionDirty=!1),y||(y=T()),V(y,this.relativeTarget)),m&&(this.animationValues=c,Ws(c,l,this.latestValues,E,P,v)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=E},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(n){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(K(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=M.update(()=>{J.hasAnimatedSinceResize=!0,this.currentAnimation=Di(0,ce,{...n,onUpdate:r=>{this.mixTargetDelta(r),n.onUpdate&&n.onUpdate(r)},onComplete:()=>{n.onComplete&&n.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const n=this.getStack();n&&n.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(ce),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const n=this.getLead();let{targetWithTransforms:r,target:a,layout:l,latestValues:c}=n;if(!(!r||!a||!l)){if(this!==n&&this.layout&&l&&Ze(this.options.animationType,this.layout.layoutBox,l.layoutBox)){a=this.target||T();const u=L(this.layout.layoutBox.x);a.x.min=n.target.x.min,a.x.max=a.x.min+u;const f=L(this.layout.layoutBox.y);a.y.min=n.target.y.min,a.y.max=a.y.min+f}V(r,a),Y(r,c),z(this.projectionDeltaWithTransform,this.layoutCorrected,r,c)}}registerSharedNode(n,r){this.sharedNodes.has(n)||this.sharedNodes.set(n,new qs),this.sharedNodes.get(n).add(r);const l=r.options.initialPromotionConfig;r.promote({transition:l?l.transition:void 0,preserveFollowOpacity:l&&l.shouldPreserveFollowOpacity?l.shouldPreserveFollowOpacity(r):void 0})}isLead(){const n=this.getStack();return n?n.lead===this:!0}getLead(){var n;const{layoutId:r}=this.options;return r?((n=this.getStack())===null||n===void 0?void 0:n.lead)||this:this}getPrevLead(){var n;const{layoutId:r}=this.options;return r?(n=this.getStack())===null||n===void 0?void 0:n.prevLead:void 0}getStack(){const{layoutId:n}=this.options;if(n)return this.root.sharedNodes.get(n)}promote({needsReset:n,transition:r,preserveFollowOpacity:a}={}){const l=this.getStack();l&&l.promote(this,a),n&&(this.projectionDelta=void 0,this.needsReset=!0),r&&this.setOptions({transition:r})}relegate(){const n=this.getStack();return n?n.relegate(this):!1}resetSkewAndRotation(){const{visualElement:n}=this.options;if(!n)return;let r=!1;const{latestValues:a}=n;if((a.z||a.rotate||a.rotateX||a.rotateY||a.rotateZ||a.skewX||a.skewY)&&(r=!0),!r)return;const l={};a.z&&ft("z",n,l,this.animationValues);for(let c=0;c{var r;return(r=n.currentAnimation)===null||r===void 0?void 0:r.stop()}),this.root.nodes.forEach(ue),this.root.sharedNodes.clear()}}}function nn(t){t.updateLayout()}function on(t){var e;const i=((e=t.resumeFrom)===null||e===void 0?void 0:e.snapshot)||t.snapshot;if(t.isLead()&&t.layout&&i&&t.hasListeners("didUpdate")){const{layoutBox:s,measuredBox:o}=t.layout,{animationType:h}=t.options,n=i.source!==t.layout.source;h==="size"?w(u=>{const f=n?i.measuredBox[u]:i.layoutBox[u],d=L(f);f.min=s[u].min,f.max=f.min+d}):Ze(h,i.layoutBox,s)&&w(u=>{const f=n?i.measuredBox[u]:i.layoutBox[u],d=L(s[u]);f.max=f.min+d,t.relativeTarget&&!t.currentAnimation&&(t.isProjectionDirty=!0,t.relativeTarget[u].max=t.relativeTarget[u].min+d)});const r=G();z(r,s,i.layoutBox);const a=G();n?z(a,t.applyTransform(o,!0),i.measuredBox):z(a,s,i.layoutBox);const l=!Xe(r);let c=!1;if(!t.resumeFrom){const u=t.getClosestProjectingParent();if(u&&!u.resumeFrom){const{snapshot:f,layout:d}=u;if(f&&d){const p=T();_(p,i.layoutBox,f.layoutBox);const m=T();_(m,s,d.layoutBox),Ye(p,m)||(c=!0),u.options.layoutRoot&&(t.relativeTarget=m,t.relativeTargetOrigin=p,t.relativeParent=u)}}}t.notifyListeners("didUpdate",{layout:s,snapshot:i,delta:a,layoutDelta:r,hasLayoutChanged:l,hasRelativeTargetChanged:c})}else if(t.isLead()){const{onExitComplete:s}=t.options;s&&s()}t.options.transition=void 0}function rn(t){I.totalNodes++,t.parent&&(t.isProjecting()||(t.isProjectionDirty=t.parent.isProjectionDirty),t.isSharedProjectionDirty||(t.isSharedProjectionDirty=!!(t.isProjectionDirty||t.parent.isProjectionDirty||t.parent.isSharedProjectionDirty)),t.isTransformDirty||(t.isTransformDirty=t.parent.isTransformDirty))}function an(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function ln(t){t.clearSnapshot()}function ue(t){t.clearMeasurements()}function cn(t){t.isLayoutDirty=!1}function un(t){const{visualElement:e}=t.options;e&&e.getProps().onBeforeLayoutMeasure&&e.notify("BeforeLayoutMeasure"),t.resetTransform()}function he(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0,t.isProjectionDirty=!0}function hn(t){t.resolveTargetDelta()}function fn(t){t.calcProjection()}function dn(t){t.resetSkewAndRotation()}function mn(t){t.removeLeadSnapshot()}function fe(t,e,i){t.translate=S(e.translate,0,i),t.scale=S(e.scale,1,i),t.origin=e.origin,t.originPoint=e.originPoint}function de(t,e,i,s){t.min=S(e.min,i.min,s),t.max=S(e.max,i.max,s)}function pn(t,e,i,s){de(t.x,e.x,i.x,s),de(t.y,e.y,i.y,s)}function gn(t){return t.animationValues&&t.animationValues.opacityExit!==void 0}const yn={duration:.45,ease:[.4,0,.1,1]},me=t=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(t),pe=me("applewebkit/")&&!me("chrome/")?Math.round:j;function ge(t){t.min=pe(t.min),t.max=pe(t.max)}function vn(t){ge(t.x),ge(t.y)}function Ze(t,e,i){return t==="position"||t==="preserve-aspect"&&!Pt(ae(e),ae(i),.2)}const Pn=qe({attachResizeListener:(t,e)=>R(t,"resize",e),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),dt={current:void 0},Je=qe({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!dt.current){const t=new Pn({});t.mount(window),t.setOptions({layoutScroll:!0}),dt.current=t}return dt.current},resetTransform:(t,e)=>{t.style.transform=e!==void 0?e:"none"},checkIsScrollRoot:t=>window.getComputedStyle(t).position==="fixed"}),xn={pan:{Feature:Is},drag:{Feature:Fs,ProjectionNode:Je,MeasureLayout:ze}},Tn=(t,e)=>Lt(t)?new Ci(e,{enableHardwareAcceleration:!1}):new Li(e,{allowProjection:t!==g.Fragment,enableHardwareAcceleration:!0}),Sn={layout:{ProjectionNode:Je,MeasureLayout:ze}},An={...Ss,...cs,...xn,...Sn},bn=Fi((t,e)=>Zi(t,e,An,Tn));export{be as L,we as M,Dt as P,_i as a,bn as m,Vi as u}; diff --git a/_astro/react-toastify.esm.B4Q9Ck-v.js b/_astro/react-toastify.esm.B4Q9Ck-v.js new file mode 100644 index 0000000..c7cfaf3 --- /dev/null +++ b/_astro/react-toastify.esm.B4Q9Ck-v.js @@ -0,0 +1 @@ +import{r as b,R as y}from"./index.BufDd4G-.js";import{c as F}from"./clsx.B-dksMZM.js";const J=t=>typeof t=="number"&&!isNaN(t),q=t=>typeof t=="string",k=t=>typeof t=="function",nt=t=>q(t)||k(t)?t:null,it=t=>b.isValidElement(t)||q(t)||k(t)||J(t);function yt(t,e,o){o===void 0&&(o=300);const{scrollHeight:r,style:a}=t;requestAnimationFrame(()=>{a.minHeight="initial",a.height=r+"px",a.transition=`all ${o}ms`,requestAnimationFrame(()=>{a.height="0",a.padding="0",a.margin="0",setTimeout(e,o)})})}function st(t){let{enter:e,exit:o,appendPosition:r=!1,collapse:a=!0,collapseDuration:d=300}=t;return function(n){let{children:E,position:f,preventExitTransition:_,done:u,nodeRef:C,isIn:I,playToast:N}=n;const m=r?`${e}--${f}`:e,c=r?`${o}--${f}`:o,T=b.useRef(0);return b.useLayoutEffect(()=>{const p=C.current,l=m.split(" "),s=g=>{g.target===C.current&&(N(),p.removeEventListener("animationend",s),p.removeEventListener("animationcancel",s),T.current===0&&g.type!=="animationcancel"&&p.classList.remove(...l))};p.classList.add(...l),p.addEventListener("animationend",s),p.addEventListener("animationcancel",s)},[]),b.useEffect(()=>{const p=C.current,l=()=>{p.removeEventListener("animationend",l),a?yt(p,u,d):u()};I||(_?l():(T.current=1,p.className+=` ${c}`,p.addEventListener("animationend",l)))},[I]),y.createElement(y.Fragment,null,E)}}function ct(t,e){return t!=null?{content:t.content,containerId:t.props.containerId,id:t.props.toastId,theme:t.props.theme,type:t.props.type,data:t.props.data||{},isLoading:t.props.isLoading,icon:t.props.icon,status:e}:{}}const $=new Map;let K=[];const lt=new Set,vt=t=>lt.forEach(e=>e(t)),ut=()=>$.size>0;function pt(t,e){var o;if(e)return!((o=$.get(e))==null||!o.isToastActive(t));let r=!1;return $.forEach(a=>{a.isToastActive(t)&&(r=!0)}),r}function ft(t,e){it(t)&&(ut()||K.push({content:t,options:e}),$.forEach(o=>{o.buildToast(t,e)}))}function dt(t,e){$.forEach(o=>{e!=null&&e!=null&&e.containerId?e?.containerId===o.id&&o.toggle(t,e?.id):o.toggle(t,e?.id)})}function ht(t){const{subscribe:e,getSnapshot:o,setProps:r}=b.useRef(function(d){const n=d.containerId||1;return{subscribe(E){const f=function(u,C,I){let N=1,m=0,c=[],T=[],p=[],l=C;const s=new Map,g=new Set,M=()=>{p=Array.from(s.values()),g.forEach(i=>i())},B=i=>{T=i==null?[]:T.filter(v=>v!==i),M()},L=i=>{const{toastId:v,onOpen:w,updateId:O,children:S}=i.props,Y=O==null;i.staleId&&s.delete(i.staleId),s.set(v,i),T=[...T,i.props.toastId].filter(z=>z!==i.staleId),M(),I(ct(i,Y?"added":"updated")),Y&&k(w)&&w(b.isValidElement(S)&&S.props)};return{id:u,props:l,observe:i=>(g.add(i),()=>g.delete(i)),toggle:(i,v)=>{s.forEach(w=>{v!=null&&v!==w.props.toastId||k(w.toggle)&&w.toggle(i)})},removeToast:B,toasts:s,clearQueue:()=>{m-=c.length,c=[]},buildToast:(i,v)=>{if((A=>{let{containerId:P,toastId:x,updateId:R}=A;const V=P?P!==u:u!==1,U=s.has(x)&&R==null;return V||U})(v))return;const{toastId:w,updateId:O,data:S,staleId:Y,delay:z}=v,Q=()=>{B(w)},Z=O==null;Z&&m++;const D={...l,style:l.toastStyle,key:N++,...Object.fromEntries(Object.entries(v).filter(A=>{let[P,x]=A;return x!=null})),toastId:w,updateId:O,data:S,closeToast:Q,isIn:!1,className:nt(v.className||l.toastClassName),bodyClassName:nt(v.bodyClassName||l.bodyClassName),progressClassName:nt(v.progressClassName||l.progressClassName),autoClose:!v.isLoading&&(H=v.autoClose,j=l.autoClose,H===!1||J(H)&&H>0?H:j),deleteToast(){const A=s.get(w),{onClose:P,children:x}=A.props;k(P)&&P(b.isValidElement(x)&&x.props),I(ct(A,"removed")),s.delete(w),m--,m<0&&(m=0),c.length>0?L(c.shift()):M()}};var H,j;D.closeButton=l.closeButton,v.closeButton===!1||it(v.closeButton)?D.closeButton=v.closeButton:v.closeButton===!0&&(D.closeButton=!it(l.closeButton)||l.closeButton);let W=i;b.isValidElement(i)&&!q(i.type)?W=b.cloneElement(i,{closeToast:Q,toastProps:D,data:S}):k(i)&&(W=i({closeToast:Q,toastProps:D,data:S}));const X={content:W,props:D,staleId:Y};l.limit&&l.limit>0&&m>l.limit&&Z?c.push(X):J(z)?setTimeout(()=>{L(X)},z):L(X)},setProps(i){l=i},setToggle:(i,v)=>{s.get(i).toggle=v},isToastActive:i=>T.some(v=>v===i),getSnapshot:()=>l.newestOnTop?p.reverse():p}}(n,d,vt);$.set(n,f);const _=f.observe(E);return K.forEach(u=>ft(u.content,u.options)),K=[],()=>{_(),$.delete(n)}},setProps(E){var f;(f=$.get(n))==null||f.setProps(E)},getSnapshot(){var E;return(E=$.get(n))==null?void 0:E.getSnapshot()}}}(t)).current;r(t);const a=b.useSyncExternalStore(e,o,o);return{getToastToRender:function(d){if(!a)return[];const n=new Map;return a.forEach(E=>{const{position:f}=E.props;n.has(f)||n.set(f,[]),n.get(f).push(E)}),Array.from(n,E=>d(E[0],E[1]))},isToastActive:pt,count:a?.length}}function Et(t){const[e,o]=b.useState(!1),[r,a]=b.useState(!1),d=b.useRef(null),n=b.useRef({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:E,pauseOnHover:f,closeToast:_,onClick:u,closeOnClick:C}=t;var I,N;function m(){o(!0)}function c(){o(!1)}function T(s){const g=d.current;n.canDrag&&g&&(n.didMove=!0,e&&c(),n.delta=t.draggableDirection==="x"?s.clientX-n.start:s.clientY-n.start,n.start!==s.clientX&&(n.canCloseOnClick=!1),g.style.transform=`translate3d(${t.draggableDirection==="x"?`${n.delta}px, var(--y)`:`0, calc(${n.delta}px + var(--y))`},0)`,g.style.opacity=""+(1-Math.abs(n.delta/n.removalDistance)))}function p(){document.removeEventListener("pointermove",T),document.removeEventListener("pointerup",p);const s=d.current;if(n.canDrag&&n.didMove&&s){if(n.canDrag=!1,Math.abs(n.delta)>n.removalDistance)return a(!0),t.closeToast(),void t.collapseAll();s.style.transition="transform 0.2s, opacity 0.2s",s.style.removeProperty("transform"),s.style.removeProperty("opacity")}}(N=$.get((I={id:t.toastId,containerId:t.containerId,fn:o}).containerId||1))==null||N.setToggle(I.id,I.fn),b.useEffect(()=>{if(t.pauseOnFocusLoss)return document.hasFocus()||c(),window.addEventListener("focus",m),window.addEventListener("blur",c),()=>{window.removeEventListener("focus",m),window.removeEventListener("blur",c)}},[t.pauseOnFocusLoss]);const l={onPointerDown:function(s){if(t.draggable===!0||t.draggable===s.pointerType){n.didMove=!1,document.addEventListener("pointermove",T),document.addEventListener("pointerup",p);const g=d.current;n.canCloseOnClick=!0,n.canDrag=!0,g.style.transition="none",t.draggableDirection==="x"?(n.start=s.clientX,n.removalDistance=g.offsetWidth*(t.draggablePercent/100)):(n.start=s.clientY,n.removalDistance=g.offsetHeight*(t.draggablePercent===80?1.5*t.draggablePercent:t.draggablePercent)/100)}},onPointerUp:function(s){const{top:g,bottom:M,left:B,right:L}=d.current.getBoundingClientRect();s.nativeEvent.type!=="touchend"&&t.pauseOnHover&&s.clientX>=B&&s.clientX<=L&&s.clientY>=g&&s.clientY<=M?c():m()}};return E&&f&&(l.onMouseEnter=c,t.stacked||(l.onMouseLeave=m)),C&&(l.onClick=s=>{u&&u(s),n.canCloseOnClick&&_()}),{playToast:m,pauseToast:c,isRunning:e,preventExitTransition:r,toastRef:d,eventHandlers:l}}function Tt(t){let{delay:e,isRunning:o,closeToast:r,type:a="default",hide:d,className:n,style:E,controlledProgress:f,progress:_,rtl:u,isIn:C,theme:I}=t;const N=d||f&&_===0,m={...E,animationDuration:`${e}ms`,animationPlayState:o?"running":"paused"};f&&(m.transform=`scaleX(${_})`);const c=F("Toastify__progress-bar",f?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${I}`,`Toastify__progress-bar--${a}`,{"Toastify__progress-bar--rtl":u}),T=k(n)?n({rtl:u,type:a,defaultClassName:c}):F(c,n),p={[f&&_>=1?"onTransitionEnd":"onAnimationEnd"]:f&&_<1?null:()=>{C&&r()}};return y.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":N},y.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${I} Toastify__progress-bar--${a}`}),y.createElement("div",{role:"progressbar","aria-hidden":N?"true":"false","aria-label":"notification timer",className:T,style:m,...p}))}let bt=1;const mt=()=>""+bt++;function It(t){return t&&(q(t.toastId)||J(t.toastId))?t.toastId:mt()}function G(t,e){return ft(t,e),e.toastId}function ot(t,e){return{...e,type:e&&e.type||t,toastId:It(e)}}function tt(t){return(e,o)=>G(e,ot(t,o))}function h(t,e){return G(t,ot("default",e))}h.loading=(t,e)=>G(t,ot("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...e})),h.promise=function(t,e,o){let r,{pending:a,error:d,success:n}=e;a&&(r=q(a)?h.loading(a,o):h.loading(a.render,{...o,...a}));const E={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},f=(u,C,I)=>{if(C==null)return void h.dismiss(r);const N={type:u,...E,...o,data:I},m=q(C)?{render:C}:C;return r?h.update(r,{...N,...m}):h(m.render,{...N,...m}),I},_=k(t)?t():t;return _.then(u=>f("success",n,u)).catch(u=>f("error",d,u)),_},h.success=tt("success"),h.info=tt("info"),h.error=tt("error"),h.warning=tt("warning"),h.warn=h.warning,h.dark=(t,e)=>G(t,ot("default",{theme:"dark",...e})),h.dismiss=function(t){(function(e){var o;if(ut()){if(e==null||q(o=e)||J(o))$.forEach(r=>{r.removeToast(e)});else if(e&&("containerId"in e||"id"in e)){const r=$.get(e.containerId);r?r.removeToast(e.id):$.forEach(a=>{a.removeToast(e.id)})}}else K=K.filter(r=>e!=null&&r.options.toastId!==e)})(t)},h.clearWaitingQueue=function(t){t===void 0&&(t={}),$.forEach(e=>{!e.props.limit||t.containerId&&e.id!==t.containerId||e.clearQueue()})},h.isActive=pt,h.update=function(t,e){e===void 0&&(e={});const o=((r,a)=>{var d;let{containerId:n}=a;return(d=$.get(n||1))==null?void 0:d.toasts.get(r)})(t,e);if(o){const{props:r,content:a}=o,d={delay:100,...r,...e,toastId:e.toastId||t,updateId:mt()};d.toastId!==t&&(d.staleId=t);const n=d.render||a;delete d.render,G(n,d)}},h.done=t=>{h.update(t,{progress:1})},h.onChange=function(t){return lt.add(t),()=>{lt.delete(t)}},h.play=t=>dt(!0,t),h.pause=t=>dt(!1,t);const _t=typeof window<"u"?b.useLayoutEffect:b.useEffect,et=t=>{let{theme:e,type:o,isLoading:r,...a}=t;return y.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:e==="colored"?"currentColor":`var(--toastify-icon-color-${o})`,...a})},rt={info:function(t){return y.createElement(et,{...t},y.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))},warning:function(t){return y.createElement(et,{...t},y.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))},success:function(t){return y.createElement(et,{...t},y.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))},error:function(t){return y.createElement(et,{...t},y.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))},spinner:function(){return y.createElement("div",{className:"Toastify__spinner"})}},Ct=t=>{const{isRunning:e,preventExitTransition:o,toastRef:r,eventHandlers:a,playToast:d}=Et(t),{closeButton:n,children:E,autoClose:f,onClick:_,type:u,hideProgressBar:C,closeToast:I,transition:N,position:m,className:c,style:T,bodyClassName:p,bodyStyle:l,progressClassName:s,progressStyle:g,updateId:M,role:B,progress:L,rtl:i,toastId:v,deleteToast:w,isIn:O,isLoading:S,closeOnClick:Y,theme:z}=t,Q=F("Toastify__toast",`Toastify__toast-theme--${z}`,`Toastify__toast--${u}`,{"Toastify__toast--rtl":i},{"Toastify__toast--close-on-click":Y}),Z=k(c)?c({rtl:i,position:m,type:u,defaultClassName:Q}):F(Q,c),D=function(X){let{theme:A,type:P,isLoading:x,icon:R}=X,V=null;const U={theme:A,type:P};return R===!1||(k(R)?V=R({...U,isLoading:x}):b.isValidElement(R)?V=b.cloneElement(R,U):x?V=rt.spinner():(gt=>gt in rt)(P)&&(V=rt[P](U))),V}(t),H=!!L||!f,j={closeToast:I,type:u,theme:z};let W=null;return n===!1||(W=k(n)?n(j):b.isValidElement(n)?b.cloneElement(n,j):function(X){let{closeToast:A,theme:P,ariaLabel:x="close"}=X;return y.createElement("button",{className:`Toastify__close-button Toastify__close-button--${P}`,type:"button",onClick:R=>{R.stopPropagation(),A(R)},"aria-label":x},y.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},y.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}(j)),y.createElement(N,{isIn:O,done:w,position:m,preventExitTransition:o,nodeRef:r,playToast:d},y.createElement("div",{id:v,onClick:_,"data-in":O,className:Z,...a,style:T,ref:r},y.createElement("div",{...O&&{role:B},className:k(p)?p({type:u}):F("Toastify__toast-body",p),style:l},D!=null&&y.createElement("div",{className:F("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!S})},D),y.createElement("div",null,E)),W,y.createElement(Tt,{...M&&!H?{key:`pb-${M}`}:{},rtl:i,theme:z,delay:f,isRunning:e,isIn:O,closeToast:I,hide:C,type:u,style:g,className:s,controlledProgress:H,progress:L||0})))},at=function(t,e){return e===void 0&&(e=!1),{enter:`Toastify--animate Toastify__${t}-enter`,exit:`Toastify--animate Toastify__${t}-exit`,appendPosition:e}},Lt=st(at("bounce",!0));st(at("slide",!0));st(at("zoom"));st(at("flip"));const Nt={position:"top-right",transition:Lt,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};function kt(t){let e={...Nt,...t};const o=t.stacked,[r,a]=b.useState(!0),d=b.useRef(null),{getToastToRender:n,isToastActive:E,count:f}=ht(e),{className:_,style:u,rtl:C,containerId:I}=e;function N(c){const T=F("Toastify__toast-container",`Toastify__toast-container--${c}`,{"Toastify__toast-container--rtl":C});return k(_)?_({position:c,rtl:C,defaultClassName:T}):F(T,nt(_))}function m(){o&&(a(!0),h.play())}return _t(()=>{if(o){var c;const T=d.current.querySelectorAll('[data-in="true"]'),p=12,l=(c=e.position)==null?void 0:c.includes("top");let s=0,g=0;Array.from(T).reverse().forEach((M,B)=>{const L=M;L.classList.add("Toastify__toast--stacked"),B>0&&(L.dataset.collapsed=`${r}`),L.dataset.pos||(L.dataset.pos=l?"top":"bot");const i=s*(r?.2:1)+(r?0:p*B);L.style.setProperty("--y",`${l?i:-1*i}px`),L.style.setProperty("--g",`${p}`),L.style.setProperty("--s",""+(1-(r?g:0))),s+=L.offsetHeight,g+=.025})}},[r,f,o]),y.createElement("div",{ref:d,className:"Toastify",id:I,onMouseEnter:()=>{o&&(a(!1),h.pause())},onMouseLeave:m},n((c,T)=>{const p=T.length?{...u}:{...u,pointerEvents:"none"};return y.createElement("div",{className:N(c),style:p,key:`container-${c}`},T.map(l=>{let{content:s,props:g}=l;return y.createElement(Ct,{...g,stacked:o,collapseAll:m,isIn:E(g.toastId,g.containerId),style:g.style,key:`toast-${g.key}`},s)}))}))}export{h as B,kt as Q}; diff --git a/_astro/react.DwV23UbX.js b/_astro/react.DwV23UbX.js new file mode 100644 index 0000000..b9e7f12 --- /dev/null +++ b/_astro/react.DwV23UbX.js @@ -0,0 +1 @@ +import{r as g,R as K}from"./index.BufDd4G-.js";let N=0;function Se(e,u){const f=`atom${++N}`,E={toString:()=>f};return typeof e=="function"?E.read=e:(E.init=e,E.read=Y,E.write=Z),u&&(E.write=u),E}function Y(e){return e(this)}function Z(e,u,f){return u(this,typeof f=="function"?f(e(this)):f)}const L=(e,u)=>e.unstable_is?e.unstable_is(u):u===e,k=e=>"init"in e,j=e=>!!e.write,O=new WeakMap,Q=(e,u)=>{O.set(e,u),e.catch(()=>{}).finally(()=>O.delete(e))},C=(e,u)=>{const f=O.get(e);f&&(O.delete(e),f(u))},W=(e,u)=>{e.status="fulfilled",e.value=u},z=(e,u)=>{e.status="rejected",e.reason=u},ee=e=>typeof e?.then=="function",m=(e,u)=>!!e&&"v"in e&&"v"in u&&Object.is(e.v,u.v),q=(e,u)=>!!e&&"e"in e&&"e"in u&&Object.is(e.e,u.e),D=e=>!!e&&"v"in e&&e.v instanceof Promise,te=(e,u)=>"v"in e&&"v"in u&&e.v.orig&&e.v.orig===u.v.orig,T=e=>{if("e"in e)throw e.e;return e.v},ne=()=>{const e=new WeakMap,u=new WeakMap,f=[],E=new WeakMap;let P,U;const p=t=>e.get(t),R=(t,i)=>{i.d.forEach((d,r)=>{var s;if(!E.has(r)){const o=p(r);(s=f[f.length-1])==null||s.add(r),E.set(r,[o,new Set]),o&&R(r,o)}E.get(r)[1].add(t)})},A=(t,i)=>{var d;const r=p(t);if(e.set(t,i),E.has(t)||((d=f[f.length-1])==null||d.add(t),E.set(t,[r,new Set]),R(t,i)),D(r)){const s="v"in i?i.v instanceof Promise?i.v:Promise.resolve(i.v):Promise.reject(i.e);r.v!==s&&C(r.v,s)}},v=(t,i,d,r)=>{const s=new Map(r?i.d:null);let o=!1;d.forEach((n,c)=>{!n&&L(t,c)&&(n=i),n&&(s.set(c,n),i.d.get(c)!==n&&(o=!0))}),(o||i.d.size!==s.size)&&(i.d=s)},_=(t,i,d,r)=>{const s=p(t),o={d:s?.d||new Map,v:i};if(d&&v(t,o,d,r),m(s,o)&&s.d===o.d)return s;if(D(s)&&D(o)&&te(s,o)){if(s.d===o.d)return s;o.v=s.v}return A(t,o),o},F=(t,i,d,r)=>{if(ee(i)){let s;const o=()=>{const c=p(t);if(!D(c)||c.v!==n)return;const S=_(t,n,d);u.has(t)&&c.d!==S.d&&X(t,S,c.d)},n=new Promise((c,S)=>{let l=!1;i.then(a=>{l||(l=!0,W(n,a),c(a),o())},a=>{l||(l=!0,z(n,a),S(a),o())}),s=a=>{l||(l=!0,a.then(h=>W(n,h),h=>z(n,h)),c(a))}});return n.orig=i,n.status="pending",Q(n,c=>{c&&s(c),r?.()}),_(t,n,d,!0)}return _(t,i,d)},$=(t,i,d)=>{const r=p(t),s={d:r?.d||new Map,e:i};return d&&v(t,s,d),q(r,s)&&r.d===s.d?r:(A(t,s),s)},w=(t,i)=>{const d=p(t);if(!i&&d&&(u.has(t)||Array.from(d.d).every(([l,a])=>{if(l===t)return!0;const h=w(l);return h===a||m(h,a)})))return d;const r=new Map;let s=!0;const o=l=>{if(L(t,l)){const h=p(l);if(h)return r.set(l,h),T(h);if(k(l))return r.set(l,void 0),l.init;throw new Error("no atom init")}const a=w(l);return r.set(l,a),T(a)};let n,c;const S={get signal(){return n||(n=new AbortController),n.signal},get setSelf(){return!c&&j(t)&&(c=(...l)=>{if(!s)return I(t,...l)}),c}};try{const l=t.read(o,S);return F(t,l,r,()=>n?.abort())}catch(l){return $(t,l,r)}finally{s=!1}},x=t=>T(w(t)),G=t=>{const i=n=>{var c,S;const l=new Set((c=u.get(n))==null?void 0:c.t);return(S=E.get(n))==null||S[1].forEach(a=>{l.add(a)}),l},d=new Array,r=new Set,s=n=>{if(!r.has(n)){r.add(n);for(const c of i(n))n!==c&&s(c);d.push(n)}};s(t);const o=new Set([t]);for(let n=d.length-1;n>=0;--n){const c=d[n],S=p(c);if(!S)continue;let l=!1;for(const a of S.d.keys())if(a!==c&&o.has(a)){l=!0;break}if(l){const a=w(c,!0);m(S,a)||o.add(c)}}},B=(t,...i)=>{const d=o=>T(w(o)),r=(o,...n)=>{const c=f.length>0;c||f.push(new Set([o]));let S;if(L(t,o)){if(!k(o))throw new Error("atom not writable");const l=p(o),a=F(o,n[0]);m(l,a)||G(o)}else S=B(o,...n);if(!c){const l=y(f.pop())}return S};return t.write(d,r,...i)},I=(t,...i)=>{f.push(new Set([t]));const d=B(t,...i),r=y(f.pop());return d},b=(t,i,d)=>{var r;const s=u.get(t);if(s)return i&&s.t.add(i),s;const o=d||[];(r=p(t))==null||r.d.forEach((c,S)=>{S!==t&&b(S,t,o)}),w(t);const n={t:new Set(i&&[i]),l:new Set};if(u.set(t,n),j(t)&&t.onMount){const{onMount:c}=t;o.push(()=>{const S=c((...l)=>I(t,...l));S&&(n.u=S)})}return d||o.forEach(c=>c()),n},H=(t,i)=>!i.l.size&&(!i.t.size||i.t.size===1&&i.t.has(t)),M=(t,i)=>{if(!H(t,i))return;const d=i.u;d&&d(),u.delete(t);const r=p(t);r&&(D(r)&&C(r.v),r.d.forEach((s,o)=>{if(o!==t){const n=u.get(o);n&&(n.t.delete(t),M(o,n))}}))},X=(t,i,d)=>{const r=new Set(i.d.keys()),s=new Set;d?.forEach((o,n)=>{if(r.has(n)){r.delete(n);return}s.add(n);const c=u.get(n);c&&c.t.delete(t)}),r.forEach(o=>{b(o,t)}),s.forEach(o=>{const n=u.get(o);n&&M(o,n)})},y=t=>{let i;const d=[],r=s=>{var o;if(!E.has(s))return;const[n,c]=E.get(s);E.delete(s),d.push([s,n]),c.forEach(r),(o=p(s))==null||o.d.forEach((S,l)=>r(l))};t.forEach(r),d.forEach(([s,o])=>{const n=p(s);if(n&&n!==o){const c=u.get(s);c&&n.d!==o?.d&&X(s,n,o?.d),c&&!(!D(o)&&(m(o,n)||q(o,n)))&&c.l.forEach(S=>S())}})};return{get:x,set:I,sub:(t,i)=>{const d=b(t),r=y([t]),s=d.l;return s.add(i),()=>{s.delete(i),M(t,d)}}}};let V;const oe=()=>(V||(V=ne()),V),se=oe,re=g.createContext(void 0),J=e=>{const u=g.useContext(re);return e?.store||u||se()},ie=e=>typeof e?.then=="function",ue=K.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(e.status="pending",e.then(u=>{e.status="fulfilled",e.value=u},u=>{e.status="rejected",e.reason=u}),e)});function ce(e,u){const f=J(u),[[E,P,U],p]=g.useReducer(v=>{const _=f.get(e);return Object.is(v[0],_)&&v[1]===f&&v[2]===e?v:[_,f,e]},void 0,()=>[f.get(e),f,e]);let R=E;(P!==f||U!==e)&&(p(),R=f.get(e));const A=u?.delay;return g.useEffect(()=>{const v=f.sub(e,()=>{if(typeof A=="number"){setTimeout(p,A);return}p()});return p(),v},[f,e,A]),g.useDebugValue(R),ie(R)?ue(R):R}function de(e,u){const f=J(u);return g.useCallback((...P)=>f.set(e,...P),[f,e])}function ae(e,u){return[ce(e,u),de(e,u)]}export{de as a,Se as b,ae as c,ce as u}; diff --git a/_astro/scrollInfo.tlMeSMyI.js b/_astro/scrollInfo.tlMeSMyI.js new file mode 100644 index 0000000..9beb959 --- /dev/null +++ b/_astro/scrollInfo.tlMeSMyI.js @@ -0,0 +1 @@ +import{b as o}from"./react.DwV23UbX.js";const a=o(0),c=o(null);export{c as a,a as p}; diff --git a/_astro/searchPanel.DWea59xz.js b/_astro/searchPanel.DWea59xz.js new file mode 100644 index 0000000..665cfa9 --- /dev/null +++ b/_astro/searchPanel.DWea59xz.js @@ -0,0 +1 @@ +import{r}from"./index.BmB7TLDX.js";import{b as a}from"./react.DwV23UbX.js";function m({to:o=document.body,children:t}){return r.createPortal(t,o)}const n=a(!1);export{m as R,n as s}; diff --git a/_astro/theme.BLaxzHfN.js b/_astro/theme.BLaxzHfN.js new file mode 100644 index 0000000..f9dc889 --- /dev/null +++ b/_astro/theme.BLaxzHfN.js @@ -0,0 +1 @@ +function o(e){document.documentElement.setAttribute("data-theme",e)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}const t="gyoza-theme";function s(){const e=localStorage.getItem(t);return e==="dark"||e==="light"?e:(a("system"),"system")}function a(e){localStorage.setItem(t,e)}export{s as a,o as c,c as g,a as s}; diff --git a/_astro/theme.K1S-wrqJ.js b/_astro/theme.K1S-wrqJ.js new file mode 100644 index 0000000..8a773ac --- /dev/null +++ b/_astro/theme.K1S-wrqJ.js @@ -0,0 +1 @@ +import{a as o}from"./theme.BLaxzHfN.js";import{b as t}from"./react.DwV23UbX.js";const e=t(o());export{e as t}; diff --git a/_astro/toNumber.DCaU3JdG.js b/_astro/toNumber.DCaU3JdG.js new file mode 100644 index 0000000..c968cd2 --- /dev/null +++ b/_astro/toNumber.DCaU3JdG.js @@ -0,0 +1 @@ +var y=typeof global=="object"&&global&&global.Object===Object&&global,g=typeof self=="object"&&self&&self.Object===Object&&self,j=y||g||Function("return this")(),o=j.Symbol,a=Object.prototype,p=a.hasOwnProperty,d=a.toString,e=o?o.toStringTag:void 0;function l(t){var r=p.call(t,e),n=t[e];try{t[e]=void 0;var b=!0}catch{}var s=d.call(t);return b&&(r?t[e]=n:delete t[e]),s}var O=Object.prototype,S=O.toString;function T(t){return S.call(t)}var m="[object Null]",u="[object Undefined]",i=o?o.toStringTag:void 0;function $(t){return t==null?t===void 0?u:m:i&&i in Object(t)?l(t):T(t)}function h(t){return t!=null&&typeof t=="object"}var I="[object Symbol]";function w(t){return typeof t=="symbol"||h(t)&&$(t)==I}var x=/\s/;function P(t){for(var r=t.length;r--&&x.test(t.charAt(r)););return r}var N=/^\s+/;function B(t){return t&&t.slice(0,P(t)+1).replace(N,"")}function c(t){var r=typeof t;return t!=null&&(r=="object"||r=="function")}var f=NaN,A=/^[-+]0x[0-9a-f]+$/i,G=/^0b[01]+$/i,k=/^0o[0-7]+$/i,E=parseInt;function H(t){if(typeof t=="number")return t;if(w(t))return f;if(c(t)){var r=typeof t.valueOf=="function"?t.valueOf():t;t=c(r)?r+"":r}if(typeof t!="string")return t===0?t:+t;t=B(t);var n=G.test(t);return n||k.test(t)?E(t.slice(2),n?2:8):A.test(t)?f:+t}export{o as S,w as a,c as i,j as r,H as t}; diff --git a/_astro/viewport.DFDljuaQ.js b/_astro/viewport.DFDljuaQ.js new file mode 100644 index 0000000..dfa0dde --- /dev/null +++ b/_astro/viewport.DFDljuaQ.js @@ -0,0 +1 @@ +import{b as o}from"./react.DwV23UbX.js";const t=o(!1);export{t as i}; diff --git a/about/0.html b/about/0.html deleted file mode 100644 index a533a45..0000000 --- a/about/0.html +++ /dev/null @@ -1,430 +0,0 @@ - - - - - - - - - - - - - - - - - - - - page.title - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    - - - - -
    - -
    -
    - 头像 -
    -
    -
    - - 江湖名称: 大伟 -
    -
    - - 破壳日: 2000 -
    -
    -
    -
    - - 常驻之地: China | 山东 | 青岛 -
    -
    - - 目标语言: javaScript | Java | Python -
    -
    -
    -
    -
    -
    技能 | Skill
    -
    -
    -
    Html/CSS
    -
    JavaScript
    -
    Python
    -
    R
    -
    ps/pr
    -
    -
    -
    30%
    -
    40%
    -
    100%
    -
    20%
    -
    10%
    -
    -
    -
    -
    -
    简介 | Introduction
    -
      -
    • 学历:本科
    • -
    • 目标:前端工程师or全栈工程师
    • -
    • 博客:技术积累,共享知识
    • -
    • 兴趣:骑车,运动
    • -
    • 其他:一只小菜鸟,一直努力飞
    • -
    -
    -
    -
    - - - - - - - -
    - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/about/css/style.css b/about/css/style.css deleted file mode 100644 index 215512c..0000000 --- a/about/css/style.css +++ /dev/null @@ -1,205 +0,0 @@ -* { - margin: 0; - padding: 0; -} - -body { - display: flex; - /* background: url(); */ -} - - -/* 总的容器 */ - -.containerP { - display: flex; - position: relative; - flex-direction: column; - justify-content: center; -} - - -/* 第一个盒子 */ - -.containerP .peronInfo { - display: flex; - flex-direction: row; - flex-wrap: wrap; - padding: 10px; - background: rgba(70, 63, 63, 0.3); - margin: 5px; - justify-content: space-around; - border-radius: 10px; -} - -.containerP .peronInfo::before { - content: ""; - width: 80vw; - height: 40w; - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - overflow: hidden; - filter: blur(20px); - z-index: -1; - background: url(https://i2.w.hjfile.cn/doc/201307/9a9d31da98704a718df3535f7b16b0b3.jpg); - -webkit-filter: blur(20px); - display: none; -} - -.containerP .peronInfo .personInfoBox1 { - display: flex; - flex-direction: column; -} - -.containerP .peronInfo .personInfoBox2 { - display: flex; - flex-direction: column; -} - - -/* 头像 */ - -.containerP .peronInfo .avatar1 img { - width: 140px; - height: 140px; - border-radius: 50%; - animation: avatorAni 3s infinite; - transition: animation ease-in 0.5s; - border: 2px solid #08aeea; -} - - -/* 头像动画 */ - -@keyframes avatorAni { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} - -.containerP .peronInfo .personInfoBox1 { - position: relative; -} - -.containerP .peronInfo .personInfoBox1 span { - margin: 20px 0px; - color: #fff; - font-size: 20px; -} - -.containerP .peronInfo .personInfoBox2 { - position: relative; -} - -.containerP .peronInfo .personInfoBox2 span { - margin: 20px 0px; - color: #fff; - font-size: 20px; -} - -.icon { - display: flex; - flex-direction: row; - align-items: center; -} - - -/* 第一列图标 */ - -.containerP .peronInfo .personInfoBox1 .icon img { - width: 20px; - height: 20px; - margin: 0 5px 0 15px; -} - - -/* 第二例图标 */ - -.containerP .peronInfo .personInfoBox2 .icon img { - width: 20px; - height: 20px; - margin: 5px; -} - - -/* 第二个盒子 */ - -.containerP .peronDetailBox { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: space-between; - align-items: center; -} - -.containerP .peronDetailBox .skill { - position: relative; - margin: 5px; - background: rgba(70, 63, 63, 0.3); - padding: 20px 15px 20px 20px; - flex: auto; - border-radius: 10px; -} - -.containerP .peronDetailBox .skill div { - margin: 10px 10px 0px 0; - font-size: 15px; -} - -.containerP .peronDetailBox .skill>div:nth-child(1) { - color: #fff; - font-size: 20px; - display: flex; - justify-content: center; -} - -.containerP .peronDetailBox .skill .skillBox .skillBox1 { - color: #fff; - font-size: 15px; -} - -.containerP .peronDetailBox .skill .skillBox { - display: flex; - flex-direction: row; - flex-wrap: nowrap; -} - -.containerP .peronDetailBox .skill .skillBox2 div { - width: 100px; - height: 20px; - background: cornflowerblue; -} - -.containerP .peronDetailBox .introduction { - position: relative; - background: rgba(70, 63, 63, 0.3); - margin: 5px; - padding: 20px 20px 20px 15px; - flex: auto; - border-radius: 10px; -} - -.containerP .peronDetailBox .introduction>div { - font-size: 20px; - display: flex; - justify-content: center; - color: #fff; -} - -.containerP .peronDetailBox .introduction div { - margin: 0 0 0 50px; - padding: 8px; -} - -.containerP .peronDetailBox .introduction li { - margin: 10px; - font-size: 15px; - color: #fff; - list-style-type: circle; -} \ No newline at end of file diff --git a/about/img/aixin.png b/about/img/aixin.png deleted file mode 100644 index 0543109..0000000 Binary files a/about/img/aixin.png and /dev/null differ diff --git a/about/img/dizhi.png b/about/img/dizhi.png deleted file mode 100644 index 42904b0..0000000 Binary files a/about/img/dizhi.png and /dev/null differ diff --git a/about/img/fangjianguanli.png b/about/img/fangjianguanli.png deleted file mode 100644 index 6900527..0000000 Binary files a/about/img/fangjianguanli.png and /dev/null differ diff --git a/about/img/icon_sq7vu28me2.zip b/about/img/icon_sq7vu28me2.zip deleted file mode 100644 index 89d5b49..0000000 Binary files a/about/img/icon_sq7vu28me2.zip and /dev/null differ diff --git a/about/img/iconku_Artboard.png b/about/img/iconku_Artboard.png deleted file mode 100644 index 735a1f4..0000000 Binary files a/about/img/iconku_Artboard.png and /dev/null differ diff --git a/about/img/jiayou.png b/about/img/jiayou.png deleted file mode 100644 index 02ad3b2..0000000 Binary files a/about/img/jiayou.png and /dev/null differ diff --git a/about/img/jilianxuanzeqi.png b/about/img/jilianxuanzeqi.png deleted file mode 100644 index a2a88f0..0000000 Binary files a/about/img/jilianxuanzeqi.png and /dev/null differ diff --git a/about/img/me.png b/about/img/me.png deleted file mode 100644 index a235291..0000000 Binary files a/about/img/me.png and /dev/null differ diff --git a/about/img/my.jpg b/about/img/my.jpg deleted file mode 100644 index 146354c..0000000 Binary files a/about/img/my.jpg and /dev/null differ diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..5093014 --- /dev/null +++ b/about/index.html @@ -0,0 +1,30 @@ + 自述 - 满河星 + + + +

    自述

    这是一份站长的自述报告,请查收。

    关于 Gyoza

    +

    Gyoza 是一个使用 Astro 和 React 开发的博客主题。Gyoza 借鉴了 Shiro 和一些网站的设计。

    +

    Gyoza 的核心理念是简洁,快速,可爱。

    + +

    Gyoza 是开源的,如果你对这个项目感兴趣,欢迎前往 Gyoza 的 Github 仓库 来提 Issue 或者 PR。

    +

    关于作者

    +

    我是 lxchapu,是一名前端开发者,喜欢各种有趣的东西。欢迎访问我的个人网站 www.lxchapu.com,了解关于我更多的信息。

    +

    致谢

    +

    感谢以下项目:

    +
    \ No newline at end of file diff --git a/album/index.html b/album/index.html deleted file mode 100644 index 88f2eef..0000000 --- a/album/index.html +++ /dev/null @@ -1,375 +0,0 @@ - - - - - - - - - - - - - - - - - - - - page.title - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    🎈🎈女神墙🎈🎈

    -

    彭小苒

    -
    - - -
    - -
    -

    李一桐

    -
    - - -
    - -
    -

    张羽习

    -
    - - -
    - -
    -

    图片搜集于互联网,侵权请留言,马上处理😊。

    - - - -
    - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apple-touch-icon.png b/apple-touch-icon.png new file mode 100644 index 0000000..5051660 Binary files /dev/null and b/apple-touch-icon.png differ diff --git a/archives/2020/08/index.html b/archives/2020/08/index.html deleted file mode 100644 index 530ac73..0000000 --- a/archives/2020/08/index.html +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 归档 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 15 篇文章

    -
    - - - - -

    2020

    - - - 网页设计/css - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2020/index.html b/archives/2020/index.html deleted file mode 100644 index 530ac73..0000000 --- a/archives/2020/index.html +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 归档 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 15 篇文章

    -
    - - - - -

    2020

    - - - 网页设计/css - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2021/01/index.html b/archives/2021/01/index.html deleted file mode 100644 index a2279d0..0000000 --- a/archives/2021/01/index.html +++ /dev/null @@ -1,353 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 归档 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 15 篇文章

    -
    - - - - -

    2021

    - - - 时光轴 - - - - - - tab的实现 - - - - - - 正则表达式 - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2021/02/index.html b/archives/2021/02/index.html deleted file mode 100644 index 47ba85b..0000000 --- a/archives/2021/02/index.html +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 归档 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 15 篇文章

    -
    - - - - -

    2021

    - - - 生成自己小爱同学超级课程表 - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2021/03/index.html b/archives/2021/03/index.html deleted file mode 100644 index 3092e39..0000000 --- a/archives/2021/03/index.html +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 归档 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 15 篇文章

    -
    - - - - -

    2021

    - - - 鼠标移上去图片放大 - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2021/08/index.html b/archives/2021/08/index.html deleted file mode 100644 index 68cca39..0000000 --- a/archives/2021/08/index.html +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 归档 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 15 篇文章

    -
    - - - - -

    2021

    - - - js再看 - - - - - - - - - - - - - - - - - - 前端加油站(长期更新) - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2021/09/index.html b/archives/2021/09/index.html deleted file mode 100644 index d405419..0000000 --- a/archives/2021/09/index.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 归档 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - - - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2021/index.html b/archives/2021/index.html deleted file mode 100644 index d77c561..0000000 --- a/archives/2021/index.html +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 归档 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - - - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/2021/page/2/index.html b/archives/2021/page/2/index.html deleted file mode 100644 index 16f3a48..0000000 --- a/archives/2021/page/2/index.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 归档 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - - - - - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archives/index.html b/archives/index.html index 23095d8..1f8dc9b 100644 --- a/archives/index.html +++ b/archives/index.html @@ -1,401 +1,11 @@ - - - - - - - - - - - - - - - - - - - - 归档 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - - - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 归档 - 满河星 + + +

    归档

    共产出 4 篇文章,再接再厉。


    今天是 0 年的第

    今年已过 %

    今天已过 %

    \ No newline at end of file diff --git a/archives/page/2/index.html b/archives/page/2/index.html deleted file mode 100644 index 0be3d59..0000000 --- a/archives/page/2/index.html +++ /dev/null @@ -1,374 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 归档 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - - - - - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/categories/index.html b/categories/index.html deleted file mode 100644 index 1f1619f..0000000 --- a/categories/index.html +++ /dev/null @@ -1,334 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 分类 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - - - - - - - -
    - - - - -
    - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/categories/\344\276\213\345\255\220/index.html" "b/categories/\344\276\213\345\255\220/index.html" new file mode 100644 index 0000000..32afceb --- /dev/null +++ "b/categories/\344\276\213\345\255\220/index.html" @@ -0,0 +1,12 @@ + 分类 · 例子 - 满河星 + + +

    +分类:例子

    共有 2 篇文章。

    \ No newline at end of file diff --git "a/categories/\346\225\231\347\250\213/index.html" "b/categories/\346\225\231\347\250\213/index.html" new file mode 100644 index 0000000..6160e5b --- /dev/null +++ "b/categories/\346\225\231\347\250\213/index.html" @@ -0,0 +1,12 @@ + 分类 · 教程 - 满河星 + + +

    +分类:教程

    共有 2 篇文章。

    \ No newline at end of file diff --git a/css/gitalk.css b/css/gitalk.css deleted file mode 100644 index a268f1d..0000000 --- a/css/gitalk.css +++ /dev/null @@ -1,546 +0,0 @@ -@font-face { - font-family: octicons-link; - src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff'); -} -/* variables */ -/* functions & mixins */ -/* variables - calculated */ -/* styles */ -.gt-container { - -webkit-box-sizing: border-box; - box-sizing: border-box; - font-size: 16px; - /* loader */ - /* error */ - /* initing */ - /* no int */ - /* link */ - /* meta */ - /* popup */ - /* header */ - /* comments */ - /* comment */ -} -.gt-container * { - -webkit-box-sizing: border-box; - box-sizing: border-box; -} -.gt-container a { - color: #6190e8; -} -.gt-container a:hover { - color: #81a6ed; - border-color: #81a6ed; -} -.gt-container a.is--active { - color: #333; - cursor: default !important; -} -.gt-container a.is--active:hover { - color: #333; -} -.gt-container .hide { - display: none !important; -} -.gt-container .gt-svg { - display: inline-block; - width: 1em; - height: 1em; - vertical-align: sub; -} -.gt-container .gt-svg svg { - width: 100%; - height: 100%; - fill: #6190e8; -} -.gt-container .gt-ico { - display: inline-block; -} -.gt-container .gt-ico-text { - margin-left: 0.3125em; -} -.gt-container .gt-ico-github { - width: 100%; - height: 100%; -} -.gt-container .gt-ico-github .gt-svg { - width: 100%; - height: 100%; -} -.gt-container .gt-ico-github svg { - fill: inherit; -} -.gt-container .gt-spinner { - position: relative; -} -.gt-container .gt-spinner::before { - content: ''; - -webkit-box-sizing: border-box; - box-sizing: border-box; - position: absolute; - top: 3px; - width: 0.75em; - height: 0.75em; - margin-top: -0.1875em; - margin-left: -0.375em; - border-radius: 50%; - border: 1px solid #fff; - border-top-color: #6190e8; - -webkit-animation: gt-kf-rotate 0.6s linear infinite; - animation: gt-kf-rotate 0.6s linear infinite; -} -.gt-container .gt-loader { - position: relative; - border: 1px solid #999; - -webkit-animation: ease gt-kf-rotate 1.5s infinite; - animation: ease gt-kf-rotate 1.5s infinite; - display: inline-block; - font-style: normal; - width: 1.75em; - height: 1.75em; - line-height: 1.75em; - border-radius: 50%; -} -.gt-container .gt-loader:before { - content: ''; - position: absolute; - display: block; - top: 0; - left: 50%; - margin-top: -0.1875em; - margin-left: -0.1875em; - width: 0.375em; - height: 0.375em; - background-color: #999; - border-radius: 50%; -} -.gt-container .gt-avatar { - display: inline-block; - width: 3.125em; - height: 3.125em; -} -@media (max-width: 479px) { - .gt-container .gt-avatar { - width: 2em; - height: 2em; - } -} -.gt-container .gt-avatar img { - width: 100%; - height: auto; - border-radius: 3px; -} -.gt-container .gt-avatar-github { - width: 3em; - height: 3em; -} -@media (max-width: 479px) { - .gt-container .gt-avatar-github { - width: 1.875em; - height: 1.875em; - } -} -.gt-container .gt-btn { - padding: 0.75em 1.25em; - display: inline-block; - line-height: 1; - text-decoration: none; - white-space: nowrap; - cursor: pointer; - border: 1px solid #6190e8; - border-radius: 5px; - background-color: #6190e8; - color: #fff; - outline: none; - font-size: 0.75em; -} -.gt-container .gt-btn-text { - font-weight: 400; -} -.gt-container .gt-btn-loading { - position: relative; - margin-left: 0.5em; - display: inline-block; - width: 0.75em; - height: 1em; - vertical-align: top; -} -.gt-container .gt-btn.is--disable { - cursor: not-allowed; - opacity: 0.5; -} -.gt-container .gt-btn-login { - margin-right: 0; -} -.gt-container .gt-btn-preview { - background-color: #fff; - color: #6190e8; -} -.gt-container .gt-btn-preview:hover { - background-color: #f2f2f2; - border-color: #81a6ed; -} -.gt-container .gt-btn-public:hover { - background-color: #81a6ed; - border-color: #81a6ed; -} -.gt-container .gt-error { - text-align: center; - margin: 0.625em; - color: #ff3860; -} -.gt-container .gt-initing { - padding: 1.25em 0; - text-align: center; -} -.gt-container .gt-initing-text { - margin: 0.625em auto; - font-size: 92%; -} -.gt-container .gt-no-init { - padding: 1.25em 0; - text-align: center; -} -.gt-container .gt-link { - border-bottom: 1px dotted #6190e8; -} -.gt-container .gt-link-counts, -.gt-container .gt-link-project { - text-decoration: none; -} -.gt-container .gt-meta { - margin: 1.25em 0; - padding: 1em 0; - position: relative; - border-bottom: 1px solid #e9e9e9; - font-size: 1em; - position: relative; - z-index: 10; -} -.gt-container .gt-meta:before, -.gt-container .gt-meta:after { - content: " "; - display: table; -} -.gt-container .gt-meta:after { - clear: both; -} -.gt-container .gt-counts { - margin: 0 0.625em 0 0; -} -.gt-container .gt-user { - float: right; - margin: 0; - font-size: 92%; -} -.gt-container .gt-user-pic { - width: 16px; - height: 16px; - vertical-align: top; - margin-right: 0.5em; -} -.gt-container .gt-user-inner { - display: inline-block; - cursor: pointer; -} -.gt-container .gt-user .gt-ico { - margin: 0 0 0 0.3125em; -} -.gt-container .gt-user .gt-ico svg { - fill: inherit; -} -.gt-container .gt-user .is--poping .gt-ico svg { - fill: #6190e8; -} -.gt-container .gt-version { - color: #a1a1a1; - margin-left: 0.375em; -} -.gt-container .gt-copyright { - margin: 0 0.9375em 0.5em; - border-top: 1px solid #e9e9e9; - padding-top: 0.5em; -} -.gt-container .gt-popup { - position: absolute; - right: 0; - top: 2.375em; - background: #fff; - display: inline-block; - border: 1px solid #e9e9e9; - padding: 0.625em 0; - font-size: 0.875em; - letter-spacing: 0.5px; -} -.gt-container .gt-popup .gt-action { - cursor: pointer; - display: block; - margin: 0.5em 0; - padding: 0 1.125em; - position: relative; - text-decoration: none; -} -.gt-container .gt-popup .gt-action.is--active:before { - content: ''; - width: 0.25em; - height: 0.25em; - background: #6190e8; - position: absolute; - left: 0.5em; - top: 0.4375em; -} -.gt-container .gt-header { - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: flex; -} -.gt-container .gt-header-comment { - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; - margin-left: 1.25em; -} -@media (max-width: 479px) { - .gt-container .gt-header-comment { - margin-left: 0.875em; - } -} -.gt-container .gt-header-textarea { - padding: 0.75em; - display: block; - -webkit-box-sizing: border-box; - box-sizing: border-box; - width: 100%; - min-height: 5.125em; - max-height: 15em; - border-radius: 5px; - border: 1px solid rgba(0,0,0,0.1); - font-size: 0.875em; - word-wrap: break-word; - resize: vertical; - background-color: #f6f6f6; - outline: none; - -webkit-transition: all 0.25s ease; - transition: all 0.25s ease; -} -.gt-container .gt-header-textarea:hover { - background-color: #fbfbfb; -} -.gt-container .gt-header-preview { - padding: 0.75em; - border-radius: 5px; - border: 1px solid rgba(0,0,0,0.1); - background-color: #f6f6f6; -} -.gt-container .gt-header-controls { - position: relative; - margin: 0.75em 0 0; -} -.gt-container .gt-header-controls:before, -.gt-container .gt-header-controls:after { - content: " "; - display: table; -} -.gt-container .gt-header-controls:after { - clear: both; -} -@media (max-width: 479px) { - .gt-container .gt-header-controls { - margin: 0; - } -} -.gt-container .gt-header-controls-tip { - font-size: 0.875em; - color: #6190e8; - text-decoration: none; - vertical-align: sub; -} -@media (max-width: 479px) { - .gt-container .gt-header-controls-tip { - display: none; - } -} -.gt-container .gt-header-controls .gt-btn { - float: right; - margin-left: 1.25em; -} -@media (max-width: 479px) { - .gt-container .gt-header-controls .gt-btn { - float: none; - width: 100%; - margin: 0.75em 0 0; - } -} -.gt-container:after { - content: ''; - position: fixed; - bottom: 100%; - left: 0; - right: 0; - top: 0; - opacity: 0; -} -.gt-container.gt-input-focused { - position: relative; -} -.gt-container.gt-input-focused:after { - content: ''; - position: fixed; - bottom: 0%; - left: 0; - right: 0; - top: 0; - background: #000; - opacity: 0.6; - -webkit-transition: opacity 0.3s, bottom 0s; - transition: opacity 0.3s, bottom 0s; - z-index: 9999; -} -.gt-container.gt-input-focused .gt-header-comment { - z-index: 10000; -} -.gt-container .gt-comments { - padding-top: 1.25em; -} -.gt-container .gt-comments-null { - text-align: center; -} -.gt-container .gt-comments-controls { - margin: 1.25em 0; - text-align: center; -} -.gt-container .gt-comment { - position: relative; - padding: 0.625em 0; - display: -webkit-box; - display: -ms-flexbox; - display: flex; -} -.gt-container .gt-comment-content { - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; - margin-left: 1.25em; - padding: 0.75em 1em; - background-color: #f9f9f9; - overflow: auto; - -webkit-transition: all ease 0.25s; - transition: all ease 0.25s; -} -.gt-container .gt-comment-content:hover { - -webkit-box-shadow: 0 0.625em 3.75em 0 #f4f4f4; - box-shadow: 0 0.625em 3.75em 0 #f4f4f4; -} -@media (max-width: 479px) { - .gt-container .gt-comment-content { - margin-left: 0.875em; - padding: 0.625em 0.75em; - } -} -.gt-container .gt-comment-header { - margin-bottom: 0.5em; - font-size: 0.875em; - position: relative; -} -.gt-container .gt-comment-block-1 { - float: right; - height: 1.375em; - width: 2em; -} -.gt-container .gt-comment-block-2 { - float: right; - height: 1.375em; - width: 4em; -} -.gt-container .gt-comment-username { - font-weight: 500; - color: #6190e8; - text-decoration: none; -} -.gt-container .gt-comment-username:hover { - text-decoration: underline; -} -.gt-container .gt-comment-text { - margin-left: 0.5em; - color: #a1a1a1; -} -.gt-container .gt-comment-date { - margin-left: 0.5em; - color: #a1a1a1; -} -.gt-container .gt-comment-like, -.gt-container .gt-comment-edit, -.gt-container .gt-comment-reply { - position: absolute; - height: 1.375em; -} -.gt-container .gt-comment-like:hover, -.gt-container .gt-comment-edit:hover, -.gt-container .gt-comment-reply:hover { - cursor: pointer; -} -.gt-container .gt-comment-like { - top: 0; - right: 2em; -} -.gt-container .gt-comment-edit, -.gt-container .gt-comment-reply { - top: 0; - right: 0; -} -.gt-container .gt-comment-body { - color: #333 !important; -} -.gt-container .gt-comment-body .email-hidden-toggle a { - display: inline-block; - height: 12px; - padding: 0 9px; - font-size: 12px; - font-weight: 600; - line-height: 6px; - color: #444d56; - text-decoration: none; - vertical-align: middle; - background: #dfe2e5; - border-radius: 1px; -} -.gt-container .gt-comment-body .email-hidden-toggle a:hover { - background-color: #c6cbd1; -} -.gt-container .gt-comment-body .email-hidden-reply { - display: none; - white-space: pre-wrap; -} -.gt-container .gt-comment-body .email-hidden-reply .email-signature-reply { - padding: 0 15px; - margin: 15px 0; - color: #586069; - border-left: 4px solid #dfe2e5; -} -.gt-container .gt-comment-body .email-hidden-reply.expanded { - display: block; -} -.gt-container .gt-comment-admin .gt-comment-content { - background-color: #f6f9fe; -} -@-webkit-keyframes gt-kf-rotate { - 0% { - -webkit-transform: rotate(0); - transform: rotate(0); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes gt-kf-rotate { - 0% { - -webkit-transform: rotate(0); - transform: rotate(0); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} diff --git a/css/hbe.style.css b/css/hbe.style.css deleted file mode 100644 index 2935f20..0000000 --- a/css/hbe.style.css +++ /dev/null @@ -1,749 +0,0 @@ -.hbe, -.hbe:after, -.hbe:before { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.hbe-container{ - margin: 0 auto; - overflow: hidden; -} -.hbe-content { - text-align: center; - font-size: 150%; - padding: 1em 0; -} - -.hbe-input { - position: relative; - z-index: 1; - display: inline-block; - margin: 1em; - width: 80%; - min-width: 400px; - vertical-align: top; -} - -.hbe-input-field { - line-height: normal; - font-size: 100%; - margin: 0; - position: relative; - display: block; - float: right; - padding: 0.8em; - width: 60%; - border: none; - border-radius: 0; - background: #f0f0f0; - color: #aaa; - font-weight: 400; - font-family: "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif; - -webkit-appearance: none; /* for box shadows to show on iOS */ -} - -.hbe-input-field:focus { - outline: none; -} - -.hbe-input-label { - display: inline-block; - float: right; - padding: 0 1em; - width: 40%; - color: #696969; - font-weight: bold; - font-size: 70.25%; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.hbe-input-label-content { - position: relative; - display: block; - padding: 1.6em 0; - width: 100%; -} - -.hbe-graphic { - position: absolute; - top: 0; - left: 0; - fill: none; -} - -/* hbe button in post page */ -.hbe-button { - width: 130px; - height: 40px; - background: linear-gradient(to bottom, #4eb5e5 0%,#389ed5 100%); /* W3C */ - border: none; - border-radius: 5px; - position: relative; - border-bottom: 4px solid #2b8bc6; - color: #fbfbfb; - font-weight: 600; - font-family: 'Open Sans', sans-serif; - text-shadow: 1px 1px 1px rgba(0,0,0,.4); - font-size: 15px; - text-align: left; - text-indent: 5px; - box-shadow: 0px 3px 0px 0px rgba(0,0,0,.2); - cursor: pointer; - - display: block; - margin: 0 auto; - margin-bottom: 20px; -} - -.hbe-button:active { - box-shadow: 0px 2px 0px 0px rgba(0,0,0,.2); - top: 1px; -} - -.hbe-button:after { - content: ""; - width: 0; - height: 0; - display: block; - border-top: 20px solid #187dbc; - border-bottom: 20px solid #187dbc; - border-left: 16px solid transparent; - border-right: 20px solid #187dbc; - position: absolute; - opacity: 0.6; - right: 0; - top: 0; - border-radius: 0 5px 5px 0; -} -/* hbe button in post page */ - -/* default theme {{{ */ -.hbe-input-default { - overflow: hidden; -} - -.hbe-input-field-default { - width: 100%; - background: transparent; - padding: 0.5em; - margin-bottom: 2em; - color: #f9f7f6; - z-index: 100; - opacity: 0; -} - -.hbe-input-label-default { - width: 100%; - position: absolute; - text-align: left; - padding: 0.5em 0; - pointer-events: none; - font-size: 1em; -} - -.hbe-input-label-default::before, -.hbe-input-label-default::after { - content: ''; - position: absolute; - width: 100%; - left: 0; -} - -.hbe-input-label-default::before { - height: 100%; - background: #666666; - top: 0; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - -webkit-transition: -webkit-transform 0.2s; - transition: transform 0.2s; -} - -.hbe-input-label-default::after { - height: 2px; - background: #666666; - top: 100%; - -webkit-transition: opacity 0.2s; - transition: opacity 0.2s; -} - -.hbe-input-label-content-default { - padding: 0; - -webkit-transform-origin: 0 0; - transform-origin: 0 0; - -webkit-transition: -webkit-transform 0.2s, color 0.2s; - transition: transform 0.2s, color 0.2s; -} - -.hbe-input-field-default:focus, -.hbe-input--filled .hbe-input-field-default { - opacity: 1; - -webkit-transition: opacity 0s 0.2s; - transition: opacity 0s 0.2s; -} - -.hbe-input-label-default::before, -.hbe-input-label-default::after, -.hbe-input-label-content-default, -.hbe-input-field-default:focus, -.hbe-input--filled .hbe-input-field-default { - -webkit-transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); - transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); -} - -.hbe-input-field-default:focus + .hbe-input-label-default::before, -.hbe-input--filled .hbe-input-label-default::before { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} - -.hbe-input-field-default:focus + .hbe-input-label-default::after, -.hbe-input--filled .hbe-input-label-default::after { - opacity: 0; -} - -.hbe-input-field-default:focus + .hbe-input-label-default .hbe-input-label-content-default, -.hbe-input--filled .hbe-input-label-default .hbe-input-label-content-default { - color: #555555; - -webkit-transform: translate3d(0, 2.1em, 0) scale3d(0.65, 0.65, 1); - transform: translate3d(0, 2.1em, 0) scale3d(0.65, 0.65, 1); -} -/* default theme }}} */ - -/* up theme {{{ */ -.hbe-input-up { - overflow: hidden; - padding-top: 2em; -} - -.hbe-input-field-up { - width: 100%; - background: transparent; - opacity: 0; - padding: 0.35em; - z-index: 100; - color: #837482; -} - -.hbe-input-label-up { - width: 100%; - bottom: 0; - position: absolute; - pointer-events: none; - text-align: left; - color: #8E9191; - padding: 0 0.5em; -} - -.hbe-input-label-up::before { - content: ''; - position: absolute; - width: 100%; - height: 4em; - top: 100%; - left: 0; - background: #fff; - border-top: 4px solid #9B9F9F; - -webkit-transform: translate3d(0, -3px, 0); - transform: translate3d(0, -3px, 0); - -webkit-transition: -webkit-transform 0.4s; - transition: transform 0.4s; - -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); - transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); -} - -.hbe-input-label-content-up { - padding: 0.5em 0; - -webkit-transform-origin: 0% 100%; - transform-origin: 0% 100%; - -webkit-transition: -webkit-transform 0.4s, color 0.4s; - transition: transform 0.4s, color 0.4s; - -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); - transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); -} - -.hbe-input-field-up:focus, -.input--filled .hbe-input-field-up { - cursor: text; - opacity: 1; - -webkit-transition: opacity 0s 0.4s; - transition: opacity 0s 0.4s; -} - -.hbe-input-field-up:focus + .hbe-input-label-up::before, -.input--filled .hbe-input-label-up::before { - -webkit-transition-delay: 0.05s; - transition-delay: 0.05s; - -webkit-transform: translate3d(0, -3.3em, 0); - transform: translate3d(0, -3.3em, 0); -} - -.hbe-input-field-up:focus + .hbe-input-label-up .hbe-input-label-content-up, -.input--filled .hbe-input-label-content-up { - color: #6B6E6E; - -webkit-transform: translate3d(0, -3.3em, 0) scale3d(0.81, 0.81, 1); - transform: translate3d(0, -3.3em, 0) scale3d(0.81, 0.81, 1); -} -/* up theme }}} */ - -/* wave theme {{{ */ -.hbe-input-wave { - overflow: hidden; - padding-top: 1em; -} - -.hbe-input-field-wave { - padding: 0.5em 0em 0.25em; - width: 100%; - background: transparent; - color: #9da8b2; - font-size: 1.25em; -} - -.hbe-input-label-wave { - position: absolute; - top: 0.95em; - font-size: 0.85em; - left: 0; - display: block; - width: 100%; - text-align: left; - padding: 0em; - pointer-events: none; - -webkit-transform-origin: 0 0; - transform-origin: 0 0; - -webkit-transition: -webkit-transform 0.2s 0.15s, color 1s; - transition: transform 0.2s 0.15s, color 1s; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} - -.hbe-graphic-wave { - stroke: #92989e; - pointer-events: none; - -webkit-transition: -webkit-transform 0.7s, stroke 0.7s; - transition: transform 0.7s, stroke 0.7s; - -webkit-transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); - transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); -} - -.hbe-input-field-wave:focus + .hbe-input-label-wave, -.input--filled .hbe-input-label-wave { - color: #333; - -webkit-transform: translate3d(0, -1.25em, 0) scale3d(0.75, 0.75, 1); - transform: translate3d(0, -1.25em, 0) scale3d(0.75, 0.75, 1); -} - -.hbe-input-field-wave:focus ~ .hbe-graphic-wave, -.input--filled .graphic-wave { - stroke: #333; - -webkit-transform: translate3d(-66.6%, 0, 0); - transform: translate3d(-66.6%, 0, 0); -} -/* wave theme }}} */ - -/* flip theme {{{ */ -.hbe-input-field-flip { - width: 100%; - background-color: #d0d1d0; - border: 2px solid transparent; - -webkit-transition: background-color 0.25s, border-color 0.25s; - transition: background-color 0.25s, border-color 0.25s; -} - -.hbe-input-label-flip { - width: 100%; - text-align: left; - position: absolute; - bottom: 100%; - pointer-events: none; - overflow: hidden; - padding: 0 1.25em; - -webkit-transform: translate3d(0, 3em, 0); - transform: translate3d(0, 3em, 0); - -webkit-transition: -webkit-transform 0.25s; - transition: transform 0.25s ; - -webkit-transition-timing-function: ease-in-out; - transition-timing-function: ease-in-out; -} - -.hbe-input-label-content-flip { - color: #8B8C8B; - padding: 0.25em 0; - -webkit-transition: -webkit-transform 0.25s; - transition: transform 0.25s; - -webkit-transition-timing-function: ease-in-out; - transition-timing-function: ease-in-out; -} - -.hbe-input-label-content-flip::after { - content: attr(data-content); - position: absolute; - font-weight: 800; - bottom: 100%; - left: 0; - height: 100%; - width: 100%; - color: #666666; - padding: 0.25em 0; - letter-spacing: 1px; - font-size: 1em; -} - -.hbe-input-field-flip:focus + .hbe-input-label-flip, -.input--filled .hbe-input-label-flip { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} - -.hbe-input-field-flip:focus + .hbe-input-label-flip .hbe-input-label-content-flip, -.input--filled .hbe-input-label-content-flip { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); -} - -.hbe-input-field-flip:focus + .hbe-input-field-flip, -.input--filled .hbe-input-field-flip { - background-color: transparent; - border-color: #666666; -} -/* flip theme }}} */ - -/* xray theme {{{ */ -.hbe-input-xray { - overflow: hidden; - padding-bottom: 2.5em; -} - -.hbe-input-field-xray { - padding: 0; - margin-top: 1.2em; - width: 100%; - background: transparent; - color: #84AF9B ; - font-size: 1.55em; -} - -.hbe-input-label-xray { - position: absolute; - top: 2em; - left: 0; - display: block; - width: 100%; - text-align: left; - padding: 0em; - letter-spacing: 1px; - color: #84AF9B ; - pointer-events: none; - -webkit-transform-origin: 0 0; - transform-origin: 0 0; - -webkit-transition: -webkit-transform 0.2s 0.1s, color 0.3s; - transition: transform 0.2s 0.1s, color 0.3s; - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} - -.hbe-graphic-xray { - stroke: #84AF9B ; - pointer-events: none; - stroke-width: 2px; - top: 1.25em; - bottom: 0px; - height: 3.275em; - -webkit-transition: -webkit-transform 0.7s, stroke 0.7s; - transition: transform 0.7s, stroke 0.7s; - -webkit-transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); - transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); -} - -.hbe-input-field-xray:focus + .hbe-input-label-xray, -.input--filled .hbe-input-label-xray { - color: #84AF9B ; - -webkit-transform: translate3d(0, 3.5em, 0) scale3d(0.85, 0.85, 1); - transform: translate3d(0, 3.5em, 0) scale3d(0.85, 0.85, 1); -} - -.hbe-input-field-xray:focus ~ .hbe-graphic-xray, -.input--filled .graphic-xray { - stroke: #84AF9B ; - -webkit-transform: translate3d(-66.6%, 0, 0); - transform: translate3d(-66.6%, 0, 0); -} -/* xray theme }}} */ - -/* blink theme {{{ */ -.hbe-input-blink { - padding-top: 1em; -} - -.hbe-input-field-blink { - width: 100%; - padding: 0.8em 0.5em; - background: transparent; - border: 2px solid; - color: #8781bd; - -webkit-transition: border-color 0.25s; - transition: border-color 0.25s; -} - -.hbe-input-label-blink { - width: 100%; - position: absolute; - top: 0; - text-align: left; - overflow: hidden; - padding: 0; - pointer-events: none; - -webkit-transform: translate3d(0, 3em, 0); - transform: translate3d(0, 3em, 0); -} - -.hbe-input-label-content-blink { - padding: 0 1em; - font-weight: 400; - color: #b5b5b5; -} - -.hbe-input-label-content-blink::after { - content: attr(data-content); - position: absolute; - top: -200%; - left: 0; - color: #8781bd ; - font-weight: 800; -} - -.hbe-input-field-blink:focus, -.input--filled .hbe-input-field-blink { - border-color: #8781bd ; -} - -.hbe-input-field-blink:focus + .hbe-input-label-blink, -.input--filled .hbe-input-label-blink { - -webkit-animation: anim-blink-1 0.25s forwards; - animation: anim-blink-1 0.25s forwards; -} - -.hbe-input-field-blink:focus + .hbe-input-label-blink .hbe-input-label-content-blink, -.input--filled .hbe-input-label-content-blink { - -webkit-animation: anim-blink-2 0.25s forwards ease-in; - animation: anim-blink-2 0.25s forwards ease-in; -} - -@-webkit-keyframes anim-blink-1 { - 0%, 70% { - -webkit-transform: translate3d(0, 3em, 0); - transform: translate3d(0, 3em, 0); - } - 71%, 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@-webkit-keyframes anim-blink-2 { - 0% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - 70%, 71% { - -webkit-transform: translate3d(0, 125%, 0); - transform: translate3d(0, 125%, 0); - opacity: 0; - -webkit-animation-timing-function: ease-out; - } - 100% { - color: transparent; - -webkit-transform: translate3d(0, 200%, 0); - transform: translate3d(0, 200%, 0); - } -} - -@keyframes anim-blink-1 { - 0%, 70% { - -webkit-transform: translate3d(0, 3em, 0); - transform: translate3d(0, 3em, 0); - } - 71%, 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes anim-blink-2 { - 0% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - 70%, 71% { - -webkit-transform: translate3d(0, 125%, 0); - transform: translate3d(0, 125%, 0); - opacity: 0; - -webkit-animation-timing-function: ease-out; - } - 100% { - color: transparent; - -webkit-transform: translate3d(0, 200%, 0); - transform: translate3d(0, 200%, 0); - } -} -/* blink theme }}} */ - -/* surge theme {{{ */ -.hbe-input-surge { - overflow: hidden; - padding-bottom: 1em; -} - -.hbe-input-field-surge { - padding: 0.25em 0.5em; - margin-top: 1.25em; - width: 100%; - background: transparent; - color: #D0D0D0; - font-size: 1.55em; - opacity: 0; -} - -.hbe-input-label-surge { - width: 100%; - text-align: left; - position: absolute; - top: 1em; - pointer-events: none; - overflow: hidden; - padding: 0 0.25em; - -webkit-transform: translate3d(1em, 2.75em, 0); - transform: translate3d(1em, 2.75em, 0); - -webkit-transition: -webkit-transform 0.3s; - transition: transform 0.3s; -} - -.hbe-input-label-content-surge { - color: #A4A5A6; - padding: 0.4em 0 0.25em; - -webkit-transition: -webkit-transform 0.3s; - transition: transform 0.3s; -} - -.hbe-input-label-content-surge::after { - content: attr(data-content); - position: absolute; - font-weight: 800; - top: 100%; - left: 0; - height: 100%; - width: 100%; - color: #2C3E50; - padding: 0.25em 0; - letter-spacing: 1px; - font-size: 0.85em; -} - -.hbe-graphic-surge { - fill: #2C3E50; - pointer-events: none; - top: 1em; - bottom: 0px; - height: 4.5em; - z-index: -1; - -webkit-transition: -webkit-transform 0.7s, fill 0.7s; - transition: transform 0.7s, fill 0.7s; - -webkit-transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); - transition-timing-function: cubic-bezier(0, 0.25, 0.5, 1); -} - -.hbe-input-field-surge:focus, -.input--filled .hbe-input-field-surge { - -webkit-transition: opacity 0s 0.35s; - transition: opacity 0s 0.35s; - opacity: 1; -} - -.hbe-input-field-surge:focus + .hbe-input-label-surge, -.input--filled .hbe-input-label-surge { - -webkit-transition-delay: 0.15s; - transition-delay: 0.15s; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} - -.hbe-input-field-surge:focus + .hbe-input-label-surge .hbe-input-label-content-surge, -.input--filled .hbe-input-label-content-surge { - -webkit-transition-delay: 0.15s; - transition-delay: 0.15s; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); -} - -.hbe-input-field-surge:focus ~ .hbe-graphic-surge, -.input--filled .graphic-surge { - fill: #2C3E50; - -webkit-transform: translate3d(-66.6%, 0, 0); - transform: translate3d(-66.6%, 0, 0); -} -/* surge theme }}} */ - -/* shrink theme {{{ */ -.hbe-input-field-shrink { - width: 100%; - background: transparent; - padding: 0.5em 0; - margin-bottom: 2em; - color: #2C3E50; -} - -.hbe-input-label-shrink { - width: 100%; - position: absolute; - text-align: left; - font-size: 1em; - padding: 10px 0 5px; - pointer-events: none; -} - -.hbe-input-label-shrink::after { - content: ''; - position: absolute; - width: 100%; - height: 7px; - background: #B7C3AC; - left: 0; - top: 100%; - -webkit-transform-origin: 50% 100%; - transform-origin: 50% 100%; - -webkit-transition: -webkit-transform 0.3s, background-color 0.3s; - transition: transform 0.3s, background-color 0.3s; -} - -.hbe-input-label-content-shrink { - padding: 0; - -webkit-transform-origin: 0 0; - transform-origin: 0 0; - -webkit-transition: -webkit-transform 0.3s, color 0.3s; - transition: transform 0.3s, color 0.3s; -} - -.hbe-input-field-shrink:focus + .hbe-input-label-shrink::after, -.input--filled .hbe-input-label-shrink::after { - background: #84AF9B; - -webkit-transform: scale3d(1, 0.25, 1); - transform: scale3d(1, 0.25, 1); -} - -.hbe-input-field-shrink:focus + .hbe-input-label-shrink .hbe-input-label-content-shrink, -.input--filled .hbe-input-label-shrink .hbe-input-label-content-shrink { - color: #84AF9B; - -webkit-transform: translate3d(0, 2em, 0) scale3d(0.655, 0.655, 1); - transform: translate3d(0, 2em, 0) scale3d(0.655, 0.655, 1); -} -/* shrink theme }}} */ diff --git a/css/main.css b/css/main.css deleted file mode 100644 index 7e2755f..0000000 --- a/css/main.css +++ /dev/null @@ -1,1963 +0,0 @@ -.banner { - height: 100%; - position: relative; - overflow: hidden; - cursor: default; - overflow-wrap: break-word; -} -.banner .mask { - position: absolute; - width: 100%; - height: 100%; - background-color: rgba(0,0,0,0.3); -} -.banner .page-header { - color: #fff; - max-width: calc(960px - 6rem); - width: 80%; -} -@media (max-width: 575px) { - .banner .page-header, - .banner .page-header .iconfont { - font-size: 0.9rem; - } -} -.banner[parallax="true"] { - will-change: transform; - -webkit-transform-style: preserve-3d; - -webkit-backface-visibility: hidden; -} -@media (max-width: 100vh) { - header { - max-height: 100vw; - } - #board { - margin-top: -1rem !important; - } -} -@media (max-width: 79.99vh) { - .scroll-down-bar { - display: none; - } -} -#board { - position: relative; - margin-top: -2rem; - background-color: var(--board-bg-color); - transition: background-color 0.2s ease-in-out; - border-radius: 0.5rem; - z-index: 3; - -webkit-box-shadow: 0 12px 15px 0 rgba(0,0,0,0.24), 0 17px 50px 0 rgba(0,0,0,0.19); - box-shadow: 0 12px 15px 0 rgba(0,0,0,0.24), 0 17px 50px 0 rgba(0,0,0,0.19); -} -.copy-btn { - display: inline-block; - cursor: pointer; - border-radius: 0.1rem; - border: none; - background-color: transparent; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-appearance: none; - font-size: 0.75rem; - line-height: 1; - font-weight: bold; - outline: none; - -webkit-transition: opacity 0.2s ease-in-out; - -o-transition: opacity 0.2s ease-in-out; - transition: opacity 0.2s ease-in-out; - padding: 0.15rem; - position: absolute; - right: 0.35rem; - top: 0.15rem; - opacity: 0; -} -.copy-btn > i { - font-size: 0.75rem; - font-weight: 400; -} -.copy-btn > span { - margin-left: 5px; -} -.copy-btn-dark { - color: #6a737d; -} -.copy-btn-light { - color: #bababa; -} -.markdown-body pre:hover > .copy-btn { - opacity: 0.9; -} -.markdown-body pre:hover > .copy-btn, -.markdown-body pre:not(:hover) > .copy-btn { - outline: none; -} -footer > div:not(:first-child) { - margin: 0.25rem 0; - font-size: 0.85rem; -} -footer .statistics { - display: flex; - flex-direction: row; - justify-content: center; -} -footer .statistics > span { - flex: 1; - margin: 0 0.25rem; -} -footer .statistics > *:nth-last-child(2):first-child { - text-align: right; -} -footer .statistics > *:nth-last-child(2):first-child ~ * { - text-align: left; -} -footer .beian { - display: flex; - flex-direction: row; - justify-content: center; -} -footer .beian > * { - flex: 1; - margin: 0 0.25rem; -} -footer .beian > *:nth-last-child(2):first-child { - text-align: right; -} -footer .beian > *:nth-last-child(2):first-child ~ * { - text-align: left; -} -footer .beian-police { - position: relative; - overflow: hidden; - display: inline-flex; - align-items: center; - justify-content: left; -} -footer .beian-police img { - margin-right: 3px; - width: 1rem; - height: 1rem; - margin-bottom: 0.1rem; -} -@media (max-width: 424px) { - footer .statistics { - flex-direction: column; - } - footer .statistics > *:nth-last-child(2):first-child { - text-align: center; - } - footer .statistics > *:nth-last-child(2):first-child ~ * { - text-align: center; - } - footer .beian { - flex-direction: column; - } - footer .beian .beian-police { - justify-content: center; - } - footer .beian > *:nth-last-child(2):first-child { - text-align: center; - } - footer .beian > *:nth-last-child(2):first-child ~ * { - text-align: center; - } -} -sup > a::before, -.footnote-text::before { - display: block; - content: ""; - margin-top: -5rem; - height: 5rem; - width: 1px; - visibility: hidden; -} -sup > a::before, -.footnote-text::before { - display: inline-block; -} -.footnote-item::before { - display: block; - content: ""; - margin-top: -5rem; - height: 5rem; - width: 1px; - visibility: hidden; -} -.footnote-list ol { - list-style-type: none; - counter-reset: sectioncounter; - padding-left: 0.5rem; - font-size: 0.95rem; -} -.footnote-list ol li:before { - font-family: "Helvetica Neue", monospace, "Monaco"; - content: "[" counter(sectioncounter) "]"; - counter-increment: sectioncounter; -} -.footnote-list ol li+li { - margin-top: 0.5rem; -} -.footnote-text { - padding-left: 0.5em; -} -@media (max-width: 767px) { - #subtitle { - font-size: 1.5rem; - } -} -@media (max-width: 575px) { - #subtitle { - font-size: 1.35rem; - } -} -.qr-trigger { - cursor: pointer; - position: relative; -} -.qr-trigger:hover .qr-img { - display: block; - transition: all 0.3s; -} -.qr-img { - max-width: 12rem; - position: absolute; - right: -5.25rem; - z-index: 99; - display: none; - box-shadow: 0 0 20px -5px rgba(158,158,158,0.2); - border-radius: 0.2rem; -} -.scroll-down-bar { - position: absolute; - width: 100%; - height: 6rem; - text-align: center; - cursor: pointer; - bottom: 0; -} -.scroll-down-bar i { - font-size: 2rem; - font-weight: bold; - display: inline-block; - position: relative; - padding-top: 2rem; - color: #fff; - -webkit-transform: translateZ(0); - -moz-transform: translateZ(0); - -ms-transform: translateZ(0); - -o-transform: translateZ(0); - transform: translateZ(0); - -webkit-animation: scroll-down 1.5s infinite; - animation: scroll-down 1.5s infinite; -} -#scroll-top-button { - position: fixed; - z-index: 99; - background: var(--board-bg-color); - transition: background-color 0.2s ease-in-out, bottom 0.3s ease; - border-radius: 4px; - min-width: 40px; - min-height: 40px; - bottom: -60px; - outline: none; - display: flex; - display: -webkit-flex; - align-items: center; - -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12); - box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12); -} -#scroll-top-button i { - font-size: 1.75rem; - margin: auto; - color: var(--sec-text-color); -} -#scroll-top-button:hover i, -#scroll-top-button:active i { - -webkit-animation-name: scroll-top; - animation-name: scroll-top; - -webkit-animation-duration: 1s; - animation-duration: 1s; - -webkit-animation-delay: 0.1s; - animation-delay: 0.1s; - -webkit-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-fill-mode: forwards; - animation-fill-mode: forwards; - -webkit-animation-direction: alternate; - animation-direction: alternate; -} -#local-search-result .search-list-title { - border-left: 3px solid #0d47a1; -} -#local-search-result .search-list-content { - padding: 0 1.25rem; -} -#local-search-result .search-word { - color: #ff4500; -} -html, -body { - font-size: 16px; - font-family: var(--font-family-sans-serif); -} -html, -body, -header { - height: 100%; - overflow-wrap: break-word; -} -body { - transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out; - background-color: var(--body-bg-color); - color: var(--text-color); -} -body a { - color: var(--text-color); - text-decoration: none; - cursor: pointer; - transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out; -} -body a:hover { - color: var(--link-hover-color); - text-decoration: none; - transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out; -} -code { - color: inherit; -} -img[lazyload] { - object-fit: cover; -} -*[align="left"] { - text-align: left; -} -*[align="center"] { - text-align: center; -} -*[align="right"] { - text-align: right; -} -:root { - --color-mode: 'light'; - --body-bg-color: #eee; - --board-bg-color: #fff; - --text-color: #3c4858; - --sec-text-color: #718096; - --post-text-color: #2c3e50; - --post-heading-color: #1a202c; - --post-link-color: #0366d6; - --link-hover-color: #30a9de; - --link-hover-bg-color: #f8f9fa; - --navbar-bg-color: #2f4154; - --navbar-text-color: #fff; -} -@media (prefers-color-scheme: dark) { - :root { - --color-mode: 'dark'; - } - :root:not([data-user-color-scheme]) { - --body-bg-color: #181c27; - --board-bg-color: #252d38; - --text-color: #c4c6c9; - --sec-text-color: #a7a9ad; - --post-text-color: #c4c6c9; - --post-heading-color: #c4c6c9; - --post-link-color: #1589e9; - --link-hover-color: #30a9de; - --link-hover-bg-color: #364151; - --navbar-bg-color: #1f3144; - --navbar-text-color: #d0d0d0; - } - :root:not([data-user-color-scheme]) img, - :root:not([data-user-color-scheme]) .note, - :root:not([data-user-color-scheme]) .label { - -webkit-filter: brightness(0.9); - filter: brightness(0.9); - transition: filter 0.2s ease-in-out; - } - :root:not([data-user-color-scheme]) .page-header { - color: #ddd; - transition: color 0.2s ease-in-out; - } - :root:not([data-user-color-scheme]) .markdown-body :not(pre) > code { - background-color: rgba(62,75,94,0.35); - transition: background-color 0.2s ease-in-out; - } - :root:not([data-user-color-scheme]) .markdown-body pre, - :root:not([data-user-color-scheme]) .markdown-body td.gutter, - :root:not([data-user-color-scheme]) .markdown-body td.code > .code-wrapper { - -webkit-filter: brightness(0.9); - filter: brightness(0.9); - transition: filter 0.2s ease-in-out; - } - :root:not([data-user-color-scheme]) .markdown-body td.gutter pre { - -webkit-filter: initial; - filter: initial; - } - :root:not([data-user-color-scheme]) .markdown-body h1, - :root:not([data-user-color-scheme]) .markdown-body h2 { - border-bottom-color: #435266; - transition: border-bottom-color 0.2s ease-in-out; - } - :root:not([data-user-color-scheme]) .markdown-body h1, - :root:not([data-user-color-scheme]) .markdown-body h2, - :root:not([data-user-color-scheme]) .markdown-body h3, - :root:not([data-user-color-scheme]) .markdown-body h6, - :root:not([data-user-color-scheme]) .markdown-body h5 { - color: #ddd; - transition: all 0.2s ease-in-out; - } - :root:not([data-user-color-scheme]) .markdown-body table tr { - background-color: var(--board-bg-color); - transition: background-color 0.2s ease-in-out; - } - :root:not([data-user-color-scheme]) .markdown-body table tr:nth-child(2n) { - background-color: var(--board-bg-color); - transition: background-color 0.2s ease-in-out; - } - :root:not([data-user-color-scheme]) .markdown-body table th, - :root:not([data-user-color-scheme]) .markdown-body table td { - border-color: #435266; - transition: border-color 0.2s ease-in-out; - } - :root:not([data-user-color-scheme]) hr, - :root:not([data-user-color-scheme]) .markdown-body hr { - border-top-color: #435266; - transition: border-top-color 0.2s ease-in-out; - } - :root:not([data-user-color-scheme]) .note :not(pre) > code { - background-color: rgba(27,31,35,0.05); - } - :root:not([data-user-color-scheme]) .modal-dialog .modal-content .modal-header { - border-bottom-color: #435266; - transition: border-bottom-color 0.2s ease-in-out; - } - :root:not([data-user-color-scheme]) .gt-comment-admin .gt-comment-content { - background-color: transparent; - transition: background-color 0.2s ease-in-out; - } -} -[data-user-color-scheme='dark'] { - --body-bg-color: #181c27; - --board-bg-color: #252d38; - --text-color: #c4c6c9; - --sec-text-color: #a7a9ad; - --post-text-color: #c4c6c9; - --post-heading-color: #c4c6c9; - --post-link-color: #1589e9; - --link-hover-color: #30a9de; - --link-hover-bg-color: #364151; - --navbar-bg-color: #1f3144; - --navbar-text-color: #d0d0d0; -} -[data-user-color-scheme='dark'] img, -[data-user-color-scheme='dark'] .note, -[data-user-color-scheme='dark'] .label { - -webkit-filter: brightness(0.9); - filter: brightness(0.9); - transition: filter 0.2s ease-in-out; -} -[data-user-color-scheme='dark'] .page-header { - color: #ddd; - transition: color 0.2s ease-in-out; -} -[data-user-color-scheme='dark'] .markdown-body :not(pre) > code { - background-color: rgba(62,75,94,0.35); - transition: background-color 0.2s ease-in-out; -} -[data-user-color-scheme='dark'] .markdown-body pre, -[data-user-color-scheme='dark'] .markdown-body td.gutter, -[data-user-color-scheme='dark'] .markdown-body td.code > .code-wrapper { - -webkit-filter: brightness(0.9); - filter: brightness(0.9); - transition: filter 0.2s ease-in-out; -} -[data-user-color-scheme='dark'] .markdown-body td.gutter pre { - -webkit-filter: initial; - filter: initial; -} -[data-user-color-scheme='dark'] .markdown-body h1, -[data-user-color-scheme='dark'] .markdown-body h2 { - border-bottom-color: #435266; - transition: border-bottom-color 0.2s ease-in-out; -} -[data-user-color-scheme='dark'] .markdown-body h1, -[data-user-color-scheme='dark'] .markdown-body h2, -[data-user-color-scheme='dark'] .markdown-body h3, -[data-user-color-scheme='dark'] .markdown-body h6, -[data-user-color-scheme='dark'] .markdown-body h5 { - color: #ddd; - transition: all 0.2s ease-in-out; -} -[data-user-color-scheme='dark'] .markdown-body table tr { - background-color: var(--board-bg-color); - transition: background-color 0.2s ease-in-out; -} -[data-user-color-scheme='dark'] .markdown-body table tr:nth-child(2n) { - background-color: var(--board-bg-color); - transition: background-color 0.2s ease-in-out; -} -[data-user-color-scheme='dark'] .markdown-body table th, -[data-user-color-scheme='dark'] .markdown-body table td { - border-color: #435266; - transition: border-color 0.2s ease-in-out; -} -[data-user-color-scheme='dark'] hr, -[data-user-color-scheme='dark'] .markdown-body hr { - border-top-color: #435266; - transition: border-top-color 0.2s ease-in-out; -} -[data-user-color-scheme='dark'] .note :not(pre) > code { - background-color: rgba(27,31,35,0.05); -} -[data-user-color-scheme='dark'] .modal-dialog .modal-content .modal-header { - border-bottom-color: #435266; - transition: border-bottom-color 0.2s ease-in-out; -} -[data-user-color-scheme='dark'] .gt-comment-admin .gt-comment-content { - background-color: transparent; - transition: background-color 0.2s ease-in-out; -} -.fade-in-up { - -webkit-animation-name: fade-in-up; - animation-name: fade-in-up; -} -.hidden-mobile { - display: block; -} -.visible-mobile { - display: none; -} -@media (max-width: 575px) { - .hidden-mobile { - display: none; - } - .visible-mobile { - display: block; - } -} -.nomargin-x { - margin-left: 0 !important; - margin-right: 0 !important; -} -.nopadding-x { - padding-left: 0 !important; - padding-right: 0 !important; -} -@media (max-width: 767px) { - .nopadding-x-md { - padding-left: 0 !important; - padding-right: 0 !important; - } -} -.flex-center { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - height: 100%; -} -.hover-with-bg { - display: inline-block; - padding: 0.45rem; -} -.hover-with-bg:hover { - background-color: var(--link-hover-bg-color); - transition-duration: 0.2s; - transition-timing-function: ease-in-out; - border-radius: 0.15rem; -} -@-moz-keyframes fade-in-up { - from { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} -@-webkit-keyframes fade-in-up { - from { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} -@-o-keyframes fade-in-up { - from { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} -@keyframes fade-in-up { - from { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } - to { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} -@-moz-keyframes scroll-down { - 0% { - opacity: 0.8; - top: 0; - } - 50% { - opacity: 0.4; - top: -1em; - } - 100% { - opacity: 0.8; - top: 0; - } -} -@-webkit-keyframes scroll-down { - 0% { - opacity: 0.8; - top: 0; - } - 50% { - opacity: 0.4; - top: -1em; - } - 100% { - opacity: 0.8; - top: 0; - } -} -@-o-keyframes scroll-down { - 0% { - opacity: 0.8; - top: 0; - } - 50% { - opacity: 0.4; - top: -1em; - } - 100% { - opacity: 0.8; - top: 0; - } -} -@keyframes scroll-down { - 0% { - opacity: 0.8; - top: 0; - } - 50% { - opacity: 0.4; - top: -1em; - } - 100% { - opacity: 0.8; - top: 0; - } -} -@-moz-keyframes scroll-top { - 0% { - -webkit-transform: translateY(0); - transform: translateY(0); - } - 50% { - -webkit-transform: translateY(-0.35rem); - transform: translateY(-0.35rem); - } - 100% { - -webkit-transform: translateY(0); - transform: translateY(0); - } -} -@-webkit-keyframes scroll-top { - 0% { - -webkit-transform: translateY(0); - transform: translateY(0); - } - 50% { - -webkit-transform: translateY(-0.35rem); - transform: translateY(-0.35rem); - } - 100% { - -webkit-transform: translateY(0); - transform: translateY(0); - } -} -@-o-keyframes scroll-top { - 0% { - -webkit-transform: translateY(0); - transform: translateY(0); - } - 50% { - -webkit-transform: translateY(-0.35rem); - transform: translateY(-0.35rem); - } - 100% { - -webkit-transform: translateY(0); - transform: translateY(0); - } -} -@keyframes scroll-top { - 0% { - -webkit-transform: translateY(0); - transform: translateY(0); - } - 50% { - -webkit-transform: translateY(-0.35rem); - transform: translateY(-0.35rem); - } - 100% { - -webkit-transform: translateY(0); - transform: translateY(0); - } -} -.navbar { - background-color: transparent; - font-size: 0.875rem; - box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12); - -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12); -} -.navbar .navbar-brand { - color: var(--navbar-text-color); -} -.navbar .navbar-toggler .animated-icon span { - background-color: var(--navbar-text-color); -} -.navbar .nav-item .nav-link { - display: block; - color: var(--navbar-text-color); - transition: color 0.2s, background-color 0.2s; -} -.navbar .nav-item .nav-link:hover { - color: var(--link-hover-color); - background-color: rgba(0,0,0,0.1); -} -.navbar .nav-item .nav-link i { - font-size: 0.875rem; -} -.navbar .navbar-toggler { - border-width: 0; - outline: 0; -} -.navbar.scrolling-navbar { - will-change: background, padding; - -webkit-transition: background 0.5s ease-in-out, padding 0.5s ease-in-out; - transition: background 0.5s ease-in-out, padding 0.5s ease-in-out; -} -@media (min-width: 600px) { - .navbar.scrolling-navbar { - padding-top: 12px; - padding-bottom: 12px; - } - .navbar.scrolling-navbar .navbar-nav > li { - -webkit-transition-duration: 1s; - transition-duration: 1s; - } -} -.navbar.scrolling-navbar.top-nav-collapse { - padding-top: 5px; - padding-bottom: 5px; -} -.navbar .dropdown-menu { - font-size: 0.875rem; - color: var(--navbar-text-color); - background-color: rgba(0,0,0,0.3); - border: none; - -webkit-transition: background 0.5s ease-in-out, padding 0.5s ease-in-out; - transition: background 0.5s ease-in-out, padding 0.5s ease-in-out; -} -@media (max-width: 991.98px) { - .navbar .dropdown-menu { - text-align: center; - } -} -.navbar .dropdown-item { - color: var(--navbar-text-color); -} -.navbar .dropdown-item:hover, -.navbar .dropdown-item:focus { - color: var(--link-hover-color); - background-color: rgba(0,0,0,0.1); -} -@media (min-width: 992px) { - .navbar .dropdown:hover > .dropdown-menu { - display: block; - } - .navbar .dropdown > .dropdown-toggle:active { - pointer-events: none; - } - .navbar .dropdown-menu { - top: 95%; - } -} -.navbar .animated-icon { - width: 30px; - height: 20px; - position: relative; - margin: 0; - -webkit-transform: rotate(0deg); - -moz-transform: rotate(0deg); - -o-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transition: 0.5s ease-in-out; - -moz-transition: 0.5s ease-in-out; - -o-transition: 0.5s ease-in-out; - transition: 0.5s ease-in-out; - cursor: pointer; -} -.navbar .animated-icon span { - display: block; - position: absolute; - height: 3px; - width: 100%; - border-radius: 9px; - opacity: 1; - left: 0; - -webkit-transform: rotate(0deg); - -moz-transform: rotate(0deg); - -o-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transition: 0.25s ease-in-out; - -moz-transition: 0.25s ease-in-out; - -o-transition: 0.25s ease-in-out; - transition: 0.25s ease-in-out; - background: #fff; -} -.navbar .animated-icon span:nth-child(1) { - top: 0; -} -.navbar .animated-icon span:nth-child(2) { - top: 10px; -} -.navbar .animated-icon span:nth-child(3) { - top: 20px; -} -.navbar .animated-icon.open span:nth-child(1) { - top: 11px; - -webkit-transform: rotate(135deg); - -moz-transform: rotate(135deg); - -o-transform: rotate(135deg); - transform: rotate(135deg); -} -.navbar .animated-icon.open span:nth-child(2) { - opacity: 0; - left: -60px; -} -.navbar .animated-icon.open span:nth-child(3) { - top: 11px; - -webkit-transform: rotate(-135deg); - -moz-transform: rotate(-135deg); - -o-transform: rotate(-135deg); - transform: rotate(-135deg); -} -.navbar .dropdown-collapse, -.top-nav-collapse, -.navbar-col-show { - background-color: var(--navbar-bg-color); -} -@media (max-width: 767px) { - .navbar { - font-size: 1rem; - line-height: 2.5rem; - } -} -.markdown-body { - font-size: 1rem; - margin-bottom: 2rem; - font-family: var(--font-family-sans-serif); - color: var(--post-text-color); -} -.markdown-body h1, -.markdown-body h2, -.markdown-body h3, -.markdown-body h4, -.markdown-body h5, -.markdown-body h6 { - color: var(--post-heading-color); - font-weight: bold; - margin-bottom: 0.75em; - margin-top: 2em; -} -.markdown-body h1:focus, -.markdown-body h2:focus, -.markdown-body h3:focus, -.markdown-body h4:focus, -.markdown-body h5:focus, -.markdown-body h6:focus { - outline: none; -} -.markdown-body a { - color: var(--post-link-color); -} -.markdown-body hr { - height: 0.2em; - margin: 2rem 0; -} -.markdown-body strong { - font-weight: bold; -} -.markdown-body pre { - font-size: 85% !important; -} -.markdown-body pre code { - overflow-x: auto; - line-height: 1.5; - border-radius: 3px; - tab-size: 4; -} -.markdown-body pre .mermaid { - text-align: center; -} -.markdown-body pre .mermaid > svg { - min-width: 100%; -} -.markdown-body p > img, -.markdown-body p > a > img { - max-width: 90%; - margin: 1.5rem auto; - display: block; - box-shadow: 0 5px 11px 0 rgba(0,0,0,0.18), 0 4px 15px 0 rgba(0,0,0,0.15); - border-radius: 3px; -} -.markdown-body blockquote { - color: var(--sec-text-color); -} -.markdown-body details { - cursor: pointer; -} -.markdown-body details summary { - outline: none; -} -.markdown-body pre { - border-radius: 3px; -} -.markdown-body .hljs { - overflow-x: initial; - padding: 0; -} -.markdown-body .hljs pre { - background-color: initial !important; -} -.markdown-body > .code-wrapper { - position: relative; - border-radius: 3px; -} -.markdown-body > .code-wrapper pre[class*=language-].line-numbers { - position: initial; -} -.markdown-body figure.highlight td.code > pre { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.markdown-body hr { - height: 0; - margin: 2rem 0; - background-color: initial; - border-top-width: 2px; - border-top-style: solid; - border-top-color: rgba(0,0,0,0.1); -} -figure.highlight { - position: relative; -} -figure.highlight table { - border: 0; - margin: 0; - width: auto; - border-radius: 3px; -} -figure.highlight td { - border: 0; - padding: 0; -} -figure.highlight tr { - border: 0; -} -figure.highlight td.code { - width: 100%; -} -figure.highlight td.gutter { - display: table-cell; -} -figure.highlight td.gutter:not(.hljs) { - background-color: #f6f8fa; -} -figure.highlight td.gutter pre { - text-align: right; - font-size: 1px; - overflow-x: none; - overflow-y: none; - padding: 0 0.75rem; - line-height: 1.5; - background-color: inherit; - border-radius: initial; - border-right: 1px solid #999; -} -figure.highlight td.gutter pre span.line { - color: #999; -} -.list-group-item { - background-color: transparent; - border: 0; -} -.page-link { - font-size: 1.1rem; -} -.pagination { - margin-top: 3rem; - justify-content: center; -} -.pagination .space { - align-self: flex-end; -} -.pagination a, -.pagination .current { - outline: 0; - border: 0; - background-color: transparent; - font-size: 0.9rem; - padding: 0.5rem 0.75rem; - line-height: 1.25; - border-radius: 0.125rem; - transition: background-color 0.2s ease-in-out; -} -.pagination a:hover, -.pagination .current { - background-color: var(--link-hover-bg-color); -} -.modal-dialog .modal-content { - background-color: var(--board-bg-color); - border: 0; - border-radius: 0.125rem; - -webkit-box-shadow: 0 5px 11px 0 rgba(0,0,0,0.18), 0 4px 15px 0 rgba(0,0,0,0.15); - box-shadow: 0 5px 11px 0 rgba(0,0,0,0.18), 0 4px 15px 0 rgba(0,0,0,0.15); -} -.close { - color: var(--text-color); -} -.close:hover { - color: var(--link-hover-color); -} -.close:focus { - outline: 0; -} -.modal-dialog .modal-content .modal-header { - border-top-left-radius: 0.125rem; - border-top-right-radius: 0.125rem; - border-bottom: 1px solid #dee2e6; -} -.md-form { - position: relative; - margin-top: 1.5rem; - margin-bottom: 1.5rem; -} -.md-form input[type] { - -webkit-box-sizing: content-box; - box-sizing: content-box; - background-color: transparent; - border: none; - border-bottom: 1px solid #ced4da; - border-radius: 0; - outline: none; - -webkit-box-shadow: none; - box-shadow: none; - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; -} -.md-form input[type]:focus:not([readonly]) { - border-bottom: 1px solid #4285f4; - -webkit-box-shadow: 0 1px 0 0 #4285f4; - box-shadow: 0 1px 0 0 #4285f4; -} -.md-form input[type]:focus:not([readonly]) + label { - color: #4285f4; -} -.md-form input[type].valid, -.md-form input[type]:focus.valid { - border-bottom: 1px solid #00c851; - -webkit-box-shadow: 0 1px 0 0 #00c851; - box-shadow: 0 1px 0 0 #00c851; -} -.md-form input[type].valid + label, -.md-form input[type]:focus.valid + label { - color: #00c851; -} -.md-form input[type].invalid, -.md-form input[type]:focus.invalid { - border-bottom: 1px solid #f44336; - -webkit-box-shadow: 0 1px 0 0 #f44336; - box-shadow: 0 1px 0 0 #f44336; -} -.md-form input[type].invalid + label, -.md-form input[type]:focus.invalid + label { - color: #f44336; -} -.md-form input[type].validate { - margin-bottom: 2.5rem; -} -.md-form input[type].form-control { - height: auto; - padding: 0.6rem 0 0.4rem 0; - margin: 0 0 0.5rem 0; - color: var(--text-color); - background-color: transparent; - border-radius: 0; -} -.md-form label { - font-size: 0.8rem; - position: absolute; - top: -1rem; - left: 0; - color: #757575; - cursor: text; - -webkit-transition: color 0.2s ease-out, -webkit-transform 0.2s ease-out; - transition: transform 0.2s ease-out, color 0.2s ease-out, -webkit-transform 0.2s ease-out; -} -.toc-list-item { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.iconfont { - font-size: 1rem; - line-height: 1; -} -input[type=checkbox] { - -webkit-appearance: none; - -moz-appearance: none; - position: relative; - right: 0; - bottom: 0; - left: 0; - height: 1.25rem; - width: 1.25rem; - transition: 0.2s; - color: #fff; - cursor: pointer; - margin: 0.4rem 0.2rem 0.4rem !important; - outline: 0; - border-radius: 0.1875rem; - vertical-align: -0.65rem; - border: 2px solid #2f4154; -} -input[type=checkbox]:after, -input[type=checkbox]:before { - content: " "; - transition: 0.2s; - position: absolute; - background: #fff; -} -input[type=checkbox]:before { - left: 0.125rem; - top: 0.375rem; - width: 0; - height: 0.125rem; - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); -} -input[type=checkbox]:after { - right: 0.5625rem; - bottom: 0.1875rem; - width: 0.125rem; - height: 0; - -webkit-transform: rotate(40deg); - -moz-transform: rotate(40deg); - -ms-transform: rotate(40deg); - -o-transform: rotate(40deg); - transform: rotate(40deg); - transition-delay: 0.2s; -} -input[type=checkbox]:checked { - background: #2f4154; - margin-right: 0.5rem !important; -} -input[type=checkbox]:checked:before { - left: 0.0625rem; - top: 0.625rem; - width: 0.375rem; - height: 0.125rem; -} -input[type=checkbox]:checked:after { - right: 0.3125rem; - bottom: 0.0625rem; - width: 0.125rem; - height: 0.875rem; -} -.list-group-item-action { - color: var(--text-color); -} -.list-group-item-action:focus, -.list-group-item-action:hover { - color: var(--link-hover-color); - background-color: var(--link-hover-bg-color); -} -a.fancybox:hover { - text-decoration: none; -} -#nprogress .bar { - height: 3px !important; - background-color: #29d !important; -} -#nprogress .peg { - box-shadow: 0 0 14px #29d, 0 0 8px #29d !important; -} -@media (max-width: 575px) { - #nprogress .bar { - display: none; - } -} -.v[data-class=v] .status-bar, -.v[data-class=v] .veditor, -.v[data-class=v] .vinput, -.v[data-class=v] .vbtn, -.v[data-class=v] p, -.v[data-class=v] pre code { - color: var(--text-color) !important; -} -.v[data-class=v] .vicon { - fill: var(--text-color) !important; -} -.gt-container .gt-comment-content:hover { - -webkit-box-shadow: none; - box-shadow: none; -} -.gt-container .gt-comment-body { - color: var(--text-color) !important; - transition: color 0.2s ease-in-out; -} -#remark-km423lmfdslkm34-back { - z-index: 1030; -} -#remark-km423lmfdslkm34-node { - z-index: 1031; -} -mjx-container, -.mjx-container { - overflow-x: auto; - overflow-y: hidden !important; - padding: 0.5em 0; -} -mjx-container:focus, -.mjx-container:focus, -mjx-container svg:focus, -.mjx-container svg:focus { - outline: none; -} -.mjx-char { - line-height: 1; -} -.katex-block { - overflow-x: auto; -} -.katex, -.mjx-mrow { - white-space: pre-wrap !important; -} -.footnote-ref [class*=hint--][aria-label]:after { - max-width: 12rem; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.index-card { - margin-bottom: 2.5rem; -} -.index-img img { - display: block; - width: 100%; - height: 10rem; - object-fit: cover; - box-shadow: 0 5px 11px 0 rgba(0,0,0,0.18), 0 4px 15px 0 rgba(0,0,0,0.15); - border-radius: 0.25rem; -} -.index-info { - display: flex; - flex-direction: column; - justify-content: space-between; - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} -.index-header { - color: var(--text-color); - font-size: 1.5rem; - font-weight: bold; - line-height: 1.4; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - margin-bottom: 0.25rem; -} -.index-header .index-pin { - color: var(--text-color); - font-size: 1.5rem; - margin-right: 0.15rem; -} -.index-btm { - color: var(--sec-text-color); -} -.index-btm a { - color: var(--sec-text-color); -} -.index-excerpt { - color: var(--sec-text-color); - margin: 0.5rem 0 0.5rem 0; - max-height: calc(1.4rem * 3); - line-height: 1.4; - overflow: hidden; -} -.index-excerpt > div { - float: right; - margin-left: -0.25rem; - width: 100%; - word-break: break-word; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 3; -} -@media (max-width: 767px) { - .index-info { - padding-top: 1.25rem; - } - .index-header { - font-size: 1.25rem; - white-space: normal; - overflow: hidden; - word-break: break-word; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - } - .index-header .index-pin { - font-size: 1.25rem; - } -} -.post-content, -post-custom { - box-sizing: border-box; - padding-left: 10%; - padding-right: 10%; -} -@media (max-width: 767px) { - .post-content, - post-custom { - padding-left: 2rem; - padding-right: 2rem; - } -} -@media (max-width: 424px) { - .post-content, - post-custom { - padding-left: 1rem; - padding-right: 1rem; - } -} -.post-content h1::before, -.post-content h2::before, -.post-content h3::before, -.post-content h4::before, -.post-content h5::before, -.post-content h6::before { - display: block; - content: ""; - margin-top: -5rem; - height: 5rem; - width: 1px; - visibility: hidden; -} -.page-content strong, -.post-content strong { - font-weight: bold; -} -.page-content > *:first-child, -.post-content > *:first-child { - margin-top: 0; -} -.page-content img, -.post-content img { - object-fit: cover; - max-width: 100%; -} -.post-metas { - display: flex; - flex-direction: row; - flex-wrap: wrap; -} -.post-meta > i { - margin-right: 0.15rem; -} -.post-meta > a:not(.hover-with-bg) { - margin-right: 0.15rem; -} -.post-prevnext { - margin-top: 2rem; - display: flex; - flex-wrap: wrap; - justify-content: space-between; - margin-left: -0.5rem; - margin-right: -0.5rem; -} -.post-prevnext .post-prev, -.post-prevnext .post-next { - display: flex; - padding-left: 0; - padding-right: 0; -} -.post-prevnext .post-prev i, -.post-prevnext .post-next i { - font-size: 1.5rem; -} -.post-prevnext .post-prev a, -.post-prevnext .post-next a { - display: flex; - align-items: center; -} -.post-prevnext .post-prev .hidden-mobile, -.post-prevnext .post-next .hidden-mobile { - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - text-overflow: ellipsis; - overflow: hidden; -} -@media (max-width: 575px) { - .post-prevnext .post-prev .hidden-mobile, - .post-prevnext .post-next .hidden-mobile { - display: none; - } -} -.post-prevnext .post-prev:hover i, -.post-prevnext .post-prev:active i, -.post-prevnext .post-next:hover i, -.post-prevnext .post-next:active i { - -webkit-animation-duration: 1s; - animation-duration: 1s; - -webkit-animation-delay: 0.1s; - animation-delay: 0.1s; - -webkit-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-fill-mode: forwards; - animation-fill-mode: forwards; - -webkit-animation-direction: alternate; - animation-direction: alternate; -} -.post-prevnext .post-prev:hover i, -.post-prevnext .post-prev:active i { - -webkit-animation-name: post-prev-anim; - animation-name: post-prev-anim; -} -.post-prevnext .post-next:hover i, -.post-prevnext .post-next:active i { - -webkit-animation-name: post-next-anim; - animation-name: post-next-anim; -} -.post-prevnext .post-next { - justify-content: flex-end; -} -.post-prevnext .fa-chevron-left { - margin-right: 0.5rem; -} -.post-prevnext .fa-chevron-right { - margin-left: 0.5rem; -} -#toc { - position: -webkit-sticky; - position: sticky; - top: 2rem; - padding: 3rem 0 0 0; - visibility: hidden; -} -.toc-header { - margin-bottom: 0.5rem; - font-weight: 500; - line-height: 1.2; -} -.toc-header, -.toc-header > i { - font-size: 1.25rem; -} -.toc-body { - max-height: 75vh; - overflow-y: auto; - overflow: -moz-scrollbars-none; - -ms-overflow-style: none; -} -.toc-body ol { - list-style: none; - padding-inline-start: 1rem; -} -.toc-body::-webkit-scrollbar { - display: none; -} -.tocbot-list ol { - list-style: none; - padding-left: 1rem; -} -.tocbot-list a { - font-size: 0.95rem; -} -.tocbot-link { - color: var(--text-color); -} -.tocbot-active-link { - font-weight: bold; - color: var(--link-hover-color); -} -.tocbot-is-collapsed { - max-height: 0; -} -.tocbot-is-collapsible { - overflow: hidden; - transition: all 0.3s ease-in-out; -} -@media (max-width: 1024px) { - .toc-container { - padding-left: 0; - padding-right: 0; - } -} -.markdown-body .image-caption { - font-size: 0.8rem; - color: var(--post-text-color); - opacity: 0.65; - line-height: 1; - margin: -0.75rem auto 2rem; - text-align: center; -} -.custom, -.comments { - margin-top: 2rem; -} -.visitors { - font-size: 0.8em; - padding: 0.45rem; - float: right; -} -@-moz-keyframes post-prev-anim { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - 50% { - -webkit-transform: translateX(-0.35rem); - transform: translateX(-0.35rem); - } - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} -@-webkit-keyframes post-prev-anim { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - 50% { - -webkit-transform: translateX(-0.35rem); - transform: translateX(-0.35rem); - } - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} -@-o-keyframes post-prev-anim { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - 50% { - -webkit-transform: translateX(-0.35rem); - transform: translateX(-0.35rem); - } - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} -@keyframes post-prev-anim { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - 50% { - -webkit-transform: translateX(-0.35rem); - transform: translateX(-0.35rem); - } - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} -@-moz-keyframes post-next-anim { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - 50% { - -webkit-transform: translateX(0.35rem); - transform: translateX(0.35rem); - } - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} -@-webkit-keyframes post-next-anim { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - 50% { - -webkit-transform: translateX(0.35rem); - transform: translateX(0.35rem); - } - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} -@-o-keyframes post-next-anim { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - 50% { - -webkit-transform: translateX(0.35rem); - transform: translateX(0.35rem); - } - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} -@keyframes post-next-anim { - 0% { - -webkit-transform: translateX(0); - transform: translateX(0); - } - 50% { - -webkit-transform: translateX(0.35rem); - transform: translateX(0.35rem); - } - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} -.note { - padding: 0.75rem; - border-left: 0.35rem solid; - border-radius: 0.25rem; - margin: 1.5rem 0; - color: #3c4858; - font-size: 0.9rem; -} -.note a { - color: #3c4858; -} -.note *:last-child { - margin-bottom: 0; -} -.note-primary { - background-color: #f5f0fa; - border-color: #6f42c1; -} -.note-secondary, -note-default { - background-color: #f7f7f7; - border-color: #777; -} -.note-success { - background-color: #eff8f0; - border-color: #5cb85c; -} -.note-danger { - background-color: #fcf1f2; - border-color: #d9534f; -} -.note-warning { - background-color: #fdf8ea; - border-color: #f0ad4e; -} -.note-info { - background-color: #eef7fa; - border-color: #428bca; -} -.note-light { - background-color: #fefefe; - border-color: #0f0f0f; -} -.label { - display: inline; - border-radius: 3px; - font-size: 85%; - margin: 0; - padding: 0.2em 0.4em; - color: #3c4858; -} -.label-default { - background: #f7f7f7; -} -.label-primary { - background: #f5f0fa; -} -.label-info { - background: #eef7fa; -} -.label-success { - background: #eff8f0; -} -.label-warning { - background: #fdf8ea; -} -.label-danger { - background: #fcf1f2; -} -.markdown-body .btn { - background: #2f4154; - border-radius: 0.25rem; - color: #fff !important; - display: inline-block; - font-size: 0.875em; - line-height: 2; - padding: 0 0.75rem; - text-decoration: none; - transition-property: background; - transition-delay: 0s; - transition-duration: 0.2s; - transition-timing-function: ease-in-out; - -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12); - box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12); - margin-bottom: 1rem; -} -.markdown-body .btn:hover { - background: #23ae92; - color: #fff !important; - text-decoration: none; -} -.group-image-container { - margin: 1.5rem auto; -} -.group-image-container img { - margin: 0 auto; - border-radius: 3px; - box-shadow: 0 3px 9px 0 rgba(0,0,0,0.15), 0 3px 9px 0 rgba(0,0,0,0.15); -} -.group-image-row { - margin-bottom: 0.5rem; - display: flex; - justify-content: center; -} -.group-image-wrap { - flex: 1; - display: flex; - justify-content: center; -} -.group-image-wrap:not(:last-child) { - margin-right: 0.25rem; -} -.list-group a ~ p.h5 { - margin-top: 1rem; -} -.about-avatar { - position: relative; - margin: -8rem auto 1rem; - width: 10rem; - height: 10rem; - z-index: 3; -} -.about-avatar img { - width: 100%; - height: 100%; - border-radius: 50%; - -moz-border-radius: 50%; - -webkit-border-radius: 50%; - object-fit: cover; - -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12); - box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12); -} -.about-info > div { - margin-bottom: 0.5rem; -} -.about-name { - font-size: 1.75rem; - font-weight: bold; -} -.about-intro { - font-size: 1rem; -} -.about-icons > a:not(:last-child) { - margin-right: 0.5rem; -} -.about-icons > a > i { - font-size: 1.5rem; -} -.category:not(:last-child) { - margin-bottom: 1rem; -} -.category-item { - font-size: 1.25rem; - font-weight: bold; - display: flex; - align-items: center; -} -.category-subitem { - font-size: 1rem; - font-weight: bold; -} -.category-collapse { - margin-left: 1.25rem; - width: 100%; -} -.category-count { - font-size: 0.9rem; - font-weight: initial; - min-width: 1.3em; - line-height: 1.3em; - display: flex; - align-items: center; -} -.category-count i { - padding-right: 0.25rem; -} -.category-count span { - width: 2rem; -} -.category-item-action:not(.collapsed) > i { - transform: rotate(90deg); - transform-origin: center center; -} -.category-item-action i { - transition: transform 0.3s ease-out; - display: inline-block; - margin-left: 0.25rem; -} -.category-item-action:hover { - z-index: 1; - color: var(--link-hover-color); - text-decoration: none; - background-color: var(--link-hover-bg-color); -} -.category .row { - margin-left: 0; - margin-right: 0; -} -.tagcloud { - padding: 1rem 5%; -} -.tagcloud a { - display: inline-block; - padding: 0.5rem; -} -.tagcloud a:hover { - color: var(--link-hover-color) !important; -} -.links .card { - box-shadow: none; - min-width: 33%; - background-color: transparent; - border: 0; -} -.links .card-body { - margin: 1rem 0; - padding: 1rem; - border-radius: 0.3rem; - display: block; - width: 100%; - height: 100%; -} -.links .card-body:hover .link-avatar { - transform: scale(1.1); -} -.links .card-content { - display: flex; - flex-wrap: nowrap; - width: 100%; - height: 3.5rem; -} -.link-avatar { - flex: none; - width: 3rem; - height: 3rem; - margin-right: 0.75rem; - object-fit: cover; - transition-duration: 0.2s; - transition-timing-function: ease-in-out; -} -.link-avatar img { - width: 100%; - height: 100%; - border-radius: 50%; - -moz-border-radius: 50%; - -webkit-border-radius: 50%; - object-fit: cover; -} -.link-text { - flex: 1; - display: grid; - flex-direction: column; -} -.link-title { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - color: $text_color; - font-weight: bold; -} -.link-intro { - max-height: 2rem; - font-size: 0.85rem; - line-height: 1.2; - color: var(--sec-text-color); - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - text-overflow: ellipsis; - overflow: hidden; -} -@media (max-width: 767px) { - .links { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - } - .links .card { - padding-left: 2rem; - padding-right: 2rem; - } -} -@media (min-width: 768px) { - .link-text:only-child { - margin-left: 1rem; - } -} diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..713e9e2 Binary files /dev/null and b/favicon.ico differ diff --git a/fonts/atkinson-bold.woff b/fonts/atkinson-bold.woff new file mode 100644 index 0000000..e7f8977 Binary files /dev/null and b/fonts/atkinson-bold.woff differ diff --git a/fonts/atkinson-regular.woff b/fonts/atkinson-regular.woff new file mode 100644 index 0000000..bbe09c5 Binary files /dev/null and b/fonts/atkinson-regular.woff differ diff --git a/fonts/iconfont.ttf b/fonts/iconfont.ttf new file mode 100644 index 0000000..c6141b3 Binary files /dev/null and b/fonts/iconfont.ttf differ diff --git a/fonts/iconfont.woff b/fonts/iconfont.woff new file mode 100644 index 0000000..6337c69 Binary files /dev/null and b/fonts/iconfont.woff differ diff --git a/fonts/iconfont.woff2 b/fonts/iconfont.woff2 new file mode 100644 index 0000000..4d3d4c4 Binary files /dev/null and b/fonts/iconfont.woff2 differ diff --git a/friend/index.html b/friend/index.html deleted file mode 100644 index dc36e50..0000000 --- a/friend/index.html +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - - - - - - - - - - - - - - page.title - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    申请友链须知


    - -
      -
    • 原则上只和技术类博客交换,但不包括含有和色情、暴力、政治敏感的网站。
    • -
    • 不和剽窃、侵权、无诚信的网站交换,优先和具有原创作品的网站交换。
    • -
    • 申请请提供:站点名称、站点链接、站点描述、logo或头像不要设置防盗链)。
    • -
    • 排名不分先后,刷新后重排,更新信息后请留言告知。
    • -
    • 会定期清理很久很久不更新的、不符合要求的友链,不再另行通知。
    • -
    • 本站不存储友链图片,如果友链图片换了无法更新。图片裂了的会替换成默认图,需要更换的请留言告知。
    • -
    • 本站友链信息如下,申请友链前请先添加本站信息:
      网站图标:https://t1.picb.cc/uploads/2021/01/27/ZCkk5s.md.png
      网站名称:云边の鸟
      网站地址:https://www.icenew.top
      网站简介:追求技术的少年
    • -
    - - - - -
    - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/friends/index.html b/friends/index.html new file mode 100644 index 0000000..86f5141 --- /dev/null +++ b/friends/index.html @@ -0,0 +1,19 @@ + 朋友们 - 满河星 + + + +

    朋友们

    我的小伙伴们和一些有趣的站点。

    怎么申请友链?

    +

    想要交换友链的小伙伴们,欢迎去本站的 Github 仓库提交一个 PR。审核通过后,就可以在这里展示啦。

    +

    请在/src/content/friends/目录下添加一个<short-name>.yaml文件,参考格式:

    +
    yml
    title: 网站名称
    +description: 一句话介绍下你的网站或者你自己
    +link: 网站地址
    +avatar: 头像地址
    +
    \ No newline at end of file diff --git a/img/404.png b/img/404.png deleted file mode 100644 index ec74f84..0000000 Binary files a/img/404.png and /dev/null differ diff --git a/img/avatar.png b/img/avatar.png deleted file mode 100644 index 146354c..0000000 Binary files a/img/avatar.png and /dev/null differ diff --git a/img/default.png b/img/default.png deleted file mode 100644 index 848d60d..0000000 Binary files a/img/default.png and /dev/null differ diff --git a/img/favicon.png b/img/favicon.png deleted file mode 100644 index 399e75c..0000000 Binary files a/img/favicon.png and /dev/null differ diff --git a/img/loading.gif b/img/loading.gif deleted file mode 100644 index a13ddac..0000000 Binary files a/img/loading.gif and /dev/null differ diff --git a/img/police_beian.png b/img/police_beian.png deleted file mode 100644 index 60190da..0000000 Binary files a/img/police_beian.png and /dev/null differ diff --git a/index.html b/index.html index 549df00..f0b5523 100644 --- a/index.html +++ b/index.html @@ -1,770 +1,12 @@ - - - - - - - - - - - - - - - - - - - - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - - - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 满河星 + + +

    +Hi there, I'm Leewei👋
    A static blog template build with Astro and React.

    Clean, Cute, Fast.
    Site owner avatar

    微微风簇浪,散作满河星!

    \ No newline at end of file diff --git a/js/boot.js b/js/boot.js deleted file mode 100644 index 46a14c2..0000000 --- a/js/boot.js +++ /dev/null @@ -1,24 +0,0 @@ -/* global Fluid, CONFIG */ - -Fluid.boot = {}; - -Fluid.boot.registerEvents = function() { - Fluid.events.billboard(); - Fluid.events.registerNavbarEvent(); - Fluid.events.registerParallaxEvent(); - Fluid.events.registerScrollDownArrowEvent(); - Fluid.events.registerScrollTopArrowEvent(); -}; - -Fluid.boot.refresh = function() { - CONFIG.toc.enable && Fluid.plugins.initTocBot(); - CONFIG.image_zoom && Fluid.plugins.wrapImageWithFancyBox(); - CONFIG.anchorjs.enable && Fluid.plugins.registerAnchor(); - CONFIG.copy_btn && Fluid.plugins.registerCopyCode(); - CONFIG.progressbar && Fluid.plugins.registerImageLoaded(); -}; - -document.addEventListener('DOMContentLoaded', function() { - Fluid.boot.registerEvents(); - Fluid.boot.refresh(); -}); diff --git a/js/color-schema.js b/js/color-schema.js deleted file mode 100644 index 829dd14..0000000 --- a/js/color-schema.js +++ /dev/null @@ -1,209 +0,0 @@ -/* global Fluid */ - -/** - * Modify by https://blog.skk.moe/post/hello-darkmode-my-old-friend/ - */ -(function(window, document) { - var rootElement = document.documentElement; - var colorSchemaStorageKey = 'Fluid_Color_Scheme'; - var colorSchemaMediaQueryKey = '--color-mode'; - var userColorSchemaAttributeName = 'data-user-color-scheme'; - var defaultColorSchemaAttributeName = 'data-default-color-scheme'; - var colorToggleButtonName = 'color-toggle-btn'; - var colorToggleIconName = 'color-toggle-icon'; - - function setLS(k, v) { - try { - localStorage.setItem(k, v); - } catch (e) {} - } - - function removeLS(k) { - try { - localStorage.removeItem(k); - } catch (e) {} - } - - function getLS(k) { - try { - return localStorage.getItem(k); - } catch (e) { - return null; - } - } - - function getSchemaFromHTML() { - var res = rootElement.getAttribute(defaultColorSchemaAttributeName); - if (typeof res === 'string') { - return res.replace(/["'\s]/g, ''); - } - return null; - } - - function getSchemaFromCSSMediaQuery() { - var res = getComputedStyle(rootElement).getPropertyValue( - colorSchemaMediaQueryKey - ); - if (typeof res === 'string') { - return res.replace(/["'\s]/g, ''); - } - return null; - } - - function resetSchemaAttributeAndLS() { - rootElement.setAttribute(userColorSchemaAttributeName, getDefaultColorSchema()); - removeLS(colorSchemaStorageKey); - } - - var validColorSchemaKeys = { - dark : true, - light: true - }; - - function getDefaultColorSchema() { - // 取默认字段的值 - var schema = getSchemaFromHTML(); - // 如果明确指定了 schema 则返回 - if (validColorSchemaKeys[schema]) { - return schema; - } - // 默认优先按 prefers-color-scheme - schema = getSchemaFromCSSMediaQuery(); - if (validColorSchemaKeys[schema]) { - return schema; - } - // 否则按本地时间是否大于 18 点或凌晨 0 ~ 6 点 - var hours = new Date().getHours(); - if (hours >= 18 || (hours >= 0 && hours <= 6)) { - return 'dark'; - } - return 'light'; - } - - function applyCustomColorSchemaSettings(schema) { - // 接受从「开关」处传来的模式,或者从 localStorage 读取,否则按默认设置值 - var current = schema || getLS(colorSchemaStorageKey) || getDefaultColorSchema(); - - if (current === getDefaultColorSchema()) { - // 当用户切换的显示模式和默认模式相同时,则恢复为自动模式 - resetSchemaAttributeAndLS(); - } else if (validColorSchemaKeys[current]) { - rootElement.setAttribute( - userColorSchemaAttributeName, - current - ); - } else { - // 特殊情况重置 - resetSchemaAttributeAndLS(); - return; - } - - // 根据当前模式设置图标 - setButtonIcon(current); - - // 设置其他应用 - setApplications(current); - } - - var invertColorSchemaObj = { - dark : 'light', - light: 'dark' - }; - - function toggleCustomColorSchema() { - var currentSetting = getLS(colorSchemaStorageKey); - - if (validColorSchemaKeys[currentSetting]) { - // 从 localStorage 中读取模式,并取相反的模式 - currentSetting = invertColorSchemaObj[currentSetting]; - } else if (currentSetting === null) { - // 当 localStorage 中没有相关值,或者 localStorage 抛了 Error - // 先按照按钮的状态进行切换 - var iconElement = document.getElementById(colorToggleIconName); - if (iconElement) { - currentSetting = iconElement.getAttribute('data'); - } - if (!iconElement || !validColorSchemaKeys[currentSetting]) { - // 当 localStorage 中没有相关值,或者 localStorage 抛了 Error,则读取默认值并切换到相反的模式 - currentSetting = invertColorSchemaObj[getSchemaFromCSSMediaQuery()]; - } - } else { - return; - } - // 将相反的模式写入 localStorage - setLS(colorSchemaStorageKey, currentSetting); - - return currentSetting; - } - - function setButtonIcon(schema) { - if (validColorSchemaKeys[schema]) { - // 切换图标 - var icon = 'icon-dark'; - if (schema) { - icon = 'icon-' + invertColorSchemaObj[schema]; - } - var iconElement = document.getElementById(colorToggleIconName); - if (iconElement) { - iconElement.setAttribute( - 'class', - 'iconfont ' + icon - ); - iconElement.setAttribute( - 'data', - invertColorSchemaObj[schema] - ); - } else { - // 如果图标不存在则说明图标还没加载出来,等到页面全部加载再尝试切换 - Fluid.utils.waitElementLoaded(colorToggleIconName, function() { - var iconElement = document.getElementById(colorToggleIconName); - if (iconElement) { - iconElement.setAttribute( - 'class', - 'iconfont ' + icon - ); - iconElement.setAttribute( - 'data', - invertColorSchemaObj[schema] - ); - } - }); - } - } - } - - function setApplications(schema) { - // 设置 remark42 评论主题 - if (window.REMARK42) { - window.REMARK42.changeTheme(schema); - } - - // 设置 utterances 评论主题 - var utterances = document.querySelector('iframe'); - if (utterances) { - var theme = window.UtterancesThemeLight; - if (schema === 'dark') { - theme = window.UtterancesThemeDark; - } - const message = { - type : 'set-theme', - theme: theme - }; - utterances.contentWindow.postMessage(message, 'https://utteranc.es'); - } - } - - // 当页面加载时,将显示模式设置为 localStorage 中自定义的值(如果有的话) - applyCustomColorSchemaSettings(); - - Fluid.utils.waitElementLoaded(colorToggleButtonName, function() { - applyCustomColorSchemaSettings(); - var button = document.getElementById(colorToggleButtonName); - if (button) { - // 当用户点击切换按钮时,获得新的显示模式、写入 localStorage、并在页面上生效 - button.addEventListener('click', () => { - applyCustomColorSchemaSettings(toggleCustomColorSchema()); - }); - } - }); -})(window, document); diff --git a/js/debouncer.js b/js/debouncer.js deleted file mode 100644 index 9be87e6..0000000 --- a/js/debouncer.js +++ /dev/null @@ -1,41 +0,0 @@ -window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame; - -/** - * Handles debouncing of events via requestAnimationFrame - * @see http://www.html5rocks.com/en/tutorials/speed/animations/ - * @param {Function} callback The callback to handle whichever event - */ -function Debouncer(callback) { - this.callback = callback; - this.ticking = false; -} -Debouncer.prototype = { - constructor: Debouncer, - - /** - * dispatches the event to the supplied callback - * @private - */ - update: function() { - this.callback && this.callback(); - this.ticking = false; - }, - - /** - * ensures events don't get stacked - * @private - */ - requestTick: function() { - if (!this.ticking) { - requestAnimationFrame(this.rafCallback || (this.rafCallback = this.update.bind(this))); - this.ticking = true; - } - }, - - /** - * Attach this as the event listeners - */ - handleEvent: function() { - this.requestTick(); - } -}; diff --git a/js/events.js b/js/events.js deleted file mode 100644 index eea1537..0000000 --- a/js/events.js +++ /dev/null @@ -1,140 +0,0 @@ -/* global Fluid */ - -HTMLElement.prototype.wrap = function(wrapper) { - this.parentNode.insertBefore(wrapper, this); - this.parentNode.removeChild(this); - wrapper.appendChild(this); -}; - -Fluid.events = { - - registerNavbarEvent: function() { - var navbar = $('#navbar'); - var submenu = $('#navbar .dropdown-menu'); - if (navbar.offset().top > 0) { - navbar.removeClass('navbar-dark'); - submenu.removeClass('navbar-dark'); - } - Fluid.utils.listenScroll(function() { - navbar[navbar.offset().top > 50 ? 'addClass' : 'removeClass']('top-nav-collapse'); - submenu[navbar.offset().top > 50 ? 'addClass' : 'removeClass']('dropdown-collapse'); - if (navbar.offset().top > 0) { - navbar.removeClass('navbar-dark'); - submenu.removeClass('navbar-dark'); - } else { - navbar.addClass('navbar-dark'); - submenu.removeClass('navbar-dark'); - } - }); - $('#navbar-toggler-btn').on('click', function() { - $('.animated-icon').toggleClass('open'); - $('#navbar').toggleClass('navbar-col-show'); - }); - }, - - registerParallaxEvent: function() { - var bg = $('#banner[parallax="true"]'); - if (bg.length === 0) { - return; - } - var board = $('#board'); - if (board.length === 0) { - return; - } - var parallax = function() { - var oVal = $(window).scrollTop() / 5; - var offset = parseInt(board.css('margin-top'), 0); - var max = 96 + offset; - if (oVal > max) { - oVal = max; - } - bg.css({ - transform : 'translate3d(0,' + oVal + 'px,0)', - '-webkit-transform': 'translate3d(0,' + oVal + 'px,0)', - '-ms-transform' : 'translate3d(0,' + oVal + 'px,0)', - '-o-transform' : 'translate3d(0,' + oVal + 'px,0)' - }); - var toc = $('#toc'); - if (toc) { - $('#toc-ctn').css({ - 'padding-top': oVal + 'px' - }); - } - }; - Fluid.utils.listenScroll(parallax); - }, - - registerScrollDownArrowEvent: function() { - var scrollbar = $('.scroll-down-bar'); - if (scrollbar.length === 0) { - return; - } - scrollbar.on('click', function() { - Fluid.utils.scrollToElement('#board', -$('#navbar').height()); - }); - }, - - registerScrollTopArrowEvent: function() { - var topArrow = $('#scroll-top-button'); - if (topArrow.length === 0) { - return; - } - var board = $('#board'); - if (board.length === 0) { - return; - } - var posDisplay = false; - var scrollDisplay = false; - // Position - var setTopArrowPos = function() { - var boardRight = board[0].getClientRects()[0].right; - var bodyWidth = document.body.offsetWidth; - var right = bodyWidth - boardRight; - posDisplay = right >= 50; - topArrow.css({ - 'bottom': posDisplay && scrollDisplay ? '20px' : '-60px', - 'right' : right - 64 + 'px' - }); - }; - setTopArrowPos(); - $(window).resize(setTopArrowPos); - // Display - var headerHeight = board.offset().top; - Fluid.utils.listenScroll(function() { - var scrollHeight = document.body.scrollTop + document.documentElement.scrollTop; - scrollDisplay = scrollHeight >= headerHeight; - topArrow.css({ - 'bottom': posDisplay && scrollDisplay ? '20px' : '-60px' - }); - }); - // Click - topArrow.on('click', function() { - $('body,html').animate({ - scrollTop: 0, - easing : 'swing' - }); - }); - }, - - billboard: function() { - if (!('console' in window)) { - return; - } - // eslint-disable-next-line no-console - console.log(` ------------------------------------------------- -| | -| ________ __ _ __ | -| |_ __ |[ | (_) | ] | -| | |_ \\_| | | __ _ __ .--.| | | -| | _| | |[ | | | [ |/ /'\`\\' | | -| _| |_ | | | \\_/ |, | || \\__/ | | -| |_____| [___]'.__.'_/[___]'.__.;__] | -| | -| Powered by Hexo x Fluid | -| GitHub: https://git.io/JqpVD | -| | ------------------------------------------------- - `); - } -}; diff --git a/js/img-lazyload.js b/js/img-lazyload.js deleted file mode 100644 index c0c8e4e..0000000 --- a/js/img-lazyload.js +++ /dev/null @@ -1,10 +0,0 @@ -/* global Fluid, CONFIG */ - -(function(window, document) { - for (const each of document.querySelectorAll('img[lazyload]')) { - Fluid.utils.waitElementVisible(each, function() { - each.removeAttribute('srcset'); - each.removeAttribute('lazyload'); - }, CONFIG.lazyload.offset_factor); - } -})(window, document); diff --git a/js/index.html b/js/index.html deleted file mode 100644 index 8d9c772..0000000 --- a/js/index.html +++ /dev/null @@ -1,344 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 前端 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    在这里放置学习前端的内容


    -

    初来乍到,请多多包涵

    - - -
    - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/js/leancloud.js b/js/leancloud.js deleted file mode 100644 index 580db01..0000000 --- a/js/leancloud.js +++ /dev/null @@ -1,181 +0,0 @@ -/* global CONFIG */ - -(function(window, document) { - // 查询存储的记录 - function getRecord(Counter, target) { - return new Promise(function(resolve, reject) { - Counter('get', '/classes/Counter?where=' + encodeURIComponent(JSON.stringify({ target }))) - .then(resp => resp.json()) - .then(({ results, code, error }) => { - if (code === 401) { - throw error; - } - if (results && results.length > 0) { - var record = results[0]; - resolve(record); - } else { - Counter('post', '/classes/Counter', { target, time: 0 }) - .then(resp => resp.json()) - .then((record, error) => { - if (error) { - throw error; - } - resolve(record); - }).catch(error => { - // eslint-disable-next-line no-console - console.error('Failed to create', error); - reject(error); - }); - } - }).catch((error) => { - // eslint-disable-next-line no-console - console.error('LeanCloud Counter Error:', error); - reject(error); - }); - }); - } - - // 发起自增请求 - function increment(Counter, incrArr) { - return new Promise(function(resolve, reject) { - Counter('post', '/batch', { - 'requests': incrArr - }).then((res) => { - res = res.json(); - if (res.error) { - throw res.error; - } - resolve(res); - }).catch((error) => { - // eslint-disable-next-line no-console - console.error('Failed to save visitor count', error); - reject(error); - }); - }); - } - - // 构建自增请求体 - function buildIncrement(objectId) { - return { - 'method': 'PUT', - 'path' : `/1.1/classes/Counter/${objectId}`, - 'body' : { - 'time': { - '__op' : 'Increment', - 'amount': 1 - } - } - }; - } - - // 校验是否为有效的 UV - function validUV() { - var key = 'LeanCloud_UV_Flag'; - var flag = localStorage.getItem(key); - if (flag) { - // 距离标记小于 24 小时则不计为 UV - if (new Date().getTime() - parseInt(flag, 10) <= 86400000) { - return false; - } - } - localStorage.setItem(key, new Date().getTime().toString()); - return true; - } - - function addCount(Counter) { - var enableIncr = CONFIG.web_analytics.enable === true; - var getterArr = []; - var incrArr = []; - - // 请求 PV 并自增 - var pvCtn = document.querySelector('#leancloud-site-pv-container'); - if (pvCtn) { - var pvGetter = getRecord(Counter, 'site-pv').then((record) => { - enableIncr && incrArr.push(buildIncrement(record.objectId)); - var ele = document.querySelector('#leancloud-site-pv'); - if (ele) { - ele.innerText = record.time + 1; - if (pvCtn) { - pvCtn.style.display = 'inline'; - } - } - }); - getterArr.push(pvGetter); - } - - // 请求 UV 并自增 - var uvCtn = document.querySelector('#leancloud-site-uv-container'); - if (uvCtn) { - var uvGetter = getRecord(Counter, 'site-uv').then((record) => { - var vuv = validUV(); - vuv && enableIncr && incrArr.push(buildIncrement(record.objectId)); - var ele = document.querySelector('#leancloud-site-uv'); - if (ele) { - ele.innerText = record.time + (vuv ? 1 : 0); - if (uvCtn) { - uvCtn.style.display = 'inline'; - } - } - }); - getterArr.push(uvGetter); - } - - // 如果有页面浏览数节点,则请求浏览数并自增 - var viewCtn = document.querySelector('#leancloud-page-views-container'); - if (viewCtn) { - var target = decodeURI(window.location.pathname); - var viewGetter = getRecord(Counter, target).then((record) => { - enableIncr && incrArr.push(buildIncrement(record.objectId)); - if (viewCtn) { - var ele = document.querySelector('#leancloud-page-views'); - if (ele) { - ele.innerText = (record.time || 0) + 1; - viewCtn.style.display = 'inline'; - } - } - }); - getterArr.push(viewGetter); - } - - // 如果启动计数自增,批量发起自增请求 - if (enableIncr) { - Promise.all(getterArr).then(() => { - incrArr.length > 0 && increment(Counter, incrArr); - }); - } - } - - var appId = CONFIG.web_analytics.leancloud.app_id; - var appKey = CONFIG.web_analytics.leancloud.app_key; - var serverUrl = CONFIG.web_analytics.leancloud.server_url; - - function fetchData(api_server) { - var Counter = (method, url, data) => { - return fetch(`${api_server}/1.1${url}`, { - method, - headers: { - 'X-LC-Id' : appId, - 'X-LC-Key' : appKey, - 'Content-Type': 'application/json' - }, - body: JSON.stringify(data) - }); - }; - - addCount(Counter); - } - - var apiServer = appId.slice(-9) !== '-MdYXbMMI' ? serverUrl : `https://${appId.slice(0, 8).toLowerCase()}.api.lncldglobal.com`; - - if (apiServer) { - fetchData(apiServer); - } else { - fetch('https://app-router.leancloud.cn/2/route?appId=' + appId) - .then(resp => resp.json()) - .then((data) => { - if (data.api_server) { - fetchData('https://' + data.api_server); - } - }); - } -})(window, document); diff --git a/js/local-search.js b/js/local-search.js deleted file mode 100644 index 7063c6b..0000000 --- a/js/local-search.js +++ /dev/null @@ -1,140 +0,0 @@ -// A local search script with the help of [hexo-generator-search](https://github.com/PaicHyperionDev/hexo-generator-search) -// Copyright (C) 2017 -// Liam Huang -// This library is free software; you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as -// published by the Free Software Foundation; either version 2.1 of the -// License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -// 02110-1301 USA -// -// Updated by Rook1e - -// eslint-disable-next-line no-unused-vars -var searchFunc = function(path, search_id, content_id) { - // 0x00. environment initialization - 'use strict'; - var $input = document.getElementById(search_id); - var $resultContent = document.getElementById(content_id); - - if ($resultContent.innerHTML.indexOf('list-group-item') === -1) { - $resultContent.innerHTML = '
    Loading...

    Loading...
    '; - } - - $.ajax({ - // 0x01. load xml file - url : path, - dataType: 'xml', - success : function(xmlResponse) { - // 0x02. parse xml file - var dataList = $('entry', xmlResponse).map(function() { - return { - title : $('title', this).text(), - content: $('content', this).text(), - url : $('url', this).text() - }; - }).get(); - - if ($resultContent.innerHTML.indexOf('list-group-item') === -1) { - $resultContent.innerHTML = ''; - } - - $input.addEventListener('input', function() { - // 0x03. parse query to keywords list - var str = ''; - var keywords = this.value.trim().toLowerCase().split(/[\s-]+/); - $resultContent.innerHTML = ''; - if (this.value.trim().length <= 0) { - return; - } - // 0x04. perform local searching - dataList.forEach(function(data) { - var isMatch = true; - if (!data.title || data.title.trim() === '') { - data.title = 'Untitled'; - } - var orig_data_title = data.title.trim(); - var data_title = orig_data_title.toLowerCase(); - var orig_data_content = data.content.trim().replace(/<[^>]+>/g, ''); - var data_content = orig_data_content.toLowerCase(); - var data_url = data.url; - var index_title = -1; - var index_content = -1; - var first_occur = -1; - // only match articles with not empty contents - if (data_content !== '') { - keywords.forEach(function(keyword, i) { - index_title = data_title.indexOf(keyword); - index_content = data_content.indexOf(keyword); - - if (index_title < 0 && index_content < 0) { - isMatch = false; - } else { - if (index_content < 0) { - index_content = 0; - } - if (i === 0) { - first_occur = index_content; - } - //content_index.push({index_content:index_content, keyword_len:keyword_len}); - } - }); - } else { - isMatch = false; - } - // 0x05. show search results - if (isMatch) { - str += '' + orig_data_title + ''; - var content = orig_data_content; - if (first_occur >= 0) { - // cut out 100 characters - var start = first_occur - 20; - var end = first_occur + 80; - - if (start < 0) { - start = 0; - } - - if (start === 0) { - end = 100; - } - - if (end > content.length) { - end = content.length; - } - - var match_content = content.substring(start, end); - - // highlight all keywords - keywords.forEach(function(keyword) { - var regS = new RegExp(keyword, 'gi'); - match_content = match_content.replace(regS, '' + keyword + ''); - }); - - str += '

    ' + match_content + '...

    '; - } - } - }); - const input = $('#local-search-input'); - if (str.indexOf('list-group-item') === -1) { - return input.addClass('invalid').removeClass('valid'); - } - input.addClass('valid').removeClass('invalid'); - $resultContent.innerHTML = str; - }); - } - }); - - $('#local-search-close').on('click', function() { - $('#local-search-input').val('').removeClass('invalid').removeClass('valid'); - $('#local-search-result').html(''); - }); -}; diff --git a/js/plugins.js b/js/plugins.js deleted file mode 100644 index af0f161..0000000 --- a/js/plugins.js +++ /dev/null @@ -1,177 +0,0 @@ -/* global Fluid, CONFIG */ - -HTMLElement.prototype.wrap = function(wrapper) { - this.parentNode.insertBefore(wrapper, this); - this.parentNode.removeChild(this); - wrapper.appendChild(this); -}; - -Fluid.plugins = { - - typing: function(text) { - if (!window.Typed) { return; } - - var typed = new window.Typed('#subtitle', { - strings: [ - ' ', - text + ' ' - ], - cursorChar: CONFIG.typing.cursorChar, - typeSpeed : CONFIG.typing.typeSpeed, - loop : CONFIG.typing.loop - }); - typed.stop(); - var subtitle = document.getElementById('subtitle'); - if (subtitle) { - subtitle.innerText = ''; - } - $(document).ready(function() { - $('.typed-cursor').addClass('h2'); - typed.start(); - }); - }, - - initTocBot: function() { - var toc = $('#toc'); - if (toc.length === 0 || !window.tocbot) { return; } - var boardCtn = $('#board-ctn'); - var boardTop = boardCtn.offset().top; - - window.tocbot.init({ - tocSelector : '#toc-body', - contentSelector : '.markdown-body', - headingSelector : CONFIG.toc.headingSelector || 'h1,h2,h3,h4,h5,h6', - linkClass : 'tocbot-link', - activeLinkClass : 'tocbot-active-link', - listClass : 'tocbot-list', - isCollapsedClass: 'tocbot-is-collapsed', - collapsibleClass: 'tocbot-is-collapsible', - collapseDepth : CONFIG.toc.collapseDepth || 0, - scrollSmooth : true, - headingsOffset : -boardTop - }); - if ($('.toc-list-item').length > 0) { - toc.css('visibility', 'visible'); - } - }, - - wrapImageWithFancyBox: function() { - if (!$.fancybox) { return; } - - $('.markdown-body :not(a) > img, .markdown-body > img').each(function() { - var $image = $(this); - var imageLink = $image.attr('data-src') || $image.attr('src'); - var $imageWrapLink = $image.wrap(` - ` - ).parent('a'); - if ($image.is('.group-image-container img')) { - $imageWrapLink.attr('data-fancybox', 'group').attr('rel', 'group'); - } else { - $imageWrapLink.attr('data-fancybox', 'default').attr('rel', 'default'); - } - - var imageTitle = $image.attr('title') || $image.attr('alt'); - if (imageTitle) { - $imageWrapLink.append(`

    ${imageTitle}

    `); - $imageWrapLink.attr('title', imageTitle).attr('data-caption', imageTitle); - } - }); - - $.fancybox.defaults.hash = false; - $('.fancybox').fancybox({ - loop : true, - helpers: { - overlay: { - locked: false - } - } - }); - }, - - registerAnchor: function() { - if (!window.anchors) { return; } - - window.anchors.options = { - placement: CONFIG.anchorjs.placement, - visible : CONFIG.anchorjs.visible - }; - if (CONFIG.anchorjs.icon) { - window.anchors.options.icon = CONFIG.anchorjs.icon; - } - var el = (CONFIG.anchorjs.element || 'h1,h2,h3,h4,h5,h6').split(','); - var res = []; - for (const item of el) { - res.push('.markdown-body > ' + item); - } - window.anchors.add(res.join(', ')); - }, - - registerCopyCode: function() { - if (!window.ClipboardJS) { return; } - function getBgClass(ele) { - if (ele.length === 0) { - return 'copy-btn-dark'; - } - var rgbArr = ele.css('background-color').replace(/rgba*\(/, '').replace(')', '').split(','); - var color = (0.213 * rgbArr[0]) + (0.715 * rgbArr[1]) + (0.072 * rgbArr[2]) > 255 / 2; - return color ? 'copy-btn-dark' : 'copy-btn-light'; - } - - var copyHtml = ''; - copyHtml += ''; - var blockElement = $('.markdown-body pre'); - blockElement.each(function() { - const pre = $(this); - if (pre.find('code.mermaid').length > 0) { - return; - } - if (pre.find('span.line').length > 0) { - return; - } - pre.append(copyHtml); - }); - var clipboard = new window.ClipboardJS('.copy-btn', { - target: function(trigger) { - return trigger.previousElementSibling; - } - }); - $('.copy-btn').addClass(getBgClass(blockElement)); - clipboard.on('success', function(e) { - e.clearSelection(); - var tmp = e.trigger.outerHTML; - e.trigger.innerHTML = 'Success'; - setTimeout(function() { - e.trigger.outerHTML = tmp; - }, 2000); - }); - }, - - registerImageLoaded: function() { - var bg = document.getElementById('banner'); - if (bg) { - var src = bg.style.backgroundImage; - var url = src.match(/\((.*?)\)/)[1].replace(/(['"])/g, ''); - var img = new Image(); - img.onload = function() { - window.NProgress && window.NProgress.inc(0.2); - }; - img.src = url; - if (img.complete) { img.onload(); } - } - - var notLazyImages = $('main img:not([lazyload])'); - var total = notLazyImages.length; - for (const img of notLazyImages) { - const old = img.onload; - img.onload = function() { - old && old(); - window.NProgress && window.NProgress.inc(0.5 / total); - }; - if (img.complete) { img.onload(); } - } - } - -}; diff --git a/js/utils.js b/js/utils.js deleted file mode 100644 index 1108c65..0000000 --- a/js/utils.js +++ /dev/null @@ -1,171 +0,0 @@ -/* global Fluid, CONFIG, Debouncer */ - -Fluid.utils = { - - listenScroll: function(callback) { - if ('Debouncer' in window) { - var dbc = new Debouncer(callback); - window.addEventListener('scroll', dbc, false); - dbc.handleEvent(); - } else { - window.addEventListener('scroll', callback, false); - } - }, - - scrollToElement: function(target, offset) { - var of = $(target).offset(); - if (of) { - $('html,body').animate({ - scrollTop: of.top + (offset || 0), - easing : 'swing' - }); - } - }, - - waitElementVisible: function(target, callback, heightFactor) { - var runningOnBrowser = typeof window !== 'undefined'; - var isBot = (runningOnBrowser && !('onscroll' in window)) || (typeof navigator !== 'undefined' - && /(gle|ing|ro|msn)bot|crawl|spider|yand|duckgo/i.test(navigator.userAgent)); - var supportsIntersectionObserver = 'IntersectionObserver' in window; - - if (!runningOnBrowser || isBot) { - callback && callback(); - return; - } - - var _target; - if (typeof target === 'string') { - _target = document.getElementById(target); - } else { - _target = target; - } - - var _heightFactor = heightFactor || 2; - - var _elementInViewport = function(el) { - var rect = el.getBoundingClientRect(); - var height = window.innerHeight || document.documentElement.clientHeight; - var top = rect.top; - return (top >= 0 && top <= height * (_heightFactor + 1)) - || (top <= 0 && top >= -(height * _heightFactor) - rect.height); - }; - - if (_elementInViewport(_target)) { - callback && callback(); - return; - } - - var _listenScroll = function() { - var _callback = function() { - if (_elementInViewport(_target)) { - window.removeEventListener('scroll', _callback); - callback && callback(); - } - }; - window.addEventListener('scroll', _callback); - }; - - if (supportsIntersectionObserver) { - var io = new IntersectionObserver(function(entries, ob) { - if (entries[0].intersectionRect.x <= 0) { - if ('Debouncer' in window) { - var dbc = new Debouncer(_listenScroll); - dbc.handleEvent(); - } else { - _listenScroll(); - } - } else if (entries[0].isIntersecting) { - callback && callback(); - } - ob.disconnect(); - }, { - threshold : [0], - rootMargin: (window.innerHeight || document.documentElement.clientHeight) + 'px' - }); - io.observe(_target); - } else { - if ('Debouncer' in window) { - var dbc = new Debouncer(_listenScroll); - dbc.handleEvent(); - } else { - _listenScroll(); - } - } - }, - - waitElementLoaded: function(targetId, callback) { - var runningOnBrowser = typeof window !== 'undefined'; - var isBot = (runningOnBrowser && !('onscroll' in window)) || (typeof navigator !== 'undefined' - && /(gle|ing|ro|msn)bot|crawl|spider|yand|duckgo/i.test(navigator.userAgent)); - - if (!runningOnBrowser || isBot) { - callback && callback(); - return; - } - - if ('MutationObserver' in window) { - var mo = new MutationObserver(function(records, ob) { - var ele = document.getElementById(targetId); - if (ele) { - callback && callback(); - ob.disconnect(); - } - }); - mo.observe(document, { childList: true, subtree: true }); - } else { - document.addEventListener('DOMContentLoaded', function() { - callback && callback(); - }); - } - }, - - createScript: function(url, onload) { - var s = document.createElement('script'); - s.setAttribute('src', url); - s.setAttribute('type', 'text/javascript'); - s.setAttribute('charset', 'UTF-8'); - s.async = false; - if (typeof onload === 'function') { - if (window.attachEvent) { - s.onreadystatechange = function() { - var e = s.readyState; - if (e === 'loaded' || e === 'complete') { - s.onreadystatechange = null; - onload(); - } - }; - } else { - s.onload = onload; - } - } - var e = document.getElementsByTagName('script')[0] - || document.getElementsByTagName('head')[0] - || document.head || document.documentElement; - e.parentNode.insertBefore(s, e); - }, - - createCssLink: function(url) { - var l = document.createElement('link'); - l.setAttribute('rel', 'stylesheet'); - l.setAttribute('type', 'text/css'); - l.setAttribute('href', url); - var e = document.getElementsByTagName('link')[0] - || document.getElementsByTagName('head')[0] - || document.head || document.documentElement; - e.parentNode.insertBefore(l, e); - }, - - lazyComments: function(eleId, loadFunc) { - var ele = document.querySelector('#comments[lazyload]'); - if (ele) { - var callback = function() { - loadFunc && loadFunc(); - ele.removeAttribute('lazyload'); - }; - this.waitElementVisible(eleId, callback, CONFIG.lazyload.offset_factor); - } else { - loadFunc && loadFunc(); - } - } - -}; diff --git a/lib/hbe.js b/lib/hbe.js deleted file mode 100644 index 8cc6552..0000000 --- a/lib/hbe.js +++ /dev/null @@ -1,290 +0,0 @@ -(() => { - 'use strict'; - - const cryptoObj = window.crypto || window.msCrypto; - const storage = window.localStorage; - - const storageName = 'hexo-blog-encrypt:#' + window.location.pathname; - const keySalt = textToArray('hexo-blog-encrypt的作者们都是大帅比!'); - const ivSalt = textToArray('hexo-blog-encrypt是地表最强Hexo加密插件!'); - -// As we can't detect the wrong password with AES-CBC, -// so adding an empty div and check it when decrption. -const knownPrefix = ""; - - const mainElement = document.getElementById('hexo-blog-encrypt'); - const wrongPassMessage = mainElement.dataset['wpm']; - const wrongHashMessage = mainElement.dataset['whm']; - const dataElement = mainElement.getElementsByTagName('script')['hbeData']; - const encryptedData = dataElement.innerText; - const HmacDigist = dataElement.dataset['hmacdigest']; - - function hexToArray(s) { - return new Uint8Array(s.match(/[\da-f]{2}/gi).map((h => { - return parseInt(h, 16); - }))); - } - - function textToArray(s) { - var i = s.length; - var n = 0; - var ba = new Array() - - for (var j = 0; j < i;) { - var c = s.codePointAt(j); - if (c < 128) { - ba[n++] = c; - j++; - } else if ((c > 127) && (c < 2048)) { - ba[n++] = (c >> 6) | 192; - ba[n++] = (c & 63) | 128; - j++; - } else if ((c > 2047) && (c < 65536)) { - ba[n++] = (c >> 12) | 224; - ba[n++] = ((c >> 6) & 63) | 128; - ba[n++] = (c & 63) | 128; - j++; - } else { - ba[n++] = (c >> 18) | 240; - ba[n++] = ((c >> 12) & 63) | 128; - ba[n++] = ((c >> 6) & 63) | 128; - ba[n++] = (c & 63) | 128; - j += 2; - } - } - return new Uint8Array(ba); - } - - function arrayBufferToHex(arrayBuffer) { - if (typeof arrayBuffer !== 'object' || arrayBuffer === null || typeof arrayBuffer.byteLength !== 'number') { - throw new TypeError('Expected input to be an ArrayBuffer') - } - - var view = new Uint8Array(arrayBuffer) - var result = '' - var value - - for (var i = 0; i < view.length; i++) { - value = view[i].toString(16) - result += (value.length === 1 ? '0' + value : value) - } - - return result - } - - async function getExecutableScript(oldElem) { - let out = document.createElement('script'); - const attList = ['type', 'text', 'src', 'crossorigin', 'defer', 'referrerpolicy']; - attList.forEach((att) => { - if (oldElem[att]) - out[att] = oldElem[att]; - }) - - return out; - } - - async function convertHTMLToElement(content) { - let out = document.createElement('div'); - out.innerHTML = content; - out.querySelectorAll('script').forEach(async (elem) => { - elem.replaceWith(await getExecutableScript(elem)); - }); - - return out; - } - - function getKeyMaterial(password) { - let encoder = new TextEncoder(); - return cryptoObj.subtle.importKey( - 'raw', - encoder.encode(password), - { - 'name': 'PBKDF2', - }, - false, - [ - 'deriveKey', - 'deriveBits', - ] - ); - } - - function getHmacKey(keyMaterial) { - return cryptoObj.subtle.deriveKey({ - 'name': 'PBKDF2', - 'hash': 'SHA-256', - 'salt': keySalt.buffer, - 'iterations': 1024 - }, keyMaterial, { - 'name': 'HMAC', - 'hash': 'SHA-256', - 'length': 256, - }, true, [ - 'verify', - ]); - } - - function getDecryptKey(keyMaterial) { - return cryptoObj.subtle.deriveKey({ - 'name': 'PBKDF2', - 'hash': 'SHA-256', - 'salt': keySalt.buffer, - 'iterations': 1024, - }, keyMaterial, { - 'name': 'AES-CBC', - 'length': 256, - }, true, [ - 'decrypt', - ]); - } - - function getIv(keyMaterial) { - return cryptoObj.subtle.deriveBits({ - 'name': 'PBKDF2', - 'hash': 'SHA-256', - 'salt': ivSalt.buffer, - 'iterations': 512, - }, keyMaterial, 16 * 8); - } - - async function verifyContent(key, content) { - const encoder = new TextEncoder(); - const encoded = encoder.encode(content); - - let signature = hexToArray(HmacDigist); - - const result = await cryptoObj.subtle.verify({ - 'name': 'HMAC', - 'hash': 'SHA-256', - }, key, signature, encoded); - console.log(`Verification result: ${result}`); - if (!result) { - alert(wrongHashMessage); - console.log(`${wrongHashMessage}, got `, signature, ` but proved wrong.`); - } - return result; - } - - async function decrypt(decryptKey, iv, hmacKey) { - let typedArray = hexToArray(encryptedData); - - const result = await cryptoObj.subtle.decrypt({ - 'name': 'AES-CBC', - 'iv': iv, - }, decryptKey, typedArray.buffer).then(async (result) => { - const decoder = new TextDecoder(); - const decoded = decoder.decode(result); - - // check the prefix, if not then we can sure here is wrong password. - if (!decoded.startsWith(knownPrefix)) { - throw "Decode successfully but not start with KnownPrefix."; - } - - const hideButton = document.createElement('button'); - hideButton.textContent = 'Encrypt again'; - hideButton.type = 'button'; - hideButton.classList.add("hbe-button"); - hideButton.addEventListener('click', () => { - window.localStorage.removeItem(storageName); - window.location.reload(); - }); - - document.getElementById('hexo-blog-encrypt').style.display = 'inline'; - document.getElementById('hexo-blog-encrypt').innerHTML = ''; - document.getElementById('hexo-blog-encrypt').appendChild(await convertHTMLToElement(decoded)); - document.getElementById('hexo-blog-encrypt').appendChild(hideButton); - - // support html5 lazyload functionality. - document.querySelectorAll('img').forEach((elem) => { - if (elem.getAttribute("data-src") && !elem.src) { - elem.src = elem.getAttribute('data-src'); - } - }); - - // TOC part - var tocDiv = document.getElementById("toc-div"); - if (tocDiv) { - tocDiv.style.display = 'inline'; - } - - var tocDivs = document.getElementsByClassName('toc-div-class'); - if (tocDivs && tocDivs.length > 0) { - for (var idx = 0; idx < tocDivs.length; idx++) { - tocDivs[idx].style.display = 'inline'; - } - } - - return await verifyContent(hmacKey, decoded); - }).catch((e) => { - alert(wrongPassMessage); - console.log(e); - return false; - }); - - return result; - - } - - function hbeLoader() { - - const oldStorageData = JSON.parse(storage.getItem(storageName)); - - if (oldStorageData) { - console.log(`Password got from localStorage(${storageName}): `, oldStorageData); - - const sIv = hexToArray(oldStorageData.iv).buffer; - const sDk = oldStorageData.dk; - const sHmk = oldStorageData.hmk; - - cryptoObj.subtle.importKey('jwk', sDk, { - 'name': 'AES-CBC', - 'length': 256, - }, true, [ - 'decrypt', - ]).then((dkCK) => { - cryptoObj.subtle.importKey('jwk', sHmk, { - 'name': 'HMAC', - 'hash': 'SHA-256', - 'length': 256, - }, true, [ - 'verify', - ]).then((hmkCK) => { - decrypt(dkCK, sIv, hmkCK).then((result) => { - if (!result) { - storage.removeItem(storageName); - } - }); - }); - }); - } - - mainElement.addEventListener('keydown', async (event) => { - if (event.isComposing || event.keyCode === 13) { - const password = document.getElementById('hbePass').value; - const keyMaterial = await getKeyMaterial(password); - const hmacKey = await getHmacKey(keyMaterial); - const decryptKey = await getDecryptKey(keyMaterial); - const iv = await getIv(keyMaterial); - - decrypt(decryptKey, iv, hmacKey).then((result) => { - console.log(`Decrypt result: ${result}`); - if (result) { - cryptoObj.subtle.exportKey('jwk', decryptKey).then((dk) => { - cryptoObj.subtle.exportKey('jwk', hmacKey).then((hmk) => { - const newStorageData = { - 'dk': dk, - 'iv': arrayBufferToHex(iv), - 'hmk': hmk, - }; - storage.setItem(storageName, JSON.stringify(newStorageData)); - }); - }); - } - }); - } - }); - } - - hbeLoader(); - -})(); diff --git a/lib/hint/hint.min.css b/lib/hint/hint.min.css deleted file mode 100644 index aa6c64d..0000000 --- a/lib/hint/hint.min.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! Hint.css - v2.6.0 - 2019-04-27 -* http://kushagragour.in/lab/hint/ -* Copyright (c) 2019 Kushagra Gour */ - -[class*=hint--]{position:relative;display:inline-block}[class*=hint--]:after,[class*=hint--]:before{position:absolute;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;-webkit-transition:.3s ease;-moz-transition:.3s ease;transition:.3s ease;-webkit-transition-delay:0s;-moz-transition-delay:0s;transition-delay:0s}[class*=hint--]:hover:after,[class*=hint--]:hover:before{visibility:visible;opacity:1;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;transition-delay:.1s}[class*=hint--]:before{content:'';position:absolute;background:0 0;border:6px solid transparent;z-index:1000001}[class*=hint--]:after{background:#383838;color:#fff;padding:8px 10px;font-size:12px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;line-height:12px;white-space:nowrap;text-shadow:0 -1px 0 #000;box-shadow:4px 4px 8px rgba(0,0,0,.3)}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label='']:after,[aria-label='']:before,[data-hint='']:after,[data-hint='']:before{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#383838}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#383838}.hint--top:after,.hint--top:before{bottom:100%;left:50%}.hint--top:before{margin-bottom:-11px;left:calc(50% - 6px)}.hint--top:after{-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translateX(-50%)}.hint--top:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--top:hover:after{-webkit-transform:translateX(-50%) translateY(-8px);-moz-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}.hint--bottom:after,.hint--bottom:before{top:100%;left:50%}.hint--bottom:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom:after{-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translateX(-50%)}.hint--bottom:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--bottom:hover:after{-webkit-transform:translateX(-50%) translateY(8px);-moz-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}.hint--right:before{border-right-color:#383838;margin-left:-11px;margin-bottom:-6px}.hint--right:after{margin-bottom:-14px}.hint--right:after,.hint--right:before{left:100%;bottom:50%}.hint--right:hover:after,.hint--right:hover:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translateX(8px)}.hint--left:before{border-left-color:#383838;margin-right:-11px;margin-bottom:-6px}.hint--left:after{margin-bottom:-14px}.hint--left:after,.hint--left:before{right:100%;bottom:50%}.hint--left:hover:after,.hint--left:hover:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translateX(-8px)}.hint--top-left:after,.hint--top-left:before{bottom:100%;left:50%}.hint--top-left:before{margin-bottom:-11px;left:calc(50% - 6px)}.hint--top-left:after{-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translateX(-100%);margin-left:12px}.hint--top-left:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--top-left:hover:after{-webkit-transform:translateX(-100%) translateY(-8px);-moz-transform:translateX(-100%) translateY(-8px);transform:translateX(-100%) translateY(-8px)}.hint--top-right:after,.hint--top-right:before{bottom:100%;left:50%}.hint--top-right:before{margin-bottom:-11px;left:calc(50% - 6px)}.hint--top-right:after{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0);margin-left:-12px}.hint--top-right:hover:after,.hint--top-right:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--bottom-left:after,.hint--bottom-left:before{top:100%;left:50%}.hint--bottom-left:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom-left:after{-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translateX(-100%);margin-left:12px}.hint--bottom-left:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--bottom-left:hover:after{-webkit-transform:translateX(-100%) translateY(8px);-moz-transform:translateX(-100%) translateY(8px);transform:translateX(-100%) translateY(8px)}.hint--bottom-right:after,.hint--bottom-right:before{top:100%;left:50%}.hint--bottom-right:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom-right:after{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0);margin-left:-12px}.hint--bottom-right:hover:after,.hint--bottom-right:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--large:after,.hint--medium:after,.hint--small:after{white-space:normal;line-height:1.4em;word-wrap:break-word}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}.hint--error:after{background-color:#b34e4d;text-shadow:0 -1px 0 #592726}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{background-color:#c09854;text-shadow:0 -1px 0 #6c5328}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{background-color:#3986ac;text-shadow:0 -1px 0 #1a3c4d}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{background-color:#458746;text-shadow:0 -1px 0 #1a321a}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--top:after{-webkit-transform:translateX(-50%) translateY(-8px);-moz-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}.hint--always.hint--top-left:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--top-left:after{-webkit-transform:translateX(-100%) translateY(-8px);-moz-transform:translateX(-100%) translateY(-8px);transform:translateX(-100%) translateY(-8px)}.hint--always.hint--top-right:after,.hint--always.hint--top-right:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--bottom:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--bottom:after{-webkit-transform:translateX(-50%) translateY(8px);-moz-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}.hint--always.hint--bottom-left:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--bottom-left:after{-webkit-transform:translateX(-100%) translateY(8px);-moz-transform:translateX(-100%) translateY(8px);transform:translateX(-100%) translateY(8px)}.hint--always.hint--bottom-right:after,.hint--always.hint--bottom-right:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--left:after,.hint--always.hint--left:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translateX(-8px)}.hint--always.hint--right:after,.hint--always.hint--right:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translateX(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:after,.hint--no-animate:before{-webkit-transition-duration:0s;-moz-transition-duration:0s;transition-duration:0s}.hint--bounce:after,.hint--bounce:before{-webkit-transition:opacity .3s ease,visibility .3s ease,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s ease,visibility .3s ease,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s ease,visibility .3s ease,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:after,.hint--no-shadow:before{text-shadow:initial;box-shadow:initial} diff --git a/links/index.html b/links/index.html deleted file mode 100644 index 301e2d4..0000000 --- a/links/index.html +++ /dev/null @@ -1,383 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 友链 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - - - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/local-search.xml b/local-search.xml deleted file mode 100644 index 01989d2..0000000 --- a/local-search.xml +++ /dev/null @@ -1,274 +0,0 @@ - - - - - - - C++数据结构 - - /2021/09/09/C++%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/ - - 线性表
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    //顺序表静态分配定义
    #define Maxsize 100 //最大空间

    typedef struct{
    ElemType data[Maxsize]; //一维数组
    int length; //顺序表的长度
    }SqList


    // ElemType 元素类型, 需要什么类型就写什么类型
    // 用typedef将结构体等价于类型名SqlList


    //顺序表动态分配的定义
    #define MaxSize 100 // 最大空间
    typedef struct{
    ElemType * elem;
    int length; // 顺序表的长度
    }

    顺序表基本操作

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    //1. 初始化
    bool InitList(SqlList, &L) //构造一个空的顺序表L
    {
    //前面加&表示引用参数, 函数内部的改变跳出函数后仍然有效
    //如果不加&, 函数内部的改变在跳出函数便会无效
    L.elem = new int[MaxSize]; //为顺序表动态分配MaxSize个空间
    if(!L.elem) retuurn false; //分配空间失败
    L.length = 0; //顺序表长度为0
    return 0;
    }

    //2. 创建
    bool CreateList(Sqlist, &L) //创建一个顺序表L
    {
    //前面加&表示引用参数, 函数内部的改变跳出函数后仍然有效
    //如果不加&, 函数内部的改变在跳出函数便会无效

    int x , i = 0;
    while(x != 1) //输入-1时, 结束也可以设置其他的结束条件
    {
    if(L.length == Maxsize)
    {
    cout << "顺序表已满"
    return false;
    }
    cin >>x;//输入一个数据元素
    L.elem[i++] = x ; //将数据存入第i个位置, 然后i++
    L.length++; //顺序表长度加1
    }
    return true;
    }

    //3.取值

    bool GetElem(SqList L ,int i , int &e)
    {
    if(i < 1 || i > L.length) return false;
    //判断i值是否合理,若不合理, 则返回false
    e = L.elem[i - i]; //第i-1个单元存储着第i个数据
    return true;
    }

    //4.查找

    int LocateElem(SqList L, int e)
    {
    for(i = 0;i < SqList.length;i++)
    if(L.elem[i] == e) return i + 1; //下标为i 实际为第i+1个元素
    return -1; //如果没找到, 则返回-1
    }

    //5. 插入
    bool ListInsert_Sq(SqList &L,int i , int e)
    {
    if(i < 1 || i > L.length) return false; //i值不合法
    if(L.length == Maxsize) return false; //存储空间已满
    for(int j = L.lenght-1; j >= i -1; j--)
    L.elem[j+1] = L.elem[j]; //从最后一个元素开始后移, 直到第i个元素后移
    L.elem[i-1] = e; //将新元素e放入第i个位置
    L.length++; //表长加1
    return true;
    }

    //6. 删除
    bool ListDelete_Sq(SqList &L,int i , int e)
    {
    if(i < 1 || i > L.length) return false; //i值不合法
    e = L.elem[i-1]; //将欲删除的元素保存在e中
    for(int j=i;j <= L.length-1; j++)
    L.elem[j-1] = L.elem[j]; //被删除元素之后的元素前移
    L.length--; //表长度减一
    return true;
    }

    1
    顺序表的操作是不是和Javascript中数据操作差不多
    ]]>
    - - - - - - C++ - - - -
    - - - - - js数据结构 - - /2021/09/04/javascript%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/ - -
    • push(element); 添加一个(或几个)新元素
    • pop(); 移除栈顶的元素, 同时返回被移除的元素
    • peek(); 返回栈顶的元素, 不对栈做任何修改(这个方法不会移除栈顶的元素,仅仅返回它)
    • isEmpty(); 如果栈里没有任何元素就返回true, 否则返回false
    • clear(); 移除栈里的所有元素
    • size(); 返回栈里的元素个数,
    ]]>
    - - - - - - javascript - - - -
    - - - - - C++日记 - - /2021/09/03/C++%E6%97%A5%E8%AE%B0/ - - 第一阶段 - - C++基础语法入门

    day 1

    输出Hello World

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <iostream> 

    using namespace std; //表示使用std的命名的空间

    int main()
    {
    cout << "你好世界"; //会在屏幕上显示消息 "Hello World"。
    return 0; //终止程序
    }

    Day 2

    常量

    C++ 定义常量两种方式

    1. #define 宏常量 #define 常量名 常量值
    2. const 修饰的变量 const 数据类型 常量名 常量值

    sizeof关键字

    1
    2
    3
    1. 整型:short ,int ,long ,long long
    2. 可以利用sizeof求出数据类型占用的内存
    3. 语法: sizeof(数据类型/ 变量)

    实型

    1. 单精度 float
    2. 双精度 double
    数据类型占用空间有效数字范围
    float4字节7位有效数字
    double8字节15-16位有效数字

    字符型

    作用: 字符型变量用于显示单个字符

    语法: char ch = ‘a’;

    注意

    1. 在显示字符型变量时, 用单引号符号括起来 , 不能用双引号
    2. 单引号只能由一个字符 , 不可以是字符串

    C和C++ 中字符型变量只占用1个字符

    强制转换类型前面加(int) – 转为整数型

    转义字符

    转义字符含义ASCII码值
    \a换行 , 将当前位置移到下一行头010
    \\表示反斜杠092
    \t水平制表符(跳到下一个TAB位置)009

    字符串型

    C语言:

    char 变量名[] = "字符串值"

    C++风格:

    string 变量名 = "字符串值"

    第二阶段 - - 核心编程

    第三阶段 - - C++ 提高编程

    ]]>
    - - - - - - C++ - - - -
    - - - - - React的生命周期 - - /2021/09/02/react%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/ - - React的生命周期从创建到卸载经历以下三阶段:

    • 挂载阶段 - 组件实例被创建和插入Dom树的过程
    • 更新阶段 - 组件被重新渲染过程
    • 卸载阶段 - 组件从Dom树中被删除的过程

    17 版本前生命周期

    挂载阶段

    初始化操作, 如下几个钩子函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    static defaultProps
    -- 设置props数据类型

    static proTypes
    -- props数据类型检查

    constructor(props)
    -- 构造函数

    componentWillMount()
    -- 组件前挂载前函数

    render()
    -- 组件更新钩子

    componentDidMount()
    -- 组件挂载成功钩子, 该过程组件已经成功挂载到真实Dom

    注意: static 静态方法不依赖构造函数, 只跟类有关, 可优先于构造函数执行

    更新阶段

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    componentWillReceiveProps(newProps)
    -- 父组件更新props钩子

    shouldComponentUpdate()
    -- 组件是否更新钩子

    componentWillUpdate()
    -- 组件更新前钩子

    render()
    -- 组件渲染钩子

    componentDidUpdate()
    -- 组件更新成功钩子

    卸载阶段

    1
    2
    3
    这个阶段主要从Dom树中删除组件操作, 它的钩子函数:
    componentWillUnmount()
    -- 组件将要被卸载的时候调用
    ]]>
    - - - - - - React - - - -
    - - - - - - - /2021/09/01/%E7%BB%83%E6%89%8B%E9%A1%B9%E7%9B%AE%E8%AE%B0%E5%BD%95/ - - 练手项目记录

    1. React实现计算器

    信息

    1
    2
    3
    Time: 2021 09.01 - 09.02
    name: 计算器
    技术:
    1. 练习到state, props 等

    缺陷: 利用了eval()这个方法,这个方法是有害的

    2. 随机点名

    信息

    1
    2
    3
    Time: 2021 09.03 - 09.04
    name: 随机点名
    技术:
    1. react提示ach child in a list should have a unique “key” prop

    img

    解决方法是在key={index} ,分配一个unique-key ,这个需要注意!

    3. 轮播图

    信息

    1
    2
    3
    Time: 2021 09.04 - 
    name: 轮播图
    技术:

    需求

    1. 实现左右切换
    2. 点击按钮切换

    问题

    1. react 中img 标签加载图片的问题?
    2. 图片居中方法
    3. 使用阴影

    4. admin后台管理

    信息

    1
    2
    3
    Time: 2021 09.06 - 09.13 
    name: 后台管理
    技术:

    问题

    1. react-router-dom 中哈希路由
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // 先引用哈希路由

    import {HashRouter} from 'react-router-dom'


    //在index.js中(不推荐)

    <Router>
    <Switch>
    <Router path="/login" component={Login} />
    <Router path="/admin/products" component={List} />
    </Switch>
    </Router>

    //配置路由文件,在src中配置routes文件
    1. 路由如何配置
    1. 左边导航栏如何动态生成
    1. antd动态引入icon
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    export const getIcon = string => {
    return {
    AuditOutlined:<AuditOutlined/>,
    AppstoreAddOutlined:<AppstoreAddOutlined/>,
    ContactsOutlined:<ContactsOutlined />,
    ControlOutlined:<ControlOutlined/>,
    FormOutlined:<FormOutlined/>,
    FileTextOutlined:<FileTextOutlined/>,
    HighlightOutlined:<HighlightOutlined/>,
    ProfileOutlined:<ProfileOutlined/>,
    TeamOutlined:<TeamOutlined/>,
    TagsOutlined:<TeamOutlined/>,
    CopyOutlined:<CopyOutlined/>,
    CheckCircleOutlined:<CheckCircleOutlined/>,
    ExclamationCircleOutlined:<ExclamationCircleOutlined/>,
    BlockOutlined:<BlockOutlined/>
    }[string]}

    <MenuItem key={item.key} icon={getIcon(item.icon)}>{item.name}</MenuItem>
    ]]>
    - - - -
    - - - - - js再看 - - /2021/08/30/js%E5%86%8D%E7%8E%B0/ - - js与Unicode字符集
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const CARD_PONITS = ['A','1','2','3','4','5','6','7','8','9','10','J','P','Q'];
    const CARD_SUITS = ['♥','♣','♠','♦'];

    function getRandomItem(list){
    return list[Math.floor(Math.random(list.length))]
    }

    function getRandomCard(){
    const point = getRandomItem(CARD_POINTS);
    const suit = getRandomItem(CARD_SUITS);
    }

    不允许换行

    • return和返回值之间
    • break/continue和label之间
    • 变量和++ , -- 后缀运算符之间
    • throw 和异常对象之间
    • 箭头函数的参数列表和箭头 => 之间
    • yield和迭代值之间
    • async 和 异步函数声明, 函数表达式, 方法名

    var变量提升

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    console.log( a === undefined) //true
    var a = 10;

    function foo(){
    console.log(a,i); //undefined , undefined

    var a = 20;
    for(var i = 0; i < a ; i++){

    }
    console.log(a,i); //20 ,20
    }

    let 暂存死区(DTZ)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    {
    let x = 10;
    console.log('x is '+x); //x is 10
    }

    console.log(typeof a); //error

    let x = 10
    function foo(){
    console.log(x); // undefined
    var x = 20;
    return x*x
    }

    console.log(foo()); //400

    隐式类型转换

    • 字符串与数值相加时, 数值被转换为字符串
    • 字符串参与飞假发数学运算时, 字符串被转换为数值
    • 布尔值与数值进行运算时, true视为1 , false 视为0
    • 布尔值与字符串进行相加时, 布尔值视为字符串
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const a= 10 , b= 'abc,c= 1;
    console.log(a + b + c); //10abc1

    const a = 123 , b = '456' , c = 1
    console.log(a + b - c); //123455

    const a = true , b = false
    console.log(a + 1, b * 3); //2 0

    const a = true , b = false
    console.log(a + '', b + 'foobar')

    == 与 ====

    • 使用 == 操作符比较时, 会触发隐式类型转换
    • 值用 === 操作符比较时, 不会触发隐式类型转换
    • 一般原则出来与null比较外,尽量使用 ===

    显示类型转换

    通过调用方法Number , String, Boolean

    NULL和 Undefined

    Null和Undefined 是javascript 中的两种原始类型

    它们分别只有一个值

    • Null 的值是null
    • Undefined 的值是undefined
    • 在非严格比较下, null == undefined
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    let foo //变量标识符被声明而没有初始化
    console.log(foo)

    function bar(a,b){
    return [a,b]
    }

    // bar函数的第二个形参没有传入实参

    console.log(bar(1)) // [1, undefined]

    let sum = 0;
    function addSum(sum){
    sum += sum;
    }

    // addSum 没有return
    console.log(addSum(10)); // undefined

    // 访问p对象不存在的z属性
    let p = {x:1, y:2}
    console.log(p.z); //undefined

    let foo = null;
    console.log(foo) // null

    私有属性

    新的语言标准private field 有些不理想 , 所以也可以采用Symbol来定义私有属性

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    const size = Symbol('size');

    class Collection{
    constructor(){
    this[size] = 0
    }

    add(item){
    this[this[size]] = item;
    this[size]++;
    }

    static sizeOf(instance){
    return instance[size];
    }

    内置Symbol

    ES6内置了一些有用的Symbol, 可以用来控制对象的一些内部行为

    • Symbol.iterator
    • Symbol.toPrimitive
    • Symbol.toStringTag

    小结

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    class Path {
    constructor(){
    this._points = []
    }

    add(..points){
    this._ponits.push(..points);
    }

    *[Symbol.iterator](){
    yield * this._points;
    }
    gwt length(){
    return this._points.length;
    }
    }

    const path = new Path();
    path.add([1,1],[1,2],[2,3]);
    console.log(path.length);

    for(let point of path){
    console.log(point); //[1,2],[1,2],[2,3]
    }

    执行上下文

    函数有执行上下文,运行时会产生‘闭包

    • 闭包是运行有函数调用而成
    • 通过闭包可访问执行上下文中的数据
    • 如果产生闭包的引用被销毁, 闭包被销毁
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function sayHelloTo(person){
    return function(){
    console.log(`Hello World`);
    }
    }

    let greeting1 = sayHelloTo("Tom");
    let greeting2 = sayHelloTo("Jerry");

    greeting1(); // Hello Tom
    greeting2(); // Hello Jerry

    greeting1 = null;
    geerting2 = null;

    this上下文

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    const person = {
    firstName: '三',
    lastName:'张',
    getFullName:function(){
    return this.lastName+' '+ this.firstName;
    }
    }

    console.log(person.firstName);// 三
    console.log(person.lastName); //张
    console.log(person.getFullName()) //张三

    person.sayHelloTo = function(){
    console.log(`Hello ${this.lastName}`);
    }

    person.sayHelloTo(); //Hello 张
    setTimeout(person.sayHelloTo,100); //Hello undefined

    构造

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    // 字面量
    {
    let myObj = {
    name:'ak',
    birday:'12-29'
    }
    }

    // 构造器(不推荐)

    {
    let myObj = new Object();
    myObj.name = 'ak'
    myObj.birday = '12-29'
    }

    // 原型(高级用法)

    {
    let myObj = Object.create({
    name:'ak',
    birday:'12-29'
    })
    }

    构造器与类

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    //函数作为构造器
    {
    function Vetor2d(x,y){
    this.x = x;
    this.y = y;
    }

    const v = new Vector2d(3,4)
    console.log(v)
    }

    //定义class

    {
    class Vector{
    constructor(x,y){
    this.x = x ;
    this.y = y
    }
    }
    const v = new Vector(3,4)
    console.log(v)
    }

    原则

    版本一

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    const btn= document.getElementById('modeBtn')

    btn.addEventListener('click',(e) => {
    const body = document.body;
    if(e.target.innerHtml ==='白天'){
    body.style.backgroundColor = 'black';
    body.style.color = 'white'
    e.target.innerHtml = '黑夜'
    }else{
    body.style.backgroundColor = 'black';
    body.style.color = 'white';
    e.target.innerHtml = '白天'
    }
    });

    版本二

    1
    2
    3
    4
    5
    6
    7
    8
    9
    const btn = document.getElementById('modeBtn');
    btn.addEventListener('click',(e) => {
    const body = document.body;
    if(body.className != 'night'){
    body.className = 'night'
    }else{
    body.className = '';
    }
    })

    版本一和版本二区别:

    一 代码的可读性不强, 二 代码可读性强. 各司其职, js用来逻辑的切换 , css用来做样式

    组件

    组件是web上抽出来的一个个包含模板HTML JS CSS 的单元

    ]]>
    - - - - - - javascript - - - -
    - - - - - - - /2021/08/23/termux/ - - 安装openssh在电脑上运行
    1
    pkg install openssh

    修改密码代码:

    1
    passwd

    更换termux为国内源

    1
    2
    3
    4
    5
    6
    7
    sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list

    sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list

    sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list

    pkg update
    ]]>
    - - - -
    - - - - - - - /2021/08/20/%E6%A0%A1%E6%8B%9B100%E9%A2%98/ - - 校招100题

    [TOC]

    T.001

    给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

    示例 1:

    输入: s = “abcabcbb”
    输出: 3
    解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
    示例 2:

    输入: s = “bbbbb”
    输出: 1
    解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
    示例 3:

    输入: s = “pwwkew”
    输出: 3
    解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
    请注意,你的答案必须是 子串 的长度,”pwke” 是一个子序列,不是子串。
    示例 4:

    输入: s = “”
    输出: 0

    提示:

    0 <= s.length <= 5 * 104
    s 由英文字母、数字、符号和空格组成

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    var lengthOfLongestSubstring = function(s) {

    const map = new Map();
    let ans = 0; //作为结果
    let start = 0, end = 0;

    for (end; end < s.length; end++) {
    let item = map.get(s[end])
    map.has(s[end]) ? start = Math.max(item, start) : ''; //用来改变起点
    ans = Math.max(ans, end - start + 1)
    map.set(s[end], end + 1)
    }

    return ans
    };

    T.004

    1. 两数之和

    难度简单11864

    给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

    你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

    你可以按任意顺序返回答案。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    /**
    * @param {number[]} nums
    * @param {number} target
    * @return {number[]}
    */
    var twoSum = function (nums, target) {
    const map = new Map()

    for (let i = 0; i < nums.length; i++) {
    if (map.has(target - nums[i])) {
    let list = map.get(target - nums[i])
    return [list, i]
    }
    map.set(nums[i], i)
    }
    };
    /*
    因此,我们需要一种更优秀的方法,能够快速寻找数组中是否存在目标元素。如果存在,我们需要找出它的索引。

    使用哈希表,可以将寻找 target - x 的时间复杂度降低到从 O(N)O(N) 降低到 O(1)O(1)。

    这样我们创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。*/

    T.006

    33. 搜索旋转排序数组

    难度中等1522

    整数数组 nums 按升序排列,数组中的值 互不相同

    在传递给函数之前,nums 在预先未知的某个下标 k0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]

    给你 旋转后 的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1

    T.010

    42. 接雨水

    难度困难2605

    给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

    T.011

    53. 最大子序和

    难度简单3593

    给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    /**
    * @param {number[]} nums
    * @return {number}
    */
    var maxSubArray = function (nums) {
    let maxsum = nums[0] , next=0
    nums.forEach(item => {
    next = Math.max(item, next+item)
    maxsum = Math.max(next, maxsum)
    })
    return maxsum
    };

    T.012

    88. 合并两个有序数组

    难度简单1058

    给你两个按 非递减顺序 排列的整数数组 nums1nums2,另有两个整数 mn ,分别表示 nums1nums2 中的元素数目。

    请你 合并 nums2nums1 中,使合并后的数组同样按 非递减顺序 排列。

    注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    /**
    * @param {number[]} nums1
    * @param {number} m
    * @param {number[]} nums2
    * @param {number} n
    * @return {void} Do not return anything, modify nums1 in-place instead.
    */
    var merge = function(nums1, m, nums2, n) {
    let sort = new Array(m +n).fill(0)
    let pre = 0, next = 0
    let cur
    while(pre < m || next < n){
    if(next === n){
    cur = nums1[pre]
    pre++
    }else if(pre == m){
    cur = nums2[next]
    next++
    }else if(nums1[pre] <= nums2[next]){
    cur = nums1[pre]
    pre++
    }else{
    cur = nums2[next]
    next++
    }

    sort[pre + next - 1] = cur
    }
    for(let i in sort){
    nums1[i] = sort[i]
    }
    };

    08.24

    T.016

    121. 买卖股票的最佳时机

    难度简单1799

    给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

    你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

    返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //暴力解法(不推荐)
    var maxProfit = function(prices) {
    let maxFit=0,cmax = 0
    for(let i = 0; i < prices.length; i++){

    for(let j = i; j < prices.length; j++){
    cmax = Math.max(cmax,prices[j] - prices[i])
    }
    maxFit = Math.max(cmax,maxFit)


    }
    if(maxFit > 0){
    return maxFit
    }else{
    return 0
    }

    };


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    //推荐
    /**
    * @param {number[]} prices
    * @return {number}
    */
    var maxProfit = function(prices) {
    let maxFit=0
    let minPri = Infinity //不知道最小值多大,先定义无限大
    for(let i = 0; i < prices.length; i++){
    // 寻找最小值
    if(prices[i] < minPri){
    minPri = prices[i]
    // 当前的结果大于历史的最高值,就改变当前的最大值
    }else if(prices[i] - minPri > maxFit){
    maxFit = prices[i] - minPri
    }

    }
    return maxFit
    };

    T.017

    141. 环形链表

    难度简单1177

    给定一个链表,判断链表中是否有环。

    如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos-1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。

    如果链表中存在环,则返回 true 。 否则,返回 false

    T.018

    146. LRU 缓存机制

    难度中等1572

    运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制

    实现 LRUCache 类:

    • LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存
    • int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1
    • void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。

    进阶:你是否可以在 O(1) 时间复杂度内完成这两种操作?

    T.019

    160. 相交链表

    难度简单1324

    给你两个单链表的头节点 headAheadB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null

    图示两个链表在节点 c1 开始相交

    img

    题目数据 保证 整个链式结构中不存在环。

    注意,函数返回结果后,链表必须 保持其原始结构

    T.020

    199. 二叉树的右视图

    难度中等524

    给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

    T.021

    200. 岛屿数量

    难度中等1295

    给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。

    岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。

    此外,你可以假设该网格的四条边均被水包围。

    T.034

    69. x 的平方根

    难度简单757

    实现 int sqrt(int x) 函数。

    计算并返回 x 的平方根,其中 x 是非负整数。

    由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    // X的平方根
    // 二分法
    /**
    * @param {number} x
    * @return {number}
    */
    var mySqrt = function(x) {
    // 定义上界, 下界,
    let start = 0, end = x,res;
    while(start <= end){
    let mid = ~~(start + (end-start) / 2)
    if(mid *mid <= x){
    res = mid
    start = mid +1
    }else{
    end = mid -1
    }
    }
    return res
    };

    T.035

    70. 爬楼梯

    难度简单1838

    假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

    每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

    注意:给定 n 是一个正整数。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    // 爬楼梯

    /**
    * @param {number} n
    * @return {number}
    */
    var climbStairs = function(n) {
    let p1 =0 , p2 = 0 , res =1;
    for(let i = 0 ; i < n ; i++){
    p1 = p2
    p2 = res
    res = p1 + p2
    }
    return res
    };

    climbStairs(6)

    T.036

    76. 最小覆盖子串

    难度困难1317

    给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ""

    注意:

    • 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。
    • 如果 s 中存在这样的子串,我们保证它是唯一的答案。

    T.037

    92. 反转链表 II

    难度中等1005

    给你单链表的头指针 head 和两个整数 leftright ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表

    T.038

    94. 二叉树的中序遍历

    难度简单1081

    给定一个二叉树的根节点 root ,返回它的 中序 遍历。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    /**
    * Definition for a binary tree node.
    * function TreeNode(val, left, right) {
    * this.val = (val===undefined ? 0 : val)
    * this.left = (left===undefined ? null : left)
    * this.right = (right===undefined ? null : right)
    * }
    */
    /**
    * @param {TreeNode} root
    * @return {number[]}
    */
    var inorderTraversal = function(root) {
    let res = []
    let inSort = (root) =>{
    if(!root){
    return;
    }
    inSort(root.left)
    res.push(root.val)
    inSort(root.right)
    }

    inSort(root)

    return res

    };

    T.039

    98. 验证二叉搜索树

    难度中等1194

    给定一个二叉树,判断其是否是一个有效的二叉搜索树。

    假设一个二叉搜索树具有如下特征:

    • 节点的左子树只包含小于当前节点的数。
    • 节点的右子树只包含大于当前节点的数。
    • 所有左子树和右子树自身必须也是二叉搜索树。

    T.040

    101. 对称二叉树

    难度简单1515

    给定一个二叉树,检查它是否是镜像对称的。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30

    /**
    * Definition for a binary tree node.
    * function TreeNode(val, left, right) {
    * this.val = (val===undefined ? 0 : val)
    * this.left = (left===undefined ? null : left)
    * this.right = (right===undefined ? null : right)
    * }
    */
    /**
    * @param {TreeNode} root
    * @return {boolean}
    */
    var isSymmetric = function (root) {
    if (!root) return true;

    let isMirror = (l, r) => {
    // 空子树也为镜像
    if (!l && !r) {
    return true
    }
    if (l && r && l.val == r.val && isMirror(l.left, r.right) && isMirror(l.right, r.left)) {
    return true
    }
    return false

    }

    return isMirror(root.left, root.right)
    };

    例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

    1
    2
    3
    4
    5
        1
    / \
    2 2
    / \ / \
    3 4 4 3

    T.041

    112. 路径总和

    难度简单653

    给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum

    叶子节点 是指没有子节点的节点。

    T.042

    113. 路径总和 II

    难度中等564

    给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。

    叶子节点 是指没有子节点的节点。

    ]]>
    - - - -
    - - - - - 前端加油站(长期更新) - - /2021/08/17/%E5%89%8D%E7%AB%AF%E5%8A%A0%E6%B2%B9%E7%AB%99/ - - 前端加油站

    4. 什么是同源策略,为什么会有这样的策略?本地开发时如何独立解决接口跨域的问题?

    同源策略?

    同源策略是一种安全机制,限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互,这是一个用于隔离潜在恶意文件的重要机制。(可扩展到域、cookie、iframe、postmessage等细节)

    谁受约束? Cookie , Dom , 第三方插件以及 XMLHttpRequest 都受到同源策略的约束

    Cookie:

    只有同源的网页才能共享,但是若两个页面一级域名相同,只是二级域名不同,那么浏览器可以通过设置document.domain来共享 Cookie

    XMLHttpRequest

    它受到同源策略的约束,不能跨域访问资源,但是 W3C 委员会制定了 XMLHttpRequest 跨域访问标准。 通过目标返回的 HTTP 头来授权,是否允许跨域访问。实现这一点的安全基础是 JavaScript 无法控制 HTTP 头

    为什么会有这样的策略(目的)

    为了保证用户信息的安全,防止恶意的网站窃取数据。

    本地开发时如何独立解决接口跨域的问题(解决办法)

    反向代理如 “配置nginx 与 host”、“webpack-dev-server proxy”,有理、可行即可
    还可以延伸考察候选人对跨域请求和cookie配置等相关概念的掌握: 1、xhr.withCredentials = true; // 携带跨域cookie fetch: credentials: “include” 2、服务器端使用CROS协议解决跨域访问数据问题时,需要设置响应消息头Access-Control-Allow-Credentials值为“true”。 同时,还需要设置响应消息头Access-Control-Allow-Origin值为域名或者通配符“*”

    ]]>
    - - - - - - 面试 - - - -
    - - - - - 鼠标移上去图片放大 - - /2021/03/14/html-tupianfangda/ - - 图片放大

    html文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>鼠标移上去图片放大</title>
    <link rel="stylesheet" href="css/style.css"/>
    </head>
    <body>
    <div id="image"></div>
    <script src="js/01.js"></script>
    </body>
    </html>
    ````

    ```css
    /*
    content: 鼠标移上去放大样式表
    author: weiWei
    time: 2021/03/14 13:54
    class: imation
    */


    body{
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    }
    #image{
    width: 300px;
    height: 300px;
    background-color: #000;
    background-image: url(../img/dog.jpg);
    background-size: 300px;
    background-repeat: no-repeat;
    }

    #image[index]{
    background-size: 900px 900px;
    background-position: calc(var(--x)*100%) calc(var(--y)*100%);
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    /*
    content: 鼠标移上去放大脚本
    author: weiWei
    time: 2021/03/14 13:54
    class: imation
    */

    //电脑版鼠标移动事件
    document.querySelector('#image').addEventListener('mouseenter', enterImage);//进入图片触发mouseenter

    document.querySelector('#image').addEventListener('mousemove', moveImage);//鼠标在图片游动上触发mousemove

    document.querySelector('#image').addEventListener('mouseleave', leaveImage);//离开图片触发mouseenter

    //手机触摸事件
    document.querySelector('#image').addEventListener('touchstart', enterImage);//触摸进入图片触发

    document.querySelector('#image').addEventListener('touchmove', moveImage);//在图片上触摸滑动触发

    document.querySelector('#image').addEventListener('touchend', leaveImage);//离开图片触发


    //进入图片的函数
    function enterImage(e) {
    e.target.setAttribute('index', 1);
    moveImage(e);
    }
    /*
    touch事件的event没有offsetX和offsetY
    */
    //鼠标在图片上面移动
    function moveImage(e) {
    let rect = e.target.getBoundingClientRect();

    //自己定义offsetX和offsetY
    let offsetX , offsetY ;
    if(['touchstart', 'touchmove', 'touchend'].includes(e.type)){
    offsetX = e.touches[0].pageX - rect.left;
    offsetY = e.touches[0].pageY - rect.top;
    e.preventDefault()
    }else{
    offsetX = e.offsetX;
    offsetY = e.offsetY;
    }

    let x = offsetX / rect.width; //获取图片在X轴的位移
    let y = offsetY / rect.height; //获取图片在Y轴的位移

    e.target.style.setProperty('--x', x);
    e.target.style.setProperty('--y', y);
    }

    //鼠标在离开图片以后
    function leaveImage(e) {
    e.target.removeAttribute('index',1);
    moveImage(e);
    }

    心得

    • css变量

      # 解释 - CSS 变量是由CSS作者定义的实体,其中包含要在整个文档中重复使用的特定值。使用自定义属性来设置变量名,并使用特定的 var() 来访问。(比如  color: var(--main-color);)。# 解决问题 在构建大型站点的时候,面对很多的重复使用信息,可以设定变量,重复使用 CSS变量为我们带来一些预处理器的便利,并且不需要额外的编译。并使用特定的 var() 来访问。(比如  color: var(--main-color);)。
    • 鼠标事件

      mouseenter: 鼠标进入

      mousemove: 鼠标移动

      mouseleave: 鼠标离开

      addEventListener(‘event’,’function’,useCapture)

       方法用于向指定元素添加事件句柄。

      参数:

        event: 必须。字符串,指定事件名。  function: 指定要触发的函数名称  useCapture: 可有可无,放置布尔值   可能值:        true - 事件句柄在捕获阶段执行        false- 默认。事件句柄在冒泡阶段执行

      注意: 不要使用 “on” 前缀。 例如,使用 “click” ,而不是使用 “onclick”。

    • 形式参数e

      这里的e是参数的名字。参数分为:
      1.形参:形式参数,相当于函数声明的局部变量,实参把自己的值赋给形参,形参就保存了这个值
      2.形参只能在函数内部使用。

    • 移动端 touch事件
      Touch
      Touch对象代表一个触点,可以通过 event.touches[0]获取,每个触点包含位置,大小,形状,压力大小,和目标 element属性。

    ]]>
    - - - - - - html - - - -
    - - - - - 生成自己小爱同学超级课程表 - - /2021/02/25/xiaoa/ - - 前言

    开发者

    我看过超级课程表的一键导入课表,还有我们学校的一个公众号的一键导入课表,我为此深深着迷.现在看到小爱同学的这一款,总体来说不难.
    下面请看我慢慢道来。

    开发者文档

    开发文档很重要,不要忘记了。
    https://ldtu0m3md0.feishu.cn/docs/doccnhZPl8KnswEthRXUz8ivnhb#26bux2

    我的学校代码

    我们要写的代码主要为 scheduleHtmlProvider.js 和 scheduleHtmlParser.js 这两个文件.如果你的学校是正方教务系统的话,可以在默认的基础上修改,一般不需要大改.

    Provider是用来获取html的函数,将获取到的html传给 Parser 进行数据处理,截取出对应的课程信息,再封装为规定的json格式数据返回。

    代码讲解

    以下是默认的Provider函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    function scheduleHtmlProvider(iframeContent = "", frameContent = "", dom = document) {
    //除函数名外都可编辑
    //以下为示例,您可以完全重写或在此基础上更改

    const ifrs = dom.getElementsByTagName("iframe");
    const frs = dom.getElementsByTagName("frame");

    if (ifrs.length) {
    for (let i = 0; i < ifrs.length; i++) {
    const dom = ifrs[i].contentWindow.document;
    iframeContent += scheduleHtmlProvider(iframeContent, frameContent, dom);
    }
    }
    if (frs.length) {
    for (let i = 0; i < frs.length; i++) {
    const dom = frs[i].contentDocument.body.parentElement;
    frameContent += scheduleHtmlProvider(iframeContent, frameContent, dom);
    }
    }
    if(!ifrs.length && !frs.length){
    return dom.querySelector('body').outerHTML
    }
    return dom.getElementsByTagName('html')[0].innerHTML + iframeContent+frameContent
    }

    其实我们主要去看 scheduleHtmlParser.js 这个文件,我会详细的介绍这个文件的

    (scheduleHtmlParser函数的输出须符合以下数据结构)

    参数名术语解释是否必填说明
    courseInfoArray[{},{}课程表详细信息:
    name: String 课程
    position: Sting 教室
    teacher:String 教师
    weeks:Array(非空)第几周
    day:Sring 星期几
    section:[] 第几节
    sectionTimesArray[{},{}]课时信息:
    section: Number 第几节
    startTime: String 开始时间
    endTime: String 结束时间

    我为缩短开发的时间,然后直接使用默认的,在默认的基础上修改.
    其实,Parser 对象选择和Jquery相似,主要是使用正则表达式

    我已经在里面写了注释,具体看它把,不懂可以留言

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    function scheduleHtmlParser(html) {
    /*
    Author: @Weiwei
    Version: v0.1.1
    */

    let timeJsonArray = [];
    let result = []; //放置结果的数组
    let allDom = $('#table1 .timetable_con'); //变量allDom作为选择器选择id为table1 class类为timetable_con
    for (let u = 0; u < allDom.length; u++) { //for循环遍历allDom
    let re = {
    sections: [],
    weeks: []
    }
    let aaa = $(allDom[u]).find('span')
    let week = $(allDom[u]).parent('td')[0].attribs.id //获取当前第几周
    if (week) {
    re.day = week.split('-')[0] //获取当前是周几,分词然后获取第一个内容
    }
    for (let i = 0; i < aaa.length; i++) {
    // 获取上课地点
    if (aaa[i].attribs.title == '上课地点') {

    for (let j = 0; j < $(aaa[i]).next()[0].children.length; j++) {
    re.position = $(aaa[i]).next()[0].children[j].data
    }
    }
    //获取有多少周课
    if (aaa[i].attribs.title == '节/周') {

    for (let j = 0; j < $(aaa[i]).next()[0].children.length; j++) {

    let lesson = $(aaa[i]).next()[0].children[j].data
    // console.log("lesson为"+lesson)
    for (let a = Number(lesson.split(')')[0].split('(')[1].split('-')[0]); a < Number(lesson.split(')')[0].split('(')[1].split('-')[1].split('节')[0]) + 1; a++) {
    // console.log("a1为"+a)
    re.sections.push({
    section: a
    })
    }


    //一个学期上上课的周数
    if (lesson.length == 20) {

    for (let a = Number(lesson.split(')')[1].split('-')[0]); a < Number(lesson.split(')')[2].split('-')[1].split('周')[0]) + 1; a++) {

    re.weeks.push(a)
    }

    } else if (lesson.length == 15) {

    for (let a = Number(lesson.split(')')[1].split('-')[0]); a < Number(lesson.split(')')[1].split('-')[1].split('周')[0]) + 1; a++) {

    let evenNum = a;
    if (evenNum % 2 == 0) {
    re.weeks.push(evenNum)
    }

    }

    } else {

    for (let a = Number(lesson.split(')')[1].split('-')[0]); a < Number(lesson.split(')')[1].split('-')[1].split('周')[0]) + 1; a++) {

    re.weeks.push(a)
    }
    }


    }
    }
    //获取授课教师姓名
    if (aaa[i].attribs.title == '教师') {

    for (let j = 0; j < $(aaa[i]).next()[0].children.length; j++) {
    re.teacher = $(aaa[i]).next()[0].children[j].data
    }
    }

    if (aaa[i].attribs.class == 'title') {

    for (let j = 0; j < $(aaa[i]).children()[0].children.length; j++) {
    re.name = $(aaa[i]).children()[0].children[j].data

    }
    }

    }
    result.push(re)
    }




    // 上课时间

    var classTime = [
    { "section": 1, "startTime": "08:00", "endTime": "08:50" },
    { "section": 2, "startTime": "09:00", "endTime": "09:50" },
    { "section": 3, "startTime": "10:15", "endTime": "11:05" },
    { "section": 4, "startTime": "11:25", "endTime": "12:15" },
    { "section": 5, "startTime": "14:00", "endTime": "14:50" },
    { "section": 6, "startTime": "15:00", "endTime": "15:50" },
    { "section": 7, "startTime": "16:00", "endTime": "16:50" },
    { "section": 8, "startTime": "17:00", "endTime": "17:50" },
    { "section": 9, "startTime": "18:30", "endTime": "20:20" },
    { "section": 10, "startTime": "20:30", "endTime": "21:20" },
    ]


    console.log(result)
    console.log(classTime)
    return {
    courseInfos: result,
    sectionTimes: classTime
    }





    }


    ]]>
    - - - - - - js - - - -
    - - - - - 时光轴 - - /2021/01/29/timeLine/ - - 简易的时光轴练习

    相关知识

    这个简易的时光轴的实现,使用了html和css.元素主要有时间,图片,文字.

    list-style

    定义和用法

    list-style 简写属性在一个声明中设置所有的列表属性。

    说明

    该属性是一个简写属性,涵盖了所有其他列表样式属性。由于它应用到所有 display 为 list-item 的元素,所以在普通的 HTML 和 XHTML 中只能用于 li 元素,不过实际上它可以应用到任何元素,并由 list-item 元素继承。

    可以按顺序设置如下属性:

    1
    2
    3
    list-style-type
    list-style-position
    list-style-image

    可以不设置其中的某个值,比如 “list-style:circle inside;” 也是允许的。未设置的属性会使用其默认值。
    |默认值:|disc outside none|
    |—-|—-|
    |继承性:|yes|
    |版本:|CSS1|
    |JavaScript 语法:|object.style.listStyle=”decimal inside”|


    描述
    list-style-type设置列表项标记的类型。
    list-style-position设置在何处放置列表项标记。
    list-style-image使用图像来替换列表项的标记
    inherit规定应该从父元素继承 list-style 属性的值。

    transform属性

    属性定义及使用说明
    Transform属性应用于元素的2D或3D转换。这个属性允许你将元素旋转,缩放,移动,倾斜等。
    |默认值:|none|
    |—-|—-|
    |继承:|no|
    |版本:|CSS3|
    |JavaScript 语法:|object.style.transform=”rotate(7deg)”|

    语法

    1
    transform: none|transform-functions;
    描述
    none定义不进行转换。
    matrix(n,n,n,n,n,n)定义 2D 转换,使用六个值的矩阵。
    matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n)定义 3D 转换,使用 16 个值的 4x4 矩阵。
    translate(x,y)定义 2D 转换。
    translate3d(x,y,z)定义 3D 转换。
    translateX(x)定义转换,只是用 X 轴的值
    translateY(y)定义转换,只是用 Y 轴的值。
    translateZ(z)定义 3D 转换,只是用 Z 轴的值。
    scale(x[,y]?)定义 2D 缩放转换。
    scale3d(x,y,z)定义 3D 缩放转换。
    scaleX(x)通过设置 X 轴的值来定义缩放转换
    scaleY(y)通过设置 Y 轴的值来定义缩放转换。
    rotate(angle)定义 2D 旋转,在参数中规定角度
    还有很多,点击查看

    transition

    属性定义及使用说明

    transition 属性设置元素当过渡效果,四个简写属性为:

    1
    2
    3
    4
    transition-property
    transition-duration
    transition-timing-function
    transition-delay

    注意: 始终指定transition-duration属性,否则持续时间为0,transition不会有任何效果。
    |默认值|all 0 ease 0|
    |—-|—-|
    |继承:| no|
    |版本:| CSS3|
    |JavaScript 语法:|object.style.transition=”width 2s”|

    描述
    transition-property指定CSS属性的name,transition效果
    transition-durationtransition效果需要指定多少秒或毫秒才能完成
    transition-timing-function指定transition效果的转速曲线
    transition-delay定义transition效果开始的时候

    代码展示

    html

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <!DOCTYPE html>
    <html lang="en">

    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="css/style.css">
    <title>时光轴效果</title>
    </head>

    <body>
    <ul>
    <li>
    <span>2021年1月28日21:11:41</span>
    <div class="content">
    <div class="content-img">
    <img src="img/01.jpg" alt="羽习">
    </div>
    <div class="content-words">
    不见你,恍如三秋啊!
    </div>
    </div>
    </li>
    <li>
    <span>2021年1月28日21:11:51</span>
    <div class="content">
    <div class="content-img">
    <img src="img/02.jpg" alt="羽习">
    </div>
    <div class="content-words">
    对你有时候甚是思念
    </div>
    </div>
    </li>
    <li>
    <span>2021年1月28日21:11:56</span>
    <div class="content">
    <div class="content-img">
    <img src="img/03.jpg" alt="羽习">
    </div>
    <div class="content-words">
    有时候就是想想就好,没有想过我的结果,就是做出这一步
    </div>
    </div>
    </li>
    </ul>
    </body>

    </html>

    css

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    *{
    margin: 0;
    padding: 0;
    }

    ul{
    list-style: none;
    }

    ul{
    max-width: 600px;
    margin: 100px auto;
    border: 1px solid #ddd;
    position: relative;
    padding-left:20px ;
    }
    ul::before{
    content: '';
    width: 5px;
    position: absolute;
    top: 0;
    bottom: 0;
    background-color: #00ffff;
    left: 0;
    }
    ul li{
    margin-bottom: 20px;
    position: relative;
    }

    ul li::before{
    content: '';
    width: 20px;
    height: 20px;
    background-color: #00ffff ;
    position: absolute;
    border-radius: 50%;
    left: -28px;
    box-shadow: 0 0 6px;
    }
    ul li span {
    color: gray;
    }

    ul li .content{
    padding-top: 20px ;
    }

    ul li .content-img{
    overflow: hidden;
    }

    ul li .content-img img{
    width: 100px;
    transition: transform 0.4s;
    }

    ul li .content-img img:hover{
    transform: scale(1.1);
    }
    ul li .content .content-words{
    text-align: justify;
    font-size: 18px;
    padding-top: 18px;
    line-height: 1.6;
    transition: transform 0.4s;
    }
    ul li .content .content-words:hover{
    transform:translateX(10px);
    color: gray;
    }
    ]]>
    - - - - - - css|html - - - -
    - - - - - tab的实现 - - /2021/01/27/tabs/ - - tab实现的方法

    下面的代码的注释中已经描述的十分清楚。
    主要就是css+js的方法实现点击就切换的方法.

    setAttibute函数:

    定义和用法

    setAttribute() 方法添加指定的属性,并为其赋指定的值。如果这个指定的属性已存在,则仅设置/更改值。setAttribute(string name, string value):增加一个指定名称和值的新属性,或者把一个现有的属性设定为指定的值。

    语法:

    1
    element.setAttribute(attributename,attributevalue)

    参数

    参数类型描述
    attributenamestring必需。您希望添加的属性的名称。
    attributevalueString必需。您希望添加的属性值。

    例子:

    1
    2
    3
    4
    var input = document.createElement("input");
    input.setAttribute("type", "text");
    input.setAttribute("name", "q");
    input.setAttribute("class",bordercss);
    1
    <input type="text" name="q" class="bordercss">,即,input控件具有bordercss样式属性

    getAttribute()函数

    定义和用法

    getAttribute() 方法返回指定属性名的属性值。提示:如果您希望以 Attr 对象返回属性,请使getAttributeNode。--------------------------------------------------------getAttribute()方法是一个函数。它只有一个参数——你打算查询的属性的名字,下面为大家介绍下其具体的使用

    语法

    1
    element.getAttribute(attributename)

    参数

    参数类型描述
    attributename字符串值。必需。需要获得属性值的属性名称。

    返回值

    类型描述
    String指定属性的值。

    注意

    不过,getAttribute()方法不能通过document对象调用,这与我们此前介绍过的其他方法不同。我们只能通过一个元素节点对象调用它。

    可以把它与getElementsByTagName()方法结合起来,去查询每个<p>元素的title属性

    例子

    1
    2
    3
    4
    5
    var text=document.getElementsByTagName("p");
    for (var i=0;i<text.length;i++)
    {
    alert(text[i].getAttribute("title"));
    }

    代码展示

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <!DOCTYPE html>
    <html>

    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="css/style.css">
    <title>手风琴</title>
    </head>

    <body>
    <div class="tabs">
    <div class="nav-tab">
    <span class="dis">张羽习</span>
    <span>李一桐</span>
    <span>冷檬</span>

    </div>
    <div class="content">
    <ul>
    <li class="info">张羽习</li>
    <li>李一桐</li>
    <li>冷檬</li>
    </ul>
    </div>
    </div>
    <script>
    var spanlist = document.querySelectorAll('span');
    var lis = document.querySelectorAll('li');
    for (var i =0 ; i < spanlist.length; i++) {
    //添加自定义属性
    spanlist[i].setAttribute('index', i);
    //获取span点击事件
    spanlist[i].onclick= function() {
    console.log(spanlist)
    //获取自定义属性,然后遍历数组
    var index = this.getAttribute('index');
    //遍历lis这个数组,然后再用if进行判断是不是这个
    for (var l = 0; l < lis.length; l++) {
    //通过if来判定 两个伪数组的下标是否相同,如果相同就改变属性 ---(style.display 和 classroom的值)
    if (index == l) {
    //注意是==
    //如果index下标和j的下标一样的就执行代码
    spanlist[l].className = 'dis';
    lis[l].style.display = 'block';
    } else {// if 和else需要写完整以后才能执行
    spanlist[l].className = '';
    lis[l].style.display = 'none';
    }
    }
    }

    }
    </script>
    </body>

    </html>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    *{
    margin: 0;
    padding: 0;
    }

    .tabs .nav-tab{
    width: 300px;
    height: 40px;
    background: #e5e6e5;
    }
    .tabs .nav-tab span{
    width: 100px;
    padding: 10px;
    position: relative;
    top: 10px;
    }
    .tabs .nav-tab span:hover{
    background: #bcbdbd;
    }
    .content {
    width: 300px;
    background: black;
    }
    .content ul li {
    margin: 5px;
    padding: 10px;
    color: #fff;
    display: none;
    }
    .content .info{
    display: block;
    }
    ]]>
    - - - - - - css|js - - - -
    - - - - - 正则表达式 - - /2021/01/22/Rep/ - - 正则表达式学习

    例子

    1
    2
    3
    4
    5
    6
    7
    ^[0-9]+abs$

    - ^ 为匹配输入字符串的开始位置。

    - [0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。

    - abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。
    1
    2
    3
    ^[a-z0-9_-]{3,15}$
    - [a-z0-9_-]表示字母(a-z)数字(0-9)还有加上下划线连字符
    - {3,15}表示3-15个字符
    字符描述
    [ABC]匹配 […] 中的所有字符,例如 [aeiou] 匹配字符串 “google runoob taobao” 中所有的 e o u a 字母。
    [^ABC]匹配除了 […] 中字符的所有字符,例如 [^aeiou] 匹配字符串 “google runoob taobao” 中除了 e o u a 字母的所有字母。
    [A-Z]表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。
    .匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]。
    [\s\S]匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,包括换行。
    \w匹配字母、数字、下划线。等价于 [A-Za-z0-9_]

    特殊字符

    所谓特殊字符,就是一些有特殊含义的字符,如上面说的 runoob 中的 ,简单的说就是表示任何字符串的意思。如果要查找字符串中的 * 符号,则需要对 * 进行转义,即在其前加一个 : runo\ob 匹配 runoob。

    许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符”转义”,即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符:

    特殊字符描述
    $匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。要匹配 $ 字符本身,请使用 $。
    ( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
    *匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
    +匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
    .匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。
    [标记一个中括号表达式的开始。要匹配 [,请使用 [。
    ?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。
    \将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。’\n’ 匹配换行符。序列 ‘\‘ 匹配 “",而 ‘(‘ 则匹配 “(“。
    ^匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 ^。
    {标记限定符表达式的开始。要匹配 {,请使用 {。

    限定符

    限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。

    正则表达式的限定符有:

    字符描述
    *匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。
    +匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
    ?匹配前面的子表达式零次或一次。例如,”do(es)?” 可以匹配 “do” 、 “does” 中的 “does” 、 “doxy” 中的 “do” 。? 等价于 {0,1}。
    {n}n 是一个非负整数。匹配确定的 n 次。例如,’o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
    {n,}n 是一个非负整数。至少匹配n 次。例如,’o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。’o{1,}’ 等价于 ‘o+’。’o{0,}’ 则等价于 ‘o*’。
    {n,m}m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,”o{1,3}” 将匹配 “fooooood” 中的前三个 o。’o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格。

    以下正则表达式匹配一个正整数,[1-9]设置第一个数字不是 0,[0-9]* 表示任意多个数字:

    1
    /[1-9][0-9]*/
    ]]>
    - - - - - - 正则表达式 - - - -
    - - - - - 网页设计/css - - /2020/08/02/web2/ - -

    响应式网页设计原则:创建媒体查询

    媒体查询是CSS3中引入的一项新技术,可根据不同的视口大小更改内容的表示形式。视口是用户在网页上的可见区域,视用于访问站点的设备而异。

    媒体查询由一种媒体类型组成,如果该媒体类型与显示文档的设备类型匹配,则将应用样式。您可以在媒体查询中根据需要选择任意多个选择器和样式。

    以下是媒体查询的示例,该查询在设备的宽度小于或等于100px时返回内容:

    1
    @media (max-width: 100px) { /* CSS Rules */ }

    当设备的高度大于或等于350px时,以下媒体查询将返回内容:

    1
    @media (min-height: 350px) { /* CSS Rules */ }

    ** 请记住,仅当媒体类型与所使用设备的媒体类型匹配时,才会应用媒体查询中的CSS。**

    例子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <style>
    p {
    font-size: 20px;
    }

    /* Only change code below this line */
    @media (max-height: 800px) {
    p {
    font-size: 10px;
    }
    }

    /* CSS Rules */
    /* Only change code above this line */
    </style>

    自适应网页设计原则:使图像具有响应性

    使用CSS使图像具有响应性实际上非常简单。您只需要向图像添加以下属性:

    1
    2
    3
    4
    img {
    max-width: 100%;
    height: auto;
    }

    max-width的100%将确保图像不会比它在容器更宽,而height中auto将会使图像保持其原始宽高比。

    例子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <style>
    .responsive-img {


    }

    img {
    max-width: 100%;
    height:auto;
    }
    </style>

    响应式Web设计原则:使用视网膜图像进行高分辨率显示

    随着互联网连接设备的增加,它们的尺寸和规格也有所不同,并且它们使用的显示器在内部和外部可能会有所不同。像素密度是一个设备上可能与其他设备不同的方面,这种密度称为“像素每英寸(PPI)”或“每英寸点数(DPI)”。最著名的显示器就是最新的Apple MacBook Pro笔记本电脑和最近的iMac电脑上的“视网膜显示器”。由于“视网膜”和“非视网膜”显示器之间的像素密度不同,因此某些未考虑高分辨率显示器的图像在高分辨率显示器上渲染时可能看起来“像素化”。

    使图像正确显示在高分辨率显示器(例如MacBook Pro“视网膜显示器”)上的最简单方法是将其width和height值定义为原始文件的一半。这是仅使用原始高度和宽度一半的图像的示例:

    1
    2
    3
    4
    <style>
    img { height: 250px; width: 250px; }
    </style>
    <img src="coolPic500x500" alt="A most excellent picture">

    响应式网页设计原则:使版式具有响应性

    您可以使用视口单位进行响应式排版,而不必使用文本em或不px调整文本大小。视口单位(如百分比)是相对单位,但它们基于不同的项目。视口单位是相对于设备的视口尺寸(宽度或高度),而百分比是相对于父容器元素的大小。

    四个不同的视口单位是:

    vw(视口宽度):10vw将为视口宽度的10%。
    vh(视口高度):3vh将为视口高度的3%。
    vmin(最小视口):70vmin将是视口较小尺寸(高度或宽度)的70%。
    vmax(最大视口):100vmax将是视口较大尺寸(高度或宽度)的100%。
    这是一个将body标签设置为视口宽度的30%的示例。

    1
    2
    body { width: 30vw; }

    CSS Flexbox:使用显示:flex定位两个框

    本节使用交替的质询样式来说明如何使用CSS灵活地放置元素。首先,挑战将解释理论,然后使用简单的tweet组件进行实际挑战将应用flexbox概念。

    将CSS属性display: flex;放在元素上可让您使用其他flex属性来构建响应页面。

    CSS Flexbox:在Tweet嵌入中添加Flex超级功能

    右侧是将用作实际示例的推特嵌入。在不同布局下,某些元素看起来会更好。最后的挑战证明了display: flex。在这里,您将把它添加到嵌入的推文中的几个组件中,以开始调整其位置。

    Quincy Larson's profile picture

    Quincy Larson

    @ossia

    I meet so many people who are in search of that one trick that will help them work smart. Even if you work smart, you still have to work hard.

    1:32 PM - 12 Jan 2018
    107 Retweets

    CSS Flexbox:使用flex-direction属性创建一行

    添加display: flex到元素会将其变成flex容器。这样就可以将该元素的所有子元素对齐到行或列中。通过将flex-direction属性添加到父项并将其设置为行或列来执行此操作。创建一行将使子代水平对齐,创建一列将使子代垂直对齐。

    其他选项为flex-direction行反向和列反向。

    注意:该flex-direction属性的默认值为row。

    ]]>
    - - - - - - 响应式设计 - - - -
    - - - - -
    diff --git a/message/index.html b/message/index.html deleted file mode 100644 index e1bc08d..0000000 --- a/message/index.html +++ /dev/null @@ -1,344 +0,0 @@ - - - - - - - - - - - - - - - - - - - - page.title - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    来而不往非礼也
    畅所欲言,有留必应

    - - - -
    - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/page/2/index.html b/page/2/index.html deleted file mode 100644 index 77425be..0000000 --- a/page/2/index.html +++ /dev/null @@ -1,545 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - - -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/posts/embed/index.html b/posts/embed/index.html new file mode 100644 index 0000000..79298ba --- /dev/null +++ b/posts/embed/index.html @@ -0,0 +1,150 @@ + 在文章中嵌入视频和代码 - 满河星 + + + +

    在文章中嵌入视频和代码

    24 年 4 月 4 日 星期四 (已编辑)
    2 字
    1 分钟

    Codepen

    +
    md
    ::codepen{#gOyLepE author="lxchapu"}
    +
    + +

    YouTube

    +
    md
    ::youtube{#BuKft9LpL_0}
    +
    + +

    Bilibili

    +
    md
    ::bilibili{#BV1Mx4y1Y7pJ}
    +
    +

    文章标题:在文章中嵌入视频和代码

    文章作者:leewei

    文章链接:https://leewei0923.com/posts/embed[复制]

    最后修改时间:


    + + + +

    商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
    本文采用CC BY-NC-SA 4.0进行许可。

    \ No newline at end of file diff --git a/posts/guide/index.html b/posts/guide/index.html new file mode 100644 index 0000000..d421a29 --- /dev/null +++ b/posts/guide/index.html @@ -0,0 +1,242 @@ + Gyoza 使用指南 - 满河星 + + + +

    Gyoza 使用指南

    24 年 4 月 1 日 星期一 (已编辑)
    650 字
    4 分钟

    前置条件

    +
      +
    • node 版本 >= 18.18.0
    • +
    • pnpm 版本 > 8.1.0
    • +
    +

    安装

    +

    克隆仓库

    +

    登录 Github 账号,打开 lxchapu/astro-gyoza,点击右上角的 Fork 按钮,将仓库克隆到你自己的账号下。

    +

    复制这个仓库的地址,打开终端,使用 git clone 命令将仓库克隆到本地。

    +
    +

    本项目推荐使用 pnpm 作为你的包管理器,如果你还没有安装 pnpm,请先安装 pnpm。

    +
    +

    安装依赖

    +
    sh
    cd astro-gyoza
    +pnpm install
    +
    +

    命令介绍

    +

    本地运行

    +
    sh
    pnpm dev
    +
    +

    打包静态文件

    +
    sh
    pnpm build
    +
    +

    本地预览

    +
    sh
    pnpm preview
    +
    +

    配置项

    +

    本项目中的绝大部分配置都定义在 src/config.json 文件中。

    +

    你应该首先将 site.url 修改成自己的域名,避免导航错误。

    +

    以下是配置项的说明:

    +
    json
    {
    +  "site": {
    +    "url": "", // 网站地址
    +    "title": "", // 网站标题
    +    "description": "", // 通用的网站描述 SEO
    +    "keywords": "", // 通用的网站关键词 SEO
    +    "lang": "zh-CN", // 网站的语言
    +    "favicon": "", // 浏览器图标,存放在 public 目录下
    +    "appleTouchIcon": "" // 苹果设备图标,存放在 public 目录下
    +  },
    +  "author": {
    +    "name": "", // 作者名称
    +    "twitterId": "", // 推特账号 ID,以 @ 开头,用于 Open Graph
    +    "avatar": "" // 作者头像地址
    +  },
    +  // 首页 Hero 组件
    +  "hero": {
    +    "name": "", // 显示的名称
    +    "bio": "", // 一句话介绍
    +    "description": "", // 补充描述
    +    // 社交账号
    +    "socials": [
    +      {
    +        "name": "", // 社交平台类型
    +        "icon": "", // 社交平台图标
    +        "url": "", // 链接
    +        "color": "" // 图标颜色
    +      }
    +    ],
    +    "yiyan": "" // 显示一言
    +  },
    +  "color": {
    +    // 强调色,每次随机从中取出一组
    +    "accent": [{ "light": "", "dark": "" }]
    +  },
    +  // 顶部导航栏
    +  "menus": [
    +    {
    +      "name": "首页",
    +      "link": "/",
    +      "icon": "icon-pantone"
    +    }
    +  ],
    +  "posts": {
    +    "perPage": 10 // 每一页显示的文章数量
    +  },
    +  "footer": {
    +    "startTime": "" // 博客网站开始时间 请使用 ISO 格式
    +  },
    +  // doc search 搜索功能,请前往 https://docsearch.algolia.com/apply/ 申请
    +  "docSearch": {
    +    "appId": "",
    +    "apiKey": "",
    +    "indexName": ""
    +  },
    +  // waline 评论系统,前往 https://waline.js.org/ 查看
    +  "waline": {
    +    "serverURL": ""
    +  },
    +  // 赞助
    +  "sponsor": {
    +    "wechat": "" // 微信赞赏码图片地址
    +  }
    +}
    +
    +

    部署

    +
    +

    这里只介绍了 Vercel,你当然可以选择其他平台例如:Cloudflare Pages 或你自己的服务器。
    +部署之前,确保你已经修改 site.url

    +
    +

    部署到 Vercel

    +

    登录 Vercel 账号,点击右上角的 Add new... 选择 Project。然后在 Import Git Repository 中选择刚刚 Fork 的仓库,点击 Import 按钮。

    +

    进入项目配置页面,直接点击 Deploy 按钮,静静等待部署完成就 👌 了。

    +

    Vercel 会为你分配一个域名,你可以在项目设置中设置自定义域名,更多操作请参考 Vercel 文档。

    文章标题:Gyoza 使用指南

    文章作者:leewei

    文章链接:https://leewei0923.com/posts/guide[复制]

    最后修改时间:


    + + + +

    商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
    本文采用CC BY-NC-SA 4.0进行许可。

    \ No newline at end of file diff --git a/posts/how-to-use-icons/index.html b/posts/how-to-use-icons/index.html new file mode 100644 index 0000000..549da1d --- /dev/null +++ b/posts/how-to-use-icons/index.html @@ -0,0 +1,165 @@ + 如何在 Gyoza 中使用图标? - 满河星 + + + +

    如何在 Gyoza 中使用图标?

    24 年 5 月 8 日 星期三
    672 字
    4 分钟

    Gyoza 选择 font-class 的方式引用图标。这些图标大部分来源于 Remix Icons,并且在 iconfont 上进行管理和导出。

    +

    下图展示了项目中的所有图标:

    +
    所有图标
    +

    当你在添加首页显示的社交账号时,你可能会想要使用这些图标。在对应的配置项中填写图标下面有 icon- 前缀的名称即可。

    +

    如果是在组件中使用图标,可以按照如下方式:

    +
    jsx
    <i className="iconfont icon-xxx"></i>
    +
    +

    为什么不是 SVG 图标?

    +

    你可能看到很多的项目在使用 iconify。iconify 是一个开源图标集,包含超过 20 万个图标,提供了多种框架的引入方式。Astro 中也有对应的插件 astro-icon 可以使用(如果对此感兴趣,可以查看他们的文档)。

    +

    我在项目中也尝试使用过 iconify,但是出于以下几个原因,我最终还是转向了 font-class 的方式:

    +
      +
    • 由于项目中同时使用了 Astro 和 React,而在 Astro 组件和 React 组件中使用 iconify 图标的方式是不同的,这会导致代码中不得不存在两种使用方式。
    • +
    • iconify 在加载时需要请求它的服务器,我会担心请求失败,虽然这种担心是多余的。
    • +
    • 有一个功能是我会在渲染文章时往 markdown 中注入一些图标,例如外部链接尾部的图标,iconify 想要做到这一点并不方便。
    • +
    • 在 HTML 中直接嵌入 SVG icon 的方式并不优雅,使用 font-class 只需要对应的类名,感觉相较而言最终的 HTML 体积小一点,页面加载会快点。我还没有做过具体的测试,但是至少我会尽量避免页面中出现大量的 SVG 仅仅只是作为图标使用。
    • +
    • 该项目中用到的图标并不多,主要是一些常用的社交账号的图标,供自定义联系方式时使用。我希望所有图标集中在一起管理,这样更方便一点。
    • +
    +

    我必须要承认,目前的图标方案并不优雅,每当图标集合发生修改时我都需要更新对应的字体文件和 CSS 文件。而且其他人想要管理图标集合也变得困难。

    +

    也许我会在未来尝试其他方式,例如 @iconify/tailwind,如果你有更好的方案,也欢迎给我留言。

    +

    自定义图标

    +

    如果你想要替换 iconfont 的图标,请修改以下文件:

    +
    text
    public/fonts/iconfont.ttf
    +public/fonts/iconfont.woff
    +public/fonts/iconfont.woff2
    +src/styles/iconfont.css
    +
    +

    注意,这将会替换掉项目中使用的所有图标,所以请确保你知道自己在做什么。

    文章标题:如何在 Gyoza 中使用图标?

    文章作者:leewei

    文章链接:https://leewei0923.com/posts/how-to-use-icons[复制]

    最后修改时间:


    + + + +

    商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
    本文采用CC BY-NC-SA 4.0进行许可。

    \ No newline at end of file diff --git a/posts/markdown/index.html b/posts/markdown/index.html new file mode 100644 index 0000000..299d3aa --- /dev/null +++ b/posts/markdown/index.html @@ -0,0 +1,362 @@ + Markdown 示例 - 满河星 + + + +

    Markdown 示例

    24 年 4 月 1 日 星期一
    785 字
    4 分钟

    下面是在 Astro 中编写 Markdown 内容时,可以使用的一些基本 Markdown 语法示例。

    +

    标题

    +

    你应该避免在 Markdown 正文中重复创建文章标题,因为文章标题会根据 frontmattertitle 自动生成。

    +
    +

    避免标题层级过深,一般到三级标题就够了。

    +
    +

    一级

    +

    二级

    +

    三级 inline code

    +

    四级

    +
    五级
    +
    六级
    +

    段落

    +

    Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.

    +

    使用行尾使用两个空格进行段落内的换行

    +

    All work and no play makes Jack a dull boy.
    +All work and no play makes Jack a dull boy.

    +

    图片

    +

    小尺寸的图片

    +
    图片描述
    +

    大尺寸的图片

    +
    图片描述
    +

    带标题的图片

    +
    图片描述
    图片标题
    +

    强调

    +

    这是重要内容,这是次要内容

    +

    删除线

    +

    这是一段被删除的文本。

    +

    引用

    +

    The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations.

    +
    +

    Tiam, ad mint andaepu dandae nostion secatur sequo quae.
    +Note that you can use Markdown syntax within a blockquote.

    +
    +

    嵌套的引用

    +
    +

    引用

    +
    +

    嵌套的引用

    +
    +
    +

    带脚标的引用

    +
    +

    Don't communicate by sharing memory, share memory by communicating.
    +— Rob Pike1

    +
    +

    分割线

    +
    +

    链接

    +

    这是内部链接 Gyoza 使用指南

    +

    这是外部连接 React 中文文档

    +

    自动渲染成连接 https://github.com

    +

    邮箱地址 mail@example.com

    +

    表格

    +

    设置单元格对齐

    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    NameAgeFruit
    Bob27Apple
    Alice23Banana
    John28Orange
    +

    支持行内 Markdown

    +
    + + + + + + + + + + + + + + +
    ItalicsBoldCode
    italicsboldcode
    +

    表格溢出

    +
    + + + + + + + + + + + + + + + + + + + + +
    ABCDEF
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.Phasellus ultricies, sapien non euismod aliquam, dui ligula tincidunt odio, at accumsan nulla sapien eget ex.Proin eleifend dictum ipsum, non euismod ipsum pulvinar et. Vivamus sollicitudin, quam in pulvinar aliquam, metus elit pretium purusProin sit amet velit nec enim imperdiet vehicula.Ut bibendum vestibulum quam, eu egestas turpis gravida necSed scelerisque nec turpis vel viverra. Vivamus vitae pretium sapien
    +

    代码块

    +

    Syntax

    +

    we can use 3 backticks ``` in new line and write snippet and close with 3 backticks on new line and to highlight language specific syntac, write one word of language name after first 3 backticks, for eg. html, javascript, css, markdown, typescript, txt, bash

    +
    html
    <!doctype html>
    +<html lang="en">
    +  <head>
    +    <meta charset="utf-8" />
    +    <title>Example HTML5 Document</title>
    +  </head>
    +  <body>
    +    <p>Test</p>
    +  </body>
    +</html>
    +
    +
    text
    const var text = "hello world"
    +
    +

    KaTeX 公式

    +

    使用 $ 符号包裹公式生成行内公式,例如:E=mc2E = mc^2

    +

    使用 $$ 符号包裹公式来生成独立公式。例如:

    +eiπ+1=0e^{i\pi} + 1 = 0 +

    也可以使用代码块(```math)的方式:

    +VEdA=Qϵ0\oint_{\partial V} \mathbf{E} \cdot d\mathbf{A} = \frac{Q}{\epsilon_0} + +

    List Types

    +

    Ordered List

    +

    Syntax

    +
    markdown
    1. First item
    +2. Second item
    +3. Third item
    +
    +

    Output

    +
      +
    1. First item
    2. +
    3. Second item
    4. +
    5. Third item
    6. +
    +

    Unordered List

    +

    Syntax

    +
    markdown
    - List item
    +- Another item
    +- And another item
    +
    +

    Output

    +
      +
    • List item
    • +
    • Another item
    • +
    • And another item
    • +
    +

    Nested list

    +

    Syntax

    +
    markdown
    - Fruit
    +  - Apple
    +  - Orange
    +  - Banana
    +- Dairy
    +  - Milk
    +  - Cheese
    +
    +

    Output

    +
      +
    • Fruit +
        +
      • Apple
      • +
      • Orange
      • +
      • Banana
      • +
      +
    • +
    • Dairy +
        +
      • Milk
      • +
      • Cheese
      • +
      +
    • +
    +

    Other Elements — abbr, sub, sup, kbd, mark

    +

    Syntax

    +
    markdown
    <abbr title="Graphics Interchange Format">GIF</abbr> is a bitmap image format.
    +
    +H<sub>2</sub>O
    +
    +X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
    +
    +Press <kbd><kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd></kbd> to end the session.
    +
    +Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures.
    +
    +

    Output

    +

    GIF is a bitmap image format.

    +

    H2O

    +

    Xn + Yn = Zn

    +

    Press CTRL+ALT+Delete to end the session.

    +

    Most salamanders are nocturnal, and hunt for insects, worms, and other small creatures.

    +

    Spoiler

    +
    md
    ||hide content||
    +
    +

    正常情况下,该内容会隐藏 hide content,鼠标悬浮时才会显示。

    +

    参考

    +
      +
    1. +

      The above quote is excerpted from Rob Pike's talk during Gopherfest, November 18, 2015.

      +
    2. +
    +

    文章标题:Markdown 示例

    文章作者:leewei

    文章链接:https://leewei0923.com/posts/markdown[复制]

    最后修改时间:


    + + + +

    商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
    本文采用CC BY-NC-SA 4.0进行许可。

    \ No newline at end of file diff --git a/projects/index.html b/projects/index.html new file mode 100644 index 0000000..3e4a5df --- /dev/null +++ b/projects/index.html @@ -0,0 +1,12 @@ + 项目 - 满河星 + + + +

    项目

    这些是我创建或参与的项目,如果你感兴趣不妨去给个 Star。

    \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..b33a666 --- /dev/null +++ b/robots.txt @@ -0,0 +1,7 @@ +User-agent: * +Allow: / + +Disallow: /_astro/ +Disallow: /fonts/ + +Sitemap: https://leewei0923.com/sitemap-index.xml \ No newline at end of file diff --git a/rss.xml b/rss.xml new file mode 100644 index 0000000..7cc85cb --- /dev/null +++ b/rss.xml @@ -0,0 +1 @@ +满河星leewei的个人博客以及技术博客https://leewei0923.com/zh-CNGyoza 使用指南https://leewei0923.com/posts/guide/https://leewei0923.com/posts/guide/欢迎使用 Gyoza,Gyoza 是一款 Astro 博客主题,它保持简洁和可爱的风格。本篇文章将会介绍如何使用并部署 Gyoza。Mon, 01 Apr 2024 00:00:00 GMT如何在 Gyoza 中使用图标?https://leewei0923.com/posts/how-to-use-icons/https://leewei0923.com/posts/how-to-use-icons/Wed, 08 May 2024 10:54:27 GMT在文章中嵌入视频和代码https://leewei0923.com/posts/embed/https://leewei0923.com/posts/embed/这篇文章介绍了如何在文章中嵌入视频和代码。Thu, 04 Apr 2024 00:00:00 GMTMarkdown 示例https://leewei0923.com/posts/markdown/https://leewei0923.com/posts/markdown/这是一篇 Markdown 文章的示例。展示了 Markdown 的语法和渲染效果。Mon, 01 Apr 2024 00:00:00 GMT \ No newline at end of file diff --git a/self-talking/index.html b/self-talking/index.html deleted file mode 100644 index e5e9681..0000000 --- a/self-talking/index.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - - - - - - - - - - - - - - page.title - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    碎碎念

    - -

    tips:github登录后按时间正序查看、可点赞加❤️、本插件地址..+99次查看」

    -
    碎碎念加载中,请稍等...
    - - - - -
    - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sitemap-0.xml b/sitemap-0.xml new file mode 100644 index 0000000..f20501e --- /dev/null +++ b/sitemap-0.xml @@ -0,0 +1 @@ +https://leewei0923.com/https://leewei0923.com/about/https://leewei0923.com/archives/https://leewei0923.com/categories/%E4%BE%8B%E5%AD%90/https://leewei0923.com/categories/%E6%95%99%E7%A8%8B/https://leewei0923.com/friends/https://leewei0923.com/posts/embed/https://leewei0923.com/posts/guide/https://leewei0923.com/posts/how-to-use-icons/https://leewei0923.com/posts/markdown/https://leewei0923.com/projects/https://leewei0923.com/tags/https://leewei0923.com/tags/astro/https://leewei0923.com/tags/gyoza/https://leewei0923.com/tags/icon/https://leewei0923.com/tags/markdown/https://leewei0923.com/tags/video/ \ No newline at end of file diff --git a/sitemap-index.xml b/sitemap-index.xml new file mode 100644 index 0000000..09a17b3 --- /dev/null +++ b/sitemap-index.xml @@ -0,0 +1 @@ +https://leewei0923.com/sitemap-0.xml \ No newline at end of file diff --git a/tags/C/index.html b/tags/C/index.html deleted file mode 100644 index 94316e8..0000000 --- a/tags/C/index.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 标签 - C++ - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 2 篇文章

    -
    - - - - -

    2021

    - - - C++数据结构 - - - - - - C++日记 - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/React/index.html b/tags/React/index.html deleted file mode 100644 index 794e8e3..0000000 --- a/tags/React/index.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 标签 - React - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 1 篇文章

    -
    - - - - -

    2021

    - - - React的生命周期 - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/astro/index.html b/tags/astro/index.html new file mode 100644 index 0000000..1cc922c --- /dev/null +++ b/tags/astro/index.html @@ -0,0 +1,12 @@ + 标签 · Astro - 满河星 + + +

    +标签:Astro

    共有 1 篇文章。

    \ No newline at end of file diff --git a/tags/css-html/index.html b/tags/css-html/index.html deleted file mode 100644 index 1af9d2c..0000000 --- a/tags/css-html/index.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 标签 - css|html - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 1 篇文章

    -
    - - - - -

    2021

    - - - 时光轴 - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/css-js/index.html b/tags/css-js/index.html deleted file mode 100644 index 6494b08..0000000 --- a/tags/css-js/index.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 标签 - css|js - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 1 篇文章

    -
    - - - - -

    2021

    - - - tab的实现 - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/gyoza/index.html b/tags/gyoza/index.html new file mode 100644 index 0000000..d0605c8 --- /dev/null +++ b/tags/gyoza/index.html @@ -0,0 +1,12 @@ + 标签 · Gyoza - 满河星 + + +

    +标签:Gyoza

    共有 1 篇文章。

    \ No newline at end of file diff --git a/tags/html/index.html b/tags/html/index.html deleted file mode 100644 index e443755..0000000 --- a/tags/html/index.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 标签 - html - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 1 篇文章

    -
    - - - - -

    2021

    - - - 鼠标移上去图片放大 - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/icon/index.html b/tags/icon/index.html new file mode 100644 index 0000000..76badc3 --- /dev/null +++ b/tags/icon/index.html @@ -0,0 +1,12 @@ + 标签 · Icon - 满河星 + + +

    +标签:Icon

    共有 1 篇文章。

    \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 4ebd679..2a8f87c 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1,329 +1,11 @@ - - - - - - - - - - - - - - - - - - - - 标签 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - - - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 标签 - 满河星 + + +

    标签云

    共有 5 个标签。

    \ No newline at end of file diff --git a/tags/javascript/index.html b/tags/javascript/index.html deleted file mode 100644 index b6f3053..0000000 --- a/tags/javascript/index.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 标签 - javascript - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 2 篇文章

    -
    - - - - -

    2021

    - - - js数据结构 - - - - - - js再看 - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/js/index.html b/tags/js/index.html deleted file mode 100644 index 3e09c0d..0000000 --- a/tags/js/index.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 标签 - js - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 1 篇文章

    -
    - - - - -

    2021

    - - - 生成自己小爱同学超级课程表 - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tags/markdown/index.html b/tags/markdown/index.html new file mode 100644 index 0000000..6279e8b --- /dev/null +++ b/tags/markdown/index.html @@ -0,0 +1,12 @@ + 标签 · Markdown - 满河星 + + +

    +标签:Markdown

    共有 2 篇文章。

    \ No newline at end of file diff --git a/tags/video/index.html b/tags/video/index.html new file mode 100644 index 0000000..59558ff --- /dev/null +++ b/tags/video/index.html @@ -0,0 +1,12 @@ + 标签 · Video - 满河星 + + +

    +标签:Video

    共有 1 篇文章。

    \ No newline at end of file diff --git "a/tags/\345\223\215\345\272\224\345\274\217\350\256\276\350\256\241/index.html" "b/tags/\345\223\215\345\272\224\345\274\217\350\256\276\350\256\241/index.html" deleted file mode 100644 index 4e92377..0000000 --- "a/tags/\345\223\215\345\272\224\345\274\217\350\256\276\350\256\241/index.html" +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 标签 - 响应式设计 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 1 篇文章

    -
    - - - - -

    2020

    - - - 网页设计/css - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217/index.html" "b/tags/\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217/index.html" deleted file mode 100644 index 93bda86..0000000 --- "a/tags/\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217/index.html" +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 标签 - 正则表达式 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 1 篇文章

    -
    - - - - -

    2021

    - - - 正则表达式 - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/tags/\351\235\242\350\257\225/index.html" "b/tags/\351\235\242\350\257\225/index.html" deleted file mode 100644 index 627a946..0000000 --- "a/tags/\351\235\242\350\257\225/index.html" +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 标签 - 面试 - 云边的鸟 - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - -
    - -
    -
    - -
    -
    -
    - - -
    -

    共计 1 篇文章

    -
    - - - - -

    2021

    - - - 前端加油站(长期更新) - - - -
    - - - - - -
    -
    -
    -
    -
    - - - - - - - - - - - - - -
    -
    - 爱做梦的人,努力奔跑中... -
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/xml/local-search.xml b/xml/local-search.xml deleted file mode 100644 index d7d0c01..0000000 --- a/xml/local-search.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - {% if posts %} - {% for post in posts.toArray() %} - {% if post.indexing == undefined or post.indexing %} - - {{ post.title }} - - {{ [url, post.path] | urlJoin | uriencode }} - {% if content %} - - {% endif %} - {% if post.categories and post.categories.length>0 %} - - {% for cate in post.categories.toArray() %} - {{ cate.name }} - {% endfor %} - - {% endif %} - {% if post.tags and post.tags.length>0 %} - - {% for tag in post.tags.toArray() %} - {{ tag.name }} - {% endfor %} - - {% endif %} - - {% endif %} - {% endfor %} - {% endif %} - {% if pages %} - {% for page in pages.toArray() %} - {% if post.indexing == undefined or post.indexing %} - - {{ page.title }} - - {{ [url, post.path] | urlJoin | uriencode }} - {% if content %} - - {% endif %} - - {% endif %} - {% endfor %} - {% endif %} -