HEX
Server: Apache/2.4.65 (Debian)
System: Linux 88f31f35b0b8 6.1.0-38-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.147-1 (2025-08-02) x86_64
User: www-data (33)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/advanced-ads/assets/dist/screen-support.js.map
{"version":3,"file":"screen-support.js","mappings":"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","sources":["webpack://advanced-ads/./src/admin/partials/file-uploader.js","webpack://advanced-ads/./src/admin/screen-support/autocomplete.js","webpack://advanced-ads/./src/admin/screen-support/submit-ticket.js","webpack://advanced-ads/./src/admin/screen-support/support.css?dfb3","webpack://advanced-ads/external var \"advancedAds.utils\"","webpack://advanced-ads/external window [\"wp\",\"domReady\"]","webpack://advanced-ads/webpack/bootstrap","webpack://advanced-ads/webpack/runtime/compat get default export","webpack://advanced-ads/webpack/runtime/define property getters","webpack://advanced-ads/webpack/runtime/hasOwnProperty shorthand","webpack://advanced-ads/webpack/runtime/make namespace object","webpack://advanced-ads/./src/admin/screen-support/support.js"],"sourcesContent":["/* eslint-disable no-alert */\r\nclass FileUploader {\r\n\t/**\r\n\t * @param {HTMLElement}      wrap    Wrap element\r\n\t * @param {HTMLInputElement} inputEl File input element (carries data-* config)\r\n\t */\r\n\tconstructor( wrap, inputEl ) {\r\n\t\tthis.wrap = wrap;\r\n\t\tthis.input = inputEl;\r\n\t\tthis.ui = {\r\n\t\t\tdropZone: wrap.querySelector( '.dropzone' ),\r\n\t\t};\r\n\r\n\t\t// ── Read limits from data-attributes on the input ────────────\r\n\t\tthis.maxSizeMB = parseFloat( inputEl.dataset.maxSizeMb ) || 5;\r\n\t\tthis.maxFiles = parseInt( inputEl.dataset.maxFiles ) || 10;\r\n\t\tthis.allowedExt = (\r\n\t\t\tinputEl.dataset.allowedExt || 'jpg,jpeg,png,gif,svg,pdf,docx,txt'\r\n\t\t)\r\n\t\t\t.split( ',' )\r\n\t\t\t.map( ( e ) => e.trim().toLowerCase() );\r\n\t\t// ─────────────────────────────────────────────────────────────\r\n\r\n\t\tthis.maxSizeBytes = this.maxSizeMB * 1024 * 1024;\r\n\r\n\t\t// Internal state\r\n\t\tthis.selectedFiles = [];\r\n\r\n\t\t// Setup\r\n\t\tthis.input.accept = this.allowedExt.map( ( e ) => '.' + e ).join( ',' );\r\n\t\tthis._createRegions();\r\n\t\tthis._renderHints();\r\n\t\tthis._bindEvents();\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis.selectedFiles = [];\r\n\t\tthis._renderSelected();\r\n\t}\r\n\r\n\t// ── Event binding ─────────────────────────────────────────────\r\n\r\n\t_bindEvents() {\r\n\t\t// Native file picker\r\n\t\tthis.input.addEventListener( 'change', ( e ) => {\r\n\t\t\tthis._processFiles( e.target.files );\r\n\t\t\tthis.input.value = ''; // reset so same file can be re-selected\r\n\t\t} );\r\n\r\n\t\t// Drag & drop\r\n\t\tthis.ui.dropZone.addEventListener( 'dragover', ( e ) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tif ( ! this.ui.dropZone.classList.contains( 'limit-reached' ) ) {\r\n\t\t\t\tthis.ui.dropZone.classList.add( 'dragover' );\r\n\t\t\t}\r\n\t\t} );\r\n\t\tthis.ui.dropZone.addEventListener( 'dragleave', () =>\r\n\t\t\tthis.ui.dropZone.classList.remove( 'dragover' )\r\n\t\t);\r\n\t\tthis.ui.dropZone.addEventListener( 'drop', ( e ) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tthis.ui.dropZone.classList.remove( 'dragover' );\r\n\t\t\tthis._processFiles( e.dataTransfer.files );\r\n\t\t} );\r\n\t}\r\n\r\n\t// ── UI Rendering ──────────────────────────────────────────────\r\n\r\n\t_createRegions() {\r\n\t\t// Count badge\r\n\t\tconst countBadge = document.createElement( 'div' );\r\n\t\tcountBadge.className = 'file-count-badge';\r\n\t\tcountBadge.style.display = 'none';\r\n\t\tthis.wrap.appendChild( countBadge );\r\n\t\tthis.ui.countBadge = countBadge;\r\n\r\n\t\t// Error box\r\n\t\tconst errorBox = document.createElement( 'div' );\r\n\t\terrorBox.className = 'error-box';\r\n\t\terrorBox.style.display = 'none';\r\n\t\tthis.wrap.appendChild( errorBox );\r\n\t\tthis.ui.errorBox = errorBox;\r\n\r\n\t\t// Error box title\r\n\t\tconst errorBoxTitle = document.createElement( 'p' );\r\n\t\terrorBoxTitle.className = 'error-box-title';\r\n\t\terrorBoxTitle.innerHTML = 'Some files were rejected:';\r\n\t\terrorBox.appendChild( errorBoxTitle );\r\n\r\n\t\t// Error list\r\n\t\tconst errorList = document.createElement( 'ul' );\r\n\t\terrorList.className = 'error-list';\r\n\t\terrorBox.appendChild( errorList );\r\n\t\tthis.ui.errorList = errorList;\r\n\r\n\t\t// Selected container\r\n\t\tconst selectedContainer = document.createElement( 'div' );\r\n\t\tselectedContainer.className = 'selected-files-container';\r\n\t\tthis.wrap.appendChild( selectedContainer );\r\n\t\tthis.ui.selectedContainer = selectedContainer;\r\n\t}\r\n\r\n\t_renderHints() {\r\n\t\t// append div with class upload-hints\r\n\t\tconst hints = document.createElement( 'div' );\r\n\t\thints.className = 'upload-hints';\r\n\t\thints.innerHTML =\r\n\t\t\t`<div><strong>Allowed:</strong> ${ this.allowedExt\r\n\t\t\t\t.map( ( e ) => '.' + e )\r\n\t\t\t\t.join( ', ' ) }</div>` +\r\n\t\t\t`<span><strong>Max size:</strong> ${ this.maxSizeMB } MB per file</span>` +\r\n\t\t\t`<span><strong>Max files:</strong> ${ this.maxFiles }</span>`;\r\n\r\n\t\tthis.ui.dropZone.appendChild( hints );\r\n\t}\r\n\r\n\t_updateCountBadge() {\r\n\t\tconst total = this.selectedFiles.length;\r\n\t\tconst badge = this.ui.countBadge;\r\n\r\n\t\tif ( total === 0 ) {\r\n\t\t\tbadge.style.display = 'none';\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tbadge.style.display = 'inline-block';\r\n\t\tbadge.textContent = `${ total } / ${ this.maxFiles } file${\r\n\t\t\ttotal !== 1 ? 's' : ''\r\n\t\t} selected`;\r\n\t\tbadge.classList.toggle( 'at-limit', total >= this.maxFiles );\r\n\r\n\t\t// Visually lock drop zone at limit\r\n\t\tthis.ui.dropZone.classList.toggle(\r\n\t\t\t'limit-reached',\r\n\t\t\ttotal >= this.maxFiles\r\n\t\t);\r\n\t}\r\n\r\n\t_showErrors( rejections ) {\r\n\t\tconst { errorBox, errorList } = this.ui;\r\n\t\tif ( rejections.length === 0 ) {\r\n\t\t\terrorBox.style.display = 'none';\r\n\t\t\treturn;\r\n\t\t}\r\n\t\terrorList.innerHTML = rejections\r\n\t\t\t.map(\r\n\t\t\t\t( r ) =>\r\n\t\t\t\t\t`<li><strong>${ r.name }</strong>: ${ r.reasons.join(\r\n\t\t\t\t\t\t'; '\r\n\t\t\t\t\t) }</li>`\r\n\t\t\t)\r\n\t\t\t.join( '' );\r\n\t\terrorBox.style.display = 'block';\r\n\t}\r\n\r\n\t_createFileItem( data ) {\r\n\t\tconst { id, filename, fileimage, datetime, filesize } = data;\r\n\r\n\t\tconst box = document.createElement( 'div' );\r\n\t\tbox.className = 'file-item';\r\n\t\tbox.dataset.id = id;\r\n\r\n\t\t// Thumbnail or generic icon\r\n\t\tconst imgDiv = document.createElement( 'div' );\r\n\t\timgDiv.className = 'file-image';\r\n\t\tif ( this._isImage( filename ) ) {\r\n\t\t\tconst img = document.createElement( 'img' );\r\n\t\t\timg.src = fileimage;\r\n\t\t\timg.alt = '';\r\n\t\t\timgDiv.appendChild( img );\r\n\t\t} else {\r\n\t\t\timgDiv.innerHTML = '<i class=\"far fa-file-alt\"></i>';\r\n\t\t}\r\n\r\n\t\t// File metadata\r\n\t\tconst detail = document.createElement( 'div' );\r\n\t\tdetail.className = 'file-detail';\r\n\t\tdetail.innerHTML = `\r\n      <h6>${ filename }</h6>\r\n      <p>\r\n        <span>Size: ${ filesize }</span>\r\n        <span style=\"margin-left:10px\">Modified: ${ datetime }</span>\r\n      </p>\r\n    `;\r\n\r\n\t\t// Action buttons\r\n\t\tconst actions = document.createElement( 'div' );\r\n\t\tactions.className = 'file-actions';\r\n\r\n\t\tconst deleteBtn = document.createElement( 'button' );\r\n\t\tdeleteBtn.className = 'file-action-btn';\r\n\t\tdeleteBtn.textContent = 'Delete';\r\n\t\tdeleteBtn.addEventListener( 'click', () => this._deleteSelected( id ) );\r\n\t\tactions.appendChild( deleteBtn );\r\n\t\tdetail.appendChild( actions );\r\n\t\tbox.appendChild( imgDiv );\r\n\t\tbox.appendChild( detail );\r\n\t\treturn box;\r\n\t}\r\n\r\n\t_renderSelected() {\r\n\t\tthis.ui.selectedContainer.innerHTML = '';\r\n\t\tthis.selectedFiles.forEach( ( f ) =>\r\n\t\t\tthis.ui.selectedContainer.appendChild( this._createFileItem( f ) )\r\n\t\t);\r\n\t\tthis._updateCountBadge();\r\n\t}\r\n\r\n\t// ── State mutations ───────────────────────────────────────────\r\n\r\n\t_deleteSelected( id ) {\r\n\t\tif (\r\n\t\t\tglobalThis.confirm( 'Are you sure you want to delete this file?' )\r\n\t\t) {\r\n\t\t\tthis.selectedFiles = this.selectedFiles.filter(\r\n\t\t\t\t( f ) => f.id !== id\r\n\t\t\t);\r\n\t\t\tthis._renderSelected();\r\n\t\t}\r\n\t}\r\n\r\n\t// ── Core: process a FileList ──────────────────────────────────\r\n\r\n\t_processFiles( fileList ) {\r\n\t\tconst rejections = [];\r\n\t\tconst slots = this.maxFiles - this.selectedFiles.length;\r\n\r\n\t\t// Already at limit before even looking at new files\r\n\t\tif ( slots <= 0 ) {\r\n\t\t\tthis._showErrors( [\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'Selection blocked',\r\n\t\t\t\t\treasons: [\r\n\t\t\t\t\t\t`you have already reached the limit of ${ this.maxFiles } files`,\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t] );\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet accepted = 0;\r\n\r\n\t\tfor ( const file of fileList ) {\r\n\t\t\t// Enforce count limit across this batch\r\n\t\t\tif ( accepted >= slots ) {\r\n\t\t\t\trejections.push( {\r\n\t\t\t\t\tname: file.name,\r\n\t\t\t\t\treasons: [ `max file limit of ${ this.maxFiles } reached` ],\r\n\t\t\t\t} );\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// Validate extension & size\r\n\t\t\tconst errors = this._validateFile( file );\r\n\t\t\tif ( errors.length > 0 ) {\r\n\t\t\t\trejections.push( { name: file.name, reasons: errors } );\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// All good — read as data URL\r\n\t\t\tconst reader = new globalThis.FileReader();\r\n\t\t\treader.onloadend = () => {\r\n\t\t\t\tthis.selectedFiles.push( {\r\n\t\t\t\t\tid: this._generateId(),\r\n\t\t\t\t\tfilename: file.name,\r\n\t\t\t\t\tfiletype: file.type,\r\n\t\t\t\t\tfileimage: reader.result,\r\n\t\t\t\t\tdatetime: file.lastModified\r\n\t\t\t\t\t\t? new Date( file.lastModified ).toLocaleString(\r\n\t\t\t\t\t\t\t\t'en-IN'\r\n\t\t\t\t\t\t  )\r\n\t\t\t\t\t\t: 'Unknown',\r\n\t\t\t\t\tfilesize: this._formatSize( file.size ),\r\n\t\t\t\t} );\r\n\t\t\t\tthis._renderSelected();\r\n\t\t\t};\r\n\t\t\treader.readAsDataURL( file );\r\n\t\t\taccepted++;\r\n\t\t}\r\n\r\n\t\tthis._showErrors( rejections );\r\n\t}\r\n\r\n\t// ── Utilities ─────────────────────────────────────────────────\r\n\r\n\t_generateId() {\r\n\t\treturn (\r\n\t\t\tMath.random().toString( 36 ).slice( 2, 9 ) +\r\n\t\t\tDate.now().toString( 36 )\r\n\t\t);\r\n\t}\r\n\r\n\t_formatSize( bytes, decimals = 2 ) {\r\n\t\tif ( bytes === 0 ) {\r\n\t\t\treturn '0 Bytes';\r\n\t\t}\r\n\t\tconst k = 1024;\r\n\t\tconst sizes = [ 'Bytes', 'KB', 'MB', 'GB', 'TB' ];\r\n\t\tconst i = Math.floor( Math.log( bytes ) / Math.log( k ) );\r\n\t\treturn (\r\n\t\t\tparseFloat(\r\n\t\t\t\t( bytes / Math.pow( k, i ) ).toFixed( Math.max( 0, decimals ) )\r\n\t\t\t) +\r\n\t\t\t' ' +\r\n\t\t\tsizes[ i ]\r\n\t\t);\r\n\t}\r\n\r\n\t_isImage( filename ) {\r\n\t\treturn /\\.(jpg|jpeg|png|gif|svg)$/i.test( filename );\r\n\t}\r\n\r\n\t_getExt( filename ) {\r\n\t\treturn filename.split( '.' ).pop().toLowerCase();\r\n\t}\r\n\r\n\t// ── Validation ────────────────────────────────────────────────\r\n\r\n\t_validateFile( file ) {\r\n\t\tconst errors = [];\r\n\t\tconst ext = this._getExt( file.name );\r\n\r\n\t\tif ( ! this.allowedExt.includes( ext ) ) {\r\n\t\t\terrors.push( `\".${ ext }\" is not an allowed extension` );\r\n\t\t}\r\n\r\n\t\tif ( file.size > this.maxSizeBytes ) {\r\n\t\t\terrors.push(\r\n\t\t\t\t`exceeds max size of ${\r\n\t\t\t\t\tthis.maxSizeMB\r\n\t\t\t\t} MB (is ${ this._formatSize( file.size ) })`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn errors;\r\n\t}\r\n}\r\n\r\nexport { FileUploader };\r\n","// Debounce function to limit the rate of API calls\r\nconst debounce = ( func, delay ) => {\r\n\tlet timeoutId;\r\n\treturn ( ...args ) => {\r\n\t\tif ( timeoutId ) {\r\n\t\t\tclearTimeout( timeoutId );\r\n\t\t}\r\n\t\ttimeoutId = setTimeout( () => {\r\n\t\t\tfunc( ...args );\r\n\t\t}, delay );\r\n\t};\r\n};\r\n\r\nexport function searchCombobox(\r\n\tinputId,\r\n\tsuggestionsListId,\r\n\tendpoint,\r\n\tformatSuggestion,\r\n\tonSelect\r\n) {\r\n\tconst input = document.getElementById( inputId );\r\n\tconst suggestionsList = document.getElementById( suggestionsListId );\r\n\tlet selectedSuggestionIndex = -1;\r\n\r\n\t// fetch users from API\r\n\tconst fetchData = async ( search ) => {\r\n\t\ttry {\r\n\t\t\tconst response = await fetch(\r\n\t\t\t\tendpoint.replace( '{{search}}', search )\r\n\t\t\t);\r\n\t\t\treturn await response.json();\r\n\t\t} catch ( error ) {\r\n\t\t\tconsole.error( 'Error fetching:', error );\r\n\t\t\treturn [];\r\n\t\t}\r\n\t};\r\n\r\n\t// Render suggestions in the dropdown\r\n\tconst renderSuggestions = ( suggestions ) => {\r\n\t\t// clear previous suggestions\r\n\t\tclearSuggestions();\r\n\t\t// set aria-expanded attribute\r\n\t\tinput.setAttribute( 'aria-expanded', 'true' );\r\n\t\tsuggestionsList.style.display = 'block';\r\n\r\n\t\t// Show \"No results found\" message if no suggestions\r\n\t\tif ( suggestions.length === 0 ) {\r\n\t\t\tconst li = document.createElement( 'li' );\r\n\t\t\tli.textContent = 'No results found';\r\n\t\t\tli.classList.add( 'no-results' );\r\n\t\t\tsuggestionsList.appendChild( li );\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// iterate over suggestions and create list items\r\n\t\t// for each suggestion, create a list item and append it to the suggestions list\r\n\t\tsuggestions.forEach( ( suggestion, index ) => {\r\n\t\t\tconst li = document.createElement( 'li' );\r\n\t\t\tli.id = `suggestion-${ index }`;\r\n\t\t\tli.setAttribute( 'role', 'option' );\r\n\t\t\tli.innerHTML = formatSuggestion( suggestion );\r\n\t\t\tli.dataset.index = index;\r\n\r\n\t\t\t// add event listener for suggestion click\r\n\t\t\t// when a suggestion is clicked, set the input value to the suggestion name\r\n\t\t\tli.addEventListener( 'click', () => {\r\n\t\t\t\tonSelect( suggestion, input );\r\n\t\t\t\tclearSuggestions();\r\n\t\t\t} );\r\n\r\n\t\t\t// append the list item to the suggestions list\r\n\t\t\tsuggestionsList.appendChild( li );\r\n\t\t} );\r\n\t};\r\n\r\n\t// clear suggestions\r\n\tconst clearSuggestions = () => {\r\n\t\tsuggestionsList.innerHTML = '';\r\n\t\tselectedSuggestionIndex = -1;\r\n\t\t// set aria-expanded attribute\r\n\t\tinput.setAttribute( 'aria-expanded', 'false' );\r\n\t\tsuggestionsList.style.display = '';\r\n\t\t// remove aria-activedescendant attribute\r\n\t\tinput.removeAttribute( 'aria-activedescendant' );\r\n\t};\r\n\r\n\t// Update the selected suggestion\r\n\t// Highlight the selected suggestion\r\n\tconst updateSelectedSuggestion = () => {\r\n\t\tconst suggestions = suggestionsList.querySelectorAll(\r\n\t\t\t'li:not(.no-results)'\r\n\t\t);\r\n\t\t// find the currently selected suggestion and highlight it\r\n\t\tsuggestions.forEach( ( li, index ) => {\r\n\t\t\tif ( index === selectedSuggestionIndex ) {\r\n\t\t\t\t// add selected class\r\n\t\t\t\tli.classList.add( 'selected' );\r\n\t\t\t\t// scroll the selected suggestion into view\r\n\t\t\t\tli.scrollIntoView( { block: 'nearest' } );\r\n\t\t\t\t// set aria-activedescendant attribute\r\n\t\t\t\tinput.setAttribute( 'aria-activedescendant', li.id );\r\n\t\t\t} else {\r\n\t\t\t\t// remove selected class\r\n\t\t\t\tli.classList.remove( 'selected' );\r\n\t\t\t}\r\n\t\t} );\r\n\t};\r\n\r\n\t// Handle input event\r\n\tconst handleInput = async ( e ) => {\r\n\t\t// Get the input value\r\n\t\tconst query = e.target.value.toLowerCase();\r\n\r\n\t\t// Clear suggestions if input is empty\r\n\t\tif ( query.length < 1 ) {\r\n\t\t\tclearSuggestions();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst data = await fetchData( query );\r\n\t\trenderSuggestions( data );\r\n\t};\r\n\r\n\t// add debounce to input event\r\n\tinput.addEventListener( 'input', debounce( handleInput, 300 ) );\r\n\t// Handle keyboard navigation\r\n\tinput.addEventListener( 'keydown', ( e ) => {\r\n\t\t// get the current suggestions\r\n\t\tconst suggestions = suggestionsList.querySelectorAll(\r\n\t\t\t'li:not(.no-results)'\r\n\t\t);\r\n\t\t// check if there are any suggestions and if the suggestions list is open\r\n\t\tif (\r\n\t\t\tsuggestions.length === 0 ||\r\n\t\t\tinput.getAttribute( 'aria-expanded' ) === 'false'\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Handle arrow key down navigation and move down the suggestions\r\n\t\tif ( e.key === 'ArrowDown' ) {\r\n\t\t\te.preventDefault();\r\n\t\t\tselectedSuggestionIndex =\r\n\t\t\t\t( selectedSuggestionIndex + 1 ) % suggestions.length;\r\n\t\t\tupdateSelectedSuggestion();\r\n\r\n\t\t\t// Handle arrow key up navigation and move up the suggestions\r\n\t\t} else if ( e.key === 'ArrowUp' ) {\r\n\t\t\te.preventDefault();\r\n\t\t\tselectedSuggestionIndex =\r\n\t\t\t\t( selectedSuggestionIndex - 1 + suggestions.length ) %\r\n\t\t\t\tsuggestions.length;\r\n\t\t\tupdateSelectedSuggestion();\r\n\r\n\t\t\t// Handle enter key and select the suggestion\r\n\t\t} else if ( e.key === 'Enter' ) {\r\n\t\t\te.preventDefault();\r\n\t\t\tif ( selectedSuggestionIndex > -1 ) {\r\n\t\t\t\tsuggestions[ selectedSuggestionIndex ].click();\r\n\t\t\t}\r\n\t\t\t// Handle escape key and close the suggestions\r\n\t\t} else if ( e.key === 'Escape' ) {\r\n\t\t\tinput.value = '';\r\n\t\t\tclearSuggestions();\r\n\t\t}\r\n\t} );\r\n\r\n\t// Close suggestions when Escape is pressed anywhere in the document\r\n\tdocument.addEventListener( 'keydown', ( e ) => {\r\n\t\tif (\r\n\t\t\te.key === 'Escape' &&\r\n\t\t\tinput.getAttribute( 'aria-expanded' ) === 'true'\r\n\t\t) {\r\n\t\t\tinput.value = '';\r\n\t\t\tclearSuggestions();\r\n\t\t}\r\n\t} );\r\n}\r\n","import { createToast } from '@advancedAds/utils';\r\nimport { FileUploader } from '../partials/file-uploader';\r\n\r\n/**\r\n * Helper to convert Base64 string from the library into a File Blob\r\n *\r\n * @param {string} dataUrl attachment url.\r\n */\r\nfunction base64ToBlob( dataUrl ) {\r\n\tconst [ header, base64 ] = dataUrl.split( ',' );\r\n\tconst mime = header.match( /:(.*?);/ )[ 1 ];\r\n\tconst binary = atob( base64 );\r\n\tconst array = [];\r\n\tfor ( let i = 0; i < binary.length; i++ ) {\r\n\t\tarray.push( binary.charCodeAt( i ) );\r\n\t}\r\n\treturn new Blob( [ new Uint8Array( array ) ], { type: mime } );\r\n}\r\n\r\nfunction submitFormToAPI( form, uploader ) {\r\n\tconst formData = new FormData( form );\r\n\tconst data = Object.fromEntries( formData );\r\n\r\n\tconst selectedFiles = uploader.selectedFiles || [];\r\n\tconst hasFiles = selectedFiles.length > 0;\r\n\r\n\tlet submitBody;\r\n\tconst headers = {};\r\n\r\n\t// Cosmetics\r\n\tconst button = form.querySelector( 'button[type=\"submit\"]' );\r\n\tbutton.classList.add( 'submitting' );\r\n\r\n\t// Use multipart/form-data for file upload\r\n\tif ( hasFiles ) {\r\n\t\tconst submitFormData = new FormData();\r\n\t\tfor ( const [ key, value ] of Object.entries( data ) ) {\r\n\t\t\tsubmitFormData.append( key, value );\r\n\t\t}\r\n\r\n\t\t// Append all files\r\n\t\tselectedFiles.forEach( ( fileObj ) => {\r\n\t\t\tconst blob = base64ToBlob( fileObj.fileimage );\r\n\t\t\tsubmitFormData.append( 'attachments[]', blob, fileObj.filename );\r\n\t\t} );\r\n\t\tsubmitBody = submitFormData;\r\n\t\t// Do NOT set content-type, browser will set it with multipart boundary\r\n\t} else {\r\n\t\t// No files, send as JSON\r\n\t\tsubmitBody = JSON.stringify( data );\r\n\t\theaders[ 'Content-Type' ] = 'application/json';\r\n\t}\r\n\r\n\tfetch( 'https://wpadvancedads.com/wp-json/advanced-ads/v1/create-ticket', {\r\n\t\tmethod: 'POST',\r\n\t\tbody: submitBody,\r\n\t\theaders,\r\n\t} )\r\n\t\t.then( ( response ) => {\r\n\t\t\tif ( response.ok ) {\r\n\t\t\t\tuploader.reset();\r\n\t\t\t\tform.querySelector( '.advads-dialog-button-close' ).click();\r\n\t\t\t\tcreateToast( {\r\n\t\t\t\t\ttype: 'muted',\r\n\t\t\t\t\ticonType: 'success',\r\n\t\t\t\t\ttitle: 'Ticket submitted',\r\n\t\t\t\t\tmessage: 'Your ticket has been submitted successfully',\r\n\t\t\t\t} );\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error( 'Failed to submit form' );\r\n\t\t\t}\r\n\t\t} )\r\n\t\t.catch( ( error ) => {\r\n\t\t\t// Ideally replace this with user feedback instead of console.error in production\r\n\t\t\t// eslint-disable-next-line no-console\r\n\t\t\tcreateToast( {\r\n\t\t\t\ttype: 'error',\r\n\t\t\t\ttitle: 'Failed to submit form',\r\n\t\t\t\tmessage: error.message,\r\n\t\t\t\tinDialog: true,\r\n\t\t\t} );\r\n\t\t} )\r\n\t\t.finally( () => {\r\n\t\t\tbutton.classList.remove( 'submitting' );\r\n\t\t} );\r\n}\r\n\r\nexport function ticketForm() {\r\n\tconst form = document.querySelector( '.advads-dialog-create-ticket form' );\r\n\tconst uploader = new FileUploader(\r\n\t\tdocument.getElementById( 'attachments-container' ),\r\n\t\tdocument.getElementById( 'attachments' )\r\n\t);\r\n\r\n\tform.addEventListener( 'submit', function ( e ) {\r\n\t\te.preventDefault();\r\n\r\n\t\tconst fields = this.querySelectorAll( '.advads-field' );\r\n\t\tlet isValid = true;\r\n\r\n\t\tfields.forEach( ( field ) => {\r\n\t\t\tconst input = field.querySelector( 'input, select, textarea' );\r\n\t\t\tif ( input && ! input.checkValidity() ) {\r\n\t\t\t\tfield.classList.add( 'invalid' );\r\n\t\t\t\tisValid = false;\r\n\t\t\t} else {\r\n\t\t\t\tfield.classList.remove( 'invalid' );\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\tif ( ! isValid ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsubmitFormToAPI( form, uploader );\r\n\t} );\r\n\r\n\tform.querySelectorAll( 'input, select, textarea' ).forEach( ( field ) => {\r\n\t\tfield.addEventListener( 'input', function () {\r\n\t\t\tfield.closest( '.advads-field' ).classList.remove( 'invalid' );\r\n\t\t} );\r\n\t} );\r\n}\r\n","// extracted by mini-css-extract-plugin\nexport {};","module.exports = advancedAds.utils;","module.exports = window[\"wp\"][\"domReady\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Check if module exists (development only)\n\tif (__webpack_modules__[moduleId] === undefined) {\n\t\tvar e = new Error(\"Cannot find module '\" + moduleId + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import domReady from '@wordpress/dom-ready';\r\n\r\nimport './support.css';\r\n\r\nimport { searchCombobox } from './autocomplete';\r\nimport { ticketForm } from './submit-ticket';\r\n\r\ndomReady( function () {\r\n\tsearchCombobox(\r\n\t\t'advads-support-search',\r\n\t\t'suggestions-list',\r\n\t\t'https://wpadvancedads.com/wp-json/wp/v2/search?subtype=post,bwl_kb&search={{search}}',\r\n\t\t( suggestion ) => {\r\n\t\t\tconst subtitle =\r\n\t\t\t\tsuggestion.subtype === 'post' ? 'Turotials' : 'Knowledge Base';\r\n\t\t\treturn `\r\n\t\t\t\t<span class=\"main-text\">${ suggestion.title }</span>\r\n\t\t\t\t<span class=\"secondary-text\">${ subtitle }</span>\r\n\t\t\t`;\r\n\t\t},\r\n\t\t( suggestion, input ) => {\r\n\t\t\twindow.open(\r\n\t\t\t\tsuggestion.url +\r\n\t\t\t\t\t'?utm_source=advanced-ads&utm_medium=link&utm_campaign=plugin_support_searchbox',\r\n\t\t\t\t'_blank'\r\n\t\t\t);\r\n\t\t\tinput.value = '';\r\n\t\t}\r\n\t);\r\n\tticketForm();\r\n} );\r\n"],"names":["FileUploader","constructor","wrap","inputEl","input","ui","dropZone","querySelector","maxSizeMB","parseFloat","dataset","maxSizeMb","maxFiles","parseInt","allowedExt","split","map","e","trim","toLowerCase","maxSizeBytes","selectedFiles","accept","join","_createRegions","_renderHints","_bindEvents","reset","_renderSelected","addEventListener","_processFiles","target","files","value","preventDefault","classList","contains","add","remove","dataTransfer","countBadge","document","createElement","className","style","display","appendChild","errorBox","errorBoxTitle","innerHTML","errorList","selectedContainer","hints","_updateCountBadge","total","length","badge","textContent","toggle","_showErrors","rejections","r","name","reasons","_createFileItem","data","id","filename","fileimage","datetime","filesize","box","imgDiv","_isImage","img","src","alt","detail","actions","deleteBtn","_deleteSelected","forEach","f","globalThis","confirm","filter","fileList","slots","accepted","file","push","errors","_validateFile","reader","FileReader","onloadend","_generateId","filetype","type","result","lastModified","Date","toLocaleString","_formatSize","size","readAsDataURL","Math","random","toString","slice","now","bytes","decimals","k","sizes","i","floor","log","pow","toFixed","max","test","_getExt","pop","ext","includes","debounce","func","delay","timeoutId","args","clearTimeout","setTimeout","searchCombobox","inputId","suggestionsListId","endpoint","formatSuggestion","onSelect","getElementById","suggestionsList","selectedSuggestionIndex","fetchData","search","response","fetch","replace","json","error","console","renderSuggestions","suggestions","clearSuggestions","setAttribute","li","suggestion","index","removeAttribute","updateSelectedSuggestion","querySelectorAll","scrollIntoView","block","handleInput","query","getAttribute","key","click","createToast","base64ToBlob","dataUrl","header","base64","mime","match","binary","atob","array","charCodeAt","Blob","Uint8Array","submitFormToAPI","form","uploader","formData","FormData","Object","fromEntries","hasFiles","submitBody","headers","button","submitFormData","entries","append","fileObj","blob","JSON","stringify","method","body","then","ok","iconType","title","message","Error","catch","inDialog","finally","ticketForm","fields","isValid","field","checkValidity","closest","domReady","subtitle","subtype","window","open","url"],"sourceRoot":""}