{"version":3,"file":"scripts/chunks/plugins-2ceb4d72.a5223e49b0b0668d0b4a.js","mappings":"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","sources":["webpack://disp0001/./src/plugins/semantic/dropdown.js"],"sourcesContent":["/*!\r\n * # Semantic UI 2.4.2 - Dropdown\r\n * http://github.com/semantic-org/semantic-ui/\r\n *\r\n *\r\n * Released under the MIT license\r\n * http://opensource.org/licenses/MIT\r\n *\r\n */\r\n\r\n;(function ($, window, document, undefined) {\r\n\r\n'use strict';\r\n\r\nwindow = (typeof window != 'undefined' && window.Math == Math)\r\n ? window\r\n : (typeof self != 'undefined' && self.Math == Math)\r\n ? self\r\n : Function('return this')()\r\n;\r\n\r\n$.fn.dropdown = function(parameters) {\r\n var\r\n $allModules = $(this),\r\n $document = $(document),\r\n\r\n moduleSelector = $allModules.selector || '',\r\n\r\n hasTouch = ('ontouchstart' in document.documentElement),\r\n time = new Date().getTime(),\r\n performance = [],\r\n\r\n query = arguments[0],\r\n methodInvoked = (typeof query == 'string'),\r\n queryArguments = [].slice.call(arguments, 1),\r\n returnedValue\r\n ;\r\n\r\n $allModules\r\n .each(function(elementIndex) {\r\n var\r\n settings = ( $.isPlainObject(parameters) )\r\n ? $.extend(true, {}, $.fn.dropdown.settings, parameters)\r\n : $.extend({}, $.fn.dropdown.settings),\r\n\r\n className = settings.className,\r\n message = settings.message,\r\n fields = settings.fields,\r\n keys = settings.keys,\r\n metadata = settings.metadata,\r\n namespace = settings.namespace,\r\n regExp = settings.regExp,\r\n selector = settings.selector,\r\n error = settings.error,\r\n templates = settings.templates,\r\n\r\n eventNamespace = '.' + namespace,\r\n moduleNamespace = 'module-' + namespace,\r\n\r\n $module = $(this),\r\n $context = $(settings.context),\r\n $text = $module.find(selector.text),\r\n $search = $module.find(selector.search),\r\n $sizer = $module.find(selector.sizer),\r\n $input = $module.find(selector.input),\r\n $icon = $module.find(selector.icon),\r\n\r\n $combo = ($module.prev().find(selector.text).length > 0)\r\n ? $module.prev().find(selector.text)\r\n : $module.prev(),\r\n\r\n $menu = $module.children(selector.menu),\r\n $item = $menu.find(selector.item),\r\n\r\n activated = false,\r\n itemActivated = false,\r\n internalChange = false,\r\n element = this,\r\n instance = $module.data(moduleNamespace),\r\n\r\n initialLoad,\r\n pageLostFocus,\r\n willRefocus,\r\n elementNamespace,\r\n id,\r\n selectObserver,\r\n menuObserver,\r\n module\r\n ;\r\n\r\n module = {\r\n\r\n initialize: function() {\r\n module.debug('Initializing dropdown', settings);\r\n\r\n if( module.is.alreadySetup() ) {\r\n module.setup.reference();\r\n }\r\n else {\r\n\r\n module.setup.layout();\r\n\r\n if(settings.values) {\r\n module.change.values(settings.values);\r\n }\r\n\r\n module.refreshData();\r\n\r\n module.save.defaults();\r\n module.restore.selected();\r\n\r\n module.create.id();\r\n module.bind.events();\r\n\r\n module.observeChanges();\r\n module.instantiate();\r\n }\r\n\r\n },\r\n\r\n instantiate: function() {\r\n module.verbose('Storing instance of dropdown', module);\r\n instance = module;\r\n $module\r\n .data(moduleNamespace, module)\r\n ;\r\n },\r\n\r\n destroy: function() {\r\n module.verbose('Destroying previous dropdown', $module);\r\n module.remove.tabbable();\r\n $module\r\n .off(eventNamespace)\r\n .removeData(moduleNamespace)\r\n ;\r\n $menu\r\n .off(eventNamespace)\r\n ;\r\n $document\r\n .off(elementNamespace)\r\n ;\r\n module.disconnect.menuObserver();\r\n module.disconnect.selectObserver();\r\n },\r\n\r\n observeChanges: function() {\r\n if('MutationObserver' in window) {\r\n selectObserver = new MutationObserver(module.event.select.mutation);\r\n menuObserver = new MutationObserver(module.event.menu.mutation);\r\n module.debug('Setting up mutation observer', selectObserver, menuObserver);\r\n module.observe.select();\r\n module.observe.menu();\r\n }\r\n },\r\n\r\n disconnect: {\r\n menuObserver: function() {\r\n if(menuObserver) {\r\n menuObserver.disconnect();\r\n }\r\n },\r\n selectObserver: function() {\r\n if(selectObserver) {\r\n selectObserver.disconnect();\r\n }\r\n }\r\n },\r\n observe: {\r\n select: function() {\r\n if(module.has.input()) {\r\n selectObserver.observe($module[0], {\r\n childList : true,\r\n subtree : true\r\n });\r\n }\r\n },\r\n menu: function() {\r\n if(module.has.menu()) {\r\n menuObserver.observe($menu[0], {\r\n childList : true,\r\n subtree : true\r\n });\r\n }\r\n }\r\n },\r\n\r\n create: {\r\n id: function() {\r\n id = (Math.random().toString(16) + '000000000').substr(2, 8);\r\n elementNamespace = '.' + id;\r\n module.verbose('Creating unique id for element', id);\r\n },\r\n userChoice: function(values) {\r\n var\r\n $userChoices,\r\n $userChoice,\r\n isUserValue,\r\n html\r\n ;\r\n values = values || module.get.userValues();\r\n if(!values) {\r\n return false;\r\n }\r\n values = $.isArray(values)\r\n ? values\r\n : [values]\r\n ;\r\n $.each(values, function(index, value) {\r\n if(module.get.item(value) === false) {\r\n html = settings.templates.addition( module.add.variables(message.addResult, value) );\r\n $userChoice = $('
')\r\n .html(html)\r\n .attr('data-' + metadata.value, value)\r\n .attr('data-' + metadata.text, value)\r\n .addClass(className.addition)\r\n .addClass(className.item)\r\n ;\r\n if(settings.hideAdditions) {\r\n $userChoice.addClass(className.hidden);\r\n }\r\n $userChoices = ($userChoices === undefined)\r\n ? $userChoice\r\n : $userChoices.add($userChoice)\r\n ;\r\n module.verbose('Creating user choices for value', value, $userChoice);\r\n }\r\n });\r\n return $userChoices;\r\n },\r\n userLabels: function(value) {\r\n var\r\n userValues = module.get.userValues()\r\n ;\r\n if(userValues) {\r\n module.debug('Adding user labels', userValues);\r\n $.each(userValues, function(index, value) {\r\n module.verbose('Adding custom user value');\r\n module.add.label(value, value);\r\n });\r\n }\r\n },\r\n menu: function() {\r\n $menu = $('
')\r\n .addClass(className.menu)\r\n .appendTo($module)\r\n ;\r\n },\r\n sizer: function() {\r\n $sizer = $('')\r\n .addClass(className.sizer)\r\n .insertAfter($search)\r\n ;\r\n }\r\n },\r\n\r\n search: function(query) {\r\n query = (query !== undefined)\r\n ? query\r\n : module.get.query()\r\n ;\r\n module.verbose('Searching for query', query);\r\n if(module.has.minCharacters(query)) {\r\n module.filter(query);\r\n }\r\n else {\r\n module.hide();\r\n }\r\n },\r\n\r\n select: {\r\n firstUnfiltered: function() {\r\n module.verbose('Selecting first non-filtered element');\r\n module.remove.selectedItem();\r\n $item\r\n .not(selector.unselectable)\r\n .not(selector.addition + selector.hidden)\r\n .eq(0)\r\n .addClass(className.selected)\r\n ;\r\n },\r\n nextAvailable: function($selected) {\r\n $selected = $selected.eq(0);\r\n var\r\n $nextAvailable = $selected.nextAll(selector.item).not(selector.unselectable).eq(0),\r\n $prevAvailable = $selected.prevAll(selector.item).not(selector.unselectable).eq(0),\r\n hasNext = ($nextAvailable.length > 0)\r\n ;\r\n if(hasNext) {\r\n module.verbose('Moving selection to', $nextAvailable);\r\n $nextAvailable.addClass(className.selected);\r\n }\r\n else {\r\n module.verbose('Moving selection to', $prevAvailable);\r\n $prevAvailable.addClass(className.selected);\r\n }\r\n }\r\n },\r\n\r\n setup: {\r\n api: function() {\r\n var\r\n apiSettings = {\r\n debug : settings.debug,\r\n urlData : {\r\n value : module.get.value(),\r\n query : module.get.query()\r\n },\r\n on : false\r\n }\r\n ;\r\n module.verbose('First request, initializing API');\r\n $module\r\n .api(apiSettings)\r\n ;\r\n },\r\n layout: function() {\r\n if( $module.is('select') ) {\r\n module.setup.select();\r\n module.setup.returnedObject();\r\n }\r\n if( !module.has.menu() ) {\r\n module.create.menu();\r\n }\r\n if( module.is.search() && !module.has.search() ) {\r\n module.verbose('Adding search input');\r\n $search = $('')\r\n .addClass(className.search)\r\n .prop('autocomplete', 'off')\r\n .insertBefore($text)\r\n ;\r\n }\r\n if( module.is.multiple() && module.is.searchSelection() && !module.has.sizer()) {\r\n module.create.sizer();\r\n }\r\n if(settings.allowTab) {\r\n module.set.tabbable();\r\n }\r\n },\r\n select: function() {\r\n var\r\n selectValues = module.get.selectValues()\r\n ;\r\n module.debug('Dropdown initialized on a select', selectValues);\r\n if( $module.is('select') ) {\r\n $input = $module;\r\n }\r\n // see if select is placed correctly already\r\n if($input.parent(selector.dropdown).length > 0) {\r\n module.debug('UI dropdown already exists. Creating dropdown menu only');\r\n $module = $input.closest(selector.dropdown);\r\n if( !module.has.menu() ) {\r\n module.create.menu();\r\n }\r\n $menu = $module.children(selector.menu);\r\n module.setup.menu(selectValues);\r\n }\r\n else {\r\n module.debug('Creating entire dropdown from select');\r\n $module = $('
')\r\n .attr('class', $input.attr('class') )\r\n .addClass(className.selection)\r\n .addClass(className.dropdown)\r\n .html( templates.dropdown(selectValues) )\r\n .insertBefore($input)\r\n ;\r\n if($input.hasClass(className.multiple) && $input.prop('multiple') === false) {\r\n module.error(error.missingMultiple);\r\n $input.prop('multiple', true);\r\n }\r\n if($input.is('[multiple]')) {\r\n module.set.multiple();\r\n }\r\n if ($input.prop('disabled')) {\r\n module.debug('Disabling dropdown');\r\n $module.addClass(className.disabled);\r\n }\r\n $input\r\n .removeAttr('class')\r\n .detach()\r\n .prependTo($module)\r\n ;\r\n }\r\n module.refresh();\r\n },\r\n menu: function(values) {\r\n $menu.html( templates.menu(values, fields));\r\n $item = $menu.find(selector.item);\r\n },\r\n reference: function() {\r\n module.debug('Dropdown behavior was called on select, replacing with closest dropdown');\r\n // replace module reference\r\n $module = $module.parent(selector.dropdown);\r\n instance = $module.data(moduleNamespace);\r\n element = $module.get(0);\r\n module.refresh();\r\n module.setup.returnedObject();\r\n },\r\n returnedObject: function() {\r\n var\r\n $firstModules = $allModules.slice(0, elementIndex),\r\n $lastModules = $allModules.slice(elementIndex + 1)\r\n ;\r\n // adjust all modules to use correct reference\r\n $allModules = $firstModules.add($module).add($lastModules);\r\n }\r\n },\r\n\r\n refresh: function() {\r\n module.refreshSelectors();\r\n module.refreshData();\r\n },\r\n\r\n refreshItems: function() {\r\n $item = $menu.find(selector.item);\r\n },\r\n\r\n refreshSelectors: function() {\r\n module.verbose('Refreshing selector cache');\r\n $text = $module.find(selector.text);\r\n $search = $module.find(selector.search);\r\n $input = $module.find(selector.input);\r\n $icon = $module.find(selector.icon);\r\n $combo = ($module.prev().find(selector.text).length > 0)\r\n ? $module.prev().find(selector.text)\r\n : $module.prev()\r\n ;\r\n $menu = $module.children(selector.menu);\r\n $item = $menu.find(selector.item);\r\n },\r\n\r\n refreshData: function() {\r\n module.verbose('Refreshing cached metadata');\r\n $item\r\n .removeData(metadata.text)\r\n .removeData(metadata.value)\r\n ;\r\n },\r\n\r\n clearData: function() {\r\n module.verbose('Clearing metadata');\r\n $item\r\n .removeData(metadata.text)\r\n .removeData(metadata.value)\r\n ;\r\n $module\r\n .removeData(metadata.defaultText)\r\n .removeData(metadata.defaultValue)\r\n .removeData(metadata.placeholderText)\r\n ;\r\n },\r\n\r\n toggle: function() {\r\n module.verbose('Toggling menu visibility');\r\n if( !module.is.active() ) {\r\n module.show();\r\n }\r\n else {\r\n module.hide();\r\n }\r\n },\r\n\r\n show: function(callback) {\r\n callback = $.isFunction(callback)\r\n ? callback\r\n : function(){}\r\n ;\r\n if(!module.can.show() && module.is.remote()) {\r\n module.debug('No API results retrieved, searching before show');\r\n module.queryRemote(module.get.query(), module.show);\r\n }\r\n if( module.can.show() && !module.is.active() ) {\r\n module.debug('Showing dropdown');\r\n if(module.has.message() && !(module.has.maxSelections() || module.has.allResultsFiltered()) ) {\r\n module.remove.message();\r\n }\r\n if(module.is.allFiltered()) {\r\n return true;\r\n }\r\n if(settings.onShow.call(element) !== false) {\r\n module.animate.show(function() {\r\n if( module.can.click() ) {\r\n module.bind.intent();\r\n }\r\n if(module.has.menuSearch()) {\r\n module.focusSearch();\r\n }\r\n module.set.visible();\r\n callback.call(element);\r\n });\r\n }\r\n }\r\n },\r\n\r\n hide: function(callback) {\r\n callback = $.isFunction(callback)\r\n ? callback\r\n : function(){}\r\n ;\r\n if( module.is.active() && !module.is.animatingOutward() ) {\r\n module.debug('Hiding dropdown');\r\n if(settings.onHide.call(element) !== false) {\r\n module.animate.hide(function() {\r\n module.remove.visible();\r\n callback.call(element);\r\n });\r\n }\r\n }\r\n },\r\n\r\n hideOthers: function() {\r\n module.verbose('Finding other dropdowns to hide');\r\n $allModules\r\n .not($module)\r\n .has(selector.menu + '.' + className.visible)\r\n .dropdown('hide')\r\n ;\r\n },\r\n\r\n hideMenu: function() {\r\n module.verbose('Hiding menu instantaneously');\r\n module.remove.active();\r\n module.remove.visible();\r\n $menu.transition('hide');\r\n },\r\n\r\n hideSubMenus: function() {\r\n var\r\n $subMenus = $menu.children(selector.item).find(selector.menu)\r\n ;\r\n module.verbose('Hiding sub menus', $subMenus);\r\n $subMenus.transition('hide');\r\n },\r\n\r\n bind: {\r\n events: function() {\r\n if(hasTouch) {\r\n module.bind.touchEvents();\r\n }\r\n module.bind.keyboardEvents();\r\n module.bind.inputEvents();\r\n module.bind.mouseEvents();\r\n },\r\n touchEvents: function() {\r\n module.debug('Touch device detected binding additional touch events');\r\n if( module.is.searchSelection() ) {\r\n // do nothing special yet\r\n }\r\n else if( module.is.single() ) {\r\n $module\r\n .on('touchstart' + eventNamespace, module.event.test.toggle)\r\n ;\r\n }\r\n $menu\r\n .on('touchstart' + eventNamespace, selector.item, module.event.item.mouseenter)\r\n ;\r\n },\r\n keyboardEvents: function() {\r\n module.verbose('Binding keyboard events');\r\n $module\r\n .on('keydown' + eventNamespace, module.event.keydown)\r\n ;\r\n if( module.has.search() ) {\r\n $module\r\n .on(module.get.inputEvent() + eventNamespace, selector.search, module.event.input)\r\n ;\r\n }\r\n if( module.is.multiple() ) {\r\n $document\r\n .on('keydown' + elementNamespace, module.event.document.keydown)\r\n ;\r\n }\r\n },\r\n inputEvents: function() {\r\n module.verbose('Binding input change events');\r\n $module\r\n .on('change' + eventNamespace, selector.input, module.event.change)\r\n ;\r\n },\r\n mouseEvents: function() {\r\n module.verbose('Binding mouse events');\r\n if(module.is.multiple()) {\r\n $module\r\n .on('click' + eventNamespace, selector.label, module.event.label.click)\r\n .on('click' + eventNamespace, selector.remove, module.event.remove.click)\r\n ;\r\n }\r\n if( module.is.searchSelection() ) {\r\n $module\r\n .on('mousedown' + eventNamespace, module.event.mousedown)\r\n .on('mouseup' + eventNamespace, module.event.mouseup)\r\n .on('mousedown' + eventNamespace, selector.menu, module.event.menu.mousedown)\r\n .on('mouseup' + eventNamespace, selector.menu, module.event.menu.mouseup)\r\n .on('click' + eventNamespace, selector.icon, module.event.icon.click)\r\n .on('focus' + eventNamespace, selector.search, module.event.search.focus)\r\n .on('click' + eventNamespace, selector.search, module.event.search.focus)\r\n .on('blur' + eventNamespace, selector.search, module.event.search.blur)\r\n .on('click' + eventNamespace, selector.text, module.event.text.focus)\r\n ;\r\n if(module.is.multiple()) {\r\n $module\r\n .on('click' + eventNamespace, module.event.click)\r\n ;\r\n }\r\n }\r\n else {\r\n if(settings.on == 'click') {\r\n $module\r\n .on('click' + eventNamespace, module.event.test.toggle)\r\n ;\r\n }\r\n else if(settings.on == 'hover') {\r\n $module\r\n .on('mouseenter' + eventNamespace, module.delay.show)\r\n .on('mouseleave' + eventNamespace, module.delay.hide)\r\n ;\r\n }\r\n else {\r\n $module\r\n .on(settings.on + eventNamespace, module.toggle)\r\n ;\r\n }\r\n $module\r\n .on('click' + eventNamespace, selector.icon, module.event.icon.click)\r\n .on('mousedown' + eventNamespace, module.event.mousedown)\r\n .on('mouseup' + eventNamespace, module.event.mouseup)\r\n .on('focus' + eventNamespace, module.event.focus)\r\n ;\r\n if(module.has.menuSearch() ) {\r\n $module\r\n .on('blur' + eventNamespace, selector.search, module.event.search.blur)\r\n ;\r\n }\r\n else {\r\n $module\r\n .on('blur' + eventNamespace, module.event.blur)\r\n ;\r\n }\r\n }\r\n $menu\r\n .on('mouseenter' + eventNamespace, selector.item, module.event.item.mouseenter)\r\n .on('mouseleave' + eventNamespace, selector.item, module.event.item.mouseleave)\r\n .on('click' + eventNamespace, selector.item, module.event.item.click)\r\n ;\r\n },\r\n intent: function() {\r\n module.verbose('Binding hide intent event to document');\r\n if(hasTouch) {\r\n $document\r\n .on('touchstart' + elementNamespace, module.event.test.touch)\r\n .on('touchmove' + elementNamespace, module.event.test.touch)\r\n ;\r\n }\r\n $document\r\n .on('click' + elementNamespace, module.event.test.hide)\r\n ;\r\n }\r\n },\r\n\r\n unbind: {\r\n intent: function() {\r\n module.verbose('Removing hide intent event from document');\r\n if(hasTouch) {\r\n $document\r\n .off('touchstart' + elementNamespace)\r\n .off('touchmove' + elementNamespace)\r\n ;\r\n }\r\n $document\r\n .off('click' + elementNamespace)\r\n ;\r\n }\r\n },\r\n\r\n filter: function(query) {\r\n var\r\n searchTerm = (query !== undefined)\r\n ? query\r\n : module.get.query(),\r\n afterFiltered = function() {\r\n if(module.is.multiple()) {\r\n module.filterActive();\r\n }\r\n if(query || (!query && module.get.activeItem().length == 0)) {\r\n module.select.firstUnfiltered();\r\n }\r\n if( module.has.allResultsFiltered() ) {\r\n if( settings.onNoResults.call(element, searchTerm) ) {\r\n if(settings.allowAdditions) {\r\n if(settings.hideAdditions) {\r\n module.verbose('User addition with no menu, setting empty style');\r\n module.set.empty();\r\n module.hideMenu();\r\n }\r\n }\r\n else {\r\n module.verbose('All items filtered, showing message', searchTerm);\r\n module.add.message(message.noResults);\r\n }\r\n }\r\n else {\r\n module.verbose('All items filtered, hiding dropdown', searchTerm);\r\n module.hideMenu();\r\n }\r\n }\r\n else {\r\n module.remove.empty();\r\n module.remove.message();\r\n }\r\n if(settings.allowAdditions) {\r\n module.add.userSuggestion(query);\r\n }\r\n if(module.is.searchSelection() && module.can.show() && module.is.focusedOnSearch() ) {\r\n module.show();\r\n }\r\n }\r\n ;\r\n if(settings.useLabels && module.has.maxSelections()) {\r\n return;\r\n }\r\n if(settings.apiSettings) {\r\n if( module.can.useAPI() ) {\r\n module.queryRemote(searchTerm, function() {\r\n if(settings.filterRemoteData) {\r\n module.filterItems(searchTerm);\r\n }\r\n afterFiltered();\r\n });\r\n }\r\n else {\r\n module.error(error.noAPI);\r\n }\r\n }\r\n else {\r\n module.filterItems(searchTerm);\r\n afterFiltered();\r\n }\r\n },\r\n\r\n queryRemote: function(query, callback) {\r\n var\r\n apiSettings = {\r\n errorDuration : false,\r\n cache : 'local',\r\n throttle : settings.throttle,\r\n urlData : {\r\n query: query\r\n },\r\n onError: function() {\r\n module.add.message(message.serverError);\r\n callback();\r\n },\r\n onFailure: function() {\r\n module.add.message(message.serverError);\r\n callback();\r\n },\r\n onSuccess : function(response) {\r\n var\r\n values = response[fields.remoteValues],\r\n hasRemoteValues = ($.isArray(values) && values.length > 0)\r\n ;\r\n if(hasRemoteValues) {\r\n module.remove.message();\r\n module.setup.menu({\r\n values: response[fields.remoteValues]\r\n });\r\n }\r\n else {\r\n module.add.message(message.noResults);\r\n }\r\n callback();\r\n }\r\n }\r\n ;\r\n if( !$module.api('get request') ) {\r\n module.setup.api();\r\n }\r\n apiSettings = $.extend(true, {}, apiSettings, settings.apiSettings);\r\n $module\r\n .api('setting', apiSettings)\r\n .api('query')\r\n ;\r\n },\r\n\r\n filterItems: function(query) {\r\n var\r\n searchTerm = (query !== undefined)\r\n ? query\r\n : module.get.query(),\r\n results = null,\r\n escapedTerm = module.escape.string(searchTerm),\r\n beginsWithRegExp = new RegExp('^' + escapedTerm, 'igm')\r\n ;\r\n // avoid loop if we're matching nothing\r\n if( module.has.query() ) {\r\n results = [];\r\n\r\n module.verbose('Searching for matching values', searchTerm);\r\n $item\r\n .each(function(){\r\n var\r\n $choice = $(this),\r\n text,\r\n value\r\n ;\r\n if(settings.match == 'both' || settings.match == 'text') {\r\n text = String(module.get.choiceText($choice, false));\r\n if(text.search(beginsWithRegExp) !== -1) {\r\n results.push(this);\r\n return true;\r\n }\r\n else if (settings.fullTextSearch === 'exact' && module.exactSearch(searchTerm, text)) {\r\n results.push(this);\r\n return true;\r\n }\r\n else if (settings.fullTextSearch === true && module.fuzzySearch(searchTerm, text)) {\r\n results.push(this);\r\n return true;\r\n }\r\n }\r\n if(settings.match == 'both' || settings.match == 'value') {\r\n value = String(module.get.choiceValue($choice, text));\r\n if(value.search(beginsWithRegExp) !== -1) {\r\n results.push(this);\r\n return true;\r\n }\r\n else if (settings.fullTextSearch === 'exact' && module.exactSearch(searchTerm, value)) {\r\n results.push(this);\r\n return true;\r\n }\r\n else if (settings.fullTextSearch === true && module.fuzzySearch(searchTerm, value)) {\r\n results.push(this);\r\n return true;\r\n }\r\n }\r\n })\r\n ;\r\n }\r\n module.debug('Showing only matched items', searchTerm);\r\n module.remove.filteredItem();\r\n if(results) {\r\n $item\r\n .not(results)\r\n .addClass(className.filtered)\r\n ;\r\n }\r\n },\r\n\r\n fuzzySearch: function(query, term) {\r\n var\r\n termLength = term.length,\r\n queryLength = query.length\r\n ;\r\n query = query.toLowerCase();\r\n term = term.toLowerCase();\r\n if(queryLength > termLength) {\r\n return false;\r\n }\r\n if(queryLength === termLength) {\r\n return (query === term);\r\n }\r\n search: for (var characterIndex = 0, nextCharacterIndex = 0; characterIndex < queryLength; characterIndex++) {\r\n var\r\n queryCharacter = query.charCodeAt(characterIndex)\r\n ;\r\n while(nextCharacterIndex < termLength) {\r\n if(term.charCodeAt(nextCharacterIndex++) === queryCharacter) {\r\n continue search;\r\n }\r\n }\r\n return false;\r\n }\r\n return true;\r\n },\r\n exactSearch: function (query, term) {\r\n query = query.toLowerCase();\r\n term = term.toLowerCase();\r\n if(term.indexOf(query) > -1) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n filterActive: function() {\r\n if(settings.useLabels) {\r\n $item.filter('.' + className.active)\r\n .addClass(className.filtered)\r\n ;\r\n }\r\n },\r\n\r\n focusSearch: function(skipHandler) {\r\n if( module.has.search() && !module.is.focusedOnSearch() ) {\r\n if(skipHandler) {\r\n $module.off('focus' + eventNamespace, selector.search);\r\n $search.focus();\r\n $module.on('focus' + eventNamespace, selector.search, module.event.search.focus);\r\n }\r\n else {\r\n $search.focus();\r\n }\r\n }\r\n },\r\n\r\n forceSelection: function() {\r\n var\r\n $currentlySelected = $item.not(className.filtered).filter('.' + className.selected).eq(0),\r\n $activeItem = $item.not(className.filtered).filter('.' + className.active).eq(0),\r\n $selectedItem = ($currentlySelected.length > 0)\r\n ? $currentlySelected\r\n : $activeItem,\r\n hasSelected = ($selectedItem.length > 0)\r\n ;\r\n if(hasSelected && !module.is.multiple()) {\r\n module.debug('Forcing partial selection to selected item', $selectedItem);\r\n module.event.item.click.call($selectedItem, {}, true);\r\n return;\r\n }\r\n else {\r\n if(settings.allowAdditions) {\r\n module.set.selected(module.get.query());\r\n module.remove.searchTerm();\r\n }\r\n else {\r\n module.remove.searchTerm();\r\n }\r\n }\r\n },\r\n\r\n change: {\r\n values: function(values) {\r\n if(!settings.allowAdditions) {\r\n module.clear();\r\n }\r\n module.debug('Creating dropdown with specified values', values);\r\n module.setup.menu({values: values});\r\n $.each(values, function(index, item) {\r\n if(item.selected == true) {\r\n module.debug('Setting initial selection to', item.value);\r\n module.set.selected(item.value);\r\n return true;\r\n }\r\n });\r\n }\r\n },\r\n\r\n event: {\r\n change: function() {\r\n if(!internalChange) {\r\n module.debug('Input changed, updating selection');\r\n module.set.selected();\r\n }\r\n },\r\n focus: function() {\r\n if(settings.showOnFocus && !activated && module.is.hidden() && !pageLostFocus) {\r\n module.show();\r\n }\r\n },\r\n blur: function(event) {\r\n pageLostFocus = (document.activeElement === this);\r\n if(!activated && !pageLostFocus) {\r\n module.remove.activeLabel();\r\n module.hide();\r\n }\r\n },\r\n mousedown: function() {\r\n if(module.is.searchSelection()) {\r\n // prevent menu hiding on immediate re-focus\r\n willRefocus = true;\r\n }\r\n else {\r\n // prevents focus callback from occurring on mousedown\r\n activated = true;\r\n }\r\n },\r\n mouseup: function() {\r\n if(module.is.searchSelection()) {\r\n // prevent menu hiding on immediate re-focus\r\n willRefocus = false;\r\n }\r\n else {\r\n activated = false;\r\n }\r\n },\r\n click: function(event) {\r\n var\r\n $target = $(event.target)\r\n ;\r\n // focus search\r\n if($target.is($module)) {\r\n if(!module.is.focusedOnSearch()) {\r\n module.focusSearch();\r\n }\r\n else {\r\n module.show();\r\n }\r\n }\r\n },\r\n search: {\r\n focus: function() {\r\n activated = true;\r\n if(module.is.multiple()) {\r\n module.remove.activeLabel();\r\n }\r\n if(settings.showOnFocus) {\r\n module.search();\r\n }\r\n },\r\n blur: function(event) {\r\n pageLostFocus = (document.activeElement === this);\r\n if(module.is.searchSelection() && !willRefocus) {\r\n if(!itemActivated && !pageLostFocus) {\r\n if(settings.forceSelection) {\r\n module.forceSelection();\r\n }\r\n module.hide();\r\n }\r\n }\r\n willRefocus = false;\r\n }\r\n },\r\n icon: {\r\n click: function(event) {\r\n if($icon.hasClass(className.clear)) {\r\n module.clear();\r\n }\r\n else if (module.can.click()) {\r\n module.toggle();\r\n }\r\n }\r\n },\r\n text: {\r\n focus: function(event) {\r\n activated = true;\r\n module.focusSearch();\r\n }\r\n },\r\n input: function(event) {\r\n if(module.is.multiple() || module.is.searchSelection()) {\r\n module.set.filtered();\r\n }\r\n clearTimeout(module.timer);\r\n module.timer = setTimeout(module.search, settings.delay.search);\r\n },\r\n label: {\r\n click: function(event) {\r\n var\r\n $label = $(this),\r\n $labels = $module.find(selector.label),\r\n $activeLabels = $labels.filter('.' + className.active),\r\n $nextActive = $label.nextAll('.' + className.active),\r\n $prevActive = $label.prevAll('.' + className.active),\r\n $range = ($nextActive.length > 0)\r\n ? $label.nextUntil($nextActive).add($activeLabels).add($label)\r\n : $label.prevUntil($prevActive).add($activeLabels).add($label)\r\n ;\r\n if(event.shiftKey) {\r\n $activeLabels.removeClass(className.active);\r\n $range.addClass(className.active);\r\n }\r\n else if(event.ctrlKey) {\r\n $label.toggleClass(className.active);\r\n }\r\n else {\r\n $activeLabels.removeClass(className.active);\r\n $label.addClass(className.active);\r\n }\r\n settings.onLabelSelect.apply(this, $labels.filter('.' + className.active));\r\n }\r\n },\r\n remove: {\r\n click: function() {\r\n var\r\n $label = $(this).parent()\r\n ;\r\n if( $label.hasClass(className.active) ) {\r\n // remove all selected labels\r\n module.remove.activeLabels();\r\n }\r\n else {\r\n // remove this label only\r\n module.remove.activeLabels( $label );\r\n }\r\n }\r\n },\r\n test: {\r\n toggle: function(event) {\r\n var\r\n toggleBehavior = (module.is.multiple())\r\n ? module.show\r\n : module.toggle\r\n ;\r\n if(module.is.bubbledLabelClick(event) || module.is.bubbledIconClick(event)) {\r\n return;\r\n }\r\n if( module.determine.eventOnElement(event, toggleBehavior) ) {\r\n event.preventDefault();\r\n }\r\n },\r\n touch: function(event) {\r\n module.determine.eventOnElement(event, function() {\r\n if(event.type == 'touchstart') {\r\n module.timer = setTimeout(function() {\r\n module.hide();\r\n }, settings.delay.touch);\r\n }\r\n else if(event.type == 'touchmove') {\r\n clearTimeout(module.timer);\r\n }\r\n });\r\n event.stopPropagation();\r\n },\r\n hide: function(event) {\r\n module.determine.eventInModule(event, module.hide);\r\n }\r\n },\r\n select: {\r\n mutation: function(mutations) {\r\n module.debug(' removing selected option', removedValue);\r\n newValue = module.remove.arrayValue(removedValue, values);\r\n module.remove.optionValue(removedValue);\r\n }\r\n else {\r\n module.verbose('Removing from delimited values', removedValue);\r\n newValue = module.remove.arrayValue(removedValue, values);\r\n newValue = newValue.join(settings.delimiter);\r\n }\r\n if(settings.fireOnInit === false && module.is.initialLoad()) {\r\n module.verbose('No callback on initial load', settings.onRemove);\r\n }\r\n else {\r\n settings.onRemove.call(element, removedValue, removedText, $removedItem);\r\n }\r\n module.set.value(newValue, removedText, $removedItem);\r\n module.check.maxSelections();\r\n },\r\n arrayValue: function(removedValue, values) {\r\n if( !$.isArray(values) ) {\r\n values = [values];\r\n }\r\n values = $.grep(values, function(value){\r\n return (removedValue != value);\r\n });\r\n module.verbose('Removed value from delimited string', removedValue, values);\r\n return values;\r\n },\r\n label: function(value, shouldAnimate) {\r\n var\r\n $labels = $module.find(selector.label),\r\n $removedLabel = $labels.filter('[data-' + metadata.value + '=\"' + module.escape.string(value) +'\"]')\r\n ;\r\n module.verbose('Removing label', $removedLabel);\r\n $removedLabel.remove();\r\n },\r\n activeLabels: function($activeLabels) {\r\n $activeLabels = $activeLabels || $module.find(selector.label).filter('.' + className.active);\r\n module.verbose('Removing active label selections', $activeLabels);\r\n module.remove.labels($activeLabels);\r\n },\r\n labels: function($labels) {\r\n $labels = $labels || $module.find(selector.label);\r\n module.verbose('Removing labels', $labels);\r\n $labels\r\n .each(function(){\r\n var\r\n $label = $(this),\r\n value = $label.data(metadata.value),\r\n stringValue = (value !== undefined)\r\n ? String(value)\r\n : value,\r\n isUserValue = module.is.userValue(stringValue)\r\n ;\r\n if(settings.onLabelRemove.call($label, value) === false) {\r\n module.debug('Label remove callback cancelled removal');\r\n return;\r\n }\r\n module.remove.message();\r\n if(isUserValue) {\r\n module.remove.value(stringValue);\r\n module.remove.label(stringValue);\r\n }\r\n else {\r\n // selected will also remove label\r\n module.remove.selected(stringValue);\r\n }\r\n })\r\n ;\r\n },\r\n tabbable: function() {\r\n if( module.is.searchSelection() ) {\r\n module.debug('Searchable dropdown initialized');\r\n $search\r\n .removeAttr('tabindex')\r\n ;\r\n $menu\r\n .removeAttr('tabindex')\r\n ;\r\n }\r\n else {\r\n module.debug('Simple selection dropdown initialized');\r\n $module\r\n .removeAttr('tabindex')\r\n ;\r\n $menu\r\n .removeAttr('tabindex')\r\n ;\r\n }\r\n },\r\n clearable: function() {\r\n $icon.removeClass(className.clear);\r\n }\r\n },\r\n\r\n has: {\r\n menuSearch: function() {\r\n return (module.has.search() && $search.closest($menu).length > 0);\r\n },\r\n search: function() {\r\n return ($search.length > 0);\r\n },\r\n sizer: function() {\r\n return ($sizer.length > 0);\r\n },\r\n selectInput: function() {\r\n return ( $input.is('select') );\r\n },\r\n minCharacters: function(searchTerm) {\r\n if(settings.minCharacters) {\r\n searchTerm = (searchTerm !== undefined)\r\n ? String(searchTerm)\r\n : String(module.get.query())\r\n ;\r\n return (searchTerm.length >= settings.minCharacters);\r\n }\r\n return true;\r\n },\r\n firstLetter: function($item, letter) {\r\n var\r\n text,\r\n firstLetter\r\n ;\r\n if(!$item || $item.length === 0 || typeof letter !== 'string') {\r\n return false;\r\n }\r\n text = module.get.choiceText($item, false);\r\n letter = letter.toLowerCase();\r\n firstLetter = String(text).charAt(0).toLowerCase();\r\n return (letter == firstLetter);\r\n },\r\n input: function() {\r\n return ($input.length > 0);\r\n },\r\n items: function() {\r\n return ($item.length > 0);\r\n },\r\n menu: function() {\r\n return ($menu.length > 0);\r\n },\r\n message: function() {\r\n return ($menu.children(selector.message).length !== 0);\r\n },\r\n label: function(value) {\r\n var\r\n escapedValue = module.escape.value(value),\r\n $labels = $module.find(selector.label)\r\n ;\r\n if(settings.ignoreCase) {\r\n escapedValue = escapedValue.toLowerCase();\r\n }\r\n return ($labels.filter('[data-' + metadata.value + '=\"' + module.escape.string(escapedValue) +'\"]').length > 0);\r\n },\r\n maxSelections: function() {\r\n return (settings.maxSelections && module.get.selectionCount() >= settings.maxSelections);\r\n },\r\n allResultsFiltered: function() {\r\n var\r\n $normalResults = $item.not(selector.addition)\r\n ;\r\n return ($normalResults.filter(selector.unselectable).length === $normalResults.length);\r\n },\r\n userSuggestion: function() {\r\n return ($menu.children(selector.addition).length > 0);\r\n },\r\n query: function() {\r\n return (module.get.query() !== '');\r\n },\r\n value: function(value) {\r\n return (settings.ignoreCase)\r\n ? module.has.valueIgnoringCase(value)\r\n : module.has.valueMatchingCase(value)\r\n ;\r\n },\r\n valueMatchingCase: function(value) {\r\n var\r\n values = module.get.values(),\r\n hasValue = $.isArray(values)\r\n ? values && ($.inArray(value, values) !== -1)\r\n : (values == value)\r\n ;\r\n return (hasValue)\r\n ? true\r\n : false\r\n ;\r\n },\r\n valueIgnoringCase: function(value) {\r\n var\r\n values = module.get.values(),\r\n hasValue = false\r\n ;\r\n if(!$.isArray(values)) {\r\n values = [values];\r\n }\r\n $.each(values, function(index, existingValue) {\r\n if(String(value).toLowerCase() == String(existingValue).toLowerCase()) {\r\n hasValue = true;\r\n return false;\r\n }\r\n });\r\n return hasValue;\r\n }\r\n },\r\n\r\n is: {\r\n active: function() {\r\n return $module.hasClass(className.active);\r\n },\r\n animatingInward: function() {\r\n return $menu.transition('is inward');\r\n },\r\n animatingOutward: function() {\r\n return $menu.transition('is outward');\r\n },\r\n bubbledLabelClick: function(event) {\r\n return $(event.target).is('select, input') && $module.closest('label').length > 0;\r\n },\r\n bubbledIconClick: function(event) {\r\n return $(event.target).closest($icon).length > 0;\r\n },\r\n alreadySetup: function() {\r\n return ($module.is('select') && $module.parent(selector.dropdown).data(moduleNamespace) !== undefined && $module.prev().length === 0);\r\n },\r\n animating: function($subMenu) {\r\n return ($subMenu)\r\n ? $subMenu.transition && $subMenu.transition('is animating')\r\n : $menu.transition && $menu.transition('is animating')\r\n ;\r\n },\r\n leftward: function($subMenu) {\r\n var $selectedMenu = $subMenu || $menu;\r\n return $selectedMenu.hasClass(className.leftward);\r\n },\r\n disabled: function() {\r\n return $module.hasClass(className.disabled);\r\n },\r\n focused: function() {\r\n return (document.activeElement === $module[0]);\r\n },\r\n focusedOnSearch: function() {\r\n return (document.activeElement === $search[0]);\r\n },\r\n allFiltered: function() {\r\n return( (module.is.multiple() || module.has.search()) && !(settings.hideAdditions == false && module.has.userSuggestion()) && !module.has.message() && module.has.allResultsFiltered() );\r\n },\r\n hidden: function($subMenu) {\r\n return !module.is.visible($subMenu);\r\n },\r\n initialLoad: function() {\r\n return initialLoad;\r\n },\r\n inObject: function(needle, object) {\r\n var\r\n found = false\r\n ;\r\n $.each(object, function(index, property) {\r\n if(property == needle) {\r\n found = true;\r\n return true;\r\n }\r\n });\r\n return found;\r\n },\r\n multiple: function() {\r\n return $module.hasClass(className.multiple);\r\n },\r\n remote: function() {\r\n return settings.apiSettings && module.can.useAPI();\r\n },\r\n single: function() {\r\n return !module.is.multiple();\r\n },\r\n selectMutation: function(mutations) {\r\n var\r\n selectChanged = false\r\n ;\r\n $.each(mutations, function(index, mutation) {\r\n if(mutation.target && $(mutation.target).is('select')) {\r\n selectChanged = true;\r\n return true;\r\n }\r\n });\r\n return selectChanged;\r\n },\r\n search: function() {\r\n return $module.hasClass(className.search);\r\n },\r\n searchSelection: function() {\r\n return ( module.has.search() && $search.parent(selector.dropdown).length === 1 );\r\n },\r\n selection: function() {\r\n return $module.hasClass(className.selection);\r\n },\r\n userValue: function(value) {\r\n return ($.inArray(value, module.get.userValues()) !== -1);\r\n },\r\n upward: function($menu) {\r\n var $element = $menu || $module;\r\n return $element.hasClass(className.upward);\r\n },\r\n visible: function($subMenu) {\r\n return ($subMenu)\r\n ? $subMenu.hasClass(className.visible)\r\n : $menu.hasClass(className.visible)\r\n ;\r\n },\r\n verticallyScrollableContext: function() {\r\n var\r\n overflowY = ($context.get(0) !== window)\r\n ? $context.css('overflow-y')\r\n : false\r\n ;\r\n return (overflowY == 'auto' || overflowY == 'scroll');\r\n },\r\n horizontallyScrollableContext: function() {\r\n var\r\n overflowX = ($context.get(0) !== window)\r\n ? $context.css('overflow-X')\r\n : false\r\n ;\r\n return (overflowX == 'auto' || overflowX == 'scroll');\r\n }\r\n },\r\n\r\n can: {\r\n activate: function($item) {\r\n if(settings.useLabels) {\r\n return true;\r\n }\r\n if(!module.has.maxSelections()) {\r\n return true;\r\n }\r\n if(module.has.maxSelections() && $item.hasClass(className.active)) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n openDownward: function($subMenu) {\r\n var\r\n $currentMenu = $subMenu || $menu,\r\n canOpenDownward = true,\r\n onScreen = {},\r\n calculations\r\n ;\r\n $currentMenu\r\n .addClass(className.loading)\r\n ;\r\n calculations = {\r\n context: {\r\n offset : ($context.get(0) === window)\r\n ? { top: 0, left: 0}\r\n : $context.offset(),\r\n scrollTop : $context.scrollTop(),\r\n height : $context.outerHeight()\r\n },\r\n menu : {\r\n offset: $currentMenu.offset(),\r\n height: $currentMenu.outerHeight()\r\n }\r\n };\r\n if(module.is.verticallyScrollableContext()) {\r\n calculations.menu.offset.top += calculations.context.scrollTop;\r\n }\r\n onScreen = {\r\n above : (calculations.context.scrollTop) <= calculations.menu.offset.top - calculations.context.offset.top - calculations.menu.height,\r\n below : (calculations.context.scrollTop + calculations.context.height) >= calculations.menu.offset.top - calculations.context.offset.top + calculations.menu.height\r\n };\r\n if(onScreen.below) {\r\n module.verbose('Dropdown can fit in context downward', onScreen);\r\n canOpenDownward = true;\r\n }\r\n else if(!onScreen.below && !onScreen.above) {\r\n module.verbose('Dropdown cannot fit in either direction, favoring downward', onScreen);\r\n canOpenDownward = true;\r\n }\r\n else {\r\n module.verbose('Dropdown cannot fit below, opening upward', onScreen);\r\n canOpenDownward = false;\r\n }\r\n $currentMenu.removeClass(className.loading);\r\n return canOpenDownward;\r\n },\r\n openRightward: function($subMenu) {\r\n var\r\n $currentMenu = $subMenu || $menu,\r\n canOpenRightward = true,\r\n isOffscreenRight = false,\r\n calculations\r\n ;\r\n $currentMenu\r\n .addClass(className.loading)\r\n ;\r\n calculations = {\r\n context: {\r\n offset : ($context.get(0) === window)\r\n ? { top: 0, left: 0}\r\n : $context.offset(),\r\n scrollLeft : $context.scrollLeft(),\r\n width : $context.outerWidth()\r\n },\r\n menu: {\r\n offset : $currentMenu.offset(),\r\n width : $currentMenu.outerWidth()\r\n }\r\n };\r\n if(module.is.horizontallyScrollableContext()) {\r\n calculations.menu.offset.left += calculations.context.scrollLeft;\r\n }\r\n isOffscreenRight = (calculations.menu.offset.left - calculations.context.offset.left + calculations.menu.width >= calculations.context.scrollLeft + calculations.context.width);\r\n if(isOffscreenRight) {\r\n module.verbose('Dropdown cannot fit in context rightward', isOffscreenRight);\r\n canOpenRightward = false;\r\n }\r\n $currentMenu.removeClass(className.loading);\r\n return canOpenRightward;\r\n },\r\n click: function() {\r\n return (hasTouch || settings.on == 'click');\r\n },\r\n extendSelect: function() {\r\n return settings.allowAdditions || settings.apiSettings;\r\n },\r\n show: function() {\r\n return !module.is.disabled() && (module.has.items() || module.has.message());\r\n },\r\n useAPI: function() {\r\n return $.fn.api !== undefined;\r\n }\r\n },\r\n\r\n animate: {\r\n show: function(callback, $subMenu) {\r\n var\r\n $currentMenu = $subMenu || $menu,\r\n start = ($subMenu)\r\n ? function() {}\r\n : function() {\r\n module.hideSubMenus();\r\n module.hideOthers();\r\n module.set.active();\r\n },\r\n transition\r\n ;\r\n callback = $.isFunction(callback)\r\n ? callback\r\n : function(){}\r\n ;\r\n module.verbose('Doing menu show animation', $currentMenu);\r\n module.set.direction($subMenu);\r\n transition = module.get.transition($subMenu);\r\n if( module.is.selection() ) {\r\n module.set.scrollPosition(module.get.selectedItem(), true);\r\n }\r\n if( module.is.hidden($currentMenu) || module.is.animating($currentMenu) ) {\r\n if(transition == 'none') {\r\n start();\r\n $currentMenu.transition('show');\r\n callback.call(element);\r\n }\r\n else if($.fn.transition !== undefined && $module.transition('is supported')) {\r\n $currentMenu\r\n .transition({\r\n animation : transition + ' in',\r\n debug : settings.debug,\r\n verbose : settings.verbose,\r\n duration : settings.duration,\r\n queue : true,\r\n onStart : start,\r\n onComplete : function() {\r\n callback.call(element);\r\n }\r\n })\r\n ;\r\n }\r\n else {\r\n module.error(error.noTransition, transition);\r\n }\r\n }\r\n },\r\n hide: function(callback, $subMenu) {\r\n var\r\n $currentMenu = $subMenu || $menu,\r\n duration = ($subMenu)\r\n ? (settings.duration * 0.9)\r\n : settings.duration,\r\n start = ($subMenu)\r\n ? function() {}\r\n : function() {\r\n if( module.can.click() ) {\r\n module.unbind.intent();\r\n }\r\n module.remove.active();\r\n },\r\n transition = module.get.transition($subMenu)\r\n ;\r\n callback = $.isFunction(callback)\r\n ? callback\r\n : function(){}\r\n ;\r\n if( module.is.visible($currentMenu) || module.is.animating($currentMenu) ) {\r\n module.verbose('Doing menu hide animation', $currentMenu);\r\n\r\n if(transition == 'none') {\r\n start();\r\n $currentMenu.transition('hide');\r\n callback.call(element);\r\n }\r\n else if($.fn.transition !== undefined && $module.transition('is supported')) {\r\n $currentMenu\r\n .transition({\r\n animation : transition + ' out',\r\n duration : settings.duration,\r\n debug : settings.debug,\r\n verbose : settings.verbose,\r\n queue : false,\r\n onStart : start,\r\n onComplete : function() {\r\n callback.call(element);\r\n }\r\n })\r\n ;\r\n }\r\n else {\r\n module.error(error.transition);\r\n }\r\n }\r\n }\r\n },\r\n\r\n hideAndClear: function() {\r\n module.remove.searchTerm();\r\n if( module.has.maxSelections() ) {\r\n return;\r\n }\r\n if(module.has.search()) {\r\n module.hide(function() {\r\n module.remove.filteredItem();\r\n });\r\n }\r\n else {\r\n module.hide();\r\n }\r\n },\r\n\r\n delay: {\r\n show: function() {\r\n module.verbose('Delaying show event to ensure user intent');\r\n clearTimeout(module.timer);\r\n module.timer = setTimeout(module.show, settings.delay.show);\r\n },\r\n hide: function() {\r\n module.verbose('Delaying hide event to ensure user intent');\r\n clearTimeout(module.timer);\r\n module.timer = setTimeout(module.hide, settings.delay.hide);\r\n }\r\n },\r\n\r\n escape: {\r\n value: function(value) {\r\n var\r\n multipleValues = $.isArray(value),\r\n stringValue = (typeof value === 'string'),\r\n isUnparsable = (!stringValue && !multipleValues),\r\n hasQuotes = (stringValue && value.search(regExp.quote) !== -1),\r\n values = []\r\n ;\r\n if(isUnparsable || !hasQuotes) {\r\n return value;\r\n }\r\n module.debug('Encoding quote values for use in select', value);\r\n if(multipleValues) {\r\n $.each(value, function(index, value){\r\n values.push(value.replace(regExp.quote, '"'));\r\n });\r\n return values;\r\n }\r\n return value.replace(regExp.quote, '"');\r\n },\r\n string: function(text) {\r\n text = String(text);\r\n return text.replace(regExp.escape, '\\\\$&');\r\n }\r\n },\r\n\r\n setting: function(name, value) {\r\n module.debug('Changing setting', name, value);\r\n if( $.isPlainObject(name) ) {\r\n $.extend(true, settings, name);\r\n }\r\n else if(value !== undefined) {\r\n if($.isPlainObject(settings[name])) {\r\n $.extend(true, settings[name], value);\r\n }\r\n else {\r\n settings[name] = value;\r\n }\r\n }\r\n else {\r\n return settings[name];\r\n }\r\n },\r\n internal: function(name, value) {\r\n if( $.isPlainObject(name) ) {\r\n $.extend(true, module, name);\r\n }\r\n else if(value !== undefined) {\r\n module[name] = value;\r\n }\r\n else {\r\n return module[name];\r\n }\r\n },\r\n debug: function() {\r\n if(!settings.silent && settings.debug) {\r\n if(settings.performance) {\r\n module.performance.log(arguments);\r\n }\r\n else {\r\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\r\n module.debug.apply(console, arguments);\r\n }\r\n }\r\n },\r\n verbose: function() {\r\n if(!settings.silent && settings.verbose && settings.debug) {\r\n if(settings.performance) {\r\n module.performance.log(arguments);\r\n }\r\n else {\r\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\r\n module.verbose.apply(console, arguments);\r\n }\r\n }\r\n },\r\n error: function() {\r\n if(!settings.silent) {\r\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\r\n module.error.apply(console, arguments);\r\n }\r\n },\r\n performance: {\r\n log: function(message) {\r\n var\r\n currentTime,\r\n executionTime,\r\n previousTime\r\n ;\r\n if(settings.performance) {\r\n currentTime = new Date().getTime();\r\n previousTime = time || currentTime;\r\n executionTime = currentTime - previousTime;\r\n time = currentTime;\r\n performance.push({\r\n 'Name' : message[0],\r\n 'Arguments' : [].slice.call(message, 1) || '',\r\n 'Element' : element,\r\n 'Execution Time' : executionTime\r\n });\r\n }\r\n clearTimeout(module.performance.timer);\r\n module.performance.timer = setTimeout(module.performance.display, 500);\r\n },\r\n display: function() {\r\n var\r\n title = settings.name + ':',\r\n totalTime = 0\r\n ;\r\n time = false;\r\n clearTimeout(module.performance.timer);\r\n $.each(performance, function(index, data) {\r\n totalTime += data['Execution Time'];\r\n });\r\n title += ' ' + totalTime + 'ms';\r\n if(moduleSelector) {\r\n title += ' \\'' + moduleSelector + '\\'';\r\n }\r\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\r\n console.groupCollapsed(title);\r\n if(console.table) {\r\n console.table(performance);\r\n }\r\n else {\r\n $.each(performance, function(index, data) {\r\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\r\n });\r\n }\r\n console.groupEnd();\r\n }\r\n performance = [];\r\n }\r\n },\r\n invoke: function(query, passedArguments, context) {\r\n var\r\n object = instance,\r\n maxDepth,\r\n found,\r\n response\r\n ;\r\n passedArguments = passedArguments || queryArguments;\r\n context = element || context;\r\n if(typeof query == 'string' && object !== undefined) {\r\n query = query.split(/[\\. ]/);\r\n maxDepth = query.length - 1;\r\n $.each(query, function(depth, value) {\r\n var camelCaseValue = (depth != maxDepth)\r\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\r\n : query\r\n ;\r\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\r\n object = object[camelCaseValue];\r\n }\r\n else if( object[camelCaseValue] !== undefined ) {\r\n found = object[camelCaseValue];\r\n return false;\r\n }\r\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\r\n object = object[value];\r\n }\r\n else if( object[value] !== undefined ) {\r\n found = object[value];\r\n return false;\r\n }\r\n else {\r\n module.error(error.method, query);\r\n return false;\r\n }\r\n });\r\n }\r\n if ( $.isFunction( found ) ) {\r\n response = found.apply(context, passedArguments);\r\n }\r\n else if(found !== undefined) {\r\n response = found;\r\n }\r\n if($.isArray(returnedValue)) {\r\n returnedValue.push(response);\r\n }\r\n else if(returnedValue !== undefined) {\r\n returnedValue = [returnedValue, response];\r\n }\r\n else if(response !== undefined) {\r\n returnedValue = response;\r\n }\r\n return found;\r\n }\r\n };\r\n\r\n if(methodInvoked) {\r\n if(instance === undefined) {\r\n module.initialize();\r\n }\r\n module.invoke(query);\r\n }\r\n else {\r\n if(instance !== undefined) {\r\n instance.invoke('destroy');\r\n }\r\n module.initialize();\r\n }\r\n })\r\n ;\r\n return (returnedValue !== undefined)\r\n ? returnedValue\r\n : $allModules\r\n ;\r\n};\r\n\r\n$.fn.dropdown.settings = {\r\n\r\n silent : false,\r\n debug : false,\r\n verbose : false,\r\n performance : true,\r\n\r\n on : 'click', // what event should show menu action on item selection\r\n action : 'activate', // action on item selection (nothing, activate, select, combo, hide, function(){})\r\n\r\n values : false, // specify values to use for dropdown\r\n\r\n clearable : false, // whether the value of the dropdown can be cleared\r\n\r\n apiSettings : false,\r\n selectOnKeydown : true, // Whether selection should occur automatically when keyboard shortcuts used\r\n minCharacters : 0, // Minimum characters required to trigger API call\r\n\r\n filterRemoteData : false, // Whether API results should be filtered after being returned for query term\r\n saveRemoteData : true, // Whether remote name/value pairs should be stored in sessionStorage to allow remote data to be restored on page refresh\r\n\r\n throttle : 200, // How long to wait after last user input to search remotely\r\n\r\n context : window, // Context to use when determining if on screen\r\n direction : 'auto', // Whether dropdown should always open in one direction\r\n keepOnScreen : true, // Whether dropdown should check whether it is on screen before showing\r\n\r\n match : 'both', // what to match against with search selection (both, text, or label)\r\n fullTextSearch : false, // search anywhere in value (set to 'exact' to require exact matches)\r\n\r\n placeholder : 'auto', // whether to convert blank the values will be delimited with this character\r\n\r\n showOnFocus : true, // show menu on focus\r\n allowReselection : false, // whether current value should trigger callbacks when reselected\r\n allowTab : true, // add tabindex to element\r\n allowCategorySelection : false, // allow elements with sub-menus to be selected\r\n\r\n fireOnInit : false, // Whether callbacks should fire when initializing dropdown values\r\n\r\n transition : 'auto', // auto transition will slide down or up based on direction\r\n duration : 200, // duration of transition\r\n\r\n glyphWidth : 1.037, // widest glyph width in em (W is 1.037 em) used to calculate multiselect input width\r\n\r\n // label settings on multi-select\r\n label: {\r\n transition : 'scale',\r\n duration : 200,\r\n variation : false\r\n },\r\n\r\n // delay before event\r\n delay : {\r\n hide : 300,\r\n show : 200,\r\n search : 20,\r\n touch : 50\r\n },\r\n\r\n /* Callbacks */\r\n onChange : function(value, text, $selected){},\r\n onAdd : function(value, text, $selected){},\r\n onRemove : function(value, text, $selected){},\r\n\r\n onLabelSelect : function($selectedLabels){},\r\n onLabelCreate : function(value, text) { return $(this); },\r\n onLabelRemove : function(value) { return true; },\r\n onNoResults : function(searchTerm) { return true; },\r\n onShow : function(){},\r\n onHide : function(){},\r\n\r\n /* Component */\r\n name : 'Dropdown',\r\n namespace : 'dropdown',\r\n\r\n message: {\r\n addResult : 'Add {term}',\r\n count : '{count} selected',\r\n maxSelections : 'Max {maxCount} selections',\r\n noResults : 'No results found.',\r\n serverError : 'There was an error contacting the server'\r\n },\r\n\r\n error : {\r\n action : 'You called a dropdown action that was not defined',\r\n alreadySetup : 'Once a select has been initialized behaviors must be called on the created ui dropdown',\r\n labels : 'Allowing user additions currently requires the use of labels.',\r\n missingMultiple : '