mirror of
https://github.com/Neetpone/ponepaste.git
synced 2025-03-12 22:50:07 +01:00
1 line
No EOL
13 KiB
Text
1 line
No EOL
13 KiB
Text
{"version":3,"file":"generic.min.js","sources":["../../../js/dom.js","../../../js/tag_input.js","../../../js/main.js"],"sourcesContent":["const $ = function(selector) {\n return document.querySelector(selector);\n};\n\nconst $$ = function(selector) {\n return document.querySelectorAll(selector) || [];\n};\n\nconst makeEl = function(html) {\n const template = document.createElement('template');\n\n template.innerHTML = html.trim();\n\n return template.content.firstChild;\n};\n\nconst clearEl = function(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n};\n\nconst toggleEl = function(el) {\n if (el.classList.contains('is-hidden')) {\n el.classList.remove('is-hidden');\n } else {\n el.classList.add('is-hidden');\n }\n};\n\nconst escape = function(unsafe) {\n return unsafe\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n}\n\nconst whenReady = function(funcp) {\n if (document.readyState !== 'loading') {\n funcp();\n } else {\n document.addEventListener('DOMContentLoaded', funcp);\n }\n}\n\nexport { whenReady, $, $$, makeEl, clearEl, toggleEl, escape };","import { makeEl, escape } from \"./dom\";\n\nclass TagsInput {\n constructor(element, options = {}) {\n this.element = element;\n this.tags = [];\n this.options = options\n\n this.maxTags = options.maxTags || 32;\n this.inputNode = null;\n this.containerNode = null;\n }\n\n attach() {\n this.element.style.display = 'none';\n\n this.containerNode = makeEl('<div class=\"tags-input\"></div>');\n this.inputNode = makeEl('<input class=\"input\" type=\"text\" placeholder=\"32 tags maximum\" value=\"\" />');\n this.containerNode.appendChild(this.inputNode);\n\n this.element.parentNode.insertBefore(this.containerNode, this.element.nextSibling);\n\n /* Load existing tags from input */\n if (this.element.value) {\n for (const tag of this.element.value.split(',')) {\n this.addTag(tag);\n }\n }\n\n /* Handle addition and removal of tags via key-presses */\n this.containerNode.addEventListener('keydown', this._handleInputKeyUp.bind(this));\n\n /* Handle deletions by clicking the delete button */\n this.containerNode.addEventListener('click', this._handleContainerClick.bind(this));\n }\n\n detach() {\n this.tags.clear();\n this.containerNode.remove();\n this.element.style.display = 'inline-block';\n }\n\n updateHiddenInputValue() {\n this.element.value = this.tags.join(',');\n }\n\n deleteTagNode(node) {\n this.tags.splice(this.tags.indexOf(node.dataset.value.toLowerCase()), 1);\n node.remove();\n\n /* Below the limit? Make sure the input is enabled. */\n if (this.tags.length < this.maxTags) {\n this.inputNode.disabled = false;\n }\n }\n\n addTag(tagValue) {\n tagValue = tagValue.trim();\n\n /* Tag value is probably not empty and we don't already have the same tag. */\n if (tagValue !== '' && this.tags.indexOf(tagValue.toLowerCase()) === -1) {\n this.tags.push(tagValue.toLowerCase());\n\n this.inputNode.parentNode.insertBefore(\n makeEl('<span class=\"tag is-info\" data-value=\"' + escape(tagValue) + '\">' + escape(tagValue) + '<span class=\"delete is-small\" /></span>'),\n this.inputNode\n );\n\n /* Too many tags, disable the input for now. */\n if (this.tags.length >= this.maxTags) {\n this.inputNode.disabled = true;\n }\n }\n }\n\n _handleInputKeyUp(evt) {\n let tagValue = this.inputNode.value;\n\n if (evt.key === 'Backspace' && tagValue === '') {\n // Remove the child\n if (this.inputNode.previousSibling) {\n this.deleteTagNode(this.inputNode.previousSibling);\n\n this.updateHiddenInputValue();\n }\n } else if (evt.key === ',') {\n this.addTag(tagValue);\n\n this.inputNode.value = ''\n this.updateHiddenInputValue();\n\n evt.preventDefault();\n } else if (evt.key !== 'Backspace' && tagValue.length > 255) { // This could be improved to check if it would actually result in a new char being typed...\n evt.preventDefault();\n }\n }\n\n _handleContainerClick(evt) {\n if (evt.target && evt.target.classList.contains('delete')) {\n this.deleteTagNode(evt.target.closest('.tag'));\n this.updateHiddenInputValue();\n }\n }\n}\n\nexport { TagsInput };\n","import { $, $$, toggleEl } from './dom';\nimport { TagsInput } from \"./tag_input\";\n\nconst setupSignupModal = () => {\n const signupButton = $('[data-target~=\"#signin\"],[data-target~=\"#signup\"]');\n\n if (signupButton) {\n signupButton.href = 'javascript:void(0)';\n\n signupButton.addEventListener('click', () => {\n $('.modal').classList.add('is-active');\n });\n\n $('.modal-button-close').addEventListener('click', () => {\n $('.modal').classList.remove('is-active');\n });\n }\n}\n\nconst globalSetup = () => {\n Array.prototype.forEach.call($$('.js-tag-input'), (el) => {\n new TagsInput(el).attach();\n });\n\n setupSignupModal();\n\n const embedButton = $('.panel-tools .embed-tool');\n\n if (embedButton){\n embedButton.addEventListener('click', (evt) => {\n if (evt.target && evt.target.closest('.panel-tools')) {\n toggleEl(evt.target.closest('.panel-tools').querySelector('.panel-embed'));\n }\n });\n }\n\n const expandButton = $('.expand-tool');\n\n if (expandButton) {\n expandButton.addEventListener('click', (evt) => {\n if (evt.target && evt.target.closest('.panel')) {\n const panel = evt.target.closest('.panel');\n\n if (panel.classList.contains('panel-fullsize')) {\n panel.classList.remove('panel-fullsize');\n } else {\n panel.classList.add('panel-fullsize');\n }\n }\n });\n }\n\n // Notifications\n (document.querySelectorAll('.notification .delete') || []).forEach(($delete) => {\n const $notification = $delete.parentNode;\n\n $delete.addEventListener('click', () => {\n $notification.parentNode.removeChild($notification);\n });\n });\n\n // Hamburger menu\n const $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0);\n if ($navbarBurgers.length > 0) {\n $navbarBurgers.forEach(el => {\n el.addEventListener('click', () => {\n const target = el.dataset.target;\n const $target = document.getElementById(target);\n el.classList.toggle('is-active');\n $target.classList.toggle('is-active');\n });\n });\n }\n\n const preloader = $('.preloader');\n const main = $('main');\n\n if (preloader && main) {\n preloader.remove();\n main.id = '';\n }\n\n // CAPTCHA refresh\n const captchaContainer = $('.captcha_container');\n\n if (captchaContainer) {\n const refreshElement = captchaContainer.querySelector('a');\n const imageElement = captchaContainer.querySelector('img');\n\n if (refreshElement && imageElement) {\n refreshElement.addEventListener('click', () => {\n let src = imageElement.src;\n\n if (src.indexOf('&refresh') !== -1) {\n // yeah, it's kinda cancerous. fuck off.\n src = src.split('&rand=')[0];\n } else {\n src += '&refresh';\n }\n\n imageElement.src = src + '&rand=' + Math.random();\n });\n }\n }\n\n const hiddenElements = $$('.js-hidden');\n\n if (hiddenElements) {\n Array.prototype.forEach.call(hiddenElements, (elem) => {\n toggleEl(elem);\n });\n }\n}\n\nexport { globalSetup };"],"names":["funcp","$","selector","document","querySelector","$$","querySelectorAll","makeEl","html","template","createElement","innerHTML","trim","content","firstChild","toggleEl","el","classList","contains","remove","add","escape","unsafe","replace","TagsInput","element","options","arguments","length","undefined","_classCallCheck","this","tags","maxTags","inputNode","containerNode","key","value","style","display","appendChild","parentNode","insertBefore","nextSibling","_step","_iterator","_createForOfIteratorHelper","split","s","n","done","tag","addTag","err","e","f","addEventListener","_handleInputKeyUp","bind","_handleContainerClick","clear","join","node","splice","indexOf","dataset","toLowerCase","disabled","tagValue","push","evt","previousSibling","deleteTagNode","updateHiddenInputValue","preventDefault","target","closest","signupButton","Array","prototype","forEach","call","attach","href","embedButton","expandButton","panel","$delete","$notification","removeChild","$navbarBurgers","slice","$target","getElementById","toggle","preloader","main","id","captchaContainer","refreshElement","imageElement","src","Math","random","hiddenElements","elem","readyState"],"mappings":"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"} |