{ "version": 3, "file": "hiding.js", "sourceRoot": "../src/coffee/", "sources": [ "hiding.coffee" ], "names": [], "mappings": "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", "sourcesContent": [ "'use strict'\n\nsafeButton = document.getElementById \"safeBtn\"\nunless Cookies.enabled\n\tsafeButton.addEventListener 'click', -> alert \"Cookies are not enabled, Safe mode not available.\"\n\treturn\n\n# Wrapper for the cookie used for hiding.\n# This cookie's value has the form: 'surl1&surl2&#tag1&#tag2&etc'\nHidden =\n\t# Sets the new value of the hidden cookie\n\tnew: (@value, @sep = '&') ->\n\t\t@splitted = @value.split @sep\n\t\tthis\n\n\ttags: -> x for x in @splitted when x[0] is '#'\n\n\tthreads: -> x for x in @splitted when x[0] isnt '#'\n\n\t# Removes a set of elements from the hidden cookie\n\tremove: (what...) ->\n\t\tfor w in what\n\t\t\t@splitted.splice @splitted.indexOf(w), 1\n\t\t\t@value = @splitted.join @sep\n\t\t@update()\n\n\t# Adds a set of elements to the hidden cookie\n\tadd: (what...) ->\n\t\tfor w in what\n\t\t\tcontinue if w in @splitted\n\t\t\t@splitted.push w\n\t\t@value = @splitted.join @sep\n\t\t@update()\n\n\t# Resets the hidden cookie\n\tclear: ->\n\t\t@value = \"\"\n\t\t@splitted = []\n\t\t@update()\n\n\t# Removes all threads from the hidden cookie\n\tclearThreads: ->\n\t\t@splitted = @tags()\n\t\t@value = @splitted.join @sep\n\t\t@update()\n\n\t# Removes all tags from the hidden cookie\n\tclearTags: ->\n\t\t@splitted = @threads()\n\t\t@value = @splitted.join @sep\n\t\t@update()\n\n\t# Returns the index of the hidden element `what`, or null\n\tget: (what) ->\n\t\ti = @splitted.indexOf what\n\t\treturn null if i < 0\n\t\t@splitted[i]\n\n\tisEmpty: -> @value.length is 0\n\n\t# Syncs the actual cookie with this object\n\tupdate: ->\n\t\tif @isEmpty()\n\t\t\t@expire()\n\t\telse\n\t\t\tCookies.set 'crHidden', @value, { expires: Infinity }\n\n\texpire: -> Cookies.expire 'crHidden'\n\n# find out if the cookies is set and, if so, wrap it\ncookie = Cookies.get 'crHidden'\ncrHidden = cookie? && Hidden.new(cookie) || undefined\n\n# ensure we don't carry around a stale empty cookie\ncrHidden?.update()\n\n# Setup Safe mode button\nif crHidden?.get \"#nsfw\"\n\tsafeButton.innerHTML = \"EXIT SAFE MODE\"\n\tsafeButton.className = \"foot-on-button\"\n\tsafeButton.onclick = ->\n\t\tcrHidden?.remove '#nsfw'\n\t\tlocation.reload true\n\t\treturn\nelse\n\tsafeButton.className = \"foot-off-button\"\n\tsafeButton.onclick = ->\n\t\tif crHidden?\n\t\t\tcrHidden.add '#nsfw'\n\t\telse\n\t\t\tcrHidden = Hidden.new '#nsfw'\n\t\t\tcrHidden.update()\n\t\tlocation.reload true\n\t\treturn\n\ntoggleHide = (elem) ->\n\treturn ->\n\t\t# check if this element is already hidden: if so,\n\t\t# unhide it, else hide it.\n\t\tif crHidden?.get elem\n\t\t\tcrHidden.remove elem\n\t\telse\n\t\t\tif crHidden?\n\t\t\t\tcrHidden.add elem\n\t\t\telse\n\t\t\t\tcrHidden = Hidden.new elem\n\t\t\t\tcrHidden.update()\n\t\t\tlocation.reload true\n\t\t\treturn\n\n# Bind click events on threads and tags\nfromList(document.querySelectorAll 'div.hiding').map (e) ->\n\ta = window.createElementEx \"a\", { className: \"noborder hide\", href: \"\" }\n\ta.addEventListener \"click\", toggleHide e.dataset.arg\n\ta.appendChild document.createTextNode \"Hide\"\n\te.appendChild a\n\nif location.pathname == \"/hidden\"\n\tfromList(document.querySelectorAll \"a.unhideurl\").map (e) ->\n\t\te.addEventListener \"click\", toggleHide e.dataset.arg\n\n\tunhidealltheads = document.getElementById \"unhideallthreads\"\n\tif unhidealltheads?\n\t\tunhidealltheads.addEventListener \"click\", -> crHidden?.clearThreads()\n\n\tunhidetags = document.getElementById \"unhidealltags\"\n\tif unhidealltags?\n\t\tunhidetags.addEventListener \"click\", -> crHidden?.clearTags()\n" ] }