{"version":3,"sources":["render.js"],"names":["const","render","lsKey","configs","al","name","root","array","Array","apply","length","map","_","i","slice","miku","config","selected","done","renderEnabled","localStorage","div","document","createElement","innerHTML","buttons","reload","text","className","confirm","swal","content","then","value","do","newValue","querySelector","checked","undefined","removeItem","timer","renderScript","dataset","version","parseSelectedConfig","previousElement","remove","element","parseVersion","Math","floor","random","alt","title","src","classList","add","addEventListener","showTogglePrompt","body","appendChild","page","apiChecked","readyState","onloaded","window"],"mappings":"AAEAA,IAAMC,OAAS,CACbC,MAAO,SACPC,QAAS,CACPC,GAAI,CACFC,KAAM,cACNC,KAAM,aAENC,MAAOC,MAAMC,MAAM,KAAM,CAAEC,OAAQ,KAAMC,KAAG,SAAEC,EAAGC,GAAG,OAAO,MAAQA,EAAI,IAAIC,OAAO,GAAE,WAEtFC,KAAM,CACJV,KAAM,WACNC,KAAM,eAENC,MAAOC,MAAMC,MAAM,KAAM,CAAEC,OAAQ,KAAMC,KAAG,SAAEC,EAAGC,GAAG,OAAO,MAAQA,EAAI,IAAIC,OAAO,GAAE,YAGxFE,OAAQ,KACRC,SAAU,KACVC,MAAM,EAGRjB,iBAAuB,WACrBD,IAAMmB,IAAiD,MAA/BC,aAAanB,OAAOC,QACtCmB,EAAMC,SAASC,cAAc,OACnCF,EAAIG,UAAY,+IAIiCL,EAAgB,UAAY,IAAE,wCAC7ClB,OAAOe,OAAO,KAAI,kMAOpDhB,IAAMyB,EAAU,GACZN,IACFM,EAAQC,OAAS,CACfC,KAAM,sCACNC,UAAW,wBAGfH,EAAQI,SAAU,EAElBC,KAAK,CACHC,QAASV,EATTI,QAUAA,IACCO,MAAI,SAACC,GACN,GAAc,WAAVA,EACFhC,OAAOiC,IAAG,QACL,GAAID,EAAO,CAChBjC,IAAMmC,EAAWd,EAAIe,cAAc,eAAeC,aAAUC,EAAY,IACpEH,IAAaf,aAAanB,OAAOC,SAC/BiC,EAAUf,aAAanB,OAAOC,OAASiC,EACtCf,aAAamB,WAAWtC,OAAOC,OACpC4B,KAAK,GAAI,yBAAwBK,EAAW,WAAa,WAAS,IAAK,UAAW,CAChFV,SAAS,EACTe,MAAO,OAETvC,OAAOiC,WAMfjC,oBAA0B,WACxBD,IAAMyC,EAAenB,SAASc,cAAc,iBAC5C,GAAIK,GAAgBA,EAAaC,QAAQ1B,OAAQ,OAAOyB,EAAaC,QAAQ1B,QAG/Ef,aAAmB,WACjBD,IAAMyC,EAAenB,SAASc,cAAc,iBAC5C,OAAIK,GAAgBA,EAAaC,QAAQC,QAAgB,MAAMF,EAAaC,QAAe,QAC/E,IAGdzC,GAAS,SAAGyB,GAIV,GAHKzB,OAAOiB,OAAMjB,OAAOiB,MAAO,GAEhCjB,OAAOe,OAASf,OAAOE,QAAQF,OAAO2C,uBACjC3C,OAAOe,QAAWf,OAAOe,OAAOT,MAAMG,OAA3C,CAEAV,IAAM6C,EAAkBvB,SAASc,cAAc,kBAC3CS,GAAiBA,EAAgBC,SAErC9C,IAaI+C,EACCrB,GAAyC,MAA/BN,aAAanB,OAAOC,aAbH,IAAnBD,OAAO0C,UAChB1C,OAAO0C,QAAU1C,OAAO+C,gBAI1B/C,OAAOgB,SAAWhB,OAAOe,OAAOT,MAAM0C,KAAKC,MAAMD,KAAKE,SAAWlD,OAAOe,OAAOT,MAAMG,UACrFqC,EAAUzB,SAASC,cAAc,QACzB6B,IAAML,EAAQM,MAAQpD,OAAOe,OAAOX,KAC5C0C,EAAQnB,UAAY,mBACpBmB,EAAQO,IAAM,GAAGrD,OAAOe,OAAW,KAAGf,OAAe,SAAGA,OAAc,WAKtE8C,EAAUzB,SAASC,cAAc,MACzBK,UAAY,kCACpBmB,EAAQM,MAAQpD,OAAOe,OAAOX,KAC9B0C,EAAQvB,UAAY,gCAKtBuB,EAAQQ,UAAUC,IAAI,UACtBT,EAAQU,iBAAiB,QAASxD,OAAOyD,kBACzCpC,SAASqC,KAAKC,YAAYb,KAG5B9C,SAAe,WAGO,oBAAT4D,MAAwBA,KAAKC,aAAe7D,OAAOiB,MAC5DjB,OAAOiC,OAIiB,gBAAxBZ,SAASyC,YAAwD,aAAxBzC,SAASyC,WACpD9D,OAAO+D,WAEPC,OAAOR,iBAAiB,oBAAkB,WAAK,OAAGxD,OAAO+D","file":"render.js","sourcesContent":["/* global page, swal */\n\nconst render = {\n lsKey: 'render',\n configs: {\n al: {\n name: 'ship waifu~',\n root: 'render/al/',\n // 001.png ~ 038.png\n array: Array.apply(null, { length: 38 }).map((_, i) => `${('00' + (i + 1)).slice(-3)}.png`)\n },\n miku: {\n name: 'miku ❤️~',\n root: 'render/miku/',\n // 001.png ~ 050.png\n array: Array.apply(null, { length: 50 }).map((_, i) => `${('00' + (i + 1)).slice(-3)}.png`)\n }\n },\n config: null,\n selected: null,\n done: false\n}\n\nrender.showTogglePrompt = () => {\n const renderEnabled = !(localStorage[render.lsKey] === '0')\n const div = document.createElement('div')\n div.innerHTML = `\n
\n
\n \n
\n

If disabled, you will still be able to see a small button on the bottom right corner of the screen to re-enable it.

\n
\n `\n\n const buttons = {}\n if (renderEnabled) {\n buttons.reload = {\n text: 'Nah fam, show me a different render',\n className: 'swal-button--cancel'\n }\n }\n buttons.confirm = true\n\n swal({\n content: div,\n buttons\n }).then(value => {\n if (value === 'reload') {\n render.do(true)\n } else if (value) {\n const newValue = div.querySelector('#swalRender').checked ? undefined : '0'\n if (newValue !== localStorage[render.lsKey]) {\n if (newValue) localStorage[render.lsKey] = newValue\n else localStorage.removeItem(render.lsKey)\n swal('', `Random render is now ${newValue ? 'disabled' : 'enabled'}.`, 'success', {\n buttons: false,\n timer: 1500\n })\n render.do()\n }\n }\n })\n}\n\nrender.parseSelectedConfig = () => {\n const renderScript = document.querySelector('#renderScript')\n if (renderScript && renderScript.dataset.config) return renderScript.dataset.config\n}\n\nrender.parseVersion = () => {\n const renderScript = document.querySelector('#renderScript')\n if (renderScript && renderScript.dataset.version) return `?v=${renderScript.dataset.version}`\n else return ''\n}\n\nrender.do = reload => {\n if (!render.done) render.done = true\n\n render.config = render.configs[render.parseSelectedConfig()]\n if (!render.config || !render.config.array.length) return\n\n const previousElement = document.querySelector('body > .render')\n if (previousElement) previousElement.remove()\n\n const doRender = () => {\n if (typeof render.version === 'undefined') {\n render.version = render.parseVersion()\n }\n\n // Let us just allow people to get new render when toggling the option\n render.selected = render.config.array[Math.floor(Math.random() * render.config.array.length)]\n element = document.createElement('img')\n element.alt = element.title = render.config.name\n element.className = 'is-hidden-mobile'\n element.src = `${render.config.root}${render.selected}${render.version}`\n }\n\n let element\n if (!reload && localStorage[render.lsKey] === '0') {\n element = document.createElement('a')\n element.className = 'button is-info is-hidden-mobile'\n element.title = render.config.name\n element.innerHTML = ''\n } else {\n doRender()\n }\n\n element.classList.add('render')\n element.addEventListener('click', render.showTogglePrompt)\n document.body.appendChild(element)\n}\n\nrender.onloaded = () => {\n // If the main script had already done its API check, yet render haven't been triggered, do it\n // This would only happen if this render script only gets loaded after the main script's API check\n if (typeof page !== 'undefined' && page.apiChecked && !render.done) {\n render.do()\n }\n}\n\nif (document.readyState === 'interactive' || document.readyState === 'complete') {\n render.onloaded()\n} else {\n window.addEventListener('DOMContentLoaded', () => render.onloaded())\n}\n"]}