File "editor-global-classes.min.js"
Full Path: /home/rfaztorb/public_html/wp-content-20250522162300/plugins/elementor/assets/js/packages/editor-global-classes/editor-global-classes.min.js
File size: 16.95 KB
MIME-type: text/plain
Charset: utf-8
!function(){"use strict";var e={d:function(t,n){for(var a in n)e.o(n,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:n[a]})},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,{init:function(){return Ee}});var n=window.elementorV2.editor,a=window.elementorV2.editorEditingPanel,r=window.elementorV2.editorPanels,o=window.elementorV2.editorStylesRepository,l=window.elementorV2.editorV1Adapters,i=window.elementorV2.store,s=window.React,c=window.elementorV2.editorDocuments,d=window.elementorV2.ui,m=window.wp.i18n,p=window.elementorV2.editorUi,u=window.elementorV2.icons,g=window.elementorV2.query,y=window.elementorV2.editorProps,h=window.elementorV2.editorStyles,b=window.elementorV2.utils,_=window.elementorV2.httpClient,E=window.elementorV2.editorCurrentUser,v=(0,b.createError)({code:"global_class_not_found",message:"Global class not found."}),w=(0,b.createError)({code:"global_class_label_already_exists",message:"Class with this name already exists."}),f="globalClasses",x=(0,i.__createSlice)({name:f,initialState:{data:{items:{},order:[]},initialData:{frontend:{items:{},order:[]},preview:{items:{},order:[]}},isDirty:!1},reducers:{load(e,{payload:{frontend:t,preview:n}}){e.initialData.frontend=t,e.initialData.preview=n,e.data=n,e.isDirty=!1},add(e,{payload:t}){e.data.items[t.id]=t,e.data.order.unshift(t.id),e.isDirty=!0},delete(e,{payload:t}){e.data.items=Object.fromEntries(Object.entries(e.data.items).filter((([e])=>e!==t))),e.data.order=e.data.order.filter((e=>e!==t)),e.isDirty=!0},setOrder(e,{payload:t}){e.data.order=t,e.isDirty=!0},update(e,{payload:t}){const n={...e.data.items[t.style.id],...t.style};e.data.items[t.style.id]=n,e.isDirty=!0},updateProps(e,{payload:t}){const n=e.data.items[t.id];if(!n)throw new v({context:{styleId:t.id}});const a=(0,h.getVariantByMeta)(n,t.meta);a?a.props=(0,y.mergeProps)(a.props,t.props):n.variants.push({meta:t.meta,props:t.props}),e.isDirty=!0},reset(e,{payload:{context:t}}){"frontend"===t&&(e.initialData.frontend=e.data,e.isDirty=!1),e.initialData.preview=e.data}}}),S=e=>e[f].data,D=e=>e[f].initialData.frontend,C=e=>e[f].initialData.preview,P=(0,i.__createSelector)(S,(({order:e})=>e)),T=(0,i.__createSelector)(S,(({items:e})=>e)),I=e=>e[f].isDirty,k=(0,i.__createSelector)(T,P,((e,t)=>t.map((t=>e[t])))),A=()=>(0,i.__useSelector)(I),M="/global-classes",V={all:(e="preview")=>(0,_.httpService)().get("elementor/v1"+M,{params:{context:e}}),publish:e=>(0,_.httpService)().put("elementor/v1"+M,e,{params:{context:"frontend"}}),saveDraft:e=>(0,_.httpService)().put("elementor/v1"+M,e,{params:{context:"preview"}})};async function O({context:e}){const t=S((0,i.__getState)());"preview"===e?await V.saveDraft({items:t.items,order:t.order,changes:B(t,C((0,i.__getState)()))}):await V.publish({items:t.items,order:t.order,changes:B(t,D((0,i.__getState)()))}),(0,i.__dispatch)(x.actions.reset({context:e}))}function B(e,t){const n=Object.keys(e.items),a=Object.keys(t.items);return{added:n.filter((e=>!a.includes(e))),deleted:a.filter((e=>!n.includes(e))),modified:n.filter((n=>n in t.items&&j(e.items[n])!==j(t.items[n])))}}function j(e){return JSON.stringify(e,((e,t)=>function(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}(t)?Object.keys(t).sort().reduce(((e,n)=>(e[n]=t[n],e)),{}):t))}var z=()=>{const[e,t]=(0,E.useSuppressedMessage)("global-class-manager"),[n,a]=(0,s.useState)(!e);return s.createElement(p.IntroductionModal,{open:n,title:(0,m.__)("Class Manager","elementor"),handleClose:e=>{e||t(),a(!1)}},s.createElement(d.Image,{sx:{width:"100%",aspectRatio:"16 / 9"},src:"https://assets.elementor.com/packages/v1/images/class-manager-intro.svg",alt:""}),s.createElement(R,null))},R=()=>s.createElement(d.Box,{p:3},s.createElement(d.Typography,{variant:"body2"},(0,m.__)("The Class Manager lets you see all the classes you've created, plus adjust their priority, rename them, and delete unused classes to keep your CSS structured.","elementor")),s.createElement("br",null),s.createElement(d.Typography,{variant:"body2"},(0,m.__)("Remember, when editing an item within a specific class, any changes you make will apply across all elements in that class.","elementor"))),L=!1,W=({sx:e,...t})=>s.createElement(u.ColorSwatchIcon,{sx:{transform:"rotate(90deg)",...e},...t}),F=(0,s.createContext)(null),$=({children:e})=>{const[t,n]=(0,s.useState)(null);return s.createElement(F.Provider,{value:{openDialog:e=>{n(e)},closeDialog:()=>{n(null)},dialogProps:t}},e,!!t&&s.createElement(H,{...t}))},G="delete-class-dialog",H=({label:e,id:t})=>{const{closeDialog:n}=N();return s.createElement(d.Dialog,{open:!0,onClose:n,"aria-labelledby":G,maxWidth:"xs"},s.createElement(d.DialogTitle,{id:G,display:"flex",alignItems:"center",gap:1,sx:{lineHeight:1}},s.createElement(u.AlertOctagonFilledIcon,{color:"error"}),(0,m.__)("Delete this class?","elementor")),s.createElement(d.DialogContent,null,s.createElement(d.DialogContentText,{variant:"body2",color:"textPrimary"},(0,m.__)("Deleting","elementor"),s.createElement(d.Typography,{variant:"subtitle2",component:"span"}," ",e," "),(0,m.__)("will permanently remove it from your project and may affect the design across all elements using it. This action cannot be undone.","elementor"))),s.createElement(d.DialogActions,null,s.createElement(d.Button,{color:"secondary",onClick:n},(0,m.__)("Not now","elementor")),s.createElement(d.Button,{variant:"contained",color:"error",onClick:()=>{(e=>{(0,i.__dispatch)(x.actions.delete(e)),L=!0})(t),n()}},(0,m.__)("Delete","elementor"))))},N=()=>{const e=(0,s.useContext)(F);if(!e)throw new Error("useDeleteConfirmation must be used within a DeleteConfirmationProvider");return e},U=e=>s.createElement(d.UnstableSortableProvider,{restrictAxis:!0,variant:"static",dragPlaceholderStyle:{opacity:"1"},...e}),Y=e=>s.createElement(J,{...e,role:"button",className:"class-item-sortable-trigger"},s.createElement(u.GripVerticalIcon,{fontSize:"tiny"})),q=({children:e,id:t,...n})=>s.createElement(d.UnstableSortableItem,{...n,id:t,render:({itemProps:t,isDragged:n,triggerProps:a,itemStyle:r,triggerStyle:o,dropIndicationStyle:l,showDropIndication:i,isDragOverlay:c,isDragPlaceholder:m})=>s.createElement(d.Box,{...t,style:r,component:"li",role:"listitem",sx:{backgroundColor:c?"background.paper":void 0}},e({itemProps:t,isDragged:n,triggerProps:a,itemStyle:r,triggerStyle:o,isDragPlaceholder:m}),i&&s.createElement(X,{style:l}))}),J=(0,d.styled)("div")((({theme:e})=>({position:"absolute",left:0,top:"50%",transform:`translate( -${e.spacing(1.5)}, -50% )`,color:e.palette.action.active}))),X=(0,d.styled)(d.Box)`
width: 100%;
height: 1px;
background-color: ${({theme:e})=>e.palette.text.primary};
`,K=({disabled:e})=>{const t=(0,i.__useSelector)(k),n=(0,i.__useDispatch)(),[a,r]=Q();return t?.length?s.createElement($,null,s.createElement(d.List,{sx:{display:"flex",flexDirection:"column",gap:.5}},s.createElement(U,{value:a,onChange:r},t?.map((({id:t,label:a})=>{const r=e=>{n(x.actions.update({style:{id:t,label:e}}))};return s.createElement(q,{key:t,id:t},(({isDragged:n,isDragPlaceholder:o,triggerProps:l,triggerStyle:i})=>s.createElement(Z,{id:t,label:a,renameClass:r,selected:n,disabled:e||o,sortableTriggerProps:{...l,style:i}})))}))))):s.createElement(te,null)},Q=()=>{const e=(0,i.__useDispatch)();return[(0,i.__useSelector)(P),t=>{e(x.actions.setOrder(t))}]},Z=({id:e,label:t,renameClass:n,selected:a,disabled:r,sortableTriggerProps:o})=>{const l=(0,s.useRef)(null),{ref:i,openEditMode:c,isEditing:g,error:y,getProps:h}=(0,p.useEditable)({value:t,onSubmit:n,validation:oe}),{openDialog:b}=N(),_=(0,d.usePopupState)({variant:"popover",disableAutoFocus:!0}),E=(a||_.isOpen)&&!r;return s.createElement(s.Fragment,null,s.createElement(d.Stack,{p:0},s.createElement(p.WarningInfotip,{open:Boolean(y),text:y??"",placement:"bottom",width:l.current?.getBoundingClientRect().width,offset:[0,-15]},s.createElement(ee,{ref:l,dense:!0,disableGutters:!0,showActions:E||g,shape:"rounded",onDoubleClick:c,selected:E,disabled:r,focusVisibleClassName:"visible-class-item"},s.createElement(Y,{...o}),s.createElement(ae,{isActive:g,isError:!!y},g?s.createElement(p.EditableField,{ref:i,as:d.Typography,variant:"caption",...h()}):s.createElement(p.EllipsisWithTooltip,{title:t,as:d.Typography,variant:"caption"})),s.createElement(d.Tooltip,{placement:"top",className:"class-item-more-actions",title:(0,m.__)("More actions","elementor")},s.createElement(d.IconButton,{size:"tiny",...(0,d.bindTrigger)(_),"aria-label":"More actions"},s.createElement(u.DotsVerticalIcon,{fontSize:"tiny"})))))),s.createElement(d.Menu,{...(0,d.bindMenu)(_),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}},s.createElement(p.MenuListItem,{sx:{minWidth:"160px"},onClick:()=>{_.close(),c()}},s.createElement(d.Typography,{variant:"caption",sx:{color:"text.primary"}},(0,m.__)("Rename","elementor"))),s.createElement(p.MenuListItem,{onClick:()=>{_.close(),b({id:e,label:t})}},s.createElement(d.Typography,{variant:"caption",sx:{color:"error.light"}},(0,m.__)("Delete","elementor")))))},ee=(0,d.styled)(d.ListItemButton,{shouldForwardProp:e=>!["showActions"].includes(e)})((({showActions:e})=>`\n\tmin-height: 36px;\n\n\t&.visible-class-item {\n\t\tbox-shadow: none !important;\n\t}\n\n\t.class-item-more-actions, .class-item-sortable-trigger {\n\t\tvisibility: ${e?"visible":"hidden"};\n\t}\n\n\t.class-item-sortable-trigger {\n\t\tvisibility: ${e?"visible":"hidden"};\n\t}\n\n\t&:hover&:not(:disabled) {\n\t\t.class-item-more-actions, .class-item-sortable-trigger {\n\t\t\tvisibility: visible;\n\t\t}\n\t}\n`)),te=()=>s.createElement(d.Stack,{alignItems:"center",gap:1.5,pt:10,px:.5,maxWidth:"260px",margin:"auto"},s.createElement(W,{fontSize:"large"}),s.createElement(ne,{variant:"subtitle2",component:"h2",color:"text.secondary"},(0,m.__)("There are no global classes yet.","elementor")),s.createElement(d.Typography,{align:"center",variant:"caption",color:"text.secondary"},(0,m.__)("CSS classes created in the editor panel will appear here. Once they are available, you can arrange their hierarchy, rename them, or delete them as needed.","elementor"))),ne=(0,d.styled)(d.Typography)((({theme:e,variant:t})=>({"&.MuiTypography-root":{...e.typography[t]}}))),ae=(0,d.styled)(d.Box,{shouldForwardProp:e=>!["isActive","isError"].includes(e)})((({theme:e,isActive:t,isError:n})=>({display:"flex",width:"100%",flexGrow:1,borderRadius:e.spacing(.5),border:re({isActive:t,isError:n,theme:e}),padding:`0 ${e.spacing(1)}`,marginLeft:t?e.spacing(1):0,minWidth:0}))),re=({isActive:e,isError:t,theme:n})=>t?`2px solid ${n.palette.error.main}`:e?`2px solid ${n.palette.secondary.main}`:"none",oe=e=>{const t=(0,o.validateStyleLabel)(e,"rename");return t.isValid?null:t.errorMessage},le="save-changes-dialog",ie=({children:e,onClose:t})=>s.createElement(d.Dialog,{open:!0,onClose:t,"aria-labelledby":le,maxWidth:"xs"},e);ie.Title=({children:e})=>s.createElement(d.DialogTitle,{id:le,display:"flex",alignItems:"center",gap:1,sx:{lineHeight:1}},s.createElement(u.AlertTriangleFilledIcon,{color:"secondary"}),e),ie.Content=({children:e})=>s.createElement(d.DialogContent,null,e),ie.ContentText=e=>s.createElement(d.DialogContentText,{variant:"body2",color:"textPrimary",display:"flex",flexDirection:"column",...e}),ie.Actions=({actions:e})=>{const[t,n]=(0,s.useState)(!1),{cancel:a,confirm:r}=e;return s.createElement(d.DialogActions,null,s.createElement(d.Button,{variant:"text",color:"secondary",onClick:a.action},a.label),s.createElement(d.Button,{variant:"contained",color:"secondary",onClick:async()=>{n(!0),await r.action(),n(!1)},loading:t},r.label))};var se=()=>{const[e,t]=(0,s.useState)(!1);return{isOpen:e,open:()=>t(!0),close:()=>t(!1)}},ce="global-classes-manager",{panel:de,usePanelActions:me}=(0,r.__createPanel)({id:ce,component:function(){const e=A(),{close:t}=me(),{open:n,close:a,isOpen:o}=se(),{mutateAsync:l,isPending:i}=ye();return ge(),s.createElement(p.ThemeProvider,null,s.createElement(d.ErrorBoundary,{fallback:s.createElement(ue,null)},s.createElement(r.Panel,null,s.createElement(r.PanelHeader,null,s.createElement(d.Stack,{p:1,pl:2,width:"100%",direction:"row",alignItems:"center"},s.createElement(r.PanelHeaderTitle,{sx:{display:"flex",alignItems:"center",gap:.5}},s.createElement(W,{fontSize:"inherit"}),(0,m.__)("Class Manager","elementor")),s.createElement(pe,{sx:{marginLeft:"auto"},disabled:i,onClose:()=>{e?n():t()}}))),s.createElement(r.PanelBody,{px:2},s.createElement(K,{disabled:i})),s.createElement(r.PanelFooter,null,s.createElement(d.Button,{fullWidth:!0,size:"small",color:"global",variant:"contained",onClick:l,disabled:!e,loading:i},(0,m.__)("Save changes","elementor"))))),s.createElement(z,null),o&&s.createElement(ie,null,s.createElement(ie.Title,null,(0,m.__)("You have unsaved changes","elementor")),s.createElement(ie.Content,null,s.createElement(ie.ContentText,null,(0,m.__)("You have unsaved changes in the Class Manager.","elementor")),s.createElement(ie.ContentText,null,(0,m.__)("To avoid losing your updates, save your changes before leaving.","elementor"))),s.createElement(ie.Actions,{actions:{cancel:{label:(0,m.__)("Cancel","elementor"),action:a},confirm:{label:(0,m.__)("Save & Continue","elementor"),action:async()=>{await l(),a(),t()}}}})))},allowedEditModes:["edit",ce],onOpen:()=>{(0,l.changeEditMode)(ce),function(){const e=window;e.$e?.components?.get?.("panel")?.blockUserInteractions?.()}()},onClose:()=>{(0,l.changeEditMode)("edit"),function(){const e=window;e.$e?.components?.get?.("panel")?.unblockUserInteractions?.()}()}}),pe=({onClose:e,...t})=>s.createElement(d.IconButton,{size:"small",color:"secondary",onClick:e,"aria-label":"Close",...t},s.createElement(u.XIcon,{fontSize:"small"})),ue=()=>s.createElement(d.Box,{role:"alert",sx:{minHeight:"100%",p:2}},s.createElement(d.Alert,{severity:"error",sx:{mb:2,maxWidth:400,textAlign:"center"}},s.createElement("strong",null,(0,m.__)("Something went wrong","elementor")))),ge=()=>{const e=A();(0,s.useEffect)((()=>{const t=t=>{e&&t.preventDefault()};return window.addEventListener("beforeunload",t),()=>{window.removeEventListener("beforeunload",t)}}),[e])},ye=()=>(0,g.useMutation)({mutationFn:()=>O({context:"frontend"}),onSuccess:async()=>{(0,c.setDocumentModifiedStatus)(!1),L&&await(async()=>{await(()=>{const e=(0,c.getCurrentDocument)();return(0,c.getV1DocumentsManager)().invalidateCache(),(0,l.__privateRunCommand)("editor/documents/switch",{id:e?.id,shouldScroll:!1,shouldNavigateToDefaultRoute:!1})})(),L=!1})()}}),he=()=>{const e=(0,c.__useActiveDocument)(),{open:t}=me(),{save:n}=(0,c.__useActiveDocumentActions)(),{open:a,close:r,isOpen:o}=se();return s.createElement(s.Fragment,null,s.createElement(d.Tooltip,{title:(0,m.__)("Class Manager","elementor"),placement:"top"},s.createElement(d.IconButton,{size:"tiny",onClick:()=>{e?.isDirty?a():t()},sx:{marginInlineEnd:-.75}},s.createElement(W,{fontSize:"tiny"}))),o&&s.createElement(ie,null,s.createElement(ie.Title,null,(0,m.__)("You have unsaved changes","elementor")),s.createElement(ie.Content,null,s.createElement(ie.ContentText,{sx:{mb:2}},(0,m.__)("To open the Class Manager, save your page first. You can't continue without saving.","elementor"))),s.createElement(ie.Actions,{actions:{cancel:{label:(0,m.__)("Stay here","elementor"),action:r},confirm:{label:(0,m.__)("Save & Continue","elementor"),action:async()=>{await n(),r(),t()}}}})))};function be(){const e=(0,i.__useDispatch)();return(0,s.useEffect)((()=>{Promise.all([V.all("preview"),V.all("frontend")]).then((([t,n])=>{const{data:a}=t,{data:r}=n;e(x.actions.load({preview:{items:a.data,order:a.meta.order},frontend:{items:r.data,order:r.meta.order}}))}))}),[e]),null}var _e=(0,o.createStylesProvider)({key:"global-classes",priority:30,limit:50,labels:{singular:(0,m.__)("class","elementor"),plural:(0,m.__)("classes","elementor")},subscribe:e=>(0,i.__subscribeWithSelector)((e=>e.globalClasses),e),actions:{all:()=>k((0,i.__getState)()),get:e=>((e,t)=>e[f].data.items[t]??null)((0,i.__getState)(),e),create:e=>{const t=T((0,i.__getState)());if(Object.values(t).map((e=>e.label)).includes(e))throw new w({context:{label:e}});const n=Object.keys(t),a=(0,h.generateId)("g-",n);return(0,i.__dispatch)(x.actions.add({id:a,type:"class",label:e,variants:[]})),a},update:e=>{(0,i.__dispatch)(x.actions.update({style:e}))},delete:e=>{(0,i.__dispatch)(x.actions.delete(e))},updateProps:e=>{(0,i.__dispatch)(x.actions.updateProps({id:e.id,meta:e.meta,props:e.props}))}}});function Ee(){(0,i.__registerSlice)(x),(0,r.__registerPanel)(de),o.stylesRepository.register(_e),(0,n.injectIntoLogic)({id:"global-classes-populate-store",component:be}),(0,a.injectIntoClassSelectorActions)({id:"global-classes-manager-button",component:he}),(0,l.__privateListenTo)((0,l.v1ReadyEvent)(),(()=>{!function(){const e=(0,i.__subscribeWithSelector)(I,(()=>{I((0,i.__getState)())&&(0,c.setDocumentModifiedStatus)(!0)}));(0,l.registerDataHook)("after","document/save/save",(e=>O({context:"publish"===e.status?"frontend":"preview"})))}()}))}(window.elementorV2=window.elementorV2||{}).editorGlobalClasses=t}(),window.elementorV2.editorGlobalClasses?.init?.();