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/static/js/customizer/sync/pagination.js
import {
	getPrefixFor,
	getOptionFor,
	responsiveClassesFor,
	watchOptionsWithPrefix,
	applyPrefixFor,
} from './helpers'

const prefix = getPrefixFor({
	allowed_prefixes: [
		'blog',
		'search',
		'author',
		'categories',
		'woo_categories',
	],
	default_prefix: 'blog',
})

const optionPrefix = ['author', 'categories'].includes(prefix) ? 'blog' : prefix

watchOptionsWithPrefix({
	getPrefix: () => prefix,
	getOptionsForPrefix: () => [
		`${optionPrefix}_load_more_label`,
		`${optionPrefix}_paginationDivider`,
		`${optionPrefix}_numbers_visibility`,
		`${optionPrefix}_arrows_visibility`,
	],

	render: () => {
		if (document.querySelector('.ct-load-more')) {
			document.querySelector('.ct-load-more').innerHTML = getOptionFor(
				'load_more_label',
				optionPrefix
			)
		}

		;[...document.querySelectorAll('.ct-pagination')].map((el) => {
			el.removeAttribute('data-divider')
			;[...el.parentNode.querySelectorAll('nav > a')].map((el) => {
				responsiveClassesFor(
					getOptionFor('arrows_visibility', optionPrefix),
					el
				)
			})
			;[...el.parentNode.querySelectorAll('nav > div')].map((el) => {
				responsiveClassesFor(
					getOptionFor('numbers_visibility', optionPrefix),
					el
				)
			})

			if (
				getOptionFor('paginationDivider', optionPrefix).style === 'none'
			) {
				return
			}

			if (
				getOptionFor('pagination_global_type', optionPrefix) ===
				'infinite_scroll'
			) {
				return
			}

			el.dataset.divider = ''
		})
	},
})

export const getPaginationVariables = () => ({
	[`${optionPrefix}_paginationSpacing`]: {
		selector: applyPrefixFor('.ct-pagination', prefix),
		variable: 'spacing',
		responsive: true,
		unit: '',
	},

	[`${optionPrefix}_paginationDivider`]: {
		selector: applyPrefixFor('.ct-pagination[data-divider]', prefix),
		variable: 'pagination-divider',
		type: 'border',
		skip_none: true,
	},

	[`${optionPrefix}_pagination_border_radius`]: {
		selector: applyPrefixFor('.ct-pagination', prefix),
		type: 'spacing',
		variable: 'theme-border-radius',
		emptyValue: 4,
	},

	[`${optionPrefix}_simplePaginationFontColor`]: [
		{
			selector: applyPrefixFor(
				'[data-pagination="simple"], [data-pagination="next_prev"]',
				prefix
			),
			variable: 'theme-text-color',
			type: 'color:default',
		},

		{
			selector: applyPrefixFor(
				'.ct-pagination[data-pagination="simple"]',
				prefix
			),
			variable: 'theme-text-active-color',
			type: 'color:active',
		},

		{
			selector: applyPrefixFor(
				'[data-pagination="simple"], [data-pagination="next_prev"]',
				prefix
			),
			variable: 'theme-link-hover-color',
			type: 'color:hover',
		},
	],

	[`${optionPrefix}_paginationButtonText`]: [
		{
			selector: applyPrefixFor('[data-pagination="load_more"]', prefix),
			variable: 'theme-button-text-initial-color',
			type: 'color:default',
		},

		{
			selector: applyPrefixFor('[data-pagination="load_more"]', prefix),
			variable: 'theme-button-text-hover-color',
			type: 'color:hover',
		},
	],

	[`${optionPrefix}_paginationButton`]: [
		{
			selector: applyPrefixFor('[data-pagination="load_more"]', prefix),
			variable: 'theme-button-background-initial-color',
			type: 'color:default',
		},

		{
			selector: applyPrefixFor('[data-pagination="load_more"]', prefix),
			variable: 'theme-button-background-hover-color',
			type: 'color:hover',
		},
	],
})