diff --git a/css/index.css b/css/index.css index ea2d59f..e6280c7 100644 --- a/css/index.css +++ b/css/index.css @@ -2,6 +2,7 @@ padding: 0; margin: 0; box-sizing: border-box; + scroll-behavior: smooth; } .admission-officer { min-height: 100vh; @@ -51,12 +52,13 @@ transform: translateX(-50%); width: 1920px; height: 91px; + z-index: 1; } .admission-officer .admission-head .admission-head-gray::after { content: ""; position: absolute; top: 0; - right: 0; + right: 1px; height: 91px; width: calc((100vw - 1920px) / 2); background-color: #f6f6f6; @@ -66,7 +68,7 @@ content: ""; position: absolute; top: 0; - left: 0; + left: 1px; height: 91px; width: calc((100vw - 1920px) / 2); background-color: #f6f6f6; @@ -97,7 +99,7 @@ .admission-officer .admission-body .interview-box { width: 100%; height: 435px; - margin: 0 auto; + margin: 0 auto 22px; position: relative; z-index: 1; } @@ -112,6 +114,7 @@ .admission-officer .admission-body .interview-box .left { padding-top: 14px; padding-left: 20px; + margin-right: 20px; } .admission-officer .admission-body .interview-box .left .head { margin-bottom: 11px; @@ -151,6 +154,7 @@ width: 100%; background: linear-gradient(to bottom, rgba(0, 0, 0, 0.047) 0%, #000000 100%); padding: 17px 22px 13px; + transition: all 0.3s; } .admission-officer .admission-body .interview-box .left .content .bottom .title { font-weight: 650; @@ -165,3 +169,516 @@ color: #ffffff; font-family: "PingFangSC-Regular", "PingFang SC", sans-serif; } +.admission-officer .admission-body .interview-box .focus-box { + width: 552px; + height: 293px; + background-color: #fbfbfb; + border-radius: 10px; + margin-top: 115px; + position: relative; +} +.admission-officer .admission-body .interview-box .focus-box .ok { + width: 101px; + height: 127px; + position: absolute; + top: -122px; + right: 45px; + z-index: -1; +} +.admission-officer .admission-body .interview-box .focus-box .head { + width: 100%; + height: 36px; + background-color: #dceed5; + border-radius: 10px 10px 0 0; +} +.admission-officer .admission-body .interview-box .focus-box .head .arrows { + width: 24px; + height: 24px; +} +.admission-officer .admission-body .interview-box .focus-box .head .name { + width: 79px; + height: 27px; + margin: 0 31px; +} +.admission-officer .admission-body .interview-box .focus-box .content { + height: 257px; +} +.admission-officer .admission-body .interview-box .focus-box .content .info { + border-right: 1px solid #ebebeb; + width: 193px; + padding: 25px 24px; +} +.admission-officer .admission-body .interview-box .focus-box .content .info .label { + position: relative; + z-index: 1; + width: 72px; + height: 21px; + font-weight: 650; + font-style: normal; + font-size: 15px; + color: #ffffff; + margin-bottom: 20px; +} +.admission-officer .admission-body .interview-box .focus-box .content .info .label .icon { + position: absolute; + z-index: -1; + width: 72px; + height: 21px; +} +.admission-officer .admission-body .interview-box .focus-box .content .info .name { + font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif; + font-weight: 650; + font-style: normal; + font-size: 20px; + color: #000000; + margin-bottom: 11px; +} +.admission-officer .admission-body .interview-box .focus-box .content .info .name .professional { + font-size: 14px; + color: #555555; + display: flex; + align-items: flex-end; + font-weight: 400; + margin-left: 6px; +} +.admission-officer .admission-body .interview-box .focus-box .content .info .subheading { + font-size: 14px; + color: #555555; + margin-bottom: 11px; +} +.admission-officer .admission-body .interview-box .focus-box .content .introduce-box { + flex-direction: column; + justify-content: space-between; + padding-bottom: 20px; + padding-top: 13px; +} +.admission-officer .admission-body .interview-box .focus-box .content .introduce-box .introduce-list { + padding-left: 49px; +} +.admission-officer .admission-body .interview-box .focus-box .content .introduce-box .introduce-list .introduce-item { + width: 291px; + font-size: 14px; + line-height: 33px; + color: #333333; + padding: 10px 0; + position: relative; +} +.admission-officer .admission-body .interview-box .focus-box .content .introduce-box .introduce-list .introduce-item::after { + content: ""; + width: 6px; + height: 6px; + background-color: #000000; + border-radius: 50%; + position: absolute; + top: 24px; + left: -16px; +} +.admission-officer .admission-body .interview-box .focus-box .content .introduce-box .introduce-list .introduce-item:not(:last-child) { + border-bottom: 1px dotted #d7d7d7; +} +.admission-officer .admission-body .interview-box .focus-box .content .introduce-box .play-btn { + width: 126px; + height: 34px; + background-color: #d35110; + border-radius: 86px; + font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif; + font-weight: 650; + font-style: normal; + font-size: 16px; + color: #ffffff; + margin-left: auto; +} +.admission-officer .admission-body .interview-box .focus-box .content .introduce-box .play-btn .icon { + width: 20px; + height: 20px; + margin-left: 6px; +} +.admission-officer .admission-body .interview-more { + margin-bottom: 102px; +} +.admission-officer .admission-body .interview-more .case { + width: 139px; + height: 200px; + background-color: #76c45e; + border-radius: 10px; + flex-direction: column; + margin-right: 10px; +} +.admission-officer .admission-body .interview-more .case .name { + font-weight: 650; + font-style: normal; + font-size: 20px; + color: #ffffff; + margin-bottom: 9px; +} +.admission-officer .admission-body .interview-more .case .english { + font-size: 14px; + color: #ffffff; + text-align: center; +} +.admission-officer .admission-body .interview-more .swiper-box { + position: relative; +} +.admission-officer .admission-body .interview-more .swiper-box .btn { + width: 40px; + height: 40px; + background-color: rgba(255, 255, 255, 0.8); + position: absolute; + top: 50%; + transform: translateY(-50%); + z-index: 1; + border-radius: 50%; + cursor: pointer; + user-select: none; +} +.admission-officer .admission-body .interview-more .swiper-box .btn.left { + left: 10px; +} +.admission-officer .admission-body .interview-more .swiper-box .btn.right { + right: 10px; + transform: translateY(-50%) rotate(180deg); +} +.admission-officer .admission-body .interview-more .swiper-box .btn .arrows { + width: 13px; + height: 20px; +} +.admission-officer .admission-body .interview-more .swiper-box .swiper { + width: 1052px; + overflow: hidden; +} +.admission-officer .admission-body .interview-more .swiper-box .swiper .swiper-item { + width: 356px; + height: 200px; + position: relative; + border-radius: 10px; +} +.admission-officer .admission-body .interview-more .swiper-box .swiper .swiper-item:not(:last-child) { + margin-right: 10px; +} +.admission-officer .admission-body .interview-more .swiper-box .swiper .swiper-item .img { + width: 356px; + height: 200px; +} +.admission-officer .admission-body .interview-more .swiper-box .swiper .swiper-item .bottom { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + background: linear-gradient(to bottom, rgba(0, 0, 0, 0.047) 0%, #000000 100%); + padding: 17px 22px 13px; + border-radius: 0 0 10px 10px; +} +.admission-officer .admission-body .interview-more .swiper-box .swiper .swiper-item .bottom .title { + font-weight: 650; + font-style: normal; + font-size: 16px; + color: #ffffff; + font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif; + margin-bottom: 5px; +} +.admission-officer .admission-body .interview-more .swiper-box .swiper .swiper-item .bottom .subtitle { + font-size: 13px; + color: #ffffff; + font-family: "PingFangSC-Regular", "PingFang SC", sans-serif; +} +.admission-officer .admission-body .school-list { + margin-bottom: 90px; +} +.admission-officer .admission-body .school-list .school-item:not(:last-child) { + margin-bottom: 102px; +} +.admission-officer .admission-body .school-list .school-item .left { + position: relative; + margin-right: 45px; + z-index: 2; +} +.admission-officer .admission-body .school-list .school-item .left .abbreviation { + width: 100px; + height: 32px; + line-height: 32px; + background-color: #7d2882; + border-radius: 86px; + font-family: "Arial-Black", "Arial Black", sans-serif; + font-weight: 900; + font-style: normal; + color: #ffffff; + font-size: 13px; + display: inline-flex; + position: absolute; + top: 0; + left: 0; + z-index: 2; + text-align: center; +} +.admission-officer .admission-body .school-list .school-item .left .icon { + width: 130px; + height: 62px; + position: absolute; + top: 0; + left: 0; + z-index: 1; +} +.admission-officer .admission-body .school-list .school-item .right { + width: 651px; +} +.admission-officer .admission-body .school-list .school-item .right .info { + padding-bottom: 24px; + border-bottom: 1px dotted #d7d7d7; +} +.admission-officer .admission-body .school-list .school-item .right .info .img { + width: 60px; + height: 47px; + margin-right: 10px; +} +.admission-officer .admission-body .school-list .school-item .right .info .name { + font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif; + font-weight: 650; + font-style: normal; + font-size: 20px; + color: #000000; + margin-bottom: 6px; +} +.admission-officer .admission-body .school-list .school-item .right .info .english { + color: #555555; + font-size: 13px; + font-family: "ArialMT", "Arial", sans-serif; +} +.admission-officer .admission-body .school-list .school-item .right .introduce { + font-size: 14px; + color: #555555; + padding-top: 19px; + padding-bottom: 24px; +} +.admission-officer .admission-body .school-list .school-item .right .content { + padding-top: 27px; + padding-right: 20px; + padding-bottom: 31px; + position: relative; + z-index: 1; +} +.admission-officer .admission-body .school-list .school-item .right .content::after { + content: ""; + width: 1051px; + height: 100%; + background: -webkit-linear-gradient(0deg, #d6e5e5 0%, #f6f2ea 100%); + background: -moz-linear-gradient(90deg, #d6e5e5 0%, #f6f2ea 100%); + background: linear-gradient(90deg, #d6e5e5 0%, #f6f2ea 100%); + border-radius: 20px; + display: block; + position: absolute; + top: 0; + right: 0; + z-index: -1; +} +.admission-officer .admission-body .school-list .school-item .right .content .year { + margin-bottom: 24px; +} +.admission-officer .admission-body .school-list .school-item .right .content .year .item { + width: 100px; + height: 28px; + line-height: 28px; + position: relative; + font-size: 14px; + color: #333333; + text-align: center; + z-index: 1; + cursor: pointer; +} +.admission-officer .admission-body .school-list .school-item .right .content .year .item .svg { + width: 100px; + height: 28px; + position: absolute; + top: 0; + left: 0; + z-index: -1; +} +.admission-officer .admission-body .school-list .school-item .right .content .year .item.pitch { + color: #ffffff; + font-weight: 650; +} +.admission-officer .admission-body .school-list .school-item .right .content .year .item.pitch .svg { + fill: #7d2882; +} +.admission-officer .admission-body .school-list .school-item .right .content .year .item .arrows { + transform: translateY(-50%); + width: 9px; + height: 5px; + margin-left: 5px; + vertical-align: middle; +} +.admission-officer .admission-body .school-list .school-item .right .content .year .item:hover .more-box { + display: block; +} +.admission-officer .admission-body .school-list .school-item .right .content .year .item .more-box { + display: none; + border-radius: 7px; + background: #fff; + position: absolute; + width: 100%; + top: 32px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.118); +} +.admission-officer .admission-body .school-list .school-item .right .content .year .item .more-box::after { + content: ""; + width: 100%; + height: 10px; + display: block; + top: 0; + position: absolute; + transform: translateY(-100%); + z-index: -1; +} +.admission-officer .admission-body .school-list .school-item .right .content .year .item .more-box .more-item { + height: 32px; + line-height: 32px; +} +.admission-officer .admission-body .school-list .school-item .right .content .year .item .more-box .more-item:hover { + text-decoration: underline; +} +.admission-officer .admission-body .school-list .school-item .right .content .year .item .more-box .more-item:not(:last-child) { + border-bottom: 1px dotted #d7d7d7; +} +.admission-officer .admission-body .school-list .school-item .right .content .course-list .item { + padding: 12px 10px 10px 20px; + background-color: #ffffff; + border-radius: 10px; +} +.admission-officer .admission-body .school-list .school-item .right .content .course-list .item:not(:last-child) { + margin-bottom: 10px; +} +.admission-officer .admission-body .school-list .school-item .right .content .course-list .item .icon { + width: 28px; + height: 28px; + background-color: #f3f4f8; + border-radius: 50%; + margin-right: 10px; +} +.admission-officer .admission-body .school-list .school-item .right .content .course-list .item .icon .img { + width: 20px; + height: 20px; +} +.admission-officer .admission-body .school-list .school-item .right .content .course-list .item .name { + font-size: 16px; + color: #333333; + margin-bottom: 8px; +} +.admission-officer .admission-body .school-list .school-item .right .content .course-list .item .name .label { + width: 120px; + height: 26px; + line-height: 26px; + background-color: #3c7de9; + border-radius: 3px; + position: relative; + color: #ffffff; + font-size: 13px; + font-family: "ArialMT", "Arial", sans-serif; + padding: 0 6px; + margin-left: 12px; +} +.admission-officer .admission-body .school-list .school-item .right .content .course-list .item .name .label .arrows { + position: absolute; + width: 9px; + height: 16px; + top: 50%; + transform: translateY(-50%) rotate(180deg); + left: -4px; +} +.admission-officer .admission-body .school-list .school-item .right .content .course-list .item .bottom { + justify-content: space-between; +} +.admission-officer .admission-body .school-list .school-item .right .content .course-list .item .bottom .time { + font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif; + font-weight: 650; + font-style: normal; + font-size: 14px; + color: #000000; +} +.admission-officer .admission-body .school-list .school-item .right .content .course-list .item .bottom .btn { + width: 100px; + height: 32px; + line-height: 32px; + background-color: #7d2882; + border-radius: 86px; + font-family: "PingFangSC-Regular", "PingFang SC", sans-serif; + font-weight: 400; + font-style: normal; + font-size: 14px; + color: #ffffff; + cursor: pointer; +} +.admission-officer .admission-body .school-list .school-item .right .content .course-list .item .bottom .btn .arrows { + width: 12px; + height: 12px; + margin-left: 7px; +} +.admission-officer .admission-body .retrospect { + padding-bottom: 108px; +} +.admission-officer .admission-body .retrospect .more-icon { + width: 112px; + height: 40px; + margin-bottom: 30px; +} +.admission-officer .admission-body .retrospect .list { + flex-wrap: wrap; +} +.admission-officer .admission-body .retrospect .list .item { + width: 392px; + height: 180px; + border-radius: 15px; + background: linear-gradient(90deg, #d6e5e5 0%, rgba(246, 242, 234, 0.988) 100%); + align-items: flex-start; + padding: 20px; + margin-bottom: 12px; + margin-right: 12px; +} +.admission-officer .admission-body .retrospect .list .item:nth-child(3n) { + margin-right: 0; +} +.admission-officer .admission-body .retrospect .list .item .img { + width: 47px; + margin-right: 10px; +} +.admission-officer .admission-body .retrospect .list .item .right .name { + font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif; + font-weight: 650; + font-style: normal; + font-size: 20px; + color: #000000; + margin-bottom: 2px; +} +.admission-officer .admission-body .retrospect .list .item .right .english { + color: #555555; + font-size: 13px; + margin-bottom: 22px; +} +.admission-officer .admission-body .retrospect .list .item .right .year { + flex-wrap: wrap; +} +.admission-officer .admission-body .retrospect .list .item .right .year .year-item { + width: 80px; + height: 24px; + line-height: 24px; + position: relative; + font-size: 14px; + color: #333333; + text-align: center; + z-index: 1; + cursor: pointer; + margin-bottom: 10px; +} +.admission-officer .admission-body .retrospect .list .item .right .year .year-item .svg { + width: 80px; + height: 24px; + position: absolute; + top: 0; + left: 0; + z-index: -1; +} +.admission-officer .admission-body .retrospect .list .item .right .year .year-item .arrows { + transform: translateY(-50%); + width: 9px; + height: 5px; + margin-left: 5px; + vertical-align: middle; +} diff --git a/css/index.less b/css/index.less index 79a1974..a01bccb 100644 --- a/css/index.less +++ b/css/index.less @@ -2,6 +2,7 @@ padding: 0; margin: 0; box-sizing: border-box; + scroll-behavior: smooth; } .admission-officer { min-height: 100vh; @@ -56,12 +57,13 @@ transform: translateX(-50%); width: 1920px; height: 91px; + z-index: 1; &::after { content: ""; position: absolute; top: 0; - right: 0; + right: 1px; height: 91px; width: calc((100vw - 1920px) / 2); background-color: #f6f6f6; @@ -72,7 +74,7 @@ content: ""; position: absolute; top: 0; - left: 0; + left: 1px; height: 91px; width: calc((100vw - 1920px) / 2); background-color: #f6f6f6; @@ -107,9 +109,10 @@ .interview-box { width: 100%; height: 435px; - margin: 0 auto; + margin: 0 auto 22px; position: relative; z-index: 1; + .bj { width: 100%; height: 435px; @@ -122,6 +125,8 @@ .left { padding-top: 14px; padding-left: 20px; + margin-right: 20px; + .head { margin-bottom: 11px; .icon { @@ -160,6 +165,8 @@ width: 100%; background: linear-gradient(to bottom, rgba(0, 0, 0, 0.047) 0%, rgba(0, 0, 0, 1) 100%); padding: 17px 22px 13px; + transition: all 0.3s; + .title { font-weight: 650; font-style: normal; @@ -177,6 +184,582 @@ } } } + + .focus-box { + width: 552px; + height: 293px; + background-color: rgba(251, 251, 251, 1); + border-radius: 10px; + margin-top: 115px; + position: relative; + .ok { + width: 101px; + height: 127px; + position: absolute; + top: -122px; + right: 45px; + z-index: -1; + } + + .head { + width: 100%; + height: 36px; + background-color: rgba(220, 238, 213, 1); + border-radius: 10px 10px 0 0; + + .arrows { + width: 24px; + height: 24px; + } + + .name { + width: 79px; + height: 27px; + margin: 0 31px; + } + } + + .content { + height: 257px; + .info { + border-right: 1px solid #ebebeb; + width: 193px; + padding: 25px 24px; + + .label { + position: relative; + z-index: 1; + width: 72px; + height: 21px; + font-weight: 650; + font-style: normal; + font-size: 15px; + color: #ffffff; + margin-bottom: 20px; + + .icon { + position: absolute; + z-index: -1; + width: 72px; + height: 21px; + } + } + + .name { + font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif; + font-weight: 650; + font-style: normal; + font-size: 20px; + color: #000000; + margin-bottom: 11px; + + .professional { + font-size: 14px; + color: #555555; + display: flex; + align-items: flex-end; + font-weight: 400; + margin-left: 6px; + } + } + + .subheading { + font-size: 14px; + color: #555555; + margin-bottom: 11px; + } + } + .introduce-box { + flex-direction: column; + justify-content: space-between; + padding-bottom: 20px; + padding-top: 13px; + + .introduce-list { + padding-left: 49px; + .introduce-item { + width: 291px; + font-size: 14px; + line-height: 33px; + color: #333333; + padding: 10px 0; + position: relative; + &::after { + content: ""; + width: 6px; + height: 6px; + background-color: #000000; + border-radius: 50%; + position: absolute; + top: 24px; + left: -16px; + } + &:not(:last-child) { + border-bottom: 1px dotted #d7d7d7; + } + } + } + + .play-btn { + width: 126px; + height: 34px; + background-color: rgba(211, 81, 16, 1); + border-radius: 86px; + font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif; + font-weight: 650; + font-style: normal; + font-size: 16px; + color: #ffffff; + margin-left: auto; + .icon { + width: 20px; + height: 20px; + margin-left: 6px; + } + } + } + } + } + } + + .interview-more { + margin-bottom: 102px; + + .case { + width: 139px; + height: 200px; + background-color: rgba(118, 196, 94, 1); + border-radius: 10px; + flex-direction: column; + margin-right: 10px; + + .name { + font-weight: 650; + font-style: normal; + font-size: 20px; + color: #ffffff; + margin-bottom: 9px; + } + + .english { + font-size: 14px; + color: #ffffff; + text-align: center; + } + } + + .swiper-box { + position: relative; + .btn { + width: 40px; + height: 40px; + background-color: rgba(255, 255, 255, 0.8); + position: absolute; + top: 50%; + transform: translateY(-50%); + z-index: 1; + border-radius: 50%; + cursor: pointer; + user-select: none; + + &.left { + left: 10px; + } + + &.right { + right: 10px; + transform: translateY(-50%) rotate(180deg); + } + + .arrows { + width: 13px; + height: 20px; + } + } + + .swiper { + width: 1052px; + overflow: hidden; + + .swiper-item { + width: 356px; + height: 200px; + position: relative; + border-radius: 10px; + // overflow-x: auto; + &:not(:last-child) { + margin-right: 10px; + } + + .img { + width: 356px; + height: 200px; + } + + .bottom { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + background: linear-gradient(to bottom, rgba(0, 0, 0, 0.047) 0%, rgba(0, 0, 0, 1) 100%); + padding: 17px 22px 13px; + border-radius: 0 0 10px 10px; + .title { + font-weight: 650; + font-style: normal; + font-size: 16px; + color: #ffffff; + font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif; + margin-bottom: 5px; + } + + .subtitle { + font-size: 13px; + color: #ffffff; + font-family: "PingFangSC-Regular", "PingFang SC", sans-serif; + } + } + } + } + } + } + + .school-list { + margin-bottom: 90px; + .school-item { + &:not(:last-child) { + margin-bottom: 102px; + } + .left { + position: relative; + margin-right: 45px; + z-index: 2; + .abbreviation { + width: 100px; + height: 32px; + line-height: 32px; + background-color: rgba(125, 40, 130, 1); + border-radius: 86px; + font-family: "Arial-Black", "Arial Black", sans-serif; + font-weight: 900; + font-style: normal; + color: #ffffff; + font-size: 13px; + display: inline-flex; + position: absolute; + top: 0; + left: 0; + z-index: 2; + text-align: center; + } + + .icon { + width: 130px; + height: 62px; + position: absolute; + top: 0; + left: 0; + z-index: 1; + } + } + .right { + width: 651px; + .info { + padding-bottom: 24px; + border-bottom: 1px dotted #d7d7d7; + .img { + width: 60px; + height: 47px; + margin-right: 10px; + } + + .name { + font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif; + font-weight: 650; + font-style: normal; + font-size: 20px; + color: #000000; + margin-bottom: 6px; + } + + .english { + color: #555555; + font-size: 13px; + font-family: "ArialMT", "Arial", sans-serif; + } + } + + .introduce { + font-size: 14px; + color: #555555; + padding-top: 19px; + padding-bottom: 24px; + } + + .content { + padding-top: 27px; + padding-right: 20px; + padding-bottom: 31px; + position: relative; + z-index: 1; + &::after { + content: ""; + width: 1051px; + height: 100%; + background: -webkit-linear-gradient(0deg, rgba(214, 229, 229, 1) 0%, rgba(246, 242, 234, 1) 100%); + background: -moz-linear-gradient(90deg, rgba(214, 229, 229, 1) 0%, rgba(246, 242, 234, 1) 100%); + background: linear-gradient(90deg, rgba(214, 229, 229, 1) 0%, rgba(246, 242, 234, 1) 100%); + border-radius: 20px; + display: block; + position: absolute; + top: 0; + right: 0; + z-index: -1; + } + + .year { + margin-bottom: 24px; + .item { + width: 100px; + height: 28px; + line-height: 28px; + position: relative; + font-size: 14px; + color: #333333; + text-align: center; + z-index: 1; + cursor: pointer; + .svg { + width: 100px; + height: 28px; + position: absolute; + top: 0; + left: 0; + z-index: -1; + } + + &.pitch { + color: #ffffff; + font-weight: 650; + .svg { + fill: #7d2882; + } + } + + .arrows { + transform: translateY(-50%); + width: 9px; + height: 5px; + margin-left: 5px; + vertical-align: middle; + } + + &:hover { + .more-box { + display: block; + } + } + + .more-box { + display: none; + border-radius: 7px; + background: #fff; + position: absolute; + width: 100%; + top: 32px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.118); + &::after { + content: ""; + width: 100%; + height: 10px; + display: block; + top: 0; + position: absolute; + transform: translateY(-100%); + z-index: -1; + } + .more-item { + height: 32px; + line-height: 32px; + + &:hover { + text-decoration: underline; + } + + &:not(:last-child) { + border-bottom: 1px dotted #d7d7d7; + } + } + } + } + } + + .course-list { + .item { + padding: 12px 10px 10px 20px; + background-color: #ffffff; + border-radius: 10px; + + &:not(:last-child) { + margin-bottom: 10px; + } + + .icon { + width: 28px; + height: 28px; + background-color: #f3f4f8; + border-radius: 50%; + margin-right: 10px; + .img { + width: 20px; + height: 20px; + } + } + + .name { + font-size: 16px; + color: #333333; + margin-bottom: 8px; + .label { + width: 120px; + height: 26px; + line-height: 26px; + background-color: rgba(60, 125, 233, 1); + border-radius: 3px; + position: relative; + color: #ffffff; + font-size: 13px; + font-family: "ArialMT", "Arial", sans-serif; + padding: 0 6px; + margin-left: 12px; + + .arrows { + position: absolute; + width: 9px; + height: 16px; + top: 50%; + transform: translateY(-50%) rotate(180deg); + left: -4px; + } + } + } + + .bottom { + justify-content: space-between; + .time { + font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif; + font-weight: 650; + font-style: normal; + font-size: 14px; + color: #000000; + } + .btn { + width: 100px; + height: 32px; + line-height: 32px; + background-color: rgba(125, 40, 130, 1); + border-radius: 86px; + font-family: "PingFangSC-Regular", "PingFang SC", sans-serif; + font-weight: 400; + font-style: normal; + font-size: 14px; + color: #ffffff; + cursor: pointer; + + .arrows { + width: 12px; + height: 12px; + margin-left: 7px; + } + } + } + } + } + } + } + } + } + + .retrospect { + padding-bottom: 108px; + + .more-icon { + width: 112px; + height: 40px; + margin-bottom: 30px; + } + + .list { + flex-wrap: wrap; + .item { + width: 392px; + height: 180px; + border-radius: 15px; + background: linear-gradient(90deg, #d6e5e5 0%, rgba(246, 242, 234, 0.988) 100%); + align-items: flex-start; + padding: 20px; + margin-bottom: 12px; + + margin-right: 12px; + + &:nth-child(3n) { + margin-right: 0; + } + + .img { + width: 47px; + margin-right: 10px; + } + + .right { + .name { + font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif; + font-weight: 650; + font-style: normal; + font-size: 20px; + color: #000000; + margin-bottom: 2px; + } + + .english { + color: #555555; + font-size: 13px; + margin-bottom: 22px; + } + + .year { + flex-wrap: wrap; + .year-item { + width: 80px; + height: 24px; + line-height: 24px; + position: relative; + font-size: 14px; + color: #333333; + text-align: center; + z-index: 1; + cursor: pointer; + margin-bottom: 10px; + .svg { + width: 80px; + height: 24px; + position: absolute; + top: 0; + left: 0; + z-index: -1; + } + .arrows { + transform: translateY(-50%); + width: 9px; + height: 5px; + margin-left: 5px; + vertical-align: middle; + } + } + } + } + } + } } } } diff --git a/img/arrows-black.svg b/img/arrows-black.svg new file mode 100644 index 0000000..2c6e27c --- /dev/null +++ b/img/arrows-black.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/img/arrows-circle-white.svg b/img/arrows-circle-white.svg new file mode 100644 index 0000000..1e41cdd --- /dev/null +++ b/img/arrows-circle-white.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/img/arrows-three-black.png b/img/arrows-three-black.png new file mode 100644 index 0000000..c6338e6 Binary files /dev/null and b/img/arrows-three-black.png differ diff --git a/img/arrows-triangle-black.svg b/img/arrows-triangle-black.svg new file mode 100644 index 0000000..69bf8fd --- /dev/null +++ b/img/arrows-triangle-black.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/img/arrows-triangle-blue.svg b/img/arrows-triangle-blue.svg new file mode 100644 index 0000000..5fb6504 --- /dev/null +++ b/img/arrows-triangle-blue.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/img/course-icon.png b/img/course-icon.png new file mode 100644 index 0000000..d78104b Binary files /dev/null and b/img/course-icon.png differ diff --git a/img/focus-name.png b/img/focus-name.png new file mode 100644 index 0000000..8024347 Binary files /dev/null and b/img/focus-name.png differ diff --git a/img/malformation-icon.svg b/img/malformation-icon.svg new file mode 100644 index 0000000..f2c9c3c --- /dev/null +++ b/img/malformation-icon.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/img/more-name.png b/img/more-name.png new file mode 100644 index 0000000..e080be3 Binary files /dev/null and b/img/more-name.png differ diff --git a/img/ok.png b/img/ok.png new file mode 100644 index 0000000..48c791f Binary files /dev/null and b/img/ok.png differ diff --git a/img/quadrangle-blue.svg b/img/quadrangle-blue.svg new file mode 100644 index 0000000..89e348a --- /dev/null +++ b/img/quadrangle-blue.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/img/time-icon.png b/img/time-icon.png new file mode 100644 index 0000000..e2d891e Binary files /dev/null and b/img/time-icon.png differ diff --git a/index.html b/index.html index f7052fd..138fa44 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ -
+
@@ -17,7 +17,7 @@
-
+
@@ -25,17 +25,282 @@
- - -
+ + +
大标题大标题
副标题副标题,副标题副标题副标题
-
+
+ +
+ + + +
+
+
+
+ + 招生官 +
+
+ 施林佟 +
副教授
+
+
香港中文大学(深圳)
+
数据科学学院助理院长
+
+
+
+
数据科学学院助理院长
+
数据科学学院助理院长
+
数据科学学院助理院长
+
+
+ 立即播放 + +
+
+
+
+
+
+
+
更多访谈
+
More interviews
+
+
+
+ +
+
+ +
+
+
+ +
+
大标题大标题
+
副标题副标题,副标题副标题副标题
+
+
+
+
+
+
+
+
+
CUHK
+ + +
+
+
+ +
+
香港中文大学
+
The Chinese University of Hong Kong
+
+
+ +
香港中文大学成立于1963年,是香港第二所成立的大学,亦是香港八所受政府香港大学教育资助委员会资助并可颁授学位的高等教育院校之一。中大是由新亚书院(1949年成立)、崇基学院...
+ +
+
+
+ + + + 2026季 +
+
+ + + + 2026季 +
+
+ + + + 2026季 +
+
+ + + + 更多 + +
+
2025季
+
+
+
+ +
+
+
+
+ +
+ 公共政策社会科学硕士课程 +
+ + 2025入学现正招生 +
+
+
+
+
+ +
+ 长期答疑 +
+
+ 了解详情 + +
+
+
+
+
+
+ +
+ 公共政策社会科学硕士课程 +
+
+
+
+ +
+ 长期答疑 +
+
+ 了解详情 + +
+
+
+
+
+
+
+
+
+ +
+
+ +
+
岭南大学
+
Lingnan University
+
+
+ + + + 2026季 +
+
+ + + + 2026季 +
+
+ + + + 2026季 +
+
+ + + + 2026季 +
+
+ + + + 更多 + +
+
+
+
+
+ + + + + diff --git a/js/vue.cjs.js b/js/vue.cjs.js new file mode 100644 index 0000000..ea4907c --- /dev/null +++ b/js/vue.cjs.js @@ -0,0 +1,80 @@ +/** +* vue v3.5.17 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var compilerDom = require('@vue/compiler-dom'); +var runtimeDom = require('@vue/runtime-dom'); +var shared = require('@vue/shared'); + +function _interopNamespaceDefault(e) { + var n = Object.create(null); + if (e) { + for (var k in e) { + n[k] = e[k]; + } + } + n.default = e; + return Object.freeze(n); +} + +var runtimeDom__namespace = /*#__PURE__*/_interopNamespaceDefault(runtimeDom); + +const compileCache = /* @__PURE__ */ Object.create(null); +function compileToFunction(template, options) { + if (!shared.isString(template)) { + if (template.nodeType) { + template = template.innerHTML; + } else { + runtimeDom.warn(`invalid template option: `, template); + return shared.NOOP; + } + } + const key = shared.genCacheKey(template, options); + const cached = compileCache[key]; + if (cached) { + return cached; + } + if (template[0] === "#") { + const el = document.querySelector(template); + if (!el) { + runtimeDom.warn(`Template element not found or is empty: ${template}`); + } + template = el ? el.innerHTML : ``; + } + const opts = shared.extend( + { + hoistStatic: true, + onError: onError , + onWarn: (e) => onError(e, true) + }, + options + ); + if (!opts.isCustomElement && typeof customElements !== "undefined") { + opts.isCustomElement = (tag) => !!customElements.get(tag); + } + const { code } = compilerDom.compile(template, opts); + function onError(err, asWarning = false) { + const message = asWarning ? err.message : `Template compilation error: ${err.message}`; + const codeFrame = err.loc && shared.generateCodeFrame( + template, + err.loc.start.offset, + err.loc.end.offset + ); + runtimeDom.warn(codeFrame ? `${message} +${codeFrame}` : message); + } + const render = new Function("Vue", code)(runtimeDom__namespace); + render._rc = true; + return compileCache[key] = render; +} +runtimeDom.registerRuntimeCompiler(compileToFunction); + +exports.compile = compileToFunction; +Object.keys(runtimeDom).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = runtimeDom[k]; +}); diff --git a/js/vue.global.min.js b/js/vue.global.min.js new file mode 100644 index 0000000..1fd9377 --- /dev/null +++ b/js/vue.global.min.js @@ -0,0 +1,25 @@ +var Vue=function(e){"use strict";function t(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return e=>e in t}const I=Object.freeze({}),L=Object.freeze([]),te=()=>{},n=()=>!1,G=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(122e.startsWith("onUpdate:"),O=Object.assign,D=(e,t)=>{t=e.indexOf(t);-1o.call(e,t),ue=Array.isArray,p=e=>"[object Map]"===_(e),v=e=>"[object Set]"===_(e),y=e=>"[object Date]"===_(e),ne=e=>"function"==typeof e,de=e=>"string"==typeof e,pe=e=>"symbol"==typeof e,re=e=>null!==e&&"object"==typeof e,ae=e=>(re(e)||ne(e))&&ne(e.then)&&ne(e.catch),b=Object.prototype.toString,_=e=>b.call(e),S=e=>_(e).slice(8,-1),x=e=>"[object Object]"===_(e),w=e=>de(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,le=t(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Y=t("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");var k=t=>{const n=Object.create(null);return e=>{return n[e]||(n[e]=t(e))}};const C=/-(\w)/g,M=k(e=>e.replace(C,(e,t)=>t?t.toUpperCase():"")),T=/\B([A-Z])/g,P=k(e=>e.replace(T,"-$1").toLowerCase()),V=k(e=>e.charAt(0).toUpperCase()+e.slice(1)),ce=k(e=>{return e?"on"+V(e):""}),j=(e,t)=>!Object.is(e,t),he=(t,...n)=>{for(let e=0;e{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},me=e=>{var t=parseFloat(e);return isNaN(t)?e:t},U=e=>{var t=de(e)?Number(e):NaN;return isNaN(t)?e:t};let B;const ve=()=>B=B||("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{});const ge={[1]:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"NEED_HYDRATION",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT","-1":"CACHED","-2":"BAIL"},H={[1]:"STABLE",2:"DYNAMIC",3:"FORWARDED"};const X=t("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"),Q=2;function Z(t){if(ue(t)){const o={};for(let e=0;e{if(e){const t=e.split(ye);1?@[\\\]^`{|}~]/g;function Re(e){return e.replace(Oe,e=>"\\"+e)}function Me(e,t){if(e===t)return!0;let n=y(e),r=y(t);if(n||r)return!(!n||!r)&&e.getTime()===t.getTime();if(n=pe(e),r=pe(t),n||r)return e===t;if(n=ue(e),r=ue(t),n||r)return!(!n||!r)&&function(t,n){if(t.length!==n.length)return!1;let r=!0;for(let e=0;r&&eMe(e,t))}const $e=e=>!(!e||!0!==e.__v_isRef),Fe=e=>de(e)?e:null==e?"":ue(e)||re(e)&&(e.toString===b||!ne(e.toString))?$e(e)?Fe(e.value):JSON.stringify(e,Le,2):String(e),Le=(e,t)=>$e(t)?Le(e,t.value):p(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[De(t,r)+" =>"]=n,e),{})}:v(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>De(e))}:pe(t)?De(t):!re(t)||ue(t)||x(t)?t:String(t),De=(e,t="")=>{var n;return pe(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};function Ve(e,...t){console.warn("[Vue warn] "+e,...t)}let E;class je{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=E,!e&&E&&(this.index=(E.scopes||(E.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e{e&&e.trigger({target:t,type:n,key:r,newValue:o,oldValue:s,oldTarget:i})};if(Je(),"clear"===n)e.forEach(c);else{var a=ue(t),l=a&&w(r);if(a&&"length"===r){const u=Number(o);e.forEach((e,t)=>{("length"===t||t===pt||!pe(t)&&t>=u)&&c(e)})}else switch(void 0===r&&!e.has(void 0)||c(e.get(r)),l&&c(e.get(pt)),n){case"add":a?l&&c(e.get("length")):(c(e.get(ut)),p(t)&&c(e.get(dt)));break;case"delete":a||(c(e.get(ut)),p(t)&&c(e.get(dt)));break;case"set":p(t)&&c(e.get(ut))}}Ge()}else it++}function ft(e){const t=g(e);return t===e?t:(h(t,"iterate",pt),en(e)?t:t.map(d))}function mt(e){return h(e=g(e),"iterate",pt),e}const vt={__proto__:null,[Symbol.iterator](){return gt(this,Symbol.iterator,d)},concat(...e){return ft(this).concat(...e.map(e=>ue(e)?ft(e):e))},entries(){return gt(this,"entries",e=>(e[1]=d(e[1]),e))},every(e,t){return bt(this,"every",e,t,void 0,arguments)},filter(e,t){return bt(this,"filter",e,t,e=>e.map(d),arguments)},find(e,t){return bt(this,"find",e,t,d,arguments)},findIndex(e,t){return bt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return bt(this,"findLast",e,t,d,arguments)},findLastIndex(e,t){return bt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return bt(this,"forEach",e,t,void 0,arguments)},includes(...e){return St(this,"includes",e)},indexOf(...e){return St(this,"indexOf",e)},join(e){return ft(this).join(e)},lastIndexOf(...e){return St(this,"lastIndexOf",e)},map(e,t){return bt(this,"map",e,t,void 0,arguments)},pop(){return xt(this,"pop")},push(...e){return xt(this,"push",e)},reduce(e,...t){return _t(this,"reduce",e,t)},reduceRight(e,...t){return _t(this,"reduceRight",e,t)},shift(){return xt(this,"shift")},some(e,t){return bt(this,"some",e,t,void 0,arguments)},splice(...e){return xt(this,"splice",e)},toReversed(){return ft(this).toReversed()},toSorted(e){return ft(this).toSorted(e)},toSpliced(...e){return ft(this).toSpliced(...e)},unshift(...e){return xt(this,"unshift",e)},values(){return gt(this,"values",d)}};function gt(e,t,n){const r=mt(e),o=r[t]();return r===e||en(e)||(o._next=o.next,o.next=()=>{const e=o._next();return e.value&&(e.value=n(e.value)),e}),o}const yt=Array.prototype;function bt(n,e,r,t,o,s){var i=mt(n),a=i!==n&&!en(n);const l=i[e];if(l!==yt[e])return e=l.apply(n,s),a?d(e):e;let c=r;i!==n&&(a?c=function(e,t){return r.call(this,d(e),t,n)}:2"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(pe));function Ct(e){pe(e)||(e=String(e));const t=g(this);return h(t,"has",e),t.hasOwnProperty(e)}class Tt{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;var r=this._isReadonly,o=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return o;if("__v_raw"===t)return n===(r?o?zt:Wt:o?qt:Ht).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;var s=ue(e);if(!r){let e;if(s&&(e=vt[t]))return e;if("hasOwnProperty"===t)return Ct}n=Reflect.get(e,t,J(e)?e:n);return(pe(t)?kt.has(t):wt(t))?n:(r||h(e,"get",t),o?n:J(n)?s&&w(t)?n:n.value:re(n)?(r?Gt:Kt)(n):n)}}class Et extends Tt{constructor(e=!1){super(!1,e)}set(e,t,n,r){let o=e[t];if(!this._isShallow){var s=Zt(o);if(en(n)||Zt(n)||(o=g(o),n=g(n)),!ue(e)&&J(o)&&!J(n))return!s&&(o.value=n,!0)}var s=ue(e)&&w(t)?Number(t)e,Pt=e=>Reflect.getPrototypeOf(e);function $t(t){return function(...e){e=e[0]?`on key "${e[0]}" `:"";return Ve(V(t)+` operation ${e}failed: target is readonly.`,g(this)),"delete"!==t&&("clear"===t?void 0:this)}}function Ft(i,u){const t={get(e){const t=this.__v_raw;var n=g(t),r=g(e);i||(j(e,r)&&h(n,"get",e),h(n,"get",r));const o=Pt(n)["has"],s=u?Mt:i?rn:d;return o.call(n,e)?s(t.get(e)):o.call(n,r)?s(t.get(r)):void(t!==n&&t.get(e))},get size(){var e=this.__v_raw;return i||h(g(e),"iterate",ut),Reflect.get(e,"size",e)},has(e){const t=this.__v_raw;var n=g(t),r=g(e);return i||(j(e,r)&&h(n,"has",e),h(n,"has",r)),e===r?t.has(e):t.has(e)||t.has(r)},forEach(n,r){const o=this,e=o.__v_raw;var t=g(e);const s=u?Mt:i?rn:d;return i||h(t,"iterate",ut),e.forEach((e,t)=>n.call(r,s(e),s(t),o))}},e=(O(t,i?{add:$t("add"),set:$t("set"),delete:$t("delete"),clear:$t("clear")}:{add(e){u||en(e)||Zt(e)||(e=g(e));const t=g(this),n=Pt(t);return n.has.call(t,e)||(t.add(e),ht(t,"add",e,e)),this},set(e,t){u||en(t)||Zt(t)||(t=g(t));const n=g(this),{has:r,get:o}=Pt(n);let s=r.call(n,e);s?Bt(n,r,e):(e=g(e),s=r.call(n,e));var i=o.call(n,e);return n.set(e,t),s?j(t,i)&&ht(n,"set",e,t,i):ht(n,"add",e,t),this},delete(e){const t=g(this),{has:n,get:r}=Pt(t);let o=n.call(t,e);o?Bt(t,n,e):(e=g(e),o=n.call(t,e));var s=r?r.call(t,e):void 0,i=t.delete(e);return o&&ht(t,"delete",e,void 0,s),i},clear(){const e=g(this);var t=0!==e.size,n=new(p(e)?Map:Set)(e),r=e.clear();return t&&ht(e,"clear",void 0,void 0,n),r}}),["keys","values","entries",Symbol.iterator]);return e.forEach(e=>{var a,l,c;t[e]=(a=e,l=i,c=u,function(...e){const t=this.__v_raw;var n=g(t),r=p(n);const o="entries"===a||a===Symbol.iterator&&r;r="keys"===a&&r;const s=t[a](...e),i=c?Mt:l?rn:d;return l||h(n,"iterate",r?dt:ut),{next(){var{value:e,done:t}=s.next();return t?{value:e,done:t}:{value:o?[i(e[0]),i(e[1])]:i(e),done:t}},[Symbol.iterator](){return this}}})}),t}function Lt(r,e){const o=Ft(r,e);return(e,t,n)=>"__v_isReactive"===t?!r:"__v_isReadonly"===t?r:"__v_raw"===t?e:Reflect.get(R(o,t)&&t in e?o:e,t,n)}const Dt={get:Lt(!1,!1)},Vt={get:Lt(!1,!0)},jt={get:Lt(!0,!1)},Ut={get:Lt(!0,!0)};function Bt(e,t,n){var r=g(n);r!==n&&t.call(e,r)&&Ve(`Reactive ${n=S(e)} contains both the raw and reactive versions of the same object${"Map"===n?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}const Ht=new WeakMap,qt=new WeakMap,Wt=new WeakMap,zt=new WeakMap;function Kt(e){return Zt(e)?e:Xt(e,!1,Nt,Dt,Ht)}function Jt(e){return Xt(e,!1,Ot,Vt,qt)}function Gt(e){return Xt(e,!0,It,jt,Wt)}function Yt(e){return Xt(e,!0,Rt,Ut,zt)}function Xt(e,t,n,r,o){if(!re(e))return Ve(`value cannot be made ${t?"readonly":"reactive"}: `+String(e)),e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;t=function(e){if(e.__v_skip||!Object.isExtensible(e))return 0;switch(S(e)){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}(e);if(0===t)return e;var s=o.get(e);if(s)return s;s=new Proxy(e,2===t?r:n);return o.set(e,s),s}function Qt(e){return Zt(e)?Qt(e.__v_raw):!(!e||!e.__v_isReactive)}function Zt(e){return!(!e||!e.__v_isReadonly)}function en(e){return!(!e||!e.__v_isShallow)}function tn(e){return!!e&&!!e.__v_raw}function g(e){var t=e&&e.__v_raw;return t?g(t):e}function nn(e){return!R(e,"__v_skip")&&Object.isExtensible(e)&&fe(e,"__v_skip",!0),e}const d=e=>re(e)?Kt(e):e,rn=e=>re(e)?Gt(e):e;function J(e){return!!e&&!0===e.__v_isRef}function on(e){return an(e,!1)}function sn(e){return an(e,!0)}function an(e,t){return J(e)?e:new ln(e,t)}class ln{constructor(e,t){this.dep=new lt,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:g(e),this._value=t?e:d(e),this.__v_isShallow=t}get value(){return this.dep.track({target:this,type:"get",key:"value"}),this._value}set value(e){var t=this._rawValue,n=this.__v_isShallow||en(e)||Zt(e);e=n?e:g(e),j(e,t)&&(this._rawValue=e,this._value=n?e:d(e),this.dep.trigger({target:this,type:"set",key:"value",newValue:e,oldValue:t}))}}function cn(e){return J(e)?e.value:e}const un={get:(e,t,n)=>"__v_raw"===t?e:cn(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return J(o)&&!J(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function dn(e){return Qt(e)?e:new Proxy(e,un)}class pn{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new lt;var{get:e,set:n}=e(t.track.bind(t),t.trigger.bind(t));this._get=e,this._set=n}get value(){return this._value=this._get()}set value(e){this._set(e)}}function hn(e){return new pn(e)}class fn{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0}get value(){var e=this._object[this._key];return this._value=void 0===e?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){{var e=g(this._object),t=this._key;const n=ct.get(e);return n&&n.get(t)}}}class mn{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function vn(e,t,n){var r=e[t];return J(r)?r:new fn(e,t,n)}class gn{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new lt(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=it-1,this.next=void 0,(this.effect=this).__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&s!==this)return Ke(this,!0),!0}get value(){const e=this.dep.track({target:this,type:"get",key:"value"});return Ze(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter?this.setter(e):Ve("Write operation failed: computed value is readonly")}}const yn={},bn=new WeakMap;let _n=void 0;function Sn(t,e=!1,n=_n){if(n){let e=bn.get(n);e||bn.set(n,e=[]),e.push(t)}else e||Ve("onWatcherCleanup() was called when there was no active watcher to associate with.")}function xn(t,n=1/0,r){if(n<=0||!re(t)||t.__v_skip)return t;if((r=r||new Set).has(t))return t;if(r.add(t),n--,J(t))xn(t.value,n,r);else if(ue(t))for(let e=0;e{xn(e,n,r)});else if(x(t)){for(const e in t)xn(t[e],n,r);for(const o of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,o)&&xn(t[o],n,r)}return t}const wn=[];function kn(e){wn.push(e)}function Cn(){wn.pop()}let Tn=!1;function oe(e,...t){if(!Tn){Tn=!0,rt();const r=wn.length?wn[wn.length-1].component:null;var n=r&&r.appContext.config.warnHandler;const o=function(){let e=wn[wn.length-1];if(!e)return[];const t=[];for(;e;){const r=t[0];r&&r.vnode===e?r.recurseCount++:t.push({vnode:e,recurseCount:0});var n=e.component&&e.component.parent;e=n&&n.vnode}return t}();if(n)Nn(n,r,11,[e+t.map(e=>{var t;return null!=(t=null==(t=e.toString)?void 0:t.call(e))?t:JSON.stringify(e)}).join(""),r&&r.proxy,o.map(({vnode:e})=>`at <${na(r,e.type)}>`).join("\n"),o]);else{const s=["[Vue warn]: "+e,...t];o.length&&s.push(` +`,...function(e){const r=[];return e.forEach((e,t)=>{var n;r.push(...0===t?[]:[` +`],...({vnode:t,recurseCount:e}=[e][0],e=0{n.push(...function e(t,n,r){return de(n)?(n=JSON.stringify(n),r?n:[t+"="+n]):"number"==typeof n||"boolean"==typeof n||null==n?r?n:[t+"="+n]:J(n)?(n=e(t,g(n.value),!0),r?n:[t+"=Ref<",n,">"]):ne(n)?[t+"=fn"+(n.name?`<${n.name}>`:"")]:(n=g(n),r?n:[t+"=",n])}(e,t[e]))}),3{On(e,n,r)}),e}if(ue(t)){const s=[];for(let e=0;e=zn(n)?Rn.push(e):Rn.splice(function(e){let t=Mn+1,n=Rn.length;for(;t>>1,o=Rn[r],s=zn(o);szn(e)-zn(t));if(Pn.length=0,$n)$n.push(...t);else{for($n=t,e=e||new Map,Fn=0;Fn<$n.length;Fn++){const n=$n[Fn];Jn(e,n)||(4&n.flags&&(n.flags&=-2),8&n.flags||n(),n.flags&=-2)}$n=null,Fn=0}}}const zn=e=>null==e.id?2&e.flags?-1:1/0:e.id;function Kn(e){e=e||new Map;var t;try{for(Mn=0;MnVn?(On(`Maximum recursive updates exceeded${(n=(n=t.i)&&ta(n.type))?` in component <${n}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0):(e.set(t,r+1),!1)}let Gn=!1;const Yn=new Map,Xn=(ve().__VUE_HMR_RUNTIME__={createRecord:tr(Qn),rerender:tr(function(e,t){const n=Xn.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach(e=>{t&&(e.render=t,Zn(e.type).render=t),e.renderCache=[],Gn=!0,e.update(),Gn=!1}))}),reload:tr(function(e,n){var r=Xn.get(e);if(r){n=Zn(n),er(r.initialDef,n);var o=[...r.instances];for(let t=0;t{Gn=!0,i.parent.update(),Gn=!1,e.delete(i)}):i.appContext.reload?i.appContext.reload():"undefined"!=typeof window?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required."),i.root.ce&&i!==i.root&&i.root.ce._removeChildStyle(s)}Hn(()=>{Yn.clear()})}})},new Map);function Qn(e,t){return!Xn.has(e)&&(Xn.set(e,{initialDef:Zn(t),instances:new Set}),!0)}function Zn(e){return ra(e)?e.__vccOpts:e}function er(e,t){O(e,t);for(const n in e)"__file"===n||n in t||delete e[n]}function tr(n){return(e,t)=>{try{return n(e,t)}catch(e){console.error(e),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let nr,rr=[],or=!1;function sr(e,...t){nr?nr.emit(e,...t):or||rr.push({event:e,args:t})}function ir(e,t){if(nr=e)nr.enabled=!0,rr.forEach(({event:e,args:t})=>nr.emit(e,...t)),rr=[];else if("undefined"==typeof window||!window.HTMLElement||null!=(e=null==(e=window.navigator)?void 0:e.userAgent)&&e.includes("jsdom"))or=!0,rr=[];else{const n=t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[];n.push(e=>{ir(e,t)}),setTimeout(()=>{nr||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,or=!0,rr=[])},3e3)}}const ar=dr("component:added"),lr=dr("component:updated"),cr=dr("component:removed"),ur=e=>{nr&&"function"==typeof nr.cleanupBuffer&&!nr.cleanupBuffer(e)&&cr(e)};function dr(t){return e=>{sr(t,e.appContext.app,e.uid,e.parent?e.parent.uid:void 0,e)}}const pr=fr("perf:start"),hr=fr("perf:end");function fr(r){return(e,t,n)=>{sr(r,e.appContext.app,e.uid,e,t,n)}}let f=null,mr=null;function vr(e){var t=f;return f=e,mr=e&&e.type.__scopeId||null,t}function gr(r,o=f,e){if(!o)return r;if(r._n)return r;const s=(...e)=>{s._d&&mi(-1);var t=vr(o);let n;try{n=r(...e)}finally{vr(t),s._d&&mi(1)}return lr(o),n};return s._n=!0,s._c=!0,s._d=!0,s}function yr(e){Y(e)&&oe("Do not use built-in directive ids as custom directive id: "+e)}function br(t,n,r,o){var s=t.dirs,i=n&&n.dirs;for(let e=0;ee.__isTeleport,xr=e=>e&&(e.disabled||""===e.disabled),wr=e=>e&&(e.defer||""===e.defer),kr=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,Cr=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,Tr=(e,t)=>{var n=e&&e.to;return de(n)?t?((t=t(n))||xr(e)||oe(`Failed to locate Teleport target with selector "${n}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),t):(oe("Current renderer does not support string target for Teleports. (missing querySelector renderer option)"),null):(n||xr(e)||oe("Invalid Teleport target: "+n),n)},Er={name:"Teleport",__isTeleport:!0,process(e,n,t,r,o,s,i,a,l,c){const{mc:u,pc:d,pbc:p,o:{insert:h,querySelector:f,createText:m,createComment:v}}=c,g=xr(n.props);let{shapeFlag:y,children:b,dynamicChildren:_}=n;if(Gn&&(l=!1,_=null),null==e){var S=n.el=v("teleport start"),x=n.anchor=v("teleport end");h(S,t,r),h(x,t,r);const E=(e,t)=>{16&y&&(o&&o.isCE&&(o.ce._teleportTarget=e),u(b,e,t,o,s,i,a,l))},A=()=>{var e=n.target=Tr(n.props,f),t=Ir(e,n,m,h);e?("svg"!==i&&kr(e)?i="svg":"mathml"!==i&&Cr(e)&&(i="mathml"),g||(E(e,t),Nr(n,!1))):g||oe("Invalid Teleport target on mount:",e,`(${typeof e})`)};g&&(E(t,x),Nr(n,!0)),wr(n.props)?(n.el.__isMounted=!1,$(()=>{A(),delete n.el.__isMounted},s)):A()}else{var w,k,C,T;wr(n.props)&&!1===e.el.__isMounted?$(()=>{Er.process(e,n,t,r,o,s,i,a,l,c)},s):(n.el=e.el,n.targetStart=e.targetStart,S=n.anchor=e.anchor,x=n.target=e.target,w=n.targetAnchor=e.targetAnchor,T=(k=xr(e.props))?t:x,C=k?S:w,"svg"===i||kr(x)?i="svg":"mathml"!==i&&!Cr(x)||(i="mathml"),_?(p(e.dynamicChildren,_,T,o,s,i,a),$s(e,n,!1)):l||d(e,n,T,C,o,s,i,a,!1),g?k?n.props&&e.props&&n.props.to!==e.props.to&&(n.props.to=e.props.to):Ar(n,t,S,c,1):(n.props&&n.props.to)!==(e.props&&e.props.to)?(T=n.target=Tr(n.props,f))?Ar(n,T,null,c,0):oe("Invalid Teleport target on update:",x,`(${typeof x})`):k&&Ar(n,x,w,c,1),Nr(n,g))}},remove(e,t,n,{um:r,o:{remove:o}},s){var{shapeFlag:e,children:i,anchor:a,targetStart:l,targetAnchor:c,target:u,props:d}=e;if(u&&(o(l),o(c)),s&&o(a),16&e){var p=s||!xr(d);for(let e=0;e{e.isMounted=!0}),wo(()=>{e.isUnmounting=!0}),e}var Pr=[Function,Array],Pr={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Pr,onEnter:Pr,onAfterEnter:Pr,onEnterCancelled:Pr,onBeforeLeave:Pr,onLeave:Pr,onAfterLeave:Pr,onLeaveCancelled:Pr,onBeforeAppear:Pr,onAppear:Pr,onAfterAppear:Pr,onAppearCancelled:Pr};const $r=e=>{e=e.subTree;return e.component?$r(e.component):e};function Fr(t){let n=t[0];if(1 can only be used on a single element or component. Use for lists.");break}n=r,e=!0}}return n}const Lr={name:"BaseTransition",props:Pr,setup(e,{slots:o}){const a=$i(),l=Mr();return()=>{var t=o.default&&Hr(o.default(),!0);if(t&&t.length){var t=Fr(t),n=g(e),r=n["mode"];if(r&&"in-out"!==r&&"out-in"!==r&&"default"!==r&&oe("invalid mode: "+r),l.isLeaving)return jr(t);var i=Ur(t);if(!i)return jr(t);let o=Vr(i,n,l,a,e=>o=e),s=(i.type!==ie&&Br(i,o),a.subTree&&Ur(a.subTree));if(s&&s.type!==ie&&!bi(i,s)&&$r(a).type!==ie){let e=Vr(s,n,l,a);if(Br(s,e),"out-in"===r&&i.type!==ie)return l.isLeaving=!0,e.afterLeave=()=>{l.isLeaving=!1,8&a.job.flags||a.update(),delete e.afterLeave,s=void 0},jr(t);"in-out"===r&&i.type!==ie?e.delayLeave=(e,t,n)=>{const r=Dr(l,s);r[String(s.key)]=s,e[Or]=()=>{t(),e[Or]=void 0,delete o.delayedLeave,s=void 0},o.delayedLeave=()=>{n(),delete o.delayedLeave,s=void 0}}:s=void 0}else s=s&&void 0;return t}}}};function Dr(e,t){const n=e["leavingVNodes"];let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Vr(s,t,i,n,r){const{appear:a,mode:e,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:h,onAfterLeave:f,onLeaveCancelled:m,onBeforeAppear:v,onAppear:g,onAfterAppear:y,onAppearCancelled:b}=t,_=String(s.key),S=Dr(i,s),x=(e,t)=>{e&&In(e,n,9,t)},w=(e,t)=>{const n=t[1];x(e,t),ue(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},k={mode:e,persisted:o,beforeEnter(e){let t=l;if(!i.isMounted){if(!a)return;t=v||l}e[Or]&&e[Or](!0);const n=S[_];n&&bi(s,n)&&n.el[Or]&&n.el[Or](),x(t,[e])},enter(t){let e=c,n=u,r=d;if(!i.isMounted){if(!a)return;e=g||c,n=y||u,r=b||d}let o=!1;var s=t[Rr]=e=>{o||(o=!0,e?x(r,[t]):x(n,[t]),k.delayedLeave&&k.delayedLeave(),t[Rr]=void 0)};e?w(e,[t,s]):s()},leave(t,n){const r=String(s.key);if(t[Rr]&&t[Rr](!0),i.isUnmounting)return n();x(p,[t]);let o=!1;var e=t[Or]=e=>{o||(o=!0,n(),e?x(m,[t]):x(f,[t]),t[Or]=void 0,S[r]===s&&delete S[r])};S[r]=s,h?w(h,[t,e]):e()},clone(e){e=Vr(e,t,i,n,r);return r&&r(e),e}};return k}function jr(e){if(lo(e))return(e=Ci(e)).children=null,e}function Ur(e){if(!lo(e))return Sr(e.type)&&e.children?Fr(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;return n?16&t?n[0]:32&t&&ne(n.default)?n.default():void 0:void 0}function Br(e,t){6&e.shapeFlag&&e.component?(e.transition=t,Br(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Hr(t,n=!1,r){let o=[],s=0;for(let e=0;eO({name:e.name},t,{setup:e}))():e}function Wr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const zr=new WeakSet;function Kr(t,n,r,o,s=!1){if(ue(t))t.forEach((e,t)=>Kr(e,n&&(ue(n)?n[t]:n),r,o,s));else if(io(o)&&!s)512&o.shapeFlag&&o.type.__asyncResolved&&o.component.subTree.component&&Kr(t,n,r,o.component.subTree);else{const i=4&o.shapeFlag?Qi(o.component):o.el,a=s?null:i,{i:l,r:c}=t;if(l){const u=n&&n.r,d=l.refs===I?l.refs={}:l.refs,p=l.setupState,h=g(p),f=p===I?()=>!1:e=>(R(h,e)&&!J(h[e])&&oe(`Template ref "${e}" used on a non-ref value. It will not work in the production build.`),zr.has(h[e])?!1:R(h,e));if(null!=u&&u!==c&&(de(u)?(d[u]=null,f(u)&&(p[u]=null)):J(u)&&(u.value=null)),ne(c))Nn(c,l,12,[a,d]);else{const m=de(c),v=J(c);var e;m||v?(e=()=>{if(t.f){const e=m?(f(c)?p:d)[c]:c.value;s?ue(e)&&D(e,i):ue(e)?e.includes(i)||e.push(i):m?(d[c]=[i],f(c)&&(p[c]=d[c])):(c.value=[i],t.k&&(d[t.k]=c.value))}else m?(d[c]=a,f(c)&&(p[c]=a)):v?(c.value=a,t.k&&(d[t.k]=a)):oe("Invalid template ref type:",c,`(${typeof c})`)},a?(e.id=-1,$(e,r)):e()):oe("Invalid template ref type:",c,`(${typeof c})`)}}else oe("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.")}}let Jr=!1;const Gr=()=>{Jr||(console.error("Hydration completed but contains mismatches."),Jr=!0)},Yr=e=>{var t;if(1===e.nodeType)return(t=e).namespaceURI.includes("svg")&&"foreignObject"!==t.tagName?"svg":e.namespaceURI.includes("MathML")?"mathml":void 0},Xr=e=>8===e.nodeType;function Qr(v){const{mt:g,p,o:{patchProp:y,createText:b,nextSibling:_,parentNode:S,remove:x,insert:w,createComment:a}}=v;const k=(t,n,e,r,o,s=!1)=>{s=s||!!n.dynamicChildren;const i=Xr(t)&&"["===t.data;var a=()=>A(t,n,e,r,o,i),{type:l,ref:c,shapeFlag:u,patchFlag:d}=n;let p=t.nodeType,h=(n.el=t,fe(t,"__vnode",n,!0),fe(t,"__vueParentComponent",e,!0),-2===d&&(s=!1,n.dynamicChildren=null),null);switch(l){case li:h=3!==p?""===n.children?(w(n.el=b(""),S(t),t),t):a():(t.data!==n.children&&(oe("Hydration text mismatch in",t.parentNode,` + - rendered on server: ${JSON.stringify(t.data)} + - expected on client: `+JSON.stringify(n.children)),Gr(),t.data=n.children),_(t));break;case ie:O(t)?(h=_(t),I(n.el=t.content.firstChild,t,e)):h=8!==p||i?a():_(t);break;case ci:if(i&&(t=_(t),p=t.nodeType),1===p||3===p){h=t;var f=!n.children.length;for(let e=0;e{a=a||!!r.dynamicChildren;const{type:e,props:l,shapeFlag:c,dirs:u,transition:d}=r;var p,h="input"===e||"option"===e;{u&&br(r,null,o,"created");let e=!1;if(O(n)){e=Ps(null,d)&&o&&o.vnode.props&&o.vnode.props.appear;const v=n.content.firstChild;e&&((p=v.getAttribute("class"))&&(v.$cls=p),d.beforeEnter(v)),I(v,n,o),r.el=n=v}if(16&c&&(!l||!l.innerHTML&&!l.textContent)){let e=T(n.firstChild,r,n,o,s,i,a),t=!1;for(;e;){ro(n,1)||(t||(oe("Hydration children mismatch on",n,` +Server rendered element contains more child nodes than client vdom.`),t=!0),Gr());var f=e;e=e.nextSibling,x(f)}}else if(8&c){let e=r.children;"\n"!==e[0]||"PRE"!==n.tagName&&"TEXTAREA"!==n.tagName||(e=e.slice(1)),n.textContent!==e&&(ro(n,0)||(oe("Hydration text content mismatch on",n,` + - rendered on server: ${n.textContent} + - expected on client: `+r.children),Gr()),n.textContent=r.children)}if(l){var m=n.tagName.includes("-");for(const g in l)u&&u.some(e=>e.dir.created)||!function(e,t,n,r,o){let s,i,a,l;if("class"===t)e.$cls?(a=e.$cls,delete e.$cls):a=e.getAttribute("class"),l=Se(n),!function(e,t){if(e.size!==t.size)return;for(const n of e)if(!t.has(n))return;return 1}(Zr(a||""),Zr(l))&&(s=2,i="class");else if("style"===t){a=e.getAttribute("style")||"",l=de(n)?n:function(e){if(!e)return"";if(de(e))return e;let t="";for(const o in e){var n,r=e[o];!de(r)&&"number"!=typeof r||(n=o.startsWith("--")?o:P(o),t+=n+`:${r};`)}return t}(Z(n));var c=eo(a);const p=eo(l);if(r.dirs)for(var{dir:u,value:d}of r.dirs)"show"!==u.name||d||p.set("display","none");o&&!function e(t,n,r){const o=t.subTree;if(t.getCssVars&&(n===o||o&&o.type===se&&o.children.includes(n))){const s=t.getCssVars();for(const i in s)r.set("--"+Re(i),String(s[i]))}n===o&&t.parent&&e(t.parent,t.vnode,r)}(o,r,p),!function(e,t){if(e.size!==t.size)return;for(var[n,r]of e)if(r!==t.get(n))return;return 1}(c,p)&&(s=3,i="style")}else(e instanceof SVGElement&&Ie(t)||e instanceof HTMLElement&&(Ee(t)||Ne(t)))&&(l=Ee(t)?(a=e.hasAttribute(t),Ae(n)):null==n?(a=e.hasAttribute(t),!1):(a=e.hasAttribute(t)?e.getAttribute(t):"value"===t&&"TEXTAREA"===e.tagName&&e.value,!!function(e){if(null!=e)return"string"==(e=typeof e)||"number"==e||"boolean"==e}(n)&&String(n)),a!==l&&(s=4,i=t));if(null==s||ro(e,s))return;{o=e=>!1===e?"(not rendered)":i+`="${e}"`,r=`Hydration ${no[s]} mismatch on`,c=` + - rendered on server: ${o(a)} + - expected on client: ${o(l)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`;return oe(r,e,c),1}}(n,g,l[g],r,o)||Gr(),(h&&(g.endsWith("value")||"indeterminate"===g)||G(g)&&!le(g)||"."===g[0]||m)&&y(n,g,null,l[g],void 0,o)}let t;(t=l&&l.onVnodeBeforeMount)&&Ri(t,o,r),u&&br(r,null,o,"beforeMount"),((t=l&&l.onVnodeMounted)||u||e)&&ii(()=>{t&&Ri(t,o,r),e&&d.enter(n),u&&br(r,null,o,"mounted")},s)}return n.nextSibling},T=(t,e,n,r,o,s,i)=>{i=i||!!e.dynamicChildren;const a=e.children;var l=a.length;let c=!1;for(let e=0;e{var i=t["slotScopeIds"],i=(i&&(o=o?o.concat(i):i),S(e)),e=T(_(e),t,i,n,r,o,s);return e&&Xr(e)&&"]"===e.data?_(t.anchor=e):(Gr(),w(t.anchor=a("]"),i,e),e)},A=(e,t,n,r,o,s)=>{if(ro(e.parentElement,1)||(oe(`Hydration node mismatch: +- rendered on server:`,e,3===e.nodeType?"(text)":Xr(e)&&"["===e.data?"(start of fragment)":"",` +- expected on client:`,t.type),Gr()),t.el=null,s)for(var i=N(e);;){var a=_(e);if(!a||a===i)break;x(a)}var s=_(e),l=S(e);return x(e),p(null,t,l,s,n,r,Yr(l),o),n&&(n.vnode.el=t.el,Qs(n,t.el)),s},N=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=_(e))&&Xr(e)&&(e.data===t&&r++,e.data===n)){if(0===r)return _(e);r--}return e},I=(e,t,n)=>{const r=t.parentNode;r&&r.replaceChild(e,t);let o=n;for(;o;)o.vnode.el===t&&(o.vnode.el=o.subTree.el=e),o=o.parent},O=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes())return oe("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),p(null,e,t),Wn(),void(t._vnode=e);k(t.firstChild,e,null,null,null),Wn(),t._vnode=e},k]}function Zr(e){return new Set(e.trim().split(/\s+/))}function eo(e){const n=new Map;for(const r of e.split(";")){let[e,t]=r.split(":");e=e.trim(),t=t&&t.trim(),e&&t&&n.set(e,t)}return n}const to="data-allow-mismatch",no={[0]:"text",1:"children",2:"class",3:"style",4:"attribute"};function ro(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(to);)e=e.parentElement;const n=e&&e.getAttribute(to);if(null!=n){if(""===n)return 1;{const r=n.split(",");return 0===t&&r.includes("children")?1:r.includes(no[t])}}}const oo=ve().requestIdleCallback||(e=>setTimeout(e,1)),so=ve().cancelIdleCallback||(e=>clearTimeout(e));const io=e=>!!e.type.__asyncLoader;function ao(e,t){var{ref:n,props:r,children:o,ce:s}=t.vnode;const i=F(e,r,o);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const lo=e=>e.type.__isKeepAlive;var co={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(a,{slots:l}){const r=$i(),e=r.ctx,c=new Map,u=new Set;let d=null;r.__v_cache=c;const i=r.suspense,{p,m:h,um:t,o:{createElement:n}}=e["renderer"],o=n("div");function s(e){mo(e),t(e,r,i,!0)}function f(n){c.forEach((e,t)=>{e=ta(e.type);e&&!n(e)&&m(t)})}function m(e){var t=c.get(e);!t||d&&bi(t,d)?d&&mo(d):s(t),c.delete(e),u.delete(e)}e.activate=(t,e,n,r,o)=>{const s=t.component;h(t,e,n,0,i),p(s.vnode,t,e,n,s,i,r,t.slotScopeIds,o),$(()=>{s.isDeactivated=!1,s.a&&he(s.a);var e=t.props&&t.props.onVnodeMounted;e&&Ri(e,s.parent,t)},i),ar(s)},e.deactivate=t=>{const n=t.component;Fs(n.m),Fs(n.a),h(t,o,null,1,i),$(()=>{n.da&&he(n.da);var e=t.props&&t.props.onVnodeUnmounted;e&&Ri(e,n.parent,t),n.isDeactivated=!0},i),ar(n),n.__keepAliveStorageContainer=o},Ds(()=>[a.include,a.exclude],([t,n])=>{t&&f(e=>uo(t,e)),n&&f(e=>!uo(n,e))},{flush:"post",deep:!0});let v=null;var g=()=>{null!=v&&(Zs(r.subTree.type)?$(()=>{c.set(v,vo(r.subTree))},r.subTree.suspense):c.set(v,vo(r.subTree)))};return _o(g),xo(g),wo(()=>{c.forEach(e=>{var{subTree:t,suspense:n}=r,t=vo(t);if(e.type===t.type&&e.key===t.key)return mo(t),void((t=t.component.da)&&$(t,n));s(e)})}),()=>{if(v=null,!l.default)return d=null;var e=l.default();const t=e[0];if(1parseInt(i,10)&&m(u.values().next().value)),n.shapeFlag|=256,d=n,Zs(t.type)?t:n}}};function uo(e,t){return ue(e)?e.some(e=>uo(e,t)):de(e)?e.split(",").includes(t):(n=e,"[object RegExp]"===_(n)&&(e.lastIndex=0,e.test(t)));var n}function po(e,t){fo(e,"a",t)}function ho(e,t){fo(e,"da",t)}function fo(t,n,r=A){var o=t.__wdc||(t.__wdc=()=>{let e=r;for(;e;){if(e.isDeactivated)return;e=e.parent}return t()});if(go(n,o,r),r){let e=r.parent;for(;e&&e.parent;)lo(e.parent.vnode)&&!function(e,t,n,r){const o=go(t,e,r,!0);ko(()=>{D(r[t],o)},n)}(o,n,r,e),e=e.parent}}function mo(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function vo(e){return 128&e.shapeFlag?e.ssContent:e}function go(n,r,o=A,e=!1){if(o){const s=o[n]||(o[n]=[]);var t=r.__weh||(r.__weh=(...e)=>{rt();const t=Di(o);e=In(r,o,n,e);return t(),ot(),e});return e?s.unshift(t):s.push(t),t}oe(ce(An[n].replace(/ hook$/,""))+" is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.")}var yo=n=>(t,e=A)=>{Hi&&"sp"!==n||go(n,(...e)=>t(...e),e)};const bo=yo("bm"),_o=yo("m"),So=yo("bu"),xo=yo("u"),wo=yo("bum"),ko=yo("um"),Co=yo("sp"),To=yo("rtg"),Eo=yo("rtc");function Ao(e,t=A){go("ec",e,t)}const No="components";const Io=Symbol.for("v-ndc");function Oo(e,t,n=!0,r=!1){var o=f||A;if(o){var s=o.type;if(e===No){var i=ta(s,!1);if(i&&(i===t||i===M(t)||i===V(M(t))))return s}i=Ro(o[e]||s[e],t)||Ro(o.appContext[e],t);return!i&&r?s:(n&&!i&&(o=e===No?` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.`:"",oe(`Failed to resolve ${e.slice(0,-1)}: `+t+o)),i)}oe(`resolve${V(e.slice(0,-1))} can only be used in render() or setup().`)}function Ro(e,t){return e&&(e[t]||e[M(t)]||e[V(M(t))])}const Mo=e=>e?Bi(e)?Qi(e):Mo(e.parent):null,Po=O(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>Yt(e.props),$attrs:e=>Yt(e.attrs),$slots:e=>Yt(e.slots),$refs:e=>Yt(e.refs),$parent:e=>Mo(e.parent),$root:e=>Mo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Wo(e),$forceUpdate:e=>e.f||(e.f=()=>{Un(e.update)}),$nextTick:e=>e.n||(e.n=jn.bind(e.proxy)),$watch:e=>function(e,t,n){const r=this.proxy,o=de(e)?e.includes(".")?js(r,e):()=>r[e]:e.bind(r,r);let s;ne(t)?s=t:(s=t.handler,n=t);const i=Di(this),a=Vs(o,s.bind(r),n);return i(),a}.bind(e)}),$o=e=>"_"===e||"$"===e,Fo=(e,t)=>e!==I&&!e.__isScriptSetup&&R(e,t),Lo={get({_:e},t){if("__v_skip"===t)return!0;const{ctx:n,setupState:r,data:o,props:s,accessCache:i,type:a,appContext:l}=e;if("__isVue"===t)return!0;if("$"!==t[0]){var c=i[t];if(void 0!==c)switch(c){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(Fo(r,t))return i[t]=1,r[t];if(o!==I&&R(o,t))return i[t]=2,o[t];if((c=e.propsOptions[0])&&R(c,t))return i[t]=3,s[t];if(n!==I&&R(n,t))return i[t]=4,n[t];Bo&&(i[t]=0)}}const u=Po[t];let d,p;return u?("$attrs"===t?(h(e.attrs,"get",""),qs()):"$slots"===t&&h(e,"get",t),u(e)):(d=a.__cssModules)&&(d=d[t])?d:n!==I&&R(n,t)?(i[t]=4,n[t]):(p=l.config.globalProperties,R(p,t)?p[t]:void(!f||de(t)&&0===t.indexOf("__v")||(o!==I&&$o(t[0])&&R(o,t)?oe(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===f&&oe(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))))},set({_:e},t,n){const{data:r,setupState:o,ctx:s}=e;return Fo(o,t)?(o[t]=n,!0):o.__isScriptSetup&&R(o,t)?(oe(`Cannot mutate