HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vm8 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: afleverb (1000)
PHP: 7.4.33
Disabled: 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,
Upload Files
File: //var/www/drakkar_site/wp-content/themes/blocksy/inc/panel-builder/footer/copyright/sync.js
import { typographyOption } from '../../../../static/js/customizer/sync/variables/typography'
import ctEvents from 'ct-events'
import {
	responsiveClassesFor,
	getRootSelectorFor,
	assembleSelector,
	mutateSelector,
} from '../../../../static/js/customizer/sync/helpers'

ctEvents.on(
	'ct:footer:sync:collect-variable-descriptors',
	(variableDescriptors) => {
		variableDescriptors['copyright'] = ({ itemId }) => ({
			...typographyOption({
				id: 'copyrightFont',
				selector: assembleSelector(
					getRootSelectorFor({ itemId, panelType: 'footer' })
				),
			}),

			copyrightColor: [
				{
					selector: assembleSelector(
						getRootSelectorFor({ itemId, panelType: 'footer' })
					),
					variable: 'theme-text-color',
					type: 'color:default',
					responsive: true,
				},

				{
					selector: assembleSelector(
						getRootSelectorFor({ itemId, panelType: 'footer' })
					),
					variable: 'theme-link-initial-color',
					type: 'color:link_initial',
					responsive: true,
				},

				{
					selector: assembleSelector(
						getRootSelectorFor({ itemId, panelType: 'footer' })
					),
					variable: 'theme-link-hover-color',
					type: 'color:link_hover',
					responsive: true,
				},
			],

			footerCopyrightAlignment: {
				selector: assembleSelector(
					mutateSelector({
						selector: getRootSelectorFor({
							itemId,
							panelType: 'footer',
						}),
						operation: 'replace-last',
						to_add: '[data-column="copyright"]',
					})
				),
				variable: 'horizontal-alignment',
				responsive: true,
				unit: '',
			},

			footerCopyrightVerticalAlignment: {
				selector: assembleSelector(
					mutateSelector({
						selector: getRootSelectorFor({
							itemId,
							panelType: 'footer',
						}),
						operation: 'replace-last',
						to_add: '[data-column="copyright"]',
					})
				),
				variable: 'vertical-alignment',
				responsive: true,
				unit: '',
			},

			copyrightMargin: {
				selector: assembleSelector(
					getRootSelectorFor({ itemId, panelType: 'footer' })
				),
				type: 'spacing',
				variable: 'margin',
				responsive: true,
				important: true,
			},
		})
	}
)

ctEvents.on(
	'ct:footer:sync:item:copyright',
	({ itemId, optionId, optionValue }) => {
		const selector = `[data-id="${itemId}"]`
		let el = document.querySelector(selector)

		if (optionId === 'copyright_text') {
			el.innerHTML = optionValue
				.replace('{current_year}', new Date().getFullYear())
				.replace(
					'{theme_author}',
					ct_localizations.customizer_sync.theme_author
				)
				.replace(
					'{site_title}',
					ct_localizations.customizer_sync.site_title
				)
		}

		if (optionId === 'footer_copyright_visibility') {
			responsiveClassesFor(optionValue, el)
		}
	}
)