docs-cambiocds-com-jekyll-theme 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +21 -21
  3. data/README.md +48 -48
  4. data/_layouts/default.html +96 -100
  5. data/assets/css/asciidoctor.css +397 -397
  6. data/assets/css/coderay.css +89 -89
  7. data/assets/css/custom.css +32 -0
  8. data/assets/css/font-awesome.css +1801 -1801
  9. data/assets/css/font-awesome.min.css +3 -3
  10. data/assets/css/foundation.css +8545 -8545
  11. data/assets/css/foundation.min.css +8331 -8331
  12. data/assets/css/normalize.css +427 -427
  13. data/assets/js/foundation.min.js +6069 -6069
  14. data/assets/js/foundation/foundation.abide.js +325 -325
  15. data/assets/js/foundation/foundation.accordion.js +71 -71
  16. data/assets/js/foundation/foundation.alert.js +46 -46
  17. data/assets/js/foundation/foundation.clearing.js +573 -573
  18. data/assets/js/foundation/foundation.dropdown.js +444 -444
  19. data/assets/js/foundation/foundation.equalizer.js +77 -77
  20. data/assets/js/foundation/foundation.interchange.js +349 -349
  21. data/assets/js/foundation/foundation.joyride.js +939 -939
  22. data/assets/js/foundation/foundation.js +691 -691
  23. data/assets/js/foundation/foundation.magellan.js +199 -199
  24. data/assets/js/foundation/foundation.offcanvas.js +154 -154
  25. data/assets/js/foundation/foundation.orbit.js +512 -512
  26. data/assets/js/foundation/foundation.reveal.js +455 -455
  27. data/assets/js/foundation/foundation.slider.js +268 -268
  28. data/assets/js/foundation/foundation.tab.js +221 -221
  29. data/assets/js/foundation/foundation.tooltip.js +301 -301
  30. data/assets/js/foundation/foundation.topbar.js +444 -444
  31. data/assets/js/toc.js +82 -82
  32. data/assets/js/vendor/fastclick.js +169 -169
  33. data/assets/js/vendor/jquery.cookie.js +57 -57
  34. data/assets/js/vendor/jquery.js +2339 -2339
  35. data/assets/js/vendor/modernizr.js +304 -304
  36. data/assets/js/vendor/placeholder.js +75 -75
  37. metadata +12 -11
