twikoo 2.0.0-beta.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/twikoo.all.min.js +2 -2
- package/dist/twikoo.all.nocss.js +2 -2
- package/dist/twikoo.min.js +2 -2
- package/dist/twikoo.nocss.js +2 -2
- package/package.json +2 -2
package/dist/twikoo.min.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! twikoo:inlined-css */
|
|
2
2
|
(function(){if(typeof document==='undefined')return;var s=document.createElement('style');s.setAttribute('data-twikoo','');s.appendChild(document.createTextNode(".twikoo .tk-icon{line-height:1;display:inline-block}.twikoo .tk-icon svg{vertical-align:-.125em;fill:currentColor;height:1em}.twikoo .tk-action{align-items:center;display:flex}.twikoo .tk-action-link{appearance:none;cursor:pointer;color:#409eff;background:0 0;border:none;align-items:center;margin:0 0 0 .5rem;padding:0;text-decoration:none;display:flex}.twikoo .tk-action-link .tk-action-icon-solid,.twikoo .tk-action-link.tk-liked .tk-action-icon,.twikoo .tk-action-link:hover .tk-action-icon{display:none}.twikoo .tk-action-link.tk-liked .tk-action-icon-solid,.twikoo .tk-action-link:hover .tk-action-icon-solid{display:block}.twikoo .tk-action-link.tk-disliked .tk-action-icon,.twikoo .tk-action-link.tk-disliked:hover .tk-action-icon{display:none}.twikoo .tk-action-link.tk-disliked .tk-action-icon-solid,.twikoo .tk-action-link.tk-disliked:hover .tk-action-icon-solid{display:block}.twikoo .tk-action-count{height:1.5rem;margin-left:.25rem;font-size:.75rem;line-height:1.5rem}.twikoo .tk-action-icon{color:#409eff;width:1em;height:1em;line-height:0;display:inline-block}.twikoo .tk-avatar{text-align:center;border-radius:5px;flex-shrink:0;width:2.5rem;height:2.5rem;margin-right:1rem;overflow:hidden}.twikoo .tk-comment .tk-submit .tk-avatar,.twikoo .tk-replies .tk-avatar{width:1.6rem;height:1.6rem}.twikoo .tk-avatar.tk-has-avatar{background-color:#90939921}.twikoo .tk-avatar.tk-clickable{cursor:pointer}.twikoo .tk-avatar .tk-avatar-img{color:#c0c4cc;height:2.5rem;line-height:2.5rem}.twikoo .tk-avatar .tk-avatar-img .tk-icon,.twikoo .tk-avatar .tk-avatar-img .tk-icon svg{width:100%;height:100%;display:block}.twikoo .tk-avatar .tk-avatar-img img,.twikoo .tk-avatar img.tk-avatar-img{object-fit:cover;width:100%;height:100%}.twikoo .tk-comment .tk-submit .tk-avatar .tk-avatar-img,.twikoo .tk-replies .tk-avatar .tk-avatar-img{height:1.6rem;line-height:1.6rem}.twikoo .tk-input{align-items:center;width:100%;font-size:.875rem;display:inline-flex;position:relative}.twikoo .tk-input--group{display:inline-flex}.twikoo .tk-input__inner{color:currentColor;box-sizing:border-box;background-color:#0000;border:1px solid #9093994f;border-radius:4px;outline:none;width:100%;height:32px;padding:0 12px;font-size:.875rem;line-height:32px;transition:border-color .2s;display:inline-block}.twikoo .tk-input__inner:hover{border-color:#90939980}.twikoo .tk-input__inner:focus{border-color:#409eff}.twikoo .tk-input--small .tk-input__inner{height:32px;font-size:.8125rem;line-height:32px}.twikoo .tk-input--mini .tk-input__inner{height:28px;font-size:.75rem;line-height:28px}.twikoo .tk-textarea .tk-input__inner{resize:vertical;height:auto;min-height:66px;padding:6px 12px;line-height:1.5}.twikoo .tk-input.is-disabled .tk-input__inner{cursor:not-allowed;background-color:#9093990f}.twikoo .tk-input__inner[readonly]{cursor:default}.twikoo .tk-input input:invalid{border-color:#f56c6c}.twikoo .tk-input__inner[type=number]{appearance:textfield}.twikoo .tk-input__inner[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}.twikoo .tk-input__inner[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.twikoo .tk-input__suffix{color:#c0c4cc;align-items:center;gap:4px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.twikoo .tk-input__icon{cursor:pointer;align-items:center;line-height:0;display:inline-flex}.twikoo .tk-input__icon:hover{color:#909399}.twikoo .tk-input__count{color:currentColor;background:0 0;font-size:.75rem;position:absolute;bottom:5px;right:10px}.twikoo .tk-input-group__prepend,.twikoo .tk-input-group__append{box-sizing:border-box;white-space:nowrap;color:currentColor;background-color:#90939921;background-clip:padding-box;border:1px solid #9093994f;border-radius:4px;align-items:center;height:32px;padding:0 1rem;line-height:32px;display:inline-flex}.twikoo .tk-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.twikoo .tk-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.twikoo .tk-input--group .tk-input__inner{border-radius:0}.twikoo .tk-input--small .tk-input-group__prepend,.twikoo .tk-input--small .tk-input-group__append{height:32px;font-size:.8125rem;line-height:32px}.twikoo .tk-input--mini .tk-input-group__prepend,.twikoo .tk-input--mini .tk-input-group__append{height:28px;font-size:.75rem;line-height:28px}.twikoo .tk-meta-input{display:flex}.twikoo .tk-meta-input .tk-input{flex:1;width:calc(33.3333% - .333333rem)}.twikoo .tk-meta-input .tk-input+.tk-input{margin-left:.5rem}.twikoo .tk-meta-input .tk-input-group__prepend{padding:0 1rem}@media screen and (max-width:767px){.twikoo .tk-meta-input{flex-direction:column}.twikoo .tk-meta-input .tk-input{width:auto}.twikoo .tk-meta-input .tk-input+.tk-input{margin-top:.5rem;margin-left:0}}.twikoo .tk-button{color:currentColor;cursor:pointer;white-space:nowrap;background-color:#90939910;border:1px solid #9093994f;border-radius:4px;padding:12px 20px;font-size:.875rem;line-height:1;transition:all .1s;display:inline-block}.twikoo .tk-button:not(.tk-button--primary):not(.tk-button--text):not(.is-disabled):active,.twikoo .tk-button:not(.tk-button--primary):not(.tk-button--text):not(.is-disabled):focus,.twikoo .tk-button:not(.tk-button--primary):not(.tk-button--text):not(.is-disabled):hover{color:#409eff;background-color:#409eff10;border-color:#409eff80}.twikoo .tk-button--primary{color:#fff;background:#409eff;border-color:#409eff}.twikoo .tk-button--primary:not(.is-disabled):focus,.twikoo .tk-button--primary:not(.is-disabled):hover{color:#fff;background:#66b1ff;border-color:#66b1ff}.twikoo .tk-button--primary:not(.is-disabled):active{color:#fff;background:#3a8ee6;border-color:#3a8ee6}.twikoo .tk-button--primary.is-disabled,.twikoo .tk-button--primary.is-disabled:active,.twikoo .tk-button--primary.is-disabled:focus,.twikoo .tk-button--primary.is-disabled:hover{color:#ffffffa1;background-color:#409eff80;border-color:#0000}.twikoo .tk-button--info{color:currentColor;background-color:#90939910;border-color:#9093994f}.twikoo .tk-button--large{padding:13px 20px;font-size:1rem}.twikoo .tk-button--small{border-radius:3px;padding:9px 15px;font-size:.75rem}.twikoo .tk-button--mini{border-radius:3px;padding:7px 15px;font-size:.75rem}.twikoo .tk-button--text{color:#409eff;background:0 0;border-color:#0000;padding-left:0;padding-right:0}.twikoo .tk-button--text:not(.is-disabled):focus,.twikoo .tk-button--text:not(.is-disabled):hover{color:#66b1ff;background:0 0}.twikoo .tk-button--text:not(.is-disabled):active{color:#3a8ee6}.twikoo .tk-button.is-disabled{opacity:.5;cursor:not-allowed}.twikoo .tk-button.is-loading{pointer-events:none;opacity:.7;cursor:wait}.twikoo .tk-button__spinner{margin-right:4px}.twikoo .tk-button__spinner svg{animation:.8s linear infinite tk-spin}.twikoo .tk-button+.tk-button{margin-left:.5rem}.twikoo .tk-input-group__append .tk-button,.twikoo .tk-input-group__prepend .tk-button{font-size:inherit}.twikoo .tk-input-group__append .tk-button{color:currentColor;background:0 0;border:0;border-radius:0 3px 3px 0;height:100%;margin:-1px -1rem;padding:0 15px}.twikoo .tk-input-group__append .tk-button:hover{color:#409eff}@keyframes tk-spin{to{transform:rotate(360deg)}}.twikoo .tk-submit{flex-direction:column;display:flex}.twikoo .tk-col{flex-direction:column;flex:1;display:flex}.twikoo .tk-meta-input{margin-bottom:.5rem}.twikoo .tk-row.actions{justify-content:flex-end;align-items:center;margin-top:1rem;margin-bottom:1rem;margin-left:3.5rem;position:relative}.twikoo .tk-row-actions-start{flex:1;align-items:center;display:flex}.twikoo .tk-submit-action-icon{cursor:pointer;flex-shrink:0;align-self:center;width:1.25em;margin-right:10px;line-height:0;display:inline-block}.twikoo .tk-submit-action-icon svg:hover{opacity:.8}.twikoo .tk-submit-action-icon .tk-icon,.twikoo .tk-submit-action-icon .tk-icon svg{width:100%}.twikoo .tk-submit-action-icon .tk-icon svg{height:auto}.twikoo .tk-submit-action-icon.__markdown{color:#909399}.twikoo .tk-input-image{display:none}.twikoo .tk-input{flex:1}.twikoo .tk-input .tk-textarea__inner{background-position:100% 100%;background-repeat:no-repeat}.twikoo .tk-turnstile-container,.twikoo .tk-geetest-container,.twikoo .tk-cap-container{z-index:1;position:absolute;bottom:-75px;right:0}.twikoo .tk-turnstile{flex-direction:column;display:flex}.twikoo .tk-preview-container{word-break:break-word;border:1px solid #8080804f;border-radius:4px;margin-bottom:1rem;margin-left:3rem;padding:5px 15px}.twikoo .tk-fade-in{animation:.3s tkFadeIn}@keyframes tkFadeIn{0%{opacity:0}to{opacity:1}}.twikoo .tk-main{flex:1;width:0}.twikoo .tk-row{flex-direction:row;flex:1;justify-content:space-between;display:flex}.twikoo .tk-nick-link{color:inherit;text-decoration:none}.twikoo .tk-replies .tk-nick-link{font-size:.9em}.twikoo .tk-nick-link:hover{color:#409eff}.twikoo .tk-actions{margin-left:1em;display:none}.twikoo .tk-actions button{appearance:none;color:#409eff;cursor:pointer;background:0 0;border:none;margin:0;padding:0;text-decoration:none;display:inline}.twikoo .tk-comment:hover .tk-actions{display:inline}.twikoo .tk-meta{flex-wrap:wrap;align-items:baseline;gap:.25em;display:flex}.twikoo .tk-actions button+button{margin-left:.25em}.twikoo .tk-extras{color:#999;flex-wrap:wrap;font-size:.875em;display:flex}.twikoo .tk-extra{align-items:center;margin-top:.5rem;margin-right:.75rem;display:flex}.twikoo .tk-icon.__comment{width:1em;height:1em;line-height:1;display:inline-flex}.twikoo .tk-extra-text{line-height:1}.twikoo .tk-tag{background-color:#f2f6fc;padding:0 .5em;font-size:.75em;display:inline-block}.twikoo .tk-tag-green{color:#67c23a;background-color:#67c23a21;border:1px solid #67c23a80;border-radius:2px}.twikoo .tk-tag-yellow{color:#e6a23c;background-color:#e6a23c21;border:1px solid #e6a23c80;border-radius:2px}.twikoo .tk-tag-blue{color:#409eff;background-color:#409eff21;border:1px solid #409eff80;border-radius:2px}.twikoo .tk-tag-red{color:#f56c6c;background-color:#f56c6c21;border:1px solid #f56c6c80;border-radius:2px}.twikoo .tk-comment{word-break:break-all;flex-direction:row;margin-top:1rem;display:flex}.twikoo .tk-content{max-height:500px;margin-top:.5rem;position:relative;overflow:hidden}.twikoo .tk-content-expand{max-height:none}.twikoo .tk-replies .tk-content{font-size:.9em}.twikoo .tk-comment .vemoji{vertical-align:middle;max-height:2em}.twikoo .tk-replies{max-height:200px;position:relative;overflow:hidden}.twikoo .tk-replies-expand{max-height:none;overflow:unset}.twikoo .tk-submit{margin-top:1rem}.twikoo .tk-expand{font-size:.75em}.twikoo .tk-lightbox{z-index:999;background-color:#0000004d;display:block;position:fixed;inset:0}.twikoo .tk-lightbox-image{background:linear-gradient(90deg,#eee 50%,#e3e3e3 0) 0 0/40px 100%;width:auto;min-width:100px;max-width:95%;height:auto;min-height:30px;max-height:95%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.twikoo .tk-error{color:#f56c6c;background-color:#f56c6c21;border:1px solid #f56c6c80;border-radius:4px;gap:8px;padding:12px;display:flex}.twikoo .tk-error__icon svg{width:20px;height:20px}.twikoo .tk-error__title{font-weight:600}.twikoo .tk-error__toggle{color:currentColor;opacity:.7;cursor:pointer;background:0 0;border:none;margin-top:4px;padding:0;font-size:.75rem}.twikoo .tk-error__detail{color:currentColor;opacity:.7;word-break:break-all;margin-top:6px;font-size:.75rem}.twikoo .tk-error__raw{white-space:pre-wrap;margin:4px 0 0}.twikoo .tk-comments-search{gap:.5rem;margin-bottom:1rem;display:flex}.twikoo .tk-comments-search .tk-input{flex:1}@media (max-width:480px){.twikoo .tk-comments-search{flex-wrap:wrap}.twikoo .tk-comments-search .tk-input{flex-basis:100%}}.twikoo .tk-comments-title{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;font-size:1.25rem;font-weight:700;line-height:1;display:flex}.twikoo .tk-comments-count.__hidden{visibility:hidden}.twikoo .tk-comments-count{white-space:nowrap;flex-shrink:0}.twikoo .tk-comments-actions{white-space:nowrap;align-items:center;gap:.5em;display:flex}.twikoo .tk-comments-container{flex-direction:column;min-height:10rem;display:flex}.twikoo .tk-comments-no{text-align:center;flex:1;justify-content:center;align-items:center;display:flex}.twikoo .tk-comments-sort{align-items:center;gap:.75em;margin-right:.5em;line-height:1;display:flex}.twikoo .tk-sort-item{cursor:pointer;color:#409eff99;background:0 0;border:0;align-items:center;padding:0;font-size:.75rem;line-height:1;display:inline-flex}.twikoo .tk-sort-item.__active{color:#409eff}.twikoo .tk-sort-item:focus{color:#409eff;outline:none}.twikoo .tk-icon.__comments{vertical-align:middle;cursor:pointer;color:#409eff;flex-shrink:0;justify-content:center;align-items:center;width:.75rem;height:.75rem;line-height:0;display:inline-flex}.twikoo .tk-icon.__comments.__active{color:#fff;background:#409eff;border-radius:.125rem;box-shadow:0 0 0 .2rem #409eff}.twikoo .tk-icon.__comments svg{width:100%;height:100%;display:block}.twikoo div.code-toolbar{border-radius:.3em;position:relative}.twikoo .tk-content pre,.twikoo .tk-preview-container pre{max-width:100%;overflow-x:auto}.twikoo .tk-content pre code,.twikoo .tk-preview-container pre code{white-space:pre;word-break:normal}.twikoo div.code-toolbar>.toolbar{font-size:.8125rem;font-weight:500;display:flex;position:absolute;top:4px;right:4px}.twikoo div.code-toolbar>.toolbar>.toolbar-item{margin-left:.3em}.twikoo div.code-toolbar>.toolbar>.toolbar-item>a,.twikoo div.code-toolbar>.toolbar>.toolbar-item>button,.twikoo div.code-toolbar>.toolbar>.toolbar-item>span{border-radius:.3em;padding:2px 4px}.twikoo div.code-toolbar>.toolbar>.toolbar-item>button{border:1px solid #8080804f}.twikoo div.code-toolbar>.toolbar>.toolbar-item>button:hover{cursor:pointer}.twikoo .tk-footer{text-align:end;color:#999;width:100%;margin-top:1em;font-size:.75em}.twikoo .tk-pagination,.twikoo .tk-pagination-pagers{display:flex}.twikoo .tk-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;width:100%}.twikoo .tk-pagination-options{align-items:center;display:flex}.twikoo .tk-pagination-pager{cursor:pointer;justify-content:center;align-items:center;width:2em;height:2em;display:flex}.twikoo .tk-pagination-pager.__current{color:#fff;pointer-events:none;background-color:#409eff}.twikoo .tk-pagination-size,.twikoo .tk-pagination-goto{width:50px;margin:0 .5em}.twikoo .tk-pagination .tk-input__inner{text-align:center;height:28px;padding:0}.twikoo .tk-admin-comment{flex-direction:column;align-items:center;display:flex}.twikoo .tk-admin-comment a{color:currentColor;text-decoration:underline}.twikoo .tk-admin-warn{margin-bottom:1em}.twikoo .tk-admin-security-alert{margin-bottom:0;padding-right:2.5rem;position:relative}.twikoo .tk-admin-security-alert .tk-admin-close{float:none;width:1rem;height:1rem;margin:0;padding:.5rem;line-height:0;position:absolute;top:0;right:0}.twikoo .tk-admin-security-alert-message{margin-bottom:.5em}.twikoo .tk-admin-security-alert-url{word-break:break-all;background:#0003;border-radius:4px;margin-bottom:.5em;padding:.5em}.twikoo .tk-admin-comment-filter{justify-content:center;align-items:center;width:100%;display:flex}.twikoo .tk-admin-comment-filter-keyword{flex:1}.twikoo .tk-admin-comment-filter-type{color:#fff;-webkit-appearance:none;-moz-appearance:none;background-color:#0003;border:1px solid #9093994f;border-radius:4px;height:32px;margin:0 .5em;padding:0 .5em;position:relative}.twikoo .tk-admin-comment-filter-type:focus{border-color:#409eff}.twikoo .tk-admin-comment-filter-type option{color:initial}.twikoo .tk-admin-comment-list{margin-top:1em}.twikoo .tk-admin-comment-list,.twikoo .tk-admin-comment-item{flex-direction:column;justify-content:stretch;width:100%;display:flex}.twikoo .tk-admin-comment-meta{flex-wrap:wrap;align-items:center;margin-bottom:.5em;display:flex}.twikoo .tk-admin-comment .tk-avatar{margin-right:.5em}.twikoo .tk-admin-comment .tk-content{max-height:none}.twikoo .tk-admin-actions{border-bottom:1px solid #ffffff80;margin-bottom:1em;display:flex}.twikoo .tk-admin-config-groups{padding-right:.5em;position:relative;overflow-y:auto}.twikoo .tk-admin-config-groups .tk-admin-config-group,.twikoo .tk-admin-config-groups .tk-admin-config-group-title{background:0 0}.twikoo .tk-admin-config-group-title{margin-top:1em;font-size:1.25rem;font-weight:700}.twikoo .tk-admin-config-item{grid-template-columns:30% 70%;align-items:center;margin-top:1em;display:grid;position:relative}.twikoo .tk-admin-config-title{text-align:right;text-overflow:ellipsis;white-space:nowrap;margin-right:1em;overflow:hidden}.twikoo .tk-admin-config-input{position:relative}.twikoo .tk-admin-config-select{appearance:none;box-sizing:border-box;color:#fff;cursor:pointer;font-size:inherit;background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ffffff' d='M6 8.825L1.175 4 2.238 2.938 6 6.7l3.763-3.762L10.825 4z'/%3E%3C/svg%3E\") right 10px center no-repeat;border:1px solid #9093994f;border-radius:4px;outline:none;width:100%;height:32px;padding:0 30px 0 10px;line-height:32px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);display:inline-block}.twikoo .tk-admin-config-select:focus{border-color:#fff9}.twikoo .tk-admin-config-select option{color:#fff;background:#333}.twikoo .tk-admin-config-desc{overflow-wrap:break-word;margin-top:.5em;font-size:.75em}.twikoo .tk-admin-config-actions{justify-content:center;align-items:center;margin-top:1em;display:flex}.twikoo .tk-admin-config-message{text-align:center;margin-top:.5em}.twikoo .tk-admin-config-email-test-desc{margin:1em 0}.twikoo .tk-admin-import{flex-direction:column;display:flex}.twikoo .tk-admin-import-label{margin-top:1em;font-size:1.25rem;font-weight:700}.twikoo .tk-admin-import select,.twikoo .tk-admin-import input,.twikoo .tk-admin-import .tk-button,.twikoo .tk-admin-import .tk-input{margin-top:1em}.twikoo .tk-admin-import select{color:#fff;background-color:#0003;border:1px solid #9093994f;border-radius:4px;height:32px;padding:0 .5em}.twikoo .tk-admin-import select option{color:initial}.twikoo .tk-admin-container{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.twikoo .tk-admin{pointer-events:all;color:#fff;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);visibility:hidden;background-color:#000000d9;width:100%;height:100%;transition:all .5s;position:absolute;top:0;left:100%;overflow-y:auto}.twikoo .tk-admin::-webkit-scrollbar{background-color:#0000;width:5px}.twikoo .tk-admin::-webkit-scrollbar-track{background-color:#0000}.twikoo .tk-admin::-webkit-scrollbar-thumb{background-color:#ffffff4f}.twikoo .tk-admin.__show{visibility:visible;left:0}.twikoo .tk-admin-close{appearance:none;cursor:pointer;box-sizing:content-box;color:#fff;z-index:1;background:0 0;border:none;width:1rem;height:1rem;margin:0;padding:1rem;line-height:0;text-decoration:none;display:block;position:sticky;top:0;left:calc(100% - 3rem)}.twikoo .tk-login,.twikoo .tk-regist{box-sizing:border-box;flex-direction:column;align-items:center;width:100%;padding:0 2rem;display:flex}.twikoo .tk-login-title{color:#fff;text-align:center;margin-top:10rem;font-size:1.25rem}.twikoo .tk-login form,.twikoo .tk-regist form{text-align:center;width:100%}.twikoo .tk-password,.twikoo .tk-login-msg{color:#fff;text-align:center;width:80%;margin-top:1rem}.twikoo .tk-password .tk-input__inner{min-width:100px}.twikoo .tk-password .tk-input-group__prepend{color:#fff}.twikoo .tk-login-msg a{color:#fff;margin-left:1em;text-decoration:underline}.twikoo .tk-regist-button{margin-top:1rem}.twikoo .tk-panel{color:#fff;box-sizing:border-box;width:100%;padding:2rem;position:absolute;top:0}.twikoo .tk-panel-title{justify-content:space-between;align-items:flex-end;font-size:1.5rem;display:flex}.twikoo .tk-panel-logout{color:#fff;font-size:1rem;text-decoration:underline}.twikoo .tk-panel .tk-tabs{border-bottom:2px solid #c0c4cc;margin-bottom:1em;display:flex}.twikoo .tk-panel .tk-tab{color:#c0c4cc;cursor:pointer;margin-bottom:-2px;margin-right:2em;line-height:2em}.twikoo .tk-panel .tk-tab.__active{color:#fff;border-bottom:2px solid #fff}.twikoo{position:relative}.twikoo svg{fill:currentColor;width:100%;height:100%}.twikoo .tk-expand{cursor:pointer;text-align:center;box-sizing:border-box;width:100%;padding:.75em;transition:all .5s}.twikoo .tk-expand:hover{background-color:#00000021}.twikoo .tk-expand:active{background-color:#00000030}.twikoo .tk-content img{vertical-align:middle;max-width:300px;max-height:300px}.twikoo .tk-owo-emotion,.twikoo .OwO-item img{width:3em;height:auto}.twikoo .tk-admin-warn{color:#6b5900;box-sizing:border-box;background-color:#fff7d0;border-left:.5rem solid #e7c000;align-self:stretch;padding:1rem 1.5rem}.twikoo .tk-loading-parent--relative{position:relative}.twikoo .tk-loading-mask{z-index:2000;-webkit-backdrop-filter:opacity(20%);backdrop-filter:opacity(20%);background-color:#0000;justify-content:center;align-items:center;margin:0;transition:opacity .3s;display:flex;position:absolute;inset:0}.twikoo .tk-loading-spinner .circular{width:42px;height:42px;animation:2s linear infinite tk-loading-rotate}.twikoo .tk-loading-spinner .path{stroke:#409eff;stroke-width:2px;stroke-linecap:round;animation:1.5s ease-in-out infinite tk-loading-dash}@keyframes tk-loading-rotate{to{transform:rotate(360deg)}}@keyframes tk-loading-dash{0%{stroke-dasharray:1 200;stroke-dashoffset:0}50%{stroke-dasharray:90 150;stroke-dashoffset:-40px}to{stroke-dasharray:90 150;stroke-dashoffset:-120px}}.OwO{-webkit-user-select:none;user-select:none}.OwO.OwO-open .OwO-body{display:block}.OwO .OwO-logo{display:flex}.OwO .OwO-body{color:#4a4a4a;z-index:1000;background-color:#fff;border:1px solid #9093994f;border-radius:0 4px 4px;max-width:500px;display:none;position:absolute;top:2em;left:0;right:0}.night .OwO .OwO-body,.darkmode .OwO .OwO-body,.DarkMode .OwO .OwO-body,[data-theme=dark] .OwO .OwO-body,[data-user-color-scheme=dark] .OwO .OwO-body{color:#fff;background-color:#4a4a4a}.OwO .OwO-body .OwO-items{-webkit-user-select:none;user-select:none;margin:0;padding:10px 0 10px 10px;font-size:0;display:none;overflow:auto}.OwO .OwO-body .OwO-items .OwO-item{cursor:pointer;text-align:center;border-radius:5px;padding:5px 10px;font-size:12px;line-height:14px;list-style-type:none;transition:all .3s;display:inline-block}.OwO .OwO-body .OwO-items .OwO-item:hover{background-color:#90939921;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f}.OwO .OwO-body .OwO-items-emoji .OwO-item{font-size:20px;line-height:19px}.OwO .OwO-body .OwO-items-image .OwO-item{box-sizing:border-box;width:14%}@media screen and (max-width:600px){#twikoo .OwO-items>.OwO-item{width:16%}}@media screen and (max-width:460px){#twikoo .OwO-items>.OwO-item{width:20%}}@media screen and (max-width:400px){#twikoo .OwO-items>.OwO-item{width:25%}}@media screen and (max-width:330px){#twikoo .OwO-items>.OwO-item{width:33%}}.OwO .OwO-body .OwO-items-image .OwO-item img{max-width:100%}.OwO .OwO-body .OwO-items-show{display:block}.OwO .OwO-body .OwO-bar{border-top:1px solid #9093994f;border-radius:0 0 4px 4px;width:100%}.OwO .OwO-body .OwO-bar .OwO-packages{margin:0;padding:0;font-size:0}.OwO .OwO-body .OwO-bar .OwO-packages li{cursor:pointer;margin-right:3px;padding:0 10px;font-size:14px;line-height:30px;list-style-type:none;display:inline-block}.OwO .OwO-body .OwO-bar .OwO-packages li:first-child{border-radius:0 0 0 3px}.OwO .OwO-body .OwO-bar .OwO-packages li:hover{background-color:#90939921}.OwO .OwO-body .OwO-bar .OwO-packages .OwO-package-active{background-color:#90939921;transition:all .3s}\n/*$vite$:1*/"));document.head.appendChild(s);})();
|
|
3
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.twikoo={}))})(this,function(e){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},l=(e,r,i)=>(i=e==null?{}:t(a(e)),c(r||!e||!e.__esModule||!o.call(e,`default`)?n(i,`default`,{value:e,enumerable:!0}):i,e)),u=`2.0.0-beta.4`,d=[`webhook`,`qmsg`,`serverchan`,`pushplus`,`pushplushxtrip`,`dingtalk`,`wecom`,`bark`,`gocqhttp`,`onebot`,`atri`,`pushdeer`,`igot`,`telegram`,`feishu`,`ifttt`,`wecombot`,`discord`,`wxpusher`,`join`],f=class extends Error{kind;httpStatus;rawMessage;logText;requestId;constructor(e,t,n={}){super(t),this.name=`TwikooError`,this.kind=e,this.httpStatus=n.httpStatus,this.rawMessage=n.rawMessage??t,this.logText=n.logText,this.requestId=n.requestId}},p={tcb:null,options:{}};function m(e,t){p.tcb=e,p.options=t}function h(){return p}function g(e){return typeof e==`string`&&/^http(s)?:\/\//.test(e)}function _(e,t){return new Promise((n,r)=>{let i=localStorage.getItem(`twikoo-access-token`),a=new XMLHttpRequest,o=Date.now();a.onreadystatechange=()=>{if(a.readyState!==4)return;let e=Date.now()-o;if(a.status===200)try{let e=JSON.parse(a.responseText);e.accessToken&&localStorage.setItem(`twikoo-access-token`,typeof e.accessToken==`string`?e.accessToken:``),n(e)}catch{r(new f(`UNKNOWN`,`后端返回格式异常`,{rawMessage:a.responseText.slice(0,200)}))}else a.status===0?r(new f(e>3e4?`TIMEOUT`:`CORS`,`请求被跨域策略拦截或网络不可达`,{rawMessage:a.statusText||`status 0`})):a.status===404?r(new f(`NOT_FOUND`,`接口地址不存在`,{httpStatus:404,rawMessage:a.responseText.slice(0,200)})):a.status===401||a.status===403?r(new f(`CLIENT_ERROR`,`认证失败,请重新登录`,{httpStatus:a.status,rawMessage:a.responseText.slice(0,200)})):a.status===429?r(new f(`REJECTED`,`请求过于频繁`,{httpStatus:429,rawMessage:a.responseText.slice(0,200)})):a.status>=500?r(new f(`SERVER_ERROR`,`后端异常`,{httpStatus:a.status,rawMessage:a.responseText.slice(0,200)})):r(new f(`CLIENT_ERROR`,`请求失败(${a.status})`,{httpStatus:a.status,rawMessage:a.responseText.slice(0,200)}))};try{a.open(`POST`,e),a.setRequestHeader(`Content-Type`,`application/json`),a.send(JSON.stringify({accessToken:i,...t,envId:e}))}catch(e){r(new f(`NETWORK`,`无法连接到后端`,{rawMessage:String(e)}))}})}async function v(e,t,n={}){let r=e??p.tcb,i=typeof n.envId==`string`?n.envId:typeof p.options.envId==`string`?p.options.envId:void 0,a=typeof n.funcName==`string`?n.funcName:typeof p.options.funcName==`string`?p.options.funcName:`twikoo`;if(r)return await r.app.callFunction({name:a,data:{event:t,...n}});if(typeof i==`string`&&g(i))return await _(i,{event:t,...n});throw Error(`缺少 envId 配置 - https://twikoo.js.org`)}var y={verbose:1,info:2,warn:3,error:4}[(typeof process<`u`&&process.env,`info`).toLowerCase()]||2,b={verbose:(...e)=>{y<=1&&console.log(...e)},info:(...e)=>{y<=2&&console.info(...e)},warn:(...e)=>{y<=3&&console.warn(...e)},error:(...e)=>{y<=4&&console.error(...e)}},ee={ADMIN_CLIENT_VERSION:`前端版本:`,ADMIN_SERVER_VERSION:`云函数版本:`,ADMIN_COMMENT:`评论管理`,ADMIN_COMMENT_DELETE:`删除`,ADMIN_COMMENT_DELETE_CONFIRM:`确认删除?`,ADMIN_COMMENT_FILTER_ALL:`全部`,ADMIN_COMMENT_FILTER_VISIBLE:`只看可见`,ADMIN_COMMENT_FILTER_HIDDEN:`只看隐藏`,ADMIN_COMMENT_HIDE:`隐藏`,ADMIN_COMMENT_IS_SPAM_SUFFIX:` (已隐藏)`,ADMIN_COMMENT_SEARCH:`搜索`,ADMIN_COMMENT_SEARCH_PLACEHOLDER:`搜索昵称、邮箱、网址、IP、评论正文、文章地址`,ADMIN_COMMENT_SHOW:`显示`,ADMIN_COMMENT_TOP:`置顶`,ADMIN_COMMENT_UNTOP:`取消置顶`,ADMIN_COMMENT_VIEW:`查看`,ADMIN_COMMENT_SECURITY_ALERT:`评论链接与本站不同!出于安全考虑,请手动复制以下网址访问:`,ADMIN_COMMENT_PARSE_ERROR:`无法解析评论链接,请仔细检查链接后手动复制以下网址访问:`,ADMIN_CONFIG:`配置管理`,ADMIN_CONFIG_CATEGORY_COMMON:`通用`,ADMIN_CONFIG_CATEGORY_IM:`即时通知`,ADMIN_CONFIG_CATEGORY_MAIL:`邮件通知`,ADMIN_CONFIG_CATEGORY_PLUGIN:`插件`,ADMIN_CONFIG_CATEGORY_PRIVACY:`隐私`,ADMIN_CONFIG_CATEGORY_SPAM:`反垃圾`,ADMIN_CONFIG_CATEGORY_CAPTCHA:`人机验证`,ADMIN_CONFIG_IMAGE_CDN_NONE:`无(不启用图片上传)`,ADMIN_CONFIG_CAPTCHA_NONE:`无`,ADMIN_CONFIG_CAPTCHA_TURNSTILE:`Cloudflare Turnstile`,ADMIN_CONFIG_CAPTCHA_GEETEST:`极验 Geetest`,ADMIN_CONFIG_CAPTCHA_CAP:`Cap`,ADMIN_CONFIG_EMAIL_TEST:`邮件通知测试`,ADMIN_CONFIG_EMAIL_TEST_BTN:`发送测试邮件`,ADMIN_CONFIG_EMAIL_TEST_HELP:`输入一个邮箱地址,发送测试邮件`,ADMIN_CONFIG_EMAIL_TEST_RESULT:`测试结果:`,ADMIN_CONFIG_EXAMPLE:`示例:`,ADMIN_CONFIG_ITEM_AKISMET_KEY:`Akismet 反垃圾评论,用于垃圾评论检测,设为 "MANUAL_REVIEW" 开启人工审核,留空不使用反垃圾。注册:https://akismet.com`,ADMIN_CONFIG_ITEM_BLOGGER_NICK:`博主的昵称。`,ADMIN_CONFIG_ITEM_BLOGGER_EMAIL:`博主的邮箱地址,用于邮件通知、博主标识。`,ADMIN_CONFIG_ITEM_COMMENT_BG_IMG:`评论框自定义背景图片 URL 地址。`,ADMIN_CONFIG_ITEM_COMMENT_PAGE_SIZE:`评论列表分页大小,默认为 8。`,ADMIN_CONFIG_ITEM_COMMENT_PLACEHOLDER:`评论框提示信息,可用<br>换行,默认为空`,ADMIN_CONFIG_ITEM_CORS_ALLOW_ORIGIN:`CORS 安全域名,注意:如果您不了解什么是 CORS,此项请留空,错误设置会导致无法加载,默认为空,格式为 https://blog.example.com;如需添加多域名请使用,分隔`,ADMIN_CONFIG_ITEM_DEFAULT_GRAVATAR:`默认的头像显示。默认值(留空)为 "initials",可选:"404"、"mp"、"identicon"、"monsterid"、"wavatar"、"retro"、"robohash"、"blank"`,ADMIN_CONFIG_ITEM_EMOTION_CDN:`表情 CDN,英文逗号分隔。默认为:https://owo.imaegoo.com/owo.json`,ADMIN_CONFIG_ITEM_FORBIDDEN_WORDS:`违禁词配置,包含违禁词的内容会直接标记为垃圾评论。英文逗号分隔。`,ADMIN_CONFIG_ITEM_BLOCKED_WORDS:`屏蔽词配置,包含屏蔽词的内容会直接评论失败。英文逗号分隔。`,ADMIN_CONFIG_ITEM_GRAVATAR_CDN:`自定义头像 CDN 地址。如:cn.gravatar.com, weavatar.com, cravatar.cn, sdn.geekzu.org, gravatar.loli.net,默认:weavatar.com`,ADMIN_CONFIG_ITEM_HIDE_ADMIN_CRYPT:`隐藏管理面板入口。可设置一个“暗号”,只有在“昵称”一栏输入相同的“暗号”时,管理面板入口才会显示,留空则不隐藏管理入口`,ADMIN_CONFIG_ITEM_QQ_API_KEY:`QQ昵称API密钥,用于获取QQ昵称。前往 https://api.tqq.me/dashboard/api-keys 获取`,ADMIN_CONFIG_ITEM_HIGHLIGHT:`启用代码高亮功能。如果您的主题和代码高亮有冲突,请设为 false。默认:true`,ADMIN_CONFIG_ITEM_HIGHLIGHT_THEME:`代码高亮主题,可选:"default"、"coy"、"dark"、"funky"、"okaidia"、"solarizedlight"、"tomorrow"、"twilight",访问 https://prismjs.com 可预览主题效果。如果您的主题和代码高亮有冲突,请设为 none。默认:none`,ADMIN_CONFIG_ITEM_HIGHLIGHT_PLUGIN:`代码高亮插件,可选:"showLanguage"、"copyButton",分别表示:展示代码语言、展示代码拷贝按钮。可以同时设置多个选项,如果想要不添加任何代码高亮插件,请设为 none。默认:none。`,ADMIN_CONFIG_ITEM_IMAGE_CDN:`插入图片所使用的图床,目前支持:"qcloud"、"7bu (https://7bu.top)"、"see (https://s.ee)"、"lskypro"、"piclist"、"easyimage"、"chevereto"、"S3 / R2 / MinIO"`,ADMIN_CONFIG_ITEM_IMAGE_CDN_URL:`图床的 URL,仅当 IMAGE_CDN 为 "lskypro" / "piclist" / "easyimage" / "s3" 时需要填写`,ADMIN_CONFIG_ITEM_IMAGE_CDN_TOKEN:`图床 token。qcloud 图床无需设置`,ADMIN_CONFIG_ITEM_NSFW_API_URL:`NSFW 图片检测 API 地址。免费服务:nsfw.qixz.cn,项目:github.com/HG-ha/nsfwpy`,ADMIN_CONFIG_ITEM_NSFW_THRESHOLD:`NSFW 检测阈值(0-1),当检测分数高于此值时拒绝上传。默认:0.5`,ADMIN_CONFIG_ITEM_S3_REGION:`S3 存储区域,例如 us-east-1。使用兼容 S3 的服务(如 Cloudflare R2、MinIO)时可填任意值`,ADMIN_CONFIG_ITEM_S3_BUCKET:`S3 存储桶名称`,ADMIN_CONFIG_ITEM_S3_ACCESS_KEY_ID:`S3 Access Key ID`,ADMIN_CONFIG_ITEM_S3_SECRET_ACCESS_KEY:`S3 Secret Access Key`,ADMIN_CONFIG_ITEM_S3_ENDPOINT:`S3 自定义 Endpoint,使用 Cloudflare R2、MinIO 等兼容 S3 的服务时填写`,ADMIN_CONFIG_ITEM_S3_FORCE_PATH_STYLE:`设置 S3_ENDPOINT 时,是否将 S3_BUCKET 拼入上传地址路径。默认为 true,适用于 Cloudflare R2、MinIO 等 path-style S3 兼容端点;使用已绑定存储桶的自定义域名时设为 false,例如腾讯云 COS 自定义域名`,ADMIN_CONFIG_ITEM_S3_CDN_URL:`S3 图片访问域名(CDN 域名),留空则使用默认 S3/Endpoint URL`,ADMIN_CONFIG_ITEM_S3_PATH_PREFIX:`S3 图片存储路径前缀,例如 images/twikoo,留空则存储在根目录`,ADMIN_CONFIG_ITEM_LIGHTBOX:`使用简易图片点击放大效果。默认:false`,ADMIN_CONFIG_ITEM_LIMIT_PER_MINUTE:`单个 IP 发言频率限制(条/10分钟),0 为无限制,默认:10`,ADMIN_CONFIG_ITEM_LIMIT_PER_MINUTE_ALL:`全站发言频率限制(条/10分钟),0 为无限制,默认:10`,ADMIN_CONFIG_ITEM_LIMIT_LENGTH:`评论长度限制,0 为无限制,默认:500`,ADMIN_CONFIG_ITEM_MAIL_SUBJECT:`自定义通知邮件主题,留空则使用默认主题。`,ADMIN_CONFIG_ITEM_MAIL_SUBJECT_ADMIN:`自定义博主通知邮件主题,留空则使用默认主题。`,ADMIN_CONFIG_ITEM_MAIL_TEMPLATE:"自定义通知邮件模板,留空则使用默认模板。可包含的字段:${SITE_URL}, ${SITE_NAME}, ${PARENT_NICK}, ${PARENT_COMMENT}, ${NICK}, ${COMMENT}, ${POST_URL}, ${IMG}, ${PARENT_IMG}",ADMIN_CONFIG_ITEM_MAIL_TEMPLATE_ADMIN:"自定义博主通知邮件模板,留空则使用默认模板。可包含的字段:${SITE_URL}, ${SITE_NAME}, ${NICK}, ${COMMENT}, ${POST_URL}, ${IP}, ${MAIL}, ${IMG}",ADMIN_CONFIG_ITEM_MASTER_TAG:`博主标识自定义文字,默认为 “博主”。`,ADMIN_CONFIG_ITEM_NOTIFY_SPAM:`垃圾评论是否发送通知,默认:true`,ADMIN_CONFIG_ITEM_HIDE_SPAM:`前台评论区对所有人隐藏垃圾评论,包括管理员和评论作者。评论管理后台仍可审核和恢复。设为 true 开启,默认:false。`,ADMIN_CONFIG_ITEM_CAPTCHA_PROVIDER:`人机验证码提供商`,ADMIN_CONFIG_ITEM_TURNSTILE_SITE_KEY:`Turnstile 验证码的站点密钥。申请地址: https://dash.cloudflare.com/?to=/:account/turnstile`,ADMIN_CONFIG_ITEM_TURNSTILE_SECRET_KEY:`Turnstile 验证码的密钥`,ADMIN_CONFIG_ITEM_GEETEST_CAPTCHA_ID:`极验验证码的 Captcha ID。申请地址: https://console.geetest.com/sensbot/management`,ADMIN_CONFIG_ITEM_GEETEST_CAPTCHA_KEY:`极验验证码的 Captcha Key`,ADMIN_CONFIG_ITEM_CAP_API_ENDPOINT:`Cap 验证码 API 端点。留空则使用内嵌 Cap(无需额外部署);外部 Standalone 格式:https://<实例地址>/<site_key>/`,ADMIN_CONFIG_ITEM_CAP_SECRET_KEY:`Cap Secret Key(仅外部 Standalone 需要;内嵌模式可留空)`,ADMIN_CONFIG_ITEM_QCLOUD_SECRET_ID:`腾讯云 secret id,用于垃圾评论检测。同时设置腾讯云和 Akismet 时,只有腾讯云会生效。注册:https://twikoo.js.org/cms.html`,ADMIN_CONFIG_ITEM_QCLOUD_CMS_BIZTYPE:`腾讯云内容安全 Biztype 名称,用于垃圾评论策略。可以自定义垃圾拦截规则`,ADMIN_CONFIG_ITEM_QCLOUD_SECRET_KEY:`腾讯云 secret key`,ADMIN_CONFIG_ITEM_LLM_API_KEY:`LLM API Key,用于 AI 垃圾评论检测。仅在未配置腾讯云和 Akismet 时生效。`,ADMIN_CONFIG_ITEM_LLM_API_ENDPOINT:`LLM API 接口地址,默认:https://api.deepseek.com/v1`,ADMIN_CONFIG_ITEM_LLM_MODEL:`LLM 模型名称,默认:deepseek-v4-pro`,ADMIN_CONFIG_ITEM_LLM_SPAM_PROMPT:`LLM 垃圾检测提示词(可选,留空则使用默认提示词)`,ADMIN_CONFIG_ITEM_LLM_MAX_RETRIES:`LLM 检测最大重试次数(默认 3 次)`,ADMIN_CONFIG_ITEM_PUSHOO_CHANNEL:`即时消息推送平台名称,支持:"qmsg"、"serverchan"、"pushplus"、"pushplushxtrip"、"dingtalk"、"wecom"、"bark"、"gocqhttp"、"atri"、"pushdeer"、"igot"、"telegram"、"feishu" 等`,ADMIN_CONFIG_ITEM_PUSHOO_TOKEN:`即时消息推送 token。请参考 https://pushoo.js.org 里的详细说明配置`,ADMIN_CONFIG_ITEM_DISPLAYED_FIELDS:`界面上展示的输入框,默认:nick,mail,link`,ADMIN_CONFIG_ITEM_REQUIRED_FIELDS:`评论必填信息,设为 nick,mail,link 代表全必填,设为 none 代表全选填,默认:nick,mail`,ADMIN_CONFIG_ITEM_SC_MAIL_NOTIFY:`是否同时通过 IM 和邮件 2 种方式通知博主,默认只通过 IM 通知博主,默认:false`,ADMIN_CONFIG_ITEM_SENDER_EMAIL:`邮件通知邮箱地址。对于大多数邮箱服务商,SENDER_EMAIL 必须和 SMTP_USER 保持一致,否则无法发送邮件。`,ADMIN_CONFIG_ITEM_SENDER_NAME:`邮件通知标题。`,ADMIN_CONFIG_ITEM_SHOW_EMOTION:`启用插入表情功能,默认为:true`,ADMIN_CONFIG_ITEM_SHOW_IMAGE:`启用插入图片功能,默认为:true`,ADMIN_CONFIG_ITEM_SHOW_ORDER:`评论排序下拉框,默认为:true`,ADMIN_CONFIG_ITEM_SHOW_DISLIKE:`评论点踩按钮,默认为:true`,ADMIN_CONFIG_ITEM_SHOW_UA:`是否显示用户系统和浏览器,默认为:true`,ADMIN_CONFIG_ITEM_SHOW_REGION:`是否显示用户 IP 属地到省,可能不准确,不支持 IPv6,默认为:false`,ADMIN_CONFIG_ITEM_SITE_NAME:`网站名称`,ADMIN_CONFIG_ITEM_SITE_URL:`网站地址`,ADMIN_CONFIG_ITEM_SMTP_HOST:`自定义 SMTP 服务器地址。如您已配置 SMTP_SERVICE,此项请留空。`,ADMIN_CONFIG_ITEM_SMTP_PASS:`邮件通知邮箱密码,QQ、163邮箱请填写授权码。`,ADMIN_CONFIG_ITEM_SMTP_PORT:`自定义 SMTP 端口。如您已配置 SMTP_SERVICE,此项请留空。`,ADMIN_CONFIG_ITEM_SMTP_SECURE:`自定义 SMTP 是否使用TLS,请填写 true 或 false。如您已配置 SMTP_SERVICE,此项请留空。`,ADMIN_CONFIG_ITEM_SMTP_SERVICE:`邮件通知邮箱服务商。支持:"126"、"163"、"1und1"、"AOL"、"DebugMail"、"DynectEmail"、"FastMail"、"GandiMail"、"Gmail"、"Godaddy"、"GodaddyAsia"、"GodaddyEurope"、"Hotmail"、"Mail.ru"、"Maildev"、"Mailgun"、"Mailjet"、"Mailosaur"、"Mandrill"、"Naver"、"OpenMailBox"、"Outlook365"、"Postmark"、"QQ"、"QQex"、"SES"、"SES-EU-WEST-1"、"SES-US-EAST-1"、"SES-US-WEST-2"、"SendCloud"、"SendGrid"、"SendPulse"、"SendinBlue"、"Sparkpost"、"Yahoo"、"Yandex"、"Zoho"、"hot.ee"、"iCloud"、"mail.ee"、"qiye.aliyun"`,ADMIN_CONFIG_ITEM_SMTP_USER:`邮件通知邮箱用户名。`,ADMIN_CONFIG_RESET:`重置`,ADMIN_CONFIG_SAVE:`保存`,ADMIN_CREDENTIALS:`私钥文件`,ADMIN_CREDENTIALS_FAQ:`如何获得私钥`,ADMIN_CREDENTIALS_PLACEHOLDER:`请粘贴私钥文件内容`,ADMIN_FORGOT:`忘记密码`,ADMIN_EXPORT:`导出`,ADMIN_EXPORT_WARN:`将全部数据导出为 JSON 文件。如果遇到评论较多、导出失败或缺失数据,请连接数据库手动导出`,ADMIN_EXPORT_COMMENT:`导出评论`,ADMIN_EXPORT_COUNTER:`导出访问量`,ADMIN_IMPORT:`导入`,ADMIN_IMPORT_FILE_REQUIRED:`未选择文件`,ADMIN_IMPORT_IMPORTED:`完成导入 `,ADMIN_IMPORT_IMPORTING:`开始导入 `,ADMIN_IMPORT_LOG:`日志`,ADMIN_IMPORT_SELECT:`请选择`,ADMIN_IMPORT_SELECT_FILE:`选择文件`,ADMIN_IMPORT_SELECT_SOURCE:`选择源系统`,ADMIN_IMPORT_SOURCE_REQUIRED:`未选择源系统`,ADMIN_IMPORT_START:`开始导入`,ADMIN_IMPORT_STARTING:`开始导入`,ADMIN_IMPORT_TIP_ARTALK:`请上传 JSON 格式的 Artalk 导出文件,文件名通常为 comments.data.json`,ADMIN_IMPORT_TIP_DISQUS:`请上传 XML 格式的 Disqus 导出文件,文件名通常为 [网站名称]-[导出时间]-all.xml`,ADMIN_IMPORT_TIP_VALINE:`请上传 JSON 格式的 Valine 导出文件,文件名通常为 Comment.json`,ADMIN_IMPORT_UPLOADED:`上传完成 `,ADMIN_IMPORT_UPLOADING:`已上传 `,ADMIN_IMPORT_WARN:`支持从其他评论系统的备份文件导入评论。
|
|
3
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.twikoo={}))})(this,function(e){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},l=(e,r,i)=>(i=e==null?{}:t(a(e)),c(r||!e||!e.__esModule||!o.call(e,`default`)?n(i,`default`,{value:e,enumerable:!0}):i,e)),u=`2.0.0`,d=[`webhook`,`qmsg`,`serverchan`,`pushplus`,`pushplushxtrip`,`dingtalk`,`wecom`,`bark`,`gocqhttp`,`onebot`,`atri`,`pushdeer`,`igot`,`telegram`,`feishu`,`ifttt`,`wecombot`,`discord`,`wxpusher`,`join`],f=class extends Error{kind;httpStatus;rawMessage;requestId;constructor(e,t,n={}){super(t),this.name=`TwikooError`,this.kind=e,this.httpStatus=n.httpStatus,this.rawMessage=n.rawMessage??t,this.requestId=n.requestId}},p={tcb:null,options:{}};function m(e,t){p.tcb=e,p.options=t}function h(){return p}function g(e){return typeof e==`string`&&/^http(s)?:\/\//.test(e)}function _(e,t){return new Promise((n,r)=>{let i=localStorage.getItem(`twikoo-access-token`),a=new XMLHttpRequest,o=Date.now();a.onreadystatechange=()=>{if(a.readyState!==4)return;let e=Date.now()-o;if(a.status===200)try{let e=JSON.parse(a.responseText);e.accessToken&&localStorage.setItem(`twikoo-access-token`,typeof e.accessToken==`string`?e.accessToken:``),n(e)}catch{r(new f(`UNKNOWN`,`后端返回格式异常`,{rawMessage:a.responseText.slice(0,200)}))}else a.status===0?r(new f(e>3e4?`TIMEOUT`:`CORS`,`请求被跨域策略拦截或网络不可达`,{rawMessage:a.statusText||`status 0`})):a.status===404?r(new f(`NOT_FOUND`,`接口地址不存在`,{httpStatus:404,rawMessage:a.responseText.slice(0,200)})):a.status===401||a.status===403?r(new f(`CLIENT_ERROR`,`认证失败,请重新登录`,{httpStatus:a.status,rawMessage:a.responseText.slice(0,200)})):a.status===429?r(new f(`REJECTED`,`请求过于频繁`,{httpStatus:429,rawMessage:a.responseText.slice(0,200)})):a.status>=500?r(new f(`SERVER_ERROR`,`后端异常`,{httpStatus:a.status,rawMessage:a.responseText.slice(0,200)})):r(new f(`CLIENT_ERROR`,`请求失败(${a.status})`,{httpStatus:a.status,rawMessage:a.responseText.slice(0,200)}))};try{a.open(`POST`,e),a.setRequestHeader(`Content-Type`,`application/json`),a.send(JSON.stringify({accessToken:i,...t,envId:e}))}catch(e){r(new f(`NETWORK`,`无法连接到后端`,{rawMessage:String(e)}))}})}async function v(e,t,n={}){let r=e??p.tcb,i=typeof n.envId==`string`?n.envId:typeof p.options.envId==`string`?p.options.envId:void 0,a=typeof n.funcName==`string`?n.funcName:typeof p.options.funcName==`string`?p.options.funcName:`twikoo`;if(r)return await r.app.callFunction({name:a,data:{event:t,...n}});if(typeof i==`string`&&g(i))return await _(i,{event:t,...n});throw Error(`缺少 envId 配置 - https://twikoo.js.org`)}var y={verbose:1,info:2,warn:3,error:4}[(typeof process<`u`&&process.env,`info`).toLowerCase()]||2,b={verbose:(...e)=>{y<=1&&console.log(...e)},info:(...e)=>{y<=2&&console.info(...e)},warn:(...e)=>{y<=3&&console.warn(...e)},error:(...e)=>{y<=4&&console.error(...e)}},ee={ADMIN_CLIENT_VERSION:`前端版本:`,ADMIN_SERVER_VERSION:`云函数版本:`,ADMIN_COMMENT:`评论管理`,ADMIN_COMMENT_DELETE:`删除`,ADMIN_COMMENT_DELETE_CONFIRM:`确认删除?`,ADMIN_COMMENT_FILTER_ALL:`全部`,ADMIN_COMMENT_FILTER_VISIBLE:`只看可见`,ADMIN_COMMENT_FILTER_HIDDEN:`只看隐藏`,ADMIN_COMMENT_HIDE:`隐藏`,ADMIN_COMMENT_IS_SPAM_SUFFIX:` (已隐藏)`,ADMIN_COMMENT_SEARCH:`搜索`,ADMIN_COMMENT_SEARCH_PLACEHOLDER:`搜索昵称、邮箱、网址、IP、评论正文、文章地址`,ADMIN_COMMENT_SHOW:`显示`,ADMIN_COMMENT_TOP:`置顶`,ADMIN_COMMENT_UNTOP:`取消置顶`,ADMIN_COMMENT_VIEW:`查看`,ADMIN_COMMENT_SECURITY_ALERT:`评论链接与本站不同!出于安全考虑,请手动复制以下网址访问:`,ADMIN_COMMENT_PARSE_ERROR:`无法解析评论链接,请仔细检查链接后手动复制以下网址访问:`,ADMIN_CONFIG:`配置管理`,ADMIN_CONFIG_CATEGORY_COMMON:`通用`,ADMIN_CONFIG_CATEGORY_IM:`即时通知`,ADMIN_CONFIG_CATEGORY_MAIL:`邮件通知`,ADMIN_CONFIG_CATEGORY_PLUGIN:`插件`,ADMIN_CONFIG_CATEGORY_PRIVACY:`隐私`,ADMIN_CONFIG_CATEGORY_SPAM:`反垃圾`,ADMIN_CONFIG_CATEGORY_CAPTCHA:`人机验证`,ADMIN_CONFIG_IMAGE_CDN_NONE:`无(不启用图片上传)`,ADMIN_CONFIG_CAPTCHA_NONE:`无`,ADMIN_CONFIG_CAPTCHA_TURNSTILE:`Cloudflare Turnstile`,ADMIN_CONFIG_CAPTCHA_GEETEST:`极验 Geetest`,ADMIN_CONFIG_CAPTCHA_CAP:`Cap`,ADMIN_CONFIG_EMAIL_TEST:`邮件通知测试`,ADMIN_CONFIG_EMAIL_TEST_BTN:`发送测试邮件`,ADMIN_CONFIG_EMAIL_TEST_HELP:`输入一个邮箱地址,发送测试邮件`,ADMIN_CONFIG_EMAIL_TEST_RESULT:`测试结果:`,ADMIN_CONFIG_EXAMPLE:`示例:`,ADMIN_CONFIG_ITEM_AKISMET_KEY:`Akismet 反垃圾评论,用于垃圾评论检测,设为 "MANUAL_REVIEW" 开启人工审核,留空不使用反垃圾。注册:https://akismet.com`,ADMIN_CONFIG_ITEM_BLOGGER_NICK:`博主的昵称。`,ADMIN_CONFIG_ITEM_BLOGGER_EMAIL:`博主的邮箱地址,用于邮件通知、博主标识。`,ADMIN_CONFIG_ITEM_COMMENT_BG_IMG:`评论框自定义背景图片 URL 地址。`,ADMIN_CONFIG_ITEM_COMMENT_PAGE_SIZE:`评论列表分页大小,默认为 8。`,ADMIN_CONFIG_ITEM_COMMENT_PLACEHOLDER:`评论框提示信息,可用<br>换行,默认为空`,ADMIN_CONFIG_ITEM_CORS_ALLOW_ORIGIN:`CORS 安全域名,注意:如果您不了解什么是 CORS,此项请留空,错误设置会导致无法加载,默认为空,格式为 https://blog.example.com;如需添加多域名请使用,分隔`,ADMIN_CONFIG_ITEM_DEFAULT_GRAVATAR:`默认的头像显示。默认值(留空)为 "initials",可选:"404"、"mp"、"identicon"、"monsterid"、"wavatar"、"retro"、"robohash"、"blank"`,ADMIN_CONFIG_ITEM_EMOTION_CDN:`表情 CDN,英文逗号分隔。默认为:https://owo.imaegoo.com/owo.json`,ADMIN_CONFIG_ITEM_FORBIDDEN_WORDS:`违禁词配置,包含违禁词的内容会直接标记为垃圾评论。英文逗号分隔。`,ADMIN_CONFIG_ITEM_BLOCKED_WORDS:`屏蔽词配置,包含屏蔽词的内容会直接评论失败。英文逗号分隔。`,ADMIN_CONFIG_ITEM_GRAVATAR_CDN:`自定义头像 CDN 地址。如:cn.gravatar.com, weavatar.com, cravatar.cn, sdn.geekzu.org, gravatar.loli.net,默认:weavatar.com`,ADMIN_CONFIG_ITEM_HIDE_ADMIN_CRYPT:`隐藏管理面板入口。可设置一个“暗号”,只有在“昵称”一栏输入相同的“暗号”时,管理面板入口才会显示,留空则不隐藏管理入口`,ADMIN_CONFIG_ITEM_QQ_API_KEY:`QQ昵称API密钥,用于获取QQ昵称。前往 https://api.tqq.me/dashboard/api-keys 获取`,ADMIN_CONFIG_ITEM_HIGHLIGHT:`启用代码高亮功能。如果您的主题和代码高亮有冲突,请设为 false。默认:true`,ADMIN_CONFIG_ITEM_HIGHLIGHT_THEME:`代码高亮主题,可选:"default"、"coy"、"dark"、"funky"、"okaidia"、"solarizedlight"、"tomorrow"、"twilight",访问 https://prismjs.com 可预览主题效果。如果您的主题和代码高亮有冲突,请设为 none。默认:none`,ADMIN_CONFIG_ITEM_HIGHLIGHT_PLUGIN:`代码高亮插件,可选:"showLanguage"、"copyButton",分别表示:展示代码语言、展示代码拷贝按钮。可以同时设置多个选项,如果想要不添加任何代码高亮插件,请设为 none。默认:none。`,ADMIN_CONFIG_ITEM_IMAGE_CDN:`插入图片所使用的图床,目前支持:"qcloud"、"7bu (https://7bu.top)"、"see (https://s.ee)"、"lskypro"、"piclist"、"easyimage"、"chevereto"、"S3 / R2 / MinIO"`,ADMIN_CONFIG_ITEM_IMAGE_CDN_URL:`图床的 URL,仅当 IMAGE_CDN 为 "lskypro" / "piclist" / "easyimage" / "s3" 时需要填写`,ADMIN_CONFIG_ITEM_IMAGE_CDN_TOKEN:`图床 token。qcloud 图床无需设置`,ADMIN_CONFIG_ITEM_NSFW_API_URL:`NSFW 图片检测 API 地址。免费服务:nsfw.qixz.cn,项目:github.com/HG-ha/nsfwpy`,ADMIN_CONFIG_ITEM_NSFW_THRESHOLD:`NSFW 检测阈值(0-1),当检测分数高于此值时拒绝上传。默认:0.5`,ADMIN_CONFIG_ITEM_S3_REGION:`S3 存储区域,例如 us-east-1。使用兼容 S3 的服务(如 Cloudflare R2、MinIO)时可填任意值`,ADMIN_CONFIG_ITEM_S3_BUCKET:`S3 存储桶名称`,ADMIN_CONFIG_ITEM_S3_ACCESS_KEY_ID:`S3 Access Key ID`,ADMIN_CONFIG_ITEM_S3_SECRET_ACCESS_KEY:`S3 Secret Access Key`,ADMIN_CONFIG_ITEM_S3_ENDPOINT:`S3 自定义 Endpoint,使用 Cloudflare R2、MinIO 等兼容 S3 的服务时填写`,ADMIN_CONFIG_ITEM_S3_FORCE_PATH_STYLE:`设置 S3_ENDPOINT 时,是否将 S3_BUCKET 拼入上传地址路径。默认为 true,适用于 Cloudflare R2、MinIO 等 path-style S3 兼容端点;使用已绑定存储桶的自定义域名时设为 false,例如腾讯云 COS 自定义域名`,ADMIN_CONFIG_ITEM_S3_CDN_URL:`S3 图片访问域名(CDN 域名),留空则使用默认 S3/Endpoint URL`,ADMIN_CONFIG_ITEM_S3_PATH_PREFIX:`S3 图片存储路径前缀,例如 images/twikoo,留空则存储在根目录`,ADMIN_CONFIG_ITEM_LIGHTBOX:`使用简易图片点击放大效果。默认:false`,ADMIN_CONFIG_ITEM_LIMIT_PER_MINUTE:`单个 IP 发言频率限制(条/10分钟),0 为无限制,默认:10`,ADMIN_CONFIG_ITEM_LIMIT_PER_MINUTE_ALL:`全站发言频率限制(条/10分钟),0 为无限制,默认:10`,ADMIN_CONFIG_ITEM_LIMIT_LENGTH:`评论长度限制,0 为无限制,默认:500`,ADMIN_CONFIG_ITEM_MAIL_SUBJECT:`自定义通知邮件主题,留空则使用默认主题。`,ADMIN_CONFIG_ITEM_MAIL_SUBJECT_ADMIN:`自定义博主通知邮件主题,留空则使用默认主题。`,ADMIN_CONFIG_ITEM_MAIL_TEMPLATE:"自定义通知邮件模板,留空则使用默认模板。可包含的字段:${SITE_URL}, ${SITE_NAME}, ${PARENT_NICK}, ${PARENT_COMMENT}, ${NICK}, ${COMMENT}, ${POST_URL}, ${IMG}, ${PARENT_IMG}",ADMIN_CONFIG_ITEM_MAIL_TEMPLATE_ADMIN:"自定义博主通知邮件模板,留空则使用默认模板。可包含的字段:${SITE_URL}, ${SITE_NAME}, ${NICK}, ${COMMENT}, ${POST_URL}, ${IP}, ${MAIL}, ${IMG}",ADMIN_CONFIG_ITEM_MASTER_TAG:`博主标识自定义文字,默认为 “博主”。`,ADMIN_CONFIG_ITEM_NOTIFY_SPAM:`垃圾评论是否发送通知,默认:true`,ADMIN_CONFIG_ITEM_HIDE_SPAM:`前台评论区对所有人隐藏垃圾评论,包括管理员和评论作者。评论管理后台仍可审核和恢复。设为 true 开启,默认:false。`,ADMIN_CONFIG_ITEM_CAPTCHA_PROVIDER:`人机验证码提供商`,ADMIN_CONFIG_ITEM_TURNSTILE_SITE_KEY:`Turnstile 验证码的站点密钥。申请地址: https://dash.cloudflare.com/?to=/:account/turnstile`,ADMIN_CONFIG_ITEM_TURNSTILE_SECRET_KEY:`Turnstile 验证码的密钥`,ADMIN_CONFIG_ITEM_GEETEST_CAPTCHA_ID:`极验验证码的 Captcha ID。申请地址: https://console.geetest.com/sensbot/management`,ADMIN_CONFIG_ITEM_GEETEST_CAPTCHA_KEY:`极验验证码的 Captcha Key`,ADMIN_CONFIG_ITEM_CAP_API_ENDPOINT:`Cap 验证码 API 端点。留空则使用内嵌 Cap(无需额外部署);外部 Standalone 格式:https://<实例地址>/<site_key>/`,ADMIN_CONFIG_ITEM_CAP_SECRET_KEY:`Cap Secret Key(仅外部 Standalone 需要;内嵌模式可留空)`,ADMIN_CONFIG_ITEM_QCLOUD_SECRET_ID:`腾讯云 secret id,用于垃圾评论检测。同时设置腾讯云和 Akismet 时,只有腾讯云会生效。注册:https://twikoo.js.org/cms.html`,ADMIN_CONFIG_ITEM_QCLOUD_CMS_BIZTYPE:`腾讯云内容安全 Biztype 名称,用于垃圾评论策略。可以自定义垃圾拦截规则`,ADMIN_CONFIG_ITEM_QCLOUD_SECRET_KEY:`腾讯云 secret key`,ADMIN_CONFIG_ITEM_LLM_API_KEY:`LLM API Key,用于 AI 垃圾评论检测。仅在未配置腾讯云和 Akismet 时生效。`,ADMIN_CONFIG_ITEM_LLM_API_ENDPOINT:`LLM API 接口地址,默认:https://api.deepseek.com/v1`,ADMIN_CONFIG_ITEM_LLM_MODEL:`LLM 模型名称,默认:deepseek-v4-pro`,ADMIN_CONFIG_ITEM_LLM_SPAM_PROMPT:`LLM 垃圾检测提示词(可选,留空则使用默认提示词)`,ADMIN_CONFIG_ITEM_LLM_MAX_RETRIES:`LLM 检测最大重试次数(默认 3 次)`,ADMIN_CONFIG_ITEM_PUSHOO_CHANNEL:`即时消息推送平台名称,支持:"qmsg"、"serverchan"、"pushplus"、"pushplushxtrip"、"dingtalk"、"wecom"、"bark"、"gocqhttp"、"atri"、"pushdeer"、"igot"、"telegram"、"feishu" 等`,ADMIN_CONFIG_ITEM_PUSHOO_TOKEN:`即时消息推送 token。请参考 https://pushoo.js.org 里的详细说明配置`,ADMIN_CONFIG_ITEM_DISPLAYED_FIELDS:`界面上展示的输入框,默认:nick,mail,link`,ADMIN_CONFIG_ITEM_REQUIRED_FIELDS:`评论必填信息,设为 nick,mail,link 代表全必填,设为 none 代表全选填,默认:nick,mail`,ADMIN_CONFIG_ITEM_SC_MAIL_NOTIFY:`是否同时通过 IM 和邮件 2 种方式通知博主,默认只通过 IM 通知博主,默认:false`,ADMIN_CONFIG_ITEM_SENDER_EMAIL:`邮件通知邮箱地址。对于大多数邮箱服务商,SENDER_EMAIL 必须和 SMTP_USER 保持一致,否则无法发送邮件。`,ADMIN_CONFIG_ITEM_SENDER_NAME:`邮件通知标题。`,ADMIN_CONFIG_ITEM_SHOW_EMOTION:`启用插入表情功能,默认为:true`,ADMIN_CONFIG_ITEM_SHOW_IMAGE:`启用插入图片功能,默认为:true`,ADMIN_CONFIG_ITEM_SHOW_ORDER:`评论排序下拉框,默认为:true`,ADMIN_CONFIG_ITEM_SHOW_DISLIKE:`评论点踩按钮,默认为:true`,ADMIN_CONFIG_ITEM_SHOW_UA:`是否显示用户系统和浏览器,默认为:true`,ADMIN_CONFIG_ITEM_SHOW_REGION:`是否显示用户 IP 属地到省,可能不准确,不支持 IPv6,默认为:false`,ADMIN_CONFIG_ITEM_SITE_NAME:`网站名称`,ADMIN_CONFIG_ITEM_SITE_URL:`网站地址`,ADMIN_CONFIG_ITEM_SMTP_HOST:`自定义 SMTP 服务器地址。如您已配置 SMTP_SERVICE,此项请留空。`,ADMIN_CONFIG_ITEM_SMTP_PASS:`邮件通知邮箱密码,QQ、163邮箱请填写授权码。`,ADMIN_CONFIG_ITEM_SMTP_PORT:`自定义 SMTP 端口。如您已配置 SMTP_SERVICE,此项请留空。`,ADMIN_CONFIG_ITEM_SMTP_SECURE:`自定义 SMTP 是否使用TLS,请填写 true 或 false。如您已配置 SMTP_SERVICE,此项请留空。`,ADMIN_CONFIG_ITEM_SMTP_SERVICE:`邮件通知邮箱服务商。支持:"126"、"163"、"1und1"、"AOL"、"DebugMail"、"DynectEmail"、"FastMail"、"GandiMail"、"Gmail"、"Godaddy"、"GodaddyAsia"、"GodaddyEurope"、"Hotmail"、"Mail.ru"、"Maildev"、"Mailgun"、"Mailjet"、"Mailosaur"、"Mandrill"、"Naver"、"OpenMailBox"、"Outlook365"、"Postmark"、"QQ"、"QQex"、"SES"、"SES-EU-WEST-1"、"SES-US-EAST-1"、"SES-US-WEST-2"、"SendCloud"、"SendGrid"、"SendPulse"、"SendinBlue"、"Sparkpost"、"Yahoo"、"Yandex"、"Zoho"、"hot.ee"、"iCloud"、"mail.ee"、"qiye.aliyun"`,ADMIN_CONFIG_ITEM_SMTP_USER:`邮件通知邮箱用户名。`,ADMIN_CONFIG_RESET:`重置`,ADMIN_CONFIG_SAVE:`保存`,ADMIN_CREDENTIALS:`私钥文件`,ADMIN_CREDENTIALS_FAQ:`如何获得私钥`,ADMIN_CREDENTIALS_PLACEHOLDER:`请粘贴私钥文件内容`,ADMIN_FORGOT:`忘记密码`,ADMIN_EXPORT:`导出`,ADMIN_EXPORT_WARN:`将全部数据导出为 JSON 文件。如果遇到评论较多、导出失败或缺失数据,请连接数据库手动导出`,ADMIN_EXPORT_COMMENT:`导出评论`,ADMIN_EXPORT_COUNTER:`导出访问量`,ADMIN_IMPORT:`导入`,ADMIN_IMPORT_FILE_REQUIRED:`未选择文件`,ADMIN_IMPORT_IMPORTED:`完成导入 `,ADMIN_IMPORT_IMPORTING:`开始导入 `,ADMIN_IMPORT_LOG:`日志`,ADMIN_IMPORT_SELECT:`请选择`,ADMIN_IMPORT_SELECT_FILE:`选择文件`,ADMIN_IMPORT_SELECT_SOURCE:`选择源系统`,ADMIN_IMPORT_SOURCE_REQUIRED:`未选择源系统`,ADMIN_IMPORT_START:`开始导入`,ADMIN_IMPORT_STARTING:`开始导入`,ADMIN_IMPORT_TIP_ARTALK:`请上传 JSON 格式的 Artalk 导出文件,文件名通常为 comments.data.json`,ADMIN_IMPORT_TIP_DISQUS:`请上传 XML 格式的 Disqus 导出文件,文件名通常为 [网站名称]-[导出时间]-all.xml`,ADMIN_IMPORT_TIP_VALINE:`请上传 JSON 格式的 Valine 导出文件,文件名通常为 Comment.json`,ADMIN_IMPORT_UPLOADED:`上传完成 `,ADMIN_IMPORT_UPLOADING:`已上传 `,ADMIN_IMPORT_WARN:`支持从其他评论系统的备份文件导入评论。
|
|
4
4
|
数据是安全的,导入功能完全在您的云环境进行。
|
|
5
5
|
建议在导入前备份 comment 数据库。`,ADMIN_LOGIN:`登录`,ADMIN_LOGIN_TITLE:`Twikoo 评论管理`,ADMIN_LOGOUT:`退出登录`,ADMIN_NEED_UPDATE:`若要使用评论管理,请更新 Twikoo 云函数`,ADMIN_PASSWORD:`密码`,ADMIN_PASSWORD_PLACEHOLDER:`请输入`,ADMIN_PASSWORD_REQUIRED:`请输入密码`,ADMIN_REGIST:`注册`,ADMIN_REGIST_FAILED:`注册失败`,ADMIN_SET_PASSWORD:`设置密码`,ADMIN_SET_PASSWORD_CONFIRM:`确认密码`,ADMIN_SET_PASSWORD_CONFIRM_PLACEHOLDER:`确认密码`,ADMIN_SET_PASSWORD_PLACEHOLDER:`密码`,ADMIN_TITLE:`Twikoo 管理面板`,COMMENTS_SEARCH:`搜索`,COMMENTS_SEARCH_PLACEHOLDER:`搜索评论`,COMMENTS_SEARCH_NO_RESULT:`没有找到评论`,COMMENTS_SEARCH_COUNT_PREFIX:`找到 `,COMMENTS_COUNT_SUFFIX:` 条评论`,COMMENTS_SORT_NEWEST:`最新`,COMMENTS_SORT_OLDEST:`最早`,COMMENTS_SORT_POPULAR:`热门`,COMMENTS_EXPAND:`查看更多`,COMMENTS_NO_COMMENTS:`没有评论`,COMMENT_EXPAND:`展开`,COMMENT_COLLAPSE:`收起`,COMMENT_MASTER_TAG:`博主`,COMMENT_REPLIED:`回复`,COMMENT_DELETE_CONFIRM:`确认删除你的评论?`,COMMENT_REVIEWING_TAG:`审核中`,COMMENT_TOP_TAG:`置顶`,COMMENT_FAILED:`评论失败`,META_INPUT_LINK:`网址`,META_INPUT_MAIL:`邮箱`,META_INPUT_NICK:`昵称`,META_INPUT_NOT_REQUIRED:`选填`,META_INPUT_REQUIRED:`必填`,PAGINATION_COUNT_PREFIX:`共 `,PAGINATION_COUNT_SUFFIX:` 条`,PAGINATION_GOTO_PREFIX:`前往`,PAGINATION_GOTO_SUFFIX:`页`,PAGINATION_PAGESIZE:`条/页`,SUBMIT_CANCEL:`取消`,SUBMIT_PREVIEW:`预览`,SUBMIT_SEND:`发送`,IMAGE_UPLOAD_PLACEHOLDER:`图片上传中`,IMAGE_UPLOAD_FAILED:`图片上传失败`,IMAGE_UPLOAD_NSFW:`图片包含不当内容,禁止上传`,IMAGE_UPLOAD_FAILED_NO_CONF:`博主未配置图床服务`,IMAGE_UPLOAD_PLEASE_WAIT:`图片上传中,请稍候再发送`,SUBMIT_SENDING:`发送中`,TIMEAGO_DAYS:`天前`,TIMEAGO_HOURS:`小时前`,TIMEAGO_MINUTES:`分钟前`,TIMEAGO_NOW:`刚刚`,TIMEAGO_SECONDS:`秒前`},x={ADMIN_CLIENT_VERSION:`Client version: `,ADMIN_SERVER_VERSION:`Server version: `,ADMIN_COMMENT:`Comment`,ADMIN_COMMENT_DELETE:`Delete`,ADMIN_COMMENT_DELETE_CONFIRM:`Confirm deletion?`,ADMIN_COMMENT_FILTER_ALL:`All`,ADMIN_COMMENT_FILTER_VISIBLE:`Visible`,ADMIN_COMMENT_FILTER_HIDDEN:`Hidden`,ADMIN_COMMENT_HIDE:`Hide`,ADMIN_COMMENT_IS_SPAM_SUFFIX:` (Hidden)`,ADMIN_COMMENT_SEARCH:`Search`,ADMIN_COMMENT_SEARCH_PLACEHOLDER:`Search by nick, mail, website, IP, comment, or article path`,ADMIN_COMMENT_SHOW:`Show`,ADMIN_COMMENT_TOP:`Pin`,ADMIN_COMMENT_UNTOP:`Unpin`,ADMIN_COMMENT_VIEW:`View`,ADMIN_COMMENT_SECURITY_ALERT:`The comment link is different from this site! For security reasons, please manually copy the following URL to visit:`,ADMIN_COMMENT_PARSE_ERROR:`Unable to parse comment link. Please check and manually copy the following URL:`,ADMIN_CONFIG:`Configuration`,ADMIN_CONFIG_CATEGORY_COMMON:`General`,ADMIN_CONFIG_CATEGORY_IM:`Instant notification`,ADMIN_CONFIG_CATEGORY_MAIL:`Email notification`,ADMIN_CONFIG_CATEGORY_PLUGIN:`Plugin`,ADMIN_CONFIG_CATEGORY_PRIVACY:`Privacy`,ADMIN_CONFIG_CATEGORY_SPAM:`Spam`,ADMIN_CONFIG_CATEGORY_CAPTCHA:`CAPTCHA`,ADMIN_CONFIG_IMAGE_CDN_NONE:`None (disable image upload)`,ADMIN_CONFIG_CAPTCHA_NONE:`None`,ADMIN_CONFIG_CAPTCHA_TURNSTILE:`Cloudflare Turnstile`,ADMIN_CONFIG_CAPTCHA_GEETEST:`GeeTest`,ADMIN_CONFIG_CAPTCHA_CAP:`Cap`,ADMIN_CONFIG_EMAIL_TEST:`Email notification test`,ADMIN_CONFIG_EMAIL_TEST_BTN:`Send test mail`,ADMIN_CONFIG_EMAIL_TEST_HELP:`Input an email address & send test mail`,ADMIN_CONFIG_EMAIL_TEST_RESULT:`Test result: `,ADMIN_CONFIG_EXAMPLE:`Example: `,ADMIN_CONFIG_ITEM_AKISMET_KEY:`Akismet spam protection. Set to "MANUAL_REVIEW" to enable manual review. Leave it blank to not use anti-spam. Register Akismet: https://akismet.com`,ADMIN_CONFIG_ITEM_BLOGGER_NICK:`Admin nick name.`,ADMIN_CONFIG_ITEM_BLOGGER_EMAIL:`Admin Email address. Used for Email notification and admin identification.`,ADMIN_CONFIG_ITEM_COMMENT_BG_IMG:`URL for custom background image.`,ADMIN_CONFIG_ITEM_COMMENT_PAGE_SIZE:`Comment page size. Default: 8.`,ADMIN_CONFIG_ITEM_COMMENT_PLACEHOLDER:`Comment placeholder. Use <br> to start a newline. Default: empty.`,ADMIN_CONFIG_ITEM_CORS_ALLOW_ORIGIN:`CORS allow origin, note: incorrect settings can cause loading failure. Default: blank, format: https://blog.example.com; If you need to add multiple domain names, please use, separate`,ADMIN_CONFIG_ITEM_DEFAULT_GRAVATAR:`Avatar placeholder. Default (when empty): "initials". Choose from: "404", "mp", "identicon", "monsterid", "wavatar", "retro", "robohash", "blank"`,ADMIN_CONFIG_ITEM_EMOTION_CDN:`Emoji CDN. Separate by comma. Default: https://owo.imaegoo.com/owo.json`,ADMIN_CONFIG_ITEM_FORBIDDEN_WORDS:`Configure prohibited words. Comments containing prohibited words will be auto spammed. Separate by comma.`,ADMIN_CONFIG_ITEM_BLOCKED_WORDS:`Configure blocked words. Comments containing blocked words will fail to send. Separate by comma.`,ADMIN_CONFIG_ITEM_GRAVATAR_CDN:`Custom avator CDN. (Examples: gravatar.com) Default: weavatar.com.`,ADMIN_CONFIG_ITEM_HIDE_ADMIN_CRYPT:`Set a cipher to hide the management panel entrance, only when the same cipher is entered in the nickname field the management panel entry will be displayed. Leave it blank to not hide the management entrance.`,ADMIN_CONFIG_ITEM_QQ_API_KEY:`QQ nickname API key for fetching QQ nickname. Get it from https://api.nsuuu.com/admin/key`,ADMIN_CONFIG_ITEM_HIGHLIGHT:`Enable code highlighting. If your theme conflicts with code highlighting, please set it to false. Default: true.`,ADMIN_CONFIG_ITEM_HIGHLIGHT_THEME:`Code highlighting theme. Select from: "default", "coy", "dark", "funky", "okaidia", "solarizedlight", "tomorrow", "twilight". Visit https://prismjs.com for preview. If your theme conflicts with code highlighting, please set it to none. Default: none.`,ADMIN_CONFIG_ITEM_HIGHLIGHT_PLUGIN:`Code highlight plug-in, optional: "showLanguage", "copyButton", respectively: show code language, show code copy button. Multiple options can be set at the same time, if you want to add no code highlighting plug-ins, please set it to none. Default: none. `,ADMIN_CONFIG_ITEM_IMAGE_CDN:`The image bed for image uploading. Select from: "qcloud", "7bu (https://7bu.top)", "see (https://s.ee)", "lskypro", "piclist", "easyimage", "chevereto", "S3 / R2 / MinIO"`,ADMIN_CONFIG_ITEM_IMAGE_CDN_URL:`The URL for the image bed. Required if your IMAGE_CDN is one of these: "lskypro", "piclist", "easyimage", "s3"`,ADMIN_CONFIG_ITEM_IMAGE_CDN_TOKEN:`The image bed token. Unnessessary for qcloud`,ADMIN_CONFIG_ITEM_NSFW_API_URL:`NSFW image detection API URL. Free services: nsfw.qixz.cn, project: github.com/HG-ha/nsfwpy`,ADMIN_CONFIG_ITEM_NSFW_THRESHOLD:`NSFW detection threshold (0-1). Upload will be rejected if score exceeds this value. Default: 0.5`,ADMIN_CONFIG_ITEM_S3_REGION:`S3 region, e.g. us-east-1. Can be any value when using S3-compatible services (e.g. Cloudflare R2, MinIO)`,ADMIN_CONFIG_ITEM_S3_BUCKET:`S3 bucket name`,ADMIN_CONFIG_ITEM_S3_ACCESS_KEY_ID:`S3 Access Key ID`,ADMIN_CONFIG_ITEM_S3_SECRET_ACCESS_KEY:`S3 Secret Access Key`,ADMIN_CONFIG_ITEM_S3_ENDPOINT:`S3 custom endpoint. Required when using S3-compatible services like Cloudflare R2 or MinIO`,ADMIN_CONFIG_ITEM_S3_FORCE_PATH_STYLE:`When S3_ENDPOINT is set, whether to append S3_BUCKET to the upload URL path. Default: true. Use true for Cloudflare R2, MinIO, and other path-style S3-compatible endpoints; set false for bucket-bound custom domains, such as Tencent Cloud COS custom domains.`,ADMIN_CONFIG_ITEM_S3_CDN_URL:`S3 image access domain (CDN domain). Leave empty to use default S3/Endpoint URL`,ADMIN_CONFIG_ITEM_S3_PATH_PREFIX:`S3 image storage path prefix, e.g. images/twikoo. Leave empty to store in root`,ADMIN_CONFIG_ITEM_LIGHTBOX:`Use simple Lightbox effect. Default: false`,ADMIN_CONFIG_ITEM_LIMIT_PER_MINUTE:`How many comments can be posted by each IP every 10 minutes, 0 is unlimited, default: 10.`,ADMIN_CONFIG_ITEM_LIMIT_PER_MINUTE_ALL:`How many comments can be posted by all IPs every 10 minutes, 0 is unlimited, default: 10.`,ADMIN_CONFIG_ITEM_LIMIT_LENGTH:`Comment length limitation, 0 is unlimited, default: 500.`,ADMIN_CONFIG_ITEM_MAIL_SUBJECT:`Custom Email notification subject. Leave it blank to use the default subject.`,ADMIN_CONFIG_ITEM_MAIL_SUBJECT_ADMIN:`Custom admin Email notification subject. Leave it blank to use the default subject.`,ADMIN_CONFIG_ITEM_MAIL_TEMPLATE:"Custom Email notification template. Leave it blank to use the default template. Fields that can be included: ${SITE_URL}, ${SITE_NAME}, ${NICK}, ${COMMENT}, ${POST_URL}, ${IMG}, ${PARENT_IMG}",ADMIN_CONFIG_ITEM_MAIL_TEMPLATE_ADMIN:"Custom admin Email notification template. Leave it blank to use the default template. Fields that can be included: ${SITE_URL}, ${SITE_NAME}, ${NICK}, ${COMMENT}, ${POST_URL}, ${IP}, ${MAIL}, ${IMG}",ADMIN_CONFIG_ITEM_MASTER_TAG:`Custom admin identifier.`,ADMIN_CONFIG_ITEM_NOTIFY_SPAM:`Notifications for spam comments. Default: true.`,ADMIN_CONFIG_ITEM_HIDE_SPAM:`Hide spam comments from everyone in the public comment section, including admins and comment authors. Comments can still be reviewed and restored in the admin panel. Set to true to enable. Default: false.`,ADMIN_CONFIG_ITEM_CAPTCHA_PROVIDER:`CAPTCHA Provider`,ADMIN_CONFIG_ITEM_TURNSTILE_SITE_KEY:`Turnstile CAPTCHA Site Key. Get from: https://dash.cloudflare.com/?to=/:account/turnstile`,ADMIN_CONFIG_ITEM_TURNSTILE_SECRET_KEY:`Turnstile CAPTCHA Secret Key`,ADMIN_CONFIG_ITEM_GEETEST_CAPTCHA_ID:`GeeTest CAPTCHA ID. Get from: https://console.geetest.com/sensbot/management`,ADMIN_CONFIG_ITEM_GEETEST_CAPTCHA_KEY:`GeeTest CAPTCHA Key`,ADMIN_CONFIG_ITEM_CAP_API_ENDPOINT:`Cap CAPTCHA API endpoint. Leave empty for built-in Cap (no extra server). External Standalone format: https://<instance_url>/<site_key>/`,ADMIN_CONFIG_ITEM_CAP_SECRET_KEY:`Cap Secret Key (external Standalone only; leave empty for built-in)`,ADMIN_CONFIG_ITEM_QCLOUD_SECRET_ID:`Tencent Cloud secret id for spam detection. When Tencent Cloud and Akismet are set at the same time, only Tencent Cloud will take effect. Register: https://twikoo.js.org/cms.html`,ADMIN_CONFIG_ITEM_QCLOUD_CMS_BIZTYPE:`Tencent Cloud Content Security Biztype name for spam comment policy. Spam blocking rules can be customized`,ADMIN_CONFIG_ITEM_QCLOUD_SECRET_KEY:`Tencent Cloud secret key.`,ADMIN_CONFIG_ITEM_LLM_API_KEY:`LLM API Key, used for AI spam comment detection. Only takes effect when Tencent Cloud and Akismet are not configured.`,ADMIN_CONFIG_ITEM_LLM_API_ENDPOINT:`LLM API endpoint URL, defaults to https://api.deepseek.com/v1`,ADMIN_CONFIG_ITEM_LLM_MODEL:`LLM model name, default: deepseek-v4-pro`,ADMIN_CONFIG_ITEM_LLM_SPAM_PROMPT:`LLM spam detection prompt (optional, uses default if left empty)`,ADMIN_CONFIG_ITEM_LLM_MAX_RETRIES:`LLM detection maximum retries (default 3)`,ADMIN_CONFIG_ITEM_PUSHOO_CHANNEL:`IM notification push channel. Support: "qmsg", "serverchan", "pushplus", "pushplushxtrip", "dingtalk", "wecom", "bark", "gocqhttp", "atri", "pushdeer", "igot", "telegram", "feishu"`,ADMIN_CONFIG_ITEM_PUSHOO_TOKEN:`IM notification push token. See https://pushoo.js.org for details`,ADMIN_CONFIG_ITEM_DISPLAYED_FIELDS:`Input boxes displayed on the interface. Default: nick,mail,link`,ADMIN_CONFIG_ITEM_REQUIRED_FIELDS:`Required fields for comments. Set to "nick,mail,link" means all fields are required. Set to "none" means all fields are optional. Default: nick,mail.`,ADMIN_CONFIG_ITEM_SC_MAIL_NOTIFY:`Whether to notify admin via IM and email at the same time, the default is to notify admin only via IM. Default: false.`,ADMIN_CONFIG_ITEM_SENDER_EMAIL:`Email address for Email notification. For most email service providers, SENDER_EMAIL must be consistent with SMTP_USER, otherwise emails cannot be sent.`,ADMIN_CONFIG_ITEM_SENDER_NAME:`The title for Email notification.`,ADMIN_CONFIG_ITEM_SHOW_EMOTION:`Enable emojis. Default: true.`,ADMIN_CONFIG_ITEM_SHOW_IMAGE:`Enable picture uploading. Default: true.`,ADMIN_CONFIG_ITEM_SHOW_ORDER:`Show sort dropdown. Default: true.`,ADMIN_CONFIG_ITEM_SHOW_DISLIKE:`Show dislike button. Default: true.`,ADMIN_CONFIG_ITEM_SHOW_UA:`Show users' OS and browser. Default: true.`,ADMIN_CONFIG_ITEM_SHOW_REGION:`Show users' IP region (province). Default: false.`,ADMIN_CONFIG_ITEM_SITE_NAME:`Website name.`,ADMIN_CONFIG_ITEM_SITE_URL:`Website URL.`,ADMIN_CONFIG_ITEM_SMTP_HOST:`Custom SMTP server address. If you have configured SMTP_SERVICE, please leave it empty.`,ADMIN_CONFIG_ITEM_SMTP_PASS:`Email notification mailbox password. Enter authorization code for QQ/163 mail.`,ADMIN_CONFIG_ITEM_SMTP_PORT:`Custom SMTP port. If you have configured SMTP_SERVICE, please leave it empty.`,ADMIN_CONFIG_ITEM_SMTP_SECURE:`Custom TLS for SMTP. Enter "true" or "false". If you have configured SMTP_SERVICE, please leave it empty.`,ADMIN_CONFIG_ITEM_SMTP_SERVICE:`Email service provider for Email notification. Support: "126", "163", "1und1", "AOL", "DebugMail", "DynectEmail", "FastMail", "GandiMail", "Gmail", "Godaddy", "GodaddyAsia", "GodaddyEurope", "Hotmail", "Mail.ru", "Maildev", "Mailgun", "Mailjet", "Mailosaur", "Mandrill", "Naver", "OpenMailBox", "Outlook365", "Postmark", "QQ", "QQex", "SES", "SES-EU-WEST-1", "SES-US-EAST-1", "SES-US-WEST-2", "SendCloud", "SendGrid", "SendPulse", "SendinBlue", "Sparkpost", "Yahoo", "Yandex", "Zoho", "hot.ee", "iCloud", "mail.ee", "qiye.aliyun"`,ADMIN_CONFIG_ITEM_SMTP_USER:`Email notification mailbox username.`,ADMIN_CONFIG_RESET:`Reset`,ADMIN_CONFIG_SAVE:`Save`,ADMIN_CREDENTIALS:`Private key file`,ADMIN_CREDENTIALS_FAQ:`How to get the private key`,ADMIN_CREDENTIALS_PLACEHOLDER:`Please paste the contents of the private key file`,ADMIN_FORGOT:`Forget your password`,ADMIN_EXPORT:`Export`,ADMIN_EXPORT_WARN:`Export all data as a JSON file. If you encounter export failures or missing data, connect to the database to export manually`,ADMIN_EXPORT_COMMENT:`Export comment`,ADMIN_EXPORT_COUNTER:`Export counter`,ADMIN_IMPORT:`Import`,ADMIN_IMPORT_FILE_REQUIRED:`No file selected`,ADMIN_IMPORT_IMPORTED:`Imported `,ADMIN_IMPORT_IMPORTING:`Importing `,ADMIN_IMPORT_LOG:`Log`,ADMIN_IMPORT_SELECT:`Select`,ADMIN_IMPORT_SELECT_FILE:`Select file`,ADMIN_IMPORT_SELECT_SOURCE:`Select source`,ADMIN_IMPORT_SOURCE_REQUIRED:`No source selected.`,ADMIN_IMPORT_START:`Start import`,ADMIN_IMPORT_STARTING:`Importing`,ADMIN_IMPORT_TIP_ARTALK:`Please upload the Artalk export file in JSON format.The file name is usually comments.data.json`,ADMIN_IMPORT_TIP_DISQUS:`Please upload the Disqus export file in XML format. The file name is usually [website name]-[export time]-all.xml`,ADMIN_IMPORT_TIP_VALINE:`Please upload the Valine export file in JSON format. The file name is usually Comment.json`,ADMIN_IMPORT_UPLOADED:`Uploaded `,ADMIN_IMPORT_UPLOADING:`Uploading `,ADMIN_IMPORT_WARN:`Import comments from other comment systems.
|
|
6
6
|
The data is safe, and the import function is performed entirely in your cloud environment.
|
|
@@ -72,7 +72,7 @@ ${e}</tr>
|
|
|
72
72
|
`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
|
|
73
73
|
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${Pr(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,text:n,tokens:r,autolink:i}){let a=i?Pr(n,!0):this.parser.parseInline(r),o=Fr(e);if(o===null)return a;e=Pr(o,i);let s=`<a href="`+e+`"`;return t&&(s+=` title="`+Pr(t)+`"`),s+=`>`+a+`</a>`,s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=Fr(e);if(i===null)return Pr(n);e=i;let a=`<img src="${Pr(e)}" alt="${Pr(n)}"`;return t&&(a+=` title="${Pr(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:Pr(e.text)}},Jr=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},Yr=class e{options;renderer;textRenderer;constructor(e){this.options=e||pn,this.options.renderer=this.options.renderer||new qr,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Jr}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`checkbox`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`checkbox`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},Xr=class{options;block;constructor(e){this.options=e||pn}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?Kr.lex:Kr.lexInline}provideParser(e=this.block){return e?Yr.parse:Yr.parseInline}},Zr=class{defaults=fn();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Yr;Renderer=qr;TextRenderer=Jr;Lexer=Kr;Tokenizer=Gr;Hooks=Xr;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new qr(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new Gr(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new Xr;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];t[r]=Xr.passThroughHooks.has(n)?e=>{if(this.defaults.async&&Xr.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Kr.lex(e,t??this.defaults)}parser(e,t){return Yr.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(typeof t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer(e):e?Kr.lex:Kr.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser(e):e?Yr.parse:Yr.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer(e):e?Kr.lex:Kr.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser(e):e?Yr.parse:Yr.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
|
|
74
74
|
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+Pr(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}},Qr=new Zr;function F(e,t){return Qr.parse(e,t)}F.options=F.setOptions=function(e){return Qr.setOptions(e),F.defaults=Qr.defaults,mn(F.defaults),F},F.getDefaults=fn,F.defaults=pn;function $r(...e){return Qr.use(...e),F.defaults=Qr.defaults,mn(F.defaults),F}F.use=$r,F.walkTokens=function(e,t){return Qr.walkTokens(e,t)},F.parseInline=Qr.parseInline,F.Parser=Yr,F.parser=Yr.parse,F.Renderer=qr,F.TextRenderer=Jr,F.Lexer=Kr,F.lexer=Kr.lex,F.Tokenizer=Gr,F.Hooks=Xr,F.parse=F,F.options,F.setOptions,F.walkTokens,F.parseInline,Yr.parse,Kr.lex;var ei={};function ti(e){ei=e??{}}var ni=new Zr({gfm:!0,breaks:!0});ni.use({tokenizer:{code(){}}});var ri=/^(\$\$[\s\S]*?\$\$|\\\[([\s\S]*?)\\\]|\\\(([\s\S]*?)\\\)|\$[^$\n]+?\$)/;ni.use({extensions:[{name:`twikoo-math`,level:`inline`,start(e){return e.search(ri)},tokenizer(e){let t=ri.exec(e);if(t)return{type:`twikoo-math`,raw:t[0],text:t[0]}},renderer(e){return e.text}}]}),ni.use({extensions:[{name:`owo`,level:`inline`,start(e){return e.indexOf(`:`)},tokenizer(e){let t=/^:([a-zA-Z0-9_+-]+):/.exec(e);if(!t)return;let n=ei[t[1]];if(n)return{type:`owo`,raw:t[0],html:`<img class="tk-owo-emotion" loading="lazy" src="${n}">`}},renderer(e){return e.html}}]});function ii(e){return ni.parse(e)}var ai=document.createElement(`template`);function oi(e){try{return ai.innerHTML=e,ai.content.childNodes[0]?.src??``}catch(e){return b.warn(`OwO 表情解析失败`,e),``}}function si(e){return e.split(`#`).shift()?.split(`?`)?.shift()?.split(`/`).pop()??``}function ci(e){try{for(let t of Object.values(e))if(t.type===`image`)for(let e of t.container)e.text||=si(oi(e.icon));return e}catch(e){b.warn(`OwO 数据格式异常`,e);return}}function li(e){return new Promise(t=>{let n=new XMLHttpRequest;n.onreadystatechange=()=>{if(n.readyState===4){if(n.status>=200&&n.status<300||n.status===304)try{t(ci(JSON.parse(n.responseText))??{})}catch(e){b.warn(`OwO 数据解析失败`,e),t({})}else b.warn(`OwO 数据请求失败:${n.status}`),t({})}};try{n.open(`get`,e,!0),n.send(null)}catch(e){b.warn(`OwO 数据请求异常`,e),t({})}})}async function ui(e){let t={},n=await Promise.all(e.split(`,`).map(e=>li(e.trim())));return Object.assign(t,...n),t}function di(e){let t={};for(let n of Object.values(e??{}))for(let e of n.container??[]){let n=oi(e.icon);n&&e.text&&(t[e.text]=n)}return ti(t),t}var fi=`data-tk-loading`;function pi(e){for(let t of Array.from(e.children))if(t.hasAttribute(fi))return t;return null}function mi(e){if(pi(e))return;let t=document.createElement(`div`);t.setAttribute(fi,`1`),t.className=`tk-loading-mask`;let n=document.createElement(`div`);n.className=`tk-loading-spinner`,n.innerHTML=`<svg class="circular" viewBox="25 25 50 50"><circle class="path" cx="50" cy="50" r="20" fill="none"></circle></svg>`,t.appendChild(n),e.appendChild(t)}function hi(e){pi(e)?.remove(),e.classList.remove(`tk-loading-parent--relative`)}function gi(e,t){if(t.value){let t=getComputedStyle(e).position;(!t||t===`static`)&&e.classList.add(`tk-loading-parent--relative`),mi(e)}else hi(e)}var _i={mounted:gi,updated:gi,unmounted:hi};function vi(e,t){yi(e);let n=n=>{let r=n.target;r&&e!==r&&!e.contains(r)&&t.value?.()};e.__tkClickoutside=n,document.addEventListener(`click`,n,!0)}function yi(e){let t=e;t.__tkClickoutside&&(document.removeEventListener(`click`,t.__tkClickoutside,!0),delete t.__tkClickoutside)}var bi={mounted:vi,updated:vi,unmounted:yi},xi=e=>typeof e==`string`&&/^http(s)?:\/\//.test(e),Si=e=>e==null||e===``;function Ci(e){return String(e).trim().toLowerCase()}function wi(e){return/^[1-9][0-9]{4,10}$/.test(e)||/^[1-9][0-9]{4,10}@qq.com$/i.test(e)}function Ti(e){return e?e.substring(0,4)===`http`?e:`http://${e}`:``}function Ei(e){let t=typeof e==`number`?new Date(e):e;if(!t)return``;try{let e=Date.now()-t.getTime(),n=Math.floor(e/864e5);if(n===0){let t=e%864e5,n=Math.floor(t/36e5);if(n===0){let e=t%36e5,n=Math.floor(e/6e4);return n===0?`${Math.round(e%6e4/1e3)} ${D(`TIMEAGO_SECONDS`)}`:`${n} ${D(`TIMEAGO_MINUTES`)}`}return`${n} ${D(`TIMEAGO_HOURS`)}`}return n<0?D(`TIMEAGO_NOW`):n<8?`${n} ${D(`TIMEAGO_DAYS`)}`:Di(t)}catch(e){return b.warn(`timeago 计算失败`,e),``}}function Di(e){return[Oi(e.getFullYear(),2),Oi(e.getMonth()+1,2),Oi(e.getDate(),2)].join(`-`)}function Oi(e,t){let n=e.toString();for(;n.length<t;)n=`0${n}`;return n}function ki(e){let t=e;return t&&typeof t==`object`&&t.result&&typeof t.result==`object`?t.result:e??{}}function Ai(e){let t=window.TWIKOO_MAGIC_PATH;if(t)return t;if(e&&typeof e==`string`)switch(e){case`location.pathname`:case`window.location.pathname`:return window.location.pathname;case`location.href`:case`window.location.href`:return window.location.href;default:return e}return window.location.pathname}function ji(e){return window.TWIKOO_MAGIC_HREF??(typeof e==`string`?e:window.location.href)}var Mi=new Set([`localhost`,`127.0.0.1`,`0.0.0.0`,`::1`]);function Ni(){return Mi.has(window.location.hostname)}async function Pi(e,t={}){let n=t.urls;if(!Array.isArray(n))throw Error(`urls 参数有误`);return n.length===0?[]:ki(await v(e,`GET_COMMENTS_COUNT`,{envId:t.envId,funcName:t.funcName,urls:n,includeReply:t.includeReply})).data}async function Fi(e,t={}){let n=ki(await v(e,`GET_RECENT_COMMENTS`,{envId:t.envId,funcName:t.funcName,pageSize:t.pageSize,includeReply:t.includeReply})).data;if(Array.isArray(n))for(let e of n)e.relativeTime=Ei(e.created);return n}async function Ii(e,t={}){return ki(await v(e,`COUNTER_GET`,{envId:t.envId,funcName:t.funcName,url:Ai(t.path),href:ji(t.href),title:t.title??document.title}))}async function Li(e,t={}){let n=document.getElementById(`twikoo_visitors`);if(!n||Ni())return null;try{let r=await Ii(e,t);return r.time!==void 0&&(n.innerHTML=String(r.time)),r}catch(e){return b.warn(`Failed to update visitors count`,e),null}}function Ri(e){return new Promise((t,n)=>{let r=new FileReader;r.readAsText(e),r.onloadend=()=>{r.error?n(r.error):t(r.result)}})}function zi(e){return new Promise(t=>{let n=new FileReader;n.onload=e=>{let n=e.target?.result;t(typeof n==`string`?n:``)},n.readAsDataURL(e)})}async function Bi(){let e=window.navigator.userAgent;try{let t=navigator.userAgentData;if(t?.platform===`Windows`||t?.platform===`macOS`){let{platformVersion:n}=await t.getHighEntropyValues([`platformVersion`]),r=parseInt(String(n).split(`.`)[0],10);t.platform===`Windows`&&r>=13?e=e.replace(/Windows NT 10\.0/i,`Windows NT 11.0`):t.platform===`macOS`&&r>=11&&(e=e.replace(/Mac OS X 10_[0-9]+_[0-9]+/i,`Mac OS X ${String(n).replace(/\./g,`_`)}`))}}catch{}return e}function Vi(e){if(!e)return;let t=Array.isArray(e)?e:[e],n=[];for(let e of t)e&&n.push(...Array.from(e.getElementsByTagName(`a`)));for(let e of n)e.setAttribute(`target`,`_blank`),e.setAttribute(`rel`,`noopener noreferrer nofollow ugc`)}function Hi(e,t){if(!e)return;let n=window.renderMathInElement;typeof n==`function`&&n(e,t??{delimiters:[{left:`$$`,right:`$$`,display:!0},{left:`$`,right:`$`,display:!1},{left:`\\(`,right:`\\)`,display:!1},{left:`\\[`,right:`\\]`,display:!0}],throwOnError:!1})}var Ui=[{key:`envId`,required:!0}];function Wi(e){let t=Ui.filter(t=>t.required&&Si(e[t.key])).map(e=>e.key);if(t.length!==0){for(let e of t)b.warn(`${e} is required`);throw Error(`Twikoo: failed to init`)}}async function Gi(e,t){let n=e;Wi(t);let r=n.init({env:t.envId??``,region:t.region}),i=r.auth({persistence:`local`});return i.hasLoginState?.()||await i.anonymousAuthProvider().signIn(),{app:r,auth:i}}function Ki(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var I={},qi=[],Ji=()=>{},Yi=()=>!1,Xi=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Zi=e=>e.startsWith(`onUpdate:`),Qi=Object.assign,$i=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},ea=Object.prototype.hasOwnProperty,L=(e,t)=>ea.call(e,t),R=Array.isArray,ta=e=>ca(e)===`[object Map]`,na=e=>ca(e)===`[object Set]`,ra=e=>ca(e)===`[object Date]`,z=e=>typeof e==`function`,ia=e=>typeof e==`string`,aa=e=>typeof e==`symbol`,B=e=>typeof e==`object`&&!!e,oa=e=>(B(e)||z(e))&&z(e.then)&&z(e.catch),sa=Object.prototype.toString,ca=e=>sa.call(e),la=e=>ca(e).slice(8,-1),ua=e=>ca(e)===`[object Object]`,da=e=>ia(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,fa=Ki(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),pa=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ma=/-\w/g,ha=pa(e=>e.replace(ma,e=>e.slice(1).toUpperCase())),ga=/\B([A-Z])/g,_a=pa(e=>e.replace(ga,`-$1`).toLowerCase()),va=pa(e=>e.charAt(0).toUpperCase()+e.slice(1)),ya=pa(e=>e?`on${va(e)}`:``),ba=(e,t)=>!Object.is(e,t),xa=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},Sa=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Ca=e=>{let t=parseFloat(e);return isNaN(t)?e:t},wa,Ta=()=>wa||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function Ea(e){if(R(e)){let t={};for(let n=0;n<e.length;n++){let r=e[n],i=ia(r)?Aa(r):Ea(r);if(i)for(let e in i)t[e]=i[e]}return t}if(ia(e)||B(e))return e}var Da=/;(?![^(]*\))/g,Oa=/:([^]+)/,ka=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function Aa(e){let t={};return e.replace(ka,e=>e.startsWith(`/*`)?``:e).split(Da).forEach(e=>{if(e){let n=e.split(Oa);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ja(e){let t=``;if(ia(e))t=e;else if(R(e))for(let n=0;n<e.length;n++){let r=ja(e[n]);r&&(t+=r+` `)}else if(B(e))for(let n in e)e[n]&&(t+=n+` `);return t.trim()}var Ma=`itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`,Na=Ki(Ma);Ma+``;function Pa(e){return!!e||e===``}function Fa(e,t,n){if(e.length!==t.length)return!1;let r=!0;for(let i=0;r&&i<e.length;i++)r=za(e[i],t[i],n);return r}function Ia(e,t,n){if(e.size!==t.size)return!1;let r=Array.from(t),i=new Uint8Array(r.length);for(let t of e){let e=-1;for(let a=0;a<r.length;a++)if(!i[a]&&za(t,r[a],n)){e=a;break}if(e<0)return!1;i[e]=1}return!0}function La(e,t,n){let r=ta(e),i=ta(t);if(r||i||(r=na(e),i=na(t),r||i))return r&&i?Ia(e,t,n):!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e){let i=e.hasOwnProperty(r),a=t.hasOwnProperty(r);if(i&&!a||!i&&a||!za(e[r],t[r],n))return!1}return String(e)===String(t)}function Ra(e,t,n,r){n||=[new Map,new Map];let[i,a]=n;if(i.has(e)||a.has(t))return i.get(e)===t&&a.get(t)===e;i.set(e,t),a.set(t,e);let o=r(e,t,n);return i.delete(e),a.delete(t),o}function za(e,t,n){if(e===t)return!0;let r=ra(e),i=ra(t);return r||i?r&&i?e.getTime()===t.getTime():!1:(r=aa(e),i=aa(t),r||i?e===t:(r=R(e),i=R(t),r||i?r&&i?Ra(e,t,n,Fa):!1:(r=B(e),i=B(t),r||i?!r||!i?!1:Ra(e,t,n,La):String(e)===String(t))))}function Ba(e,t){return e.findIndex(e=>za(e,t))}var Va=e=>!!(e&&e.__v_isRef===!0),V=e=>ia(e)?e:e==null?``:R(e)||B(e)&&(e.toString===sa||!z(e.toString))?Va(e)?V(e.value):JSON.stringify(e,Ha,2):String(e),Ha=(e,t)=>Va(t)?Ha(e,t.value):ta(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Ua(t,r)+` =>`]=n,e),{})}:na(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Ua(e))}:aa(t)?Ua(t):B(t)&&!R(t)&&!ua(t)?String(t):t,Ua=(e,t=``)=>aa(e)?`Symbol(${e.description??t})`:e,Wa,Ga=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&Wa&&(Wa.active?(this.parent=Wa,this.index=(Wa.scopes||(Wa.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e<t;e++)n[e].pause()}for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,t;if(this.scopes){let n=this.scopes.slice();for(e=0,t=n.length;e<t;e++)n[e].resume()}let n=this.effects.slice();for(e=0,t=n.length;e<t;e++)n[e].resume()}}run(e){if(this._active){let t=Wa;try{return Wa=this,e()}finally{Wa=t}}}on(){++this._on===1&&(this.prevScope=Wa,Wa=this)}off(){if(this._on>0&&--this._on===0){if(Wa===this)Wa=this.prevScope;else{let e=Wa;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(this.effects.length=0,t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){let e=this.scopes.slice();for(t=0,n=e.length;t<n;t++)e[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}};function Ka(){return Wa}var H,qa=new WeakSet,Ja=class{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Wa&&(Wa.active?Wa.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,qa.has(this)&&(qa.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Qa(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,fo(this),to(this);let e=H,t=so;H=this,so=!0;try{return this.fn()}finally{no(this),H=e,so=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)ao(e);this.deps=this.depsTail=void 0,fo(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?qa.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){ro(this)&&this.run()}get dirty(){return ro(this)}},Ya=0,Xa,Za;function Qa(e,t=!1){if(e.flags|=8,t){e.next=Za,Za=e;return}e.next=Xa,Xa=e}function $a(){Ya++}function eo(){if(--Ya>0)return;if(Za){let e=Za;for(Za=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;Xa;){let t=Xa;for(Xa=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function to(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function no(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),ao(r),oo(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function ro(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(io(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function io(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===po)||(e.globalVersion=po,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ro(e))))return;e.flags|=2;let t=e.dep,n=H,r=so;H=e,so=!0;try{to(e);let n=e.fn(e._value);(t.version===0||ba(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{H=n,so=r,no(e),e.flags&=-3}}function ao(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)ao(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function oo(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var so=!0,co=[];function lo(){co.push(so),so=!1}function uo(){let e=co.pop();so=e===void 0||e}function fo(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=H;H=void 0;try{t()}finally{H=e}}}var po=0,mo=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},ho=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!H||!so||H===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==H)t=this.activeLink=new mo(H,this),H.deps?(t.prevDep=H.depsTail,H.depsTail.nextDep=t,H.depsTail=t):H.deps=H.depsTail=t,go(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=H.depsTail,t.nextDep=void 0,H.depsTail.nextDep=t,H.depsTail=t,H.deps===t&&(H.deps=e)}return t}trigger(e){this.version++,po++,this.notify(e)}notify(e){$a();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{eo()}}};function go(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)go(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var _o=new WeakMap,vo=Symbol(``),yo=Symbol(``),bo=Symbol(``);function xo(e,t,n){if(so&&H){let t=_o.get(e);t||_o.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new ho),r.map=t,r.key=n),r.track()}}function So(e,t,n,r,i,a){let o=_o.get(e);if(!o){po++;return}let s=e=>{e&&e.trigger()};if($a(),t===`clear`)o.forEach(s);else{let i=R(e),a=i&&da(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===bo||!aa(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(bo)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(vo)),ta(e)&&s(o.get(yo)));break;case`delete`:i||(s(o.get(vo)),ta(e)&&s(o.get(yo)));break;case`set`:ta(e)&&s(o.get(vo))}}eo()}function Co(e){let t=U(e);return t===e||(xo(t,`iterate`,bo),cs(e))?t:ss(e)?os(e)?t.map(e=>fs(ds(e))):t.map(fs):t.map(ds)}function wo(e){return xo(e=U(e),`iterate`,bo),e}function To(e,t){return ss(e)?fs(os(e)?ds(t):t):ds(t)}var Eo={__proto__:null,[Symbol.iterator](){return Do(this,Symbol.iterator,e=>To(this,e))},concat(...e){return Co(this).concat(...e.map(e=>R(e)?Co(e):e))},entries(){return Do(this,`entries`,e=>(e[1]=To(this,e[1]),e))},every(e,t){return ko(this,`every`,e,t,void 0,arguments)},filter(e,t){return ko(this,`filter`,e,t,e=>e.map(e=>To(this,e)),arguments)},find(e,t){return ko(this,`find`,e,t,e=>To(this,e),arguments)},findIndex(e,t){return ko(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return ko(this,`findLast`,e,t,e=>To(this,e),arguments)},findLastIndex(e,t){return ko(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return ko(this,`forEach`,e,t,void 0,arguments)},includes(...e){return jo(this,`includes`,e)},indexOf(...e){return jo(this,`indexOf`,e)},join(e){return Co(this).join(e)},lastIndexOf(...e){return jo(this,`lastIndexOf`,e)},map(e,t){return ko(this,`map`,e,t,void 0,arguments)},pop(){return Mo(this,`pop`)},push(...e){return Mo(this,`push`,e)},reduce(e,...t){return Ao(this,`reduce`,e,t)},reduceRight(e,...t){return Ao(this,`reduceRight`,e,t)},shift(){return Mo(this,`shift`)},some(e,t){return ko(this,`some`,e,t,void 0,arguments)},splice(...e){return Mo(this,`splice`,e)},toReversed(){return Co(this).toReversed()},toSorted(e){return Co(this).toSorted(e)},toSpliced(...e){return Co(this).toSpliced(...e)},unshift(...e){return Mo(this,`unshift`,e)},values(){return Do(this,`values`,e=>To(this,e))}};function Do(e,t,n){let r=wo(e),i=r[t]();return r!==e&&!cs(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var Oo=Array.prototype;function ko(e,t,n,r,i,a){let o=wo(e),s=o!==e&&!cs(e),c=o[t];if(c!==Oo[t]){let t=c.apply(e,a);return s?ds(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,To(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function Ao(e,t,n,r){let i=wo(e),a=i!==e&&!cs(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=To(e,t)),n.call(this,t,To(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?To(e,c):c}function jo(e,t,n){let r=U(e);xo(r,`iterate`,bo);let i=r[t](...n);return(i===-1||i===!1)&&ls(n[0])?(n[0]=U(n[0]),r[t](...n)):i}function Mo(e,t,n=[]){lo(),$a();let r=U(e)[t].apply(e,n);return eo(),uo(),r}var No=Ki(`__proto__,__v_isRef,__isVue`),Po=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(aa));function Fo(e){aa(e)||(e=String(e));let t=U(this);return xo(t,`has`,e),t.hasOwnProperty(e)}var Io=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?es:$o:i?Qo:Zo).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=R(e);if(!r){let e;if(a&&(e=Eo[t]))return e;if(t===`hasOwnProperty`)return Fo}let o=Reflect.get(e,t,ps(e)?e:n);if((aa(t)?Po.has(t):No(t))||(r||xo(e,`get`,t),i))return o;if(ps(o)){let e=a&&da(t)?o:o.value;return r&&B(e)?is(e):e}return B(o)?r?is(o):ns(o):o}},Lo=class extends Io{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=R(e)&&da(t);if(!this._isShallow){let e=ss(i);if(!cs(n)&&!ss(n)&&(i=U(i),n=U(n)),!a&&ps(i)&&!ps(n))return e||(i.value=n),!0}let o=a?Number(t)<e.length:L(e,t),s=Reflect.set(e,t,n,ps(e)?e:r);return e===U(r)&&s&&(o?ba(n,i)&&So(e,`set`,t,n,i):So(e,`add`,t,n)),s}deleteProperty(e,t){let n=L(e,t),r=e[t],i=Reflect.deleteProperty(e,t);return i&&n&&So(e,`delete`,t,void 0,r),i}has(e,t){let n=Reflect.has(e,t);return(!aa(t)||!Po.has(t))&&xo(e,`has`,t),n}ownKeys(e){return xo(e,`iterate`,R(e)?`length`:vo),Reflect.ownKeys(e)}},Ro=class extends Io{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}},zo=new Lo,Bo=new Ro,Vo=new Lo(!0),Ho=e=>e,Uo=e=>Reflect.getPrototypeOf(e);function Wo(e,t,n){return function(...r){let i=this.__v_raw,a=U(i),o=ta(a),s=e===`entries`||e===Symbol.iterator&&o,c=e===`keys`&&o,l=i[e](...r),u=n?Ho:t?fs:ds;return!t&&xo(a,`iterate`,c?yo:vo),Qi(Object.create(l),{next(){let{value:e,done:t}=l.next();return t?{value:e,done:t}:{value:s?[u(e[0]),u(e[1])]:u(e),done:t}}})}}function Go(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function Ko(e,t){let n={get(n){let r=this.__v_raw,i=U(r),a=U(n);e||(ba(n,a)&&xo(i,`get`,n),xo(i,`get`,a));let{has:o}=Uo(i),s=t?Ho:e?fs:ds;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&xo(U(t),`iterate`,vo),t.size},has(t){let n=this.__v_raw,r=U(n),i=U(t);return e||(ba(t,i)&&xo(r,`has`,t),xo(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=U(a),s=t?Ho:e?fs:ds;return!e&&xo(o,`iterate`,vo),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return Qi(n,e?{add:Go(`add`),set:Go(`set`),delete:Go(`delete`),clear:Go(`clear`)}:{add(e){let n=U(this),r=Uo(n),i=U(e),a=!t&&!cs(e)&&!ss(e)?i:e;return r.has.call(n,a)||ba(e,a)&&r.has.call(n,e)||ba(i,a)&&r.has.call(n,i)||(n.add(a),So(n,`add`,a,a)),this},set(e,n){!t&&!cs(n)&&!ss(n)&&(n=U(n));let r=U(this),{has:i,get:a}=Uo(r),o=i.call(r,e);o||=(e=U(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?ba(n,s)&&So(r,`set`,e,n,s):So(r,`add`,e,n),this},delete(e){let t=U(this),{has:n,get:r}=Uo(t),i=n.call(t,e);i||=(e=U(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&So(t,`delete`,e,void 0,a),o},clear(){let e=U(this),t=e.size!==0,n=e.clear();return t&&So(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Wo(r,e,t)}),n}function qo(e,t){let n=Ko(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(L(n,r)&&r in t?n:t,r,i)}var Jo={get:qo(!1,!1)},Yo={get:qo(!1,!0)},Xo={get:qo(!0,!1)},Zo=new WeakMap,Qo=new WeakMap,$o=new WeakMap,es=new WeakMap;function ts(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function ns(e){return ss(e)?e:as(e,!1,zo,Jo,Zo)}function rs(e){return as(e,!1,Vo,Yo,Qo)}function is(e){return as(e,!0,Bo,Xo,$o)}function as(e,t,n,r,i){if(!B(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=ts(la(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function os(e){return ss(e)?os(e.__v_raw):!!(e&&e.__v_isReactive)}function ss(e){return!!(e&&e.__v_isReadonly)}function cs(e){return!!(e&&e.__v_isShallow)}function ls(e){return e?!!e.__v_raw:!1}function U(e){let t=e&&e.__v_raw;return t?U(t):e}function us(e){return!L(e,`__v_skip`)&&Object.isExtensible(e)&&Sa(e,`__v_skip`,!0),e}var ds=e=>B(e)?ns(e):e,fs=e=>B(e)?is(e):e;function ps(e){return e?e.__v_isRef===!0:!1}function W(e){return ms(e,!1)}function ms(e,t){return ps(e)?e:new hs(e,t)}var hs=class{constructor(e,t){this.dep=new ho,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:U(e),this._value=t?e:ds(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||cs(e)||ss(e);e=n?e:U(e),ba(e,t)&&(this._rawValue=e,this._value=n?e:ds(e),this.dep.trigger())}};function G(e){return ps(e)?e.value:e}var gs={get:(e,t,n)=>t===`__v_raw`?e:G(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return ps(i)&&!ps(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function _s(e){return os(e)?e:new Proxy(e,gs)}var vs=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new ho(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=po-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&H!==this)return Qa(this,!0),!0}get value(){let e=this.dep.track();return io(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function ys(e,t,n=!1){let r,i;return z(e)?r=e:(r=e.get,i=e.set),new vs(r,i,n)}var bs={},xs=new WeakMap,Ss=void 0;function Cs(e,t=!1,n=Ss){if(n){let t=xs.get(n);t||xs.set(n,t=[]),t.push(e)}}function ws(e,t,n=I){let{immediate:r,deep:i,once:a,scheduler:o,augmentJob:s,call:c}=n,l=e=>i?e:cs(e)||i===!1||i===0?Ts(e,1):Ts(e),u,d,f,p,m=!1,h=!1;if(ps(e)?(d=()=>e.value,m=cs(e)):os(e)?(d=()=>l(e),m=!0):R(e)?(h=!0,m=e.some(e=>os(e)||cs(e)),d=()=>e.map(e=>{if(ps(e))return e.value;if(os(e))return l(e);if(z(e))return c?c(e,2):e()})):d=z(e)?t?c?()=>c(e,2):e:()=>{if(f){lo();try{f()}finally{uo()}}let t=Ss;Ss=u;try{return c?c(e,3,[p]):e(p)}finally{Ss=t}}:Ji,t&&i){let e=d,t=i===!0?1/0:i;d=()=>Ts(e(),t)}let g=Ka(),_=()=>{u.stop(),g&&g.active&&$i(g.effects,u)};if(a&&t){let e=t;t=(...t)=>{let n=e(...t);return _(),n}}let v=h?Array(e.length).fill(bs):bs,y=e=>{if(u.flags&1&&(u.dirty||e)){if(t){let n=u.run();if(e||i||m||(h?n.some((e,t)=>ba(e,v[t])):ba(n,v))){f&&f();let e=Ss;Ss=u;try{let e=[n,v===bs?void 0:h&&v[0]===bs?[]:v,p];v=n,c?c(t,3,e):t(...e)}finally{Ss=e}}}else u.run()}};return s&&s(y),u=new Ja(d),u.scheduler=o?()=>o(y,!1):y,p=e=>Cs(e,!1,u),f=u.onStop=()=>{let e=xs.get(u);if(e){if(c)c(e,4);else for(let t of e)t();xs.delete(u)}},t?r?y(!0):v=u.run():o?o(y.bind(null,!0),!0):u.run(),_.pause=u.pause.bind(u),_.resume=u.resume.bind(u),_.stop=_,_}function Ts(e,t=1/0,n){if(t<=0||!B(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ps(e))Ts(e.value,t,n);else if(R(e))for(let r=0;r<e.length;r++)Ts(e[r],t,n);else if(na(e)||ta(e))e.forEach(e=>{Ts(e,t,n)});else if(ua(e)){for(let r in e)Ts(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Ts(e[r],t,n)}return e}function Es(e,t,n,r){try{return r?e(...r):e()}catch(e){Os(e,t,n)}}function Ds(e,t,n,r){if(z(e)){let i=Es(e,t,n,r);return i&&oa(i)&&i.catch(e=>{Os(e,t,n)}),i}if(R(e)){let i=[];for(let a=0;a<e.length;a++)i.push(Ds(e[a],t,n,r));return i}}function Os(e,t,n,r=!0){let i=t?t.vnode:null,{errorHandler:a,throwUnhandledErrorInProduction:o}=t&&t.appContext.config||I;if(t){let r=t.parent,i=t.proxy,o=`https://vuejs.org/error-reference/#runtime-${n}`;for(;r;){let t=r.ec;if(t){for(let n=0;n<t.length;n++)if(t[n](e,i,o)===!1)return}r=r.parent}if(a){lo(),Es(a,null,10,[e,i,o]),uo();return}}ks(e,n,i,r,o)}function ks(e,t,n,r=!0,i=!1){if(i)throw e;console.error(e)}var As=[],js=-1,Ms=[],Ns=null,Ps=0,Fs=Promise.resolve(),Is=null;function Ls(e){let t=Is||Fs;return e?t.then(this?e.bind(this):e):t}function Rs(e){let t=js+1,n=As.length;for(;t<n;){let r=t+n>>>1,i=As[r],a=Ws(i);a<e||a===e&&i.flags&2?t=r+1:n=r}return t}function zs(e){if(!(e.flags&1)){let t=Ws(e),n=As[As.length-1];!n||!(e.flags&2)&&t>=Ws(n)?As.push(e):As.splice(Rs(t),0,e),e.flags|=1,Bs()}}function Bs(){Is||=Fs.then(Gs)}function Vs(e){if(!R(e))Ns&&e.id===-1?Ns.splice(Ps+1,0,e):e.flags&1||(Ms.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)Ms.push(e[t]);Bs()}function Hs(e,t,n=js+1){for(;n<As.length;n++){let t=As[n];if(t&&t.flags&2){if(e&&t.id!==e.uid)continue;As.splice(n,1),n--,t.flags&4&&(t.flags&=-2),t(),t.flags&4||(t.flags&=-2)}}}function Us(e){if(Ms.length){let e=[...new Set(Ms)].sort((e,t)=>Ws(e)-Ws(t));if(Ms.length=0,Ns){for(let t=0;t<e.length;t++)Ns.push(e[t]);return}for(Ns=e,Ps=0;Ps<Ns.length;Ps++){let e=Ns[Ps];e.flags&4&&(e.flags&=-2),e.flags&8||e(),e.flags&=-2}Ns=null,Ps=0}}var Ws=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Gs(e){try{for(js=0;js<As.length;js++){let e=As[js];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),Es(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;js<As.length;js++){let e=As[js];e&&(e.flags&=-2)}js=-1,As.length=0,Us(e),Is=null,(As.length||Ms.length)&&Gs(e)}}var Ks=null,qs=null;function Js(e){let t=Ks;return Ks=e,qs=e&&e.type.__scopeId||null,t}function K(e,t=Ks,n){if(!t||e._n)return e;let r=(...n)=>{r._d&&fu(-1);let i=Js(t),a=cu.length,o;try{o=e(...n)}finally{for(let e=cu.length;e>a;e--)uu();Js(i),r._d&&fu(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Ys(e,t){if(Ks===null)return e;let n=qu(Ks),r=e.dirs||=[];for(let e=0;e<t.length;e++){let[i,a,o,s=I]=t[e];i&&(z(i)&&(i={mounted:i,updated:i}),i.deep&&Ts(a),r.push({dir:i,instance:n,value:a,oldValue:void 0,arg:o,modifiers:s}))}return e}function Xs(e,t,n,r){let i=e.dirs,a=t&&t.dirs;for(let o=0;o<i.length;o++){let s=i[o];a&&(s.oldValue=a[o].value);let c=s.dir[r];c&&(lo(),Ds(c,n,8,[e.el,s,e,t]),uo())}}function Zs(e,t){if(ju){let n=ju.provides,r=ju.parent&&ju.parent.provides;r===n&&(n=ju.provides=Object.create(r)),n[e]=t}}function Qs(e,t,n=!1){let r=Mu();if(r||ml){let i=ml?ml._context.provides:r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return n&&z(t)?t.call(r&&r.proxy):t}}var $s=Symbol.for(`v-scx`),ec=()=>Qs($s);function tc(e,t,n){return nc(e,t,n)}function nc(e,t,n=I){let{immediate:r,deep:i,flush:a,once:o}=n,s=Qi({},n),c=t&&r||!t&&a!==`post`,l;if(Ru){if(a===`sync`){let e=ec();l=e.__watcherHandles||=[]}else if(!c){let e=()=>{};return e.stop=Ji,e.resume=Ji,e.pause=Ji,e}}let u=ju;s.call=(e,t,n)=>Ds(e,u,t,n);let d=!1;a===`post`?s.scheduler=e=>{Gl(e,u&&u.suspense)}:a!==`sync`&&(d=!0,s.scheduler=(e,t)=>{t?e():zs(e)}),s.augmentJob=e=>{t&&(e.flags|=4),d&&(e.flags|=2,u&&(e.id=u.uid,e.i=u))};let f=ws(e,t,s);return Ru&&(l?l.push(f):c&&f()),f}function rc(e,t,n){let r=this.proxy,i=ia(e)?e.includes(`.`)?ic(r,e):()=>r[e]:e.bind(r,r),a;z(t)?a=t:(a=t.handler,n=t);let o=Fu(this),s=nc(i,a.bind(r),n);return o(),s}function ic(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}var ac=Symbol(`_vte`),oc=e=>e.__isTeleport,sc=Symbol(`_leaveCb`);function cc(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==ou){t=n;break}}return t}function lc(e){if(!vc(e))return oc(e.type)&&e.children?cc(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&z(n.default))return n.default()}}function uc(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let n=e.component.subTree;uc(oc(n.type)&&lc(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function dc(e,t){return z(e)?Qi({name:e.name},t,{setup:e}):e}function fc(e){e.ids=[e.ids[0]+e.ids[2]+++`-`,0,0]}function pc(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}var mc=new WeakMap;function hc(e,t,n,r,i=!1){if(R(e)){e.forEach((e,a)=>hc(e,t&&(R(t)?t[a]:t),n,r,i));return}if(_c(r)&&!i){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&hc(e,t,n,r.component.subTree);return}let a=r.shapeFlag&4?qu(r.component):r.el,o=i?null:a,{i:s,r:c}=e,l=t&&t.r,u=s.refs===I?s.refs={}:s.refs,d=s.setupState,f=U(d),p=d===I?Yi:e=>!pc(u,e)&&L(f,e),m=(e,t)=>!(t&&pc(u,t));if(l!=null&&l!==c){if(gc(t),ia(l))u[l]=null,p(l)&&(d[l]=null);else if(ps(l)){let e=t;m(l,e.k)&&(l.value=null),e.k&&(u[e.k]=null)}}if(z(c))Es(c,s,12,[o,u]);else{let t=ia(c),r=ps(c);if(t||r){let s=()=>{if(e.f){let n=t?p(c)?d[c]:u[c]:m(c)||!e.k?c.value:u[e.k];if(i)R(n)&&$i(n,a);else if(R(n))n.includes(a)||n.push(a);else if(t)u[c]=[a],p(c)&&(d[c]=u[c]);else{let t=[a];m(c,e.k)&&(c.value=t),e.k&&(u[e.k]=t)}}else t?(u[c]=o,p(c)&&(d[c]=o)):r&&(m(c,e.k)&&(c.value=o),e.k&&(u[e.k]=o))};if(o){let t=()=>{s(),mc.delete(e)};t.id=-1,mc.set(e,t),Gl(t,n)}else gc(e),s()}}}function gc(e){let t=mc.get(e);t&&(t.flags|=8,mc.delete(e))}Ta().requestIdleCallback,Ta().cancelIdleCallback;var _c=e=>!!e.type.__asyncLoader,vc=e=>e.type.__isKeepAlive;function yc(e,t){xc(e,`a`,t)}function bc(e,t){xc(e,`da`,t)}function xc(e,t,n=ju){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Cc(t,r,n),n){let e=n.parent;for(;e&&e.parent;)vc(e.parent.vnode)&&Sc(r,t,n,e),e=e.parent}}function Sc(e,t,n,r){let i=Cc(t,e,r,!0);Ac(()=>{$i(r[t],i)},n)}function Cc(e,t,n=ju,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{lo();let i=Fu(n),a=Ds(t,n,e,r);return i(),uo(),a};return r?i.unshift(a):i.push(a),a}}var wc=e=>(t,n=ju)=>{(!Ru||e===`sp`)&&Cc(e,(...e)=>t(...e),n)},Tc=wc(`bm`),Ec=wc(`m`),Dc=wc(`bu`),Oc=wc(`u`),kc=wc(`bum`),Ac=wc(`um`),jc=wc(`sp`),Mc=wc(`rtg`),Nc=wc(`rtc`);function Pc(e,t=ju){Cc(`ec`,e,t)}var Fc=`components`;function Ic(e,t){return Rc(Fc,e,!0,t)||e}var Lc=Symbol.for(`v-ndc`);function Rc(e,t,n=!0,r=!1){let i=Ks||ju;if(i){let n=i.type;if(e===Fc){let e=Ju(n,!1);if(e&&(e===t||e===ha(t)||e===va(ha(t))))return n}let a=zc(i[e]||n[e],t)||zc(i.appContext[e],t);return!a&&r?n:a}}function zc(e,t){return e&&(e[t]||e[ha(t)]||e[va(ha(t))])}function Bc(e,t,n,r){let i,a=n&&n[r],o=R(e);if(o||ia(e)){let n=o&&os(e),r=!1,s=!1;n&&(r=!cs(e),s=ss(e),e=wo(e)),i=Array(e.length);for(let n=0,o=e.length;n<o;n++)i[n]=t(r?s?fs(ds(e[n])):ds(e[n]):e[n],n,void 0,a&&a[n])}else if(typeof e==`number`){i=Array(e);for(let n=0;n<e;n++)i[n]=t(n+1,n,void 0,a&&a[n])}else if(B(e)){if(e[Symbol.iterator])i=Array.from(e,(e,n)=>t(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r<o;r++){let o=n[r];i[r]=t(e[o],o,r,a&&a[r])}}}else i=[];return n&&(n[r]=i),i}function Vc(e,t,n,r,i,a){if(n??={},Ks.ce||Ks.parent&&_c(Ks.parent)&&Ks.parent.ce){let e=a!=null&&n.key==null?Qi({},n,{key:a}):n,i=Object.keys(e).length>0;return t!=="default"&&(e.name=t),q(),mu(iu,null,[X(`slot`,e,r&&r())],i?-2:64)}let o=e[t];o&&o._c&&(o._d=!1);let s=cu.length;q();let c;try{let i=o&&Hc(o(n)),s=n.key||a||i&&i.key;c=mu(iu,{key:(s&&!aa(s)?s:`_${t}`)+(!i&&r?`_fb`:``)},i||(r?r():[]),i&&e._===1?64:-2)}catch(e){for(let e=cu.length;e>s;e--)uu();throw e}finally{o&&o._c&&(o._d=!0)}return!i&&c.scopeId&&(c.slotScopeIds=[c.scopeId+`-s`]),c}function Hc(e){return e.some(e=>!hu(e)||!(e.type===ou||e.type===iu&&!Hc(e.children)))?e:null}var Uc=e=>e?Lu(e)?qu(e):Uc(e.parent):null,Wc=Qi(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=>Uc(e.parent),$root:e=>Uc(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>tl(e),$forceUpdate:e=>e.f||=()=>{zs(e.update)},$nextTick:e=>e.n||=Ls.bind(e.proxy),$watch:e=>rc.bind(e)}),Gc=(e,t)=>e!==I&&!e.__isScriptSetup&&L(e,t),Kc={get({_:e},t){if(t===`__v_skip`)return!0;let{ctx:n,setupState:r,data:i,props:a,accessCache:o,type:s,appContext:c}=e;if(t[0]!==`$`){let e=o[t];if(e!==void 0)switch(e){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return a[t]}else if(Gc(r,t))return o[t]=1,r[t];else if(i!==I&&L(i,t))return o[t]=2,i[t];else if(L(a,t))return o[t]=3,a[t];else if(n!==I&&L(n,t))return o[t]=4,n[t];else Xc&&(o[t]=0)}let l=Wc[t],u,d;if(l)return t===`$attrs`&&xo(e.attrs,`get`,``),l(e);if((u=s.__cssModules)&&(u=u[t]))return u;if(n!==I&&L(n,t))return o[t]=4,n[t];if(d=c.config.globalProperties,L(d,t))return d[t]},set({_:e},t,n){let{data:r,setupState:i,ctx:a}=e;return Gc(i,t)?(i[t]=n,!0):r!==I&&L(r,t)?(r[t]=n,!0):L(e.props,t)||t[0]===`$`&&t.slice(1)in e?!1:(a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:a,type:o}},s){let c;return!!(n[s]||e!==I&&s[0]!==`$`&&L(e,s)||Gc(t,s)||L(a,s)||L(r,s)||L(Wc,s)||L(i.config.globalProperties,s)||(c=o.__cssModules)&&c[s])},defineProperty(e,t,n){return n.get==null?L(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function qc(){return Jc(`useSlots`).slots}function Jc(e){let t=Mu();return t.setupContext||=Ku(t)}function Yc(e){return R(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}var Xc=!0;function Zc(e){let t=tl(e),n=e.proxy,r=e.ctx;Xc=!1,t.beforeCreate&&$c(t.beforeCreate,e,`bc`);let{data:i,computed:a,methods:o,watch:s,provide:c,inject:l,created:u,beforeMount:d,mounted:f,beforeUpdate:p,updated:m,activated:h,deactivated:g,beforeDestroy:_,beforeUnmount:v,destroyed:y,unmounted:b,render:ee,renderTracked:x,renderTriggered:S,errorCaptured:C,serverPrefetch:w,expose:T,inheritAttrs:te,components:ne,directives:re,filters:ie}=t;if(l&&Qc(l,r,null),o)for(let e in o){let t=o[e];z(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);B(t)&&(e.data=ns(t))}if(Xc=!0,a)for(let e in a){let t=a[e],i=$({get:z(t)?t.bind(n,n):z(t.get)?t.get.bind(n,n):Ji,set:!z(t)&&z(t.set)?t.set.bind(n):Ji});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e})}if(s)for(let e in s)el(s[e],r,n,e);if(c){let e=z(c)?c.call(n):c;Reflect.ownKeys(e).forEach(t=>{Zs(t,e[t])})}u&&$c(u,e,`c`);function E(e,t){R(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(E(Tc,d),E(Ec,f),E(Dc,p),E(Oc,m),E(yc,h),E(bc,g),E(Pc,C),E(Nc,x),E(Mc,S),E(kc,v),E(Ac,b),E(jc,w),R(T)){if(T.length){let t=e.exposed||={};T.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={}}ee&&e.render===Ji&&(e.render=ee),te!=null&&(e.inheritAttrs=te),ne&&(e.components=ne),re&&(e.directives=re),w&&fc(e)}function Qc(e,t,n=Ji){R(e)&&(e=ol(e));for(let n in e){let r=e[n],i;i=B(r)?`default`in r?Qs(r.from||n,r.default,!0):Qs(r.from||n):Qs(r),ps(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function $c(e,t,n){Ds(R(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function el(e,t,n,r){let i=r.includes(`.`)?ic(n,r):()=>n[r];if(ia(e)){let n=t[e];z(n)&&tc(i,n)}else if(z(e))tc(i,e.bind(n));else if(B(e)){if(R(e))e.forEach(e=>el(e,t,n,r));else{let r=z(e.handler)?e.handler.bind(n):t[e.handler];z(r)&&tc(i,r,e)}}}function tl(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>nl(c,e,o,!0)),nl(c,t,o)),B(t)&&a.set(t,c),c}function nl(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&nl(e,a,n,!0),i&&i.forEach(t=>nl(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=rl[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var rl={data:il,props:ll,emits:ll,methods:cl,computed:cl,beforeCreate:sl,created:sl,beforeMount:sl,mounted:sl,beforeUpdate:sl,updated:sl,beforeDestroy:sl,beforeUnmount:sl,destroyed:sl,unmounted:sl,activated:sl,deactivated:sl,errorCaptured:sl,serverPrefetch:sl,components:cl,directives:cl,watch:ul,provide:il,inject:al};function il(e,t){return t?e?function(){return Qi(z(e)?e.call(this,this):e,z(t)?t.call(this,this):t)}:t:e}function al(e,t){return cl(ol(e),ol(t))}function ol(e){if(R(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function sl(e,t){return e?[...new Set([].concat(e,t))]:t}function cl(e,t){return e?Qi(Object.create(null),e,t):t}function ll(e,t){return e?R(e)&&R(t)?[...new Set([...e,...t])]:Qi(Object.create(null),Yc(e),Yc(t??{})):t}function ul(e,t){if(!e)return t;if(!t)return e;let n=Qi(Object.create(null),e);for(let r in t)n[r]=sl(e[r],t[r]);return n}function dl(){return{app:null,config:{isNativeTag:Yi,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}var fl=0;function pl(e,t){return function(n,r=null){z(n)||(n=Qi({},n)),r!=null&&!B(r)&&(r=null);let i=dl(),a=new WeakSet,o=[],s=!1,c=i.app={_uid:fl++,_component:n,_props:r,_container:null,_context:i,_instance:null,version:Xu,get config(){return i.config},set config(e){},use(e,...t){return a.has(e)||(e&&z(e.install)?(a.add(e),e.install(c,...t)):z(e)&&(a.add(e),e(c,...t))),c},mixin(e){return i.mixins.includes(e)||i.mixins.push(e),c},component(e,t){return t?(i.components[e]=t,c):i.components[e]},directive(e,t){return t?(i.directives[e]=t,c):i.directives[e]},mount(a,o,l){if(!s){let u=c._ceVNode||X(n,r);return u.appContext=i,l===!0?l=`svg`:l===!1&&(l=void 0),o&&t?t(u,a):e(u,a,l),s=!0,c._container=a,a.__vue_app__=c,qu(u.component)}},onUnmount(e){o.push(e)},unmount(){s&&(Ds(o,c._instance,16),e(null,c._container),delete c._container.__vue_app__)},provide(e,t){return i.provides[e]=t,c},runWithContext(e){let t=ml;ml=c;try{return e()}finally{ml=t}}};return c}}var ml=null,hl=(e,t)=>t===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${ha(t)}Modifiers`]||e[`${_a(t)}Modifiers`];function gl(e,t,...n){if(e.isUnmounted)return;let r=e.vnode.props||I,i=n,a=t.startsWith(`update:`),o=a&&hl(r,t.slice(7));o&&(o.trim&&(i=n.map(e=>ia(e)?e.trim():e)),o.number&&(i=i.map(Ca)));let s,c=r[s=ya(t)]||r[s=ya(ha(t))];!c&&a&&(c=r[s=ya(_a(t))]),c&&Ds(c,e,6,i);let l=r[s+`Once`];if(l){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,Ds(l,e,6,i)}}var _l=new WeakMap;function vl(e,t,n=!1){let r=n?_l:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},s=!1;if(!z(e)){let r=e=>{let n=vl(e,t,!0);n&&(s=!0,Qi(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!s?(B(e)&&r.set(e,null),null):(R(a)?a.forEach(e=>o[e]=null):Qi(o,a),B(e)&&r.set(e,o),o)}function yl(e,t){return!e||!Xi(t)?!1:(t=t.slice(2),t=t===`Once`?t:t.replace(/Once$/,``),L(e,t[0].toLowerCase()+t.slice(1))||L(e,_a(t))||L(e,t))}function bl(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:s,emit:c,render:l,renderCache:u,props:d,data:f,setupState:p,ctx:m,inheritAttrs:h}=e,g=Js(e),_,v;try{if(n.shapeFlag&4){let e=i||r,t=e;_=Cu(l.call(t,e,u,d,p,f,m)),v=s}else{let e=t;_=Cu(e.length>1?e(d,{attrs:s,slots:o,emit:c}):e(d,null)),v=t.props?s:xl(s)}}catch(t){cu.length=0,Os(t,e,1),_=X(ou)}let y=_;if(v&&h!==!1){let e=Object.keys(v),{shapeFlag:t}=y;e.length&&t&7&&(a&&e.some(Zi)&&(v=Sl(v,a)),y=xu(y,v,!1,!0))}return n.dirs&&(y=xu(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition&&uc(oc(y.type)&&lc(y)||y,n.transition),_=y,Js(g),_}var xl=e=>{let t;for(let n in e)(n===`class`||n===`style`||Xi(n))&&((t||={})[n]=e[n]);return t},Sl=(e,t)=>{let n={};for(let r in e)(!Zi(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Cl(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?wl(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(Tl(o,r,n)&&!yl(l,n))return!0}}}else return(i||s)&&(!s||!s.$stable)?!0:r===o?!1:r?!o||wl(r,o,l):!!o;return!1}function wl(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;i<r.length;i++){let a=r[i];if(Tl(t,e,a)&&!yl(n,a))return!0}return!1}function Tl(e,t,n){let r=e[n],i=t[n];return n===`style`&&B(r)&&B(i)?!za(r,i):r!==i}function El({vnode:e,parent:t,suspense:n},r){for(;t;){let n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.suspense.vnode.el=n.el=r,e=n),n===e)(e=t.vnode).el=r,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=r)}var Dl={},Ol=()=>Object.create(Dl),kl=e=>Object.getPrototypeOf(e)===Dl;function Al(e,t,n,r=!1){let i={},a=Ol();e.propsDefaults=Object.create(null),Ml(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);e.props=n?r?i:rs(i):e.type.props?i:a,e.attrs=a}function jl(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=U(i),[c]=e.propsOptions,l=!1;if((r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r<n.length;r++){let o=n[r];if(yl(e.emitsOptions,o))continue;let u=t[o];if(c){if(L(a,o))u!==a[o]&&(a[o]=u,l=!0);else{let t=ha(o);i[t]=Nl(c,s,t,u,e,!1)}}else u!==a[o]&&(a[o]=u,l=!0)}}}else{Ml(e,t,i,a)&&(l=!0);let r;for(let a in s)(!t||!L(t,a)&&((r=_a(a))===a||!L(t,r)))&&(c?n&&(n[a]!==void 0||n[r]!==void 0)&&(i[a]=Nl(c,s,a,void 0,e,!0)):delete i[a]);if(a!==s)for(let e in a)(!t||!L(t,e))&&(delete a[e],l=!0)}l&&So(e.attrs,`set`,``)}function Ml(e,t,n,r){let[i,a]=e.propsOptions,o=!1,s;if(t)for(let c in t){if(fa(c))continue;let l=t[c],u;i&&L(i,u=ha(c))?!a||!a.includes(u)?n[u]=l:(s||={})[u]=l:yl(e.emitsOptions,c)||(!(c in r)||l!==r[c])&&(r[c]=l,o=!0)}if(a){let t=U(n),r=s||I;for(let o=0;o<a.length;o++){let s=a[o];n[s]=Nl(i,t,s,r[s],e,!L(r,s))}}return o}function Nl(e,t,n,r,i,a){let o=e[n];if(o!=null){let e=L(o,`default`);if(e&&r===void 0){let e=o.default;if(o.type!==Function&&!o.skipFactory&&z(e)){let{propsDefaults:a}=i;if(n in a)r=a[n];else{let o=Fu(i);r=a[n]=e.call(null,t),o()}}else r=e;i.ce&&i.ce._setProp(n,r)}o[0]&&(a&&!e?r=!1:o[1]&&(r===``||r===_a(n))&&(r=!0))}return r}var Pl=new WeakMap;function Fl(e,t,n=!1){let r=n?Pl:t.propsCache,i=r.get(e);if(i)return i;let a=e.props,o={},s=[],c=!1;if(!z(e)){let r=e=>{c=!0;let[n,r]=Fl(e,t,!0);Qi(o,n),r&&s.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!a&&!c)return B(e)&&r.set(e,qi),qi;if(R(a))for(let e=0;e<a.length;e++){let t=ha(a[e]);Il(t)&&(o[t]=I)}else if(a)for(let e in a){let t=ha(e);if(Il(t)){let n=a[e],r=o[t]=R(n)||z(n)?{type:n}:Qi({},n),i=r.type,c=!1,l=!0;if(R(i))for(let e=0;e<i.length;++e){let t=i[e],n=z(t)&&t.name;if(n===`Boolean`){c=!0;break}n===`String`&&(l=!1)}else c=z(i)&&i.name===`Boolean`;r[0]=c,r[1]=l,(c||L(r,`default`))&&s.push(t)}}let l=[o,s];return B(e)&&r.set(e,l),l}function Il(e){return e[0]!==`$`&&!fa(e)}var Ll=e=>e===`_`||e===`_ctx`||e===`$stable`,Rl=e=>R(e)?e.map(Cu):[Cu(e)],zl=(e,t,n)=>{if(t._n)return t;let r=K((...e)=>Rl(t(...e)),n);return r._c=!1,r},Bl=(e,t,n)=>{let r=e._ctx;for(let n in e){if(Ll(n))continue;let i=e[n];if(z(i))t[n]=zl(n,i,r);else if(i!=null){let e=Rl(i);t[n]=()=>e}}},Vl=(e,t)=>{let n=Rl(t);e.slots.default=()=>n},Hl=(e,t,n)=>{for(let r in t)(n||!Ll(r))&&(e[r]=t[r])},Ul=(e,t,n)=>{let r=e.slots=Ol();if(e.vnode.shapeFlag&32){let e=t._;e?(Hl(r,t,n),n&&Sa(r,`_`,e,!0)):Bl(t,r)}else t&&Vl(e,t)},Wl=(e,t,n)=>{let{vnode:r,slots:i}=e,a=!0,o=I;if(r.shapeFlag&32){let e=t._;e?n&&e===1?a=!1:Hl(i,t,n):(a=!t.$stable,Bl(t,i)),o=t}else t&&(Vl(e,t),o={default:1});if(a)for(let e in i)!Ll(e)&&o[e]==null&&delete i[e]},Gl=ru;function Kl(e){return ql(e)}function ql(e,t){let n=Ta();n.__VUE__=!0;let{insert:r,remove:i,patchProp:a,createElement:o,createText:s,createComment:c,setText:l,setElementText:u,parentNode:d,nextSibling:f,setScopeId:p=Ji,insertStaticContent:m}=e,h=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!gu(e,t)&&(r=me(e),ue(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null),t.dynamicChildren&&e&&e.dynamicChildren&&e.dynamicChildren.hasOnce&&(t.dynamicChildren===qi&&(t.dynamicChildren=[]),t.dynamicChildren.hasOnce=!0);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case au:g(e,t,n,r);break;case ou:_(e,t,n,r);break;case su:e??v(t,n,r,o);break;case iu:ne(e,t,n,r,i,a,o,s,c);break;default:d&1?ee(e,t,n,r,i,a,o,s,c):d&6?re(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,ge)}u!=null&&i?hc(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&hc(e.ref,null,a,e,!0)},g=(e,t,n,i)=>{if(e==null)r(t.el=s(t.children),n,i);else{let n=t.el=e.el;t.children!==e.children&&l(n,t.children)}},_=(e,t,n,i)=>{e==null?r(t.el=c(t.children||``),n,i):t.el=e.el},v=(e,t,n,r)=>{[e.el,e.anchor]=m(e.children,t,n,r,e.el,e.anchor)},y=({el:e,anchor:t},n,i)=>{let a;for(;e&&e!==t;)a=f(e),r(e,n,i),e=a;r(t,n,i)},b=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=f(e),i(e),e=n;i(t)},ee=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)x(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),w(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},x=(e,t,n,i,s,c,l,d)=>{let f,p,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(f=e.el=o(e.type,c,m&&m.is,m),h&8?u(f,e.children):h&16&&C(e.children,f,null,i,s,Jl(e,c),l,d),_&&Xs(e,null,i,`created`),S(f,e,e.scopeId,l,i),m){for(let e in m)e!==`value`&&!fa(e)&&a(f,e,null,m[e],c,i);`value`in m&&a(f,`value`,null,m.value,c),(p=m.onVnodeBeforeMount)&&Du(p,i,e)}_&&Xs(e,null,i,`beforeMount`);let v=Xl(s,g);v&&g.beforeEnter(f),r(f,t,n),((p=m&&m.onVnodeMounted)||v||_)&&Gl(()=>{try{p&&Du(p,i,e),v&&g.enter(f),_&&Xs(e,null,i,`mounted`)}finally{}},s)},S=(e,t,n,r,i)=>{if(n&&p(e,n),r)for(let t=0;t<r.length;t++)p(e,r[t]);if(i){let n=i.subTree;if(t===n||nu(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=i.vnode;S(e,t,t.scopeId,t.slotScopeIds,i.parent)}}},C=(e,t,n,r,i,a,o,s,c=0)=>{for(let l=c;l<e.length;l++){let c=e[l]=s?wu(e[l]):Cu(e[l]);h(null,c,t,n,r,i,a,o,s)}},w=(e,t,n,r,i,o,s)=>{let c=t.el=e.el,{patchFlag:l,dynamicChildren:d,dirs:f}=t;l|=e.patchFlag&16;let p=e.props||I,m=t.props||I,h;if(n&&Yl(n,!1),(h=m.onVnodeBeforeUpdate)&&Du(h,n,t,e),f&&Xs(t,e,n,`beforeUpdate`),n&&Yl(n,!0),d&&(!e.dynamicChildren||e.dynamicChildren.length!==d.length)&&(l=0,s=!1,d=null),(p.innerHTML&&m.innerHTML==null||p.textContent&&m.textContent==null)&&u(c,``),d?T(e.dynamicChildren,d,c,n,r,Jl(t,i),o):s||oe(e,t,c,null,n,r,Jl(t,i),o,!1),l>0){if(l&16)te(c,p,m,n,i);else if(l&2&&p.class!==m.class&&a(c,`class`,null,m.class,i),l&4&&a(c,`style`,p.style,m.style,i),l&8){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let r=e[t],o=p[r],s=m[r];(s!==o||r===`value`)&&a(c,r,o,s,i,n)}}l&1&&e.children!==t.children&&u(c,t.children)}else!s&&d==null&&te(c,p,m,n,i);((h=m.onVnodeUpdated)||f)&&Gl(()=>{h&&Du(h,n,t,e),f&&Xs(t,e,n,`updated`)},r)},T=(e,t,n,r,i,a,o)=>{for(let s=0;s<t.length;s++){let c=e[s],l=t[s],u=c.el&&(c.type===iu||!gu(c,l)||c.shapeFlag&198)?d(c.el):n;h(c,l,u,null,r,i,a,o,!0)}},te=(e,t,n,r,i)=>{if(t!==n){if(t!==I)for(let o in t)!fa(o)&&!(o in n)&&a(e,o,t[o],null,i,r);for(let o in n){if(fa(o))continue;let s=n[o],c=t[o];s!==c&&o!==`value`&&a(e,o,c,s,i,r)}`value`in n&&a(e,`value`,t.value,n.value,i)}},ne=(e,t,n,i,a,o,c,l,u)=>{let d=t.el=e?e.el:s(``),f=t.anchor=e?e.anchor:s(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(l=l?l.concat(h):h),e==null?(r(d,n,i),r(f,n,i),C(t.children||[],n,f,a,o,c,l,u)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(T(e.dynamicChildren,m,n,a,o,c,l),(t.key!=null||a&&t===a.subTree)&&Zl(e,t,!0)):oe(e,t,n,f,a,o,c,l,u)},re=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):ie(t,n,r,i,a,o,c):E(e,t,c)},ie=(e,t,n,r,i,a,o)=>{let s=e.component=Au(e,r,i);if(vc(e)&&(s.ctx.renderer=ge),zu(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,D,o),!e.el){let r=s.subTree=X(ou);_(null,r,t,n),e.placeholder=r.el}}else D(s,e,t,n,i,a,o)},E=(e,t,n)=>{let r=t.component=e.component;if(Cl(e,t,n)){if(r.asyncDep&&!r.asyncResolved){t.el=e.el,ae(r,t,n);return}r.next=t,r.update()}else t.el=e.el,r.vnode=t},D=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=$l(e);if(n){t&&(t.el=c.el,ae(e,t,o)),n.asyncDep.then(()=>{Gl(()=>{e.isUnmounted||l()},i)});return}}let u=t,f;Yl(e,!1),t?(t.el=c.el,ae(e,t,o)):t=c,n&&xa(n),(f=t.props&&t.props.onVnodeBeforeUpdate)&&Du(f,s,t,c),Yl(e,!0);let p=bl(e),m=e.subTree;e.subTree=p,h(m,p,d(m.el),me(m),e,i,a),t.el=p.el,u===null&&El(e,p.el),r&&Gl(r,i),(f=t.props&&t.props.onVnodeUpdated)&&Gl(()=>Du(f,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=_c(t);if(Yl(e,!1),l&&xa(l),!m&&(o=c&&c.onVnodeBeforeMount)&&Du(o,d,t),Yl(e,!0),s&&ve){let t=()=>{e.subTree=bl(e),ve(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=bl(e);h(null,o,n,r,e,i,a),t.el=o.el}if(u&&Gl(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;Gl(()=>Du(o,d,e),i)}(t.shapeFlag&256||d&&_c(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&Gl(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new Ja(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>zs(u),Yl(e,!0),l()},ae=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,jl(e,t.props,r,n),Wl(e,t.children,n),lo(),Hs(e),uo()},oe=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,d=e?e.shapeFlag:0,f=t.children,{patchFlag:p,shapeFlag:m}=t;if(p>0){if(p&128){ce(l,f,n,r,i,a,o,s,c);return}if(p&256){se(l,f,n,r,i,a,o,s,c);return}}m&8?(d&16&&pe(l,i,a),f!==l&&u(n,f)):d&16?m&16?ce(l,f,n,r,i,a,o,s,c):pe(l,i,a,!0):(d&8&&u(n,``),m&16&&C(f,n,r,i,a,o,s,c))},se=(e,t,n,r,i,a,o,s,c)=>{e||=qi,t||=qi;let l=e.length,u=t.length,d=Math.min(l,u),f=0;for(;f<d;f++){let r=t[f]=c?wu(t[f]):Cu(t[f]);h(e[f],r,n,null,i,a,o,s,c)}l>u?pe(e,i,a,!0,!1,d):C(t,n,r,i,a,o,s,c,d)},ce=(e,t,n,r,i,a,o,s,c)=>{let l=0,u=t.length,d=e.length-1,f=u-1;for(;l<=d&&l<=f;){let r=e[l],u=t[l]=c?wu(t[l]):Cu(t[l]);if(gu(r,u))h(r,u,n,null,i,a,o,s,c);else break;l++}for(;l<=d&&l<=f;){let r=e[d],l=t[f]=c?wu(t[f]):Cu(t[f]);if(gu(r,l))h(r,l,n,null,i,a,o,s,c);else break;d--,f--}if(l>d){if(l<=f){let e=f+1,d=e<u?t[e].el:r;for(;l<=f;)h(null,t[l]=c?wu(t[l]):Cu(t[l]),n,d,i,a,o,s,c),l++}}else if(l>f)for(;l<=d;)ue(e[l],i,a,!0),l++;else{let p=l,m=l,g=new Map;for(l=m;l<=f;l++){let e=t[l]=c?wu(t[l]):Cu(t[l]);e.key!=null&&g.set(e.key,l)}let _,v=0,y=f-m+1,b=!1,ee=0,x=Array(y);for(l=0;l<y;l++)x[l]=0;for(l=p;l<=d;l++){let r=e[l];if(v>=y){ue(r,i,a,!0);continue}let u;if(r.key!=null)u=g.get(r.key);else for(_=m;_<=f;_++)if(x[_-m]===0&&gu(r,t[_])){u=_;break}u===void 0?ue(r,i,a,!0):(x[u-m]=l+1,u>=ee?ee=u:b=!0,h(r,t[u],n,null,i,a,o,s,c),v++)}let S=b?Ql(x):qi;for(_=S.length-1,l=y-1;l>=0;l--){let e=m+l,d=t[e],f=t[e+1],p=e+1<u?f.el||tu(f):r;x[l]===0?h(null,d,n,p,i,a,o,s,c):b&&(_<0||l!==S[_]?le(d,n,p,2):_--)}}},le=(e,t,n,a,o=null)=>{let{el:s,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){le(e.component.subTree,t,n,a);return}if(d&128){e.suspense.move(t,n,a);return}if(d&64){c.move(e,t,n,ge);return}if(c===iu){r(s,t,n);for(let e=0;e<u.length;e++)le(u[e],t,n,a);r(e.anchor,t,n);return}if(c===su){y(e,t,n);return}if(a!==2&&d&1&&l){if(a===0)l.persisted&&!s[sc]?r(s,t,n):(l.beforeEnter(s),r(s,t,n),Gl(()=>l.enter(s),o));else{let{leave:a,delayLeave:o,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?i(s):r(s,t,n)},d=()=>{let e=s._isLeaving||!!s[sc];s._isLeaving&&s[sc](!0),l.persisted&&!e?u():a(s,()=>{u(),c&&c()})};o?o(s,u,d):d()}}else r(s,t,n)},ue=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if((d===-2||l&&l.hasOnce)&&(i=!1),s!=null&&(lo(),hc(s,null,n,e,!0),uo()),p!=null&&(!e.ctx||e.ctx===t)&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!_c(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&Du(_,t,e),u&6)O(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&Xs(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,ge,r):l&&!l.hasOnce&&(a!==iu||d>0&&d&64)?pe(l,t,n,!1,!0):(a===iu&&d&384||!i&&u&16)&&pe(c,t,n),r&&de(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&Gl(()=>{_&&Du(_,t,e),h&&Xs(e,null,t,`unmounted`),v&&(e.el=null)},n)},de=e=>{let{type:t,el:n,anchor:r,transition:a}=e;if(t===iu){fe(n,r);return}if(t===su){b(e),a&&!a.persisted&&a.afterLeave&&a.afterLeave();return}let o=()=>{i(n),a&&!a.persisted&&a.afterLeave&&a.afterLeave()};if(e.shapeFlag&1&&a&&!a.persisted){let{leave:t,delayLeave:r}=a,i=()=>t(n,o);r?r(e.el,o,i):i()}else o()},fe=(e,t)=>{let n;for(;e!==t;)n=f(e),i(e),e=n;i(t)},O=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;eu(c),eu(l),r&&xa(r),i.stop(),a?(a.flags|=8,ue(o,e,t,n)):e.vnode.el&&o&&(o.transition=e.vnode.transition,ue(o,e,t,n)),s&&Gl(s,t),Gl(()=>{e.isUnmounted=!0},t)},pe=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o<e.length;o++)ue(e[o],t,n,r,i)},me=e=>{if(e.shapeFlag&6)return me(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=f(e.anchor||e.el),n=t&&t[ac];return n?f(n):t},k=!1,he=(e,t,n)=>{let r;e==null?t._vnode&&(ue(t._vnode,null,null,!0),r=t._vnode.component):h(t._vnode||null,e,t,null,null,null,n),t._vnode=e,k||=(k=!0,Hs(r),Us(),!1)},ge={p:h,um:ue,m:le,r:de,mt:ie,mc:C,pc:oe,pbc:T,n:me,o:e},_e,ve;return t&&([_e,ve]=t(ge)),{render:he,hydrate:_e,createApp:pl(he,_e)}}function Jl({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 Yl({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Xl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Zl(e,t,n=!1){let r=e.children,i=t.children;if(R(r)&&R(i))for(let e=0;e<r.length;e++){let t=r[e],a=i[e];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=i[e]=wu(i[e]),a.el=t.el),!n&&a.patchFlag!==-2&&Zl(t,a)),a.type===au&&(a.patchFlag===-1&&(a=i[e]=wu(a)),a.el=t.el),a.type===ou&&!a.el&&(a.el=t.el)}}function Ql(e){let t=e.slice(),n=[0],r,i,a,o,s,c=e.length;for(r=0;r<c;r++){let c=e[r];if(c!==0){if(i=n[n.length-1],e[i]<c){t[r]=i,n.push(r);continue}for(a=0,o=n.length-1;a<o;)s=a+o>>1,e[n[s]]<c?a=s+1:o=s;c<e[n[a]]&&(a>0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-->0;)n[a]=o,o=t[o];return n}function $l(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:$l(t)}function eu(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function tu(e){if(e.placeholder)return e.placeholder;let t=e.component;return t?tu(t.subTree):null}var nu=e=>e.__isSuspense;function ru(e,t){t&&t.pendingBranch?R(e)?t.effects.push(...e):t.effects.push(e):Vs(e)}var iu=Symbol.for(`v-fgt`),au=Symbol.for(`v-txt`),ou=Symbol.for(`v-cmt`),su=Symbol.for(`v-stc`),cu=[],lu=null;function q(e=!1){cu.push(lu=e?null:[])}function uu(){cu.pop(),lu=cu[cu.length-1]||null}var du=1;function fu(e,t=!1){du+=e,e<0&&lu&&t&&(lu.hasOnce=!0)}function pu(e){return e.dynamicChildren=du>0?lu||qi:null,uu(),du>0&&lu&&lu.push(e),e}function J(e,t,n,r,i,a){return pu(Y(e,t,n,r,i,a,!0))}function mu(e,t,n,r,i){return pu(X(e,t,n,r,i,!0))}function hu(e){return e?e.__v_isVNode===!0:!1}function gu(e,t){return e.type===t.type&&e.key===t.key}var _u=({key:e})=>e??null,vu=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:ia(e)||ps(e)||z(e)?{i:Ks,r:e,k:t,f:!!n}:e);function Y(e,t=null,n=null,r=0,i=null,a=e===iu?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&_u(t),ref:t&&vu(t),scopeId:qs,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Ks};return s?(Tu(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=ia(n)?8:16),du>0&&!o&&lu&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&lu.push(c),c}var X=yu;function yu(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===Lc)&&(e=ou),hu(e)){let r=xu(e,t,!0);return n&&Tu(r,n),du>0&&!a&&lu&&(r.shapeFlag&6?lu[lu.indexOf(e)]=r:lu.push(r)),r.patchFlag=-2,r}if(Yu(e)&&(e=e.__vccOpts),t){t=bu(t);let{class:e,style:n}=t;e&&!ia(e)&&(t.class=ja(e)),B(n)&&(ls(n)&&!R(n)&&(n=Qi({},n)),t.style=Ea(n))}let o=ia(e)?1:nu(e)?128:oc(e)?64:B(e)?4:z(e)?2:0;return Y(e,t,n,r,i,o,a,!0)}function bu(e){return e?ls(e)||kl(e)?Qi({},e):e:null}function xu(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?Eu(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&_u(l),ref:t&&t.ref?n&&a?R(a)?a.concat(vu(t)):[a,vu(t)]:vu(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==iu?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&xu(e.ssContent),ssFallback:e.ssFallback&&xu(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return c&&r&&uc(u,c.clone(u)),u}function Z(e=` `,t=0){return X(au,null,e,t)}function Su(e,t){let n=X(su,null,e);return n.staticCount=t,n}function Q(e=``,t=!1){return t?(q(),mu(ou,null,e)):X(ou,null,e)}function Cu(e){return e==null||typeof e==`boolean`?X(ou):R(e)?X(iu,null,e.slice()):hu(e)?wu(e):X(au,null,String(e))}function wu(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:xu(e)}function Tu(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(R(t))n=16;else if(typeof t==`object`){if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),Tu(e,n()),n._c&&(n._d=!0));return}{n=32;let r=t._;!r&&!kl(t)?t._ctx=Ks:r===3&&Ks&&(Ks.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}}else if(z(t)){if(r&65){Tu(e,{default:t});return}t={default:t,_ctx:Ks},n=32}else t=String(t),r&64?(n=16,t=[Z(t)]):n=8;e.children=t,e.shapeFlag|=n}function Eu(...e){let t={};for(let n=0;n<e.length;n++){let r=e[n];for(let e in r)if(e===`class`)t.class!==r.class&&(t.class=ja([t.class,r.class]));else if(e===`style`)t.style=Ea([t.style,r.style]);else if(Xi(e)){let n=t[e],i=r[e];i&&n!==i&&!(R(n)&&n.includes(i))?t[e]=n?[].concat(n,i):i:i==null&&n==null&&!Zi(e)&&(t[e]=i)}else e!==``&&(t[e]=r[e])}return t}function Du(e,t,n,r=null){Ds(e,t,7,[n,r])}var Ou=dl(),ku=0;function Au(e,t,n){let r=e.type,i=(t?t.appContext:e.appContext)||Ou,a={uid:ku++,vnode:e,type:r,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Ga(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:[``,0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Fl(r,i),emitsOptions:vl(r,i),emit:null,emitted:null,propsDefaults:I,inheritAttrs:r.inheritAttrs,ctx:I,data:I,props:I,attrs:I,slots:I,refs:I,setupState:I,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx={_:a},a.root=t?t.root:a,a.emit=gl.bind(null,a),e.ce&&e.ce(a),a}var ju=null,Mu=()=>ju||Ks,Nu,Pu;{let e=Ta(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};Nu=t(`__VUE_INSTANCE_SETTERS__`,e=>ju=e),Pu=t(`__VUE_SSR_SETTERS__`,e=>Ru=e)}var Fu=e=>{let t=ju;return Nu(e),e.scope.on(),()=>{e.scope.off(),Nu(t)}},Iu=()=>{ju&&ju.scope.off(),Nu(null)};function Lu(e){return e.vnode.shapeFlag&4}var Ru=!1;function zu(e,t=!1,n=!1){t&&Pu(t);let{props:r,children:i}=e.vnode,a=Lu(e);Al(e,r,a,t),Ul(e,i,n||t);let o=a?Bu(e,t):void 0;return t&&Pu(!1),o}function Bu(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Kc);let{setup:r}=n;if(r){lo();let n=e.setupContext=r.length>1?Ku(e):null,i=Fu(e),a=Es(r,e,0,[e.props,n]),o=oa(a);if(uo(),i(),(o||e.sp)&&!_c(e)&&fc(e),o){if(a.then(Iu,Iu),t)return a.then(n=>{Pu(!0);try{Vu(e,n,t)}finally{Pu(!1)}}).catch(t=>{Os(t,e,0)});e.asyncDep=a}else Vu(e,a,t)}else Wu(e,t)}function Vu(e,t,n){z(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:B(t)&&(e.setupState=_s(t)),Wu(e,n)}var Hu,Uu;function Wu(e,t,n){let r=e.type;if(!e.render){if(!t&&Hu&&!r.render){let t=r.template||tl(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:a,compilerOptions:o}=r;r.render=Hu(t,Qi(Qi({isCustomElement:n,delimiters:a},i),o))}}e.render=r.render||Ji,Uu&&Uu(e)}{let t=Fu(e);lo();try{Zc(e)}finally{uo(),t()}}}var Gu={get(e,t){return xo(e,`get`,``),e[t]}};function Ku(e){return{attrs:new Proxy(e.attrs,Gu),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function qu(e){return e.exposed?e.exposeProxy||=new Proxy(_s(us(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Wc)return Wc[n](e)},has(e,t){return t in e||t in Wc}}):e.proxy}function Ju(e,t=!0){return z(e)?e.displayName||e.name:e.name||t&&e.__name}function Yu(e){return z(e)&&`__vccOpts`in e}var $=(e,t)=>ys(e,t,Ru),Xu=`3.5.43`,Zu=void 0,Qu=typeof window<`u`&&window.trustedTypes;if(Qu)try{Zu=Qu.createPolicy(`vue`,{createHTML:e=>e})}catch{}var $u=Zu?e=>Zu.createHTML(e):e=>e,ed=`http://www.w3.org/2000/svg`,td=`http://www.w3.org/1998/Math/MathML`,nd=typeof document<`u`?document:null,rd=nd&&nd.createElement(`template`),id={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?nd.createElementNS(ed,e):t===`mathml`?nd.createElementNS(td,e):n?nd.createElement(e,{is:n}):nd.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>nd.createTextNode(e),createComment:e=>nd.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>nd.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==a&&(i=i.nextSibling););else{rd.innerHTML=$u(r===`svg`?`<svg>${e}</svg>`:r===`mathml`?`<math>${e}</math>`:e);let i=rd.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ad=Symbol(`_vtc`);function od(e,t,n){let r=e[ad];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var sd=Symbol(`_vod`),cd=Symbol(`_vsh`),ld={name:`show`,beforeMount(e,{value:t},{transition:n}){e[sd]=e.style.display===`none`?``:e.style.display,n&&t?n.beforeEnter(e):ud(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),ud(e,!0),r.enter(e)):r.leave(e,()=>{ud(e,!1)}):ud(e,t))},beforeUnmount(e,{value:t}){ud(e,t)}};function ud(e,t){e.style.display=t?e[sd]:`none`,e[cd]=!t}var dd=Symbol(``),fd=/(?:^|;)\s*display\s*:/;function pd(e,t,n){let r=e.style,i=ia(n),a=!1;if(n&&!i){if(t){if(ia(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??hd(r,t,``)}else for(let e in t)n[e]??hd(r,e,``)}for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?hd(r,i,``):yd(e,i,!ia(t)&&t?t[i]:void 0,o)||hd(r,i,o)}}else if(i){if(t!==n){let e=r[dd];e&&(n+=`;`+e),r.cssText=n,a=fd.test(n)}}else t&&e.removeAttribute(`style`);sd in e&&(e[sd]=a?r.display:``,e[cd]&&(r.display=`none`))}var md=/\s*!important$/;function hd(e,t,n){if(R(n))n.forEach(n=>hd(e,t,n));else if(n??=``,t.startsWith(`--`))md.test(n)?e.setProperty(t,n.replace(md,``),`important`):e.setProperty(t,n);else{let r=vd(e,t);md.test(n)?e.setProperty(_a(r),n.replace(md,``),`important`):e[r]=n}}var gd=[`Webkit`,`Moz`,`ms`],_d={};function vd(e,t){let n=_d[t];if(n)return n;let r=ha(t);if(r!==`filter`&&r in e)return _d[t]=r;r=va(r);for(let n=0;n<gd.length;n++){let i=gd[n]+r;if(i in e)return _d[t]=i}return t}function yd(e,t,n,r){return e.tagName===`TEXTAREA`&&(t===`width`||t===`height`)&&ia(r)&&n===r}var bd=`http://www.w3.org/1999/xlink`;function xd(e,t,n,r,i,a=Na(t)){r&&t.startsWith(`xlink:`)?n==null?e.removeAttributeNS(bd,t.slice(6,t.length)):e.setAttributeNS(bd,t,n):n==null||a&&!Pa(n)?e.removeAttribute(t):e.setAttribute(t,a?``:aa(n)?String(n):n)}function Sd(e,t,n,r,i){if(t===`innerHTML`||t===`textContent`){n!=null&&(e[t]=t===`innerHTML`?$u(n):n);return}let a=e.tagName;if(t===`value`&&a!==`PROGRESS`&&!a.includes(`-`)){let r=a===`OPTION`?e.getAttribute(`value`)||``:e.value,i=n==null?e.type===`checkbox`?`on`:``:String(n);(r!==i||!(`_value`in e))&&(e.value=i),n??e.removeAttribute(t),e._value=n;return}let o=!1;if(n===``||n==null){let r=typeof e[t];r===`boolean`?n=Pa(n):n==null&&r===`string`?(n=``,o=!0):r===`number`&&(n=0,o=!0)}try{e[t]=n}catch{}o&&e.removeAttribute(i||t)}function Cd(e,t,n,r){e.addEventListener(t,n,r)}function wd(e,t,n,r){e.removeEventListener(t,n,r)}var Td=Symbol(`_vei`);function Ed(e,t,n,r,i=null){let a=e[Td]||(e[Td]={}),o=a[t];if(r&&o)o.value=r;else{let[n,s]=kd(t);r?Cd(e,n,a[t]=Nd(r,i),s):o&&(wd(e,n,o,s),a[t]=void 0)}}var Dd=/(Once|Passive|Capture)$/,Od=/^on:?(?:Once|Passive|Capture)$/;function kd(e){let t,n;for(;(n=e.match(Dd))&&!Od.test(e);)t||={},e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===`:`?e.slice(3):_a(e.slice(2)),t]}var Ad=0,jd=Promise.resolve(),Md=()=>Ad||=(jd.then(()=>Ad=0),Date.now());function Nd(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(R(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;n<i.length&&!e._stopped;n++){let e=i[n];e&&Ds(e,t,5,a)}}else Ds(r,t,5,[e])};return n.value=e,n.attached=Md(),n}var Pd=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Fd=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?od(e,r,o):t===`style`?pd(e,n,r):Xi(t)?Zi(t)||Ed(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),1):t[0]===`^`?(t=t.slice(1),0):Id(e,t,r,o))?(Sd(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&xd(e,t,r,o,a,t!==`value`)):e._isVueCE&&(Ld(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ia(r)))?Sd(e,ha(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),xd(e,t,r,o))};function Id(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&Pd(t)&&z(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return Pd(t)&&ia(n)?!1:t in e}function Ld(e,t){let n=e._def.props;if(!n)return!1;let r=ha(t);return Array.isArray(n)?n.some(e=>ha(e)===r):Object.keys(n).some(e=>ha(e)===r)}var Rd=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return R(t)?e=>xa(t,e):t},zd=Symbol(`_assign`),Bd={deep:!0,created(e,{value:t,modifiers:{number:n}},r){e._modelValue=t,Cd(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?Ca(Ud(e)):Ud(e)),r=e.multiple,i=r?na(e._modelValue)?new Set(t):t:t[0],a=e._pendingValue=[r,r?R(i)?t.slice():t:i];try{e[zd](i)}finally{Ls(()=>{e._pendingValue===a&&(e._pendingValue=void 0)})}}),e[zd]=Rd(r)},mounted(e,{value:t}){Hd(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[zd]=Rd(n)},updated(e,{value:t}){let n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!Vd(t,n[1],n[0]))&&Hd(e,t)}};function Vd(e,t,n){if(!n||R(e))return za(e,t);if(na(e)){if(e.size!==t.length)return!1;for(let n of t)if(!e.has(n))return!1;return!0}return!1}function Hd(e,t){let n=e.multiple,r=R(t);if(!n||r||na(t)){for(let i=0,a=e.options.length;i<a;i++){let a=e.options[i],o=Ud(a);if(n){if(r){let e=typeof o;a.selected=e===`string`||e===`number`?t.some(e=>String(e)===String(o)):Ba(t,o)>-1}else a.selected=t.has(o)}else if(za(Ud(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Ud(e){return`_value`in e?e._value:e.value}var Wd=[`ctrl`,`shift`,`alt`,`meta`],Gd={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>Wd.some(n=>e[`${n}Key`]&&!t.includes(n))},Kd=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e<t.length;e++){let r=Gd[t[e]];if(r&&r(n,t))return}return e(n,...r)}))},qd={esc:`escape`,space:` `,up:`arrow-up`,left:`arrow-left`,right:`arrow-right`,down:`arrow-down`,delete:`backspace`},Jd=(e,t)=>{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=_a(n.key);if(t.some(e=>e===r||qd[e]===r))return e(n)}))},Yd=Qi({patchProp:Fd},id),Xd;function Zd(){return Xd||=Kl(Yd)}var Qd=((...e)=>{let t=Zd().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=ef(e);if(!r)return;let i=t._component;!z(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,$d(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function $d(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function ef(e){return ia(e)?document.querySelector(e):e}var tf={"circle-check":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512m118-366.3c-10.7-7.8-25.7-5.4-33.5 5.3L221.1 315.2 169 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.8 7.5 18.8 7s13.4-4.1 17.5-9.8l135.9-187c7.8-10.7 5.4-25.7-5.3-33.5"/></svg>`,"circle-exclamation":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512m0-192a32 32 0 1 0 0 64 32 32 0 1 0 0-64m0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.6 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z"/></svg>`,"circle-xmark":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512m-89-345c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9"/></svg>`,cog:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M195.1 9.5c3-14.8 16.1-25.5 31.3-25.5h59.8c15.2 0 28.3 10.7 31.3 25.5l14.5 70c14.1 6 27.3 13.7 39.3 22.8l67.8-22.5c14.4-4.8 30.2 1.2 37.8 14.4l29.9 51.8c7.6 13.2 4.9 29.8-6.5 39.9L447 233.3c.9 7.4 1.3 15 1.3 22.7s-.5 15.3-1.3 22.7l53.4 47.5c11.4 10.1 14 26.8 6.5 39.9L477 417.9c-7.6 13.1-23.4 19.2-37.8 14.4l-67.8-22.5c-12.1 9.1-25.3 16.7-39.3 22.8l-14.4 69.9c-3.1 14.9-16.2 25.5-31.3 25.5h-59.8c-15.2 0-28.3-10.7-31.3-25.5l-14.4-69.9c-14.1-6-27.2-13.7-39.3-22.8l-68.1 22.5c-14.4 4.8-30.2-1.2-37.8-14.4L5.8 366.1c-7.6-13.2-4.9-29.8 6.5-39.9l53.4-47.5c-.9-7.4-1.3-15-1.3-22.7s.5-15.3 1.3-22.7l-53.4-47.5C.9 175.7-1.7 159 5.8 145.9l29.9-51.8c7.6-13.2 23.4-19.2 37.8-14.4l67.8 22.5c12.1-9.1 25.3-16.7 39.3-22.8zM256.3 336a80 80 0 1 0-.6-160 80 80 0 1 0 .6 160"/></svg>`,comment:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M512 240c0 132.5-114.6 240-256 240-37.1 0-72.3-7.4-104.1-20.7L33.5 510.1c-9.4 4-20.2 1.7-27.1-5.8s-8.4-18.5-3.6-27.5l48.8-92.2C19.2 344.3 0 294.3 0 240 0 107.5 114.6 0 256 0s256 107.5 256 240"/></svg>`,"comment-regular":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M51.9 384.9C19.3 344.6 0 294.4 0 240 0 107.5 114.6 0 256 0s256 107.5 256 240-114.6 240-256 240c-36.5 0-71.2-7.2-102.6-20L37 509.9c-3.7 1.6-7.5 2.1-11.5 2.1C11.4 512 0 500.6 0 486.5c0-4.3 1.1-8.5 3.1-12.2zm37.3-30.2c12.2 15.1 14.1 36.1 4.8 53.2L76 441l58.5-25.1c11.8-5.1 25.2-5.2 37.1-.3 25.7 10.5 54.2 16.4 84.3 16.4 117.8 0 208-88.8 208-192S373.8 48 256 48 48 136.8 48 240c0 42.8 15.1 82.4 41.2 114.7"/></svg>`,"face-smile":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512m-90.6-190.1c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3M144 208a32 32 0 1 1 64 0 32 32 0 1 1-64 0m192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64"/></svg>`,heart:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="m241 87.1 15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1v2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7v-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1"/></svg>`,image:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm64 80a48 48 0 1 1 0 96 48 48 0 1 1 0-96m144 112c8.4 0 16.1 4.4 20.5 11.5l88 144c4.5 7.4 4.7 16.7.5 24.3S368.7 416 360 416H88c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l26.4 37.8 61.4-100.5c4.4-7.1 12.1-11.5 20.5-11.5z"/></svg>`,"image-regular":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M64 80c-8.8 0-16 7.2-16 16v320c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16zM0 96c0-35.3 28.7-64 64-64h320c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm128 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64m136 72c8.5 0 16.4 4.5 20.7 11.8l80 136c4.4 7.4 4.4 16.6.1 24.1S352.6 384 344 384H104c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l17.2 24.6 46.5-79c4.3-7.3 12.2-11.8 20.7-11.8z"/></svg>`,laugh:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512M101.6 314c-3.7-13.7 7.5-26 21.7-26h265.4c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118s-136-50-154.4-118M144 192a32 32 0 1 1 64 0 32 32 0 1 1-64 0m192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64"/></svg>`,"laugh-regular":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M464 256a208 208 0 1 0-416 0 208 208 0 1 0 416 0M0 256a256 256 0 1 1 512 0 256 256 0 1 1-512 0m118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2h232.6c14.3 0 25.6 12.5 21.4 26.2C375.7 373.1 320.8 416 256 416s-119.7-42.9-137.7-101.8M144 192a32 32 0 1 1 64 0 32 32 0 1 1-64 0m192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64"/></svg>`,"location-arrow":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M477.9 75.5c4.5-11.8 1.7-25.2-7.2-34.1s-22.3-11.8-34.1-7.2l-416 160C7.9 199-.3 211.2 0 224.7s9.1 25.4 21.9 29.6l176.8 58.9L257.6 490c4.3 12.8 16.1 21.6 29.6 21.9s25.7-7.9 30.6-20.5l160-416z"/></svg>`,"magnifying-glass":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M416 208c0 45.9-14.9 88.3-40 122.7l126.6 126.7c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.1-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208M208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288"/></svg>`,"paper-plane":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M536.4-26.3c9.8-3.5 20.6-1 28 6.3s9.8 18.2 6.3 28l-178 496.9c-5 13.9-18.1 23.1-32.8 23.1-14.2 0-27-8.6-32.3-21.7l-64.2-158c-4.5-11-2.5-23.6 5.2-32.6l94.5-112.4c5.1-6.1 4.7-15-.9-20.6s-14.6-6-20.6-.9l-112.4 94.3c-9.1 7.6-21.6 9.6-32.6 5.2L38.1 216.8c-13.1-5.3-21.7-18.1-21.7-32.3 0-14.7 9.2-27.8 23.1-32.8z"/></svg>`,reply:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M204.2 18.4c12 5 19.8 16.6 19.8 29.6v80h112c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96h-96v80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9z"/></svg>`,spinner:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M208 48a48 48 0 1 1 96 0 48 48 0 1 1-96 0m0 416a48 48 0 1 1 96 0 48 48 0 1 1-96 0M48 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96m368 48a48 48 0 1 1 96 0 48 48 0 1 1-96 0M75 369.1a48 48 0 1 1 67.9 67.9A48 48 0 1 1 75 369.1M75 75a48 48 0 1 1 67.9 67.9A48 48 0 1 1 75 75m362 294.1a48 48 0 1 1-67.9 67.9 48 48 0 1 1 67.9-67.9"/></svg>`,sync:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M65.9 228.5C79.2 135.5 159.3 64 256 64c53 0 101 21.5 135.8 56.2l.6.6 7.6 7.2h-47.9c-17.7 0-32 14.3-32 32s14.3 32 32 32h128c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v53.4l-11.3-10.7C390.5 28.6 326.5 0 256 0 127 0 20.3 95.4 2.6 219.5c-2.5 17.5 9.6 33.7 27.1 36.2s33.7-9.7 36.2-27.1zm443.5 64c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-53 0-101-21.5-135.8-56.2l-.6-.6-7.6-7.2h47.9c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320c-8.5 0-16.7 3.4-22.7 9.5S-.1 343.7 0 352.3l1 127c.1 17.7 14.6 31.9 32.3 31.7s31.9-14.6 31.7-32.3l-.4-51.5 10.7 10.1C121.6 483.4 185.5 512 256 512c129 0 235.7-95.4 253.4-219.5"/></svg>`,"thumbs-down":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M384 32c26.5 0 48 21.5 48 48 0 6.3-1.3 12.2-3.4 17.7C449 103.2 464 121.8 464 144c0 9.1-2.6 17.6-7 24.9 22.2 4.2 39 23.7 39 47.1 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 26.5-21.5 48-48 48H288l28.2 70.4c2.5 6.3 3.8 13.1 3.8 19.9v4.2c0 27.3-22.1 49.4-49.4 49.4-18.7 0-35.8-10.6-44.2-27.3l-56.3-112.3c-6.7-13.3-10.1-28-10.1-42.9V126.8c0-19.4 8.9-37.8 24-50l12.2-9.7C224.6 44.4 259.8 32 296.1 32zM80 96c17.7 0 32 14.3 32 32v256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32z"/></svg>`,"thumbs-down-regular":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="m360 32 7.4.4c35 3.6 62.5 32.2 64.4 67.7 17.8 11.8 30.1 31.4 32 53.9l.2 6c0 5.7-.7 11.2-2 16.5 10.2 11.5 16.8 26.3 17.8 42.7l.2 4.8c0 13.2-3.6 25.4-9.8 36 4.9 8.4 8.2 17.9 9.3 28l.4 8c0 37.3-28.3 67.9-64.6 71.6l-7.4.4H298.2l14.1 30 3.1 7.6c12.5 35.7-1.8 75.5-34.2 95l-7.2 3.9c-37.5 17.6-81.7 3.6-102.6-31.2l-.6-.9-2.7-5-.6-1.2-30.1-64c-9.4 17.8-28 29.9-49.5 29.9h-32c-30.9 0-56-25.1-56-56L0 152c0-30.9 25.1-56 56-56h32c12.4 0 23.9 4.1 33.2 11 13.2-21.4 32-39.4 55-51.6l12.2-6.5.7-.3 6.6-3.2.7-.3 7.1-3c16.7-6.6 34.5-9.9 52.6-9.9zM255.9 80c-12 0-23.9 2.3-35.1 6.6l-4.7 2-5.3 2.6-12.2 6.5c-29.2 15.5-48.3 44.9-50.7 77.6l-.2 8v112.9l.1 4.1c.5 8.2 2.5 16.2 6 23.7l56.8 120.9 2.1 3.8c8.4 13.7 26 19.1 40.8 12.2l2.9-1.6c13-7.8 18.7-23.7 13.7-38l-1.2-3-30.2-64.2c-3.5-7.4-2.9-16.1 1.5-23.1s12-11.1 20.2-11.1h147.5l2.4-.1c11.3-1.1 20.3-10.1 21.4-21.4l.1-2.5c0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c4.4-3.9 7.4-9.3 8-15.3l.2-2.7c0-8.4-4.4-15.9-11.2-20.2-10.7-6.9-14.2-20.9-8-32 1.5-2.6 2.5-5.6 2.9-8.6l.2-3.2c0-10.6-6.9-19.6-16.6-22.8-11.7-3.8-18.7-15.9-16-28 .2-.9.3-1.8.4-2.6l.2-2.6c0-12.4-9.5-22.6-21.6-23.8L360 80zM56 144c-4.4 0-8 3.6-8 8v224c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8z"/></svg>`,"thumbs-up":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M80 160c17.7 0 32 14.3 32 32v256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32zM270.6 16c27.3 0 49.4 22.1 49.4 49.4v4.2c0 6.8-1.3 13.6-3.8 19.9L288 160h160c26.5 0 48 21.5 48 48 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 23.4-16.8 42.9-39 47.1 4.4 7.3 7 15.8 7 24.9 0 22.2-15 40.8-35.4 46.3 2.2 5.5 3.4 11.5 3.4 17.7 0 26.5-21.5 48-48 48h-87.9c-36.3 0-71.6-12.4-99.9-35.1l-12.2-9.7c-15.2-12.1-24-30.5-24-50V198.6c0-14.9 3.5-29.6 10.1-42.9l56.2-112.4c8.4-16.7 25.5-27.3 44.3-27.3"/></svg>`,"thumbs-up-regular":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M171.5 38.8C192.3 4 236.5-10 274 7.6l7.2 3.8C316 32.3 330 76.5 312.4 114l-14.1 30H408l7.4.4c36.3 3.7 64.6 34.4 64.6 71.6 0 13.2-3.6 25.4-9.8 36 6.1 10.6 9.7 22.8 9.8 36 0 18.3-6.9 34.8-18 47.5 1.3 5.3 2 10.8 2 16.5 0 25.1-12.9 47-32.2 59.9-1.9 35.5-29.4 64.2-64.4 67.7l-7.4.4H255.9c-18 0-35.9-3.4-52.6-9.9l-7.1-3-.7-.3-6.6-3.2-.7-.3-12.2-6.5c-12.3-6.5-23.3-14.7-32.9-24.1-4.1 26.9-27.3 47.4-55.3 47.4h-32c-30.9 0-56-25.1-56-56L0 200c0-30.9 25.1-56 56-56h32c10.8 0 20.9 3.1 29.5 8.5L167.6 46l.6-1.2 2.7-5 .6-.9zM56 192c-4.4 0-8 3.6-8 8v224c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V200c0-4.4-3.6-8-8-8zM253.6 51c-14.8-6.9-32.3-1.6-40.7 12l-2.2 4-56.8 120.9c-3.5 7.5-5.5 15.5-6 23.7l-.1 4.2v112.9l.2 7.9c2.4 32.7 21.4 62.1 50.7 77.7l11.5 6.1 6.3 3.1c12.4 5.6 25.8 8.5 39.4 8.5H360l2.4-.1c12.1-1.2 21.6-11.5 21.6-23.9l-.2-2.6c-.1-.9-.2-1.7-.4-2.6-2.7-12.1 4.3-24.2 16-28 9.7-3.1 16.6-12.2 16.6-22.8 0-4.3-1.1-8.2-3.1-11.8-6.3-11.1-2.8-25.2 8-32 6.8-4.3 11.2-11.8 11.2-20.2 0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c5.1-4.5 8.2-10.9 8.2-18l-.1-2.4c-1.1-11.3-10.1-20.3-21.4-21.4l-2.4-.1H260.7c-8.2 0-15.8-4.2-20.2-11.1s-5-15.7-1.5-23.1l30-64.3c7-15 1.4-32.7-12.5-41z"/></svg>`,times:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l137.3-137.4 137.4 137.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256l137.3-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7z"/></svg>`,trash:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M136.7 5.9C141.1-7.2 153.3-16 167.1-16H281c13.8 0 26 8.8 30.4 21.9L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64s14.3-32 32-32h96zM32 144h384v304c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64zm88 64c-13.3 0-24 10.7-24 24v192c0 13.3 10.7 24 24 24s24-10.7 24-24V232c0-13.3-10.7-24-24-24m104 0c-13.3 0-24 10.7-24 24v192c0 13.3 10.7 24 24 24s24-10.7 24-24V232c0-13.3-10.7-24-24-24m104 0c-13.3 0-24 10.7-24 24v192c0 13.3 10.7 24 24 24s24-10.7 24-24V232c0-13.3-10.7-24-24-24"/></svg>`,"trash-regular":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M166.2-16c-13.3 0-25.3 8.3-30 20.8L120 48H24C10.7 48 0 58.7 0 72s10.7 24 24 24h400c13.3 0 24-10.7 24-24s-10.7-24-24-24h-96L311.8 4.8c-4.7-12.5-16.6-20.8-30-20.8zM32 144v304c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V144h-48v304c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V144zm160 72c0-13.3-10.7-24-24-24s-24 10.7-24 24v176c0 13.3 10.7 24 24 24s24-10.7 24-24zm112 0c0-13.3-10.7-24-24-24s-24 10.7-24 24v176c0 13.3 10.7 24 24 24s24-10.7 24-24z"/></svg>`,"user-circle":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M399 384.2c-22.1-38.4-63.6-64.2-111-64.2h-64c-47.4 0-88.9 25.8-111 64.2 35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8M0 256a256 256 0 1 1 512 0 256 256 0 1 1-512 0m256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144"/></svg>`,"window-maximize":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M64 64C28.7 64 0 92.7 0 128v256c0 35.3 28.7 64 64 64h384c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm24 64h336c13.3 0 24 10.7 24 24s-10.7 24-24 24H88c-13.3 0-24-10.7-24-24s10.7-24 24-24"/></svg>`,"window-maximize-regular":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M48 224v160c0 8.8 7.2 16 16 16h384c8.8 0 16-7.2 16-16V224zM0 128c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v256c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z"/></svg>`,android:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M131.2 61.9c5.3-.5 10.6.6 15.3 3s8.6 6.2 11.3 10.8c17 29.5 34.2 58.9 51.2 88.4q5.25-2.1 10.5-3.9c31.3-10.9 64.2-16.6 97.4-16.9h3.2c38.1 0 76.2 7 111.6 21.1L483 75.7c1.8-3.2 4.3-6 7.2-8.2s6.2-3.9 9.8-4.8c3.1-.8 6.4-1.1 9.6-.8 4.2.4 8.3 1.7 11.9 3.8 4 2.4 7.3 5.7 9.7 9.7 2 3.4 3.3 7.2 3.8 11.2s.1 8-1.2 11.7c-.6 1.9-1.4 3.7-2.4 5.5l-49.7 85.8c19.5 12.2 37.6 26.5 53.9 42.8 12.3 12.2 23.5 25.4 33.5 39.5 8.2 11.5 15.6 23.6 22.2 36.2 17.5 33.6 28.6 70.5 32.7 108.1H16c4.1-37.7 15.2-74.5 32.7-108.1 14.5-27.9 33.4-53.5 55.7-75.7 16.5-16.4 34.7-30.9 54.5-43.1l-49.5-85.4c-3.7-6.4-4.7-14.1-2.8-21.2s6.4-13.1 12.7-16.8c3.6-2.2 7.7-3.5 11.9-3.8zm67.3 215.8c-12.2-8.1-30.1-2.5-40.1 12.5s-8.2 33.8 3.9 41.9 30.1 2.5 40.1-12.5 8.2-33.8-3.9-41.9m283.6 12.5c-10-15-27.9-20.6-40.1-12.5s-13.9 26.9-3.9 41.9 27.9 20.6 40.1 12.5 13.9-26.9 3.9-41.9"/></svg>`,apple:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M319.1 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7-55.8.9-115.1 44.5-115.1 133.2 0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9m-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3"/></svg>`,chrome:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M0 256c0-46.6 12.5-90.4 34.3-128.9l109.8 191.2C166 357.5 207.9 384 256 384c14.3 0 27.1-2.3 40.8-6.6l-76.3 132.2C95.9 492.3 0 385.3 0 256m365.1 65.6c12.3-19.2 18.9-42.5 18.9-65.6 0-38.2-16.8-72.5-43.3-96h152.7c12 29.6 18.6 62.1 18.6 96 0 141.4-114.6 255.1-256 256zM477.8 128H256c-62.9 0-113.7 44.1-125.5 102.7L54.2 98.5C101 38.5 174 0 256 0c94.8 0 177.5 51.5 221.8 128M344 256a88 88 0 1 1-176 0 88 88 0 1 1 176 0"/></svg>`,edge:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M120.1 37.4C161.1 12.2 207.7-.8 255 0c168 0 257 123.8 257 219.5-.1 32.7-13 63.9-35.9 87.2-22.9 23.2-54 36.5-86.7 37-75.2 0-91.5-23.1-91.5-32 0-3.8 1.2-6.2 4.8-9.4l1-1.2.4-1.6c10.5-11.5 15.9-26.2 15.9-41.6 0-78.7-82.2-142.7-184-142.7-37.5-.3-74.5 8.9-107.5 26.9 27-57.5 82.7-97.6 91.3-103.8.8-.6.3-.8.3-.8zm15.6 318.1c-1.4 30 4.6 60 16.4 87.2 13.6 26.4 32.7 51 56.5 69.3-59.5-11.5-111.5-43.9-149.4-89.3C21.1 376.3 0 318.4 0 257.9c0-51.2 62.4-94.4 136-94.4 36.6-.6 72.4 10.9 101.8 32.7l-3.6 1.2c-51.5 17.6-98.5 90.7-98.5 158.1M469.8 400l-.7.1c-11.8 18.8-25.9 35.1-42.2 49.5-30.8 28-68.1 45.5-108.8 49.9-18.6.3-36.8-3.2-53.8-11.4-25.6-10.3-47.1-30-61.6-53-14.4-23.9-21.1-51.7-19-79.6-.6-20.1 5.4-40.3 15-58.2 13.9 33.1 37.5 61.3 67.6 80.8s65.5 29.5 101.4 28.6c31 .3 62.1-6.7 90.2-20.5l1.9-.9c3.9-2.3 7.7-3.9 11.6 0 4.5 4.9 1.8 9.2-1.2 14-.2.2-.3.5-.4.7"/></svg>`,"firefox-browser":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M481.6 172.9c-10.6-25.5-32.1-53-48.9-61.7 13.7 26.9 21.7 53.9 24.7 74 0 .1 0 .3.1.4-27.6-68.8-74.4-96.5-112.6-156.8-15-23.7-10.9-25.2-13.1-24.7l-.1.1c-46.7 26-75.3 78.4-82.6 122.7-16.6.9-32.9 5-47.9 12.1-1.4.6-2.5 1.7-3.1 3s-.9 2.8-.6 4.3c.2.8.6 1.6 1.1 2.3s1.2 1.3 1.9 1.7 1.6.7 2.4.8 1.7 0 2.5-.3l.5-.2c15.5-7.3 32.4-11.2 49.5-11.3 62.8-.6 97.2 44 107.6 62.3-13-9.2-36.4-18.2-58.8-14.3 87.7 43.9 64.2 194.5-57.4 189.2-59.5-2.6-97.1-51-100.5-90.8 0 0 11.2-41.9 80.6-41.9 7.5 0 28.9-20.9 29.3-27-.1-2-42.5-18.9-59.1-35.2-8.8-8.7-13.1-12.9-16.8-16.1q-3-2.55-6.3-4.8c-5.6-19.5-5.8-40-.7-59.6-25.1 11.4-44.6 29.4-58.7 45.4h-.1c-9.7-12.2-9-52.6-8.4-61.1-.1-.5-7.2 3.7-8.2 4.3-8.6 6.1-16.5 12.9-23.8 20.4-16.3 16.6-44.1 50.2-55.5 101.2-4.5 20.4-6.8 44.4-6.8 52.3 0 134.7 109.2 243.9 243.9 243.9 120.6 0 223-87.2 240.4-202.6 11.6-76.7-14.7-131.1-14.7-132z"/></svg>`,"internet-explorer":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M483.1 159.7c10.9-24.6 21.4-60.4 21.4-87.9 0-72.7-79.6-98.4-209.7-38.6C187.2 26 83.6 106.9 57.7 219.7c30.9-34.9 78.3-82.3 122-101.2C125.4 166.8 79.1 227.9 44 291.7c-20.7 37.9-44 99.2-44 145 0 98.6 92.9 86.5 180.3 42 31.4 15.4 66.6 15.6 101.7 15.6 97.1 0 184.2-54.3 216.8-146H378c-52.5 88.6-196.8 53-196.8-47.4H510c6.4-43.6-1.7-95.7-26.9-141.2M64.6 346.9c17.7 51.1 53.7 95.8 100.2 123.3C76.1 519.1-8.4 499.3 64.6 346.9M180.5 238c2-55.2 50.3-94.9 104-94.9 53.4 0 102 39.7 104 94.9zM365.1 50.4c21.4-10.3 48.6-22 72.6-22 31.4 0 54.3 21.7 54.3 53.7 0 20-7.4 49-14.6 67.9-26.3-42.3-66-81.6-112.3-99.6"/></svg>`,linux:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M220.9 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7M199 125c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4m221 278.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7M223.8 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8m-40.7-11.5c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1m-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3q-2.1-7.35 4.2-12.3m3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9m-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2m257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6M173.4 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5"/></svg>`,markdown:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1M338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"/></svg>`,safari:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="m274.7 274.7-37.4-37.4L166 346zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496m155.8 174.8 14.8-6.1c1-.4 2-.6 3.1-.6s2.1.2 3.1.6 1.8 1 2.6 1.7 1.3 1.6 1.7 2.6.6 2 .6 3.1-.2 2.1-.6 3.1-1 1.9-1.7 2.6-1.6 1.3-2.6 1.7l-14.8 6.1c-2 .8-4.2.8-6.1 0s-3.5-2.4-4.3-4.3-.8-4.2 0-6.1 2.4-3.5 4.3-4.3zM314.4 94l6.1-14.8c.8-2 2.4-3.5 4.3-4.3s4.2-.8 6.1 0 3.5 2.4 4.3 4.3.8 4.2 0 6.1l-6.1 14.8c-.8 2-2.4 3.5-4.3 4.3s-4.2.8-6.1 0c-1-.4-1.9-1-2.6-1.7s-1.3-1.6-1.7-2.6-.6-2-.6-3.1.2-2.1.6-3.1zM256 60c2.1 0 4.2.8 5.7 2.3s2.3 3.6 2.3 5.7v16c0 2.1-.8 4.2-2.3 5.7S258.2 92 256 92s-4.2-.8-5.7-2.3-2.3-3.5-2.3-5.7V68c0-2.1.8-4.2 2.3-5.7s3.6-2.3 5.7-2.3m-75 14.9c1-.4 2-.6 3.1-.6s2.1.2 3.1.6 1.9 1 2.6 1.7 1.3 1.6 1.7 2.6l6.1 14.8c.4 1 .7 2 .7 3.1s-.2 2.1-.6 3.1-1 1.9-1.7 2.6-1.6 1.4-2.6 1.8-2 .6-3.1.6-2.1-.2-3.1-.6-1.9-1-2.6-1.8-1.3-1.7-1.7-2.7l-6.1-14.8c-.8-2-.8-4.2 0-6.1s2.4-3.5 4.3-4.3zm-63.6 42.5c1.5-1.5 3.5-2.3 5.7-2.3s4.2.8 5.7 2.3l11.2 11.3c1.5 1.5 2.3 3.5 2.3 5.6s-.8 4.1-2.3 5.6-3.5 2.3-5.7 2.3-4.2-.8-5.7-2.3l-11.3-11.3c-1.5-1.5-2.3-3.5-2.3-5.6s.8-4.1 2.3-5.6zM60 256c0-2.1.8-4.2 2.3-5.7s3.6-2.3 5.7-2.3h16c2.1 0 4.2.8 5.7 2.3s2.3 3.5 2.3 5.7-.8 4.2-2.3 5.7-3.5 2.3-5.7 2.3H68c-2.1 0-4.2-.8-5.7-2.3S60 258.1 60 256m40.2 73.2-14.8 6.1c-1 .4-2 .6-3.1.6s-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6-.6-2-.6-3.1.2-2.1.6-3.1 1-1.9 1.7-2.6 1.6-1.3 2.6-1.7l14.8-6.1c2-.8 4.2-.8 6.1 0s3.5 2.4 4.3 4.3.8 4.2 0 6.1-2.4 3.5-4.3 4.3zm4.3-136c-.4 1-1 1.9-1.7 2.6s-1.6 1.3-2.6 1.7-2 .6-3.1.6-2.1-.2-3.1-.6l-14.8-6.1c-2-.8-3.5-2.4-4.3-4.3s-.8-4.2 0-6.1 2.4-3.5 4.3-4.3 4.2-.8 6.1 0l14.8 6.1c2 .8 3.5 2.4 4.3 4.3s.8 4.2 0 6.1zM197.6 418l-6.1 14.8c-.4 1-1 1.9-1.7 2.6s-1.6 1.3-2.6 1.7-2 .6-3.1.6-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6-.6-2-.6-3.1.2-2.1.6-3.1l6.1-14.8c.4-1 1-1.9 1.7-2.7s1.6-1.4 2.6-1.8 2-.6 3.1-.6 2.1.2 3.1.6 1.9 1 2.6 1.8 1.3 1.7 1.7 2.6.6 2 .6 3.1-.2 2.1-.7 3.1zm66.4 26c0 2.1-.8 4.2-2.3 5.7s-3.5 2.3-5.7 2.3-4.2-.8-5.7-2.3-2.3-3.5-2.3-5.7v-16c0-2.1.8-4.2 2.3-5.7s3.5-2.3 5.7-2.3 4.2.8 5.7 2.3 2.3 3.5 2.3 5.7zm67-6.9c-1 .4-2 .6-3.1.6s-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6l-6.1-14.8c-.8-2-.8-4.2 0-6.1s2.4-3.5 4.3-4.3 4.2-.8 6.1 0 3.5 2.4 4.3 4.3l6.1 14.8c.8 2 .8 4.2 0 6.1s-2.4 3.5-4.3 4.3zm63.6-42.5c-1.5 1.5-3.5 2.3-5.7 2.3s-4.2-.8-5.7-2.3L372 383.3c-1.5-1.5-2.3-3.5-2.3-5.6s.8-4.1 2.3-5.6 3.5-2.3 5.7-2.3 4.2.8 5.7 2.3l11.3 11.3c1.5 1.5 2.3 3.5 2.3 5.6s-.8 4.1-2.3 5.6zM286.2 286.2 110.3 401.7l115.5-175.9 175.9-115.5zM437.1 331c-.8 2-2.4 3.5-4.3 4.3s-4.2.8-6.1 0l-14.8-6.1c-2-.8-3.5-2.4-4.3-4.3s-.8-4.2 0-6.1c.4-1 1-1.9 1.7-2.6s1.6-1.3 2.6-1.7 2-.6 3.1-.6 2.1.2 3.1.6l14.8 6.1c2 .8 3.5 2.4 4.3 4.3s.8 4.2 0 6.1zm6.9-67h-16c-2.1 0-4.2-.8-5.7-2.3s-2.3-3.5-2.3-5.7.8-4.2 2.3-5.7 3.5-2.3 5.7-2.3h16c2.1 0 4.2.8 5.7 2.3s2.3 3.5 2.3 5.7-.8 4.2-2.3 5.7-3.5 2.3-5.7 2.3"/></svg>`,ubuntu:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M469.2 75c0-20.1-8-39.3-22.2-53.5S413.6-.7 393.5-.7s-39.3 8-53.5 22.2-22.2 33.4-22.2 53.5 8 39.3 22.1 53.5 33.4 22.1 53.5 22.1 39.3-8 53.5-22.1S469 95.1 469 75h.1zm-315 165.7a75.6 75.6 0 1 0-151.2 0 75.6 75.6 0 1 0 151.2 0M57 346c18.6 46.9 51 87 93 115.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2-6.8-.9-13.3-2.1-19.5-3.4-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2zm395.1 89.8a75.6 75.6 0 1 0-151.2 0 75.6 75.6 0 1 0 151.2 0m-8.1-84.2c18.5 14.8 31.6 35.2 37.2 58.2 33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6 15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3 16.6-24.2 38.9-44.1 64.8-58s54.8-21.3 84.2-21.7c.2-5.9.9-11.9 2-17.7C290.8 35.6 298.3 20 309 6.8c-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3 7.5 0 15 .8 22.4 2.3z"/></svg>`,windows:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="m0 93.7 183.6-25.3v177.4H0zm0 324.6 183.6 25.3V268.4H0zm203.8 28L448 480V268.4H203.8zm0-380.6v180.1H448V32z"/></svg>`},nf=[`innerHTML`],rf=dc({__name:`TkIcon`,props:{name:{}},setup(e){let t=e,n=$(()=>tf[t.name]||(console.warn(`[twikoo] 未注册的图标: ${t.name}(请在 components/icons.ts 登记)`),``));return(e,t)=>(q(),J(iu,null,[Q(` SVG 内容来自 fontawesome-free 官方文件(构建期内联,非运行时注入用户数据) `),Q(` eslint-disable-next-line vue/no-v-html `),Y(`i`,{class:`tk-icon`,innerHTML:n.value},null,8,nf)],2112))}}),af={class:`tk-action`},of={class:`tk-action-icon`},sf={class:`tk-action-icon tk-action-icon-solid`},cf={class:`tk-action-icon`},lf={class:`tk-action-icon tk-action-icon-solid`},uf={class:`tk-action-count`},df={class:`tk-action-icon`},ff={class:`tk-action-icon tk-action-icon-solid`},pf={class:`tk-action-count`},mf={class:`tk-action-icon`},hf={class:`tk-action-icon tk-action-icon-solid`},gf={class:`tk-action-count`},_f=dc({__name:`TkAction`,props:{liked:{type:Boolean,default:!1},disliked:{type:Boolean,default:!1},likeCount:{default:0},dislikeCount:{default:0},repliesCount:{default:0},showDislike:{type:Boolean,default:!0},showDelete:{type:Boolean,default:!1}},emits:[`like`,`dislike`,`reply`,`delete`],setup(e,{emit:t}){let n=e,r=t,i=$(()=>n.likeCount>0?`${n.likeCount}`:``),a=$(()=>n.dislikeCount>0?`${n.dislikeCount}`:``),o=$(()=>n.repliesCount>0?`${n.repliesCount}`:``);return(t,n)=>(q(),J(`div`,af,[e.showDelete?(q(),J(`button`,{key:0,class:`tk-action-link`,onClick:n[0]||=e=>r(`delete`)},[Y(`span`,of,[X(rf,{name:`trash-regular`})]),Y(`span`,sf,[X(rf,{name:`trash`})]),n[4]||=Y(`span`,{class:`tk-action-count`},null,-1)])):Q(`v-if`,!0),Y(`button`,{class:ja([`tk-action-link`,{"tk-liked":e.liked}]),onClick:n[1]||=e=>r(`like`)},[Y(`span`,cf,[X(rf,{name:`thumbs-up-regular`})]),Y(`span`,lf,[X(rf,{name:`thumbs-up`})]),Y(`span`,uf,V(i.value),1)],2),e.showDislike?(q(),J(`button`,{key:1,class:ja([`tk-action-link`,{"tk-disliked":e.disliked}]),onClick:n[2]||=e=>r(`dislike`)},[Y(`span`,df,[X(rf,{name:`thumbs-down-regular`})]),Y(`span`,ff,[X(rf,{name:`thumbs-down`})]),Y(`span`,pf,V(a.value),1)],2)):Q(`v-if`,!0),Y(`button`,{class:`tk-action-link`,onClick:n[3]||=e=>r(`reply`)},[Y(`span`,mf,[X(rf,{name:`comment-regular`})]),Y(`span`,hf,[X(rf,{name:`comment`})]),Y(`span`,gf,V(o.value),1)])]))}}),vf={},yf={key:0,class:`tk-avatar-img`},bf=[`src`],xf=dc({__name:`TkAvatar`,props:{nick:{default:``},avatar:{default:``},mail:{default:``},mailMd5:{default:``},link:{default:``},config:{default:vf}},setup(e){let t=e,n=$(()=>dn({avatar:t.avatar,mailMd5:t.mailMd5,mail:t.mail,nick:t.nick},t.config));function r(){t.link&&window.open(Ti(t.link),`_blank`)?.focus()}return(t,i)=>(q(),J(`div`,{class:ja([`tk-avatar`,{"tk-clickable":!!e.link,"tk-has-avatar":!!n.value}]),onClick:r},[n.value?(q(),J(`img`,{key:1,class:`tk-avatar-img`,src:n.value,alt:``},null,8,bf)):(q(),J(`div`,yf,[X(rf,{name:`user-circle`})]))],2))}}),Sf={key:0,class:`tk-input-group__prepend`},Cf=[`name`,`value`,`placeholder`,`rows`,`disabled`,`readonly`,`maxlength`],wf=[`type`,`name`,`value`,`placeholder`,`disabled`,`readonly`,`maxlength`,`min`,`max`],Tf={key:3,class:`tk-input__suffix`},Ef={key:4,class:`tk-input__count`},Df={key:5,class:`tk-input-group__append`},Of=dc({__name:`TkInput`,props:{modelValue:{default:``},type:{default:`text`},placeholder:{default:``},rows:{default:2},autosize:{type:[Boolean,Object],default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},maxlength:{default:void 0},showWordLimit:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},size:{default:``},name:{default:``},min:{default:void 0},max:{default:void 0}},emits:[`update:modelValue`,`input`,`change`,`blur`,`focus`,`clear`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=qc(),o=W(),s=$(()=>!!a.prepend),c=$(()=>!!a.append),l=$(()=>r.clearable&&!r.disabled&&!r.readonly&&u.value),u=$(()=>r.modelValue!==``&&r.modelValue!==void 0&&r.modelValue!==null),d=$(()=>String(r.modelValue??``).length);function f(e){let t=e.target.value;i(`update:modelValue`,t),i(`input`,t,e)}function p(e){i(`change`,e.target.value)}function m(e){i(`blur`,e)}function h(e){i(`focus`,e)}function g(){i(`update:modelValue`,``),i(`clear`),o.value?.focus()}function _(){o.value?.focus()}function v(){o.value?.blur()}function y(){let e=o.value;if(r.type!==`textarea`||!r.autosize||!(e instanceof HTMLTextAreaElement))return;let t=typeof r.autosize==`object`?r.autosize.minRows??r.rows:r.rows,n=getComputedStyle(e),i=parseFloat(n.lineHeight)||20,a=parseFloat(n.paddingTop)+parseFloat(n.paddingBottom),s=parseFloat(n.borderTopWidth)+parseFloat(n.borderBottomWidth),c=t*i+a+s;e.style.overflow=`hidden`,e.style.height=`auto`,e.style.height=`${Math.max(e.scrollHeight,c)}px`}return tc(()=>r.modelValue,()=>{Ls(y)}),Ec(()=>{Ls(y)}),t({focus:_,blur:v,inputEl:o}),(t,n)=>(q(),J(`div`,{class:ja([`tk-input`,[e.size?`tk-input--${e.size}`:``,e.type===`textarea`?`tk-textarea`:``,{"is-disabled":e.disabled,"tk-input--group":s.value||c.value}]])},[s.value?(q(),J(`div`,Sf,[Vc(t.$slots,`prepend`)])):Q(`v-if`,!0),e.type===`textarea`?(q(),J(`textarea`,{key:1,ref_key:`inputRef`,ref:o,class:`tk-input__inner tk-textarea__inner`,name:e.name,value:e.modelValue,placeholder:e.placeholder,rows:e.rows,disabled:e.disabled,readonly:e.readonly,maxlength:e.maxlength,onInput:f,onChange:p,onBlur:m,onFocus:h},null,40,Cf)):(q(),J(`input`,{key:2,ref_key:`inputRef`,ref:o,class:`tk-input__inner`,type:e.type,name:e.name,value:e.modelValue,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly,maxlength:e.maxlength,min:e.min,max:e.max,onInput:f,onChange:p,onBlur:m,onFocus:h},null,40,wf)),l.value?(q(),J(`span`,Tf,[e.clearable&&!e.disabled&&!e.readonly&&u.value?(q(),J(`i`,{key:0,class:`tk-input__icon tk-input__clear`,onClick:g},[X(rf,{name:`circle-xmark`})])):Q(`v-if`,!0)])):Q(`v-if`,!0),e.showWordLimit&&e.maxlength?(q(),J(`span`,Ef,V(d.value)+`/`+V(e.maxlength),1)):Q(`v-if`,!0),c.value?(q(),J(`div`,Df,[Vc(t.$slots,`append`)])):Q(`v-if`,!0)],2))}}),kf=new Map,Af=`configUpdated`,jf=`initMeta`,Mf=`showAdminEntry`;function Nf(e,t){let n=kf.get(e)??new Set;n.add(t),kf.set(e,n)}function Pf(e,t){kf.get(e)?.delete(t)}function Ff(e,...t){for(let n of kf.get(e)??[])n(...t)}var If={class:`tk-meta-input`},Lf=dc({__name:`TkMetaInput`,props:{nick:{default:``},mail:{default:``},link:{default:``},config:{default:vf}},emits:[`update`],setup(e,{emit:t}){let n=/^[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])?)*$/,r=e,i=t,a=[{key:`nick`,locale:D(`META_INPUT_NICK`),name:`nick`,type:`text`},{key:`mail`,locale:D(`META_INPUT_MAIL`),name:`mail`,type:`email`},{key:`link`,locale:D(`META_INPUT_LINK`),name:`link`,type:`text`}],o=ns({nick:``,mail:``,link:``}),s=$(()=>r.config??{}),c=$(()=>{let e=s.value.DISPLAYED_FIELDS,t=typeof e==`string`?e:void 0;return{nick:!t||t.indexOf(`nick`)!==-1,mail:!t||t.indexOf(`mail`)!==-1,link:!t||t.indexOf(`link`)!==-1}}),l=$(()=>a.filter(e=>!!c.value[e.key])),u=$(()=>{let e=s.value.REQUIRED_FIELDS,t=typeof e==`string`?e:void 0;return{nick:!t||t.indexOf(`nick`)!==-1,mail:!t||t.indexOf(`mail`)!==-1,link:t?t.indexOf(`link`)!==-1:!1}});function d(){let e=n.test(o.mail);return(!!o.nick||!u.value.nick)&&(e||!u.value.mail)&&(!!o.link||!u.value.link)}function f(){localStorage.setItem(`twikoo`,JSON.stringify(o)),i(`update`,{meta:{...o},valid:d()})}function p(e,t){let n=t.target.name;n&&(o[n]=e,localStorage.setItem(`twikoo`,JSON.stringify(o)))}function m(){let e=localStorage.getItem(`twikoo`),t={};if(e)try{t=JSON.parse(e)}catch{t={}}o.nick=t.nick??r.nick??``,o.mail=t.mail??r.mail??``,o.link=t.link??r.link??``,f()}function h(){if(!wi(o.nick))return;let e=o.nick.replace(/@qq\.com/gi,``);o.mail=`${e}@qq.com`,_(e)}function g(){wi(o.nick)&&(o.nick=``,f())}async function _(e){try{let t=await v(null,`GET_QQ_NICK`,{qq:e}),n=t.result??t;n.nick?(o.nick=n.nick,f()):g()}catch(e){console.warn(`获取 QQ 昵称失败:`,e),g()}}function y(){let e=s.value.HIDE_ADMIN_CRYPT;Ff(Mf,!e||e===o.nick)}function b(){h(),f(),y()}function ee(){r.nick!==void 0&&o.nick!==r.nick&&(o.nick=r.nick),r.mail!==void 0&&o.mail!==r.mail&&(o.mail=r.mail),r.link!==void 0&&o.link!==r.link&&(o.link=r.link)}return tc(()=>[r.nick,r.mail,r.link],ee),tc(u,()=>{i(`update`,{meta:{...o},valid:d()})}),tc(()=>s.value.VERSION,()=>{y()}),Ec(()=>{Nf(jf,m),m()}),Ac(()=>{Pf(jf,m)}),(e,t)=>(q(),J(`div`,If,[(q(!0),J(iu,null,Bc(l.value,e=>(q(),mu(Of,{key:e.key,class:`tk-meta-input__item`,name:e.name,type:e.type,"model-value":o[e.key],placeholder:u.value[e.key]?G(D)(`META_INPUT_REQUIRED`):G(D)(`META_INPUT_NOT_REQUIRED`),size:`small`,onInput:p,onChange:b},{prepend:K(()=>[Z(V(e.locale),1)]),_:2},1032,[`name`,`type`,`model-value`,`placeholder`]))),128))]))}}),Rf=[`disabled`,`type`],zf={class:`tk-button__label`},Bf=dc({__name:`TkButton`,props:{type:{default:`default`},size:{default:``},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},nativeType:{default:`button`}},emits:[`click`],setup(e,{emit:t}){let n=e,r=t;function i(e){n.disabled||n.loading||r(`click`,e)}return(t,n)=>(q(),J(`button`,{class:ja([`tk-button`,[e.type==="default"?``:`tk-button--${e.type}`,e.size?`tk-button--${e.size}`:``,{"is-disabled":e.disabled,"is-loading":e.loading}]]),disabled:e.disabled||e.loading,type:e.nativeType,onClick:i},[e.loading?(q(),mu(rf,{key:0,name:`spinner`,class:`tk-button__spinner`})):Q(`v-if`,!0),Y(`span`,zf,[Vc(t.$slots,`default`)])],10,Rf))}}),Vf={logo:`OwO表情`,position:`down`,maxHeight:`250px`,odata:{}},Hf=class{container;target;odata;packagesEle;logo;area;packages;constructor(e){for(let[t,n]of Object.entries(Vf))n&&!e[t]&&(e[t]=n);this.container=e.container,this.target=e.target,e.position===`up`&&this.container.classList.add(`OwO-up`),this.odata=e.odata,setTimeout(()=>{this.init(e)})}init(e){this.area=e.target,this.packages=Object.keys(this.odata);let t=`<div class="OwO-logo">${e.logo??``}</div><div class="OwO-body">`;for(let n of this.packages){let r=parseInt(e.maxHeight??`250`,10)-53;t+=`<ul class="OwO-items OwO-items-${this.odata[n]?.type??``}" style="max-height: ${r}px;">`;for(let e of this.odata[n]?.container??[])t+=`<li class="OwO-item" title="${e.text??``}">${e.icon.replace(`<img`,`<img loading="lazy"`)}</li>`;t+=`</ul>`}t+=`<div class="OwO-bar"><ul class="OwO-packages">`+this.packages.map(e=>`<li><span>${e}</span></li>`).join(``)+`</ul></div></div>`,this.container.innerHTML=t,this.logo=this.container.getElementsByClassName(`OwO-logo`)[0],this.logo.addEventListener(`click`,()=>{this.toggle()}),this.container.getElementsByClassName(`OwO-body`)[0]?.addEventListener(`click`,e=>this.onItemClick(e)),this.packagesEle=this.container.getElementsByClassName(`OwO-packages`)[0];for(let e=0;e<this.packagesEle.children.length;e++)this.packagesEle.children[e].addEventListener(`click`,()=>{this.tab(e)});this.tab(0)}onItemClick(e){let t=e.target;if(!t)return;let n=null;if(t.classList.contains(`OwO-item`)?n=t:t.parentNode instanceof HTMLElement&&t.parentNode.classList.contains(`OwO-item`)&&(n=t.parentNode),!n)return;let r=this.area.selectionEnd??this.area.value.length,i=this.area.value,a=n.innerHTML;if(a.indexOf(`<img`)!==-1){if(n.title)a=`:${n.title}: `;else{let e=a.indexOf(`src="`)+5,t=a.indexOf(`"`,e);e!==-1&&t!==-1&&(a=`})`)}}this.area.value=i.slice(0,r)+a+i.slice(r),this.area.dispatchEvent(new Event(`input`,{bubbles:!0})),this.area.focus(),this.toggle()}toggle(){this.container.classList.toggle(`OwO-open`)}tab(e){let t=this.container.getElementsByClassName(`OwO-items-show`)[0];t&&t.classList.remove(`OwO-items-show`),this.container.getElementsByClassName(`OwO-items`)[e]?.classList.add(`OwO-items-show`);let n=this.container.getElementsByClassName(`OwO-package-active`)[0];n&&n.classList.remove(`OwO-package-active`),this.packagesEle.getElementsByTagName(`li`)[e]?.classList.add(`OwO-package-active`)}},Uf={class:`tk-row`},Wf={class:`tk-col`},Gf={class:`tk-row actions`},Kf={class:`tk-row-actions-start`},qf=[`innerHTML`],Jf={class:`tk-submit-action-icon __markdown`,alt:`Markdown is supported`,href:`https://guides.github.com/features/mastering-markdown/`,target:`_blank`,rel:`noopener noreferrer`},Yf={key:0,ref:`commentPreviewRef`,class:`tk-preview-container`},Xf=[`innerHTML`],Zf=dc({__name:`TkSubmit`,props:{replyId:{default:``},pid:{default:``},config:{default:vf}},emits:[`load`,`cancel`,`error`],setup(e,{emit:t}){let n=[`apng`,`bmp`,`gif`,`jpeg`,`jpg`,`png`,`svg`,`tif`,`tiff`,`webp`],r=tf[`laugh-regular`],i=e,a=t,o=W(!1),s=W(!1),c=W(!1),l=W();tc(l,e=>{e&&a(`error`,e)});let u=W(null),d=W(``),p=W(``),m=W(``),g=W(``),_=W(``),y=W(null),ee=W(null),x=W(null),S=W(),C=W(),w=W(),T=W(),te=W(),ne=W(),re=W(),ie=W(),E=W(),ae=$(()=>{let e=i.config;return e.CAPTCHA_PROVIDER===void 0?e.TURNSTILE_SITE_KEY?`Turnstile`:e.GEETEST_CAPTCHA_ID?`Geetest`:e.CAP_API_ENDPOINT||e.CAP_BUILTIN?`Cap`:``:e.CAPTCHA_PROVIDER}),oe=$(()=>!!i.config.IMAGE_CDN),se=$(()=>!o.value&&c.value&&!!d.value.trim()),ce=$(()=>{let e=h().options.placeholder??i.config.COMMENT_PLACEHOLDER;return(typeof e==`string`?e:``).replace(/<br>/g,`
|
|
75
|
-
`)}),le=$(()=>{let e=parseInt(String(i.config.LIMIT_LENGTH),10);return Number.isNaN(e)&&(e=500),e>0?e:void 0}),ue=$(()=>{let e=C.value?.inputEl;return e instanceof HTMLTextAreaElement?e:null});function de(){localStorage.setItem(`twikoo-draft`,d.value)}function fe(){let e=localStorage.getItem(`twikoo-draft`);!d.value&&e&&(d.value=e)}async function O(){if(i.config.SHOW_EMOTION!==`true`)return;let e=await ui(String(i.config.EMOTION_CDN||`https://owo.imaegoo.com/owo.json`));di(e),w.value&&ue.value&&(u.value=new Hf({logo:r,container:w.value,target:ue.value,odata:e,position:`down`,maxHeight:`250px`}))}function pe(){u.value?.container.classList.contains(`OwO-open`)&&u.value.toggle()}function me(e){return new Promise((t,n)=>{let r=document.createElement(`script`);r.src=e,r.onload=()=>t(),r.onerror=()=>n(Error(`脚本加载失败:${e}`)),document.head.appendChild(r)})}function k(e,t){return{ok:e,json:()=>Promise.resolve(t)}}function he(){if(ae.value===`Turnstile`&&i.config.TURNSTILE_SITE_KEY){if(window.turnstile){y.value=Promise.resolve();return}y.value||=me(`https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit`)}}function ge(){return new Promise((e,t)=>{y.value?.then(()=>{let n=window.turnstile,r=n.render(ne.value,{sitekey:i.config.TURNSTILE_SITE_KEY,callback:t=>{e(t),setTimeout(()=>n.remove(r),1e3)},"error-callback":()=>t(Error(`验证码校验失败,请重试`)),"expired-callback":()=>t(Error(`验证码已过期,请重试`)),"timeout-callback":()=>t(Error(`验证码超时,请重试`))})})})}function _e(){if(ae.value===`Geetest`&&i.config.GEETEST_CAPTCHA_ID){if(window.initGeetest4){ee.value=Promise.resolve();return}ee.value||=me(`https://static.geetest.com/v4/gt4.js`)}}function ve(){return new Promise((e,t)=>{ee.value?.then(()=>{let n=window.initGeetest4;n({captchaId:i.config.GEETEST_CAPTCHA_ID,product:`bind`,language:`zho`},n=>{n.onReady(()=>n.showCaptcha()).onSuccess(()=>{let t=n.getValidate();e({geeTestLotNumber:t.lot_number,geeTestCaptchaOutput:t.captcha_output,geeTestPassToken:t.pass_token,geeTestGenTime:t.gen_time})}).onError(e=>t(e instanceof Error?e:Error(`Geetest 验证失败,请重试`))).onClose(()=>t(Error(`验证已取消`)))})})})}function ye(){if(ae.value!==`Cap`||!i.config.CAP_API_ENDPOINT&&!i.config.CAP_BUILTIN)return;let e=window;if(i.config.CAP_BUILTIN&&(e.CAP_CUSTOM_FETCH=async(e,t={})=>{let n=String(e),r=t.body?JSON.parse(t.body):{};try{if(n.includes(`challenge`)){let e=await v(h().tcb,`CAP_CHALLENGE`),t=e.result??e;return t.code&&t.code!==0?k(!1,{error:t.message??`challenge_failed`}):k(!0,{challenge:t.challenge,token:t.token,expires:t.expires})}if(n.includes(`redeem`)){let e=await v(h().tcb,`CAP_REDEEM`,r),t=e.result??e;return t.code&&t.code!==0&&t.success!==!0?k(!0,{success:!1,error:t.message??t.error??`redeem_failed`}):k(!0,{success:t.success,token:t.token,expires:t.expires,message:t.message,error:t.error??t.message})}return k(!1,{error:`unknown_cap_path`})}catch(e){return k(!1,{error:e instanceof Error?e.message:`cap_fetch_failed`})}}),e.Cap||customElements.get(`cap-widget`)){x.value=Promise.resolve();return}x.value||=me(`https://cdn.jsdmirror.com/npm/@cap.js/widget`)}function be(){return new Promise((e,t)=>{x.value?.then(()=>{let n=document.createElement(`cap-widget`);n.setAttribute(`id`,`cap-widget`);let r=i.config.CAP_BUILTIN?`/`:String(i.config.CAP_API_ENDPOINT);n.setAttribute(`data-cap-api-endpoint`,r),E.value?.appendChild(n);let a=()=>{n.parentNode?.removeChild(n)};n.solve().then(n=>{a(),n.success?e(typeof n.token==`string`?n.token:``):t(Error(`Cap 验证失败`))}).catch(e=>{a(),t(e instanceof Error?e:Error(`Cap 验证失败`))})}).catch(t)})}function xe(e){m.value=e.meta.nick,g.value=e.meta.mail,_.value=e.meta.link,c.value=e.valid}function Se(){a(`cancel`)}function Ce(){de(),Te()}function we(){s.value=!s.value,Te()}function Te(){s.value&&(p.value=Ot(ii(d.value)),Ls(()=>{let e=te.value;e&&(Vi(e),Hi(e,h().options.katex),i.config.HIGHLIGHT===`true`&&Ut(e,i.config.HIGHLIGHT_THEME,i.config.HIGHLIGHT_PLUGIN))}))}async function Ee(){o.value=!0,l.value=void 0;try{if(d.value.match(RegExp(`!\\[${D(`IMAGE_UPLOAD_PLACEHOLDER`)}.+\\]\\(\\)`)))throw Error(D(`IMAGE_UPLOAD_PLEASE_WAIT`));let e={nick:m.value,mail:g.value,link:_.value,ua:await Bi(),url:Ai(h().options.path),href:ji(h().options.href),comment:ii(d.value),pid:i.pid?i.pid:i.replyId,rid:i.replyId};ae.value===`Turnstile`&&i.config.TURNSTILE_SITE_KEY&&(e.turnstileToken=await ge()),ae.value===`Geetest`&&i.config.GEETEST_CAPTCHA_ID&&Object.assign(e,await ve()),ae.value===`Cap`&&(i.config.CAP_API_ENDPOINT||i.config.CAP_BUILTIN)&&(e.capToken=await be());let t=await v(h().tcb,`COMMENT_SUBMIT`,e),n=t.result??t;if(n.id)d.value=``,l.value=void 0,a(`load`),de();else throw new f(n.code===void 0?`UNKNOWN`:`REJECTED`,n.message??D(`COMMENT_FAILED`),{rawMessage:n.message??``})}catch(e){b.error(`评论失败`,e),l.value=e instanceof f?e:new f(`UNKNOWN`,`${D(`COMMENT_FAILED`)}: ${e.message}`,{rawMessage:e.message})}finally{o.value=!1}}function De(e){(e.ctrlKey||e.metaKey)&&e.key===`Enter`&&Ee()}function Oe(){T.value?.click()}function ke(){let e=T.value?.files?.[0];je(e)}function Ae(e){e.clipboardData&&je(e.clipboardData.files[0]??e.clipboardData.items[0]?.getAsFile()??void 0)}async function je(e){if(!e||!oe.value)return;let t=e.name.split(`.`),r=t.length>1?String(t.pop()):``;if(n.indexOf(r.toLowerCase())===-1)return;let{tcb:a}=h(),o=a?.auth?.currentUser?.uid??localStorage.getItem(`twikoo-access-token`)??``,s=`${Date.now()}-${o}`,c=t.join(`.`),l=e.type===`image/gif`,u=l?c:`${c}.webp`,d=l?r:`webp`;A(Le(s,d));let f=String(i.config.IMAGE_CDN??``),p=await Me(e);a&&(!f||f===`qcloud`)?Ne(s,u,d,p):f?Pe(s,u,d,p):Ie(s,d,D(`IMAGE_UPLOAD_FAILED_NO_CONF`))}async function Me(e){return e.type===`image/gif`?e:new Promise(t=>{let n=new FileReader;n.onload=n=>{let r=new Image;r.onload=()=>{let n=document.createElement(`canvas`),i=r.width,a=r.height,o=1920;(i>o||a>o)&&(i>a?(a=a*o/i,i=o):(i=i*o/a,a=o)),n.width=i,n.height=a,n.getContext(`2d`)?.drawImage(r,0,0,i,a);let s=`image/webp`,c=e.name.replace(/\.[^.]+$/,`.webp`);n.toBlob(e=>t(new File([e??new Blob],c,{type:s})),s,.85)};let i=n.target?.result;r.src=typeof i==`string`?i:``},n.readAsDataURL(e)})}async function Ne(e,t,n,r){try{let i=h().tcb?.app,a=await i.uploadFile({cloudPath:`tk-img/${e}.${n}`,filePath:r});if(!a.fileID)return;Fe(e,t,n,(await i.getTempFileURL({fileList:[a.fileID]})).fileList[0].tempFileURL)}catch(t){console.error(t),Ie(e,n,t.message)}}async function Pe(e,t,n,r){try{let i=await v(h().tcb,`UPLOAD_IMAGE`,{fileName:t,photo:await zi(r)}),a=i.result??i;a.data?Fe(e,t,n,String(a.data.url)):a.code===1041?Ie(e,n,D(`IMAGE_UPLOAD_NSFW`)):(console.error(a),Ie(e,n,String(a.err)))}catch(t){console.error(t),Ie(e,n,t.message)}}function Fe(e,t,n,r){let i=t.replace(/[[\]]/g,`_`);d.value=d.value.replace(Le(e,n),``),T.value&&(T.value.value=``)}function Ie(e,t,n){d.value=d.value.replace(Le(e,t),`_${D(`IMAGE_UPLOAD_FAILED`)}: ${n}_`),T.value&&(T.value.value=``)}function A(e){let t=ue.value,n=t?.selectionStart??d.value.length,r=t?.selectionEnd??d.value.length;d.value=d.value.substring(0,n)+e+d.value.substring(r),Ls(()=>{if(!t)return;let r=n+e.length;t.selectionStart=r,t.selectionEnd=r})}function Le(e,t){return`![${D(`IMAGE_UPLOAD_PLACEHOLDER`)} ${e}.${t}]()`}function Re(){i.config.COMMENT_BG_IMG&&ue.value&&(ue.value.style[`background-image`]=`url("${String(i.config.COMMENT_BG_IMG)}")`)}function ze(){he(),_e(),ye()}return tc(()=>i.config.SHOW_EMOTION,()=>{O()}),tc(()=>i.config.COMMENT_BG_IMG,()=>{Re()}),tc(()=>i.config.TURNSTILE_SITE_KEY,()=>{he()}),tc(()=>i.config.GEETEST_CAPTCHA_ID,()=>{_e()}),tc(()=>i.config.CAP_API_ENDPOINT,()=>{ye()}),tc(ae,()=>{ze()}),Ec(()=>{i.pid&&S.value?.scrollIntoView({behavior:`instant`,block:`center`}),fe(),ue.value?.addEventListener(`paste`,Ae),Re(),ze(),O()}),Ac(()=>{ue.value?.removeEventListener(`paste`,Ae)}),(t,n)=>(q(),J(`div`,{ref_key:`tkSubmitRef`,ref:S,class:`tk-submit tk-fade-in`},[Y(`div`,Uf,[X(xf,{config:e.config,mail:g.value,nick:m.value},null,8,[`config`,`mail`,`nick`]),Y(`div`,Wf,[X(Lf,{nick:m.value,mail:g.value,link:_.value,config:e.config,onUpdate:xe},null,8,[`nick`,`mail`,`link`,`config`]),X(Of,{ref_key:`textareaRef`,ref:C,modelValue:d.value,"onUpdate:modelValue":n[0]||=e=>d.value=e,class:`tk-input`,type:`textarea`,placeholder:ce.value,autosize:{minRows:3},maxlength:le.value,"show-word-limit":``,onInput:Ce,onKeyup:De},null,8,[`modelValue`,`placeholder`,`maxlength`])])]),Y(`div`,Gf,[Y(`div`,Kf,[Q(` 表情按钮:首屏先渲染图标,随后由 OwO 面板以同样的 logo 接管容器内容 `),Q(` 图标为构建期内联的 fontawesome 官方 SVG,非运行时用户数据 `),Q(` eslint-disable vue/no-v-html `),Ys(Y(`div`,{ref_key:`owoRef`,ref:w,class:`tk-submit-action-icon OwO`,innerHTML:G(r)},null,8,qf),[[ld,e.config.SHOW_EMOTION===`true`],[G(bi),pe]]),Q(` eslint-enable vue/no-v-html `),Ys(Y(`div`,{class:`tk-submit-action-icon`,onClick:Oe},[X(rf,{name:`image-regular`})],512),[[ld,oe.value]]),Y(`input`,{ref_key:`inputFileRef`,ref:T,class:`tk-input-image`,type:`file`,accept:`image/*`,value:``,onChange:ke},null,544)]),Y(`a`,Jf,[X(rf,{name:`markdown`})]),e.replyId?(q(),mu(Bf,{key:0,class:`tk-cancel`,size:`small`,onClick:Se},{default:K(()=>[Z(V(G(D)(`SUBMIT_CANCEL`)),1)]),_:1})):Q(`v-if`,!0),X(Bf,{class:`tk-preview`,size:`small`,onClick:we},{default:K(()=>[Z(V(G(D)(`SUBMIT_PREVIEW`)),1)]),_:1}),X(Bf,{class:`tk-send`,type:`primary`,size:`small`,disabled:!se.value,onClick:Ee},{default:K(()=>[Z(V(o.value?G(D)(`SUBMIT_SENDING`):G(D)(`SUBMIT_SEND`)),1)]),_:1},8,[`disabled`]),Ys(Y(`div`,{ref_key:`turnstileContainerRef`,ref:re,class:`tk-turnstile-container`},[Y(`div`,{ref_key:`turnstileRef`,ref:ne,class:`tk-turnstile`},null,512)],512),[[ld,ae.value===`Turnstile`]]),Ys(Y(`div`,{ref_key:`geetestContainerRef`,ref:ie,class:`tk-geetest-container`},null,512),[[ld,ae.value===`Geetest`]]),Ys(Y(`div`,{ref_key:`capContainerRef`,ref:E,class:`tk-cap-container`},null,512),[[ld,ae.value===`Cap`]])]),s.value?(q(),J(`div`,Yf,[Q(` 预览内容经 sanitizeHtml 消毒 `),Q(` eslint-disable-next-line vue/no-v-html `),Y(`div`,{innerHTML:p.value},null,8,Xf)],512)):Q(`v-if`,!0)],512))}}),Qf=ns({serverConfig:{}});function $f(e){Qf.serverConfig=e}function ep(){return Qf.serverConfig}var tp=[`id`],np={class:`tk-main`},rp={class:`tk-row`},ip={class:`tk-meta`},ap={key:0,class:`tk-nick`},op=[`href`],sp={key:2,class:`tk-tag tk-tag-green`},cp={key:3,class:`tk-tag tk-tag-red`},lp={key:4,class:`tk-tag tk-tag-yellow`},up={class:`tk-time`},dp=[`datetime`,`title`],fp={key:5,class:`tk-actions`},pp={key:0},mp=[`innerHTML`],hp={key:0,class:`tk-expand-wrap`},gp={key:1,class:`tk-collapse-wrap`},_p={key:2,class:`tk-extras`},vp={key:0,class:`tk-extra`},yp={class:`tk-icon __comment`},bp={class:`tk-extra-text`},xp={key:1,class:`tk-extra`},Sp={class:`tk-icon __comment`},Cp={class:`tk-extra-text`},wp={key:2,class:`tk-extra`},Tp={class:`tk-icon __comment`},Ep={class:`tk-extra-text`},Dp={key:4,class:`tk-expand-wrap`},Op={key:5,class:`tk-collapse-wrap`},kp=dc({__name:`TkComment`,props:{comment:{},replyId:{default:``},replying:{type:Boolean,default:!1},config:{default:vf}},emits:[`reply`,`load`,`expand`,`refreshed`,`error`],setup(e,{emit:t}){let n=e,r=t,i={win:`windows`,mac:`apple`,ipad:`apple`,iphone:`apple`,ios:`apple`,android:`android`,ubuntu:`ubuntu`,linux:`linux`},a={edge:`edge`,chrome:`chrome`,firefox:`firefox-browser`,safari:`safari`,explorer:`internet-explorer`,ie:`internet-explorer`},o=W(``),s=W(n.comment.ups??0),c=W(n.comment.downs??0),l=W(n.comment.liked===!0),u=W(n.comment.disliked===!0),d=W(!1),f=W(!1),p=W(!1),m=W(!1),g=W(!1),_=W(!1),y=W(n.comment.isSpam===!0),b=W(n.comment.top===!0),ee=W(!1),x=W(),S=W(),C=W(),w=W(),T=$(()=>Ot(n.comment.comment)),te=$(()=>Ei(n.comment.created)),ne=$(()=>new Date(n.comment.created??0).toJSON()),re=$(()=>new Date(n.comment.created??0).toLocaleString()),ie=$(()=>ue(n.comment.os??``,i)),E=$(()=>ue(n.comment.browser??``,a)),ae=$(()=>p.value&&!f.value),oe=$(()=>p.value&&f.value),se=$(()=>g.value&&!m.value),ce=$(()=>g.value&&m.value),le=$(()=>Ti(n.comment.link));function ue(e,t){let n=e.toLowerCase();for(let e of Object.keys(t))if(n.indexOf(e)!==-1)return t[e];return`window-maximize-regular`}function de(){let e=w.value;n.comment.replies.length>0&&e&&(p.value=e.scrollHeight>236)}function fe(){let e=S.value;e&&(g.value=g.value||e.scrollHeight>500)}function O(){S.value?.querySelectorAll(`img`).forEach(e=>{e.onload=fe})}function pe(){window.location.hash.indexOf(n.comment.id)!==-1&&(x.value?.scrollIntoView({behavior:`smooth`}),r(`expand`))}function me(e){document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`center`})}async function k(){if(!d.value){d.value=!0;try{await v(h().tcb,`COMMENT_LIKE`,{id:n.comment.id,type:`up`}),l.value?s.value--:(s.value++,u.value&&c.value--),l.value=!l.value,u.value=!1}finally{d.value=!1}}}async function he(){if(!d.value){d.value=!0;try{await v(h().tcb,`COMMENT_LIKE`,{id:n.comment.id,type:`down`}),u.value?c.value--:(c.value++,l.value&&s.value--),u.value=!u.value,l.value=!1}finally{d.value=!1}}}function ge(e){o.value=e,r(`reply`,n.comment.id)}async function _e(){if(!confirm(D(`COMMENT_DELETE_CONFIRM`)))return;let e=await v(h().tcb,`COMMENT_DELETE_FOR_USER`,{id:n.comment.id}),t=e.result??e;t.code?alert(t.message):r(`load`)}function ve(e){o.value=e,r(`reply`,e?n.comment.id:``)}function ye(){o.value=``,r(`reply`,``)}function be(){o.value=``,r(`reply`,``),r(`load`),f.value=!0}function xe(){r(`refreshed`),Ls(()=>{let e=w.value?.lastElementChild;n.comment.replies.length>0&&e&&e.scrollIntoView({behavior:`smooth`,block:`center`})})}async function Se(){let{tcb:e}=h();if(e?.auth){let t=await e.auth.getCurrentUser();_.value=t.loginType===`CUSTOM`}else _.value=ep().IS_ADMIN===!0}function Ce(e){Ee({isSpam:e})}function we(e){Ee({top:e})}function Te(e){if(ep().LIGHTBOX!==`true`)return;let t=e.target;if(t.tagName!==`IMG`||t.classList.contains(`tk-owo-emotion`))return;let n=document.createElement(`div`);n.className=`tk-lightbox`;let r=document.createElement(`img`);r.className=`tk-lightbox-image`,r.src=t.src,n.appendChild(r),n.addEventListener(`click`,()=>{document.body.removeChild(n)}),document.body.appendChild(n)}async function Ee(e){ee.value=!0;try{await v(h().tcb,`COMMENT_SET_FOR_ADMIN`,{id:n.comment.id,set:e}),e.isSpam!==void 0&&(y.value=e.isSpam),e.top!==void 0&&(b.value=e.top)}finally{ee.value=!1}}function De(){let e=C.value;e&&(Vi(e),Hi(e,h().options.katex),n.config.HIGHLIGHT===`true`&&Ut(e,n.config.HIGHLIGHT_THEME,n.config.HIGHLIGHT_PLUGIN))}return tc(()=>n.comment.isSpam,e=>{y.value=e===!0}),tc(()=>n.comment.top,e=>{b.value=e===!0}),tc(()=>n.comment.ups,()=>{s.value=n.comment.ups??0,l.value=n.comment.liked===!0},{immediate:!0}),tc(()=>n.comment.downs,()=>{c.value=n.comment.downs??0,u.value=n.comment.disliked===!0},{immediate:!0}),tc(()=>n.config.HIGHLIGHT,e=>{e===`true`&&Ls(De)},{immediate:!0}),Ec(()=>{Ls(fe),Ls(O),Ls(de),Ls(pe),Ls(De),Se()}),(t,n)=>{let i=Ic(`TkComment`,!0);return q(),J(`div`,{id:e.comment.id,ref_key:`tkCommentRef`,ref:x,class:ja([`tk-comment`,{"tk-master":e.comment.master}])},[X(xf,{config:e.config,nick:e.comment.nick,avatar:e.comment.avatar,"mail-md5":e.comment.mailMd5,link:le.value},null,8,[`config`,`nick`,`avatar`,`mail-md5`,`link`]),Y(`div`,np,[Y(`div`,rp,[Y(`div`,ip,[le.value?Q(`v-if`,!0):(q(),J(`strong`,ap,V(e.comment.nick),1)),le.value?(q(),J(`a`,{key:1,class:`tk-nick tk-nick-link`,href:le.value,target:`_blank`,rel:`noopener noreferrer nofollow ugc`},[Y(`strong`,null,V(e.comment.nick),1)],8,op)):Q(`v-if`,!0),e.comment.master?(q(),J(`span`,sp,V(e.config.MASTER_TAG||G(D)(`COMMENT_MASTER_TAG`)),1)):Q(`v-if`,!0),b.value?(q(),J(`span`,cp,V(G(D)(`COMMENT_TOP_TAG`)),1)):Q(`v-if`,!0),y.value?(q(),J(`span`,lp,V(G(D)(`COMMENT_REVIEWING_TAG`)),1)):Q(`v-if`,!0),Y(`small`,up,[Y(`time`,{datetime:ne.value,title:re.value},V(te.value),9,dp)]),_.value?(q(),J(`small`,fp,[y.value?(q(),J(`button`,{key:0,onClick:n[0]||=e=>Ce(!1)},V(G(D)(`ADMIN_COMMENT_SHOW`)),1)):Q(`v-if`,!0),y.value?Q(`v-if`,!0):(q(),J(`button`,{key:1,onClick:n[1]||=e=>Ce(!0)},V(G(D)(`ADMIN_COMMENT_HIDE`)),1)),!e.comment.rid&&b.value?(q(),J(`button`,{key:2,onClick:n[2]||=e=>we(!1)},V(G(D)(`ADMIN_COMMENT_UNTOP`)),1)):Q(`v-if`,!0),!e.comment.rid&&!b.value?(q(),J(`button`,{key:3,onClick:n[3]||=e=>we(!0)},V(G(D)(`ADMIN_COMMENT_TOP`)),1)):Q(`v-if`,!0)])):Q(`v-if`,!0)]),X(_f,{liked:l.value,disliked:u.value,"like-count":s.value,"dislike-count":c.value,"replies-count":e.comment.replies.length,"show-dislike":e.config.SHOW_DISLIKE!==`false`,"show-delete":e.comment.isOwner===!0,onLike:k,onDislike:he,onReply:ge,onDelete:_e},null,8,[`liked`,`disliked`,`like-count`,`dislike-count`,`replies-count`,`show-dislike`,`show-delete`])]),Y(`div`,{ref_key:`tkContentRef`,ref:S,class:ja([`tk-content`,{"tk-content-expand":m.value}])},[e.comment.pid?(q(),J(`span`,pp,[Z(V(G(D)(`COMMENT_REPLIED`))+` `,1),Y(`a`,{class:`tk-ruser`,href:`#`,onClick:n[4]||=Kd(t=>me(e.comment.pid),[`prevent`])},V(`@${e.comment.ruser}`),1),n[12]||=Z(` : `,-1)])):Q(`v-if`,!0),Q(` 正文:服务端已 DOMPurify 消毒,客户端再走一次 sanitizeHtml 双保险 `),Q(` eslint-disable-next-line vue/no-v-html `),Y(`span`,{ref_key:`commentRef`,ref:C,onClick:Te,innerHTML:T.value},null,8,mp)],2),se.value?(q(),J(`div`,hp,[Y(`div`,{class:`tk-expand`,onClick:n[5]||=e=>m.value=!0},V(G(D)(`COMMENT_EXPAND`)),1)])):Q(`v-if`,!0),ce.value?(q(),J(`div`,gp,[Y(`div`,{class:`tk-expand _collapse`,onClick:n[6]||=e=>m.value=!1},V(G(D)(`COMMENT_COLLAPSE`)),1)])):Q(`v-if`,!0),e.comment.ipRegion||e.comment.os||e.comment.browser?(q(),J(`div`,_p,[e.comment.ipRegion?(q(),J(`div`,vp,[Y(`span`,yp,[X(rf,{name:`location-arrow`})]),Y(`span`,bp,`\xA0`+V(e.comment.ipRegion),1)])):Q(`v-if`,!0),e.comment.os?(q(),J(`div`,xp,[Y(`span`,Sp,[X(rf,{name:ie.value},null,8,[`name`])]),Y(`span`,Cp,`\xA0`+V(e.comment.os),1)])):Q(`v-if`,!0),e.comment.browser?(q(),J(`div`,wp,[Y(`span`,Tp,[X(rf,{name:E.value},null,8,[`name`])]),Y(`span`,Ep,`\xA0`+V(e.comment.browser),1)])):Q(`v-if`,!0)])):Q(`v-if`,!0),Q(` 回复框(主楼被回复时挂载;楼中楼由子评论自身挂载) `),e.replying&&!o.value?(q(),mu(Zf,{key:3,"reply-id":e.replyId?e.replyId:e.comment.id,pid:e.comment.id,config:e.config,onLoad:be,onCancel:ye,onError:n[7]||=e=>r(`error`,e)},null,8,[`reply-id`,`pid`,`config`])):Q(`v-if`,!0),Q(` 回复列表 `),Y(`div`,{ref_key:`tkRepliesRef`,ref:w,class:ja([`tk-replies`,{"tk-replies-expand":f.value||!ae.value||e.replying}])},[(q(!0),J(iu,null,Bc(e.comment.replies,t=>(q(),mu(i,{key:t.id,comment:t,"reply-id":e.comment.id,replying:e.replying&&o.value===t.id,config:e.config,onExpand:n[8]||=e=>f.value=!0,onLoad:be,onReply:ve,onRefreshed:xe,onError:n[9]||=e=>r(`error`,e)},null,8,[`comment`,`reply-id`,`replying`,`config`]))),128))],2),ae.value&&!e.replying?(q(),J(`div`,Dp,[Y(`div`,{class:`tk-expand`,onClick:n[10]||=e=>f.value=!0},V(G(D)(`COMMENT_EXPAND`)),1)])):Q(`v-if`,!0),oe.value&&!e.replying?(q(),J(`div`,Op,[Y(`div`,{class:`tk-expand _collapse`,onClick:n[11]||=e=>f.value=!1},V(G(D)(`COMMENT_COLLAPSE`)),1)])):Q(`v-if`,!0)])],10,tp)}}}),Ap={class:`tk-error`},jp={class:`tk-error__icon`},Mp={class:`tk-error__body`},Np={class:`tk-error__title`},Pp={class:`tk-error__message`},Fp={class:`tk-error__detail`},Ip={key:0,class:`tk-error__row`},Lp={key:1,class:`tk-error__row`},Rp={key:2,class:`tk-error__raw`},zp=dc({__name:`TkError`,props:{error:{}},setup(e){let t=e,n=W(!1),r={NETWORK:`无法连接到后端`,CORS:`请求被跨域策略拦截`,TIMEOUT:`请求超时`,REJECTED:`请求过于频繁`,NOT_FOUND:`接口地址不存在`,CLIENT_ERROR:`请求失败`,SERVER_ERROR:`后端异常`,UNKNOWN:`出现未知错误`},i=$(()=>r[t.error.kind]??`出现错误`),a=$(()=>{let e=t.error.rawMessage||t.error.message;return e.length>120?`${e.slice(0,120)}...`:e}),o=$(()=>t.error.logText||t.error.rawMessage||``),s=$(()=>t.error.httpStatus),c=$(()=>t.error.requestId);return(e,t)=>(q(),J(`div`,Ap,[Y(`div`,jp,[X(rf,{name:`circle-exclamation`})]),Y(`div`,Mp,[Y(`div`,Np,V(i.value),1),Y(`div`,Pp,V(a.value),1),Y(`button`,{class:`tk-error__toggle`,type:`button`,onClick:t[0]||=e=>n.value=!n.value},V(n.value?`收起详情`:`展开详情`),1),Ys(Y(`div`,Fp,[s.value?(q(),J(`div`,Ip,`HTTP: `+V(s.value),1)):Q(`v-if`,!0),c.value?(q(),J(`div`,Lp,`Request ID: `+V(c.value),1)):Q(`v-if`,!0),o.value?(q(),J(`pre`,Rp,V(o.value),1)):Q(`v-if`,!0)],512),[[ld,n.value]])])]))}}),Bp={class:`tk-comments`},Vp={class:`tk-comments-container`},Hp={class:`tk-comments-title`},Up={key:0},Wp={class:`tk-comments-actions`},Gp={key:0,class:`tk-comments-sort`},Kp={class:`tk-comments-search`},qp={key:1,class:`tk-comments-no`},Jp={key:0},Yp={key:1},Xp={key:2,class:`tk-expand-wrap`},Zp=dc({__name:`TkComments`,props:{showAdminEntry:{type:Boolean,default:!1}},emits:[`admin`,`refreshed`],setup(e,{emit:t}){let n=t,r=W(!0),i=W(!1),a=W(null),o=W({}),s=W([]),c=W(!0),l=W(0),u=W(``),d=W(1),p=W(`newest`),m=W(``),g=W(``),_=W(!1),y=W(0),ee=W();async function x(){try{let e=await v(h().tcb,`GET_CONFIG`),t=e.result??e;t.config&&(o.value=t.config,$f(t.config))}catch(e){b.warn(`加载公开配置失败`,e)}}async function S(){let e=++y.value;r.value=!0,a.value=null;let t={url:Ai(h().options.path),sort:p.value,keyword:g.value};g.value&&(t.page=1),await ce(t),e===y.value&&(r.value=!1)}function C(){s.value=[],d.value=1}function w(){let e=m.value.trim();m.value=e,g.value!==e&&(g.value=e,C(),S())}function T(){g.value&&(g.value=``,C(),S())}function te(){_.value=!_.value,_.value?setTimeout(()=>ee.value?.focus(),0):(m.value=``,T())}function ne(){C(),S()}async function re(){let e=++y.value;r.value=!0,a.value=null;try{let e=Ai(h().options.path),t=d.value,n={url:e,sort:p.value,keyword:g.value};if(g.value&&(n.page=1),!await ce(n))return;for(let n=2;n<=t&&await oe(e,n);n++);}finally{e===y.value&&(r.value=!1)}e===y.value&&n(`refreshed`)}function ie(e){p.value!==e&&(p.value=e,C(),S())}async function E(){if(!i.value){i.value=!0,d.value++;try{await oe(Ai(h().options.path),d.value)}finally{i.value=!1}}}function ae(){let e=1/0;for(let t of s.value)!t.top&&(t.created??1/0)<e&&(e=t.created??1/0);return e===1/0?void 0:e}async function oe(e,t=d.value){if(g.value)return ce({url:e,page:t,sort:p.value,keyword:g.value});let n=ae();return n!==void 0&&ce({url:e,before:n,sort:p.value,keyword:g.value})}function se(){let e=h().options.onCommentLoaded;typeof e==`function`&&e()}async function ce(e){let t=y.value;try{let n=await v(h().tcb,`COMMENT_GET`,e);if(t!==y.value)return!1;let r=n.result??n;if(r?.message)return a.value=new f(`CLIENT_ERROR`,r.message,{rawMessage:r.message}),!1;if(r?.data)return s.value=e.before||typeof e.page==`number`&&e.page>1?s.value.concat(r.data):r.data,c.value=r.more===!0,l.value=r.count??s.value.length,setTimeout(se,0),!0}catch(e){t===y.value&&(a.value=e instanceof f?e:new f(`UNKNOWN`,e.message,{rawMessage:e.message}))}return!1}function le(e){a.value=e}function ue(e){u.value=e}function de(){n(`admin`)}function fe(){x()}function O(){re()}return Ec(()=>{x(),S(),Nf(Af,fe),Nf(Af,O)}),Ac(()=>{Pf(Af,fe),Pf(Af,O)}),(t,n)=>(q(),J(`div`,Bp,[X(Zf,{config:o.value,onLoad:S,onError:le},null,8,[`config`]),Ys((q(),J(`div`,Vp,[Y(`div`,Hp,[Y(`span`,{class:ja([`tk-comments-count`,{__hidden:r.value||!s.value.length&&!g.value}])},[g.value?(q(),J(`span`,Up,V(G(D)(`COMMENTS_SEARCH_COUNT_PREFIX`)),1)):Q(`v-if`,!0),Y(`span`,null,V(l.value),1),Y(`span`,null,V(G(D)(`COMMENTS_COUNT_SUFFIX`)),1)],2),Y(`span`,Wp,[!r.value&&s.value.length&&o.value.SHOW_ORDER!==`false`?(q(),J(`span`,Gp,[Y(`button`,{class:ja([`tk-sort-item`,{__active:p.value===`newest`}]),type:`button`,onClick:n[0]||=e=>ie(`newest`)},V(G(D)(`COMMENTS_SORT_NEWEST`)),3),Y(`button`,{class:ja([`tk-sort-item`,{__active:p.value===`oldest`}]),type:`button`,onClick:n[1]||=e=>ie(`oldest`)},V(G(D)(`COMMENTS_SORT_OLDEST`)),3),Y(`button`,{class:ja([`tk-sort-item`,{__active:p.value===`popular`}]),type:`button`,onClick:n[2]||=e=>ie(`popular`)},V(G(D)(`COMMENTS_SORT_POPULAR`)),3)])):Q(`v-if`,!0),!r.value&&!i.value?(q(),J(`span`,{key:1,class:ja([`tk-icon __comments`,{__active:_.value}]),onClick:te},[X(rf,{name:`magnifying-glass`})],2)):Q(`v-if`,!0),!r.value&&!i.value?(q(),J(`span`,{key:2,class:`tk-icon __comments`,onClick:ne},[X(rf,{name:`sync`})])):Q(`v-if`,!0),e.showAdminEntry?(q(),J(`span`,{key:3,class:`tk-icon __comments`,onClick:de},[X(rf,{name:`cog`})])):Q(`v-if`,!0)])]),Ys(Y(`div`,Kp,[X(Of,{ref_key:`searchInputRef`,ref:ee,modelValue:m.value,"onUpdate:modelValue":n[3]||=e=>m.value=e,size:`small`,clearable:``,maxlength:100,placeholder:G(D)(`COMMENTS_SEARCH_PLACEHOLDER`),onClear:T,onKeyup:Jd(w,[`enter`])},null,8,[`modelValue`,`placeholder`]),X(Bf,{size:`small`,type:`primary`,onClick:w},{default:K(()=>[Z(V(G(D)(`COMMENTS_SEARCH`)),1)]),_:1})],512),[[ld,_.value]]),Q(` 评论区唯一错误卡片:列表/提交/回复失败共用,位于空态块上方 `),a.value?(q(),mu(zp,{key:0,error:a.value},null,8,[`error`])):Q(`v-if`,!0),!s.value.length&&!r.value&&!a.value?(q(),J(`div`,qp,[g.value?(q(),J(`span`,Jp,V(G(D)(`COMMENTS_SEARCH_NO_RESULT`)),1)):Q(`v-if`,!0),g.value?Q(`v-if`,!0):(q(),J(`span`,Yp,V(G(D)(`COMMENTS_NO_COMMENTS`)),1))])):Q(`v-if`,!0),(q(!0),J(iu,null,Bc(s.value,e=>(q(),mu(kp,{key:e.id,comment:e,replying:u.value===e.id,config:o.value,onReply:ue,onLoad:re,onError:le},null,8,[`comment`,`replying`,`config`]))),128)),c.value&&!r.value&&!a.value?(q(),J(`div`,Xp,[Ys((q(),J(`div`,{class:`tk-expand`,onClick:E},[Z(V(G(D)(`COMMENTS_EXPAND`)),1)])),[[G(_i),i.value]])])):Q(`v-if`,!0)])),[[G(_i),r.value]])]))}}),Qp={class:`tk-footer`},$p=dc({__name:`TkFooter`,setup(e){let t=u;return(e,n)=>(q(),J(`div`,Qp,[n[0]||=Z(` Powered by `,-1),n[1]||=Y(`a`,{href:`https://twikoo.js.org`,target:`_blank`,rel:`noopener noreferrer`},`Twikoo`,-1),Z(` v`+V(G(t)),1)]))}}),em={class:`tk-pagination`},tm={key:0,class:`tk-pagination-options`},nm={class:`tk-pagination-pagers`},rm=[`onClick`],im={key:1,class:`tk-pagination-options`},am=dc({__name:`TkPagination`,props:{pageSize:{default:10},total:{default:0}},emits:[`current-change`,`page-size-change`],setup(e,{emit:t}){let n=e,r=t,i=W(1),a=W(0),o=W(0),s=W([]),c=$(()=>Math.ceil(n.total/n.pageSize));function l(){let e=[];for(let t=1;t<=c.value;t++)Math.abs(i.value-t)<3||t===1||t===c.value?e.push({title:`${t}`,page:t}):Math.abs(i.value-t)<4&&e.push({title:`...`,page:t});s.value=e}function u(e){i.value=parseInt(String(e),10)||1,i.value>c.value&&(i.value=c.value),i.value<1&&(i.value=1),a.value=0,r(`current-change`,i.value),l()}function d(e){o.value=0,r(`page-size-change`,parseInt(String(e),10))}function f(e){a.value=parseInt(String(e),10)}function p(e){o.value=parseInt(String(e),10)}function m(){l()}return tc(()=>n.total,m,{immediate:!0}),tc(()=>n.pageSize,m),(t,n)=>(q(),J(`div`,em,[c.value?(q(),J(`div`,tm,[Y(`div`,null,[Y(`span`,null,V(G(D)(`PAGINATION_COUNT_PREFIX`)),1),Y(`span`,null,V(e.total),1),Y(`span`,null,V(G(D)(`PAGINATION_COUNT_SUFFIX`)),1)]),X(Of,{class:`tk-pagination-size`,type:`number`,min:1,max:100,"model-value":o.value?o.value:e.pageSize,onInput:p,onChange:d},null,8,[`model-value`]),Y(`span`,null,V(G(D)(`PAGINATION_PAGESIZE`)),1)])):Q(`v-if`,!0),Y(`div`,nm,[(q(!0),J(iu,null,Bc(s.value,e=>(q(),J(`div`,{key:e.page,class:ja([`tk-pagination-pager`,{__current:e.page===i.value}]),onClick:t=>u(e.page)},V(e.title),11,rm))),128))]),c.value?(q(),J(`div`,im,[Y(`span`,null,V(G(D)(`PAGINATION_GOTO_PREFIX`)),1),X(Of,{class:`tk-pagination-goto`,type:`number`,min:1,max:c.value,"model-value":a.value?a.value:i.value,onInput:f,onChange:u},null,8,[`max`,`model-value`]),Y(`span`,null,V(G(D)(`PAGINATION_GOTO_SUFFIX`)),1)])):Q(`v-if`,!0)]))}}),om={class:`tk-admin-comment`},sm={key:0,class:`tk-admin-warn`},cm={class:`tk-admin-comment-filter`},lm={value:``},um={value:`VISIBLE`},dm={value:`HIDDEN`},fm={class:`tk-admin-comment-meta`},pm={key:0},mm=[`href`],hm={key:2},gm=[`href`],_m={key:3},vm={class:`tk-time`},ym=[`title`],bm=[`innerHTML`],xm={key:0,class:`tk-admin-warn tk-admin-security-alert`},Sm={class:`tk-admin-security-alert-message`},Cm={key:0,class:`tk-admin-security-alert-url`},wm={class:`tk-admin-actions`},Tm=5,Em=dc({__name:`TkAdminComment`,setup(e){let t=ep().VERSION,n=W(!0),r=W([]),i=ns({}),a=W(typeof t==`string`?t:``),o=u,s=W(0),c=W(Tm),l=W(1),d=ns({keyword:``,type:``}),f=W(null),p=W();function m(e){return Ei(e.created)}async function g(){n.value=!0;let e=await v(h().tcb,`COMMENT_GET_FOR_ADMIN`,{per:c.value,page:l.value,keyword:d.keyword,type:d.type}),t=e.result??e;t&&!t.code&&(s.value=t.count??0,r.value=(t.data??[]).map(e=>({...e,comment:Ot(e.comment)}))),setTimeout(()=>{te(p.value)},0),n.value=!1}async function _(){let e=await v(h().tcb,`GET_CONFIG_FOR_ADMIN`),t=e.result??e;t&&!t.code&&t.config&&(Object.assign(i,t.config),a.value=typeof t.config.VERSION==`string`?t.config.VERSION:``,y())}function y(){i.HIGHLIGHT||=`true`;let e={},t=localStorage.getItem(`twikoo`);if(t)try{e=JSON.parse(t)}catch{e={}}for(let t of[`nick`,`mail`,`avatar`])i[t]=e[t]??``;!e.nick&&i.BLOGGER_NICK&&(e.nick=String(i.BLOGGER_NICK)),!e.mail&&i.BLOGGER_EMAIL&&(e.mail=String(i.BLOGGER_EMAIL)),!e.link&&i.SITE_URL&&(e.link=String(i.SITE_URL)),localStorage.setItem(`twikoo`,JSON.stringify(e))}function b(e){c.value=e,g()}function ee(e){l.value=e,g()}function x(e){let t=`${e.url??``}#${e.id}`;try{if(new URL(t).hostname!==window.location.hostname){f.value={commentId:e.id,message:D(`ADMIN_COMMENT_SECURITY_ALERT`),url:t};return}window.open(t)}catch{try{new URL(t,window.location.origin),window.open(t)}catch{f.value={commentId:e.id,message:D(`ADMIN_COMMENT_PARSE_ERROR`),url:e.url}}}}async function S(e){confirm(D(`ADMIN_COMMENT_DELETE_CONFIRM`))&&(n.value=!0,await v(h().tcb,`COMMENT_DELETE_FOR_ADMIN`,{id:e.id}),await g(),n.value=!1)}function C(e,t){T(e,{isSpam:t})}function w(e,t){T(e,{top:t})}async function T(e,t){n.value=!0,await v(h().tcb,`COMMENT_SET_FOR_ADMIN`,{id:e.id,set:t}),await g(),n.value=!1}function te(e){e&&(Vi(e),Hi(e,h().options.katex),i.HIGHLIGHT===`true`&&Ut(e,i.HIGHLIGHT_THEME,i.HIGHLIGHT_PLUGIN))}return Ec(async()=>{await Promise.all([_(),g()]),te(p.value)}),(e,t)=>Ys((q(),J(`div`,om,[G(o)===a.value?Q(`v-if`,!0):(q(),J(`div`,sm,[Y(`span`,null,V(G(D)(`ADMIN_CLIENT_VERSION`))+V(G(o))+`,`,1),Y(`span`,null,V(G(D)(`ADMIN_SERVER_VERSION`))+V(a.value)+`,`,1),Q(`
|
|
75
|
+
`)}),le=$(()=>{let e=parseInt(String(i.config.LIMIT_LENGTH),10);return Number.isNaN(e)&&(e=500),e>0?e:void 0}),ue=$(()=>{let e=C.value?.inputEl;return e instanceof HTMLTextAreaElement?e:null});function de(){localStorage.setItem(`twikoo-draft`,d.value)}function fe(){let e=localStorage.getItem(`twikoo-draft`);!d.value&&e&&(d.value=e)}async function O(){if(i.config.SHOW_EMOTION!==`true`)return;let e=await ui(String(i.config.EMOTION_CDN||`https://owo.imaegoo.com/owo.json`));di(e),w.value&&ue.value&&(u.value=new Hf({logo:r,container:w.value,target:ue.value,odata:e,position:`down`,maxHeight:`250px`}))}function pe(){u.value?.container.classList.contains(`OwO-open`)&&u.value.toggle()}function me(e){return new Promise((t,n)=>{let r=document.createElement(`script`);r.src=e,r.onload=()=>t(),r.onerror=()=>n(Error(`脚本加载失败:${e}`)),document.head.appendChild(r)})}function k(e,t){return{ok:e,json:()=>Promise.resolve(t)}}function he(){if(ae.value===`Turnstile`&&i.config.TURNSTILE_SITE_KEY){if(window.turnstile){y.value=Promise.resolve();return}y.value||=me(`https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit`)}}function ge(){return new Promise((e,t)=>{y.value?.then(()=>{let n=window.turnstile,r=n.render(ne.value,{sitekey:i.config.TURNSTILE_SITE_KEY,callback:t=>{e(t),setTimeout(()=>n.remove(r),1e3)},"error-callback":()=>t(Error(`验证码校验失败,请重试`)),"expired-callback":()=>t(Error(`验证码已过期,请重试`)),"timeout-callback":()=>t(Error(`验证码超时,请重试`))})})})}function _e(){if(ae.value===`Geetest`&&i.config.GEETEST_CAPTCHA_ID){if(window.initGeetest4){ee.value=Promise.resolve();return}ee.value||=me(`https://static.geetest.com/v4/gt4.js`)}}function ve(){return new Promise((e,t)=>{ee.value?.then(()=>{let n=window.initGeetest4;n({captchaId:i.config.GEETEST_CAPTCHA_ID,product:`bind`,language:`zho`},n=>{n.onReady(()=>n.showCaptcha()).onSuccess(()=>{let t=n.getValidate();e({geeTestLotNumber:t.lot_number,geeTestCaptchaOutput:t.captcha_output,geeTestPassToken:t.pass_token,geeTestGenTime:t.gen_time})}).onError(e=>t(e instanceof Error?e:Error(`Geetest 验证失败,请重试`))).onClose(()=>t(Error(`验证已取消`)))})})})}function ye(){if(ae.value!==`Cap`||!i.config.CAP_API_ENDPOINT&&!i.config.CAP_BUILTIN)return;let e=window;if(i.config.CAP_BUILTIN&&(e.CAP_CUSTOM_FETCH=async(e,t={})=>{let n=String(e),r=t.body?JSON.parse(t.body):{};try{if(n.includes(`challenge`)){let e=await v(h().tcb,`CAP_CHALLENGE`),t=e.result??e;return t.code&&t.code!==0?k(!1,{error:t.message??`challenge_failed`}):k(!0,{challenge:t.challenge,token:t.token,expires:t.expires})}if(n.includes(`redeem`)){let e=await v(h().tcb,`CAP_REDEEM`,r),t=e.result??e;return t.code&&t.code!==0&&t.success!==!0?k(!0,{success:!1,error:t.message??t.error??`redeem_failed`}):k(!0,{success:t.success,token:t.token,expires:t.expires,message:t.message,error:t.error??t.message})}return k(!1,{error:`unknown_cap_path`})}catch(e){return k(!1,{error:e instanceof Error?e.message:`cap_fetch_failed`})}}),e.Cap||customElements.get(`cap-widget`)){x.value=Promise.resolve();return}x.value||=me(`https://cdn.jsdmirror.com/npm/@cap.js/widget`)}function be(){return new Promise((e,t)=>{x.value?.then(()=>{let n=document.createElement(`cap-widget`);n.setAttribute(`id`,`cap-widget`);let r=i.config.CAP_BUILTIN?`/`:String(i.config.CAP_API_ENDPOINT);n.setAttribute(`data-cap-api-endpoint`,r),E.value?.appendChild(n);let a=()=>{n.parentNode?.removeChild(n)};n.solve().then(n=>{a(),n.success?e(typeof n.token==`string`?n.token:``):t(Error(`Cap 验证失败`))}).catch(e=>{a(),t(e instanceof Error?e:Error(`Cap 验证失败`))})}).catch(t)})}function xe(e){m.value=e.meta.nick,g.value=e.meta.mail,_.value=e.meta.link,c.value=e.valid}function Se(){a(`cancel`)}function Ce(){de(),Te()}function we(){s.value=!s.value,Te()}function Te(){s.value&&(p.value=Ot(ii(d.value)),Ls(()=>{let e=te.value;e&&(Vi(e),Hi(e,h().options.katex),i.config.HIGHLIGHT===`true`&&Ut(e,i.config.HIGHLIGHT_THEME,i.config.HIGHLIGHT_PLUGIN))}))}async function Ee(){o.value=!0,l.value=void 0;try{if(d.value.match(RegExp(`!\\[${D(`IMAGE_UPLOAD_PLACEHOLDER`)}.+\\]\\(\\)`)))throw Error(D(`IMAGE_UPLOAD_PLEASE_WAIT`));let e={nick:m.value,mail:g.value,link:_.value,ua:await Bi(),url:Ai(h().options.path),href:ji(h().options.href),comment:ii(d.value),pid:i.pid?i.pid:i.replyId,rid:i.replyId};ae.value===`Turnstile`&&i.config.TURNSTILE_SITE_KEY&&(e.turnstileToken=await ge()),ae.value===`Geetest`&&i.config.GEETEST_CAPTCHA_ID&&Object.assign(e,await ve()),ae.value===`Cap`&&(i.config.CAP_API_ENDPOINT||i.config.CAP_BUILTIN)&&(e.capToken=await be());let t=await v(h().tcb,`COMMENT_SUBMIT`,e),n=t.result??t;if(n.id)d.value=``,l.value=void 0,a(`load`),de();else throw new f(n.code===void 0?`UNKNOWN`:`REJECTED`,n.message??D(`COMMENT_FAILED`),{rawMessage:n.message??``})}catch(e){b.error(`评论失败`,e),l.value=e instanceof f?e:new f(`UNKNOWN`,`${D(`COMMENT_FAILED`)}: ${e.message}`,{rawMessage:e.message})}finally{o.value=!1}}function De(e){(e.ctrlKey||e.metaKey)&&e.key===`Enter`&&Ee()}function Oe(){T.value?.click()}function ke(){let e=T.value?.files?.[0];je(e)}function Ae(e){e.clipboardData&&je(e.clipboardData.files[0]??e.clipboardData.items[0]?.getAsFile()??void 0)}async function je(e){if(!e||!oe.value)return;let t=e.name.split(`.`),r=t.length>1?String(t.pop()):``;if(n.indexOf(r.toLowerCase())===-1)return;let{tcb:a}=h(),o=a?.auth?.currentUser?.uid??localStorage.getItem(`twikoo-access-token`)??``,s=`${Date.now()}-${o}`,c=t.join(`.`),l=e.type===`image/gif`,u=l?c:`${c}.webp`,d=l?r:`webp`;A(Le(s,d));let f=String(i.config.IMAGE_CDN??``),p=await Me(e);a&&(!f||f===`qcloud`)?Ne(s,u,d,p):f?Pe(s,u,d,p):Ie(s,d,D(`IMAGE_UPLOAD_FAILED_NO_CONF`))}async function Me(e){return e.type===`image/gif`?e:new Promise(t=>{let n=new FileReader;n.onload=n=>{let r=new Image;r.onload=()=>{let n=document.createElement(`canvas`),i=r.width,a=r.height,o=1920;(i>o||a>o)&&(i>a?(a=a*o/i,i=o):(i=i*o/a,a=o)),n.width=i,n.height=a,n.getContext(`2d`)?.drawImage(r,0,0,i,a);let s=`image/webp`,c=e.name.replace(/\.[^.]+$/,`.webp`);n.toBlob(e=>t(new File([e??new Blob],c,{type:s})),s,.85)};let i=n.target?.result;r.src=typeof i==`string`?i:``},n.readAsDataURL(e)})}async function Ne(e,t,n,r){try{let i=h().tcb?.app,a=await i.uploadFile({cloudPath:`tk-img/${e}.${n}`,filePath:r});if(!a.fileID)return;Fe(e,t,n,(await i.getTempFileURL({fileList:[a.fileID]})).fileList[0].tempFileURL)}catch(t){console.error(t),Ie(e,n,t.message)}}async function Pe(e,t,n,r){try{let i=await v(h().tcb,`UPLOAD_IMAGE`,{fileName:t,photo:await zi(r)}),a=i.result??i;a.data?Fe(e,t,n,String(a.data.url)):a.code===1041?Ie(e,n,D(`IMAGE_UPLOAD_NSFW`)):(console.error(a),Ie(e,n,String(a.err)))}catch(t){console.error(t),Ie(e,n,t.message)}}function Fe(e,t,n,r){let i=t.replace(/[[\]]/g,`_`);d.value=d.value.replace(Le(e,n),``),T.value&&(T.value.value=``)}function Ie(e,t,n){d.value=d.value.replace(Le(e,t),`_${D(`IMAGE_UPLOAD_FAILED`)}: ${n}_`),T.value&&(T.value.value=``)}function A(e){let t=ue.value,n=t?.selectionStart??d.value.length,r=t?.selectionEnd??d.value.length;d.value=d.value.substring(0,n)+e+d.value.substring(r),Ls(()=>{if(!t)return;let r=n+e.length;t.selectionStart=r,t.selectionEnd=r})}function Le(e,t){return`![${D(`IMAGE_UPLOAD_PLACEHOLDER`)} ${e}.${t}]()`}function Re(){i.config.COMMENT_BG_IMG&&ue.value&&(ue.value.style[`background-image`]=`url("${String(i.config.COMMENT_BG_IMG)}")`)}function ze(){he(),_e(),ye()}return tc(()=>i.config.SHOW_EMOTION,()=>{O()}),tc(()=>i.config.COMMENT_BG_IMG,()=>{Re()}),tc(()=>i.config.TURNSTILE_SITE_KEY,()=>{he()}),tc(()=>i.config.GEETEST_CAPTCHA_ID,()=>{_e()}),tc(()=>i.config.CAP_API_ENDPOINT,()=>{ye()}),tc(ae,()=>{ze()}),Ec(()=>{i.pid&&S.value?.scrollIntoView({behavior:`instant`,block:`center`}),fe(),ue.value?.addEventListener(`paste`,Ae),Re(),ze(),O()}),Ac(()=>{ue.value?.removeEventListener(`paste`,Ae)}),(t,n)=>(q(),J(`div`,{ref_key:`tkSubmitRef`,ref:S,class:`tk-submit tk-fade-in`},[Y(`div`,Uf,[X(xf,{config:e.config,mail:g.value,nick:m.value},null,8,[`config`,`mail`,`nick`]),Y(`div`,Wf,[X(Lf,{nick:m.value,mail:g.value,link:_.value,config:e.config,onUpdate:xe},null,8,[`nick`,`mail`,`link`,`config`]),X(Of,{ref_key:`textareaRef`,ref:C,modelValue:d.value,"onUpdate:modelValue":n[0]||=e=>d.value=e,class:`tk-input`,type:`textarea`,placeholder:ce.value,autosize:{minRows:3},maxlength:le.value,"show-word-limit":``,onInput:Ce,onKeyup:De},null,8,[`modelValue`,`placeholder`,`maxlength`])])]),Y(`div`,Gf,[Y(`div`,Kf,[Q(` 表情按钮:首屏先渲染图标,随后由 OwO 面板以同样的 logo 接管容器内容 `),Q(` 图标为构建期内联的 fontawesome 官方 SVG,非运行时用户数据 `),Q(` eslint-disable vue/no-v-html `),Ys(Y(`div`,{ref_key:`owoRef`,ref:w,class:`tk-submit-action-icon OwO`,innerHTML:G(r)},null,8,qf),[[ld,e.config.SHOW_EMOTION===`true`],[G(bi),pe]]),Q(` eslint-enable vue/no-v-html `),Ys(Y(`div`,{class:`tk-submit-action-icon`,onClick:Oe},[X(rf,{name:`image-regular`})],512),[[ld,oe.value]]),Y(`input`,{ref_key:`inputFileRef`,ref:T,class:`tk-input-image`,type:`file`,accept:`image/*`,value:``,onChange:ke},null,544)]),Y(`a`,Jf,[X(rf,{name:`markdown`})]),e.replyId?(q(),mu(Bf,{key:0,class:`tk-cancel`,size:`small`,onClick:Se},{default:K(()=>[Z(V(G(D)(`SUBMIT_CANCEL`)),1)]),_:1})):Q(`v-if`,!0),X(Bf,{class:`tk-preview`,size:`small`,onClick:we},{default:K(()=>[Z(V(G(D)(`SUBMIT_PREVIEW`)),1)]),_:1}),X(Bf,{class:`tk-send`,type:`primary`,size:`small`,disabled:!se.value,onClick:Ee},{default:K(()=>[Z(V(o.value?G(D)(`SUBMIT_SENDING`):G(D)(`SUBMIT_SEND`)),1)]),_:1},8,[`disabled`]),Ys(Y(`div`,{ref_key:`turnstileContainerRef`,ref:re,class:`tk-turnstile-container`},[Y(`div`,{ref_key:`turnstileRef`,ref:ne,class:`tk-turnstile`},null,512)],512),[[ld,ae.value===`Turnstile`]]),Ys(Y(`div`,{ref_key:`geetestContainerRef`,ref:ie,class:`tk-geetest-container`},null,512),[[ld,ae.value===`Geetest`]]),Ys(Y(`div`,{ref_key:`capContainerRef`,ref:E,class:`tk-cap-container`},null,512),[[ld,ae.value===`Cap`]])]),s.value?(q(),J(`div`,Yf,[Q(` 预览内容经 sanitizeHtml 消毒 `),Q(` eslint-disable-next-line vue/no-v-html `),Y(`div`,{innerHTML:p.value},null,8,Xf)],512)):Q(`v-if`,!0)],512))}}),Qf=ns({serverConfig:{}});function $f(e){Qf.serverConfig=e}function ep(){return Qf.serverConfig}var tp=[`id`],np={class:`tk-main`},rp={class:`tk-row`},ip={class:`tk-meta`},ap={key:0,class:`tk-nick`},op=[`href`],sp={key:2,class:`tk-tag tk-tag-green`},cp={key:3,class:`tk-tag tk-tag-red`},lp={key:4,class:`tk-tag tk-tag-yellow`},up={class:`tk-time`},dp=[`datetime`,`title`],fp={key:5,class:`tk-actions`},pp={key:0},mp=[`innerHTML`],hp={key:0,class:`tk-expand-wrap`},gp={key:1,class:`tk-collapse-wrap`},_p={key:2,class:`tk-extras`},vp={key:0,class:`tk-extra`},yp={class:`tk-icon __comment`},bp={class:`tk-extra-text`},xp={key:1,class:`tk-extra`},Sp={class:`tk-icon __comment`},Cp={class:`tk-extra-text`},wp={key:2,class:`tk-extra`},Tp={class:`tk-icon __comment`},Ep={class:`tk-extra-text`},Dp={key:4,class:`tk-expand-wrap`},Op={key:5,class:`tk-collapse-wrap`},kp=dc({__name:`TkComment`,props:{comment:{},replyId:{default:``},replying:{type:Boolean,default:!1},config:{default:vf}},emits:[`reply`,`load`,`expand`,`refreshed`,`error`],setup(e,{emit:t}){let n=e,r=t,i={win:`windows`,mac:`apple`,ipad:`apple`,iphone:`apple`,ios:`apple`,android:`android`,ubuntu:`ubuntu`,linux:`linux`},a={edge:`edge`,chrome:`chrome`,firefox:`firefox-browser`,safari:`safari`,explorer:`internet-explorer`,ie:`internet-explorer`},o=W(``),s=W(n.comment.ups??0),c=W(n.comment.downs??0),l=W(n.comment.liked===!0),u=W(n.comment.disliked===!0),d=W(!1),f=W(!1),p=W(!1),m=W(!1),g=W(!1),_=W(!1),y=W(n.comment.isSpam===!0),b=W(n.comment.top===!0),ee=W(!1),x=W(),S=W(),C=W(),w=W(),T=$(()=>Ot(n.comment.comment)),te=$(()=>Ei(n.comment.created)),ne=$(()=>new Date(n.comment.created??0).toJSON()),re=$(()=>new Date(n.comment.created??0).toLocaleString()),ie=$(()=>ue(n.comment.os??``,i)),E=$(()=>ue(n.comment.browser??``,a)),ae=$(()=>p.value&&!f.value),oe=$(()=>p.value&&f.value),se=$(()=>g.value&&!m.value),ce=$(()=>g.value&&m.value),le=$(()=>Ti(n.comment.link));function ue(e,t){let n=e.toLowerCase();for(let e of Object.keys(t))if(n.indexOf(e)!==-1)return t[e];return`window-maximize-regular`}function de(){let e=w.value;n.comment.replies.length>0&&e&&(p.value=e.scrollHeight>236)}function fe(){let e=S.value;e&&(g.value=g.value||e.scrollHeight>500)}function O(){S.value?.querySelectorAll(`img`).forEach(e=>{e.onload=fe})}function pe(){window.location.hash.indexOf(n.comment.id)!==-1&&(x.value?.scrollIntoView({behavior:`smooth`}),r(`expand`))}function me(e){document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`center`})}async function k(){if(!d.value){d.value=!0;try{await v(h().tcb,`COMMENT_LIKE`,{id:n.comment.id,type:`up`}),l.value?s.value--:(s.value++,u.value&&c.value--),l.value=!l.value,u.value=!1}finally{d.value=!1}}}async function he(){if(!d.value){d.value=!0;try{await v(h().tcb,`COMMENT_LIKE`,{id:n.comment.id,type:`down`}),u.value?c.value--:(c.value++,l.value&&s.value--),u.value=!u.value,l.value=!1}finally{d.value=!1}}}function ge(e){o.value=e,r(`reply`,n.comment.id)}async function _e(){if(!confirm(D(`COMMENT_DELETE_CONFIRM`)))return;let e=await v(h().tcb,`COMMENT_DELETE_FOR_USER`,{id:n.comment.id}),t=e.result??e;t.code?alert(t.message):r(`load`)}function ve(e){o.value=e,r(`reply`,e?n.comment.id:``)}function ye(){o.value=``,r(`reply`,``)}function be(){o.value=``,r(`reply`,``),r(`load`),f.value=!0}function xe(){r(`refreshed`),Ls(()=>{let e=w.value?.lastElementChild;n.comment.replies.length>0&&e&&e.scrollIntoView({behavior:`smooth`,block:`center`})})}async function Se(){let{tcb:e}=h();if(e?.auth){let t=await e.auth.getCurrentUser();_.value=t.loginType===`CUSTOM`}else _.value=ep().IS_ADMIN===!0}function Ce(e){Ee({isSpam:e})}function we(e){Ee({top:e})}function Te(e){if(ep().LIGHTBOX!==`true`)return;let t=e.target;if(t.tagName!==`IMG`||t.classList.contains(`tk-owo-emotion`))return;let n=document.createElement(`div`);n.className=`tk-lightbox`;let r=document.createElement(`img`);r.className=`tk-lightbox-image`,r.src=t.src,n.appendChild(r),n.addEventListener(`click`,()=>{document.body.removeChild(n)}),document.body.appendChild(n)}async function Ee(e){ee.value=!0;try{await v(h().tcb,`COMMENT_SET_FOR_ADMIN`,{id:n.comment.id,set:e}),e.isSpam!==void 0&&(y.value=e.isSpam),e.top!==void 0&&(b.value=e.top)}finally{ee.value=!1}}function De(){let e=C.value;e&&(Vi(e),Hi(e,h().options.katex),n.config.HIGHLIGHT===`true`&&Ut(e,n.config.HIGHLIGHT_THEME,n.config.HIGHLIGHT_PLUGIN))}return tc(()=>n.comment.isSpam,e=>{y.value=e===!0}),tc(()=>n.comment.top,e=>{b.value=e===!0}),tc(()=>n.comment.ups,()=>{s.value=n.comment.ups??0,l.value=n.comment.liked===!0},{immediate:!0}),tc(()=>n.comment.downs,()=>{c.value=n.comment.downs??0,u.value=n.comment.disliked===!0},{immediate:!0}),tc(()=>n.config.HIGHLIGHT,e=>{e===`true`&&Ls(De)},{immediate:!0}),Ec(()=>{Ls(fe),Ls(O),Ls(de),Ls(pe),Ls(De),Se()}),(t,n)=>{let i=Ic(`TkComment`,!0);return q(),J(`div`,{id:e.comment.id,ref_key:`tkCommentRef`,ref:x,class:ja([`tk-comment`,{"tk-master":e.comment.master}])},[X(xf,{config:e.config,nick:e.comment.nick,avatar:e.comment.avatar,"mail-md5":e.comment.mailMd5,link:le.value},null,8,[`config`,`nick`,`avatar`,`mail-md5`,`link`]),Y(`div`,np,[Y(`div`,rp,[Y(`div`,ip,[le.value?Q(`v-if`,!0):(q(),J(`strong`,ap,V(e.comment.nick),1)),le.value?(q(),J(`a`,{key:1,class:`tk-nick tk-nick-link`,href:le.value,target:`_blank`,rel:`noopener noreferrer nofollow ugc`},[Y(`strong`,null,V(e.comment.nick),1)],8,op)):Q(`v-if`,!0),e.comment.master?(q(),J(`span`,sp,V(e.config.MASTER_TAG||G(D)(`COMMENT_MASTER_TAG`)),1)):Q(`v-if`,!0),b.value?(q(),J(`span`,cp,V(G(D)(`COMMENT_TOP_TAG`)),1)):Q(`v-if`,!0),y.value?(q(),J(`span`,lp,V(G(D)(`COMMENT_REVIEWING_TAG`)),1)):Q(`v-if`,!0),Y(`small`,up,[Y(`time`,{datetime:ne.value,title:re.value},V(te.value),9,dp)]),_.value?(q(),J(`small`,fp,[y.value?(q(),J(`button`,{key:0,onClick:n[0]||=e=>Ce(!1)},V(G(D)(`ADMIN_COMMENT_SHOW`)),1)):Q(`v-if`,!0),y.value?Q(`v-if`,!0):(q(),J(`button`,{key:1,onClick:n[1]||=e=>Ce(!0)},V(G(D)(`ADMIN_COMMENT_HIDE`)),1)),!e.comment.rid&&b.value?(q(),J(`button`,{key:2,onClick:n[2]||=e=>we(!1)},V(G(D)(`ADMIN_COMMENT_UNTOP`)),1)):Q(`v-if`,!0),!e.comment.rid&&!b.value?(q(),J(`button`,{key:3,onClick:n[3]||=e=>we(!0)},V(G(D)(`ADMIN_COMMENT_TOP`)),1)):Q(`v-if`,!0)])):Q(`v-if`,!0)]),X(_f,{liked:l.value,disliked:u.value,"like-count":s.value,"dislike-count":c.value,"replies-count":e.comment.replies.length,"show-dislike":e.config.SHOW_DISLIKE!==`false`,"show-delete":e.comment.isOwner===!0,onLike:k,onDislike:he,onReply:ge,onDelete:_e},null,8,[`liked`,`disliked`,`like-count`,`dislike-count`,`replies-count`,`show-dislike`,`show-delete`])]),Y(`div`,{ref_key:`tkContentRef`,ref:S,class:ja([`tk-content`,{"tk-content-expand":m.value}])},[e.comment.pid?(q(),J(`span`,pp,[Z(V(G(D)(`COMMENT_REPLIED`))+` `,1),Y(`a`,{class:`tk-ruser`,href:`#`,onClick:n[4]||=Kd(t=>me(e.comment.pid),[`prevent`])},V(`@${e.comment.ruser}`),1),n[12]||=Z(` : `,-1)])):Q(`v-if`,!0),Q(` 正文:服务端已 DOMPurify 消毒,客户端再走一次 sanitizeHtml 双保险 `),Q(` eslint-disable-next-line vue/no-v-html `),Y(`span`,{ref_key:`commentRef`,ref:C,onClick:Te,innerHTML:T.value},null,8,mp)],2),se.value?(q(),J(`div`,hp,[Y(`div`,{class:`tk-expand`,onClick:n[5]||=e=>m.value=!0},V(G(D)(`COMMENT_EXPAND`)),1)])):Q(`v-if`,!0),ce.value?(q(),J(`div`,gp,[Y(`div`,{class:`tk-expand _collapse`,onClick:n[6]||=e=>m.value=!1},V(G(D)(`COMMENT_COLLAPSE`)),1)])):Q(`v-if`,!0),e.comment.ipRegion||e.comment.os||e.comment.browser?(q(),J(`div`,_p,[e.comment.ipRegion?(q(),J(`div`,vp,[Y(`span`,yp,[X(rf,{name:`location-arrow`})]),Y(`span`,bp,`\xA0`+V(e.comment.ipRegion),1)])):Q(`v-if`,!0),e.comment.os?(q(),J(`div`,xp,[Y(`span`,Sp,[X(rf,{name:ie.value},null,8,[`name`])]),Y(`span`,Cp,`\xA0`+V(e.comment.os),1)])):Q(`v-if`,!0),e.comment.browser?(q(),J(`div`,wp,[Y(`span`,Tp,[X(rf,{name:E.value},null,8,[`name`])]),Y(`span`,Ep,`\xA0`+V(e.comment.browser),1)])):Q(`v-if`,!0)])):Q(`v-if`,!0),Q(` 回复框(主楼被回复时挂载;楼中楼由子评论自身挂载) `),e.replying&&!o.value?(q(),mu(Zf,{key:3,"reply-id":e.replyId?e.replyId:e.comment.id,pid:e.comment.id,config:e.config,onLoad:be,onCancel:ye,onError:n[7]||=e=>r(`error`,e)},null,8,[`reply-id`,`pid`,`config`])):Q(`v-if`,!0),Q(` 回复列表 `),Y(`div`,{ref_key:`tkRepliesRef`,ref:w,class:ja([`tk-replies`,{"tk-replies-expand":f.value||!ae.value||e.replying}])},[(q(!0),J(iu,null,Bc(e.comment.replies,t=>(q(),mu(i,{key:t.id,comment:t,"reply-id":e.comment.id,replying:e.replying&&o.value===t.id,config:e.config,onExpand:n[8]||=e=>f.value=!0,onLoad:be,onReply:ve,onRefreshed:xe,onError:n[9]||=e=>r(`error`,e)},null,8,[`comment`,`reply-id`,`replying`,`config`]))),128))],2),ae.value&&!e.replying?(q(),J(`div`,Dp,[Y(`div`,{class:`tk-expand`,onClick:n[10]||=e=>f.value=!0},V(G(D)(`COMMENT_EXPAND`)),1)])):Q(`v-if`,!0),oe.value&&!e.replying?(q(),J(`div`,Op,[Y(`div`,{class:`tk-expand _collapse`,onClick:n[11]||=e=>f.value=!1},V(G(D)(`COMMENT_COLLAPSE`)),1)])):Q(`v-if`,!0)])],10,tp)}}}),Ap={class:`tk-error`},jp={class:`tk-error__icon`},Mp={class:`tk-error__body`},Np={class:`tk-error__title`},Pp={class:`tk-error__message`},Fp={class:`tk-error__detail`},Ip={key:0,class:`tk-error__row`},Lp={key:1,class:`tk-error__row`},Rp={key:2,class:`tk-error__raw`},zp=dc({__name:`TkError`,props:{error:{}},setup(e){let t=e,n=W(!1),r={NETWORK:`无法连接到后端`,CORS:`请求被跨域策略拦截`,TIMEOUT:`请求超时`,REJECTED:`请求过于频繁`,NOT_FOUND:`接口地址不存在`,CLIENT_ERROR:`请求失败`,SERVER_ERROR:`后端异常`,UNKNOWN:`出现未知错误`},i=$(()=>r[t.error.kind]??`出现错误`),a=$(()=>{let e=t.error.rawMessage||t.error.message;return e.length>120?`${e.slice(0,120)}...`:e}),o=$(()=>t.error.rawMessage||``),s=$(()=>t.error.httpStatus),c=$(()=>t.error.requestId);return(e,t)=>(q(),J(`div`,Ap,[Y(`div`,jp,[X(rf,{name:`circle-exclamation`})]),Y(`div`,Mp,[Y(`div`,Np,V(i.value),1),Y(`div`,Pp,V(a.value),1),Y(`button`,{class:`tk-error__toggle`,type:`button`,onClick:t[0]||=e=>n.value=!n.value},V(n.value?`收起详情`:`展开详情`),1),Ys(Y(`div`,Fp,[s.value?(q(),J(`div`,Ip,`HTTP: `+V(s.value),1)):Q(`v-if`,!0),c.value?(q(),J(`div`,Lp,`Request ID: `+V(c.value),1)):Q(`v-if`,!0),o.value?(q(),J(`pre`,Rp,V(o.value),1)):Q(`v-if`,!0)],512),[[ld,n.value]])])]))}}),Bp={class:`tk-comments`},Vp={class:`tk-comments-container`},Hp={class:`tk-comments-title`},Up={key:0},Wp={class:`tk-comments-actions`},Gp={key:0,class:`tk-comments-sort`},Kp={class:`tk-comments-search`},qp={key:1,class:`tk-comments-no`},Jp={key:0},Yp={key:1},Xp={key:2,class:`tk-expand-wrap`},Zp=dc({__name:`TkComments`,props:{showAdminEntry:{type:Boolean,default:!1}},emits:[`admin`,`refreshed`],setup(e,{emit:t}){let n=t,r=W(!0),i=W(!1),a=W(null),o=W({}),s=W([]),c=W(!0),l=W(0),u=W(``),d=W(1),p=W(`newest`),m=W(``),g=W(``),_=W(!1),y=W(0),ee=W();async function x(){try{let e=await v(h().tcb,`GET_CONFIG`),t=e.result??e;t.config&&(o.value=t.config,$f(t.config))}catch(e){b.warn(`加载公开配置失败`,e)}}async function S(){let e=++y.value;r.value=!0,a.value=null;let t={url:Ai(h().options.path),sort:p.value,keyword:g.value};g.value&&(t.page=1),await ce(t),e===y.value&&(r.value=!1)}function C(){s.value=[],d.value=1}function w(){let e=m.value.trim();m.value=e,g.value!==e&&(g.value=e,C(),S())}function T(){g.value&&(g.value=``,C(),S())}function te(){_.value=!_.value,_.value?setTimeout(()=>ee.value?.focus(),0):(m.value=``,T())}function ne(){C(),S()}async function re(){let e=++y.value;r.value=!0,a.value=null;try{let e=Ai(h().options.path),t=d.value,n={url:e,sort:p.value,keyword:g.value};if(g.value&&(n.page=1),!await ce(n))return;for(let n=2;n<=t&&await oe(e,n);n++);}finally{e===y.value&&(r.value=!1)}e===y.value&&n(`refreshed`)}function ie(e){p.value!==e&&(p.value=e,C(),S())}async function E(){if(!i.value){i.value=!0,d.value++;try{await oe(Ai(h().options.path),d.value)}finally{i.value=!1}}}function ae(){let e=1/0;for(let t of s.value)!t.top&&(t.created??1/0)<e&&(e=t.created??1/0);return e===1/0?void 0:e}async function oe(e,t=d.value){if(g.value)return ce({url:e,page:t,sort:p.value,keyword:g.value});let n=ae();return n!==void 0&&ce({url:e,before:n,sort:p.value,keyword:g.value})}function se(){let e=h().options.onCommentLoaded;typeof e==`function`&&e()}async function ce(e){let t=y.value;try{let n=await v(h().tcb,`COMMENT_GET`,e);if(t!==y.value)return!1;let r=n.result??n;if(r?.message)return a.value=new f(`CLIENT_ERROR`,r.message,{rawMessage:r.message}),!1;if(r?.data)return s.value=e.before||typeof e.page==`number`&&e.page>1?s.value.concat(r.data):r.data,c.value=r.more===!0,l.value=r.count??s.value.length,setTimeout(se,0),!0}catch(e){t===y.value&&(a.value=e instanceof f?e:new f(`UNKNOWN`,e.message,{rawMessage:e.message}))}return!1}function le(e){a.value=e}function ue(e){u.value=e}function de(){n(`admin`)}function fe(){x()}function O(){re()}return Ec(()=>{x(),S(),Nf(Af,fe),Nf(Af,O)}),Ac(()=>{Pf(Af,fe),Pf(Af,O)}),(t,n)=>(q(),J(`div`,Bp,[X(Zf,{config:o.value,onLoad:S,onError:le},null,8,[`config`]),Ys((q(),J(`div`,Vp,[Y(`div`,Hp,[Y(`span`,{class:ja([`tk-comments-count`,{__hidden:r.value||!s.value.length&&!g.value}])},[g.value?(q(),J(`span`,Up,V(G(D)(`COMMENTS_SEARCH_COUNT_PREFIX`)),1)):Q(`v-if`,!0),Y(`span`,null,V(l.value),1),Y(`span`,null,V(G(D)(`COMMENTS_COUNT_SUFFIX`)),1)],2),Y(`span`,Wp,[!r.value&&s.value.length&&o.value.SHOW_ORDER!==`false`?(q(),J(`span`,Gp,[Y(`button`,{class:ja([`tk-sort-item`,{__active:p.value===`newest`}]),type:`button`,onClick:n[0]||=e=>ie(`newest`)},V(G(D)(`COMMENTS_SORT_NEWEST`)),3),Y(`button`,{class:ja([`tk-sort-item`,{__active:p.value===`oldest`}]),type:`button`,onClick:n[1]||=e=>ie(`oldest`)},V(G(D)(`COMMENTS_SORT_OLDEST`)),3),Y(`button`,{class:ja([`tk-sort-item`,{__active:p.value===`popular`}]),type:`button`,onClick:n[2]||=e=>ie(`popular`)},V(G(D)(`COMMENTS_SORT_POPULAR`)),3)])):Q(`v-if`,!0),!r.value&&!i.value?(q(),J(`span`,{key:1,class:ja([`tk-icon __comments`,{__active:_.value}]),onClick:te},[X(rf,{name:`magnifying-glass`})],2)):Q(`v-if`,!0),!r.value&&!i.value?(q(),J(`span`,{key:2,class:`tk-icon __comments`,onClick:ne},[X(rf,{name:`sync`})])):Q(`v-if`,!0),e.showAdminEntry?(q(),J(`span`,{key:3,class:`tk-icon __comments`,onClick:de},[X(rf,{name:`cog`})])):Q(`v-if`,!0)])]),Ys(Y(`div`,Kp,[X(Of,{ref_key:`searchInputRef`,ref:ee,modelValue:m.value,"onUpdate:modelValue":n[3]||=e=>m.value=e,size:`small`,clearable:``,maxlength:100,placeholder:G(D)(`COMMENTS_SEARCH_PLACEHOLDER`),onClear:T,onKeyup:Jd(w,[`enter`])},null,8,[`modelValue`,`placeholder`]),X(Bf,{size:`small`,type:`primary`,onClick:w},{default:K(()=>[Z(V(G(D)(`COMMENTS_SEARCH`)),1)]),_:1})],512),[[ld,_.value]]),Q(` 评论区唯一错误卡片:列表/提交/回复失败共用,位于空态块上方 `),a.value?(q(),mu(zp,{key:0,error:a.value},null,8,[`error`])):Q(`v-if`,!0),!s.value.length&&!r.value&&!a.value?(q(),J(`div`,qp,[g.value?(q(),J(`span`,Jp,V(G(D)(`COMMENTS_SEARCH_NO_RESULT`)),1)):Q(`v-if`,!0),g.value?Q(`v-if`,!0):(q(),J(`span`,Yp,V(G(D)(`COMMENTS_NO_COMMENTS`)),1))])):Q(`v-if`,!0),(q(!0),J(iu,null,Bc(s.value,e=>(q(),mu(kp,{key:e.id,comment:e,replying:u.value===e.id,config:o.value,onReply:ue,onLoad:re,onError:le},null,8,[`comment`,`replying`,`config`]))),128)),c.value&&!r.value&&!a.value?(q(),J(`div`,Xp,[Ys((q(),J(`div`,{class:`tk-expand`,onClick:E},[Z(V(G(D)(`COMMENTS_EXPAND`)),1)])),[[G(_i),i.value]])])):Q(`v-if`,!0)])),[[G(_i),r.value]])]))}}),Qp={class:`tk-footer`},$p=dc({__name:`TkFooter`,setup(e){let t=u;return(e,n)=>(q(),J(`div`,Qp,[n[0]||=Z(` Powered by `,-1),n[1]||=Y(`a`,{href:`https://twikoo.js.org`,target:`_blank`,rel:`noopener noreferrer`},`Twikoo`,-1),Z(` v`+V(G(t)),1)]))}}),em={class:`tk-pagination`},tm={key:0,class:`tk-pagination-options`},nm={class:`tk-pagination-pagers`},rm=[`onClick`],im={key:1,class:`tk-pagination-options`},am=dc({__name:`TkPagination`,props:{pageSize:{default:10},total:{default:0}},emits:[`current-change`,`page-size-change`],setup(e,{emit:t}){let n=e,r=t,i=W(1),a=W(0),o=W(0),s=W([]),c=$(()=>Math.ceil(n.total/n.pageSize));function l(){let e=[];for(let t=1;t<=c.value;t++)Math.abs(i.value-t)<3||t===1||t===c.value?e.push({title:`${t}`,page:t}):Math.abs(i.value-t)<4&&e.push({title:`...`,page:t});s.value=e}function u(e){i.value=parseInt(String(e),10)||1,i.value>c.value&&(i.value=c.value),i.value<1&&(i.value=1),a.value=0,r(`current-change`,i.value),l()}function d(e){o.value=0,r(`page-size-change`,parseInt(String(e),10))}function f(e){a.value=parseInt(String(e),10)}function p(e){o.value=parseInt(String(e),10)}function m(){l()}return tc(()=>n.total,m,{immediate:!0}),tc(()=>n.pageSize,m),(t,n)=>(q(),J(`div`,em,[c.value?(q(),J(`div`,tm,[Y(`div`,null,[Y(`span`,null,V(G(D)(`PAGINATION_COUNT_PREFIX`)),1),Y(`span`,null,V(e.total),1),Y(`span`,null,V(G(D)(`PAGINATION_COUNT_SUFFIX`)),1)]),X(Of,{class:`tk-pagination-size`,type:`number`,min:1,max:100,"model-value":o.value?o.value:e.pageSize,onInput:p,onChange:d},null,8,[`model-value`]),Y(`span`,null,V(G(D)(`PAGINATION_PAGESIZE`)),1)])):Q(`v-if`,!0),Y(`div`,nm,[(q(!0),J(iu,null,Bc(s.value,e=>(q(),J(`div`,{key:e.page,class:ja([`tk-pagination-pager`,{__current:e.page===i.value}]),onClick:t=>u(e.page)},V(e.title),11,rm))),128))]),c.value?(q(),J(`div`,im,[Y(`span`,null,V(G(D)(`PAGINATION_GOTO_PREFIX`)),1),X(Of,{class:`tk-pagination-goto`,type:`number`,min:1,max:c.value,"model-value":a.value?a.value:i.value,onInput:f,onChange:u},null,8,[`max`,`model-value`]),Y(`span`,null,V(G(D)(`PAGINATION_GOTO_SUFFIX`)),1)])):Q(`v-if`,!0)]))}}),om={class:`tk-admin-comment`},sm={key:0,class:`tk-admin-warn`},cm={class:`tk-admin-comment-filter`},lm={value:``},um={value:`VISIBLE`},dm={value:`HIDDEN`},fm={class:`tk-admin-comment-meta`},pm={key:0},mm=[`href`],hm={key:2},gm=[`href`],_m={key:3},vm={class:`tk-time`},ym=[`title`],bm=[`innerHTML`],xm={key:0,class:`tk-admin-warn tk-admin-security-alert`},Sm={class:`tk-admin-security-alert-message`},Cm={key:0,class:`tk-admin-security-alert-url`},wm={class:`tk-admin-actions`},Tm=5,Em=dc({__name:`TkAdminComment`,setup(e){let t=ep().VERSION,n=W(!0),r=W([]),i=ns({}),a=W(typeof t==`string`?t:``),o=u,s=W(0),c=W(Tm),l=W(1),d=ns({keyword:``,type:``}),f=W(null),p=W();function m(e){return Ei(e.created)}async function g(){n.value=!0;let e=await v(h().tcb,`COMMENT_GET_FOR_ADMIN`,{per:c.value,page:l.value,keyword:d.keyword,type:d.type}),t=e.result??e;t&&!t.code&&(s.value=t.count??0,r.value=(t.data??[]).map(e=>({...e,comment:Ot(e.comment)}))),setTimeout(()=>{te(p.value)},0),n.value=!1}async function _(){let e=await v(h().tcb,`GET_CONFIG_FOR_ADMIN`),t=e.result??e;t&&!t.code&&t.config&&(Object.assign(i,t.config),a.value=typeof t.config.VERSION==`string`?t.config.VERSION:``,y())}function y(){i.HIGHLIGHT||=`true`;let e={},t=localStorage.getItem(`twikoo`);if(t)try{e=JSON.parse(t)}catch{e={}}for(let t of[`nick`,`mail`,`avatar`])i[t]=e[t]??``;!e.nick&&i.BLOGGER_NICK&&(e.nick=String(i.BLOGGER_NICK)),!e.mail&&i.BLOGGER_EMAIL&&(e.mail=String(i.BLOGGER_EMAIL)),!e.link&&i.SITE_URL&&(e.link=String(i.SITE_URL)),localStorage.setItem(`twikoo`,JSON.stringify(e))}function b(e){c.value=e,g()}function ee(e){l.value=e,g()}function x(e){let t=`${e.url??``}#${e.id}`;try{if(new URL(t).hostname!==window.location.hostname){f.value={commentId:e.id,message:D(`ADMIN_COMMENT_SECURITY_ALERT`),url:t};return}window.open(t)}catch{try{new URL(t,window.location.origin),window.open(t)}catch{f.value={commentId:e.id,message:D(`ADMIN_COMMENT_PARSE_ERROR`),url:e.url}}}}async function S(e){confirm(D(`ADMIN_COMMENT_DELETE_CONFIRM`))&&(n.value=!0,await v(h().tcb,`COMMENT_DELETE_FOR_ADMIN`,{id:e.id}),await g(),n.value=!1)}function C(e,t){T(e,{isSpam:t})}function w(e,t){T(e,{top:t})}async function T(e,t){n.value=!0,await v(h().tcb,`COMMENT_SET_FOR_ADMIN`,{id:e.id,set:t}),await g(),n.value=!1}function te(e){e&&(Vi(e),Hi(e,h().options.katex),i.HIGHLIGHT===`true`&&Ut(e,i.HIGHLIGHT_THEME,i.HIGHLIGHT_PLUGIN))}return Ec(async()=>{await Promise.all([_(),g()]),te(p.value)}),(e,t)=>Ys((q(),J(`div`,om,[G(o)===a.value?Q(`v-if`,!0):(q(),J(`div`,sm,[Y(`span`,null,V(G(D)(`ADMIN_CLIENT_VERSION`))+V(G(o))+`,`,1),Y(`span`,null,V(G(D)(`ADMIN_SERVER_VERSION`))+V(a.value)+`,`,1),Q(`
|
|
76
76
|
用 prettier-ignore 保持单行:这一段的换行/缩进空白会被 Vue 3 的 condense 折叠成
|
|
77
77
|
一个空格(Vue 2 保留、HTML 同样折叠),与两侧的 叠加后会让「版本更新」
|
|
78
78
|
链接左右各宽约一个空格,而 1.x 只有 。所以必须让 与 <a> 紧贴。
|