assets/javascripts/semantic_ui/definitions/modules/dropdown.js in less-rails-semantic_ui-1.10.4.0 vs assets/javascripts/semantic_ui/definitions/modules/dropdown.js in less-rails-semantic_ui-1.11.1.0

- old
+ new

@@ -73,29 +73,29 @@ initialize: function() { module.debug('Initializing dropdown', settings); if( module.is.alreadySetup() ) { - module.error(error.alreadySetup); + module.setup.reference(); } else { module.setup.layout(); - } - module.save.defaults(); - module.set.selected(); + module.save.defaults(); + module.set.selected(); - module.create.id(); + module.create.id(); - if(hasTouch) { - module.bind.touchEvents(); - } - module.bind.mouseEvents(); - module.bind.keyboardEvents(); + if(hasTouch) { + module.bind.touchEvents(); + } + module.bind.mouseEvents(); + module.bind.keyboardEvents(); - module.observeChanges(); - module.instantiate(); + module.observeChanges(); + module.instantiate(); + } }, instantiate: function() { module.verbose('Storing instance of dropdown', module); instance = module; @@ -139,13 +139,13 @@ } }, create: { id: function() { - module.verbose('Creating unique id for element'); - id = module.get.uniqueID(); + id = (Math.random().toString(16) + '000000000').substr(2,8); elementNamespace = '.' + id; + module.verbose('Creating unique id for element', id); } }, search: function() { var @@ -159,11 +159,10 @@ module.show(); } }, setup: { - layout: function() { if( $module.is('select') ) { module.setup.select(); } if( module.is.search() && !module.is.searchable() ) { @@ -210,10 +209,25 @@ .removeAttr('class') .prependTo($module) ; } module.refresh(); + }, + reference: function() { + var + index = $allModules.index($module), + $firstModules, + $lastModules + ; + module.debug('Dropdown behavior was called on select, replacing with closest dropdown'); + // replace module reference + $module = $module.parent(selector.dropdown); + module.refresh(); + // adjust all modules + $firstModules = $allModules.slice(0, index); + $lastModules = $allModules.slice(index + 1); + $allModules = $firstModules.add($module).add($lastModules); } }, refresh: function() { module.verbose('Refreshing selector cache'); @@ -454,10 +468,11 @@ : $activeItem, hasSelected = ($selectedItem.size() > 0) ; if(hasSelected) { module.event.item.click.call($selectedItem); + module.remove.filteredItem(); } }, event: { // prevents focus callback from occuring on mousedown @@ -820,10 +835,13 @@ } }, get: { + id: function() { + return id; + }, text: function() { return $text.text(); }, value: function() { return ($input.length > 0) @@ -967,13 +985,10 @@ } else { value = module.get.text(); } return $selectedItem || false; - }, - uniqueID: function() { - return (Math.random().toString(16) + '000000000').substr(2,8); } }, restore: { defaults: function() { @@ -1644,13 +1659,12 @@ } module.initialize(); } }) ; - return (returnedValue !== undefined) ? returnedValue - : this + : $allModules ; }; $.fn.dropdown.settings = {