{"mappings":"AAEA,MAAMA,EAAgBC,SAASC,eAAe,mBACxCC,EAAiBF,SAASC,eAAe,mBAEzCE,EAAa,CACjB,YACA,eACA,oBACA,WACA,cACA,sBCXK,SACLC,EACAC,GAEA,MAAMC,EAAeN,SAASC,eAAe,gBAEvCM,EAAY,IAAIC,gBAAgBC,OAAOC,SAASC,QAEtD,IAAIC,GAAa,EACbC,GAAc,EAEdC,EAAOC,SAASR,EAAUS,IAAI,SAAW,IAAK,KAAO,EAEzD,MAAMC,EAAiB,KACrBX,EAAaY,UAAY,QAAQJ,MAAS,EAG5CG,IAEwBjB,SAASC,eAC/B,uBAGckB,KAAOT,SAASU,SAEhC,MAAMC,EAAerB,SAASC,eAC5B,kBAiCFqB,eAAeC,IACTX,IAIJA,GAAa,QAnCfU,iBACE,GAAIT,EACF,OAGFC,GAAQ,EAER,MAAMU,QAAapB,EAAgBU,GAEnC,QAAaW,IAATD,EAAJ,CAIA,GAAa,KAATA,EAGF,OAFAX,GAAc,OACdQ,EAAaH,UAAY,aAI3Bb,EAAaqB,WAAaF,EAE1Bf,OAAOkB,QAAQC,aACb,GACA,GACA,GAAGlB,SAASU,iBAAiBN,IAAOJ,SAASmB,QAG/CZ,GAjBE,CAkBJ,CASQa,GAAiBC,SAAQ,KAC7BnB,GAAa,CAAK,IAEtB,CAEAS,EAAaW,iBAAiB,SAASV,MAAOW,IAC5CA,EAAMC,iBACND,EAAME,wBACAZ,GAAA,IAGRd,OAAOuB,iBAAiB,UAAUV,UAChC,MAAMc,aAAEA,EAAYC,aAAEA,EAAYC,UAAEA,GAActC,SAASuC,gBAEvDD,EAAYD,GAAgBD,EAAe,MAAQxB,GACrDW,GAAA,GAGN,CDtEA,EAAoBD,MAAOR,IACzB,MAAM0B,QAAiBC,MACrB,GAAG/B,SAASgC,SAAShC,SAASU,iBAAiBN,WAGjD,GAAK0B,EAASG,GAKd,OAAOH,EAASI,OAJdC,MAAM,oCAIY,GACnB9C,GAEH,MAAM+C,EAAa9C,SAAS+C,cAAc,SAC1C/C,SAASgD,KAAKC,YAAYH,GAE1B,MAAMI,EAAoB,IAAIC,IAAIhD,GAElC,IAAK,MAAOiD,EAAOC,KAAcC,OAAOC,QAAQpD,GAAa,CAC3D,MAAMqD,EAAkBxD,SAAS+C,cAAc,QAC/CS,EAAgBC,UAAY,mBAE5B,MAAMC,EAAW1D,SAAS+C,cAAc,SACxCW,EAASC,GAAK,aAAaP,IAC3BM,EAASE,KAAO,WAChBF,EAASG,SAAU,EAEnBH,EAAS1B,iBAAiB,UAAU,KAC9B0B,EAASG,QACXX,EAAkBY,IAAIT,GAEtBH,EAAkBa,OAAOV,GAG3BP,EAAWpB,UAAY,GAEvB,IAAK,MAAMsC,KAAoB7D,EACzB+C,EAAkBe,IAAID,KAI1BlB,EAAWpB,WAAa,6BAA6BsC,yBACvD,IAGF,MAAME,EAAQlE,SAAS+C,cAAc,SACrCmB,EAAMC,QAAU,aAAaf,IAC7Bc,EAAMhD,UAAYmC,EAElBG,EAAgBP,YAAYS,GAC5BF,EAAgBP,YAAYiB,GAE5BhE,EAAe+C,YAAYO,EAC7B","sources":["public/scripts/admin_rank_logs.ts","public/scripts/paginated.ts"],"sourcesContent":["import { createPaginatedPage } from \"./paginated\";\n\nconst adminRankLogs = document.getElementById(\"admin_rank_logs\")!;\nconst operationsList = document.getElementById(\"operations_list\")!;\n\nconst OPERATIONS = [\n \"add admin\",\n \"remove admin\",\n \"change admin rank\",\n \"add rank\",\n \"remove rank\",\n \"change rank flags\",\n];\n\ncreatePaginatedPage(async (page) => {\n const response = await fetch(\n `${location.origin}${location.pathname}?page=${page}&embed`\n );\n\n if (!response.ok) {\n alert(\"Couldn't get new admin rank logs!\");\n return;\n }\n\n return response.text();\n}, adminRankLogs);\n\nconst extraStyle = document.createElement(\"style\");\ndocument.head.appendChild(extraStyle);\n\nconst operationsToggled = new Set(OPERATIONS);\n\nfor (const [index, operation] of Object.entries(OPERATIONS)) {\n const operationOption = document.createElement(\"span\");\n operationOption.className = \"operation-option\";\n\n const checkbox = document.createElement(\"input\");\n checkbox.id = `operation_${index}`;\n checkbox.type = \"checkbox\";\n checkbox.checked = true;\n\n checkbox.addEventListener(\"change\", () => {\n if (checkbox.checked) {\n operationsToggled.add(operation);\n } else {\n operationsToggled.delete(operation);\n }\n\n extraStyle.innerHTML = \"\";\n\n for (const toggledOperation of OPERATIONS) {\n if (operationsToggled.has(toggledOperation)) {\n continue;\n }\n\n extraStyle.innerHTML += `.rank-log[data-operation=\"${toggledOperation}\"] { display: none; }`;\n }\n });\n\n const label = document.createElement(\"label\");\n label.htmlFor = `operation_${index}`;\n label.innerText = operation;\n\n operationOption.appendChild(checkbox);\n operationOption.appendChild(label);\n\n operationsList.appendChild(operationOption);\n}\n","export function createPaginatedPage(\n getNextPageHtml: (page: number) => Promise,\n pageContents: HTMLElement\n) {\n const page_counter = document.getElementById(\"page_counter\")!;\n\n const urlParams = new URLSearchParams(window.location.search);\n\n let retrieving = false;\n let hitLastPage = false;\n\n let page = parseInt(urlParams.get(\"page\") || \"1\", 10) || 1;\n\n const updatePageText = () => {\n page_counter.innerText = `page ${page} - `;\n };\n\n updatePageText();\n\n const backToPage1Link = document.getElementById(\n \"back_to_page_1_link\"\n ) as HTMLAnchorElement;\n\n backToPage1Link.href = location.pathname;\n\n const nextPageLink = document.getElementById(\n \"next_page_link\"\n )! as HTMLAnchorElement;\n\n async function updateNextPage() {\n if (hitLastPage) {\n return;\n }\n\n page += 1;\n\n const html = await getNextPageHtml(page);\n\n if (html === undefined) {\n return;\n }\n\n if (html === \"\") {\n hitLastPage = true;\n nextPageLink.innerText = \"none left\";\n return;\n }\n\n pageContents.innerHTML += html;\n\n window.history.replaceState(\n \"\",\n \"\",\n `${location.pathname}?page=${page}${location.hash}`\n );\n\n updatePageText();\n }\n\n async function nextPage() {\n if (retrieving) {\n return;\n }\n\n retrieving = true;\n\n await updateNextPage().finally(() => {\n retrieving = false;\n });\n }\n\n nextPageLink.addEventListener(\"click\", async (event) => {\n event.preventDefault();\n event.stopPropagation();\n await nextPage();\n });\n\n window.addEventListener(\"scroll\", async () => {\n const { scrollHeight, clientHeight, scrollTop } = document.documentElement;\n\n if (scrollTop + clientHeight >= scrollHeight - 100 && !retrieving) {\n nextPage();\n }\n });\n}\n"],"names":["$23a461012dedf15b$var$adminRankLogs","document","getElementById","$23a461012dedf15b$var$operationsList","$23a461012dedf15b$var$OPERATIONS","getNextPageHtml","pageContents","page_counter","urlParams","URLSearchParams","window","location","search","retrieving","hitLastPage","page","parseInt","get","updatePageText","innerText","href","pathname","nextPageLink","async","nextPage","html","undefined","innerHTML","history","replaceState","hash","updateNextPage","finally","addEventListener","event","preventDefault","stopPropagation","scrollHeight","clientHeight","scrollTop","documentElement","response","fetch","origin","ok","text","alert","$23a461012dedf15b$var$extraStyle","createElement","head","appendChild","$23a461012dedf15b$var$operationsToggled","Set","index","operation","Object","entries","operationOption","className","checkbox","id","type","checked","add","delete","toggledOperation","has","label","htmlFor"],"version":3,"file":"rank_logs.fd5d68d4.js.map"}