foundation-rails 5.5.3.2 → 6.1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (169) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +2 -8
  4. data/Rakefile +23 -0
  5. data/app/views/foundation/rails/styleguide/show.html.erb +2 -5
  6. data/bower.json +2 -2
  7. data/lib/foundation/rails/version.rb +1 -1
  8. data/lib/generators/foundation/install_generator.rb +6 -3
  9. data/lib/generators/foundation/templates/_settings.scss +546 -0
  10. data/lib/generators/foundation/templates/application.html.erb +0 -1
  11. data/lib/generators/foundation/templates/application.html.haml +0 -2
  12. data/lib/generators/foundation/templates/application.html.slim +0 -2
  13. data/lib/generators/foundation/templates/foundation_and_overrides.scss +51 -0
  14. data/vendor/assets/js/foundation.abide.js +418 -0
  15. data/vendor/assets/js/foundation.accordion.js +229 -0
  16. data/vendor/assets/js/foundation.accordionMenu.js +262 -0
  17. data/vendor/assets/js/foundation.core.js +378 -0
  18. data/vendor/assets/js/foundation.drilldown.js +321 -0
  19. data/vendor/assets/js/foundation.dropdown.js +390 -0
  20. data/vendor/assets/js/foundation.dropdownMenu.js +391 -0
  21. data/vendor/assets/js/foundation.equalizer.js +274 -0
  22. data/vendor/assets/js/foundation.interchange.js +184 -0
  23. data/vendor/assets/js/foundation.js +28 -0
  24. data/vendor/assets/js/foundation.magellan.js +212 -0
  25. data/vendor/assets/js/foundation.offcanvas.js +371 -0
  26. data/vendor/assets/js/foundation.orbit.js +419 -0
  27. data/vendor/assets/js/foundation.responsiveMenu.js +145 -0
  28. data/vendor/assets/js/foundation.responsiveToggle.js +106 -0
  29. data/vendor/assets/js/foundation.reveal.js +478 -0
  30. data/vendor/assets/js/foundation.slider.js +484 -0
  31. data/vendor/assets/js/foundation.sticky.js +436 -0
  32. data/vendor/assets/js/foundation.tabs.js +306 -0
  33. data/vendor/assets/js/foundation.toggler.js +147 -0
  34. data/vendor/assets/js/foundation.tooltip.js +429 -0
  35. data/vendor/assets/js/foundation.util.box.js +169 -0
  36. data/vendor/assets/js/foundation.util.keyboard.js +115 -0
  37. data/vendor/assets/js/foundation.util.mediaQuery.js +210 -0
  38. data/vendor/assets/js/foundation.util.motion.js +89 -0
  39. data/vendor/assets/js/foundation.util.nest.js +64 -0
  40. data/vendor/assets/js/foundation.util.timerAndImageLoader.js +78 -0
  41. data/vendor/assets/js/foundation.util.touch.js +339 -0
  42. data/vendor/assets/js/foundation.util.triggers.js +222 -0
  43. data/vendor/assets/scss/_global.scss +626 -0
  44. data/vendor/assets/scss/components/_accordion-menu.scss +32 -0
  45. data/vendor/assets/scss/components/_accordion.scss +113 -0
  46. data/vendor/assets/scss/components/_badge.scss +55 -0
  47. data/vendor/assets/scss/components/_breadcrumbs.scss +94 -0
  48. data/vendor/assets/scss/components/_button-group.scss +130 -0
  49. data/vendor/assets/scss/components/_button.scss +265 -0
  50. data/vendor/assets/scss/components/_callout.scss +105 -0
  51. data/vendor/assets/scss/components/_close-button.scss +61 -0
  52. data/vendor/assets/scss/components/_drilldown.scss +75 -0
  53. data/vendor/assets/scss/components/_dropdown-menu.scss +148 -0
  54. data/vendor/assets/scss/components/_dropdown.scss +64 -0
  55. data/vendor/assets/scss/components/_flex-video.scss +63 -0
  56. data/vendor/assets/scss/components/_float.scss +27 -0
  57. data/vendor/assets/scss/components/_label.scss +56 -0
  58. data/vendor/assets/scss/components/_media-object.scss +74 -0
  59. data/vendor/assets/scss/components/_menu.scss +209 -0
  60. data/vendor/assets/scss/components/_off-canvas.scss +180 -0
  61. data/vendor/assets/scss/components/_orbit.scss +193 -0
  62. data/vendor/assets/scss/components/_pagination.scss +158 -0
  63. data/vendor/assets/scss/components/_progress-bar.scss +83 -0
  64. data/vendor/assets/scss/components/_reveal.scss +156 -0
  65. data/vendor/assets/scss/components/_slider.scss +158 -0
  66. data/vendor/assets/scss/components/_sticky.scss +38 -0
  67. data/vendor/assets/scss/components/_switch.scss +232 -0
  68. data/vendor/assets/scss/components/_table.scss +213 -0
  69. data/vendor/assets/scss/components/_tabs.scss +170 -0
  70. data/vendor/assets/scss/components/_thumbnail.scss +54 -0
  71. data/vendor/assets/scss/components/_title-bar.scss +68 -0
  72. data/vendor/assets/scss/components/_tooltip.scss +100 -0
  73. data/vendor/assets/scss/components/_top-bar.scss +89 -0
  74. data/vendor/assets/scss/components/_visibility.scss +131 -0
  75. data/vendor/assets/scss/forms/_checkbox.scss +36 -0
  76. data/vendor/assets/scss/forms/_error.scss +82 -0
  77. data/vendor/assets/scss/forms/_fieldset.scss +53 -0
  78. data/vendor/assets/scss/forms/_forms.scss +32 -0
  79. data/vendor/assets/scss/forms/_help-text.scss +30 -0
  80. data/vendor/assets/scss/forms/_input-group.scss +91 -0
  81. data/vendor/assets/scss/forms/_label.scss +48 -0
  82. data/vendor/assets/scss/forms/_select.scss +63 -0
  83. data/vendor/assets/scss/forms/_text.scss +154 -0
  84. data/vendor/assets/scss/foundation.scss +91 -0
  85. data/vendor/assets/scss/grid/_classes.scss +153 -0
  86. data/vendor/assets/scss/grid/_column.scss +124 -0
  87. data/vendor/assets/scss/grid/_flex-grid.scss +281 -0
  88. data/vendor/assets/scss/grid/_grid.scss +48 -0
  89. data/vendor/assets/scss/grid/_gutter.scss +34 -0
  90. data/vendor/assets/scss/grid/_layout.scss +33 -0
  91. data/vendor/assets/scss/grid/_position.scss +72 -0
  92. data/vendor/assets/scss/grid/_row.scss +97 -0
  93. data/vendor/assets/scss/grid/_size.scss +24 -0
  94. data/vendor/assets/scss/settings/_settings.scss +547 -0
  95. data/vendor/assets/scss/typography/_alignment.scss +22 -0
  96. data/vendor/assets/scss/typography/_base.scss +439 -0
  97. data/vendor/assets/scss/typography/_helpers.scss +77 -0
  98. data/vendor/assets/scss/typography/_print.scss +73 -0
  99. data/vendor/assets/scss/typography/_typography.scss +28 -0
  100. data/vendor/assets/scss/util/_breakpoint.scss +266 -0
  101. data/vendor/assets/scss/util/_color.scss +41 -0
  102. data/vendor/assets/scss/util/_mixins.scss +223 -0
  103. data/vendor/assets/scss/util/_selector.scss +40 -0
  104. data/vendor/assets/scss/util/_unit.scss +90 -0
  105. data/vendor/assets/scss/util/_util.scss +15 -0
  106. data/vendor/assets/scss/util/_value.scss +126 -0
  107. metadata +97 -64
  108. data/update-gem.sh +0 -20
  109. data/vendor/assets/javascripts/foundation.js +0 -17
  110. data/vendor/assets/javascripts/foundation/foundation.abide.js +0 -426
  111. data/vendor/assets/javascripts/foundation/foundation.accordion.js +0 -125
  112. data/vendor/assets/javascripts/foundation/foundation.alert.js +0 -43
  113. data/vendor/assets/javascripts/foundation/foundation.clearing.js +0 -586
  114. data/vendor/assets/javascripts/foundation/foundation.dropdown.js +0 -468
  115. data/vendor/assets/javascripts/foundation/foundation.equalizer.js +0 -104
  116. data/vendor/assets/javascripts/foundation/foundation.interchange.js +0 -360
  117. data/vendor/assets/javascripts/foundation/foundation.joyride.js +0 -935
  118. data/vendor/assets/javascripts/foundation/foundation.js +0 -732
  119. data/vendor/assets/javascripts/foundation/foundation.magellan.js +0 -214
  120. data/vendor/assets/javascripts/foundation/foundation.offcanvas.js +0 -225
  121. data/vendor/assets/javascripts/foundation/foundation.orbit.js +0 -476
  122. data/vendor/assets/javascripts/foundation/foundation.reveal.js +0 -522
  123. data/vendor/assets/javascripts/foundation/foundation.slider.js +0 -296
  124. data/vendor/assets/javascripts/foundation/foundation.tab.js +0 -247
  125. data/vendor/assets/javascripts/foundation/foundation.tooltip.js +0 -348
  126. data/vendor/assets/javascripts/foundation/foundation.topbar.js +0 -458
  127. data/vendor/assets/javascripts/vendor/modernizr.js +0 -1406
  128. data/vendor/assets/stylesheets/foundation.scss +0 -42
  129. data/vendor/assets/stylesheets/foundation/_functions.scss +0 -156
  130. data/vendor/assets/stylesheets/foundation/_settings.scss +0 -1489
  131. data/vendor/assets/stylesheets/foundation/components/_accordion.scss +0 -161
  132. data/vendor/assets/stylesheets/foundation/components/_alert-boxes.scss +0 -128
  133. data/vendor/assets/stylesheets/foundation/components/_block-grid.scss +0 -133
  134. data/vendor/assets/stylesheets/foundation/components/_breadcrumbs.scss +0 -132
  135. data/vendor/assets/stylesheets/foundation/components/_button-groups.scss +0 -208
  136. data/vendor/assets/stylesheets/foundation/components/_buttons.scss +0 -261
  137. data/vendor/assets/stylesheets/foundation/components/_clearing.scss +0 -260
  138. data/vendor/assets/stylesheets/foundation/components/_dropdown-buttons.scss +0 -130
  139. data/vendor/assets/stylesheets/foundation/components/_dropdown.scss +0 -269
  140. data/vendor/assets/stylesheets/foundation/components/_flex-video.scss +0 -51
  141. data/vendor/assets/stylesheets/foundation/components/_forms.scss +0 -607
  142. data/vendor/assets/stylesheets/foundation/components/_global.scss +0 -566
  143. data/vendor/assets/stylesheets/foundation/components/_grid.scss +0 -292
  144. data/vendor/assets/stylesheets/foundation/components/_icon-bar.scss +0 -460
  145. data/vendor/assets/stylesheets/foundation/components/_inline-lists.scss +0 -58
  146. data/vendor/assets/stylesheets/foundation/components/_joyride.scss +0 -220
  147. data/vendor/assets/stylesheets/foundation/components/_keystrokes.scss +0 -60
  148. data/vendor/assets/stylesheets/foundation/components/_labels.scss +0 -106
  149. data/vendor/assets/stylesheets/foundation/components/_magellan.scss +0 -34
  150. data/vendor/assets/stylesheets/foundation/components/_offcanvas.scss +0 -606
  151. data/vendor/assets/stylesheets/foundation/components/_orbit.scss +0 -388
  152. data/vendor/assets/stylesheets/foundation/components/_pagination.scss +0 -163
  153. data/vendor/assets/stylesheets/foundation/components/_panels.scss +0 -107
  154. data/vendor/assets/stylesheets/foundation/components/_pricing-tables.scss +0 -150
  155. data/vendor/assets/stylesheets/foundation/components/_progress-bars.scss +0 -85
  156. data/vendor/assets/stylesheets/foundation/components/_range-slider.scss +0 -177
  157. data/vendor/assets/stylesheets/foundation/components/_reveal.scss +0 -212
  158. data/vendor/assets/stylesheets/foundation/components/_side-nav.scss +0 -120
  159. data/vendor/assets/stylesheets/foundation/components/_split-buttons.scss +0 -203
  160. data/vendor/assets/stylesheets/foundation/components/_sub-nav.scss +0 -125
  161. data/vendor/assets/stylesheets/foundation/components/_switches.scss +0 -241
  162. data/vendor/assets/stylesheets/foundation/components/_tables.scss +0 -135
  163. data/vendor/assets/stylesheets/foundation/components/_tabs.scss +0 -142
  164. data/vendor/assets/stylesheets/foundation/components/_thumbs.scss +0 -66
  165. data/vendor/assets/stylesheets/foundation/components/_tooltips.scss +0 -142
  166. data/vendor/assets/stylesheets/foundation/components/_top-bar.scss +0 -745
  167. data/vendor/assets/stylesheets/foundation/components/_type.scss +0 -525
  168. data/vendor/assets/stylesheets/foundation/components/_visibility.scss +0 -425
  169. data/vendor/assets/stylesheets/normalize.scss +0 -424
