1 line
8.2 KiB
JavaScript
1 line
8.2 KiB
JavaScript
document.addEventListener("DOMContentLoaded",()=>{$(".joe_detail__article p:empty").remove();class t extends HTMLElement{constructor(){super(),this.innerHTML=`\n\t\t\t\t<span 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</span>`}}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 s 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",s);class n extends HTMLElement{constructor(){super(),this.options={name:this.getAttribute("name"),url:this.getAttribute("url"),theme:this.getAttribute("theme")||"#1989fa",cover:this.getAttribute("cover"),autoplay:!!this.getAttribute("autoplay")},this.render()}render(){if(!this.options.url)return this.innerHTML="音频地址未填写!";this.innerHTML='<span style="display: block"></span>',new APlayer({container:this.querySelector("span"),theme:this.options.theme,autoplay:this.options.autoplay,audio:[{url:this.options.url,name:this.options.name,cover:this.options.cover}]})}}window.customElements.define("joe-mp3",n);class i extends HTMLElement{constructor(){super(),this.options={id:this.getAttribute("id"),color:this.getAttribute("color")||"#1989fa",autoplay:!!this.getAttribute("autoplay")},this.render()}render(){if(!this.options.id)return this.innerHTML="网易云歌曲ID未填写!";this.innerHTML='<span style="display: block"></span>',fetch("https://api.i-meto.com/meting/api?server=netease&type=song&id="+this.options.id).then(async t=>{const e=await t.json();new APlayer({container:this.querySelector("span"),lrcType:3,theme:this.options.color,autoplay:this.options.autoplay,audio:e})})}}window.customElements.define("joe-music",i);class o extends HTMLElement{constructor(){super(),this.options={id:this.getAttribute("id"),color:this.getAttribute("color")||"#1989fa",autoplay:!!this.getAttribute("autoplay")},this.render()}render(){if(!this.options.id)return this.innerHTML="网易云歌单ID未填写!";this.innerHTML='<span style="display: block"></span>',fetch("https://api.i-meto.com/meting/api?server=netease&type=playlist&id="+this.options.id).then(async t=>{const e=await t.json();new APlayer({container:this.querySelector("span"),lrcType:3,theme:this.options.color,autoplay:this.options.autoplay,audio:e})})}}window.customElements.define("joe-mlist",o);class r 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",r);class a 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",a);class c extends HTMLElement{constructor(){super(),this.startColor=this.getAttribute("startColor")||"#ff6c6c",this.endColor=this.getAttribute("endColor")||"#1989fa",this.innerHTML=`\n\t\t\t\t<span 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%)"></span>\n\t\t\t`}}window.customElements.define("joe-dotted",c);class l extends HTMLElement{constructor(){super(),this.render()}render(){this.innerHTML='<span class="joe_detail__article-hide">此处内容作者设置了 <i>回复</i> 可见</span>',this.$button=this.querySelector("i");const t=document.querySelector(".joe_comment"),e=document.querySelector(".joe_header");t&&e&&this.$button.addEventListener("click",()=>{const s=t.offsetTop-e.offsetHeight-15;window.scrollTo({top:s,behavior:"smooth"})})}}window.customElements.define("joe-hide",l);class p extends HTMLElement{constructor(){super();const t=this.querySelector("._temp");this.options={width:this.getAttribute("width")||"100%",label:this.getAttribute("label")||"卡片标题",content:t.innerHTML.trim().replace(/^(<br>)|(<br>)$/g,"")||"卡片内容"};const e=`\n\t\t\t\t<span class="joe_detail__article-card_default" style="width: ${this.options.width}">\n\t\t\t\t\t<span class="title">${this.options.label}</span>\n\t\t\t\t\t<span class="content">${this.options.content}</span>\n\t\t\t\t</span>\n\t\t\t`;if(this.querySelector("._content"))this.querySelector("._content").innerHTML=e;else{const t=document.createElement("div");t.className="_content",t.innerHTML=e,this.appendChild(t)}}}window.customElements.define("joe-card-default",p);class h extends HTMLElement{constructor(){super(),this.options={type:/^success$|^info$|^warning$|^error$/.test(this.getAttribute("type"))?this.getAttribute("type"):"info",content:this.getAttribute("content")||"消息内容"},this.innerHTML=`\n\t\t\t\t<span class="joe_detail__article-message ${this.options.type}">\n\t\t\t\t\t<span class="icon"></span>\n\t\t\t\t\t<span class="content">${this.options.content}</span>\n\t\t\t\t</span>\n\t\t\t`}}window.customElements.define("joe-message",h);class d extends HTMLElement{constructor(){super(),this.options={percentage:/^\d{1,3}%$/.test(this.getAttribute("percentage"))?this.getAttribute("percentage"):"50%",color:this.getAttribute("color")||"#ff6c6c"},this.innerHTML=`\n\t\t\t\t<span class="joe_detail__article-progress">\n\t\t\t\t\t<span class="strip">\n\t\t\t\t\t\t<span class="percent" style="width: ${this.options.percentage}; background: ${this.options.color};"></span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class="percentage">${this.options.percentage}</span>\n\t\t\t\t</span>\n\t\t\t`}}window.customElements.define("joe-progress",d);class u extends HTMLElement{constructor(){super();const t=this.querySelector("._temp");this.options={color:this.getAttribute("color")||"#f0ad4e",content:t.innerHTML.trim().replace(/^(<br>)|(<br>)$/g,"")||"标注内容"};const e=`\n\t\t\t\t<span class="joe_detail__article-callout" style="border-left-color: ${this.options.color};">\n\t\t\t\t\t${this.options.content}\n\t\t\t\t</span>\n\t\t\t`;if(this.querySelector("._content"))this.querySelector("._content").innerHTML=e;else{const t=document.createElement("div");t.className="_content",t.innerHTML=e,this.appendChild(t)}}}window.customElements.define("joe-callout",u);class m 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",m)}); |