1/* 2 * Copyright © 2026 Regular Labs - All Rights Reserved 3 * GNU General Public License version 2 or later 4 */ 5import{Modal}from'./modules/modal.min.js?17.1.0';import{Helper}from'./modules/helper.min.js?17.1.0';(function(){'use strict';window.RegularLabs=window.RegularLabs||{};window.RegularLabs.Modals=window.RegularLabs.Modals||{eventCallbacks:{},defaults:{theme:'dark',width:'',height:'',iframeWidth:'100%',iframeHeight:'100%',videoWidth:'100vw',videoHeight:'56.25vw',position:'center',openEffect:'zoom',closeEffect:'zoom',nextEffect:'slideForward',previousEffect:'slideBackward',titlePosition:'top',descriptionPosition:'bottom',dimensionsIncludeTitle:false,titleTagType:'h3',showCloseButton:true,closeOnOutsideClick:true,keyboardNavigation:true,scrollNavigation:false,pagination:'buttons',paginationAsImages:true,paginationTextDivider:'/',showCountdown:false,slideshow:false,slideshowInterval:5000,slideshowResume:true,slideshowResumeTimeout:10000,minimumTouchSlideMovement:50,disableOnNarrow:false,disableBasedOn:'window',disableBreakPoint:576,imageZoom:false,cssEffects:{fade:{in:'fade-in',out:'fade-out'},zoom:{in:'zoom-in',out:'zoom-out'},slideForward:{in:document.documentElement.getAttribute('dir')==='rtl'?'slide-in-to-right':'slide-in-to-left',out:document.documentElement.getAttribute('dir')==='rtl'?'slide-out-to-right':'slide-out-to-left'},slideBackward:{in:document.documentElement.getAttribute('dir')==='rtl'?'slide-in-to-left':'slide-in-to-right',out:document.documentElement.getAttribute('dir')==='rtl'?'slide-out-to-left':'slide-out-to-right'},legacy:{in:'fade-in',out:'hide'},none:{in:'show',out:'hide'}},htmlTemplates:{modal:`<div data-modals-element="modal"class="hidden"aria-hidden="true"><div data-modals-element="overlay"data-modals-close-on-click></div><div data-modals-element="spinner"></div><div data-modals-element="container"data-modals-close-on-click><div data-modals-element="main"data-modals-close-on-click><div data-modals-element="left"><button type="button"data-modals-element="previous"class="hidden"aria-label="${Joomla.Text._('MDL_MODALTXT_PREVIOUS')}"data-modals-taborder="3"></button></div><div data-modals-element="center"data-modals-close-on-click><div data-modals-element="slides"data-modals-close-on-click></div></div><div data-modals-element="right"><button type="button"data-modals-element="next"class="hidden"aria-label="${Joomla.Text._('MDL_MODALTXT_NEXT')}"data-modals-taborder="2"></button></div></div><div data-modals-element="pagination-bar"data-modals-close-on-click><div data-modals-element="pagination"></div></div><div data-modals-element="close-bar"data-modals-close-on-click><button type="button"data-modals-element="close"class="hidden"aria-label="${Joomla.Text._('MDL_MODALTXT_CLOSE')}"data-modals-taborder="1"></button></div></div></div>`,slide:`<div data-modals-element="slide"class="hidden"data-modals-close-on-click><div data-modals-element="slide-container"data-modals-close-on-click><div data-modals-element="slide-before"class="hidden"></div><div data-modals-element="slide-content"><div data-modals-element="slide-content-inner"></div><div data-modals-element="countdown"class="hidden"></div></div><div data-modals-element="slide-after"class="hidden"></div></div></div>`,paginationButton:'<button type="button" data-modals-element="pagination-button">%number%</button>',paginationText:`<div data-modals-element="pagination-text"><span data-modals-element="pagination-text-number"></span><span data-modals-element="pagination-text-divider"></span><span data-modals-element="pagination-text-total"></span></div>`,title:'<%titleTagType% data-modals-element="slide-title"></%titleTagType%>',description:'<div data-modals-element="slide-description"></div>',}},settings:{},modals:[],bodyElements:[],groupCounter:0,registerEventCallback:function(name,callback){if(typeof callback!=='function'){return;} 6this.eventCallbacks[name]=callback;},init:async function(settings){const setSettings=(settings)=>{return new Promise(resolve=>{if(this.settings.length){return;} 7this.settings={...this.defaults};if(typeof Joomla!=='undefined'&&typeof Joomla.getOptions!=='undefined'){this.settings={...this.settings,...Joomla.getOptions('rl_modals')};} 8this.settings={...this.settings,...settings};for(const setting in this.settings){this.settings[setting]=Helper.normalizeSettingValue(this.settings[setting],this.defaults[setting]);} 9resolve();});};const createModalsFromLinks=async()=>{const links=document.querySelectorAll('[data-modals]');for(const link of links){await RegularLabs.Modals.createModalFromLink(link);}};await setSettings(settings);await createModalsFromLinks();},createModalFromLink:async function(link){return new Promise(async(resolve)=>{if(!(link instanceof Element)){resolve();return;} 10if(link.hasAttribute('href')&&!Helper.isSafeUrl(link.getAttribute('href'))){link.removeAttribute('href');resolve();return;} 11if(Helper.getData(link,'done')){resolve();return;} 12const group=this.getGroupFromLink(link);if(!group){resolve();return;} 13this.modals[group]=this.modals[group]||new Modal(link,group);resolve();});},getGroupFromLink:function(link){if(!(link instanceof Element)){return false;} 14let group=Helper.getData(link,'group');if(!group){group='_group_'+RegularLabs.Modals.groupCounter++;Helper.setData(link,'group',group);} 15return group;},hideBodyElements:function(modalElement){this.showBodyElements();
15Array.from(document.body.children).forEach((element)=>{if(element===modalElement||element.contains(modalElement)){return;} 16this.bodyElements.push({element:element,ariaHidden:element.getAttribute('aria-hidden'),inert:element.hasAttribute('inert'),});element.setAttribute('aria-hidden','true');element.setAttribute('inert','');if('inert'in element){element.inert=true;}});},showBodyElements:function(){if(!this.bodyElements.length){return;} 17this.bodyElements.forEach((state)=>{if(state.ariaHidden===null){state.element.removeAttribute('aria-hidden');}else{state.element.setAttribute('aria-hidden',state.ariaHidden);} 18if(state.inert){state.element.setAttribute('inert','');}else{state.element.removeAttribute('inert');} 19if('inert'in state.element){state.element.inert=state.inert;}});this.bodyElements=[];},open:function(link){const modal=this.getModalByLink(link);if(!modal){return;} 20modal.open();},close:function(link){if(!link){this.closeAll();return;} 21const modal=this.getModalByLink(link);if(!modal){return;} 22modal.close();},closeAll:function(){for(const group in this.modals){this.modals[group].close();}},getModalByLink:function(link){const linkElement=typeof link==='string'?document.getElementById(link):link;for(const group in this.modals){if(this.modals[group].link===linkElement){return this.modals[group];}} 23return null;},};RegularLabs.Modals.init();})();window.RLModals=window.RLModals||(function(options){return RegularLabs.Modals.init(options);});
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.