52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
import { render, createElement } from '@wordpress/element'
|
|
|
|
const getDocument = x =>
|
|
x.document || x.contentDocument || x.contentWindow.document
|
|
|
|
const buildersMaps = {
|
|
header: {
|
|
panelType: 'header',
|
|
customizerFieldKey: 'header_placements'
|
|
},
|
|
|
|
footer: {
|
|
panelType: 'footer',
|
|
customizerFieldKey: 'footer_placements'
|
|
}
|
|
}
|
|
|
|
const openBuilderFor = key => {
|
|
document.querySelector('.ct-panel-builder').dataset.builder =
|
|
buildersMaps[key].panelType
|
|
|
|
document.querySelector('.wp-full-overlay').classList.add('ct-show-builder')
|
|
|
|
if (buildersMaps[key].panelType === 'footer') {
|
|
document.body.classList.add('ct-footer-builder')
|
|
}
|
|
}
|
|
|
|
const closeBuilderFor = key => {
|
|
document
|
|
.querySelector('.wp-full-overlay')
|
|
.classList.remove('ct-show-builder')
|
|
document.body.classList.remove('ct-footer-builder')
|
|
}
|
|
|
|
export const initBuilder = () => {
|
|
const root = document.createElement('div')
|
|
root.classList.add('ct-panel-builder')
|
|
|
|
document.querySelector('.wp-full-overlay').appendChild(root)
|
|
|
|
Object.keys(buildersMaps).map(singleKey =>
|
|
(wp.customize.panel(singleKey)
|
|
? wp.customize.panel
|
|
: wp.customize.section)(singleKey, section =>
|
|
section.expanded.bind(value =>
|
|
value ? openBuilderFor(singleKey) : closeBuilderFor(singleKey)
|
|
)
|
|
)
|
|
)
|
|
}
|