semantic-ui-sass 0.10.3.0 → 0.11.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +1 -1
- data/app/assets/javascripts/semantic-ui/accordion.js +10 -10
- data/app/assets/javascripts/semantic-ui/behavior/api.js +11 -11
- data/app/assets/javascripts/semantic-ui/behavior/form.js +10 -10
- data/app/assets/javascripts/semantic-ui/behavior/state.js +10 -10
- data/app/assets/javascripts/semantic-ui/checkbox.js +10 -10
- data/app/assets/javascripts/semantic-ui/dimmer.js +11 -11
- data/app/assets/javascripts/semantic-ui/dropdown.js +10 -10
- data/app/assets/javascripts/semantic-ui/modal.js +56 -48
- data/app/assets/javascripts/semantic-ui/nag.js +10 -10
- data/app/assets/javascripts/semantic-ui/popup.js +30 -20
- data/app/assets/javascripts/semantic-ui/rating.js +10 -10
- data/app/assets/javascripts/semantic-ui/search.js +10 -10
- data/app/assets/javascripts/semantic-ui/shape.js +10 -10
- data/app/assets/javascripts/semantic-ui/sidebar.js +10 -10
- data/app/assets/javascripts/semantic-ui/tab.js +11 -11
- data/app/assets/javascripts/semantic-ui/transition.js +233 -110
- data/app/assets/javascripts/semantic-ui/video.js +10 -10
- data/app/assets/stylesheets/semantic-ui/elements/_button.scss +2 -2
- data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +2 -2
- data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +0 -1
- data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +1 -0
- data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +1 -1
- data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +1 -0
- data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +7 -6
- data/lib/semantic/ui/sass/version.rb +2 -2
- metadata +2 -2
@@ -405,13 +405,14 @@ $.fn.nag = function(parameters) {
|
|
405
405
|
},
|
406
406
|
invoke: function(query, passedArguments, context) {
|
407
407
|
var
|
408
|
+
object = instance,
|
408
409
|
maxDepth,
|
409
410
|
found,
|
410
411
|
response
|
411
412
|
;
|
412
413
|
passedArguments = passedArguments || queryArguments;
|
413
414
|
context = element || context;
|
414
|
-
if(typeof query == 'string' &&
|
415
|
+
if(typeof query == 'string' && object !== undefined) {
|
415
416
|
query = query.split(/[\. ]/);
|
416
417
|
maxDepth = query.length - 1;
|
417
418
|
$.each(query, function(depth, value) {
|
@@ -419,22 +420,21 @@ $.fn.nag = function(parameters) {
|
|
419
420
|
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
|
420
421
|
: query
|
421
422
|
;
|
422
|
-
if( $.isPlainObject(
|
423
|
-
|
423
|
+
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
|
424
|
+
object = object[camelCaseValue];
|
424
425
|
}
|
425
|
-
else if(
|
426
|
-
found =
|
426
|
+
else if( object[camelCaseValue] !== undefined ) {
|
427
|
+
found = object[camelCaseValue];
|
427
428
|
return false;
|
428
429
|
}
|
429
|
-
else if( $.isPlainObject(
|
430
|
-
|
430
|
+
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
|
431
|
+
object = object[value];
|
431
432
|
}
|
432
|
-
else if(
|
433
|
-
found =
|
433
|
+
else if( object[value] !== undefined ) {
|
434
|
+
found = object[value];
|
434
435
|
return false;
|
435
436
|
}
|
436
437
|
else {
|
437
|
-
module.error(error.method, query);
|
438
438
|
return false;
|
439
439
|
}
|
440
440
|
});
|
@@ -187,10 +187,13 @@ $.fn.popup = function(parameters) {
|
|
187
187
|
toggle: function() {
|
188
188
|
module.debug('Toggling pop-up');
|
189
189
|
if( module.is.hidden() ) {
|
190
|
+
module.debug('Popup is hidden, showing pop-up');
|
191
|
+
module.unbind.close();
|
190
192
|
module.hideAll();
|
191
193
|
module.show();
|
192
194
|
}
|
193
195
|
else {
|
196
|
+
module.debug('Popup is visible, hiding pop-up');
|
194
197
|
module.hide();
|
195
198
|
}
|
196
199
|
},
|
@@ -231,9 +234,13 @@ $.fn.popup = function(parameters) {
|
|
231
234
|
|
232
235
|
hideGracefully: function(event) {
|
233
236
|
// don't close on clicks inside popup
|
234
|
-
if( $(event.target).closest(selector.popup).size() === 0) {
|
237
|
+
if(event && $(event.target).closest(selector.popup).size() === 0) {
|
238
|
+
module.debug('Click occurred outside popup hiding popup');
|
235
239
|
module.hide();
|
236
240
|
}
|
241
|
+
else {
|
242
|
+
module.debug('Click was inside popup, keeping popup open');
|
243
|
+
}
|
237
244
|
},
|
238
245
|
|
239
246
|
exists: function() {
|
@@ -265,11 +272,7 @@ $.fn.popup = function(parameters) {
|
|
265
272
|
},
|
266
273
|
restore: {
|
267
274
|
conditions: function() {
|
268
|
-
if(module.cache
|
269
|
-
module.error(error.cache);
|
270
|
-
return false;
|
271
|
-
}
|
272
|
-
if(module.cache.title) {
|
275
|
+
if(module.cache && module.cache.title) {
|
273
276
|
$module.attr('title', module.cache.title);
|
274
277
|
}
|
275
278
|
module.verbose('Restoring original attributes', module.cache.title);
|
@@ -536,16 +539,16 @@ $.fn.popup = function(parameters) {
|
|
536
539
|
module.error(error.recursion);
|
537
540
|
searchDepth = 0;
|
538
541
|
module.reset();
|
542
|
+
$popup.removeClass(className.loading);
|
539
543
|
return false;
|
540
544
|
}
|
541
545
|
}
|
542
546
|
else {
|
543
547
|
module.debug('Position is on stage', position);
|
544
548
|
searchDepth = 0;
|
549
|
+
$popup.removeClass(className.loading);
|
545
550
|
return true;
|
546
551
|
}
|
547
|
-
|
548
|
-
$module.removeClass(className.loading);
|
549
552
|
}
|
550
553
|
|
551
554
|
},
|
@@ -555,7 +558,10 @@ $.fn.popup = function(parameters) {
|
|
555
558
|
if(settings.on == 'click' && settings.closable) {
|
556
559
|
module.verbose('Binding popup close event to document');
|
557
560
|
$document
|
558
|
-
.on('click' + eventNamespace,
|
561
|
+
.on('click' + eventNamespace, function(event) {
|
562
|
+
module.verbose('Pop-up clickaway intent detected');
|
563
|
+
$.proxy(module.hideGracefully, this)(event);
|
564
|
+
})
|
559
565
|
;
|
560
566
|
}
|
561
567
|
}
|
@@ -573,6 +579,9 @@ $.fn.popup = function(parameters) {
|
|
573
579
|
},
|
574
580
|
|
575
581
|
is: {
|
582
|
+
animating: function() {
|
583
|
+
return ( $popup.is(':animated') || $popup.hasClass(className.animating) );
|
584
|
+
},
|
576
585
|
visible: function() {
|
577
586
|
return $popup.is(':visible');
|
578
587
|
},
|
@@ -692,13 +701,14 @@ $.fn.popup = function(parameters) {
|
|
692
701
|
},
|
693
702
|
invoke: function(query, passedArguments, context) {
|
694
703
|
var
|
704
|
+
object = instance,
|
695
705
|
maxDepth,
|
696
706
|
found,
|
697
707
|
response
|
698
708
|
;
|
699
709
|
passedArguments = passedArguments || queryArguments;
|
700
710
|
context = element || context;
|
701
|
-
if(typeof query == 'string' &&
|
711
|
+
if(typeof query == 'string' && object !== undefined) {
|
702
712
|
query = query.split(/[\. ]/);
|
703
713
|
maxDepth = query.length - 1;
|
704
714
|
$.each(query, function(depth, value) {
|
@@ -706,22 +716,21 @@ $.fn.popup = function(parameters) {
|
|
706
716
|
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
|
707
717
|
: query
|
708
718
|
;
|
709
|
-
if( $.isPlainObject(
|
710
|
-
|
719
|
+
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
|
720
|
+
object = object[camelCaseValue];
|
711
721
|
}
|
712
|
-
else if(
|
713
|
-
|
714
|
-
}
|
715
|
-
else if( instance[value] !== undefined ) {
|
716
|
-
found = instance[value];
|
722
|
+
else if( object[camelCaseValue] !== undefined ) {
|
723
|
+
found = object[camelCaseValue];
|
717
724
|
return false;
|
718
725
|
}
|
719
|
-
else if(
|
720
|
-
|
726
|
+
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
|
727
|
+
object = object[value];
|
728
|
+
}
|
729
|
+
else if( object[value] !== undefined ) {
|
730
|
+
found = object[value];
|
721
731
|
return false;
|
722
732
|
}
|
723
733
|
else {
|
724
|
-
module.error(error.method, query);
|
725
734
|
return false;
|
726
735
|
}
|
727
736
|
});
|
@@ -817,6 +826,7 @@ $.fn.popup.settings = {
|
|
817
826
|
},
|
818
827
|
|
819
828
|
className : {
|
829
|
+
animating : 'animating',
|
820
830
|
loading : 'loading',
|
821
831
|
popup : 'ui popup',
|
822
832
|
position : 'top left center bottom right',
|
@@ -295,13 +295,14 @@ $.fn.rating = function(parameters) {
|
|
295
295
|
},
|
296
296
|
invoke: function(query, passedArguments, context) {
|
297
297
|
var
|
298
|
+
object = instance,
|
298
299
|
maxDepth,
|
299
300
|
found,
|
300
301
|
response
|
301
302
|
;
|
302
303
|
passedArguments = passedArguments || queryArguments;
|
303
304
|
context = element || context;
|
304
|
-
if(typeof query == 'string' &&
|
305
|
+
if(typeof query == 'string' && object !== undefined) {
|
305
306
|
query = query.split(/[\. ]/);
|
306
307
|
maxDepth = query.length - 1;
|
307
308
|
$.each(query, function(depth, value) {
|
@@ -309,22 +310,21 @@ $.fn.rating = function(parameters) {
|
|
309
310
|
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
|
310
311
|
: query
|
311
312
|
;
|
312
|
-
if( $.isPlainObject(
|
313
|
-
|
313
|
+
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
|
314
|
+
object = object[camelCaseValue];
|
314
315
|
}
|
315
|
-
else if(
|
316
|
-
found =
|
316
|
+
else if( object[camelCaseValue] !== undefined ) {
|
317
|
+
found = object[camelCaseValue];
|
317
318
|
return false;
|
318
319
|
}
|
319
|
-
else if( $.isPlainObject(
|
320
|
-
|
320
|
+
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
|
321
|
+
object = object[value];
|
321
322
|
}
|
322
|
-
else if(
|
323
|
-
found =
|
323
|
+
else if( object[value] !== undefined ) {
|
324
|
+
found = object[value];
|
324
325
|
return false;
|
325
326
|
}
|
326
327
|
else {
|
327
|
-
module.error(error.method, query);
|
328
328
|
return false;
|
329
329
|
}
|
330
330
|
});
|
@@ -508,13 +508,14 @@ $.fn.search = function(source, parameters) {
|
|
508
508
|
},
|
509
509
|
invoke: function(query, passedArguments, context) {
|
510
510
|
var
|
511
|
+
object = instance,
|
511
512
|
maxDepth,
|
512
513
|
found,
|
513
514
|
response
|
514
515
|
;
|
515
516
|
passedArguments = passedArguments || queryArguments;
|
516
517
|
context = element || context;
|
517
|
-
if(typeof query == 'string' &&
|
518
|
+
if(typeof query == 'string' && object !== undefined) {
|
518
519
|
query = query.split(/[\. ]/);
|
519
520
|
maxDepth = query.length - 1;
|
520
521
|
$.each(query, function(depth, value) {
|
@@ -522,22 +523,21 @@ $.fn.search = function(source, parameters) {
|
|
522
523
|
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
|
523
524
|
: query
|
524
525
|
;
|
525
|
-
if( $.isPlainObject(
|
526
|
-
|
526
|
+
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
|
527
|
+
object = object[camelCaseValue];
|
527
528
|
}
|
528
|
-
else if(
|
529
|
-
found =
|
529
|
+
else if( object[camelCaseValue] !== undefined ) {
|
530
|
+
found = object[camelCaseValue];
|
530
531
|
return false;
|
531
532
|
}
|
532
|
-
else if( $.isPlainObject(
|
533
|
-
|
533
|
+
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
|
534
|
+
object = object[value];
|
534
535
|
}
|
535
|
-
else if(
|
536
|
-
found =
|
536
|
+
else if( object[value] !== undefined ) {
|
537
|
+
found = object[value];
|
537
538
|
return false;
|
538
539
|
}
|
539
540
|
else {
|
540
|
-
module.error(error.method, query);
|
541
541
|
return false;
|
542
542
|
}
|
543
543
|
});
|
@@ -663,13 +663,14 @@ $.fn.shape = function(parameters) {
|
|
663
663
|
},
|
664
664
|
invoke: function(query, passedArguments, context) {
|
665
665
|
var
|
666
|
+
object = instance,
|
666
667
|
maxDepth,
|
667
668
|
found,
|
668
669
|
response
|
669
670
|
;
|
670
671
|
passedArguments = passedArguments || queryArguments;
|
671
672
|
context = element || context;
|
672
|
-
if(typeof query == 'string' &&
|
673
|
+
if(typeof query == 'string' && object !== undefined) {
|
673
674
|
query = query.split(/[\. ]/);
|
674
675
|
maxDepth = query.length - 1;
|
675
676
|
$.each(query, function(depth, value) {
|
@@ -677,22 +678,21 @@ $.fn.shape = function(parameters) {
|
|
677
678
|
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
|
678
679
|
: query
|
679
680
|
;
|
680
|
-
if( $.isPlainObject(
|
681
|
-
|
681
|
+
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
|
682
|
+
object = object[camelCaseValue];
|
682
683
|
}
|
683
|
-
else if(
|
684
|
-
found =
|
684
|
+
else if( object[camelCaseValue] !== undefined ) {
|
685
|
+
found = object[camelCaseValue];
|
685
686
|
return false;
|
686
687
|
}
|
687
|
-
else if( $.isPlainObject(
|
688
|
-
|
688
|
+
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
|
689
|
+
object = object[value];
|
689
690
|
}
|
690
|
-
else if(
|
691
|
-
found =
|
691
|
+
else if( object[value] !== undefined ) {
|
692
|
+
found = object[value];
|
692
693
|
return false;
|
693
694
|
}
|
694
695
|
else {
|
695
|
-
module.error(error.method, query);
|
696
696
|
return false;
|
697
697
|
}
|
698
698
|
});
|
@@ -402,13 +402,14 @@ $.fn.sidebar = function(parameters) {
|
|
402
402
|
},
|
403
403
|
invoke: function(query, passedArguments, context) {
|
404
404
|
var
|
405
|
+
object = instance,
|
405
406
|
maxDepth,
|
406
407
|
found,
|
407
408
|
response
|
408
409
|
;
|
409
410
|
passedArguments = passedArguments || queryArguments;
|
410
411
|
context = element || context;
|
411
|
-
if(typeof query == 'string' &&
|
412
|
+
if(typeof query == 'string' && object !== undefined) {
|
412
413
|
query = query.split(/[\. ]/);
|
413
414
|
maxDepth = query.length - 1;
|
414
415
|
$.each(query, function(depth, value) {
|
@@ -416,22 +417,21 @@ $.fn.sidebar = function(parameters) {
|
|
416
417
|
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
|
417
418
|
: query
|
418
419
|
;
|
419
|
-
if( $.isPlainObject(
|
420
|
-
|
420
|
+
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
|
421
|
+
object = object[camelCaseValue];
|
421
422
|
}
|
422
|
-
else if(
|
423
|
-
found =
|
423
|
+
else if( object[camelCaseValue] !== undefined ) {
|
424
|
+
found = object[camelCaseValue];
|
424
425
|
return false;
|
425
426
|
}
|
426
|
-
else if( $.isPlainObject(
|
427
|
-
|
427
|
+
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
|
428
|
+
object = object[value];
|
428
429
|
}
|
429
|
-
else if(
|
430
|
-
found =
|
430
|
+
else if( object[value] !== undefined ) {
|
431
|
+
found = object[value];
|
431
432
|
return false;
|
432
433
|
}
|
433
434
|
else {
|
434
|
-
module.error(error.method, query);
|
435
435
|
return false;
|
436
436
|
}
|
437
437
|
});
|
@@ -566,13 +566,14 @@
|
|
566
566
|
},
|
567
567
|
invoke: function(query, passedArguments, context) {
|
568
568
|
var
|
569
|
+
object = instance,
|
569
570
|
maxDepth,
|
570
571
|
found,
|
571
572
|
response
|
572
573
|
;
|
573
574
|
passedArguments = passedArguments || queryArguments;
|
574
575
|
context = element || context;
|
575
|
-
if(typeof query == 'string' &&
|
576
|
+
if(typeof query == 'string' && object !== undefined) {
|
576
577
|
query = query.split(/[\. ]/);
|
577
578
|
maxDepth = query.length - 1;
|
578
579
|
$.each(query, function(depth, value) {
|
@@ -580,22 +581,21 @@
|
|
580
581
|
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
|
581
582
|
: query
|
582
583
|
;
|
583
|
-
if( $.isPlainObject(
|
584
|
-
|
584
|
+
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
|
585
|
+
object = object[camelCaseValue];
|
585
586
|
}
|
586
|
-
else if(
|
587
|
-
|
588
|
-
}
|
589
|
-
else if( instance[value] !== undefined ) {
|
590
|
-
found = instance[value];
|
587
|
+
else if( object[camelCaseValue] !== undefined ) {
|
588
|
+
found = object[camelCaseValue];
|
591
589
|
return false;
|
592
590
|
}
|
593
|
-
else if(
|
594
|
-
|
591
|
+
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
|
592
|
+
object = object[value];
|
593
|
+
}
|
594
|
+
else if( object[value] !== undefined ) {
|
595
|
+
found = object[value];
|
595
596
|
return false;
|
596
597
|
}
|
597
598
|
else {
|
598
|
-
module.error(error.method, query);
|
599
599
|
return false;
|
600
600
|
}
|
601
601
|
});
|
@@ -70,11 +70,8 @@ $.fn.transition = function() {
|
|
70
70
|
animationEnd = module.get.animationEvent();
|
71
71
|
animationName = module.get.animationName();
|
72
72
|
|
73
|
-
instance = $module.data(moduleNamespace);
|
73
|
+
instance = $module.data(moduleNamespace) || module;
|
74
74
|
|
75
|
-
if(instance === undefined) {
|
76
|
-
module.instantiate();
|
77
|
-
}
|
78
75
|
if(methodInvoked) {
|
79
76
|
methodInvoked = module.invoke(query);
|
80
77
|
}
|
@@ -82,11 +79,11 @@ $.fn.transition = function() {
|
|
82
79
|
if(methodInvoked === false) {
|
83
80
|
module.animate();
|
84
81
|
}
|
82
|
+
module.instantiate();
|
85
83
|
},
|
86
84
|
|
87
85
|
instantiate: function() {
|
88
86
|
module.verbose('Storing instance of module', module);
|
89
|
-
instance = module;
|
90
87
|
$module
|
91
88
|
.data(moduleNamespace, instance)
|
92
89
|
;
|
@@ -99,6 +96,32 @@ $.fn.transition = function() {
|
|
99
96
|
;
|
100
97
|
},
|
101
98
|
|
99
|
+
refresh: function() {
|
100
|
+
module.verbose('Refreshing display type on next animation');
|
101
|
+
delete instance.displayType;
|
102
|
+
},
|
103
|
+
|
104
|
+
forceRepaint: function() {
|
105
|
+
module.verbose('Forcing element repaint');
|
106
|
+
var
|
107
|
+
$parentElement = $module.parent(),
|
108
|
+
$nextElement = $module.next()
|
109
|
+
;
|
110
|
+
if($nextElement.size() === 0) {
|
111
|
+
$module.detach().appendTo($parentElement);
|
112
|
+
}
|
113
|
+
else {
|
114
|
+
$module.detach().insertBefore($nextElement);
|
115
|
+
}
|
116
|
+
},
|
117
|
+
|
118
|
+
repaint: function() {
|
119
|
+
module.verbose('Repainting element');
|
120
|
+
var
|
121
|
+
fakeAssignment = element.offsetWidth
|
122
|
+
;
|
123
|
+
},
|
124
|
+
|
102
125
|
animate: function(overrideSettings) {
|
103
126
|
settings = overrideSettings || settings;
|
104
127
|
if(!module.is.supported()) {
|
@@ -106,31 +129,23 @@ $.fn.transition = function() {
|
|
106
129
|
return false;
|
107
130
|
}
|
108
131
|
module.debug('Preparing animation', settings.animation);
|
109
|
-
if(module.is.animating()) {
|
110
|
-
|
111
|
-
module.queue(settings.animation);
|
112
|
-
}
|
132
|
+
if(module.is.animating() && settings.queue) {
|
133
|
+
module.queue(settings.animation);
|
113
134
|
return false;
|
114
135
|
}
|
115
|
-
module.
|
116
|
-
|
117
|
-
module.set.animating();
|
118
|
-
module.repaint();
|
119
|
-
$module
|
120
|
-
.addClass(className.transition)
|
121
|
-
.addClass(settings.animation)
|
122
|
-
.one(animationEnd, module.complete)
|
123
|
-
;
|
124
|
-
if(!module.has.direction() && module.can.transition()) {
|
125
|
-
module.set.direction();
|
136
|
+
if(module.can.animate) {
|
137
|
+
module.set.animating(settings.animation);
|
126
138
|
}
|
127
|
-
|
128
|
-
module.restore.conditions();
|
139
|
+
else {
|
129
140
|
module.error(error.noAnimation, settings.animation);
|
130
|
-
return false;
|
131
141
|
}
|
132
|
-
|
133
|
-
|
142
|
+
},
|
143
|
+
|
144
|
+
reset: function() {
|
145
|
+
module.debug('Resetting animation to beginning conditions');
|
146
|
+
module.restore.conditions();
|
147
|
+
module.hide();
|
148
|
+
module.remove.animating();
|
134
149
|
},
|
135
150
|
|
136
151
|
queue: function(animation) {
|
@@ -147,12 +162,15 @@ $.fn.transition = function() {
|
|
147
162
|
complete: function () {
|
148
163
|
module.verbose('CSS animation complete', settings.animation);
|
149
164
|
if(!module.is.looping()) {
|
150
|
-
if(
|
165
|
+
if( module.is.outward() ) {
|
166
|
+
module.verbose('Animation is outward, hiding element');
|
151
167
|
module.restore.conditions();
|
168
|
+
module.remove.display();
|
152
169
|
module.hide();
|
153
170
|
$.proxy(settings.onHide, this)();
|
154
171
|
}
|
155
|
-
else if(
|
172
|
+
else if( module.is.inward() ) {
|
173
|
+
module.verbose('Animation is outward, showing element');
|
156
174
|
module.restore.conditions();
|
157
175
|
module.show();
|
158
176
|
$.proxy(settings.onShow, this)();
|
@@ -160,67 +178,70 @@ $.fn.transition = function() {
|
|
160
178
|
else {
|
161
179
|
module.restore.conditions();
|
162
180
|
}
|
181
|
+
module.remove.duration();
|
163
182
|
module.remove.animating();
|
164
183
|
}
|
165
184
|
$.proxy(settings.complete, this)();
|
166
185
|
},
|
167
|
-
|
168
|
-
module.verbose('Forcing element repaint');
|
169
|
-
var
|
170
|
-
$parentElement = $module.parent(),
|
171
|
-
$nextElement = $module.next()
|
172
|
-
;
|
173
|
-
if($nextElement.size() === 0) {
|
174
|
-
$module.detach().appendTo($parentElement);
|
175
|
-
}
|
176
|
-
else {
|
177
|
-
$module.detach().insertBefore($nextElement);
|
178
|
-
}
|
179
|
-
},
|
180
|
-
repaint: function() {
|
181
|
-
module.verbose('Repainting element');
|
182
|
-
var
|
183
|
-
fakeAssignment = element.offsetWidth
|
184
|
-
;
|
185
|
-
},
|
186
|
+
|
186
187
|
has: {
|
187
188
|
direction: function(animation) {
|
188
189
|
animation = animation || settings.animation;
|
189
|
-
if(
|
190
|
+
if( animation.search(className.inward) !== -1 || animation.search(className.outward) !== -1) {
|
191
|
+
module.debug('Direction already set in animation');
|
190
192
|
return true;
|
191
193
|
}
|
192
|
-
|
193
|
-
transitionAvailable: function() {
|
194
|
-
if($module.css(animationName) !== 'none') {
|
195
|
-
module.debug('CSS definition found');
|
196
|
-
return true;
|
197
|
-
}
|
198
|
-
else {
|
199
|
-
module.debug('Unable to find css definition');
|
200
|
-
return false;
|
201
|
-
}
|
194
|
+
return false;
|
202
195
|
}
|
203
196
|
},
|
204
197
|
|
205
198
|
set: {
|
206
199
|
|
207
|
-
animating: function() {
|
208
|
-
|
200
|
+
animating: function(animation) {
|
201
|
+
animation = animation || settings.animation;
|
202
|
+
module.save.conditions();
|
203
|
+
if(module.can.transition() && !module.has.direction()) {
|
204
|
+
module.set.direction();
|
205
|
+
}
|
206
|
+
module.remove.hidden();
|
207
|
+
module.set.display();
|
208
|
+
$module
|
209
|
+
.addClass(className.animating)
|
210
|
+
.addClass(className.transition)
|
211
|
+
.addClass(animation)
|
212
|
+
.one(animationEnd, module.complete)
|
213
|
+
;
|
214
|
+
module.set.duration(settings.duration);
|
215
|
+
module.debug('Starting tween', settings.animation, $module.attr('class'));
|
216
|
+
},
|
217
|
+
|
218
|
+
display: function() {
|
219
|
+
var
|
220
|
+
displayType = module.get.displayType()
|
221
|
+
;
|
222
|
+
if(displayType !== 'block') {
|
223
|
+
module.verbose('Setting final visibility to', displayType);
|
224
|
+
$module
|
225
|
+
.css({
|
226
|
+
display: displayType
|
227
|
+
})
|
228
|
+
;
|
229
|
+
}
|
209
230
|
},
|
210
231
|
|
211
232
|
direction: function() {
|
212
233
|
if($module.is(':visible')) {
|
213
234
|
module.debug('Automatically determining the direction of animation', 'Outward');
|
214
235
|
$module
|
215
|
-
.addClass(className.outward)
|
216
236
|
.removeClass(className.inward)
|
237
|
+
.addClass(className.outward)
|
217
238
|
;
|
218
239
|
}
|
219
240
|
else {
|
220
241
|
module.debug('Automatically determining the direction of animation', 'Inward');
|
221
242
|
$module
|
222
|
-
.addClass(className.inward)
|
223
243
|
.removeClass(className.outward)
|
244
|
+
.addClass(className.inward)
|
224
245
|
;
|
225
246
|
}
|
226
247
|
},
|
@@ -248,41 +269,63 @@ $.fn.transition = function() {
|
|
248
269
|
'animation-duration': duration
|
249
270
|
})
|
250
271
|
;
|
272
|
+
},
|
273
|
+
|
274
|
+
hidden: function() {
|
275
|
+
$module
|
276
|
+
.addClass(className.transition)
|
277
|
+
.addClass(className.hidden)
|
278
|
+
;
|
279
|
+
},
|
280
|
+
|
281
|
+
visible: function() {
|
282
|
+
$module
|
283
|
+
.addClass(className.transition)
|
284
|
+
.addClass(className.visible)
|
285
|
+
;
|
251
286
|
}
|
252
287
|
},
|
253
288
|
|
254
289
|
save: {
|
290
|
+
displayType: function(displayType) {
|
291
|
+
instance.displayType = displayType;
|
292
|
+
},
|
293
|
+
transitionExists: function(animation, exists) {
|
294
|
+
$.fn.transition.exists[animation] = exists;
|
295
|
+
module.verbose('Saving existence of transition', animation, exists);
|
296
|
+
},
|
255
297
|
conditions: function() {
|
256
|
-
|
298
|
+
instance.cache = {
|
257
299
|
className : $module.attr('class'),
|
258
300
|
style : $module.attr('style')
|
259
301
|
};
|
260
|
-
module.verbose('Saving original attributes',
|
302
|
+
module.verbose('Saving original attributes', instance.cache);
|
261
303
|
}
|
262
304
|
},
|
263
305
|
|
264
306
|
restore: {
|
265
307
|
conditions: function() {
|
266
|
-
if(
|
267
|
-
module.error(error.cache);
|
308
|
+
if(instance.cache === undefined) {
|
268
309
|
return false;
|
269
310
|
}
|
270
|
-
if(
|
271
|
-
$module.attr('class',
|
311
|
+
if(instance.cache.className) {
|
312
|
+
$module.attr('class', instance.cache.className);
|
272
313
|
}
|
273
314
|
else {
|
274
315
|
$module.removeAttr('class');
|
275
316
|
}
|
276
|
-
if(
|
277
|
-
$module.attr('style',
|
317
|
+
if(instance.cache.style) {
|
318
|
+
$module.attr('style', instance.cache.style);
|
278
319
|
}
|
279
320
|
else {
|
280
|
-
|
321
|
+
if(module.get.displayType() === 'block') {
|
322
|
+
$module.removeAttr('style');
|
323
|
+
}
|
281
324
|
}
|
282
325
|
if(module.is.looping()) {
|
283
326
|
module.remove.looping();
|
284
327
|
}
|
285
|
-
module.verbose('Restoring original attributes',
|
328
|
+
module.verbose('Restoring original attributes', instance.cache);
|
286
329
|
}
|
287
330
|
},
|
288
331
|
|
@@ -292,6 +335,32 @@ $.fn.transition = function() {
|
|
292
335
|
$module.removeClass(className.animating);
|
293
336
|
},
|
294
337
|
|
338
|
+
display: function() {
|
339
|
+
if(instance.displayType !== undefined) {
|
340
|
+
$module.css('display', '');
|
341
|
+
}
|
342
|
+
},
|
343
|
+
|
344
|
+
duration: function() {
|
345
|
+
$module
|
346
|
+
.css({
|
347
|
+
'-webkit-animation-duration' : '',
|
348
|
+
'-moz-animation-duration' : '',
|
349
|
+
'-ms-animation-duration' : '',
|
350
|
+
'-o-animation-duration' : '',
|
351
|
+
'animation-duration' : ''
|
352
|
+
})
|
353
|
+
;
|
354
|
+
},
|
355
|
+
|
356
|
+
hidden: function() {
|
357
|
+
$module.removeClass(className.hidden);
|
358
|
+
},
|
359
|
+
|
360
|
+
visible: function() {
|
361
|
+
$module.removeClass(className.visible);
|
362
|
+
},
|
363
|
+
|
295
364
|
looping: function() {
|
296
365
|
module.debug('Transitions are no longer looping');
|
297
366
|
$module
|
@@ -306,12 +375,12 @@ $.fn.transition = function() {
|
|
306
375
|
|
307
376
|
settings: function(animation, duration, complete) {
|
308
377
|
// single settings object
|
309
|
-
if(
|
378
|
+
if(typeof animation == 'object') {
|
310
379
|
return $.extend(true, {}, $.fn.transition.settings, animation);
|
311
380
|
}
|
312
381
|
// all arguments provided
|
313
382
|
else if(typeof complete == 'function') {
|
314
|
-
return $.extend(
|
383
|
+
return $.extend({}, $.fn.transition.settings, {
|
315
384
|
animation : animation,
|
316
385
|
complete : complete,
|
317
386
|
duration : duration
|
@@ -319,31 +388,43 @@ $.fn.transition = function() {
|
|
319
388
|
}
|
320
389
|
// only duration provided
|
321
390
|
else if(typeof duration == 'string' || typeof duration == 'number') {
|
322
|
-
return $.extend(
|
391
|
+
return $.extend({}, $.fn.transition.settings, {
|
323
392
|
animation : animation,
|
324
393
|
duration : duration
|
325
394
|
});
|
326
395
|
}
|
327
396
|
// duration is actually settings object
|
328
397
|
else if(typeof duration == 'object') {
|
329
|
-
return $.extend(
|
398
|
+
return $.extend({}, $.fn.transition.settings, duration, {
|
330
399
|
animation : animation
|
331
400
|
});
|
332
401
|
}
|
333
402
|
// duration is actually callback
|
334
403
|
else if(typeof duration == 'function') {
|
335
|
-
return $.extend(
|
404
|
+
return $.extend({}, $.fn.transition.settings, {
|
336
405
|
animation : animation,
|
337
406
|
complete : duration
|
338
407
|
});
|
339
408
|
}
|
340
409
|
// only animation provided
|
341
410
|
else {
|
342
|
-
return $.extend(
|
411
|
+
return $.extend({}, $.fn.transition.settings, {
|
343
412
|
animation : animation
|
344
413
|
});
|
345
414
|
}
|
346
|
-
return $.
|
415
|
+
return $.fn.transition.settings;
|
416
|
+
},
|
417
|
+
|
418
|
+
displayType: function() {
|
419
|
+
if(instance.displayType === undefined) {
|
420
|
+
// create fake element to determine display state
|
421
|
+
module.can.transition();
|
422
|
+
}
|
423
|
+
return instance.displayType;
|
424
|
+
},
|
425
|
+
|
426
|
+
transitionExists: function(animation) {
|
427
|
+
return $.fn.transition.exists[animation];
|
347
428
|
},
|
348
429
|
|
349
430
|
animationName: function() {
|
@@ -389,22 +470,60 @@ $.fn.transition = function() {
|
|
389
470
|
},
|
390
471
|
|
391
472
|
can: {
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
currentAnimation = $clone.css(animationName),
|
396
|
-
inAnimation = $clone.addClass(className.inward).css(animationName)
|
397
|
-
;
|
398
|
-
if(currentAnimation != inAnimation) {
|
399
|
-
module.debug('In/out transitions exist');
|
400
|
-
$clone.remove();
|
473
|
+
animate: function() {
|
474
|
+
if($module.css(settings.animation) !== 'none') {
|
475
|
+
module.debug('CSS definition found', $module.css(settings.animation));
|
401
476
|
return true;
|
402
477
|
}
|
403
478
|
else {
|
404
|
-
module.debug('
|
405
|
-
$clone.remove();
|
479
|
+
module.debug('Unable to find css definition', $module.attr('class'));
|
406
480
|
return false;
|
407
481
|
}
|
482
|
+
},
|
483
|
+
transition: function() {
|
484
|
+
var
|
485
|
+
elementClass = $module.attr('class'),
|
486
|
+
animation = settings.animation,
|
487
|
+
transitionExists = module.get.transitionExists(settings.animation),
|
488
|
+
$clone,
|
489
|
+
currentAnimation,
|
490
|
+
inAnimation,
|
491
|
+
displayType
|
492
|
+
;
|
493
|
+
if( transitionExists === undefined || instance.displayType === undefined) {
|
494
|
+
module.verbose('Determining whether animation exists');
|
495
|
+
$clone = $('<div>').addClass( elementClass ).appendTo($('body'));
|
496
|
+
currentAnimation = $clone
|
497
|
+
.removeClass(className.inward)
|
498
|
+
.removeClass(className.outward)
|
499
|
+
.addClass(className.animating)
|
500
|
+
.addClass(className.transition)
|
501
|
+
.addClass(animation)
|
502
|
+
.css(animationName)
|
503
|
+
;
|
504
|
+
inAnimation = $clone
|
505
|
+
.addClass(className.inward)
|
506
|
+
.css(animationName)
|
507
|
+
;
|
508
|
+
displayType = $clone
|
509
|
+
.attr('class', elementClass)
|
510
|
+
.show()
|
511
|
+
.css('display')
|
512
|
+
;
|
513
|
+
module.verbose('Determining final display state', displayType);
|
514
|
+
if(currentAnimation != inAnimation) {
|
515
|
+
module.debug('Transition exists for animation', animation);
|
516
|
+
transitionExists = true;
|
517
|
+
}
|
518
|
+
else {
|
519
|
+
module.debug('Static animation found', animation, displayType);
|
520
|
+
transitionExists = false;
|
521
|
+
}
|
522
|
+
$clone.remove();
|
523
|
+
module.save.displayType(displayType);
|
524
|
+
module.save.transitionExists(animation, transitionExists);
|
525
|
+
}
|
526
|
+
return transitionExists;
|
408
527
|
}
|
409
528
|
},
|
410
529
|
|
@@ -412,6 +531,12 @@ $.fn.transition = function() {
|
|
412
531
|
animating: function() {
|
413
532
|
return $module.hasClass(className.animating);
|
414
533
|
},
|
534
|
+
inward: function() {
|
535
|
+
return $module.hasClass(className.inward);
|
536
|
+
},
|
537
|
+
outward: function() {
|
538
|
+
return $module.hasClass(className.outward);
|
539
|
+
},
|
415
540
|
looping: function() {
|
416
541
|
return $module.hasClass(className.looping);
|
417
542
|
},
|
@@ -425,20 +550,15 @@ $.fn.transition = function() {
|
|
425
550
|
|
426
551
|
hide: function() {
|
427
552
|
module.verbose('Hiding element');
|
428
|
-
|
429
|
-
|
430
|
-
.addClass(className.transition)
|
431
|
-
.addClass(className.hidden)
|
432
|
-
;
|
553
|
+
module.remove.visible();
|
554
|
+
module.set.hidden();
|
433
555
|
module.repaint();
|
434
556
|
},
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
.addClass(className.visible)
|
441
|
-
;
|
557
|
+
|
558
|
+
show: function(display) {
|
559
|
+
module.verbose('Showing element', display);
|
560
|
+
module.remove.hidden();
|
561
|
+
module.set.visible();
|
442
562
|
module.repaint();
|
443
563
|
},
|
444
564
|
|
@@ -561,13 +681,14 @@ $.fn.transition = function() {
|
|
561
681
|
},
|
562
682
|
invoke: function(query, passedArguments, context) {
|
563
683
|
var
|
684
|
+
object = instance,
|
564
685
|
maxDepth,
|
565
686
|
found,
|
566
687
|
response
|
567
688
|
;
|
568
689
|
passedArguments = passedArguments || queryArguments;
|
569
690
|
context = element || context;
|
570
|
-
if(typeof query == 'string' &&
|
691
|
+
if(typeof query == 'string' && object !== undefined) {
|
571
692
|
query = query.split(/[\. ]/);
|
572
693
|
maxDepth = query.length - 1;
|
573
694
|
$.each(query, function(depth, value) {
|
@@ -575,18 +696,18 @@ $.fn.transition = function() {
|
|
575
696
|
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
|
576
697
|
: query
|
577
698
|
;
|
578
|
-
if( $.isPlainObject(
|
579
|
-
|
699
|
+
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
|
700
|
+
object = object[camelCaseValue];
|
580
701
|
}
|
581
|
-
else if(
|
582
|
-
found =
|
702
|
+
else if( object[camelCaseValue] !== undefined ) {
|
703
|
+
found = object[camelCaseValue];
|
583
704
|
return false;
|
584
705
|
}
|
585
|
-
else if( $.isPlainObject(
|
586
|
-
|
706
|
+
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
|
707
|
+
object = object[value];
|
587
708
|
}
|
588
|
-
else if(
|
589
|
-
found =
|
709
|
+
else if( object[value] !== undefined ) {
|
710
|
+
found = object[value];
|
590
711
|
return false;
|
591
712
|
}
|
592
713
|
else {
|
@@ -621,6 +742,8 @@ $.fn.transition = function() {
|
|
621
742
|
;
|
622
743
|
};
|
623
744
|
|
745
|
+
$.fn.transition.exists = {};
|
746
|
+
|
624
747
|
$.fn.transition.settings = {
|
625
748
|
|
626
749
|
// module info
|