| Server IP : 81.2.241.106 / Your IP : 216.73.216.165 Web Server : Apache/2.4.67 (Debian) System : Linux tranq-f.bakta.org 5.10.0-45-amd64 #1 SMP Debian 5.10.259-1 (2026-07-02) x86_64 User : lisky ( 1002) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/lisky/wp-content/plugins/events-manager/includes/js/ |
Upload File : |
{"version":3,"sources":["src/parts/timeranges-editor.js","src/parts/event-editor.js","src/parts/event-editor/recurrences/add-remove.js","src/parts/event-editor/recurrences/drag-drop.js","src/parts/event-editor/recurrences/reschedule.js","src/parts/event-editor/recurrences/recurring-datetimes.js","src/parts/event-editor/recurrences/ui-functions.js","src/parts/event-editor/recurrences/ui-form.js","src/parts/event-editor/recurrences/ui-advanced.js","src/parts/event-editor/recurrences/ui-elements.js","src/parts/event-editor/tickets/ticket-editor.js"],"names":[],"mappings":"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","file":"events-manager-event-editor.js","sourcesContent":["(function() {\n\t'use strict';\n\n\t/**\n\t * Timeranges Editor functionality\n\t */\n\tfunction TimerangesEditor( container ) {\n\t\tthis.init( container );\n\t}\n\n\tTimerangesEditor.prototype = {\n\t\tinit: function( container = null ) {\n\t\t\tthis.bindEvents( container );\n\t\t},\n\n\t\tbindEvents: function( container = null ) {\n\t\t\tlet wrapper = container || document;\n\t\t\tlet self = this;\n\n\t\t\t// Initialize preview if there are existing timeranges\n\t\t\twrapper.querySelectorAll('.em-timeranges-editor').forEach( editor => {\n\t\t\t\t// Add timerange button\n\t\t\t\teditor.addEventListener('click', function(e) {\n\t\t\t\t\tif (e.target.matches('.em-timerange-add') || e.target.closest('.em-timerange-add')) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tlet button = e.target.matches('.em-timerange-add') ? e.target : e.target.closest('.em-timerange-add');\n\t\t\t\t\t\tself.addTimerange(button);\n\t\t\t\t\t\tself.updatePreview(e.target);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Delete timerange button\n\t\t\t\teditor.addEventListener('click', function(e) {\n\t\t\t\t\tif (e.target.matches('.em-timerange-delete') || e.target.closest('.em-timerange-delete')) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tlet button = e.target.matches('.em-timerange-delete') ? e.target : e.target.closest('.em-timerange-delete');\n\t\t\t\t\t\tlet timeranges = button.closest('.em-timeranges');\n\t\t\t\t\t\tself.deleteTimerange(button);\n\t\t\t\t\t\tself.updatePreview( timeranges );\n\t\t\t\t\t}\n\t\t\t\t\t// handle the editor\n\t\t\t\t\tif ( e.target.matches('.em-timerange-editor-edit') ) {\n\t\t\t\t\t\tself.openUnlockModal( e.target );\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\teditor.querySelector('.em-timeranges-editor-modal')?.addEventListener('click', function(e) {\n\t\t\t\t\tif ( e.target.matches('button.unlock-confirm') ) {\n\t\t\t\t\t\tself.unlockEditor( e.target );\n\t\t\t\t\t} else if ( e.target.matches('button.unlock-cancel') ) {\n\t\t\t\t\t\tcloseModal( e.currentTarget );\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Time range validation and overlap detection\n\t\t\t\teditor.addEventListener('change', function(e) {\n\t\t\t\t\tif (e.target.matches('.em-time-start, .em-time-end, .em-time-all-day')) {\n\t\t\t\t\t\tself.validateTimeRanges(e.target);\n\t\t\t\t\t\t// Also update preview when time ranges change\n\t\t\t\t\t\tself.updatePreview(e.target);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Advanced options changes\n\t\t\t\teditor.addEventListener('change', function(e) {\n\t\t\t\t\tif (e.target.matches('.em-timerange-duration, .em-timerange-buffer, .em-timerange-frequency, .em-timerange-duration-unit, .em-timerange-buffer-unit, .em-timerange-frequency-unit, .em-timerange-overlap')) {\n\t\t\t\t\t\tself.updatePreview(e.target);\n\t\t\t\t\t\tif (e.target.matches('.em-timerange-duration-unit')) {\n\t\t\t\t\t\t\tself.syncFrequencyUnit(e.target);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Real-time preview updates for time inputs\n\t\t\t\teditor.addEventListener('input', function(e) {\n\t\t\t\t\tif (e.target.matches('.em-time-start, .em-time-end')) {\n\t\t\t\t\t\tself.updatePreview(e.target);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Real-time duration changes to update frequency placeholder\n\t\t\t\teditor.addEventListener('input', function(e) {\n\t\t\t\t\tif (e.target.matches('.em-timerange-duration')) {\n\t\t\t\t\t\tself.syncFrequencyWithDuration(e.target);\n\t\t\t\t\t\tself.updatePreview(e.target);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Mutual exclusivity between advanced and all-day checkboxes\n\t\t\t\teditor.addEventListener('change', function(e) {\n\t\t\t\t\tif (e.target.matches('.em-timerange-timeslots-trigger input[type=\"checkbox\"]')) {\n\t\t\t\t\t\tself.handleAdvancedToggle(e.target);\n\t\t\t\t\t} else if (e.target.matches('.em-timerange-allday input[type=\"checkbox\"]')) {\n\t\t\t\t\t\tself.handleAllDayToggle(e.target);\n\t\t\t\t\t\tself.updatePreview(e.target);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Preview toggle\n\t\t\t\teditor.addEventListener('click', function(e) {\n\t\t\t\t\tif (e.target.matches('.em-timeranges-preview-toggle') || e.target.closest('.em-timeranges-preview-toggle')) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tlet toggle = e.target.matches('.em-timeranges-preview-toggle') ? e.target : e.target.closest('.em-timeranges-preview-toggle');\n\t\t\t\t\t\tself.togglePreview(toggle);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\teditor.querySelectorAll('.em-timerange .em-time-start').forEach( input => {\n\t\t\t\t\tself.updatePreview( input );\n\t\t\t\t});\n\t\t\t\t// disable things if there's a disabled class (for recurring/repeating events)\n\t\t\t\tif ( editor.classList.contains('disabled') ) {\n\t\t\t\t\tlet selector = 'input[name], .em-timeranges select, .em-timeranges button:not(.em-timerange-editor-edit), .em-timeranges-actions button';\n\t\t\t\t\teditor.querySelectorAll( selector ).forEach( el => { el.disabled = true; });\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\topenUnlockModal: function( button ) {\n\t\t\tlet editor = button.closest('.em-timeranges-editor');\n\t\t\tlet modal = button.closest('.em-timeranges-editor').querySelector('.em-timeranges-editor-modal');\n\t\t\tmodal.editor = editor;\n\t\t\topenModal( modal );\n\t\t\tmodal.addEventListener( 'em_modal_close', function() {\n\t\t\t\t// re-append modal on close for submission\n\t\t\t\teditor.append(modal);\n\t\t\t}, { once: true });\n\t\t},\n\n\t\tunlockEditor: function( button ) {\n\t\t\t// modal actions confirming reschedule and re-appending modal upon close\n\t\t\tlet modal = button.closest('.em-timeranges-editor-modal');\n\t\t\tmodal.editor.classList.remove('disabled')\n\t\t\t// remove all disabled properties\n\t\t\tmodal.editor.querySelectorAll('[disabled]').forEach( el => { el.disabled = false; });\n\t\t\t// move the edit action option to the recurrence set to make it visible\n\t\t\tlet timeranges = modal.editor.querySelector('.em-timeranges');\n\t\t\ttimeranges.insertBefore( modal.querySelector('.timeranges-edit-action'), timeranges.firstElementChild.nextSibling );\n\t\t\t// set the edit nonce so we can update the timeranges on submission\n\t\t\tlet nonce = modal.editor.querySelector('.em-timeranges-editor-nonce');\n\t\t\tif ( nonce ) {\n\t\t\t\tnonce.value = nonce.dataset.nonce;\n\t\t\t} else {\n\t\t\t\talert('ERROR: No nonce found for timeranges edit, editing not possible and your changes will not be saved. Contact an administrator about this.');\n\t\t\t}\n\t\t\tcloseModal(modal);\n\t\t},\n\n\t\taddTimerange: function(button) {\n\t\t\tlet container = button.closest('.em-timeranges-editor').querySelector('.em-timeranges');\n\t\t\tlet template = container.querySelector('template');\n\t\t\tlet currentIndex = parseInt( container.dataset.index || '0', 10 );\n\t\t\tlet newIndex = currentIndex + 1;\n\n\t\t\tif (template) {\n\t\t\t\t// Get template content\n\t\t\t\tlet templateHtml = template.innerHTML;\n\n\t\t\t\t// Replace [X] placeholders with new index\n\t\t\t\tlet newTimerangeHtml = templateHtml.replace(/\\[X\\]/g, `[${newIndex}]`);\n\n\t\t\t\t// Create new timerange element\n\t\t\t\tlet tempDiv = document.createElement('div');\n\t\t\t\ttempDiv.innerHTML = newTimerangeHtml;\n\t\t\t\tlet newTimerange = tempDiv.firstElementChild;\n\n\t\t\t\t// Insert before the add button\n\t\t\t\ttemplate.before(newTimerange);\n\t\t\t\tem_setup_ui_elements(newTimerange);\n\n\t\t\t\t// Initialize frequency sync for new timerange\n\t\t\t\tlet durationInput = newTimerange.querySelector('.em-timerange-duration');\n\t\t\t\tif (durationInput) {\n\t\t\t\t\tthis.syncFrequencyWithDuration(durationInput);\n\t\t\t\t}\n\n\t\t\t\t// unset all day checkboxes\n\t\t\t\tcontainer.querySelectorAll('.em-timerange-allday input[type=\"checkbox\"]').forEach( checkbox => { if ( checkbox.checked ) { checkbox.click(); } } );\n\n\t\t\t\t// Update count\n\t\t\t\tcontainer.dataset.index = newIndex;\n\t\t\t\tcontainer.dataset.count = container.querySelectorAll('& > .em-timerange').length;\n\n\t\t\t\t// Update preview after adding new timerange\n\t\t\t\tlet startInput = newTimerange.querySelector('.em-time-start');\n\t\t\t\tif (startInput) {\n\t\t\t\t\tthis.updatePreview(startInput);\n\t\t\t\t}\n\n\t\t\t\t// Trigger custom event\n\t\t\t\tlet event = new CustomEvent('timerange:added', {\n\t\t\t\t\tdetail: { timerange: newTimerange, index: newIndex }\n\t\t\t\t});\n\t\t\t\tcontainer.dispatchEvent(event);\n\t\t\t}\n\t\t},\n\n\t\tdeleteTimerange: function(button) {\n\t\t\tlet container = button.closest('.em-timeranges-editor').querySelector('.em-timeranges');\n\t\t\tlet currentCount = container.querySelectorAll('& > .em-timerange').length;\n\t\t\tlet timerange = button.closest('.em-timerange');\n\n\t\t\t// Only allow deletion if more than one timerange exists\n\t\t\tif ( currentCount > 1 ) {\n\t\t\t\t// move the delete meta input to the editor for submission\n\t\t\t\tlet nonce = timerange.querySelector('.em-timerange-delete-nonce');\n\t\t\t\tif ( nonce ) {\n\t\t\t\t\tnonce.value = nonce.dataset.nonce;\n\t\t\t\t\tcontainer.append(nonce);\n\t\t\t\t}\n\t\t\t\t// Remove the timerange\n\t\t\t\ttimerange.remove();\n\t\t\t\t// Update count\n\t\t\t\tcurrentCount--;\n\t\t\t\tcontainer.dataset.count = container.querySelectorAll('& > .em-timerange').length;\n\t\t\t\t// Trigger custom event\n\t\t\t\tlet event = new CustomEvent('em_timerange:deleted', {\n\t\t\t\t\tdetail: { count: currentCount }\n\t\t\t\t});\n\t\t\t\tcontainer.dispatchEvent(event);\n\t\t\t}\n\t\t},\n\n\t\thandleAdvancedToggle: function(advancedCheckbox) {\n\t\t\t// Find the corresponding all-day checkbox in the same timerange\n\t\t\tlet timerange = advancedCheckbox.closest('.em-timerange');\n\t\t\tif (advancedCheckbox.checked) {\n\t\t\t\t// unset all advanced text inputs\n\t\t\t\ttimerange.querySelectorAll('.em-timerange-timeslots input[type=\"text\"]').forEach( input => { input.value = ''; input.setAttribute('placeholder', '0'); });\n\n\t\t\t\tlet allDayCheckbox = timerange.querySelector('.em-timerange-allday input[type=\"checkbox\"]');\n\n\t\t\t\tif (allDayCheckbox && allDayCheckbox.checked) {\n\t\t\t\t\tallDayCheckbox.checked = false;\n\t\t\t\t\t// Trigger change event to ensure any other listeners are notified\n\t\t\t\t\tallDayCheckbox.dispatchEvent(new Event('change', { bubbles: true }));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// unset all advanced text inputs\n\t\t\t\ttimerange.querySelectorAll('.em-timerange-timeslots input[type=\"text\"]').forEach( input => { input.value = ''; input.setAttribute('placeholder', '0'); });\n\t\t\t\tthis.updatePreview( advancedCheckbox )\n\t\t\t}\n\t\t},\n\n\t\thandleAllDayToggle: function(allDayCheckbox) {\n\t\t\tif (allDayCheckbox.checked) {\n\t\t\t\t// Find the corresponding advanced checkbox in the same timerange\n\t\t\t\tlet timerange = allDayCheckbox.closest('.em-timerange');\n\t\t\t\t// unset all advanced text inputs\n\t\t\t\ttimerange.querySelectorAll('.em-timerange-timeslots input[type=\"text\"]').forEach( input => { input.value = ''; input.setAttribute('placeholder', '0'); });\n\n\t\t\t\tlet advancedCheckbox = timerange.querySelector('.em-timerange-timeslots-trigger input[type=\"checkbox\"]');\n\t\t\t\tif (advancedCheckbox && advancedCheckbox.checked) {\n\t\t\t\t\tadvancedCheckbox.checked = false;\n\t\t\t\t\t// Trigger change event to ensure any other listeners are notified\n\t\t\t\t\tadvancedCheckbox.dispatchEvent(new Event('change', { bubbles: true }));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tvalidateTimeRanges: function(changedInput) {\n\t\t\tlet container = changedInput.closest('.em-timeranges');\n\t\t\tif (!container) return;\n\n\t\t\tlet allTimeranges = container.querySelectorAll('.em-timerange');\n\t\t\tlet hasErrors = false;\n\n\t\t\t// Clear existing errors\n\t\t\tallTimeranges.forEach(timerange => {\n\t\t\t\ttimerange.querySelectorAll('.em-time-start, .em-time-end').forEach(input => {\n\t\t\t\t\tinput.classList.remove('error');\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// Get all time ranges\n\t\t\tlet timeRanges = [];\n\t\t\tallTimeranges.forEach((timerange, index) => {\n\t\t\t\tlet startInput = timerange.querySelector('.em-time-start');\n\t\t\t\tlet endInput = timerange.querySelector('.em-time-end');\n\n\t\t\t\tif (startInput && endInput && startInput.value && endInput.value) {\n\t\t\t\t\ttimeRanges.push({\n\t\t\t\t\t\tindex: index,\n\t\t\t\t\t\tstart: this.timeToMinutes(startInput.value),\n\t\t\t\t\t\tend: this.timeToMinutes(endInput.value),\n\t\t\t\t\t\tstartInput: startInput,\n\t\t\t\t\t\tendInput: endInput\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Check for overlaps\n\t\t\tfor (let i = 0; i < timeRanges.length; i++) {\n\t\t\t\tfor (let j = i + 1; j < timeRanges.length; j++) {\n\t\t\t\t\tlet range1 = timeRanges[i];\n\t\t\t\t\tlet range2 = timeRanges[j];\n\n\t\t\t\t\t// Check if ranges overlap\n\t\t\t\t\tif (this.rangesOverlap(range1, range2)) {\n\t\t\t\t\t\trange1.startInput.classList.add('error');\n\t\t\t\t\t\trange1.endInput.classList.add('error');\n\t\t\t\t\t\trange2.startInput.classList.add('error');\n\t\t\t\t\t\trange2.endInput.classList.add('error');\n\t\t\t\t\t\thasErrors = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn !hasErrors;\n\t\t},\n\n\t\ttimeToMinutes: function(timeString) {\n\t\t\tif (!timeString) return 0;\n\n\t\t\tlet parts = timeString.toLowerCase().replace(/\\s/g, '').match(/^(\\d{1,2}):?(\\d{2})?\\s*(am|pm)?$/);\n\t\t\tif (!parts) return 0;\n\n\t\t\tlet hours = parseInt(parts[1]);\n\t\t\tlet minutes = parseInt(parts[2] || 0);\n\t\t\tlet ampm = parts[3];\n\n\t\t\tif (ampm === 'pm' && hours !== 12) hours += 12;\n\t\t\tif (ampm === 'am' && hours === 12) hours = 0;\n\n\t\t\treturn hours * 60 + minutes;\n\t\t},\n\n\t\trangesOverlap: function(range1, range2) {\n\t\t\t// Handle cases where end time is next day (crosses midnight)\n\t\t\tlet start1 = range1.start;\n\t\t\tlet end1 = range1.end;\n\t\t\tlet start2 = range2.start;\n\t\t\tlet end2 = range2.end;\n\n\t\t\tif (end1 < start1) end1 += 24 * 60; // Add 24 hours if crossing midnight\n\t\t\tif (end2 < start2) end2 += 24 * 60; // Add 24 hours if crossing midnight\n\n\t\t\treturn (start1 < end2) && (start2 < end1);\n\t\t},\n\n\t\tsyncFrequencyWithDuration: function(durationInput) {\n\t\t\tlet timerange = durationInput.closest('.em-timerange');\n\t\t\tif ( timerange ) {\n\t\t\t\tlet frequencyInput = timerange.querySelector( '.em-timerange-frequency' );\n\t\t\t\t// Don't sync if frequency has a value\n\t\t\t\tif ( frequencyInput ) {\n\t\t\t\t\t// Update placeholder with duration value\n\t\t\t\t\tfrequencyInput.placeholder = durationInput.value || '0';\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tsyncFrequencyUnit: function(durationUnitSelect) {\n\t\t\tlet frequencyUnitSelect = durationUnitSelect.closest('.em-timerange')?.querySelector('.em-timerange-frequency-unit');\n\t\t\t// Don't sync if frequency has a value\n\t\t\tif ( frequencyUnitSelect && !frequencyUnitSelect.previousElementSibling?.value ) {\n\t\t\t\t// Sync frequency unit with duration unit\n\t\t\t\tfrequencyUnitSelect.value = durationUnitSelect.value;\n\t\t\t}\n\t\t},\n\n\t\tupdatePreview: function(changedInput) {\n\t\t\tlet editor = changedInput.closest('.em-timeranges-editor');\n\t\t\tlet previewDiv = editor.querySelector('.em-timeranges-preview');\n\t\t\tlet previewContent = previewDiv.querySelector('.em-timeranges-preview-content');\n\n\t\t\tif ( !previewContent ) return;\n\n\t\t\t// Get all timeranges and aggregate their times\n\t\t\tlet timeranges = editor.querySelector( '.em-timeranges' );\n\t\t\tlet allTimeranges = timeranges.querySelectorAll( '.em-timerange' );\n\t\t\tlet allGeneratedTimes = [];\n\t\t\tlet earliestTime = null;\n\t\t\tlet latestTime = null;\n\t\t\tlet latestTimeFormatted = null;\n\t\t\tlet earliestTimeFormatted = null;\n\t\t\tlet allDay = false;\n\n\t\t\tallTimeranges.forEach( timerange => {\n\t\t\t\tlet startInput = timerange.querySelector( '.em-time-start' );\n\t\t\t\tlet endInput = timerange.querySelector( '.em-time-end' );\n\n\t\t\t\tlet duration = this.getTimeValue( timerange, 'duration' );\n\t\t\t\tlet buffer = this.getTimeValue( timerange, 'buffer' );\n\t\t\t\tlet frequency = this.getTimeValue( timerange, 'frequency' );\n\n\t\t\t\t// Track earliest and latest times\n\t\t\t\tif ( startInput.value ) {\n\t\t\t\t\tlet startMinutes = this.timeToMinutes( startInput.value );\n\t\t\t\t\tif ( earliestTime === null || startMinutes < earliestTime ) {\n\t\t\t\t\t\tearliestTime = startMinutes;\n\t\t\t\t\t\tearliestTimeFormatted = startInput.value;\n\t\t\t\t\t\tstartInput.classList.add('earliest-time');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstartInput.classList.remove('earliest-time');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ( endInput.value ) {\n\t\t\t\t\tlet endMinutes = this.timeToMinutes( endInput.value );\n\t\t\t\t\tif ( latestTime === null || endMinutes > latestTime ) {\n\t\t\t\t\t\tlatestTime = endMinutes;\n\t\t\t\t\t\tlatestTimeFormatted = endInput.value;\n\t\t\t\t\t\tendInput.classList.add('latest-time');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tendInput.classList.remove('latest-time');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ( timerange.querySelector( '.em-timerange-allday input[type=\"checkbox\"]' )?.checked ) {\n\t\t\t\t\tallDay = true;\n\t\t\t\t}\n\n\t\t\t\tif ( duration || frequency ) {\n\t\t\t\t\tlet times = this.generateTimeranges( startInput.value, endInput.value, duration, buffer, frequency );\n\t\t\t\t\tallGeneratedTimes.push( ...times );\n\t\t\t\t} else {\n\t\t\t\t\tlet startMinutes = this.timeToMinutes( startInput.value );\n\t\t\t\t\tallGeneratedTimes.push( startMinutes );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Remove duplicates\n\t\t\tlet uniqueTimes = [ ...new Set( allGeneratedTimes ) ];\n\t\t\t// reorder array by value\n\t\t\tuniqueTimes.sort( (a, b) => a - b );\n\t\t\t// get formatted times\n\t\t\tuniqueTimes = uniqueTimes.map( time => this.formatTimeRange( time ) );\n\n\t\t\t// Add earliest and latest times as data attributes\n\t\t\ttimeranges.dataset.start = earliestTimeFormatted;\n\t\t\ttimeranges.dataset.end = latestTimeFormatted;\n\t\t\ttimeranges.dataset.allday = allDay ? 1:0;\n\n\t\t\tpreviewDiv.classList.toggle( 'hidden', uniqueTimes.length === 0 || ( uniqueTimes.length === 1 && allTimeranges.length === 1 ) );\n\t\t\tpreviewContent.innerHTML = uniqueTimes.join( '' );\n\t\t\tpreviewDiv.querySelector( '.em-timeranges-preview-count' ).textContent = uniqueTimes.length;\n\t\t},\n\n\t\tformatSingleTime: function ( timeString ) {\n\t\t\tif ( !timeString ) return '';\n\t\t\tlet minutes = this.timeToMinutes( timeString );\n\t\t\tlet hours = Math.floor( minutes / 60 );\n\t\t\tlet mins = minutes % 60;\n\n\t\t\tlet ampm = hours >= 12 ? 'PM' : 'AM';\n\t\t\tlet displayHours = hours > 12 ? hours - 12 : (hours === 0 ? 12 : hours);\n\n\t\t\treturn `${displayHours}:${mins.toString().padStart(2, '0')} ${ampm}`;\n\t\t},\n\n\t\tgetTimeValue: function(timerange, type) {\n\t\t\tlet qtyInput = timerange.querySelector(`.em-timerange-${type}`);\n\t\t\tlet unitSelect = timerange.querySelector(`.em-timerange-${type}-unit`);\n\n\t\t\tif (!qtyInput || !unitSelect || !qtyInput.value) return 0;\n\n\t\t\tlet qty = parseInt(qtyInput.value);\n\t\t\tlet unit = unitSelect.value;\n\n\t\t\t// Convert to minutes\n\t\t\tswitch (unit) {\n\t\t\t\tcase 'H': return qty * 60; // Hours to minutes\n\t\t\t\tcase 'I': return qty; // Minutes\n\t\t\t\tcase 'S': return Math.round(qty / 60); // Seconds to minutes (rounded)\n\t\t\t\tdefault: return qty;\n\t\t\t}\n\t\t},\n\n\t\tgenerateTimeranges: function(startTime, endTime, duration, buffer, frequency) {\n\t\t\tlet startMinutes = this.timeToMinutes(startTime);\n\t\t\tlet endMinutes = this.timeToMinutes(endTime);\n\t\t\tlet slots = [];\n\t\t\t// Handle crossing midnight\n\n\t\t\tif (endMinutes >= startMinutes) {\n\t\t\t\tlet currentStart = startMinutes;\n\n\t\t\t\tif ( currentStart === endMinutes ) {\n\t\t\t\t\tslots.push( currentStart );\n\t\t\t\t} else {\n\t\t\t\t\tlet interval = frequency > 0 ? frequency : duration + ( buffer || 0 );\n\t\t\t\t\t// Generate overlapping slots based on frequency\n\t\t\t\t\tfor ( let i = 0; currentStart <= endMinutes; i++ ) {\n\t\t\t\t\t\t//let slotEnd = i ? null : currentStart + duration;\n\t\t\t\t\t\tslots.push( currentStart );\n\t\t\t\t\t\tcurrentStart += interval;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn slots;\n\t\t},\n\n\t\tformatTimeRange: function( startMinutes, endMinutes = null ) {\n\t\t\tlet formatTime = (minutes) => {\n\t\t\t\t// Handle crossing midnight\n\t\t\t\tminutes = minutes % (24 * 60);\n\t\t\t\tif (minutes < 0) minutes += 24 * 60;\n\n\t\t\t\tlet hours = Math.floor(minutes / 60);\n\t\t\t\tlet mins = minutes % 60;\n\n\t\t\t\tlet ampm = hours >= 12 ? 'PM' : 'AM';\n\t\t\t\tlet displayHours = hours > 12 ? hours - 12 : (hours === 0 ? 12 : hours);\n\n\t\t\t\treturn `${displayHours}:${mins.toString().padStart(2, '0')} ${ampm}`;\n\t\t\t};\n\n\t\t\tlet result = `<span class=\"em-timeranges-preview-time\">${formatTime(startMinutes)}`;\n\t\t\tif ( endMinutes ) {\n\t\t\t\tresult += ` - ${formatTime(endMinutes)}`;\n\t\t\t}\n\t\t\tresult += '</span>'\n\t\t\treturn result;\n\t\t},\n\n\t\ttogglePreview: function(toggle) {\n\t\t\tlet previewDiv = toggle.closest('.em-timeranges-preview');\n\t\t\tlet previewContent = previewDiv.querySelector('.em-timeranges-preview-content');\n\t\t\tlet chevron = toggle.querySelector('.em-icon-chevron-down, .em-icon-chevron-up');\n\n\t\t\tif (previewContent.classList.contains('hidden')) {\n\t\t\t\tpreviewContent.classList.remove('hidden');\n\t\t\t\tif (chevron) chevron.className = chevron.className.replace('chevron-down', 'chevron-up');\n\n\t\t\t\t// Update preview when expanding\n\t\t\t\tlet container = toggle.closest('.em-timeranges-editor');\n\t\t\t\tif (container) {\n\t\t\t\t\t// Use any timerange input to trigger update, since we now aggregate all\n\t\t\t\t\tlet anyInput = container.querySelector('.em-timerange .em-time-start');\n\t\t\t\t\tif (anyInput) {\n\t\t\t\t\t\tthis.updatePreview(anyInput);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpreviewContent.classList.add('hidden');\n\t\t\t\tif (chevron) chevron.className = chevron.className.replace('chevron-up', 'chevron-down');\n\t\t\t}\n\t\t},\n\t};\n\n\tdocument.addEventListener('em_event_editor_ready', () => {\n\t\twindow.EM_TimerangesEditor = new TimerangesEditor();\n\t});\n\t// add listener for ui setup\n\tdocument.addEventListener('em_setup_ui_elements', function (e) {\n\t\tif (e.detail.container !== document) {\n\t\t\twindow.EM_TimerangesEditor = new TimerangesEditor( e.detail.container );\n\t\t}\n\t});\n\n})();","document.addEventListener('em_event_editor_ready', function() {\n\n\t// load event recurrence data\n\tdocument.querySelectorAll('.em-recurrence-sets').forEach( function( recurrenceSets ) {\n\t\trecurrenceSets.querySelector('.em-recurrence-set[data-type=\"include\"]:first-child').dataset.primary = \"1\"; // set primary recurrence flag for JS (CSS uses selector instead)\n\t\tdocument.dispatchEvent( new CustomEvent('em_event_editor_recurrences', { detail: { recurrenceSets : recurrenceSets } } ) );\n\t});\n\n\t// Event Status Warning\n\tdocument.querySelectorAll('select[name=\"event_active_status\"]').forEach(select => {\n\t\tselect.addEventListener('change', function (event) {\n\t\t\tif ( select.value === '0' && !confirm( EM.event_cancellations.warning.replace(/\\\\n/g, '\\n') ) ) { \n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t});\n\t});\n\n\t// disable recurrence meta box selection since we must always show it\n\tdocument.getElementById('em-event-recurring-hide')?.setAttribute('disabled', '');\n\n\t// Handle the recurring/repeating event selection and initialize showing/hiding relevant recurring sections\n\tdocument.querySelectorAll( '.event_type' ).forEach( eventType => {\n\t\tconst form = eventType.closest( 'form' );\n\t\teventType.addEventListener( 'change', function () {\n\t\t\t// When set to recurring or repeating, sync the main event data to primary recurrence set\n\t\t\tif ( handleRecurring() ) {\n\t\t\t\tlet eventDateTimes = form.querySelector('.event-form-when');\n\t\t\t\tlet eventDatePicker = eventDateTimes.querySelector('.em-datepicker.em-event-dates');\n\t\t\t\tlet selectedDates;\n\t\t\t\tif ( eventDatePicker.classList.contains('em-datepicker-until') ) {\n\t\t\t\t\tselectedDates = [\n\t\t\t\t\t\teventDatePicker.querySelector('.em-date-input-start.flatpickr-input')._flatpickr.selectedDates[0],\n\t\t\t\t\t\teventDatePicker.querySelector('.em-date-input-end.flatpickr-input')._flatpickr.selectedDates[0]\n\t\t\t\t\t];\n\t\t\t\t} else {\n\t\t\t\t\tselectedDates = eventDatePicker.querySelector('.em-date-input.flatpickr-input')._flatpickr.selectedDates;\n\t\t\t\t}\n\t\t\t\tlet eventTimeRange = eventDateTimes.querySelector('.em-time-range');\n\t\t\t\t// we need to get jQuery elements to handle the timepicker\n\t\t\t\tlet eventStartTime = eventTimeRange.querySelector('.em-time-input.em-time-start');\n\t\t\t\tlet eventEndTime = eventTimeRange.querySelector('.em-time-input.em-time-end');\n\t\t\t\tlet eventAllDay = eventTimeRange.querySelector('input.em-time-all-day');\n\t\t\t\tlet timezone = eventDateTimes.querySelector('select.event_timezone')?.value;\n\t\t\t\tlet eventStatus = eventDateTimes.querySelector('select.event_active_status')?.value;\n\t\t\t\tlet setDateTimes = false;\n\n\t\t\t\t// here, we're copying over all the regular event date/time/timezone data into the primary recurrence so there's some UI continuity in case user started adding dates before selecting recurring type\n\t\t\t\tlet recurrenceSet = form.querySelector('.em-recurrence-set[data-primary=\"1\"]');\n\t\t\t\tif ( recurrenceSet ) {\n\t\t\t\t\t// copy over the times first - if not the datepicker triggers a change loop and sets the 12am times back onto the event\n\t\t\t\t\tlet timeRange = recurrenceSet.querySelector( '.em-recurrence-advanced .em-time-range' );\n\t\t\t\t\tif ( timeRange ) {\n\t\t\t\t\t\tlet recurrenceStartTime = timeRange.querySelector( '.em-time-input.em-time-start' );\n\t\t\t\t\t\tlet recurrenceEndTime = timeRange.querySelector( '.em-time-input.em-time-end' );\n\t\t\t\t\t\tlet recurrenceAllDay = timeRange.querySelector( '.em-time-all-day' );\n\t\t\t\t\t\tif ( recurrenceStartTime ) {\n\t\t\t\t\t\t\trecurrenceStartTime.value = eventStartTime?.value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( recurrenceEndTime ) {\n\t\t\t\t\t\t\trecurrenceEndTime.value = eventEndTime?.value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( recurrenceAllDay ) {\n\t\t\t\t\t\t\trecurrenceAllDay.checked = eventAllDay?.checked;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// get equivalent datepicker, timepicker and timezone\n\t\t\t\t\tif ( recurrenceSet.querySelector('select.recurrence_freq')?.value === 'on' ) {\n\t\t\t\t\t\t// we set the selected dates to those we selected in the datepicker, for now\n\t\t\t\t\t\tlet recurrenceDatePicker = recurrenceSet.querySelector('.em-on-selector .em-date-input.flatpickr-input')?._flatpickr\n\t\t\t\t\t\tif ( !recurrenceDatePicker?.selectedDates ) {\n\t\t\t\t\t\t\trecurrenceDatePicker?.setDate( selectedDates, true );\n\t\t\t\t\t\t\tsetDateTimes = true; // setting date triggers the setDateTimes event already\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// get the regular date range\n\t\t\t\t\t\trecurrenceSet.querySelectorAll('.em-recurrence-advanced .em-datepicker .em-date-input.flatpickr-input').forEach( input => {\n\t\t\t\t\t\t\t// add if we don't have dates set already\n\t\t\t\t\t\t\tif ( !input._flatpickr?.selectedDates.length ) {\n\t\t\t\t\t\t\t\tif (input.closest('.em-datepicker-until')) {\n\t\t\t\t\t\t\t\t\tinput._flatpickr.setDate( input.classList.contains('em-date-input-start') ? selectedDates[0] : selectedDates[1], true );\n\t\t\t\t\t\t\t\t\tsetDateTimes = true; // setting date triggers the setDateTimes event already\n\t\t\t\t\t\t\t\t} else if (input.closest('.em-datepicker-range')) {\n\t\t\t\t\t\t\t\t\tinput._flatpickr.setDate( selectedDates, true );\n\t\t\t\t\t\t\t\t\tsetDateTimes = true; // setting date triggers the setDateTimes event already\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t// copy over the timezone\n\t\t\t\t\t[ 'select.recurrence_timezone', 'select.recurrence_status' ].forEach( selector => {\n\t\t\t\t\t\tlet select = recurrenceSet.querySelector( selector );\n\t\t\t\t\t\tlet value = selector === 'select.recurrence_timezone' ? timezone : eventStatus;\n\t\t\t\t\t\tif ( value && select ) {\n\t\t\t\t\t\t\tif ( select.selectize ) {\n\t\t\t\t\t\t\t\tselect.selectize.setValue( value, true );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tselect.value = value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t// trigger a recurrence summary refresh\n\t\t\t\t\tif ( !setDateTimes ) {\n\t\t\t\t\t\trecurrenceSet.closest( '.em-recurrence-sets' ).dispatchEvent( new CustomEvent( 'setDateTimes' ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t/**\n\t\t * Handles toggling of recurring event settings for a form element.\n\t\t * Determines if the event is recurring based on the specified event type and updates the form element's classes accordingly.\n\t\t */\n\t\tlet handleRecurring = function() {\n\t\t\t// check now if it's recurring as well\n\t\t\tlet isRecurring = false;\n\t\t\tif ( form ) {\n\t\t\t\t// it's recurring/repeating if the checkbox is checked, we add is-recurring regardless\n\t\t\t\tisRecurring = eventType.type === 'checkbox' ? eventType.checked : eventType.value !== 'single';\n\t\t\t\tform.classList.toggle( 'em-is-recurring', isRecurring );\n\t\t\t\tif ( eventType.type === 'checkbox' ) {\n\t\t\t\t\t// checkboxes are now only for recurring\n\t\t\t\t\tform.classList.toggle( 'em-type-recurring', eventType.checked );\n\t\t\t\t}\n\t\t\t\t// remove the em-type- classes and add the current selected type, defaulting to single\n\t\t\t\tform.classList.remove( ...[ ...form.classList ].filter( className => className.startsWith( 'em-type-' ) ) );\n\t\t\t\tform.classList.add( 'em-type-' + eventType.value );\n\t\t\t}\n\t\t\treturn isRecurring;\n\t\t}\n\t\thandleRecurring();\n\t});\n\n\tdocument.dispatchEvent( new CustomEvent('em_event_editor_loaded') );\n});","document.addEventListener('em_event_editor_recurrences', function( e ) {\n\tlet recurrenceSets = e.detail.recurrenceSets;\n\n\t// shortcuts for functions in recurrences/ui-functions.js\n\tlet updateRecurrenceSummary = ( recurrenceSet ) => recurrenceSet.dispatchEvent( new CustomEvent('updateRecurrenceSummary', { bubbles: true }) );\n\tlet updateSetsCount = () => recurrenceSets.dispatchEvent( new CustomEvent('updateSetsCount') );\n\tlet updateRecurrenceOrder = () => recurrenceSets.dispatchEvent( new CustomEvent('updateRecurrenceOrder') );\n\n\n\t/* ------------------------------------------------------------\n\t Add/Remove Recurrnces\n\t ------------------------------------------------------------ */\n\n\t// ADD NEW RECURRENCE RULE\n\tlet addRecurrence = function ( recurrenceType ) {\n\t\tlet recurrenceTypeSets = recurrenceSets.querySelector('.em-recurrence-type-' + recurrenceType + ' .em-recurrence-type-sets');\n\n\t\t// Count existing recurrence sets to determine the new index.\n\t\tlet index = recurrenceTypeSets.querySelectorAll('.em-recurrence-set').length + 1;\n\n\t\t// Copy template HTML\n\t\tlet templateHtml = recurrenceSets.querySelector('.em-recurrence-set-template')?.innerHTML;\n\t\tlet recurrenceSet;\n\t\tif ( templateHtml === null ) {\n\t\t\t// legacy template which didn't use the template element to enclose the recurrence set type\n\t\t\tlet recurrenceSet = recurrenceSets.querySelector('.em-recurrence-set-template').cloneNode(true);\n\t\t\trecurrenceSet.classList.remove('em-recurrence-set-template', 'hidden');\n\t\t\trecurrenceSet.innerHTML = recurrenceSet.innerHTML.replace(/T%/g, `${recurrenceType}`).replace(/N%/g, `${index}`);\n\t\t} else {\n\t\t\t// create a blank div which we'll add classes etc. to\n\t\t\trecurrenceSet = document.createElement('div');\n\t\t\t// Replace all occurrences of \"[N%]\" with the new index.\n\t\t\trecurrenceSet.innerHTML = templateHtml.replace(/T%/g, `${recurrenceType}`).replace(/N%/g, `${index}`);\n\t\t}\n\n\t\t// Remove the 'hidden' class and template-specific class; add the active class.\n\t\trecurrenceSet.classList.add('em-recurrence-set', 'new-recurrence-set');\n\t\trecurrenceSet.querySelector('.em-recurrence-set-type').value = recurrenceType;\n\t\trecurrenceSet.dataset.type = recurrenceType;\n\t\trecurrenceSet.dataset.index = index;\n\n\t\t// remove include/exclude specific elements depending on type\n\t\tif ( recurrenceType === 'exclude' ) {\n\t\t\trecurrenceSet.querySelectorAll('.em-recurrence-advanced .only-include-type').forEach(el => el.remove() );\n\t\t}\n\t\tif ( recurrenceType === 'include' ) {\n\t\t\trecurrenceSet.querySelectorAll('.em-recurrence-advanced .only-exclude-type').forEach(el => el.remove() );\n\t\t}\n\n\t\t// anything more before we append\n\t\tlet result = { recurrenceSet: recurrenceSet, index: index, success: true };\n\t\trecurrenceTypeSets.dispatchEvent( new CustomEvent('beforeAddRecurrence', { detail: result }) );\n\n\t\tif ( result.success ) {\n\t\t\t// Insert the new recurrence set above the template.\n\t\t\trecurrenceTypeSets.append(recurrenceSet);\n\t\t\tem_setup_ui_elements( recurrenceSet );\n\t\t\t// run all checks\n\t\t\tupdateSetsCount();\n\t\t\temRecurrenceEditor.updateIntervalDescriptor( recurrenceSet );\n\t\t\temRecurrenceEditor.updateIntervalSelectors( recurrenceSet );\n\t\t\temRecurrenceEditor.updateDurationDescriptor( recurrenceSet );\n\t\t\tupdateRecurrenceSummary( recurrenceSet );\n\t\t}\n\n\t\treturn recurrenceSet;\n\t}\n\t// add include recurrence\n\trecurrenceSets.querySelectorAll('.em-add-recurrence-set[data-type=\"include\"]').forEach( function( addButton ){\n\t\taddButton.addEventListener( 'click', () => addRecurrence('include') );\n\t});\n\t// set up listner to add recurrences, exclude and include, the exclude trigger is in reschedule.js\n\trecurrenceSets.addEventListener( 'addRecurrence', ( e ) => addRecurrence( e.detail.type ) );\n\n\t// REMOVE A RECURRENCE RULE\n\trecurrenceSets.addEventListener('click', function ( e ) {\n\t\tif ( e.target.matches('.em-recurrence-set-action-remove') ) {\n\t\t\tlet removeButton = e.target;\n\t\t\te.preventDefault();\n\n\t\t\t// Locate the recurrence set container for this remove action.\n\t\t\tlet recurrenceSet = removeButton.closest('.em-recurrence-set');\n\n\t\t\t// Find the hidden delete field (an input whose name contains \"[delete]\").\n\t\t\tlet setId = recurrenceSet.querySelector('input.em-recurrence-set-id');\n\t\t\tlet deleteField = recurrenceSet.querySelector('input.em-recurrence-set-delete-field');\n\t\t\tif (setId && deleteField) {\n\t\t\t\t// Transfer the data-nonce value to the hidden input's value.\n\t\t\t\tdeleteField.value = deleteField.getAttribute('data-nonce');\n\n\t\t\t\t// Move the delete field out of the recurrence set into the recurrence container.\n\t\t\t\trecurrenceSets.appendChild(deleteField);\n\t\t\t\trecurrenceSets.appendChild(setId);\n\t\t\t}\n\n\t\t\t// Remove the entire recurrence set from the DOM.\n\t\t\trecurrenceSet.remove();\n\t\t\t// redo all checks\n\t\t\tupdateSetsCount();\n\t\t\tupdateRecurrenceOrder();\n\t\t}\n\t});\n});","document.addEventListener('em_event_editor_recurrences', function( e ) {\n\tlet recurrenceSets = e.detail.recurrenceSets;\n\trecurrenceSets.querySelectorAll('.em-recurrence-type-sets').forEach( function( recurrenceTypeSets ) {\n\t\tlet draggedElem = null;\n\t\tlet placeholder = null;\n\t\tlet offsetX = 0, offsetY = 0;\n\t\tlet originalParent = null, originalNextSibling = null;\n\n\t\trecurrenceTypeSets.addEventListener('mousedown', function(e) {\n\t\t\trecurrenceTypeSets.querySelectorAll('.em-recurrence-set:not(:first-child)').forEach( (recurrenceSet) => recurrenceSet.classList.add('reordering') );\n\t\t\tconst handle = e.target.closest('.em-recurrence-set-action-order');\n\t\t\tif (!handle) return;\n\t\t\tconst set = handle.closest('.em-recurrence-set');\n\t\t\tif (!set) return;\n\t\t\te.preventDefault();\n\n\t\t\t// Store original parent and next sibling for later restoration\n\t\t\toriginalParent = set.parentNode;\n\t\t\toriginalNextSibling = set.nextSibling;\n\n\t\t\tconst rect = set.getBoundingClientRect();\n\t\t\t// Calculate offsets using page coordinates\n\t\t\toffsetX = e.pageX - (rect.left + window.pageXOffset);\n\t\t\toffsetY = e.pageY - (rect.top + window.pageYOffset);\n\n\t\t\t// wrap set into div for styling preservation via .em\n\t\t\tdraggedElem = document.createElement('div');\n\t\t\tdraggedElem.classList.add('em', 'em-recurrence-sets');\n\t\t\tdraggedElem.append(set);\n\n\t\t\t// Create a placeholder with the same dimensions\n\t\t\tplaceholder = document.createElement('div');\n\t\t\tplaceholder.classList.add('drop-placeholder');\n\t\t\tplaceholder.style.height = rect.height + 'px';\n\t\t\tplaceholder.style.width = rect.width + 'px';\n\t\t\toriginalParent.insertBefore(placeholder, originalNextSibling);\n\n\t\t\t// Move the dragged element to document.body so its absolute positioning is relative to the document\n\t\t\tdocument.body.appendChild(draggedElem);\n\t\t\tdraggedElem.style.position = 'absolute';\n\t\t\tdraggedElem.style.width = \"100%\";\n\t\t\tdraggedElem.style.left = (rect.left + window.pageXOffset) + 'px';\n\t\t\tdraggedElem.style.top = (rect.top + window.pageYOffset) + 'px';\n\t\t\tdraggedElem.style.zIndex = '1000';\n\n\t\t\tdocument.addEventListener('mousemove', onMouseMove);\n\t\t\tdocument.addEventListener('mouseup', onMouseUp);\n\t\t});\n\n\t\tfunction onMouseMove(e) {\n\t\t\tif (!draggedElem) return;\n\t\t\t// Update dragged element's position so the cursor stays at the same offset\n\t\t\tdraggedElem.style.left = (e.pageX - offsetX) + 'px';\n\t\t\tdraggedElem.style.top = (e.pageY - offsetY) + 'px';\n\n\t\t\t// Determine where to place the placeholder in the container\n\t\t\tlet sets = Array.from(recurrenceTypeSets.querySelectorAll('.em-recurrence-set'));\n\t\t\tlet inserted = false;\n\t\t\tfor (let set of sets) {\n\t\t\t\tlet rect = set.getBoundingClientRect();\n\t\t\t\tlet setTop = rect.top + window.pageYOffset;\n\t\t\t\tif (e.pageY < setTop + rect.height / 2) {\n\t\t\t\t\trecurrenceTypeSets.insertBefore(placeholder, set);\n\t\t\t\t\tinserted = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!inserted) {\n\t\t\t\trecurrenceTypeSets.appendChild(placeholder);\n\t\t\t}\n\t\t}\n\n\t\tfunction onMouseUp(e) {\n\t\t\tdocument.removeEventListener('mousemove', onMouseMove);\n\t\t\tdocument.removeEventListener('mouseup', onMouseUp);\n\n\t\t\t// Reinsert the dragged element back into its original container before the placeholder\n\t\t\trecurrenceTypeSets.insertBefore(draggedElem.firstElementChild, placeholder);\n\t\t\tdraggedElem.remove();\n\t\t\tplaceholder.remove();\n\t\t\tplaceholder = null;\n\t\t\tdraggedElem = null;\n\t\t\trecurrenceTypeSets.querySelectorAll('.em-recurrence-set').forEach( function( recurrenceSet ) {\n\t\t\t\tif ( recurrenceSet.matches(':first-child') ) {\n\t\t\t\t\trecurrenceSet.dataset.primary = '1';\n\t\t\t\t\trecurrenceSet.querySelectorAll('.em-time-all-day').forEach( el => { el.indeterminate = false; } );\n\t\t\t\t} else {\n\t\t\t\t\tdelete recurrenceSet.dataset.primary;\n\t\t\t\t}\n\t\t\t\trecurrenceSet.classList.remove('reordering')\n\t\t\t});\n\t\t\trecurrenceSets.dispatchEvent( new CustomEvent('updateRecurrenceOrder') ); // we could also bubble this on recurrenceTypeSet\n\t\t}\n\t});\n});","document.addEventListener('em_event_editor_recurrences', function( e ) {\n\tlet recurrenceSets = e.detail.recurrenceSets;\n\n\t// exclude references used throughout here for rescheduling logic\n\tlet recurrenceExcludeSets = recurrenceSets.querySelector('.em-recurrence-type-exclude');\n\tlet recurrenceExcludeModal = recurrenceExcludeSets.querySelector('& > .em-recurrence-set-reshedule-modal');\n\tlet rescheduleExcludeAction = recurrenceExcludeModal.querySelector('.recurrence-reschedule-action');\n\n\t/* ------------------------------------------------------------\n\t UNDO FUNCTIONALITY\n\t ------------------------------------------------------------ */\n\n\t// trigger the undo event when clicked, whether in scope of a recurrent set, set type or all sets\n\trecurrenceSets.querySelectorAll('button.undo').forEach( function( button ) {\n\t\tbutton.addEventListener('click', () => {\n\t\t\tbutton.closest('.em-recurrence-set, .em-recurrence-type, .em-recurrence-sets')?.dispatchEvent( new CustomEvent( 'undo', { detail: { button: button }, bubbles: true } ) )\n\t\t});\n\t});\n\t// listen for an undo event to a single set, set types, or all sets and undo the relevant recurrences.\n\trecurrenceSets.addEventListener('undo', function( e ) {\n\t\te.stopPropagation();\n\t\tlet recurrences;\n\t\tif ( e.target.matches('.em-recurrence-set') ) {\n\t\t\trecurrences = [e.target];\n\t\t} else if ( e.target.matches('.em-recurrence-type') ) {\n\t\t\trecurrences = e.target.querySelectorAll('.em-recurrence-set');\n\t\t} else {\n\t\t\trecurrences = recurrenceSets.querySelectorAll('.em-recurrence-set');\n\t\t}\n\t\trecurrences.forEach( function( recurrenceSet ) {\n\t\t\t// set back previous values and re-disable previously disabled elements\n\t\t\trecurrenceSet.querySelectorAll('[data-undo]:not([type=\"checkbox\"]):not(.selectized)').forEach( input => {\n\t\t\t\tinput.value = input.dataset.undo;\n\t\t\t\tinput.readonly = false;\n\t\t\t\tinput.disabled = false;\n\t\t\t\tif ( input.classList.contains('em-recurrence-frequency') ) {\n\t\t\t\t\tinput.dispatchEvent( new Event('change', { bubbles: false }) );\n\t\t\t\t}\n\t\t\t});\n\t\t\trecurrenceSet.querySelectorAll('input[data-undo][type=\"checkbox\"]').forEach( input => { input.checked = input.dataset.undo === '1'; } );\n\t\t\t//recurrenceSet.querySelectorAll('.em-time-input').forEach( input => { jQuery(input).em_timepicker('setTime', new Date('2020-01-01 ' + input.dataset.undo)) } );\n\t\t\trecurrenceSet.querySelectorAll('.em-datepicker').forEach( function( datePicker ) {\n\t\t\t\tif ( datePicker.closest('.reschedulable') ) {\n\t\t\t\t\tdatePicker.querySelectorAll('input.em-date-input').forEach( el => { el.disabled = true; el.value = ''; } );\n\t\t\t\t\tdatePicker.querySelectorAll('.em-date-input.disabled, .em-datepicker-dates').forEach( el => { el.classList.add('disabled') } );\n\t\t\t\t}\n\t\t\t});\n\t\t\tem_setup_datepicker_dates( recurrenceSet );\n\t\t\trecurrenceSet.querySelectorAll('select.em-selectize.selectized').forEach( el => {\n\t\t\t\tif ( el.dataset.undo !== undefined ) {\n\t\t\t\t\tel.selectize?.setValue( el.dataset.undo.split(',') );\n\t\t\t\t}\n\t\t\t\t// disable rescheduling datepickers\n\t\t\t\tif ( el.closest('.reschedulable') ) {\n\t\t\t\t\tel.selectize?.disable();\n\t\t\t\t}\n\t\t\t});\n\t\t\t// undo the timepicker, by replacing the stored template\n\t\t\tlet timeRangeEditor = recurrenceSet.querySelector('.em-recurrence-timeranges');\n\t\t\tif ( timeRangeEditor ) {\n\t\t\t\ttimeRangeEditor.querySelector('.recurrence-timeranges-editor').innerHTML = timeRangeEditor.querySelector('.recurrence-timeranges-undo').innerHTML;\n\t\t\t}\n\t\t\t// disable other rechedulable items\n\t\t\trecurrenceSet.querySelectorAll('.reschedulable [name]:not(.selectized), .reschedulable button').forEach( input => { input.disabled = true; } );\n\t\t\t// disable the nonces to reschedule this button type\n\t\t\trecurrenceSet.querySelector( 'input[type=\"hidden\"][data-nonce]' ).disabled = true;\n\t\t\t// re-enable the reschedule buttons and set flag to false\n\t\t\trecurrenceSet.querySelectorAll('.reschedule-trigger').forEach( button => { button.disabled = false } );\n\t\t\tdelete recurrenceSet.dataset.rescheduled;\n\t\t\t// unset modified flag for advanced icon\n\t\t\trecurrenceSet.classList.remove('advanced-modified', 'advanced-modified-dates');\n\t\t\t// update descriptors and selectors\n\t\t\temRecurrenceEditor.updateIntervalDescriptor( recurrenceSet );\n\t\t\temRecurrenceEditor.updateIntervalSelectors( recurrenceSet );\n\t\t\temRecurrenceEditor.updateDurationDescriptor( recurrenceSet );\n\t\t});\n\t\t// exclude logic\n\t\tif ( e.target.matches('.em-recurrence-type-exclude') ) {\n\t\t\trecurrenceExcludeSets.querySelectorAll('.em-recurrence-set.new-recurrence-set').forEach( recurrenceSet => recurrenceSet.querySelector('.em-recurrence-set-action-remove')?.click() );\n\t\t\trecurrenceExcludeModal.querySelector('.em-modal-content')?.append( rescheduleExcludeAction );\n\t\t\trescheduleExcludeAction.querySelector('[data-nonce]').disabled = true;\n\t\t} else if ( e.target.matches('.em-recurrence-set[data-type=\"exclude\"]') ) {\n\t\t\t// check if there are more reschedulable sets, if not then remove the reshedulable notice\n\t\t\tif ( e.target.closest('.em-recurrence-type-exclude').querySelectorAll('.em-recurrence-set[data-rescheduled]').length === 0 ) {\n\t\t\t\trecurrenceExcludeModal.querySelector('.em-modal-content')?.append( rescheduleExcludeAction );\n\t\t\t}\n\t\t}\n\t\trecurrenceSets.dispatchEvent( new CustomEvent('updateSetsCount') );\n\t\trecurrenceSets.dispatchEvent( new CustomEvent('setAdvancedDefaults', { bubbles: true }) );\n\t});\n\n\n\t/* ------------------------------------------------------------\n\t RESCHEDULING FUNCTIONALITY\n\t ------------------------------------------------------------ */\n\n\t// RESCHEDULING BUTTONS\n\t// recurrence rescheduling buttons & modals - we don't need to listen to delegated events since this only applies to previously-created recurrences\n\trecurrenceSets.querySelectorAll('.em-recurrence-set').forEach( function( recurrenceSet ){\n\t\tdelete recurrenceSet.dataset.rescheduled;\n\t\tlet modal = recurrenceSet.dataset.type === 'exclude' ? recurrenceExcludeModal : recurrenceSet.querySelector('.em-recurrence-set-reshedule-modal');\n\n\t\t// trigger reschedule\n\t\trecurrenceSet.querySelectorAll('button.reschedule-trigger').forEach( function( button ) {\n\t\t\tbutton.addEventListener('click', function( e ){\n\t\t\t\tif ( recurrenceSet.dataset.rescheduled !== undefined ) {\n\t\t\t\t\tunlockReschedule( button );\n\t\t\t\t} else {\n\t\t\t\t\tmodal.rescheduleButton = button;\n\t\t\t\t\tmodal.classList.toggle( 'primary-recurrence', recurrenceSet.dataset.primary );\n\t\t\t\t\topenModal( modal );\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tif ( recurrenceSet.dataset.type === 'include' ) {\n\t\t\t// modal actions confirming reschedule and re-appending modal upon close\n\t\t\tmodal.addEventListener( 'em_modal_close', function() {\n\t\t\t\t// re-append modal on close for submission\n\t\t\t\trecurrenceSet.append(modal);\n\t\t\t\tdelete modal.rescheduleButton;\n\t\t\t});\n\t\t\tmodal.querySelector('button.reschedule-cancel')?.addEventListener( 'click', () => closeModal(modal) );\n\t\t\tmodal.querySelector('button.reschedule-confirm')?.addEventListener( 'click', function( e ) {\n\t\t\t\tunlockReschedule( modal.rescheduleButton );\n\t\t\t\t// move the reschedule action option to the recurrence set to make it visible\n\t\t\t\trecurrenceSet.querySelector('.em-recurrence-pattern')?.prepend( modal.querySelector('.recurrence-reschedule-action') );\n\t\t\t\t// close modal and mark this as rescheduled\n\t\t\t\trecurrenceSet.dataset.rescheduled = '1';\n\t\t\t\tcloseModal(modal);\n\t\t\t});\n\t\t\trecurrenceSet.addEventListener('undo', function(){\n\t\t\t\tmodal.querySelector('.em-modal-content')?.append( recurrenceSet.querySelector('.recurrence-reschedule-action') );\n\t\t\t});\n\t\t}\n\t});\n\t// unlock rescheduling inputs and store undoable values\n\tlet unlockReschedule = function ( rescheduleButton ) {\n\t\t// remove disabled property from inputs contained in button container\n\t\tlet reschedulable = rescheduleButton.closest('.reschedulable');\n\t\treschedulable.querySelectorAll('[disabled]').forEach( el => { el.disabled = false } ); // TODO the label of ON datepicker not enabling\n\t\treschedulable.querySelectorAll('.disabled').forEach( el => { el.classList.remove('disabled') } ); // TODO the label of ON datepicker not enabling\n\t\t// save the current date/day selection settings so we can re-establish it\n\t\treschedulable.querySelectorAll('.em-datepicker-data input').forEach( input => { input.dataset.undo = input.value; } );\n\t\treschedulable.querySelectorAll('select.em-selectize.selectized').forEach( function( el ) {\n\t\t\tel.selectize?.enable();\n\t\t\tlet days = el.selectize?.getValue();\n\t\t\tif ( days ) {\n\t\t\t\tel.dataset.undo = days.join();\n\t\t\t}\n\t\t});\n\t\t// enable the nonce to reschedule this button type\n\t\treschedulable.closest('.em-recurrence-set').querySelector( rescheduleButton.dataset.nonce ).disabled = false;\n\t\treschedulable.querySelectorAll('.reschedule-trigger').forEach( button => { button.disabled = true } );\n\t};\n\n\n\t// EXCLUDE RESCHEDULING\n\t// add warning for currently created recurrences and adding a new exclusion\n\trecurrenceSets.querySelectorAll('.em-add-recurrence-set[data-type=\"exclude\"]').forEach( function( addButton ) {\n\t\taddButton.addEventListener('click', function (e) {\n\t\t\tif ( recurrenceExcludeSets.querySelectorAll('[data-rescheduled]').length > 0 || !recurrenceSets.dataset.event_id ) {\n\t\t\t\tlet event = new CustomEvent('addRecurrence', { bubbles: true, detail: { type : 'exclude' } });\n\t\t\t\trecurrenceSets.dispatchEvent( event );\n\t\t\t} else {\n\t\t\t\topenModal( recurrenceExcludeModal );\n\t\t\t}\n\t\t});\n\t});\n\t// modal actions - confirming reschedule and re-appending modal upon close\n\trecurrenceExcludeModal.addEventListener( 'em_modal_close', function() {\n\t\t// re-append modal on close for submission\n\t\trecurrenceExcludeSets.append(recurrenceExcludeModal);\n\t\tdelete recurrenceExcludeModal.rescheduleButton;\n\t});\n\trecurrenceExcludeModal.querySelector('button.reschedule-cancel')?.addEventListener( 'click', () => closeModal(recurrenceExcludeModal) );\n\trecurrenceExcludeModal.querySelector('button.reschedule-confirm')?.addEventListener( 'click', function(e ) {\n\t\tlet recurrenceSet;\n\t\tif ( recurrenceExcludeModal.rescheduleButton ) {\n\t\t\tunlockReschedule( recurrenceExcludeModal.rescheduleButton )\n\t\t\trecurrenceSet = recurrenceExcludeModal.rescheduleButton.closest('.em-recurrence-set');\n\t\t} else {\n\t\t\t// pass a detail so it is populated by reference\n\t\t\tlet recurrenceTypeSets = recurrenceSets.querySelector('.em-recurrence-type-exclude');\n\t\t\trecurrenceTypeSets?.dispatchEvent( new CustomEvent('addRecurrence', { bubbles: true }) );\n\t\t\trecurrenceSet = recurrenceTypeSets?.querySelector('.em-recurrence-set:last-child');\n\t\t}\n\t\t// mark rescheduled, even if it's new because it essentially can reschedule previously created recurrences by negating them\n\t\tif ( recurrenceSet ) {\n\t\t\trecurrenceSet.dataset.rescheduled = '1';\n\t\t}\n\t\t// move the reschedule action option to the recurrence set to make it visible\n\t\trecurrenceExcludeSets.firstElementChild.after( rescheduleExcludeAction );\n\t\trescheduleExcludeAction.querySelector('[data-nonce]').disabled = false;\n\t\t// close modeal and mark this as rescheduled\n\t\tcloseModal(recurrenceExcludeModal);\n\t});\n\n\t// move the cancel warning back to reschedule modal if removing an event results in no exclusions\n\trecurrenceSets.addEventListener('updateSetsCount', function() {\n\t\tif ( recurrenceExcludeSets.dataset.count === '0' ) {\n\t\t\trecurrenceExcludeModal.querySelector('.em-modal-content')?.append( rescheduleExcludeAction );\n\t\t}\n\t});\n});","// This file deals with dates and times of the main event, determining the overall recurrence duration in dates and times of the recurring event for display purposes.\ndocument.addEventListener('em_event_editor_recurrences', function( e ) {\n\tlet recurrenceSets = e.detail.recurrenceSets;\n\n\tdocument.addEventListener('em_luxon_ready', function(){\n\t\t// Sets the overal event dates, times and timezone based on the earliest and latest recurrence date/time, and the primary recurrence timezone.\n\t\t// PHP will always handle the real date ranges.\n\t\t// This is somewhat redundant and needs a review. The reason is because this doesn't account for timezones, for example we could have an earlier string date/time than another, but the later one is in a TZ that's makes it earlier in UTC time.\n\t\t// For this reason, we need a library like Luxon to accurately calculate and use this for displaying estimated start/end date/times.\n\t\t// TODO add TimeZone-aware libary to calculate real start/end dates and provide an accurate recurrence summary for all recurrences grouped together.\n\t\t\n\t\trecurrenceSets.addEventListener('setDateTimes', function() {\n\t\t\tlet eventDateTimes = recurrenceSets.closest('form').querySelector('.event-form-when');\n\t\t\tif ( eventDateTimes ) {\n\t\t\t\t// COLLECT ALL DATES FROM RECURRENCE SETS, update earliest/latest date as we go\n\t\t\t\t/** @type {luxon.DateTime} */\n\t\t\t\tlet startDateTime;\n\t\t\t\t/** @type {luxon.DateTime} */\n\t\t\t\tlet endDateTime;\n\t\t\t\t/** @type {Element} */\n\t\t\t\tlet eventDatePicker = eventDateTimes.querySelector('.em-datepicker.em-event-dates');\n\t\t\t\t/** @type {Element} */\n\t\t\t\tlet eventTimeRange = eventDateTimes.querySelector('.em-timeranges');\n\t\t\t\t// we need to get jQuery elements to handle the timepicker\n\t\t\t\t/** @type {jQuery} */\n\t\t\t\tlet $eventStartTime = jQuery(eventTimeRange.querySelector('.em-time-input.em-time-start'));\n\t\t\t\t/** @type {jQuery} */\n\t\t\t\tlet $eventEndTime = jQuery(eventTimeRange.querySelector('.em-time-input.em-time-end'));\n\t\t\t\tlet DateTime = luxon.DateTime;\n\t\t\t\tlet timezone = recurrenceSets.querySelector('.em-recurrence-set[data-primary=\"1\"] select.recurrence_timezone')?.value;\n\t\t\t\t// Replace .5 with :30 in timezone string (for half-hour offsets like UTC+5.5)\n\t\t\t\ttimezone = timezone?.replace(/\\.5/g, ':30') || timezone;\n\t\t\t\t\n\t\t\t\t// get primary values for other recurrences\n\t\t\t\tlet defaultStartTimeSeconds, defaultEndTimeSeconds;\n\t\t\t\tlet defaultStartDate, defaultEndDate;\n\t\t\t\t\n\t\t\t\t// Track if all recurrence sets are marked as all-day\n\t\t\t\tlet allRecurrencesAllDay = true;\n\t\t\t\t// Track all unique timezones used across recurrence sets\n\t\t\t\tlet uniqueTimezones = new Set();\n\n\t\t\t\t// go through each recurring set to get the start time and date\n\t\t\t\trecurrenceSets.querySelectorAll('.em-recurrence-type-include .em-recurrence-set').forEach( recurrenceSet => {\n\t\t\t\t\tlet recurrenceTimezone = recurrenceSet.querySelector('.em-recurrence-timezone select')?.value || timezone;\n\t\t\t\t\t// Replace .5 with :30 in timezone string (for half-hour offsets like UTC+5.5)\n\t\t\t\t\trecurrenceTimezone = recurrenceTimezone?.replace(/\\.5/g, ':30') || recurrenceTimezone;\n\t\t\t\t\t// Add the timezone to our set of unique timezones\n\t\t\t\t\tif (recurrenceTimezone) {\n\t\t\t\t\t\tuniqueTimezones.add(recurrenceTimezone);\n\t\t\t\t\t}\n\t\t\t\t\t/** @type {luxon.DateTime} */\n\t\t\t\t\tlet recurrenceStart;\n\t\t\t\t\t/** @type {luxon.DateTime} */\n\t\t\t\t\tlet\trecurrenceEnd;\n\t\t\t\t\t// build the start and end datetime from the recurrence set, starting by getting the date and creating luxon.DateTime objects\n\t\t\t\t\tif ( recurrenceSet.querySelector('select.recurrence_freq')?.value === 'on' ) {\n\t\t\t\t\t\t// get the ON dates rather than the date range\n\t\t\t\t\t\tlet selectedDates = recurrenceSet.querySelector('.em-on-selector .em-date-input')?._flatpickr?.selectedDates;\n\t\t\t\t\t\tif ( selectedDates ) {\n\t\t\t\t\t\t\tselectedDates.sort(function(a, b) { return a - b; });\n\t\t\t\t\t\t\t// get the first and last dates from the selected dates\n\t\t\t\t\t\t\trecurrenceStart = DateTime.fromJSDate( selectedDates[0] );\n\t\t\t\t\t\t\trecurrenceEnd = DateTime.fromJSDate( selectedDates[selectedDates.length - 1] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// get the regular date range\n\t\t\t\t\t\trecurrenceSet.querySelectorAll('.em-recurrence-advanced .em-datepicker .em-date-input.flatpickr-input').forEach( input => {\n\t\t\t\t\t\t\tif ( input._flatpickr?.selectedDates.length ) {\n\t\t\t\t\t\t\t\tif (input.closest('.em-datepicker-until')) {\n\t\t\t\t\t\t\t\t\tif (input.classList.contains('em-date-input-start')) {\n\t\t\t\t\t\t\t\t\t\trecurrenceStart = DateTime.fromJSDate( input._flatpickr.selectedDates[0] );\n\t\t\t\t\t\t\t\t\t} else if (input.classList.contains('em-date-input-end')) {\n\t\t\t\t\t\t\t\t\t\trecurrenceEnd = DateTime.fromJSDate( input._flatpickr.selectedDates[0] );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (input.closest('.em-datepicker-range')) {\n\t\t\t\t\t\t\t\t\trecurrenceStart = DateTime.fromJSDate( input._flatpickr.selectedDates[0] );\n\t\t\t\t\t\t\t\t\tif ( input._flatpickr.selectedDates.length >= 2 ) {\n\t\t\t\t\t\t\t\t\t\trecurrenceEnd = DateTime.fromJSDate( input._flatpickr.selectedDates[1] );\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\trecurrenceEnd = recurrenceStart;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdefaultStartDate ??= recurrenceStart;\n\t\t\t\t\t\t\t\tdefaultEndDate ??= recurrenceEnd;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t// make sure we have recurrence dates and the timezones are correctly set\n\t\t\t\t\trecurrenceStart ??= defaultStartDate;\n\t\t\t\t\trecurrenceEnd ??= defaultEndDate || defaultStartDate;\n\t\t\t\t\trecurrenceStart = recurrenceStart?.setZone( recurrenceTimezone, { keepLocalTime: true } );\n\t\t\t\t\trecurrenceEnd = recurrenceEnd?.setZone( recurrenceTimezone, { keepLocalTime: true } );\n\n\t\t\t\t\t// proceed if we have start/end dates\n\t\t\t\t\tif ( recurrenceStart && recurrenceEnd ) {\n\t\t\t\t\t\t// add the time to the start/end dates\n\t\t\t\t\t\tlet timeRange = recurrenceSet.querySelector( '.em-timeranges' );\n\t\t\t\t\t\tif ( timeRange && ( recurrenceSet.dataset.primary || recurrenceSet.querySelector( '.recurrences-timeranges-default-trigger')?.checked ) ) {\n\t\t\t\t\t\t\tlet $recurrenceStartTime = jQuery( timeRange.querySelector( '.em-time-input.earliest-time' ) );\n\t\t\t\t\t\t\tlet $recurrenceEndTime = jQuery( timeRange.querySelector( '.em-time-input.latest-time' ) );\n\n\t\t\t\t\t\t\t// Get times based on whether all day or normal\n\t\t\t\t\t\t\tif ( timeRange.dataset.allday === \"1\" ) {\n\t\t\t\t\t\t\t\trecurrenceEnd = recurrenceEnd.endOf( 'day' );\n\t\t\t\t\t\t\t\t// set default start/end times first time for the timepicker for future recurrences\n\t\t\t\t\t\t\t\tdefaultStartTimeSeconds |= 0;\n\t\t\t\t\t\t\t\tdefaultEndTimeSeconds |= 86399; // 23:59:59\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tallRecurrencesAllDay = false;\n\t\t\t\t\t\t\t\tlet secondsFromMidnight = $recurrenceStartTime.em_timepicker( 'getSecondsFromMidnight' );\n\t\t\t\t\t\t\t\tif ( $recurrenceStartTime.val() ) {\n\t\t\t\t\t\t\t\t\trecurrenceStart = recurrenceStart.plus( { seconds: secondsFromMidnight } );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\trecurrenceStart = recurrenceStart.plus( { seconds: defaultStartTimeSeconds || 0 } );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( $recurrenceEndTime.val() ) {\n\t\t\t\t\t\t\t\t\tlet secondsFromMidnight = $recurrenceEndTime.em_timepicker( 'getSecondsFromMidnight' );\n\t\t\t\t\t\t\t\t\trecurrenceEnd = recurrenceEnd.plus( { seconds: secondsFromMidnight } );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\trecurrenceEnd = recurrenceEnd.plus( { seconds: defaultEndTimeSeconds || 0 } );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// set default start/end times first time for the timepicker for future recurrences\n\t\t\t\t\t\t\t\tdefaultStartTimeSeconds |= $recurrenceStartTime.em_timepicker( 'getSecondsFromMidnight' );\n\t\t\t\t\t\t\t\tdefaultEndTimeSeconds |= $recurrenceEndTime.em_timepicker( 'getSecondsFromMidnight' );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// account for duration\n\t\t\t\t\t\t\tlet duration = recurrenceSet.querySelector( '.recurrence_duration' )?.value;\n\t\t\t\t\t\t\tif ( duration ) {\n\t\t\t\t\t\t\t\trecurrenceEnd = recurrenceEnd.plus( { days: duration } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Now we have the luxon.DateTime dates/times in correct timezone, we can compare them accurately\n\t\t\t\t\t\t\tif ( recurrenceStart.isValid && ( !startDateTime || recurrenceStart < startDateTime ) ) {\n\t\t\t\t\t\t\t\tstartDateTime = recurrenceStart.setZone( timezone );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( recurrenceEnd.isValid && (!endDateTime || recurrenceEnd > endDateTime) ) {\n\t\t\t\t\t\t\t\tendDateTime = recurrenceEnd.setZone( timezone );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif ( startDateTime?.isValid && endDateTime?.isValid ) {\n\n\t\t\t\t\t// set the datepicker and timepickers of the main event form\n\t\t\t\t\tlet startDate = startDateTime.setZone( \"system\", { keepLocalTime: true } ).toJSDate();\n\t\t\t\t\tlet endDate = endDateTime.setZone( \"system\", { keepLocalTime: true } ).toJSDate();\n\t\t\t\t\tif ( eventDatePicker.classList.contains('em-datepicker-range') ) {\n\t\t\t\t\t\t// set the date range with both dates, even if endDate didn't change\n\t\t\t\t\t\teventDatePicker.querySelector( '.em-date-input.flatpickr-input' )?._flatpickr?.setDate( [ startDate, endDate ], true );\n\t\t\t\t\t} else {\n\t\t\t\t\t\teventDatePicker.querySelector( '.em-date-input-start.flatpickr-input' )?._flatpickr?.setDate( startDate, true );\n\t\t\t\t\t\teventDatePicker.querySelector( '.em-date-input-end.flatpickr-input' )?._flatpickr?.setDate( endDate, true );\n\t\t\t\t\t}\n\t\t\t\t\t$eventStartTime.em_timepicker( 'setTime', startDate );\n\t\t\t\t\t$eventEndTime.em_timepicker( 'setTime', endDate );\n\t\t\t\t\t\n\t\t\t\t\t// Update recurring summary dates\n\t\t\t\t\tlet recurringSection = eventDateTimes.querySelector('.recurring-summary-dates');\n\t\t\t\t\tif (recurringSection) {\n\t\t\t\t\t\t// Remove 'hidden' class if present\n\t\t\t\t\t\trecurringSection.classList.remove('hidden');\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Update start date and time - use the right format from EM settings\n\t\t\t\t\t\tlet datePickerFormat = 'D';\n\t\t\t\t\t\tlet timeFormat = EM.show24hours == 1 ? 'H:mm':'h:mm a';\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Update start date element\n\t\t\t\t\t\tlet startDateElem = recurringSection.querySelector('.date.start-date');\n\t\t\t\t\t\tif (startDateElem) {\n\t\t\t\t\t\t\tstartDateElem.textContent = startDateTime.toFormat(datePickerFormat);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Update start time element\n\t\t\t\t\t\tlet startTimeElem = recurringSection.querySelector('.time.start-time');\n\t\t\t\t\t\tif (startTimeElem) {\n\t\t\t\t\t\t\tstartTimeElem.textContent = ' @ ' + startDateTime.toFormat(timeFormat);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Update end date element\n\t\t\t\t\t\tlet endDateElem = recurringSection.querySelector('.date.end-date');\n\t\t\t\t\t\tif (endDateElem) {\n\t\t\t\t\t\t\tendDateElem.textContent = endDateTime.toFormat(datePickerFormat);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Update end time element\n\t\t\t\t\t\tlet endTimeElem = recurringSection.querySelector('.time.end-time');\n\t\t\t\t\t\tif (endTimeElem) {\n\t\t\t\t\t\t\tendTimeElem.textContent = ' @ ' + endDateTime.toFormat(timeFormat);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Update classes based on all-day status\n\t\t\t\t\t\trecurringSection.classList.remove('is-all-day', 'has-all-day');\n\t\t\t\t\t\t\n\t\t\t\t\t\tif ( eventTimeRange.dataset.allday === '1' ) {\n\t\t\t\t\t\t\t// True all-day event (all checkboxes checked and times match pattern)\n\t\t\t\t\t\t\trecurringSection.classList.add('is-all-day');\n\t\t\t\t\t\t} else if ( allRecurrencesAllDay ) {\n\t\t\t\t\t\t\t// All checkboxes are checked, but start/end times don't match all-day times in the primary timezone\n\t\t\t\t\t\t\trecurringSection.classList.add('has-all-day');\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Update timezone\n\t\t\t\t\t\tlet timezoneElem = recurringSection.querySelector('.recurring-timezone .timezone');\n\t\t\t\t\t\tif (timezoneElem && timezone) {\n\t\t\t\t\t\t\ttimezoneElem.textContent = timezone;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t // Add 'has-multiple-timezones' class if multiple timezones are detected\n\t\t\t\t\t\tif (uniqueTimezones.size > 1) {\n\t\t\t\t\t\t\trecurringSection.classList.add('has-multiple-timezones');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trecurringSection.classList.remove('has-multiple-timezones');\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Hide the missing info message\n\t\t\t\t\t\tlet missingInfoElem = eventDateTimes.querySelector('.recurring-summary-missing');\n\t\t\t\t\t\tif (missingInfoElem) {\n\t\t\t\t\t\t\tmissingInfoElem.classList.add('hidden');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n\n\tlet breakpoints = { 'small' : 500, 'large' : false, };\n\tlet recurringSummaries = document.querySelectorAll('.em-recurring-summary .recurring-summary-dates');\n\tif ( recurringSummaries.length > 0 ) {\n\t\tEM_ResizeObserver( breakpoints, recurringSummaries );\n\t}\n});","// this section deals with functions that handle display of text, counting sets and redisplaying forms\nlet emRecurrenceEditor = {\n\tupdateIntervalDescriptor : function( container ) {\n\t\tlet sets = container.matches('.em-recurrence-sets') ? container.querySelectorAll('.em-recurrence-set') : [ container.closest('.em-recurrence-set') ];\n\t\tsets.forEach( function( set ) {\n\t\t\tset.querySelectorAll(\".interval-desc\").forEach( el => el.classList.add('hidden') );\n\t\t\tlet number = \"-plural\";\n\t\t\tlet input = set.querySelector('input.em-recurrence-interval');\n\t\t\tif ( input ) {\n\t\t\t\tif ( input.value === \"1\" || input.value === \"\" ) {\n\t\t\t\t\tnumber = \"-singular\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet select = set.querySelector(\"select.em-recurrence-frequency\");\n\t\t\tlet freq = select ? select.value : \"\";\n\t\t\tlet descriptorSelector = \"span.interval-desc.interval-\" + freq + number;\n\t\t\tset.querySelectorAll( descriptorSelector ).forEach( el => el.classList.remove('hidden') );\n\t\t\tset.querySelectorAll('.interval-desc-intro').forEach( el => el.classList.toggle('hidden', freq === 'on') );\n\t\t});\n\t},\n\n\tupdateDurationDescriptor : function( container ) {\n\t\tlet sets = container.matches('.em-recurrence-sets') ? container.querySelectorAll('.em-recurrence-set') : [ container.closest('.em-recurrence-set') ];\n\t\tsets.forEach( function( set ) {\n\t\t\tset.querySelectorAll(\".recurrence-days-desc\").forEach( el => el.classList.add('hidden') );\n\t\t\tlet input = set.querySelector('input.em-recurrence-duration');\n\t\t\tlet number = input && (input.value === \"1\" || (input.value === '' && input.placeholder === '1')) ? 'singular' : 'plural';\n\t\t\tset.querySelectorAll( \".recurrence-days-desc.em-\" + number ).forEach( el => el.classList.remove('hidden') );\n\t\t});\n\t},\n\n\tupdateIntervalSelectors : function ( container ) {\n\t\tlet sets = container.matches('.em-recurrence-sets') ? container.querySelectorAll('.em-recurrence-set') : [ container.closest('.em-recurrence-set') ];\n\t\tsets.forEach( function( set ) {\n\t\t\tset.querySelectorAll('.alternate-selector').forEach( el => el.classList.add('hidden') );\n\t\t\tlet select = set.querySelector(\"select.em-recurrence-frequency\");\n\t\t\tlet freq = select ? select.value : \"\";\n\t\t\tset.querySelectorAll('.em-' + freq + '-selector').forEach( el => el.classList.remove('hidden') );\n\t\t\tset.querySelectorAll('.em-recurrence-interval').forEach( el => el.classList.toggle('hidden', freq === 'on') );\n\t\t});\n\t}\n}\n\ndocument.addEventListener('em_event_editor_recurrences', function( e ) {\n\tlet recurrenceSets = e.detail.recurrenceSets;\n\t/**\n\t * Sets placeholders for advanced fields in non-main recurrences so as to show informative recurrence set defaults and descriptions if left blank, since the main recurrence is the default values.\n\t */\n\trecurrenceSets.addEventListener('setAdvancedDefaults', function () {\n\t\t// get the first recurrence set\n\t\tlet recurrenceSetPrimary = recurrenceSets.querySelector('.em-recurrence-type-include .em-recurrence-set:first-child');\n\t\tlet selector = '.em-recurrence-type-include .em-recurrence-set:not(:first-child) .em-recurrence-advanced';\n\n\t\t// set all recurrence sets to have a 0 value flag to detect modifications of primary\n\t\trecurrenceSets.querySelectorAll('.em-recurrence-set').forEach( recurrenceSet => { recurrenceSet.dataset.primaryModified = '0'; });\n\n\t\t// check for modified values and if so set flag that this overrides primary set\n\t\trecurrenceSets.querySelectorAll('.em-recurrence-set').forEach(recurrenceSet => {\n\t\t\tif (recurrenceSet !== recurrenceSetPrimary) {\n\t\t\t\tif ( recurrenceSet.querySelector('.recurrences-timeranges-default-trigger')?.checked ) {\n\t\t\t\t\trecurrenceSet.dataset.primaryModified = '1';\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Recurse recurrenceSets by recurrence set (.em-recurrence-set) to begin with\n\t\trecurrenceSets.querySelectorAll('.em-recurrence-set').forEach( function ( recurrenceSet ) {\n\t\t\tif ( !recurrenceSet.matches('.em-recurrence-type-include .em-recurrence-set:first-child') ) {\n\t\t\t\t// loop each flatpickr input and set placeholders and detect if default value has changed\n\t\t\t\trecurrenceSetPrimary.querySelectorAll('.em-recurrence-advanced .em-datepicker .em-date-input.flatpickr-input').forEach(function (input) {\n\t\t\t\t\tlet datePicker = input.closest('.em-datepicker');\n\t\t\t\t\tlet value = input._flatpickr.altInput.value;\n\t\t\t\t\tlet modifiedDefault = input._flatpickr._inputData.some( input => input.value !== input.dataset.undo );\n\n\t\t\t\t\t// get the text format directly, we assume it's the same as the datepicker type for events, it's an EM setting (if dev customizations change the template, they'll need to account for it here)\n\t\t\t\t\tlet datesSelector = '.em-recurrence-dates .em-date-input.form-control';\n\t\t\t\t\tif (datePicker.classList.contains('em-datepicker-range')) {\n\t\t\t\t\t\trecurrenceSet.querySelectorAll(datesSelector).forEach(function (dp) {\n\t\t\t\t\t\t\tdp.previousElementSibling.placeholder ||= dp.placeholder;\n\t\t\t\t\t\t\tdp.placeholder = value ? value : dp.previousElementSibling.placeholder;\n\t\t\t\t\t\t\tif ( dp.value === '' && modifiedDefault ) {\n\t\t\t\t\t\t\t\tdp.closest('.em-recurrence-set').dataset.primaryModified = '1';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (datePicker.classList.contains('em-datepicker-until')) {\n\t\t\t\t\t\tdatesSelector += input.classList.contains('em-date-input-start') ? '.em-date-input-start' : '.em-date-input-end';\n\t\t\t\t\t\trecurrenceSet.querySelectorAll(datesSelector).forEach(function (dp) {\n\t\t\t\t\t\t\tdp.placeholder = value ? value : dp.previousElementSibling.placeholder;\n\t\t\t\t\t\t\tif ( dp.value === '' && modifiedDefault ) {\n\t\t\t\t\t\t\t\tdp.closest('.em-recurrence-set').dataset.primaryModified = '1';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\t// Handle timezone and status dropdowns using a shared function\n\t\t['timezone', 'status'].forEach( function( selectType ) {\n\t\t\tconst classPrefix = '.em-recurrence-' + selectType;\n\t\t\tlet select = recurrenceSetPrimary.querySelector(classPrefix + ' select');\n\t\t\tif (select) {\n\t\t\t\t// Set placeholder for other recurrences - timezones will also affect the exclude section\n\t\t\t\tlet selectors = selectType === 'timezone' ? [ selector, '.em-recurrence-type-exclude .em-recurrence-set .em-recurrence-advanced'] : [ selector ];\n\t\t\t\tselectors.forEach( function( selector ) {\n\t\t\t\t\trecurrenceSets.querySelectorAll(selector + ' ' + classPrefix + ' select').forEach( function( otherSelect ) {\n\t\t\t\t\t\tif ( otherSelect.selectize ) {\n\t\t\t\t\t\t\tif ( select.value ) {\n\t\t\t\t\t\t\t\totherSelect.selectize.settings.placeholder = select.querySelector(`option[value=\"${select.value}\"]`)?.textContent || select.value;\n\t\t\t\t\t\t\t\totherSelect.selectize.updatePlaceholder();\n\t\t\t\t\t\t\t\t// no value selected therefore overriden by primary\n\t\t\t\t\t\t\t\tif ( otherSelect.value === '' && select.value !== select.dataset.undo ) {\n\t\t\t\t\t\t\t\t\totherSelect.closest('.em-recurrence-set').dataset.primaryModified = '1';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\totherSelect.selectize.settings.placeholder = select.selectize?.settings.placeholder;\n\t\t\t\t\t\t\t\totherSelect.selectize.updatePlaceholder();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\t// Handle recurrence duration input\n\t\tlet durationInput = recurrenceSetPrimary.querySelector('input.em-recurrence-duration');\n\t\tif (durationInput && durationInput.value.trim()) {\n\t\t\trecurrenceSets.querySelectorAll(selector + ' input.em-recurrence-duration').forEach(function(otherInput) {\n\t\t\t\totherInput.placeholder = durationInput.value.trim();\n\t\t\t\tif ( otherInput.value === '' && durationInput.value !== durationInput.dataset.undo ) {\n\t\t\t\t\totherInput.closest('.em-recurrence-set').dataset.primaryModified = '1';\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// check primary overriding values and set additional flags for date ranges which we can reference and detect overriding changes\n\t\trecurrenceSets.querySelectorAll('.em-recurrence-set').forEach( function( recurrenceSet ) {\n\t\t\t// check if each recurrence set is affected by primary modifications\n\t\t\trecurrenceSet.classList.toggle('advanced-modified-primary', recurrenceSet.dataset.primaryModified === '1');\n\t\t\tif ( recurrenceSet.dataset.primaryModified ) {\n\t\t\t\trecurrenceSet.dispatchEvent( new Event('change', { bubbles: true }) );\n\t\t\t}\n\t\t\tdelete recurrenceSet.dataset.primaryModified;\n\n\t\t\t// check the start/end dates specifically, if they are both set then we need to set a flag so we know they were modified too\n\t\t\tlet hasDates = 0;\n\t\t\tlet hasStartDate = false, hasStartDateModified = false;\n\t\t\tlet hasEndDate = false, hasEndDateModified = false;\n\t\t\tlet hasModifiedDates;\n\t\t\tif ( recurrenceSet.querySelector('select.em-recurrence-frequency')?.value === 'on' ) {\n\t\t\t\thasDates = 2; // fake this as we don't need a date range for 'on' frequency\n\t\t\t} else {\n\t\t\t\t// check if there is a complete date range set (i.e. two dates) and if any of the dates were modified\n\t\t\t\trecurrenceSet.querySelectorAll(`.em-recurrence-dates .em-datepicker-data input[name]`).forEach(function ( input ) {\n\t\t\t\t\thasDates += input.value ? 1 : 0;\n\t\t\t\t\tif ( input.matches(':first-of-type') ) {\n\t\t\t\t\t\thasStartDate = !!input.value;\n\t\t\t\t\t\thasStartDateModified = input.value !== input.dataset.undo;\n\t\t\t\t\t}\n\t\t\t\t\tif ( input.matches(':last-of-type') ) {\n\t\t\t\t\t\thasEndDate = !!input.value;\n\t\t\t\t\t\thasEndDateModified = input.value !== input.dataset.undo;\n\t\t\t\t\t}\n\t\t\t\t\thasModifiedDates ||= input.value !== input.dataset.undo;\n\t\t\t\t});\n\t\t\t}\n\t\t\trecurrenceSet.classList.toggle('has-date-range', hasDates >= 2);\n\t\t\tif ( hasDates < 2 ) {\n\t\t\t\trecurrenceSet.classList.toggle( 'has-date-range-start', hasStartDate );\n\t\t\t\trecurrenceSet.classList.toggle( 'has-date-range-end', hasEndDate );\n\t\t\t}\n\t\t\tif ( hasStartDateModified && hasEndDateModified ) {\n\t\t\t\trecurrenceSet.classList.toggle('has-modified-date-range', true);\n\t\t\t\trecurrenceSet.classList.toggle('has-modified-date-range-start', false);\n\t\t\t\trecurrenceSet.classList.toggle('has-modified-date-range-end', false);\n\t\t\t} else {\n\t\t\t\trecurrenceSet.classList.toggle('has-modified-date-range', false);\n\t\t\t\trecurrenceSet.classList.toggle('has-modified-date-range-start', hasStartDateModified);\n\t\t\t\trecurrenceSet.classList.toggle('has-modified-date-range-end', hasEndDateModified);\n\t\t\t}\n\t\t});\n\n\t\t// update the recurrence summary\n\t\trecurrenceSets.dispatchEvent( new Event('updateRecurrenceSummary', { bubbles: true }) );\n\t});\n\n\t// update the count elements so CSS can do its thing\n\trecurrenceSets.addEventListener('updateSetsCount', function() {\n\t\t['include', 'exclude'].forEach( function ( recurrenceType ) {\n\t\t\t// show or hide remove button\n\t\t\tlet recurrenceTypeSets = recurrenceSets.querySelector('.em-recurrence-type-' + recurrenceType);\n\t\t\tif ( recurrenceTypeSets ) {\n\t\t\t\tlet count = recurrenceTypeSets.querySelectorAll('.em-recurrence-set').length;\n\t\t\t\trecurrenceSets.setAttribute('data-' + recurrenceType + '-count', count);\n\t\t\t\trecurrenceTypeSets.dataset.count = count; // CSS will hide things\n\t\t\t}\n\t\t});\n\t});\n\n\t// reset order of items as per reordering\n\trecurrenceSets.addEventListener('updateRecurrenceOrder', function() {\n\t\tlet primaryRecurrence;\n\t\trecurrenceSets.querySelectorAll('.em-recurrence-type-include .em-recurrence-set').forEach( function( recurrenceSet, index) {\n\t\t\tlet order_input = recurrenceSet.querySelector('.em-recurrence-order');\n\t\t\tif (order_input) {\n\t\t\t\torder_input.value = index + 1;\n\t\t\t}\n\t\t\trecurrenceSet.classList.toggle('show-advanced', index === 0);\n\t\t\tif ( recurrenceSet !== primaryRecurrence && index === 0 ) {\n\t\t\t\t// copy all the date/time/duration advanced values from primaryRecurrence to here\n\t\t\t\tprimaryRecurrence = recurrenceSet;\n\t\t\t\t// set default placehodlers\n\t\t\t\tprimaryRecurrence.querySelectorAll('[data-placeholder]').forEach( el => { el.placeholder = el.dataset.placeholder } );\n\t\t\t\tprimaryRecurrence.querySelectorAll('.em-datepicker .em-date-input-end.form-control').forEach( el => { el.placeholder = el.previousElementSibling.placeholder });\n\t\t\t\tprimaryRecurrence.querySelectorAll('.em-datepicker .em-date-input-start.form-control').forEach( el => { el.placeholder = el.previousElementSibling.placeholder });\n\t\t\t\trecurrenceSets.dispatchEvent( new CustomEvent('updateSetsCount') );\n\t\t\t\trecurrenceSets.dispatchEvent( new CustomEvent('setAdvancedDefaults') );\n\t\t\t\trecurrenceSets.dispatchEvent( new CustomEvent('updateRecurrenceSummary') );\n\t\t\t}\n\t\t\tif ( recurrenceSet.matches(':first-child') ) {\n\t\t\t\trecurrenceSet.dataset.primary = '1';\n\t\t\t\trecurrenceSet.querySelectorAll('.em-time-all-day').forEach( el => { el.indeterminate = false; } );\n\t\t\t} else {\n\t\t\t\tdelete recurrenceSet.dataset.primary;\n\t\t\t}\n\t\t});\n\t} );\n\n\t// show/hide remove button\n\trecurrenceSets.dispatchEvent( new CustomEvent('updateSetsCount') );\n\t// Initialize recurrence descriptor and selectors for this recurrenceSets container\n\temRecurrenceEditor.updateIntervalDescriptor(recurrenceSets);\n\temRecurrenceEditor.updateIntervalSelectors(recurrenceSets);\n\temRecurrenceEditor.updateDurationDescriptor(recurrenceSets);\n\n});","\ndocument.addEventListener('em_event_editor_recurrences', function( e ) {\n\tlet recurrenceSets = e.detail.recurrenceSets;\n\n\t// Attach delegated listeners for interval/duration inputs and frequency select within this container\n\trecurrenceSets.addEventListener('keyup', function (e) {\n\t\tif ( e.target.matches('input.em-recurrence-interval') ) {\n\t\t\temRecurrenceEditor.updateIntervalDescriptor( e.target.closest('.em-recurrence-set') );\n\t\t} else if (e.target.matches('input.em-recurrence-duration')) {\n\t\t\temRecurrenceEditor.updateDurationDescriptor( e.target.closest('.em-recurrence-set') );\n\t\t}\n\t});\n\n\t// recurrency descriptors and selectors that change upon frequency changes\n\trecurrenceSets.addEventListener('change', function (e) {\n\t\tif (e.target.matches('select.em-recurrence-frequency')) {\n\t\t\tlet recurrenceSet = e.target.closest('.em-recurrence-set');\n\t\t\temRecurrenceEditor.updateIntervalDescriptor( recurrenceSet );\n\t\t\temRecurrenceEditor.updateIntervalSelectors( recurrenceSet );\n\t\t}\n\t});\n});\n\n//Event Editor\n// Recurrence Warnings\ndocument.querySelectorAll('form.em-event-admin-recurring').forEach(form => {\n\tform.addEventListener('submit', function (event) {\n\t\tlet warning_text;\n\t\tlet recreateInput = form.querySelector('input[name=\"event_recreate_tickets\"]');\n\n\t\tif (recreateInput && recreateInput.value === \"1\") {\n\t\t\twarning_text = EM.event_recurrence_bookings;\n\t\t}\n\n\t\tif ( warning_text && !confirm(warning_text) ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t});\n});\n\n//Buttons for recurrence warnings within event editor forms\ndocument.querySelectorAll('.em-reschedule-trigger, .em-reschedule-cancel').forEach(trigger => {\n\ttrigger.addEventListener('click', e => {\n\t\te.preventDefault();\n\t\tconst el = e.currentTarget;\n\t\tconst show = el.matches('.em-reschedule-trigger');\n\t\tel.closest('.em-recurrence-reschedule')?.querySelector(el.dataset.target)?.classList.toggle('reschedule-hidden', !show);\n\t\tel.parentElement.querySelectorAll('[data-nonce]').forEach( el => { el.disabled = !show } );\n\t\tel.parentElement.querySelectorAll('button').forEach( link => link.classList.remove('reschedule-hidden') );\n\t\tel.classList.add('reschedule-hidden');\n\t});\n});","document.addEventListener('em_event_editor_recurrences', function( e ) {\n\tlet recurrenceSets = e.detail.recurrenceSets;\n\n\tlet setAdvancedDefaults = () => recurrenceSets.dispatchEvent( new CustomEvent('setAdvancedDefaults') );\n\tlet updateRecurrenceSummary = ( recurrenceSet ) => recurrenceSet.dispatchEvent( new CustomEvent('updateRecurrenceSummary', { bubbles: true }) )\n\tlet setDateTimes = () => recurrenceSets.dispatchEvent( new CustomEvent('setDateTimes') );\n\n\t// ADVANCED TOGGLE/SECTION\n\n\t// Open/Close Advanced Section\n\trecurrenceSets.addEventListener('click', function(e) {\n\t\tconst toggleButton = e.target.closest('.em-recurrence-set-action-advanced');\n\t\tif (!toggleButton) return;\n\n\t\tconst recurrenceSet = toggleButton.closest('.em-recurrence-set');\n\t\trecurrenceSet.classList.toggle('show-advanced');\n\t\tif( '_tippy' in toggleButton ){\n\t\t\tif ( recurrenceSet.classList.contains('show-advanced') ) {\n\t\t\t\ttoggleButton._tippy.setContent( toggleButton.getAttribute('data-label-hide') );\n\t\t\t} else {\n\t\t\t\ttoggleButton._tippy.setContent( toggleButton.getAttribute('data-label-show') );\n\t\t\t}\n\t\t}\n\t});\n\n\t// Function to check advanced inputs and set icon color\n\tlet updateAdvancedIcon = function( recurrenceSet ) {\n\t\tconst advancedSection = recurrenceSet.querySelector('.em-recurrence-advanced');\n\t\tconst advancedIcon = recurrenceSet.querySelector('.em-recurrence-set-action-advanced');\n\n\t\tif ( !advancedSection || !advancedIcon) return;\n\n\t\tconst inputs = advancedSection.querySelectorAll('input, select, textarea');\n\t\tlet hasValue = Array.from(inputs).some( input => {\n\t\t\tif ( input.type === 'checkbox' ) {\n\t\t\t\treturn input.checked;\n\t\t\t} else {\n\t\t\t\treturn input.value.trim() !== '';\n\t\t\t}\n\t\t});\n\n\t\trecurrenceSet.classList.toggle('has-advanced-value', hasValue);\n\t};\n\n\t// Event listener scoped to current recurrenceSets container\n\trecurrenceSets.addEventListener('change', function(e) {\n\t\tif ( e.target.closest('.em-recurrence-advanced') ) {\n\t\t\tupdateAdvancedIcon( e.target.closest('.em-recurrence-set') );\n\t\t}\n\t});\n\n\t// Initialize advanced icons on page load for current recurrenceSets container\n\trecurrenceSets.querySelectorAll('.em-recurrence-set').forEach( recurrenceSet => updateAdvancedIcon( recurrenceSet ));\n\n\t// Track the first recurrence set and update placeholders accordingly\n\trecurrenceSets.querySelectorAll('.em-recurrence-type').forEach( function( recurrenceSetType ) {\n\t\trecurrenceSetType.addEventListener('change', function(e ){\n\t\t\tlet recurrenceSet = e.target.closest('.em-recurrence-set');\n\t\t\tif ( e.target.closest('.em-recurrence-advanced') ) {\n\t\t\t\t// check changes to main/first recurrence\n\t\t\t\tif ( recurrenceSetType.classList.contains('em-recurrence-type-include') ) {\n\t\t\t\t\tif ( recurrenceSet === recurrenceSet.parentElement?.firstElementChild ) {\n\t\t\t\t\t\tsetAdvancedDefaults();\n\t\t\t\t\t}\n\t\t\t\t\tsetDateTimes();\n\t\t\t\t}\n\t\t\t\tupdateRecurrenceSummary( recurrenceSet );\n\t\t\t} else if ( recurrenceSet?.querySelector('select.recurrence_freq')?.value === 'on' ) {\n\t\t\t\t// account for 'on' frequency changes\n\t\t\t\tif ( e.target.closest('.em-datepicker.em-on-selector') ) {\n\t\t\t\t\t// update the regular range datepicker to reflect date range from the 'on' selector datepicker\n\t\t\t\t\tlet selectedDates = e.target.closest('.em-date-input')?._flatpickr?.selectedDates;\n\t\t\t\t\tif ( selectedDates ) {\n\t\t\t\t\t\tselectedDates.sort(function(a, b) { return a - b; });\n\t\t\t\t\t\t// set the dates\n\n\t\t\t\t\t\tlet datepickerDates = recurrenceSet.querySelector('.em-recurrence-dates.em-datepicker');\n\t\t\t\t\t\tif ( datepickerDates ) {\n\t\t\t\t\t\t\tif ( datepickerDates.classList.contains( 'em-datepicker-until' ) ) {\n\t\t\t\t\t\t\t\t// we set start and end datepickers individually\n\t\t\t\t\t\t\t\tdatepickerDates.querySelector( `.em-date-input-start` )?._flatpickr?.setDate( selectedDates[0] );\n\t\t\t\t\t\t\t\tdatepickerDates.querySelector( `.em-date-input-end` )?._flatpickr?.setDate( selectedDates[selectedDates.length - 1] );\n\t\t\t\t\t\t\t} else if ( datepickerDates.classList.contains( 'em-datepicker-range' ) ) {\n\t\t\t\t\t\t\t\t// set an array of first/last selectedDates\n\t\t\t\t\t\t\t\tlet selectedDatesArray = [ selectedDates[0], selectedDates[selectedDates.length - 1] ];\n\t\t\t\t\t\t\t\tdatepickerDates.querySelector( `.em-date-input` )?._flatpickr?.setDate( selectedDatesArray );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( recurrenceSetType.classList.contains('em-recurrence-type-include') ) {\n\t\t\t\t\t\t\tif ( recurrenceSet === recurrenceSet.parentElement?.firstElementChild ) {\n\t\t\t\t\t\t\t\tsetAdvancedDefaults();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetDateTimes();\n\t\t\t}\n\t\t});\n\t});\n\n\t// Track changes to the advanced section, for undo logic and other validation\n\trecurrenceSets.addEventListener('change', function(e) {\n\t\tif ( e.target.closest('.em-recurrence-advanced') ) {\n\t\t\tlet recurrenceSet = e.target.closest('.em-recurrence-set');\n\t\t\t// go through each input with a name property and check if it different to the data-undo property (which may not be set)\n\t\t\tlet isModified = false;\n\t\t\trecurrenceSet.querySelectorAll('.em-recurrence-advanced [name]:not([disabled]):not([data-nonce]').forEach( input => {\n\t\t\t\tif ( input.name && input.dataset.undo ) {\n\t\t\t\t\tif ( input.type === 'checkbox' ) {\n\t\t\t\t\t\tif ( input.checked && input.dataset.undo !== '1' ) {\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif ( input.value !== input.dataset.undo ) {\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if ( recurrenceSets.dataset.event_id && input.value ) {\n\t\t\t\t\tisModified = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\trecurrenceSet.classList.toggle('advanced-modified', isModified);\n\t\t}\n\n\t\t// Listen for changes to .em-time-range on non-primary recurrence sets\n\t\tif ( e.target.matches('.em-recurrence-timeranges *') ) {\n\t\t\tlet recurrenceSet = e.target.closest('.em-recurrence-set');\n\t\t\tlet timeranges = recurrenceSet.querySelector('.em-recurrence-timeranges .em.timeranges');\n\t\t\tlet startTimeInput = recurrenceSet.querySelector('.em-time-input.em-time-start.earliest-time');\n\t\t\tlet endTimeInput = recurrenceSet.querySelector('.em-time-input.em-time-end.latest-time');\n\t\t\tlet durationInput = recurrenceSet.querySelector('input.em-recurrence-duration');\n\t\t\tlet isMultiDay = durationInput?.value > 0 || durationInput?.placeholder > 0 || false;\n\n\t\t\tif ( !isMultiDay ) {\n\t\t\t\tlet startTime = startTimeInput.dataset.seconds ? parseInt(startTimeInput.dataset.seconds) : null;\n\t\t\t\tlet endTime = endTimeInput.dataset.seconds ? parseInt(endTimeInput.dataset.seconds) : null;\n\n\t\t\t\tif ( !startTime || !endTime ) {\n\t\t\t\t\t// Select the first recurrence set of type \"include\" within recurrenceSets\n\t\t\t\t\tlet recurrenceSetPrimary = recurrenceSets.querySelector('.em-recurrence-set[data-type=\"include\"]:first-child');\n\t\t\t\t\tif ( recurrenceSetPrimary ) {\n\t\t\t\t\t\tif ( startTime === null ) {\n\t\t\t\t\t\t\tlet seconds = recurrenceSetPrimary.querySelector('.em-time-input.em-time-start')?.dataset.seconds;\n\t\t\t\t\t\t\tstartTime = seconds === undefined ? null : parseInt( recurrenceSetPrimary.querySelector('.em-time-input.em-time-start')?.dataset.seconds || 0 );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( endTime === null ) {\n\t\t\t\t\t\t\tlet seconds = recurrenceSetPrimary.querySelector('.em-time-input.em-time-end')?.dataset.seconds;\n\t\t\t\t\t\t\tendTime = seconds === undefined ? null : parseInt( recurrenceSetPrimary.querySelector('.em-time-input.em-time-end')?.dataset.seconds || 0 );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Ensure end time is not earlier than start time\n\t\t\t\tif ( startTime !== null && endTime !== null ) {\n\t\t\t\t\tif ( e.target.matches('.em-time-start') && startTime > endTime ) {\n\t\t\t\t\t\tendTimeInput.value = startTimeInput.value;\n\t\t\t\t\t\tendTimeInput.dispatchEvent(new Event('change'));\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ensure start time is not later than end time\n\t\t\t\t\tif ( e.target.matches('.em-time-end') && startTime > endTime ) {\n\t\t\t\t\t\tstartTimeInput.value = endTimeInput.value;\n\t\t\t\t\t\tstartTimeInput.dispatchEvent(new Event('change'));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if duration is changed, trigger a change for the end time and make sure we're not at 0 with bad start/end times\n\t\tif ( e.target.matches('input.em-recurrence-duration') ) {\n\t\t\tif ( e.target.value === '0' || ( e.target.value === '' && e.target.placeholder === '0' ) ) {\n\t\t\t\tlet recurrenceSet = e.target.closest('.em-recurrence-set');\n\t\t\t\tlet sets = recurrenceSet.dataset.primary ? recurrenceSet : recurrenceSets;\n\t\t\t\tsets.querySelectorAll('.em-recurrence-times .em-time-end').forEach( el => el.dispatchEvent(new Event('change')));\n\t\t\t}\n\t\t}\n\n\t\t// listen for all-day checkbox changes within the non-primary recurrences\n\t\tlet primaryCb = recurrenceSets.querySelector('.em-recurrence-set[data-primary] .em-time-all-day');\n\t\tif ( e.target.matches('.em-time-all-day') ) {\n\t\t\tlet cb = e.target;\n\t\t\tif ( cb.matches('.em-recurrence-set[data-primary] .em-time-all-day') ) {\n\t\t\t\tif ( cb.readOnly ) {\n\t\t\t\t\tcb.checked = true;\n\t\t\t\t\tcb.readOnly = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( cb.readOnly ) {\n\t\t\t\t\tcb.checked = true;\n\t\t\t\t\tcb.readOnly = false;\n\t\t\t\t} else if ( cb.checked && primaryCb.checked ) {\n\t\t\t\t\tcb.readOnly = true\n\t\t\t\t\tcb.indeterminate = true;\n\t\t\t\t\t// unset both times\n\t\t\t\t\tcb.closest('.em-time-range').querySelectorAll('.em-time-input').forEach( el => { el.value = '' } );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t// Update the recurrence summary of recurrences\n\trecurrenceSets.addEventListener('updateRecurrenceSummary', function( e ) {\n\t\tlet sets = e.target.matches('.em-recurrence-set') ? [ e.target ] : e.target.querySelectorAll('.em-recurrence-set');\n\t\tlet timerangeDefault = recurrenceSets.querySelector('.em-recurrence-set[data-primary] .em-recurrence-timeranges .em-timeranges');\n\n\t\tsets.forEach( function ( recurrenceSet ){\n\t\t\tlet advancedSummary = recurrenceSet.querySelector('.advanced-summary');\n\t\t\tif ( advancedSummary ) {\n\t\t\t\t// Initialize objects for values as one-liners\n\t\t\t\tlet dateValues = { start: '', end: '', startIsSet: false, endIsSet: false };\n\t\t\t\tlet timeValues = { start: timerangeDefault.dataset.start, end: timerangeDefault.dataset.end, startIsSet: false, endIsSet: false };\n\n\t\t\t\t// Get date values with a loop\n\t\t\t\tif ( recurrenceSet.querySelector('select.recurrence_freq')?.value === 'on' ) {\n\t\t\t\t\t// get the ON dates rather than the date range\n\t\t\t\t\tlet selectedDates = recurrenceSet.querySelector('.em-on-selector .em-date-input')?._flatpickr?.selectedDates;\n\t\t\t\t\tif ( selectedDates ) {\n\t\t\t\t\t\tselectedDates.sort(function(a, b) { return a - b; });\n\t\t\t\t\t\t// get the first and last dates from the selected dates\n\t\t\t\t\t\tdateValues['start'] = selectedDates[0];\n\t\t\t\t\t\tdateValues['startIsSet'] = true;\n\t\t\t\t\t\tdateValues['end'] = selectedDates[selectedDates.length - 1];\n\t\t\t\t\t\tdateValues['endIsSet'] = true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// not On dates so we look at traditional date range\n\t\t\t\t\tlet datepickerDates = recurrenceSet.querySelector('.em-recurrence-dates.em-datepicker');\n\t\t\t\t\tif ( datepickerDates.classList.contains('em-datepicker-until') ) {\n\t\t\t\t\t\t['start', 'end'].forEach(function(type) {\n\t\t\t\t\t\t\tlet dateInput = datepickerDates.querySelector(`.em-date-input-${type}`);\n\t\t\t\t\t\t\tif (dateInput) {\n\t\t\t\t\t\t\t\tif (dateInput._flatpickr && dateInput._flatpickr.altInput && dateInput._flatpickr.selectedDates.length) {\n\t\t\t\t\t\t\t\t\t// If flatpickr has a selected date, use that\n\t\t\t\t\t\t\t\t\tdateValues[type] = dateInput._flatpickr.altInput.value;\n\t\t\t\t\t\t\t\t\tdateValues[type + 'IsSet'] = true;\n\t\t\t\t\t\t\t\t} else if (dateInput.nextElementSibling) {\n\t\t\t\t\t\t\t\t\t// Otherwise use the visible input's value or placeholder\n\t\t\t\t\t\t\t\t\tdateValues[type] = dateInput.nextElementSibling.value ||\n\t\t\t\t\t\t\t\t\tdateInput.nextElementSibling.placeholder;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if ( datepickerDates.classList.contains('em-datepicker-range') ) {\n\t\t\t\t\t\tlet dateInput = datepickerDates.querySelector(`.em-date-input`);\n\t\t\t\t\t\tif ( dateInput ) {\n\t\t\t\t\t\t\t// get the dates from flatpickr, formatted into the altinput format\n\t\t\t\t\t\t\tif (dateInput._flatpickr && dateInput._flatpickr.altInput && dateInput._flatpickr.selectedDates.length) {\n\t\t\t\t\t\t\t\t// If flatpickr has a selected date, use that\n\t\t\t\t\t\t\t\tdateValues['start'] = dateInput._flatpickr.altInput.value;\n\t\t\t\t\t\t\t\tdateValues['startIsSet'] = true;\n\t\t\t\t\t\t\t} else if (dateInput.nextElementSibling) {\n\t\t\t\t\t\t\t\t// Otherwise use the visible input's value or placeholder\n\t\t\t\t\t\t\t\tdateValues['start'] = dateInput.nextElementSibling.value ||\n\t\t\t\t\t\t\t\t\tdateInput.nextElementSibling.placeholder;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Get time values with a loop\n\t\t\t\tif ( recurrenceSet.querySelector('.em-recurrence-timeranges .recurrence-timeranges-default input:checked') ) {\n\t\t\t\t\ttimeranges = recurrenceSet.querySelector('.em-recurrence-timeranges .em.timeranges');\n\t\t\t\t\t['start', 'end'].forEach(function(type) {\n\t\t\t\t\t\tlet timeInput = recurrenceSet.querySelector(`.em-recurrence-times .em-time-${type}`);\n\t\t\t\t\t\tif (timeInput) {\n\t\t\t\t\t\t\ttimeValues[type] = timeranges.dataset[type];\n\t\t\t\t\t\t\tif ( timeInput.value ) {\n\t\t\t\t\t\t\t\ttimeValues[type + 'IsSet'] = !!timeValues[type];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Get timezone from select\n\t\t\t\tlet timezoneSelect = recurrenceSet.querySelector('.em-recurrence-timezone select');\n\t\t\t\tlet timezoneValue = '';\n\n\t\t\t\tif ( timezoneSelect ) {\n\t\t\t\t\tlet value = timezoneSelect.value;\n\n\t\t\t\t\tif (value) {\n\t\t\t\t\t\t// If there's a value, get the text of the selected option (using null-coalescing)\n\t\t\t\t\t\ttimezoneValue = timezoneSelect.querySelector(`option[value=\"${value}\"]`)?.textContent || '';\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If no value, try to get the placeholder (using null-coalescing)\n\t\t\t\t\t\ttimezoneValue = recurrenceSet.querySelector('.em-recurrence-timezone .selectize-input input')?.placeholder || '';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Get duration\n\t\t\t\tlet durationInput = recurrenceSet.querySelector('.em-recurrence-duration input.em-recurrence-duration');\n\t\t\t\tlet durationValue = durationInput ? (durationInput.value.trim() || durationInput.placeholder || '0') : '0';\n\t\t\t\temRecurrenceEditor.updateDurationDescriptor( recurrenceSet );\n\n\t\t\t\t// Update elements with direct one-liners\n\t\t\t\tif ( Object.entries(dateValues).length === 4 ) {\n\t\t\t\t\tadvancedSummary.querySelectorAll('.start-date').forEach(el => { el.textContent = dateValues.start; el.classList.toggle('is-set', dateValues.startIsSet); });\n\t\t\t\t\tadvancedSummary.querySelectorAll('.end-date').forEach(el => { el.textContent = dateValues.end; el.classList.toggle('is-set', dateValues.endIsSet); });\n\t\t\t\t} else {\n\t\t\t\t\tadvancedSummary.querySelectorAll('.dates').forEach(el => { el.textContent = dateValues.start; el.classList.toggle('is-set', dateValues.startIsSet); });\n\t\t\t\t}\n\t\t\t\tadvancedSummary.querySelectorAll('.times').forEach( function( el ) {\n\t\t\t\t\tel.innerHTML = `<span class=\"start-time\">${timeValues.start}</span> - <span class=\"end-time\">${timeValues.end}</span>`;\n\t\t\t\t\tel.firstElementChild.classList.toggle('is-set', timeValues.startIsSet);\n\t\t\t\t\tel.lastElementChild.classList.toggle('is-set', timeValues.endIsSet);\n\t\t\t\t});\n\t\t\t\tadvancedSummary.querySelector('.all-day')?.classList.toggle('is-set', recurrenceSet.querySelector('.em-time-all-day')?.checked );\n\t\t\t\tadvancedSummary.querySelectorAll('.timezone').forEach(el => { el.textContent = timezoneValue; el.classList.toggle('is-set', timezoneSelect?.value); });\n\t\t\t\tadvancedSummary.querySelectorAll('.duration').forEach(el => { el.textContent = durationValue; el.classList.toggle('is-set', durationInput && durationInput.value !== ''); });\n\t\t\t}\n\t\t});\n\t});\n});","document.addEventListener('em_event_editor_recurrences', function( e ) {\n\tlet recurrenceSets = e.detail.recurrenceSets;\n\n\tlet setup_ui_elements = function( container ) {\n\t\t// clean up template of UI elements so they can be rebuilt when cloned\n\t\tif ( container === document ) {\n\t\t\tlet template = recurrenceSets.querySelector('.em-recurrence-set-template');\n\t\t\tem_unsetup_ui_elements( template );\n\t\t}\n\n\t\trecurrenceSets.dispatchEvent( new CustomEvent('setAdvancedDefaults') );\n\n\t\tlet eventType = recurrenceSets.closest('form').querySelector('input[name=\"event_type\"]')?.value;\n\n\t\t// Add change handlers for selectize dropdowns in first recurrence set\n\t\t// track selectize changes assuming recurrences are enabled\n\t\tif ( container === document && ( eventType === 'recurring' || eventType === 'repeating' ) ) {\n\t\t\t// Get the first recurrence set\n\t\t\tlet firstRecurrenceSet = recurrenceSets.querySelector('.em-recurrence-type-include .em-recurrence-set:first-child');\n\n\t\t\t// Map of recurrence field selectors to event field selectors\n\t\t\tconst fieldMappings = {\n\t\t\t\t'.em-recurrence-timezone select': 'select[name=\"event_timezone\"]',\n\t\t\t\t'.em-recurrence-status select': 'select[name=\"event_active_status\"]'\n\t\t\t};\n\n\t\t\t// Handle each field type\n\t\t\tObject.entries(fieldMappings).forEach( function([recurrenceSelector, eventSelector]) {\n\t\t\t\tlet recurrenceField = firstRecurrenceSet.querySelector(recurrenceSelector);\n\n\t\t\t\t// Find the corresponding event field\n\t\t\t\tlet eventFormWhen = recurrenceSets.closest('form').querySelector('.event-form-when');\n\t\t\t\tlet eventField = eventFormWhen?.querySelector(eventSelector);\n\n\t\t\t\tif ( recurrenceField && eventField ) {\n\t\t\t\t\t// Set up change handler using selectize API if available\n\t\t\t\t\tif (recurrenceField.selectize) {\n\t\t\t\t\t\t// For selectize fields\n\t\t\t\t\t\trecurrenceField.selectize.on('change', function (value) {\n\t\t\t\t\t\t\tif (eventField.selectize) {\n\t\t\t\t\t\t\t\t// If event field is also selectize\n\t\t\t\t\t\t\t\teventField.selectize.setValue(value, true);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// If event field is a regular select\n\t\t\t\t\t\t\t\teventField.value = value;\n\t\t\t\t\t\t\t\teventField.dispatchEvent(new Event('change', {bubbles: true}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Fallback for regular select fields\n\t\t\t\t\t\trecurrenceField.addEventListener('change', function () {\n\t\t\t\t\t\t\tif (eventField.selectize) {\n\t\t\t\t\t\t\t\teventField.selectize.setValue(recurrenceField.value, true);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\teventField.value = recurrenceField.value;\n\t\t\t\t\t\t\t\teventField.dispatchEvent(new Event('change', {bubbles: true}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Also handle initial sync (if recurrence field already has a value)\n\t\t\t\t\tlet initialValue = recurrenceField.selectize ? recurrenceField.selectize.getValue() : recurrenceField.value;\n\t\t\t\t\tif (initialValue) {\n\t\t\t\t\t\tif (eventField.selectize) {\n\t\t\t\t\t\t\teventField.selectize.setValue(initialValue, true);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\teventField.value = initialValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tdocument.addEventListener('em_setup_ui_elements', function(e) {\n\t\tsetup_ui_elements( e.detail.container );\n\t});\n\n\t// If already loaded, we trigger a first-time setup\n\tif (document.readyState === 'complete' || document.readyState === 'interactive') {\n\t\tsetup_ui_elements( document );\n\t}\n});","//Tickets & Bookings - legacy stuff needing some rewrites\ndocument.addEventListener('em_event_editor_loaded', function(e){\n\tconst $ = jQuery.noConflict();\n\tif ( $( \"#em-tickets-form\" ).length > 0 ) {\n\t\t//Enable/Disable Bookings\n\t\tdocument.getElementById('event-rsvp').addEventListener('click', function (event) {\n\t\t\tconst nonceInput = this.parentElement.querySelector('input.event_rsvp_delete[data-nonce]');\n\t\t\tconst rsvpOptions = document.getElementById('event-rsvp-options');\n\t\t\tif (!this.checked) {\n\t\t\t\tconst confirmation = confirm(EM.disable_bookings_warning);\n\t\t\t\tif (!confirmation) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} else {\n\t\t\t\t\trsvpOptions.classList.add('hidden');\n\t\t\t\t\tnonceInput.disabled = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\trsvpOptions.classList.remove('hidden');\n\t\t\t\tnonceInput.disabled = true;\n\t\t\t}\n\t\t});\n\t\tif ( $( 'input#event-rsvp' ).is( \":checked\" ) ) {\n\t\t\t$( \"div#rsvp-data\" ).fadeIn();\n\t\t} else {\n\t\t\t$( \"div#rsvp-data\" ).hide();\n\t\t}\n\t\t//Ticket(s) UI\n\t\tvar reset_ticket_forms = function () {\n\t\t\t$( '#em-tickets-form table tbody tr.em-tickets-row' ).show();\n\t\t\t$( '#em-tickets-form table tbody tr.em-tickets-row-form' ).hide();\n\t\t};\n\t\t// handle indeterminate checkboxes and the hidden inputs they associate with\n\t\tdocument.querySelectorAll('#em-tickets-form input.possibly-indeterminate[type=\"checkbox\"], #em-tickets-form input[type=\"checkbox\"][indeterminate]').forEach( cb => {\n\t\t\tif ( cb.hasAttribute('indeterminate') && cb.readOnly ) {\n\t\t\t\tcb.indeterminate = true;\n\t\t\t}\n\t\t\tcb.addEventListener('click', () => {\n\t\t\t\tif ( cb.hasAttribute('indeterminate') && !cb.classList.contains('determinate') ) {\n\t\t\t\t\tif ( cb.readOnly ) {\n\t\t\t\t\t\tcb.checked = true;\n\t\t\t\t\t\tcb.readOnly = false;\n\t\t\t\t\t} else if ( cb.checked ) {\n\t\t\t\t\t\tcb.readOnly = true\n\t\t\t\t\t\tcb.indeterminate = true;\n\t\t\t\t\t}\n\t\t\t\t\tif ( cb.classList.contains('possibly-indeterminate') ) {\n\t\t\t\t\t\tcb.nextElementSibling.value = cb.indeterminate ? 'default' : ( cb.checked ? 1 : 0 );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcb.nextElementSibling.value = cb.checked ? 1 : 0;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t//Add a new ticket\n\t\t$( \"#em-tickets-add\" ).on( 'click', function ( e ) {\n\t\t\te.preventDefault();\n\t\t\treset_ticket_forms();\n\t\t\t//create copy of template slot, insert so ready for population\n\t\t\tvar tickets = $( '#em-tickets-form table tbody' );\n\t\t\ttickets.first( '.em-ticket-template' ).find( 'input.em-date-input.flatpickr-input' ).each( function () {\n\t\t\t\tif ( '_flatpickr' in this ) {\n\t\t\t\t\tthis._flatpickr.destroy();\n\t\t\t\t}\n\t\t\t} ); //clear all datepickers, should be done first time only, next times it'd be ignored\n\t\t\tvar rowNo = tickets.length + 1;\n\t\t\tvar slot = tickets.first( '.em-ticket-template' ).clone( true ).attr( 'id', 'em-ticket-' + rowNo ).removeClass( 'em-ticket-template' ).addClass( 'em-ticket' ).appendTo( $( '#em-tickets-form table' ) );\n\t\t\t//change the index of the form element names\n\t\t\tslot.find( '*[name]' ).each( function ( index, el ) {\n\t\t\t\tel = $( el );\n\t\t\t\tel.attr( 'name', el.attr( 'name' ).replace( 'em_tickets[0]', 'em_tickets[' + rowNo + ']' ) );\n\t\t\t} );\n\t\t\t// sort out until datepicker ids\n\t\t\tlet start_datepicker = slot.find( '.ticket-dates-from-normal' ).first();\n\t\t\tif ( start_datepicker.attr( 'data-until-id' ) ) {\n\t\t\t\tlet until_id = start_datepicker.attr( 'data-until-id' ).replace( '-0', '-' + rowNo );\n\t\t\t\tstart_datepicker.attr( 'data-until-id', until_id );\n\t\t\t\tslot.find( '.ticket-dates-to-normal' ).attr( 'id', start_datepicker.attr( 'data-until-id' ) );\n\n\t\t\t}\n\t\t\t//show ticket and switch to editor\n\t\t\tslot.show().find( '.ticket-actions-edit' ).trigger( 'click' );\n\t\t\t//refresh datepicker and values\n\t\t\tslot.find( '.em-time-input' ).off().each( function ( index, el ) {\n\t\t\t\tif ( typeof this.em_timepickerObj == 'object' ) {\n\t\t\t\t\tthis.em_timepicker( 'remove' );\n\t\t\t\t}\n\t\t\t} ); //clear all em_timepickers - consequently, also other click/blur/change events, recreate the further down\n\t\t\tem_setup_ui_elements( slot );\n\t\t\t$( 'html, body' ).animate( { scrollTop: slot.offset().top - 30 } ); //sends user to form\n\t\t\tcheck_ticket_sortability();\n\t\t\t// set up a UUID for this ticket\n\t\t\tslot.find('.ticket_uuid').val(\n\t\t\t\t\"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, c =>\n\t\t\t\t\t(+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)\n\t\t\t\t)\n\t\t\t)\n\t\t} );\n\t\t//Edit a Ticket\n\t\t$( document ).on( 'click', '.ticket-actions-edit', function ( e ) {\n\t\t\te.preventDefault();\n\t\t\treset_ticket_forms();\n\t\t\tvar tbody = $( this ).closest( 'tbody' );\n\t\t\ttbody.find( 'tr.em-tickets-row' ).hide();\n\t\t\ttbody.find( 'tr.em-tickets-row-form' ).fadeIn();\n\t\t\treturn false;\n\t\t} );\n\t\t$( document ).on( 'click', '.ticket-actions-edited', function ( e ) {\n\t\t\te.preventDefault();\n\t\t\tvar tbody = $( this ).closest( 'tbody' );\n\t\t\tvar rowNo = tbody.attr( 'id' ).replace( 'em-ticket-', '' );\n\t\t\ttbody.find( '.em-tickets-row' ).fadeIn();\n\t\t\ttbody.find( '.em-tickets-row-form' ).hide();\n\t\t\ttbody.find( '*[name]' ).each( function ( index, el ) {\n\t\t\t\tel = $( el );\n\t\t\t\tif ( el.attr( 'name' ) == 'ticket_start_pub' ) {\n\t\t\t\t\ttbody.find( 'span.ticket_start' ).text( el.val() );\n\t\t\t\t} else if ( el.attr( 'name' ) == 'ticket_end_pub' ) {\n\t\t\t\t\ttbody.find( 'span.ticket_end' ).text( el.val() );\n\t\t\t\t} else if ( el.attr( 'name' ) == 'em_tickets[' + rowNo + '][ticket_type]' ) {\n\t\t\t\t\tif ( el.find( ':selected' ).val() == 'members' ) {\n\t\t\t\t\t\ttbody.find( 'span.ticket_name' ).prepend( '* ' );\n\t\t\t\t\t}\n\t\t\t\t} else if ( el.attr( 'name' ) == 'em_tickets[' + rowNo + '][ticket_start_recurring_days]' ) {\n\t\t\t\t\tvar text = tbody.find( 'select.ticket-dates-from-recurring-when' ).val() == 'before' ? '-' + el.val() : el.val();\n\t\t\t\t\tif ( el.val() != '' ) {\n\t\t\t\t\t\ttbody.find( 'span.ticket_start_recurring_days' ).text( text );\n\t\t\t\t\t\ttbody.find( 'span.ticket_start_recurring_days_text, span.ticket_start_time' ).removeClass( 'hidden' ).show();\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttbody.find( 'span.ticket_start_recurring_days' ).text( ' - ' );\n\t\t\t\t\t\ttbody.find( 'span.ticket_start_recurring_days_text, span.ticket_start_time' ).removeClass( 'hidden' ).hide();\n\t\t\t\t\t}\n\t\t\t\t} else if ( el.attr( 'name' ) == 'em_tickets[' + rowNo + '][ticket_end_recurring_days]' ) {\n\t\t\t\t\tvar text = tbody.find( 'select.ticket-dates-to-recurring-when' ).val() == 'before' ? '-' + el.val() : el.val();\n\t\t\t\t\tif ( el.val() != '' ) {\n\t\t\t\t\t\ttbody.find( 'span.ticket_end_recurring_days' ).text( text );\n\t\t\t\t\t\ttbody.find( 'span.ticket_end_recurring_days_text, span.ticket_end_time' ).removeClass( 'hidden' ).show();\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttbody.find( 'span.ticket_end_recurring_days' ).text( ' - ' );\n\t\t\t\t\t\ttbody.find( 'span.ticket_end_recurring_days_text, span.ticket_end_time' ).removeClass( 'hidden' ).hide();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar classname = el.attr( 'name' ).replace( 'em_tickets[' + rowNo + '][', '' ).replace( ']', '' ).replace( '[]', '' );\n\t\t\t\t\ttbody.find( '.em-tickets-row .' + classname ).text( el.val() );\n\t\t\t\t}\n\t\t\t} );\n\t\t\t//allow for others to hook into this\n\t\t\t$( document ).triggerHandler( 'em_maps_tickets_edit', [ tbody, rowNo, true ] );\n\t\t\t$( 'html, body' ).animate( { scrollTop: tbody.parent().offset().top - 30 } ); //sends user back to top of form\n\t\t\treturn false;\n\t\t} );\n\t\t$( document ).on( 'change', '.em-ticket-form select.ticket_type', function ( e ) {\n\t\t\t//check if ticket is for all users or members, if members, show roles to limit the ticket to\n\t\t\tvar el = $( this );\n\t\t\tlet ticketForm = el.closest( '.em-ticket-form' );\n\t\t\tif ( this.value === 'members' || ( this.value === '-1' && this.dataset.default === 'members' ) ) {\n\t\t\t\tel.closest( '.em-ticket-form' ).find( '.ticket-roles' ).fadeIn();\n\t\t\t} else {\n\t\t\t\tel.closest( '.em-ticket-form' ).find( '.ticket-roles' ).hide();\n\t\t\t}\n\t\t\tif ( this.value === '-1' && this.dataset.default === 'members' ) {\n\t\t\t\t// set all checkboxes with indeterminate prop to indeterminate\n\t\t\t\tticketForm[0].querySelectorAll( '.ticket-roles input[type=\"checkbox\"][indeterminate]' ).forEach( el => {\n\t\t\t\t\tel.indeterminate = true;\n\t\t\t\t\tel.classList.remove( 'determinate' )\n\t\t\t\t} );\n\t\t\t\tticketForm[0].querySelectorAll( '.ticket-roles input[type=\"checkbox\"]:not([indeterminate])' ).forEach( el => { el.checked = false; } );\n\t\t\t}else if ( this.value === 'members' ) {\n\t\t\t\t// remove indeterminate prop from all checkboxes\n\t\t\t\tticketForm[0].querySelectorAll( '.ticket-roles input[type=\"checkbox\"][indeterminate]' ).forEach( el => {\n\t\t\t\t\tel.indeterminate = false;\n\t\t\t\t\tel.readOnly = false;\n\t\t\t\t\tel.checked = true;\n\t\t\t\t\tel.classList.add( 'determinate' )\n\t\t\t\t} );\n\t\t\t}\n\t\t});\n\t\t$('.em-ticket-form select.ticket_type').trigger('change');\n\t\t$( document ).on( 'change', '.em-ticket-form .ticket-roles input[type=\"checkbox\"]', function ( e ) {\n\t\t\tlet ticketForm = this.closest( '.em-ticket-form' );\n\t\t\tlet select = ticketForm.querySelector( '.em-ticket-form select.ticket_type' )\n\t\t\tif ( select.dataset.default === 'members' && select.value === '-1' ) {\n\t\t\t\tselect.value = 'members';\n\t\t\t\tticketForm.querySelectorAll( '.ticket-roles input[type=\"checkbox\"][indeterminate]' ).forEach( el => {\n\t\t\t\t\tel.indeterminate = false;\n\t\t\t\t\tel.readOnly = false;\n\t\t\t\t\tel.checked = true;\n\t\t\t\t\tel.classList.add( 'determinate' )\n\t\t\t\t} );\n\t\t\t}\n\t\t});\n\t\t$( document ).on( 'click', '.em-ticket-form .ticket-options-advanced', function ( e ) {\n\t\t\t//show or hide advanced tickets, hidden by default\n\t\t\te.preventDefault();\n\t\t\tvar el = $( this );\n\t\t\tif ( el.hasClass( 'show' ) ) {\n\t\t\t\tel.closest( '.em-ticket-form' ).find( '.em-ticket-form-advanced' ).fadeIn();\n\t\t\t\tel.find( '.show,.show-advanced' ).hide();\n\t\t\t\tel.find( '.hide,.hide-advanced' ).show();\n\t\t\t} else {\n\t\t\t\tel.closest( '.em-ticket-form' ).find( '.em-ticket-form-advanced' ).hide();\n\t\t\t\tel.find( '.show,.show-advanced' ).show();\n\t\t\t\tel.find( '.hide,.hide-advanced' ).hide();\n\t\t\t}\n\t\t\tel.toggleClass( 'show' );\n\t\t} );\n\t\t$( '.em-ticket-form' ).each( function () {\n\t\t\t//check whether to show advanced options or not by default for each ticket\n\t\t\tvar show_advanced = false;\n\t\t\tvar el = $( this );\n\t\t\tel.find( '.em-ticket-form-advanced input[type=\"text\"]' ).each( function () {\n\t\t\t\tif ( this.value != '' ) show_advanced = true;\n\t\t\t} );\n\t\t\tif ( el.find( '.em-ticket-form-advanced input[type=\"checkbox\"]:checked' ).length > 0 ) {\n\t\t\t\tshow_advanced = true;\n\t\t\t}\n\t\t\tel.find( '.em-ticket-form-advanced option:selected' ).each( function () {\n\t\t\t\tif ( this.value != '' ) show_advanced = true;\n\t\t\t} );\n\t\t\tif ( show_advanced ) el.find( '.ticket-options-advanced' ).trigger( 'click' );\n\t\t} );\n\t\t//Delete a ticket\n\t\t$( document ).on( 'click', '.ticket-actions-delete', function ( e ) {\n\t\t\te.preventDefault();\n\t\t\tvar el = $( this );\n\t\t\tvar tbody = el.closest( 'tbody' );\n\t\t\tif ( tbody.find( 'input.ticket_id' ).val() > 0 ) {\n\t\t\t\t//only will happen if no bookings made, we set the ticket as deleted and enable the delete nonce\n\t\t\t\tlet warning = this.classList.contains( 'parent-ticket' ) ? EM.eventEditor.deleteTicketParentWarning : EM.eventEditor.deleteTicketWarning;\n\t\t\t\tif ( confirm( warning ) ) {\n\t\t\t\t\ttbody.find( 'input.delete[data-nonce]' ).prop('disabled', false);\n\t\t\t\t\ttbody.closest( '.em-ticket' ).addClass( 'ticket-deleted' );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//not saved to db yet, so just remove\n\t\t\t\ttbody.remove();\n\t\t\t}\n\t\t\tcheck_ticket_sortability();\n\t\t\treturn false;\n\t\t} );\n\t\t//Sort Tickets\n\t\t$( '#em-tickets-form.em-tickets-sortable table' ).sortable( {\n\t\t\titems: '> tbody',\n\t\t\tplaceholder: \"em-ticket-sortable-placeholder\",\n\t\t\thandle: '.ticket-status',\n\t\t\thelper: function ( event, el ) {\n\t\t\t\tvar helper = $( el ).clone().addClass( 'em-ticket-sortable-helper' );\n\t\t\t\tvar tds = helper.find( '.em-tickets-row td' ).length;\n\t\t\t\thelper.children().remove();\n\t\t\t\thelper.append( '<tr class=\"em-tickets-row\"><td colspan=\"' + tds + '\" style=\"text-align:left; padding-left:15px;\"><span class=\"dashicons dashicons-tickets-alt\"></span></td></tr>' );\n\t\t\t\treturn helper;\n\t\t\t},\n\t\t} );\n\t\tvar check_ticket_sortability = function () {\n\t\t\tvar em_tickets = $( '#em-tickets-form table tbody.em-ticket' );\n\t\t\tif ( em_tickets.length == 1 ) {\n\t\t\t\tem_tickets.find( '.ticket-status' ).addClass( 'single' );\n\t\t\t\t$( '#em-tickets-form.em-tickets-sortable table' ).sortable( \"option\", \"disabled\", true );\n\t\t\t} else {\n\t\t\t\tem_tickets.find( '.ticket-status' ).removeClass( 'single' );\n\t\t\t\t$( '#em-tickets-form.em-tickets-sortable table' ).sortable( \"option\", \"disabled\", false );\n\t\t\t}\n\t\t};\n\t\tcheck_ticket_sortability();\n\t}\n});"]}