1 line
7.3 KiB
JavaScript
1 line
7.3 KiB
JavaScript
document.addEventListener("DOMContentLoaded",()=>{class t extends HTMLElement{constructor(){super(),this.innerHTML=`\n\t\t\t\t<div class="joe_detail__article-mtitle">\n\t\t\t\t\t<span class="text">\n\t\t\t\t\t\t${this.getAttribute("title")||"默认标题"}\n\t\t\t\t\t</span>\n\t\t\t\t</div>`}}window.customElements.define("joe-mtitle",t);class e extends HTMLElement{constructor(){super(),this.options={src:this.getAttribute("src"),player:this.getAttribute("player")},this.render()}render(){this.options.src?this.innerHTML=`<iframe allowfullscreen="true" class="joe_detail__article-player" src="${this.options.player+this.options.src}"></iframe>`:this.innerHTML="播放地址未填写!"}}window.customElements.define("joe-dplayer",e);class i extends HTMLElement{constructor(){super(),this.bvid=this.getAttribute("bvid"),this.render()}render(){this.bvid?this.innerHTML=`<iframe allowfullscreen="true" class="joe_detail__article-player" src="//player.bilibili.com/player.html?bvid=${this.bvid}"></iframe>`:this.innerHTML="Bvid未填写!"}}window.customElements.define("joe-bilibili",i);class s extends HTMLElement{constructor(){super(),this.options={id:this.getAttribute("id"),width:this.getAttribute("width")||"100%",autoplay:this.getAttribute("autoplay")?1:0},this.render()}render(){this.options.id?this.innerHTML=`<iframe style="display: block; margin: 0 auto; border: 0;" width="${this.options.width}" height="86px" src="//music.163.com/outchain/player?type=2&id=${this.options.id}&auto=${this.options.autoplay}&height=66"></iframe>`:this.innerHTML="网易云歌曲ID未填写!"}}window.customElements.define("joe-music",s);class n extends HTMLElement{constructor(){super(),this.options={id:this.getAttribute("id"),width:this.getAttribute("width")||"100%",autoplay:this.getAttribute("autoplay")?1:0},this.render()}get template(){return`<iframe style="display: block; margin: 0 auto; border: 0;" width="${this.options.width}" height="450px" src="//music.163.com/outchain/player?type=0&id=${this.options.id}&auto=${this.options.autoplay}&height=430"></iframe>`}render(){this.options.id?this.innerHTML=this.template:this.innerHTML="网易云歌单ID未填写!"}}window.customElements.define("joe-mlist",n);class o extends HTMLElement{constructor(){super(),this.options={icon:this.getAttribute("icon")||"",color:this.getAttribute("color")||"#ff6800",href:this.getAttribute("href")||"#",radius:this.getAttribute("radius")||"17.5px",content:this.getAttribute("content")||"多彩按钮"},this.innerHTML=`\n\t\t\t\t<a class="joe_detail__article-abtn" style="background: ${this.options.color}; border-radius: ${this.options.radius}" href="${this.options.href}" target="_blank" rel="noopener noreferrer nofollow">\n\t\t\t\t\t<span class="icon"><i class="${this.options.icon} fa"></i></span><span class="content">${this.options.content}</span>\n\t\t\t\t</a>\n\t\t\t`}}window.customElements.define("joe-abtn",o);class r extends HTMLElement{constructor(){super(),this.options={icon:this.getAttribute("icon")||"fa-download",href:this.getAttribute("href")||"#",type:/^secondary$|^success$|^warning$|^error$|^info$/.test(this.getAttribute("type"))?this.getAttribute("type"):"secondary",content:this.getAttribute("content")||"标签按钮"},this.innerHTML=`\n\t\t\t\t<a class="joe_detail__article-anote ${this.options.type}" href="${this.options.href}" target="_blank" rel="noopener noreferrer nofollow">\n\t\t\t\t\t<span class="icon"><i class="fa ${this.options.icon}"></i></span><span class="content">${this.options.content}</span>\n\t\t\t\t</a>\n\t\t\t`}}window.customElements.define("joe-anote",r);class a extends HTMLElement{constructor(){super(),this.startColor=this.getAttribute("startColor")||"#ff6c6c",this.endColor=this.getAttribute("endColor")||"#1989fa",this.innerHTML=`\n\t\t\t\t<div class="joe_detail__article-dotted" style="background-image: repeating-linear-gradient(-45deg, ${this.startColor} 0, ${this.startColor} 20%, transparent 0, transparent 25%, ${this.endColor} 0, ${this.endColor} 45%, transparent 0, transparent 50%)"></div>\n\t\t\t`}}window.customElements.define("joe-dotted",a);class l extends HTMLElement{constructor(){super(),this.options={text:this.getAttribute("text")||"默认文本",content:this.innerHTML.trim().replace(/^(<br>)|(<br>)$/g,"")||"点击复制"},this.render()}get template(){return`<span class="joe_detail__article-copy">${this.options.content}</span>`}render(){this.innerHTML=this.template,this.event()}event(){this.$copy=this.querySelector(".joe_detail__article-copy"),new ClipboardJS(this.$copy,{text:()=>this.options.text}).on("success",()=>Qmsg.success("复制成功!"))}}window.customElements.define("joe-copy",l);class c extends HTMLElement{constructor(){super(),this.options={type:/^success$|^info$|^warning$|^error$/.test(this.getAttribute("type"))?this.getAttribute("type"):"info",content:this.innerHTML.trim().replace(/^(<br>)|(<br>)$/g,"")||"提示内容"},this.render()}get template(){return`\n\t\t\t\t<div class="joe_detail__article-message ${this.options.type}">\n\t\t\t\t\t<div class="icon"></div>\n\t\t\t\t\t<div class="content">${this.options.content}</div>\n\t\t\t\t</div>\n\t\t\t`}render(){this.innerHTML=this.template}}window.customElements.define("joe-message",c);class d extends HTMLElement{constructor(){super(),this.options={width:this.getAttribute("width")||"100%",label:this.getAttribute("label")||"默认标题",content:this.innerHTML.trim().replace(/^(<br>)|(<br>)$/g,"")||"默认内容"},this.render()}get template(){return`\n <div class="joe_detail__article-card" style="width: ${this.options.width}">\n <div class="title">${this.options.label}</div>\n <div class="content">${this.options.content}</div>\n </div>\n `}render(){this.innerHTML=this.template}}window.customElements.define("joe-card",d);class h extends HTMLElement{constructor(){super(),this.options={content:this.innerHTML.trim().replace(/^(<br>)|(<br>)$/g,"")||"默认隐藏的内容"},this.render()}render(){this.innerHTML=this.options.content}}window.customElements.define("joe-show",h);class p extends HTMLElement{constructor(){super(),this.render()}get template(){return'\n <style>\n .container {\n background: repeating-linear-gradient(145deg, var(--classD), var(--classD) 15px, var(--background) 0, var(--background) 25px);\n padding: 15px 0;\n text-align: center;\n position: relative;\n user-select: none;\n line-height: normal;\n }\n .container i {\n position: relative;\n font-style: normal;\n cursor: pointer;\n color: var(--theme);\n }\n </style>\n <div class="container">\n 此处内容作者设置了 <i>回复</i> 可见\n </div>\n '}render(){this.innerHTML="",this._shadowRoot=this.attachShadow({mode:"closed"}),this._shadowRoot.innerHTML=this.template,this.event()}event(){this.$button=this._shadowRoot.querySelector("i"),this.$button.addEventListener("click",()=>{const t=$(".joe_comment").offset().top-$(".joe_header").height()-15;window.scrollTo({top:t,behavior:"smooth"})})}}window.customElements.define("joe-hide",p)}); |