/** * DO NOT EDIT THIS FILE. * See the following change record for more information, * https://www.drupal.org/node/2815083 * @preserve **/ (function ($, Drupal, drupalSettings) { var activeItem = Drupal.url(drupalSettings.path.currentPath); $.fn.drupalToolbarMenu = function () { var ui = { handleOpen: Drupal.t('Extend'), handleClose: Drupal.t('Collapse') }; function toggleClickHandler(event) { var $toggle = $(event.target); var $item = $toggle.closest('li'); toggleList($item); var $openItems = $item.siblings().filter('.open'); toggleList($openItems, false); } function linkClickHandler(event) { if (!Drupal.toolbar.models.toolbarModel.get('isFixed')) { Drupal.toolbar.models.toolbarModel.set('activeTab', null); } event.stopPropagation(); } function toggleList($item, switcher) { var $toggle = $item.children('.toolbar-box').children('.toolbar-handle'); switcher = typeof switcher !== 'undefined' ? switcher : !$item.hasClass('open'); $item.toggleClass('open', switcher); $toggle.toggleClass('open', switcher); $toggle.find('.action').text(switcher ? ui.handleClose : ui.handleOpen); } function initItems($menu) { var options = { class: 'toolbar-icon toolbar-handle', action: ui.handleOpen, text: '' }; $menu.find('li > a').wrap('
'); $menu.find('li').each(function (index, element) { var $item = $(element); if ($item.children('ul.toolbar-menu').length) { var $box = $item.children('.toolbar-box'); options.text = Drupal.t('@label', { '@label': $box.find('a').text() }); $item.children('.toolbar-box').append(Drupal.theme('toolbarMenuItemToggle', options)); } }); } function markListLevels($lists, level) { level = !level ? 1 : level; var $lis = $lists.children('li').addClass('level-' + level); $lists = $lis.children('ul'); if ($lists.length) { markListLevels($lists, level + 1); } } function openActiveItem($menu) { var pathItem = $menu.find('a[href="' + location.pathname + '"]'); if (pathItem.length && !activeItem) { activeItem = location.pathname; } if (activeItem) { var $activeItem = $menu.find('a[href="' + activeItem + '"]').addClass('menu-item--active'); var $activeTrail = $activeItem.parentsUntil('.root', 'li').addClass('menu-item--active-trail'); toggleList($activeTrail, true); } } return this.each(function (selector) { var $menu = $(this).once('toolbar-menu'); if ($menu.length) { $menu.on('click.toolbar', '.toolbar-box', toggleClickHandler).on('click.toolbar', '.toolbar-box a', linkClickHandler); $menu.addClass('root'); initItems($menu); markListLevels($menu); openActiveItem($menu); } }); }; Drupal.theme.toolbarMenuItemToggle = function (options) { return ''; }; })(jQuery, Drupal, drupalSettings);