Chris@0
|
1 /**
|
Chris@0
|
2 * DO NOT EDIT THIS FILE.
|
Chris@0
|
3 * See the following change record for more information,
|
Chris@0
|
4 * https://www.drupal.org/node/2815083
|
Chris@0
|
5 * @preserve
|
Chris@0
|
6 **/
|
Chris@0
|
7
|
Chris@0
|
8 (function ($, Drupal, drupalSettings) {
|
Chris@0
|
9 var options = $.extend({
|
Chris@0
|
10 breakpoints: {
|
Chris@0
|
11 'toolbar.narrow': '',
|
Chris@0
|
12 'toolbar.standard': '',
|
Chris@0
|
13 'toolbar.wide': ''
|
Chris@0
|
14 }
|
Chris@0
|
15 }, drupalSettings.toolbar, {
|
Chris@0
|
16 strings: {
|
Chris@0
|
17 horizontal: Drupal.t('Horizontal orientation'),
|
Chris@0
|
18 vertical: Drupal.t('Vertical orientation')
|
Chris@0
|
19 }
|
Chris@0
|
20 });
|
Chris@0
|
21
|
Chris@0
|
22 Drupal.behaviors.toolbar = {
|
Chris@0
|
23 attach: function attach(context) {
|
Chris@0
|
24 if (!window.matchMedia('only screen').matches) {
|
Chris@0
|
25 return;
|
Chris@0
|
26 }
|
Chris@0
|
27
|
Chris@0
|
28 $(context).find('#toolbar-administration').once('toolbar').each(function () {
|
Chris@14
|
29 var model = new Drupal.toolbar.ToolbarModel({
|
Chris@0
|
30 locked: JSON.parse(localStorage.getItem('Drupal.toolbar.trayVerticalLocked')),
|
Chris@0
|
31 activeTab: document.getElementById(JSON.parse(localStorage.getItem('Drupal.toolbar.activeTabID'))),
|
Chris@0
|
32 height: $('#toolbar-administration').outerHeight()
|
Chris@0
|
33 });
|
Chris@0
|
34
|
Chris@14
|
35 Drupal.toolbar.models.toolbarModel = model;
|
Chris@0
|
36
|
Chris@14
|
37 Object.keys(options.breakpoints).forEach(function (label) {
|
Chris@14
|
38 var mq = options.breakpoints[label];
|
Chris@14
|
39 var mql = window.matchMedia(mq);
|
Chris@14
|
40 Drupal.toolbar.mql[label] = mql;
|
Chris@0
|
41
|
Chris@14
|
42 mql.addListener(Drupal.toolbar.mediaQueryChangeHandler.bind(null, model, label));
|
Chris@14
|
43
|
Chris@14
|
44 Drupal.toolbar.mediaQueryChangeHandler.call(null, model, label, mql);
|
Chris@14
|
45 });
|
Chris@0
|
46
|
Chris@0
|
47 Drupal.toolbar.views.toolbarVisualView = new Drupal.toolbar.ToolbarVisualView({
|
Chris@0
|
48 el: this,
|
Chris@0
|
49 model: model,
|
Chris@0
|
50 strings: options.strings
|
Chris@0
|
51 });
|
Chris@0
|
52 Drupal.toolbar.views.toolbarAuralView = new Drupal.toolbar.ToolbarAuralView({
|
Chris@0
|
53 el: this,
|
Chris@0
|
54 model: model,
|
Chris@0
|
55 strings: options.strings
|
Chris@0
|
56 });
|
Chris@0
|
57 Drupal.toolbar.views.bodyVisualView = new Drupal.toolbar.BodyVisualView({
|
Chris@0
|
58 el: this,
|
Chris@0
|
59 model: model
|
Chris@0
|
60 });
|
Chris@0
|
61
|
Chris@0
|
62 model.trigger('change:isFixed', model, model.get('isFixed'));
|
Chris@0
|
63 model.trigger('change:activeTray', model, model.get('activeTray'));
|
Chris@0
|
64
|
Chris@14
|
65 var menuModel = new Drupal.toolbar.MenuModel();
|
Chris@14
|
66 Drupal.toolbar.models.menuModel = menuModel;
|
Chris@0
|
67 Drupal.toolbar.views.menuVisualView = new Drupal.toolbar.MenuVisualView({
|
Chris@0
|
68 el: $(this).find('.toolbar-menu-administration').get(0),
|
Chris@0
|
69 model: menuModel,
|
Chris@0
|
70 strings: options.strings
|
Chris@0
|
71 });
|
Chris@0
|
72
|
Chris@0
|
73 Drupal.toolbar.setSubtrees.done(function (subtrees) {
|
Chris@0
|
74 menuModel.set('subtrees', subtrees);
|
Chris@0
|
75 var theme = drupalSettings.ajaxPageState.theme;
|
Chris@0
|
76 localStorage.setItem('Drupal.toolbar.subtrees.' + theme, JSON.stringify(subtrees));
|
Chris@0
|
77
|
Chris@0
|
78 model.set('areSubtreesLoaded', true);
|
Chris@0
|
79 });
|
Chris@0
|
80
|
Chris@0
|
81 Drupal.toolbar.views.toolbarVisualView.loadSubtrees();
|
Chris@0
|
82
|
Chris@0
|
83 $(document).on('drupalViewportOffsetChange.toolbar', function (event, offsets) {
|
Chris@0
|
84 model.set('offsets', offsets);
|
Chris@0
|
85 });
|
Chris@0
|
86
|
Chris@0
|
87 model.on('change:orientation', function (model, orientation) {
|
Chris@0
|
88 $(document).trigger('drupalToolbarOrientationChange', orientation);
|
Chris@0
|
89 }).on('change:activeTab', function (model, tab) {
|
Chris@0
|
90 $(document).trigger('drupalToolbarTabChange', tab);
|
Chris@0
|
91 }).on('change:activeTray', function (model, tray) {
|
Chris@0
|
92 $(document).trigger('drupalToolbarTrayChange', tray);
|
Chris@0
|
93 });
|
Chris@0
|
94
|
Chris@0
|
95 if (Drupal.toolbar.models.toolbarModel.get('orientation') === 'horizontal' && Drupal.toolbar.models.toolbarModel.get('activeTab') === null) {
|
Chris@0
|
96 Drupal.toolbar.models.toolbarModel.set({
|
Chris@0
|
97 activeTab: $('.toolbar-bar .toolbar-tab:not(.home-toolbar-tab) a').get(0)
|
Chris@0
|
98 });
|
Chris@0
|
99 }
|
Chris@17
|
100
|
Chris@17
|
101 $(window).on({
|
Chris@17
|
102 'dialog:aftercreate': function dialogAftercreate(event, dialog, $element, settings) {
|
Chris@17
|
103 var $toolbar = $('#toolbar-bar');
|
Chris@17
|
104 $toolbar.css('margin-top', '0');
|
Chris@17
|
105
|
Chris@17
|
106 if (settings.drupalOffCanvasPosition === 'top') {
|
Chris@17
|
107 var height = Drupal.offCanvas.getContainer($element).outerHeight();
|
Chris@17
|
108 $toolbar.css('margin-top', height + 'px');
|
Chris@17
|
109
|
Chris@17
|
110 $element.on('dialogContentResize.off-canvas', function () {
|
Chris@17
|
111 var newHeight = Drupal.offCanvas.getContainer($element).outerHeight();
|
Chris@17
|
112 $toolbar.css('margin-top', newHeight + 'px');
|
Chris@17
|
113 });
|
Chris@17
|
114 }
|
Chris@17
|
115 },
|
Chris@17
|
116 'dialog:beforeclose': function dialogBeforeclose() {
|
Chris@17
|
117 $('#toolbar-bar').css('margin-top', '0');
|
Chris@17
|
118 }
|
Chris@17
|
119 });
|
Chris@0
|
120 });
|
Chris@0
|
121 }
|
Chris@0
|
122 };
|
Chris@0
|
123
|
Chris@0
|
124 Drupal.toolbar = {
|
Chris@0
|
125 views: {},
|
Chris@0
|
126
|
Chris@0
|
127 models: {},
|
Chris@0
|
128
|
Chris@0
|
129 mql: {},
|
Chris@0
|
130
|
Chris@0
|
131 setSubtrees: new $.Deferred(),
|
Chris@0
|
132
|
Chris@0
|
133 mediaQueryChangeHandler: function mediaQueryChangeHandler(model, label, mql) {
|
Chris@0
|
134 switch (label) {
|
Chris@0
|
135 case 'toolbar.narrow':
|
Chris@0
|
136 model.set({
|
Chris@0
|
137 isOriented: mql.matches,
|
Chris@0
|
138 isTrayToggleVisible: false
|
Chris@0
|
139 });
|
Chris@0
|
140
|
Chris@0
|
141 if (!mql.matches || !model.get('orientation')) {
|
Chris@0
|
142 model.set({ orientation: 'vertical' }, { validate: true });
|
Chris@0
|
143 }
|
Chris@0
|
144 break;
|
Chris@0
|
145
|
Chris@0
|
146 case 'toolbar.standard':
|
Chris@0
|
147 model.set({
|
Chris@0
|
148 isFixed: mql.matches
|
Chris@0
|
149 });
|
Chris@0
|
150 break;
|
Chris@0
|
151
|
Chris@0
|
152 case 'toolbar.wide':
|
Chris@0
|
153 model.set({
|
Chris@0
|
154 orientation: mql.matches && !model.get('locked') ? 'horizontal' : 'vertical'
|
Chris@0
|
155 }, { validate: true });
|
Chris@0
|
156
|
Chris@0
|
157 model.set({
|
Chris@0
|
158 isTrayToggleVisible: mql.matches
|
Chris@0
|
159 });
|
Chris@0
|
160 break;
|
Chris@0
|
161
|
Chris@0
|
162 default:
|
Chris@0
|
163 break;
|
Chris@0
|
164 }
|
Chris@0
|
165 }
|
Chris@0
|
166 };
|
Chris@0
|
167
|
Chris@0
|
168 Drupal.theme.toolbarOrientationToggle = function () {
|
Chris@0
|
169 return '<div class="toolbar-toggle-orientation"><div class="toolbar-lining">' + '<button class="toolbar-icon" type="button"></button>' + '</div></div>';
|
Chris@0
|
170 };
|
Chris@0
|
171
|
Chris@0
|
172 Drupal.AjaxCommands.prototype.setToolbarSubtrees = function (ajax, response, status) {
|
Chris@0
|
173 Drupal.toolbar.setSubtrees.resolve(response.subtrees);
|
Chris@0
|
174 };
|
Chris@0
|
175 })(jQuery, Drupal, drupalSettings); |