File manager - Edit - /home/palg2351/public_html/wp-content/themes/blocksy/static/js/customizer/sync/helpers.js
Back
import ctEvents from 'ct-events' import { shortenItemId, getOriginalId, } from '../panels-builder/placements/helpers' export const getSkipRuleKeyword = (suffix = '') => { return `CT_CSS_SKIP_RULE${suffix}` } export const assembleSelector = (selector) => Array.isArray(selector) ? selector.join(' ') : selector export const mutateSelector = (args = {}) => { args = { selector: null, // prefix | suffix | between | replace-last operation: 'between', to_add: '', ...args, } if (args.operation === 'between') { let [first, ...rest] = args.selector return [first, args.to_add, ...rest] } if (args.operation === 'el-prefix' && args.selector.length > 1) { let [first, second, ...rest] = args.selector return [first, `${args.to_add}${second}`, ...rest] } if (args.operation === 'el-suffix' && args.selector.length > 1) { let [first, second, ...rest] = args.selector return [first, `${second}${args.to_add}`, ...rest] } if (args.operation === 'container-suffix') { let [first, ...rest] = args.selector return [`${first}${args.to_add}`, ...rest] } if (args.operation === 'suffix') { return [...args.selector, args.to_add] } if (args.operation === 'prefix') { return [args.to_add, ...args.selector] } if (args.operation === 'replace-last') { let last = args.selector.pop() return [...args.selector, args.to_add] } return args.selector } export const getColumnSelectorFor = (args = {}) => { args = { itemId: null, ...args, } let result = getOriginalId(args.itemId) if (getOriginalId(args.itemId) !== shortenItemId(args.itemId)) { result = `${result}:${shortenItemId(args.itemId)}` } return `[data-column="${result}"]` } export const getRootSelectorFor = (args = {}) => { args = { // header | footer panelType: 'header', itemId: null, fullItemId: null, ...args, } if (args.itemId && !args.fullItemId) { args.fullItemId = args.itemId } let selector = '' if (args.itemId) { selector = `[data-id="${args.itemId}"]` if (['middle-row', 'top-row', 'bottom-row'].indexOf(args.itemId) > -1) { selector = `[data-row*="${args.itemId.replace('-row', '')}"]` } if (args.itemId === 'socials') { selector = `${selector}.ct-${args.panelType}-socials` } if (args.itemId === 'offcanvas') { selector = '#offcanvas' } } let section = document.querySelector( args.panelType === 'header' ? 'header#header' : 'footer.ct-footer' ) let header_prefix = `[data-${args.panelType}*="${ section ? section.dataset.id || 'type-1' : 'type-1' }"]` if ( args.fullItemId && [ 'middle-row', 'top-row', 'bottom-row', 'menu', 'menu-secondary', 'menu-tertiary', 'logo', 'language-switcher', 'button', 'text', 'search-input', 'contacts', 'widget-area-1', 'widget-area-2', 'widget-area-3', 'widget-area-4', ].indexOf(getOriginalId(args.fullItemId)) > -1 ) { if (args.panelType === 'header') { header_prefix = `${header_prefix} .ct-header` } if (args.panelType === 'footer') { header_prefix = `${header_prefix} .ct-footer` } } if (!selector) { return [header_prefix] } return [header_prefix, selector] } export const applyPrefixFor = (selector, prefix) => { if (prefix && prefix.length > 0) { return `[data-prefix="${prefix}"] ${selector}` } return selector } export const getPrefixFor = ({ allowed_prefixes = null, default_prefix = null, } = {}) => { let actualPrefix = document.body.dataset.prefix if ( allowed_prefixes && actualPrefix.indexOf('_archive') === -1 && allowed_prefixes.indexOf(actualPrefix) === -1 ) { actualPrefix = default_prefix } return actualPrefix } export const maybeInsertBefore = ({ el, selector, destination }) => { if (destination.querySelector(selector)) { destination.insertBefore(el, destination.querySelector(selector)) } else { destination.appendChild(el) } } export const withKeys = (keys, descriptor) => keys.reduce( (result, currentKey) => ({ ...result, [currentKey]: descriptor, }), {} ) export const setRatioFor = (args = {}) => { args = { ratio: false, el: null, setFullSize: false, ...args, } if (!args.el) { return } if (!args.ratio) { args.ratio = '4/3' } args.el.querySelectorAll('[width]').forEach((imgEl) => { let thumb_ratio = args.ratio.split( args.ratio.indexOf('/') > -1 ? '/' : ':' ) if (args.ratio === 'original') { thumb_ratio = [ imgEl.parentNode.dataset.w ? parseInt(imgEl.parentNode.dataset.w) : imgEl.naturalWidth, imgEl.parentNode.dataset.h ? parseInt(imgEl.parentNode.dataset.h) : imgEl.naturalHeight, ] } imgEl.style.aspectRatio = `${thumb_ratio[0]} / ${thumb_ratio[1]}` if (args.setFullSize) { let fullSize = '' if (imgEl.dataset.original) { fullSize = imgEl.dataset.original } if (imgEl.srcset && !imgEl.dataset.original) { const srcSetFullSize = imgEl.srcset .split(',') .reverse()[0] .trim() if (srcSetFullSize) { fullSize = srcSetFullSize.split(' ')[0] } } if (fullSize) { imgEl.src = fullSize imgEl.removeAttribute('srcset') imgEl.removeAttribute('sizes') } } }) } export function changeTagName(node, name) { var renamed = document.createElement(name) ;[...node.attributes].map(({ name, value }) => { renamed.setAttribute(name, value) }) while (node.firstChild) { renamed.appendChild(node.firstChild) } return node.parentNode.replaceChild(renamed, node) } export const getOptionFor = (key, prefix = '') => { const id = `${prefix}${prefix.length > 0 ? '_' : ''}${key}` if (wp.customize(id)) { return wp.customize(id)() } return false } export const watchOptionsWithPrefix = (args = {}) => { const { getPrefix = getPrefixFor, getOptionsForPrefix = ({ prefix }) => [], render = () => {}, events = [], } = args let prefix = getPrefix() events.map((evt) => ctEvents.on(evt, () => render({ prefix }))) getOptionsForPrefix({ prefix }).map((id) => wp.customize(id, (val) => val.bind((to) => render({ prefix, id }))) ) } export const handleResponsiveSwitch = ({ selector, variable = 'visibility', on = 'block', off = 'none', }) => ({ selector, variable, responsive: true, extractValue: ({ mobile, tablet, desktop }) => ({ mobile: mobile ? on : off, tablet: tablet ? on : off, desktop: desktop ? on : off, }), }) export const responsiveClassesFor = (data, el) => { el.classList.remove('ct-hidden-sm', 'ct-hidden-md', 'ct-hidden-lg') if (typeof data === 'string') { if (!wp.customize(data)) return data = wp.customize(data)() || { mobile: false, tablet: true, desktop: true, } } if (data === true || typeof data === 'undefined') { return } if (!data.mobile) { el.classList.add('ct-hidden-sm') } if (!data.tablet) { el.classList.add('ct-hidden-md') } if (!data.desktop) { el.classList.add('ct-hidden-lg') } } export const replaceFirstTextNode = (el, newText) => { let textNode = [...el.childNodes].find( (elm) => elm.nodeType != 1 && elm.textContent.trim().length !== 0 ) if (!textNode) { el.insertAdjacentText('afterbegin', newText) return } textNode.textContent = `${newText}${String.fromCharCode(160)}` } export const disableTransitionsStart = (el) => { Array.from(el).map((el) => { el.classList.add('ct-disable-transitions') }) } export const disableTransitionsEnd = (el) => { setTimeout(() => { Array.from(el).map((el) => { el.classList.remove('ct-disable-transitions') }) }, 50) } export const mapValue = (args = {}) => { args = { value: {}, map: {}, ...args, } if (args.value.desktop && args.map[args.value.desktop]) { args.value.desktop = args.map[args.value.desktop] } if (args.value.tablet && args.map[args.value.tablet]) { args.value.tablet = args.map[args.value.tablet] } if (args.value.mobile && args.map[args.value.mobile]) { args.value.mobile = args.map[args.value.mobile] } if (args.map[args.value]) { return args.map[args.value] } return args.value }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0.07 |
proxy
|
phpinfo
|
Settings