@@ -1,199 +1,199 @@
1
- ;
2
- (function ($, window, document, undefined) {
3
- 'use strict';
4
-
5
- Foundation.libs['magellan-expedition'] = {
6
- name: 'magellan-expedition',
7
-
8
- version: '5.5.0',
9
-
10
- settings: {
11
- active_class: 'active',
12
- threshold: 0, // pixels from the top of the expedition for it to become fixes
13
- destination_threshold: 20, // pixels from the top of destination for it to be considered active
14
- throttle_delay: 30, // calculation throttling to increase framerate
15
- fixed_top: 0, // top distance in pixels assigend to the fixed element on scroll
16
- offset_by_height: true, // whether to offset the destination by the expedition height. Usually you want this to be true, unless your expedition is on the side.
17
- duration: 700, // animation duration time
18
- easing: 'swing' // animation easing
19
- },
20
-
21
- init: function (scope, method, options) {
22
- Foundation.inherit(this, 'throttle');
23
- this.bindings(method, options);
24
- },
25
-
26
- events: function () {
27
- var self = this,
28
- S = self.S,
29
- settings = self.settings;
30
-
31
- // initialize expedition offset
32
- self.set_expedition_position();
33
-
34
- S(self.scope)
35
- .off('.magellan')
36
- .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href^="#"]', function (e) {
37
- e.preventDefault();
38
- var expedition = $(this).closest('[' + self.attr_name() + ']'),
39
- settings = expedition.data('magellan-expedition-init'),
40
- hash = this.hash.split('#').join(''),
41
- target = $('a[name="' + hash + '"]');
42
-
43
- if (target.length === 0) {
44
- target = $('#' + hash);
45
-
46
- }
47
-
48
-
49
- // Account for expedition height if fixed position
50
- var scroll_top = target.offset().top - settings.destination_threshold + 1;
51
- if (settings.offset_by_height) {
52
- scroll_top = scroll_top - expedition.outerHeight();
53
- }
54
-
55
- $('html, body').stop().animate({
56
- 'scrollTop': scroll_top
57
- }, settings.duration, settings.easing, function () {
58
- if (history.pushState) {
59
- history.pushState(null, null, '#' + hash);
60
- }
61
- else {
62
- location.hash = '#' + hash;
63
- }
64
- });
65
- })
66
- .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay));
67
-
68
- $(window)
69
- .on('resize.fndtn.magellan', self.throttle(this.set_expedition_position.bind(this), settings.throttle_delay));
70
- },
71
-
72
- check_for_arrivals: function () {
73
- var self = this;
74
- self.update_arrivals();
75
- self.update_expedition_positions();
76
- },
77
-
78
- set_expedition_position: function () {
79
- var self = this;
80
- $('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) {
81
- var expedition = $(this),
82
- settings = expedition.data('magellan-expedition-init'),
83
- styles = expedition.attr('styles'), // save styles
84
- top_offset, fixed_top;
85
-
86
- expedition.attr('style', '');
87
- top_offset = expedition.offset().top + settings.threshold;
88
-
89
- //set fixed-top by attribute
90
- fixed_top = parseInt(expedition.data('magellan-fixed-top'));
91
- if (!isNaN(fixed_top))
92
- self.settings.fixed_top = fixed_top;
93
-
94
- expedition.data(self.data_attr('magellan-top-offset'), top_offset);
95
- expedition.attr('style', styles);
96
- });
97
- },
98
-
99
- update_expedition_positions: function () {
100
- var self = this,
101
- window_top_offset = $(window).scrollTop();
102
-
103
- $('[' + this.attr_name() + '=fixed]', self.scope).each(function () {
104
- var expedition = $(this),
105
- settings = expedition.data('magellan-expedition-init'),
106
- styles = expedition.attr('style'), // save styles
107
- top_offset = expedition.data('magellan-top-offset');
108
-
109
- //scroll to the top distance
110
- if (window_top_offset + self.settings.fixed_top >= top_offset) {
111
- // Placeholder allows height calculations to be consistent even when
112
- // appearing to switch between fixed/non-fixed placement
113
- var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']');
114
- if (placeholder.length === 0) {
115
- placeholder = expedition.clone();
116
- placeholder.removeAttr(self.attr_name());
117
- placeholder.attr(self.add_namespace('data-magellan-expedition-clone'), '');
118
- expedition.before(placeholder);
119
- }
120
- expedition.css({position: 'fixed', top: settings.fixed_top}).addClass('fixed');
121
- } else {
122
- expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove();
123
- expedition.attr('style', styles).css('position', '').css('top', '').removeClass('fixed');
124
- }
125
- });
126
- },
127
-
128
- update_arrivals: function () {
129
- var self = this,
130
- window_top_offset = $(window).scrollTop();
131
-
132
- $('[' + this.attr_name() + ']', self.scope).each(function () {
133
- var expedition = $(this),
134
- settings = expedition.data(self.attr_name(true) + '-init'),
135
- offsets = self.offsets(expedition, window_top_offset),
136
- arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'),
137
- active_item = false;
138
- offsets.each(function (idx, item) {
139
- if (item.viewport_offset >= item.top_offset) {
140
- var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']');
141
- arrivals.not(item.arrival).removeClass(settings.active_class);
142
- item.arrival.addClass(settings.active_class);
143
- active_item = true;
144
- return true;
145
- }
146
- });
147
-
148
- if (!active_item) arrivals.removeClass(settings.active_class);
149
- });
150
- },
151
-
152
- offsets: function (expedition, window_offset) {
153
- var self = this,
154
- settings = expedition.data(self.attr_name(true) + '-init'),
155
- viewport_offset = window_offset;
156
-
157
- return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function (idx, el) {
158
- var name = $(this).data(self.data_attr('magellan-arrival')),
159
- dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']');
160
- if (dest.length > 0) {
161
- var top_offset = dest.offset().top - settings.destination_threshold;
162
- if (settings.offset_by_height) {
163
- top_offset = top_offset - expedition.outerHeight();
164
- }
165
- top_offset = Math.floor(top_offset);
166
- return {
167
- destination: dest,
168
- arrival: $(this),
169
- top_offset: top_offset,
170
- viewport_offset: viewport_offset
171
- }
172
- }
173
- }).sort(function (a, b) {
174
- if (a.top_offset < b.top_offset) return -1;
175
- if (a.top_offset > b.top_offset) return 1;
176
- return 0;
177
- });
178
- },
179
-
180
- data_attr: function (str) {
181
- if (this.namespace.length > 0) {
182
- return this.namespace + '-' + str;
183
- }
184
-
185
- return str;
186
- },
187
-
188
- off: function () {
189
- this.S(this.scope).off('.magellan');
190
- this.S(window).off('.magellan');
191
- },
192
-
193
- reflow: function () {
194
- var self = this;
195
- // remove placeholder expeditions used for height calculation purposes
196
- $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove();
197
- }
198
- };
199
- }(jQuery, window, window.document));
1
+ ;
2
+ (function ($, window, document, undefined) {
3
+ 'use strict';
4
+
5
+ Foundation.libs['magellan-expedition'] = {
6
+ name: 'magellan-expedition',
7
+
8
+ version: '5.5.0',
9
+
10
+ settings: {
11
+ active_class: 'active',
12
+ threshold: 0, // pixels from the top of the expedition for it to become fixes
13
+ destination_threshold: 20, // pixels from the top of destination for it to be considered active
14
+ throttle_delay: 30, // calculation throttling to increase framerate
15
+ fixed_top: 0, // top distance in pixels assigend to the fixed element on scroll
16
+ offset_by_height: true, // whether to offset the destination by the expedition height. Usually you want this to be true, unless your expedition is on the side.
17
+ duration: 700, // animation duration time
18
+ easing: 'swing' // animation easing
19
+ },
20
+
21
+ init: function (scope, method, options) {
22
+ Foundation.inherit(this, 'throttle');
23
+ this.bindings(method, options);
24
+ },
25
+
26
+ events: function () {
27
+ var self = this,
28
+ S = self.S,
29
+ settings = self.settings;
30
+
31
+ // initialize expedition offset
32
+ self.set_expedition_position();
33
+
34
+ S(self.scope)
35
+ .off('.magellan')
36
+ .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href^="#"]', function (e) {
37
+ e.preventDefault();
38
+ var expedition = $(this).closest('[' + self.attr_name() + ']'),
39
+ settings = expedition.data('magellan-expedition-init'),
40
+ hash = this.hash.split('#').join(''),
41
+ target = $('a[name="' + hash + '"]');
42
+
43
+ if (target.length === 0) {
44
+ target = $('#' + hash);
45
+
46
+ }
47
+
48
+
49
+ // Account for expedition height if fixed position
50
+ var scroll_top = target.offset().top - settings.destination_threshold + 1;
51
+ if (settings.offset_by_height) {
52
+ scroll_top = scroll_top - expedition.outerHeight();
53
+ }
54
+
55
+ $('html, body').stop().animate({
56
+ 'scrollTop': scroll_top
57
+ }, settings.duration, settings.easing, function () {
58
+ if (history.pushState) {
59
+ history.pushState(null, null, '#' + hash);
60
+ }
61
+ else {
62
+ location.hash = '#' + hash;
63
+ }
64
+ });
65
+ })
66
+ .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay));
67
+
68
+ $(window)
69
+ .on('resize.fndtn.magellan', self.throttle(this.set_expedition_position.bind(this), settings.throttle_delay));
70
+ },
71
+
72
+ check_for_arrivals: function () {
73
+ var self = this;
74
+ self.update_arrivals();
75
+ self.update_expedition_positions();
76
+ },
77
+
78
+ set_expedition_position: function () {
79
+ var self = this;
80
+ $('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) {
81
+ var expedition = $(this),
82
+ settings = expedition.data('magellan-expedition-init'),
83
+ styles = expedition.attr('styles'), // save styles
84
+ top_offset, fixed_top;
85
+
86
+ expedition.attr('style', '');
87
+ top_offset = expedition.offset().top + settings.threshold;
88
+
89
+ //set fixed-top by attribute
90
+ fixed_top = parseInt(expedition.data('magellan-fixed-top'));
91
+ if (!isNaN(fixed_top))
92
+ self.settings.fixed_top = fixed_top;
93
+
94
+ expedition.data(self.data_attr('magellan-top-offset'), top_offset);
95
+ expedition.attr('style', styles);
96
+ });
97
+ },
98
+
99
+ update_expedition_positions: function () {
100
+ var self = this,
101
+ window_top_offset = $(window).scrollTop();
102
+
103
+ $('[' + this.attr_name() + '=fixed]', self.scope).each(function () {
104
+ var expedition = $(this),
105
+ settings = expedition.data('magellan-expedition-init'),
106
+ styles = expedition.attr('style'), // save styles
107
+ top_offset = expedition.data('magellan-top-offset');
108
+
109
+ //scroll to the top distance
110
+ if (window_top_offset + self.settings.fixed_top >= top_offset) {
111
+ // Placeholder allows height calculations to be consistent even when
112
+ // appearing to switch between fixed/non-fixed placement
113
+ var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']');
114
+ if (placeholder.length === 0) {
115
+ placeholder = expedition.clone();
116
+ placeholder.removeAttr(self.attr_name());
117
+ placeholder.attr(self.add_namespace('data-magellan-expedition-clone'), '');
118
+ expedition.before(placeholder);
119
+ }
120
+ expedition.css({position: 'fixed', top: settings.fixed_top}).addClass('fixed');
121
+ } else {
122
+ expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove();
123
+ expedition.attr('style', styles).css('position', '').css('top', '').removeClass('fixed');
124
+ }
125
+ });
126
+ },
127
+
128
+ update_arrivals: function () {
129
+ var self = this,
130
+ window_top_offset = $(window).scrollTop();
131
+
132
+ $('[' + this.attr_name() + ']', self.scope).each(function () {
133
+ var expedition = $(this),
134
+ settings = expedition.data(self.attr_name(true) + '-init'),
135
+ offsets = self.offsets(expedition, window_top_offset),
136
+ arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'),
137
+ active_item = false;
138
+ offsets.each(function (idx, item) {
139
+ if (item.viewport_offset >= item.top_offset) {
140
+ var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']');
141
+ arrivals.not(item.arrival).removeClass(settings.active_class);
142
+ item.arrival.addClass(settings.active_class);
143
+ active_item = true;
144
+ return true;
145
+ }
146
+ });
147
+
148
+ if (!active_item) arrivals.removeClass(settings.active_class);
149
+ });
150
+ },
151
+
152
+ offsets: function (expedition, window_offset) {
153
+ var self = this,
154
+ settings = expedition.data(self.attr_name(true) + '-init'),
155
+ viewport_offset = window_offset;
156
+
157
+ return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function (idx, el) {
158
+ var name = $(this).data(self.data_attr('magellan-arrival')),
159
+ dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']');
160
+ if (dest.length > 0) {
161
+ var top_offset = dest.offset().top - settings.destination_threshold;
162
+ if (settings.offset_by_height) {
163
+ top_offset = top_offset - expedition.outerHeight();
164
+ }
165
+ top_offset = Math.floor(top_offset);
166
+ return {
167
+ destination: dest,
168
+ arrival: $(this),
169
+ top_offset: top_offset,
170
+ viewport_offset: viewport_offset
171
+ }
172
+ }
173
+ }).sort(function (a, b) {
174
+ if (a.top_offset < b.top_offset) return -1;
175
+ if (a.top_offset > b.top_offset) return 1;
176
+ return 0;
177
+ });
178
+ },
179
+
180
+ data_attr: function (str) {
181
+ if (this.namespace.length > 0) {
182
+ return this.namespace + '-' + str;
183
+ }
184
+
185
+ return str;
186
+ },
187
+
188
+ off: function () {
189
+ this.S(this.scope).off('.magellan');
190
+ this.S(window).off('.magellan');
191
+ },
192
+
193
+ reflow: function () {
194
+ var self = this;
195
+ // remove placeholder expeditions used for height calculation purposes
196
+ $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove();
197
+ }
198
+ };
199
+ }(jQuery, window, window.document));
@@ -1,154 +1,154 @@
1
- ;
2
- (function ($, window, document, undefined) {
3
- 'use strict';
4
-
5
- Foundation.libs.offcanvas = {
6
- name: 'offcanvas',
7
-
8
- version: '5.5.0',
9
-
10
- settings: {
11
- open_method: 'move',
12
- close_on_click: false
13
- },
14
-
15
- init: function (scope, method, options) {
16
- this.bindings(method, options);
17
- },
18
-
19
- events: function () {
20
- var self = this,
21
- S = self.S,
22
- move_class = '',
23
- right_postfix = '',
24
- left_postfix = '';
25
-
26
- if (this.settings.open_method === 'move') {
27
- move_class = 'move-';
28
- right_postfix = 'right';
29
- left_postfix = 'left';
30
- } else if (this.settings.open_method === 'overlap_single') {
31
- move_class = 'offcanvas-overlap-';
32
- right_postfix = 'right';
33
- left_postfix = 'left';
34
- } else if (this.settings.open_method === 'overlap') {
35
- move_class = 'offcanvas-overlap';
36
- }
37
-
38
- S(this.scope).off('.offcanvas')
39
- .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) {
40
- self.click_toggle_class(e, move_class + right_postfix);
41
- if (self.settings.open_method !== 'overlap') {
42
- S('.left-submenu').removeClass(move_class + right_postfix);
43
- }
44
- $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
45
- })
46
- .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) {
47
- var settings = self.get_settings(e);
48
- var parent = S(this).parent();
49
-
50
- if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
51
- self.hide.call(self, move_class + right_postfix, self.get_wrapper(e));
52
- parent.parent().removeClass(move_class + right_postfix);
53
- } else if (S(this).parent().hasClass('has-submenu')) {
54
- e.preventDefault();
55
- S(this).siblings('.left-submenu').toggleClass(move_class + right_postfix);
56
- } else if (parent.hasClass('back')) {
57
- e.preventDefault();
58
- parent.parent().removeClass(move_class + right_postfix);
59
- }
60
- $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
61
- })
62
- .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
63
- self.click_toggle_class(e, move_class + left_postfix);
64
- if (self.settings.open_method !== 'overlap') {
65
- S('.right-submenu').removeClass(move_class + left_postfix);
66
- }
67
- $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
68
- })
69
- .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) {
70
- var settings = self.get_settings(e);
71
- var parent = S(this).parent();
72
-
73
- if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
74
- self.hide.call(self, move_class + left_postfix, self.get_wrapper(e));
75
- parent.parent().removeClass(move_class + left_postfix);
76
- } else if (S(this).parent().hasClass('has-submenu')) {
77
- e.preventDefault();
78
- S(this).siblings('.right-submenu').toggleClass(move_class + left_postfix);
79
- } else if (parent.hasClass('back')) {
80
- e.preventDefault();
81
- parent.parent().removeClass(move_class + left_postfix);
82
- }
83
- $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
84
- })
85
- .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
86
- self.click_remove_class(e, move_class + left_postfix);
87
- S('.right-submenu').removeClass(move_class + left_postfix);
88
- if (right_postfix) {
89
- self.click_remove_class(e, move_class + right_postfix);
90
- S('.left-submenu').removeClass(move_class + left_postfix);
91
- }
92
- $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
93
- })
94
- .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
95
- self.click_remove_class(e, move_class + left_postfix);
96
- $('.left-off-canvas-toggle').attr('aria-expanded', 'false');
97
- if (right_postfix) {
98
- self.click_remove_class(e, move_class + right_postfix);
99
- $('.right-off-canvas-toggle').attr('aria-expanded', 'false');
100
- }
101
- });
102
- },
103
-
104
- toggle: function (class_name, $off_canvas) {
105
- $off_canvas = $off_canvas || this.get_wrapper();
106
- if ($off_canvas.is('.' + class_name)) {
107
- this.hide(class_name, $off_canvas);
108
- } else {
109
- this.show(class_name, $off_canvas);
110
- }
111
- },
112
-
113
- show: function (class_name, $off_canvas) {
114
- $off_canvas = $off_canvas || this.get_wrapper();
115
- $off_canvas.trigger('open').trigger('open.fndtn.offcanvas');
116
- $off_canvas.addClass(class_name);
117
- },
118
-
119
- hide: function (class_name, $off_canvas) {
120
- $off_canvas = $off_canvas || this.get_wrapper();
121
- $off_canvas.trigger('close').trigger('close.fndtn.offcanvas');
122
- $off_canvas.removeClass(class_name);
123
- },
124
-
125
- click_toggle_class: function (e, class_name) {
126
- e.preventDefault();
127
- var $off_canvas = this.get_wrapper(e);
128
- this.toggle(class_name, $off_canvas);
129
- },
130
-
131
- click_remove_class: function (e, class_name) {
132
- e.preventDefault();
133
- var $off_canvas = this.get_wrapper(e);
134
- this.hide(class_name, $off_canvas);
135
- },
136
-
137
- get_settings: function (e) {
138
- var offcanvas = this.S(e.target).closest('[' + this.attr_name() + ']');
139
- return offcanvas.data(this.attr_name(true) + '-init') || this.settings;
140
- },
141
-
142
- get_wrapper: function (e) {
143
- var $off_canvas = this.S(e ? e.target : this.scope).closest('.off-canvas-wrap');
144
-
145
- if ($off_canvas.length === 0) {
146
- $off_canvas = this.S('.off-canvas-wrap');
147
- }
148
- return $off_canvas;
149
- },
150
-
151
- reflow: function () {
152
- }
153
- };
154
- }(jQuery, window, window.document));
1
+ ;
2
+ (function ($, window, document, undefined) {
3
+ 'use strict';
4
+
5
+ Foundation.libs.offcanvas = {
6
+ name: 'offcanvas',
7
+
8
+ version: '5.5.0',
9
+
10
+ settings: {
11
+ open_method: 'move',
12
+ close_on_click: false
13
+ },
14
+
15
+ init: function (scope, method, options) {
16
+ this.bindings(method, options);
17
+ },
18
+
19
+ events: function () {
20
+ var self = this,
21
+ S = self.S,
22
+ move_class = '',
23
+ right_postfix = '',
24
+ left_postfix = '';
25
+
26
+ if (this.settings.open_method === 'move') {
27
+ move_class = 'move-';
28
+ right_postfix = 'right';
29
+ left_postfix = 'left';
30
+ } else if (this.settings.open_method === 'overlap_single') {
31
+ move_class = 'offcanvas-overlap-';
32
+ right_postfix = 'right';
33
+ left_postfix = 'left';
34
+ } else if (this.settings.open_method === 'overlap') {
35
+ move_class = 'offcanvas-overlap';
36
+ }
37
+
38
+ S(this.scope).off('.offcanvas')
39
+ .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) {
40
+ self.click_toggle_class(e, move_class + right_postfix);
41
+ if (self.settings.open_method !== 'overlap') {
42
+ S('.left-submenu').removeClass(move_class + right_postfix);
43
+ }
44
+ $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
45
+ })
46
+ .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) {
47
+ var settings = self.get_settings(e);
48
+ var parent = S(this).parent();
49
+
50
+ if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
51
+ self.hide.call(self, move_class + right_postfix, self.get_wrapper(e));
52
+ parent.parent().removeClass(move_class + right_postfix);
53
+ } else if (S(this).parent().hasClass('has-submenu')) {
54
+ e.preventDefault();
55
+ S(this).siblings('.left-submenu').toggleClass(move_class + right_postfix);
56
+ } else if (parent.hasClass('back')) {
57
+ e.preventDefault();
58
+ parent.parent().removeClass(move_class + right_postfix);
59
+ }
60
+ $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
61
+ })
62
+ .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
63
+ self.click_toggle_class(e, move_class + left_postfix);
64
+ if (self.settings.open_method !== 'overlap') {
65
+ S('.right-submenu').removeClass(move_class + left_postfix);
66
+ }
67
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
68
+ })
69
+ .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) {
70
+ var settings = self.get_settings(e);
71
+ var parent = S(this).parent();
72
+
73
+ if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
74
+ self.hide.call(self, move_class + left_postfix, self.get_wrapper(e));
75
+ parent.parent().removeClass(move_class + left_postfix);
76
+ } else if (S(this).parent().hasClass('has-submenu')) {
77
+ e.preventDefault();
78
+ S(this).siblings('.right-submenu').toggleClass(move_class + left_postfix);
79
+ } else if (parent.hasClass('back')) {
80
+ e.preventDefault();
81
+ parent.parent().removeClass(move_class + left_postfix);
82
+ }
83
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
84
+ })
85
+ .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
86
+ self.click_remove_class(e, move_class + left_postfix);
87
+ S('.right-submenu').removeClass(move_class + left_postfix);
88
+ if (right_postfix) {
89
+ self.click_remove_class(e, move_class + right_postfix);
90
+ S('.left-submenu').removeClass(move_class + left_postfix);
91
+ }
92
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
93
+ })
94
+ .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
95
+ self.click_remove_class(e, move_class + left_postfix);
96
+ $('.left-off-canvas-toggle').attr('aria-expanded', 'false');
97
+ if (right_postfix) {
98
+ self.click_remove_class(e, move_class + right_postfix);
99
+ $('.right-off-canvas-toggle').attr('aria-expanded', 'false');
100
+ }
101
+ });
102
+ },
103
+
104
+ toggle: function (class_name, $off_canvas) {
105
+ $off_canvas = $off_canvas || this.get_wrapper();
106
+ if ($off_canvas.is('.' + class_name)) {
107
+ this.hide(class_name, $off_canvas);
108
+ } else {
109
+ this.show(class_name, $off_canvas);
110
+ }
111
+ },
112
+
113
+ show: function (class_name, $off_canvas) {
114
+ $off_canvas = $off_canvas || this.get_wrapper();
115
+ $off_canvas.trigger('open').trigger('open.fndtn.offcanvas');
116
+ $off_canvas.addClass(class_name);
117
+ },
118
+
119
+ hide: function (class_name, $off_canvas) {
120
+ $off_canvas = $off_canvas || this.get_wrapper();
121
+ $off_canvas.trigger('close').trigger('close.fndtn.offcanvas');
122
+ $off_canvas.removeClass(class_name);
123
+ },
124
+
125
+ click_toggle_class: function (e, class_name) {
126
+ e.preventDefault();
127
+ var $off_canvas = this.get_wrapper(e);
128
+ this.toggle(class_name, $off_canvas);
129
+ },
130
+
131
+ click_remove_class: function (e, class_name) {
132
+ e.preventDefault();
133
+ var $off_canvas = this.get_wrapper(e);
134
+ this.hide(class_name, $off_canvas);
135
+ },
136
+
137
+ get_settings: function (e) {
138
+ var offcanvas = this.S(e.target).closest('[' + this.attr_name() + ']');
139
+ return offcanvas.data(this.attr_name(true) + '-init') || this.settings;
140
+ },
141
+
142
+ get_wrapper: function (e) {
143
+ var $off_canvas = this.S(e ? e.target : this.scope).closest('.off-canvas-wrap');
144
+
145
+ if ($off_canvas.length === 0) {
146
+ $off_canvas = this.S('.off-canvas-wrap');
147
+ }
148
+ return $off_canvas;
149
+ },
150
+
151
+ reflow: function () {
152
+ }
153
+ };
154
+ }(jQuery, window, window.document));