[ SYSTEM ]: Linux wordpress 6.1.0-41-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
[ SERVER ]: Apache/2.4.66 (Debian) | PHP: 8.2.30
[ USER ]: www-data | IP: 172.19.30.54
GEFORCE FILE MANAGER
/
var
/
www
/
html
/
wordpress
/
wp-content
/
plugins
/
elementor
/
assets
/
js
/
packages
/
editor-interactions
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📄 editor-interactions.min.js
38,826 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: editor-interactions.min.js
!function(){"use strict";var e={d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{BASE_EASINGS:function(){return We},BASE_EFFECTS:function(){return Je},BASE_REPLAY:function(){return lt},BASE_TRIGGERS:function(){return ut},EASING_OPTIONS:function(){return qe},EFFECT_OPTIONS:function(){return He},ELEMENTS_INTERACTIONS_PROVIDER_KEY_PREFIX:function(){return Ue},EmptyState:function(){return a},InteractionsTab:function(){return Se},REPEAT_OPTIONS:function(){return nt},REPEAT_TOOLTIPS:function(){return rt},REPLAY_OPTIONS:function(){return at},TRIGGER_OPTIONS:function(){return mt},buildDisplayLabel:function(){return H},convertTimeUnit:function(){return fe},createAnimationPreset:function(){return G},createBoolean:function(){return A},createConfig:function(){return R},createDefaultInteractionItem:function(){return F},createDefaultInteractions:function(){return N},createExcludedBreakpoints:function(){return j},createInteractionBreakpoints:function(){return M},createInteractionItem:function(){return L},createInteractionsProvider:function(){return Re},createNumber:function(){return $},createString:function(){return P},createTimingConfig:function(){return D},extractBoolean:function(){return B},extractExcludedBreakpoints:function(){return V},extractSize:function(){return W},extractString:function(){return q},formatSizeValue:function(){return h},generateTempInteractionId:function(){return O},getInteractionsConfig:function(){return k},init:function(){return It},interactionsRepository:function(){return De},isTempId:function(){return S},parseSizeValue:function(){return v},registerInteractionsControl:function(){return u},resolveDirection:function(){return de},useElementInteractions:function(){return Q}});var n=window.React,r=window.elementorV2.icons,o=window.elementorV2.ui,i=window.wp.i18n;const a=({onCreateInteraction:e})=>n.createElement(o.Stack,{alignItems:"center",justifyContent:"center",height:"100%",color:"text.secondary",sx:{p:2.5,pt:8,pb:5.5},gap:1.5},n.createElement(r.SwipeIcon,{fontSize:"large"}),n.createElement(o.Typography,{align:"center",variant:"subtitle2"},(0,i.__)("Animate elements with Interactions","elementor")),n.createElement(o.Typography,{align:"center",variant:"caption",maxWidth:"170px"},(0,i.__)("Add entrance animations and effects triggered by user interactions such as page load or scroll.","elementor")),n.createElement(o.Button,{variant:"outlined",color:"secondary",size:"small",sx:{mt:1},onClick:e},(0,i.__)("Create an interaction","elementor")));var l=window.elementorV2.session,c=window.elementorV2.editorElements,s=window.elementorV2.editorV1Adapters;const m=new Map;function u({type:e,component:t,options:n}){m.set(e,{type:e,component:t,options:n})}var d=window.elementorV2.editorProps;const p=["s","ms"],f="ms",g=/^(?:(-?\d*\.?\d+)([a-z%]+)|([a-z%]+))$/i,v=(e,t,n,r)=>{if("number"==typeof e)return{size:e,unit:r};const o=y(e,t,r);if(o)return o;if(n){const e=y(n,t,r);if(e)return e}return b(null,r)},y=(e,t,n)=>{if("number"==typeof e)return b(e,n);const r=e&&e.match(g);if(!r)return e?{size:Number(e),unit:n}:null;const o=r[1]?parseFloat(r[1]):null,i=r[2]||r[3];return t.includes(i)?b(o,i):null},h=({size:e,unit:t})=>`${e??""}${t}`,b=(e,t)=>({size:e,unit:t}),E="deg",_=(e,t="%")=>({$$type:"size",value:{size:e,unit:t}}),I=e=>({$$type:"number",value:e}),w=(e,t,n,r)=>({$$type:e,value:{x:_(t.x??n.x,r),y:_(t.y??n.y,r),z:_(t.z??n.z,r)}}),C=e=>{const t={};if(void 0!==e.opacity){const n=e.opacity<=1?Math.round(100*e.opacity):e.opacity;t.opacity=_(n)}return void 0!==e.scale&&(t.scale=((e,t,n)=>({$$type:"transform-scale",value:{x:I(t.x??n.x),y:I(t.y??n.y),z:I(t.z??n.z)}}))(0,e.scale,{x:1,y:1,z:1})),void 0!==e.rotate&&(t.rotate=w("transform-rotate",e.rotate,{x:0,y:0,z:0},E)),void 0!==e.move&&(t.move=w("transform-move",e.move,{x:0,y:0,z:0},"px")),void 0!==e.skew&&(t.skew=(e=>({$$type:"transform-skew",value:{x:_(e.x??0,E),y:_(e.y??0,E)}}))(e.skew)),{$$type:"keyframe-stop-settings",value:t}},T=e=>{return"object"==typeof(t=e)&&null!==t&&"stop"in t&&"value"in t&&!("$$type"in t)?{$$type:"keyframe-stop",value:{stop:_(e.stop),settings:C(e.value)}}:e;var t};function k(){return window.ElementorInteractionsConfig??{}}const x="temp-",z=/^temp-[a-z0-9]+$/i;function O(){return`${x}${Math.random().toString(36).substring(2,11)}`}function S(e){return!!e&&z.test(e)}const P=e=>({$$type:"string",value:e}),$=e=>({$$type:"number",value:e}),D=(e,t)=>({$$type:"timing-config",value:{duration:d.sizePropTypeUtil.create(v(e,p,void 0,f)),delay:d.sizePropTypeUtil.create(v(t,p,void 0,f))}}),A=e=>({$$type:"boolean",value:e}),R=({replay:e,easing:t="easeIn",relativeTo:n="viewport",repeat:r="",times:o=1,start:i=85,end:a=15})=>({$$type:"config",value:{replay:A(e),easing:P(t),relativeTo:P(n),repeat:P(r),times:$(o),start:U(i,"%"),end:U(a,"%")}}),U=(e,t,n)=>{if(e)return d.sizePropTypeUtil.create(v(e,["%"],n,t))},B=(e,t=!1)=>e?.value??t,j=e=>({$$type:"excluded-breakpoints",value:e.map(P)}),M=e=>({$$type:"interaction-breakpoints",value:{excluded:j(e)}}),V=e=>e?.value.excluded.value.map(e=>e.value)??[],G=({effect:e,type:t,direction:n,duration:r,delay:o,replay:i=!1,easing:a="easeIn",relativeTo:l,repeat:c,times:s,start:m,end:u,customEffects:d})=>{const p=(e=>{var t,n;if(void 0!==e)return"object"==typeof(n=e)&&null!==n&&"keyframes"in n&&Array.isArray(n.keyframes)&&!("$$type"in n)?{$$type:"custom-effect",value:{keyframes:(t=e.keyframes,{$$type:"keyframes",value:t.map(T)})}}:e})(d);return{$$type:"animation-preset-props",value:{effect:P(e),...void 0!==p&&{custom_effect:p},type:P(t),direction:P(n??""),timing_config:D(r,o),config:R({replay:i,easing:a,relativeTo:l,repeat:c,times:s,start:m,end:u})}}},L=({trigger:e,effect:t,type:n,direction:r,duration:o,delay:i,interactionId:a,replay:l=!1,easing:c="easeIn",relativeTo:s,repeat:m,times:u,start:d,end:p,excludedBreakpoints:f,customEffects:g})=>({$$type:"interaction-item",value:{...a&&{interaction_id:P(a)},trigger:P(e??""),animation:G({effect:t??"",type:n??"",direction:r,duration:o??0,delay:i??0,replay:l,easing:c,relativeTo:s,repeat:m,times:u,start:d,end:p,customEffects:g}),...f&&f.length>0&&{breakpoints:M(f)}}}),F=()=>{const{constants:e}=k();return L({trigger:"load",effect:"fade",type:"in",duration:e.defaultDuration,delay:e.defaultDelay,replay:!1,easing:e.defaultEasing,interactionId:O()})},N=()=>({version:1,items:[F()]}),q=(e,t="")=>e?.value??t,W=(e,t)=>e?.value?h(e.value):t,K={load:"On page load",scrollIn:"Scroll into view",scrollOut:"Scroll out of view",scrollOn:"While scrolling"},Y=e=>e.charAt(0).toUpperCase()+e.slice(1),H=e=>{const t=q(e.trigger),n=q(e.animation.value.effect),r=q(e.animation.value.type);return`${K[t]||Y(t)}: ${Y(n)} ${"custom"===n?"":Y(r)}`};function J(e,t){const n=(r=e,m.get(r)?.options??[]);var r;return 1>n.length||n.includes(t)}const X=e=>e.filter(e=>function(e){const t=e.value;return!0===B(t.animation.value.config?.value.replay)?J("replay","yes"):[["trigger",q(t.trigger)],["easing",q(t.animation.value.config?.value.easing)],["effect",q(t.animation.value.effect)]].every(([e,t])=>""===t||null===t||J(e,t))}(e)),Q=e=>{const[t,r]=(0,n.useState)(()=>{const t=(0,c.getElementInteractions)(e),n=X(t?.items??[]);return{version:t?.version??1,items:n}});return(0,s.__privateUseListenTo)((0,s.windowEvent)("elementor/element/update_interactions"),()=>{const t=(0,c.getElementInteractions)(e),n=X(t?.items??[]);r({version:t?.version??1,items:n})},[e]),t},Z=(0,n.createContext)(null),ee={version:1,items:[]},te=({children:e,elementId:t})=>{const r=Q(t);(0,n.useEffect)(()=>{window.dispatchEvent(new CustomEvent("elementor/element/update_interactions"))},[]);const o={elementId:t,interactions:r??ee,setInteractions:e=>{const n=e&&0===e.items?.length?void 0:e;(0,c.updateElementInteractions)({elementId:t,interactions:n})},playInteractions:e=>{(0,c.playElementInteractions)(t,e)}};return n.createElement(Z.Provider,{value:o},e)},ne=()=>{const e=(0,n.useContext)(Z);if(!e)throw new Error("useInteractionsContext must be used within InteractionsProvider");return e},re=(0,n.createContext)(void 0),oe=({children:e})=>{const[t,r]=(0,n.useState)(!1),o=(0,n.useCallback)(()=>{r(!0)},[]),i=(0,n.useCallback)(()=>{r(!1)},[]);return n.createElement(re.Provider,{value:{openByDefault:t,triggerDefaultOpen:o,resetDefaultOpen:i}},e)};var ie=window.elementorV2.events;const ae={load:"On page load",scrollIn:"Scroll into view",scrollOut:"Scroll out of view",scrollOn:"While scrolling",hover:"Hover",click:"Click"},le=e=>e.charAt(0).toUpperCase()+e.slice(1),ce=(e,t)=>{const{dispatchEvent:n,config:r}=(0,ie.getMixpanel)();if(!r?.names?.interactions?.created)return;const o=q(t.value.trigger),i=q(t.value.animation.value.effect),a=q(t.value.animation.value.type);n?.(r.names.interactions.created,{app_type:r?.appTypes?.editor,window_name:r?.appTypes?.editor,interaction_type:r?.triggers?.click,target_name:(0,c.getElementLabel)(e),interaction_result:"interaction_created",target_location:r?.locations?.widgetPanel,location_l1:(0,c.getElementLabel)(e),location_l2:"interactions",interaction_description:"interaction_created",interaction_trigger:ae[o]??le(o),interaction_effect:"custom"===i?le(i):`${le(i)} ${le(a)}`})};var se=window.elementorV2.editorControls;const me=(0,n.createContext)(null);function ue({value:e,children:t}){return n.createElement(me.Provider,{value:e},t)}const de=(e,t,n,r,o)=>"slide"!==t||n?"slide"===o&&e?n??"top":e?n:r:"top",pe={ms:1,s:1e3},fe=(e,t,n)=>e*pe[t]/pe[n];function ge({value:e,onChange:t,defaultValue:r}){const o=v(e,p,r,f),i=(0,n.useRef)(o.unit),a=(0,n.useCallback)(e=>{if(i.current!==e.unit){const t=i.current,n=e.unit;e.size=fe(Number(e.size),t,n),i.current=n}t(h(e))},[t]);return n.createElement(se.UnstableSizeField,{units:p,value:o,onChange:e=>{a(e)},onBlur:()=>{o.size||a(v(r,p,void 0,f))},InputProps:{inputProps:{min:0}}})}const ve=({label:e,children:t})=>n.createElement(o.Grid,{item:!0,xs:12,"aria-label":`${e} control`},n.createElement(se.PopoverGridContainer,null,n.createElement(o.Grid,{item:!0,xs:6},n.createElement(se.ControlFormLabel,null,e)),n.createElement(o.Grid,{item:!0,xs:6},t))),ye={trigger:"load",effect:"fade",type:"in",direction:"",duration:600,delay:0,replay:!1,easing:"easeIn",relativeTo:"viewport",repeat:"",times:1,start:85,end:15},he=["load","scrollOn","hover","click"],be=e=>"scrollOn"===e.trigger;function Ee(e,t){const n=Number(e);return Number.isFinite(n)?Math.max(1,Math.floor(n)):t}function _e(e,t=!0){return(0,n.useMemo)(()=>{return t?(n=e,m.get(n))?.component??null:null;var n},[e,t])}const Ie=({interaction:e,onChange:t,onPlayInteraction:r})=>{const a=q(e.trigger,ye.trigger),l=q(e.animation.value.effect,ye.effect),c=e.animation.value.custom_effect,s=q(e.animation.value.type,ye.type),m=q(e.animation.value.direction,ye.direction),u=W(e.animation.value.timing_config.value.duration),d=W(e.animation.value.timing_config.value.delay),p=B(e.animation.value.config?.value.replay,ye.replay),f=q(e.animation.value.config?.value.easing,ye.easing),g=q(e.animation.value.config?.value.relativeTo,ye.relativeTo),y=e.animation.value.config?.value,h=q(y?.repeat,ye.repeat),b=Ee(y?.times?.value,ye.times),E=W(e.animation.value.config?.value.start,ye.start),_=W(e.animation.value.config?.value.end,ye.end),I={trigger:a,effect:l,type:s,direction:m,duration:u,delay:d,easing:f,replay:p,relativeTo:g,repeat:h,times:b,start:E,end:_,customEffects:c},w=_e("trigger",!0),C=_e("effect"),T=_e("replay",(j=I,!he.includes(j.trigger))),k=_e("relativeTo",be(I)),x=_e("start",(e=>"scrollOn"===e.trigger)(I)),z=_e("end",(e=>"scrollOn"===e.trigger)(I)),O=_e("customEffects",(e=>"custom"===e.effect)(I)),S=_e("effectType",(e=>"custom"!==e.effect)(I)),$=_e("direction",(e=>"custom"!==e.effect)(I)),D=_e("repeat",(e=>"scrollOn"!==e.trigger)(I)),A=_e("times",(e=>"scrollOn"!==e.trigger&&"times"===e.repeat)(I)),R=_e("easing"),U=n=>{const o=de("direction"in n,n.effect,n.direction,m,l),i={...e,interaction_id:e.interaction_id,trigger:P(n.trigger??a),animation:G({effect:n.effect??l,type:n.type??s,direction:o,duration:n.duration??u,delay:n.delay??d,replay:n.replay??p,easing:n.easing??f,relativeTo:n.relativeTo??g,repeat:n.repeat??h,times:n.times??b,start:n.start??E,end:n.end??_,customEffects:n.customEffects??c})};t(i);const v=q(i.interaction_id);setTimeout(()=>{r(v)},0)};var j;return n.createElement(se.PopoverContent,{p:1.5},n.createElement(o.Grid,{container:!0,spacing:1.5},w&&n.createElement(ve,{label:(0,i.__)("Trigger","elementor")},n.createElement(w,{value:a,onChange:e=>U({trigger:e})})),T&&n.createElement(ve,{label:(0,i.__)("Replay","elementor")},n.createElement(T,{value:p,onChange:e=>U({replay:e}),disabled:!0}))),n.createElement(o.Divider,null),n.createElement(o.Grid,{container:!0,spacing:1.5},C&&n.createElement(ve,{label:(0,i.__)("Effect","elementor")},n.createElement(C,{value:l,onChange:e=>U({effect:e})})),O&&n.createElement(ve,{label:(0,i.__)("Custom Effect","elementor")},n.createElement(O,{value:c,onChange:e=>U({customEffects:e})})),S&&n.createElement(ve,{label:(0,i.__)("Type","elementor")},n.createElement(S,{value:s,onChange:e=>U({type:e})})),$&&n.createElement(ve,{label:(0,i.__)("Direction","elementor")},n.createElement($,{value:m,onChange:e=>U({direction:e}),interactionType:s})),D&&n.createElement(ve,{label:(0,i.__)("Repeat","elementor")},n.createElement(D,{value:h,onChange:e=>U({repeat:e})})),A&&n.createElement(ve,{label:(0,i.__)("Times","elementor")},n.createElement(A,{value:b,onChange:e=>U({times:Ee(e,ye.times)})})),(e=>!("scrollOn"===e.trigger))(I)&&n.createElement(ve,{label:(0,i.__)("Duration","elementor")},n.createElement(ge,{value:String(u),onChange:e=>U({duration:e}),defaultValue:ye.duration})),(e=>!("scrollOn"===e.trigger))(I)&&n.createElement(ve,{label:(0,i.__)("Delay","elementor")},n.createElement(ge,{value:String(d),onChange:e=>U({delay:e}),defaultValue:ye.delay}))),be(I)&&k&&n.createElement(n.Fragment,null,n.createElement(o.Divider,null),n.createElement(o.Grid,{container:!0,spacing:1.5},x&&n.createElement(ve,{label:(0,i.__)("Start","elementor")},n.createElement(x,{value:v(E,["%"]).size?.toString()??"",onChange:e=>U({start:e})})),z&&n.createElement(ve,{label:(0,i.__)("End","elementor")},n.createElement(z,{value:v(_,["%"]).size?.toString()??"",onChange:e=>U({end:e})})),n.createElement(ve,{label:(0,i.__)("Relative To","elementor")},n.createElement(k,{value:g,onChange:e=>U({relativeTo:e})}))),n.createElement(o.Divider,null)),R&&n.createElement(o.Grid,{container:!0,spacing:1.5},n.createElement(ve,{label:(0,i.__)("Easing","elementor")},n.createElement(R,{value:f,onChange:e=>{U({easing:e})}}))))};var we=window.elementorV2.editorResponsive;function Ce(){return Ce=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ce.apply(null,arguments)}const Te="tiny",ke=({interaction:e,onChange:t})=>{const r=(0,we.useBreakpoints)(),a=(0,n.useMemo)(()=>r.map(e=>({label:e.label,value:String(e.id)})),[r]),[l,c]=(0,n.useState)(()=>{const t=V(e.breakpoints).filter(e=>a.some(({value:t})=>t===e));return a.filter(({value:e})=>!t.includes(e))}),s=(0,n.useCallback)((n,r)=>{c(r);const o=r.map(e=>e.value),i=a.filter(e=>!o.includes(e.value)).map(e=>e.value),l={...e,...i.length>0&&{breakpoints:M(i)}};0===i.length&&delete l.breakpoints,t(l)},[e,a,t]);return n.createElement(se.PopoverContent,{p:1.5},n.createElement(o.Grid,{container:!0,spacing:1.5},n.createElement(o.Grid,{item:!0,xs:12},n.createElement(o.Stack,{direction:"column",gap:1},n.createElement(se.ControlFormLabel,{sx:{width:"100%"}},(0,i.__)("Trigger on","elementor")),n.createElement(o.Autocomplete,{fullWidth:!0,multiple:!0,value:l,onChange:s,size:Te,options:a,isOptionEqualToValue:(e,t)=>e.value===t.value,renderInput:e=>n.createElement(o.TextField,e),renderTags:(e,t)=>e.map((e,r)=>{const{key:i,...a}=t({index:r});return n.createElement(o.Chip,Ce({key:i,size:Te,label:e.label},a))})})))))};function xe(){return xe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xe.apply(null,arguments)}const ze=({index:e,value:t})=>{const{getTabsProps:r,getTabProps:a,getTabPanelProps:l}=(0,o.useTabs)("details"),c=function(){const e=(0,n.useContext)(me);if(!e)throw new Error("useInteractionItemContext must be used within InteractionItemContextProvider");return e}(),s=(0,n.useCallback)(t=>{c?.onInteractionChange(e,t)},[c,e]),m=(0,n.useCallback)(e=>{c?.onPlayInteraction(e)},[c]),u=q(t.value.interaction_id);return n.createElement(n.Fragment,null,n.createElement(o.Tabs,xe({size:"small",variant:"fullWidth","aria-label":(0,i.__)("Interaction","elementor")},r()),n.createElement(o.Tab,xe({label:(0,i.__)("Details","elementor")},a("details"))),n.createElement(o.Tab,xe({label:(0,i.__)("Settings","elementor")},a("settings")))),n.createElement(o.Divider,null),n.createElement(o.TabPanel,xe({sx:{p:0}},l("details")),n.createElement(Ie,{key:u,interaction:t.value,onChange:s,onPlayInteraction:m})),n.createElement(o.TabPanel,xe({sx:{p:0}},l("settings")),n.createElement(ke,{key:u,interaction:t.value,onChange:s})))};function Oe(e){const{interactions:t,onSelectInteractions:a,onPlayInteraction:l,triggerCreateOnShowEmpty:c}=e,{elementId:s}=ne(),m=(0,n.useRef)(!1),u=(0,n.useCallback)(e=>{a(e)},[a]);(0,n.useEffect)(()=>{if(c&&!m.current&&(!t.items||0===t.items?.length)){m.current=!0;const e={version:1,items:[F()]};u(e)}},[c,t.items,u]);const d=(0,n.useMemo)(()=>t.items?.length>=5,[t.items?.length]),p=d?n.createElement(o.Alert,{color:"secondary",icon:n.createElement(r.InfoCircleFilledIcon,null),size:"small"},n.createElement(o.AlertTitle,null,(0,i.__)("Interactions","elementor")),n.createElement(o.Box,{component:"span"},(0,i.__)("You've reached the limit of 5 interactions for this element. Please remove an interaction before creating a new one.","elementor"))):void 0,f=(0,n.useCallback)((e,n,r)=>{if(u({...t,items:e}),"add"===r?.action?.type){const e=r.action.payload[0]?.item;e&&ce(s,e)}},[t,u,s]),g=(0,n.useCallback)((e,n)=>{const r=structuredClone(t.items);r[e]={$$type:"interaction-item",value:n},u({...t,items:r})},[t,u]),v=(0,n.useMemo)(()=>({onInteractionChange:g,onPlayInteraction:l}),[g,l]);return n.createElement(ue,{value:v},n.createElement(se.Repeater,{openOnAdd:!0,openItem:c?0:void 0,label:(0,i.__)("Interactions","elementor"),values:t.items,setValues:f,showDuplicate:!1,showToggle:!1,isSortable:!1,disableAddItemButton:d,addButtonInfotipContent:p,itemSettings:{initialValues:F(),Label:({value:e})=>H(e.value),Icon:()=>null,Content:ze,actions:e=>n.createElement(o.Tooltip,{key:"preview",placement:"top",title:(0,i.__)("Preview","elementor")},n.createElement(o.IconButton,{"aria-label":(0,i.__)("Play interaction","elementor"),size:"tiny",onClick:()=>l(q(e.value.interaction_id))},n.createElement(r.PlayerPlayIcon,{fontSize:"tiny"})))}}))}const Se=({elementId:e})=>n.createElement(oe,null,n.createElement(Pe,{elementId:e}));function Pe({elementId:e}){const t=Q(e),r=(0,n.useState)(!1),o=t?.items?.length||r[0];return n.createElement(l.SessionStorageProvider,{prefix:e},o?n.createElement(te,{elementId:e},n.createElement($e,{firstInteractionState:r})):n.createElement(a,{onCreateInteraction:()=>{r[1](!0),ce(e,F())}}))}function $e({firstInteractionState:e}){const{interactions:t,setInteractions:r,playInteractions:i}=ne(),a=(0,n.useCallback)(t=>{e[1](!1),r(t||void 0)},[r,e]);return n.createElement(o.Stack,{sx:{m:1,p:1.5},gap:2},n.createElement(Oe,{triggerCreateOnShowEmpty:e[0],interactions:t,onSelectInteractions:a,onPlayInteraction:i}))}const De=(()=>{const e=[],t=()=>e.slice(0).sort((e,t)=>e.priority>t.priority?-1:1);return{all:()=>t().flatMap(e=>e.actions.all()),register:t=>{e.push(t)},subscribe:t=>{const n=e.map(e=>e.subscribe(t));return()=>{n.forEach(e=>e())}},getProviders:t,getProviderByKey:t=>e.find(e=>{try{return e.getKey()===t}catch{return!1}})}})(),Ae=10;function Re({key:e,priority:t=Ae,subscribe:n=()=>()=>{},actions:r}){return{getKey:"string"==typeof e?()=>e:e,priority:t,subscribe:n,actions:{all:r.all}}}const Ue="document-elements-interactions-",Be=Re({key:()=>{const e=(0,c.getCurrentDocumentId)();return e?`${Ue}${e}`:`${Ue}pending`},priority:50,subscribe:e=>(0,s.__privateListenTo)([(0,s.windowEvent)("elementor/element/update_interactions")],()=>e()),actions:{all:()=>(0,c.getElements)().filter(e=>{const t=(0,c.getElementInteractions)(e.id);return!!t&&t?.items?.length>0}).map(e=>{const t=(0,c.getElementInteractions)(e.id);return{elementId:e.id,dataId:e.id,interactions:t||{version:1,items:[]}}})}});var je=window.elementorV2.editorMcp;function Me(e){const t=e?.model.get("widgetType")||e?.model.get("elType"),n=(0,c.getWidgetsCache)(),r=n?.[t];return Boolean(r?.atomic_props_schema)}function Ve({value:e,onChange:t,interactionType:o}){const a=(0,n.useMemo)(()=>{const e="in"===o;return[{value:"top",label:e?(0,i.__)("From top","elementor"):(0,i.__)("To top","elementor"),renderContent:({size:t})=>e?n.createElement(r.ArrowDownSmallIcon,{fontSize:t}):n.createElement(r.ArrowUpSmallIcon,{fontSize:t}),showTooltip:!0},{value:"bottom",label:"in"===o?(0,i.__)("From bottom","elementor"):(0,i.__)("To bottom","elementor"),renderContent:({size:t})=>e?n.createElement(r.ArrowUpSmallIcon,{fontSize:t}):n.createElement(r.ArrowDownSmallIcon,{fontSize:t}),showTooltip:!0},{value:"left",label:"in"===o?(0,i.__)("From left","elementor"):(0,i.__)("To left","elementor"),renderContent:({size:t})=>e?n.createElement(r.ArrowRightIcon,{fontSize:t}):n.createElement(r.ArrowLeftIcon,{fontSize:t}),showTooltip:!0},{value:"right",label:"in"===o?(0,i.__)("From right","elementor"):(0,i.__)("To right","elementor"),renderContent:({size:t})=>e?n.createElement(r.ArrowLeftIcon,{fontSize:t}):n.createElement(r.ArrowRightIcon,{fontSize:t}),showTooltip:!0}]},[o]);return n.createElement(se.ToggleButtonGroupUi,{items:a,exclusive:!0,onChange:t,value:e})}var Ge=window.elementorV2.editorUi;const Le=(0,n.forwardRef)(({content:e,upgradeUrl:t,anchorRef:r,trackingData:a},l)=>{const[c,s]=(0,n.useState)(!1);(0,Ge.useCanvasClickHandler)(c,()=>s(!1));const m=(0,n.useCallback)(()=>{s(e=>(e||(0,se.trackViewPromotion)(a),!e))},[a]);return(0,n.useImperativeHandle)(l,()=>({toggle:m}),[m]),n.createElement(Ge.PromotionPopover,{open:c,title:(0,i.__)("Interactions","elementor"),content:e,ctaText:(0,i.__)("Upgrade now","elementor"),ctaUrl:t,anchorRef:r,placement:r?"right-start":void 0,onClose:e=>{e.stopPropagation(),s(!1)},onCtaClick:()=>(0,se.trackUpgradePromotionClick)(a)},n.createElement(o.Box,{onMouseDown:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation(),m()},sx:{cursor:"pointer",display:"inline-flex",mr:1}},n.createElement(Ge.PromotionChip,null)))});function Fe({value:e,onChange:t,baseOptions:r,disabledOptions:a,promotionLabel:l,promotionContent:c,upgradeUrl:s,trackingData:m}){const u=(0,n.useRef)(null),d=(0,n.useRef)(null);return n.createElement(o.Select,{value:e,onChange:e=>t?.(e.target.value),fullWidth:!0,displayEmpty:!0,size:"tiny",MenuProps:{disablePortal:!0}},Object.entries(r).map(([e,t])=>n.createElement(Ge.MenuListItem,{key:e,value:e},t)),n.createElement(o.MenuSubheader,{ref:d,sx:{cursor:"pointer",color:"text.tertiary",fontWeight:"400",display:"flex",alignItems:"center"},onMouseDown:e=>{e.stopPropagation(),u.current?.toggle()}},l??(0,i.__)("PRO features","elementor"),n.createElement(Le,{content:c,upgradeUrl:s,ref:u,anchorRef:d,trackingData:m})),Object.entries(a).map(([e,t])=>n.createElement(Ge.MenuListItem,{key:e,value:e,disabled:!0,sx:{pl:3}},t)))}const Ne={target_name:"interactions_easing",location_l2:"interactions"},qe={easeIn:(0,i.__)("Ease In","elementor"),easeInOut:(0,i.__)("Ease In Out","elementor"),easeOut:(0,i.__)("Ease Out","elementor"),backIn:(0,i.__)("Back In","elementor"),backInOut:(0,i.__)("Back In Out","elementor"),backOut:(0,i.__)("Back Out","elementor"),linear:(0,i.__)("Linear","elementor")},We=["easeIn"];function Ke({}){const e=Object.fromEntries(Object.entries(qe).filter(([e])=>We.includes(e))),t=Object.fromEntries(Object.entries(qe).filter(([e])=>!We.includes(e)));return n.createElement(Fe,{value:ye.easing,baseOptions:e,disabledOptions:t,promotionContent:(0,i.__)("Upgrade to control the smoothness of the interaction.","elementor"),upgradeUrl:"https://go.elementor.com/go-pro-interactions-easing-modal/",trackingData:Ne})}const Ye={target_name:"interactions_effect",location_l2:"interactions"},He={fade:(0,i.__)("Fade","elementor"),slide:(0,i.__)("Slide","elementor"),scale:(0,i.__)("Scale","elementor"),custom:(0,i.__)("Custom","elementor")},Je=["fade","slide","scale"];function Xe({value:e,onChange:t}){const r=Object.fromEntries(Object.entries(He).filter(([e])=>Je.includes(e))),o=Object.fromEntries(Object.entries(He).filter(([e])=>!Je.includes(e)));return n.createElement(Fe,{value:e in r?e:ye.effect,onChange:t,baseOptions:r,disabledOptions:o,promotionLabel:(0,i.__)("PRO effects","elementor"),promotionContent:(0,i.__)("Upgrade to further customize your animation with opacity, scale, move, rotate and more.","elementor"),upgradeUrl:"https://go.elementor.com/go-pro-interactions-custom-effect-modal/",trackingData:Ye})}function Qe({value:e,onChange:t}){const r=[{value:"in",label:(0,i.__)("In","elementor"),renderContent:()=>(0,i.__)("In","elementor"),showTooltip:!0},{value:"out",label:(0,i.__)("Out","elementor"),renderContent:()=>(0,i.__)("Out","elementor"),showTooltip:!0}];return n.createElement(se.ToggleButtonGroupUi,{items:r,exclusive:!0,onChange:t,value:e})}const Ze="1 / 1",et=(0,n.forwardRef)(({children:e,promotionChip:t},r)=>n.createElement(o.Box,{ref:r,sx:{display:"grid",alignItems:"center"}},n.createElement(o.Box,{sx:{gridArea:Ze}},e),n.createElement(o.Box,{sx:{gridArea:Ze,marginInlineEnd:"50%",justifySelf:"end"}},t))),tt={target_name:"interactions_repeat",location_l2:"interactions"},nt={times:(0,i.__)("times","elementor"),loop:(0,i.__)("loop","elementor")},rt={times:(0,i.__)("Enable number","elementor"),loop:(0,i.__)("Infinite repeat","elementor")};function ot(){const e=(0,n.useRef)(null),t=[{value:nt.times,disabled:!0,label:rt.times,renderContent:({size:e})=>n.createElement(r.Number123Icon,{fontSize:e}),showTooltip:!0},{value:nt.loop,disabled:!0,label:rt.loop,renderContent:({size:e})=>n.createElement(r.RepeatIcon,{fontSize:e}),showTooltip:!0}];return n.createElement(et,{ref:e,promotionChip:n.createElement(Le,{content:(0,i.__)("Upgrade to control how many times the animation repeats.","elementor"),upgradeUrl:"https://go.elementor.com/go-pro-interactions-repeat-modal/",anchorRef:e,trackingData:tt})},n.createElement(se.ToggleButtonGroupUi,{items:t,exclusive:!0,onChange:()=>{},value:""}))}const it={target_name:"interactions_replay",location_l2:"interactions"},at={no:(0,i.__)("No","elementor"),yes:(0,i.__)("Yes","elementor")},lt=["no"];function ct({onChange:e}){const t=(0,n.useRef)(null),o=[{value:!1,disabled:!1,label:at.no,renderContent:({size:e})=>n.createElement(r.MinusIcon,{fontSize:e}),showTooltip:!0},{value:!0,disabled:!0,label:at.yes,renderContent:({size:e})=>n.createElement(r.CheckIcon,{fontSize:e}),showTooltip:!0}];return n.createElement(et,{ref:t,promotionChip:n.createElement(Le,{content:(0,i.__)("Upgrade to run the animation every time its trigger occurs.","elementor"),upgradeUrl:"https://go.elementor.com/go-pro-interactions-replay-modal/",anchorRef:t,trackingData:it})},n.createElement(se.ToggleButtonGroupUi,{items:o,exclusive:!0,onChange:e,value:!1}))}const st={target_name:"interactions_trigger",location_l2:"interactions"},mt={load:(0,i.__)("Page load","elementor"),scrollIn:(0,i.__)("Scroll into view","elementor"),scrollOn:(0,i.__)("While scrolling","elementor"),hover:(0,i.__)("On hover","elementor"),click:(0,i.__)("On click","elementor")},ut=["load","scrollIn"];function dt({value:e,onChange:t}){const r=Object.fromEntries(Object.entries(mt).filter(([e])=>ut.includes(e))),o=Object.fromEntries(Object.entries(mt).filter(([e])=>!ut.includes(e)));return n.createElement(Fe,{value:e in r?e:ye.trigger,onChange:t,baseOptions:r,disabledOptions:o,promotionLabel:(0,i.__)("PRO triggers","elementor"),promotionContent:(0,i.__)("Upgrade to unlock more interactions triggers.","elementor"),upgradeUrl:"https://go.elementor.com/go-pro-interactions-triggers-modal/",trackingData:st})}var pt=window.elementorV2.utils,ft=window.elementorV2.schema;const gt={trigger:ft.z.enum(["load","scrollIn"]).optional().describe("Event that triggers the animation"),effect:ft.z.enum(["fade","slide","scale"]).optional().describe("Animation effect type"),effectType:ft.z.enum(["in","out"]).optional().describe("Whether the animation plays in or out"),direction:ft.z.enum(["top","bottom","left","right",""]).optional().describe("Direction for slide effect. Use empty string for fade/scale."),duration:ft.z.number().min(0).max(1e4).optional().describe("Animation duration in milliseconds"),delay:ft.z.number().min(0).max(1e4).optional().describe("Animation delay in milliseconds"),easing:ft.z.string().optional().describe("Easing function. See interactions schema for options."),excludedBreakpoints:ft.z.array(ft.z.string()).optional().describe('Breakpoint IDs on which this interaction is disabled (e.g. ["mobile", "tablet"]). Omit to enable on all breakpoints.')},vt={trigger:ft.z.enum(["load","scrollIn","scrollOut","scrollOn","hover","click"]).optional().describe("Event that triggers the animation"),effect:ft.z.enum(["fade","slide","scale","custom"]).optional().describe("Animation effect type"),customEffects:ft.z.object({keyframes:ft.z.array(ft.z.object({stop:ft.z.number().describe("The stop of the keyframe in percent, can be either 0 or 100"),value:ft.z.object({opacity:ft.z.number().min(0).max(1).describe("The opacity of the keyframe"),scale:ft.z.object({x:ft.z.number().min(0).max(1).describe("The x scale of the keyframe"),y:ft.z.number().min(0).max(1).describe("The y scale of the keyframe")}).optional().describe("The scale of the keyframe"),rotate:ft.z.object({x:ft.z.number().min(0).max(360).describe("The x rotate of the keyframe"),y:ft.z.number().min(0).max(360).describe("The y rotate of the keyframe"),z:ft.z.number().min(0).max(360).describe("The z rotate of the keyframe")}).optional().describe("The rotate of the keyframe"),move:ft.z.object({x:ft.z.number().min(0).max(1).describe("The x move of the keyframe"),y:ft.z.number().min(0).max(1).describe("The y move of the keyframe"),z:ft.z.number().min(0).max(1).describe("The z move of the keyframe")}).optional().describe("The move of the keyframe"),skew:ft.z.object({x:ft.z.number().min(0).max(360).describe("The x skew of the keyframe"),y:ft.z.number().min(0).max(360).describe("The y skew of the keyframe")}).optional().describe("The skew of the keyframe")})})).describe("The keyframes of the custom effect")}).optional().describe("The custom effect to use for the animation")},yt="elementor://interactions/schema",ht='MCP server for managing element interactions and animations. Use this to add, modify, or remove animations and motion effects triggered by user events such as page load or scroll-into-view.\n\t\t** IMPORTANT **\n\t\tUse the "interactions-schema" resource to get the schema of the interactions.\n\t\tActions:\n\t\t- get: Read the current interactions on the element.\n\t\t- add: Add a new interaction (max 5 per element).\n\t\t- update: Update an existing interaction by its interactionId.\n\t\t- delete: Remove a specific interaction by its interactionId.\n\t\t- clear: Remove all interactions from the element.\n\t\t\n\t\tFor add/update, provide: trigger, effect, effectType, direction (required for slide effect), duration, delay, easing.\n\t\tUse excludedBreakpoints to disable the animation on specific responsive breakpoints (e.g. ["mobile", "tablet"]).\n\t\tExample Get Request:\n\t\t{\n\t\t\t"elementId": "123",\n\t\t\t"action": "get",\n\t\t\t"interactionId": "123",\n\t\t\t"animationData": {\n\t\t\t\t"trigger": "click",\n\t\t\t\t"effect": "fade",\n\t\t\t}\n\t\t}\n\t\tExample Add Request:\n\t\t{\n\t\t\t"elementId": "123",\n\t\t\t"action": "add",\n\t\t\t"animationData": {\n\t\t\t\t"effectType": "in",\n\t\t\t\t"direction": "top",\n\t\t\t\t"trigger": "click",\n\t\t\t\t"effect": "fade",\n\t\t\t\t"duration": 1000,\n\t\t\t\t"delay": 0,\n\t\t\t\t"easing": "easeIn",\n\t\t\t\t"excludedBreakpoints": ["mobile", "tablet"],\n\t\t\t}\n\t\t}\n\t\tExample Update Request:\n\t\t{\n\t\t\t"elementId": "123",\n\t\t\t"action": "update",\n\t\t\t"interactionId": "123",\n\t\t\t"animationData": {\n\t\t\t\t"trigger": "click",\n\t\t\t\t"effect": "fade",\n\t\t\t}\n\t\t}\n\t\tExample Delete Request:\n\t\t{\n\t\t\t"elementId": "123",\n\t\t\t"action": "delete",\n\t\t\t"interactionId": "123",\n\t\t}\n\t\tExample Clear Request:\n\t\t{\n\t\t\t"elementId": "123",\n\t\t\t"action": "clear",\n\t\t}',bt={version:1,items:[]},Et=["custom"],_t=e=>{const{setMCPDescription:t}=e;t("Everything related to V4 ( Atomic ) interactions.\n# Interactions\n- Create/update/delete interactions\n- Get list of interactions\n- Get details of an interaction\n"),(e=>{const{resource:t}=e,n=(0,pt.isProActive)()?{...gt,...vt}:gt;t("interactions-schema",yt,{description:"Schema describing all available options for element interactions."},async()=>({contents:[{uri:yt,mimeType:"application/json",text:JSON.stringify(n)}]}))})(e),(e=>{const{addTool:t}=e,n=(0,pt.isProActive)()?{...gt,...vt}:gt;t({name:"manage-element-interaction",description:"Manage the element interaction.",schema:{elementId:ft.z.string().describe("The ID of the element to read or modify interactions on"),action:ft.z.enum(["get","add","update","delete","clear"]).describe('Operation to perform. Use "get" first to inspect existing interactions.'),interactionId:ft.z.string().optional().describe('Interaction ID — required for update and delete. Obtain from a prior "get" call.'),...n},requiredResources:[{uri:yt,description:"Interactions schema with all available options"}],isDestructive:!0,outputSchema:{success:ft.z.boolean().describe("Whether the action was successful"),action:ft.z.enum(["get","add","update","delete","clear"]).describe('Operation to perform. Use "get" first to inspect existing interactions.'),elementId:ft.z.string().optional().describe("The ID of the element to read or modify interactions on"),interactions:ft.z.array(ft.z.any()).optional().describe("The interactions on the element"),count:ft.z.number().optional().describe("The number of interactions on the element")},handler:e=>{const{elementId:t,action:n,interactionId:r,...o}=e,{effectType:i,...a}=o,l=a.effect,s=i??(l&&!Et.includes(l)?"in":void 0),m=De.all().find(e=>e.elementId===t),u=m?.interactions??bt;if("get"===n){const e=u.items.map(e=>{const{value:t}=e,n=t.animation.value,r=n.timing_config.value,o=n.config.value;return{id:q(t.interaction_id),trigger:q(t.trigger),effect:q(n.effect),effectType:q(n.type),direction:q(n.direction),duration:W(r.duration),delay:W(r.delay),easing:q(o.easing),excludedBreakpoints:V(t.breakpoints)}});return{success:!0,elementId:t,action:n,interactions:e,count:e.length}}let d=[...u.items];switch(n){case"add":{if(d.length>=5)throw new Error(`Cannot add more than 5 interactions per element. Current count: ${d.length}. Delete an existing interaction first.`);const e=L({interactionId:O(),...a,type:s});d=[...d,e];break}case"update":{if(!r)throw new Error("interactionId is required for the update action.");const e=d.findIndex(e=>q(e.value.interaction_id)===r);if(-1===e)throw new Error(`Interaction with ID "${r}" not found on element "${t}".`);const n=L({interactionId:r,...a,type:s});d=[...d.slice(0,e),n,...d.slice(e+1)];break}case"delete":{if(!r)throw new Error("interactionId is required for the delete action.");const e=d.length;if(d=d.filter(e=>q(e.value.interaction_id)!==r),d.length===e)throw new Error(`Interaction with ID "${r}" not found on element "${t}".`);break}case"clear":d=[]}const p={...u,items:d};try{(0,c.updateElementInteractions)({elementId:t,interactions:p})}catch(e){throw new Error(`Failed to update interactions for element "${t}": ${e instanceof Error?e.message:"Unknown error"}`)}return{success:!0,action:n,elementId:t,count:d.length}}})})(e)};function It(){try{De.register(Be),(0,s.registerDataHook)("after","document/elements/duplicate",(e,t)=>{(Array.isArray(t)?t:[t]).forEach(e=>{!function(e){const t=(0,c.getContainer)(e);t&&(0,c.getAllDescendants)(t).forEach(e=>{!function(e){const t=(0,c.getContainer)(e);if(!t)return;const n=t.model.get("interactions");if(!n||!n.items)return;const r=structuredClone(n);r?.items?.forEach(e=>{"interaction-item"===e.$$type&&e.value&&(e.value.interaction_id=P(O()))}),t.model.set("interactions",r)}(e.id)})}(e.id)})}),function(){const e=(0,s.undoable)({do:({containers:e,newInteractions:t})=>{const n=function(e){const t=structuredClone(e);return t.items?.forEach(e=>{"interaction-item"===e.$$type&&e.value&&(e.value.interaction_id=P(O()))}),t}(t);return e.map(e=>{const t=e.id,r=(0,c.getElementInteractions)(t);return(0,c.updateElementInteractions)({elementId:t,interactions:n}),{elementId:t,previous:r??{version:1,items:[]}}})},undo:(e,t)=>{t.forEach(({elementId:e,previous:t})=>{(0,c.updateElementInteractions)({elementId:e,interactions:t.items?.length?t:void 0})})}},{title:({containers:e})=>function(e){return e.length>1?(0,i.__)("Elements","elementor"):(0,c.getElementLabel)(e[0].id)}(e),subtitle:(0,i.__)("Interactions Pasted","elementor")});(0,s.__privateListenTo)((0,s.commandStartEvent)("document/elements/paste-interactions"),t=>{const n=t.args,r=n.containers??(n.container?[n.container]:[]),o=n.storageKey??"clipboard";if(!r.length)return;const i=function(e="clipboard"){try{const t=JSON.parse(localStorage.getItem("elementor")??"{}");return t[e]?.elements}catch{return}}(o),[a]=i??[];if(!a)return;const l=function(e){if(!e)return null;const t="string"==typeof e?JSON.parse(e):e;return t?.items?.length?{version:t.version??1,items:t.items}:null}(a.interactions);if(!l)return;const s=r.filter(e=>(0,c.getContainer)(e.id)).filter(Me);s.length&&e({containers:s,newInteractions:l})})}(),u({type:"trigger",component:dt,options:["load","scrollIn"]}),u({type:"easing",component:Ke,options:["easeIn"]}),u({type:"replay",component:ct,options:["no"]}),u({type:"effectType",component:Qe,options:["in","out"]}),u({type:"direction",component:Ve,options:["top","bottom","left","right"]}),u({type:"effect",component:Xe,options:["fade","slide","scale"]}),u({type:"repeat",component:ot}),_t((0,je.getMCPByDomain)("interactions",{instructions:ht}))}catch(e){throw e}}(window.elementorV2=window.elementorV2||{}).editorInteractions=t}(),window.elementorV2.editorInteractions?.init?.();