{
"version": 3,
"file": "fixes.js",
"sourceRoot": "../src/coffee/",
"sources": [
"fixes.coffee"
],
"names": [],
"mappings": "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",
"sourcesContent": [
"'use strict'\r\n\r\n#
fixes\r\nfromList(document.querySelectorAll \"img\").map (e) ->\r\n\t# ALT fix - Set titles to alt text (xkcd style)\r\n\te.title = e.alt if e.alt != \"\"\r\n\r\n# Handle hash changes\r\nonhashchange = ->\r\n\treturn unless location.hash.length > 0\r\n\t# Post selected\r\n\tif location.hash[1] is 'p'\r\n\t\to.className = o.className.replace \"post-selected\", \"\" for o in document.querySelectorAll \".post-selected\"\r\n\t\tdoc = document.querySelector location.hash\r\n\t\tdoc.className = \"post post-selected\" if doc?\r\n\r\nwindow.addEventListener \"hashchange\", onhashchange\r\nonhashchange()\r\n\r\n# Make page lists\r\nmakePageLists = ->\r\n\tpageDivs = document.querySelectorAll \".pages\"\r\n\tfor pageDiv in pageDivs\r\n\t\t# Do Next/Previous only when we don't know the number of pages\r\n\t\tmaxstr = pageDiv.dataset.max\r\n\t\tmax = parseInt maxstr\r\n\t\tcontinue if maxstr is 'nomax' or max <= 1\r\n\r\n\t\tpage = parseInt pageDiv.dataset.current\r\n\t\tbaseurl = stripPage location.pathname\r\n\t\tpageHTML = \"PAGE \"\r\n\r\n\t\t# make the pages fit the window width (650px is the max-width)\r\n\t\twidth = Math.min getViewport().width, 650\r\n\t\tinsPage = (i) ->\r\n\t\t\tpageHTML += if page == i then \"#{i} \" else \"#{i} \"\r\n\t\tinsDots = -> pageHTML += \"··· \"\r\n\r\n\t\t# m = max number of buttons to output (at least 7)\r\n\t\t# we leave 50px for the \"PAGE\" text and account 30px per button.\r\n\t\tm = Math.max 7, Math.floor((width - 50) / 30)\r\n\t\tif max <= m\r\n\t\t\t# output all page buttons\r\n\t\t\tinsPage i for i in [1..max]\r\n\t\telse\r\n\t\t\tleft = page - 1\r\n\t\t\tright = max - page\r\n\t\t\ta = Math.floor((m-5)/2)\r\n\t\t\tlrem = Math.max 0, a - left\r\n\t\t\trrem = Math.max 0, a - right\r\n\t\t\tif left <= a + rrem\r\n\t\t\t\tinsPage i for i in [1..page]\r\n\t\t\telse\r\n\t\t\t\tinsPage 1\r\n\t\t\t\tinsDots()\r\n\t\t\t\tinsPage i for i in [page-a-rrem..page]\r\n\t\t\tif page < max\r\n\t\t\t\tif right <= a + lrem\r\n\t\t\t\t\tinsPage i for i in [page+1..max]\r\n\t\t\t\telse\r\n\t\t\t\t\tinsPage i for i in [page+1..page+a+lrem]\r\n\t\t\t\t\tinsDots()\r\n\t\t\t\t\tinsPage max\r\n\t\tpageDiv.innerHTML = pageHTML\r\n\r\nmakePageLists()\r\nwindow.onresize = makePageLists\r\n\r\n# Count remaining characters in a post\r\ncharsCount = (id) ->\r\n\tform = document.getElementById id\r\n\tif form?\r\n\t\ttext = document.querySelector(\"##{id} textarea\")\r\n\t\tdiv = document.querySelector(\"##{id} .chars-count\")\r\n\t\ttext.onkeyup = ->\r\n\t\t\tremaining = div.dataset.maxlen - text.value.length\r\n\t\t\tdiv.innerHTML = \"#{remaining} characters left\"\r\n\t\t\tdiv.className = \"chars-count chars-count-padding\"\r\n\t\t\ttext.style.borderColor = if remaining < 0 then \"#E33\" else \"\"\r\n\r\ncharsCount \"reply-form\"\r\n\r\nwindow.charsCount = charsCount\r\n\r\n# Setup toggle buttons in light mode\r\nlightimagebtn = document.querySelectorAll \".toggleImage\"\r\nimgsetup = (btn) ->\r\n\turl = btn.href\r\n\tdo (url) ->\r\n\t\tbtn.removeAttribute 'href'\r\n\t\tbtn.onclick = ->\r\n\t\t\tbtn.outerHTML = \"
\"\r\nimgsetup imgbtn for imgbtn in lightimagebtn\r\n\r\n# Tag search / Fulltext search buttons (in pages which have it)\r\ntoggleForm = document.getElementById \"tagsearch-form\"\r\nif toggleForm?\r\n\ttoggle = window.createElementEx \"a\", { className: \"button\", id: \"tagsearchbtn\", rel: \"search\" }\r\n\ttoggle.appendChild document.createTextNode \"Tag search\"\r\n\ttoggleForm.parentElement.replaceChild toggle, toggleForm\r\n\ttoggle.addEventListener \"click\", ->\r\n\t\ttoggle.parentElement.replaceChild toggleForm, toggle\r\n\t\ttoggle = document.getElementById('tagsearch-form')\r\n\t\ttoggle.addEventListener \"submit\", ->\r\n\t\t\ttagsrc = toggle.elements[0]\r\n\t\t\ttagsrc.value = escapeHTML tagsrc.value.trim().replace /[\\s#]+$/g, ''\r\n\t\t\treturn true\r\n\t\tbox = document.getElementById \"tagsearch\"\r\n\t\tAC.toggleAutocomplete box, \"#{window.crOpts.basepath}taglist\"\r\n\t\tbox.focus()\r\n\r\n# Unhide post actions to admins\r\nif window.crOpts.adminMode\r\n\tfor con in document.querySelectorAll \".postactions\"\r\n\t\tcon.classList.remove 'unavailable'\r\n\t\tcon.classList.add 'inlineBlock'\r\n\r\n# Setup onhover event for postIdQuote\r\nfromList(document.querySelectorAll('.postIdQuote')).map (e) ->\r\n\te.addEventListener \"mouseover\", (ev) ->\r\n\t\tpostNum = e.innerHTML[10..]\r\n\t\trefId = if postNum == '0' then 'thread' else \"p#{postNum}\"\r\n\t\tref = document.getElementById refId\r\n\t\tif ref?.classList?\r\n\t\t\tif ref.getBoundingClientRect().top > 0\r\n\t\t\t\t# post is fully contained in viewport\r\n\t\t\t\tref.classList.add 'highlighted'\r\n\t\t\telse\r\n\t\t\t\t# post is at least partially hidden\r\n\t\t\t\tquoted = document.getElementById \"#{refId}_quoted\"\r\n\t\t\t\tunless quoted?\r\n\t\t\t\t\tquoted = window.createElementEx 'article', { className: \"post quoted\", id: \"#{refId}_quoted\" }\r\n\t\t\t\t\tquoted.innerHTML = ref.innerHTML\r\n\t\t\t\t\tdocument.getElementById('quoted_posts').appendChild quoted\r\n\t\t\t\tquoted.style.top = \"#{Math.max 0, ev.clientY - ref.clientHeight}px\"\r\n\t\t\t\tquoted.style.left = \"#{ev.clientX + 35}px\"\r\n\t\t\t\tquoted.style.display = 'block'\r\n\r\n\te.onmouseout = ->\r\n\t\tpost = document.querySelector '.highlighted'\r\n\t\tif post?\r\n\t\t\t# post in viewport\r\n\t\t\tpost.classList.remove 'highlighted'\r\n\t\telse\r\n\t\t\t# post hidden\r\n\t\t\tpostNum = e.innerHTML[10..]\r\n\t\t\trefId = if postNum == '0' then 'thread_quoted' else \"p#{postNum}_quoted\"\r\n\t\t\tpost = document.getElementById refId\r\n\t\t\tpost?.style.display = ''\r\n\r\n# Unhide siteoptions button\r\ndocument.getElementById('siteOptions')?.style.display = 'inline'\r\n"
]
}