1 line
7.3 KiB
JavaScript
1 line
7.3 KiB
JavaScript
document.addEventListener("DOMContentLoaded",()=>{class t 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`<object style="display: block;margin: 0 auto;" width="${this.options.width}" height="450px" data="//music.163.com/outchain/player?type=0&id=${this.options.id}&auto=${this.options.autoplay}&height=430"></object>`}render(){this.options.id?this.innerHTML=this.template:this.innerHTML="网易云歌单ID未填写!"}}window.customElements.define("joe-mlist",t);class e 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`<object style="display: block;margin: 0 auto;" width="${this.options.width}" height="86px" data="//music.163.com/outchain/player?type=2&id=${this.options.id}&auto=${this.options.autoplay}&height=66"></object>`}render(){this.options.id?this.innerHTML=this.template:this.innerHTML="网易云歌单ID未填写!"}}window.customElements.define("joe-music",e);class i extends HTMLElement{constructor(){super(),this.options={bvid:this.getAttribute("bvid")},this.render()}get template(){return`<object class="joe_detail__article-player" data="//player.bilibili.com/player.html?bvid=${this.options.bvid}"></object>`}render(){this.options.bvid?this.innerHTML=this.template:this.innerHTML="Bvid未填写!"}}window.customElements.define("joe-bilibili",i);class n 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.innerHTML.trim().replace(/^(<br>)|(<br>)$/g,"")||"标签按钮"},this.render()}get template(){return`\n <a class="joe_detail__article-anote ${this.options.type}" href="${this.options.href}" target="_blank" rel="noopener noreferrer nofollow">\n <span class="icon"><i class="fa ${this.options.icon}"></i></span><span class="content">${this.options.content}</span>\n </a>\n `}render(){this.innerHTML=this.template}}window.customElements.define("joe-anote",n);class s 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.innerHTML.trim().replace(/^(<br>)|(<br>)$/g,"")||"多彩按钮"},this.render()}get template(){return`\n <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 <span class="icon"><i class="${this.options.icon} fa"></i></span><span class="content">${this.options.content}</span>\n </a>\n `}render(){this.innerHTML=this.template}}window.customElements.define("joe-abtn",s);class o extends HTMLElement{constructor(){super(),this.options={src:this.getAttribute("src"),player:this.getAttribute("player")},this.render()}get template(){return`\n <iframe class="joe_detail__article-player" allowfullscreen="true" src="${this.options.player+this.options.src}"></iframe>\n `}render(){this.options.src?this.innerHTML=this.template:this.innerHTML="播放地址未填写!"}}window.customElements.define("joe-dplayer",o);class r extends HTMLElement{constructor(){super(),this.options={content:this.innerHTML.trim().replace(/^(<br>)|(<br>)$/g,"")||"居中标题"},this.render()}get template(){return`\n <div class="joe_detail__article-mtitle">\n <span class="text">${this.options.content}</span> \n </div>\n `}render(){this.innerHTML=this.template}}window.customElements.define("joe-mtitle",r);class a 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",a);class l 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",l);class c 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",c);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 d 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",d)}); |