!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports["live/badge-helper"]=n():e["live/badge-helper"]=n()}(self,(function(){return function(){var e,n,t={930:function(e,n,t){"use strict";t.d(n,{j9:function(){return c},Dx:function(){return d},KK:function(){return s},eB:function(){return p}});var o=t(663),l=t(109),a=coreApis.utils.log;function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class r{constructor(e=!1,n=0){this.isActive=e,this.id=n}static parseJson(e,n){const t=JSON.parse(e);return 0!==t.code?((0,a.logError)(`${n.errorMessage} 错误码:${t.code} ${t.message||""}`),n.errorAction(t)):n.successAction(t)}}class c extends r{constructor(e){const{medal:{medal_id:n,level:t,medal_name:o,wearing_status:l,is_lighted:a},anchor_info:{nick_name:r},room_info:{room_id:c}}=e;super(1===l,n),i(this,"level",void 0),i(this,"name",void 0),i(this,"upName",void 0),i(this,"roomID",void 0),i(this,"isLighted",void 0),this.level=t,this.name=o,this.upName=r,this.roomID=c,this.isLighted=a}async activate(){return r.parseJson(await(0,o.postTextWithCredentials)("https://api.live.bilibili.com/xlive/web-room/v1/fansMedal/wear",(0,l.formData)({medal_id:this.id,csrf_token:(0,l.getCsrf)(),csrf:(0,l.getCsrf)()})),{successAction:()=>(this.isActive=!0,!0),errorAction:()=>!1,errorMessage:"佩戴勋章失败."})}async deactivate(){return r.parseJson(await(0,o.postTextWithCredentials)("https://api.live.bilibili.com/xlive/web-room/v1/fansMedal/take_off",(0,l.formData)({csrf_token:(0,l.getCsrf)(),csrf:(0,l.getCsrf)()})),{successAction:()=>(this.isActive=!1,!0),errorAction:()=>!1,errorMessage:"卸下勋章失败."})}}const s=async()=>{const{getTextWithCredentials:e}=await Promise.resolve().then(t.t.bind(t,663,23));return r.parseJson(await e(`https://api.live.bilibili.com/xlive/app-ucenter/v1/fansMedal/panel?page=1&page_size=256&target_id=${(0,l.getUID)()}`),{successAction:e=>(e.data.list??[]).concat(e.data.special_list??[]).map((e=>new c(e))),errorAction:()=>[],errorMessage:"无法获取勋章列表."})};class d extends r{constructor(e){const{id:n,cid:t,wear:o,css:l,name:a,source:r}=e;super(o,l),i(this,"tid",void 0),i(this,"cid",void 0),i(this,"name",void 0),i(this,"source",void 0),i(this,"imageUrl",void 0),this.tid=n,this.cid=t,this.name=a,this.source=r,d.getImageMap().then((e=>{this.imageUrl=e[this.id]}))}static async getImageMap(){if(void 0===d.imageMap){const{getTextWithCredentials:e}=await Promise.resolve().then(t.t.bind(t,663,23));return r.parseJson(await e("https://api.live.bilibili.com/rc/v1/Title/webTitles"),{successAction:e=>(d.imageMap={},e.data.forEach((e=>{d.imageMap[e.identification]=e.web_pic_url})),d.imageMap),errorAction:()=>({}),errorMessage:"获取头衔图片失败."})}return d.imageMap}async activate(){return r.parseJson(await(0,o.postTextWithCredentials)("https://api.live.bilibili.com/i/ajaxWearTitle",`id=${this.tid}&cid=${this.cid}&csrf=${(0,l.getCsrf)()}&csrf_token=${(0,l.getCsrf)()}`),{successAction:()=>(this.isActive=!0,!0),errorAction:()=>!1,errorMessage:"佩戴头衔失败."})}async deactivate(){return r.parseJson(await(0,o.postTextWithCredentials)("https://api.live.bilibili.com/i/ajaxCancelWearTitle",`csrf=${(0,l.getCsrf)()}&csrf_token=${(0,l.getCsrf)()}`),{successAction:()=>(this.isActive=!1,!0),errorAction:()=>!1,errorMessage:"卸下头衔失败."})}}i(d,"imageMap",void 0);const p=async()=>{const{getTextWithCredentials:e}=await Promise.resolve().then(t.t.bind(t,663,23));return r.parseJson(await e("https://api.live.bilibili.com/i/api/ajaxTitleInfo?page=1&pageSize=256&had=1"),{successAction:e=>lodash.get(e,"data.list",[]).map((e=>new d(e))),errorAction:()=>[],errorMessage:"无法获取头衔列表."})}},256:function(e,n,t){var o=t(645)((function(e){return e[1]}));o.push([e.id,".badge-popup {\n top: 50%;\n left: calc(100% + 8px);\n transform: scale(0.9) translateY(-50%);\n transform-origin: left;\n padding: 4px;\n max-height: calc(100vh - 150px);\n background-color: #fff;\n color: black;\n border-radius: 8px;\n box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.05);\n border: 1px solid rgba(136,136,136,0.13333);\n box-sizing: border-box;\n border-radius: 4px;\n}\nbody.dark .badge-popup {\n background-color: #282828;\n color: #eee;\n box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.2);\n}\n.badge-popup.open {\n transform: scale(1) translateY(-50%);\n}\nbody.settings-panel-dock-right .badge-popup {\n right: calc(100% + 8px);\n left: unset;\n transform-origin: right;\n}\n.badge-popup, .badge-popup * {\n transition: 0.2s ease-out;\n}\n.badge-popup ul {\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n}\n.badge-popup ul li {\n border-radius: 4px;\n cursor: pointer;\n padding: 6px 8px;\n display: flex;\n justify-content: center;\n}\n.badge-popup ul li:hover {\n background-color: rgba(136,136,136,0.13333);\n}\n.badge-popup ul li.active {\n box-shadow: 0 0 0px 1px var(--theme-color), 0 0 0px 3px var(--theme-color-20);\n}\n.badge-popup ul li.gray:not(:hover) {\n filter: grayscale(1);\n}\n.badge-popup ul li .title-image {\n display: inline-block;\n vertical-align: middle;\n height: 20px;\n}\n.badge-popup ul li .fans-medal-item {\n display: flex !important;\n height: 14px;\n line-height: 14px;\n color: #fff;\n border: 1px solid #f6be18;\n background-color: #f6be18;\n border-left: 0;\n white-space: nowrap;\n border-radius: 2px;\n flex-shrink: 0;\n font-size: 12px;\n}\n.badge-popup ul li .fans-medal-item .label {\n width: 40px;\n text-align: center;\n padding: 0 2px;\n color: #fff;\n border-radius: 1px 0 0 1px;\n background-color: #f6be18;\n}\n.badge-popup ul li .fans-medal-item .level {\n width: 16px;\n background-color: #fff;\n text-align: center;\n color: #f6be18;\n border-radius: 0 1px 1px 0;\n}\n.badge-popup ul li .fans-medal-item .label,\n.badge-popup ul li .fans-medal-item .level {\n cursor: pointer;\n position: relative;\n display: block;\n float: left;\n}\n.badge-popup ul li .level-1 {\n border-color: #48b6a5;\n background-color: #48b6a5;\n}\n.badge-popup ul li .level-1 .label {\n background-color: #48b6a5;\n}\n.badge-popup ul li .level-1 .level {\n color: #48b6a5;\n}\n.badge-popup ul li .level-2 {\n border-color: #48b6a5;\n background-color: #48b6a5;\n}\n.badge-popup ul li .level-2 .label {\n background-color: #48b6a5;\n}\n.badge-popup ul li .level-2 .level {\n color: #48b6a5;\n}\n.badge-popup ul li .level-3 {\n border-color: #48b6a5;\n background-color: #48b6a5;\n}\n.badge-popup ul li .level-3 .label {\n background-color: #48b6a5;\n}\n.badge-popup ul li .level-3 .level {\n color: #48b6a5;\n}\n.badge-popup ul li .level-4 {\n border-color: #48b6a5;\n background-color: #48b6a5;\n}\n.badge-popup ul li .level-4 .label {\n background-color: #48b6a5;\n}\n.badge-popup ul li .level-4 .level {\n color: #48b6a5;\n}\n.badge-popup ul li .level-5 {\n border-color: #5896de;\n background-color: #5896de;\n}\n.badge-popup ul li .level-5 .label {\n background-color: #5896de;\n}\n.badge-popup ul li .level-5 .level {\n color: #5896de;\n}\n.badge-popup ul li .level-6 {\n border-color: #5896de;\n background-color: #5896de;\n}\n.badge-popup ul li .level-6 .label {\n background-color: #5896de;\n}\n.badge-popup ul li .level-6 .level {\n color: #5896de;\n}\n.badge-popup ul li .level-7 {\n border-color: #5896de;\n background-color: #5896de;\n}\n.badge-popup ul li .level-7 .label {\n background-color: #5896de;\n}\n.badge-popup ul li .level-7 .level {\n color: #5896de;\n}\n.badge-popup ul li .level-8 {\n border-color: #5896de;\n background-color: #5896de;\n}\n.badge-popup ul li .level-8 .label {\n background-color: #5896de;\n}\n.badge-popup ul li .level-8 .level {\n color: #5896de;\n}\n.badge-popup ul li .level-9 {\n border-color: #a068f1;\n background-color: #a068f1;\n}\n.badge-popup ul li .level-9 .label {\n background-color: #a068f1;\n}\n.badge-popup ul li .level-9 .level {\n color: #a068f1;\n}\n.badge-popup ul li .level-10 {\n border-color: #a068f1;\n background-color: #a068f1;\n}\n.badge-popup ul li .level-10 .label {\n background-color: #a068f1;\n}\n.badge-popup ul li .level-10 .level {\n color: #a068f1;\n}\n.badge-popup ul li .level-11 {\n border-color: #a068f1;\n background-color: #a068f1;\n}\n.badge-popup ul li .level-11 .label {\n background-color: #a068f1;\n}\n.badge-popup ul li .level-11 .level {\n color: #a068f1;\n}\n.badge-popup ul li .level-12 {\n border-color: #a068f1;\n background-color: #a068f1;\n}\n.badge-popup ul li .level-12 .label {\n background-color: #a068f1;\n}\n.badge-popup ul li .level-12 .level {\n color: #a068f1;\n}\n.badge-popup ul li .level-13 {\n border-color: #ff86b2;\n background-color: #ff86b2;\n}\n.badge-popup ul li .level-13 .label {\n background-color: #ff86b2;\n}\n.badge-popup ul li .level-13 .level {\n color: #ff86b2;\n}\n.badge-popup ul li .level-14 {\n border-color: #ff86b2;\n background-color: #ff86b2;\n}\n.badge-popup ul li .level-14 .label {\n background-color: #ff86b2;\n}\n.badge-popup ul li .level-14 .level {\n color: #ff86b2;\n}\n.badge-popup ul li .level-15 {\n border-color: #ff86b2;\n background-color: #ff86b2;\n}\n.badge-popup ul li .level-15 .label {\n background-color: #ff86b2;\n}\n.badge-popup ul li .level-15 .level {\n color: #ff86b2;\n}\n.badge-popup ul li .level-16 {\n border-color: #ff86b2;\n background-color: #ff86b2;\n}\n.badge-popup ul li .level-16 .label {\n background-color: #ff86b2;\n}\n.badge-popup ul li .level-16 .level {\n color: #ff86b2;\n}\n.badge-popup ul li .level-17 {\n border-color: #f6be18;\n background-color: #f6be18;\n}\n.badge-popup ul li .level-17 .label {\n background-color: #f6be18;\n}\n.badge-popup ul li .level-17 .level {\n color: #f6be18;\n}\n.badge-popup ul li .level-18 {\n border-color: #f6be18;\n background-color: #f6be18;\n}\n.badge-popup ul li .level-18 .label {\n background-color: #f6be18;\n}\n.badge-popup ul li .level-18 .level {\n color: #f6be18;\n}\n.badge-popup ul li .level-19 {\n border-color: #f6be18;\n background-color: #f6be18;\n}\n.badge-popup ul li .level-19 .label {\n background-color: #f6be18;\n}\n.badge-popup ul li .level-19 .level {\n color: #f6be18;\n}\n.badge-popup ul li .level-20 {\n border-color: #f6be18;\n background-color: #f6be18;\n}\n.badge-popup ul li .level-20 .label {\n background-color: #f6be18;\n}\n.badge-popup ul li .level-20 .level {\n color: #f6be18;\n}\n.badge-popup.medal ul {\n grid-template-columns: repeat(2, 1fr);\n grid-template-columns: repeat(var(--medal-columns, 2), 1fr);\n}\n.badge-popup.title ul {\n grid-template-columns: repeat(2, 1fr);\n grid-template-columns: repeat(var(--title-columns, 2), 1fr);\n}",""]),e.exports=o},645:function(e){"use strict"; // eslint-disable-next-line func-names e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t=e(n);return n[2]?"@media ".concat(n[2]," {").concat(t,"}"):t})).join("")}, // eslint-disable-next-line func-names n.i=function(e,t,o){"string"==typeof e&&( // eslint-disable-next-line no-param-reassign e=[[null,e,""]]);var l={};if(o)for(var a=0;a({medalList:[],titleList:[],medalOpen:!1,titleOpen:!1}),async mounted(){await(async()=>{const e=this.loadMedalList();await i.Dx.getImageMap();const n=this.loadTitleList();return Promise.all([e,n])})(),this.updateColumnsCount()},methods:{updateColumnsCount(){const e=this.$el,n=Math.min(Math.ceil(this.medalList.length/12),6);e.style.setProperty("--medal-columns",n.toString());const t=Math.min(Math.ceil(this.titleList.length/12),6);e.style.setProperty("--title-columns",t.toString())},async loadMedalList(){this.medalList=(await(0,i.KK)()).sort((0,l.descendingSort)((e=>e.level)))},async loadTitleList(){this.titleList=await(0,i.eB)()},async toggleBadge(e,n){if(console.log(e),e.isActive)e.isActive=!1,await e.deactivate();else{const o=n.find((e=>e.isActive));if(o&&(o.isActive=!1),e.isActive=!0,await e.activate(),e instanceof i.j9){const{getComponentSettings:n}=await Promise.resolve().then(t.t.bind(t,407,23));n("badgeHelper").options.defaultMedalID=e.id}}e instanceof i.j9?await this.loadMedalList():e instanceof i.Dx&&await this.loadTitleList()}}}),c=t(379),s=t.n(c),d=t(256),p=t.n(d),u={insert:"head",singleton:!1};s()(p(),u),p().locals;var b=function(e,n,t,o,l,a,i,r){var c,s="function"==typeof e?e.options:e;if(n&&(s.render=n,s.staticRenderFns=t,s._compiled=!0),o&&(s.functional=!0),a&&(s._scopeId="data-v-"+a),i?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),l&&l.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},s._ssrRegister=c):l&&(c=r?function(){l.call(this,(s.functional?this.parent:this).$root.$options.shadowRoot)}:l),c)if(s.functional){s._injectStyles=c;var d=s.render;s.render=function(e,n){return c.call(n),d(e,n)}}else{var p=s.beforeCreate;s.beforeCreate=p?[].concat(p,c):[c]}return{exports:e,options:s}}(r,o,[],!1,null,null,null);b.options.__file="registry/lib/components/live/badge-helper/BadgeHelper.vue";var f=b.exports},663:function(e){"use strict";e.exports=coreApis.ajax},407:function(e){"use strict";e.exports=coreApis.settings},109:function(e){"use strict";e.exports=coreApis.utils}},o={};function l(e){var n=o[e];if(void 0!==n)return n.exports;var a=o[e]={id:e,exports:{}};return t[e](a,a.exports,l),a.exports}l.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(n,{a:n}),n},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},l.t=function(t,o){if(1&o&&(t=this(t)),8&o)return t;if("object"==typeof t&&t){if(4&o&&t.__esModule)return t;if(16&o&&"function"==typeof t.then)return t}var a=Object.create(null);l.r(a);var i={};e=e||[null,n({}),n([]),n(n)];for(var r=2&o&&t;"object"==typeof r&&!~e.indexOf(r);r=n(r))Object.getOwnPropertyNames(r).forEach((function(e){i[e]=function(){return t[e]}}));return i.default=function(){return t},l.d(a,i),a},l.d=function(e,n){for(var t in n)l.o(n,t)&&!l.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},l.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return function(){"use strict";l.d(a,{component:function(){return t}});var e=l(109),n=l(930);const t={name:"badgeHelper",displayName:"直播勋章快速更换",description:{"zh-CN":"在直播区中, 可从功能面板中直接切换勋章和头衔."},entry:()=>(async()=>{const{getUID:e}=await Promise.resolve().then(l.t.bind(l,109,23));if(!e())return;const{getComponentSettings:t}=await Promise.resolve().then(l.t.bind(l,407,23)),{options:o}=t("badgeHelper");if(!o.autoMatchMedal)return;const a=document.URL.match(/^https:\/\/live\.bilibili\.com\/(blanc\/)?([\d]+)/);if(!a)return;const i=parseInt(a[2]);if(Number.isNaN(i))return void console.warn("roomID not found");const r=await(0,n.KK)();if(!o.defaultMedalID){const e=r.find((e=>e.isActive));e&&(o.defaultMedalID=e.id,console.log(`set defaultMedalID to activeMedal (${e.id})`))}const c=o.defaultMedalID?r.find((e=>e.id===o.defaultMedalID)):r.find((e=>e.isActive)),s=r.find((e=>e.roomID===i));s?(await s.activate(),console.log(`activated matchMedal (${s.id})`)):c&&(await c.activate(),console.log(`no matchMedal, fallback to defaultMedal (${c.id})`))})(),reload:e.none,unload:e.none,tags:[componentsTags.live],widget:{component:()=>Promise.resolve().then(l.bind(l,995)).then((e=>e.default)),condition:()=>Boolean((0,e.getUID)())},options:{autoMatchMedal:{defaultValue:!0,displayName:"自动佩戴当前直播间勋章"},defaultMedalID:{displayName:"默认勋章ID",hidden:!0,defaultValue:0}},urlInclude:["//live.bilibili.com"]}}(),a=a.component}()}));