1!function(){var t={60248:function(t){var e,i;e=ThriveGlobal.$j,i=TCB_Front,t.exports=class{constructor(t){this.gallery=t,this.$gallery=t.$element,this.imageCount=this.$gallery.find(".tve_image_caption").length,this.animating=!1,this.isOpen=!1,this.render()}render(){this.$overlay=e(`\n\t\t\t\t<div class="tcb-gallery-overlay">\n\t\t\t\t\t<div class="tcb-gallery-wrapper"></div>\n\t\t\t\t\t<div class="tcb-g-count tcb-gl-ctrl-mob">\n\t\t\t\t\t\t<div class="tcb-gl-ctrl-wrp">\n\t\t\t\t\t\t\t<span class="tcb-mob-text"></span>\n\t\t\t\t\t\t\t<span class="tcb-img-count"></span>\n\t\t\t\t\t\t\t<span class="tcb-cap-txt"></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button class="tcb-nav-prev tcb-gl-ctrl">${i.icons.get("arrow-left")}</button>\n\t\t\t\t\t<button class="tcb-nav-next tcb-gl-ctrl">${i.icons.get("arrow-right")}</button>\n\t\t\t\t\t<button class="tcb-nav-close tcb-gl-ctrl-mob">${i.icons.get("cross")}</button>\n\t\t\t\t</div>\n\t\t\t`).appendTo(e("body")),this.$wrapper=this.$overlay.find(".tcb-gallery-wrapper"),this.$wrapper.css({width:100*this.imageCount+"%"})}init(){this.currentImageIndex=0,this.$gallery.find(".tve_image_caption").each(((t,i)=>{const a=e(i).find(".tve_image_frame")[0];e(i).find("a").removeClass("tve-jump-scroll"),a&&a.addEventListener("click",(t=>{this.isOpen=!0,this.$overlay.show(0).addClass("g-v"),this.showImage(parseInt(i.dataset.index),!1),t.preventDefault()})),this.createGalleryItem(i)})),this.$overlay.find(".tcb-nav-prev").on("click",this.showPrev.bind(this)),this.$overlay.find(".tcb-nav-next").on("click",this.showNext.bind(this)),this.$overlay.find(".tcb-nav-close").on("click",this.close.bind(this)),this.$wrapper.on("click",(t=>{"IMG"!==t.target.tagName&&this.close()})),this.$wrapper.length&&this.$wrapper.swipe({swipeLeft:this.showNext.bind(this),swipeRight:this.showPrev.bind(this),swipeUp:()=>{this.isOpen=!1,this.$overlay.removeClass("g-v").hide()},swipeDown:function(){return!1}}),e("html").off("keydown.gallery").on("keydown.gallery",(t=>{if(this.isOpen)switch(t.keyCode){case 37:this.showPrev();break;case 39:this.showNext();break;case 27:this.close()}}))}close(){this.isOpen=!1,this.$gallery.addClass(this.getAnimationsClasses()),this.$overlay.removeClass("g-v").hide()}createGalleryItem(t){if(!t.classList.contains("gallery-clicker")){const a=t.querySelector("img");e(`<div class="tve-g-image-wrapper">\n\t\t\t\t\t\t<div class="tcb-caption-wrapper tcb-loading">\n\t\t\t\t\t\t\t<button class="tcb-nav-close">${i.icons.get("cross")}</button>\n\t\t\t\t\t\t\t<img \n\t\t\t\t\t\t\t\t\tloading="lazy"\n\t\t\t\t\t\t\t\t\tdata-pos="${t.getAttribute("data-position")}" \n\t\t\t\t\t\t\t\t\tdata-caption="${t.getAttribute("data-caption")}" \n\t\t\t\t\t\t\t\t\tdata-index="${t.getAttribute("data-index")}" \n\t\t\t\t\t\t\t\t\tdata-src="${a.dataset.src}" alt=""/>\n\t\t\t\t\t\t\t<div class="tcb-caption"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="tcb-image-loader">${TCB_Front.icons.get("spinner9")}</div>\n\t\t\t\t\t</div>`).appendTo(this.$wrapper)}}showImage(t,e){this.$gallery.removeClass(this.getAnimationsClasses()),this.$wrapper.toggleClass("g-n-a",!e);const i=this.$wrapper.find(`img[data-index=${t}]`),a="true"===this.$gallery.attr("data-caption-lightbox"),s=i.attr("data-caption")||"",n=i.attr("data-pos");i.parent().hasClass("tcb-loading")&&i.on("load",(()=>{i.parent().removeClass("tcb-loading")})),i.attr("src",i.attr("data-src")),this.$wrapper.css({left:`-${100*t}%`}),this.currentImageIndex=t,this.$overlay.find(".tcb-img-count").text(n),this.$overlay.find(".tcb-caption").text(a&&s.length?s:""),this.$overlay.find(".tcb-mob-text").text(s)}showNext(){this.animating||(this.currentImageIndex<this.imageCount-1?this.showImage(this.currentImageIndex+1,!0):(this.$wrapper.addClass("g-n-a").css("left","100%"),this.animating=!0,setTimeout((()=>{this.showImage(0,!0),this.animating=!1}),20)))}showPrev(){this.animating||(this.currentImageIndex>0?this.showImage(this.currentImageIndex-1,!0):(this.$wrapper.addClass("g-n-a").css("left",-100*this.imageCount+"%"),this.animating=!0,setTimeout((()=>{this.showImage(this.imageCount-1,!0),this.animating=!1}),20)))}
1getAnimationsClasses(){const t=[];if(this.$gallery.hasClass("tve_evt_manager_listen")){t.push("tve_evt_manager_listen","tve_ea_thrive_animation");const e=this.$gallery[0].className.match(/tve_et_\S*|tve_ea_\S*|tve_anim_\S*/g);null!==e&&(t.push(...e),t.includes("tve_ea_thrive_tooltip")&&t.splice(t.indexOf("tve_ea_thrive_animation"),1))}return[...new Set(t)].join(" ")}}}},e={};function i(a){var s=e[a];if(void 0!==s)return s.exports;var n=e[a]={exports:{}};return t[a](n,n.exports,i),n.exports}void 0===TCB_Front.js_modules["image-gallery"]&&TCB_Front.setModuleLoadedStatus("image-gallery",!1),function(t,e){if(TCB_Front.isModuleLoaded("image-gallery"))return;const a=i(60248),s=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:TCB_Front.$body;e.find(".tcb-image-gallery:visible").each(((e,i)=>new n(t(i),!!tve_frontend_options.is_editor_page)))};t(window).on("tve_after_content_toggle",((t,e,i)=>{s(e)})),t(window).on("tcb_after_dom_ready",(()=>{s()}));class n{static imageSelector(){return".thrv_wrapper.tve_image_caption"}static captionSelector(){return".wp-caption-text.thrv-inline-text"}constructor(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t(),a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.$element=i,this.isEditor=a,a||(this.isHorizontalMasonry()&&this.initHorizontalMasonry(),this.hasLightbox()&&this.initLightbox(),this.isVerticalMasonry()&&this.initVerticalMasonry()),this.isCarousel()){this.initCarousel();const t=this.onResize.bind(this);e.addResizeCallback(t)}}onResize(){const t=this.$element.find(".tcb-image-gallery-container"),i=e.Utils.jsonParse(t,"data-carousel-settings").tcbDots;setTimeout((()=>{this.setDots(this.$element.find("ul.tcb-carousel-dots"),i)}),500)}setImages(t){return this.images=t,this}getImages(){return this.images}readImagesFromElement(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];const i=[],a=this.isCarousel()?".tcb-image-gallery-container .tve_image_caption.slick-slide:not(.slick-cloned) img":".tcb-image-gallery-container img";return this.$element.find(a).each(((e,a)=>{const s=t(a),n=s.parents(".tve_image_caption");i.push({id:n.attr("data-id"),caption:n.attr("data-caption"),title:s.attr("title"),alt:s.attr("alt"),width:s.attr("width"),height:s.attr("height"),url:s.attr("src"),sizes:s.tcbJsonData("sizes"),styleClass:n[0].className.match(/(^|\s)img_style_\S+/g)||["no_style"].join(" ")})})),e&&(this.images=i),i}isHorizontalMasonry(){return"horizontalMasonry"===this.$element.attr("data-type")}initHorizontalMasonry(){this.$element.find(".tcb-image-gallery-container").justifiedGallery({selector:".tve_image_caption.thrv_wrapper",rowHeight:parseInt(e.inlineCssVariable(this.$element,"--tve-gallery-column-height")),lastRow:"nojustify",margins:parseInt(e.inlineCssVariable(this.$element,"--tve-gallery-gutter"))})}isVerticalMasonry(){return"verticalMasonry"===this.$element.attr("data-type")}initVerticalMasonry(){this.$element.find(".tcb-image-gallery-container").data("masonry",!1).masonry({itemSelector:".thrv_wrapper.tve_image_caption",gutter:0,transitionDuration:0})}render(){if(this.isEditor){this.$element=TVE.ActiveElement;const t=this.$element.find(TVE.identifier("image")),e=this.$element.find(TVE.identifier("image_caption")),i=t.find(".tve-image-overlay").first(),a={},s={},n={};let l,r,o,c,d,h,g;if(t.length&&(l=this.getAnimationsClasses(t),r=this.getAnimationsClasses(t.find("img")),o=t.find("img").attr("data-tcb-events"),c=this.getAnimationsClasses(e),d=e.attr("data-tcb-events"),h=(t[0].className.match(/(^|\s)img_style_\S+/g)||["no_style"]).join(" "),g=TVE.Editor_Page.getResponsiveClasses(e)),this.oldImageSize=this.getImageSize(),e.each(((t,e)=>{const i=TVE.inner_$(e),a=i.find("a"),n=i.parents(".tve_image_caption"),l=n.attr("data-id");s[l]={text:n.attr("data-caption")||"",hasLink:a.length>0,href:a.attr("href"),target:a.attr("target"),rel:a.attr("rel")}})),this.hasLightbox()||t.each(((t,e)=>{const i=TVE.inner_$(e),a=i.find(".tve_image_frame a"),s=i.attr("data-id");n[s]={hasLink:a.length>0,href:a.attr("href"),target:a.attr("target"),rel:a.attr("rel")}})),this.$element.hasClass("tcb-elem-placeholder"))this.$element.html('<div class="tcb-image-gallery-container tve-prevent-content-edit"></div>').removeClass("tcb-elem-placeholder tcb-gallery-placeholder");else{const t=this.$element.find(".tcb-image-gallery-container");this.isCarousel()&&void 0!==t[0].slick&&t.slick("unslick"),t.html("")}e.length&&e.attr("data-position")&&(a.position={attr:`data-position=${e.attr("data-position")}`,classes:`tve-image-caption-${e.attr("data-position")}`},"inside"===e.attr("data-position")&&e.attr("data-alignment")&&(a.alignment={attr:`data-alignment=${e.attr("data-alignment")}`,classes:`tve-image-caption-inside tcb-caption-${e.attr("data-alignment")}`})),this.$element.attr("data-css",TVE.CSS_Rule_Cache.uniq_id(this.$element)),this.getImages().forEac
1h(((t,e)=>this.renderOneImage(t,e,a,s,n)));const m=this.$element.find(TVE.identifier("image")),p=this.$element.find(".wp-caption-text");i.length&&i.insertAfter(m.find("img")),l&&(m.addClass(l),this.$element.find("img").addClass(r).attr("data-tcb-events",o)),c&&p.addClass(c).attr("data-tcb-events",d),h&&m.addClass(h),p.each(((t,e)=>{const i=e.innerText;i&&!i.trim().length&&e.classList.add("tcb-permanently-hidden")})),g&&p.addClass(g),this.updateDataSelectors()}}renderOneImage(t,i,a,s,n){this.$element.find(".tcb-image-gallery-container").append(TVE.tpl("elements/gallery-image")({image:t,index:i,imageObj:this,captionSettings:a,tcb:e,captionLinks:s,imageLinks:n})),this.$element.find(".tcb-image-gallery-container img:last").tcbJsonData("sizes",t.sizes)}updateDataSelectors(){const t=this.$element.attr("data-css");this.$element.find(n.imageSelector()).each(((e,i)=>{i.setAttribute("data-selector",`[data-css="${t}"] ${n.imageSelector()}`)})),this.$element.find(n.captionSelector()).each(((e,i)=>{i.setAttribute("data-selector",`[data-css="${t}"] ${n.captionSelector()}`)}))}hasCaptions(){return"true"===this.$element.attr("data-caption")}getImageSize(){let t=this.$element.attr("data-thumbnail-size")||"auto";return"auto"===t&&(t=this.getBestImageSize()),t}getFullwidthSize(){return this.$element.attr("data-fullscreen-size")||"large"}hasLightbox(){return!this.isCarousel()&&"fullscreen"===this.$element.attr("data-click-behavior")}getImagePosition(t){const e=this.getImages();return e.findIndex((e=>e.id===t.id))+1+"/"+e.length}initLightbox(){this.$element.data("lightbox-loaded")||(this.lightbox=new a(this),this.lightbox.init(),this.$element.data("lightbox-loaded",!0))}getBestImageSize(){const t=this.getNumberOfColumns(),i=parseInt(e.inlineCssVariable(this.$element,"--tve-gallery-horizontal-space")),a=t||Math.min(this.images.length,4),s=(TVE.ActiveElement.outerWidth()-(a-1)*i)/a;let n="large";if(s<=300){const t=TVE.ActiveElement.find("img");t.length&&s<t.width()||(n="medium")}return n}getNumberOfColumns(){let t;if(this.isCarousel())try{t=e.Utils.jsonParse(this.$element.find(".tcb-image-gallery-container"),"data-carousel-settings").slidesToShow}catch(e){t=3}else t=e.inlineCssVariable(this.$element,"--tve-gallery-columns");return t}getAnimationsClasses(t){const e=[],i=t.length?t[0].className.match(/tve_et_\S*|tve_ea_\S*|tve_anim_\S*|tve_evt_\S*/g):null;return null!==i&&(e.push(...i),e.includes("tve_ea_thrive_tooltip")&&e.splice(e.indexOf("tve_ea_thrive_animation"),1)),[...new Set(e)].join(" ")}isCarousel(){return"carousel"===this.$element.attr("data-type")}initCarousel(){const t=this.$element.find(".tcb-image-gallery-container"),i=e.Utils.jsonParse(t,"data-carousel-settings"),a=i.tcbDots;delete i.tcbDots,this.isEditor&&(t.data("loaded")||void 0!==t[0].slick)&&t.slick("unslick"),!this.isEditor&&t.data("loaded")||(n.isSlickBroken(t)?n.fixSlick(t):t.slick(i),t.data("loaded",!0)),this.$element.find(".slick-list").addClass("tve-prevent-content-edit"),this.setDots(this.$element.find("ul.tcb-carousel-dots"),a),this.$element.toggleClass("tcb-has-arrows",!!this.$element.find(".tcb-carousel-arrow").length),this.isEditor&&(t.slick("slickPause"),t.off("breakpoint").on("breakpoint",((t,i,a)=>{TVE.inner_$('.tcb-image-gallery[data-type="carousel"]').each(((t,i)=>{const a=TVE.inner_$(i),s=e.Utils.jsonParse(a.find(" .tcb-image-gallery-container"),"data-carousel-settings"),n=a.hasClass("tcb-gallery-crop");this.setDots(a.find("ul.tcb-carousel-dots"),s.tcbDots),n&&TVE.Components.image_gallery.cropImages(a,n),TVE.main.EditMode.in_edit()||a.find(".slick-list").addClass("tve-prevent-content-edit")}))}))),t.removeClass("tve-loading load-bot")}setDots(t,e){const i=t.parents(".tcb-image-gallery");e&&(t.length&&0===i.find(" > ul.tcb-carousel-dots").length&&i.append(t),t.addClass("tcb-carousel-dots-styled"),t.attr("data-selector",`[data-css="${i.attr("data-css")}"] .tcb-carousel-dots`).find("li").attr("data-selector",`[data-css="${i.attr("data-css")}
1"] .tcb-carousel-dots li.tcb-dot`).addClass("tcb-dot").html(e))}static isSlickBroken(t){return t.jquery&&(t=t[0]),void 0===t.slick&&t.classList.contains("slick-initialized")}static fixSlick(t){const i=e.Utils.jsonParse(t,"data-carousel-settings");t.removeClass("slick-initialized slick-slider slick-dotted"),t.find(".slick-dots,.slick-prev,.slick-next").remove(),t.find(".tve_image_caption.slick-cloned").remove(),t.find(".thrv_wrapper.tve_image_caption").appendTo(t),t.find(".slick-list").remove(),t.slick(i)}}window.TCB_Front.ImageGallery=n,TCB_Front.setModuleLoadedStatus("image-gallery",!0)}(ThriveGlobal.$j,TCB_Front)}();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.