less-rails-semantic_ui 1.7.3.0 → 1.8.0.0
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.
- checksums.yaml +4 -4
- data/assets/javascripts/semantic_ui/definitions/behaviors/api.js +22 -11
- data/assets/javascripts/semantic_ui/definitions/behaviors/form.js +259 -43
- data/assets/javascripts/semantic_ui/definitions/modules/checkbox.js +1 -1
- data/assets/javascripts/semantic_ui/definitions/modules/dropdown.js +204 -105
- data/assets/javascripts/semantic_ui/definitions/modules/popup.js +4 -3
- data/assets/javascripts/semantic_ui/definitions/modules/search.js +310 -152
- data/assets/javascripts/semantic_ui/definitions/modules/sidebar.js +18 -7
- data/assets/javascripts/semantic_ui/definitions/modules/sticky.js +1 -1
- data/assets/javascripts/semantic_ui/definitions/modules/transition.js +35 -23
- data/assets/stylesheets/semantic_ui/definitions/collections/form.less +2 -2
- data/assets/stylesheets/semantic_ui/definitions/collections/grid.less +30 -0
- data/assets/stylesheets/semantic_ui/definitions/collections/menu.less +13 -11
- data/assets/stylesheets/semantic_ui/definitions/elements/button.less +16 -2
- data/assets/stylesheets/semantic_ui/definitions/elements/header.less +70 -31
- data/assets/stylesheets/semantic_ui/definitions/elements/label.less +3 -3
- data/assets/stylesheets/semantic_ui/definitions/elements/list.less +8 -18
- data/assets/stylesheets/semantic_ui/definitions/modules/checkbox.less +54 -27
- data/assets/stylesheets/semantic_ui/definitions/modules/modal.less +2 -1
- data/assets/stylesheets/semantic_ui/definitions/modules/popup.less +5 -0
- data/assets/stylesheets/semantic_ui/definitions/modules/sidebar.less +1 -0
- data/assets/stylesheets/semantic_ui/definitions/modules/transition.less +0 -5
- data/assets/stylesheets/semantic_ui/themes/default/collections/menu.variables +7 -5
- data/assets/stylesheets/semantic_ui/themes/default/collections/table.variables +1 -1
- data/assets/stylesheets/semantic_ui/themes/default/elements/button.variables +2 -2
- data/assets/stylesheets/semantic_ui/themes/default/elements/header.variables +20 -9
- data/assets/stylesheets/semantic_ui/themes/default/elements/label.variables +5 -3
- data/assets/stylesheets/semantic_ui/themes/default/globals/site.variables +1 -0
- data/assets/stylesheets/semantic_ui/themes/default/modules/accordion.variables +5 -6
- data/assets/stylesheets/semantic_ui/themes/default/modules/modal.variables +3 -2
- data/assets/stylesheets/semantic_ui/themes/default/modules/popup.variables +3 -3
- data/assets/stylesheets/semantic_ui/themes/default/modules/transition.overrides +690 -222
- data/assets/stylesheets/semantic_ui/themes/default/modules/transition.variables +1 -1
- data/lib/less/rails/semantic_ui/version.rb +1 -1
- metadata +3 -3
@@ -73,7 +73,14 @@ $.fn.dropdown = function(parameters) {
|
|
73
73
|
|
74
74
|
initialize: function() {
|
75
75
|
module.debug('Initializing dropdown', settings);
|
76
|
-
|
76
|
+
|
77
|
+
if( module.is.alreadySetup() ) {
|
78
|
+
module.error(error.alreadySetup);
|
79
|
+
}
|
80
|
+
else {
|
81
|
+
module.setup.layout();
|
82
|
+
}
|
83
|
+
|
77
84
|
module.save.defaults();
|
78
85
|
module.set.selected();
|
79
86
|
|
@@ -104,6 +111,9 @@ $.fn.dropdown = function(parameters) {
|
|
104
111
|
.off(eventNamespace)
|
105
112
|
.removeData(moduleNamespace)
|
106
113
|
;
|
114
|
+
$menu
|
115
|
+
.off(eventNamespace)
|
116
|
+
;
|
107
117
|
$document
|
108
118
|
.off(elementNamespace)
|
109
119
|
;
|
@@ -112,8 +122,14 @@ $.fn.dropdown = function(parameters) {
|
|
112
122
|
observeChanges: function() {
|
113
123
|
if('MutationObserver' in window) {
|
114
124
|
observer = new MutationObserver(function(mutations) {
|
115
|
-
module.
|
116
|
-
|
125
|
+
if( module.is.selectMutation(mutations) ) {
|
126
|
+
module.debug('<select> modified, recreating menu');
|
127
|
+
module.setup.select();
|
128
|
+
}
|
129
|
+
else {
|
130
|
+
module.debug('DOM tree modified, updating selector cache');
|
131
|
+
module.refresh();
|
132
|
+
}
|
117
133
|
});
|
118
134
|
observer.observe(element, {
|
119
135
|
childList : true,
|
@@ -162,24 +178,27 @@ $.fn.dropdown = function(parameters) {
|
|
162
178
|
},
|
163
179
|
select: function() {
|
164
180
|
var
|
165
|
-
selectValues
|
181
|
+
selectValues = module.get.selectValues()
|
166
182
|
;
|
167
183
|
module.debug('Dropdown initialized on a select', selectValues);
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
184
|
+
if( $module.is('select') ) {
|
185
|
+
$input = $module;
|
186
|
+
}
|
187
|
+
// see if select is placed correctly already
|
188
|
+
if($input.parent(selector.dropdown).length > 0) {
|
189
|
+
module.debug('UI dropdown already exists. Creating dropdown menu only');
|
172
190
|
$module = $input.closest(selector.dropdown);
|
173
|
-
|
174
|
-
|
191
|
+
$menu = $module.children(selector.menu);
|
192
|
+
if($menu.length === 0) {
|
193
|
+
$menu = $('<div />')
|
175
194
|
.addClass(className.menu)
|
176
|
-
.html( settings.templates.menu( selectValues ))
|
177
195
|
.appendTo($module)
|
178
196
|
;
|
179
197
|
}
|
198
|
+
$menu.html( settings.templates.menu( selectValues ));
|
180
199
|
}
|
181
200
|
else {
|
182
|
-
module.debug('Creating entire dropdown from
|
201
|
+
module.debug('Creating entire dropdown from select');
|
183
202
|
$module = $('<div />')
|
184
203
|
.attr('class', $input.attr('class') )
|
185
204
|
.addClass(className.selection)
|
@@ -197,9 +216,14 @@ $.fn.dropdown = function(parameters) {
|
|
197
216
|
},
|
198
217
|
|
199
218
|
refresh: function() {
|
219
|
+
module.verbose('Refreshing selector cache');
|
200
220
|
$text = $module.find(selector.text);
|
201
221
|
$search = $module.find(selector.search);
|
202
222
|
$input = $module.find(selector.input);
|
223
|
+
$combo = ($module.prev().find(selector.text).length > 0)
|
224
|
+
? $module.prev().find(selector.text)
|
225
|
+
: $module.prev()
|
226
|
+
;
|
203
227
|
$menu = $module.children(selector.menu);
|
204
228
|
$item = $menu.find(selector.item);
|
205
229
|
},
|
@@ -219,7 +243,10 @@ $.fn.dropdown = function(parameters) {
|
|
219
243
|
? callback
|
220
244
|
: function(){}
|
221
245
|
;
|
222
|
-
if( module.
|
246
|
+
if( module.is.searchSelection() && module.is.allFiltered() ) {
|
247
|
+
return;
|
248
|
+
}
|
249
|
+
if( module.can.show() && !module.is.active() ) {
|
223
250
|
module.debug('Showing dropdown');
|
224
251
|
module.animate.show(function() {
|
225
252
|
if( module.can.click() ) {
|
@@ -291,7 +318,6 @@ $.fn.dropdown = function(parameters) {
|
|
291
318
|
},
|
292
319
|
mouseEvents: function() {
|
293
320
|
module.verbose('Mouse detected binding mouse events');
|
294
|
-
|
295
321
|
if( module.is.searchSelection() ) {
|
296
322
|
$module
|
297
323
|
.on('mousedown' + eventNamespace, selector.menu, module.event.menu.activate)
|
@@ -465,77 +491,115 @@ $.fn.dropdown = function(parameters) {
|
|
465
491
|
},
|
466
492
|
keydown: function(event) {
|
467
493
|
var
|
468
|
-
$
|
469
|
-
$
|
494
|
+
$currentlySelected = $item.not(className.filtered).filter('.' + className.selected).eq(0),
|
495
|
+
$activeItem = $menu.children('.' + className.active).eq(0),
|
496
|
+
$selectedItem = ($currentlySelected.length > 0)
|
497
|
+
? $currentlySelected
|
498
|
+
: $activeItem,
|
499
|
+
$visibleItems = ($selectedItem.length > 0)
|
500
|
+
? $selectedItem.siblings(':not(.' + className.filtered +')').andSelf()
|
501
|
+
: $menu.children(':not(.' + className.filtered +')'),
|
502
|
+
$subMenu = $selectedItem.children(selector.menu),
|
503
|
+
$parentMenu = $selectedItem.closest(selector.menu),
|
504
|
+
isSubMenuItem = $parentMenu[0] !== $menu[0],
|
505
|
+
inVisibleMenu = $parentMenu.is(':visible'),
|
470
506
|
pressedKey = event.which,
|
471
507
|
keys = {
|
472
|
-
enter
|
473
|
-
escape
|
474
|
-
|
475
|
-
|
508
|
+
enter : 13,
|
509
|
+
escape : 27,
|
510
|
+
leftArrow : 37,
|
511
|
+
upArrow : 38,
|
512
|
+
rightArrow : 39,
|
513
|
+
downArrow : 40
|
476
514
|
},
|
477
|
-
|
478
|
-
|
479
|
-
|
515
|
+
hasSubMenu = ($subMenu.length> 0),
|
516
|
+
hasSelectedItem = ($selectedItem.length > 0),
|
517
|
+
lastVisibleIndex = ($visibleItems.size() - 1),
|
480
518
|
$nextItem,
|
481
519
|
newIndex
|
482
520
|
;
|
483
|
-
//
|
484
|
-
if(!hasSelectedItem) {
|
485
|
-
$selectedItem = $item.filter('.' + className.active).eq(0);
|
486
|
-
hasSelectedItem = ($selectedItem.length > 0);
|
487
|
-
}
|
488
|
-
// close shortcuts
|
489
|
-
if(pressedKey == keys.escape) {
|
490
|
-
module.verbose('Escape key pressed, closing dropdown');
|
491
|
-
module.hide();
|
492
|
-
}
|
493
|
-
// open menu
|
494
|
-
if(pressedKey == keys.downArrow) {
|
495
|
-
module.verbose('Down key pressed, showing dropdown');
|
496
|
-
module.show();
|
497
|
-
}
|
498
|
-
// result shortcuts
|
521
|
+
// visible menu keyboard shortcuts
|
499
522
|
if(module.is.visible()) {
|
523
|
+
// enter (select or sub-menu)
|
500
524
|
if(pressedKey == keys.enter && hasSelectedItem) {
|
501
|
-
|
502
|
-
|
525
|
+
if(hasSubMenu && !settings.allowCategorySelection) {
|
526
|
+
module.verbose('Pressed enter on unselectable category, opening sub menu');
|
527
|
+
pressedKey = keys.rightArrow;
|
528
|
+
}
|
529
|
+
else {
|
530
|
+
module.verbose('Enter key pressed, choosing selected item');
|
531
|
+
module.event.item.click.call($selectedItem, event);
|
532
|
+
}
|
533
|
+
}
|
534
|
+
// left arrow (hide sub-menu)
|
535
|
+
if(pressedKey == keys.leftArrow) {
|
536
|
+
if(isSubMenuItem) {
|
537
|
+
module.verbose('Left key pressed, closing sub-menu');
|
538
|
+
module.animate.hide(false, $parentMenu);
|
539
|
+
$selectedItem
|
540
|
+
.removeClass(className.selected)
|
541
|
+
;
|
542
|
+
$parentMenu
|
543
|
+
.closest(selector.item)
|
544
|
+
.addClass(className.selected)
|
545
|
+
;
|
546
|
+
}
|
547
|
+
event.preventDefault();
|
548
|
+
}
|
549
|
+
// right arrow (show sub-menu)
|
550
|
+
if(pressedKey == keys.rightArrow) {
|
551
|
+
if(hasSubMenu) {
|
552
|
+
module.verbose('Right key pressed, opening sub-menu');
|
553
|
+
module.animate.show(false, $subMenu);
|
554
|
+
$selectedItem
|
555
|
+
.removeClass(className.selected)
|
556
|
+
;
|
557
|
+
$subMenu
|
558
|
+
.find(selector.item).eq(0)
|
559
|
+
.addClass(className.selected)
|
560
|
+
;
|
561
|
+
}
|
503
562
|
event.preventDefault();
|
504
|
-
return false;
|
505
563
|
}
|
506
|
-
|
507
|
-
|
508
|
-
|
564
|
+
// up arrow (traverse menu up)
|
565
|
+
if(pressedKey == keys.upArrow) {
|
566
|
+
$nextItem = (hasSelectedItem && inVisibleMenu)
|
567
|
+
? $selectedItem.prevAll(selector.item + ':not(.' + className.filtered + ')').eq(0)
|
568
|
+
: $item.eq(0)
|
569
|
+
;
|
570
|
+
if($visibleItems.index( $nextItem ) < 0) {
|
571
|
+
module.verbose('Up key pressed but reached top of current menu');
|
572
|
+
return;
|
509
573
|
}
|
510
574
|
else {
|
511
|
-
$nextItem = $selectedItem.prevAll(selector.item + ':not(.' + className.filtered + ')').eq(0);
|
512
|
-
}
|
513
|
-
if(currentIndex !== 0) {
|
514
575
|
module.verbose('Up key pressed, changing active item');
|
515
|
-
$
|
516
|
-
.removeClass(
|
576
|
+
$selectedItem
|
577
|
+
.removeClass(className.selected)
|
517
578
|
;
|
518
579
|
$nextItem
|
519
|
-
.addClass(
|
580
|
+
.addClass(className.selected)
|
520
581
|
;
|
521
582
|
module.set.scrollPosition($nextItem);
|
522
583
|
}
|
523
584
|
event.preventDefault();
|
524
585
|
}
|
525
|
-
|
526
|
-
|
527
|
-
|
586
|
+
// down arrow (traverse menu down)
|
587
|
+
if(pressedKey == keys.downArrow) {
|
588
|
+
$nextItem = (hasSelectedItem && inVisibleMenu)
|
589
|
+
? $nextItem = $selectedItem.nextAll(selector.item + ':not(.' + className.filtered + ')').eq(0)
|
590
|
+
: $item.eq(0)
|
591
|
+
;
|
592
|
+
if($nextItem.length === 0) {
|
593
|
+
module.verbose('Down key pressed but reached bottom of current menu');
|
594
|
+
return;
|
528
595
|
}
|
529
596
|
else {
|
530
|
-
$nextItem = $selectedItem.nextAll(selector.item + ':not(.' + className.filtered + ')').eq(0);
|
531
|
-
}
|
532
|
-
if(currentIndex + 1 < $visibleItems.length ) {
|
533
597
|
module.verbose('Down key pressed, changing active item');
|
534
598
|
$item
|
535
|
-
.removeClass(
|
599
|
+
.removeClass(className.selected)
|
536
600
|
;
|
537
601
|
$nextItem
|
538
|
-
.addClass(
|
602
|
+
.addClass(className.selected)
|
539
603
|
;
|
540
604
|
module.set.scrollPosition($nextItem);
|
541
605
|
}
|
@@ -543,7 +607,19 @@ $.fn.dropdown = function(parameters) {
|
|
543
607
|
}
|
544
608
|
}
|
545
609
|
else {
|
610
|
+
// enter (open menu)
|
546
611
|
if(pressedKey == keys.enter) {
|
612
|
+
module.verbose('Enter key pressed, showing dropdown');
|
613
|
+
module.show();
|
614
|
+
}
|
615
|
+
// escape (close menu)
|
616
|
+
if(pressedKey == keys.escape) {
|
617
|
+
module.verbose('Escape key pressed, closing dropdown');
|
618
|
+
module.hide();
|
619
|
+
}
|
620
|
+
// down arrow (open menu)
|
621
|
+
if(pressedKey == keys.downArrow) {
|
622
|
+
module.verbose('Down key pressed, showing dropdown');
|
547
623
|
module.show();
|
548
624
|
}
|
549
625
|
}
|
@@ -581,35 +657,33 @@ $.fn.dropdown = function(parameters) {
|
|
581
657
|
item: {
|
582
658
|
mouseenter: function(event) {
|
583
659
|
var
|
584
|
-
$
|
585
|
-
$otherMenus
|
660
|
+
$subMenu = $(this).children(selector.menu),
|
661
|
+
$otherMenus = $(this).siblings(selector.item).children(selector.menu)
|
586
662
|
;
|
587
|
-
if( $
|
663
|
+
if( $subMenu.length > 0 ) {
|
588
664
|
clearTimeout(module.itemTimer);
|
589
665
|
module.itemTimer = setTimeout(function() {
|
666
|
+
module.verbose('Showing sub-menu', $subMenu);
|
590
667
|
$.each($otherMenus, function() {
|
591
668
|
module.animate.hide(false, $(this));
|
592
669
|
});
|
593
|
-
module.
|
594
|
-
module.animate.show(false, $currentMenu);
|
670
|
+
module.animate.show(false, $subMenu);
|
595
671
|
}, settings.delay.show);
|
596
672
|
event.preventDefault();
|
597
673
|
}
|
598
674
|
},
|
599
|
-
|
600
675
|
mouseleave: function(event) {
|
601
676
|
var
|
602
|
-
$
|
677
|
+
$subMenu = $(this).children(selector.menu)
|
603
678
|
;
|
604
|
-
if($
|
679
|
+
if($subMenu.length > 0) {
|
605
680
|
clearTimeout(module.itemTimer);
|
606
681
|
module.itemTimer = setTimeout(function() {
|
607
|
-
module.verbose('Hiding sub-menu', $
|
608
|
-
module.animate.hide(false, $
|
682
|
+
module.verbose('Hiding sub-menu', $subMenu);
|
683
|
+
module.animate.hide(false, $subMenu);
|
609
684
|
}, settings.delay.hide);
|
610
685
|
}
|
611
686
|
},
|
612
|
-
|
613
687
|
click: function (event) {
|
614
688
|
var
|
615
689
|
$choice = $(this),
|
@@ -621,23 +695,17 @@ $.fn.dropdown = function(parameters) {
|
|
621
695
|
module.remove.searchTerm();
|
622
696
|
module.determine.selectAction(text, value);
|
623
697
|
},
|
624
|
-
|
625
|
-
|
698
|
+
hasSubMenu = ($subMenu.length > 0),
|
699
|
+
isBubbledEvent = ($subMenu.find($target).length > 0)
|
626
700
|
;
|
627
|
-
if(
|
628
|
-
return false;
|
629
|
-
}
|
630
|
-
if(!openingSubMenu || settings.allowCategorySelection) {
|
701
|
+
if(!isBubbledEvent && (!hasSubMenu || settings.allowCategorySelection)) {
|
631
702
|
callback();
|
632
703
|
}
|
633
704
|
}
|
634
|
-
|
635
705
|
},
|
636
|
-
|
637
706
|
resetStyle: function() {
|
638
707
|
$(this).removeAttr('style');
|
639
708
|
}
|
640
|
-
|
641
709
|
},
|
642
710
|
|
643
711
|
determine: {
|
@@ -691,31 +759,23 @@ $.fn.dropdown = function(parameters) {
|
|
691
759
|
|
692
760
|
nothing: function() {},
|
693
761
|
|
694
|
-
|
695
|
-
module.hide(function() {
|
696
|
-
module.remove.filteredItem();
|
697
|
-
});
|
698
|
-
},
|
699
|
-
|
700
|
-
select: function(text, value) {
|
762
|
+
activate: function(text, value) {
|
701
763
|
value = (value !== undefined)
|
702
764
|
? value
|
703
765
|
: text
|
704
766
|
;
|
705
767
|
module.set.selected(value);
|
706
|
-
module.set.value(value);
|
707
768
|
module.hide(function() {
|
708
769
|
module.remove.filteredItem();
|
709
770
|
});
|
710
771
|
},
|
711
772
|
|
712
|
-
|
773
|
+
select: function(text, value) {
|
713
774
|
value = (value !== undefined)
|
714
775
|
? value
|
715
776
|
: text
|
716
777
|
;
|
717
778
|
module.set.selected(value);
|
718
|
-
module.set.value(value);
|
719
779
|
module.hide(function() {
|
720
780
|
module.remove.filteredItem();
|
721
781
|
});
|
@@ -727,7 +787,12 @@ $.fn.dropdown = function(parameters) {
|
|
727
787
|
: text
|
728
788
|
;
|
729
789
|
module.set.selected(value);
|
730
|
-
module.
|
790
|
+
module.hide(function() {
|
791
|
+
module.remove.filteredItem();
|
792
|
+
});
|
793
|
+
},
|
794
|
+
|
795
|
+
hide: function() {
|
731
796
|
module.hide(function() {
|
732
797
|
module.remove.filteredItem();
|
733
798
|
});
|
@@ -766,7 +831,7 @@ $.fn.dropdown = function(parameters) {
|
|
766
831
|
}
|
767
832
|
},
|
768
833
|
choiceValue: function($choice, choiceText) {
|
769
|
-
choiceText = choiceText || module.get.choiceText($
|
834
|
+
choiceText = choiceText || module.get.choiceText($choice);
|
770
835
|
return ($choice.data(metadata.value) !== undefined)
|
771
836
|
? $choice.data(metadata.value)
|
772
837
|
: (typeof choiceText === 'string')
|
@@ -900,7 +965,7 @@ $.fn.dropdown = function(parameters) {
|
|
900
965
|
;
|
901
966
|
module.debug('Restoring default text', defaultText);
|
902
967
|
module.set.text(defaultText);
|
903
|
-
$text.addClass(
|
968
|
+
$text.addClass(className.placeholder);
|
904
969
|
},
|
905
970
|
defaultValue: function() {
|
906
971
|
var
|
@@ -910,7 +975,6 @@ $.fn.dropdown = function(parameters) {
|
|
910
975
|
module.debug('Restoring default value', defaultValue);
|
911
976
|
if(defaultValue.length) {
|
912
977
|
module.set.selected(defaultValue);
|
913
|
-
module.set.value(defaultValue);
|
914
978
|
}
|
915
979
|
else {
|
916
980
|
module.remove.activeItem();
|
@@ -923,6 +987,7 @@ $.fn.dropdown = function(parameters) {
|
|
923
987
|
save: {
|
924
988
|
defaults: function() {
|
925
989
|
module.save.defaultText();
|
990
|
+
module.save.placeholderText();
|
926
991
|
module.save.defaultValue();
|
927
992
|
},
|
928
993
|
defaultValue: function() {
|
@@ -930,9 +995,25 @@ $.fn.dropdown = function(parameters) {
|
|
930
995
|
},
|
931
996
|
defaultText: function() {
|
932
997
|
$module.data(metadata.defaultText, $text.text() );
|
998
|
+
},
|
999
|
+
placeholderText: function() {
|
1000
|
+
if($text.hasClass(className.placeholder)) {
|
1001
|
+
$module.data(metadata.placeholderText, $text.text());
|
1002
|
+
}
|
933
1003
|
}
|
934
1004
|
},
|
935
1005
|
|
1006
|
+
clear: function() {
|
1007
|
+
var
|
1008
|
+
placeholderText = $module.data(metadata.placeholderText)
|
1009
|
+
;
|
1010
|
+
module.set.text(placeholderText);
|
1011
|
+
module.set.value('');
|
1012
|
+
module.remove.activeItem();
|
1013
|
+
module.remove.selectedItem();
|
1014
|
+
$text.addClass(className.placeholder);
|
1015
|
+
},
|
1016
|
+
|
936
1017
|
set: {
|
937
1018
|
filtered: function() {
|
938
1019
|
var
|
@@ -1060,20 +1141,21 @@ $.fn.dropdown = function(parameters) {
|
|
1060
1141
|
selected: function(value) {
|
1061
1142
|
var
|
1062
1143
|
$selectedItem = module.get.item(value),
|
1063
|
-
selectedText
|
1144
|
+
selectedText,
|
1145
|
+
selectedValue
|
1064
1146
|
;
|
1065
1147
|
if($selectedItem) {
|
1066
1148
|
module.debug('Setting selected menu item to', $selectedItem);
|
1067
|
-
|
1068
1149
|
module.remove.activeItem();
|
1069
1150
|
module.remove.selectedItem();
|
1070
1151
|
$selectedItem
|
1071
1152
|
.addClass(className.active)
|
1072
1153
|
.addClass(className.selected)
|
1073
1154
|
;
|
1074
|
-
|
1075
|
-
|
1155
|
+
selectedText = module.get.choiceText($selectedItem);
|
1156
|
+
selectedValue = module.get.choiceValue($selectedItem, selectedText);
|
1076
1157
|
module.set.text(selectedText);
|
1158
|
+
module.set.value(selectedValue);
|
1077
1159
|
settings.onChange.call(element, value, selectedText, $selectedItem);
|
1078
1160
|
}
|
1079
1161
|
}
|
@@ -1124,6 +1206,9 @@ $.fn.dropdown = function(parameters) {
|
|
1124
1206
|
active: function() {
|
1125
1207
|
return $module.hasClass(className.active);
|
1126
1208
|
},
|
1209
|
+
alreadySetup: function() {
|
1210
|
+
return ($module.is('select') && $module.parent(selector.dropdown).length > 0);
|
1211
|
+
},
|
1127
1212
|
animating: function($subMenu) {
|
1128
1213
|
return ($subMenu)
|
1129
1214
|
? $subMenu.is(':animated') || $subMenu.transition && $subMenu.transition('is animating')
|
@@ -1139,6 +1224,18 @@ $.fn.dropdown = function(parameters) {
|
|
1139
1224
|
: $menu.is(':hidden')
|
1140
1225
|
;
|
1141
1226
|
},
|
1227
|
+
selectMutation: function(mutations) {
|
1228
|
+
var
|
1229
|
+
selectChanged = false
|
1230
|
+
;
|
1231
|
+
$.each(mutations, function(index, mutation) {
|
1232
|
+
if(mutation.target && $(mutation.target).is('select')) {
|
1233
|
+
selectChanged = true;
|
1234
|
+
return true;
|
1235
|
+
}
|
1236
|
+
});
|
1237
|
+
return selectChanged;
|
1238
|
+
},
|
1142
1239
|
search: function() {
|
1143
1240
|
return $module.hasClass(className.search);
|
1144
1241
|
},
|
@@ -1196,8 +1293,8 @@ $.fn.dropdown = function(parameters) {
|
|
1196
1293
|
? 'slide up'
|
1197
1294
|
: 'slide down'
|
1198
1295
|
;
|
1296
|
+
module.verbose('Automatically determining animation based on animation direction', settings.transition);
|
1199
1297
|
}
|
1200
|
-
|
1201
1298
|
if(settings.transition == 'none') {
|
1202
1299
|
callback.call(element);
|
1203
1300
|
}
|
@@ -1571,16 +1668,18 @@ $.fn.dropdown.settings = {
|
|
1571
1668
|
namespace : 'dropdown',
|
1572
1669
|
|
1573
1670
|
error : {
|
1574
|
-
action
|
1575
|
-
|
1576
|
-
|
1671
|
+
action : 'You called a dropdown action that was not defined',
|
1672
|
+
alreadySetup : 'Once a select has been initialized behaviors must be called on the created ui dropdown',
|
1673
|
+
method : 'The method you called is not defined.',
|
1674
|
+
transition : 'The requested transition was not found'
|
1577
1675
|
},
|
1578
1676
|
|
1579
1677
|
metadata: {
|
1580
|
-
defaultText
|
1581
|
-
defaultValue
|
1582
|
-
|
1583
|
-
|
1678
|
+
defaultText : 'defaultText',
|
1679
|
+
defaultValue : 'defaultValue',
|
1680
|
+
placeholderText : 'placeholderText',
|
1681
|
+
text : 'text',
|
1682
|
+
value : 'value'
|
1584
1683
|
},
|
1585
1684
|
|
1586
1685
|
selector : {
|