jQuery(function(d){class c{constructor(t,e,s){this.moduleParts=t,this.moduleIndex=e,this.classList=s}}class f{constructor(t,e,s,n,o,a){this.selectorElementType=t,this.filterElementType=e,this.multiSelectMode=s,this.postTypeFiltering=n,this.cutSetMode=o,this.moduleArray=a,this.activeFilterBtnClasses=[]}}var u,p,h=[],_="column",b="",m="",g=!1,v=!1,C=!1;function a(t){u=i(t),m=null==u?(u=1," "):".dfn-"+u;t=!1;void 0!==h[u]&&(t=!0),v=t?(b=h[u].selectorElementType,_=h[u].filterElementType,g=h[u].multiSelectMode,C=h[u].postTypeFiltering,h[u].cutSetMode):(d(".df-area"+m).hasClass("et_section_specialty")&&p?(b=".df-area"+m+" .et_pb_row_inner:not(.df-buttons) > .et_pb_column:not(.df-buttons)",_="specialty",d(".df-area"+m).hasClass("df-rows")&&(b=".df-area"+m+" .et_pb_row_inner:not(.df-buttons)")):d(".df-area"+m).hasClass("df-rows")&&p?(b=".df-area"+m+" > .et_pb_row:not(.df-buttons)",_="row"):d(".df-area"+m).hasClass("df-post")?d(".df-area"+m+" .et_pb_module").hasClass("et_pb_posts")||d(".df-area"+m+" .et_pb_module").hasClass("et_pb_blog_grid_wrapper")?(b=".df-area"+m+"> .et_pb_row:not(.df-buttons) article",_="blog",d(".df-area"+m+" .et_pb_module").hasClass("et_pb_blog_grid_wrapper")&&(_="blogGrid")):(b=".df-area"+m+"> .et_pb_row:not(.df-buttons) .et_pb_portfolio_item",_="post"):_=(b=p?".df-area"+m+"> .et_pb_row:not(.df-buttons) > .et_pb_column:not(.df-buttons)":".df-area > .et_pb_row > .et_pb_column","column"),g=!(!d(".df-area"+m).hasClass("df-multi")||!p),d(".df-area"+m).hasClass("df-post")?(C="portfolio",(d(".df-area"+m+" .et_pb_module").hasClass("et_pb_posts")||d(".df-area"+m+" .et_pb_module").hasClass("et_pb_blog_grid_wrapper"))&&(C="blog")):C=!1,!(!d(".df-area"+m).hasClass("df-picky")||!p))}function w(n){var t=n.attr("class").split(/\s+/);return classListFiltered=d.grep(t,function(t,e){var s=0;return 0!==t.indexOf("et")&&0!==t.indexOf("dfs-")&&(n.removeClass(t),s=1),0==t.indexOf("et_pb_"+_+"_")&&("column"===_&&"_"!==t.charAt(14)&&"_"!==t.charAt(15)&&"_"!==t.charAt(16)||"row"===_&&"_"!==t.charAt(11)&&"_"!==t.charAt(12)&&"_"!==t.charAt(13))&&(n.removeClass(t),s=1),s})}function y(t,e){t=t.attr("class").split(/\s+/),t=d.grep(t,function(t){return 0===t.indexOf("dfc-")});let s=d.grep(t,function(t){return-1===t.indexOf("df-button")});if(e)for(let t=0;t<s.length;t++)"blog"==e&&(s[t]=s[t].replace("dfc-","category-")),"portfolio"==e&&(s[t]=s[t].replace("dfc-","project_category-"));return s}function i(t){var s=null;return void 0!==(t=(t.hasClass("df-button")?t.closest(".et_pb_row"):t).attr("class"))&&(t=t.split(/\s+/),classListFiltered=d.each(t,function(t,e){0==e.indexOf("dfn-")&&(e=e.substring(4),s=parseInt(e,10))})),s}function r(t){let i=!1,r=(void 0!==h[u]&&(i=!0),[]),e=(d(b).each(function(t,e){a=d(this),n=a.attr("class").split(/\s+/),1==(n=d.grep(n,function(t,e){return 0===t.indexOf("df-elementindex-")})).length?(s=n[0].substring(16),s=parseInt(s),a.removeClass(n[0])):0==n.length?s=-1:console.log("Divi Filter Plugin: Error 563 More than one or no moduleIndex class");var s,n,o,a=s;-1!=a&&(o=[],d(this).children().each(function(){o.push(d(this).detach())}),i?(h[u].moduleArray[a].moduleParts=o,w(d(this))):r[a]=new c(o,a,w(d(this))))}),i||(allModulesWithoutReference=r,h[u]=new f(b,_,g,C,v,allModulesWithoutReference)),h[u].moduleArray.map(t=>Object.assign({},t)));h[u].multiSelectMode?(s=h[u].activeFilterBtnClasses,t.hasClass("df-activebutton")?(toRemove=y(t,h[u].postTypeFiltering),s=s.filter(function(t){return!toRemove.includes(t)}),t.removeClass("df-activebutton")):(s=s.concat(y(t,h[u].postTypeFiltering)),t.addClass("df-activebutton")),e=(h[u].cutSetMode?F:S)(s,e),h[u].activeFilterBtnClasses=s):(s=y(t,h[u].postTypeFiltering),p&&(d(m+" .df-button").removeClass("df-activebutton"),t.addClass("df-activebutton")),e=(h[u].cutSetMode?F:S)(s,e));var s,o=e,a=d(".df-area"+m+"> .et_pb_row:not(.df-buttons) .et_pb_salvattore_content .column").length-1;if("blogGrid"==_){let t=0,e=0;for(let n=0;n<o.length;n++){let s=d(".df-area"+m+"> .et_pb_row:not(.df-buttons) .et_pb_salvattore_content .column:eq("+t+") article:eq("+e+")");var l=o[n].moduleIndex.toString().padStart(3,"0");if(s.addClass("df-elementindex-"+l),d.each(o[n].classList,function(t,e){s.addClass(e)}),d.each(o[n].moduleParts,function(t,e){s.append(o[n].moduleParts[t])}),p){let t=document.querySelectorAll(b)[n];t&&(t.classList.remove("df-animation"),t.offsetWidth,t.classList.add("df-animation"))}t<a?t+=1:(t=0,e+=1)}}else for(let s=0;s<o.length;s++){var n=o[s].moduleIndex.toString().padStart(3,"0");if(d(b+":eq("+s+")").addClass("df-elementindex-"+n),d.each(o[s].classList,function(t,e){d(b+":eq("+s+")").addClass(e)}),d.each(o[s].moduleParts,function(t,e){d(b+":eq("+s+")").append(o[s].moduleParts[t])}),p){let t=document.querySelectorAll(b)[s];t&&(t.classList.remove("df-animation"),t.offsetWidth,t.classList.add("df-animation"))}}}function F(t,s){var o=[],n=(d.each(t,function(t,n){d.each(s,function(t,e){var s=0;void 0!==e?.classList?d.each(e.classList,function(t,e){e==n&&(s=1)}):s=0,0==s&&o.push(t)})}),[]);return d.each(o,function(t,e){-1==d.inArray(e,n)&&n.push(e)}),(o=n).sort(function(t,e){return e-t}),d.each(o,function(t,e){s.splice(e,1)}),s}function S(o,s){var a;return 0<o.length&&(a=[],d.each(s,function(t,e){var n=0;void 0!==e.classList?d.each(e.classList,function(t,s){d.each(o,function(t,e){s==e&&(n=1)})}):n=0,0==n&&a.push(t)}),a.sort(function(t,e){return e-t}),d.each(a,function(t,e){s.splice(e,1)})),s}console.log("Filtering done with the Divi Filter plugin, get the free version here:"),console.log("https://danielvoelk.de/en/divi-filter/"),p="undefined"!=typeof dvServerResponse&&!!dvServerResponse[0].includes("PREMIUM"),d(".df-area").before("\x3c!-- Filtering done with the Divi Filter plugin, get the free version here: https://danielvoelk.de/en/divi-filter/ --\x3e"),1<d(".df-area").length&&!p?console.log("Divi Filter Plugin: More than 1 filter area. Remove filter area or upgrade license!"):(d(".df-area").each(function(t,e){var s,n,o="> .et_pb_row > .et_pb_column";d(this).hasClass("et_section_specialty")&&p?(o=".et_pb_row_inner:not(.df-buttons) > .et_pb_column:not(.df-buttons)",d(this).hasClass("df-rows")&&p&&(o=".et_pb_row_inner:not(.df-buttons)")):d(this).hasClass("df-rows")&&p?o="> .et_pb_row:not(.df-buttons)":d(this).hasClass("df-post")?(o="> .et_pb_row:not(.df-buttons) .et_pb_portfolio_item",(d(".df-area"+m+" .et_pb_module").hasClass("et_pb_posts")||d(".df-area"+m+" .et_pb_module").hasClass("et_pb_blog_grid_wrapper"))&&(o="> .et_pb_row:not(.df-buttons) article")):p?o="> .et_pb_row:not(.df-buttons) > .et_pb_column:not(.df-buttons)":(d(this).hasClass("df-rows")||d(this).hasClass("et_section_specialty"))&&console.log("Divi Filter Plugin: You can't filter rows or specialty sections with the free license. Please get a Premium license!"),d(this).find(o).each(function(t,e){t=t.toString().padStart(3,"0");d(this).addClass("df-elementindex-"+t),p&&d(this).addClass("df-animation")}),p&&(o=" ",o=(s=null)==(n=i(d(this)))?(n=1," "):".dfn-"+n,s=new URLSearchParams(window.location.search).get("filter"),0==d(o+" .df-button.dfc-"+s).length&&void 0!==(n=d(this).attr("class"))&&(n=n.split(/\s+/),classListFiltered=d.each(n,function(t,e){0!=e.indexOf("dfs-")&&0!=e.indexOf("dfc-")||(s=e.substring(4))})),d(o+" .df-button.dfc-"+s).length&&(d(this).hasClass("df-startingDelay")?setTimeout(function(){d(".df-button.dfc-"+s).click()},300):(a($button=d(o+" .df-button.dfc-"+s)),r($button)))),d(this).addClass("df-loaded")}),d(".df-button").on("click",function(t){t.preventDefault(),a(d(this)),r(d(this))}))});
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;"undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self),t.sbjs=e()}}(function(){return function e(t,r,n){function i(s,o){if(!r[s]){if(!t[s]){var c="function"==typeof require&&require;if(!o&&c)return c(s,!0);if(a)return a(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var p=r[s]={exports:{}};t[s][0].call(p.exports,function(e){var r=t[s][1][e];return i(r||e)},p,p.exports,e,t,r,n)}return r[s].exports}for(var a="function"==typeof require&&require,s=0;s<n.length;s++)i(n[s]);return i}({1:[function(e,t,r){"use strict";var n=e("./init"),i={init:function(e){this.get=n(e),e&&e.callback&&"function"==typeof e.callback&&e.callback(this.get)}};t.exports=i},{"./init":6}],2:[function(e,t,r){"use strict";var n=e("./terms"),i=e("./helpers/utils"),a={containers:{current:"sbjs_current",current_extra:"sbjs_current_add",first:"sbjs_first",first_extra:"sbjs_first_add",session:"sbjs_session",udata:"sbjs_udata",promocode:"sbjs_promo"},service:{migrations:"sbjs_migrations"},delimiter:"|||",aliases:{main:{type:"typ",source:"src",medium:"mdm",campaign:"cmp",content:"cnt",term:"trm",id:"id"},extra:{fire_date:"fd",entrance_point:"ep",referer:"rf"},session:{pages_seen:"pgs",current_page:"cpg"},udata:{visits:"vst",ip:"uip",agent:"uag"},promo:"code"},pack:{main:function(e){return a.aliases.main.type+"="+e.type+a.delimiter+a.aliases.main.source+"="+e.source+a.delimiter+a.aliases.main.medium+"="+e.medium+a.delimiter+a.aliases.main.campaign+"="+e.campaign+a.delimiter+a.aliases.main.content+"="+e.content+a.delimiter+a.aliases.main.term+"="+e.term+a.delimiter+a.aliases.main.id+"="+e.id},extra:function(e){return a.aliases.extra.fire_date+"="+i.setDate(new Date,e)+a.delimiter+a.aliases.extra.entrance_point+"="+document.location.href+a.delimiter+a.aliases.extra.referer+"="+(document.referrer||n.none)},user:function(e,t){return a.aliases.udata.visits+"="+e+a.delimiter+a.aliases.udata.ip+"="+t+a.delimiter+a.aliases.udata.agent+"="+navigator.userAgent},session:function(e){return a.aliases.session.pages_seen+"="+e+a.delimiter+a.aliases.session.current_page+"="+document.location.href},promo:function(e){return a.aliases.promo+"="+i.setLeadingZeroToInt(i.randomInt(e.min,e.max),e.max.toString().length)}}};t.exports=a},{"./helpers/utils":5,"./terms":9}],3:[function(e,t,r){"use strict";var n=e("../data").delimiter;t.exports={encodeData:function(e){return encodeURIComponent(e).replace(/\!/g,"%21").replace(/\~/g,"%7E").replace(/\*/g,"%2A").replace(/\'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29")},decodeData:function(e){try{return decodeURIComponent(e).replace(/\%21/g,"!").replace(/\%7E/g,"~").replace(/\%2A/g,"*").replace(/\%27/g,"'").replace(/\%28/g,"(").replace(/\%29/g,")")}catch(t){try{return unescape(e)}catch(r){return""}}},set:function(e,t,r,n,i){var a,s;if(r){var o=new Date;o.setTime(o.getTime()+60*r*1e3),a="; expires="+o.toGMTString()}else a="";s=n&&!i?";domain=."+n:"",document.cookie=this.encodeData(e)+"="+this.encodeData(t)+a+s+"; path=/"},get:function(e){for(var t=this.encodeData(e)+"=",r=document.cookie.split(";"),n=0;n<r.length;n++){for(var i=r[n];" "===i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(t))return this.decodeData(i.substring(t.length,i.length))}return null},destroy:function(e,t,r){this.set(e,"",-1,t,r)},parse:function(e){var t=[],r={};if("string"==typeof e)t.push(e);else for(var i in e)e.hasOwnProperty(i)&&t.push(e[i]);for(var a=0;a<t.length;a++){var s;r[this.unsbjs(t[a])]={},s=this.get(t[a])?this.get(t[a]).split(n):[];for(var o=0;o<s.length;o++){var c=s[o].split("="),u=c.splice(0,1);u.push(c.join("=")),r[this.unsbjs(t[a])][u[0]]=this.decodeData(u[1])}}return r},unsbjs:function(e){return e.replace("sbjs_","")}}},{"../data":2}],4:[function(e,t,r){"use strict";t.exports={parse:function(e){for(var t=this.parseOptions,r=t.parser[t.strictMode?"strict":"loose"].exec(e),n={},i=14;i--;)n[t.key[i]]=r[i]||"";return n[t.q.name]={},n[t.key[12]].replace(t.q.parser,function(e,r,i){r&&(n[t.q.name][r]=i)}),n},parseOptions:{strictMode:!1,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}},getParam:function(e){for(var t={},r=(e||window.location.search.substring(1)).split("&"),n=0;n<r.length;n++){var i=r[n].split("=");if("undefined"==typeof t[i[0]])t[i[0]]=i[1];else if("string"==typeof t[i[0]]){var a=[t[i[0]],i[1]];t[i[0]]=a}else t[i[0]].push(i[1])}return t},getHost:function(e){return this.parse(e).host.replace("www.","")}}},{}],5:[function(e,t,r){"use strict";t.exports={escapeRegexp:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},setDate:function(e,t){var r=e.getTimezoneOffset()/60,n=e.getHours(),i=t||0===t?t:-r;return e.setHours(n+r+i),e.getFullYear()+"-"+this.setLeadingZeroToInt(e.getMonth()+1,2)+"-"+this.setLeadingZeroToInt(e.getDate(),2)+" "+this.setLeadingZeroToInt(e.getHours(),2)+":"+this.setLeadingZeroToInt(e.getMinutes(),2)+":"+this.setLeadingZeroToInt(e.getSeconds(),2)},setLeadingZeroToInt:function(e,t){for(var r=e+"";r.length<t;)r="0"+r;return r},randomInt:function(e,t){return Math.floor(Math.random()*(t-e+1))+e}}},{}],6:[function(e,t,r){"use strict";var n=e("./data"),i=e("./terms"),a=e("./helpers/cookies"),s=e("./helpers/uri"),o=e("./helpers/utils"),c=e("./params"),u=e("./migrations");t.exports=function(e){var t,r,p,f,m,d,l,g,h,y,_=c.fetch(e),v=s.getParam(),x=_.domain.host,b=_.domain.isolate,k=_.lifetime;function w(e){switch(e){case i.traffic.utm:t=i.traffic.utm,r="undefined"!=typeof v.utm_source?v.utm_source:"undefined"!=typeof v.gclid?"google":"undefined"!=typeof v.yclid?"yandex":i.none,p="undefined"!=typeof v.utm_medium?v.utm_medium:"undefined"!=typeof v.gclid?"cpc":"undefined"!=typeof v.yclid?"cpc":i.none,f="undefined"!=typeof v.utm_campaign?v.utm_campaign:"undefined"!=typeof v[_.campaign_param]?v[_.campaign_param]:"undefined"!=typeof v.gclid?"google_cpc":"undefined"!=typeof v.yclid?"yandex_cpc":i.none,m="undefined"!=typeof v.utm_content?v.utm_content:"undefined"!=typeof v[_.content_param]?v[_.content_param]:i.none,l=v.utm_id||i.none,d="undefined"!=typeof v.utm_term?v.utm_term:"undefined"!=typeof v[_.term_param]?v[_.term_param]:function(){var e=document.referrer;if(v.utm_term)return v.utm_term;if(!(e&&s.parse(e).host&&s.parse(e).host.match(/^(?:.*\.)?yandex\..{2,9}$/i)))return!1;try{return s.getParam(s.parse(document.referrer).query).text}catch(t){return!1}}()||i.none;break;case i.traffic.organic:t=i.traffic.organic,r=r||s.getHost(document.referrer),p=i.referer.organic,f=i.none,m=i.none,d=i.none,l=i.none;break;case i.traffic.referral:t=i.traffic.referral,r=r||s.getHost(document.referrer),p=p||i.referer.referral,f=i.none,m=s.parse(document.referrer).path,d=i.none,l=i.none;break;case i.traffic.typein:t=i.traffic.typein,r=_.typein_attributes.source,p=_.typein_attributes.medium,f=i.none,m=i.none,d=i.none,l=i.none;break;default:t=i.oops,r=i.oops,p=i.oops,f=i.oops,m=i.oops,d=i.oops,l=i.oops}var a={type:t,source:r,medium:p,campaign:f,content:m,term:d,id:l};return n.pack.main(a)}function q(e){var t=document.referrer;switch(e){case i.traffic.organic:return!!t&&I(t)&&function(e){var t=new RegExp("^(?:.*\\.)?"+o.escapeRegexp("yandex")+"\\..{2,9}$"),n=new RegExp(".*"+o.escapeRegexp("text")+"=.*"),i=new RegExp("^(?:www\\.)?"+o.escapeRegexp("google")+"\\..{2,9}$");if(s.parse(e).query&&s.parse(e).host.match(t)&&s.parse(e).query.match(n))return r="yandex",!0;if(s.parse(e).host.match(i))return r="google",!0;if(!s.parse(e).query)return!1;for(var a=0;a<_.organics.length;a++){if(s.parse(e).host.match(new RegExp("^(?:.*\\.)?"+o.escapeRegexp(_.organics[a].host)+"$","i"))&&s.parse(e).query.match(new RegExp(".*"+o.escapeRegexp(_.organics[a].param)+"=.*","i")))return r=_.organics[a].display||_.organics[a].host,!0;if(a+1===_.organics.length)return!1}}(t);case i.traffic.referral:return!!t&&I(t)&&function(e){if(!(_.referrals.length>0))return r=s.getHost(e),!0;for(var t=0;t<_.referrals.length;t++){if(s.parse(e).host.match(new RegExp("^(?:.*\\.)?"+o.escapeRegexp(_.referrals[t].host)+"$","i")))return r=_.referrals[t].display||_.referrals[t].host,p=_.referrals[t].medium||i.referer.referral,!0;if(t+1===_.referrals.length)return r=s.getHost(e),!0}}(t);default:return!1}}function I(e){if(_.domain){if(b)return s.getHost(e)!==s.getHost(x);var t=new RegExp("^(?:.*\\.)?"+o.escapeRegexp(x)+"$","i");return!s.getHost(e).match(t)}return s.getHost(e)!==s.getHost(document.location.href)}function j(){a.set(n.containers.current_extra,n.pack.extra(_.timezone_offset),k,x,b),a.get(n.containers.first_extra)||a.set(n.containers.first_extra,n.pack.extra(_.timezone_offset),k,x,b)}return u.go(k,x,b),a.set(n.containers.current,function(){var e;if("undefined"!=typeof v.utm_source||"undefined"!=typeof v.utm_medium||"undefined"!=typeof v.utm_campaign||"undefined"!=typeof v.utm_content||"undefined"!=typeof v.utm_term||"undefined"!=typeof v.utm_id||"undefined"!=typeof v.gclid||"undefined"!=typeof v.yclid||"undefined"!=typeof v[_.campaign_param]||"undefined"!=typeof v[_.term_param]||"undefined"!=typeof v[_.content_param])j(),e=w(i.traffic.utm);else if(q(i.traffic.organic))j(),e=w(i.traffic.organic);else if(!a.get(n.containers.session)&&q(i.traffic.referral))j(),e=w(i.traffic.referral);else{if(a.get(n.containers.first)||a.get(n.containers.current))return a.get(n.containers.current);j(),e=w(i.traffic.typein)}return e}(),k,x,b),a.get(n.containers.first)||a.set(n.containers.first,a.get(n.containers.current),k,x,b),a.get(n.containers.udata)?(g=parseInt(a.parse(n.containers.udata)[a.unsbjs(n.containers.udata)][n.aliases.udata.visits])||1,g=a.get(n.containers.session)?g:g+1,h=n.pack.user(g,_.user_ip)):(g=1,h=n.pack.user(g,_.user_ip)),a.set(n.containers.udata,h,k,x,b),a.get(n.containers.session)?(y=parseInt(a.parse(n.containers.session)[a.unsbjs(n.containers.session)][n.aliases.session.pages_seen])||1,y+=1):y=1,a.set(n.containers.session,n.pack.session(y),_.session_length,x,b),_.promocode&&!a.get(n.containers.promocode)&&a.set(n.containers.promocode,n.pack.promo(_.promocode),k,x,b),a.parse(n.containers)}},{"./data":2,"./helpers/cookies":3,"./helpers/uri":4,"./helpers/utils":5,"./migrations":7,"./params":8,"./terms":9}],7:[function(e,t,r){"use strict";var n=e("./data"),i=e("./helpers/cookies");t.exports={go:function(e,t,r){var a,s=this.migrations,o={l:e,d:t,i:r};if(i.get(n.containers.first)||i.get(n.service.migrations)){if(!i.get(n.service.migrations))for(a=0;a<s.length;a++)s[a].go(s[a].id,o)}else{var c=[];for(a=0;a<s.length;a++)c.push(s[a].id);var u="";for(a=0;a<c.length;a++)u+=c[a]+"=1",a<c.length-1&&(u+=n.delimiter);i.set(n.service.migrations,u,o.l,o.d,o.i)}},migrations:[{id:"1418474375998",version:"1.0.0-beta",go:function(e,t){var r=e+"=1",a=e+"=0",s=function(e,t,r){return t||r?e:n.delimiter};try{var o=[];for(var c in n.containers)n.containers.hasOwnProperty(c)&&o.push(n.containers[c]);for(var u=0;u<o.length;u++)if(i.get(o[u])){var p=i.get(o[u]).replace(/(\|)?\|(\|)?/g,s);i.destroy(o[u],t.d,t.i),i.destroy(o[u],t.d,!t.i),i.set(o[u],p,t.l,t.d,t.i)}i.get(n.containers.session)&&i.set(n.containers.session,n.pack.session(0),t.l,t.d,t.i),i.set(n.service.migrations,r,t.l,t.d,t.i)}catch(f){i.set(n.service.migrations,a,t.l,t.d,t.i)}}}]}},{"./data":2,"./helpers/cookies":3}],8:[function(e,t,r){"use strict";var n=e("./terms"),i=e("./helpers/uri");t.exports={fetch:function(e){var t=e||{},r={};if(r.lifetime=this.validate.checkFloat(t.lifetime)||6,r.lifetime=parseInt(30*r.lifetime*24*60),r.session_length=this.validate.checkInt(t.session_length)||30,r.timezone_offset=this.validate.checkInt(t.timezone_offset),r.campaign_param=t.campaign_param||!1,r.term_param=t.term_param||!1,r.content_param=t.content_param||!1,r.user_ip=t.user_ip||n.none,t.promocode?(r.promocode={},r.promocode.min=parseInt(t.promocode.min)||1e5,r.promocode.max=parseInt(t.promocode.max)||999999):r.promocode=!1,t.typein_attributes&&t.typein_attributes.source&&t.typein_attributes.medium?(r.typein_attributes={},r.typein_attributes.source=t.typein_attributes.source,r.typein_attributes.medium=t.typein_attributes.medium):r.typein_attributes={source:"(direct)",medium:"(none)"},t.domain&&this.validate.isString(t.domain)?r.domain={host:t.domain,isolate:!1}:t.domain&&t.domain.host?r.domain=t.domain:r.domain={host:i.getHost(document.location.hostname),isolate:!1},r.referrals=[],t.referrals&&t.referrals.length>0)for(var a=0;a<t.referrals.length;a++)t.referrals[a].host&&r.referrals.push(t.referrals[a]);if(r.organics=[],t.organics&&t.organics.length>0)for(var s=0;s<t.organics.length;s++)t.organics[s].host&&t.organics[s].param&&r.organics.push(t.organics[s]);return r.organics.push({host:"bing.com",param:"q",display:"bing"}),r.organics.push({host:"yahoo.com",param:"p",display:"yahoo"}),r.organics.push({host:"about.com",param:"q",display:"about"}),r.organics.push({host:"aol.com",param:"q",display:"aol"}),r.organics.push({host:"ask.com",param:"q",display:"ask"}),r.organics.push({host:"globososo.com",param:"q",display:"globo"}),r.organics.push({host:"go.mail.ru",param:"q",display:"go.mail.ru"}),r.organics.push({host:"rambler.ru",param:"query",display:"rambler"}),r.organics.push({host:"tut.by",param:"query",display:"tut.by"}),r.referrals.push({host:"t.co",display:"twitter.com"}),r.referrals.push({host:"plus.url.google.com",display:"plus.google.com"}),r},validate:{checkFloat:function(e){return!(!e||!this.isNumeric(parseFloat(e)))&&parseFloat(e)},checkInt:function(e){return!(!e||!this.isNumeric(parseInt(e)))&&parseInt(e)},isNumeric:function(e){return!isNaN(e)},isString:function(e){return"[object String]"===Object.prototype.toString.call(e)}}}},{"./helpers/uri":4,"./terms":9}],9:[function(e,t,r){"use strict";t.exports={traffic:{utm:"utm",organic:"organic",referral:"referral",typein:"typein"},referer:{referral:"referral",organic:"organic",social:"social"},none:"(none)",oops:"(Houston, we have a problem)"}},{}]},{},[1])(1)});
!function(n){"use strict";const t=n.params,o=document.querySelector.bind(document),e=(n,t)=>t.split(".").reduce((n,t)=>n&&n[t],n),i=()=>null,c="wc/store/checkout";function s(){const o=t.allowTracking?e:i,c=Object.entries(n.fields).map(([n,t])=>[n,o(sbjs.get,t)]);return Object.fromEntries(c)}function a(e){if(o(`input[name^="${t.prefix}"]`))for(const i of Object.keys(n.fields))o(`input[name="${t.prefix}${i}"]`).value=e&&e[i]||""}function d(n){window.wp&&window.wp.data&&window.wp.data.dispatch&&window.wc&&window.wc.wcBlocksData&&window.wp.data.dispatch(window.wc.wcBlocksData.CHECKOUT_STORE_KEY).__internalSetExtensionData("woocommerce/order-attribution",n,!0)}if(n.setOrderTracking=function(n){t.allowTracking=n,n?sbjs.init({lifetime:Number(t.lifetime),session_length:Number(t.session),timezone_offset:"0"}):function(){const n=window.location.hostname;["sbjs_current","sbjs_current_add","sbjs_first","sbjs_first_add","sbjs_session","sbjs_udata","sbjs_migrations","sbjs_promo"].forEach(t=>{document.cookie=`${t}=; path=/; max-age=-999; domain=.${n};`})}();const o=s();a(o),d(o)},n.setOrderTracking(t.allowTracking),null!==o("form.woocommerce-checkout")){const n=document.body.oninit_checkout;document.body.oninit_checkout=(()=>{a(s()),n&&n()})}function r(){if(window.wp&&window.wp.data&&"function"==typeof window.wp.data.subscribe){const n=window.wp.data.subscribe(function(){n(),d(s())},c)}}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",r):r()}(window.wc_order_attribution);
!function(t,a,i,e){var r=function(t){var a=this;a.$form=t,a.$attributeFields=t.find(".variations select"),a.$singleVariation=t.find(".single_variation"),a.$singleVariationWrap=t.find(".single_variation_wrap"),a.$resetVariations=t.find(".reset_variations"),a.$product=t.closest(".product"),a.variationData=t.data("product_variations"),a.useAjax=!1===a.variationData,a.xhr=!1,a.loading=!0,a.$singleVariationWrap.show(),a.$form.off(".wc-variation-form"),a.getChosenAttributes=a.getChosenAttributes.bind(a),a.findMatchingVariations=a.findMatchingVariations.bind(a),a.isMatch=a.isMatch.bind(a),a.toggleResetLink=a.toggleResetLink.bind(a),t.on("click.wc-variation-form",".reset_variations",{variationForm:a},a.onReset),t.on("reload_product_variations",{variationForm:a},a.onReload),t.on("hide_variation",{variationForm:a},a.onHide),t.on("show_variation",{variationForm:a},a.onShow),t.on("click",".single_add_to_cart_button",{variationForm:a},a.onAddToCart),t.on("reset_data",{variationForm:a},a.onResetDisplayedVariation),t.on("reset_image",{variationForm:a},a.onResetImage),t.on("change.wc-variation-form",".variations select",{variationForm:a},a.onChange),t.on("found_variation.wc-variation-form",{variationForm:a},a.onFoundVariation),t.on("check_variations.wc-variation-form",{variationForm:a},a.onFindVariation),t.on("update_variation_values.wc-variation-form",{variationForm:a},a.onUpdateAttributes),setTimeout(function(){t.trigger("check_variations"),t.trigger("wc_variation_form",a),a.loading=!1},100)};r.prototype.onReset=function(t){t.preventDefault(),t.data.variationForm.$attributeFields.val("").trigger("change"),t.data.variationForm.$form.trigger("reset_data")},r.prototype.onReload=function(t){var a=t.data.variationForm;a.variationData=a.$form.data("product_variations"),a.useAjax=!1===a.variationData,a.$form.trigger("check_variations")},r.prototype.onHide=function(t){t.preventDefault(),t.data.variationForm.$form.find(".single_add_to_cart_button").removeClass("wc-variation-is-unavailable").addClass("disabled wc-variation-selection-needed"),t.data.variationForm.$form.find(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-enabled").addClass("woocommerce-variation-add-to-cart-disabled")},r.prototype.onShow=function(a,i,e){a.preventDefault(),e?(a.data.variationForm.$form.find(".single_add_to_cart_button").removeClass("disabled wc-variation-selection-needed wc-variation-is-unavailable"),a.data.variationForm.$form.find(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-disabled").addClass("woocommerce-variation-add-to-cart-enabled")):(a.data.variationForm.$form.find(".single_add_to_cart_button").removeClass("wc-variation-selection-needed").addClass("disabled wc-variation-is-unavailable"),a.data.variationForm.$form.find(".woocommerce-variation-add-to-cart").removeClass("woocommerce-variation-add-to-cart-enabled").addClass("woocommerce-variation-add-to-cart-disabled")),wp.mediaelement&&a.data.variationForm.$form.find(".wp-audio-shortcode, .wp-video-shortcode").not(".mejs-container").filter(function(){return!t(this).parent().hasClass("mejs-mediaelement")}).mediaelementplayer(wp.mediaelement.settings)},r.prototype.onAddToCart=function(i){t(this).is(".disabled")&&(i.preventDefault(),t(this).is(".wc-variation-is-unavailable")?a.alert(wc_add_to_cart_variation_params.i18n_unavailable_text):t(this).is(".wc-variation-selection-needed")&&a.alert(wc_add_to_cart_variation_params.i18n_make_a_selection_text))},r.prototype.onResetDisplayedVariation=function(t){var a=t.data.variationForm;a.$product.find(".product_meta").find(".sku").wc_reset_content(),a.$product.find(".product_weight, .woocommerce-product-attributes-item--weight .woocommerce-product-attributes-item__value").wc_reset_content(),a.$product.find(".product_dimensions, .woocommerce-product-attributes-item--dimensions .woocommerce-product-attributes-item__value").wc_reset_content(),a.$form.trigger("reset_image"),a.$singleVariation.slideUp(200).trigger("hide_variation")},r.prototype.onResetImage=function(t){t.data.variationForm.$form.wc_variations_image_update(!1)},r.prototype.onFindVariation=function(a,i){var e=a.data.variationForm,r=void 0!==i?i:e.getChosenAttributes(),o=r.data;if(r.count&&r.count===r.chosenCount)if(e.useAjax)e.xhr&&e.xhr.abort(),e.$form.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),o.product_id=parseInt(e.$form.data("product_id"),10),o.custom_data=e.$form.data("custom_data"),e.xhr=t.ajax({url:wc_add_to_cart_variation_params.wc_ajax_url.toString().replace("%%endpoint%%","get_variation"),type:"POST",data:o,success:function(t){t?e.$form.trigger("found_variation",[t]):(e.$form.trigger("reset_data"),r.chosenCount=0,e.loading||(e.$form.find(".single_variation").after('<p class="wc-no-matching-variations woocommerce-info">'+wc_add_to_cart_variation_params.i18n_no_matching_variations_text+"</p>"),e.$form.find(".wc-no-matching-variations").slideDown(200)))},complete:function(){e.$form.unblock()}});else{e.$form.trigger("update_variation_values");var n=e.findMatchingVariations(e.variationData,o).shift();n?e.$form.trigger("found_variation",[n]):(e.$form.trigger("reset_data"),r.chosenCount=0,e.loading||(e.$form.find(".single_variation").after('<p class="wc-no-matching-variations woocommerce-info">'+wc_add_to_cart_variation_params.i18n_no_matching_variations_text+"</p>"),e.$form.find(".wc-no-matching-variations").slideDown(200)))}else e.$form.trigger("update_variation_values"),e.$form.trigger("reset_data");e.toggleResetLink(r.chosenCount>0)},r.prototype.onFoundVariation=function(a,i){var e=a.data.variationForm,r=e.$product.find(".product_meta").find(".sku"),n=e.$product.find(".product_weight, .woocommerce-product-attributes-item--weight .woocommerce-product-attributes-item__value"),s=e.$product.find(".product_dimensions, .woocommerce-product-attributes-item--dimensions .woocommerce-product-attributes-item__value"),c=e.$singleVariationWrap.find('.quantity input.qty[name="quantity"]'),_=c.closest(".quantity"),d=!0,m=!1,v="";if(i.sku?r.wc_set_content(i.sku):r.wc_reset_content(),i.weight?n.wc_set_content(i.weight_html):n.wc_reset_content(),i.dimensions?s.wc_set_content(t.parseHTML(i.dimensions_html)[0].data):s.wc_reset_content(),e.$form.wc_variations_image_update(i),i.variation_is_visible?(m=o("variation-template"),i.variation_id):m=o("unavailable-variation-template"),v=(v=(v=m({variation:i})).replace("/*<![CDATA[*/","")).replace("/*]]>*/",""),e.$singleVariation.html(v),e.$form.find('input[name="variation_id"], input.variation_id').val(i.variation_id).trigger("change"),"yes"===i.is_sold_individually)c.val("1").attr("min","1").attr("max","").trigger("change"),_.hide();else{var l=parseFloat(c.val());l=isNaN(l)?i.min_qty:(l=l>parseFloat(i.max_qty)?i.max_qty:l)<parseFloat(i.min_qty)?i.min_qty:l,c.attr("min",i.min_qty).attr("max",i.max_qty).val(l).trigger("change"),_.show()}i.is_purchasable&&i.is_in_stock&&i.variation_is_visible||(d=!1),e.$singleVariation.text().trim()?e.$singleVariation.slideDown(200).trigger("show_variation",[i,d]):e.$singleVariation.show().trigger("show_variation",[i,d])},r.prototype.onChange=function(t){var a=t.data.variationForm;a.$form.find('input[name="variation_id"], input.variation_id').val("").trigger("change"),a.$form.find(".wc-no-matching-variations").remove(),a.useAjax?a.$form.trigger("check_variations"):(a.$form.trigger("woocommerce_variation_select_change"),a.$form.trigger("check_variations")),a.$form.trigger("woocommerce_variation_has_changed")},r.prototype.addSlashes=function(t){return t=(t=t.replace(/'/g,"\\'")).replace(/"/g,'\\"')},r.prototype.onUpdateAttributes=function(a){var i=a.data.variationForm,e=i.getChosenAttributes().data;i.useAjax||(i.$attributeFields.each(function(a,r){var o,n=t(r),s=n.data("attribute_name")||n.attr("name"),c=t(r).data("show_option_none"),_=":gt(0)",d=t("<select/>"),m=n.val()||"",v=!0;if(!n.data("attribute_html")){var l=n.clone();l.find("option").removeAttr("attached").prop("disabled",!1).prop("selected",!1),n.data("attribute_options",l.find("option"+_).get()),n.data("attribute_html",l.html())}d.html(n.data("attribute_html"));var g=t.extend(!0,{},e);g[s]="";var f=i.findMatchingVariations(i.variationData,g);for(var u in f)if("undefined"!=typeof f[u]){var h=f[u].attributes;for(var p in h)if(h.hasOwnProperty(p)){var w=h[p],b="";if(p===s)if(f[u].variation_is_active&&(b="enabled"),w){w=t("<div/>").html(w).text();var $=d.find("option");if($.length)for(var y=0,F=$.length;y<F;y++){var C=t($[y]);if(w===C.val()){C.addClass("attached "+b);break}}}else d.find("option:gt(0)").addClass("attached "+b)}}o=d.find("option.attached").length,m&&(v=!1,0!==o&&d.find("option.attached.enabled").each(function(){var a=t(this).val();if(m===a)return v=!0,!1})),o>0&&m&&v&&"no"===c&&(d.find("option:first").remove(),_=""),d.find("option"+_+":not(.attached)").remove(),n.html(d.html()),n.find("option"+_+":not(.enabled)").prop("disabled",!0),m?v?n.val(m):n.val("").trigger("change"):n.val("")}),i.$form.trigger("woocommerce_update_variation_values"))},r.prototype.getChosenAttributes=function(){var a={},i=0,e=0;return this.$attributeFields.each(function(){var r=t(this).data("attribute_name")||t(this).attr("name"),o=t(this).val()||"";o.length>0&&e++,i++,a[r]=o}),{count:i,chosenCount:e,data:a}},r.prototype.findMatchingVariations=function(t,a){for(var i=[],e=0;e<t.length;e++){var r=t[e];this.isMatch(r.attributes,a)&&i.push(r)}return i},r.prototype.isMatch=function(t,a){var i=!0;for(var e in t)if(t.hasOwnProperty(e)){var r=t[e],o=a[e];void 0!==r&&void 0!==o&&0!==r.length&&0!==o.length&&r!==o&&(i=!1)}return i},r.prototype.toggleResetLink=function(t){t?"hidden"===this.$resetVariations.css("visibility")&&this.$resetVariations.css("visibility","visible").hide().fadeIn():this.$resetVariations.css("visibility","hidden")},t.fn.wc_variation_form=function(){return new r(this),this},t.fn.wc_set_content=function(t){void 0===this.attr("data-o_content")&&this.attr("data-o_content",this.text()),this.text(t)},t.fn.wc_reset_content=function(){void 0!==this.attr("data-o_content")&&this.text(this.attr("data-o_content"))},t.fn.wc_set_variation_attr=function(t,a){void 0===this.attr("data-o_"+t)&&this.attr("data-o_"+t,this.attr(t)?this.attr(t):""),!1===a?this.removeAttr(t):this.attr(t,a)},t.fn.wc_reset_variation_attr=function(t){void 0!==this.attr("data-o_"+t)&&this.attr(t,this.attr("data-o_"+t))},t.fn.wc_maybe_trigger_slide_position_reset=function(a){var i=t(this),e=i.closest(".product").find(".images"),r=!1,o=a&&a.image_id?a.image_id:"";i.attr("current-image")!==o&&(r=!0),i.attr("current-image",o),r&&e.trigger("woocommerce_gallery_reset_slide_position")},t.fn.wc_variations_image_update=function(i){var e=this,r=e.closest(".product"),o=r.find(".images"),n=r.find(".flex-control-nav"),s=n.find("li:eq(0) img"),c=o.find(".woocommerce-product-gallery__image, .woocommerce-product-gallery__image--placeholder").eq(0),_=c.find(".wp-post-image"),d=c.find("a").eq(0);if(i&&i.image&&i.image.src&&i.image.src.length>1){n.find('li img[data-o_src="'+i.image.gallery_thumbnail_src+'"]').length>0&&e.wc_variations_image_reset();var m=n.find('li img[src="'+i.image.gallery_thumbnail_src+'"]');if(m.length>0)return m.trigger("click"),e.attr("current-image",i.image_id),void a.setTimeout(function(){t(a).trigger("resize"),o.trigger("woocommerce_gallery_init_zoom")},20);_.wc_set_variation_attr("src",i.image.src),_.wc_set_variation_attr("height",i.image.src_h),_.wc_set_variation_attr("width",i.image.src_w),_.wc_set_variation_attr("srcset",i.image.srcset),_.wc_set_variation_attr("sizes",i.image.sizes),_.wc_set_variation_attr("title",i.image.title),_.wc_set_variation_attr("data-caption",i.image.caption),_.wc_set_variation_attr("alt",i.image.alt),_.wc_set_variation_attr("data-src",i.image.full_src),_.wc_set_variation_attr("data-large_image",i.image.full_src),_.wc_set_variation_attr("data-large_image_width",i.image.full_src_w),_.wc_set_variation_attr("data-large_image_height",i.image.full_src_h),c.wc_set_variation_attr("data-thumb",i.image.src),s.wc_set_variation_attr("src",i.image.gallery_thumbnail_src),d.wc_set_variation_attr("href",i.image.full_src)}else e.wc_variations_image_reset();a.setTimeout(function(){t(a).trigger("resize"),e.wc_maybe_trigger_slide_position_reset(i),o.trigger("woocommerce_gallery_init_zoom")},20)},t.fn.wc_variations_image_reset=function(){var t=this.closest(".product"),a=t.find(".images"),i=t.find(".flex-control-nav").find("li:eq(0) img"),e=a.find(".woocommerce-product-gallery__image, .woocommerce-product-gallery__image--placeholder").eq(0),r=e.find(".wp-post-image"),o=e.find("a").eq(0);r.wc_reset_variation_attr("src"),r.wc_reset_variation_attr("width"),r.wc_reset_variation_attr("height"),r.wc_reset_variation_attr("srcset"),r.wc_reset_variation_attr("sizes"),r.wc_reset_variation_attr("title"),r.wc_reset_variation_attr("data-caption"),r.wc_reset_variation_attr("alt"),r.wc_reset_variation_attr("data-src"),r.wc_reset_variation_attr("data-large_image"),r.wc_reset_variation_attr("data-large_image_width"),r.wc_reset_variation_attr("data-large_image_height"),e.wc_reset_variation_attr("data-thumb"),i.wc_reset_variation_attr("src"),o.wc_reset_variation_attr("href")},t(function(){"undefined"!=typeof wc_add_to_cart_variation_params&&t(".variations_form").each(function(){t(this).wc_variation_form()})});var o=function(t){var e=i.getElementById("tmpl-"+t).textContent,r=!1;return(r=(r=(r=r||/<#\s?data\./.test(e))||/{{{?\s?data\.(?!variation\.).+}}}?/.test(e))||/{{{?\s?data\.variation\.[\w-]*[^\s}]/.test(e))?wp.template(t):function(t){var i=t.variation||{};return e.replace(/({{{?)\s?data\.variation\.([\w-]*)\s?(}}}?)/g,function(t,e,r,o){if(e.length!==o.length)return"";var n=i[r]||"";return 2===e.length?a.escape(n):n})}}}(jQuery,window,document);
(function($){
const removeAttrClass=cfvsw_swatches_settings.remove_attr_class;
const addRemoveWithCommonClass=`${ removeAttrClass } cfvsw-swatches-out-of-stock`;
const addRemoveDisableClass=removeAttrClass + '-disable';
const addRemoveDisableClassCommon=`${ addRemoveDisableClass } cfvsw-swatches-disabled`;
const SW={
init: ()=> {
if(cfvsw_swatches_settings.disable_out_of_stock){
SW.firstTime();
SW.Events();
}},
firstTime: ()=> {
const getVariationTable=$('table.variations').not('.cfvsw-variation-disable-logic'
);
getVariationTable.addClass('cfvsw-variation-disable-logic');
getVariationTable.each(function (){
const table=$(this);
const getForm=table.closest('[data-product_id][data-product_variations]'
);
const getFormData=getForm.data('product_variations');
SW.swatchesOptions(getForm, getFormData);
});
},
chooseOption(){
const option=$(this);
const getForm=option.closest('[data-product_id][data-product_variations]'
);
getForm
.find('.disable-to-select')
.removeClass('disable-to-select');
const td=option.closest('td');
const checkTdSelected=td
.find('.cfvsw-hidden-select select')
.val();
if(''!==checkTdSelected){
td.addClass('disable-to-select');
}
const getFormData=getForm.data('product_variations');
SW.swatchesOptions(getForm, getFormData);
},
getSelectedOptions:(getForm)=> {
const getSelectedSwatches=getForm.find('.cfvsw-hidden-select select'
);
const selected={};
getSelectedSwatches.each(function (){
const select=$(this);
const getValue=select.val();
const getAttrName=select.attr('data-attribute_name');
if(''!==getValue&&''!==getAttrName){
selected[ getAttrName ]=getValue;
}});
return selected;
},
swatchesOptions:(getForm, getFormData)=> {
const getTdAvoidCurrent=getForm
.find('td')
.not('.disable-to-select');
const getAllSelect=getTdAvoidCurrent.find('.cfvsw-swatches-container[swatches-attr]'
);
if(! getAllSelect.length){
return;
}
const getSelectedOptions=SW.getSelectedOptions(getForm);
const findToRemoveClass=getTdAvoidCurrent.find(`.${ addRemoveDisableClass }`
);
if(findToRemoveClass.length){
findToRemoveClass.removeClass(addRemoveDisableClassCommon);
}
getAllSelect.each(function (){
const select=$(this);
const getAttrName=select.attr('swatches-attr');
if(''!==getAttrName){
const findOptions=select.find('.cfvsw-swatches-option');
findOptions.each(function (){
const optValue=$(this);
const currentTermSlug=optValue.attr('data-slug');
if(currentTermSlug&&''!==currentTermSlug){
const hasStock=SW.checkOptionAvail(getAttrName,
currentTermSlug,
getSelectedOptions,
getFormData
);
if(! hasStock){
optValue.addClass(addRemoveDisableClassCommon
);
}}
});
}});
},
checkOptionAvail: (
getAttrName,
currentTermSlug,
getSelectedOptions,
getFormData
)=> {
let hasThisSwatch;
for(let index=0; index < getFormData.length; index++){
const productVariations=getFormData[ index ];
const { attributes, is_in_stock }=productVariations;
const passedInRaw=SW.checkInPreRawData(getSelectedOptions,
attributes,
getAttrName,
currentTermSlug,
is_in_stock
);
if(passedInRaw){
hasThisSwatch=is_in_stock;
break;
}}
return hasThisSwatch;
},
checkInPreRawData: (
getSelectedOptions,
attributes,
getAttrName,
currentTermSlug,
is_in_stock
)=> {
let hasThisSwatch=false;
const copySelected={ ...getSelectedOptions };
const selectedKeys=Object.keys(getSelectedOptions);
const getCurrentIndex=selectedKeys.indexOf(getAttrName);
const currentObj={};
currentObj[ getAttrName ]=currentTermSlug;
if(getCurrentIndex >=0){
selectedKeys.splice(getCurrentIndex, 1);
delete copySelected[ getAttrName ];
}
hasThisSwatch=SW.checkInRawData(attributes,
copySelected,
currentObj,
is_in_stock
);
return hasThisSwatch;
},
checkInRawData:(attribute, selected, currentObj, is_in_stock)=> {
const cloneAttr={ ...attribute };
const selectedCurrent={ ...selected, ...currentObj };
let checkAndAvail=true;
for(const checkIsAvail in selectedCurrent){
const value=selectedCurrent[ checkIsAvail ];
const attrValue=attribute[ checkIsAvail ];
if(''===attrValue){
delete cloneAttr[ checkIsAvail ];
continue;
}
if(value===attrValue){
delete cloneAttr[ checkIsAvail ];
continue;
}
checkAndAvail=false;
}
if(is_in_stock){
return checkAndAvail;
}
for(const cloneKey in cloneAttr){
const cloneValue=cloneAttr[ cloneKey ];
if(''!==cloneValue){
checkAndAvail=false;
}}
return checkAndAvail;
},
Events: ()=> {
$(document).on('click',
'.cfvsw-swatches-container .cfvsw-swatches-option[data-slug]',
SW.chooseOption
);
$(document).on('berocket_ajax_products_infinite_loaded',
function (){
SW.firstTime();
}
);
},
};
$(document).on('click', '.cfvsw-swatches-option', function (){
const swatchesOption=$(this);
if(swatchesOption.hasClass('cfvsw-swatches-disabled') ||
swatchesOption.hasClass('cfvsw-swatches-out-of-stock')
){
return;
}
onClickSwatchesOption(swatchesOption);
addVariationFunctionality();
});
$('body').on('click',
'.cfvsw_ajax_add_to_cart.cfvsw_variation_found',
function(e){
e.preventDefault();
triggerAddToCart($(this));
}
);
function onClickSwatchesOption(swatch){
if(swatch.hasClass('cfvsw-selected-swatch')){
swatch.removeClass('cfvsw-selected-swatch');
resetPrice(swatch);
resetThumbnail(swatch);
resetButtonData(swatch);
}else{
const parent=swatch.parent();
parent.find('.cfvsw-swatches-option').each(function (){
$(this).removeClass('cfvsw-selected-swatch');
});
swatch.addClass('cfvsw-selected-swatch');
}
updateSelectOption(swatch);
if(cfvsw_swatches_settings.html_design!=='inline'){
updateTitle(swatch);
}}
function updateSelectOption(swatch){
const value=swatch.hasClass('cfvsw-selected-swatch')
? swatch.data('slug')
: '';
const select=swatch
.closest('.cfvsw-swatches-container')
.prev()
.find('select');
select.val(value).change();
}
function updateTitle(swatch){
const label=swatch.closest('tr').children('.label');
label.find('.cfvsw-selected-label').remove();
if(! swatch.hasClass('cfvsw-selected-swatch')){
return;
}
label
.children('label')
.append('<span class="cfvsw-selected-label"></span>');
label
.children('label')
.children('.cfvsw-selected-label')
.html(swatch.data('title'));
}
function triggerAddToCart(variant){
if(variant.is('.wc-variation-is-unavailable')){
return window.alert(cfvsw_swatches_settings.unavailable_text);
}
const productId=variant.data('product_id');
let variationId=variant.attr('data-variation_id');
variationId=parseInt(variationId);
if(isNaN(productId) ||
productId===0 ||
isNaN(variationId) ||
variationId===0
){
return true;
}
let variation=variant.attr('data-selected_variant');
variation=JSON.parse(variation);
const data={
action: 'cfvsw_ajax_add_to_cart',
security: cfvsw_swatches_settings.ajax_add_to_cart_nonce,
product_id: productId,
variation_id: variationId,
variation,
};
$(document.body).trigger('adding_to_cart', [ variant, data ]);
variant.removeClass('added').addClass('loading');
$.ajax({
type: 'POST',
url: cfvsw_swatches_settings.ajax_url,
data,
dataType: 'json',
success(response){
if(! response){
return;
}
if(response.error&&response.product_url){
window.location=response.product_url;
return;
}
$(document.body).trigger('added_to_cart', [
response.fragments,
response.cart_hash,
variant,
]);
$(document.body).trigger('update_checkout');
variant.removeClass('loading').addClass('added');
},
error(errorThrown){
variant.removeClass('loading');
console.log(errorThrown);
},
});
}
$(document).on('change', '.cfvsw-hidden-select select', function (){
setTimeout(()=> {
updateSwatchesAvailability();
}, 1);
});
$('.reset_variations').on('click', function (){
resetSwatches($(this));
});
$(document).on({
mouseenter(){
const addToTooltip=$(this);
const tooltip=addToTooltip.data('tooltip');
if(''===tooltip ||
'undefined'===typeof tooltip ||
addToTooltip.hasClass('cfvsw-label-option')
){
return;
}
if(addToTooltip.children('.cfvsw-tooltip').length===0){
addToTooltip.prepend(`<div class="cfvsw-tooltip"><span class="cfvsw-tooltip-label">${ tooltip }</span></div>`
);
$('.cfvsw-tooltip').fadeIn(500);
const swatchHeight=addToTooltip
.children('.cfvsw-swatch-inner')
.innerHeight();
$('.cfvsw-tooltip').css({
bottom: swatchHeight,
});
if(cfvsw_swatches_settings.tooltip_image &&
addToTooltip.hasClass('cfvsw-image-option')
){
$('.cfvsw-tooltip').prepend("<span class='cfvsw-tooltip-preview'></span>"
);
const preview=addToTooltip
.children('.cfvsw-swatch-inner')
.css('backgroundImage');
$('.cfvsw-tooltip').css({
bottom: swatchHeight - 30,
padding: '2px',
});
$('.cfvsw-tooltip-preview').css({
backgroundImage: preview,
backgroundSize: 'cover',
});
}}
},
mouseleave(){
$('.cfvsw-tooltip').remove();
},
},
'.cfvsw-swatches-option'
);
$(document).on('ready', function (){
setTimeout(()=> {
setSwatchesSelection();
}, 1);
$('.woocommerce-widget-layered-nav-list').each(function (){
if($(this).find('.cfvsw-swatches-container').length){
$(this).addClass('cfvsw-filters');
}});
});
$('.cfvsw-shop-variations').on('click', function(e){
e.preventDefault();
});
$('.cfvsw-shop-variations .cfvsw-more-link').on('click', function(e){
window.location=e.target.href;
});
function updateSwatchesAvailability(){
$('.cfvsw-hidden-select select').each(function (){
const availableOptions=[];
$(this)
.children('option')
.each(function (){
if(''!==$(this).val()){
availableOptions.push($(this).val());
}});
$(this)
.parent()
.next()
.find('.cfvsw-swatches-option')
.each(function (){
if(-1===$.inArray($(this).attr('data-slug'),
availableOptions
)
){
$(this).addClass(addRemoveWithCommonClass);
}else{
$(this).removeClass(addRemoveWithCommonClass);
}});
});
}
function setSwatchesSelection(){
$('.cfvsw-hidden-select select').each(function (){
const selected=$(this).val();
$(this)
.parent()
.next()
.find(`[data-slug='${ selected }']`)
.trigger('click');
});
}
function resetSwatches(resetButton){
$('.cfvsw-swatches-option').each(function (){
$(this).removeClass('cfvsw-selected-swatch');
});
$('.cfvsw-selected-label').remove();
if(cfvsw_swatches_settings.disable_out_of_stock){
const table=resetButton.closest('table');
const findDisabledAttr=table.find(`.${ addRemoveDisableClass }`
);
const findDisableSelect=table.find('.disable-to-select');
if(findDisableSelect.length){
findDisableSelect.removeClass('disable-to-select');
}
if(findDisabledAttr){
findDisabledAttr.removeClass(addRemoveDisableClassCommon);
}
setTimeout(()=> {
SW.firstTime();
}, 20);
}}
function addVariationFunctionality(){
$('.cfvsw_variations_form:not(.variation-function-added)').each(function (){
const thisForm=$(this);
thisForm.addClass('variation-function-added');
thisForm.wc_variation_form();
thisForm.on('found_variation', function(e, variation){
updateThumbnail(thisForm, variation.image);
if(thisForm.attr('data-cfvsw-catalog')){
return;
}
updatePrice(thisForm, variation);
updatebuttonData(thisForm, variation);
});
}
);
}
$(window).on('load', function (){
addVariationFunctionality();
});
function updateThumbnail(swatch, imageData){
const listItem=swatch.closest('li');
const thumbnail=listItem.find('img:first');
if(0===listItem.find('.cfvsw-original-thumbnail').length){
const originalThumbnail=thumbnail.clone();
thumbnail.after('<span class="cfvsw-original-thumbnail"></span>');
listItem
.find('.cfvsw-original-thumbnail')
.html(originalThumbnail);
}
thumbnail.attr('src', imageData.thumb_src);
thumbnail.attr('srcset', '');
}
function resetThumbnail(swatch){
const listItem=swatch.closest('li');
if(listItem.find('.cfvsw-original-thumbnail').length){
const thumbnail=listItem.find('img:first');
thumbnail.replaceWith(listItem.find('.cfvsw-original-thumbnail').html()
);
listItem.find('.cfvsw-original-thumbnail').remove();
}}
function updatePrice(swatch, variation){
if(0===variation.price_html.length){
return;
}
if(swatch.parents('li').find('.cfvsw-original-price').length){
const price=swatch.parents('li').find('.price');
price.replaceWith(variation.price_html);
}else{
const price=swatch.parents('li').find('.price');
price.after(variation.price_html);
price.removeClass('price').addClass('cfvsw-original-price');
}}
function resetPrice(swatch){
if(swatch.parents('li').find('.cfvsw-original-price').length){
swatch.parents('li').find('.price').remove();
swatch
.parents('li')
.find('.cfvsw-original-price')
.removeClass('cfvsw-original-price')
.addClass('price');
}}
function updatebuttonData(variant, variation){
const select=variant.find('.variations select');
const data={};
const button=variant
.parents('li')
.find('.cfvsw_ajax_add_to_cart');
select.each(function (){
const attributeName =
$(this).data('attribute_name')||$(this).attr('name');
const value=$(this).val()||'';
data[ attributeName ]=value;
});
button.html(button.data('add_to_cart_text'));
button.addClass('cfvsw_variation_found');
button.attr('data-variation_id', variation.variation_id);
button.attr('data-selected_variant', JSON.stringify(data));
}
function resetButtonData(variant){
const button=variant
.parents('li')
.find('.cfvsw_ajax_add_to_cart');
button.html(button.data('select_options_text'));
button.removeClass('cfvsw_variation_found');
button.attr('data-variation_id', '');
button.attr('data-selected_variant', '');
}
SW.init();
document.addEventListener('astraInfinitePaginationLoaded', function (){
SW.firstTime();
addVariationFunctionality();
});
document.addEventListener('cfvswVariationLoad', function (){
SW.firstTime();
addVariationFunctionality();
});
})(jQuery);