/*!
* WP Grid Builder
*
* @package   WP Grid Builder
* @author    Loïc Blascos
* @link      https://www.wpgridbuilder.com
* @copyright 2019-2024 Loïc Blascos
*
*/
(()=>{var t={597:()=>{function t(){const t=elementorFrontend,e=t.elements&&t.elements.$document,i=t.utils&&t.utils.lightbox,s=wpgb_settings&&wpgb_settings.lightbox.plugin;if(!e||!i||!s)return;let n=!1;const o=i.showModal;o&&(e.on("click",".wpgb-handle-lb",(()=>n=!0)),i.showModal=function(){!n&&o(...arguments),n=!1})}window.elementorFrontend&&elementorFrontend.utils&&elementorFrontend.utils.lightbox&&t(),window.jQuery&&jQuery(window).on("elementor/frontend/init",(()=>elementorFrontend.on("components:init",t)))},1032:()=>{"undefined"!=typeof jQuery&&jQuery(document.body).on("wc_cart_button_updated",(function(t,e){var i=e.next();if(e.is('[class*="wpgb-block-"]')&&i.is('[class*="added_to_cart wc-forward"]')){var s=jQuery.grep(e[0].className.split(" "),(function(t){return 0===t.indexOf("wpgb-")})).join(" ");i[0].className=s+" "+i[0].className}}))}},e={};function i(s){var n=e[s];if(void 0!==n)return n.exports;var o=e[s]={exports:{}};return t[s](o,o.exports,i),o.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var s in e)i.o(e,s)&&!i.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";const t=function(t){let e;"function"==typeof Event?e=new CustomEvent(t):(e=document.createEvent("CustomEvent"),e.initEvent(t,!0,!0)),window.dispatchEvent(e)},e=function(t){if("complete"===document.readyState||"interactive"===document.readyState)return t();document.addEventListener("DOMContentLoaded",t)};class s{constructor(){this.listeners=new Map}canListen(t,e){return!("function"!=typeof e||!t)||(!("object"!=typeof e||!e[t])||(console.error(`Invalid listener for event name: "${t}"`),!1))}exists(t,e){if(this.listeners.has(t))return this.listeners.get(t).find((t=>t.listener===e))}on(t,e){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return this.canListen(t,e)?(this.listeners.has(t)||this.listeners.set(t,[]),this.exists(t,e)||this.listeners.get(t).push({listener:e,once:i}),this):this}once(t,e){return this.on(t,e,!0)}off(t,e){const i=this.listeners.get(t)||[],s=i.findIndex((t=>t.listener===e));return s>-1&&i.splice(s,1),i.length<1&&this.listeners.delete(t),this}offAll(){return this.listeners.clear(),this}emit(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),s=1;s<e;s++)i[s-1]=arguments[s];return[...this.listeners.get(t)||[]].forEach((e=>{e.once&&this.off(t,e.listener),"object"==typeof e.listener?e.listener[t].apply(e.listener,...i):e.listener.apply(this,...i)})),this}}class n extends s{constructor(){super(),this.vendors={},this.instances={}}get(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;const{instances:e}=this,i=[];if(!Object.keys(e).length)return[];for(const s in e)(e[s].id||"").toString()===t.toString()&&i.push(e[s]);return i}instance(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return Object.keys(this.instances).length&&this.instances[t]?this.instances[t]:{}}}const o={get:()=>[],instance:()=>[],instances:()=>[],instantiate:()=>[],on:()=>null,off:()=>null,once:()=>null,offAll:()=>null,emit:()=>null,vendors:{},unsupported:!0};if(!window?.WP_Grid_Builder?.instance){const t=!!(Math.sign&&Array.from&&Array.prototype.fill&&Array.prototype.find&&Array.prototype.findIndex&&Array.prototype.includes&&Element.prototype.matches&&Element.prototype.closest&&NodeList.prototype.forEach&&window.Map&&window.URLSearchParams);window.WP_Grid_Builder=t?Object.assign(new n,window?.WP_Grid_Builder||{}):Object.assign(o,window?.WP_Grid_Builder||{})}let h,r,a,l,d;function c(){!function(){const t=p();if(!t)return;t.getGalleries()}(),l&&window.easy_fancybox_handler&&window.easy_fancybox_auto&&(jQuery(easy_fancybox_handler),jQuery(easy_fancybox_auto)),d&&"undefined"!=typeof FOOBOX&&"function"==typeof FOOBOX.init&&FOOBOX.init()}function u(){r=window.wpgb_settings&&window.wpgb_settings.lightbox&&window.wpgb_settings.lightbox.plugin?wpgb_settings.lightbox.plugin:"",a=["modulobox","modulobox_lite"].includes(r),l="easy_fancybox"===r,d="foobox"===r,a&&"ModuloBox"in window&&(ModuloBox.prototype.openFromQuery=()=>{})}function p(){if(a&&"ModuloBox"in window)return h||(h=new ModuloBox,h.init(),h)}WP_Grid_Builder.unsupported||(u(),e((()=>{u();const t=p();t&&(t.options.history=!1),!l&&window.easy_fancybox_handler&&window.easy_fancybox_auto&&jQuery("a.wpgb-handle-lb").off("click")})));i(597);var g=i(1032);i.n(g)(),Math.max;const m=Math.min;function w(t,e,i){let s,n,o,h,r,a,l=0,d=!1,c=!1,u=!0;if("function"!=typeof t)throw new TypeError(FUNC_ERROR_TEXT);function p(e){let i=s,o=n;return s=n=void 0,l=e,h=t.apply(o,i),h}function g(t){let i=t-a;return void 0===a||i>=e||i<0||c&&t-l>=o}function w(){const t=Date.now();if(g(t))return y(t);r=setTimeout(w,function(t){let i=e-(t-a);return c?m(i,o-(t-l)):i}(t))}function y(t){return r=void 0,u&&s?p(t):(s=n=void 0,h)}function v(){let t=Date.now(),i=g(t);if(s=arguments,n=this,a=t,i){if(void 0===r)return function(t){return l=t,r=setTimeout(w,e),d?p(t):h}(a);if(c)return r=setTimeout(w,e),p(a)}return void 0===r&&(r=setTimeout(w,e)),h}return e=Number(e)||0,"object"==typeof i&&(d=!!i.leading,u="trailing"in i?!!i.trailing:u),v.cancel=function(){void 0!==r&&clearTimeout(r),l=0,s=a=n=r=void 0},v}class y extends s{handleEvent(t){const e="on"+t.type;this[e]&&this[e](t)}bindEvents(){let t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];t=t?"addEventListener":"removeEventListener",window[t]("load",this),window[t]("resize",this),window[t]("orientationchange",this)}onload(){this.layout()}orientationchange(){this.onresize()}onresize=w((()=>{const t=this.getStyle(document.body);this.body.width!==t.width&&this.layout()}),100)}class v extends y{layoutItems(t){const{length:e}=t;this.emit("beforeLayout",[t]),t.forEach(((t,i)=>{this.lastItem=e-1===i,this.getItemPosition(t)})),delete this.lastItem,this.setLayoutHeight(),this.renderLayout(),this.emit("layout",[this.items])}getItems(){const t=this.element.querySelectorAll(this.options.items);if(this.items=[],t)return this.items=this.setItems(t),t}addItems(t){if(!t.length)return;let e=this.setItems(t);this.items=[...this.items,...e],this.layoutItems(e),this.emit("added",[t])}removeItems(t){this.items=this.items.filter((e=>!(!t||e.node===e)||(e.node.parentElement.removeChild(e.node),!1))),this.resetLayout(),this.emit("removed",[t])}setItems(t){return[...t].map(((t,e)=>{let i=t.querySelector("svg[data-ratio]"),s=i?i.viewBox.baseVal:null;return{node:t,rows:parseInt(t.getAttribute("data-row"),10)||1,columns:parseInt(t.getAttribute("data-col"),10)||1,ratio:s?s.width/s.height:1.5625}}))}getItemSizes(){const t=this.getViewportWidth(),e=this.options.cardSizes,i=Object.keys(e).sort(((t,e)=>t-e));let s=i.filter((e=>e>=t));s?.length||(s=i.slice(-1)),s=Math.min(...s);for(let t in e[s])this[t]=e[s][t]}getItemCol(t){return Math.min(t.columns||1,this.columns)}getItemRow(t){return"horizontal"===this.options.layout?Math.min(t.rows||1,this.options.rowsNumber):t.rows||1}}class f extends v{constructor(t,e){super(),this.element=t,this.options=e,this.wrapper=t.querySelector(".wpgb-wrapper"),this.viewport=t.querySelector(".wpgb-viewport")}init(){const t=this.getItems();if(!this.items.length)return!1;this.layout(),this.bindEvents(),this.emit("init",[t])}destroy(){this.bindEvents(!1),this.wrapper.removeAttribute("style"),this.viewport.removeAttribute("style"),this.items.forEach((t=>t.node.removeAttribute("style"))),this.items=[]}layout(){this.getMeasurement(),this.setLayoutWidth(),this.resetLayout(),this.layoutItems(this.items)}renderLayout(){this.items.forEach((t=>{this.css(t.node,{left:t.x+"px",top:t.y+"px"})}))}setLayoutHeight(){"horizontal"===this.options.layout?this.viewport.style.height=this.maxY-this.gutter+500+"px":this.viewport.style.height=this.maxY-this.gutter+"px"}setLayoutWidth(){if(this.body=this.getStyle(document.body),!this.options.fullWidth)return;const t=this.getStyle(this.wrapper);this.css(this.wrapper,{left:this.body.left-t.left+t.marginLeft+"px",width:this.body.width-t.marginLeft-t.marginRight+"px"}),this.grid=this.getSize(this.viewport)}getMeasurement(){this.wrapper.removeAttribute("style"),this.grid=this.getSize(this.viewport),this.getItemSizes()}getViewportWidth(){return(document.documentElement||document.body).clientWidth}getSize(t){const{width:e,height:i,top:s,left:n,right:o,bottom:h}=t.getBoundingClientRect();return{width:e,height:i,top:s,left:n,right:o,bottom:h}}getStyle(t){const{left:e,top:i,right:s,bottom:n}=t.getBoundingClientRect(),o=getComputedStyle(t),h=["Top","Right","Bottom","Left"];let r={left:e,top:i,right:s,bottom:n};return["margin","padding"].forEach((t=>{h.forEach((e=>{let i=parseFloat(o[t+e]);r[t+e]=i||0}))})),r.width=Math.max(0,t.clientWidth-(r.marginLeft+r.marginRight)),r.height=Math.max(0,t.clientHeight-(r.paddingLeft+r.paddingRight)),r}css(t,e){const{rightToLeft:i}=this.options;for(let s in e)t.style[i&&"left"===s?"right":s]=e[s]}}class b extends f{resetLayout(){this.maxX=0,this.maxY=0,this.placed=[]}getItemPosition(t){const e=(this.grid.width+this.gutter)/this.columns,i=this.getItemCol(t);t.x=this.maxX,t.y=0,t.width=Math.ceil(10*(e*i-this.gutter))/10,this.css(t.node,{width:t.width+"px",height:""});const s=this.getSize(t.node);s.height||(s.height=3*e/4,this.css(t.node,{height:s.height+"px"})),this.placed.push(t),this.maxX+=e*i,this.maxY=Math.max(this.maxY,s.height+this.gutter),this.lastItem&&0!==this.x&&this.equalColumns()}equalColumns(){this.options.equalColumns&&this.placed.forEach((t=>{this.css(t.node,{height:this.maxY-this.gutter+"px"})}))}}class x extends f{resetLayout(){this.maxX=0,this.maxY=0,this.rowY=0,this.rowItems=[],this.rowWidth=0,this.prevProg=0,this.prevItem=null}getItemPosition(t){"horizontal"===this.options.layout?this.layoutHorizontal(t):this.layoutVertical(t)}layoutHorizontal(t){const e=t.ratio*this.height;let i=this.rowItems.index;(!i||i>this.options.rowsNumber-1)&&(i=this.rowItems.index=0),t.x=this.rowItems[i]?this.rowItems[i].x:0,t.y=i*(this.height+this.gutter),t.width=e,t.height=this.height,this.rowItems[i]={x:t.x+e+this.gutter},this.maxY=this.options.rowsNumber*(this.height+this.gutter),this.maxX=this.maxX<this.rowItems[i].x?this.rowItems[i].x:this.maxX,this.css(t.node,{height:this.height+"px",width:e+"px"}),this.rowItems.index++}layoutVertical(t){const e=t.ratio*this.height;if(this.rowItems.push(t),this.rowWidth+=e,this.maxX+=e+this.gutter,this.maxY=this.rowY,this.rowWidth>=this.getMaxRowWidth())return this.layoutRow(),void this.resetRow();this.lastItem&&this.layoutRow(!0),this.prevProg=this.getRowProgress()}layoutRow(t){const e=this.getClosestHeigth(),i=!this.options.fillLastRow&&t||this.options.equalRows?this.height:e,s=this.options.equalRows&&!t||this.options.fillLastRow?e/i:1;this.maxX=t?this.getCenterOffset():0;for(let t=0,e=this.rowItems.length;t<e;t++){let e=this.rowItems[t],n=i*e.ratio*s;e.x=this.maxX,e.y=this.rowY,this.maxX+=n+this.gutter,this.css(e.node,{height:i+"px",width:n+"px"})}this.maxY+=i+this.gutter,this.rowY+=t?0:i+this.gutter}getCenterOffset(){return!this.options.centerLastRow||this.options.fillLastRow?0:(1-this.getRowProgress())*this.grid.width*.5}getRowProgress(){return this.rowWidth/this.getMaxRowWidth()}getMaxRowWidth(){const t=(this.rowItems.length-1)*this.gutter;return this.grid.width-t}getClosestHeigth(){const t=this.rowItems.length,e=this.getRowProgress(),i=this.height/e,s=this.height/this.prevProg;return t>1&&Math.abs(s-this.height)<Math.abs(i-this.height)?(this.prevItem=this.rowItems.pop(),s):i}resetRow(){this.rowItems=[],this.rowWidth=0,this.prevProg=0,this.maxX=0,this.pushPrevItem()}pushPrevItem(){if(!this.prevItem)return;const t=this.prevItem;this.prevItem=null,this.getItemPosition(t)}}class S extends f{resetLayout(){this.x=0,this.y=0,this.maxY=0,this.maxX=0,this.placed=[],this.colYs=Array(this.columns).fill(0)}getItemPosition(t){const e=this.grid.width+this.gutter,i=e/this.columns,s=i*this.getItemCol(t);0!==this.x&&Math.floor(s+this.x)>e&&(this.equalColumns(),this.x=0,this.y=this.maxY,this.placed=[]),t.x=this.x,t.y=this.y,this.css(t.node,{width:Math.ceil(10*(s-this.gutter))/10+"px",height:""});const n=this.getSize(t.node);n.height||(n.height=3*i/4,this.css(t.node,{height:n.height+"px"})),this.placed.push(t),this.maxY=Math.max(this.maxY,this.y+n.height+this.gutter),this.x+=s,this.lastItem&&0!==this.x&&this.equalColumns()}equalColumns(){this.options.equalColumns&&this.placed.forEach((t=>{this.css(t.node,{height:this.maxY-this.y-this.gutter+"px"})}))}}class I extends f{resetLayout(){this.x=0,this.y=0,this.maxY=0,this.maxX=0,this.colId=0,this.colYs=Array(this.columns).fill(0)}getItemPosition(t){const e=(this.grid.width+this.gutter)/this.columns,i=this.getItemCol(t),s=this[this.options.horizontalOrder?"getHorColPosition":"getTopColPosition"](i),n=i+s.col;this.css(t.node,{width:e*i-this.gutter+"px"});const o=this.getSize(t.node);o.height||(o.height=3*e/4);const h=s.y+o.height+this.gutter;for(let t=s.col;t<n;t++)this.colYs[t]=h;t.x=e*s.col,t.y=s.y,this.maxY=Math.max(this.maxY,s.y+o.height+this.gutter)}getTopColPosition(t){const e=this.getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}}getTopColGroup(t){if(t<2)return this.colYs;let e=[];const i=this.columns+1-t;for(var s=0;s<i;s++)e[s]=this.getColGroupY(s,t);return e}getColGroupY(t,e){if(e<2)return this.colYs[t];const i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)}getHorColPosition(t){let e=this.colId%this.columns;return t>1&&e+t>this.columns&&(e=0),this.colId=e+t,{col:e,y:this.getColGroupY(e,t)}}}class E{constructor(t){const e={x:0,y:0,width:0,height:0};for(let t in e)this[t]=e[t];for(let e in t)this[e]=t[e]}contains(t){const e=t.width||0,i=t.height||0;return this.x<=t.x&&this.y<=t.y&&this.x+this.width>=t.x+e&&this.y+this.height>=t.y+i}overlaps(t){const e=this.x+this.width,i=this.y+this.height,s=t.x+t.width,n=t.y+t.height;return this.x<s&&e>t.x&&this.y<n&&i>t.y}getMaximalFreeRects(t){if(!this.overlaps(t))return!1;let e,i=[];const s=this.x+this.width,n=this.y+this.height,o=t.x+t.width,h=t.y+t.height;return this.y<t.y&&(e=new E({x:this.x,y:this.y,width:this.width,height:t.y-this.y}),i.push(e)),s>o&&(e=new E({x:o,y:this.y,width:s-o,height:this.height}),i.push(e)),n>h&&(e=new E({x:this.x,y:h,width:this.width,height:n-h}),i.push(e)),this.x<t.x&&(e=new E({x:this.x,y:this.y,width:t.x-this.x,height:this.height}),i.push(e)),i}canFit(t){return this.width>=t.width&&this.height>=t.height}}class L{reset(){const t={downwardLeftToRight:function(t,e){return t.y-e.y||t.x-e.x},rightwardTopToBottom:function(t,e){return t.x-e.x||t.y-e.y}};this.spaces=[],this.spaces.push(new E({x:0,y:0,width:this.width,height:this.height})),this.sorter=t[this.direct]||t.downwardLeftToRight}pack(t){for(let e=0;e<this.spaces.length;e++){let i=this.spaces[e];if(i.canFit(t)){this.placeInSpace(t,i);break}}}columnPack(t){for(let e=0;e<this.spaces.length;e++){let i=this.spaces[e];if(i.x<=t.x&&i.x+i.width>=t.x+t.width&&i.height>=t.height-.01){t.y=i.y,this.placed(t);break}}}rowPack(t){for(let e=0;e<this.spaces.length;e++){let i=this.spaces[e];if(i.y<=t.y&&i.y+i.height>=t.y+t.height&&i.width>=t.width-.01){t.x=i.x,this.placed(t);break}}}placeInSpace(t,e){t.x=e.x,t.y=e.y,this.placed(t)}placed(t){let e=[];for(let i=0;i<this.spaces.length;i++){let s=this.spaces[i],n=s.getMaximalFreeRects(t);n?e.push.apply(e,n):e.push(s)}this.spaces=e,this.mergeSortSpaces()}mergeSortSpaces(){this.mergeRects(this.spaces),this.spaces.sort(this.sorter)}addSpace(t){this.spaces.push(t),this.mergeSortSpaces()}mergeRects(t){let e=0,i=t[e];t:for(;i;){let s=0,n=t[e+s];for(;n;){if(n==i)s++;else{if(n.contains(i)){t.splice(e,1),i=t[e];continue t}i.contains(n)?t.splice(e+s,1):s++}n=t[e+s]}e++,i=t[e]}return t}}class A extends f{resetLayout(){if(this.maxY=0,this.maxX=0,this.packer||(this.packer=new L),"horizontal"===this.options.layout){const t=(this.grid.width+this.gutter)/this.columns,e=Math.floor(t/this.ratio)*this.options.rowsNumber;this.packer.width=1/0,this.packer.height=e+this.gutter,this.packer.direct="rightwardTopToBottom"}else this.packer.height=1/0,this.packer.width=this.grid.width+this.gutter,this.packer.direct="downwardLeftToRight";this.packer.reset()}getItemPosition(t){this.setRectSize(t),this.packer.pack(t),this.floatRect(t),this.setMaxXY(t)}setRectSize(t){const e=this.getItemCol(t),i=this.getItemRow(t),s=(this.grid.width+this.gutter)/this.columns,n=Math.floor(s)*e,o=Math.floor(s/this.ratio)*i;t.width=Math.min(n,this.packer.width),t.height=Math.min(o,this.packer.height),this.css(t.node,{width:Math.ceil(10*(s*e-this.gutter))/10+"px",height:o-this.gutter+"px"})}floatRect(t){const e=(this.grid.width+this.gutter)/this.columns;t.x=Math.round(t.x/e)*e}setMaxXY(t){this.maxX=Math.max(t.x+t.width,this.maxX),this.maxY=Math.max(t.y+t.height,this.maxY),t.width-=this.gutter,t.height-=this.gutter}}class _{constructor(t,e){this.id=t,this.base=500,this.instance=e}init(){this.style=document.createElement("style"),document.head.appendChild(this.style),this.sheet=this.style.sheet}destroy(){this.style.parentElement.removeChild(this.style)}handleEvent(t){const e="on"+t.type;this[e]&&this[e](t)}setFontSize(){const t=Math.ceil(this.width)/this.base*16;this.addRules(`.wpgb-grid-${this.id}[data-instance="${this.instance}"] .wpgb-card[data-fluid]`,{"font-size":`${t}px`})}addRules(t,e){const i=this.rulesExist(t,e);i?this.addRule(i,e):(e=this.buildRules(e))&&this.insertRules(t+"{"+e+"}")}rulesExist(t,e){for(let i=0,s=(e=this.sheet.cssRules).length;i<s;i++)if(e[i].selectorText===t)return e[i].style}addRule(t,e){if(e)for(let i in e)e.hasOwnProperty(i)&&(t.hasOwnProperty(i)&&t[i]===e[i]||t.setProperty(i,e[i]))}buildRules(t){let e="";if(!t)return e;for(let i in t)t.hasOwnProperty(i)&&""!==t[i]&&(e+=i+":"+t[i]+";");return e}insertRules(t){try{const e=this.sheet.cssRules.length;this.sheet.insertRule(t,e)}catch(t){return""}}}class P{constructor(t){this.element=t,this.interval=5e3}init(){this.rand=-1,this.clear(),this.query(),this.loop()}destroy(){this.clear()}clear(){clearInterval(this.timer)}query(){this.galleries=this.element.querySelectorAll(".wpgb-card-media-gallery[data-slideshow]")}loop(){this.galleries.length&&(this.timer=setInterval((()=>{this.randomize()}),this.interval))}randomize(){const{galleries:t}=this,e=t.length;let i=Math.floor(Math.random()*e);i===this.rand&&(i=(e+(i+1)%e)%e),this.rand=i,this.update()}update(){const t=this.galleries[this.rand];if(!t)return;let e=[...t.children];e=e.filter((t=>!t.hasAttribute("data-active")||(t.removeAttribute("data-active"),!1))),e[Math.floor(Math.random()*e.length)].setAttribute("data-active","")}}function M(t,e){let i=0;return function(){const s=(new Date).getTime();if(!(s-i<e))return i=s,t(...arguments)}}class C{constructor(t,e,i){this.callback=i,this.element=e,this.source=t,this.image=new Image,this.load()}load(){const t="decode"in this.image;t||this.bindEvents(),this.image.src=this.source,this.isComplete()?this.onload(!0):t&&this.image.decode().then((()=>this.onload(!0))).catch((()=>this.onload(!1)))}onload(t){this.callback(this.element,this.source,t),this.destroy()}isComplete(){return this.image.complete&&this.image.naturalWidth}destroy(){this.bindEvents(!1),this.callback=null,this.element=null,this.source=null,this.image=null}bindEvents(){let t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];t=t?"addEventListener":"removeEventListener",this.image[t]("load",this),this.image[t]("error",this)}handleEvent(t){this.onload("load"===t.type)}}const k={selector:"[data-wpgb-src]",source:"data-wpgb-src",thumb:"data-wpgb-thumb",spinner:"wpgb-lazy-spinner",treshold:300};const D=class extends s{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),this.options={...k,...e}}query(t){this.items=[...t.querySelectorAll(this.options.selector)]}addItems(t){this.unObserve(),this.query(t),this.observe()}canObserve(){return"IntersectionObserver"in window&&"isIntersecting"in window.IntersectionObserverEntry.prototype}observe(){if(this.items.length){if(this.canObserve())return this.observer(),void this.items.forEach((t=>this.intersection.observe(t)));this.bindEvents(),requestAnimationFrame((()=>setTimeout((()=>this.check()))))}}unObserve(){if(this.intersection)return this.intersection.disconnect(),void delete this.intersection;this.bindEvents(!1)}observer(){this.intersection=new IntersectionObserver(((t,e)=>{t.forEach(((t,i)=>{if(!t.isIntersecting)return;let s=this.items.indexOf(t.target);this.items.splice(s,1),e.unobserve(t.target),this.loadImage(t.target)}))}),{rootMargin:this.options.treshold+"px"})}bindEvents(){let t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];t=t?"addEventListener":"removeEventListener",window[t]("load",this),window[t]("resize",this),document[t]("scroll",this),window[t]("orientationchange",this)}check(){this.items=this.items.filter(((t,e)=>!this.inView(t)||(this.loadImage(t),!1))),this.isComplete()}inView(t){const{top:e,bottom:i}=t.getBoundingClientRect(),s=window.innerHeight;return e>=this.options.treshold&&e<=s||i>=0&&i<=s}loadImage(t){const e=this.imageLoaded.bind(this),i=t.getAttribute(this.options.source),s=t.getAttribute(this.options.thumb);i&&(s&&(t.style.backgroundImage="url("+s+")"),t.removeAttribute(this.options.source),t.removeAttribute(this.options.thumb),this.emit("load",[i]),new C(i,t,e))}imageLoaded(t,e,i){if("IMG"===t.nodeName)t.src=e;else{if(t.parentNode){let i=document.createElement(t.tagName);i.className=t.className,i.style.backgroundImage="url("+e+")",i.classList.remove("wpgb-lazy-load",this.options.thumb,this.options.spinner),""===i.className&&i.removeAttribute("class"),t.parentNode.insertBefore(i,t.nextElementSibling)}setTimeout((()=>{t.parentNode&&t.parentNode.removeChild(t)}),600)}t.classList.remove(this.options.spinner),this.emit("loaded",[e,i])}isComplete(){this.items.length||this.bindEvents(!1)}handleEvent=M((t=>{this.check()}),60)},B={draggable:1,threshold:3,slideAlign:"center",groupCells:"50%",rightToLeft:0,initialIndex:0,contain:0,freeScroll:0,freeFriction:.075,friction:.285,attraction:.025,autoPlay:0,arrowShape:"M18,12 L10,20 L18,28 M10,20 L30,20",sliderSelector:".wpgb-viewport",pageDotsSelector:".wpgb-page-dots",prevButtonSelector:".wpgb-prev-button",nextButtonSelector:".wpgb-next-button",carouselClass:"wpgb-carousel",draggingClass:"wpgb-is-dragging",pageDotAriaLabel:"Page dot %d"};let R=!1;try{let t=Object.defineProperty({},"passive",{get:()=>R=!0});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(t){}class O extends s{attachPointers(t){this.pointer={},this.pointedElement=t,this.passiveListener=R,this._getEvents(),this._unifyEvents(),this._bindEvents()}_getEvents(){this.events={down:"mousedown",move:"mousemove",up:"mouseup"},window.PointerEvent?this.events={down:"pointerdown",move:"pointermove",up:"pointerup",cancel:"pointercancel"}:"ontouchstart"in window&&(this.events={down:"touchstart",move:"touchmove",up:"touchend",cancel:"touchcancel"})}_unifyEvents(){for(let t in this.events)this[`on${this.events[t]}`]=this._handleEvent}_bindEvents(){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t=t?"add":"remove",(arguments.length>0&&void 0!==arguments[0]?arguments[0]:["down"]).forEach((e=>{("down"===e?this.pointedElement:window)[`${t}EventListener`](this.events[e],this,!!this.passiveListener&&{passive:!1})}))}handleEvent(t){const e="on"+t.type;this[e]&&this[e](t)}_handleEvent(t){if(this.isPointer(t)&&this.hasPointer(t))for(let e in this.events)if(this.events[e]===t.type)return this[`_pointer${e}`](t)}isPointer(t){return!t.button||t.button<1}hasPointer(t){const e=t.changedTouches||[t];for(let t=0;t<e.length;t++){let i=e[t].pointerId||e[t].identifier,s=this.pointer.pointerId||this.pointer.identifier;if(i===s||void 0===s)return this.pointer=e[t],!0}return!1}_pointerdown(t){this._bindEvents(["move","up","cancel"]),this._callBack("pointerDown",t)}_pointermove(t){this._callBack("pointerMove",t)}_pointerup(t){this._callBack("pointerUp",t),this._pointerDone(t)}_pointercancel(t){this._callBack("pointerCancel",t),this._pointerDone(t)}_pointerDone(t){this._callBack("pointerDone",t),this._pointerReset()}_pointerReset(){this._bindEvents(["move","up","cancel"],!1),this.pointer={}}_callBack(t,e,i){this[t]?this[t](e,this.pointer,i):this.emit(t,[e,this.pointer,i])}}const F={nodes:["TEXTAREA","SELECT","OPTION","INPUT"],types:["checkbox","radio","button","submit","image","file"]};class z extends O{drag(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{x:3,y:3},i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.threshold=e,this.attachPointers(t),t.addEventListener("click",this),i&&window.addEventListener("touchmove",this.preventScrolling.bind(this),!!this.passiveListener&&{passive:!1})}canDragTarget(t){let{target:{nodeName:e,type:i}}=t;return!(F.nodes.includes(e)||F.types.includes(i))}canDragStart(t,e){const{x:i,y:s}=this.threshold,n=180*Math.atan2(Math.abs(e),Math.abs(t))/Math.PI,o=Math.sqrt(t**2+e**2);return!1!==i&&o>i&&n<=45||!1!==s&&o>s&&n>=45}canPreventDefault(t){let{type:e,pointerType:i}=t;return"touchstart"!==e&&"touch"!==i}getPointerVector(t){return{x:t.pageX-this.pointerStart.x,y:t.pageY-this.pointerStart.y}}pointerDown(t,e){this.preventClick=!1,this.canDragTarget(t)?(this.pointerStart={x:e.pageX,y:e.pageY},this.canPreventDefault(t)&&t.preventDefault(),this._callBack("dragDown",t)):this._pointerReset()}pointerMove(t,e){const{x:i,y:s}=this.getPointerVector(e);this.dragging?(t.preventDefault(),this._callBack("dragMove",t,{x:i,y:s})):this.canDragStart(i,s)&&(this.pointerStart.x+=i,this.pointerStart.y+=s,this.preventClick=!0,this.dragging=!0,this._callBack("dragStart",t,this.getPointerVector(e)))}pointerUp(t,e){this.dragging&&this._callBack("dragEnd",t,this.getPointerVector(e))}pointerCancel(t,e){this.dragging&&this._callBack("dragCancel",t,this.getPointerVector(e))}pointerDone(t,e){this._callBack("dragUp",t,this.getPointerVector(e)),this.dragging&&(this.dragging=!1,this._callBack("dragDone",t,this.getPointerVector(e)))}onclick(t){this.preventClick&&t.preventDefault()}preventScrolling(t){this.dragging&&t.preventDefault()}}class T extends z{initDragger(){this.drag(this.element.parentElement,{x:this.options.threshold,y:!1},!0)}dragDown(){this.element.classList.add(this.options.draggingClass),this.isPointerDown=!0,this.dragX=this.x}dragStart(t,e){this.startDragX=this.x,this.startAnimation(),this.emit("dragStart",[t])}dragMove(t,e,i){const s=Math.max(-this.getFirstSlide().x,this.startDragX),n=Math.min(-this.getLastSlide().x,this.startDragX);this.prevDragX=this.dragX,this.dragTime=Date.now();let o=this.options.rightToLeft?-1:1,h=this.startDragX+i.x*o;h=h>s?(h+s)/2:h,h=h<n?(h+n)/2:h,this.dragX=h,this.emit("dragMove",[t,i])}dragUp(t,e){const i=this.selectedIndex;if(this.options.freeScroll&&(this.isFreeScrolling=!0),this.isAnimating&&this.getClosestIndex(),this.options.freeScroll){const t=this.getRestingPosition(),e=-t>this.getFirstSlide().x,i=-t<this.getLastSlide().x;this.isFreeScrolling=e&&i}else this.selectedIndex===i&&this.dragBoost();this.selectSlide(i),this.updateUI(),this.element.classList.remove(this.options.draggingClass),this.isPointerDown=!1,this.dragging&&this.emit("dragEnd",[t])}getClosestIndex(){const{slides:t,selectedIndex:e,selectedSlide:{x:i}}=this,s=this.getRestingPosition(),n=Math.sign(-s-i);if(!n)return;let o=1/0,h=Math.abs(-s-i),r=e;for(;h<=o&&(r+=n,o=h,t[r]);)h=Math.abs(-s-t[r].x);this.selectedIndex=r-n}dragBoost(){const{dragX:t,prevDragX:e,dragTime:i}=this,s=-t-this.selectedSlide.x,n=e-t;!i||Date.now()-i>100||(s>0&&n>0?this.selectedIndex+=1:s<0&&n<0&&(this.selectedIndex-=1))}dragEnd(){}dragDone(){}dragCancel(){}}class q extends T{getFrictionFactor(){return 1-this.options[this.isFreeScrolling?"freeFriction":"friction"]}getRestingPosition(){return this.x+this.velocity/(1-this.getFrictionFactor())}applyPhysics(){this.x+=this.velocity,this.velocity*=this.getFrictionFactor()}applyForce(t){this.velocity+=t}applyDragForce(){if(!this.isPointerDown)return;const t=this.dragX-this.x-this.velocity;this.applyForce(t)}applyAttraction(){if(this.isPointerDown||this.isFreeScrolling)return;const t=(-1*this.selectedSlide.x-this.x)*this.options.attraction;this.applyForce(t)}}class W extends q{startAnimation(){this.isAnimating||(this.restingFrames=0,this.isAnimating=!0,this.animate())}animate(){this.prevX=this.x,this.applyDragForce(),this.applyAttraction(),this.applyPhysics(),this.moveSlider(),this.settle(),this.isAnimating&&(this.frame=requestAnimationFrame((()=>this.animate())))}moveSlider(){let{x:t,slider:{style:e}}=this;t=this.options.rightToLeft?-t:t,this.isAnimating?e.transform=`translate3d(${t}px,0,0)`:(t=Math.round(t),e.transform=`translateX(${t}px)`),this.progress()}settleSlider(){this.x=-this.selectedSlide.x,this.velocity=0,this.moveSlider()}progress(){if(this.x===this.prevX)return;const t=-this.x-this.getFirstSlide().x,e=t/this.slidesWidth;this.emit("scroll",[e,t])}settle(){this.isPointerDown||Math.round(100*this.x)!==Math.round(100*this.prevX)||this.restingFrames++,this.restingFrames>2&&(this.isAnimating=!1,this.isFreeScrolling?this.moveSlider():this.settleSlider(),delete this.isFreeScrolling,this.emit("settle",[this.selectedIndex]))}}class X extends W{bindEvents(){let t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];t=t?"addEventListener":"removeEventListener",this.slider[t]("click",this),this.prevButton&&this.prevButton[t]("click",this),this.nextButton&&this.nextButton[t]("click",this),this.pageDots&&this.pageDots[t]("click",this),this.options.autoPlay&&(this.layout.element[t]("mouseenter",this),this.layout.element[t]("mouseleave",this)),window[t]("load",this),window[t]("keydown",this),window[t]("resize",this),window[t]("orientationchange",this)}onclick(t){switch(t.currentTarget){case this.prevButton:t.stopPropagation(),this.previous();break;case this.nextButton:t.stopPropagation(),this.next();break;case this.pageDots:const e=Array.isArray(this.dots)?this.dots.indexOf(t.target):null;this.select(e);break;default:const i=t.target.closest("a, input, select, textarea, checkbox, radio, button, submit, file");if(!i&&this.focus(),this.isAnimating)t.preventDefault(),t.stopPropagation();else if(i)return void this.element.blur()}}focus(){document.activeElement!==this.element&&this.element.focus({preventScroll:!0})}onmouseenter(){clearInterval(this.player)}onmouseleave(){this.autoPlay()}onkeydown(t){const{keyCode:e}=t,{rightToLeft:i}=this.options,{activeElement:s}=document;if(s!==this.element&&t.target.parentElement!==this.pageDots)return;const n=this.dots&&this.dots.includes(s);37===e?(this[i?"next":"previous"](),n&&this.dots[this.selectedIndex].focus()):39===e&&(this[i?"previous":"next"](),n&&this.dots[this.selectedIndex].focus())}onload(t){this.resize(),this.reposition()}onresize=w((t=>{this.dragging||(this.resize(t),this.reposition())}),100);onorientationchange(t){this.resize(),this.reposition()}}class N extends X{updateSlides(){this.viewportWidth=this.layout.grid.width,this.cells=[...this.layout.items],this.getcells(),this.setSlides(),this.setSlider(),this.filterSlides(),this.selectSlide()}getcells(){const{options:{slideAlign:t}}=this;"left"===t?this.cells=this.cells.sort(((t,e)=>t.x-e.x)):"center"===t?this.cells=this.cells.sort(((t,e)=>t.x+t.width/2-(e.x+e.width/2))):"right"===t&&(this.cells=this.cells.sort(((t,e)=>t.x+t.width-(e.x+e.width))))}setSlides(){let t;this.slides=[],this.cells.forEach(((e,i)=>{let{x:s,width:n,node:o}=e;this.slideCanFit(t,e)||this.slides.push(t={cells:[],width:0,x:s}),s<t.x&&(t.x=s),t.width=s+n-t.x,t.cells.push(o)}),this)}setSlider(){const t=this.getFirstSlide(),e=this.getLastSlide();this.sliderWidth=e.x+e.width-t.x,this.slideableWidth=Math.max(0,this.sliderWidth-this.viewportWidth)}slideCanFit(t,e){if(!t)return!1;const i=Math.floor(e.x+e.width-t.x);return i>Math.round(this.viewportWidth)?void 0:this.groupSlides(t.cells.length,i)}groupSlides(t,e){const{viewportWidth:i,options:{groupCells:s}}=this;if(!s)return!1;if("number"==typeof s)return t<parseInt(s,10);const n=s.match(/^(\d+)%$/),o=n?parseInt(n[1],10)/100:1;return e<=Math.round(i*Math.min(1,o))}filterSlides(){let t=[];this.slides=this.slides.filter((e=>{this.offsetSlide(e),this.containSlide(e);let i=Math.round(e.x);if(!t[i])return t[i]=e;t[i].cells.push(...e.cells),t[i].width+=e.width})),this.slidesWidth=this.getLastSlide().x-this.getFirstSlide().x}offsetSlide(t){const{viewportWidth:e,options:{slideAlign:i}}=this;"center"===i&&(t.x+=(t.width-e)/2),"right"===i&&(t.x+=t.width-e)}containSlide(t){const{slideableWidth:e,sliderWidth:i}=this;this.options.contain&&(t.x<i&&(t.x-=this.getFirstSlide().x,t.x=Math.max(0,t.x)),t.x>e&&(t.x=e))}selectSlide(t){this.selectedIndex=Math.max(0,Math.min(this.selectedIndex,this.slides.length-1)),this.selectedSlide=this.slides[this.selectedIndex],this.isAnimating&&(this.emit("select",[this.selectedIndex]),this.selectedIndex!==t&&this.emit("change",[this.selectedIndex]))}getFirstSlide(){return this.slides[0]}getLastSlide(){return[...this.slides].pop()}}const Y=class extends N{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;super(),this.options={...B,...t},this.layout=e,this.element=e.element.querySelector(this.options.sliderSelector),this.slider=this.element.firstElementChild,this.pageDots=e.element.querySelector(this.options.pageDotsSelector),this.prevButton=e.element.querySelector(this.options.prevButtonSelector),this.nextButton=e.element.querySelector(this.options.nextButtonSelector)}init(){this.element.tabIndex=0,this.element.classList.add(this.options.carouselClass),this.updateSlides(),this.setDots();const t=this.options.initialIndex||0,e=this.slides.length-1,i=Math.max(0,Math.min(t,e));this.cells&&this.cells.length&&this.cells.forEach((t=>t.node.setAttribute("aria-hidden",!0))),this.select(i,!0),this.options.draggable&&this.initDragger(),this.bindEvents(),this.autoPlay()}destroy(){this.bindEvents(!1),this._bindEvents(["down","move","up","cancel"],!1),this.isAnimating=!1,cancelAnimationFrame(this.frame),this.cells&&(this.cells.forEach((t=>{t.node.removeAttribute("aria-hidden")})),this.cells=[],this.slides=[]),this.dots&&(this.dots.forEach((t=>{this.pageDots.removeChild(t)})),this.dots=[],this.pageDots.removeAttribute("role")),this.prevButton&&(this.prevButton.disabled=!0,this.prevButton.hidden=!0),this.nextButton&&(this.nextButton.disabled=!0,this.nextButton.hidden=!0),this.slider.removeAttribute("style"),this.element.removeAttribute("style"),this.element.removeAttribute("tabIndex"),this.element.classList.remove(this.options.carouselClass)}previous(){this.select(this.selectedIndex-1)}next(){this.select(this.selectedIndex+1)}select(t,e){const i=this.selectedIndex;this.cells.length&&this.slides[t]&&(this.isFreeScrolling=!1,this.selectedIndex=t,this.selectedSlide=this.slides[t],this.updateUI(),e?this.settleSlider():this.startAnimation(),this.emit("select",[t]),t!==i&&this.emit("change",[t]))}autoPlay(){this.options.autoPlay&&(this.player=setInterval((()=>{if(this.hovered)return;const t=this.selectedIndex+1,e=this.slides.length,i=(e+t%e)%e;this.select(i)}),this.options.autoPlay))}setDots(){if(!this.cells.length||!this.pageDots)return;this.dots||(this.dots=[]);let t=this.slides.length-this.dots.length;t>0?this.addDots(t):t<0&&this.removeDots(t),this.dots=[...this.pageDots.children]}addDots(t){const e=document.createDocumentFragment(),i=this.dots.length;for(let s=i;s<i+t;s++){let t=document.createElement("li"),i=this.options.pageDotAriaLabel.replace("%d",s+1);t.className="wpgb-dot",t.setAttribute("role","tab"),t.setAttribute("tabindex",-1),t.setAttribute("aria-selected",!1),t.setAttribute("aria-label",i),e.appendChild(t)}this.pageDots.appendChild(e),this.pageDots.setAttribute("role","tablist")}removeDots(t){const e=this.dots.length-1;for(let i=e;i>e+t;i--)this.pageDots.removeChild(this.dots[i])}updateUI(){this.cells.length&&(this.updateDots(),this.updateCells(),this.updateButtons())}updateButtons(){this.prevButton&&(this.prevButton.disabled=!1,this.prevButton.hidden=!1,this.selectedSlide===this.getFirstSlide()&&(this.prevButton.disabled=!0)),this.nextButton&&(this.nextButton.disabled=!1,this.nextButton.hidden=!1,(this.selectedSlide===this.getLastSlide()||this.slides.length<2)&&(this.nextButton.disabled=!0))}updateCells(){let{cell:t,cells:e,selectedIndex:i}=this;e.length&&(t&&t.forEach((t=>{t.setAttribute("aria-hidden",!0)})),t=this.selectedSlide.cells,t&&(t.forEach((t=>{t.setAttribute("aria-hidden",!1)})),this.cell=t))}updateDots(){let{dot:t,dots:e,selectedIndex:i}=this;t&&(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex",-1)),e&&e.length&&(t=e[i],t.setAttribute("aria-selected",!0),t.setAttribute("tabindex",0),this.dot=t)}reposition(){this.select(this.selectedIndex,!0)}resize(t){const e=this.viewportWidth;this.updateSlides(),t&&e===this.viewportWidth||(this.setDots(),this.updateUI())}},G={class:"wpgb-card-hidden",treshold:0,delay:300};class j extends s{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),this.options={...G,...t},this.items=[],this.queue=[]}addItems(t){t.length&&(this.unObserve(),this.items=[...this.items,...t],this.items=this.items.filter((t=>!this.queue.includes(t)&&t.classList.contains(this.options.class))),this.observe())}canObserve(){return"IntersectionObserver"in window&&"isIntersecting"in window.IntersectionObserverEntry.prototype}observe(){if(this.items.length){if(this.canObserve())return this.observer(),void this.items.forEach((t=>this.intersection.observe(t)));this.bindEvents(),requestAnimationFrame((()=>setTimeout((()=>this.check()))))}}unObserve(){if(this.intersection)return this.intersection.disconnect(),void delete this.intersection;this.bindEvents(!1)}observer(){this.intersection=new IntersectionObserver(((t,e)=>{t.forEach(((t,i)=>{if(!t.isIntersecting)return;let s=this.items.indexOf(t.target);this.items.splice(s,1),e.unobserve(t.target),this.addToQueue(t.target)}))}),{rootMargin:this.options.treshold+"px"})}bindEvents(){let t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];t=t?"addEventListener":"removeEventListener",window[t]("load",this),window[t]("resize",this),document[t]("scroll",this),window[t]("orientationchange",this)}check(){this.items=this.items.filter(((t,e)=>!this.inView(t)||(this.addToQueue(t),!1))),this.isComplete()}inView(t){const{top:e,bottom:i}=t.getBoundingClientRect(),s=window.innerHeight;return e>=this.options.treshold&&e<=s||i>=0&&i<=s}addToQueue(t){this.queue.push(t),this.isProcessing||(this.options.delay>0?this.processQueue():requestAnimationFrame((()=>this.reveal())))}processQueue(){if(!this.queue.length)return Date.now()-this.time<this.options.delay?void requestAnimationFrame((()=>this.processQueue())):(delete this.isProcessing,void delete this.time);this.isProcessing=!0,requestAnimationFrame((()=>this.loop()))}loop(){const t=Date.now();t-this.time<this.options.delay||(this.time=t,this.reveal()),this.processQueue()}reveal(){if(!this.queue.length)return;const t=this.queue.shift();t.classList.remove(this.options.class),this.emit("revealed",[t])}isComplete(t){this.items.length||this.bindEvents(!1)}handleEvent=M((()=>{this.check()}),60)}const V={},Q={},U={grid:".wp-grid-builder",items:".wpgb-card",layout:"masonry"};class $ extends s{setEvents(){V[this.instance]={initGrid:t=>this._initGrid(t),beforeLayout:t=>this._beforeLayout(t),itemsAdded:t=>this._itemsAdded(t),itemsRemoved:t=>this._itemsRemoved(t),itemsAppended:(t,e)=>this._itemsAppended(t,e),onProgress:(t,e)=>this._onProgress(t,e)}}bindEvents(){let t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];const e=V[this.instance];t=t?"on":"off",this.grid&&(this.grid[t]("init",e.initGrid),this.grid[t]("beforeLayout",e.beforeLayout),this.grid[t]("added",e.itemsAdded),this.grid[t]("removed",e.itemsRemoved),this.facets&&this.facets[t]("appended",e.itemsAppended)),this.carousel&&this.carousel[t]("scroll",e.onProgress)}_initGrid(t){this.reveal&&this.reveal.addItems(t),this.lazyLoad&&(this.lazyLoad.addItems(this.element),this.reveal&&!this.reveal.canObserve()&&this.reveal.on("revealed",(()=>setTimeout((()=>this.lazyLoad.check()),150))))}_itemsAppended(t,e){"append"!==e&&this.grid.removeItems(),this.grid.addItems(t),c()}_itemsRemoved(t){this.lazyLoad&&(this.lazyLoad.items=[]),this.reveal&&(this.reveal.items=[],this.reveal.queue=[]),"horizontal"===this.options.layout&&this.carousel&&this.carousel.select(0,!0)}_itemsAdded(t){this.slideShow.init(),this.lazyLoad&&this.lazyLoad.addItems(this.element),this.reveal&&this.reveal.addItems(t),"horizontal"===this.options.layout&&this.carousel&&(this.carousel.resize(),this.carousel.on("scroll",V[this.instance].onProgress))}_beforeLayout(t){const{gutter:e,columns:i,grid:s}=this.grid;this.styleSheet.width=(s.width+e)/i-e,this.styleSheet.setFontSize()}_onProgress(t,e){this.facets&&t>.8&&this.facets.loader&&this.facets.loader.onScroll&&(this.carousel.off("scroll",V[this.instance].onProgress),this.facets.loader.click())}}let H=0;class J extends ${constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(super(),t){if(t.instance)return Q[t.instance];this.element=t,this.options={...U,...e},this.htmlInit(),this.id=this.options.id,this.setInstance(),this.setEvents(),this.initGrid(),this.initCarousel(),this.initLazyLoad(),this.initReveal(),this.initDependencies(),this.bindEvents()}}setInstance(){this.instance=++H,this.element.instance=this.instance,Q[this.instance]=this}htmlInit(){let t=this.element.getAttribute("data-options");t&&(t=JSON.parse(t),this.options={...this.options,...t},this.element.removeAttribute("data-options"))}initGrid(){const{element:t,options:e}=this;e.isShadow||e.isTemplate||("masonry"===e.type?"horizontal"===e.layout?this.grid=new b(t,e):e.fitRows||e.equalColumns?this.grid=new S(t,e):this.grid=new I(t,e):"metro"===e.type?this.grid=new A(t,e):this.grid=new x(t,e))}initCarousel(){"horizontal"===this.options.layout&&(this.carousel=new Y(this.options,this.grid))}initLazyLoad(){this.options.lazyLoad&&(this.lazyLoad=new D(this.element))}initReveal(){this.options.reveal&&(this.reveal=new j({delay:this.options.transitionDelay}))}initDependencies(){const{element:t,options:e}=this,{lightbox:i}=window.wpgb_settings?wpgb_settings:{},s=`[data-instance="${this.instance}"] .wpgb-lightbox`;WP_Grid_Builder.Facets&&(this.facets=WP_Grid_Builder.Facets(t,e)),e.isShadow||e.isTemplate||(WP_Grid_Builder.Lightbox&&(this.lightbox=WP_Grid_Builder.Lightbox({...i,selector:s})),this.slideShow=new P(t),this.styleSheet=new _(e.id,this.instance))}toggleLayout(t,e){this.bindEvents(!1),this.grid&&this.grid.destroy(),this.carousel&&this.carousel.destroy(),this.options.type=t,this.options.layout=e,this.initGrid(),this.initCarousel(),this.bindEvents(),this.emit("beforeToggleLayout"),this.element.querySelector(".wpgb-viewport > div").className=`wpgb-${t}`,this.grid&&this.grid.init(),"horizontal"===e&&this.carousel.init()}init(){this.element&&(this.element.classList.add("wpgb-enabled"),this.element.setAttribute("data-instance",this.instance),window.WP_Grid_Builder.emit("init",[this]),this.styleSheet&&this.styleSheet.init(),this.facets&&this.facets.init(),this.grid&&this.grid.init(),this.carousel&&this.carousel.init(),this.lightbox&&this.lightbox.init(),this.slideShow&&this.slideShow.init())}destroy(){const t=Object.getOwnPropertyNames(this);if(this.element){this.grid&&this.grid.items.map((t=>t.node.classList.remove("wpgb-card-hidden"))),this.styleSheet&&this.styleSheet.destroy(),this.grid&&this.grid.destroy(),this.facets&&this.facets.destroy(),this.lightbox&&this.lightbox.destroy(),this.slideShow&&this.slideShow.destroy(),this.carousel&&this.carousel.destroy(),this.lazyLoad&&this.lazyLoad.unObserve(),this.reveal&&this.reveal.unObserve(),this.element.classList.remove("wpgb-enabled"),this.element.setAttribute("data-options",JSON.stringify(this.options)),this.bindEvents(!1),delete WP_Grid_Builder.instances[this.instance],delete this.element.instance,delete V[this.instance],delete Q[this.instance];for(let e=0;e<t.length;e++)delete this[t[e]]}}}const Z={youtube:{regex:/(?:www\.)?youtu\.?be(?:\.com)?\/?.*?(?:watch|embed)?(?:.*v=|v\/|watch%3Fv%3D|\/)/i,play:{event:"command",func:"playVideo"},pause:{event:"command",func:"pauseVideo"}},vimeo:{regex:/(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/(?:[^\/]*)\/videos\/|album\/(?:\d+)\/video\/|video\/)?(\d+)/i,play:{event:"command",method:"play"},pause:{event:"command",method:"pause"}},wistia:{regex:/(?:www\.)?(?:wistia\.(?:com|net)|wi\.st)\/(?:(?:m|medias|projects)|embed\/(?:iframe|playlists))\/([a-zA-Z0-9_\-]+)/i,play:{event:"cmd",method:"play"},pause:{event:"cmd",method:"pause"}}},K={tags:["TEXTAREA","SELECT","OPTION","INPUT","AUDIO","VIDEO","A"],types:["checkbox","radio","button","submit","image","file"]};class tt extends O{constructor(){super(),this.attachPointers(document),document.addEventListener("click",this,!0),document.addEventListener("play",this,!0)}pointerDown(t,e){this.move=!1,this.pointerStart={x:e.pageX,y:e.pageY}}pointerMove(t,e){const i=e.pageX-this.pointerStart.x,s=e.pageY-this.pointerStart.y;!this.move&&(Math.abs(i)>1||Math.abs(s)>1)&&(this.move=!0)}pointerEnd(){}pointerCancel(){}pointerDone(){}onplay(t){let{target:e}=t;e&&e.closest(".wpgb-card")&&this.pauseAll(e)}onclick(t){if(t.button||!t.target||this.move)this.move=!1;else if(t.target.closest(".wpgb-handle-lb"))this.pauseAll();else if(this.isClickable(t))if(t.target.closest(".wpgb-card-media-button")){const e=t.target.closest(".wpgb-card");if(!e)return;this.onLightboxClick(t,e),this.onPlayButtonClick(t,e)}else t.target.closest("[data-action]")&&this.onActionLink(t)}isClickable(t){const{type:e}=t.target,{tags:i,types:s}=K,n=t.target.closest(i.join(","));return!(n&&!n.classList.contains("wpgb-card-media-button")||s.includes(e))}onActionLink(t){const e=t.target.closest("[data-action]").querySelector(".wpgb-card-layer-link");e&&e.click()}onLightboxClick(t,e){let i=e.querySelector("[data-active] .wpgb-handle-lb");i||(i=e.querySelector(".wpgb-handle-lb")),i&&(t.preventDefault(),t.stopPropagation(),i.click())}onPlayButtonClick(t,e){const i=e.querySelector(".wpgb-card-media-player > *:not(div), .wpgb-card-media-player .wpgb-card-media-iframe");i&&(t.preventDefault(),t.stopPropagation(),this.pauseAll(i),this.player=i,this.play())}play(){"AUDIO"===this.player.nodeName||"VIDEO"===this.player.nodeName?(this.revealPoster(),this.player.controlsList="nodownload",this.player.play()):this.playIframe(),this.reveal()}revealPoster(){const t=this.player.previousElementSibling;t&&t.getAttribute("data-wpgb-poster")&&(t.style.backgroundImage="url("+t.getAttribute("data-wpgb-poster")+")",t.removeAttribute("data-wpgb-poster"))}playIframe(){const t=this.getIframeProvider();t?this.player.contentWindow.postMessage(JSON.stringify(t.play),"*"):this.createIframe()}pause(){"AUDIO"===this.player.nodeName||"VIDEO"===this.player.nodeName?this.player.pause():this.pauseIframe(),this.hide()}pauseIframe(){const t=this.getIframeProvider();t?this.player.contentWindow.postMessage(JSON.stringify(t.pause),"*"):this.removeIframe()}pauseAll(t){const e=document.querySelectorAll(".wpgb-card audio, .wpgb-card video, .wpgb-card iframe");for(let i=0,s=e.length;i<s;i++){let s=e[i];s!==t&&(s===this.player?this.pause():"IFRAME"!==s.nodeName&&s.pause())}}createIframe(){const t=document.createElement("iframe");t.className=this.player.className,t.src=this.player.getAttribute("data-src"),t.setAttribute("frameborder",0),t.setAttribute("allow","autoplay"),t.setAttribute("allowfullscreen",""),this.player.parentElement.replaceChild(t,this.player),this.player=t}removeIframe(){const t=document.createElement("div");t.className=this.player.className,t.setAttribute("data-src",this.player.src),this.player.removeAttribute("src"),this.player.parentElement.replaceChild(t,this.player),this.player=t}getIframeProvider(){if(this.player.src)for(var t in Z){if(!Z.hasOwnProperty(t))continue;if(this.player.src.match(Z[t].regex))return Z[t]}}reveal(){this.player.closest(".wpgb-card").classList.add("wpgb-card-playing")}hide(){this.player.closest(".wpgb-card").classList.remove("wpgb-card-playing")}}let et=0;function it(){const e=document.querySelectorAll(".wp-grid-builder:not(.wpgb-template)");e&&e.forEach((t=>{WP_Grid_Builder.instances[++et]=new J(t)})),new tt,t("wpgb.loaded")}WP_Grid_Builder.unsupported?function(){const t=document.querySelectorAll(".wpgb-card"),e=document.querySelectorAll(".wp-grid-builder");t&&t.forEach((t=>{let e=t.querySelector(".wpgb-card-hidden .wpgb-card-wrapper"),i=t.querySelectorAll("[data-wpgb-src]");e&&(e.style.visibility="visible",e.style.transform="none",e.style.opacity=1),i.forEach((t=>{t.style.backgroundImage="url("+t.getAttribute("data-wpgb-src")+")",t.className=""}))})),e&&e.forEach((t=>t.removeAttribute("data-options")))}():(window.WP_Grid_Builder.instantiate=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.instances[++et]=new J(t,e)},e((function(){const t=wpgb_settings.hasFacets,e=wpgb_settings.hasLightbox,i=!t||t&&WP_Grid_Builder.Facets,s=!e||e&&WP_Grid_Builder.Lightbox;i&&s?it():!i&&s?window.addEventListener("wpgb.facets.loaded",it):i&&!s?window.addEventListener("wpgb.lightbox.loaded",it):(window.addEventListener("wpgb.facets.loaded",(()=>window.addEventListener("wpgb.lightbox.loaded",it))),window.addEventListener("wpgb.lightbox.loaded",(()=>window.addEventListener("wpgb.facets.loaded",it))))})))})()})();