volt-semantic-ui 0.0.2 → 0.0.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 (155) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -0
  3. data/Gemfile +0 -0
  4. data/LICENSE.txt +0 -0
  5. data/README.md +0 -0
  6. data/Rakefile +0 -0
  7. data/app/semanticui/assets/css/semantic.min.css +3 -3
  8. data/app/semanticui/assets/css/themes/basic/assets/fonts/icons.eot +0 -0
  9. data/app/semanticui/assets/css/themes/basic/assets/fonts/icons.svg +0 -0
  10. data/app/semanticui/assets/css/themes/basic/assets/fonts/icons.ttf +0 -0
  11. data/app/semanticui/assets/css/themes/basic/assets/fonts/icons.woff +0 -0
  12. data/app/semanticui/assets/css/themes/default/assets/fonts/icons.eot +0 -0
  13. data/app/semanticui/assets/css/themes/default/assets/fonts/icons.otf +0 -0
  14. data/app/semanticui/assets/css/themes/default/assets/fonts/icons.svg +526 -465
  15. data/app/semanticui/assets/css/themes/default/assets/fonts/icons.ttf +0 -0
  16. data/app/semanticui/assets/css/themes/default/assets/fonts/icons.woff +0 -0
  17. data/app/semanticui/assets/css/themes/default/assets/fonts/icons.woff2 +0 -0
  18. data/app/semanticui/assets/css/themes/default/assets/images/flags.png +0 -0
  19. data/app/semanticui/assets/js/components/accordion.css +256 -0
  20. data/app/semanticui/assets/js/components/accordion.js +578 -0
  21. data/app/semanticui/assets/js/components/accordion.min.css +10 -0
  22. data/app/semanticui/assets/js/components/accordion.min.js +11 -0
  23. data/app/semanticui/assets/js/components/ad.css +276 -0
  24. data/app/semanticui/assets/js/components/ad.min.css +10 -0
  25. data/app/semanticui/assets/js/components/api.js +871 -0
  26. data/app/semanticui/assets/js/components/api.min.js +11 -0
  27. data/app/semanticui/assets/js/components/breadcrumb.css +124 -0
  28. data/app/semanticui/assets/js/components/breadcrumb.min.css +10 -0
  29. data/app/semanticui/assets/js/components/button.css +2391 -0
  30. data/app/semanticui/assets/js/components/button.min.css +10 -0
  31. data/app/semanticui/assets/js/components/card.css +909 -0
  32. data/app/semanticui/assets/js/components/card.min.css +10 -0
  33. data/app/semanticui/assets/js/components/checkbox.css +513 -0
  34. data/app/semanticui/assets/js/components/checkbox.js +509 -0
  35. data/app/semanticui/assets/js/components/checkbox.min.css +10 -0
  36. data/app/semanticui/assets/js/components/checkbox.min.js +11 -0
  37. data/app/semanticui/assets/js/components/comment.css +259 -0
  38. data/app/semanticui/assets/js/components/comment.min.css +10 -0
  39. data/app/semanticui/assets/js/components/dimmer.css +186 -0
  40. data/app/semanticui/assets/js/components/dimmer.js +669 -0
  41. data/app/semanticui/assets/js/components/dimmer.min.css +10 -0
  42. data/app/semanticui/assets/js/components/dimmer.min.js +11 -0
  43. data/app/semanticui/assets/js/components/divider.css +241 -0
  44. data/app/semanticui/assets/js/components/divider.min.css +10 -0
  45. data/app/semanticui/assets/js/components/dropdown.css +1103 -0
  46. data/app/semanticui/assets/js/components/dropdown.js +1795 -0
  47. data/app/semanticui/assets/js/components/dropdown.min.css +10 -0
  48. data/app/semanticui/assets/js/components/dropdown.min.js +11 -0
  49. data/app/semanticui/assets/js/components/feed.css +276 -0
  50. data/app/semanticui/assets/js/components/feed.min.css +10 -0
  51. data/app/semanticui/assets/js/components/flag.css +1024 -0
  52. data/app/semanticui/assets/js/components/flag.min.css +10 -0
  53. data/app/semanticui/assets/js/components/form.css +891 -0
  54. data/app/semanticui/assets/js/components/form.js +1118 -0
  55. data/app/semanticui/assets/js/components/form.min.css +10 -0
  56. data/app/semanticui/assets/js/components/form.min.js +11 -0
  57. data/app/semanticui/assets/js/components/grid.css +1871 -0
  58. data/app/semanticui/assets/js/components/grid.min.css +10 -0
  59. data/app/semanticui/assets/js/components/header.css +596 -0
  60. data/app/semanticui/assets/js/components/header.min.css +10 -0
  61. data/app/semanticui/assets/js/components/icon.css +2467 -0
  62. data/app/semanticui/assets/js/components/icon.min.css +10 -0
  63. data/app/semanticui/assets/js/components/image.css +288 -0
  64. data/app/semanticui/assets/js/components/image.min.css +10 -0
  65. data/app/semanticui/assets/js/components/input.css +439 -0
  66. data/app/semanticui/assets/js/components/input.min.css +10 -0
  67. data/app/semanticui/assets/js/components/item.css +456 -0
  68. data/app/semanticui/assets/js/components/item.min.css +10 -0
  69. data/app/semanticui/assets/js/components/label.css +963 -0
  70. data/app/semanticui/assets/js/components/label.min.css +10 -0
  71. data/app/semanticui/assets/js/components/list.css +878 -0
  72. data/app/semanticui/assets/js/components/list.min.css +10 -0
  73. data/app/semanticui/assets/js/components/loader.css +284 -0
  74. data/app/semanticui/assets/js/components/loader.min.css +10 -0
  75. data/app/semanticui/assets/js/components/menu.css +1608 -0
  76. data/app/semanticui/assets/js/components/menu.min.css +10 -0
  77. data/app/semanticui/assets/js/components/message.css +421 -0
  78. data/app/semanticui/assets/js/components/message.min.css +10 -0
  79. data/app/semanticui/assets/js/components/modal.css +432 -0
  80. data/app/semanticui/assets/js/components/modal.js +860 -0
  81. data/app/semanticui/assets/js/components/modal.min.css +10 -0
  82. data/app/semanticui/assets/js/components/modal.min.js +11 -0
  83. data/app/semanticui/assets/js/components/nag.css +148 -0
  84. data/app/semanticui/assets/js/components/nag.js +477 -0
  85. data/app/semanticui/assets/js/components/nag.min.css +10 -0
  86. data/app/semanticui/assets/js/components/nag.min.js +11 -0
  87. data/app/semanticui/assets/js/components/popup.css +293 -0
  88. data/app/semanticui/assets/js/components/popup.js +1224 -0
  89. data/app/semanticui/assets/js/components/popup.min.css +10 -0
  90. data/app/semanticui/assets/js/components/popup.min.js +11 -0
  91. data/app/semanticui/assets/js/components/progress.css +461 -0
  92. data/app/semanticui/assets/js/components/progress.js +785 -0
  93. data/app/semanticui/assets/js/components/progress.min.css +10 -0
  94. data/app/semanticui/assets/js/components/progress.min.js +11 -0
  95. data/app/semanticui/assets/js/components/rail.css +124 -0
  96. data/app/semanticui/assets/js/components/rail.min.css +10 -0
  97. data/app/semanticui/assets/js/components/rating.css +251 -0
  98. data/app/semanticui/assets/js/components/rating.js +451 -0
  99. data/app/semanticui/assets/js/components/rating.min.css +10 -0
  100. data/app/semanticui/assets/js/components/rating.min.js +11 -0
  101. data/app/semanticui/assets/js/components/reset.css +429 -0
  102. data/app/semanticui/assets/js/components/reset.min.css +10 -0
  103. data/app/semanticui/assets/js/components/reveal.css +293 -0
  104. data/app/semanticui/assets/js/components/reveal.min.css +10 -0
  105. data/app/semanticui/assets/js/components/search.css +329 -0
  106. data/app/semanticui/assets/js/components/search.js +1096 -0
  107. data/app/semanticui/assets/js/components/search.min.css +10 -0
  108. data/app/semanticui/assets/js/components/search.min.js +11 -0
  109. data/app/semanticui/assets/js/components/segment.css +635 -0
  110. data/app/semanticui/assets/js/components/segment.min.css +10 -0
  111. data/app/semanticui/assets/js/components/shape.css +154 -0
  112. data/app/semanticui/assets/js/components/shape.js +830 -0
  113. data/app/semanticui/assets/js/components/shape.min.css +10 -0
  114. data/app/semanticui/assets/js/components/shape.min.js +11 -0
  115. data/app/semanticui/assets/js/components/sidebar.css +625 -0
  116. data/app/semanticui/assets/js/components/sidebar.js +1089 -0
  117. data/app/semanticui/assets/js/components/sidebar.min.css +10 -0
  118. data/app/semanticui/assets/js/components/sidebar.min.js +11 -0
  119. data/app/semanticui/assets/js/components/site.css +160 -0
  120. data/app/semanticui/assets/js/components/site.js +487 -0
  121. data/app/semanticui/assets/js/components/site.min.css +10 -0
  122. data/app/semanticui/assets/js/components/site.min.js +11 -0
  123. data/app/semanticui/assets/js/components/state.js +695 -0
  124. data/app/semanticui/assets/js/components/state.min.js +11 -0
  125. data/app/semanticui/assets/js/components/statistic.css +409 -0
  126. data/app/semanticui/assets/js/components/statistic.min.css +10 -0
  127. data/app/semanticui/assets/js/components/step.css +432 -0
  128. data/app/semanticui/assets/js/components/step.min.css +10 -0
  129. data/app/semanticui/assets/js/components/sticky.css +79 -0
  130. data/app/semanticui/assets/js/components/sticky.js +792 -0
  131. data/app/semanticui/assets/js/components/sticky.min.css +10 -0
  132. data/app/semanticui/assets/js/components/sticky.min.js +11 -0
  133. data/app/semanticui/assets/js/components/tab.css +92 -0
  134. data/app/semanticui/assets/js/components/tab.js +802 -0
  135. data/app/semanticui/assets/js/components/tab.min.css +10 -0
  136. data/app/semanticui/assets/js/components/tab.min.js +11 -0
  137. data/app/semanticui/assets/js/components/table.css +1000 -0
  138. data/app/semanticui/assets/js/components/table.min.css +10 -0
  139. data/app/semanticui/assets/js/components/transition.css +1990 -0
  140. data/app/semanticui/assets/js/components/transition.js +1038 -0
  141. data/app/semanticui/assets/js/components/transition.min.css +10 -0
  142. data/app/semanticui/assets/js/components/transition.min.js +11 -0
  143. data/app/semanticui/assets/js/components/video.css +125 -0
  144. data/app/semanticui/assets/js/components/video.js +540 -0
  145. data/app/semanticui/assets/js/components/video.min.css +10 -0
  146. data/app/semanticui/assets/js/components/video.min.js +11 -0
  147. data/app/semanticui/assets/js/components/visibility.js +1032 -0
  148. data/app/semanticui/assets/js/components/visibility.min.js +11 -0
  149. data/app/semanticui/assets/js/semantic.min.js +9 -9
  150. data/lib/volt/semanticui.rb +0 -0
  151. data/lib/volt/semanticui/version.rb +1 -1
  152. data/volt-semantic-ui-0.0.1.gem +0 -0
  153. data/volt-semanticui-0.0.1.gem +0 -0
  154. data/volt-semanticui.gemspec +0 -0
  155. metadata +141 -10
