{"version":3,"sources":["home.js"],"names":["const","lsKeys","token","chunkSize","parallelUploads","uploadsHistoryOrder","previewImages","fileLength","uploadAge","stripTags","page","localStorage","apiChecked","private","enableUserAccounts","maxSize","chunkSizeConfig","temporaryUploadAges","defaultTemporaryUploadAge","fileIdentifierLength","stripTagsConfig","album","maxSizeBytes","urlMaxSize","urlMaxSizeBytes","tabs","activeTab","albumSelect","albumSelectOnChange","previewTemplate","dropzone","clipboardJS","lazyLoad","urlsQueue","activeUrlsQueue","imageExts","videoExts","albumTitleMaxLength","albumDescMaxLength","error","document","querySelector","classList","add","querySelectorAll","forEach","element","uploadButton","innerText","remove","addEventListener","window","location","reload","response","onAxiosError","onError","console","content","createElement","innerHTML","toString","swal","title","icon","cont","statusText","status","data","description","success","apiVersion","match","src","text","buttons","confirm","closeModal","then","axios","get","onDownloadProgress","render","done","do","newsfeed","version","checkClientVersion","parseInt","max","default","preparePage","catch","onInitError","verifyToken","prepareUpload","button","href","post","Array","isArray","retentionPeriods","defaultRetentionPeriod","code","removeItem","authLink","setAttribute","value","prepareShareX","fetchAlbums","prepareUploadConfig","getPrettyBytes","prepareDropzone","uploadUrls","event","addUrlsToQueue","tabsContainer","loop","i","id","dataset","tabContent","setActiveTab","push","tab","length","index","let","headers","simple","albums","option","name","appendChild","previewNode","parentNode","removeChild","tabDiv","div","className","previewsContainer","Dropzone","body","url","paramName","clickable","maxFilesize","uploadMultiple","createImageThumbnails","autoProcessQueue","chunking","Boolean","parallelChunkUploads","timeout","init","this","on","file","previewElement","xhr","ontimeout","instances","getUploadingFiles","filter","instance","_handleUploadError","_uplSpeedCalc","lastSent","timestamp","Date","now","bytes","upload","chunked","setRequestHeader","chunks","progress","prettyBytesPerSec","total","Math","size","percentage","bytesSent","toFixed","upl","prefix","skipProgress","last","totalChunkCount","chunkIndex","elapsed","bytesPerSec","fullSec","splice","excessDuration","duration","files","updateTemplate","err","Error","test","updateTemplateIcon","chunksUploaded","uuid","original","type","albumid","filelength","age","striptags","urls","split","trim","firstChild","processUrlsQueue","shiftQueue","initUrlUpload","finishedUrlUpload","shift","templateElement","iconClass","iconElement","link","a","clipboard","clipboardText","parentElement","exec","extname","toLowerCase","includes","img","onerror","currentTarget","update","expirydate","expiryDate","getPrettyDate","createAlbum","cancel","download","checked","public","selected","fallback","min","config","siBytes","label","select","help","valueHandler","ampmTime","display","number","round","undefined","disabled","force","video","suffix","uploadFields","_default","stored","parseFloat","String","getPrettyUploadAge","isNaN","form","preventDefault","configKeys","Object","keys","key","conf","field","parsed","find","sel","control","opts","j","opt","join","tmp","submit","checkValidity","elements","hours","minutes","days","items","clipboardData","originalEvent","item","kind","blob","getAsFile","File","addFile","cookieconsent","initialise","cookie","path","pathname","expiryDays","secure","protocol","palette","popup","background","theme","position","message","dismiss","checkIfPublic","ClipboardJS","timer","LazyLoad","elements_selector"],"mappings":"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","file":"home.js","sourcesContent":["/* global swal, axios, Dropzone, ClipboardJS, LazyLoad */\n\nconst lsKeys = {\n token: 'token',\n chunkSize: 'chunkSize',\n parallelUploads: 'parallelUploads',\n uploadsHistoryOrder: 'uploadsHistoryOrder',\n previewImages: 'previewImages',\n fileLength: 'fileLength',\n uploadAge: 'uploadAge',\n stripTags: 'stripTags'\n}\n\nconst page = {\n // user token\n token: localStorage[lsKeys.token],\n\n // configs from api/check\n apiChecked: false,\n private: null,\n enableUserAccounts: null,\n maxSize: null,\n chunkSizeConfig: null,\n temporaryUploadAges: null,\n defaultTemporaryUploadAge: null,\n fileIdentifierLength: null,\n stripTagsConfig: null,\n\n // store album id that will be used with upload requests\n album: null,\n\n parallelUploads: null,\n previewImages: null,\n fileLength: null,\n uploadAge: null,\n stripTags: null,\n\n maxSizeBytes: null,\n urlMaxSize: null,\n urlMaxSizeBytes: null,\n chunkSize: null,\n\n tabs: [],\n activeTab: null,\n albumSelect: null,\n albumSelectOnChange: null,\n previewTemplate: null,\n\n dropzone: null,\n clipboardJS: null,\n lazyLoad: null,\n\n // additional vars for url uploads\n urlsQueue: [],\n activeUrlsQueue: 0,\n\n // Include BMP for uploads preview only, cause the real images will be used\n // Sharp isn't capable of making their thumbnails for dashboard and album public pages\n imageExts: ['.gif', '.jpeg', '.jpg', '.png', '.svg', '.tif', '.tiff', '.webp', '.bmp'],\n videoExts: ['.avi', '.m2ts', '.m4v', '.mkv', '.mov', '.mp4', '.webm', '.wmv'],\n\n albumTitleMaxLength: 70,\n albumDescMaxLength: 4000\n}\n\n// Handler for errors during initialization\npage.onInitError = error => {\n // Hide these elements\n document.querySelector('#albumDiv').classList.add('is-hidden')\n document.querySelector('#tabs').classList.add('is-hidden')\n document.querySelectorAll('.tab-content').forEach(element => {\n return element.classList.add('is-hidden')\n })\n\n // Update upload button\n const uploadButton = document.querySelector('#loginToUpload')\n uploadButton.innerText = 'An error occurred. Try to reload?'\n uploadButton.classList.remove('is-loading')\n uploadButton.classList.remove('is-hidden')\n\n uploadButton.addEventListener('click', () => {\n window.location.reload()\n })\n\n if (!error) return\n if (error.response) page.onAxiosError(error)\n else page.onError(error)\n}\n\n// Handler for regular JS errors\npage.onError = error => {\n console.error(error)\n\n const content = document.createElement('div')\n content.innerHTML = `\n
${error.toString()}
Please check your console for more information.
\n `\n return swal({\n title: 'An error occurred!',\n icon: 'error',\n content\n })\n}\n\n// Handler for Axios errors\npage.onAxiosError = (error, cont) => {\n if (!cont) console.error(error)\n\n // Better Cloudflare errors\n const cloudflareErrors = {\n 520: 'Unknown Error',\n 521: 'Web Server Is Down',\n 522: 'Connection Timed Out',\n 523: 'Origin Is Unreachable',\n 524: 'A Timeout Occurred',\n 525: 'SSL Handshake Failed',\n 526: 'Invalid SSL Certificate',\n 527: 'Railgun Error',\n 530: 'Origin DNS Error'\n }\n\n const statusText = cloudflareErrors[error.response.status] || error.response.statusText\n\n if (!cont) {\n const description = error.response.data && error.response.data.description\n ? error.response.data.description\n : 'There was an error with the request.\\nPlease check the console for more information.'\n return swal(`${error.response.status} ${statusText}`, description, 'error')\n } else if (error.response.data && error.response.data.description) {\n return error.response\n } else {\n const description = error.response\n ? `${error.response.status} ${statusText}`\n : error.toString()\n return { data: { success: false, description } }\n }\n}\n\npage.checkClientVersion = apiVersion => {\n const self = document.querySelector('#mainScript')\n const match = self.src.match(/\\?_=(\\d+)$/)\n if (match && match[1] && match[1] !== apiVersion) {\n return swal({\n title: 'Update detected!',\n text: 'Client assets have been updated. Reload to display the latest version?',\n icon: 'info',\n buttons: {\n confirm: {\n text: 'Reload',\n closeModal: false\n }\n }\n }).then(() => {\n window.location.reload()\n })\n }\n}\n\npage.checkIfPublic = () => {\n return axios.get('api/check', {\n onDownloadProgress: () => {\n // Only do render and/or newsfeed after this request has been initiated to avoid blocking\n /* global render */\n if (typeof render !== 'undefined' && !render.done) render.do()\n /* global newsfeed */\n if (typeof newsfeed !== 'undefined' && !newsfeed.done) newsfeed.do()\n if (!page.apiChecked) page.apiChecked = true\n }\n }).then(response => {\n if (response.data.version) {\n page.checkClientVersion(response.data.version)\n }\n\n page.private = response.data.private\n page.enableUserAccounts = response.data.enableUserAccounts\n\n page.maxSize = parseInt(response.data.maxSize)\n page.maxSizeBytes = page.maxSize * 1e6\n page.chunkSizeConfig = {\n max: (response.data.chunkSize && parseInt(response.data.chunkSize.max)) || 95,\n default: response.data.chunkSize && parseInt(response.data.chunkSize.default)\n }\n\n page.temporaryUploadAges = response.data.temporaryUploadAges\n page.defaultTemporaryUploadAge = response.data.defaultTemporaryUploadAge || null\n page.fileIdentifierLength = response.data.fileIdentifierLength\n page.stripTagsConfig = response.data.stripTags\n\n return page.preparePage()\n }).catch(page.onInitError)\n}\n\npage.preparePage = () => {\n if (page.token) {\n return page.verifyToken(page.token)\n } else if (page.private) {\n const button = document.querySelector('#loginToUpload')\n button.href = 'auth'\n button.classList.remove('is-loading')\n if (page.enableUserAccounts) {\n button.innerText = 'Anonymous upload is disabled.\\nLog in or register to upload.'\n } else {\n button.innerText = 'Running in private mode.\\nLog in to upload.'\n }\n } else {\n return page.prepareUpload()\n }\n}\n\npage.verifyToken = token => {\n return axios.post('api/tokens/verify', { token }).then(response => {\n localStorage[lsKeys.token] = token\n page.token = token\n\n // If user has its own retention periods array, override defaults\n if (Array.isArray(response.data.retentionPeriods)) {\n page.temporaryUploadAges = response.data.retentionPeriods\n page.defaultTemporaryUploadAge = response.data.defaultRetentionPeriod\n }\n\n return page.prepareUpload()\n }).catch(error => {\n return swal({\n title: 'An error occurred!',\n text: error.response.data ? error.response.data.description : error.toString(),\n icon: 'error'\n }).then(() => {\n if (error.response.data && error.response.data.code === 10001) {\n localStorage.removeItem(lsKeys.token)\n window.location.reload()\n } else {\n page.onInitError()\n }\n })\n })\n}\n\npage.prepareUpload = () => {\n // I think this fits best here because we need to check for a valid token before we can get the albums\n if (page.token) {\n // Change /auth link to /dashboard\n const authLink = document.querySelector('#linksColumn a[href=\"auth\"]')\n if (authLink) authLink.setAttribute('href', 'dashboard')\n\n // Display the album selection\n document.querySelector('#albumDiv').classList.remove('is-hidden')\n\n page.albumSelect = document.querySelector('#albumSelect')\n page.albumSelectOnChange = () => {\n page.album = parseInt(page.albumSelect.value)\n // Re-generate ShareX config file\n if (typeof page.prepareShareX === 'function') page.prepareShareX()\n }\n page.albumSelect.addEventListener('change', page.albumSelectOnChange)\n\n // Fetch albums\n page.fetchAlbums()\n } else if (page.enableUserAccounts) {\n document.querySelector('#loginLinkText').innerHTML = 'Create an account and keep track of your uploads'\n }\n\n // Prepare & generate config tab\n page.prepareUploadConfig()\n\n // Update elements wherever applicable\n document.querySelector('#maxSize > span').innerHTML = page.getPrettyBytes(page.maxSizeBytes)\n document.querySelector('#loginToUpload').classList.add('is-hidden')\n\n // Prepare & generate files upload tab\n page.prepareDropzone()\n\n // Generate ShareX config file\n if (typeof page.prepareShareX === 'function') page.prepareShareX()\n\n // Prepare urls upload tab\n const urlMaxSize = document.querySelector('#urlMaxSize')\n if (urlMaxSize) {\n page.urlMaxSize = parseInt(urlMaxSize.innerHTML)\n page.urlMaxSizeBytes = page.urlMaxSize * 1e6\n urlMaxSize.innerHTML = page.getPrettyBytes(page.urlMaxSizeBytes)\n }\n\n const uploadUrls = document.querySelector('#uploadUrls')\n if (uploadUrls) {\n uploadUrls.addEventListener('click', event => {\n page.addUrlsToQueue()\n })\n }\n\n // Get all tabs\n const tabsContainer = document.querySelector('#tabs')\n const tabs = tabsContainer.querySelectorAll('li')\n for (let i = 0; i < tabs.length; i++) {\n const id = tabs[i].dataset.id\n const tabContent = document.querySelector(`#${id}`)\n if (!tabContent) continue\n\n tabs[i].addEventListener('click', () => {\n page.setActiveTab(i)\n })\n page.tabs.push({ tab: tabs[i], content: tabContent })\n }\n\n // Set first valid tab as the default active tab\n if (page.tabs.length) {\n page.setActiveTab(0)\n tabsContainer.classList.remove('is-hidden')\n }\n}\n\npage.setActiveTab = index => {\n for (let i = 0; i < page.tabs.length; i++) {\n if (i === index) {\n page.tabs[i].tab.classList.add('is-active')\n page.tabs[i].content.classList.remove('is-hidden')\n page.activeTab = index\n } else {\n page.tabs[i].tab.classList.remove('is-active')\n page.tabs[i].content.classList.add('is-hidden')\n }\n }\n}\n\npage.fetchAlbums = () => {\n return axios.get('api/albums', {\n headers: {\n simple: '1',\n token: page.token\n }\n }).then(response => {\n if (response.data.success === false) {\n return swal('An error occurred!', response.data.description, 'error')\n }\n\n // Create an option for each album\n if (Array.isArray(response.data.albums) && response.data.albums.length) {\n for (let i = 0; i < response.data.albums.length; i++) {\n const album = response.data.albums[i]\n const option = document.createElement('option')\n option.value = album.id\n option.innerHTML = album.name\n page.albumSelect.appendChild(option)\n }\n }\n }).catch(page.onInitError)\n}\n\npage.prepareDropzone = () => {\n // Parse template element\n const previewNode = document.querySelector('#tpl')\n page.previewTemplate = previewNode.innerHTML\n previewNode.parentNode.removeChild(previewNode)\n\n // Generate files upload tab\n const tabDiv = document.querySelector('#tab-files')\n const div = document.createElement('div')\n div.className = 'control is-expanded'\n div.innerHTML = `\nMax length is ${page.albumTitleMaxLength} characters.
\nMax length is ${page.albumDescMaxLength} characters.
\n${help}
` : ''}\n `\n field.querySelector('div.control').appendChild(control)\n\n form.appendChild(field)\n }\n\n const submit = document.createElement('div')\n submit.className = 'field'\n submit.innerHTML = `\n\n \n
\n\n This configuration will only be used in this browser.
\n After reloading the page, some of them will also be applied to the ShareX config that you can download by clicking on the ShareX icon below.\n