| Server IP : 38.190.208.107 / Your IP : 216.73.216.102 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : www ( 1000) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.2/wp-content/plugins/blocksy-companion-pro/static/js/ |
Upload File : |
import ctEvents from 'ct-events'
import { registerDynamicChunk } from 'blocksy-frontend'
import { handleAccountModal, activateScreen } from './frontend/account'
let maybeTemplate = ''
const turnstileSelectors = {
login: '.ct-account-modal #loginform .cf-turnstile',
lostpassword: '.ct-account-modal #lostpasswordform .cf-turnstile',
register: '.ct-account-modal #registerform .cf-turnstile',
}
const removeTurnstile = () => {
if (!window.turnstile) {
return
}
Object.keys(turnstileSelectors).forEach((selector) => {
const element = document.querySelector(turnstileSelectors[selector])
if (element) {
turnstile.remove(turnstileSelectors[selector])
if (selector === 'register') {
turnstile.remove(
'.ct-account-modal #registerform .sct-woocommerce-register'
)
}
}
})
}
const resetTurnstile = () => {
if (!window.turnstile) {
return
}
Object.keys(turnstileSelectors).forEach((selector) => {
const element = document.querySelector(turnstileSelectors[selector])
if (element) {
turnstile.render(turnstileSelectors[selector])
}
})
}
const integrateGoogleSignIn = () => {
if (!window.google || !google.accounts || !google.accounts.id) {
return
}
const maybeButtons = document.querySelectorAll(
'.googlesitekit-sign-in-with-google__frontend-output-button'
)
if (!maybeButtons.length) {
return
}
maybeButtons.forEach((button) => {
// move button to after login-submit
const loginSubmit = button
.closest('form')
.querySelector('.login-submit')
if (loginSubmit) {
loginSubmit.insertAdjacentElement('afterend', button)
}
google.accounts.id.renderButton(button, {})
})
}
const integrations = () => {
if (window.anr_onloadCallback) {
window.anr_onloadCallback()
}
resetTurnstile()
integrateGoogleSignIn()
if (window.Dokan_Vendor_Registration) {
window.Dokan_Vendor_Registration.init()
}
}
registerDynamicChunk('blocksy_account', {
mount: (el, { event }) => {
// Don't do anything if there's a panel opened already.
// This means the account is placed in another panel and is opened from
// it. Soon another click event will be fired on the same element
// by the panel logic itself.
if (document.body.dataset.panel) {
return
}
if (!maybeTemplate) {
let maybeAccount = document.querySelector(
'#ct-account-modal-template'
)
if (!maybeAccount) {
location = document.querySelector(
'[data-id="account"] .ct-account-item'
)
? document.querySelector(
'[data-id="account"] .ct-account-item'
).href
: el.href
return
}
const templateElement = document.createElement('div')
const templateContent = maybeAccount.content.cloneNode(true)
templateElement.insertAdjacentHTML(
'beforeend',
templateContent.firstElementChild.outerHTML
)
maybeTemplate = templateElement.firstChild.outerHTML
removeTurnstile()
maybeAccount.remove()
}
let panel = document.querySelector('#account-modal')
if (!panel) {
document
.querySelector('.ct-drawer-canvas')
.insertAdjacentHTML('beforeend', maybeTemplate)
panel = document.querySelector('.ct-drawer-canvas').lastChild
}
const actuallyOpen = () => {
handleAccountModal(panel)
activateScreen(panel, {
screen: el.dataset.view || 'login',
})
integrations()
ctEvents.trigger('ct:overlay:handle-click', {
e: event,
href: '#account-modal',
options: {
isModal: true,
computeScrollContainer: () => {
if (!panel.closest('body')) {
return
}
return panel.querySelector('.ct-account-forms')
},
},
})
}
actuallyOpen()
},
})
ctEvents.on('ct:modal:closed', (modalContainer) => {
if (!modalContainer.closest('#account-modal')) {
return
}
modalContainer.remove()
})