@@ -0,0 +1,1038 @@
1
+ /*!
2
+ * # Semantic UI 1.11.4 - Transition
3
+ * http://github.com/semantic-org/semantic-ui/
4
+ *
5
+ *
6
+ * Copyright 2014 Contributors
7
+ * Released under the MIT license
8
+ * http://opensource.org/licenses/MIT
9
+ *
10
+ */
11
+
12
+ ;(function ( $, window, document, undefined ) {
13
+
14
+ "use strict";
15
+
16
+ $.fn.transition = function() {
17
+ var
18
+ $allModules = $(this),
19
+ moduleSelector = $allModules.selector || '',
20
+
21
+ time = new Date().getTime(),
22
+ performance = [],
23
+
24
+ moduleArguments = arguments,
25
+ query = moduleArguments[0],
26
+ queryArguments = [].slice.call(arguments, 1),
27
+ methodInvoked = (typeof query === 'string'),
28
+
29
+ requestAnimationFrame = window.requestAnimationFrame
30
+ || window.mozRequestAnimationFrame
31
+ || window.webkitRequestAnimationFrame
32
+ || window.msRequestAnimationFrame
33
+ || function(callback) { setTimeout(callback, 0); },
34
+
35
+ returnedValue
36
+ ;
37
+ $allModules
38
+ .each(function(index) {
39
+ var
40
+ $module = $(this),
41
+ element = this,
42
+
43
+ // set at run time
44
+ settings,
45
+ instance,
46
+
47
+ error,
48
+ className,
49
+ metadata,
50
+ animationStart,
51
+ animationEnd,
52
+ animationName,
53
+
54
+ namespace,
55
+ moduleNamespace,
56
+ eventNamespace,
57
+ module
58
+ ;
59
+
60
+ module = {
61
+
62
+ initialize: function() {
63
+
64
+ // get full settings
65
+ settings = module.get.settings.apply(element, moduleArguments);
66
+
67
+ // shorthand
68
+ className = settings.className;
69
+ error = settings.error;
70
+ metadata = settings.metadata;
71
+
72
+ // define namespace
73
+ eventNamespace = '.' + settings.namespace;
74
+ moduleNamespace = 'module-' + settings.namespace;
75
+ instance = $module.data(moduleNamespace) || module;
76
+
77
+ // get vendor specific events
78
+ animationEnd = module.get.animationEndEvent();
79
+ animationName = module.get.animationName();
80
+ animationStart = module.get.animationStartEvent();
81
+
82
+ if(methodInvoked) {
83
+ methodInvoked = module.invoke(query);
84
+ }
85
+
86
+ // method not invoked, lets run an animation
87
+ if(methodInvoked === false) {
88
+ module.verbose('Converted arguments into settings object', settings);
89
+ if(settings.interval) {
90
+ module.delay(settings.animate);
91
+ }
92
+ else {
93
+ module.animate();
94
+ }
95
+ module.instantiate();
96
+ }
97
+ },
98
+
99
+ instantiate: function() {
100
+ module.verbose('Storing instance of module', module);
101
+ instance = module;
102
+ $module
103
+ .data(moduleNamespace, instance)
104
+ ;
105
+ },
106
+
107
+ destroy: function() {
108
+ module.verbose('Destroying previous module for', element);
109
+ $module
110
+ .removeData(moduleNamespace)
111
+ ;
112
+ },
113
+
114
+ refresh: function() {
115
+ module.verbose('Refreshing display type on next animation');
116
+ delete module.displayType;
117
+ },
118
+
119
+ forceRepaint: function() {
120
+ module.verbose('Forcing element repaint');
121
+ var
122
+ $parentElement = $module.parent(),
123
+ $nextElement = $module.next()
124
+ ;
125
+ if($nextElement.length === 0) {
126
+ $module.detach().appendTo($parentElement);
127
+ }
128
+ else {
129
+ $module.detach().insertBefore($nextElement);
130
+ }
131
+ },
132
+
133
+ repaint: function() {
134
+ module.verbose('Repainting element');
135
+ var
136
+ fakeAssignment = element.offsetWidth
137
+ ;
138
+ },
139
+
140
+ delay: function(interval) {
141
+ var
142
+ isReverse = (settings.reverse === true),
143
+ shouldReverse = (settings.reverse == 'auto' && module.get.direction() == className.outward),
144
+ delay
145
+ ;
146
+ interval = (typeof interval !== undefined)
147
+ ? interval
148
+ : settings.interval
149
+ ;
150
+ delay = (isReverse || shouldReverse)
151
+ ? ($allModules.length - index) * settings.interval
152
+ : index * settings.interval
153
+ ;
154
+ module.debug('Delaying animation by', delay);
155
+ setTimeout(module.animate, delay);
156
+ },
157
+
158
+ animate: function(overrideSettings) {
159
+ settings = overrideSettings || settings;
160
+ if(!module.is.supported()) {
161
+ module.error(error.support);
162
+ return false;
163
+ }
164
+ module.debug('Preparing animation', settings.animation);
165
+ if(module.is.animating()) {
166
+ if(settings.queue) {
167
+ if(!settings.allowRepeats && module.has.direction() && module.is.occurring() && module.queuing !== true) {
168
+ module.debug('Animation is currently occurring, preventing queueing same animation', settings.animation);
169
+ }
170
+ else {
171
+ module.queue(settings.animation);
172
+ }
173
+ return false;
174
+ }
175
+ else if(!settings.allowRepeats && module.is.occurring()) {
176
+ module.debug('Animation is already occurring, will not execute repeated animation', settings.animation);
177
+ return false;
178
+ }
179
+ else {
180
+ module.debug('New animation started, completing previous early', settings.animation);
181
+ module.complete();
182
+ }
183
+ }
184
+ if( module.can.animate() ) {
185
+ module.set.animating(settings.animation);
186
+ }
187
+ else {
188
+ module.error(error.noAnimation, settings.animation, element);
189
+ }
190
+ },
191
+
192
+ reset: function() {
193
+ module.debug('Resetting animation to beginning conditions');
194
+ module.remove.animationCallbacks();
195
+ module.restore.conditions();
196
+ module.remove.animating();
197
+ },
198
+
199
+ queue: function(animation) {
200
+ module.debug('Queueing animation of', animation);
201
+ module.queuing = true;
202
+ $module
203
+ .one(animationEnd + '.queue' + eventNamespace, function() {
204
+ module.queuing = false;
205
+ module.repaint();
206
+ module.animate.apply(this, settings);
207
+ })
208
+ ;
209
+ },
210
+
211
+ complete: function (event) {
212
+ module.debug('Animation complete', settings.animation);
213
+ module.remove.completeCallback();
214
+ module.remove.failSafe();
215
+ if(!module.is.looping()) {
216
+ if( module.is.outward() ) {
217
+ module.verbose('Animation is outward, hiding element');
218
+ module.restore.conditions();
219
+ module.hide();
220
+ settings.onHide.call(this);
221
+ }
222
+ else if( module.is.inward() ) {
223
+ module.verbose('Animation is outward, showing element');
224
+ module.restore.conditions();
225
+ module.show();
226
+ settings.onShow.call(this);
227
+ }
228
+ else {
229
+ module.restore.conditions();
230
+ }
231
+ module.remove.animation();
232
+ module.remove.animating();
233
+ }
234
+ settings.onComplete.call(this);
235
+ },
236
+
237
+ has: {
238
+ direction: function(animation) {
239
+ var
240
+ hasDirection = false
241
+ ;
242
+ animation = animation || settings.animation;
243
+ if(typeof animation === 'string') {
244
+ animation = animation.split(' ');
245
+ $.each(animation, function(index, word){
246
+ if(word === className.inward || word === className.outward) {
247
+ hasDirection = true;
248
+ }
249
+ });
250
+ }
251
+ return hasDirection;
252
+ },
253
+ inlineDisplay: function() {
254
+ var
255
+ style = $module.attr('style') || ''
256
+ ;
257
+ return $.isArray(style.match(/display.*?;/, ''));
258
+ }
259
+ },
260
+
261
+ set: {
262
+ animating: function(animation) {
263
+ animation = animation || settings.animation;
264
+ if(!module.is.animating()) {
265
+ module.save.conditions();
266
+ }
267
+ module.remove.direction();
268
+ module.remove.completeCallback();
269
+ if(module.can.transition() && !module.has.direction()) {
270
+ module.set.direction();
271
+ }
272
+ module.remove.hidden();
273
+ module.set.display();
274
+ $module
275
+ .addClass(className.animating + ' ' + className.transition + ' ' + animation)
276
+ .addClass(animation)
277
+ .one(animationEnd + '.complete' + eventNamespace, module.complete)
278
+ ;
279
+ if(settings.useFailSafe) {
280
+ module.add.failSafe();
281
+ }
282
+ module.set.duration(settings.duration);
283
+ settings.onStart.call(this);
284
+ module.debug('Starting tween', animation, $module.attr('class'));
285
+ },
286
+ duration: function(animationName, duration) {
287
+ duration = duration || settings.duration;
288
+ duration = (typeof duration == 'number')
289
+ ? duration + 'ms'
290
+ : duration
291
+ ;
292
+ if(duration || duration === 0) {
293
+ module.verbose('Setting animation duration', duration);
294
+ $module
295
+ .css({
296
+ '-webkit-animation-duration': duration,
297
+ '-moz-animation-duration': duration,
298
+ '-ms-animation-duration': duration,
299
+ '-o-animation-duration': duration,
300
+ 'animation-duration': duration
301
+ })
302
+ ;
303
+ }
304
+ },
305
+ display: function() {
306
+ var
307
+ style = module.get.style(),
308
+ displayType = module.get.displayType(),
309
+ overrideStyle = style + 'display: ' + displayType + ' !important;'
310
+ ;
311
+ $module.css('display', '');
312
+ module.refresh();
313
+ if( $module.css('display') !== displayType ) {
314
+ module.verbose('Setting inline visibility to', displayType);
315
+ $module
316
+ .attr('style', overrideStyle)
317
+ ;
318
+ }
319
+ },
320
+ direction: function() {
321
+ if($module.is(':visible') && !module.is.hidden()) {
322
+ module.debug('Automatically determining the direction of animation', 'Outward');
323
+ $module
324
+ .removeClass(className.inward)
325
+ .addClass(className.outward)
326
+ ;
327
+ }
328
+ else {
329
+ module.debug('Automatically determining the direction of animation', 'Inward');
330
+ $module
331
+ .removeClass(className.outward)
332
+ .addClass(className.inward)
333
+ ;
334
+ }
335
+ },
336
+ looping: function() {
337
+ module.debug('Transition set to loop');
338
+ $module
339
+ .addClass(className.looping)
340
+ ;
341
+ },
342
+ hidden: function() {
343
+ if(!module.is.hidden()) {
344
+ $module
345
+ .addClass(className.transition)
346
+ .addClass(className.hidden)
347
+ ;
348
+ }
349
+ if($module.css('display') !== 'none') {
350
+ module.verbose('Overriding default display to hide element');
351
+ $module
352
+ .css('display', 'none')
353
+ ;
354
+ }
355
+ },
356
+ visible: function() {
357
+ $module
358
+ .addClass(className.transition)
359
+ .addClass(className.visible)
360
+ ;
361
+ }
362
+ },
363
+
364
+ save: {
365
+ displayType: function(displayType) {
366
+ $module.data(metadata.displayType, displayType);
367
+ },
368
+ transitionExists: function(animation, exists) {
369
+ $.fn.transition.exists[animation] = exists;
370
+ module.verbose('Saving existence of transition', animation, exists);
371
+ },
372
+ conditions: function() {
373
+ var
374
+ clasName = $module.attr('class') || false,
375
+ style = $module.attr('style') || ''
376
+ ;
377
+ $module.removeClass(settings.animation);
378
+ module.remove.direction();
379
+ module.cache = {
380
+ className : $module.attr('class'),
381
+ style : module.get.style()
382
+ };
383
+ module.verbose('Saving original attributes', module.cache);
384
+ }
385
+ },
386
+
387
+ restore: {
388
+ conditions: function() {
389
+ if(module.cache === undefined) {
390
+ return false;
391
+ }
392
+ if(module.cache.className) {
393
+ $module.attr('class', module.cache.className);
394
+ }
395
+ else {
396
+ $module.removeAttr('class');
397
+ }
398
+ if(module.cache.style) {
399
+ module.verbose('Restoring original style attribute', module.cache.style);
400
+ $module.attr('style', module.cache.style);
401
+ }
402
+ else {
403
+ module.verbose('Clearing style attribute');
404
+ $module.removeAttr('style');
405
+ }
406
+ module.verbose('Restoring original attributes', module.cache);
407
+ }
408
+ },
409
+
410
+ add: {
411
+ failSafe: function() {
412
+ var
413
+ duration = module.get.duration()
414
+ ;
415
+ module.timer = setTimeout(function() {
416
+ $module.trigger(animationEnd);
417
+ }, duration + settings.failSafeDelay);
418
+ module.verbose('Adding fail safe timer', module.timer);
419
+ }
420
+ },
421
+
422
+ remove: {
423
+ animating: function() {
424
+ $module.removeClass(className.animating);
425
+ },
426
+ animation: function() {
427
+ $module
428
+ .css({
429
+ '-webkit-animation' : '',
430
+ '-moz-animation' : '',
431
+ '-ms-animation' : '',
432
+ '-o-animation' : '',
433
+ 'animation' : ''
434
+ })
435
+ ;
436
+ },
437
+ animationCallbacks: function() {
438
+ module.remove.queueCallback();
439
+ module.remove.completeCallback();
440
+ },
441
+ queueCallback: function() {
442
+ $module.off('.queue' + eventNamespace)
443
+ },
444
+ completeCallback: function() {
445
+ $module.off('.complete' + eventNamespace);
446
+ },
447
+ display: function() {
448
+ $module.css('display', '');
449
+ },
450
+ direction: function() {
451
+ $module
452
+ .removeClass(className.inward)
453
+ .removeClass(className.outward)
454
+ ;
455
+ },
456
+ failSafe: function() {
457
+ module.verbose('Removing fail safe timer', module.timer);
458
+ if(module.timer) {
459
+ clearTimeout(module.timer);
460
+ }
461
+ },
462
+ hidden: function() {
463
+ $module.removeClass(className.hidden);
464
+ },
465
+ visible: function() {
466
+ $module.removeClass(className.visible);
467
+ },
468
+ looping: function() {
469
+ module.debug('Transitions are no longer looping');
470
+ if( module.is.looping() ) {
471
+ module.reset();
472
+ $module
473
+ .removeClass(className.looping)
474
+ ;
475
+ }
476
+ },
477
+ transition: function() {
478
+ $module
479
+ .removeClass(className.visible)
480
+ .removeClass(className.hidden)
481
+ ;
482
+ }
483
+ },
484
+ get: {
485
+ settings: function(animation, duration, onComplete) {
486
+ // single settings object
487
+ if(typeof animation == 'object') {
488
+ return $.extend(true, {}, $.fn.transition.settings, animation);
489
+ }
490
+ // all arguments provided
491
+ else if(typeof onComplete == 'function') {
492
+ return $.extend({}, $.fn.transition.settings, {
493
+ animation : animation,
494
+ onComplete : onComplete,
495
+ duration : duration
496
+ });
497
+ }
498
+ // only duration provided
499
+ else if(typeof duration == 'string' || typeof duration == 'number') {
500
+ return $.extend({}, $.fn.transition.settings, {
501
+ animation : animation,
502
+ duration : duration
503
+ });
504
+ }
505
+ // duration is actually settings object
506
+ else if(typeof duration == 'object') {
507
+ return $.extend({}, $.fn.transition.settings, duration, {
508
+ animation : animation
509
+ });
510
+ }
511
+ // duration is actually callback
512
+ else if(typeof duration == 'function') {
513
+ return $.extend({}, $.fn.transition.settings, {
514
+ animation : animation,
515
+ onComplete : duration
516
+ });
517
+ }
518
+ // only animation provided
519
+ else {
520
+ return $.extend({}, $.fn.transition.settings, {
521
+ animation : animation
522
+ });
523
+ }
524
+ return $.fn.transition.settings;
525
+ },
526
+ direction: function(animation) {
527
+ // quickest manually specified direction
528
+ animation = animation || settings.animation;
529
+ if(typeof animation === 'string') {
530
+ animation = animation.split(' ');
531
+ $.each(animation, function(index, word){
532
+ if(word === className.inward) {
533
+ return className.inward;
534
+ }
535
+ else if(word === className.outward) {
536
+ return className.outward;
537
+ }
538
+ });
539
+ }
540
+ // slower backup
541
+ if( !module.can.transition() ) {
542
+ return 'static';
543
+ }
544
+ if($module.is(':visible') && !module.is.hidden()) {
545
+ return className.outward;
546
+ }
547
+ else {
548
+ return className.inward;
549
+ }
550
+ },
551
+ duration: function(duration) {
552
+ duration = duration || settings.duration;
553
+ if(duration === false) {
554
+ duration = $module.css('animation-duration') || 0;
555
+ }
556
+ return (typeof duration === 'string')
557
+ ? (duration.indexOf('ms') > -1)
558
+ ? parseFloat(duration)
559
+ : parseFloat(duration) * 1000
560
+ : duration
561
+ ;
562
+ },
563
+ displayType: function() {
564
+ if(settings.displayType) {
565
+ return settings.displayType;
566
+ }
567
+ if($module.data(metadata.displayType) === undefined) {
568
+ // create fake element to determine display state
569
+ module.can.transition(true);
570
+ }
571
+ return $module.data(metadata.displayType);
572
+ },
573
+ style: function() {
574
+ var
575
+ style = $module.attr('style') || ''
576
+ ;
577
+ return style.replace(/display.*?;/, '');
578
+ },
579
+ transitionExists: function(animation) {
580
+ return $.fn.transition.exists[animation];
581
+ },
582
+ animationName: function() {
583
+ var
584
+ element = document.createElement('div'),
585
+ animations = {
586
+ 'animation' :'animationName',
587
+ 'OAnimation' :'oAnimationName',
588
+ 'MozAnimation' :'mozAnimationName',
589
+ 'WebkitAnimation' :'webkitAnimationName'
590
+ },
591
+ animation
592
+ ;
593
+ for(animation in animations){
594
+ if( element.style[animation] !== undefined ){
595
+ return animations[animation];
596
+ }
597
+ }
598
+ return false;
599
+ },
600
+ animationStartEvent: function() {
601
+ var
602
+ element = document.createElement('div'),
603
+ animations = {
604
+ 'animation' :'animationstart',
605
+ 'OAnimation' :'oAnimationStart',
606
+ 'MozAnimation' :'mozAnimationStart',
607
+ 'WebkitAnimation' :'webkitAnimationStart'
608
+ },
609
+ animation
610
+ ;
611
+ for(animation in animations){
612
+ if( element.style[animation] !== undefined ){
613
+ return animations[animation];
614
+ }
615
+ }
616
+ return false;
617
+ },
618
+ animationEndEvent: function() {
619
+ var
620
+ element = document.createElement('div'),
621
+ animations = {
622
+ 'animation' :'animationend',
623
+ 'OAnimation' :'oAnimationEnd',
624
+ 'MozAnimation' :'mozAnimationEnd',
625
+ 'WebkitAnimation' :'webkitAnimationEnd'
626
+ },
627
+ animation
628
+ ;
629
+ for(animation in animations){
630
+ if( element.style[animation] !== undefined ){
631
+ return animations[animation];
632
+ }
633
+ }
634
+ return false;
635
+ }
636
+
637
+ },
638
+
639
+ can: {
640
+ transition: function(forced) {
641
+ var
642
+ elementClass = $module.attr('class'),
643
+ tagName = $module.prop('tagName'),
644
+ animation = settings.animation,
645
+ transitionExists = module.get.transitionExists(animation),
646
+ $clone,
647
+ currentAnimation,
648
+ inAnimation,
649
+ directionExists,
650
+ displayType
651
+ ;
652
+ if( transitionExists === undefined || forced) {
653
+ module.verbose('Determining whether animation exists');
654
+ $clone = $('<' + tagName + ' />').addClass( elementClass ).insertAfter($module);
655
+ currentAnimation = $clone
656
+ .addClass(animation)
657
+ .removeClass(className.inward)
658
+ .removeClass(className.outward)
659
+ .addClass(className.animating)
660
+ .addClass(className.transition)
661
+ .css(animationName)
662
+ ;
663
+ inAnimation = $clone
664
+ .addClass(className.inward)
665
+ .css(animationName)
666
+ ;
667
+ displayType = $clone
668
+ .attr('class', elementClass)
669
+ .removeAttr('style')
670
+ .removeClass(className.hidden)
671
+ .removeClass(className.visible)
672
+ .show()
673
+ .css('display')
674
+ ;
675
+ module.verbose('Determining final display state', displayType);
676
+ module.save.displayType(displayType);
677
+
678
+ $clone.remove();
679
+ if(currentAnimation != inAnimation) {
680
+ module.debug('Direction exists for animation', animation);
681
+ directionExists = true;
682
+ }
683
+ else if(currentAnimation == 'none' || !currentAnimation) {
684
+ module.debug('No animation defined in css', animation);
685
+ return;
686
+ }
687
+ else {
688
+ module.debug('Static animation found', animation, displayType);
689
+ directionExists = false;
690
+ }
691
+ module.save.transitionExists(animation, directionExists);
692
+ }
693
+ return (transitionExists !== undefined)
694
+ ? transitionExists
695
+ : directionExists
696
+ ;
697
+ },
698
+ animate: function() {
699
+ // can transition does not return a value if animation does not exist
700
+ return (module.can.transition() !== undefined);
701
+ }
702
+ },
703
+
704
+ is: {
705
+ animating: function() {
706
+ return $module.hasClass(className.animating);
707
+ },
708
+ inward: function() {
709
+ return $module.hasClass(className.inward);
710
+ },
711
+ outward: function() {
712
+ return $module.hasClass(className.outward);
713
+ },
714
+ looping: function() {
715
+ return $module.hasClass(className.looping);
716
+ },
717
+ occurring: function(animation) {
718
+ animation = animation || settings.animation;
719
+ animation = '.' + animation.replace(' ', '.');
720
+ return ( $module.filter(animation).length > 0 );
721
+ },
722
+ visible: function() {
723
+ return $module.is(':visible');
724
+ },
725
+ hidden: function() {
726
+ return $module.css('visibility') === 'hidden';
727
+ },
728
+ supported: function() {
729
+ return(animationName !== false && animationEnd !== false);
730
+ }
731
+ },
732
+
733
+ hide: function() {
734
+ module.verbose('Hiding element');
735
+ if( module.is.animating() ) {
736
+ module.reset();
737
+ }
738
+ module.remove.display();
739
+ module.remove.visible();
740
+ module.set.hidden();
741
+ module.repaint();
742
+ },
743
+
744
+ show: function(display) {
745
+ module.verbose('Showing element', display);
746
+ module.remove.hidden();
747
+ module.set.visible();
748
+ module.set.display();
749
+ module.repaint();
750
+ },
751
+
752
+ toggle: function() {
753
+ if( module.is.visible() ) {
754
+ module.hide();
755
+ }
756
+ else {
757
+ module.show();
758
+ }
759
+ },
760
+
761
+ stop: function() {
762
+ module.debug('Stopping current animation');
763
+ $module.trigger(animationEnd);
764
+ },
765
+
766
+ stopAll: function() {
767
+ module.debug('Stopping all animation');
768
+ module.remove.queueCallback();
769
+ $module.trigger(animationEnd);
770
+ },
771
+
772
+ clear: {
773
+ queue: function() {
774
+ module.debug('Clearing animation queue')
775
+ module.remove.queueCallback();
776
+ }
777
+ },
778
+
779
+ enable: function() {
780
+ module.verbose('Starting animation');
781
+ $module.removeClass(className.disabled);
782
+ },
783
+
784
+ disable: function() {
785
+ module.debug('Stopping animation');
786
+ $module.addClass(className.disabled);
787
+ },
788
+
789
+ setting: function(name, value) {
790
+ module.debug('Changing setting', name, value);
791
+ if( $.isPlainObject(name) ) {
792
+ $.extend(true, settings, name);
793
+ }
794
+ else if(value !== undefined) {
795
+ settings[name] = value;
796
+ }
797
+ else {
798
+ return settings[name];
799
+ }
800
+ },
801
+ internal: function(name, value) {
802
+ if( $.isPlainObject(name) ) {
803
+ $.extend(true, module, name);
804
+ }
805
+ else if(value !== undefined) {
806
+ module[name] = value;
807
+ }
808
+ else {
809
+ return module[name];
810
+ }
811
+ },
812
+ debug: function() {
813
+ if(settings.debug) {
814
+ if(settings.performance) {
815
+ module.performance.log(arguments);
816
+ }
817
+ else {
818
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
819
+ module.debug.apply(console, arguments);
820
+ }
821
+ }
822
+ },
823
+ verbose: function() {
824
+ if(settings.verbose && settings.debug) {
825
+ if(settings.performance) {
826
+ module.performance.log(arguments);
827
+ }
828
+ else {
829
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
830
+ module.verbose.apply(console, arguments);
831
+ }
832
+ }
833
+ },
834
+ error: function() {
835
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
836
+ module.error.apply(console, arguments);
837
+ },
838
+ performance: {
839
+ log: function(message) {
840
+ var
841
+ currentTime,
842
+ executionTime,
843
+ previousTime
844
+ ;
845
+ if(settings.performance) {
846
+ currentTime = new Date().getTime();
847
+ previousTime = time || currentTime;
848
+ executionTime = currentTime - previousTime;
849
+ time = currentTime;
850
+ performance.push({
851
+ 'Name' : message[0],
852
+ 'Arguments' : [].slice.call(message, 1) || '',
853
+ 'Element' : element,
854
+ 'Execution Time' : executionTime
855
+ });
856
+ }
857
+ clearTimeout(module.performance.timer);
858
+ module.performance.timer = setTimeout(module.performance.display, 100);
859
+ },
860
+ display: function() {
861
+ var
862
+ title = settings.name + ':',
863
+ totalTime = 0
864
+ ;
865
+ time = false;
866
+ clearTimeout(module.performance.timer);
867
+ $.each(performance, function(index, data) {
868
+ totalTime += data['Execution Time'];
869
+ });
870
+ title += ' ' + totalTime + 'ms';
871
+ if(moduleSelector) {
872
+ title += ' \'' + moduleSelector + '\'';
873
+ }
874
+ if($allModules.length > 1) {
875
+ title += ' ' + '(' + $allModules.length + ')';
876
+ }
877
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
878
+ console.groupCollapsed(title);
879
+ if(console.table) {
880
+ console.table(performance);
881
+ }
882
+ else {
883
+ $.each(performance, function(index, data) {
884
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
885
+ });
886
+ }
887
+ console.groupEnd();
888
+ }
889
+ performance = [];
890
+ }
891
+ },
892
+ // modified for transition to return invoke success
893
+ invoke: function(query, passedArguments, context) {
894
+ var
895
+ object = instance,
896
+ maxDepth,
897
+ found,
898
+ response
899
+ ;
900
+ passedArguments = passedArguments || queryArguments;
901
+ context = element || context;
902
+ if(typeof query == 'string' && object !== undefined) {
903
+ query = query.split(/[\. ]/);
904
+ maxDepth = query.length - 1;
905
+ $.each(query, function(depth, value) {
906
+ var camelCaseValue = (depth != maxDepth)
907
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
908
+ : query
909
+ ;
910
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
911
+ object = object[camelCaseValue];
912
+ }
913
+ else if( object[camelCaseValue] !== undefined ) {
914
+ found = object[camelCaseValue];
915
+ return false;
916
+ }
917
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
918
+ object = object[value];
919
+ }
920
+ else if( object[value] !== undefined ) {
921
+ found = object[value];
922
+ return false;
923
+ }
924
+ else {
925
+ return false;
926
+ }
927
+ });
928
+ }
929
+ if ( $.isFunction( found ) ) {
930
+ response = found.apply(context, passedArguments);
931
+ }
932
+ else if(found !== undefined) {
933
+ response = found;
934
+ }
935
+
936
+ if($.isArray(returnedValue)) {
937
+ returnedValue.push(response);
938
+ }
939
+ else if(returnedValue !== undefined) {
940
+ returnedValue = [returnedValue, response];
941
+ }
942
+ else if(response !== undefined) {
943
+ returnedValue = response;
944
+ }
945
+ return (found !== undefined)
946
+ ? found
947
+ : false
948
+ ;
949
+ }
950
+ };
951
+ module.initialize();
952
+ })
953
+ ;
954
+ return (returnedValue !== undefined)
955
+ ? returnedValue
956
+ : this
957
+ ;
958
+ };
959
+
960
+ // Records if CSS transition is available
961
+ $.fn.transition.exists = {};
962
+
963
+ $.fn.transition.settings = {
964
+
965
+ // module info
966
+ name : 'Transition',
967
+
968
+ // debug content outputted to console
969
+ debug : false,
970
+
971
+ // verbose debug output
972
+ verbose : true,
973
+
974
+ // performance data output
975
+ performance : true,
976
+
977
+ // event namespace
978
+ namespace : 'transition',
979
+
980
+ // delay between animations in group
981
+ interval : 0,
982
+
983
+ // whether group animations should be reversed
984
+ reverse : 'auto',
985
+
986
+ // animation callback event
987
+ onStart : function() {},
988
+ onComplete : function() {},
989
+ onShow : function() {},
990
+ onHide : function() {},
991
+
992
+ // whether timeout should be used to ensure callback fires in cases animationend does not
993
+ useFailSafe : true,
994
+
995
+ // delay in ms for fail safe
996
+ failSafeDelay : 100,
997
+
998
+ // whether EXACT animation can occur twice in a row
999
+ allowRepeats : false,
1000
+
1001
+ // Override final display type on visible
1002
+ displayType : false,
1003
+
1004
+ // animation duration
1005
+ animation : 'fade',
1006
+ duration : false,
1007
+
1008
+ // new animations will occur after previous ones
1009
+ queue : true,
1010
+
1011
+ metadata : {
1012
+ displayType: 'display'
1013
+ },
1014
+
1015
+ className : {
1016
+ animating : 'animating',
1017
+ disabled : 'disabled',
1018
+ hidden : 'hidden',
1019
+ inward : 'in',
1020
+ loading : 'loading',
1021
+ looping : 'looping',
1022
+ outward : 'out',
1023
+ transition : 'transition',
1024
+ visible : 'visible'
1025
+ },
1026
+
1027
+ // possible errors
1028
+ error: {
1029
+ noAnimation : 'There is no css animation matching the one you specified.',
1030
+ repeated : 'That animation is already occurring, cancelling repeated animation',
1031
+ method : 'The method you called is not defined',
1032
+ support : 'This browser does not support CSS animations'
1033
+ }
1034
+
1035
+ };
1036
+
1037
+
1038
+ })( jQuery, window , document );