123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- /**
- * 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 '<div class="toolbar-toggle-orientation"><div class="toolbar-lining">' + '<button class="toolbar-icon" type="button"></button>' + '</div></div>';
- };
- Drupal.AjaxCommands.prototype.setToolbarSubtrees = function (ajax, response, status) {
- Drupal.toolbar.setSubtrees.resolve(response.subtrees);
- };
- })(jQuery, Drupal, drupalSettings);
|