').append(clone);\n\n var transcludedMatch = transcluded.querySelectorAll('.ui-select-match');\n transcludedMatch.removeAttr('ui-select-match'); //To avoid loop in case directive as attr\n transcludedMatch.removeAttr('data-ui-select-match'); // Properly handle HTML5 data-attributes\n if (transcludedMatch.length !== 1) {\n throw uiSelectMinErr('transcluded', \"Expected 1 .ui-select-match but got '{0}'.\", transcludedMatch.length);\n }\n element.querySelectorAll('.ui-select-match').replaceWith(transcludedMatch);\n\n var transcludedChoices = transcluded.querySelectorAll('.ui-select-choices');\n transcludedChoices.removeAttr('ui-select-choices'); //To avoid loop in case directive as attr\n transcludedChoices.removeAttr('data-ui-select-choices'); // Properly handle HTML5 data-attributes\n if (transcludedChoices.length !== 1) {\n throw uiSelectMinErr('transcluded', \"Expected 1 .ui-select-choices but got '{0}'.\", transcludedChoices.length);\n }\n element.querySelectorAll('.ui-select-choices').replaceWith(transcludedChoices);\n\n var transcludedNoChoice = transcluded.querySelectorAll('.ui-select-no-choice');\n transcludedNoChoice.removeAttr('ui-select-no-choice'); //To avoid loop in case directive as attr\n transcludedNoChoice.removeAttr('data-ui-select-no-choice'); // Properly handle HTML5 data-attributes\n if (transcludedNoChoice.length == 1) {\n element.querySelectorAll('.ui-select-no-choice').replaceWith(transcludedNoChoice);\n }\n\n var transcludedHeader = transcluded.querySelectorAll('.ui-select-header');\n transcludedHeader.removeAttr('ui-select-header'); // To avoid loop in case directive as attr\n transcludedHeader.removeAttr('data-ui-select-header'); // Properly handle HTML5 data-attributes\n if (transcludedHeader.length == 1) {\n element.querySelectorAll('.ui-select-header').replaceWith(transcludedHeader);\n } else {\n element.querySelectorAll('.ui-select-header').remove();\n }\n\n var transcludedFooter = transcluded.querySelectorAll('.ui-select-footer');\n transcludedFooter.removeAttr('ui-select-footer'); // To avoid loop in case directive as attr\n transcludedFooter.removeAttr('data-ui-select-footer'); // Properly handle HTML5 data-attributes\n if (transcludedFooter.length == 1) {\n element.querySelectorAll('.ui-select-footer').replaceWith(transcludedFooter);\n } else {\n element.querySelectorAll('.ui-select-footer').remove();\n }\n });\n\n // Support for appending the select field to the body when its open\n var appendToBody = scope.$eval(attrs.appendToBody);\n if (appendToBody === undefined) {\n appendToBody = uiSelectConfig.appendToBody;\n }\n\n scope.$watch('$select.open', function(isOpen) {\n if (isOpen) {\n // Attach global handlers that cause the dropdowns to close\n $window.addEventListener('mousedown', closeOnClick, true);\n $window.addEventListener('scroll', closeOnScroll, true);\n $window.addEventListener('resize', closeOnResize, true);\n\n if (appendToBody) {\n // Wait for ui-select-match child directive, it hasn't started rendering yet.\n scope.$evalAsync(positionDropdown);\n }\n } else if (appendToBody) {\n resetDropdown();\n } else {\n removeGlobalHandlers();\n }\n\n // Support changing the direction of the dropdown if there isn't enough space to render it.\n if ($select.dropdownPosition === 'auto' || $select.dropdownPosition === 'up'){\n scope.calculateDropdownPos();\n }\n });\n\n // Move the dropdown back to its original location when the scope is destroyed. Otherwise\n // it might stick around when the user routes away or the select field is otherwise removed\n scope.$on('$destroy', appendToBody ? resetDropdown : removeGlobalHandlers);\n\n // Hold on to a reference to the .ui-select-container element for appendToBody support\n var placeholder = null,\n originalWidth = '';\n\n function closeOnClick(e) {\n if (!$select.open) return; //Skip it if dropdown is close\n\n var contains = false;\n var target = e.target || e.srcElement;\n\n if (window.jQuery) {\n // Firefox 3.6 does not support element.contains()\n // See Node.contains https://developer.mozilla.org/en-US/docs/Web/API/Node.contains\n contains = window.jQuery.contains(element[0], target);\n } else {\n contains = element[0].contains(target);\n }\n if (!contains && !$select.clickTriggeredSelect) {\n var skipFocusser;\n if (!$select.skipFocusser) {\n //Will lose focus only with certain targets\n var focusableControls = ['input','button','textarea','select'];\n var targetController = angular.element(target).controller('uiSelect'); //To check if target is other ui-select\n skipFocusser = targetController && targetController !== $select; //To check if target is other ui-select\n if (!skipFocusser) skipFocusser = ~focusableControls.indexOf(target.tagName.toLowerCase()); //Check if target is input, button or textarea\n } else {\n skipFocusser = true;\n }\n\n $select.close(skipFocusser);\n scope.$digest();\n }\n $select.clickTriggeredSelect = false;\n }\n\n function closeOnResize() {\n $select.close(false);\n }\n\n function closeOnScroll(e) {\n if (!element[0].contains(e.target || e.srcElement)) {\n $select.close(false);\n }\n }\n\n function calculateSelectLeftPosition(offset) {\n var scrollLeft = $document[0].documentElement.scrollLeft || $document[0].body.scrollLeft;\n var edgeOffscreenAmount = (offset.left + offset.width) - (scrollLeft + $document[0].documentElement.clientWidth);\n var paddingFromEdge = 30;\n\n var leftPosition = offset.left;\n if (edgeOffscreenAmount > 0) {\n leftPosition -= (edgeOffscreenAmount + paddingFromEdge);\n }\n\n return leftPosition;\n }\n\n function positionDropdown() {\n // Remember the absolute position of the element\n var offset = uisOffset(element);\n\n // Clone the element into a placeholder element to take its original place in the DOM\n placeholder = angular.element('
');\n placeholder[0].style.width = offset.width + 'px';\n placeholder[0].style.height = offset.height + 'px';\n element.after(placeholder);\n\n // Remember the original value of the element width inline style, so it can be restored\n // when the dropdown is closed\n originalWidth = element[0].style.width;\n\n // Now move the actual dropdown element to the end of the body\n $document.find('body').append(element);\n\n element[0].style.position = 'absolute';\n element[0].style.left = calculateSelectLeftPosition(offset) + 'px';\n element[0].style.top = offset.top + 'px';\n element[0].style.width = offset.width + 'px';\n }\n\n function removeGlobalHandlers() {\n $window.removeEventListener('mousedown', closeOnClick, true);\n $window.removeEventListener('scroll', closeOnResize, true);\n $window.removeEventListener('resize', resetDropdown, true);\n }\n\n function resetDropdown() {\n removeGlobalHandlers();\n\n if (placeholder === null) {\n // The dropdown has not actually been display yet, so there's nothing to reset\n return;\n }\n\n // Move the dropdown element back to its original location in the DOM\n placeholder.replaceWith(element);\n placeholder = null;\n\n element[0].style.position = '';\n element[0].style.left = '';\n element[0].style.top = '';\n element[0].style.width = originalWidth;\n\n // Set focus back on to the moved element\n $select.setFocus();\n }\n\n function resetFocus() {\n $timeout(function(){\n $select.setFocus();\n });\n }\n\n // Hold on to a reference to the .ui-select-dropdown element for direction support.\n var dropdown = null,\n directionUpClassName = 'direction-up';\n\n var setDropdownPosUp = function(offset, offsetDropdown){\n\n offset = offset || uisOffset(element);\n offsetDropdown = offsetDropdown || uisOffset(dropdown);\n\n dropdown[0].style.position = 'absolute';\n dropdown[0].style.top = (offsetDropdown.height * -1) + 'px';\n element.addClass(directionUpClassName);\n\n };\n\n var setDropdownPosDown = function(offset, offsetDropdown){\n\n element.removeClass(directionUpClassName);\n\n offset = offset || uisOffset(element);\n offsetDropdown = offsetDropdown || uisOffset(dropdown);\n\n dropdown[0].style.position = '';\n dropdown[0].style.top = '';\n\n };\n\n var setDropdownHorizontalPos = function(offset, offsetDropdown){\n var scrollLeft = $document[0].documentElement.scrollLeft || $document[0].body.scrollLeft;\n\n if (offset.left + offsetDropdown.width > scrollLeft + $document[0].documentElement.clientWidth) {\n dropdown.addClass('dropdown-menu-right');\n }else{\n dropdown.removeClass('dropdown-menu-right');\n }\n };\n\n var calculateDropdownPosAfterAnimation = function() {\n // Delay positioning the dropdown until all choices have been added so its height is correct.\n $timeout(function() {\n if ($select.dropdownPosition === 'up') {\n //Go UP\n setDropdownPosUp();\n } else {\n //AUTO\n element.removeClass(directionUpClassName);\n\n var offset = uisOffset(element);\n var offsetDropdown = uisOffset(dropdown);\n\n //https://code.google.com/p/chromium/issues/detail?id=342307#c4\n var scrollTop = $document[0].documentElement.scrollTop || $document[0].body.scrollTop; //To make it cross browser (blink, webkit, IE, Firefox).\n\n // Determine if the direction of the dropdown needs to be changed.\n if (offset.top + offset.height + offsetDropdown.height > scrollTop + $document[0].documentElement.clientHeight) {\n //Go UP\n setDropdownPosUp(offset, offsetDropdown);\n }else{\n //Go DOWN\n setDropdownPosDown(offset, offsetDropdown);\n }\n setDropdownHorizontalPos(offset, offsetDropdown);\n }\n\n // Display the dropdown once it has been positioned.\n dropdown.removeClass('ui-select-detached');\n });\n };\n\n var opened = false;\n\n scope.calculateDropdownPos = function() {\n if ($select.open) {\n dropdown = angular.element(element).querySelectorAll('.ui-select-dropdown');\n\n if (dropdown.length === 0) {\n return;\n }\n\n // Hide the dropdown so there is no flicker until $timeout is done executing.\n if ($select.search === '' && !opened) {\n dropdown.addClass('ui-select-detached');\n opened = true;\n }\n\n calculateDropdownPosAfterAnimation();\n } else {\n if (dropdown === null || dropdown.length === 0) {\n return;\n }\n\n // Reset the position of the dropdown.\n dropdown.removeClass('ui-select-detached');\n dropdown.removeClass('dropdown-menu-right');\n dropdown[0].style.position = '';\n dropdown[0].style.top = '';\n element.removeClass(directionUpClassName);\n }\n };\n };\n }\n };\n}]);\n\nuis.directive('uiSelectFooter', ['uiSelectConfig', function (uiSelectConfig) {\n return {\n templateUrl: function (tElement) {\n // Needed so the uiSelect can detect the transcluded content\n tElement.addClass('ui-select-footer');\n\n // Gets theme attribute from parent (ui-select)\n var theme = tElement.parent().attr('theme') || uiSelectConfig.theme;\n return theme + '/footer.tpl.html';\n },\n restrict: 'EA',\n transclude: true,\n replace: true\n };\n}]);\n\nuis.directive('uiSelectHeader', ['uiSelectConfig', function (uiSelectConfig) {\n return {\n templateUrl: function (tElement) {\n // Needed so the uiSelect can detect the transcluded content\n tElement.addClass('ui-select-header');\n\n // Gets theme attribute from parent (ui-select)\n var theme = tElement.parent().attr('theme') || uiSelectConfig.theme;\n return theme + '/header.tpl.html';\n },\n restrict: 'EA',\n transclude: true,\n replace: true\n };\n}]);\n\nuis.directive('uiSelectHeaderGroupSelectable', ['$timeout', function($timeout) {\n return {\n restrict: 'EA',\n require: ['^uiSelect'],\n scope: {\n isEnabled: \" model\n ngModel.$parsers.unshift(function () {\n var locals = {},\n result,\n resultMultiple = [];\n for (var j = $select.selected.length - 1; j >= 0; j--) {\n locals = {};\n locals[$select.parserResult.itemName] = $select.selected[j];\n result = $select.parserResult.modelMapper(scope, locals);\n resultMultiple.unshift(result);\n }\n return resultMultiple;\n });\n\n // From model --> view\n ngModel.$formatters.unshift(function (inputValue) {\n var data = $select.parserResult && $select.parserResult.source (scope, { $select : {search:''}}), //Overwrite $search\n locals = {},\n result;\n if (!data) return inputValue;\n var resultMultiple = [];\n var checkFnMultiple = function(list, value){\n if (!list || !list.length) return;\n for (var p = list.length - 1; p >= 0; p--) {\n locals[$select.parserResult.itemName] = list[p];\n result = $select.parserResult.modelMapper(scope, locals);\n if($select.parserResult.trackByExp){\n var propsItemNameMatches = /(\\w*)\\./.exec($select.parserResult.trackByExp);\n var matches = /\\.([^\\s]+)/.exec($select.parserResult.trackByExp);\n if(propsItemNameMatches && propsItemNameMatches.length > 0 && propsItemNameMatches[1] == $select.parserResult.itemName){\n if(matches && matches.length>0 && result[matches[1]] == value[matches[1]]){\n resultMultiple.unshift(list[p]);\n return true;\n }\n }\n }\n if (angular.equals(result,value)){\n resultMultiple.unshift(list[p]);\n return true;\n }\n }\n return false;\n };\n if (!inputValue) return resultMultiple; //If ngModel was undefined\n for (var k = inputValue.length - 1; k >= 0; k--) {\n //Check model array of currently selected items\n if (!checkFnMultiple($select.selected, inputValue[k])){\n //Check model array of all items available\n if (!checkFnMultiple(data, inputValue[k])){\n //If not found on previous lists, just add it directly to resultMultiple\n resultMultiple.unshift(inputValue[k]);\n }\n }\n }\n return resultMultiple;\n });\n\n //Watch for external model changes\n scope.$watchCollection(function(){ return ngModel.$modelValue; }, function(newValue, oldValue) {\n if (oldValue != newValue){\n //update the view value with fresh data from items, if there is a valid model value\n if(angular.isDefined(ngModel.$modelValue)) {\n ngModel.$modelValue = null; //Force scope model value and ngModel value to be out of sync to re-run formatters\n }\n $selectMultiple.refreshComponent();\n }\n });\n\n ngModel.$render = function() {\n // Make sure that model value is array\n if(!angular.isArray(ngModel.$viewValue)){\n // Have tolerance for null or undefined values\n if (isNil(ngModel.$viewValue)){\n ngModel.$viewValue = [];\n } else {\n throw uiSelectMinErr('multiarr', \"Expected model value to be array but got '{0}'\", ngModel.$viewValue);\n }\n }\n $select.selected = ngModel.$viewValue;\n $selectMultiple.refreshComponent();\n scope.$evalAsync(); //To force $digest\n };\n\n scope.$on('uis:select', function (event, item) {\n if($select.selected.length >= $select.limit) {\n return;\n }\n $select.selected.push(item);\n var locals = {};\n locals[$select.parserResult.itemName] = item;\n\n $timeout(function(){\n $select.onSelectCallback(scope, {\n $item: item,\n $model: $select.parserResult.modelMapper(scope, locals)\n });\n });\n $selectMultiple.updateModel();\n });\n\n scope.$on('uis:activate', function () {\n $selectMultiple.activeMatchIndex = -1;\n });\n\n scope.$watch('$select.disabled', function(newValue, oldValue) {\n // As the search input field may now become visible, it may be necessary to recompute its size\n if (oldValue && !newValue) $select.sizeSearchInput();\n });\n\n $select.searchInput.on('keydown', function(e) {\n var key = e.which;\n scope.$apply(function() {\n var processed = false;\n // var tagged = false; //Checkme\n if(KEY.isHorizontalMovement(key)){\n processed = _handleMatchSelection(key);\n }\n if (processed && key != KEY.TAB) {\n //TODO Check si el tab selecciona aun correctamente\n //Crear test\n $select.cancelEvent(e);\n }\n });\n });\n function _getCaretPosition(el) {\n if(angular.isNumber(el.selectionStart)) return el.selectionStart;\n // selectionStart is not supported in IE8 and we don't want hacky workarounds so we compromise\n else return el.value.length;\n }\n // Handles selected options in \"multiple\" mode\n function _handleMatchSelection(key){\n var caretPosition = _getCaretPosition($select.searchInput[0]),\n length = $select.selected.length,\n // none = -1,\n first = 0,\n last = length-1,\n curr = $selectMultiple.activeMatchIndex,\n next = $selectMultiple.activeMatchIndex+1,\n prev = $selectMultiple.activeMatchIndex-1,\n newIndex = curr;\n\n if(caretPosition > 0 || ($select.search.length && key == KEY.RIGHT)) return false;\n\n $select.close();\n\n function getNewActiveMatchIndex(){\n switch(key){\n case KEY.LEFT:\n // Select previous/first item\n if(~$selectMultiple.activeMatchIndex) return prev;\n // Select last item\n else return last;\n break;\n case KEY.RIGHT:\n // Open drop-down\n if(!~$selectMultiple.activeMatchIndex || curr === last){\n $select.activate();\n return false;\n }\n // Select next/last item\n else return next;\n break;\n case KEY.BACKSPACE:\n // Remove selected item and select previous/first\n if(~$selectMultiple.activeMatchIndex){\n if($selectMultiple.removeChoice(curr)) {\n return prev;\n } else {\n return curr;\n }\n\n } else {\n // If nothing yet selected, select last item\n return last;\n }\n break;\n case KEY.DELETE:\n // Remove selected item and select next item\n if(~$selectMultiple.activeMatchIndex){\n $selectMultiple.removeChoice($selectMultiple.activeMatchIndex);\n return curr;\n }\n else return false;\n }\n }\n\n newIndex = getNewActiveMatchIndex();\n\n if(!$select.selected.length || newIndex === false) $selectMultiple.activeMatchIndex = -1;\n else $selectMultiple.activeMatchIndex = Math.min(last,Math.max(first,newIndex));\n\n return true;\n }\n\n $select.searchInput.on('keyup', function(e) {\n\n if ( ! KEY.isVerticalMovement(e.which) ) {\n scope.$evalAsync( function () {\n $select.activeIndex = $select.taggingLabel === false ? -1 : 0;\n });\n }\n // Push a \"create new\" item into array if there is a search string\n if ( $select.tagging.isActivated && $select.search.length > 0 ) {\n\n // return early with these keys\n if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e) || e.which === KEY.ESC || KEY.isVerticalMovement(e.which) ) {\n return;\n }\n // always reset the activeIndex to the first item when tagging\n $select.activeIndex = $select.taggingLabel === false ? -1 : 0;\n // taggingLabel === false bypasses all of this\n if ($select.taggingLabel === false) return;\n\n var items = angular.copy( $select.items );\n var stashArr = angular.copy( $select.items );\n var newItem;\n var item;\n var hasTag = false;\n var dupeIndex = -1;\n var tagItems;\n var tagItem;\n\n // case for object tagging via transform `$select.tagging.fct` function\n if ( $select.tagging.fct !== undefined) {\n tagItems = $select.$filter('filter')(items,{'isTag': true});\n if ( tagItems.length > 0 ) {\n tagItem = tagItems[0];\n }\n // remove the first element, if it has the `isTag` prop we generate a new one with each keyup, shaving the previous\n if ( items.length > 0 && tagItem ) {\n hasTag = true;\n items = items.slice(1,items.length);\n stashArr = stashArr.slice(1,stashArr.length);\n }\n newItem = $select.tagging.fct($select.search);\n // verify the new tag doesn't match the value of a possible selection choice or an already selected item.\n if (\n stashArr.some(function (origItem) {\n return angular.equals(origItem, newItem);\n }) ||\n $select.selected.some(function (origItem) {\n return angular.equals(origItem, newItem);\n })\n ) {\n scope.$evalAsync(function () {\n $select.activeIndex = 0;\n $select.items = items;\n });\n return;\n }\n if (newItem) newItem.isTag = true;\n // handle newItem string and stripping dupes in tagging string context\n } else {\n // find any tagging items already in the $select.items array and store them\n tagItems = $select.$filter('filter')(items,function (item) {\n return item.match($select.taggingLabel);\n });\n if ( tagItems.length > 0 ) {\n tagItem = tagItems[0];\n }\n item = items[0];\n // remove existing tag item if found (should only ever be one tag item)\n if ( item !== undefined && items.length > 0 && tagItem ) {\n hasTag = true;\n items = items.slice(1,items.length);\n stashArr = stashArr.slice(1,stashArr.length);\n }\n newItem = $select.search+' '+$select.taggingLabel;\n if ( _findApproxDupe($select.selected, $select.search) > -1 ) {\n return;\n }\n // verify the the tag doesn't match the value of an existing item from\n // the searched data set or the items already selected\n if ( _findCaseInsensitiveDupe(stashArr.concat($select.selected)) ) {\n // if there is a tag from prev iteration, strip it / queue the change\n // and return early\n if ( hasTag ) {\n items = stashArr;\n scope.$evalAsync( function () {\n $select.activeIndex = 0;\n $select.items = items;\n });\n }\n return;\n }\n if ( _findCaseInsensitiveDupe(stashArr) ) {\n // if there is a tag from prev iteration, strip it\n if ( hasTag ) {\n $select.items = stashArr.slice(1,stashArr.length);\n }\n return;\n }\n }\n if ( hasTag ) dupeIndex = _findApproxDupe($select.selected, newItem);\n // dupe found, shave the first item\n if ( dupeIndex > -1 ) {\n items = items.slice(dupeIndex+1,items.length-1);\n } else {\n items = [];\n if (newItem) items.push(newItem);\n items = items.concat(stashArr);\n }\n scope.$evalAsync( function () {\n $select.activeIndex = 0;\n $select.items = items;\n\n if ($select.isGrouped) {\n // update item references in groups, so that indexOf will work after angular.copy\n var itemsWithoutTag = newItem ? items.slice(1) : items;\n $select.setItemsFn(itemsWithoutTag);\n if (newItem) {\n // add tag item as a new group\n $select.items.unshift(newItem);\n $select.groups.unshift({name: '', items: [newItem], tagging: true});\n }\n }\n });\n }\n });\n function _findCaseInsensitiveDupe(arr) {\n if ( arr === undefined || $select.search === undefined ) {\n return false;\n }\n var hasDupe = arr.filter( function (origItem) {\n if ( $select.search.toUpperCase() === undefined || origItem === undefined ) {\n return false;\n }\n return origItem.toUpperCase() === $select.search.toUpperCase();\n }).length > 0;\n\n return hasDupe;\n }\n function _findApproxDupe(haystack, needle) {\n var dupeIndex = -1;\n if(angular.isArray(haystack)) {\n var tempArr = angular.copy(haystack);\n for (var i = 0; i
model\n ngModel.$parsers.unshift(function (inputValue) {\n // Keep original value for undefined and null\n if (isNil(inputValue)) {\n return inputValue;\n }\n\n // Allow the null value to be considered a valid model value\n if (inputValue.$$null) {\n return inputValue[$select.itemProperty];\n }\n\n var locals = {};\n locals[$select.parserResult.itemName] = inputValue;\n return $select.parserResult.modelMapper(scope, locals);\n });\n\n //From model --> view\n ngModel.$formatters.unshift(function (inputValue) {\n // Keep original value for undefined and null\n if (isNil(inputValue)) {\n return inputValue;\n }\n\n var data = $select.parserResult && $select.parserResult.source (scope, { $select : {search:''}}), //Overwrite $search\n locals = {},\n result;\n if (data){\n var checkFnSingle = function(d){\n locals[$select.parserResult.itemName] = d;\n result = $select.parserResult.modelMapper(scope, locals);\n return result === inputValue;\n };\n //If possible pass same object stored in $select.selected\n if ($select.selected && checkFnSingle($select.selected)) {\n return $select.selected;\n }\n for (var i = data.length - 1; i >= 0; i--) {\n if (checkFnSingle(data[i])) return data[i];\n }\n }\n return inputValue;\n });\n\n //Update viewValue if model change\n scope.$watch('$select.selected', function(newValue) {\n if (ngModel.$viewValue !== newValue) {\n ngModel.$setViewValue(newValue);\n }\n });\n\n ngModel.$render = function() {\n $select.selected = ngModel.$viewValue;\n };\n\n scope.$on('uis:select', function (event, item) {\n $select.selected = item;\n var locals = {};\n locals[$select.parserResult.itemName] = item;\n\n $timeout(function() {\n $select.onSelectCallback(scope, {\n $item: item,\n $model: isNil(item) ? item : $select.parserResult.modelMapper(scope, locals)\n });\n });\n });\n\n scope.$on('uis:close', function (event, skipFocusser) {\n $timeout(function(){\n $select.focusser.prop('disabled', false);\n if (!skipFocusser) $select.focusser[0].focus();\n },0,false);\n });\n\n scope.$on('uis:activate', function () {\n focusser.prop('disabled', true); //Will reactivate it on .close()\n });\n //Idea from: https://github.com/ivaynberg/select2/blob/79b5bf6db918d7560bdd959109b7bcfb47edaf43/select2.js#L1954\n var focusser = angular.element(\"\");\n $compile(focusser)(scope);\n $select.focusser = focusser;\n //Input that will handle focus\n $select.focusInput = focusser;\n\n // Move focuser out of because append-to-body=\"true\" will move the focusser out of :tabbable order.\n element.parent().parent().prepend(focusser);\n\n scope.$on('$destroy', function() {\n if ($select.focusser) {\n $select.focusser.remove();\n }\n });\n\n focusser.on(\"focus\", function(){\n scope.$evalAsync(function(){\n $select.focus = true;\n });\n });\n\n focusser.on(\"blur\", function(){\n scope.$evalAsync(function(){\n $select.focus = false;\n });\n });\n\n focusser.on(\"keydown\", function(e){\n if (e.which === KEY.BACKSPACE && $select.backspaceReset !== false) {\n $select.select($select.nullValue);\n $select.cancelEvent(e);\n scope.$apply();\n return;\n }\n\n if (e.which === KEY.TAB) {\n $select.tabNavigate(e.shiftKey);\n $select.cancelEvent(e);\n return;\n }\n\n if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e) || e.which === KEY.ESC) {\n return;\n }\n\n if (e.which == KEY.DOWN || e.which == KEY.UP || e.which == KEY.ENTER || e.which == KEY.SPACE){\n $select.cancelEvent(e);\n $select.activate();\n }\n\n scope.$digest();\n });\n\n focusser.on(\"keyup input\", function(e){\n if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e) || e.which === KEY.ESC || e.which == KEY.ENTER || e.which === KEY.BACKSPACE) {\n return;\n }\n\n $select.activate(focusser.val()); //User pressed some regular key, so we pass it to the search input\n focusser.val('');\n scope.$digest();\n });\n }\n };\n}]);\n\n// Make multiple matches sortable\nuis.directive('uiSelectSort', ['$timeout', 'uiSelectConfig', 'uiSelectMinErr', function($timeout, uiSelectConfig, uiSelectMinErr) {\n return {\n require: ['^^uiSelect', '^ngModel'],\n link: function(scope, element, attrs, ctrls) {\n if (scope[attrs.uiSelectSort] === null) {\n throw uiSelectMinErr('sort', 'Expected a list to sort');\n }\n\n var $select = ctrls[0];\n var $ngModel = ctrls[1];\n\n var options = angular.extend({\n axis: 'horizontal'\n },\n scope.$eval(attrs.uiSelectSortOptions));\n\n var axis = options.axis;\n var draggingClassName = 'dragging';\n var droppingClassName = 'dropping';\n var droppingBeforeClassName = 'dropping-before';\n var droppingAfterClassName = 'dropping-after';\n\n scope.$watch(function(){\n return $select.sortable;\n }, function(newValue){\n if (newValue) {\n element.attr('draggable', true);\n } else {\n element.removeAttr('draggable');\n }\n });\n\n if (element.data('disallowDrop')) {\n return;\n }\n\n element.on('dragstart', function(event) {\n element.addClass(draggingClassName);\n\n (event.dataTransfer || event.originalEvent.dataTransfer).setData('text', scope.$index.toString());\n });\n\n element.on('dragend', function() {\n removeClass(draggingClassName);\n });\n\n var move = function(from, to) {\n /*jshint validthis: true */\n this.splice(to, 0, this.splice(from, 1)[0]);\n };\n\n var removeClass = function(className) {\n angular.forEach($select.$element.querySelectorAll('.' + className), function(el){\n angular.element(el).removeClass(className);\n });\n };\n\n var dragOverHandler = function(event) {\n event.preventDefault();\n\n var offset = axis === 'vertical' ? event.offsetY || event.layerY || (event.originalEvent ? event.originalEvent.offsetY : 0) : event.offsetX || event.layerX || (event.originalEvent ? event.originalEvent.offsetX : 0);\n\n if (offset < (this[axis === 'vertical' ? 'offsetHeight' : 'offsetWidth'] / 2)) {\n removeClass(droppingAfterClassName);\n element.addClass(droppingBeforeClassName);\n\n } else {\n removeClass(droppingBeforeClassName);\n element.addClass(droppingAfterClassName);\n }\n };\n\n var dropTimeout;\n\n var dropHandler = function(event) {\n event.preventDefault();\n\n var droppedItemIndex = parseInt((event.dataTransfer || event.originalEvent.dataTransfer).getData('text'), 10);\n\n // prevent event firing multiple times in firefox\n $timeout.cancel(dropTimeout);\n dropTimeout = $timeout(function() {\n _dropHandler(droppedItemIndex);\n }, 20);\n };\n\n var _dropHandler = function(droppedItemIndex) {\n var theList = scope.$eval(attrs.uiSelectSort);\n var itemToMove = theList[droppedItemIndex];\n var newIndex = null;\n\n if (element.hasClass(droppingBeforeClassName)) {\n if (droppedItemIndex < scope.$index) {\n newIndex = scope.$index - 1;\n } else {\n newIndex = scope.$index;\n }\n } else {\n if (droppedItemIndex < scope.$index) {\n newIndex = scope.$index;\n } else {\n newIndex = scope.$index + 1;\n }\n }\n\n move.apply(theList, [droppedItemIndex, newIndex]);\n\n $ngModel.$setViewValue(Date.now());\n\n scope.$apply(function() {\n scope.$emit('uiSelectSort:change', {\n array: theList,\n item: itemToMove,\n from: droppedItemIndex,\n to: newIndex\n });\n });\n\n removeClass(droppingClassName);\n removeClass(droppingBeforeClassName);\n removeClass(droppingAfterClassName);\n\n element.off('drop', dropHandler);\n };\n\n element.on('dragenter', function() {\n if (element.hasClass(draggingClassName)) {\n return;\n }\n\n element.addClass(droppingClassName);\n\n element.on('dragover', dragOverHandler);\n element.on('drop', dropHandler);\n });\n\n element.on('dragleave', function(event) {\n if (event.target != element) {\n return;\n }\n\n removeClass(droppingClassName);\n removeClass(droppingBeforeClassName);\n removeClass(droppingAfterClassName);\n\n element.off('dragover', dragOverHandler);\n element.off('drop', dropHandler);\n });\n }\n };\n}]);\n\n/**\n * Debounces functions\n *\n * Taken from UI Bootstrap $$debounce source code\n * See https://github.com/angular-ui/bootstrap/blob/master/src/debounce/debounce.js\n *\n */\nuis.factory('$$uisDebounce', ['$timeout', function($timeout) {\n return function(callback, debounceTime) {\n var timeoutPromise;\n\n return function() {\n var self = this;\n var args = Array.prototype.slice.call(arguments);\n if (timeoutPromise) {\n $timeout.cancel(timeoutPromise);\n }\n\n timeoutPromise = $timeout(function() {\n callback.apply(self, args);\n }, debounceTime);\n };\n };\n}]);\n\nuis.directive('uisOpenClose', ['$parse', '$timeout', function ($parse, $timeout) {\n return {\n restrict: 'A',\n require: 'uiSelect',\n link: function (scope, element, attrs, $select) {\n $select.onOpenCloseCallback = $parse(attrs.uisOpenClose);\n\n scope.$watch('$select.open', function (isOpen, previousState) {\n if (isOpen !== previousState) {\n $timeout(function () {\n $select.onOpenCloseCallback(scope, {\n isOpen: isOpen\n });\n });\n }\n });\n }\n };\n}]);\n\n/**\n * Parses \"repeat\" attribute.\n *\n * Taken from AngularJS ngRepeat source code\n * See https://github.com/angular/angular.js/blob/v1.2.15/src/ng/directive/ngRepeat.js#L211\n *\n * Original discussion about parsing \"repeat\" attribute instead of fully relying on ng-repeat:\n * https://github.com/angular-ui/ui-select/commit/5dd63ad#commitcomment-5504697\n */\n\nuis.service('uisRepeatParser', ['uiSelectMinErr','$parse', function(uiSelectMinErr, $parse) {\n var self = this;\n\n /**\n * Example:\n * expression = \"address in addresses | filter: {street: $select.search} track by $index\"\n * itemName = \"address\",\n * source = \"addresses | filter: {street: $select.search}\",\n * trackByExp = \"$index\",\n */\n self.parse = function(expression) {\n\n\n var match;\n //var isObjectCollection = /\\(\\s*([\\$\\w][\\$\\w]*)\\s*,\\s*([\\$\\w][\\$\\w]*)\\s*\\)/.test(expression);\n // If an array is used as collection\n\n // if (isObjectCollection){\n // 000000000000000000000000000000111111111000000000000000222222222222220033333333333333333333330000444444444444444444000000000000000055555555555000000000000000000000066666666600000000\n match = expression.match(/^\\s*(?:([\\s\\S]+?)\\s+as\\s+)?(?:([\\$\\w][\\$\\w]*)|(?:\\(\\s*([\\$\\w][\\$\\w]*)\\s*,\\s*([\\$\\w][\\$\\w]*)\\s*\\)))\\s+in\\s+(\\s*[\\s\\S]+?)?(?:\\s+track\\s+by\\s+([\\s\\S]+?))?\\s*$/);\n\n // 1 Alias\n // 2 Item\n // 3 Key on (key,value)\n // 4 Value on (key,value)\n // 5 Source expression (including filters)\n // 6 Track by\n\n if (!match) {\n throw uiSelectMinErr('iexp', \"Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.\",\n expression);\n }\n \n var source = match[5], \n filters = '';\n\n // When using (key,value) ui-select requires filters to be extracted, since the object\n // is converted to an array for $select.items \n // (in which case the filters need to be reapplied)\n if (match[3]) {\n // Remove any enclosing parenthesis\n source = match[5].replace(/(^\\()|(\\)$)/g, '');\n // match all after | but not after ||\n var filterMatch = match[5].match(/^\\s*(?:[\\s\\S]+?)(?:[^\\|]|\\|\\|)+([\\s\\S]*)\\s*$/);\n if(filterMatch && filterMatch[1].trim()) {\n filters = filterMatch[1];\n source = source.replace(filters, '');\n } \n }\n\n return {\n itemName: match[4] || match[2], // (lhs) Left-hand side,\n keyName: match[3], //for (key, value) syntax\n source: $parse(source),\n filters: filters,\n trackByExp: match[6],\n modelMapper: $parse(match[1] || match[4] || match[2]),\n repeatExpression: function (grouped) {\n var expression = this.itemName + ' in ' + (grouped ? '$group.items' : '$select.items');\n if (this.trackByExp) {\n expression += ' track by ' + this.trackByExp;\n }\n return expression;\n } \n };\n\n };\n\n self.getGroupNgRepeatExpression = function() {\n return '$group in $select.groups track by $group.name';\n };\n\n}]);\n\n}());\nangular.module(\"ui.select\").run([\"$templateCache\", function($templateCache) {$templateCache.put(\"bootstrap/choices.tpl.html\",\"\");\n$templateCache.put(\"bootstrap/footer.tpl.html\",\"\");\n$templateCache.put(\"bootstrap/header.tpl.html\",\"\");\n$templateCache.put(\"bootstrap/match-multiple.tpl.html\",\" × \");\n$templateCache.put(\"bootstrap/match.tpl.html\",\"
\");\n$templateCache.put(\"bootstrap/no-choice.tpl.html\",\"\");\n$templateCache.put(\"bootstrap/select-multiple.tpl.html\",\" 0\\\" class=\\\"ui-select-dropdown dropdown-menu\\\">
\");\n$templateCache.put(\"bootstrap/select.tpl.html\",\" 0\\\" class=\\\"ui-select-dropdown dropdown-menu\\\">
\");\n$templateCache.put(\"selectize/choices.tpl.html\",\"\");\n$templateCache.put(\"selectize/footer.tpl.html\",\"\");\n$templateCache.put(\"selectize/header.tpl.html\",\"\");\n$templateCache.put(\"selectize/match-multiple.tpl.html\",\" ×
\");\n$templateCache.put(\"selectize/match.tpl.html\",\"
\");\n$templateCache.put(\"selectize/no-choice.tpl.html\",\"\");\n$templateCache.put(\"selectize/select-multiple.tpl.html\",\"\");\n$templateCache.put(\"selectize/select.tpl.html\",\"\");\n$templateCache.put(\"select2/choices.tpl.html\",\"\");\n$templateCache.put(\"select2/footer.tpl.html\",\"\");\n$templateCache.put(\"select2/header.tpl.html\",\"\");\n$templateCache.put(\"select2/match-multiple.tpl.html\",\" \");\n$templateCache.put(\"select2/match.tpl.html\",\" \");\n$templateCache.put(\"select2/no-choice.tpl.html\",\"\");\n$templateCache.put(\"select2/select-multiple.tpl.html\",\"\");\n$templateCache.put(\"select2/select.tpl.html\",\"\");}]);",null,null]}
\ No newline at end of file
+{"version":3,"sources":["select.js","select_without_templates.js","templates.js"],"names":["isNil","value","undefined","uiSelectCtrl","$scope","$element","$timeout","$filter","$$uisDebounce","RepeatParser","uiSelectMinErr","uiSelectConfig","$parse","$window","isEmpty","selected","ctrl","$$null","multiple","length","getSelectedText","find","text","getPlaceholder","placeholder","_findIndex","collection","predicate","thisArg","findIndex","list","Object","i","call","_resetSearchInput","resetSearchInput","search","EMPTY_SEARCH","setActiveIndexToSelected","active","parserResult","angular","equals","nullValue","items","isNullValue","trackedValue","getTrackedValue","item","_isItemDisabled","activeIndex","_groupsFilter","groups","groupNames","j","result","name","push","itemProperty","activate","initSearchValue","avoidReset","disabled","open","searchEnabled","close","$broadcast","taggingLabel","focusSearchInput","tagging","isActivated","_ensureHighlightVisible","searchInput","focus","findGroupByName","noStrict","filter","group","parseRepeatAttr","repeatAttr","groupByExp","groupFilterExp","createArrayFromObject","origSrc","originalSource","$uisSource","keys","map","v","keyName","createNullItem","nullItem","needsNullItem","required","nullLabel","toLowerCase","indexOf","some","onOriginalSourceChange","newVal","oldVal","onSourceChange","isArray","refreshItems","isDefined","ngModel","$modelValue","data","excludeSelected","isNotSelected","selectedItem","selectedItems","every","source","removeSelected","setItemsFn","calculateDropdownPos","updateFlatItems","unshift","updateGroups","groupFn","$eval","forEach","groupName","isFunction","groupFilterFn","reduce","concat","parse","isGrouped","itemName","filters","$watch","$watchCollection","refresh","refreshAttr","refreshDelayPromise","cancel","$select","minimumInputLength","refreshPromise","then","refreshing","refreshDelay","isActive","itemScope","itemIndex","isUndefined","onHighlightCallback","_isItemSelected","selection","_updateItemDisabled","isDisabled","disabledItemIndex","disabledItems","splice","disableChoiceExpression","isTag","select","skipFocusser","$event","clickTriggeredSelect","type","fct","replace","trim","closeOnSelect","$setTouched","setFocus","clear","stopPropagation","focusser","toggle","e","cancelEvent","_initaliseLockedChoices","doInitalise","_updateItemLocked","isLocked","lockedItemIndex","lockedItems","_isItemlocked","isLockedFn","lockChoiceExpression","sizeSearchInput","calculateContainerWidth","container","clientWidth","input","offsetParent","updateIfVisible","containerWidth","inputWidth","offsetLeft","css","sizeWatch","updaterScheduled","$$postDigest","noop","_handleDropDownSelection","key","shiftKey","processed","KEY","DOWN","UP","len","Math","max","min","TAB","tabNavigate","ENTER","ESC","preventDefault","focusEl","focusable","element","index","el","onSearchInputKeyDown","which","$apply","tagged","taggingTokens","tokens","MAP","keyCode","triggerHandler","newItem","isVerticalMovement","onSearchInputPaste","window","clipboardData","getData","originalEvent","separator","toSeparator","split","oldsearch","paste","onSearchInputTagged","querySelectorAll","choices","highlighted","posY","offsetTop","clientHeight","scrollTop","height","offsetHeight","isLockChoiceExpressionDefined","onActiveIndexChange","attr","generatedId","onDestroy","off","onResize","onOpenChange","removeAttr","this","dropdownXPosition","dropdownYPosition","sortable","spinnerClass","spinnerEnabled","on","$on","SPACE","LEFT","RIGHT","SHIFT","CTRL","ALT","PAGE_UP","PAGE_DOWN","HOME","END","BACKSPACE","DELETE","COMMAND","91","8","9","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","43","44","45","46","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","96","97","98","99","100","101","102","103","104","105","106","107","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","144","145","186","187","188","189","190","191","192","219","220","221","222","isControl","k","metaKey","ctrlKey","isFunctionKey","isHorizontalMovement","sep","prototype","selector","closest","elem","matchesSelector","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","bind","parentElement","latestId","uis","module","constant","theme","generateId","appendToBody","backspaceReset","service","minErr","$$minErr","error","apply","arguments","message","RegExp","Error","directive","link","scope","attrs","transclude","clone","append","escapeRegexp","queryToEscape","matchItem","query","factory","$document","boundingClientRect","getBoundingClientRect","width","prop","top","pageYOffset","documentElement","left","pageXOffset","scrollLeft","$compile","restrict","require","templateUrl","tElement","addClass","parent","compile","tAttrs","repeat","groupBy","groupFilter","getGroupNgRepeatExpression","repeatExpression","rowsInner","clickTarget","document","addEventListener","uiDisableChoice","onHighlight","parseInt","position","String","newValue","$observe","controller","uisOffset","controllerAs","match","exec","ngClass","combined","inputId","id","ctrls","transcludeFn","calculateSelectLeftPosition","offset","body","edgeOffscreenAmount","paddingFromEdge","leftPosition","closeOnClick","contains","target","srcElement","jQuery","focusableControls","targetController","tagName","$digest","closeOnResize","closeOnScroll","positionDropdown","style","after","originalWidth","appendChild","resetDropdown","removeEventListener","replaceWith","resetFocus","$fieldset","dropdown","baseTitle","title","focusserTitle","focusserId","onSelectCallback","onSelect","onRemoveCallback","onRemove","choiceGrouped","tabindex","limit","taggingEval","ngRequired","oldRequired","autofocus","focusOn","transcluded","transcludedMatch","transcludedChoices","transcludedNoChoice","transcludedHeader","remove","transcludedFooter","isOpen","$evalAsync","visibility","removeClass","offsetDropdown","scrollTarget","xState","toggleClass","yState","isEnabled","getElements","console","enableClick","hasClass","disableClick","getAttribute","attribute","hasAttribute","multi","uiLockChoice","activeMatchIndex","updateModel","$setViewValue","Date","now","refreshComponent","removeChoice","removedChoice","locals","$item","$model","modelMapper","_getCaretPosition","isNumber","selectionStart","_handleMatchSelection","getNewActiveMatchIndex","$selectMultiple","prev","last","curr","next","caretPosition","first","newIndex","_findCaseInsensitiveDupe","arr","hasDupe","origItem","toUpperCase","_findApproxDupe","haystack","needle","dupeIndex","tempArr","copy","mockObj","isObject","$isEmpty","$parsers","resultMultiple","$formatters","inputValue","checkFnMultiple","p","trackByExp","propsItemNameMatches","oldValue","$render","$viewValue","event","tagItems","tagItem","stashArr","hasTag","slice","itemsWithoutTag","checkFnSingle","d","prepend","val","uiSelectSort","$ngModel","options","extend","axis","uiSelectSortOptions","draggingClassName","droppingClassName","droppingBeforeClassName","droppingAfterClassName","dataTransfer","setData","$index","toString","dropTimeout","move","from","to","className","dragOverHandler","offsetY","layerY","offsetX","layerX","dropHandler","droppedItemIndex","_dropHandler","theList","itemToMove","$emit","array","callback","debounceTime","timeoutPromise","self","args","Array","onOpenCloseCallback","uisOpenClose","previousState","expression","filterMatch","grouped","run","$templateCache","put"],"mappings":"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","file":"select.min.js","sourcesContent":["/*! ui-select@0.20.0 https://github.com/bdb-opensource/ui-select (MIT License) */\n(function () { \n\"use strict\";\nvar KEY = {\n TAB: 9,\n ENTER: 13,\n ESC: 27,\n SPACE: 32,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n HOME: 36,\n END: 35,\n BACKSPACE: 8,\n DELETE: 46,\n COMMAND: 91,\n\n MAP: { 91 : \"COMMAND\", 8 : \"BACKSPACE\" , 9 : \"TAB\" , 13 : \"ENTER\" , 16 : \"SHIFT\" , 17 : \"CTRL\" , 18 : \"ALT\" , 19 : \"PAUSEBREAK\" , 20 : \"CAPSLOCK\" , 27 : \"ESC\" , 32 : \"SPACE\" , 33 : \"PAGE_UP\", 34 : \"PAGE_DOWN\" , 35 : \"END\" , 36 : \"HOME\" , 37 : \"LEFT\" , 38 : \"UP\" , 39 : \"RIGHT\" , 40 : \"DOWN\" , 43 : \"+\" , 44 : \"PRINTSCREEN\" , 45 : \"INSERT\" , 46 : \"DELETE\", 48 : \"0\" , 49 : \"1\" , 50 : \"2\" , 51 : \"3\" , 52 : \"4\" , 53 : \"5\" , 54 : \"6\" , 55 : \"7\" , 56 : \"8\" , 57 : \"9\" , 59 : \";\", 61 : \"=\" , 65 : \"A\" , 66 : \"B\" , 67 : \"C\" , 68 : \"D\" , 69 : \"E\" , 70 : \"F\" , 71 : \"G\" , 72 : \"H\" , 73 : \"I\" , 74 : \"J\" , 75 : \"K\" , 76 : \"L\", 77 : \"M\" , 78 : \"N\" , 79 : \"O\" , 80 : \"P\" , 81 : \"Q\" , 82 : \"R\" , 83 : \"S\" , 84 : \"T\" , 85 : \"U\" , 86 : \"V\" , 87 : \"W\" , 88 : \"X\" , 89 : \"Y\" , 90 : \"Z\", 96 : \"0\" , 97 : \"1\" , 98 : \"2\" , 99 : \"3\" , 100 : \"4\" , 101 : \"5\" , 102 : \"6\" , 103 : \"7\" , 104 : \"8\" , 105 : \"9\", 106 : \"*\" , 107 : \"+\" , 109 : \"-\" , 110 : \".\" , 111 : \"/\", 112 : \"F1\" , 113 : \"F2\" , 114 : \"F3\" , 115 : \"F4\" , 116 : \"F5\" , 117 : \"F6\" , 118 : \"F7\" , 119 : \"F8\" , 120 : \"F9\" , 121 : \"F10\" , 122 : \"F11\" , 123 : \"F12\", 144 : \"NUMLOCK\" , 145 : \"SCROLLLOCK\" , 186 : \";\" , 187 : \"=\" , 188 : \",\" , 189 : \"-\" , 190 : \".\" , 191 : \"/\" , 192 : \"`\" , 219 : \"[\" , 220 : \"\\\\\" , 221 : \"]\" , 222 : \"'\"\n },\n\n isControl: function (e) {\n var k = e.which;\n switch (k) {\n case KEY.COMMAND:\n case KEY.SHIFT:\n case KEY.CTRL:\n return true;\n }\n\n if (e.metaKey || e.ctrlKey) return true;\n\n return false;\n },\n isFunctionKey: function (k) {\n k = k.which ? k.which : k;\n return k >= 112 && k <= 123;\n },\n isVerticalMovement: function (k){\n return ~[KEY.UP, KEY.DOWN].indexOf(k);\n },\n isHorizontalMovement: function (k){\n return ~[KEY.LEFT,KEY.RIGHT,KEY.BACKSPACE,KEY.DELETE].indexOf(k);\n },\n toSeparator: function (k) {\n var sep = {ENTER:\"\\n\",TAB:\"\\t\",SPACE:\" \"}[k];\n if (sep) return sep;\n // return undefined for special keys other than enter, tab or space.\n // no way to use them to cut strings.\n return KEY[k] ? undefined : k;\n }\n };\n\nfunction isNil(value) {\n return value === undefined || value === null;\n}\n\n/**\n * Add querySelectorAll() to jqLite.\n *\n * jqLite find() is limited to lookups by tag name.\n * TODO This will change with future versions of AngularJS, to be removed when this happens\n *\n * See jqLite.find - why not use querySelectorAll? https://github.com/angular/angular.js/issues/3586\n * See feat(jqLite): use querySelectorAll instead of getElementsByTagName in jqLite.find https://github.com/angular/angular.js/pull/3598\n */\nif (angular.element.prototype.querySelectorAll === undefined) {\n angular.element.prototype.querySelectorAll = function(selector) {\n return angular.element(this[0].querySelectorAll(selector));\n };\n}\n\n/**\n * Add closest() to jqLite.\n */\nif (angular.element.prototype.closest === undefined) {\n angular.element.prototype.closest = function( selector) {\n var elem = this[0];\n var matchesSelector = elem.matches || elem.webkitMatchesSelector || elem.mozMatchesSelector || elem.msMatchesSelector;\n\n while (elem) {\n if (matchesSelector.bind(elem)(selector)) {\n return elem;\n } else {\n elem = elem.parentElement;\n }\n }\n return false;\n };\n}\n\nvar latestId = 0;\n\nvar uis = angular.module('ui.select', [])\n\n.constant('uiSelectConfig', {\n theme: 'bootstrap',\n searchEnabled: true,\n sortable: false,\n placeholder: '', // Empty by default, like HTML tag