/** * DO NOT EDIT THIS FILE. * See the following change record for more information, * https://www.drupal.org/node/2815083 * @preserve **/ (function ($, Drupal, drupalSettings) { var options = $.extend({ breakpoints: { 'toolbar.narrow': '', 'toolbar.standard': '', 'toolbar.wide': '' } }, drupalSettings.toolbar, { strings: { horizontal: Drupal.t('Horizontal orientation'), vertical: Drupal.t('Vertical orientation') } }); Drupal.behaviors.toolbar = { attach: function attach(context) { if (!window.matchMedia('only screen').matches) { return; } $(context).find('#toolbar-administration').once('toolbar').each(function () { var model = new Drupal.toolbar.ToolbarModel({ locked: JSON.parse(localStorage.getItem('Drupal.toolbar.trayVerticalLocked')), activeTab: document.getElementById(JSON.parse(localStorage.getItem('Drupal.toolbar.activeTabID'))), height: $('#toolbar-administration').outerHeight() }); Drupal.toolbar.models.toolbarModel = model; Object.keys(options.breakpoints).forEach(function (label) { var mq = options.breakpoints[label]; var mql = window.matchMedia(mq); Drupal.toolbar.mql[label] = mql; mql.addListener(Drupal.toolbar.mediaQueryChangeHandler.bind(null, model, label)); Drupal.toolbar.mediaQueryChangeHandler.call(null, model, label, mql); }); Drupal.toolbar.views.toolbarVisualView = new Drupal.toolbar.ToolbarVisualView({ el: this, model: model, strings: options.strings }); Drupal.toolbar.views.toolbarAuralView = new Drupal.toolbar.ToolbarAuralView({ el: this, model: model, strings: options.strings }); Drupal.toolbar.views.bodyVisualView = new Drupal.toolbar.BodyVisualView({ el: this, model: model }); model.trigger('change:isFixed', model, model.get('isFixed')); model.trigger('change:activeTray', model, model.get('activeTray')); var menuModel = new Drupal.toolbar.MenuModel(); Drupal.toolbar.models.menuModel = menuModel; Drupal.toolbar.views.menuVisualView = new Drupal.toolbar.MenuVisualView({ el: $(this).find('.toolbar-menu-administration').get(0), model: menuModel, strings: options.strings }); Drupal.toolbar.setSubtrees.done(function (subtrees) { menuModel.set('subtrees', subtrees); var theme = drupalSettings.ajaxPageState.theme; localStorage.setItem('Drupal.toolbar.subtrees.' + theme, JSON.stringify(subtrees)); model.set('areSubtreesLoaded', true); }); Drupal.toolbar.views.toolbarVisualView.loadSubtrees(); $(document).on('drupalViewportOffsetChange.toolbar', function (event, offsets) { model.set('offsets', offsets); }); model.on('change:orientation', function (model, orientation) { $(document).trigger('drupalToolbarOrientationChange', orientation); }).on('change:activeTab', function (model, tab) { $(document).trigger('drupalToolbarTabChange', tab); }).on('change:activeTray', function (model, tray) { $(document).trigger('drupalToolbarTrayChange', tray); }); if (Drupal.toolbar.models.toolbarModel.get('orientation') === 'horizontal' && Drupal.toolbar.models.toolbarModel.get('activeTab') === null) { Drupal.toolbar.models.toolbarModel.set({ activeTab: $('.toolbar-bar .toolbar-tab:not(.home-toolbar-tab) a').get(0) }); } }); } }; Drupal.toolbar = { views: {}, models: {}, mql: {}, setSubtrees: new $.Deferred(), mediaQueryChangeHandler: function mediaQueryChangeHandler(model, label, mql) { switch (label) { case 'toolbar.narrow': model.set({ isOriented: mql.matches, isTrayToggleVisible: false }); if (!mql.matches || !model.get('orientation')) { model.set({ orientation: 'vertical' }, { validate: true }); } break; case 'toolbar.standard': model.set({ isFixed: mql.matches }); break; case 'toolbar.wide': model.set({ orientation: mql.matches && !model.get('locked') ? 'horizontal' : 'vertical' }, { validate: true }); model.set({ isTrayToggleVisible: mql.matches }); break; default: break; } } }; Drupal.theme.toolbarOrientationToggle = function () { return '
'; }; Drupal.AjaxCommands.prototype.setToolbarSubtrees = function (ajax, response, status) { Drupal.toolbar.setSubtrees.resolve(response.subtrees); }; })(jQuery, Drupal, drupalSettings);