/*! js-cookie v3.0.5 | MIT */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self,function(){var n=e.Cookies,o=e.Cookies=t();o.noConflict=function(){return e.Cookies=n,o}}())}(this,function(){"use strict";function e(e){for(var t=1;t__')),null!==(r=window)&&void 0!==r&&null!==(o=r.localStorage)&&void 0!==o&&o.getItem("wccom-tracks-debug"))&&console.debug("%cwccom:tracks%c "+c,"color: #ff32cc;","color: inherit;",null!==(n=e)&&void 0!==n?n:{});var a=function(){void 0===e&&(e={}),wccom.fillReferer(e),e.current_url=window.location.href;var t=new FormData;t.append("action","woothemes_tracks_ajax"),t.append("event_name",c);for(var r=0,o=Object.keys(e);r button.single_docs_button").on("click",(function(){dataLayer.push({event:"gtm_click",eventCategory:"add to basket",eventAction:wccom_plugins_params.productCategory,eventLabel:wccom_plugins_params.productName,eventValue:""})})),t("a.wccom-bundle-button","a.wccom-mock-bundle-button").on("click",(function(){dataLayer.push({event:"gtm_click",eventCategory:"add to basket",eventAction:wccom_plugins_params.productCategory,eventLabel:wccom_plugins_params.productName,eventValue:""})})),t("#theme_buynow_link").on("click",(function(){dataLayer.push({event:"gtm_click",eventCategory:"add to basket",eventAction:wccom_plugins_params.productCategory,eventLabel:wccom_plugins_params.productName,eventValue:""})})),t("#theme_demo_link").on("click",(function(){dataLayer.push({event:"gtm_click",eventCategory:"view demo",eventAction:wccom_plugins_params.productCategory,eventLabel:wccom_plugins_params.productName,eventValue:""})})),t(".all-themes-pricing .button").on("click",(function(){dataLayer.push({event:"gtm_click",eventCategory:"add to basket",eventAction:wccom_plugins_params.productCategory,eventLabel:wccom_plugins_params.productName,eventValue:""})})),t(".woocommerce-cart .graphflow-recommendations a").on("click",(function(){dataLayer.push({event:"gtm_click",eventCategory:"view recommendation",eventAction:"cart",eventLabel:t(this).attr("title"),eventValue:""})})),t(".single-product .graphflow-recommendations a").on("click",(function(){dataLayer.push({event:"gtm_click",eventCategory:"view recommendation",eventAction:"product",eventLabel:t(this).attr("title"),eventValue:""})})),t("div.product-type-external .cart a.button").on("click",(function(){dataLayer.push({event:"gtm_click",eventCategory:"view external product",eventAction:wccom_plugins_params.productCategory,eventLabel:wccom_plugins_params.productName})})),t("#wc_introduction .wc_learn_more").on("click",(function(){dataLayer.push({event:"gtm_click",eventCategory:"Overview",eventAction:"WooCommerce",eventLabel:"Overview Video",eventValue:""})})),t(".main-search .title").on("click","a",(function(){var e=t(this).parents(".results-group"),n=t(this).parents(".results-item").index();(10=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var c,i=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return i=t.done,t},e:function(t){u=!0,c=t},f:function(){try{i||null==n.return||n.return()}finally{if(u)throw c}}}}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,o=new Array(e);n0&&void 0!==arguments[0]?arguments[0]:window.location.href,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.split("?");return e&&(n[0]=n[0].split("#")[0]),n[1]?{url:n[0],params:this.queryStringToObject(n[1])}:{url:n[0],params:{}}},queryStringToObject:function(t){return(t||window.location.search).replace(/(^\?)/,"").split("&").map(function(t){return this[(t=t.split("="))[0]]=t[1],this}.bind({}))[0]},objectToQueryString:function(t){return Object.keys(t).map((function(e){return t[e]?e+"="+t[e]:e})).join("&")},getLoginUrl:function(){var t=window.location,e=t.pathname,n=t.search,o=t.hash,r="".concat(e).concat(n).concat(o);return"/sso?next=".concat(encodeURIComponent(r))},maybeResizeImage:function(t,e){var n=i.parseUrl(t).params,o=parseInt(n.w);return n&&"number"==typeof e&&Number.isInteger(o)?i.fixedImageSize(t,o,parseInt(o*e),"resize"):t},fixedImageSize:function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"fit";if(!["fit","resize"].includes(o))return t;var c=i.parseUrl(t),a=c.params;if("object"!==r(a))return t;return["w","h","resize","crop","fit"].forEach((function(t){return delete a[t]})),a[o]=e+","+n,c.url+"?"+this.objectToQueryString(a)},setViewportHeightCSSProperty:function(){var t=.01*window.innerHeight;document.documentElement.style.setProperty("--vh","".concat(t,"px"))},getIdFromClassList:function(t,e){var n,o=new RegExp("^"+e+"\\-(\\d+)$"),r=c(t);try{for(r.s();!(n=r.n()).done;){var a=n.value.match(o);if(a)return parseInt(a[1])}}catch(t){r.e(t)}finally{r.f()}},uuidv4:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))},randomId:function(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(2,10)},countWords:function(t){return t.split(/\s+/).filter((function(t){return""!==t})).length},elementInView:function(t){var e=document.querySelector(t);if(!e||null===e.offsetParent)return!1;var n=e.getBoundingClientRect();return 0<=n.top&&0<=n.left&&n.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&n.right<=(window.innerWidth||document.documentElement.clientWidth)},checkTrapContainerVisibility:function(t){var e=t.map((function(t){return new Promise((function(e){var n=window.setInterval((function(){"hidden"!==window.getComputedStyle(t).visibility&&(e(),window.clearInterval(n))}),25)}))}));return Promise.all(e)},roundedMonthlyPrice:function(t){return Math.ceil(t/12*100)/100},getUserLocation:function(){var t=(new Date).getTime();return fetch("https://public-api.wordpress.com/geo/?v="+t).then((function(t){return t.ok?t.json():t.body().then((function(t){throw new Error(t)}))})).catch((function(){return null}))}},u=i;function d(t){var e;return null===(e=document.cookie.split("; ").find((function(e){return e.startsWith(t+"=")})))||void 0===e?void 0:e.split("=")[1]}function s(t,e,n){var o="";if(n){var r=new Date;r.setTime(r.getTime()+864e5*n),o="expires=".concat(r.toUTCString(),"; ")}document.cookie="".concat(t,"=").concat(e,"; ").concat(o,"Path=/; SameSite=None; Secure")}function m(t){document.cookie="".concat(t,"=; Path=/; Max-Age=-99999;")}jQuery((function(){window.dataLayer=window.dataLayer||[];var t="WCCOM_Data_Layer_Geo_v2",e=d(t),n=function(t){"undefined"!=typeof wccomGTMEE&&t&&(wccomGTMEE.geolocation={countryShort:t.country_short,countryLong:t.country_long,region:t.region,city:t.city},dataLayer.push({event:"geolocation",geolocation:wccomGTMEE.geolocation}))};"undefined"!=typeof wccomGTMEE&&wccomGTMEE.productView&&dataLayer.push({event:"visitor interaction",interaction_name:"view product page",ecommerce:{detail:{products:[{category:wccomGTMEE.product.category,brand:wccomGTMEE.product.brand,name:wccomGTMEE.product.name,id:wccomGTMEE.product.sku,variant:wccomGTMEE.product.revenueType}]}}}),"undefined"!=typeof wccomGTMEE&&wccomGTMEE.orderReceivedView&&dataLayer.push({event:"visitor interaction",interaction_name:"transaction confirmation",net_revenue:wccomGTMEE.order.netRevenue,ecommerce:{currencyCode:wccomGTMEE.currencyCode,purchase:{actionField:{id:wccomGTMEE.order.number,affiliation:wccomGTMEE.order.methodOfPayment,revenue:wccomGTMEE.order.total,tax:wccomGTMEE.order.tax,shipping:wccomGTMEE.order.shippingTotal,coupon:wccomGTMEE.order.coupon},products:wccomGTMEE.order.products}}}),e?n(JSON.parse(decodeURIComponent(e))):u.getUserLocation().then((function(e){e&&(s(t,encodeURIComponent(JSON.stringify(e)),1),n(e))})).catch((function(){dataLayer.push({event:"geolocation",geolocation:{}})})),jQuery(".wccom-product-box a.single_add_to_cart_button").not(".wccom-product-single--in-app .wccom-product-box a.single_add_to_cart_button").not(".wccom-product-box--is-free a.single_add_to_cart_button").not(".wccom-product-box--is-external a.single_add_to_cart_button").on("click",(function(){jQuery.fn.addToCartDLPush({add_to_cart_btn:"buy now"})})),jQuery(".wccom-product-sticky-bottom-bar a.single_add_to_cart_button").not(".wccom-product-single--in-app .wccom-product-sticky-bottom-bar a.single_add_to_cart_button").not(".wccom-product-sticky-bottom-bar--is-free a.single_add_to_cart_button").not(".wccom-product-sticky-bottom-bar--is-external a.single_add_to_cart_button").on("click",(function(){jQuery.fn.addToCartDLPush({add_to_cart_btn:"buy now sticky mobile"})})),jQuery(".wccom-product-box--is-free a.single_add_to_cart_button").not(".wccom-product-box--is-external a.single_add_to_cart_button").on("click",(function(){jQuery.fn.addToCartDLPush({add_to_cart_btn:"free download"})})),jQuery(".wccom-product-sticky-bottom-bar--is-free a.single_add_to_cart_button").not(".wccom-product-sticky-bottom-bar--is-external a.single_add_to_cart_button").on("click",(function(){jQuery.fn.addToCartDLPush({add_to_cart_btn:"free download sticky mobile"})})),jQuery(".wccom-product-sticky-top-bar--is-external a.single_add_to_cart_button").on("click",(function(){jQuery.fn.addToCartDLPush({add_to_cart_btn:"external sticky"})})),jQuery(".wccom-product-box--is-external a.single_add_to_cart_button").on("click",(function(){jQuery.fn.addToCartDLPush({add_to_cart_btn:"external"})})),jQuery(".wccom-product-sticky-bottom-bar--is-external a.single_add_to_cart_button").on("click",(function(){jQuery.fn.addToCartDLPush({add_to_cart_btn:"external sticky mobile"})})),jQuery(".wccom-product-single--in-app .wccom-product-sticky-top-bar a.single_add_to_cart_button").on("click",(function(){jQuery.fn.addToCartDLPush({add_to_cart_btn:"in-app sticky"})})),jQuery(".wccom-product-single--in-app .wccom-product-box a.single_add_to_cart_button").on("click",(function(){jQuery.fn.addToCartDLPush({add_to_cart_btn:"in-app"})})),jQuery(".wccom-product-single--in-app .wccom-product-sticky-bottom-bar a.single_add_to_cart_button").on("click",(function(){jQuery.fn.addToCartDLPush({add_to_cart_btn:"in-app sticky mobile"})})),jQuery(".sf-downloads a.download").on("click",(function(){jQuery.fn.addToCartDLPush({add_to_cart_btn:"get woocommerce storefront bottom"})})),jQuery(".storefront-heading a.download").on("click",(function(){jQuery.fn.addToCartDLPush({add_to_cart_btn:"get woocommerce storefront top"})})),jQuery(document).on("click",".woocommerce-cart-form a.remove",(function(t){if("undefined"!=typeof wccomGTMEE&&wccomGTMEE.cart){t.preventDefault();var e=jQuery(this).attr("data-product_id");dataLayer.push({event:"visitor interaction",interaction_name:"remove from cart",remove_btn:"remove product",ecommerce:{remove:{products:[{category:wccomGTMEE.cart[e].category,brand:wccomGTMEE.cart[e].brand,name:wccomGTMEE.cart[e].name,id:wccomGTMEE.cart[e].id,variant:wccomGTMEE.cart[e].variant,price:wccomGTMEE.cart[e].price,quantity:wccomGTMEE.cart[e].quantity}]}}}),delete wccomGTMEE.cart[e]}})),jQuery(document).on("click",'.woocommerce-cart-form :input[name="update_cart"]',(function(){if("undefined"!=typeof wccomGTMEE&&wccomGTMEE.cartKeys){var t=wccomGTMEE.cartKeys,e=jQuery(".woocommerce-cart-form"),n=jQuery.fn.formToJSON(e);jQuery.each(t,(function(t,e){var o=e;n["cart["+t+"][qty]"]&&(n["cart["+t+"][qty]"]>e.quantity?(o.quantity=n["cart["+t+"][qty]"]-o.quantity,dataLayer.push({event:"visitor interaction",interaction_name:"add to cart",add_to_cart_btn:"update cart",ecommerce:{add:{products:[{product:o}]}}})):0===parseInt(n["cart["+t+"][qty]"])?dataLayer.push({event:"visitor interaction",interaction_name:"remove from cart",remove_btn:"update cart",ecommerce:{remove:{products:[{product:o}]}}}):n["cart["+t+"][qty]"]0&&void 0!==arguments[0]?arguments[0]:{};if("undefined"!=typeof wccomGTMEE){var e={event:"visitor interaction",interaction_name:"add to cart",add_to_cart_btn:"add to cart sidebar",ecommerce:{add:{products:[{category:wccomGTMEE.product.category,brand:wccomGTMEE.product.brand,name:wccomGTMEE.product.name,id:wccomGTMEE.product.sku,variant:wccomGTMEE.product.revenueType,price:wccomGTMEE.product.price1,quantity:1}]}}};dataLayer.push(jQuery.extend(e,t))}},jQuery.fn.commenceCheckoutDLPush=function(){if("undefined"!=typeof wccomGTMEE){var t=[];jQuery.each(wccomGTMEE.cart,(function(e,n){t.push(n)})),t.push({category:wccomGTMEE.product.category,brand:wccomGTMEE.product.brand,name:wccomGTMEE.product.name,id:wccomGTMEE.product.sku,variant:wccomGTMEE.product.revenueType,price:wccomGTMEE.product.price1,quantity:1}),dataLayer.push({event:"visitor interaction",page_type:"application process",interaction_name:"commence checkout",ecommerce:{currencyCode:wccomGTMEE.currencyCode,checkout:{actionField:{step:1},products:t}}})}},jQuery.fn.formToJSON=function(t){var e=t.serializeArray(),n={};return jQuery.map(e,(function(t){n[t.name]=t.value})),n};var l=wp.hooks;"undefined"!=typeof vendorGoogleAnalyticsTagId&&(0,l.addAction)("wccom_buy_now_button_clicked","wccom",(function(){"undefined"!=typeof gtag&>ag("event","wccom_buy_now_button_click",{send_to:vendorGoogleAnalyticsTagId})}));n(3319);window.addEventListener("DOMContentLoaded",(function(){var t="irclickid",e=new URLSearchParams(window.location.search).get(t),n="".concat(t,"-expiration");if(e&&wccom.canTrackUser("analytics")&&e!==d(t)){var o=(new Date).getTime()+2592e6;s(t,e,30),s(n,o,30),m("wccom-refer-affiliate-id")}})),window.addEventListener("DOMContentLoaded",(function(){(0,l.addFilter)("wccom_nux_installation_url","wccom-refer/impact-radius",(function(t){var e=d("irclickid");if(e){var n=new URL(t);return n.searchParams.set("irclickid",e),n.toString()}return t}))})),function(t){/(\?|&)ref=\d+/.test(window.location.search)&&(window.location.search=window.location.search.replace(/(\?|&)ref=/i,"$1aff="));var e=wccom&&wccom.fireTracksEvent||function(){};jQuery((function(){if(window.URLSearchParams){var t=new window.URLSearchParams(window.location.search);if(t.get("aff")&&null===t.get("utm_source")&&null===t.get("utm_medium")&&null===t.get("utm_campaign")){var n={affiliate_id:t.get("aff"),campaign_id:t.get("cid"),sub_id:t.get("sid")};e("refer_visit",n)}}})),t(document).on("referral_tracked",(function(t,n){var o,r,c,a=n.responseJSON||{};if(n.success)o=n.data.affiliate_id,r=n.data.campaign_id,c=n.data.sub_id,a=n.data;else{if(!n.affiliate_id)return a.refer_message=n.message,void e("refer_visit_response_fail",a);a.affiliate_id=o}e("refer_visit_response",a);var i=new window.URLSearchParams(window.location.search);if(null!==i.get("utm_source")||null!==i.get("utm_medium")||null!==i.get("utm_campaign"))return o&&(a.affiliate_id=o),void e("refer_visit_illegal_utm_params_usage",a);var u="wccom-refer-affiliate-id="+o+";",d=new Date;d.setTime(d.getTime()+2592e6);var s=" expires="+d.toGMTString()+";",l=" path=/;";document.cookie=u+s+l,m("irclickid");var p={};r&&String(r).match(/^\d+$/)&&(p.campaignId=r),c&&(p.subId=String(c).substring(0,255));var f="wccom-refer-affiliate-meta="+JSON.stringify(p)+";";document.cookie=f+s+l})),t(document).on("referral_tracked_error",(function(t,n){var o=n.responseJSON||{};o.status=n.status||"",e("refer_visit_response_error",o)}))}(jQuery);n(9983),n(8926),n(7499)}()}();; /* global jQuery, location, wccom */ ( function() { var supportFeedback = {}; var feedbackQuestionOrder = { type: { happy: [ 'wccom-support-feedback-timelength' ], neutral: [ 'wccom-support-feedback-contacted' ], sad: [ 'wccom-support-feedback-contacted' ], }, contacted: { yes: [ 'wccom-support-feedback-timelength' ], no: [ 'wccom-support-feedback-additional', 'wccom-support-feedback-submit' ], }, timelength: { hours: [ 'wccom-support-feedback-additional', 'wccom-support-feedback-submit' ], day: [ 'wccom-support-feedback-additional', 'wccom-support-feedback-submit' ], days: [ 'wccom-support-feedback-additional', 'wccom-support-feedback-submit' ], }, resolved: { yes: [ 'wccom-support-feedback-additional', 'wccom-support-feedback-submit' ], no: [ 'wccom-support-feedback-takelook' ], }, takelook: { yes: [ 'wccom-support-feedback-changed', 'wccom-support-feedback-submit' ], no: [ 'wccom-support-feedback-additional', 'wccom-support-feedback-submit' ], }, text: { additional: [ 'wccom-support-feedback-submit' ], changed: [ 'wccom-support-feedback-submit' ], positive: [ 'wccom-support-feedback-submit' ], }, }; function init() { var openButton = document .getElementById( 'wccom-support-modal-open-button' ); if ( openButton ) { openButton.addEventListener( 'click', addUrlParam ); } var queryParams = getQueryParameters(); if ( queryParams.support ) { openModal( queryParams.support, 'support' ); } else if ( queryParams.supportthankyou ) { openModal( queryParams.supportthankyou, 'thankyou' ); } else if ( queryParams.supportfeedback ) { openModal( queryParams.supportfeedback, 'feedback' ); document .getElementById( 'wccom-support-feedback' ) .addEventListener( 'click', handleFeedbackChoice ); var textareas = document.querySelectorAll( '#wccom-support-feedback textarea' ); [].forEach.call( textareas, function( textarea ) { textarea.addEventListener( 'input', handleTextareaInput ); } ); handleFeedbackDirection( queryParams.feedbackdirection || 'happy' ); // eslint-disable-next-line if ( 'undefined' !== typeof wccom.fireTracksEvent ) { /** * Username is a hidden field in the CSAT form * file: template-wccom-support-feedback.php */ const username = document.getElementById( 'wccom-support-feedback-username' ).value; const feedbackProperties = { parentTicketId: queryParams.ticket_id, feedbackScore: queryParams.feedbackdirection, productSlug: queryParams.supportfeedback, vendor: queryParams.vendor ?? '', username: username, }; wccom.fireTracksEvent( 'vendor_feedback_modal_open', feedbackProperties ); } } } /** * Add Url Param * * @param {object} e The click event. */ function addUrlParam( e ) { e.preventDefault(); window.location.href = appendToQueryString( 'support', e.currentTarget.dataset.extension, ); } /** * Adds param to query string * * @param {string} param The param key * @param {string} val The value of the parameter * @returns {string} The url */ function appendToQueryString( param, val ) { var parameterList = getQueryParameters(); parameterList[ param ] = val; var newQueryString = serializeUrlParams( parameterList ); return location.origin + location.pathname + newQueryString; } /** * Close modal */ function closeModal() { var modalContainer = document.getElementById( 'wccom-support-modal' ); document.body.classList.remove( 'support-modal__prevent-scroll' ); modalContainer.classList.remove( 'support-modal__open' ); var paramsToRemove = [ 'support', 'supportfeedback', 'supportthankyou', ]; var queryString = deleteFromQueryString( paramsToRemove ); var url = location.origin + location.pathname; window.location.href = url + queryString; } /** * Removes param to query string * * @param {Array} params Parameters to delete * @returns {string} the url with deleted parameter */ function deleteFromQueryString( params ) { var parameterList = getQueryParameters(); params.forEach( function( param ) { delete parameterList[ param ]; } ); var newQueryString = serializeUrlParams( parameterList ); if ( '?' === newQueryString ) { newQueryString = ''; } return newQueryString; } /** * Returns object with url params * * @returns {object} object of params */ function getQueryParameters() { var queryString = {}; var query = window.location.search.substring( 1 ); var vars = query.split( '&' ); if ( '' === vars[ 0 ] ) { return queryString; } for ( var i = 0; i < vars.length; i++ ) { var pair = vars[ i ].split( '=' ); // If first entry with this name if ( 'undefined' === typeof queryString[ pair[ 0 ] ] ) { queryString[ pair[ 0 ] ] = decodeURIComponent( pair[ 1 ] ); // If second entry with this name } else if ( 'string' === typeof queryString[ pair[ 0 ] ] ) { var arr = [ queryString[ pair[ 0 ] ], decodeURIComponent( pair[ 1 ] ) ]; queryString[ pair[ 0 ] ] = arr; // If third or later entry with this name } else { queryString[ pair[ 0 ] ].push( decodeURIComponent( pair[ 1 ] ) ); } } return queryString; } /** * Update local data store when textarea is updated. * * @param {object} e input event */ function handleTextareaInput( e ) { var action = e.target.dataset; if ( ! action.name ) { return; } supportFeedback[ e.target.name ] = e.target.value; } /** * Handle support feedback user choice * * @param {object} e click event */ function handleFeedbackChoice( e ) { var action = e.target.dataset; if ( ! action.name ) { return; } var clearFromNode = e.target; if ( 'type' === action.name ) { handleFeedbackDirection( action.value ); clearFromNode = document.getElementById( 'wccom-support-feedback-start' ); } supportFeedback[ action.name ] = action.value; removeChildQuestions( clearFromNode ); updateFeedbackForm( action ); } /** * Handle support feedback user choice * * @param {object} action action name and value */ function updateFeedbackForm( action ) { // Check what IDs should be revealed. var showIds = feedbackQuestionOrder[ action.name ][ action.value ]; // Highlight selected feedback if the action is about the feedback type if ( 'type' === action.name ) { // Find selected feedback var selectedFeedbackButtons = document.getElementsByClassName( 'support-modal__feedback-button--selected', ); // Reset selected feedback for ( var i = 0; i < selectedFeedbackButtons.length; i++ ) { var selectedFeedbackButton = selectedFeedbackButtons[ i ]; selectedFeedbackButton.classList.remove( 'support-modal__feedback-button--selected', ); } // Highlight the new feedback; var button = document.querySelector( 'button[data-value="' + action.value + '"]' ); button.classList.add( 'support-modal__feedback-button--selected' ); } // Deal with a special case. if ( 'happy' === supportFeedback.type && 0 >= showIds.indexOf( 'wccom-support-feedback-additional' ) && 'resolved' === action.name && 'yes' === action.value ) { // Customer is happy, and problem is resolved, so show // an extra-positive message with the comment textarea. showIds.splice( showIds.indexOf( 'wccom-support-feedback-additional' ), 1 ); showIds.push( 'wccom-support-feedback-positive' ); } // Reveal IDs. showIds.forEach( function( showId ) { document .getElementById( showId ) .classList .remove( 'support-modal__feedback-hidden' ); } ); } /** * Handle feedback direction choice * * @param {string} direction 'happy' or 'sad' */ function handleFeedbackDirection( direction ) { supportFeedback.type = direction; var container = document.querySelector( '.support-modal__feedback-header' ); container.classList.remove( 'support-modal__feedback-happy' ); container.classList.remove( 'support-modal__feedback-sad' ); container.classList.remove( 'support-modal__feedback-neutral' ); container.classList.add( 'support-modal__feedback-' + direction ); updateFeedbackForm( { name: 'type', value: direction } ); } /** * Remove questions before showing next * * @param {object} clickedNode node that was clicked */ function removeChildQuestions( clickedNode ) { var currentNode = clickedNode; while ( 'DIV' !== currentNode.tagName ) { currentNode = currentNode.parentNode; } while ( currentNode ) { currentNode = currentNode.nextElementSibling; if ( currentNode ) { currentNode.classList.add( 'support-modal__feedback-hidden' ); Array.prototype.slice.call( currentNode.querySelectorAll( 'input[type="radio"]' ), ).forEach( function( radio ) { radio.checked = false; } ); } } document.getElementById( 'wccom-support-feedback-submit' ) .classList.add( 'support-modal__feedback-hidden' ); } /** * Submits a user choice */ function submitChoice() { var queryParams = getQueryParameters(); supportFeedback.action = 'support_modal_feedback'; // eslint-disable-next-line supportFeedback.ticket_id = queryParams.ticket_id; // Send data to server jQuery.ajax( { type: 'POST', data: supportFeedback, url: '/wp-admin/admin-ajax.php', success: function( response ) { if ( 'ok' !== response.status ) { window.alert( 'There was a problem saving your response. Please try again later.', ); return; } document.querySelector( '.support-modal__feedback' ) .style.display = 'none'; document.querySelector( '.support-modal__feedback-thank-you' ) .style.display = 'block'; }, // eslint-disable-next-line }).fail(function (response) { window.alert( 'There was a problem saving your response. Please try again later.' ); } ); } /** * Opens modal * * @param {string} extension Slug of extension * @param {string} modalType Type of modal, support or question */ function openModal( extension, modalType ) { if ( ! document.querySelector( 'body.logged-in' ) ) { var path = '/sso?next=' + encodeURIComponent( document.location.pathname + document.location.search ); window.location.href = location.origin + path; } var modalContainer = document.getElementById( 'wccom-support-modal' ); modalContainer.classList.add( 'support-modal__open' ); document.body.classList.add( 'support-modal__prevent-scroll' ); var modalTypeId; if ( 'support' === modalType ) { modalTypeId = 'wccom-support-question'; } else if ( 'thankyou' === modalType ) { modalTypeId = 'wccom-support-thank-you'; } else if ( 'feedback' === modalType ) { modalTypeId = 'wccom-support-feedback'; } var modalTypeElement = document.getElementById( modalTypeId ); modalTypeElement.classList.add( 'support-modal__open' ); modalContainer.dataset.extension = extension; var modalCloseButtons = document.getElementsByClassName( 'close-support-modal' ); for ( let i = 0; i < modalCloseButtons.length; i++ ) { var closeButton = modalCloseButtons[ i ]; closeButton.addEventListener( 'click', closeModal ); } Array.prototype.slice.call( document.querySelectorAll( '.support-modal__cancel' ), ).forEach( function( button ) { button.addEventListener( 'click', closeModal ); } ); document .getElementById( 'wccom-support-feedback-submit-button' ) .addEventListener( 'click', submitChoice ); } /** * Returns serialized url params * * @param {object} params Object of params * @returns {string} Url string */ function serializeUrlParams( params ) { var urlParams = '?'; for ( var key in params ) { urlParams += key + '=' + encodeURIComponent( params[ key ] ); urlParams += '&'; } urlParams.replace( /&$/, '' ); return urlParams; } document.addEventListener( 'DOMContentLoaded', init ); }() ); ; jQuery(function(t){if("undefined"==typeof wc_single_product_params)return!1;var e;t("body").on("init",".wc-tabs-wrapper, .woocommerce-tabs",function(){t(this).find(".wc-tab, .woocommerce-tabs .panel:not(.panel .panel)").hide();var e=window.location.hash,i=window.location.href,o=t(this).find(".wc-tabs, ul.tabs").first();e.toLowerCase().indexOf("comment-")>=0||"#reviews"===e||"#tab-reviews"===e?o.find("li.reviews_tab a").trigger("click"):i.indexOf("comment-page-")>0||i.indexOf("cpage=")>0?o.find("li.reviews_tab a").trigger("click"):"#tab-additional_information"===e?o.find("li.additional_information_tab a").trigger("click"):o.find("li:first a").trigger("click")}).on("click",".wc-tabs li a, ul.tabs li a",function(e){e.preventDefault();var i=t(this),o=i.closest(".wc-tabs-wrapper, .woocommerce-tabs"),a=o.find(".wc-tabs, ul.tabs");a.find("li").removeClass("active"),a.find('a[role="tab"]').attr("aria-selected","false").attr("tabindex","-1"),o.find(".wc-tab, .panel:not(.panel .panel)").hide(),i.closest("li").addClass("active"),i.attr("aria-selected","true").attr("tabindex","0"),o.find("#"+i.attr("href").split("#")[1]).show()}).on("keydown",".wc-tabs li a, ul.tabs li a",function(e){var i=e.key,o="ArrowRight",a="ArrowLeft",r="Home",n="End";if([o,a,n,r].includes(i)){e.preventDefault();var s=t(this),l=s.closest(".wc-tabs-wrapper, .woocommerce-tabs").find(".wc-tabs, ul.tabs").find('a[role="tab"]'),c=l.length-1,d=l.index(s),p=i===a?d-1:d+1;i===a&&0===d||i===n?p=c:(o===i&&d===c||i===r)&&(p=0),l.eq(p).focus()}}).on("focusout",".wc-tabs li a, ul.tabs li a, #respond p.stars a",function(){e.data("flexslider")&&setTimeout(function(){t(document.activeElement).closest([".stars",".tabs",".wc-tabs"].join(", ")).length?e.data("flexslider").animating=!0:e.data("flexslider").animating=!1},0)}).on("click","a.woocommerce-review-link",function(){return t(".reviews_tab a").trigger("click"),!0}).on("init","#rating",function(){t("#rating").hide().before('

\t\t\t\t\t\t\t\t\t\t\t\t\t'+wc_single_product_params.i18n_rating_options[0]+'\t\t\t\t\t\t\t'+wc_single_product_params.i18n_rating_options[1]+'\t\t\t\t\t\t\t'+wc_single_product_params.i18n_rating_options[2]+'\t\t\t\t\t\t\t'+wc_single_product_params.i18n_rating_options[3]+'\t\t\t\t\t\t\t'+wc_single_product_params.i18n_rating_options[4]+"\t\t\t\t\t\t\t\t\t\t\t

")}).on("click","#respond p.stars a",function(){var e=t(this),i=e.closest("p.stars").find("a").index(e)+1,o=t(this).closest("#respond").find("#rating"),a=t(this).closest(".stars");return o.val(i),e.siblings("a").removeClass("active").attr("aria-checked","false").attr("tabindex","-1"),e.addClass("active").attr("aria-checked","true").attr("tabindex","0"),a.addClass("selected"),!1}).on("click","#respond #submit",function(){var e=t(this).closest("#respond").find("#rating"),i=e.val();if(e.length>0&&!i&&"yes"===wc_single_product_params.review_rating_required)return window.alert(wc_single_product_params.i18n_required_rating_text),!1}).on("keydown","#respond p.stars a",function(e){var i=e.key,o=["ArrowRight","ArrowDown"];o.concat(["ArrowLeft","ArrowUp"]).includes(i)&&(e.preventDefault(),o.includes(i)?t(this).next().focus().click():t(this).prev().focus().click())}),t(".wc-tabs-wrapper, .woocommerce-tabs, #rating").trigger("init");var i=function(e,i){this.$target=e,this.$images=t(".woocommerce-product-gallery__image",e),0!==this.$images.length?(e.data("product_gallery",this),this.flexslider_enabled="function"==typeof t.fn.flexslider&&wc_single_product_params.flexslider_enabled,this.zoom_enabled="function"==typeof t.fn.zoom&&wc_single_product_params.zoom_enabled,this.photoswipe_enabled="undefined"!=typeof PhotoSwipe&&wc_single_product_params.photoswipe_enabled,i&&(this.flexslider_enabled=!1!==i.flexslider_enabled&&this.flexslider_enabled,this.zoom_enabled=!1!==i.zoom_enabled&&this.zoom_enabled,this.photoswipe_enabled=!1!==i.photoswipe_enabled&&this.photoswipe_enabled),1===this.$images.length&&(this.flexslider_enabled=!1),this.initFlexslider=this.initFlexslider.bind(this),this.initZoom=this.initZoom.bind(this),this.initZoomForTarget=this.initZoomForTarget.bind(this),this.initPhotoswipe=this.initPhotoswipe.bind(this),this.onResetSlidePosition=this.onResetSlidePosition.bind(this),this.getGalleryItems=this.getGalleryItems.bind(this),this.openPhotoswipe=this.openPhotoswipe.bind(this),this.trapFocusPhotoswipe=this.trapFocusPhotoswipe.bind(this),this.handlePswpTrapFocus=this.handlePswpTrapFocus.bind(this),this.flexslider_enabled?(this.initFlexslider(i.flexslider),e.on("woocommerce_gallery_reset_slide_position",this.onResetSlidePosition)):this.$target.css("opacity",1),this.zoom_enabled&&(this.initZoom(),e.on("woocommerce_gallery_init_zoom",this.initZoom)),this.photoswipe_enabled&&this.initPhotoswipe()):this.$target.css("opacity",1)};i.prototype.initFlexslider=function(e){var i=this.$target,o=this,a=t.extend({selector:".woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image",start:function(){i.css("opacity",1)},after:function(t){o.initZoomForTarget(o.$images.eq(t.currentSlide))}},e);i.flexslider(a),t(".woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image:eq(0) .wp-post-image").one("load",function(){var e=t(this);e&&setTimeout(function(){var t=e.closest(".woocommerce-product-gallery__image").height(),i=e.closest(".flex-viewport");t&&i&&i.height(t)},100)}).each(function(){this.complete&&t(this).trigger("load")})},i.prototype.initZoom=function(){this.initZoomForTarget(this.$images.first())},i.prototype.initZoomForTarget=function(e){if(!this.zoom_enabled)return!1;var i=this.$target.width(),o=!1;if(t(e).each(function(e,a){if(t(a).find("img").data("large_image_width")>i)return o=!0,!1}),o){var a=t.extend({touch:!1,callback:function(){var t=this;setTimeout(function(){t.removeAttribute("role"),t.setAttribute("alt",""),t.setAttribute("aria-hidden","true")},100)}},wc_single_product_params.zoom_options);"ontouchstart"in document.documentElement&&(a.on="click"),e.trigger("zoom.destroy"),e.zoom(a),setTimeout(function(){e.find(":hover").length&&e.trigger("mouseover")},100)}},i.prototype.initPhotoswipe=function(){this.zoom_enabled&&this.$images.length>0?(this.$target.prepend(''),this.$target.on("click",".woocommerce-product-gallery__trigger",this.openPhotoswipe),this.$target.on("click",".woocommerce-product-gallery__image a",function(t){t.preventDefault()}),this.flexslider_enabled||this.$target.on("click",".woocommerce-product-gallery__image a",this.openPhotoswipe)):this.$target.on("click",".woocommerce-product-gallery__image a",this.openPhotoswipe)},i.prototype.onResetSlidePosition=function(){this.$target.flexslider(0)},i.prototype.getGalleryItems=function(){var e=this.$images,i=[];return e.length>0&&e.each(function(e,o){var a=t(o).find("img");if(a.length){var r=a.attr("data-large_image"),n=a.attr("data-large_image_width"),s=a.attr("data-large_image_height"),l={alt:a.attr("alt"),src:r,w:n,h:s,title:a.attr("data-caption")?a.attr("data-caption"):a.attr("title")};i.push(l)}}),i},i.prototype.openPhotoswipe=function(e){e.preventDefault();var i,o=t(".pswp")[0],a=this.getGalleryItems(),r=t(e.target),n=e.currentTarget,s=this;i=0=i.length)){var o=i[0],a=i[i.length-1];"Tab"===t.key&&(t.shiftKey?document.activeElement===o&&(t.preventDefault(),a.focus()):document.activeElement===a&&(t.preventDefault(),o.focus()))}},t.fn.wc_product_gallery=function(t){return new i(this,t||wc_single_product_params),this},t(".woocommerce-product-gallery").each(function(){t(this).trigger("wc-product-gallery-before-init",[this,wc_single_product_params]),e=t(this).wc_product_gallery(wc_single_product_params),t(this).trigger("wc-product-gallery-after-init",[this,wc_single_product_params])})});;