X-Git-Url: https://yaffs.net/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Ftoolbar%2Fjs%2Ftoolbar.menu.js;h=5f7345d8d4e80d1aa8f654049a7010e4f17d8797;hb=f3baf763d342a5f82576890e2a8111a5aaf139dc;hp=0ca25a9b056621c08ac74bb135ddd528fabb4200;hpb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;p=yaffs-website diff --git a/web/core/modules/toolbar/js/toolbar.menu.js b/web/core/modules/toolbar/js/toolbar.menu.js index 0ca25a9b0..5f7345d8d 100644 --- a/web/core/modules/toolbar/js/toolbar.menu.js +++ b/web/core/modules/toolbar/js/toolbar.menu.js @@ -1,134 +1,71 @@ /** - * @file - * Builds a nested accordion widget. - * - * Invoke on an HTML list element with the jQuery plugin pattern. - * - * @example - * $('.toolbar-menu').drupalToolbarMenu(); - */ +* DO NOT EDIT THIS FILE. +* See the following change record for more information, +* https://www.drupal.org/node/2815083 +* @preserve +**/ (function ($, Drupal, drupalSettings) { - - 'use strict'; - - /** - * Store the open menu tray. - */ var activeItem = Drupal.url(drupalSettings.path.currentPath); $.fn.drupalToolbarMenu = function () { - var ui = { handleOpen: Drupal.t('Extend'), handleClose: Drupal.t('Collapse') }; - /** - * Handle clicks from the disclosure button on an item with sub-items. - * - * @param {Object} event - * A jQuery Event object. - */ + 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 toggleClickHandler(event) { var $toggle = $(event.target); var $item = $toggle.closest('li'); - // Toggle the list item. + toggleList($item); - // Close open sibling menus. + var $openItems = $item.siblings().filter('.open'); toggleList($openItems, false); } - /** - * Handle clicks from a menu item link. - * - * @param {Object} event - * A jQuery Event object. - */ function linkClickHandler(event) { - // If the toolbar is positioned fixed (and therefore hiding content - // underneath), then users expect clicks in the administration menu tray - // to take them to that destination but for the menu tray to be closed - // after clicking: otherwise the toolbar itself is obstructing the view - // of the destination they chose. if (!Drupal.toolbar.models.toolbarModel.get('isFixed')) { Drupal.toolbar.models.toolbarModel.set('activeTab', null); } - // Stopping propagation to make sure that once a toolbar-box is clicked - // (the whitespace part), the page is not redirected anymore. - event.stopPropagation(); - } - /** - * Toggle the open/close state of a list is a menu. - * - * @param {jQuery} $item - * The li item to be toggled. - * - * @param {Boolean} switcher - * A flag that forces toggleClass to add or a remove a class, rather than - * simply toggling its presence. - */ - function toggleList($item, switcher) { - var $toggle = $item.children('.toolbar-box').children('.toolbar-handle'); - switcher = (typeof switcher !== 'undefined') ? switcher : !$item.hasClass('open'); - // Toggle the item open state. - $item.toggleClass('open', switcher); - // Twist the toggle. - $toggle.toggleClass('open', switcher); - // Adjust the toggle text. - $toggle - .find('.action') - // Expand Structure, Collapse Structure. - .text((switcher) ? ui.handleClose : ui.handleOpen); + event.stopPropagation(); } - /** - * Add markup to the menu elements. - * - * Items with sub-elements have a list toggle attached to them. Menu item - * links and the corresponding list toggle are wrapped with in a div - * classed with .toolbar-box. The .toolbar-box div provides a positioning - * context for the item list toggle. - * - * @param {jQuery} $menu - * The root of the menu to be initialized. - */ function initItems($menu) { var options = { class: 'toolbar-icon toolbar-handle', action: ui.handleOpen, text: '' }; - // Initialize items and their links. + $menu.find('li > a').wrap('