// ==UserScript== // @name Kbin Subscriptions Panel // @namespace https://perry.dev // @license MIT // @version 2.0 // @description Adds a side panel with all magazine subscriptions. // @author Daniel Pervan // @match https://kbin.social/* // @icon https://www.google.com/s2/favicons?sz=64&domain=kbin.social // @downloadURL none // ==/UserScript== (function () { 'use strict'; (()=>{var y=(l,e)=>()=>(l&&(e=l(l=0)),e);var ne=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports);function J(l){if(typeof document<"u"){var e=document.createElement("style"),t=document.createTextNode(l);e.appendChild(t),document.head.appendChild(e)}}var j=y(()=>{});var W=y(()=>{j();J('body.extend-width:not(.subscription-panel-force-mobile) .kbin-container{max-width:1620px}.subscription-panel-modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:99;background-color:#00000080;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(2px)}.subscription-panel-modal-content{background-color:var(--kbin-section-bg);border:var(--kbin-options-border);color:var(--kbin-section-text-color);padding:2rem 1rem;height:fit-content;font-size:.8em;position:relative;max-width:600px;min-width:400px;width:100%;animation:modalopen .2s ease-in-out}.subscription-panel-modal-content h1,.subscription-panel-modal-content h2{margin-top:0;text-align:center}.subscription-panel-modal-content .close{color:#aaa;font-size:28px;cursor:pointer;position:absolute;top:.5rem;right:1rem}.subscription-panel-modal-content .close:hover{color:var(--kbin-sidebar-header-text-color)}body.rounded-edges .subscription-panel-modal-content{border-radius:.5rem}body.rounded-edges #subscription-panel-content{border-radius:0 0 .5rem .5rem}body.rounded-edges .subscription-panel-modal .danger{border-radius:.5rem}#subscription-panel .search-box-container{position:relative}#subscription-panel .search-box-clear{position:absolute;top:.6em;right:1em;font-size:1.5em;display:none;cursor:pointer;transition:color .2s ease-in-out;animation:searchBoxClearShow .25s ease-in-out}@keyframes searchBoxClearShow{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}#subscription-panel .search-box-clear:hover{color:var(--kbin-sidebar-header-text-color)}#subscription-panel .search-box-clear.active{display:block}#subscription-panel-edit-button{position:absolute;top:0;left:0;margin:.5rem;padding:.5rem;color:var(--kbin-section-text-color);font-size:.8em;cursor:pointer;transition:font-size .2s ease-in-out}#subscription-panel-edit-button i{transition:transform .2s ease-in-out}#subscription-panel-edit-button:not(.active):hover i{color:var(--kbin-sidebar-header-text-color);transform:rotate(-25deg)}#subscription-panel-edit-button.active{font-size:1.5em}#subscription-panel-edit-button.active:hover{color:var(--kbin-link-hover-color)}#subscription-panel-edit-button.active:hover i{transform:scale(1.2)}#subscription-panel-settings-button{position:absolute;top:0;right:0;margin:.5rem;padding:.5rem;color:var(--kbin-section-text-color);font-size:.8em;cursor:pointer;transition:transform .2s ease-in-out}#subscription-panel-settings-button:hover{color:var(--kbin-sidebar-header-text-color);transform:rotate(25deg)}#subscription-panel-settings-button:active{animation:settingsbuttonclick .5s ease-in-out}@keyframes settingsbuttonclick{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.subscription-panel-settings-modal-content{max-width:600px;min-width:400px}.subscription-panel-settings-modal-content ul{list-style:none;padding-inline:0}.subscription-panel-settings-modal-content ul li{margin-bottom:1rem}.subscription-panel-settings-modal-content ul li label{display:block;margin-bottom:.5rem}.subscription-panel-settings-modal-content ul li label.danger{background-color:RGBA(255,0,0,.1);border:1px solid RGBA(255,0,0,.5);padding:.5rem;color:var(--kbin-section-text-color);margin:2em 0}.subscription-panel-settings-modal-content ul li .description{font-size:.8em;font-weight:100;font-style:italic;opacity:.8}.subscription-panel-settings-modal-content ul li input[type=checkbox]{margin-right:.5rem}.subscription-panel-settings-modal-content ul li input[type=button]{margin-right:.5rem;padding:.5rem}.subscription-panel-settings-modal-content ul li input[type=button]:active{opacity:.8}.subscription-panel-settings-modal-content h2{margin-top:0}@keyframes modalopen{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}#subscription-panel-collapse-button{position:relative;display:inline-block;right:0;margin:.5rem;padding:.5rem;color:var(--kbin-section-text-color);font-size:.8em;cursor:pointer;transition:transform .2s ease-in-out}body.subscription-panel-collapsed #subscription-panel h3:hover #subscription-panel-collapse-button{transform:translate(2px)}#subscription-panel h3:hover #subscription-panel-collapse-button{color:var(--kbin-sidebar-header-text-color);transform:translate(-2px)}body:not(.subscription-panel-force-mobile) #middle>.kbin-container{grid-template-areas:"subscription-panel main sidebar";grid-template-columns:minmax(200px,1fr) 3fr 1fr}body.subscription-panel-collapsed:not(.subscription-panel-force-mobile) #middle>.kbin-container{grid-template-columns:minmax(100px,120px) 3fr 1fr}body.subscription-panel-collapsed.sidebar-left:not(.subscription-panel-force-mobile) #middle>.kbin-container{grid-template-columns:1fr 3fr minmax(100px,120px)}body.subscription-panel-collapsed #middle>.kbin-container #subscription-panel #subscription-panel-collapse-button{margin:0;padding:0 .5em}body.subscription-panel-collapsed #middle>.kbin-container #subscription-panel li{font-size:.8em}body.subscription-panel-collapsed #middle>.kbin-container #subscription-panel li.no-image{padding-left:1.8em}body.subscription-panel-collapsed #middle>.kbin-container #subscription-panel .search-box-container{display:none}body.subscription-panel-collapsed.subscription-panel-hide-on-collapse #middle>.kbin-container #subscription-panel ul{display:none}body.subscription-panel-collapsed.subscription-panel-hide-on-collapse #middle>.kbin-container .last-clicked-container{display:none}body:not(.subscription-panel-force-mobile) .sidebar-left #middle>.kbin-container{grid-template-areas:"sidebar main subscription-panel";grid-template-columns:1fr 3fr minmax(200px,1fr)}body.subscription-panel-collapsed:not(.subscription-panel-force-mobile) .sidebar-left #middle>.kbin-container{grid-template-columns:1fr 3fr minmax(100px,120px)}#subscription-panel-content{background-color:var(--kbin-section-bg);border:var(--kbin-options-border);color:var(--kbin-section-text-color);margin-bottom:.5rem;padding:2rem 1rem;height:fit-content;font-size:.8em;margin-right:.5rem;position:relative}#subscription-panel.edit-mode h3,#subscription-panel.edit-mode .last-clicked-container,#subscription-panel.edit-mode #subscription-panel-settings-button{display:none}#subscription-panel.edit-mode .search-box-container{margin-top:2em}#subscription-panel.edit-mode .group.open>ul{width:auto}#subscription-panel h3{border-bottom:var(--kbin-sidebar-header-border);color:var(--kbin-sidebar-header-text-color);font-size:.8rem;margin:0 0 1rem;text-transform:uppercase;width:100%}#subscription-panel .last-clicked-container{border-bottom:var(--kbin-sidebar-header-border)}#subscription-panel .last-clicked-container.hideItem{display:none}#subscription-panel .last-clicked-container h3{margin-top:1em}#subscription-panel ul{list-style:none;line-height:2.5em;padding-inline:0}#subscription-panel ul.fade-in,#subscription-panel ul li.fade-in{animation:showItem .5s ease-in-out}#subscription-panel ul li{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}#subscription-panel ul li.ignore:not(.edit-mode){display:none}#subscription-panel ul li.hideItem{animation:hideItem .25s ease-in-out;animation-fill-mode:forwards}#subscription-panel ul li .magazine{transition:transform .2s ease-in-out;display:inline-block}#subscription-panel ul li .tools .toolItem{display:inline-block;margin-right:.5rem;cursor:pointer;color:var(--kbin-link-color)}#subscription-panel ul li .tools .toolItem:hover{color:var(--kbin-link-hover-color)}#subscription-panel ul li.starred .toolItem.star{color:RGBA(255,215,0,1)}#subscription-panel ul li.starred .toolItem.star:hover{color:RGBA(255,215,0,.8)}#subscription-panel ul li.ignore .toolItem.ignore{color:var(--kbin-link-hover-color)}#subscription-panel ul li.ignore .toolItem.ignore:hover{opacity:.8}#subscription-panel ul li.edit-mode .magazine{transform:translate(3.5em)}#subscription-panel ul li.edit-mode.group .count{display:none}#subscription-panel ul li.edit-mode .tools{display:inline-block;animation:showTools .5s ease-in-out;position:absolute}@keyframes showTools{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}#subscription-panel ul li .tools{display:none}#subscription-panel ul li a img{height:1.4em;margin-right:.5em;border-radius:50%;vertical-align:middle}#subscription-panel ul li.no-image a.magazine{padding-left:1.9em}#subscription-panel ul li.group{font-weight:700}#subscription-panel ul li.group a.group-name .name{margin-left:.5em}#subscription-panel ul li.group a.group-name .count{margin-left:.25em;font-weight:400;opacity:.8}#subscription-panel ul li.group a.group-name .image{font-size:1.2em;vertical-align:middle;width:1.2em}#subscription-panel ul li.group ul{margin-left:.75em;padding-left:.75em;padding-right:.75em;border-left:var(--kbin-sidebar-header-border);border-bottom:var(--kbin-sidebar-header-border);width:fit-content;border-bottom-left-radius:.5rem;display:none}#subscription-panel ul li.group ul li{font-weight:400}#subscription-panel ul li.group.open ul{animation:openGroup .25s ease-in-out;display:block}#subscription-panel .instance-name{opacity:.8;font-weight:100}@keyframes openGroup{0%{transform:translateY(-.5em);opacity:0}to{transform:translateY(0);opacity:1}}#subscription-panel-spinner{text-align:center;font-size:2em}@keyframes showItem{0%{opacity:0}to{opacity:1}}@keyframes hideItem{0%{opacity:1;max-height:2.5em}to{opacity:0;max-height:0}}#header menu li a.subscription-panel-mobile-button{display:none}@keyframes showMobileSubscriptionPanelUL{0%{transform:translateY(-2em)}to{transform:translateY(0)}}@keyframes showMobileSubscriptionPanel{0%{opacity:0}to{opacity:1}}body.subscription-panel-open{overflow:hidden}body.subscription-panel-open #scroll-top{display:none!important}body.subscription-panel-open.subscription-panel-force-mobile #middle>.kbin-container #subscription-panel{height:100%;left:0;width:100%;overflow:hidden;position:fixed;z-index:5;top:0;border-radius:0!important;border:none;margin:0;background:RGBA(0,0,0,.5);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center}body.subscription-panel-open.subscription-panel-force-mobile #middle>.kbin-container #subscription-panel #subscription-panel-content{height:100%;overflow:auto;padding:1em 10em;padding-bottom:100px!important;position:fixed;top:49px;width:fit-content;margin:2em 0 0;animation:showMobileSubscriptionPanel .2s ease-out}body.subscription-panel-open.subscription-panel-force-mobile #middle>.kbin-container #subscription-panel ul{animation:showMobileSubscriptionPanelUL .2s ease-out}body.subscription-panel-open.rounded-edges #middle>.kbin-container #subscription-panel-content{border-radius:.5rem}body.subscription-panel-open #header menu li a.subscription-panel-mobile-button{border-bottom:var(--kbin-header-hover-border)}#header menu li a.subscription-panel-mobile-button{font-size:0;cursor:pointer;transition:border-bottom .2s ease-in-out}body.subscription-panel-force-mobile #header menu li a.subscription-panel-mobile-button{display:block}body.subscription-panel-force-mobile #subscription-panel-collapse-button{display:none}a.subscription-panel-mobile-button i{font-size:.85rem}@media (max-width: 991.98px){#header menu li a.subscription-panel-mobile-button{display:block}body #middle>.kbin-container,body.subscription-panel-collapsed #middle>.kbin-container{grid-template-areas:"main main" "subscription-panel subscription-panel" "sidebar sidebar"!important;grid-template-columns:1fr!important}body.subscription-panel-open #middle>.kbin-container #subscription-panel{height:100%;top:0;left:0;position:fixed;width:100%;z-index:2;margin:0;animation:showMobileSubscriptionPanel .2s ease-out}body.subscription-panel-open #middle>.kbin-container #subscription-panel #subscription-panel-content{height:100%;left:0;padding:2em 2em 100px!important;width:100%!important;border-radius:0!important;border:none;top:49px!important;margin:0!important;overflow:auto}body.subscription-panel-open #middle>.kbin-container #subscription-panel ul{animation:showMobileSubscriptionPanelUL .2s ease-out}#subscription-panel-collapse-button{display:none}#subscription-panel-settings-button{right:1em}}@media (hover: none){#header menu li a.subscription-panel-mobile-button:hover{border-bottom:3px solid transparent}}@media (pointer: coarse){#subscription-panel-settings-button{font-size:1.2em}}.subscription-panel-onboarding .subscription-panel-onboarding-content{max-width:800px}.subscription-panel-onboarding-next{margin-top:1em;font-size:2em;text-align:center;display:block}')});function p(){let l=localStorage.getItem("subscription-panel-settings"),e={};return l&&(e=JSON.parse(l)),e.useCache===void 0&&(e.useCache=!0),e.useGroups===void 0&&(e.useGroups=!0),e.showLastClicked===void 0&&(e.showLastClicked=!0),e}function f(l){localStorage.setItem("subscription-panel-settings",JSON.stringify(l))}function F(){localStorage.removeItem("subscription-panel-settings"),localStorage.removeItem("subscription-panel-magazine-data")}var L=y(()=>{});var I,h,M=y(()=>{I=class l{#e;type;fullName;editMode;hidden=!1;element;static get TYPE(){return{MAGAZINE:"magazine",GROUP:"group"}}constructor(e,t){this.fullName=e,this.name=e,this.type=t,this.#e=null,this.editMode=!1}get icon(){return this.#e}getElement(){let e=document.createElement("li");return e.classList.add("item"),e.setAttribute("data-type",this.type),e.setAttribute("data-name",this.fullName),e}enableEditMode(){this.editMode=!0}disableEditMode(){this.editMode=!1}toggleEditMode(){this.editMode?this.disableEditMode():this.enableEditMode()}isStarred(){return!1}isHidden(){return this.hidden}hide(e=!1){this.hidden=!0,this.element&&this.element.classList.add("hideItem")}show(e=!1){this.hidden&&(this.hidden=!1,this.element&&(e&&this.element.classList.contains("hideItem")&&(this.element.addEventListener("animationend",()=>{this.element.classList.remove("fade-in")}),this.element.classList.add("fade-in")),this.element.classList.remove("hideItem")))}toggleHidden(){this.isHidden()?this.hide():this.show()}isIgnored(){return!1}search(e,t=!1){return!t&&this.isIgnored()?!1:this.fullName.toLowerCase().includes(e.toLowerCase())}copy(){return new l(this.fullName,this.type)}},h=I});var T,v,C=y(()=>{M();T=class l extends h{icon;element;starred;constructor(e,t,i=null){super(e,h.TYPE.MAGAZINE),this.icon=i,this.url=t,this.name=e.replace(/@.*/,"");let s=e.match(/@(.*)/);this.instanceName=s?s[1]:null}registerClickTime(){this.appendMagazineData({clickTime:Date.now()})}getMagazineData(){let e=localStorage.getItem("subscription-panel-magazine-data");return e?(e=JSON.parse(e),e=e[this.fullName]||{}):e={},e}getClickTime(){return this.getMagazineData().clickTime||0}appendMagazineData(e){let t=localStorage.getItem("subscription-panel-magazine-data");t?t=JSON.parse(t):t={},t[this.fullName]?t[this.fullName]={...t[this.fullName],...e}:t[this.fullName]=e,localStorage.setItem("subscription-panel-magazine-data",JSON.stringify(t))}static fromElement(e){let t=e.querySelector("a");return new l(t.innerText,t.href,e.querySelector("figure img")?.src)}enableEditMode(){super.enableEditMode(),this.element&&this.element.classList.add("edit-mode")}disableEditMode(){super.disableEditMode(),this.element&&this.element.classList.remove("edit-mode")}toggleStar(){this.getMagazineData()?.starred?this.unstar():this.star()}star(){this.appendMagazineData({starred:!0}),this.element.classList.add("starred"),this.starred=!0}unstar(){this.appendMagazineData({starred:!1}),this.element.classList.remove("starred"),this.starred=!1}isStarred(){return this.starred===void 0&&(this.starred=this.getMagazineData()?.starred===!0),this.starred}ignore(){this.element.classList.add("ignore"),this.ignored=!0,this.appendMagazineData({ignored:!0}),this.element.querySelector(".toolItem.ignore").innerHTML=''}unignore(){this.element.classList.remove("ignore"),this.ignored=!1,this.appendMagazineData({ignored:!1}),this.element.querySelector(".toolItem.ignore").innerHTML=''}toggleIgnored(){this.isIgnored()?this.unignore():this.ignore()}isIgnored(){return this.ignored===void 0&&(this.ignored=this.getMagazineData()?.ignored===!0),this.ignored}getElement(){if(this.element)return this.element;let e=this.getMagazineData(),t=document.createElement("li");e?.starred&&t.classList.add("starred"),this.isIgnored()&&t.classList.add("ignore");let i=Object.assign(document.createElement("span"),{className:"tools"}),s=Object.assign(document.createElement("span"),{className:"star toolItem",title:"Star",innerHTML:'',onclick:()=>{this.toggleStar()}}),r=Object.assign(document.createElement("span"),{className:"ignore toolItem",title:"Ignore",innerHTML:this.isIgnored()?'':'',onclick:()=>{this.toggleIgnored()}});i.appendChild(s),i.appendChild(r),t.appendChild(i),this.element=t;let o=document.createElement("a");if(o.href=this.url,o.className="magazine",o.addEventListener("click",()=>{this.registerClickTime()}),o.title=this.fullName,this.icon){let n=document.createElement("img");n.src=this.icon,o.appendChild(n)}else t.classList.add("no-image");let a=document.createElement("span");if(a.className="name",a.appendChild(document.createTextNode(this.name)),o.appendChild(a),this.instanceName){let n=document.createElement("span");n.className="instance-name",n.appendChild(document.createTextNode("@"+this.instanceName)),o.appendChild(n)}return t.appendChild(o),t}static fromJSON(e){return new l(e.fullName,e.url,e.icon)}toJSON(){return{fullName:this.fullName,icon:this.icon,url:this.url,type:this.type}}copy(){return new l(this.fullName,this.url,this.icon)}},v=T});var q,z,O=y(()=>{M();C();q=class l extends h{#e=!1;element;magazines=[];countElement;constructor(e,t){super(e,h.TYPE.GROUP),this.magazines=t,this.name=e}set isOpen(e){this.#e=!!e}get isOpen(){return!!this.#e}get icon(){return this.isOpen?'':''}getClickTime(){let e=0;return this.magazines.forEach(t=>{t.getClickTime()>e&&(e=t.getClickTime())}),e||0}static fromElement(e){let t=e.querySelector("a");return new l(t.innerText,e.querySelector("figure img")?.src,t.href)}toggle(){this.isOpen?this.close():this.open()}open(){this.isOpen=!0,this.element.classList.add("open");let e=this.element.querySelector("a"),t=e.querySelector("i");e.setAttribute("aria-expanded","true"),t.classList.remove("fa-box"),t.classList.add("fa-box-open")}close(){this.isOpen=!1,this.element.classList.remove("open");let e=this.element.querySelector("a"),t=e.querySelector("i");e.setAttribute("aria-expanded","false"),t.classList.remove("fa-box-open"),t.classList.add("fa-box")}getElement(){if(this.element)return this.element;let e=this.magazineCount(),t=document.createElement("li");this.element=t,t.classList.add("group"),(this.isIgnored()||e===0)&&t.classList.add("ignore");let i=document.createElement("a");i.className="group-name",i.href="#",i.title=this.fullName,i.ariaLabel=this.fullName,i.addEventListener("click",o=>{o.preventDefault(),o.stopPropagation(),this.toggle()});let s=Object.assign(document.createElement("span"),{className:"count",innerHTML:"("+e+")"});this.countElement=s,i.innerHTML=this.icon+''+this.fullName+"",i.appendChild(s),t.appendChild(i);let r=document.createElement("ul");return this.magazines.forEach(o=>{let a=o.getElement();r.appendChild(a)}),t.appendChild(r),t}static fromJSON(e){return new l(e.fullName,e.magazines.map(t=>v.fromJSON(t)))}toJSON(){return{fullName:this.fullName,magazines:this.magazines.map(e=>e.toJSON()),type:this.type}}copy(){return new l(this.fullName,this.magazines.map(e=>e.copy()))}enableEditMode(){super.enableEditMode(),this.element&&(this.magazines.forEach(e=>{e.enableEditMode()}),this.open(),this.element.classList.add("edit-mode"))}disableEditMode(){super.disableEditMode(),this.element&&(this.magazines.forEach(e=>{e.disableEditMode()}),this.close(),this.element.classList.remove("edit-mode"),this.isIgnored()?this.element.classList.add("ignore"):this.element.classList.remove("ignore"),this.countElement.innerHTML="("+this.magazineCount()+")")}isStarred(){return this.magazines.some(e=>e.isStarred())}isIgnored(){return this.magazineCount()===0}hide(e=!1){super.hide(),this.element&&(this.magazines.forEach(t=>{t.hide(e)}),this.element.classList.add("hideItem"))}show(e=!1){super.show(),this.element&&this.magazines.forEach(t=>{t.show()})}magazineCount(){let e=0;return this.magazines.forEach(t=>{t.isIgnored()||e++}),e}search(e,t=!1){let i=super.search(e,t);return!i&&!t&&this.isIgnored()?!1:(this.magazines.forEach(s=>{s.search(e,t)&&(i=!0)}),i)}},z=q});var H,S,N=y(()=>{L();O();C();M();H=class{constructor(){localStorage.removeItem("subscription-panel-cache")}save(e){let t=p(),i={cache:e,timestamp:Date.now(),version:1};t?.useCache&&localStorage.setItem("subscription-panel-item-cache",JSON.stringify(i))}remove(){localStorage.removeItem("subscription-panel-item-cache")}parseItem(e){if(e.type===h.TYPE.MAGAZINE)return new v(e.fullName,e.url,e.icon);if(e.type===h.TYPE.GROUP){let t=[];return e.magazines.forEach(i=>{t.push(this.parseItem(i))}),new z(e.fullName,t)}}get(){if(p()?.useCache){let t=localStorage.getItem("subscription-panel-item-cache");if(t){let i=JSON.parse(t);if(i.version===1){let s=[];return i.cache.forEach(r=>{s.push(this.parseItem(r))}),s}else return this.remove(),[]}}return[]}},S=H});var D,Z,_=y(()=>{L();N();D=class{subscriptionsPanel;modalElement;constructor(e){this.subscriptionsPanel=e}getSettingsButtonElement(){let e=document.createElement("div");return e.id="subscription-panel-settings-button",e.title="Settings",e.ariaLabel="Settings",e.innerHTML='',e.addEventListener("click",()=>{this.show()}),e}init(){let e=this.getSettingsButtonElement();this.subscriptionsPanel.contentElement.appendChild(e),this.applySettings(),window.addEventListener("open-subscriptions-panel-settings",()=>{this.show()})}close(){this.modalElement&&(this.modalElement.remove(),this.modalElement=null)}show(){let e=p(),t=document.createElement("div");this.modalElement=t,t.className="subscription-panel-settings-modal subscription-panel-modal",t.innerHTML=`
`,document.body.appendChild(t);let i=t.querySelector("#subscription-panel-extend-width");e?.extendWidth&&(i.checked=!0);let s=t.querySelector("#subscription-panel-hide-on-collapse");e?.hideOnCollapse&&(s.checked=!0);let r=t.querySelector("#subscription-panel-use-cache");e?.useCache&&(r.checked=!0);let o=t.querySelector("#subscription-panel-show-onboarding");e?.onboardingDone&&(o.checked=!1);let a=t.querySelector("#subscription-panel-force-mobile");e?.forceMobile&&(a.checked=!0);let n=t.querySelector("#subscription-panel-use-groups");e?.useGroups&&(n.checked=!0);let g=t.querySelector("#subscription-panel-show-last-clicked");e?.showLastClicked&&(g.checked=!0),t.querySelector("#subscription-panel-reset").addEventListener("click",()=>{new S().remove(),F(),window.location.reload()}),t.querySelector(".subscription-panel-settings-modal .close").addEventListener("click",()=>{this.close()}),t.addEventListener("click",c=>{c.target===t&&this.close()}),t.querySelector("#subscription-panel-extend-width").addEventListener("change",c=>{let d=p();d.extendWidth=!!c.target.checked,f(d),this.applySettings()}),t.querySelector("#subscription-panel-use-cache").addEventListener("change",c=>{let d=p();c.target.checked?d.useCache=!0:(d.useCache=!1,new S().remove()),f(d),this.applySettings()}),t.querySelector("#subscription-panel-hide-on-collapse").addEventListener("change",c=>{let d=p();d.hideOnCollapse=!!c.target.checked,f(d),this.applySettings()}),t.querySelector("#subscription-panel-show-onboarding").addEventListener("change",c=>{let d=p();d.onboardingDone=!c.target.checked,f(d)}),t.querySelector("#subscription-panel-use-groups").addEventListener("change",c=>{let d=p();d.useGroups=!!c.target.checked;let E=this.subscriptionsPanel.subscriptionsHandler;E.reload().then(()=>{this.subscriptionsPanel.addMagazinesToDOM(E.subscriptions,!0)}),f(d),this.applySettings()}),t.querySelector("#subscription-panel-force-mobile").addEventListener("change",c=>{let d=p();d.forceMobile=!!c.target.checked,f(d),this.applySettings()}),t.querySelector("#subscription-panel-show-last-clicked").addEventListener("change",c=>{let d=p();d.showLastClicked=!!c.target.checked;let E=this.subscriptionsPanel.subscriptionsHandler;E.reload().then(()=>{this.subscriptionsPanel.addMagazinesToDOM(E.subscriptions,!0)}),f(d),this.applySettings()})}applySettings(){let e=p();e?.extendWidth?document.body.classList.add("extend-width"):document.body.classList.remove("extend-width"),e?.collapsed?this.subscriptionsPanel.collapsePanel():this.subscriptionsPanel.expandPanel(),e?.hideOnCollapse?document.body.classList.add("subscription-panel-hide-on-collapse"):document.body.classList.remove("subscription-panel-hide-on-collapse"),e?.forceMobile?document.body.classList.add("subscription-panel-force-mobile"):(document.body.classList.remove("subscription-panel-force-mobile"),this.subscriptionsPanel.closeMobilePanel())}},Z=D});var G,V,X=y(()=>{L();N();C();M();O();G=class{subscriptions;constructor(){this.subscriptions=[]}reload(){return this.subscriptions=[],this.load(1)}sort(){this.subscriptions.sort((e,t)=>e.isStarred()&&!t.isStarred()?-1:!e.isStarred()&&t.isStarred()?1:e.name.localeCompare(t.name))}append(e){let i=p()?.useGroups;e.forEach(r=>{let o=!1;this.subscriptions.some((a,n)=>(a.type===h.TYPE.MAGAZINE&&r.type===h.TYPE.MAGAZINE&&a.url===r.url?o=!0:i&&a.name.toLowerCase()===r.name.toLowerCase()&&(a.type===h.TYPE.GROUP?a.magazines.push(r):this.subscriptions[n]=new z(a.name,[a,r]),o=!0),o)),o||this.subscriptions.push(r)}),this.sort(),new S().save(this.subscriptions)}load(e){e=e||1;let t="https://kbin.social/settings/subscriptions/magazines?p="+e;return fetch(t).then(s=>{let r=document.querySelector("#subscription-panel-spinner");return r&&r.remove(),s.text()}).then(s=>{let r=new DOMParser().parseFromString(s,"text/html"),o=r.querySelectorAll(".section.magazines.magazines-columns ul>li"),a=[];o.forEach(g=>{let u=v.fromElement(g);a.push(u);let c=window.location.pathname.match(/\/m\/(.+?)(\/|$)/);c&&c[1]===u.fullName&&u.registerClickTime()}),this.append(a);let n=r.querySelector("a.pagination__item.pagination__item--next-page")?.href;return n=n?n.match(/p=(\d+)/)[1]:void 0,n=n?parseInt(n):1,e