PageSourceSearch

https://essexmonastery.com/wp-content/plugins/bricksforge/assets/js/bricksforge_panel.js?ver=1789643222

js essexmonastery.com collected 2026-09-24 20:40:00 UTC 98,559 bytes, 1 lines download raw bytes

1var brfPanel,bricksforgeData={panel:{timelines:[],cachedElements:{},lastScrollY:0,lastScrollX:0}};"undefined"!=typeof gsap&&gsap.config({nullTargetWarn:!1}),window.BrfSequencePlayer=window.BrfSequencePlayer||function(){const e=new Map;function t(e,t,a){if(this.sequence=t,this.proxy={frame:0},this.images=new Array(t.frameCount),this.loaded=new Array(t.frameCount).fill(!1),this.lastDrawn=-1,"cover"===a){if(!document.getElementById("brf-sequence-style")){const e=document.createElement("style");e.id="brf-sequence-style",e.textContent="[data-brf-seq-host]{position:relative}",document.head.appendChild(e)}"static"===getComputedStyle(e).position&&e.setAttribute("data-brf-seq-host","")}let n=e.querySelector(':scope > canvas[data-brf-sequence="'+t.id+'"]');n||(n=document.createElement("canvas"),n.setAttribute("data-brf-sequence",t.id),n.width=t.width||1280,n.height=t.height||720,n.style.display="block","cover"===a?(n.style.position="absolute",n.style.inset="0",n.style.width="100%",n.style.height="100%",n.style.objectFit="cover"):(n.style.width="100%",n.style.height="auto",n.style.aspectRatio=(t.width||16)+" / "+(t.height||9),n.style.objectFit="contain",n.style.maxWidth="100%"),e.appendChild(n)),this.canvas=n,this.context=n.getContext("2d"),this.preload()}return t.prototype.frameUrl=function(e){const t=String(e+1).padStart(4,"0");return this.sequence.pattern.replace("%04d",t)},t.prototype.loadFrame=function(e){if(this.images[e])return;const t=new Image;t.decoding="async",t.onload=()=>{this.loaded[e]=!0,-1!==this.lastDrawn&&Math.round(this.proxy.frame)!==e||this.render()},t.src=this.frameUrl(e),this.images[e]=t},t.prototype.preload=function(){const e=this.sequence.frameCount;for(let t of[8,1])for(let a=0;a<e;a+=t)this.loadFrame(a)},t.prototype.nearestLoaded=function(e){if(this.loaded[e])return e;for(let t=1;t<this.sequence.frameCount;t++){if(this.loaded[e-t])return e-t;if(this.loaded[e+t])return e+t}return-1},t.prototype.render=function(){const e=this.sequence.frameCount,t=Math.max(0,Math.min(e-1,Math.round(this.proxy.frame))),a=this.nearestLoaded(t);-1!==a&&a!==this.lastDrawn&&(this.lastDrawn=a,this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.context.drawImage(this.images[a],0,0,this.canvas.width,this.canvas.height))},{get:function(a,n,i){const r=n.id;let s=e.get(a);return s||(s={},e.set(a,s)),Object.keys(s).forEach((function(e){if(e!==r){const t=s[e];t&&t.canvas&&t.canvas.parentNode&&t.canvas.parentNode.removeChild(t.canvas),delete s[e]}})),a.querySelectorAll(":scope > canvas[data-brf-sequence]").forEach((function(e){e.getAttribute("data-brf-sequence")!==r&&e.remove()})),s[r]||(s[r]=new t(a,n,i)),s[r]}}}();const BRF_CONSTANTS={MAX_QUERY_NODES:25,MAX_SCROLL_TRIGGERS:50,MIN_REFRESH_INTERVAL:2e3,RESIZE_THRESHOLD:500,BATCH_SIZE:3,FRAME_DELAY:16,IDLE_CALLBACK_TIMEOUT:300,MODEL_LOAD_TIMEOUT:2e3,PREVENT_FOUC_DELAY:200};function brfGetSplitTextMask(e){return e.splitTextMask?e.splitTextMask:void 0}function brfGetSplitTextType(e,t){return!e||!t||e.indexOf(t)>-1?e:e+", "+t}class ElementSelector{constructor(e=25){this.maxQueryNodes=e,this.cache=bricksforgeData.panel.cachedElements}getCachedElement(e,t=!1,a=document){if(!this.cache[e]){let n;bricksIsFrontend?(n=t?a.querySelectorAll(e):document.querySelector(e),n.length>this.maxQueryNodes&&(n=Array.from(n).slice(0,this.maxQueryNodes))):n=this.getElementsUpTo(this.maxQueryNodes,e),this.cache[e]=n}return this.cache[e]}isValidSelector(e){try{return document.createDocumentFragment().querySelector(e),!0}catch(e){return!1}}getScrollTriggerSafeSelectors(e,t=50){try{if([/^\s*\*\s*$/,/^\s*body\s*\*\s*$/,/^\s*html\s*\*\s*$/,/^\s*\w+\s*\*\s*$/,/\*\s*\*$/].some((t=>t.test(e))))return console.warn("🚨 Bricksforge Performance Warning:",`ScrollTrigger selector "${e}" could create too many instances.`,"Using body element as fallback to prevent system freeze."),[document.body];const a=gsap.utils.toArray(e);return a.length>t?(console.warn("🚨 Bricksforge Performance Warning:",`ScrollTrigger selector "${e}" matches ${a.length} elements.`,`Limited to first ${t} elements to prevent performance issues.`),a.slice(0,t)):a}catch(e){return console.error("ScrollTrigger selector error:",e),[document.body]}}getElementsUpTo(e,t,a=document.documentElement){("number"!=typeof e||!Number.isFinite(e)||e<=0||e>Number.MAX_SAFE_INTEGER)&&(e=1/0);const n=document.createNodeIterator(a,NodeFilter.SHOW_ELEMENT),i=[];let r;for(;i.length<e&&(r=n.nextNode());){let e=!1;t&&"string"==typeof t&&r?e=r.matches(t):Array.isArray(t)&&(e=t.includes(r)),e&&i.push(r)}return i}selectorExists(e){try{return!!document.querySelector(e)}catch(e){return!1}}getTargetElement(e,t,a,n,i){let r=!1;switch(e){case"same":if(!a||!i)break;e=i.target;break;case"triggered":e="triggered";break;case"all":if(!a)break;e=document.querySelectorAll(n.selector),r=!0;break;case"siblings":if(!a||!i)break;e=i.target.parentNode.children,r=!0;break;case"parent":if(!a||!i)break;e=i.target.parentNode;break;case"children":if(!a||!i)break;e=i.target.children,r=!0;break;case"closest":if(!a)break;if(!e)break;if(!i)break;e=i.target.closest(t);break;case"querySelector":if(!a||!i)break;e=i.target.closest(n.selector).querySelector(t);break;
1case"custom":e=document.querySelector(t);break;case"customAll":e=document.querySelectorAll(t),r=!0;break;case"window":e=window;break;default:if(!a)break;e=document.querySelector(n.selector)}return[e,r]}}class TemplateVariables{constructor(){this.variables=this.initVariables()}initVariables(){return["{eventType}","{eventTarget}","{eventTimestamp}","{eventCharCode}","{eventAltKey}","{eventCtrlKey}","{eventShiftKey}","{eventRepeat}","{eventKey}","{eventCode}","{eventLocation}","{eventButton}","{eventClientX}","{eventClientY}","{eventPageX}","{eventPageY}","{eventScreenX}","{eventScreenY}","{eventX}","{eventY}","{eventTouchCount}","{eventScale}","{eventRotation}","{eventTargetName}","{eventTargetType}","{eventTargetValue}","{eventTargetValidity}","{eventTargetChecked}","{eventTargetFilesCount}","{eventDataTransferTypesCount}","{eventDataTransferFilesCount}","{eventDataTransferText}","{windowScrollX}","{windowScrollY}","{windowInnerWidth}","{windowInnerHeight}","{windowOuterWidth}","{windowOuterHeight}","{eventTargetOffsetTop}","{eventTargetOffsetLeft}","{eventTargetOffsetWidth}","{eventTargetOffsetHeight}","{postId}"]}replace(e,t){if(void 0===e||null==e)return e;if("string"!=typeof e&&(e=e.toString()||""),!e.includes("{"))return e;[{name:"{eventType}",value:t.event?t.event.type:""},{name:"{eventTarget}",value:t.event&&t.event.target?t.event.target.toString():""},{name:"{eventTimestamp}",value:t.event?t.event.timeStamp:""},{name:"{eventCharCode}",value:t.event&&"keypress"===t.event.type?t.event.charCode:""},{name:"{eventAltKey}",value:t.event?t.event.altKey:""},{name:"{eventCtrlKey}",value:t.event?t.event.ctrlKey:""},{name:"{eventShiftKey}",value:t.event?t.event.shiftKey:""},{name:"{eventRepeat}",value:t.event?t.event.repeat:""},{name:"{eventKey}",value:t.event?t.event.key:""},{name:"{eventCode}",value:t.event?t.event.code:""},{name:"{eventLocation}",value:!t.event||"keydown"!==t.event.type&&"keyup"!==t.event.type?"":t.event.location},{name:"{eventButton}",value:t.event?t.event.button:""},{name:"{eventClientX}",value:t.event?t.event.clientX:""},{name:"{eventClientY}",value:t.event?t.event.clientY:""},{name:"{eventPageX}",value:t.event?t.event.pageX:""},{name:"{eventPageY}",value:t.event?t.event.pageY:""},{name:"{eventScreenX}",value:t.event?t.event.screenX:""},{name:"{eventScreenY}",value:t.event?t.event.screenY:""},{name:"{eventX}",value:t.event?t.event.x:""},{name:"{eventY}",value:t.event?t.event.y:""},{name:"{eventTouchCount}",value:t.event&&t.event.touches?t.event.touches.length:""},{name:"{eventScale}",value:t.event&&t.event.scale?t.event.scale:""},{name:"{eventRotation}",value:t.event&&t.event.rotation?t.event.rotation:""},{name:"{eventTargetName}",value:t.event&&t.event.target?t.event.target.name:""},{name:"{eventTargetType}",value:t.event&&t.event.target?t.event.target.type:""},{name:"{eventTargetValue}",value:t.event&&t.event.target?t.event.target.value:""},{name:"{eventTargetValidity}",value:t.event&&t.event.target&&t.event.target.validity?t.event.target.validity.valid?"valid":"invalid":""},{name:"{eventTargetChecked}",value:t.event&&t.event.target&&("checkbox"===t.event.target.type||"radio"===t.event.target.type)?t.event.target.checked:""},{name:"{eventTargetFilesCount}",value:t.event&&t.event.target&&"file"===t.event.target.type&&t.event.target.files?t.event.target.files.length:""},{name:"{eventDataTransferTypesCount}",value:t.event&&t.event.dataTransfer?t.event.dataTransfer.types.length:""},{name:"{eventDataTransferFilesCount}",value:t.event&&t.event.dataTransfer?t.event.dataTransfer.files.length:""},{name:"{eventDataTransferText}",value:t.event&&t.event.dataTransfer&&t.event.dataTransfer.types.indexOf("text/plain")>=0?t.event.dataTransfer.getData("text/plain"):""},{name:"{windowScrollX}",value:window.scrollX},{name:"{windowScrollY}",value:window.scrollY},{name:"{windowInnerWidth}",value:window.innerWidth},{name:"{windowInnerHeight}",value:window.innerHeight},{name:"{windowOuterWidth}",value:window.outerWidth},{name:"{windowOuterHeight}",value:window.outerHeight},{name:"{eventTargetOffsetTop}",value:t.event&&t.event.target?t.event.target.offsetTop:""},{name:"{eventTargetOffsetLeft}",value:t.event&&t.event.target?t.event.target.offsetLeft:""},{name:"{eventTargetOffsetWidth}",value:t.event&&t.event.target?t.event.target.offsetWidth:""},{name:"{eventTargetOffsetHeight}",value:t.event&&t.event.target?t.event.target.offsetHeight:""},{name:"{postId}",value:bricksData?bricksData.postId:""}
1].forEach((t=>{e=e.replace(t.name,t.value)}));let a=["formField","formData"].some((t=>e.includes(`{${t}:`)));e.includes("{")&&e.includes(":")&&a&&(e=e.replace(/{(.*?):(.*?)}/g,((e,t,a)=>{let n="";switch(t){case"formField":n=this.getFormFieldValue(a);break;case"formData":n=this.getFormData(a)}return n})));const n=e.match(/{event:(.*?)}/);if(n){const a=n[1].split(/\.|:/).reduce(((e,t)=>e instanceof HTMLElement&&"value"===t?e.value:e&&void 0!==e[t]?e[t]:void 0),t.event);void 0!==a&&(e=e.replace(n[0],a))}return e}getFormFieldValue(e){let t=document.querySelector(`[name="${e}"]`);return t?"checkbox"===t.type||"radio"===t.type?t.checked:t.value:""}getFormData(e){let t=document.querySelector("#"+e);if(!t)return"";let a=new FormData(t),n={};for(let[e,t]of a.entries())n[e]=t;return JSON.stringify(n)}}class ValidationHelper{constructor(e){this.templateVars=e}checkConditions(e){let t=e.data;if(!t.conditions||!t.conditions.length)return!0;let a=t.conditionsRelation?t.conditionsRelation:"and",n=[];for(let a of t.conditions)switch(a.type){case"elementNode":n.push(this.checkElementNode(a,e));break;case"localStorage":n.push(this.checkStorage(a,e,"localStorage"));break;case"sessionStorage":n.push(this.checkStorage(a,e,"sessionStorage"));break;case"custom":n.push(this.checkCustom(a,e))}if(!n.length)return!1;switch(a){case"and":return!n.includes(!1);case"or":return n.includes(!0);default:return!1}}checkElementNode(e,t){if(!e.elementNodeSelector||!e.elementNodeSelector||!e.elementNodeOption)return!1;let a=document.querySelector(this.templateVars.replace(e.elementNodeSelector,{event:t.event}));if(!a)return!1;switch(e.elementNodeOption){case"class":if(!e.elementNodeValue)return!1;if("has"==e.elementNodeOperator)return a.classList.contains(this.templateVars.replace(e.elementNodeValue,{event:t.event}));if("notHas"==e.elementNodeOperator)return!a.classList.contains(this.templateVars.replace(e.elementNodeValue,{event:t.event}));break;case"attribute":if(!e.elementNodeValue)return!1;if(!e.elementNodeAttribute)return!1;if("has"==e.elementNodeOperator)return a.getAttribute(this.templateVars.replace(e.elementNodeAttribute,{event:t.event}))==this.templateVars.replace(e.elementNodeValue,{event:t.event});if("notHas"==e.elementNodeOperator)return a.getAttribute(this.templateVars.replace(e.elementNodeAttribute,{event:t.event}))!=this.templateVars.replace(e.elementNodeValue,{event:t.event})}return!1}checkStorage(e,t,a){if(!e.localStorageKey||!e.localStorageOperator)return!1;const n="localStorage"===a?localStorage:sessionStorage;switch(e.localStorageOperator){case"exists":return null!=n.getItem(this.templateVars.replace(e.localStorageKey,{event:t.event}));case"notExists":return!n.getItem(this.templateVars.replace(e.localStorageKey,{event:t.event}));case"==":return n.getItem(this.templateVars.replace(e.localStorageKey,{event:t.event}))==this.templateVars.replace(e.localStorageValue,{event:t.event});case"!=":return n.getItem(this.templateVars.replace(e.localStorageKey,{event:t.event}))!=this.templateVars.replace(e.localStorageValue,{event:t.event});case">":return n.getItem(this.templateVars.replace(e.localStorageKey,{event:t.event}))>parseInt(this.templateVars.replace(e.localStorageValue,{event:t.event}));case"<":return n.getItem(this.templateVars.replace(e.localStorageKey,{event:t.event}))<parseInt(this.templateVars.replace(e.localStorageValue,{event:t.event}));case">=":return n.getItem(this.templateVars.replace(e.localStorageKey,{event:t.event}))>=parseInt(this.templateVars.replace(e.localStorageValue,{event:t.event}));case"<=":return n.getItem(this.templateVars.replace(e.localStorageKey,{event:t.event}))<=parseInt(this.templateVars.replace(e.localStorageValue,{event:t.event}));default:return!1}}checkCustom(e,t){if(!e.customCondition)return!1;let a=t.trigger?t.trigger:null,n=t.target?t.target:null,i=t.event?t.event:null,r=new Function("return ((trigger, target, event) => {return "+e.customCondition+"})")();return"function"==typeof r&&!0===r(a,n,i)}}class TimelineManager{constructor(e){this.panel=e,this.timelines=[],this.splitTextInstances=[],this.timelineActions=[],this.matchMediaInstances=[],this.abortController=new AbortController}cleanup(){this.abortController.abort(),this.abortController=new AbortController,this.timelines.forEac
1h((e=>{if(e.tl&&"function"==typeof e.tl.kill)try{"function"==typeof e.tl.pause&&e.tl.pause(),e.tl.kill()}catch(e){console.warn("Timeline kill warning:",e)}})),"undefined"!=typeof ScrollTrigger&&ScrollTrigger.getAll().forEach((e=>{if(e.vars?.id?.startsWith("brf-"))try{e.kill(!0)}catch(e){console.warn("ScrollTrigger kill warning:",e)}})),this.splitTextInstances.forEach((e=>{if(e.data&&"function"==typeof e.data.revert)try{e.data.revert()}catch(e){console.warn("SplitText revert warning:",e)}})),this.matchMediaInstances.forEach((e=>{if(e&&"function"==typeof e.kill)try{e.kill()}catch(e){console.warn("MatchMedia kill warning:",e)}})),this.timelines=[],this.splitTextInstances=[],this.timelineActions=[],this.matchMediaInstances=[],bricksforgeData&&bricksforgeData.panel&&(bricksforgeData.panel.cachedElements={},bricksforgeData.panel.timelines=[])}async getTimelineById(e){return new Promise(((t,a)=>{setTimeout((()=>{let n=this.timelines.find((t=>t.id==e));n?t(n):a(new Error("Timeline not found"))}))}))}async getTimelines(){return await new Promise((e=>{setTimeout((()=>{e()}))})),this.timelines}refreshTimelines({onlySplitText:e=!1}={}){const t=BRFPANEL.panel[0].timelines;t&&(this.panel.handleFromAnimations(),t.forEach((t=>{this.panel.shouldSkip(t)||e&&!this.hasSplitTextAnimation(t)||this.panel.handleTimeline(t,!1,!1)})))}hasSplitTextAnimation(e){const t=e.animations;return!!t&&t.some((e=>!0===e.splitText))}timelineHas3DModel(e){return e.animations.some((e=>e.animate3DModel))}handleSplitTextInstancesRefresh(){if(!this.panel.isDesktop())return;let e=0;const t=BRF_CONSTANTS.MIN_REFRESH_INTERVAL;let a=window.innerWidth,n=window.innerHeight;const i=BRF_CONSTANTS.RESIZE_THRESHOLD;let r=!1,s=!1,o=null;const l=()=>{if(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)return;if(r)return void(s=!0);const o=Date.now();if(o-e<t)return void(s||(s=!0,setTimeout((()=>{const e=Math.abs(window.innerWidth-a),t=Math.abs(window.innerHeight-n);(e>i||t>i)&&c(),s=!1}),t-(o-e))));const l=Math.abs(window.innerWidth-a),d=Math.abs(window.innerHeight-n);(l>i||d>i)&&c()},c=()=>{r=!0,e=Date.now(),a=window.innerWidth,n=window.innerHeight,o&&window.removeEventListener("resize",o);const t=this.splitTextInstances;if(!t||!t.length)return r=!1,void window.addEventListener("resize",o);const i=(e,t=0,a=BRF_CONSTANTS.BATCH_SIZE)=>{if(t>=e.length)return this.refreshTimelines({onlySplitText:!0}),r=!1,void window.addEventListener("resize",o);const n=Math.min(t+a,e.length),s=e.slice(t,n);requestAnimationFrame((()=>{s.forEach((e=>{e?.data?.revert&&"function"==typeof e.data.revert&&(e.data.revert(),e.data.split())})),setTimeout((()=>{i(e,n,a)}),BRF_CONSTANTS.FRAME_DELAY)}))};i(t)};o=()=>{window.requestIdleCallback?window.requestIdleCallback(l,{timeout:BRF_CONSTANTS.IDLE_CALLBACK_TIMEOUT}):requestAnimationFrame(l)},window.addEventListener("resize",o)}handleRefresh(e){window.scrollY>window.innerHeight&&e.progress&&e.animation.progress(1)}}class AnimationBuilder{constructor(e){this.panel=e}applySplitText(e,t,a){let n;gsap.registerPlugin(SplitText);let i=this.panel.timelineManager.splitTextInstances.find((t=>t.id==e.id));const r=brfGetSplitTextMask(e);let s=e.splitTextType;"chars"==s&&(s="words, chars"),s=brfGetSplitTextType(s,r),a?(n=new SplitText(t,{type:s,charsClass:"brf-split brf-split-chars",smartWrap:!0,linesClass:"brf-split brf-split-lines",wordsClass:"brf-split brf-split-words",mask:r,tag:"chars"==e.splitTextType?"span":"div"}),this.panel.timelineManager.splitTextInstances.push({id:e.id,type:s,animation:e.id,data:n})):(i?n=i:(n=this.panel.timelineManager.splitTextInstances.push({id:e.id,type:s,animation:e.id,data:new SplitText(t,{type:brfGetSplitTextType(e.splitTextType,r),charsClass:"brf-split brf-split-chars",smartWrap:!0,linesClass:"brf-split brf-split-lines",wordsClass:"brf-split brf-split-words",mask:r,tag:"chars"==e.splitTextType?"span":"div"})}),n=this.panel.timelineManager.splitTextInstances.find((t=>t.id==e.id))),n=n.data);switch(e.splitTextType){case"chars":default:return n.chars;case"words":return n.words;case"lines":return n.lines}}async handle3DModel(e,t){let a=await(async()=>new Promise(((e,t)=>{let a=setInterval((()=>{bricksforgeData&&bricksforgeData.models&&(clearInterval(a),e(bricksforgeData.models))}),50);setTimeout((()=>
1{clearInterval(a),t(new Error("Timeout: Model data not available"))}),2e3)})))(),n=bricksforgeData.cameras;if(a){const i=document.querySelector(e);let r=!!a[i.dataset.scriptId]&&a[i.dataset.scriptId],s=n[i.dataset.scriptId],o=t.animate3DModelObject?t.animate3DModelObject:"model",l="position";if("model"==o&&(l=t.animate3DModelProperty?t.animate3DModelProperty:"position"),"camera"==o&&(l=t.animate3DCameraProperty?t.animate3DCameraProperty:"position"),r)switch(l){case"rotation":return"model"==o?r.rotation:s.rotation;case"position":return"model"==o?r.position:s.position;case"scale":return"model"==o?r.scale:s.scale;default:return e}}return e}applyPerspective(e,t,a){let n=gsap.utils.toArray(t);e.perspective&&e.perspectiveValue?n.forEach((t=>{t&&t.parentNode&&gsap.set(t.parentNode,{perspective:e.perspectiveValue})})):a||n.forEach((e=>{e&&e.parentNode&&gsap.set(e.parentNode,{perspective:"none"})}))}buildAnimationDataFunction(e){try{return new Function("return (triggerSelector, target, trigger, timeline) => {return "+e.replace(/cssVar\((.*?)\)/g,((e,t)=>this.panel.cssVar(t.trim())))+"}")(this)}catch(e){return new Function}}}class BaseActionHandler{constructor(e){this.panel=e}isQueryAll(e){return NodeList.prototype.isPrototypeOf(e)||Array.isArray(e)}executeForAll(e,t,a,n=!1,i=null){if(t)for(let t of e)n&&i==t||a(t);else a(e)}}class DOMActionHandler extends BaseActionHandler{handle(e,t,a,n,i,r,s){switch(e){case"show":this.executeForAll(t,a,(e=>{e!=window&&e!=document&&(e.style||(e.style={}),e.style.display=n.display?this.panel.handleTemplateVars(n.display,{event:i}):"block")}),r,s);break;case"hide":this.executeForAll(t,a,(e=>{e.style.display="none"}),r,s);break;case"addClass":if(!n.cssClass)break;this.executeForAll(t,a,(e=>{e.classList.add(this.panel.handleTemplateVars(n.cssClass,{event:i}))}),r,s);break;case"removeClass":if(!n.cssClass)break;this.executeForAll(t,a,(e=>{e.classList.remove(this.panel.handleTemplateVars(n.cssClass,{event:i}))}),r,s);break;case"toggleClass":if(!n.cssClass)break;this.executeForAll(t,a,(e=>{e.classList.toggle(this.panel.handleTemplateVars(n.cssClass,{event:i}))}),r,s);break;case"setAttribute":if(!n.attributeKey||!n.attributeValue)break;this.executeForAll(t,a,(e=>{e.setAttribute(this.panel.handleTemplateVars(n.attributeKey,{event:i}),this.panel.handleTemplateVars(n.attributeValue,{event:i}))}),r,s);break;case"removeAttribute":if(!n.attributeKeyRemoval)break;this.executeForAll(t,a,(e=>{e.removeAttribute(this.panel.handleTemplateVars(n.attributeKeyRemoval,{event:i}))}),r,s);break;case"innerText":if(!n.innerText)break;this.executeForAll(t,a,(e=>{e.innerText=this.panel.handleTemplateVars(n.innerText,{event:i})}),r,s);break;default:return!1}return!0}}class StorageActionHandler extends BaseActionHandler{handle(e,t,a,n,i){switch(e){case"storageSetItem":if(!n.storageItemKey||!n.storageItemValue)break;localStorage.setItem(this.panel.handleTemplateVars(n.storageItemKey,{event:i}),this.panel.handleTemplateVars(n.storageItemValue,{event:i}));break;case"storageRemoveItem":if(!n.storageItemKey)break;localStorage.removeItem(this.panel.handleTemplateVars(n.storageItemKey,{event:i}));break;case"sessionStorageSetItem":if(!n.storageItemKey||!n.storageItemValue)break;sessionStorage.setItem(this.panel.handleTemplateVars(n.storageItemKey,{event:i}),this.panel.handleTemplateVars(n.storageItemValue,{event:i}));break;case"sessionStorageRemoveItem":if(!n.storageItemKey)break;sessionStorage.removeItem(this.panel.handleTemplateVars(n.storageItemKey,{event:i}));break;default:return!1}return!0}}class PopupActionHandler extends BaseActionHandler{handle(e,t,a,n,i){switch(e){case"openPopup":if(!n.popupId)break;let e=this.panel.handleTemplateVars(n.popupId,{event:i});if("function"!=typeof bricksOpenPopup)break;let t=document.querySelector(".brxe-popup-"+e);if(!t){console.warn("Bricksforge Panel: Popup "+e+" not found.");break}bricksOpenPopup(t);break;case"closePopup":if(!n.popupId)break;let a=this.panel.handleTemplateVars(n.popupId,{event:i});if("function"!=typeof bricksClosePopup)break;let r=document.querySelector(".brxe-popup-"+a);if(!r){console.warn("Bricksforge Panel: Popup "+a+" not found.");break}bricksClosePopup(r);break;default:return!1}return!0}}class FormActionHandler extends BaseActionHandler{handle(e,t,a,n,i,r,s){switch(e){case"populateFormField":if(!n.formFieldValue)break;let e=this.panel.handleTemplateVars(n.formFieldValue,{event:i});this.executeForAll(t,a,(t=>{let a=this.findFormField(t);a&&(a.value=e)}),r,s);break;default:return!1}return!0}findFormField(e){if(!e)return null;const t=["input","select","textarea"];for(let a of t){let t=e.querySelector(a)||e.closest(a);if(t)return t}return null}}class ActionDispatcher{constructor(e){this.panel=e,this.handlers={dom:new DOMActionHandler(e),storage:new StorageActionHandler(e),popup:new PopupActionHandler(e),form:new FormActionHandler(e)}}async dispatch(e){const{action:t,actionData:a,selector:n,instance:i,event:r}=e,s=this.panel.getTargetElement(a.target,a.targetElement,n,i,r);let o=s[0],l=s[1];if("same"!=a.target&&"triggered"!=a.target||"inViewport"!=i.event&&"notInViewport"!=i.event||(o=n),!t||!n)return;let c=a.except&&"none"!=a.except,d=a.exceptSelector||!1,u=!!r&&r.target,p=null;c&&d&&u&&(p=u!=document.querySelector(d)?u.closest(d):u),this.handlers.dom.handle(t,o,l,a,r,c,p)||this.handlers.storage.handle(t,o,l,a,r)||this.handlers.popup.handle(t,o,l,a,r)||this.handlers.form.handle(t,o,l,a,r,c,p)||"undefined"!=typeof console&&console.warn&&console.warn(`Action "${t}" not yet refactored to use ActionDispatcher`)}}class InstanceManager{constructor(e){this.panel=e,this.initializedInstances=[]}trackInstance(e){e&&e.selector&&this.initializedInstances.push({id:e.id||e.name||`instance-${this.initializedInstances.length}`,selector:e.selector,selectorType:e.selectorType||"exactly",event:e.event,config:e})}findAffectedInstances(e){const t=[],a=BRFPANEL?.panel?.[0]?.instances||[];for(const n of a)if(!n.disabled&&n.selector&&"document"!==n.selector&&"window"!==n.selector)try{e.querySelectorAll(n.selector).length>0&&t.push(n)}catch(e){}return t}clearTracking(){this.initializedInstances=[]}shouldSkip(e){if(!e)return!1;let t=!1;const a=BRFPANEL.postId.toString();switch(e.loadOnChoice){case"everywhere":if(e.loadOnExceptPages&&e.loadOnExceptPages.length>0){e.loadOnExceptPages.map((e=>e.toString())).includes(a)&&(t=!0)}if(!t&&e.loadOnExceptBricksTemplates&&e.loadOnExceptBricksTemplates.length>0){let a=BRFPANEL.activeTemplate.content;e.loadOnExceptBricksTemplates.includes(a)&&(t=!0)}break;case"specificPages":{let n=Array.isArray(e.loadOn)?e.loadOn:e.loadOn.split(",").map((e=>e.trim()));n=n.map((e=>"string"==typeof e?parseInt(e):e)),n.includes(parseInt(a))||(t=!0);break}case"bricksActiveTemplate":{if(!e.loadOnBricksTemplate)break;let a=BRFPANEL.activeTemplate.content;e.loadOnBricksTemplate.includes(a)||(t=!0);break}
1case"custom":e.loadOnCustom.split(",").map((e=>e.trim())).includes(a)||(t=!0);break}return t}}class BricksforgePanel{domContentLoadedEvent;currentUserRole;roles;hideElementsOnly=!1;templateVars;maxQueryNodes=BRF_CONSTANTS.MAX_QUERY_NODES;currentRunningEvent;fromPageTransitions=!1;elementSelector;templateVariables;validator;timelineManager;animationBuilder;actionDispatcher;instanceManager;constructor(e,t=!1,a=!1){this.fromPageTransitions=a,e&&(this.domContentLoadedEvent=e),bricksforgeData||((bricksforgeData={}).panel={}),this.elementSelector=new ElementSelector(this.maxQueryNodes),this.templateVariables=new TemplateVariables,this.validator=new ValidationHelper(this.templateVariables),this.timelineManager=new TimelineManager(this),this.animationBuilder=new AnimationBuilder(this),this.actionDispatcher=new ActionDispatcher(this),this.instanceManager=new InstanceManager(this),t||this.init()}get timelines(){return this.timelineManager?this.timelineManager.timelines:[]}set timelines(e){this.timelineManager&&(this.timelineManager.timelines=e)}get splitTextInstances(){return this.timelineManager?this.timelineManager.splitTextInstances:[]}set splitTextInstances(e){this.timelineManager&&(this.timelineManager.splitTextInstances=e)}get timelineActions(){return this.timelineManager?this.timelineManager.timelineActions:[]}set timelineActions(e){this.timelineManager&&(this.timelineManager.timelineActions=e)}get matchMediaInstances(){return this.timelineManager?this.timelineManager.matchMediaInstances:[]}set matchMediaInstances(e){this.timelineManager&&(this.timelineManager.matchMediaInstances=e)}cleanup(){this.timelineManager&&this.timelineManager.cleanup()}async reinit(){this.cleanup(),this.elementSelector=new ElementSelector(this.maxQueryNodes),this.templateVariables=new TemplateVariables,this.validator=new ValidationHelper(this.templateVariables),this.timelineManager=new TimelineManager(this),this.animationBuilder=new AnimationBuilder(this),this.actionDispatcher=new ActionDispatcher(this),this.instanceManager=new InstanceManager(this),(this.isPanelToolActive()||this.isAnimationPanelToolActive()||this.isNodeEditorToolActive())&&setTimeout((()=>{this.renderPanel()}))}async reinitForQuery(e){if(!e)return void("undefined"!=typeof ScrollTrigger&&ScrollTrigger.refresh());const t=this.findQueryContainer(e);if(!t)return void("undefined"!=typeof ScrollTrigger&&ScrollTrigger.refresh());const a=this.findAffectedTimelines(t),n=this.instanceManager.findAffectedInstances(t),i=this.findAffectedNodes(t);0!==a.length||0!==n.length||0!==i.length?(a.length>0&&(this.cleanupAffectedTimelines(a),await this.reinitAffectedTimelines(a)),n.length>0&&await this.reinitInstancesForContainer(n,t),i.length>0&&await this.reinitNodesForContainer(i,t),"undefined"!=typeof ScrollTrigger&&ScrollTrigger.refresh()):"undefined"!=typeof ScrollTrigger&&ScrollTrigger.refresh()}async reinitInstancesForContainer(e,t){const a=`brf-reinit-scope-${Date.now()}`;t.setAttribute(`data-${a}`,"true");for(const n of e)try{if(0===t.querySelectorAll(n.selector).length)continue;const e={...n,selector:`[data-${a}] ${n.selector}`};await this.handleInstance(e)}catch(e){}t.removeAttribute(`data-${a}`)}findAffectedNodes(e){const t=[];if("undefined"==typeof brfNodeEditor||!brfNodeEditor.nodes)return t;const a=brfNodeEditor.nodes,n=BRFPANEL?.panelNodes?.connections||[],i=a.filter((e=>"event"===e.category));for(const r of i){const i=(r.settings||{}).targetElement;if(!i||"document"===i||"window"===i)continue;if(!["pageLoad","scrollPosition","scrollUp","scrollDown","scroll","visibilitychange","resize"].includes(r.key))try{e.querySelectorAll(i).length>0&&t.push({node:r,nodes:a,connections:n})}catch(e){}}return t}async reinitNodesForContainer(e,t){if("undefined"==typeof brfNodeEditor)return;const a=`brf-reinit-scope-${Date.now()}`;t.setAttribute(`data-${a}`,"true");for(const n of e){const{node:e,nodes:i,connections:r}=n;try{const n=e.settings||{},s=n.targetElement;if(0===t.querySelectorAll(s).length)continue;const o={...e,settings:{...n,targetElement:`[data-${a}] ${s}`}};await brfNodeEditor.startNode(o,i,r)}catch(e){}}t.removeAttribute(`data-${a}`)}findAffectedTimelines(e){const t=[],a=this.timelineManager.timelines;for(const n of a){const a=n.tl,i=n.id;if(!a)continue;if(n.trigger){if(e.contains(n.trigger)){t.push(i);continue}}const r=a.getChildren?a.getChildren(!0,!0,!0):[];for(let a=0;a<r.length;a++){const n=r[a];if("function"==typeof n.targets){const a=n.targets();for(const n of a){const a=n instanceof Element,r=!!a&&e.contains(n);if(a&&r){t.includes(i)||t.push(i);break}}}if(t.includes(i))break}}return t}cleanupAffectedTimelines(e){"undefined"!=typeof ScrollTrigger&&ScrollTrigger.getAll().forEac
1h((t=>{if(t.vars?.id?.startsWith("brf-")){const a=t.vars.id.split("-");if(a.length>=2){const n=a[1];(e.includes(n)||e.includes(parseInt(n)))&&t.kill(!0)}}})),this.timelineManager.timelines=this.timelineManager.timelines.filter((t=>{if(e.includes(t.id)||e.includes(String(t.id))){if(t.tl&&"function"==typeof t.tl.kill)try{t.tl.pause(),t.tl.kill()}catch(e){}return!1}return!0}))}async reinitAffectedTimelines(e){const t=BRFPANEL?.panel?.[0]?.timelines;if(t)for(const a of t)if(e.includes(a.id)||e.includes(String(a.id))){if(this.shouldSkip(a))continue;this.handleTimeline(a,!1,!1)}}findQueryContainer(e){const t=document.querySelectorAll(`[data-query-loop-id="${e}"]`);if(t.length>0)return t[0].parentElement||t[0];const a=document.createTreeWalker(document.body,NodeFilter.SHOW_COMMENT,null,!1);let n=!1;for(;a.nextNode();){if(a.currentNode.textContent.includes(`brx-loop-start-${e}`))return n=!0,a.currentNode.parentElement}if(!n){const e=[],t=document.createTreeWalker(document.body,NodeFilter.SHOW_COMMENT,null,!1);for(;t.nextNode();)t.currentNode.textContent.includes("brx-loop")&&e.push(t.currentNode.textContent.trim())}return null}cleanupForContainer(e){"undefined"!=typeof ScrollTrigger&&ScrollTrigger.getAll().forEach((t=>{if(t.vars?.id?.startsWith("brf-")){const a=t.trigger;a&&e.contains(a)&&t.kill(!0)}})),this.timelineManager.timelines=this.timelineManager.timelines.filter((t=>!t.trigger||!e.contains(t.trigger)||(t.tl&&"function"==typeof t.tl.kill&&(t.tl.pause(),t.tl.kill()),!1)))}async initTimelinesForContainer(e){const t=e.querySelectorAll("*"),a=new Set;t.forEach((e=>{e.classList.forEach((e=>a.add("."+e)))}));const n=BRFPANEL?.panel?.[0]?.timelines;if(!n)return;for(const t of n){if(this.shouldSkip(t))continue;const a=t.triggerSelector,n=t.animations||[];let i=!1;if(a){e.querySelectorAll(a).length>0&&(i=!0)}if(!i)for(const t of n)if(t.selector){if(e.querySelectorAll(t.selector).length>0){i=!0;break}}i&&this.handleTimeline(t,!1,!1)}}isPanelToolActive(){return"undefined"!=typeof BRFPANEL&&1==BRFPANEL.panelActivated}isAnimationPanelToolActive(){return"undefined"!=typeof BRFPANEL&&(void 0===BRFPANEL.animationPanelActivated?1==BRFPANEL.panelActivated:1==BRFPANEL.animationPanelActivated)}isNodeEditorToolActive(){return"undefined"!=typeof BRFPANEL&&(void 0===BRFPANEL.nodeEditorActivated?1==BRFPANEL.panelActivated:1==BRFPANEL.nodeEditorActivated)}getSortedBreakpoints(){let e="undefined"!=typeof BRFPANEL&&BRFPANEL.breakpoints?BRFPANEL.breakpoints:null;e&&!Array.isArray(e)&&(e=Object.values(e)),e&&e.length||(e=[{key:"desktop",base:!0},{key:"tablet_portrait",width:991},{key:"mobile_landscape",width:767},{key:"mobile_portrait",width:478}]);const t=e.map((e=>({key:e.key,width:e.width?parseInt(e.width):null,base:!0===e.base}))).filter((e=>e.key));return[...t.filter((e=>e.base)),...t.filter((e=>!e.base)).sort(((e,t)=>(t.width||0)-(e.width||0)))]}getBreakpointRangeQuery(e){const t=this.getSortedBreakpoints(),a=t.findIndex((t=>t.key===e));if(-1===a)return null;const n=t[a],i=t[a+1];if(n.base)return i&&i.width?"(min-width: "+(i.width+1)+"px)":"(min-width: 0px)";const r="(max-width: "+n.width+"px)";return i&&i.width?"(min-width: "+(i.width+1)+"px) and "+r:r}getViewportsMediaQuery(e){if(!e||!Array.isArray(e)||!e.length)return null;const t=this.getSortedBreakpoints();if(e.length>=t.length)return null;const a=e.map((e=>this.getBreakpointRangeQuery(e))).filter(Boolean);return a.length?a.join(", "):null}timelineHasViewportOverrides(e){return!(!e||!e.viewportOverrides)&&Object.keys(e.viewportOverrides).some((t=>{const a=e.viewportOverrides[t];if(!a)return!1;const n=Object.keys(a).filter((e=>"animations"!==e)).length,i=a.animations?Object.keys(a.animations).length:0;return n>0||i>0}))}resolveTimelineForViewport(e,t){const a=["repeat","repeatDelay","yoyo","scrub","scrubValue","scrollStart","scrollEnd","toggleActions","pin","pinSelector","pinSpacing","markers","batch","stagger","staggerAmount","staggerFrom","staggerEase","snap","snapTo","snapDuration","snapDelay","snapEase"],n=["duration","delay","repeat","yoyo","ease","position","customPosition","stagger","staggerValue","data","data2"],i=JSON.parse(JSON.stringify(e)),r=this.getSortedBreakpoints().map((e=>e.key)),s=r.indexOf(t);if(s<=0)return delete i.viewportOverrides,i;const o=r.slice(1,s+1);for(const t of o){const r=e.viewportOverrides&&e.viewportOverrides[t];
1r&&(a.forEach((e=>{void 0!==r[e]&&(i[e]=r[e])})),r.animations&&(i.animations||[]).forEach((e=>{const t=r.animations[e.id];t&&(n.forEach((a=>{void 0!==t[a]&&(e[a]=t[a])})),["controls","controls2"].forEach((a=>{t[a]&&(e[a]=Object.assign({},e[a]||{},t[a]),Object.keys(e[a]).forEach((t=>{null===e[a][t]&&delete e[a][t]})))})))})))}return delete i.viewportOverrides,i}resolveEase(e){if(!e)return e;let t=e;"object"==typeof t&&t.value&&(t=t.value),t=String(t).trim();if(!(/^M[\d\s.,\-+CSQLTAHVZcsqlthavz]+$/.test(t)&&t.length>4))return t;if("undefined"==typeof CustomEase)return console.warn("Bricksforge Panel: A custom ease curve is used, but the CustomEase plugin is not loaded. Falling back to power1.out."),"power1.out";if(gsap.registerPlugin(CustomEase),this.customEaseCache||(this.customEaseCache={}),!this.customEaseCache[t])try{this.customEaseCache[t]=CustomEase.create("brf-ce-"+Object.keys(this.customEaseCache).length,t)}catch(e){console.warn("Bricksforge Panel: Invalid custom ease curve.",t),this.customEaseCache[t]="power1.out"}return this.customEaseCache[t]}
1async init(){this.setGlobals(),this.initTemplateVars(),(this.isPanelToolActive()||this.isAnimationPanelToolActive()||this.isNodeEditorToolActive())&&(bricksIsFrontend||!this.isPanelToolActive()&&!this.isNodeEditorToolActive()||this.loadPanel(),setTimeout((()=>{this.renderPanel()}))),this.renderLogic(),this.hideElementsOnly&&this.handlePermissionSettings()}setGlobals(){if("undefined"!=typeof BRFPANEL){if(this.currentUserRole=BRFPANEL.currentUserRole,this.roles=BRFPANEL.permissions,this.roles&&Array.isArray(this.roles))for(let e of this.roles)e.value==this.currentUserRole&&(this.hideElementsOnly=e.permissions.hideOnly);bricksforgeData.panel.close=this.closePanel}}getCachedElement(e,t=!1,a=document){return this.elementSelector.getCachedElement(e,t,a)}isValidSelector(e){return this.elementSelector.isValidSelector(e)}getScrollTriggerSafeSelectors(e,t=50){return this.elementSelector.getScrollTriggerSafeSelectors(e,t)}initTemplateVars(){this.templateVars=this.templateVariables.variables,bricksforgeData.panel.variables=this.templateVars}renderLogic(){document.addEventListener("click",(e=>{const t=e.target;t instanceof HTMLElement&&"BUTTON"==t.tagName&&t.parentNode&&"brf-render"==t.parentNode.getAttribute("controlkey")&&(e.preventDefault(),document.querySelector("li.reload-canvas").click())}))}closePanel(){let e=document.querySelector("#bricksforge-triggers .brf-triggers-container"),t=document.querySelector("#bricks-panel"),a=document.querySelector("#bricks-structure"),n=document.querySelector("#bricks-builder-iframe");e&&(e.style.bottom="-"+e.getAttribute("data-height"),e.style.opacity=0),bricksforgeData.panel.isOpen=!1,document.body.removeAttribute("data-brf-timeline-focus"),document.body.removeAttribute("data-brf-panel-open"),t&&(t.style.height="calc(100vh - 40px)"),a&&(a.style.height="calc(100vh - 40px)",a.removeAttribute("style"),document.querySelector(".brx-body").__vue_app__.config.globalProperties.$_state.showStructure=!0),n&&n.removeAttribute("style");const i=new URL(window.location.href);i.searchParams.delete("brf-panel"),i.searchParams.delete("brf-focus"),i.searchParams.delete("brf-page"),window.history.replaceState(null,null,i),document.dispatchEvent(new CustomEvent("brf-panel-close"))}loadPanel(){let e=document.createElement("div");e.setAttribute("id","bricksforge-triggers"),document.querySelector("#bricks-preview")&&document.querySelector("#bricks-preview").appendChild(e);let t=document.querySelector("[id^=bricks-toolbar] ul.group-wrapper"),a=document.createElement("li");a.classList.add("brf-panel"),a.setAttribute("data-balloon","Bricksforge Panel (Shortcut: CTRL + P)"),a.setAttribute("data-balloon-pos","bottom");let n=document.createElement("span");n.classList.add("bricks-svg-wrapper"),a.appendChild(n),t&&t.appendChild(a),setTimeout((()=>{document.querySelector("#bricksforge-triggers .brf-triggers-container")&&(document.querySelector("#bricksforge-triggers .brf-triggers-container").style.bottom="-"+document.querySelector("#bricksforge-triggers .brf-triggers-container").getAttribute("data-height"))}),500),a.addEventListener("click",(()=>{const e=new Proxy(new URLSearchParams(window.location.search),{get:(e,t)=>e.get(t)});let t=document.querySelector("#bricksforge-triggers .brf-triggers-container");if(t.style.bottom&&1==t.style.opacity){if(this.closePanel(),e["brf-panel"]){const e=new URL(window.location.href);e.searchParams.delete("brf-panel"),window.history.replaceState(null,null,e)}document.dispatchEvent(new CustomEvent("brf-panel-close"))}else if(t.style.bottom="-2px",t.style.opacity=1,document.body.setAttribute("data-brf-panel-open","true"),!e["brf-panel"]){const e=new URL(window.location.href);e.searchParams.set("brf-panel","1"),window.history.replaceState(null,null,e),bricksforgeData.panel.isOpen=!0,document.dispatchEvent(new CustomEvent("brf-panel-open"))}}))}handlePermissionSettings(){document.addEventListener("mousedown",(e=>{let t=e.target;t&&(t.matches("li.elements")||t.closest("li")&&t.closest("li").classList.contains("elements"))&&setTimeout((()=>{this.hideCategories()}),250)})),setTimeout((()=>{this.hideCategories()}),750)}hideCategories(){for(let e of document.querySelectorAll("#bricks-panel-elements-categories .category")){if(!(e.classList.contains("category-layout")||e.classList.contains("category-basic")||e.classList.contains("category-general")||e.classList.contains("category-media")||e.classList.contains("category-wordpress")||e.classList.contains("category-single"))){let t=e.querySelector(".sortable-wrapper").querySelectorAll("li");for(let e of t)e.setAttribute("style","display:block !important");return}let t=e.querySelector(".sortable-wrapper").querySelectorAll("li"),a=!0;for(let e of t)"none"!=getComputedStyle(e).display&&(a=!1);a&&(e.style.display="none")}}renderPanel(e=!1,t=[],a=!1,n=!1){if(!bricksIsFrontend&&!this.isPanelOpen())return;this.timelines.length>1&&(this.timelines=[]);const i="undefined"!=typeof BRFPANEL&&BRFPANEL.panel&&BRFPANEL.panel.length?BRFPANEL.panel[0]:null;if(!i){if(n){this.timelines=[],this.handleFromAnimations();for(let e of t)this.handleTimeline(e,!1,a);return}return}if(n){this.timelines=[],this.handleFromAnimations();for(let e of t)this.handleTimeline(e,!1,!0);return}const r=i.instances,s=BRFPANEL.panelNodes,o=!0===bricksIsFrontend,l=BRFPANEL&&BRFPANEL.postId?BRFPANEL.postId.toString():"";if(this.isPanelToolActive()&&!e&&o&&r&&r.length>0)for(let e of r){if(e.disabled)continue;let t=this.checkInstanceConditions({data:e,trigger:e.selector||null,target:null});if(t&&"specificPages"===e.loadOnChoice&&e.loadOn&&""!==e.loadOn.trim()){e.loadOn.split(",").map((e=>e.trim())).includes(l)||(t=!1)}t&&this.handleInstance(e)}this.isNodeEditorToolActive()&&s&&s.nodes&&s.nodes.length>0&&document.dispatchEvent(new CustomEvent("brf-panel-nodes",{detail:{nodes:s,domEvent:this.domContentLoadedEvent}}));let c=i.timelines;if(e&&(this.timelines=[],c=[t]),a){this.timelines=[],c=t;const e=document.querySelectorAll("path[data-original]");gsap.set(e,{morphSVG:(e,t)=>
1t.getAttribute("data-original")})}if(!c||!c.length)return;if(!this.isAnimationPanelToolActive())return;if("undefined"==typeof gsap)return void console.warn("Bricksforge Panel: Timelines found but GSAP is not loaded.");this.handleTimelineEventListeners(),this.handleFromAnimations();const d=c.length,u=!o;for(let t of c){if(t.disabled)continue;if(o&&t.loadOnChoice&&t.loadOn&&(""!==t.loadOn||0==t.loadOn.length)){if(this.shouldSkip(t))continue}const n=t.matchMedia&&""!==String(t.matchMedia).trim();if(o&&this.timelineHasViewportOverrides(t)){const n=this.getSortedBreakpoints(),i=t.viewports&&t.viewports.length&&t.viewports.length<n.length?t.viewports:null,r=gsap.matchMedia();for(const s of n){if(i&&!i.includes(s.key))continue;const n=this.getBreakpointRangeQuery(s.key);if(!n)continue;const o=this.resolveTimelineForViewport(t,s.key),l=r.add(n,(()=>{this.handleTimeline(o,e,a)}));this.matchMediaInstances.push(l)}continue}const i=this.getViewportsMediaQuery(t.viewports)||(n?t.matchMedia:null);if(i&&o){const n=gsap.matchMedia().add(i,(()=>{this.handleTimeline(t,e,a)}));this.matchMediaInstances.push(n)}else{if(this.fromPageTransitions&&this.timelineHas3DModel(t))return;u&&1===d?this.handleTimelineOptimized(t,e,a):this.handleTimeline(t,e,a)}}if(o&&requestAnimationFrame((()=>{requestAnimationFrame((()=>{document.documentElement.classList.remove("brf-fouc-pending")}))})),"undefined"!=typeof ScrollTrigger){this.handleAnchorLinks();let e=0;this.isDesktop()||(e=2e3),setTimeout((()=>{ScrollTrigger.sort()}),e)}}timelineHas3DModel(e){return this.timelineManager.timelineHas3DModel(e)}shouldSkip(e){return this.instanceManager.shouldSkip(e)}handleFromAnimations(){if(bricksIsFrontend)return;const e=BRFPANEL.panel[0]?.timelines;if(e)for(let t of e)for(let e of t.animations)if("from"==e.method){let a=!!t.animateTrigger&&t.animateTrigger,n=t.triggerSelector?t.triggerSelector:"",i=e.selector;!0===a&&n&&(i=e.childSelector?this.getCachedElement(n+" "+e.childSelector,!0,document):this.getCachedElement(n,!0,document)),i=this.getElementsUpTo(this.maxQueryNodes,i),gsap.set(i,{clearProps:!0})}}getElementsUpTo(e,t,a=document.documentElement){return this.elementSelector.getElementsUpTo(e,t,a)}removeFoucClass(e){let t=0;e.classList.contains("brf-three-js")&&(t=200),setTimeout((()=>{e.classList.remove("brf-prevent-fouc")}),t)}handleAnchorLinks(){setTimeout((()=>{if(window.location.hash){let e=window.location.hash,t=document.querySelector(e);ScrollTrigger.refresh(),t&&"undefined"==typeof Lenis&&"undefined"==typeof ScrollSmoother&&t.scrollIntoView({behavior:"smooth",block:"start",inline:"nearest"})}}),100)}wait(e){return new Promise((t=>setTimeout(t,e)))}handleTimelineEventListeners(){bricksIsFrontend&&this.handleSplitTextInstancesRefresh()}isDesktop(){return!/Mobi|Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}handleSplitTextInstancesRefresh(){return this.timelineManager.handleSplitTextInstancesRefresh()}refreshTimelines({onlySplitText:e=!1}={}){return this.timelineManager.refreshTimelines({onlySplitText:e})}hasSplitTextAnimation(e){return this.timelineManager.hasSplitTextAnimation(e)}checkInstanceConditions(e){return this.validator.checkConditions(e)}async handleInstance(e){if(!e.event||!e.selector||!e.actions.length){if(!(e.selector||"pageLoad"==e.event||e.selector||"scrollPosition"==e.event||"scrollUp"==e.event||"scrollDown"==e.event||"visibilitychange"==e.event||"resize"==e.event||"sliderReady"==e.event||"sliderMove"==e.event||"sliderMoved"==e.event||"sliderVisible"==e.event||"sliderHidden"==e.event||"sliderClick"==e.event||"sliderResize"==e.event||"sliderResized"==e.event||"sliderDrag"==e.event||"sliderDragging"==e.event||"sliderDragged"==e.event||"sliderOverflow"==e.event||e.event.includes("wpgb")))return void console.warn("You try to use the Bricksforge Panel, but there are some informations missing. This warning appears for the instance: "+(e.name?e.name:"No Name"));e.selector="html"}let t,a=e.selector,n=!1,i=e.event,r=e.actions,s=!!e.delay&&e.delay;switch(s&&await this.wait(s),e.selectorType){case"exactly":default:a=document.querySelector(a);break;case"all":a=document.querySelectorAll(a),n=!0;break;case"siblings":a=document.querySelector(a).parentNode.children,n=!0;break;case"parent":a=document.querySelector(a).parentNode;break;case"children":a=document.querySelector(a).children,n=!0;break;case"closest":if(!e.closestValue)break;a=document.querySelector(a).closest(e.closestValue)}if(null==a&&"document"==e.selector&&(a=document),null==a&&"window"==e.selector&&(a=window),null!=a)for(let s of r){let l=s.action,c=this.getTargetElement(l.target,l.targetElement,a,e,null)[0];switch(l.value){case"followCursor":if(!!!l.forceHideWhenLeaves)break;n&&"object"==typeof a&&a.forEach((e=>{e.addEventListener("mouseleave",(e=>
1{c&&NodeList.prototype.isPrototypeOf(c)?c.forEach((e=>{e&&(e.style.visibility="hidden")})):c.style.visibility="hidden"}))}))}switch(i){case"scrollPosition":document.addEventListener("scroll",(t=>{if(e.consoleLog&&"event"==e.consoleLog&&console.log(t),!e.scrollPosition||!e.scrollPositionOperator)return;let n;switch(e.preventDefault&&t.preventDefault(),e.stopPropagation&&t.stopPropagation(),e.scrollPositionOperator){case"==":default:n=window.scrollY==e.scrollPosition;break;case">":n=window.scrollY>e.scrollPosition;break;case"<":n=window.scrollY<e.scrollPosition;break;case">=":n=window.scrollY>=e.scrollPosition;break;case"<=":n=window.scrollY<=e.scrollPosition}n&&this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s})}));break;case"scrollUp":var o=0;document.addEventListener("scroll",(t=>{var n=window.pageYOffset||document.documentElement.scrollTop;n<o&&(e.consoleLog&&"event"==e.consoleLog&&console.log(t),e.preventDefault&&t.preventDefault(),e.stopPropagation&&t.stopPropagation(),r.forEach((n=>{this.fireAction({action:n.action.value,selector:a,instance:e,actionData:n.action,event:t,actionDataRaw:n})}))),o=n<=0?0:n}),!1);break;case"scrollDown":o=0;document.addEventListener("scroll",(t=>{var n=window.scrollY||document.documentElement.scrollTop;n>o&&(e.consoleLog&&"event"==e.consoleLog&&console.log(t),e.preventDefault&&t.preventDefault(),e.stopPropagation&&t.stopPropagation(),r.forEach((n=>{this.fireAction({action:n.action.value,selector:a,instance:e,actionData:n.action,event:t,actionDataRaw:n})}))),o=n<=0?0:n}),!1);break;case"inViewport":if(!a)return;document.addEventListener("scroll",(t=>{if(e.preventDefault&&t.preventDefault(),e.stopPropagation&&t.stopPropagation(),n)a.forEach((a=>{var n=a.getBoundingClientRect(),i=n.top,r=n.bottom;let o=e.inViewportVisibility?e.inViewportVisibility:"partially",l=e.inViewportVisibilityOffset?e.inViewportVisibilityOffset:0;("partially"==o?i<window.innerHeight-l&&r>=0:i>=0&&r<=window.innerHeight+l)&&(e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s}))}));else{var i=a.getBoundingClientRect(),r=i.top,o=i.bottom;let n=e.inViewportVisibility?e.inViewportVisibility:"partially",l=e.inViewportVisibilityOffset?e.inViewportVisibilityOffset:0;("partially"==n?r<window.innerHeight-l&&o>=0:r>=0&&o<=window.innerHeight+l)&&(e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s}))}}));break;case"notInViewport":if(!a)return;document.addEventListener("scroll",(t=>{if(e.preventDefault&&t.preventDefault(),e.stopPropagation&&t.stopPropagation(),n)a.forEach((a=>{var n=a.getBoundingClientRect(),i=n.top,r=n.bottom;i<window.innerHeight&&r>=0||(e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s}))}));else{var i=a.getBoundingClientRect(),r=i.top,o=i.bottom;r<window.innerHeight&&o>=0||(e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s}))}}));break;case"pageLoad":this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:this.domContentLoadedEvent,actionDataRaw:s});break;case"visibilitychange":document.addEventListener("visibilitychange",(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),e.visibilityState&&document.visibilityState==e.visibilityState&&this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s})}));break;case"resize":window.addEventListener("resize",(t=>{if(e.consoleLog&&"event"==e.consoleLog&&console.log(t),e.resizeDimension&&e.resizeOperator&&e.resizeValue)switch(e.resizeOperator){case"==":"width"==e.resizeDimension&&window.innerWidth==e.resizeValue&&this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s}),"height"==e.resizeDimension&&window.innerHeight==e.resizeValue&&this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s});break;case">":"width"==e.resizeDimension&&window.innerWidth>e.resizeValue&&this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s}),"height"==e.resizeDimension&&window.innerHeight>e.resizeValue&&this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s});break;case"<":"width"==e.resizeDimension&&window.innerWidth<e.resizeValue&&this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s}),"height"==e.resizeDimension&&window.innerHeight<e.resizeValue&&this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s});break;case">=":"width"==e.resizeDimension&&window.innerWidth>=e.resizeValue&&this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s}),"height"==e.resizeDimension&&window.innerHeight>=e.resizeValue&&this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s});break;case"<=":"width"==e.resizeDimension&&window.innerWidth<=e.resizeValue&&this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s}),"height"==e.resizeDimension&&window.innerHeight<=e.resizeValue&&this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s});break;default:this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s})}else this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s})}));break;
1case"resizeObserver":if(!a)return;new ResizeObserver((t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s})})).observe(a);break;case"mutationObserver":if(!a)return;if(n)a.forEach((t=>{let a=!!e.mutationObserverAttributes&&e.mutationObserverAttributes,n=!!e.mutationObserverChildList&&e.mutationObserverChildList,i=!!e.mutationObserverCharacterData&&e.mutationObserverCharacterData,r=!!e.mutationObserverSubTree&&e.mutationObserverSubTree;new MutationObserver((a=>{e.consoleLog&&"event"==e.consoleLog&&console.log(a),this.fireAction({action:s.action.value,selector:t,instance:e,actionData:s.action,event:a,actionDataRaw:s})})).observe(t,{attributes:a,childList:n,characterData:i,subtree:r})}));else{let t=!!e.mutationObserverAttributes&&e.mutationObserverAttributes,n=!!e.mutationObserverChildList&&e.mutationObserverChildList,i=!!e.mutationObserverCharacterData&&e.mutationObserverCharacterData,r=!!e.mutationObserverSubTree&&e.mutationObserverSubTree;new MutationObserver((t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,actionData:s.action,event:t,actionDataRaw:s})})).observe(a,{attributes:t,childList:n,characterData:i,subtree:r})}break;case"sliderMove":if(t=await this.handleSliderEvent(e.sliderId),!t)break;t.on("move",(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}));break;case"sliderMoved":if(t=await this.handleSliderEvent(e.sliderId),!t)break;t.on("moved",(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}));break;case"sliderVisible":if(t=await this.handleSliderEvent(e.sliderId),!t)break;t.on("visible",(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}));break;case"sliderHidden":if(t=await this.handleSliderEvent(e.sliderId),!t)break;t.on("hidden",(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}));break;case"sliderClick":if(t=await this.handleSliderEvent(e.sliderId),!t)break;t.on("click",(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}));break;case"sliderResize":if(t=await this.handleSliderEvent(e.sliderId),!t)break;t.on("resize",(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}));break;case"sliderResized":if(t=await this.handleSliderEvent(e.sliderId),!t)break;t.on("resized",(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}));break;case"sliderDrag":if(t=await this.handleSliderEvent(e.sliderId),!t)break;t.on("drag",(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}));break;case"sliderDragging":if(t=await this.handleSliderEvent(e.sliderId),!t)break;t.on("dragging",(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}));break;case"sliderDragged":if(t=await this.handleSliderEvent(e.sliderId),!t)break;t.on("dragged",(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}));break;case"sliderOverflow":if(t=await this.handleSliderEvent(e.sliderId),!t)break;t.on("overflow",(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}));break;case"wpgbFacetInit":if("undefined"==typeof WP_Grid_Builder||!WP_Grid_Builder.instances)break;
1Object.values(WP_Grid_Builder.instances).forEach((t=>{t.facets&&t.facets.on("init",(t=>{this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}))}));break;case"wpgbFacetLoaded":if("undefined"==typeof WP_Grid_Builder||!WP_Grid_Builder.instances)break;Object.values(WP_Grid_Builder.instances).forEach((t=>{t.facets&&t.facets.on("loaded",(t=>{this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}))}));break;case"wpgbFacetAppended":if("undefined"==typeof WP_Grid_Builder||!WP_Grid_Builder.instances)break;Object.values(WP_Grid_Builder.instances).forEach((t=>{t.facets&&t.facets.on("appended",(t=>{this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}))}));break;case"wpgbFacetRefresh":if("undefined"==typeof WP_Grid_Builder||!WP_Grid_Builder.instances)break;Object.values(WP_Grid_Builder.instances).forEach((t=>{t.facets&&t.facets.on("refresh",(t=>{this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}))}));break;case"wpgbFacetChange":if("undefined"==typeof WP_Grid_Builder||!WP_Grid_Builder.instances)break;Object.values(WP_Grid_Builder.instances).forEach((t=>{t.facets&&t.facets.on("change",(t=>{this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}))}));break;case"wpgbFacetReset":if("undefined"==typeof WP_Grid_Builder||!WP_Grid_Builder.instances)break;Object.values(WP_Grid_Builder.instances).forEach((t=>{t.facets&&t.facets.on("reset",(t=>{this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}))}));break;case"custom":if(!e.customEventName)break;if(n){Array.prototype.forEach.call(a,(t=>{t.addEventListener(e.customEventName,(a=>{e.consoleLog&&"event"==e.consoleLog&&console.log(a),e.preventDefault&&a.preventDefault(),e.stopPropagation&&a.stopPropagation(),this.fireAction({action:s.action.value,selector:t,instance:e,event:a,actionData:s.action,actionDataRaw:s})}))}));break}a.addEventListener(e.customEventName,(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),e.preventDefault&&t.preventDefault(),e.stopPropagation&&t.stopPropagation(),this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}));break;default:if(n){Array.prototype.forEach.call(a,(t=>{t.addEventListener(i,(a=>{e.consoleLog&&"event"==e.consoleLog&&console.log(a),e.preventDefault&&a.preventDefault(),e.stopPropagation&&a.stopPropagation(),this.fireAction({action:s.action.value,selector:t,instance:e,event:a,actionData:s.action,actionDataRaw:s})}))}));break}a.addEventListener(i,(t=>{e.consoleLog&&"event"==e.consoleLog&&console.log(t),e.preventDefault&&t.preventDefault(),e.stopPropagation&&t.stopPropagation(),this.fireAction({action:s.action.value,selector:a,instance:e,event:t,actionData:s.action,actionDataRaw:s})}))}}else console.warn("Bricksforge Panel: Selector not found: "+e.selector)}handleTemplateVars(e,t){return this.templateVariables.replace(e,t)}getFormFieldValue(e){return this.templateVariables.getFormFieldValue(e)}getFormData(e){return this.templateVariables.getFormData(e)}getTargetElement(e,t,a,n,i){return t&&(t=this.handleTemplateVars(t,{event:i})),this.elementSelector.getTargetElement(e,t,a,n,i)}async fireAction(e){let t=e.instance,a=e.action,n=e.actionData,i=e.selector,r=!!e.event&&e.event.target,s=e.actionDataRaw,o=!!n.delay&&n.delay,l=!!e.isNode&&e.isNode;const c=this.getTargetElement(n.target,n.targetElement,i,t,e.event);let d=c[0];"same"!=n.target&&"triggered"!=n.target||"inViewport"!=t.event&&"notInViewport"!=t.event||(d=i);let u=c[1];if(!a||!i)return;if(!l&&s.conditions&&s.conditions.length>0){if(!this.checkInstanceConditions({data:s,trigger:i,target:d,event:e.event}))return}o&&await this.wait(o);let p=n.except&&"none"!=n.except,h=!!n.exceptSelector&&n.exceptSelector,f=r;if(p&&!1!==h&&r&&r!=document.querySelector(h)&&(f=r.closest(h)),"triggered"==d)if(r&&r!=document.querySelector(t.selector))if(t.x){let g=t?.event?.settings?.targetElement;g&&(d=document.querySelector(g))}else d=r.closest(t.selector);else if(t.x){let m=t?.event?.settings?.targetElement;m&&(d=document.querySelector(m))}else d=document.querySelector(t.selector);switch(a){case"show":if(u)for(let Ae of d)p&&f==Ae||(Ae.style.display=n.display?this.handleTemplateVars(n.display,{event:e.event}):"block");else{if(d==window||d==document)return;d.style||(d.style={}),d.style.display=n.display?this.handleTemplateVars(n.display,{event:e.event}):"block"}break;case"hide":if(u)for(let De of d)p&&f==De||(De.style.display="none");else d.style.display="none";break;case"addClass":if(!n.cssClass)break;if(u)for(let Ee of d)p&&f==Ee||Ee.classList.add(this.handleTemplateVars(n.cssClass,{event:e.event}));else d.classList.add(this.handleTemplateVars(n.cssClass,{event:e.event}));break;case"removeClass":if(!n.cssClass)break;if(u)for(let Ie of d)p&&f==Ie||Ie.classList.remove(this.handleTemplateVars(n.cssClass,{event:e.event}));else d.classList.remove(this.handleTemplateVars(n.cssClass,{event:e.event}));break;case"toggleClass":if(!n.cssClass)break;if(u)for(let Ce of d)p&&f==Ce||Ce.classList.toggle(this.handleTemplateVars(n.cssClass,{event:e.event}));else d.classList.toggle(this.handleTemplateVars(n.cssClass,{event:e.event}));break;case"setAttribute":if(!n.attributeKey||!n.attributeValue)break;
1if(u)for(let Pe of d)p&&f==Pe||Pe.setAttribute(this.handleTemplateVars(n.attributeKey,{event:e.event}),this.handleTemplateVars(n.attributeValue,{event:e.event}));else d.setAttribute(this.handleTemplateVars(n.attributeKey,{event:e.event}),this.handleTemplateVars(n.attributeValue,{event:e.event}));break;case"removeAttribute":if(!n.attributeKeyRemoval)break;if(u)for(let Le of d)p&&f==Le||Le.removeAttribute(this.handleTemplateVars(n.attributeKeyRemoval,{event:e.event}));else d.removeAttribute(this.handleTemplateVars(n.attributeKeyRemoval,{event:e.event}));break;case"innerText":if(!n.innerText)break;if(u)for(let Fe of d)p&&f==Fe||(Fe.innerText=this.handleTemplateVars(n.innerText,{event:e.event}));else d.innerText=this.handleTemplateVars(n.innerText,{event:e.event});break;case"gsap":if("pageLoad"==t.event&&await this.wait(0),!n.animationAction||!n.animationTimeline)return;let v=n.animationAction,b=n.animationTimeline,y=n.animationSelectorType?n.animationSelectorType:"all",w=null!=n.animationTimeScale?n.animationTimeScale:1,k=[];"all"==y&&(k=this.timelines.filter((e=>e.id==b))),"trigger"==y&&(k=this.timelines.filter((e=>{let t=[...r.getElementsByTagName("*")].includes(e.trigger),a=e.trigger.contains(r);return!(e.id!=b||e.trigger!=r&&!t&&!a)}))),k.forEach((e=>{let a=e.tl;if(1!=w&&a.timeScale(w),t.event.includes("wpgb")){let e=a.getChildren();return a.clear(),e.forEach((e=>{let t=e.vars,n=(e.delay(),e.data.method),i=e._start,r=e.data.selector;switch(n){case"to":t.autoAlpha=1,a.to(r,{...t},i);break;case"from":t.autoAlpha=0,a.from(r,{...t},i);break;case"fromTo":t.autoAlpha=1,a.fromTo(r,{...t.startAt},{...t},i)}})),void a.restart()}switch(v){case"play":a.play();break;case"pause":a.pause();break;case"restart":a.restart();break;case"resume":a.resume();break;case"reverse":a.reverse()}}));break;case"jsFunction":if(!n.jsFunctionName)return;let S=e.event,T=n.jsFunctionName,A=new Function("return (async (trigger, event, timelines, getTimeline) => {"+T+"})")();"function"==typeof A&&(async()=>{const e=await this.getTimelines();await A(i,S,e,(async e=>await this.getTimelineById(e)))})();break;case"ajaxFunction":if(!n.ajaxFunctionName)return;const D=BRFPANEL.ajaxurl,E=this.handleTemplateVars(n.ajaxFunctionName,{event:e.event}),I=this.handleTemplateVars(n.ajaxFunctionLiveUpdateSelector,{event:e.event}),C=n.ajaxFunctionLiveUpdateInsertMethod??"innerHTML",P=n.ajaxFunctionDebug;let L=n.ajaxFunctionData,F={};F.action=E,F.nonce=BRFPANEL.ajaxNonce,L&&L.length>0&&L.forEach((t=>{F[this.handleTemplateVars(t.key,{event:e.event})]=this.handleTemplateVars(t.value,{event:e.event})}));try{let Ve=await fetch(D,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},credentials:"same-origin",body:new URLSearchParams(F).toString()}),xe=await Ve.json();if(xe&&xe.data){const Ne=xe.data.message??!1;if(P&&console.log("Bricksforge Ajax Response",xe.data),Ne&&I){const Oe=document.querySelector(I);if(Oe)switch(C){case"innerHTML":Oe.innerHTML=Ne;break;case"appendHTML":Oe.insertAdjacentHTML("beforeend",Ne);break;case"prependHTML":Oe.insertAdjacentHTML("afterbegin",Ne);break;case"innerText":Oe.innerText=Ne;break;case"append":Oe.append(Ne);break;case"prepend":Oe.prepend(Ne)}}}}catch(Re){console.log(Re)}break;case"sendEmail":if(!e.actionData.emailDesignerTemplate)return void console.warn("No email designer template selected");if(window.bricksforgeData.lastSentEmail&&window.bricksforgeData.lastSentEmail>Date.now()-1e3)return;const V=e.actionData.emailDesignerTemplate,x=BRFPANEL.ajaxurl,N="bricksforge_send_mail";let O={};O.action=N,O.nonce=BRFPANEL.ajaxNonce,O.template=V,e.actionData.mailTo&&(O.to=this.handleTemplateVars(e.actionData.mailTo,{event:e.event})),e.actionData.mailSubject&&(O.subject=this.handleTemplateVars(e.actionData.mailSubject,{event:e.event})),e.actionData.mailMessage&&(O.message=this.handleTemplateVars(e.actionData.mailMessage,{event:e.event}));try{200==(await fetch(x,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},credentials:"same-origin",body:new URLSearchParams(O).toString()})).status&&(window.bricksforgeData.lastSentEmail=Date.now())}catch(Me){console.log(Me)}break;case"updateOption":if(!n.optionName||!n.optionValue)return;let R=this.handleTemplateVars(n.optionName,{event:e.event}),M=this.handleTemplateVars(n.optionValue,{event:e.event}),B=!!n.ajaxFunctionLiveUpdateSelector&&n.ajaxFunctionLiveUpdateSelector;
1const q=n.ajaxFunctionLiveUpdateInsertMethod?n.ajaxFunctionLiveUpdateInsertMethod:"replaceText",_=BRFPANEL.ajaxurl;let j={action:"bricksforge_update_option"};j.nonce=BRFPANEL.ajaxNonce,j.option_name=R,j.option_value=M;try{let Be=await fetch(_,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},credentials:"same-origin",body:new URLSearchParams(j).toString()});if(200==Be.status&&B){if(B=document.querySelector(B),!B)return;let qe=await Be.json();if(qe=qe.data.message??!1,!qe)return;switch(q){case"innerHTML":B.innerHTML=qe;break;case"appendHTML":B.insertAdjacentHTML("beforeend",qe);break;case"prependHTML":B.insertAdjacentHTML("afterbegin",qe);break;case"innerText":B.innerText=qe;break;case"append":B.append(qe);break;case"prepend":B.prepend(qe)}}}catch(_e){console.log(_e)}break;case"deleteOption":if(!n.optionName)return;let H=this.handleTemplateVars(n.optionName,{event:e.event});const W=BRFPANEL.ajaxurl;let z={action:"bricksforge_delete_option"};z.nonce=BRFPANEL.ajaxNonce,z.option_name=H;try{await fetch(W,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},credentials:"same-origin",body:new URLSearchParams(z).toString()})}catch(je){console.error(je)}break;case"gsapFlip":if(!d)break;gsap.registerPlugin(Flip);let K=e.actionData.flipStylesProps?e.actionData.flipStylesProps:"",G=e.actionData.flipEase?e.actionData.flipEase:"power1.inOut",$=e.actionData.flipDuration?e.actionData.flipDuration:1,Y=!!e.actionData.flipIncludeChildren&&e.actionData.flipIncludeChildren,U=!!e.actionData.flipAbsolute&&e.actionData.flipAbsolute;if(u)for(let He of d){if(p&&f==He)continue;const We=Flip.getState(1==Y?[He,...He.children]:He,{props:K});if(He.style.setProperty("transition","none"),Y)for(let ze of He.children)ze.style.setProperty("transition","none");switch(e.actionData.flipStylesInput){case"custom":if(!e.actionData.flipStylesCode)break;let Ke=new Function("return ((trigger, target, event) => {"+e.actionData.flipStylesCode+"})")();"function"==typeof Ke&&Ke(i,He,e.event);break;case"removeClass":if(!e.actionData.flipStylesInputClassName)return;He.classList.remove(this.handleTemplateVars(e.actionData.flipStylesInputClassName,{event:e.event}));break;case"addClass":if(!e.actionData.flipStylesInputClassName)return;He.classList.add(this.handleTemplateVars(e.actionData.flipStylesInputClassName,{event:e.event}));break;case"toggleClass":if(!e.actionData.flipStylesInputClassName)return;He.classList.toggle(this.handleTemplateVars(e.actionData.flipStylesInputClassName,{event:e.event}));break;case"appendTo":if(!e.actionData.flipStylesInputDOMElement)return;document.querySelector(this.handleTemplateVars(e.actionData.flipStylesInputDOMElement,{event:e.event})).append(He)}Flip.from(We,{duration:$,ease:G,absolute:U,nested:!0})}else{const Ge=Flip.getState(1==Y?[d,...d.children]:d,{props:K});if(d.style.setProperty("transition","none"),Y)for(let $e of d.children)$e.style.setProperty("transition","none");switch(e.actionData.flipStylesInput){case"custom":if(!e.actionData.flipStylesCode)break;let Ye=new Function("return ((trigger, target, event) => {"+e.actionData.flipStylesCode+"})")();"function"==typeof Ye&&Ye(i,d,e.event);break;case"removeClass":if(!e.actionData.flipStylesInputClassName)return;d.classList.remove(this.handleTemplateVars(e.actionData.flipStylesInputClassName,{event:e.event}));break;case"addClass":if(!e.actionData.flipStylesInputClassName)return;d.classList.add(this.handleTemplateVars(e.actionData.flipStylesInputClassName,{event:e.event}));break;case"toggleClass":if(!e.actionData.flipStylesInputClassName)return;d.classList.toggle(this.handleTemplateVars(e.actionData.flipStylesInputClassName,{event:e.event}));break;case"appendTo":if(!e.actionData.flipStylesInputDOMElement)return;document.querySelector(this.handleTemplateVars(e.actionData.flipStylesInputDOMElement,{event:e.event})).append(d)}Flip.from(Ge,{duration:$,ease:G,absolute:U})}break;case"gsapSet":if(!d)break;if(!n.gsapSetObject&&n.gsapObject&&(n.gsapSetObject=n.gsapObject),u)for(let Ue of d){let Xe=this.handleTemplateVars(n.gsapSetObject,{event:e.event}),Qe=new Function("return (trigger, target, event) => { return "+Xe+" }")();gsap.set(d,"function"==typeof Qe?Qe(i,Ue,e.event):{})}else{let Ze=this.handleTemplateVars(n.gsapSetObject,{event:e.event}),Je=new Function("return (trigger, target, event) => { return "+Ze+" }")();gsap.set(d,"function"==typeof Je?Je(i,d,e.event):{})}break;case"gsapFrom":if(!d)break;if(!n.gsapSetObject&&n.gsapObject&&(n.gsapSetObject=n.gsapObject),u)for(let et of d){let tt=this.handleTemplateVars(n.gsapSetObject,{event:e.event}),at=new Function("return (trigger, target, event) => { return "+tt+" }")();gsap.from(d,"function"==typeof at?at(i,et,e.event):{})}else{let nt=this.handleTemplateVars(n.gsapSetObject,{event:e.event}),it=new Function("return (trigger, target, event) =>
1 { return "+nt+" }")();gsap.from(d,"function"==typeof it?it(i,d,e.event):{})}break;case"gsapTo":if(!d)break;if(!n.gsapSetObject&&n.gsapObject&&(n.gsapSetObject=n.gsapObject),u)for(let rt of d){let st=this.handleTemplateVars(n.gsapSetObject,{event:e.event}),ot=new Function("return (trigger, target, event) => { return "+st+" }")();gsap.to(d,"function"==typeof ot?ot(i,rt,e.event):{})}else{let lt=this.handleTemplateVars(n.gsapSetObject,{event:e.event}),ct=new Function("return (trigger, target, event) => { return "+lt+" }")();gsap.to(d,"function"==typeof ct?ct(i,d,e.event):{})}break;case"followCursor":if(!d)break;u&&(console.warn("Bricksforge Panel: The action 'Follow Cursor' does not support multiple targets. The first target will be used."),d=d[0]);let X,Q=d.offsetLeft,Z=d.offsetTop,J=n.offsetX?n.offsetX:0,ee=n.offsetY?n.offsetY:0,te=void 0!==n.smoothValue?n.smoothValue:20,ae=n.lockPosition?n.lockPosition:"fixed",ne="block",ie=!!n.autoSetOpacity,re=!!n.bindToElement,se=!!n.forceHideWhenLeaves;if(ie&&(d.style.opacity=1,d.style.visibility="visible"),se&&(d.style.visibility="visible"),re){if(ae="absolute",X=e.selector,X&&(X.style.overflow="hidden",X.style.position="relative",!X.contains(d))){let dt=X.getBoundingClientRect(),ut=d.getBoundingClientRect();Q=ut.left-dt.left,Z=ut.top-dt.top,d.style.position=ae,d.style.left=Q+"px",d.style.top=Z+"px",d.style.display=ne,X.append(d)}}else d.style.position=ae,d.style.display=ne;let oe=d.getBoundingClientRect();J=oe.width/2,ee=oe.height/2;let le=Q,ce=Z,de=e.event.clientX,ue=e.event.clientY,pe=!1;function he(){let e=de-le-J,t=ue-ce-ee;if(re){let a=X.getBoundingClientRect();e-=a.left,t-=a.top}e/=te,t/=te,le+=e,ce+=t,d.style.left=le+"px",d.style.top=ce+"px",Math.abs(e)>.1||Math.abs(t)>.1?requestAnimationFrame(he):pe=!1}function fe(e){de=e.clientX,ue=e.clientY,pe||(pe=!0,requestAnimationFrame(he))}fe(e.event);break;case"video_self_hosted_play":if(!d)break;if(u)for(let pt of d)p&&f==pt||("VIDEO"!=pt.tagName&&(pt=pt.querySelector("video")),pt&&pt.play());else{if("VIDEO"!=d.tagName&&(d=d.querySelector("video")),!d)break;d.play()}break;case"video_self_hosted_pause":if(!d)break;if(u)for(let ht of d)p&&f==ht||("VIDEO"!=ht.tagName&&(ht=ht.querySelector("video")),ht&&ht.pause());else{if("VIDEO"!=d.tagName&&(d=d.querySelector("video")),!d)break;d.pause()}break;case"video_self_hosted_stop":if(!d)break;if(u)for(let ft of d)p&&f==ft||("VIDEO"!=ft.tagName&&(ft=ft.querySelector("video")),ft&&(ft.pause(),ft.currentTime=0));else{if("VIDEO"!=d.tagName&&(d=d.querySelector("video")),!d)break;d.pause(),d.currentTime=0}break;case"storageSetItem":if(!e.actionData.storageItemKey||!e.actionData.storageItemValue)break;localStorage.setItem(this.handleTemplateVars(e.actionData.storageItemKey,{event:e.event}),this.handleTemplateVars(e.actionData.storageItemValue,{event:e.event}));break;case"storageRemoveItem":if(!e.actionData.storageItemKey)break;localStorage.removeItem(this.handleTemplateVars(e.actionData.storageItemKey,{event:e.event}));break;case"sessionStorageSetItem":if(!e.actionData.storageItemKey||!e.actionData.storageItemValue)break;sessionStorage.setItem(this.handleTemplateVars(e.actionData.storageItemKey,{event:e.event}),this.handleTemplateVars(e.actionData.storageItemValue,{event:e.event}));break;case"sessionStorageRemoveItem":if(!e.actionData.storageItemKey)break;sessionStorage.removeItem(this.handleTemplateVars(e.actionData.storageItemKey,{event:e.event}));break;
1case"syncSliders":let ge=e.actionData.syncSliderData;if(!ge||!ge.length){console.warn('Bricksforge Panel: You try to use "syncSliders" action, but we found no data for it.');break}for(let gt of ge){let mt=gt.slider1,vt=gt.slider2;if(!mt||!vt)continue;if(mt.startsWith("#brxe-")&&(mt=mt.replace("#brxe-","")),mt.includes(".")||mt.includes("#")){const wt=document.querySelector(mt);if(!wt){console.warn(`Slider element not found for selector: ${mt}`);continue}mt=wt.getAttribute("data-script-id")}if(vt.startsWith("#brxe-")&&(vt=vt.replace("#brxe-","")),vt.includes(".")||vt.includes("#")){const kt=document.querySelector(vt);if(!kt){console.warn(`Slider element not found for selector: ${vt}`);continue}vt=kt.getAttribute("data-script-id")}let bt=bricksData.splideInstances[mt],yt=bricksData.splideInstances[vt];bt&&yt&&bt.sync(yt)}break;case"previousSlide":{if(!e.actionData.sliderId)break;let St=this.handleTemplateVars(e.actionData.sliderId,{event:e.event});if(!St)break;if(St.startsWith("#brxe-")&&(St=St.replace("#brxe-","")),St.includes(".")||St.includes("#")){const At=document.querySelector(St);if(!At){console.warn(`Slider element not found for selector: ${St}`);break}St=At.getAttribute("data-script-id")}let Tt=bricksData.splideInstances[St];if(!Tt)break;Tt.go("<");break}case"nextSlide":{if(!e.actionData.sliderId)break;let Dt=this.handleTemplateVars(e.actionData.sliderId,{event:e.event});if(!Dt)break;if(Dt.startsWith("#brxe-")&&(Dt=Dt.replace("#brxe-","")),Dt.includes(".")||Dt.includes("#")){const It=document.querySelector(Dt);if(!It){console.warn(`Slider element not found for selector: ${Dt}`);break}Dt=It.getAttribute("data-script-id")}let Et=bricksData.splideInstances[Dt];if(!Et)break;Et.go(">");break}case"openPopup":if(!e.actionData.popupId)break;let me=this.handleTemplateVars(e.actionData.popupId,{event:e.event});if("function"!=typeof bricksOpenPopup)break;let ve=document.querySelector(".brxe-popup-"+me);if(!ve){console.warn("Bricksforge Panel: Popup "+me+" not found.");break}bricksOpenPopup(ve);break;case"closePopup":if(!e.actionData.popupId)break;let be=this.handleTemplateVars(e.actionData.popupId,{event:e.event});if("function"!=typeof bricksClosePopup)break;let ye=document.querySelector(".brxe-popup-"+be);if(!ye){console.warn("Bricksforge Panel: Popup "+be+" not found.");break}bricksClosePopup(ye);break;case"populateFormField":let we=e.actionData.formFieldValue;if(!we)break;if(we=this.handleTemplateVars(we,{event:e.event}),u){for(let Ct of d)if(!p||f!=Ct){if(d=this.findFormField(d),!d)break;Ct.value=we}}else{if(d=this.findFormField(d),!d)break;d.value=we}break;case"makeConfetti":if("undefined"==typeof confetti)return;const ke=e.actionData.confettiType?e.actionData.confettiType:"basic",Se=e.actionData.confettiDuration?1e3*parseInt(e.actionData.confettiDuration):5e3,Te=e.actionData.delay?e.actionData.delay:0;setTimeout((()=>{this.fireConfetti(ke,Se)}),1e3*Te)}}fireConfetti(e,t){let a={x:.5,y:.6};function n(e,t){return Math.random()*(t-e)+e}switch(e){case"basic":confetti({particleCount:100,spread:70,origin:a});break;case"random":confetti({angle:n(55,125),spread:n(50,70),particleCount:n(50,100),origin:{y:.6}});break;case"realistic":var i={origin:a};function l(e,t){confetti({...i,...t,particleCount:Math.floor(200*e)})}l(.25,{spread:26,startVelocity:55}),l(.2,{spread:60}),l(.35,{spread:100,decay:.91,scalar:.8}),l(.1,{spread:120,startVelocity:25,decay:.92,scalar:1.2}),l(.1,{spread:120,startVelocity:45});break;case"fireworks":var r=Date.now()+t,s=(i={startVelocity:30,spread:360,ticks:60,zIndex:0},setInterval((function(){var e=r-Date.now();if(e<=0)return clearInterval(s);var a=e/t*50;confetti({...i,particleCount:a,origin:{x:n(.1,.3),y:Math.random()-.2}}),confetti({...i,particleCount:a,origin:{x:n(.7,.9),y:Math.random()-.2}})}),250));break;case"stars":i={spread:360,ticks:50,gravity:0,decay:.94,startVelocity:30,colors:["FFE400","FFBD00","E89400","FFCA6C","FDFFB8"]};function c(){confetti({...i,particleCount:40,scalar:1.2,shapes:["star"]}),confetti({...i,particleCount:10,scalar:.75,shapes:["circle"]})}setTimeout(c,0),setTimeout(c,100),setTimeout(c,200);break;case"snow":r=Date.now()+t;var o=1;!function e(){var a=r-Date.now(),i=Math.max(200,a/t*500);o=Math.max(.8,o-.001),confetti({particleCount:1,startVelocity:0,ticks:i,origin:{x:Math.random(),y:Math.random()*o-.2},colors:["#ffffff"],shapes:["circle"],gravity:n(.4,.6),scalar:n(.4,1),drift:n(-.4,.4)}
1),a>0&&requestAnimationFrame(e)}()}}findFormField(e){if(!e)return null;const t=["input","select","textarea"];for(let a of t){let t=e.querySelector(a)||e.closest(a);if(t)return t}return null}isPanelOpen(){const e="true"==document.body.getAttribute("data-brf-panel-open");if(window.parent&&window.parent.document){const t="true"==window.parent.document.body.getAttribute("data-brf-panel-open");return e||t}return e}selectorExists(e){return this.elementSelector.selectorExists(e)}getLabelFromObject(e){return e&&"object"==typeof e&&e.label?e.label:e}handleTimelineOptimized(e,t=!1,a=!1){return this.handleTimeline(e,t,a)}handleTimeline(e,t=!1,a=!1){gsap.config({nullTargetWarn:!1}),e.animations&&e.animations.length||!bricksIsFrontend||console.warn("Bricksforge Panel: You try to use timelines, but we found no animations for it. This warning appears for the timeline: "+e.name);let n=e.repeat?parseInt(e.repeat):0,i=e.repeatDelay?parseInt(e.repeatDelay):0,r=e.trigger?e.trigger:"scrollTrigger",s=e.triggerSelector?e.triggerSelector:"",o=!!e.animateTrigger&&e.animateTrigger,l=null!=e.scrub&&e.scrub,c=null!=e.scrubValue?e.scrubValue:1,d=e.scrollStart?e.scrollStart:"top bottom",u=e.scrollEnd?e.scrollEnd:"bottom top";isNaN(parseFloat(d))||(d=parseFloat(d)),isNaN(parseFloat(u))||(u=parseFloat(u));let p=null!=e.pin&&e.pin,h=!e.pinSelector||e.pinSelector,f=null!=e.pinSpacing&&e.pinSpacing,g=null!=e.markers&&e.markers;const m="undefined"!=typeof BRFPANEL&&1==BRFPANEL.animationPreview;g&&bricksIsFrontend&&!m&&(g=!1);let v=null!=e.stagger&&e.stagger,b=e.staggerAmount?e.staggerAmount:.2,y=e.staggerFrom?e.staggerFrom:"start",w=this.resolveEase(e.staggerEase?e.staggerEase:"linear"),k=e.toggleActions?e.toggleActions:"play none none none",S=null!=e.snap&&e.snap,T=!!e.snapTo&&e.snapTo,A=null!=e.automaticSnap&&e.automaticSnap,D=e.automaticSnapSelector?e.automaticSnapSelector:"",E=e.snapDuration?e.snapDuration:.3,I=e.snapDelay?e.snapDelay:.1,C=this.resolveEase(e.snapEase?e.snapEase:"power1.inOut"),P=!!e.toggleClass&&e.toggleClass,L=e.toggleClassTargets?e.toggleClassTargets:"",F=e.toggleClassClassName?e.toggleClassClassName:"",V=null!=e.batch&&e.batch,x=null!=e.withSecondaryClick&&e.withSecondaryClick,N=null!=e.reverseWhenClickingOutside&&e.reverseWhenClickingOutside,O=null!=e.reverseTimescale?e.reverseTimescale:1,R=null!=e.withSecondaryMouseLeave&&e.withSecondaryMouseLeave,M=null!=e.excludeAnimationLayers&&e.excludeAnimationLayers,B=null!=e.yoyo&&e.yoyo,q=null!=e.excludedSelectors?e.excludedSelectors:"",_=e.reverseAnimationSelector?e.reverseAnimationSelector:"",j=null!=e.asArray&&1==e.asArray;if(q=q&&"string"==typeof q?q.split(","):[],"string"!=typeof k&&k.label&&(k=k.label),d=this.getLabelFromObject(d),u=this.getLabelFromObject(u),k=this.getLabelFromObject(k),"scrollTrigger"===r)bricksIsFrontend&&(gsap.registerPlugin(ScrollTrigger),ScrollTrigger.config({ignoreMobileResize:!0}));if(gsap.plugins.drawSVG&&gsap.registerPlugin(DrawSVGPlugin),gsap.plugins.MorphSVGPlugin&&gsap.registerPlugin(MorphSVGPlugin),!s||"."==s||!this.isValidSelector(s))switch(r){case"custom":case"pageLoad":s="html";break;case"scrollTrigger":{const t=(e.animations||[]).find((e=>e.selector&&"."!==e.selector&&this.isValidSelector(e.selector)));if(t)s=t.selector;else if(bricksIsFrontend)return;break}default:if(bricksIsFrontend)return}if(!this.selectorExists(s)){if(bricksIsFrontend)return;s=".brf-dummy"}let H=50;bricksIsFrontend&&(H=9999),this.getScrollTriggerSafeSelectors(s,H).forEac
1h((async(m,H)=>{let W=j;if(V&&(o=!1,H>=1))return;const z=gsap.timeline({repeat:n,repeatDelay:i,yoyo:B,..."scrollTrigger"==r&&e.animations.length&&bricksIsFrontend&&!V&&{scrollTrigger:{id:`brf-${e.id}-${H}`,...1==P&&{toggleClass:{targets:L,className:F}},trigger:m,markers:g,start:d,...1==S&&{snap:{snapTo:(()=>{if(null==A||!A||!D)return T;return 1/(gsap.utils.toArray(D).length-1)})(),duration:E,delay:I,ease:C}},toggleActions:k,end:u,...1==l&&{scrub:c},...1==p&&h&&{pin:h||!0,pinSpacing:f},onRefresh:e=>this.handleRefresh(e)}}});if(!0===a&&z.pause(0),"custom"!=r&&"click"!=r&&"hover"!=r||z.pause(),"click"==r&&(m.addEventListener("click",(t=>{if(e.disabled)return;for(let e of q)if(t.target.closest(e)||t.target==document.querySelector(e))return;if(t.preventDefault(),z.timeScale(1),z.reversed()||!0!==x||0==z.progress()?0!=z.progress()&&1!=z.progress()?z.play():z.restart():(1!=O&&z.timeScale(O),z.reverse()),_){const e=document.querySelector(_);e&&e.addEventListener("click",(e=>{e.preventDefault(),z.timeScale(1),1!=O&&z.timeScale(O),z.reverse()}),{signal:this.timelineManager.abortController.signal})}let a=t.target.tagName.toLowerCase(),n=t.target.closest("a");n&&(a=n.tagName.toLowerCase()),"a"==a&&z.eventCallback("onComplete",(()=>{t.target.href&&(window.location.href=t.target.href)}))}),{signal:this.timelineManager.abortController.signal}),N)){const t=[];if(t.push(m),!0===M)for(let a of e.animations)if(a.selector&&document.querySelectorAll(a.selector).forEach((e=>{t.push(e)})),a.childSelector){this.getCachedElement(a.selector).querySelectorAll(a.childSelector).forEach((e=>{t.push(e)}))}document.addEventListener("click",(e=>{for(let a of t)if(a.contains(e.target)||a==e.target)return;z.reversed()||z.paused()||(1!=O&&z.timeScale(O),z.reverse())}),{signal:this.timelineManager.abortController.signal})}"hover"==r&&(m.addEventListener("mouseenter",(t=>{if(!e.disabled){for(let e of q)if(t.target.closest(e)||t.target==this.getCachedElement(e))return;z.timeScale(1),0!=z.progress()&&1!=z.progress()?z.play():z.restart()}}),{signal:this.timelineManager.abortController.signal}),!0===R&&m.addEventListener("mouseleave",(()=>{1!=O&&z.timeScale(O),z.reverse()}),{signal:this.timelineManager.abortController.signal}));for(let n of e.animations){if(!(!0!==a||n.selector&&this.isValidSelector(n.selector)&&document.querySelector(n.selector))){if(bricksIsFrontend)continue}if(!n.selector&&!1===o){bricksIsFrontend&&console.warn("Bricksforge Panel: You try to use timeline animations, but we found no selector for it. This warning appears for the timeline: "+e.name);continue}if(("."==n.selector&&!1===o||!this.isValidSelector(n.selector)||!1===o&&!document.querySelector(n.selector))&&bricksIsFrontend)continue;if(!(n.data&&""!=n.data||n.controls&&0!==Object.keys(n.controls).length||!0===n.splitText)&&bricksIsFrontend){console.warn("Bricksforge Panel: You try to use timeline animations, but we found no animation data for it. This warning appears for the timeline: "+e.name);continue}const i=bricksIsFrontend?document:window.parent.document.querySelector("#bricks-builder-iframe").contentDocument,r=bricksIsFrontend?0:150;"."!=n.selector&&setTimeout((()=>{if(i.querySelector(n.selector)){if(i.querySelectorAll(n.selector).length>50)return;i.querySelectorAll(n.selector).forEach((e=>{if(e.classList.add("brf-reset-transition"),n.childSelector){let e=i.querySelector(n.selector);if(e.querySelectorAll(n.childSelector).length>50)return;e.querySelectorAll(n.childSelector).forEach((e=>{e.classList.add("brf-reset-transition")}))}}))}}),r);let A=n.controls?n.controls:{};Object.keys(A).forEach((e=>{null===A[e]&&delete A[e]}));let D,x=n.controls2?n.controls2:{};Object.keys(x).forEach((e=>{null===x[e]&&delete x[e]}));try{D=new Function("return (triggerSelector, target, trigger, timeline) => {return "+(n.data||"{}").replace(/cssVar\((.*?)\)/g,((e,t)=>this.cssVar(t.trim())))+"}")(this)}catch(e){if(D=new Function,bricksIsFrontend)continue}try{D(s,n.selector,m,z)}catch(t){if(D=new Function,console.warn("Bricksforge Panel: You try to use timeline animations, but your Animation data object seems to be wrong. This warning appears for the timeline: "+e.n
1ame),bricksIsFrontend)continue}let N,O,R=D(s,n.selector,m,z),M=n.duration?n.duration:.5,B=n.delay?n.delay:0,q=n.position?n.position:">",_=null!=typeof n.customPosition?n.customPosition:">",j=this.resolveEase(n.ease?n.ease:"linear"),K=!!n.splitText&&n.splitText,G=n.splitTextType?n.splitTextType:"chars",$=!!n.stagger&&n.stagger,Y=n.staggerValue?n.staggerValue:.02,U=null!=n.yoyo&&n.yoyo,X=n.repeat?n.repeat:0;switch(q){case"<":case">":N=q;break;case"custom":N=this.isNumeric(_)?parseFloat(_):_;break;default:N=">"}if(!0===t&&gsap.set(n.selector,{clearProps:"all"}),!0===o&&s)if(n.childSelector){const e=m.querySelectorAll(n.childSelector);!1===t&&gsap.set(e,{clearProps:"all"}),O=e,bricksIsFrontend||(O=this.getCachedElement(s+" "+n.childSelector,!0))}else O=m,bricksIsFrontend||(O=this.getCachedElement(s,!0));else O=n.selector;if(O||(O=".brf-dummy"),"."==O&&(O=".brf-dummy"),bricksIsFrontend||z.pause(0),!0===K){let e;gsap.registerPlugin(SplitText);let t=this.splitTextInstances.find((e=>e.id==n.id));const a=brfGetSplitTextMask(n);let i=n.splitTextType;switch("chars"==i&&(i="words, chars"),i=brfGetSplitTextType(i,a),bricksIsFrontend?(e=new SplitText(O,{type:i,charsClass:"brf-split brf-split-chars",smartWrap:!0,linesClass:"brf-split brf-split-lines",wordsClass:"brf-split brf-split-words",mask:a,tag:"chars"==n.splitTextType?"span":"div"}),this.splitTextInstances.push({id:n.id,type:i,animation:n.id,data:e})):(t?e=t:(e=this.splitTextInstances.push({id:n.id,type:i,animation:n.id,data:new SplitText(O,{type:brfGetSplitTextType(n.splitTextType,a),charsClass:"brf-split brf-split-chars",smartWrap:!0,linesClass:"brf-split brf-split-lines",wordsClass:"brf-split brf-split-words",mask:a,tag:"chars"==n.splitTextType?"span":"div"})}),e=this.splitTextInstances.find((e=>e.id==n.id))),e=e.data),G){case"chars":O=e.chars;break;case"words":O=e.words;break;case"lines":O=e.lines}}if(void 0!==this.timelineActions.find((e=>e.finalSelector==O&&e.id==n.id&&!W))&&bricksIsFrontend)continue;if(bricksIsFrontend){let e=!1,t=[];"string"==typeof O&&(t=document.querySelectorAll(O)),"object"==typeof O&&t.push(O[0]),t.forEach((t=>{t&&t.classList&&(t.classList.contains("brf-prevent-fouc")||t.closest(".brf-prevent-fouc"))&&(e=!0,t.closest(".brf-prevent-fouc")&&(t=t.closest(".brf-prevent-fouc")),t.classList.contains("brf-reset-transition")?("from"==n.method&&(A.autoAlpha=0),"to"==n.method&&(A.autoAlpha=1),"fromTo"==n.method&&(A.autoAlpha=0,x.autoAlpha=1),this.removeFoucClass(t)):this.removeFoucClass(t))}))}if("string"==typeof O&&"."!=O&&void 0!==document.querySelector(O)){const e=document.querySelector(O);if(e&&e.classList.contains("brf-three-js")&&n.animate3DModel){const e=async()=>new Promise(((e,t)=>{let a=setInterval((()=>{bricksforgeData&&bricksforgeData.models&&(clearInterval(a),e(bricksforgeData.models))}),50);setTimeout((()=>{clearInterval(a),t(new Error("Timeout: Model data not available"))}),2e3)}));let t=await e(),a=bricksforgeData.cameras;if(t){O=document.querySelector(O);let e=!!t[O.dataset.scriptId]&&t[O.dataset.scriptId],i=a[O.dataset.scriptId],r=n.animate3DModelObject?n.animate3DModelObject:"model",s="position";if("model"==r&&(s=n.animate3DModelProperty?n.animate3DModelProperty:"position"),"camera"==r&&(s=n.animate3DCameraProperty?n.animate3DCameraProperty:"position"),e)switch(s){case"rotation":"model"==r?O=e.rotation:"camera"==r&&(O=i.rotation);break;case"position":"model"==r?O=e.position:"camera"==r&&(O=i.position);break;case"scale":"model"==r?O=e.scale:"camera"==r&&(O=i.scale)}}}}let Q=gsap.utils.toArray(O);if(n.perspective&&n.perspectiveValue?Q.forEach((e=>{e&&e.parentNode&&gsap.set(e.parentNode,{perspective:n.perspectiveValue})})):bricksIsFrontend||Q.forEach((e=>{e&&e.parentNode&&gsap.set(e.parentNode,{perspective:"none"})})),W)if(Array.isArray(O)){if(O[0].classList.contains("brf-split")){let e=this.getCachedElement(n.selector,!0)[H],t=new SplitText(e,{type:brfGetSplitTextType(n.splitTextType,brfGetSplitTextMask(n)),charsClass:"brf-split brf-split-chars",smartWrap:!0,linesClass:"brf-split brf-split-lines",wordsClass:"brf-split brf-split-words",mask:brfGetSplitTextMask(n),tag:"chars"==n.splitTextType?"span":"div"}).chars;t&&t.length&&(O=t)}}else{let e=gsap.utils.toArray(O);e&&e.length&&void 0!==e[H]&&(O=e[H])}if(!bricksIsFrontend&&!this.isPanelOpen())return;const Z=A&&(A.hasOwnProperty("morphSVG")||R&&"string"==typeof R.morphSVG);if(!bricksIsFrontend&&!n.animate3DModel){const e=!0===n.splitText?1/0:this.maxQueryNodes;O=this.getElementsUpTo(e,O)}switch(n.method){case"sequence":{const e=n.sequence;if(!e||!e.pattern||!e.frameCount)break;const t=gsap.utils.toArray(O);if(!t.length)break;const a=window.BrfSequencePlayer.get(t[0],e,n.sequenceFit||"contain"),i=e.frameCount;let r=Math.max(1,Math.min(i,parseInt(n.sequenceStart)||1))-1,o=Math.max(1,Math.min(i,parseInt(n.sequenceEnd)||i))-1;if(1==n.sequenceReverse){const e=r;r=o,o=e}a.proxy.frame=r,a.render(),z.fromTo(a.proxy,{frame:r},{data:{id:n.id,method:"sequence",selector:n.selector,gsapSelector:O,triggerSelector:s,isMorph:Z},frame:o,duration:M,delay:B,ease:j&&""!==j?j:"none",onUpdate:()=>a.render()},N);break}case"from":V&&bricksIsFrontend?ScrollTrigger.batch(O,{once:1==l||k&&"none"==k.split(" ")[2],markers:g,start:d,end:u,...1==P&&{toggleClass:{targets:L,className:F}},onRefresh:e=>this.handleRefresh(e),onEnter:(t,a)=>{z.from(t,{data:{id:n.id,method:"from",selector:n.selector,gsapSelector:O,triggerSelector:s,isMorph:Z},duration:M,delay:B,yoyo:U,repeat:X,...R,...A,ease:j,...!0===$&&{stagger:Y},...!$&&v&&{stagger:{from:y,amount:b,ease:w}},scrollTrigger:{id:`brf-${e.id}-batch-${n.id}`,trigger:t,toggleActions:k,...1==S&&{snap:{snapTo:T,duration:E,delay:I,ease:C}},...1==p&&h&&{pin:h||!0,pinSpacing:f},...1==l&&{scrub:c}}})},animationPositionValue:N}):z.from(O,{data:{id:n.id,method:"from",selector:n.selector,gsapSelector:O,triggerSelector:s,isMorph:Z},duration:M,delay:B,yoyo:U,repeat:X,...R,...A,ease:j,...!0===$&&{stagger:Y},...!$&&v&&{stagger:{from:y,amount:b,ease:w}}},N);break;case"to":V&&bricksIsFrontend?ScrollTrigger.batch(O,{once:1==l||k&&"none"==k.split(" ")[2],markers:g,start:d,end:u,...1==P&&{toggleClass:{targets:L,className:F}},onRefresh:e=>this.handleRefresh(e),onEnter:(t,a)=>{z.to(t,{data:{id:n.id,method:"to",selector:n.selector,gsapSelector:O,triggerSelector:s,isMorph:Z},duration:M,yoyo:U,repeat:X,delay:B,...R,...A,ease:j,...!0===$&&{stagger:Y},...!$&&v&&{stagger:{from:y,amount:b,ease:w}},scrollTrigger:{id:`brf-${e.id}-batch-${n.id}`,trigger:t,...1==S&&{snap:{snapTo:T,duration:E,delay:I,ease:C}},...1==l&&{scrub:c},...1==p&&h&&{pin:h||!0,pinSpacing:f}}})},animationPositionValue:N}):z.to(O,{data:{id:n.id,method:"to",selector:n.selector,gsapSelector:O,triggerSelector:s,isMorph:Z},duration:M,delay:B,yoyo:U,repeat:X,...R,...A,ease:j,...!0===$&&{stagger:Y},...!$&&v&&{stagger:{from:y,amount:b,ease:w}}},N);break;case"fromTo":let t;try{t=new Function("return (triggerSelector, target, trigger, timeline) => {return "+n.data2.replace(/cssVar\((.*?)\)/g,((e,t)=>
1this.cssVar(t.trim())))+"}")(this)}catch(e){if(t=new Function,bricksIsFrontend)continue}try{t(s,n.selector,m,z)}catch(a){if(t=new Function,console.warn("Bricksforge Panel: You try to use timeline animations, but your Animation data object seems to be wrong. This warning appears for the timeline: "+e.name),bricksIsFrontend)continue}let a=t(s,n.selector,m,z);V&&bricksIsFrontend?ScrollTrigger.batch(O,{once:1==l||k&&"none"==k.split(" ")[2],markers:g,start:d,end:u,...1==P&&{toggleClass:{targets:L,className:F}},onRefresh:e=>this.handleRefresh(e),onEnter:(t,i)=>{z.fromTo(t,{data:{id:n.id,method:"fromTo",selector:n.selector,gsapSelector:O,triggerSelector:s,isMorph:Z},duration:M,delay:B,yoyo:U,repeat:X,...R,...A,ease:j,...!0===$&&{stagger:Y},...!$&&v&&{stagger:{from:y,amount:b,ease:w}},scrollTrigger:{id:`brf-${e.id}-batch-${n.id}-from`,trigger:t,...1==S&&{snap:{snapTo:T,duration:E,delay:I,ease:C}},...1==l&&{scrub:c},...1==p&&h&&{pin:h||!0,pinSpacing:f}}},{data:{id:n.id,method:"fromTo",selector:n.selector,gsapSelector:O,triggerSelector:s,isMorph:Z},duration:M,delay:B,yoyo:U,repeat:X,...a,...x,ease:j,...!0===$&&{stagger:Y},...!$&&v&&{stagger:{from:y,amount:b,ease:w}},scrollTrigger:{id:`brf-${e.id}-batch-${n.id}-to`,trigger:t,...1==S&&{snap:{snapTo:T,duration:E,delay:I,ease:C}},...1==l&&{scrub:c},...1==p&&h&&{pin:h||!0,pinSpacing:f}}},N)}}):z.fromTo(O,{data:{id:n.id,method:"fromTo",selector:n.selector,gsapSelector:O,triggerSelector:s,isMorph:Z},...R,...A,yoyo:U,repeat:X,immediateRender:bricksIsFrontend,duration:M,delay:B,ease:j,...!0===$&&{stagger:Y},...!$&&v&&{stagger:{from:y,amount:b,ease:w}}},{data:{id:n.id,method:"fromTo",selector:n.selector,gsapSelector:O,triggerSelector:s,isMorph:Z},...a,...x,duration:M,yoyo:U,repeat:X,delay:B,ease:j,...!0===$&&{stagger:Y},...!$&&v&&{stagger:{from:y,amount:b,ease:w}}},N)}this.timelineActions.push({finalSelector:O,animationData:R,animationControls:A,id:n.id})}if(!1===t&&(z.getChildren().length>0&&this.timelines.push({id:e.id,tl:z,children:z.getChildren(),trigger:m}),bricksforgeData&&bricksforgeData.panel)){let t=bricksforgeData.panel.timelines.find((t=>t.id===e.id));t?t={id:e.id,tl:z,children:z.getChildren(),trigger:m}:bricksforgeData.panel.timelines.push({id:e.id,tl:z,children:z.getChildren(),trigger:m})}}))}handleRefresh(e){return this.timelineManager.handleRefresh(e)}async getTimelineById(e){return this.timelineManager.getTimelineById(e)}cssVar(e){let t,a="";e.includes(",")?(a=e.split(",")[0],t=e.split(",")[1]):a=e,a=a.replace(/['"]+/g,""),t&&(t=t.replace(/['"]+/g,""));let n="'"+getComputedStyle(t?document.querySelector(t):document.body).getPropertyValue(a.toString().trim())+"'";return n=n.replace(/' /g,"'"),n=n.trim(),n}async handleSliderEvent(e){if(!e)return console.warn("No Slider ID set"),!1;let t=bricksData.splideInstances;if("undefined"!=typeof xSlider&&(await this.waitForXSliderInstances(),t={...t,...xSlider.Instances}),!t)return console.warn("No Slider Instances found"),!1;const a=t[e];return a||(console.warn("No Slider found with the ID "+e),!1)}async waitForXSliderInstances(){return new Promise(((e,t)=>{let a=0;const n=setInterval((()=>{a+=100,Object.keys(xSlider.Instances).length>0&&(clearInterval(n),e()),a>=1e3&&(clearInterval(n),t())}),100)}))}async getTimelines(){return this.timelineManager.getTimelines()}isValidSelector(e){try{return document.querySelector(e),!0}catch(e){}return!1}async wait(e=1e3){return new Promise((async t=>{setTimeout((()=>{t()}),e)}))}parseObject(e){return new Function("return "+e)}isNumeric(e){return"string"==typeof e&&(!isNaN(e)&&!isNaN(parseFloat(e)))}isParsable(e){try{JSON5.parse(e)}catch(e){return!1}return!0}isTriggeredSelector(e,t){return"string"==typeof e&&(e=document.querySelector(e)),"string"==typeof t&&(t=document.querySelector(t)),e==t}}document.addEventListener("DOMContentLoaded",(e=>{window.brfPanel||(window.brfPanel=new BricksforgePanel(e)),brfPanel=window.brfPanel}));let brfPendingReinit=null;function brfHandleAjaxComplete(e){brfPendingReinit&&clearTimeout(brfPendingReinit),brfPendingReinit=setTimeout((()=>{window.brfPanel&&"function"==typeof window.brfPanel.reinitForQuery?window.brfPanel.reinitForQuery(e):window.brfPanel&&"function"==typeof window.brfPanel.reinit?window.brfPanel.reinit():window.brfPanel=new BricksforgePanel,brfPendingReinit=null}),10)}function brfPanelHandleEarlyInstances(){if(!BRFPANEL||!BRFPANEL.panel||0==BRFPANEL.panel.length)return;let e=BRFPANEL.panel[0].instances;if(!e||0==e.length)return;const t=[],a=[];let n=e.filter((e=>"document"==e.selector&&!e.disabled||1==e.early||t.includes(e.event)||a.includes(e.event)));
1n&&0!=n.length&&n.forEach((e=>{if(a.includes(e.event))return void document.addEventListener("DOMContentLoaded",(()=>{new BricksforgePanel(null,!0).handleInstance(e)}));new BricksforgePanel(null,!0).handleInstance(e)}))}document.addEventListener("bricks/ajax/end",(e=>{brfHandleAjaxComplete(e.detail?.queryId||null)})),document.addEventListener("bricks/ajax/query_result/completed",(e=>{brfHandleAjaxComplete(e.detail?.queryId||null)})),brfPanelHandleEarlyInstances();

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.