@@ -1,522 +0,0 @@
1
- ;(function ($, window, document, undefined) {
2
- 'use strict';
3
-
4
- var openModals = [];
5
-
6
- Foundation.libs.reveal = {
7
- name : 'reveal',
8
-
9
- version : '5.5.3',
10
-
11
- locked : false,
12
-
13
- settings : {
14
- animation : 'fadeAndPop',
15
- animation_speed : 250,
16
- close_on_background_click : true,
17
- close_on_esc : true,
18
- dismiss_modal_class : 'close-reveal-modal',
19
- multiple_opened : false,
20
- bg_class : 'reveal-modal-bg',
21
- root_element : 'body',
22
- open : function(){},
23
- opened : function(){},
24
- close : function(){},
25
- closed : function(){},
26
- on_ajax_error: $.noop,
27
- bg : $('.reveal-modal-bg'),
28
- css : {
29
- open : {
30
- 'opacity' : 0,
31
- 'visibility' : 'visible',
32
- 'display' : 'block'
33
- },
34
- close : {
35
- 'opacity' : 1,
36
- 'visibility' : 'hidden',
37
- 'display' : 'none'
38
- }
39
- }
40
- },
41
-
42
- init : function (scope, method, options) {
43
- $.extend(true, this.settings, method, options);
44
- this.bindings(method, options);
45
- },
46
-
47
- events : function (scope) {
48
- var self = this,
49
- S = self.S;
50
-
51
- S(this.scope)
52
- .off('.reveal')
53
- .on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) {
54
- e.preventDefault();
55
-
56
- if (!self.locked) {
57
- var element = S(this),
58
- ajax = element.data(self.data_attr('reveal-ajax')),
59
- replaceContentSel = element.data(self.data_attr('reveal-replace-content'));
60
-
61
- self.locked = true;
62
-
63
- if (typeof ajax === 'undefined') {
64
- self.open.call(self, element);
65
- } else {
66
- var url = ajax === true ? element.attr('href') : ajax;
67
- self.open.call(self, element, {url : url}, { replaceContentSel : replaceContentSel });
68
- }
69
- }
70
- });
71
-
72
- S(document)
73
- .on('click.fndtn.reveal', this.close_targets(), function (e) {
74
- e.preventDefault();
75
- if (!self.locked) {
76
- var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init') || self.settings,
77
- bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0];
78
-
79
- if (bg_clicked) {
80
- if (settings.close_on_background_click) {
81
- e.stopPropagation();
82
- } else {
83
- return;
84
- }
85
- }
86
-
87
- self.locked = true;
88
- self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open:not(.toback)') : S(this).closest('[' + self.attr_name() + ']'));
89
- }
90
- });
91
-
92
- if (S('[' + self.attr_name() + ']', this.scope).length > 0) {
93
- S(this.scope)
94
- // .off('.reveal')
95
- .on('open.fndtn.reveal', this.settings.open)
96
- .on('opened.fndtn.reveal', this.settings.opened)
97
- .on('opened.fndtn.reveal', this.open_video)
98
- .on('close.fndtn.reveal', this.settings.close)
99
- .on('closed.fndtn.reveal', this.settings.closed)
100
- .on('closed.fndtn.reveal', this.close_video);
101
- } else {
102
- S(this.scope)
103
- // .off('.reveal')
104
- .on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open)
105
- .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened)
106
- .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video)
107
- .on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close)
108
- .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed)
109
- .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video);
110
- }
111
-
112
- return true;
113
- },
114
-
115
- // PATCH #3: turning on key up capture only when a reveal window is open
116
- key_up_on : function (scope) {
117
- var self = this;
118
-
119
- // PATCH #1: fixing multiple keyup event trigger from single key press
120
- self.S('body').off('keyup.fndtn.reveal').on('keyup.fndtn.reveal', function ( event ) {
121
- var open_modal = self.S('[' + self.attr_name() + '].open'),
122
- settings = open_modal.data(self.attr_name(true) + '-init') || self.settings ;
123
- // PATCH #2: making sure that the close event can be called only while unlocked,
124
- // so that multiple keyup.fndtn.reveal events don't prevent clean closing of the reveal window.
125
- if ( settings && event.which === 27 && settings.close_on_esc && !self.locked) { // 27 is the keycode for the Escape key
126
- self.close.call(self, open_modal);
127
- }
128
- });
129
-
130
- return true;
131
- },
132
-
133
- // PATCH #3: turning on key up capture only when a reveal window is open
134
- key_up_off : function (scope) {
135
- this.S('body').off('keyup.fndtn.reveal');
136
- return true;
137
- },
138
-
139
- open : function (target, ajax_settings) {
140
- var self = this,
141
- modal;
142
-
143
- if (target) {
144
- if (typeof target.selector !== 'undefined') {
145
- // Find the named node; only use the first one found, since the rest of the code assumes there's only one node
146
- modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first();
147
- } else {
148
- modal = self.S(this.scope);
149
-
150
- ajax_settings = target;
151
- }
152
- } else {
153
- modal = self.S(this.scope);
154
- }
155
-
156
- var settings = modal.data(self.attr_name(true) + '-init');
157
- settings = settings || this.settings;
158
-
159
-
160
- if (modal.hasClass('open') && target !== undefined && target.attr('data-reveal-id') == modal.attr('id')) {
161
- return self.close(modal);
162
- }
163
-
164
- if (!modal.hasClass('open')) {
165
- var open_modal = self.S('[' + self.attr_name() + '].open');
166
-
167
- if (typeof modal.data('css-top') === 'undefined') {
168
- modal.data('css-top', parseInt(modal.css('top'), 10))
169
- .data('offset', this.cache_offset(modal));
170
- }
171
-
172
- modal.attr('tabindex','0').attr('aria-hidden','false');
173
-
174
- this.key_up_on(modal); // PATCH #3: turning on key up capture only when a reveal window is open
175
-
176
- // Prevent namespace event from triggering twice
177
- modal.on('open.fndtn.reveal', function(e) {
178
- if (e.namespace !== 'fndtn.reveal') return;
179
- });
180
-
181
- modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');
182
-
183
- if (open_modal.length < 1) {
184
- this.toggle_bg(modal, true);
185
- }
186
-
187
- if (typeof ajax_settings === 'string') {
188
- ajax_settings = {
189
- url : ajax_settings
190
- };
191
- }
192
-
193
- var openModal = function() {
194
- if(open_modal.length > 0) {
195
- if(settings.multiple_opened) {
196
- self.to_back(open_modal);
197
- } else {
198
- self.hide(open_modal, settings.css.close);
199
- }
200
- }
201
-
202
- // bl: add the open_modal that isn't already in the background to the openModals array
203
- if(settings.multiple_opened) {
204
- openModals.push(modal);
205
- }
206
-
207
- self.show(modal, settings.css.open);
208
- };
209
-
210
- if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
211
- openModal();
212
- } else {
213
- var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
214
- $.extend(ajax_settings, {
215
- success : function (data, textStatus, jqXHR) {
216
- if ( $.isFunction(old_success) ) {
217
- var result = old_success(data, textStatus, jqXHR);
218
- if (typeof result == 'string') {
219
- data = result;
220
- }
221
- }
222
-
223
- if (typeof options !== 'undefined' && typeof options.replaceContentSel !== 'undefined') {
224
- modal.find(options.replaceContentSel).html(data);
225
- } else {
226
- modal.html(data);
227
- }
228
-
229
- self.S(modal).foundation('section', 'reflow');
230
- self.S(modal).children().foundation();
231
-
232
- openModal();
233
- }
234
- });
235
-
236
- // check for if user initalized with error callback
237
- if (settings.on_ajax_error !== $.noop) {
238
- $.extend(ajax_settings, {
239
- error : settings.on_ajax_error
240
- });
241
- }
242
-
243
- $.ajax(ajax_settings);
244
- }
245
- }
246
- self.S(window).trigger('resize');
247
- },
248
-
249
- close : function (modal) {
250
- var modal = modal && modal.length ? modal : this.S(this.scope),
251
- open_modals = this.S('[' + this.attr_name() + '].open'),
252
- settings = modal.data(this.attr_name(true) + '-init') || this.settings,
253
- self = this;
254
-
255
- if (open_modals.length > 0) {
256
-
257
- modal.removeAttr('tabindex','0').attr('aria-hidden','true');
258
-
259
- this.locked = true;
260
- this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open
261
-
262
- modal.trigger('close.fndtn.reveal');
263
-
264
- if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) {
265
- self.toggle_bg(modal, false);
266
- self.to_front(modal);
267
- }
268
-
269
- if (settings.multiple_opened) {
270
- var isCurrent = modal.is(':not(.toback)');
271
- self.hide(modal, settings.css.close, settings);
272
- if(isCurrent) {
273
- // remove the last modal since it is now closed
274
- openModals.pop();
275
- } else {
276
- // if this isn't the current modal, then find it in the array and remove it
277
- openModals = $.grep(openModals, function(elt) {
278
- var isThis = elt[0]===modal[0];
279
- if(isThis) {
280
- // since it's not currently in the front, put it in the front now that it is hidden
281
- // so that if it's re-opened, it won't be .toback
282
- self.to_front(modal);
283
- }
284
- return !isThis;
285
- });
286
- }
287
- // finally, show the next modal in the stack, if there is one
288
- if(openModals.length>0) {
289
- self.to_front(openModals[openModals.length - 1]);
290
- }
291
- } else {
292
- self.hide(open_modals, settings.css.close, settings);
293
- }
294
- }
295
- },
296
-
297
- close_targets : function () {
298
- var base = '.' + this.settings.dismiss_modal_class;
299
-
300
- if (this.settings.close_on_background_click) {
301
- return base + ', .' + this.settings.bg_class;
302
- }
303
-
304
- return base;
305
- },
306
-
307
- toggle_bg : function (modal, state) {
308
- if (this.S('.' + this.settings.bg_class).length === 0) {
309
- this.settings.bg = $('<div />', {'class': this.settings.bg_class})
310
- .appendTo('body').hide();
311
- }
312
-
313
- var visible = this.settings.bg.filter(':visible').length > 0;
314
- if ( state != visible ) {
315
- if ( state == undefined ? visible : !state ) {
316
- this.hide(this.settings.bg);
317
- } else {
318
- this.show(this.settings.bg);
319
- }
320
- }
321
- },
322
-
323
- show : function (el, css) {
324
- // is modal
325
- if (css) {
326
- var settings = el.data(this.attr_name(true) + '-init') || this.settings,
327
- root_element = settings.root_element,
328
- context = this;
329
-
330
- if (el.parent(root_element).length === 0) {
331
- var placeholder = el.wrap('<div style="display: none;" />').parent();
332
-
333
- el.on('closed.fndtn.reveal.wrapped', function () {
334
- el.detach().appendTo(placeholder);
335
- el.unwrap().unbind('closed.fndtn.reveal.wrapped');
336
- });
337
-
338
- el.detach().appendTo(root_element);
339
- }
340
-
341
- var animData = getAnimationData(settings.animation);
342
- if (!animData.animate) {
343
- this.locked = false;
344
- }
345
- if (animData.pop) {
346
- css.top = $(window).scrollTop() - el.data('offset') + 'px';
347
- var end_css = {
348
- top: $(window).scrollTop() + el.data('css-top') + 'px',
349
- opacity: 1
350
- };
351
-
352
- return setTimeout(function () {
353
- return el
354
- .css(css)
355
- .animate(end_css, settings.animation_speed, 'linear', function () {
356
- context.locked = false;
357
- el.trigger('opened.fndtn.reveal');
358
- })
359
- .addClass('open');
360
- }, settings.animation_speed / 2);
361
- }
362
-
363
- css.top = $(window).scrollTop() + el.data('css-top') + 'px';
364
-
365
- if (animData.fade) {
366
- var end_css = {opacity: 1};
367
-
368
- return setTimeout(function () {
369
- return el
370
- .css(css)
371
- .animate(end_css, settings.animation_speed, 'linear', function () {
372
- context.locked = false;
373
- el.trigger('opened.fndtn.reveal');
374
- })
375
- .addClass('open');
376
- }, settings.animation_speed / 2);
377
- }
378
-
379
- return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened.fndtn.reveal');
380
- }
381
-
382
- var settings = this.settings;
383
-
384
- // should we animate the background?
385
- if (getAnimationData(settings.animation).fade) {
386
- return el.fadeIn(settings.animation_speed / 2);
387
- }
388
-
389
- this.locked = false;
390
-
391
- return el.show();
392
- },
393
-
394
- to_back : function(el) {
395
- el.addClass('toback');
396
- },
397
-
398
- to_front : function(el) {
399
- el.removeClass('toback');
400
- },
401
-
402
- hide : function (el, css) {
403
- // is modal
404
- if (css) {
405
- var settings = el.data(this.attr_name(true) + '-init'),
406
- context = this;
407
- settings = settings || this.settings;
408
-
409
- var animData = getAnimationData(settings.animation);
410
- if (!animData.animate) {
411
- this.locked = false;
412
- }
413
- if (animData.pop) {
414
- var end_css = {
415
- top: - $(window).scrollTop() - el.data('offset') + 'px',
416
- opacity: 0
417
- };
418
-
419
- return setTimeout(function () {
420
- return el
421
- .animate(end_css, settings.animation_speed, 'linear', function () {
422
- context.locked = false;
423
- el.css(css).trigger('closed.fndtn.reveal');
424
- })
425
- .removeClass('open');
426
- }, settings.animation_speed / 2);
427
- }
428
-
429
- if (animData.fade) {
430
- var end_css = {opacity : 0};
431
-
432
- return setTimeout(function () {
433
- return el
434
- .animate(end_css, settings.animation_speed, 'linear', function () {
435
- context.locked = false;
436
- el.css(css).trigger('closed.fndtn.reveal');
437
- })
438
- .removeClass('open');
439
- }, settings.animation_speed / 2);
440
- }
441
-
442
- return el.hide().css(css).removeClass('open').trigger('closed.fndtn.reveal');
443
- }
444
-
445
- var settings = this.settings;
446
-
447
- // should we animate the background?
448
- if (getAnimationData(settings.animation).fade) {
449
- return el.fadeOut(settings.animation_speed / 2);
450
- }
451
-
452
- return el.hide();
453
- },
454
-
455
- close_video : function (e) {
456
- var video = $('.flex-video', e.target),
457
- iframe = $('iframe', video);
458
-
459
- if (iframe.length > 0) {
460
- iframe.attr('data-src', iframe[0].src);
461
- iframe.attr('src', iframe.attr('src'));
462
- video.hide();
463
- }
464
- },
465
-
466
- open_video : function (e) {
467
- var video = $('.flex-video', e.target),
468
- iframe = video.find('iframe');
469
-
470
- if (iframe.length > 0) {
471
- var data_src = iframe.attr('data-src');
472
- if (typeof data_src === 'string') {
473
- iframe[0].src = iframe.attr('data-src');
474
- } else {
475
- var src = iframe[0].src;
476
- iframe[0].src = undefined;
477
- iframe[0].src = src;
478
- }
479
- video.show();
480
- }
481
- },
482
-
483
- data_attr : function (str) {
484
- if (this.namespace.length > 0) {
485
- return this.namespace + '-' + str;
486
- }
487
-
488
- return str;
489
- },
490
-
491
- cache_offset : function (modal) {
492
- var offset = modal.show().height() + parseInt(modal.css('top'), 10) + modal.scrollY;
493
-
494
- modal.hide();
495
-
496
- return offset;
497
- },
498
-
499
- off : function () {
500
- $(this.scope).off('.fndtn.reveal');
501
- },
502
-
503
- reflow : function () {}
504
- };
505
-
506
- /*
507
- * getAnimationData('popAndFade') // {animate: true, pop: true, fade: true}
508
- * getAnimationData('fade') // {animate: true, pop: false, fade: true}
509
- * getAnimationData('pop') // {animate: true, pop: true, fade: false}
510
- * getAnimationData('foo') // {animate: false, pop: false, fade: false}
511
- * getAnimationData(null) // {animate: false, pop: false, fade: false}
512
- */
513
- function getAnimationData(str) {
514
- var fade = /fade/i.test(str);
515
- var pop = /pop/i.test(str);
516
- return {
517
- animate : fade || pop,
518
- pop : pop,
519
- fade : fade
520
- };
521
- }
522
- }(jQuery, window, window.document));