diff --git a/dist/select.css b/dist/select.css index 0001584a2..82dd02f0b 100644 --- a/dist/select.css +++ b/dist/select.css @@ -18,11 +18,6 @@ top: 0 !important; } -.ui-select-detached { - position: fixed; - opacity: 0; -} - .ui-select-choices-row { position: relative; } diff --git a/dist/select.js b/dist/select.js index b6a123607..922a8afc8 100644 --- a/dist/select.js +++ b/dist/select.js @@ -106,7 +106,8 @@ var uis = angular.module('ui.select', []) refreshDelay: 1000, // In milliseconds closeOnSelect: true, skipFocusser: false, - dropdownPosition: 'auto', + dropdownXPosition: 'auto', + dropdownYPosition: 'auto', removeSelected: true, resetSearchInput: true, generateId: function() { @@ -234,7 +235,11 @@ uis.directive('uiSelectChoices', $select.disableChoiceExpression = attrs.uiDisableChoice; $select.onHighlightCallback = attrs.onHighlight; $select.minimumInputLength = parseInt(attrs.minimumInputLength) || 0; - $select.dropdownPosition = attrs.position ? attrs.position.toLowerCase() : uiSelectConfig.dropdownPosition; + + // Position may be: [auto|up|down] [auto|left|right]. + var position = String(attrs.position || '').toLowerCase().split(/\s+/g); + $select.dropdownYPosition = position[0] || uiSelectConfig.dropdownYPosition; + $select.dropdownXPosition = position[1] || uiSelectConfig.dropdownXPosition; scope.$watch('$select.search', function(newValue) { if(newValue && !$select.open && $select.multiple) $select.activate(false, true); @@ -301,7 +306,8 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat ctrl.closeOnSelect = true; //Initialized inside uiSelect directive link function ctrl.disableChoiceExpression = undefined; // Initialized inside uiSelectChoices directive link function ctrl.disabled = false; - ctrl.dropdownPosition = 'auto'; + ctrl.dropdownXPosition = 'auto'; + ctrl.dropdownYPosition = 'auto'; ctrl.focus = false; ctrl.focusser = undefined; //Reference to input element used to handle focus events ctrl.items = []; //All available choices @@ -368,7 +374,8 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat //#region Controller Functions function isEmpty() { - return isNil(ctrl.selected) || ctrl.selected === '' || ctrl.selected.$$null || (ctrl.multiple && ctrl.selected.length === 0); + var selected = ctrl.selected; + return isNil(selected) || selected === '' || selected.$$null || (ctrl.multiple && !selected.length); } function getSelectedText() { @@ -376,7 +383,8 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat } function getPlaceholder() { - if (ctrl.selected && ctrl.selected.length) { return; } + var selected = ctrl.selected; + if (selected && selected.length) { return; } return ctrl.placeholder; } @@ -415,15 +423,15 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat // prototype. Otherwise, do equality checks. var active = -1; var selected = ctrl.selected; + var parserResult = ctrl.parserResult; if (angular.equals(selected, ctrl.nullValue)) { active = _findIndex(ctrl.items, isNullValue); - } else if (ctrl.items.length) { - var trackBy = ctrl.parserResult && ctrl.parserResult.trackByExp; - var trackSkipFirst = trackBy ? trackBy.indexOf('.') : -1; - var getter = trackSkipFirst > -1 ? $parse(trackBy.slice(trackSkipFirst + 1)) : function(obj) { return obj; }; - var trackedValue = getter(selected); + } else if (parserResult && ctrl.items.length) { + // If tracked by option.field.id, ng-model={field: {id}}, and items [{field: {id}, oopsNotSelected: true}], + // angular.equals will not find the ng-model, thus leaving unselected, due to oopsNotSelected. + var trackedValue = parserResult.getTrackedValue($scope, selected); active = _findIndex(ctrl.items, function(item) { - return angular.equals(getter(item), trackedValue); + return angular.equals(parserResult.getTrackedValue($scope, item), trackedValue); }); } @@ -471,14 +479,14 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat } $timeout(function() { - ctrl.focusSearchInput(initSearchValue); + focusSearchInput(initSearchValue); if (!ctrl.tagging.isActivated && ctrl.items.length > 1 && ctrl.open) { _ensureHighlightVisible(); } }); } else if (ctrl.open && !ctrl.searchEnabled) { // Close the selection if we don't have search enabled, and we click on the select again - ctrl.close(); + close(); } } @@ -565,16 +573,13 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat //TODO should implement for single mode removeSelected var selectedItems = ctrl.selected; data = data || ctrl.parserResult.source($scope) || ctrl.items || []; - if (!ctrl.multiple || !ctrl.removeSelected || ctrl.isEmpty() || (angular.isArray(selectedItems) && !selectedItems.length)) { + if (!ctrl.multiple || !ctrl.removeSelected || isEmpty() || (angular.isArray(selectedItems) && !selectedItems.length)) { ctrl.setItemsFn(data); } else if (!isNil(data)) { ctrl.setItemsFn(data.filter(excludeSelected)); } - if (ctrl.dropdownPosition === 'auto' || ctrl.dropdownPosition === 'up') { - $scope.calculateDropdownPos(); - } - + $timeout($scope.calculateDropdownPos); $scope.$broadcast('uis:refresh'); function excludeSelected(item) { @@ -604,7 +609,7 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat ctrl.groups = []; items.forEach(function(item) { var groupName = angular.isFunction(groupFn) ? groupFn(item) : item[groupFn]; - var group = ctrl.findGroupByName(groupName); + var group = findGroupByName(groupName); if (group) { group.items.push(item); } else { @@ -678,7 +683,8 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat } function _isItemSelected(item) { - return (angular.isArray(ctrl.selected) && ctrl.selected.filter(function(selection) { + var selected = ctrl.selected; + return (angular.isArray(selected) && selected.filter(function(selection) { return angular.equals(selection, item); }).length > 0); } @@ -768,7 +774,7 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat } // search ctrl.selected for dupes potentially caused by tagging and return early if found if (_isItemSelected(item)) { - ctrl.close(skipFocusser); + close(skipFocusser); return; } } @@ -777,7 +783,7 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat $scope.$broadcast('uis:select', item); if (ctrl.closeOnSelect) { - ctrl.close(skipFocusser); + close(skipFocusser); } } } @@ -799,12 +805,12 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat function setFocus() { if (!ctrl.focus) { - ctrl.focusInput[0].focus(); + ctrl.searchInput[0].focus(); } } function clear($event) { - ctrl.select(ctrl.nullValue); + select(ctrl.nullValue); $event.stopPropagation(); $timeout(function() { ctrl.focusser[0].focus(); @@ -814,9 +820,9 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat // Toggle dropdown function toggle(e) { if (ctrl.open) { - ctrl.close(); + close(); } else { - ctrl.activate(); + activate(); } cancelEvent(e); @@ -906,7 +912,7 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat case KEY.UP: if (!ctrl.open && ctrl.multiple) { // In case its the search input in 'multiple' mode - ctrl.activate(false, true); + activate(false, true); } else { var len = ctrl.items.length; do { @@ -919,23 +925,23 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat break; case KEY.TAB: if (!ctrl.multiple || ctrl.open) { - ctrl.select(ctrl.items[ctrl.activeIndex], true); - ctrl.tabNavigate(shiftKey); + select(ctrl.items[ctrl.activeIndex], true); + tabNavigate(shiftKey); } break; case KEY.ENTER: if (ctrl.open && (ctrl.tagging.isActivated || ctrl.activeIndex >= 0)) { // Make sure at least one dropdown item is highlighted before adding if not in tagging mode - ctrl.select(ctrl.items[ctrl.activeIndex], ctrl.skipFocusser); + select(ctrl.items[ctrl.activeIndex], ctrl.skipFocusser); } else { // In case its the search input in 'multiple' mode - ctrl.activate(false, true); + activate(false, true); } break; case KEY.ESC: - ctrl.close(); + close(); break; default: processed = false; @@ -949,6 +955,8 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat } function tabNavigate(shiftKey) { + close(true); + $timeout(function() { var focusEl = ctrl.focusser && ctrl.focusser[0]; if (!focusEl) { return; } @@ -956,12 +964,13 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat var focusable = angular.element(':tabbable'); var index = focusable.index(focusEl); if (index > -1) { - var el = focusable[index + (shiftKey ? -1 : 1)]; + index += shiftKey ? -1 : 1; + var el = focusable[index + (index < 0 ? focusable.length : 0)]; if (el) { el.focus(); } } - }, 10); + }, 50); } function onSearchInputKeyDown(e) { @@ -996,14 +1005,14 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat } if (newItem) { - ctrl.select(newItem, true); + select(newItem, true); } }); } } } else if (key === KEY.TAB) { // Don't trap users in lists with no items - ctrl.tabNavigate(e.shiftKey); + tabNavigate(e.shiftKey); } }); @@ -1042,7 +1051,7 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat items.forEach(function(item) { var newItem = ctrl.tagging.fct ? ctrl.tagging.fct(item) : item; if (newItem) { - ctrl.select(newItem, true); + select(newItem, true); } }); ctrl.search = oldsearch || EMPTY_SEARCH; @@ -1146,11 +1155,21 @@ uis.directive('uiSelect', tElement.querySelectorAll('input.ui-select-search')[0].id = tAttrs.inputId; return function(scope, element, attrs, ctrls, transcludeFn) { - var $select = ctrls[0]; var ngModel = ctrls[1]; var $fieldset = ctrls[2]; + var documentElement = $document[0].documentElement; + var dropdown = angular.element(); // Hold on to a reference to the .ui-select-dropdown element for direction support. + var originalWidth = ''; + var placeholder = null; // Hold on to a reference to the .ui-select-container element for appendToBody support + + // Support for appending the select field to the body when its open + var appendToBody = scope.$eval(attrs.appendToBody); + if (appendToBody === undefined) { + appendToBody = uiSelectConfig.appendToBody; + } + $select.generatedId = uiSelectConfig.generateId(); $select.baseTitle = attrs.title || 'Select box'; $select.focusserTitle = $select.baseTitle + ' focus'; @@ -1181,7 +1200,7 @@ uis.directive('uiSelect', if(attrs.tabindex){ attrs.$observe('tabindex', function(value) { - $select.focusInput.attr('tabindex', value); + $select.searchInput.attr('tabindex', value); element.removeAttr('tabindex'); }); } @@ -1342,12 +1361,6 @@ uis.directive('uiSelect', } }); - // Support for appending the select field to the body when its open - var appendToBody = scope.$eval(attrs.appendToBody); - if (appendToBody === undefined) { - appendToBody = uiSelectConfig.appendToBody; - } - scope.$watch('$select.open', function(isOpen) { if (isOpen) { // Attach global handlers that cause the dropdowns to close @@ -1359,25 +1372,65 @@ uis.directive('uiSelect', // Wait for ui-select-match child directive, it hasn't started rendering yet. scope.$evalAsync(positionDropdown); } - } else if (appendToBody) { - resetDropdown(); - } else { - removeGlobalHandlers(); - } - // Support changing the direction of the dropdown if there isn't enough space to render it. - if ($select.dropdownPosition === 'auto' || $select.dropdownPosition === 'up'){ scope.calculateDropdownPos(); + } else { + resetDropdown(); } }); // Move the dropdown back to its original location when the scope is destroyed. Otherwise // it might stick around when the user routes away or the select field is otherwise removed - scope.$on('$destroy', appendToBody ? resetDropdown : removeGlobalHandlers); + scope.$on('$destroy', resetDropdown); + + scope.calculateDropdownPos = function() { + if (!$select.open) { return; } + + dropdown = dropdown.length ? dropdown : angular.element(element).querySelectorAll('.ui-select-dropdown'); + if (!dropdown.length) { return; } + + // Clear existing state and hide dropdown + dropdown[0].style.position = ''; + dropdown[0].style.top = ''; + dropdown[0].style.visibility = 'hidden'; + element.removeClass('direction-up dropdown-menu-right'); - // Hold on to a reference to the .ui-select-container element for appendToBody support - var placeholder = null, - originalWidth = ''; + // Determine X positioning + var offset = uisOffset(element); + var offsetDropdown = uisOffset(dropdown); + var scrollTarget = documentElement || $document[0].body; + var xState = $select.dropdownXPosition; + dropdown.toggleClass('dropdown-menu-right', xState === 'right' || + (xState === 'auto' && offset.left + offsetDropdown.width - scrollTarget.scrollLeft > documentElement.clientWidth) + ); + + // Determine Y positioning + var yState = $select.dropdownYPosition; + var top = yState === 'up' || (yState === 'auto' && offset.top + offset.height + offsetDropdown.height - scrollTarget.scrollTop > documentElement.clientHeight) ? + (offsetDropdown.height * -1) + 'px' : + ''; + + // Apply and make visible. + dropdown[0].style.position = top ? 'absolute' : ''; + dropdown[0].style.top = top; + dropdown[0].style.visibility = ''; + if (top) { + element.addClass('direction-up'); + } + }; + + function calculateSelectLeftPosition(offset) { + var scrollLeft = documentElement.scrollLeft || $document[0].body.scrollLeft; + var edgeOffscreenAmount = (offset.left + offset.width) - (scrollLeft + documentElement.clientWidth); + var paddingFromEdge = 30; + + var leftPosition = offset.left; + if (edgeOffscreenAmount > 0) { + leftPosition -= (edgeOffscreenAmount + paddingFromEdge); + } + + return leftPosition; + } function closeOnClick(e) { if (!$select.open) return; //Skip it if dropdown is close @@ -1420,19 +1473,6 @@ uis.directive('uiSelect', } } - function calculateSelectLeftPosition(offset) { - var scrollLeft = $document[0].documentElement.scrollLeft || $document[0].body.scrollLeft; - var edgeOffscreenAmount = (offset.left + offset.width) - (scrollLeft + $document[0].documentElement.clientWidth); - var paddingFromEdge = 30; - - var leftPosition = offset.left; - if (edgeOffscreenAmount > 0) { - leftPosition -= (edgeOffscreenAmount + paddingFromEdge); - } - - return leftPosition; - } - function positionDropdown() { // Remember the absolute position of the element var offset = uisOffset(element); @@ -1446,148 +1486,33 @@ uis.directive('uiSelect', // Remember the original value of the element width inline style, so it can be restored // when the dropdown is closed originalWidth = element[0].style.width; - - // Now move the actual dropdown element to the end of the body - $document.find('body').append(element); - element[0].style.position = 'absolute'; element[0].style.left = calculateSelectLeftPosition(offset) + 'px'; element[0].style.top = offset.top + 'px'; element[0].style.width = offset.width + 'px'; + $document[0].body.appendChild(element[0]); } - function removeGlobalHandlers() { + function resetDropdown() { $window.removeEventListener('mousedown', closeOnClick, true); $window.removeEventListener('scroll', closeOnResize, true); $window.removeEventListener('resize', resetDropdown, true); - } - - function resetDropdown() { - removeGlobalHandlers(); - if (placeholder === null) { - // The dropdown has not actually been display yet, so there's nothing to reset - return; + // Move the dropdown element back to its original location in the DOM if we moved it. + if (placeholder) { + element[0].style.position = ''; + element[0].style.left = ''; + element[0].style.top = ''; + element[0].style.width = originalWidth; + placeholder.replaceWith(element); + placeholder = null; + resetFocus(); } - - // Move the dropdown element back to its original location in the DOM - placeholder.replaceWith(element); - placeholder = null; - - element[0].style.position = ''; - element[0].style.left = ''; - element[0].style.top = ''; - element[0].style.width = originalWidth; - - // Set focus back on to the moved element - $select.setFocus(); } function resetFocus() { - $timeout(function(){ - $select.setFocus(); - }); + $timeout($select.setFocus); } - - // Hold on to a reference to the .ui-select-dropdown element for direction support. - var dropdown = null, - directionUpClassName = 'direction-up'; - - var setDropdownPosUp = function(offset, offsetDropdown){ - - offset = offset || uisOffset(element); - offsetDropdown = offsetDropdown || uisOffset(dropdown); - - dropdown[0].style.position = 'absolute'; - dropdown[0].style.top = (offsetDropdown.height * -1) + 'px'; - element.addClass(directionUpClassName); - - }; - - var setDropdownPosDown = function(offset, offsetDropdown){ - - element.removeClass(directionUpClassName); - - offset = offset || uisOffset(element); - offsetDropdown = offsetDropdown || uisOffset(dropdown); - - dropdown[0].style.position = ''; - dropdown[0].style.top = ''; - - }; - - var setDropdownHorizontalPos = function(offset, offsetDropdown){ - var scrollLeft = $document[0].documentElement.scrollLeft || $document[0].body.scrollLeft; - - if (offset.left + offsetDropdown.width > scrollLeft + $document[0].documentElement.clientWidth) { - dropdown.addClass('dropdown-menu-right'); - }else{ - dropdown.removeClass('dropdown-menu-right'); - } - }; - - var calculateDropdownPosAfterAnimation = function() { - // Delay positioning the dropdown until all choices have been added so its height is correct. - $timeout(function() { - if ($select.dropdownPosition === 'up') { - //Go UP - setDropdownPosUp(); - } else { - //AUTO - element.removeClass(directionUpClassName); - - var offset = uisOffset(element); - var offsetDropdown = uisOffset(dropdown); - - //https://code.google.com/p/chromium/issues/detail?id=342307#c4 - var scrollTop = $document[0].documentElement.scrollTop || $document[0].body.scrollTop; //To make it cross browser (blink, webkit, IE, Firefox). - - // Determine if the direction of the dropdown needs to be changed. - if (offset.top + offset.height + offsetDropdown.height > scrollTop + $document[0].documentElement.clientHeight) { - //Go UP - setDropdownPosUp(offset, offsetDropdown); - }else{ - //Go DOWN - setDropdownPosDown(offset, offsetDropdown); - } - setDropdownHorizontalPos(offset, offsetDropdown); - } - - // Display the dropdown once it has been positioned. - dropdown.removeClass('ui-select-detached'); - }); - }; - - var opened = false; - - scope.calculateDropdownPos = function() { - if ($select.open) { - dropdown = angular.element(element).querySelectorAll('.ui-select-dropdown'); - - if (dropdown.length === 0) { - return; - } - - // Hide the dropdown so there is no flicker until $timeout is done executing. - if ($select.search === '' && !opened) { - dropdown.addClass('ui-select-detached'); - opened = true; - } - - calculateDropdownPosAfterAnimation(); - } else { - if (dropdown === null || dropdown.length === 0) { - return; - } - - // Reset the position of the dropdown. - dropdown.removeClass('ui-select-detached'); - dropdown.removeClass('dropdown-menu-right'); - dropdown[0].style.position = ''; - dropdown[0].style.top = ''; - element.removeClass(directionUpClassName); - } - }; }; } }; @@ -1819,9 +1744,6 @@ uis.directive('uiSelectMultiple', ['uiSelectMinErr','$timeout', function(uiSelec $select.multiple = true; - //Input that will handle focus - $select.focusInput = $select.searchInput; - //Properly check for empty if set to multiple ngModel.$isEmpty = function(value) { return !value || value.length === 0; @@ -2292,20 +2214,14 @@ uis.directive('uiSelectSingle', ['$timeout','$compile', function($timeout, $comp scope.$on('uis:close', function (event, skipFocusser) { $timeout(function(){ - $select.focusser.prop('disabled', false); if (!skipFocusser) $select.focusser[0].focus(); },0,false); }); - scope.$on('uis:activate', function () { - focusser.prop('disabled', true); //Will reactivate it on .close() - }); //Idea from: https://github.com/ivaynberg/select2/blob/79b5bf6db918d7560bdd959109b7bcfb47edaf43/select2.js#L1954 var focusser = angular.element(""); $compile(focusser)(scope); $select.focusser = focusser; - //Input that will handle focus - $select.focusInput = focusser; // Move focuser out of because append-to-body="true" will move the focusser out of :tabbable order. element.parent().parent().prepend(focusser); @@ -2575,7 +2491,7 @@ uis.directive('uisOpenClose', ['$parse', '$timeout', function ($parse, $timeout) * https://github.com/angular-ui/ui-select/commit/5dd63ad#commitcomment-5504697 */ -uis.service('uisRepeatParser', ['uiSelectMinErr','$parse', function(uiSelectMinErr, $parse) { +uis.service('uisRepeatParser', ['uiSelectMinErr', '$parse', function(uiSelectMinErr, $parse) { var self = this; /** @@ -2607,12 +2523,12 @@ uis.service('uisRepeatParser', ['uiSelectMinErr','$parse', function(uiSelectMinE throw uiSelectMinErr('iexp', "Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.", expression); } - - var source = match[5], + + var source = match[5], filters = ''; // When using (key,value) ui-select requires filters to be extracted, since the object - // is converted to an array for $select.items + // is converted to an array for $select.items // (in which case the filters need to be reapplied) if (match[3]) { // Remove any enclosing parenthesis @@ -2622,7 +2538,7 @@ uis.service('uisRepeatParser', ['uiSelectMinErr','$parse', function(uiSelectMinE if(filterMatch && filterMatch[1].trim()) { filters = filterMatch[1]; source = source.replace(filters, ''); - } + } } return { @@ -2631,6 +2547,15 @@ uis.service('uisRepeatParser', ['uiSelectMinErr','$parse', function(uiSelectMinE source: $parse(source), filters: filters, trackByExp: match[6], + getTrackedValue: function(scope, item) { + if (!this.trackByExp) { + return item; + } else { + var locals = {}; + locals[this.itemName] = item; + return scope.$eval(this.trackByExp, locals); + } + }, modelMapper: $parse(match[1] || match[4] || match[2]), repeatExpression: function (grouped) { var expression = this.itemName + ' in ' + (grouped ? '$group.items' : '$select.items'); @@ -2638,7 +2563,7 @@ uis.service('uisRepeatParser', ['uiSelectMinErr','$parse', function(uiSelectMinE expression += ' track by ' + this.trackByExp; } return expression; - } + } }; }; @@ -2650,7 +2575,15 @@ uis.service('uisRepeatParser', ['uiSelectMinErr','$parse', function(uiSelectMinE }]); }()); -angular.module("ui.select").run(["$templateCache", function($templateCache) {$templateCache.put("bootstrap/choices.tpl.html",""); +angular.module("ui.select").run(["$templateCache", function($templateCache) {$templateCache.put("select2/choices.tpl.html",""); +$templateCache.put("select2/footer.tpl.html","
"); +$templateCache.put("select2/header.tpl.html","
"); +$templateCache.put("select2/match-multiple.tpl.html","
  • "); +$templateCache.put("select2/match.tpl.html"," "); +$templateCache.put("select2/no-choice.tpl.html","
    "); +$templateCache.put("select2/select-multiple.tpl.html","
    "); +$templateCache.put("select2/select.tpl.html","
    "); +$templateCache.put("bootstrap/choices.tpl.html",""); $templateCache.put("bootstrap/footer.tpl.html","
    "); $templateCache.put("bootstrap/header.tpl.html","
    "); $templateCache.put("bootstrap/match-multiple.tpl.html"," × "); @@ -2665,12 +2598,4 @@ $templateCache.put("selectize/match-multiple.tpl.html","
    "); $templateCache.put("selectize/no-choice.tpl.html","
    "); $templateCache.put("selectize/select-multiple.tpl.html","
    "); -$templateCache.put("selectize/select.tpl.html","
    "); -$templateCache.put("select2/choices.tpl.html",""); -$templateCache.put("select2/footer.tpl.html","
    "); -$templateCache.put("select2/header.tpl.html","
    "); -$templateCache.put("select2/match-multiple.tpl.html","
  • "); -$templateCache.put("select2/match.tpl.html"," "); -$templateCache.put("select2/no-choice.tpl.html","
    "); -$templateCache.put("select2/select-multiple.tpl.html","
    "); -$templateCache.put("select2/select.tpl.html","
    ");}]); \ No newline at end of file +$templateCache.put("selectize/select.tpl.html","
    ");}]); \ No newline at end of file diff --git a/dist/select.min.css b/dist/select.min.css index dcfece2cf..b6a3d5150 100644 --- a/dist/select.min.css +++ b/dist/select.min.css @@ -1,2 +1,2 @@ -/*! ui-select@0.20.0 https://github.com/bdb-opensource/ui-select (MIT License) */.ui-select-choices-row:hover,.ui-select-container[theme=selectize] .ui-select-header-group-selectable:hover{background-color:#f5f5f5}.ui-select-highlight{font-weight:700}.ui-select-offscreen{clip:rect(0 0 0 0)!important;width:1px!important;height:1px!important;border:0!important;margin:0!important;padding:0!important;overflow:hidden!important;position:absolute!important;outline:0!important;left:0!important;top:0!important}.selectize-control.single>.selectize-input>input,.selectize-control>.selectize-dropdown{width:100%}.ui-select-detached{position:fixed;opacity:0}.ui-select-bootstrap .ui-select-toggle,.ui-select-choices-row{position:relative}.ng-dirty.ng-invalid>a.select2-choice{border-color:#D44950}.select2-result-single{padding-left:0}.select-locked>.ui-select-match-close,.select2-locked>.select2-search-choice-close{display:none}body>.select2-container.open{z-index:9999}.select2 .ui-select-footer,.select2 .ui-select-header{padding:4px 10px}.select2 .ui-select-footer{border-top:1px solid #dfe5eb}.select2 .ui-select-header{border-bottom:1px solid #dfe5eb}.ui-select-container.select2.direction-up .ui-select-match,.ui-select-container[theme=select2].direction-up .ui-select-match{border-radius:0 0 4px 4px}.ui-select-container.select2.direction-up .ui-select-dropdown,.ui-select-container[theme=select2].direction-up .ui-select-dropdown{border-radius:4px 4px 0 0;border-top-width:1px;border-top-style:solid;box-shadow:0 -4px 8px rgba(0,0,0,.25);margin-top:-4px}.ui-select-container.select2.direction-up .ui-select-dropdown .select2-search,.ui-select-container[theme=select2].direction-up .ui-select-dropdown .select2-search{margin-top:4px}.ui-select-container.select2.direction-up.select2-dropdown-open .ui-select-match,.ui-select-container[theme=select2].direction-up.select2-dropdown-open .ui-select-match{border-bottom-color:#5897fb}.ui-select-container[theme=select2] .ui-select-dropdown .ui-select-search-hidden,.ui-select-container[theme=select2] .ui-select-dropdown .ui-select-search-hidden input{opacity:0;height:0;min-height:0;padding:0;margin:0;border:0}.selectize-input.selectize-focus{border-color:#007FBB!important}.selectize-control.multi>.selectize-input>input{margin:0!important}.selectize-dropdown .ui-select-footer,.selectize-dropdown .ui-select-header{padding:5px 8px}.selectize-dropdown .ui-select-header{border-bottom:1px solid #b8b8b8}.selectize-dropdown .ui-select-footer{border-top:1px solid #b8b8b8}.ng-dirty.ng-invalid>div.selectize-input{border-color:#D44950}.ui-select-container[theme=selectize].direction-up .ui-select-dropdown{box-shadow:0 -4px 8px rgba(0,0,0,.25);margin-top:-2px}.ui-select-container[theme=selectize] input.ui-select-search-hidden{opacity:0;height:0;min-height:0;padding:0;margin:0;border:0;width:0}.ui-select-container[theme=selectize] .ui-select-header-group-selectable{cursor:pointer;padding-left:15px}.btn-default-focus{color:#333;background-color:#EBEBEB;border-color:#ADADAD;text-decoration:none;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ui-select-bootstrap .ui-select-toggle>.caret{position:absolute;height:10px;top:50%;right:10px;margin-top:-2px}.input-group>.ui-select-bootstrap.dropdown{position:static}.input-group .ui-select-bootstrap:first-child .form-control{border-top-left-radius:4px;border-bottom-left-radius:4px}.input-group .ui-select-bootstrap:last-child .form-control{border-top-right-radius:4px;border-bottom-right-radius:4px}.input-group>.ui-select-bootstrap>input.ui-select-search.form-control{border-radius:4px 0 0 4px}.input-group>.ui-select-bootstrap>input.ui-select-search.form-control.direction-up{border-radius:4px 0 0 4px!important}.ui-select-bootstrap .ui-select-search-hidden{opacity:0;height:0;min-height:0;padding:0;margin:0;border:0}.ui-select-bootstrap>.ui-select-match>.btn{text-align:left!important}.ui-select-bootstrap>.ui-select-match>.caret{position:absolute;top:45%;right:15px}.ui-select-bootstrap .ui-select-choices,.ui-select-bootstrap .ui-select-no-choice{width:100%;height:auto;max-height:200px;overflow-x:hidden;margin-top:-1px}body>.ui-select-bootstrap.open{z-index:1000}.ui-select-multiple.ui-select-bootstrap{height:auto;padding:3px 3px 0}.ui-select-multiple.ui-select-bootstrap input.ui-select-search{background-color:transparent!important;border:none;outline:0;height:1.666666em;margin-bottom:3px}.ui-select-multiple.ui-select-bootstrap .ui-select-match .close{font-size:1.6em;line-height:.75}.ui-select-multiple.ui-select-bootstrap .ui-select-match-item{outline:0;margin:0 3px 3px 0}.ui-select-multiple .ui-select-match-item{position:relative}.ui-select-multiple .ui-select-match-item.dropping .ui-select-match-close{pointer-events:none}.ui-select-multiple:hover .ui-select-match-item.dropping-before:before{content:"";position:absolute;top:0;right:100%;height:100%;margin-right:2px;border-left:1px solid #428bca}.ui-select-multiple:hover .ui-select-match-item.dropping-after:after{content:"";position:absolute;top:0;left:100%;height:100%;margin-left:2px;border-right:1px solid #428bca}.ui-select-bootstrap .ui-select-choices{padding:5px 0;margin:0;list-style:none}.ui-select-bootstrap .ui-select-header-group-selectable:hover{background-color:#f5f5f5}.ui-select-bootstrap .ui-select-header-group-selectable{color:#000;cursor:pointer;padding:3px 10px}.ui-select-bootstrap .ui-select-choices-row>span{cursor:pointer;display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.ui-select-bootstrap .ui-select-choices-row>span:focus,.ui-select-bootstrap .ui-select-choices-row>span:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.ui-select-bootstrap .ui-select-choices-row.active>span{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.ui-select-bootstrap .ui-select-choices-row.active.disabled>span,.ui-select-bootstrap .ui-select-choices-row.disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.ui-select-bootstrap .ui-select-footer,.ui-select-bootstrap .ui-select-header{display:block;padding:5px 20px;clear:both;font-weight:400;line-height:1.42857143}.ui-select-bootstrap .ui-select-footer{border-top:1px solid #dfe5eb}.ui-select-bootstrap .ui-select-header{border-bottom:1px solid #dfe5eb}.ui-select-bootstrap .ui-select-dropdown{min-width:100%;padding:0;margin-top:-1px}.ui-select-match.ng-hide-add,.ui-select-search.ng-hide-add{display:none!important}.ui-select-bootstrap.ng-dirty.ng-invalid>button.btn.ui-select-match{border-color:#D44950}.ui-select-container[theme=bootstrap].direction-up .ui-select-dropdown{box-shadow:0 -4px 8px rgba(0,0,0,.25)}.ui-select-bootstrap .ui-select-match-text{width:100%;padding-right:1em}.ui-select-bootstrap .ui-select-match-text span{display:inline-block;width:100%;overflow:hidden}.ui-select-bootstrap .ui-select-toggle>a.btn{position:absolute;height:10px;right:10px;margin-top:-2px}.ui-select-refreshing.glyphicon{position:absolute;right:0;padding:8px 27px}@-webkit-keyframes ui-select-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes ui-select-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.ui-select-spin{-webkit-animation:ui-select-spin 2s infinite linear;animation:ui-select-spin 2s infinite linear}.ui-select-refreshing.ng-animate{animation:none 0s;-webkit-animation:none 0s} +/*! ui-select@0.20.0 https://github.com/bdb-opensource/ui-select (MIT License) */.ui-select-choices-row:hover,.ui-select-container[theme=selectize] .ui-select-header-group-selectable:hover{background-color:#f5f5f5}.ui-select-highlight{font-weight:700}.ui-select-offscreen{clip:rect(0 0 0 0)!important;width:1px!important;height:1px!important;border:0!important;margin:0!important;padding:0!important;overflow:hidden!important;position:absolute!important;outline:0!important;left:0!important;top:0!important}.selectize-control.single>.selectize-input>input,.selectize-control>.selectize-dropdown{width:100%}.ui-select-bootstrap .ui-select-toggle,.ui-select-choices-row{position:relative}.ng-dirty.ng-invalid>a.select2-choice{border-color:#D44950}.select2-result-single{padding-left:0}.select-locked>.ui-select-match-close,.select2-locked>.select2-search-choice-close{display:none}body>.select2-container.open{z-index:9999}.select2 .ui-select-footer,.select2 .ui-select-header{padding:4px 10px}.select2 .ui-select-footer{border-top:1px solid #dfe5eb}.select2 .ui-select-header{border-bottom:1px solid #dfe5eb}.ui-select-container.select2.direction-up .ui-select-match,.ui-select-container[theme=select2].direction-up .ui-select-match{border-radius:0 0 4px 4px}.ui-select-container.select2.direction-up .ui-select-dropdown,.ui-select-container[theme=select2].direction-up .ui-select-dropdown{border-radius:4px 4px 0 0;border-top-width:1px;border-top-style:solid;box-shadow:0 -4px 8px rgba(0,0,0,.25);margin-top:-4px}.ui-select-container.select2.direction-up .ui-select-dropdown .select2-search,.ui-select-container[theme=select2].direction-up .ui-select-dropdown .select2-search{margin-top:4px}.ui-select-container.select2.direction-up.select2-dropdown-open .ui-select-match,.ui-select-container[theme=select2].direction-up.select2-dropdown-open .ui-select-match{border-bottom-color:#5897fb}.ui-select-container[theme=select2] .ui-select-dropdown .ui-select-search-hidden,.ui-select-container[theme=select2] .ui-select-dropdown .ui-select-search-hidden input{opacity:0;height:0;min-height:0;padding:0;margin:0;border:0}.selectize-input.selectize-focus{border-color:#007FBB!important}.selectize-control.multi>.selectize-input>input{margin:0!important}.selectize-dropdown .ui-select-footer,.selectize-dropdown .ui-select-header{padding:5px 8px}.selectize-dropdown .ui-select-header{border-bottom:1px solid #b8b8b8}.selectize-dropdown .ui-select-footer{border-top:1px solid #b8b8b8}.ng-dirty.ng-invalid>div.selectize-input{border-color:#D44950}.ui-select-container[theme=selectize].direction-up .ui-select-dropdown{box-shadow:0 -4px 8px rgba(0,0,0,.25);margin-top:-2px}.ui-select-container[theme=selectize] input.ui-select-search-hidden{opacity:0;height:0;min-height:0;padding:0;margin:0;border:0;width:0}.ui-select-container[theme=selectize] .ui-select-header-group-selectable{cursor:pointer;padding-left:15px}.btn-default-focus{color:#333;background-color:#EBEBEB;border-color:#ADADAD;text-decoration:none;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ui-select-bootstrap .ui-select-toggle>.caret{position:absolute;height:10px;top:50%;right:10px;margin-top:-2px}.input-group>.ui-select-bootstrap.dropdown{position:static}.input-group .ui-select-bootstrap:first-child .form-control{border-top-left-radius:4px;border-bottom-left-radius:4px}.input-group .ui-select-bootstrap:last-child .form-control{border-top-right-radius:4px;border-bottom-right-radius:4px}.input-group>.ui-select-bootstrap>input.ui-select-search.form-control{border-radius:4px 0 0 4px}.input-group>.ui-select-bootstrap>input.ui-select-search.form-control.direction-up{border-radius:4px 0 0 4px!important}.ui-select-bootstrap .ui-select-search-hidden{opacity:0;height:0;min-height:0;padding:0;margin:0;border:0}.ui-select-bootstrap>.ui-select-match>.btn{text-align:left!important}.ui-select-bootstrap>.ui-select-match>.caret{position:absolute;top:45%;right:15px}.ui-select-bootstrap .ui-select-choices,.ui-select-bootstrap .ui-select-no-choice{width:100%;height:auto;max-height:200px;overflow-x:hidden;margin-top:-1px}body>.ui-select-bootstrap.open{z-index:1000}.ui-select-multiple.ui-select-bootstrap{height:auto;padding:3px 3px 0}.ui-select-multiple.ui-select-bootstrap input.ui-select-search{background-color:transparent!important;border:none;outline:0;height:1.666666em;margin-bottom:3px}.ui-select-multiple.ui-select-bootstrap .ui-select-match .close{font-size:1.6em;line-height:.75}.ui-select-multiple.ui-select-bootstrap .ui-select-match-item{outline:0;margin:0 3px 3px 0}.ui-select-multiple .ui-select-match-item{position:relative}.ui-select-multiple .ui-select-match-item.dropping .ui-select-match-close{pointer-events:none}.ui-select-multiple:hover .ui-select-match-item.dropping-before:before{content:"";position:absolute;top:0;right:100%;height:100%;margin-right:2px;border-left:1px solid #428bca}.ui-select-multiple:hover .ui-select-match-item.dropping-after:after{content:"";position:absolute;top:0;left:100%;height:100%;margin-left:2px;border-right:1px solid #428bca}.ui-select-bootstrap .ui-select-choices{padding:5px 0;margin:0;list-style:none}.ui-select-bootstrap .ui-select-header-group-selectable:hover{background-color:#f5f5f5}.ui-select-bootstrap .ui-select-header-group-selectable{color:#000;cursor:pointer;padding:3px 10px}.ui-select-bootstrap .ui-select-choices-row>span{cursor:pointer;display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.ui-select-bootstrap .ui-select-choices-row>span:focus,.ui-select-bootstrap .ui-select-choices-row>span:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.ui-select-bootstrap .ui-select-choices-row.active>span{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.ui-select-bootstrap .ui-select-choices-row.active.disabled>span,.ui-select-bootstrap .ui-select-choices-row.disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.ui-select-bootstrap .ui-select-footer,.ui-select-bootstrap .ui-select-header{display:block;padding:5px 20px;clear:both;font-weight:400;line-height:1.42857143}.ui-select-bootstrap .ui-select-footer{border-top:1px solid #dfe5eb}.ui-select-bootstrap .ui-select-header{border-bottom:1px solid #dfe5eb}.ui-select-bootstrap .ui-select-dropdown{min-width:100%;padding:0;margin-top:-1px}.ui-select-match.ng-hide-add,.ui-select-search.ng-hide-add{display:none!important}.ui-select-bootstrap.ng-dirty.ng-invalid>button.btn.ui-select-match{border-color:#D44950}.ui-select-container[theme=bootstrap].direction-up .ui-select-dropdown{box-shadow:0 -4px 8px rgba(0,0,0,.25)}.ui-select-bootstrap .ui-select-match-text{width:100%;padding-right:1em}.ui-select-bootstrap .ui-select-match-text span{display:inline-block;width:100%;overflow:hidden}.ui-select-bootstrap .ui-select-toggle>a.btn{position:absolute;height:10px;right:10px;margin-top:-2px}.ui-select-refreshing.glyphicon{position:absolute;right:0;padding:8px 27px}@-webkit-keyframes ui-select-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes ui-select-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.ui-select-spin{-webkit-animation:ui-select-spin 2s infinite linear;animation:ui-select-spin 2s infinite linear}.ui-select-refreshing.ng-animate{animation:none 0s;-webkit-animation:none 0s} /*# sourceMappingURL=select.min.css.map */ diff --git a/dist/select.min.css.map b/dist/select.min.css.map index 7edbc81c9..a64c62c30 100644 --- a/dist/select.min.css.map +++ b/dist/select.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["common.css"],"names":[],"mappings":"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","file":"select.min.css","sourcesContent":["/* Style when highlighting a search. */\n.ui-select-highlight {\n font-weight: bold;\n}\n\n.ui-select-offscreen {\n clip: rect(0 0 0 0) !important;\n width: 1px !important;\n height: 1px !important;\n border: 0 !important;\n margin: 0 !important;\n padding: 0 !important;\n overflow: hidden !important;\n position: absolute !important;\n outline: 0 !important;\n left: 0 !important;\n top: 0 !important;\n}\n\n.ui-select-detached {\n position: fixed;\n opacity: 0;\n}\n\n.ui-select-choices-row {\n position: relative;\n}\n\n.ui-select-choices-row:hover {\n background-color: #f5f5f5;\n}\n\n/* Select2 theme */\n\n/* Mark invalid Select2 */\n.ng-dirty.ng-invalid > a.select2-choice {\n border-color: #D44950;\n}\n\n.select2-result-single {\n padding-left: 0;\n}\n\n.select2-locked > .select2-search-choice-close {\n display: none;\n}\n\n.select-locked > .ui-select-match-close {\n display: none;\n}\n\nbody > .select2-container.open {\n z-index: 9999; /* The z-index Select2 applies to the select2-drop */\n}\n\n.select2 .ui-select-footer,\n.select2 .ui-select-header {\n padding: 4px 10px;\n}\n\n.select2 .ui-select-footer {\n border-top: 1px solid #dfe5eb;\n}\n\n.select2 .ui-select-header {\n border-bottom: 1px solid #dfe5eb;\n}\n\n/* Handle up direction Select2 */\n.ui-select-container[theme=\"select2\"].direction-up .ui-select-match,\n.ui-select-container.select2.direction-up .ui-select-match {\n border-radius: 4px; /* FIXME hardcoded value :-/ */\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.ui-select-container[theme=\"select2\"].direction-up .ui-select-dropdown,\n.ui-select-container.select2.direction-up .ui-select-dropdown {\n border-radius: 4px; /* FIXME hardcoded value :-/ */\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n\n border-top-width: 1px; /* FIXME hardcoded value :-/ */\n border-top-style: solid;\n\n box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);\n\n margin-top: -4px; /* FIXME hardcoded value :-/ */\n}\n\n.ui-select-container[theme=\"select2\"].direction-up .ui-select-dropdown .select2-search,\n.ui-select-container.select2.direction-up .ui-select-dropdown .select2-search {\n margin-top: 4px; /* FIXME hardcoded value :-/ */\n}\n\n.ui-select-container[theme=\"select2\"].direction-up.select2-dropdown-open .ui-select-match,\n.ui-select-container.select2.direction-up.select2-dropdown-open .ui-select-match {\n border-bottom-color: #5897fb;\n}\n\n.ui-select-container[theme=\"select2\"] .ui-select-dropdown .ui-select-search-hidden,\n.ui-select-container[theme=\"select2\"] .ui-select-dropdown .ui-select-search-hidden input {\n opacity: 0;\n height: 0;\n min-height: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n/* Selectize theme */\n\n/* Helper class to show styles when focus */\n.selectize-input.selectize-focus {\n border-color: #007FBB !important;\n}\n\n/* Fix input width for Selectize theme */\n.selectize-control.single > .selectize-input > input {\n width: 100%;\n}\n\n/* Fix line break when there's at least one item selected with the Selectize theme */\n.selectize-control.multi > .selectize-input > input {\n margin: 0 !important;\n}\n\n/* Fix dropdown width for Selectize theme */\n.selectize-control > .selectize-dropdown {\n width: 100%;\n}\n\n.selectize-dropdown .ui-select-footer,\n.selectize-dropdown .ui-select-header {\n padding: 5px 8px;\n}\n\n.selectize-dropdown .ui-select-header {\n border-bottom: 1px solid #b8b8b8;\n}\n\n.selectize-dropdown .ui-select-footer {\n border-top: 1px solid #b8b8b8;\n}\n\n/* Mark invalid Selectize */\n.ng-dirty.ng-invalid > div.selectize-input {\n border-color: #D44950;\n}\n\n/* Handle up direction Selectize */\n.ui-select-container[theme=\"selectize\"].direction-up .ui-select-dropdown {\n box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);\n margin-top: -2px; /* FIXME hardcoded value :-/ */\n}\n\n.ui-select-container[theme=\"selectize\"] input.ui-select-search-hidden {\n opacity: 0;\n height: 0;\n min-height: 0;\n padding: 0;\n margin: 0;\n border: 0;\n width: 0;\n}\n\n.ui-select-container[theme=\"selectize\"] .ui-select-header-group-selectable:hover {\n background-color: #f5f5f5;\n}\n\n.ui-select-container[theme=\"selectize\"] .ui-select-header-group-selectable {\n cursor: pointer;\n padding-left: 15px;\n}\n\n/* Bootstrap theme */\n\n/* Helper class to show styles when focus */\n.btn-default-focus {\n color: #333;\n background-color: #EBEBEB;\n border-color: #ADADAD;\n text-decoration: none;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n\n.ui-select-bootstrap .ui-select-toggle {\n position: relative;\n}\n\n.ui-select-bootstrap .ui-select-toggle > .caret {\n position: absolute;\n height: 10px;\n top: 50%;\n right: 10px;\n margin-top: -2px;\n}\n\n/* Fix Bootstrap dropdown position when inside a input-group */\n.input-group > .ui-select-bootstrap.dropdown {\n /* Instead of relative */\n position: static;\n}\n\n.input-group .ui-select-bootstrap:first-child .form-control {\n border-top-left-radius: 4px; /* FIXME hardcoded value :-/ */\n border-bottom-left-radius: 4px; /* FIXME hardcoded value :-/ */\n}\n\n.input-group .ui-select-bootstrap:last-child .form-control {\n border-top-right-radius: 4px; /* FIXME hardcoded value :-/ */\n border-bottom-right-radius: 4px; /* FIXME hardcoded value :-/ */\n}\n\n.input-group > .ui-select-bootstrap > input.ui-select-search.form-control {\n border-radius: 4px; /* FIXME hardcoded value :-/ */\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .ui-select-bootstrap > input.ui-select-search.form-control.direction-up {\n border-radius: 4px !important; /* FIXME hardcoded value :-/ */\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n}\n\n.ui-select-bootstrap .ui-select-search-hidden {\n opacity: 0;\n height: 0;\n min-height: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n.ui-select-bootstrap > .ui-select-match > .btn {\n /* Instead of center because of .btn */\n text-align: left !important;\n}\n\n.ui-select-bootstrap > .ui-select-match > .caret {\n position: absolute;\n top: 45%;\n right: 15px;\n}\n\n/* See Scrollable Menu with Bootstrap 3 http://stackoverflow.com/questions/19227496 */\n.ui-select-bootstrap .ui-select-choices,\n.ui-select-bootstrap .ui-select-no-choice {\n width: 100%;\n height: auto;\n max-height: 200px;\n overflow-x: hidden;\n margin-top: -1px;\n}\n\nbody > .ui-select-bootstrap.open {\n z-index: 1000; /* Standard Bootstrap dropdown z-index */\n}\n\n.ui-select-multiple.ui-select-bootstrap {\n height: auto;\n padding: 3px 3px 0 3px;\n}\n\n.ui-select-multiple.ui-select-bootstrap input.ui-select-search {\n background-color: transparent !important; /* To prevent double background when disabled */\n border: none;\n outline: none;\n height: 1.666666em;\n margin-bottom: 3px;\n}\n\n.ui-select-multiple.ui-select-bootstrap .ui-select-match .close {\n font-size: 1.6em;\n line-height: 0.75;\n}\n\n.ui-select-multiple.ui-select-bootstrap .ui-select-match-item {\n outline: 0;\n margin: 0 3px 3px 0;\n}\n\n.ui-select-multiple .ui-select-match-item {\n position: relative;\n}\n\n.ui-select-multiple .ui-select-match-item.dropping .ui-select-match-close {\n pointer-events: none;\n}\n\n.ui-select-multiple:hover .ui-select-match-item.dropping-before:before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 100%;\n height: 100%;\n margin-right: 2px;\n border-left: 1px solid #428bca;\n}\n\n.ui-select-multiple:hover .ui-select-match-item.dropping-after:after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 100%;\n height: 100%;\n margin-left: 2px;\n border-right: 1px solid #428bca;\n}\n\n\n.ui-select-bootstrap .ui-select-choices {\n padding: 5px 0;\n margin: 0;\n list-style: none;\n}\n\n.ui-select-bootstrap .ui-select-header-group-selectable:hover {\n background-color: #f5f5f5;\n}\n\n.ui-select-bootstrap .ui-select-header-group-selectable {\n color: black;\n cursor: pointer;\n padding: 3px 10px;\n}\n\n.ui-select-bootstrap .ui-select-choices-row>span {\n cursor: pointer;\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: 400;\n line-height: 1.42857143;\n color: #333;\n white-space: nowrap;\n}\n\n.ui-select-bootstrap .ui-select-choices-row > span {\n cursor: pointer;\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: 400;\n line-height: 1.42857143;\n color: #333;\n white-space: nowrap;\n}\n\n.ui-select-bootstrap .ui-select-choices-row > span:hover, .ui-select-bootstrap .ui-select-choices-row > span:focus {\n text-decoration: none;\n color: #262626;\n background-color: #f5f5f5;\n}\n\n.ui-select-bootstrap .ui-select-choices-row.active > span {\n color: #fff;\n text-decoration: none;\n outline: 0;\n background-color: #428bca;\n}\n\n.ui-select-bootstrap .ui-select-choices-row.disabled > span,\n.ui-select-bootstrap .ui-select-choices-row.active.disabled > span {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n}\n\n.ui-select-bootstrap .ui-select-footer,\n.ui-select-bootstrap .ui-select-header {\n display: block;\n padding: 5px 20px;\n clear: both;\n font-weight: 400;\n line-height: 1.42857143;\n}\n\n.ui-select-bootstrap .ui-select-footer {\n border-top: 1px solid #dfe5eb;\n}\n\n.ui-select-bootstrap .ui-select-header {\n border-bottom: 1px solid #dfe5eb;\n}\n\n.ui-select-bootstrap .ui-select-dropdown {\n min-width: 100%;\n padding: 0;\n margin-top: -1px;\n}\n\n/* fix hide/show angular animation */\n.ui-select-match.ng-hide-add,\n.ui-select-search.ng-hide-add {\n display: none !important;\n}\n\n/* Mark invalid Bootstrap */\n.ui-select-bootstrap.ng-dirty.ng-invalid > button.btn.ui-select-match {\n border-color: #D44950;\n}\n\n/* Handle up direction Bootstrap */\n.ui-select-container[theme=\"bootstrap\"].direction-up .ui-select-dropdown {\n box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);\n}\n\n.ui-select-bootstrap .ui-select-match-text {\n width: 100%;\n padding-right: 1em;\n}\n\n.ui-select-bootstrap .ui-select-match-text span {\n display: inline-block;\n width: 100%;\n overflow: hidden;\n}\n\n.ui-select-bootstrap .ui-select-toggle > a.btn {\n position: absolute;\n height: 10px;\n right: 10px;\n margin-top: -2px;\n}\n\n/* Spinner */\n.ui-select-refreshing.glyphicon {\n position: absolute;\n right: 0;\n padding: 8px 27px;\n}\n\n@-webkit-keyframes ui-select-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n\n@keyframes ui-select-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n\n.ui-select-spin {\n -webkit-animation: ui-select-spin 2s infinite linear;\n animation: ui-select-spin 2s infinite linear;\n}\n\n.ui-select-refreshing.ng-animate {\n animation: none 0s;\n -webkit-animation: none 0s;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["common.css"],"names":[],"mappings":"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","file":"select.min.css","sourcesContent":["/* Style when highlighting a search. */\n.ui-select-highlight {\n font-weight: bold;\n}\n\n.ui-select-offscreen {\n clip: rect(0 0 0 0) !important;\n width: 1px !important;\n height: 1px !important;\n border: 0 !important;\n margin: 0 !important;\n padding: 0 !important;\n overflow: hidden !important;\n position: absolute !important;\n outline: 0 !important;\n left: 0 !important;\n top: 0 !important;\n}\n\n.ui-select-choices-row {\n position: relative;\n}\n\n.ui-select-choices-row:hover {\n background-color: #f5f5f5;\n}\n\n/* Select2 theme */\n\n/* Mark invalid Select2 */\n.ng-dirty.ng-invalid > a.select2-choice {\n border-color: #D44950;\n}\n\n.select2-result-single {\n padding-left: 0;\n}\n\n.select2-locked > .select2-search-choice-close {\n display: none;\n}\n\n.select-locked > .ui-select-match-close {\n display: none;\n}\n\nbody > .select2-container.open {\n z-index: 9999; /* The z-index Select2 applies to the select2-drop */\n}\n\n.select2 .ui-select-footer,\n.select2 .ui-select-header {\n padding: 4px 10px;\n}\n\n.select2 .ui-select-footer {\n border-top: 1px solid #dfe5eb;\n}\n\n.select2 .ui-select-header {\n border-bottom: 1px solid #dfe5eb;\n}\n\n/* Handle up direction Select2 */\n.ui-select-container[theme=\"select2\"].direction-up .ui-select-match,\n.ui-select-container.select2.direction-up .ui-select-match {\n border-radius: 4px; /* FIXME hardcoded value :-/ */\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.ui-select-container[theme=\"select2\"].direction-up .ui-select-dropdown,\n.ui-select-container.select2.direction-up .ui-select-dropdown {\n border-radius: 4px; /* FIXME hardcoded value :-/ */\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n\n border-top-width: 1px; /* FIXME hardcoded value :-/ */\n border-top-style: solid;\n\n box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);\n\n margin-top: -4px; /* FIXME hardcoded value :-/ */\n}\n\n.ui-select-container[theme=\"select2\"].direction-up .ui-select-dropdown .select2-search,\n.ui-select-container.select2.direction-up .ui-select-dropdown .select2-search {\n margin-top: 4px; /* FIXME hardcoded value :-/ */\n}\n\n.ui-select-container[theme=\"select2\"].direction-up.select2-dropdown-open .ui-select-match,\n.ui-select-container.select2.direction-up.select2-dropdown-open .ui-select-match {\n border-bottom-color: #5897fb;\n}\n\n.ui-select-container[theme=\"select2\"] .ui-select-dropdown .ui-select-search-hidden,\n.ui-select-container[theme=\"select2\"] .ui-select-dropdown .ui-select-search-hidden input {\n opacity: 0;\n height: 0;\n min-height: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n/* Selectize theme */\n\n/* Helper class to show styles when focus */\n.selectize-input.selectize-focus {\n border-color: #007FBB !important;\n}\n\n/* Fix input width for Selectize theme */\n.selectize-control.single > .selectize-input > input {\n width: 100%;\n}\n\n/* Fix line break when there's at least one item selected with the Selectize theme */\n.selectize-control.multi > .selectize-input > input {\n margin: 0 !important;\n}\n\n/* Fix dropdown width for Selectize theme */\n.selectize-control > .selectize-dropdown {\n width: 100%;\n}\n\n.selectize-dropdown .ui-select-footer,\n.selectize-dropdown .ui-select-header {\n padding: 5px 8px;\n}\n\n.selectize-dropdown .ui-select-header {\n border-bottom: 1px solid #b8b8b8;\n}\n\n.selectize-dropdown .ui-select-footer {\n border-top: 1px solid #b8b8b8;\n}\n\n/* Mark invalid Selectize */\n.ng-dirty.ng-invalid > div.selectize-input {\n border-color: #D44950;\n}\n\n/* Handle up direction Selectize */\n.ui-select-container[theme=\"selectize\"].direction-up .ui-select-dropdown {\n box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);\n margin-top: -2px; /* FIXME hardcoded value :-/ */\n}\n\n.ui-select-container[theme=\"selectize\"] input.ui-select-search-hidden {\n opacity: 0;\n height: 0;\n min-height: 0;\n padding: 0;\n margin: 0;\n border: 0;\n width: 0;\n}\n\n.ui-select-container[theme=\"selectize\"] .ui-select-header-group-selectable:hover {\n background-color: #f5f5f5;\n}\n\n.ui-select-container[theme=\"selectize\"] .ui-select-header-group-selectable {\n cursor: pointer;\n padding-left: 15px;\n}\n\n/* Bootstrap theme */\n\n/* Helper class to show styles when focus */\n.btn-default-focus {\n color: #333;\n background-color: #EBEBEB;\n border-color: #ADADAD;\n text-decoration: none;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n\n.ui-select-bootstrap .ui-select-toggle {\n position: relative;\n}\n\n.ui-select-bootstrap .ui-select-toggle > .caret {\n position: absolute;\n height: 10px;\n top: 50%;\n right: 10px;\n margin-top: -2px;\n}\n\n/* Fix Bootstrap dropdown position when inside a input-group */\n.input-group > .ui-select-bootstrap.dropdown {\n /* Instead of relative */\n position: static;\n}\n\n.input-group .ui-select-bootstrap:first-child .form-control {\n border-top-left-radius: 4px; /* FIXME hardcoded value :-/ */\n border-bottom-left-radius: 4px; /* FIXME hardcoded value :-/ */\n}\n\n.input-group .ui-select-bootstrap:last-child .form-control {\n border-top-right-radius: 4px; /* FIXME hardcoded value :-/ */\n border-bottom-right-radius: 4px; /* FIXME hardcoded value :-/ */\n}\n\n.input-group > .ui-select-bootstrap > input.ui-select-search.form-control {\n border-radius: 4px; /* FIXME hardcoded value :-/ */\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .ui-select-bootstrap > input.ui-select-search.form-control.direction-up {\n border-radius: 4px !important; /* FIXME hardcoded value :-/ */\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n}\n\n.ui-select-bootstrap .ui-select-search-hidden {\n opacity: 0;\n height: 0;\n min-height: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n.ui-select-bootstrap > .ui-select-match > .btn {\n /* Instead of center because of .btn */\n text-align: left !important;\n}\n\n.ui-select-bootstrap > .ui-select-match > .caret {\n position: absolute;\n top: 45%;\n right: 15px;\n}\n\n/* See Scrollable Menu with Bootstrap 3 http://stackoverflow.com/questions/19227496 */\n.ui-select-bootstrap .ui-select-choices,\n.ui-select-bootstrap .ui-select-no-choice {\n width: 100%;\n height: auto;\n max-height: 200px;\n overflow-x: hidden;\n margin-top: -1px;\n}\n\nbody > .ui-select-bootstrap.open {\n z-index: 1000; /* Standard Bootstrap dropdown z-index */\n}\n\n.ui-select-multiple.ui-select-bootstrap {\n height: auto;\n padding: 3px 3px 0 3px;\n}\n\n.ui-select-multiple.ui-select-bootstrap input.ui-select-search {\n background-color: transparent !important; /* To prevent double background when disabled */\n border: none;\n outline: none;\n height: 1.666666em;\n margin-bottom: 3px;\n}\n\n.ui-select-multiple.ui-select-bootstrap .ui-select-match .close {\n font-size: 1.6em;\n line-height: 0.75;\n}\n\n.ui-select-multiple.ui-select-bootstrap .ui-select-match-item {\n outline: 0;\n margin: 0 3px 3px 0;\n}\n\n.ui-select-multiple .ui-select-match-item {\n position: relative;\n}\n\n.ui-select-multiple .ui-select-match-item.dropping .ui-select-match-close {\n pointer-events: none;\n}\n\n.ui-select-multiple:hover .ui-select-match-item.dropping-before:before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 100%;\n height: 100%;\n margin-right: 2px;\n border-left: 1px solid #428bca;\n}\n\n.ui-select-multiple:hover .ui-select-match-item.dropping-after:after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 100%;\n height: 100%;\n margin-left: 2px;\n border-right: 1px solid #428bca;\n}\n\n\n.ui-select-bootstrap .ui-select-choices {\n padding: 5px 0;\n margin: 0;\n list-style: none;\n}\n\n.ui-select-bootstrap .ui-select-header-group-selectable:hover {\n background-color: #f5f5f5;\n}\n\n.ui-select-bootstrap .ui-select-header-group-selectable {\n color: black;\n cursor: pointer;\n padding: 3px 10px;\n}\n\n.ui-select-bootstrap .ui-select-choices-row>span {\n cursor: pointer;\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: 400;\n line-height: 1.42857143;\n color: #333;\n white-space: nowrap;\n}\n\n.ui-select-bootstrap .ui-select-choices-row > span {\n cursor: pointer;\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: 400;\n line-height: 1.42857143;\n color: #333;\n white-space: nowrap;\n}\n\n.ui-select-bootstrap .ui-select-choices-row > span:hover, .ui-select-bootstrap .ui-select-choices-row > span:focus {\n text-decoration: none;\n color: #262626;\n background-color: #f5f5f5;\n}\n\n.ui-select-bootstrap .ui-select-choices-row.active > span {\n color: #fff;\n text-decoration: none;\n outline: 0;\n background-color: #428bca;\n}\n\n.ui-select-bootstrap .ui-select-choices-row.disabled > span,\n.ui-select-bootstrap .ui-select-choices-row.active.disabled > span {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n}\n\n.ui-select-bootstrap .ui-select-footer,\n.ui-select-bootstrap .ui-select-header {\n display: block;\n padding: 5px 20px;\n clear: both;\n font-weight: 400;\n line-height: 1.42857143;\n}\n\n.ui-select-bootstrap .ui-select-footer {\n border-top: 1px solid #dfe5eb;\n}\n\n.ui-select-bootstrap .ui-select-header {\n border-bottom: 1px solid #dfe5eb;\n}\n\n.ui-select-bootstrap .ui-select-dropdown {\n min-width: 100%;\n padding: 0;\n margin-top: -1px;\n}\n\n/* fix hide/show angular animation */\n.ui-select-match.ng-hide-add,\n.ui-select-search.ng-hide-add {\n display: none !important;\n}\n\n/* Mark invalid Bootstrap */\n.ui-select-bootstrap.ng-dirty.ng-invalid > button.btn.ui-select-match {\n border-color: #D44950;\n}\n\n/* Handle up direction Bootstrap */\n.ui-select-container[theme=\"bootstrap\"].direction-up .ui-select-dropdown {\n box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);\n}\n\n.ui-select-bootstrap .ui-select-match-text {\n width: 100%;\n padding-right: 1em;\n}\n\n.ui-select-bootstrap .ui-select-match-text span {\n display: inline-block;\n width: 100%;\n overflow: hidden;\n}\n\n.ui-select-bootstrap .ui-select-toggle > a.btn {\n position: absolute;\n height: 10px;\n right: 10px;\n margin-top: -2px;\n}\n\n/* Spinner */\n.ui-select-refreshing.glyphicon {\n position: absolute;\n right: 0;\n padding: 8px 27px;\n}\n\n@-webkit-keyframes ui-select-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n\n@keyframes ui-select-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n\n.ui-select-spin {\n -webkit-animation: ui-select-spin 2s infinite linear;\n animation: ui-select-spin 2s infinite linear;\n}\n\n.ui-select-refreshing.ng-animate {\n animation: none 0s;\n -webkit-animation: none 0s;\n}\n"]} \ No newline at end of file diff --git a/dist/select.min.js b/dist/select.min.js index bdd45bcb2..8706fff27 100644 --- a/dist/select.min.js +++ b/dist/select.min.js @@ -1,4 +1,4 @@ /*! ui-select@0.20.0 https://github.com/bdb-opensource/ui-select (MIT License) */ -!function(){"use strict";function e(e){return void 0===e||null===e}function t(t,l,i,c,n,a,r,o,u,d){function p(){return e(X.selected)||""===X.selected||X.selected.$$null||X.multiple&&0===X.selected.length}function h(){return X.$element.find(".ui-select-match-text").text()}function g(){if(!X.selected||!X.selected.length)return X.placeholder}function f(e,t,s){if(e.findIndex)return e.findIndex(t,s);for(var l,i=Object(e),c=i.length>>>0,n=0;n-1?u(s.slice(l+1)):function(e){return e},c=i(t);e=f(X.items,function(e){return angular.equals(i(e),c)})}e<0&&(e=f(X.items,function(e){return!e.$$null&&!k(e)})),X.activeIndex=e}}function $(e,t){for(var s,l=0,i=[];l1&&X.open&&H()}))}function E(e){X.search=e||X.search,X.searchInput[0].focus()}function x(e,t){return X.groups&&X.groups.filter(function(s){return t?s.name==e:s.name===e})[0]}function y(s,l,i){function c(){var e=m(t);t.$uisSource=Object.keys(e).map(function(t){var s={};return s[X.parserResult.keyName]=t,s.value=e[t],s})}function n(){var e={$$null:!0};return e[X.itemProperty]=X.nullValue,e}function o(e){return!X.taggingLabel&&!X.required&&(!X.search||X.nullLabel.toLowerCase().indexOf(X.search)>-1)&&!e.some(b)}function d(e,t){e!==t&&c()}function p(t){if(e(t))X.items=[];else{if(!angular.isArray(t))throw r("items","Expected an array but got '{0}'.",t);X.refreshItems(t),angular.isDefined(X.ngModel.$modelValue)&&(X.ngModel.$modelValue=null)}}function h(s){function l(e){function t(t){return!angular.equals(e,t)}return angular.isArray(i)?i.every(t):t(i)}var i=X.selected;s=s||X.parserResult.source(t)||X.items||[],!X.multiple||!X.removeSelected||X.isEmpty()||angular.isArray(i)&&!i.length?X.setItemsFn(s):e(s)||X.setItemsFn(s.filter(l)),"auto"!==X.dropdownPosition&&"up"!==X.dropdownPosition||t.calculateDropdownPos(),t.$broadcast("uis:refresh")}function g(e){X.items=e,o(e)&&e.unshift(n())}function f(e){e=e||X.items;var s=t.$eval(l);X.items=[],X.groups=[],e.forEach(function(e){var t=angular.isFunction(s)?s(e):e[s],l=X.findGroupByName(t);l?l.items.push(e):X.groups.push({name:t,items:[e]})});var c=i&&t.$eval(i);if(angular.isFunction(c)?X.groups=c(X.groups):angular.isArray(c)&&(X.groups=$(X.groups,c)),e=X.items=X.groups.reduce(function(e,t){return e.concat(t.items)},[]),o(e)){var a=X.groups[0]||(X.groups[0]={name:"",items:[]}),r=n();a.items.unshift(r),e.unshift(r)}}var v=a.parse(s),m=v.source;X.isGrouped=!!l,X.itemProperty=v.itemName,X.parserResult=v,X.refreshItems=h,X.setItemsFn=l?f:g,v.keyName&&(c(),v.source=u("$uisSource"+v.filters),t.$watch(m,d,!0)),t.$watchCollection(v.source,p)}function S(s){e(s)||(j&&i.cancel(j),j=i(function(){if(t.$select.search.length>=t.$select.minimumInputLength){var e=t.$eval(s);e&&angular.isFunction(e.then)&&!X.refreshing&&(X.refreshing=!0,e["finally"](function(){X.refreshing=!1}))}},X.refreshDelay))}function C(e){if(!X.open)return!1;var t=X.items.indexOf(e[X.itemProperty]),s=t==X.activeIndex;return!(!s||t<0)&&(s&&!angular.isUndefined(X.onHighlightCallback)&&e.$eval(X.onHighlightCallback),s)}function A(e){return angular.isArray(X.selected)&&X.selected.filter(function(t){return angular.equals(t,e)}).length>0}function I(e,t){var s=Y.indexOf(e);t&&s===-1&&Y.push(e),!t&&s>-1&&Y.splice(s,1)}function k(e){return Y.indexOf(e)>-1}function T(e){if(X.open){var t=e[X.itemProperty],s=X.items.indexOf(t),l=!1;if(s>=0&&(angular.isDefined(X.disableChoiceExpression)||X.multiple)){if(t.isTag)return!1;X.multiple&&(l=A(t)),!l&&angular.isDefined(X.disableChoiceExpression)&&(l=!!e.$eval(X.disableChoiceExpression)),I(t,l)}return l}}function M(s,l,i){if(e(s)||!k(s)){if(!X.items&&!X.search&&!X.tagging.isActivated)return;if(!s||!k(s)){if(X.clickTriggeredSelect=!1,i&&("click"===i.type||"touchend"===i.type)&&s&&(X.clickTriggeredSelect=!0),X.tagging.isActivated&&X.clickTriggeredSelect===!1){if(X.taggingLabel===!1)if(X.activeIndex<0){if(void 0===s&&(s=void 0!==X.tagging.fct?X.tagging.fct(X.search):X.search),!s||angular.equals(X.items[0],s))return}else s=X.items[X.activeIndex];else if(0===X.activeIndex){if(void 0===s)return;if(void 0!==X.tagging.fct&&"string"==typeof s){if(s=X.tagging.fct(s),!s)return}else"string"==typeof s&&(s=s.replace(X.taggingLabel,"").trim())}if(A(s))return void X.close(l)}v(),t.$broadcast("uis:select",s),X.closeOnSelect&&X.close(l)}}}function L(e){X.open&&(X.ngModel&&X.ngModel.$setTouched&&X.ngModel.$setTouched(),X.open=!1,v(),t.$broadcast("uis:close",e))}function R(){X.focus||X.focusInput[0].focus()}function D(e){X.select(X.nullValue),e.stopPropagation(),i(function(){X.focusser[0].focus()},0,!1)}function P(e){X.open?X.close():X.activate(),F(e)}function N(e){function t(e,t){var s=i.indexOf(e);t&&s===-1&&i.push(e),!t&&s>-1&&i.splice(s,1)}function s(e){return i.indexOf(e)>-1}function l(e,l){var i=!1,c=X.selected[l];return c&&(e?(i=!!e.$eval(X.lockChoiceExpression),t(c,i)):i=s(c)),i}if(e){var i=[];X.isLocked=l}}function O(){function e(){return c.clientWidth*!!l.offsetParent}function s(e){if(0===e)return!1;var t=e-l.offsetLeft;return t<50&&(t=e),X.searchInput.css("width",t+"px"),!0}var l=X.searchInput[0],c=X.$element[0];X.searchInput.css("width","10px"),i(function(){null!==Z||s(e())||(Z=t.$watch(function(){ee||(ee=!0,t.$$postDigest(function(){ee=!1,s(e())&&(Z(),Z=null)}))},angular.noop))})}function q(e,t){var l=!0;switch(e){case s.DOWN:case s.UP:if(!X.open&&X.multiple)X.activate(!1,!0);else{var i=X.items.length;do X.activeIndex+=e===s.UP?-1:1;while(X.activeIndex>0&&X.activeIndex=0)?X.select(X.items[X.activeIndex],X.skipFocusser):X.activate(!1,!0);break;case s.ESC:X.close();break;default:l=!1}return l}function F(e){e.preventDefault(),e.stopPropagation()}function z(e){i(function(){var t=X.focusser&&X.focusser[0];if(t){var s=angular.element(":tabbable"),l=s.index(t);if(l>-1){var i=s[l+(e?-1:1)];i&&i.focus()}}},10)}function B(e){var l=e.which;~[s.ENTER,s.ESC,s.TAB].indexOf(l)&&F(e),t.$apply(function(){var t=!1;if(X.items.length>0||X.tagging.isActivated){if(q(l,e.shiftKey)||X.searchEnabled||F(e),X.taggingTokens.isActivated){for(var c=0;c0&&(t=!0);t&&i(function(){X.searchInput.triggerHandler("tagged");var t=X.search.replace(s.MAP[e.keyCode],"").trim();X.tagging.fct&&(t=X.tagging.fct(t)),t&&X.select(t,!0)})}}else l===s.TAB&&X.tabNavigate(e.shiftKey)}),s.isVerticalMovement(l)&&X.items.length>0&&H()}function V(e){var t;if(t=window.clipboardData&&window.clipboardData.getData?window.clipboardData.getData("Text"):(e.originalEvent||e).clipboardData.getData("text/plain"),t=X.search+t,t&&t.length>0)if(X.taggingTokens.isActivated){for(var l=[],i=0;i-1){l=t.split(c);break}}0===l.length&&(l=[t]);var n=X.search;l.forEach(function(e){var t=X.tagging.fct?X.tagging.fct(e):e;t&&X.select(t,!0)}),X.search=n||Q,F(e)}else X.paste&&(X.paste(t),X.search=Q,F(e))}function G(){i(v)}function H(){var e=l.querySelectorAll(".ui-select-choices-content"),t=e.querySelectorAll(".ui-select-choices-row");if(t.length<1)throw r("choices","Expected multiple .ui-select-choices-row but got '{0}'.",t.length);var s=t[X.activeIndex];if(s){var i=s.offsetTop+s.clientHeight-e[0].scrollTop,c=e[0].offsetHeight;i>c?e[0].scrollTop+=i-c:i=112&&e<=123},isVerticalMovement:function(e){return~[s.UP,s.DOWN].indexOf(e)},isHorizontalMovement:function(e){return~[s.LEFT,s.RIGHT,s.BACKSPACE,s.DELETE].indexOf(e)},toSeparator:function(e){var t={ENTER:"\n",TAB:"\t",SPACE:" "}[e];return t?t:s[e]?void 0:e}};void 0===angular.element.prototype.querySelectorAll&&(angular.element.prototype.querySelectorAll=function(e){return angular.element(this[0].querySelectorAll(e))}),void 0===angular.element.prototype.closest&&(angular.element.prototype.closest=function(e){for(var t=this[0],s=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.msMatchesSelector;t;){if(s.bind(t)(e))return t;t=t.parentElement}return!1});var l=0,i=angular.module("ui.select",[]).constant("uiSelectConfig",{theme:"bootstrap",searchEnabled:!0,sortable:!1,placeholder:"",refreshDelay:1e3,closeOnSelect:!0,skipFocusser:!1,dropdownPosition:"auto",removeSelected:!0,resetSearchInput:!0,generateId:function(){return l++},appendToBody:!1,spinnerEnabled:!1,spinnerClass:"glyphicon glyphicon-refresh ui-select-spin",backspaceReset:!0,nullLabel:"(none)",nullValue:null}).service("uiSelectMinErr",function(){var e=angular.$$minErr("ui.select");return function(){var t=e.apply(this,arguments),s=t.message.replace(new RegExp("\nhttp://errors.angularjs.org/.*"),"");return new Error(s)}}).directive("uisTranscludeAppend",function(){return{link:function(e,t,s,l,i){i(e,function(e){t.append(e)})}}}).filter("highlight",function(){function e(e){return(""+e).replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(t,s){return s&&t?(""+t).replace(new RegExp(e(s),"gi"),'$&'):t}}).factory("uisOffset",["$document","$window",function(e,t){return function(s){var l=s[0].getBoundingClientRect();return{width:l.width||s.prop("offsetWidth"),height:l.height||s.prop("offsetHeight"),top:l.top+(t.pageYOffset||e[0].documentElement.scrollTop),left:l.left+(t.pageXOffset||e[0].documentElement.scrollLeft)}}}]);i.directive("uiSelectChoices",["uiSelectConfig","uisRepeatParser","uiSelectMinErr","$compile","$window",function(e,t,s,l,i){return{restrict:"EA",require:"^uiSelect",replace:!0,transclude:!0,templateUrl:function(t){t.addClass("ui-select-choices");var s=t.parent().attr("theme")||e.theme;return s+"/choices.tpl.html"},compile:function(l,c){if(!c.repeat)throw s("repeat","Expected 'repeat' expression.");var n=c.groupBy,a=c.groupFilter;if(n){var r=l.querySelectorAll(".ui-select-choices-group");if(1!==r.length)throw s("rows","Expected 1 .ui-select-choices-group but got '{0}'.",r.length);r.attr("ng-repeat",t.getGroupNgRepeatExpression())}var o=t.parse(c.repeat),u=l.querySelectorAll(".ui-select-choices-row");if(1!==u.length)throw s("rows","Expected 1 .ui-select-choices-row but got '{0}'.",u.length);u.attr("ng-repeat",o.repeatExpression(n));var d=l.querySelectorAll(".ui-select-choices-row-inner");if(1!==d.length)throw s("rows","Expected 1 .ui-select-choices-row-inner but got '{0}'.",d.length);d.attr("uis-transclude-append","");var p=i.document.addEventListener?u:d;return p.attr("ng-click","$select.select("+o.itemName+",$select.skipFocusser,$event)"),function(t,s,l,i){i.parseRepeatAttr(l.repeat,n,a),i.disableChoiceExpression=l.uiDisableChoice,i.onHighlightCallback=l.onHighlight,i.minimumInputLength=parseInt(l.minimumInputLength)||0,i.dropdownPosition=l.position?l.position.toLowerCase():e.dropdownPosition,t.$watch("$select.search",function(e){e&&!i.open&&i.multiple&&i.activate(!1,!0),i.activeIndex=i.tagging.isActivated?-1:0,!l.minimumInputLength||i.search.length>=l.minimumInputLength?i.refresh(l.refresh):i.items=[]}),l.$observe("refreshDelay",function(s){s=t.$eval(s),i.refreshDelay=void 0!==s?s:e.refreshDelay}),l.$observe("nullValue",function(e){e=t.$eval(e),i.nullValue=void 0!==e?e:null,i.refreshItems()}),l.$observe("nullLabel",function(t){i.nullLabel=void 0!==t&&""!==t?t:e.nullLabel}),t.$watch("$select.open",function(e){e?(s.attr("role","listbox"),i.refresh(l.refresh)):s.removeAttr("role")})}}}}]),i.controller("uiSelectCtrl",["$scope","$element","$timeout","$filter","$$uisDebounce","uisRepeatParser","uiSelectMinErr","uiSelectConfig","$parse","$window",t]),i.directive("uiSelect",["$document","uiSelectConfig","uiSelectMinErr","uisOffset","$parse","$timeout","$window",function(e,t,s,l,i,c,n){return{restrict:"EA",templateUrl:function(e,s){var l=s.theme||t.theme;return l+(angular.isDefined(s.multiple)?"/select-multiple.tpl.html":"/select.tpl.html")},replace:!0,transclude:!0,require:["uiSelect","^ngModel","?^^fieldset"],scope:!0,controller:"uiSelectCtrl",controllerAs:"$select",compile:function(a,r){var o=/{(.*)}\s*{(.*)}/.exec(r.ngClass);if(o){var u="{"+o[1]+", "+o[2]+"}";r.ngClass=u,a.attr("ng-class",u)}return angular.isDefined(r.multiple)?a.append("").removeAttr("multiple"):a.append(""),r.inputId&&(a.querySelectorAll("input.ui-select-search")[0].id=r.inputId),function(a,r,o,u,d){function p(e){if(w.open){var t=!1,s=e.target||e.srcElement;if(t=window.jQuery?window.jQuery.contains(r[0],s):r[0].contains(s),!t&&!w.clickTriggeredSelect){var l;if(w.skipFocusser)l=!0;else{var i=["input","button","textarea","select"],c=angular.element(s).controller("uiSelect");l=c&&c!==w,l||(l=~i.indexOf(s.tagName.toLowerCase()))}w.close(l),a.$digest()}w.clickTriggeredSelect=!1}}function h(){w.close(!1)}function g(e){r[0].contains(e.target||e.srcElement)||w.close(!1)}function f(t){var s=e[0].documentElement.scrollLeft||e[0].body.scrollLeft,l=t.left+t.width-(s+e[0].documentElement.clientWidth),i=30,c=t.left;return l>0&&(c-=l+i),c}function v(){var t=l(r);S=angular.element('
    '),S[0].style.width=t.width+"px",S[0].style.height=t.height+"px",r.after(S),C=r[0].style.width,e.find("body").append(r),r[0].style.position="absolute",r[0].style.left=f(t)+"px",r[0].style.top=t.top+"px",r[0].style.width=t.width+"px"}function m(){n.removeEventListener("mousedown",p,!0),n.removeEventListener("scroll",h,!0),n.removeEventListener("resize",$,!0)}function $(){m(),null!==S&&(S.replaceWith(r),S=null,r[0].style.position="",r[0].style.left="",r[0].style.top="",r[0].style.width=C,w.setFocus())}function b(){c(function(){w.setFocus()})}var w=u[0],E=u[1],x=u[2];w.generatedId=t.generateId(),w.baseTitle=o.title||"Select box",w.focusserTitle=w.baseTitle+" focus",w.focusserId="focusser-"+w.generatedId,w.closeOnSelect=function(){return angular.isDefined(o.closeOnSelect)?i(o.closeOnSelect)():t.closeOnSelect}(),a.$watch("skipFocusser",function(){var e=a.$eval(o.skipFocusser);w.skipFocusser=void 0!==e?e:t.skipFocusser}),w.onSelectCallback=i(o.onSelect),w.onRemoveCallback=i(o.onRemove),w.ngModel=E,w.choiceGrouped=function(e){return w.isGrouped&&e&&e.name},o.tabindex&&o.$observe("tabindex",function(e){w.focusInput.attr("tabindex",e),r.removeAttr("tabindex")}),a.$watch(function(){return a.$eval(o.searchEnabled)},function(e){w.searchEnabled=void 0!==e?e:t.searchEnabled}),a.$watch("sortable",function(){var e=a.$eval(o.sortable);w.sortable=void 0!==e?e:t.sortable}),o.$observe("backspaceReset",function(){var e=a.$eval(o.backspaceReset);w.backspaceReset=void 0===e||e}),o.$observe("limit",function(){w.limit=angular.isDefined(o.limit)?parseInt(o.limit,10):void 0}),a.$watch("removeSelected",function(){var e=a.$eval(o.removeSelected);w.removeSelected=void 0!==e?e:t.removeSelected}),a.$watch(function(){return r.attr("disabled")||x&&x.isDisabled()},function(e){w.disabled=e}),o.$observe("resetSearchInput",function(){var e=a.$eval(o.resetSearchInput);w.resetSearchInput=void 0===e||e}),o.$observe("paste",function(){w.paste=a.$eval(o.paste)}),o.$observe("tagging",function(){if(void 0!==o.tagging){var e=a.$eval(o.tagging);w.tagging={isActivated:!0,fct:e!==!0?e:void 0}}else w.tagging={isActivated:!1,fct:void 0}}),o.$observe("taggingLabel",function(){void 0!==o.tagging&&("false"===o.taggingLabel?w.taggingLabel=!1:w.taggingLabel=void 0!==o.taggingLabel?o.taggingLabel:"(new)")}),o.$observe("taggingTokens",function(){if(void 0!==o.tagging){var e=void 0!==o.taggingTokens?o.taggingTokens.split("|"):[",","ENTER"];w.taggingTokens={isActivated:!0,tokens:e}}}),o.$observe("spinnerEnabled",function(){var e=a.$eval(o.spinnerEnabled);w.spinnerEnabled=void 0!==e?e:t.spinnerEnabled}),o.$observe("spinnerClass",function(){var e=o.spinnerClass;w.spinnerClass=void 0!==e?o.spinnerClass:t.spinnerClass}),a.$watch(function(){return!!a.$eval(o.ngRequired)},function(e,t){w.required=e,w.refreshItems()}),angular.isDefined(o.autofocus)&&b(),angular.isDefined(o.focusOn)&&a.$on(o.focusOn,b),d(a,function(e){var t=angular.element("
    ").append(e),l=t.querySelectorAll(".ui-select-match");if(l.removeAttr("ui-select-match"),l.removeAttr("data-ui-select-match"),1!==l.length)throw s("transcluded","Expected 1 .ui-select-match but got '{0}'.",l.length);r.querySelectorAll(".ui-select-match").replaceWith(l);var i=t.querySelectorAll(".ui-select-choices");if(i.removeAttr("ui-select-choices"),i.removeAttr("data-ui-select-choices"),1!==i.length)throw s("transcluded","Expected 1 .ui-select-choices but got '{0}'.",i.length);r.querySelectorAll(".ui-select-choices").replaceWith(i);var c=t.querySelectorAll(".ui-select-no-choice");c.removeAttr("ui-select-no-choice"),c.removeAttr("data-ui-select-no-choice"),1==c.length&&r.querySelectorAll(".ui-select-no-choice").replaceWith(c);var n=t.querySelectorAll(".ui-select-header");n.removeAttr("ui-select-header"),n.removeAttr("data-ui-select-header"),1==n.length?r.querySelectorAll(".ui-select-header").replaceWith(n):r.querySelectorAll(".ui-select-header").remove();var a=t.querySelectorAll(".ui-select-footer");a.removeAttr("ui-select-footer"),a.removeAttr("data-ui-select-footer"),1==a.length?r.querySelectorAll(".ui-select-footer").replaceWith(a):r.querySelectorAll(".ui-select-footer").remove()});var y=a.$eval(o.appendToBody);void 0===y&&(y=t.appendToBody),a.$watch("$select.open",function(e){e?(n.addEventListener("mousedown",p,!0),n.addEventListener("scroll",g,!0),n.addEventListener("resize",h,!0),y&&a.$evalAsync(v)):y?$():m(),"auto"!==w.dropdownPosition&&"up"!==w.dropdownPosition||a.calculateDropdownPos()}),a.$on("$destroy",y?$:m);var S=null,C="",A=null,I="direction-up",k=function(e,t){e=e||l(r),t=t||l(A),A[0].style.position="absolute",A[0].style.top=t.height*-1+"px",r.addClass(I)},T=function(e,t){r.removeClass(I),e=e||l(r),t=t||l(A),A[0].style.position="",A[0].style.top=""},M=function(t,s){var l=e[0].documentElement.scrollLeft||e[0].body.scrollLeft;t.left+s.width>l+e[0].documentElement.clientWidth?A.addClass("dropdown-menu-right"):A.removeClass("dropdown-menu-right")},L=function(){c(function(){if("up"===w.dropdownPosition)k();else{r.removeClass(I);var t=l(r),s=l(A),i=e[0].documentElement.scrollTop||e[0].body.scrollTop;t.top+t.height+s.height>i+e[0].documentElement.clientHeight?k(t,s):T(t,s),M(t,s)}A.removeClass("ui-select-detached")})},R=!1;a.calculateDropdownPos=function(){if(w.open){if(A=angular.element(r).querySelectorAll(".ui-select-dropdown"),0===A.length)return;""!==w.search||R||(A.addClass("ui-select-detached"),R=!0),L()}else{if(null===A||0===A.length)return;A.removeClass("ui-select-detached"),A.removeClass("dropdown-menu-right"),A[0].style.position="",A[0].style.top="",r.removeClass(I)}}}}}}]),i.directive("uiSelectFooter",["uiSelectConfig",function(e){return{templateUrl:function(t){t.addClass("ui-select-footer");var s=t.parent().attr("theme")||e.theme;return s+"/footer.tpl.html"},restrict:"EA",transclude:!0,replace:!0}}]),i.directive("uiSelectHeader",["uiSelectConfig",function(e){return{templateUrl:function(t){t.addClass("ui-select-header");var s=t.parent().attr("theme")||e.theme;return s+"/header.tpl.html"},restrict:"EA",transclude:!0,replace:!0}}]),i.directive("uiSelectHeaderGroupSelectable",["$timeout",function(e){return{restrict:"EA",require:["^uiSelect"],scope:{isEnabled:"0||p.search.length&&e==s.RIGHT)&&(p.close(),d=t(),p.selected.length&&d!==!1?g.activeMatchIndex=Math.min(n,Math.max(c,d)):g.activeMatchIndex=-1,!0)}function u(e){if(void 0===e||void 0===p.search)return!1;var t=e.filter(function(e){return void 0!==p.search.toUpperCase()&&void 0!==e&&e.toUpperCase()===p.search.toUpperCase()}).length>0;return t}function d(e,t){var s=-1;if(angular.isArray(e))for(var l=angular.copy(e),i=0;i=0;l--)t={},t[p.parserResult.itemName]=p.selected[l],e=p.parserResult.modelMapper(i,t),s.unshift(e);return s}),h.$formatters.unshift(function(e){var t,s=p.parserResult&&p.parserResult.source(i,{$select:{search:""}}),l={};if(!s)return e;var c=[],n=function(e,s){if(e&&e.length){for(var n=e.length-1;n>=0;n--){if(l[p.parserResult.itemName]=e[n],t=p.parserResult.modelMapper(i,l),p.parserResult.trackByExp){var a=/(\w*)\./.exec(p.parserResult.trackByExp),r=/\.([^\s]+)/.exec(p.parserResult.trackByExp);if(a&&a.length>0&&a[1]==p.parserResult.itemName&&r&&r.length>0&&t[r[1]]==s[r[1]])return c.unshift(e[n]),!0}if(angular.equals(t,s))return c.unshift(e[n]),!0}return!1}};if(!e)return c;for(var a=e.length-1;a>=0;a--)n(p.selected,e[a])||n(s,e[a])||c.unshift(e[a]);return c}),i.$watchCollection(function(){return h.$modelValue},function(e,t){t!=e&&(angular.isDefined(h.$modelValue)&&(h.$modelValue=null),g.refreshComponent())}),h.$render=function(){if(!angular.isArray(h.$viewValue)){if(!e(h.$viewValue))throw t("multiarr","Expected model value to be array but got '{0}'",h.$viewValue);h.$viewValue=[]}p.selected=h.$viewValue,g.refreshComponent(),i.$evalAsync()},i.$on("uis:select",function(e,t){if(!(p.selected.length>=p.limit)){p.selected.push(t);var s={};s[p.parserResult.itemName]=t,l(function(){p.onSelectCallback(i,{$item:t,$model:p.parserResult.modelMapper(i,s)})}),g.updateModel()}}),i.$on("uis:activate",function(){g.activeMatchIndex=-1}),i.$watch("$select.disabled",function(e,t){t&&!e&&p.sizeSearchInput()}),p.searchInput.on("keydown",function(e){var t=e.which;i.$apply(function(){var l=!1;s.isHorizontalMovement(t)&&(l=o(t)),l&&t!=s.TAB&&p.cancelEvent(e)})}),p.searchInput.on("keyup",function(e){if(s.isVerticalMovement(e.which)||i.$evalAsync(function(){p.activeIndex=p.taggingLabel===!1?-1:0}),p.tagging.isActivated&&p.search.length>0){if(e.which===s.TAB||s.isControl(e)||s.isFunctionKey(e)||e.which===s.ESC||s.isVerticalMovement(e.which))return;if(p.activeIndex=p.taggingLabel===!1?-1:0,p.taggingLabel===!1)return;var t,l,c,n,a=angular.copy(p.items),r=angular.copy(p.items),o=!1,h=-1;if(void 0!==p.tagging.fct){if(c=p.$filter("filter")(a,{isTag:!0}),c.length>0&&(n=c[0]),a.length>0&&n&&(o=!0,a=a.slice(1,a.length),r=r.slice(1,r.length)),t=p.tagging.fct(p.search),r.some(function(e){return angular.equals(e,t)})||p.selected.some(function(e){return angular.equals(e,t)}))return void i.$evalAsync(function(){p.activeIndex=0,p.items=a});t&&(t.isTag=!0)}else{if(c=p.$filter("filter")(a,function(e){return e.match(p.taggingLabel)}),c.length>0&&(n=c[0]),l=a[0],void 0!==l&&a.length>0&&n&&(o=!0,a=a.slice(1,a.length),r=r.slice(1,r.length)),t=p.search+" "+p.taggingLabel,d(p.selected,p.search)>-1)return;if(u(r.concat(p.selected)))return void(o&&(a=r,i.$evalAsync(function(){p.activeIndex=0,p.items=a})));if(u(r))return void(o&&(p.items=r.slice(1,r.length)))}o&&(h=d(p.selected,t)),h>-1?a=a.slice(h+1,a.length-1):(a=[],t&&a.push(t),a=a.concat(r)),i.$evalAsync(function(){if(p.activeIndex=0,p.items=a,p.isGrouped){var e=t?a.slice(1):a;p.setItemsFn(e),t&&(p.items.unshift(t),p.groups.unshift({name:"",items:[t],tagging:!0}))}})}}),p.searchInput.on("blur",function(){l(function(){g.activeMatchIndex=-1})})}}}]),i.directive("uiSelectNoChoice",["uiSelectConfig",function(e){return{restrict:"EA",require:"^uiSelect",replace:!0,transclude:!0,templateUrl:function(t){t.addClass("ui-select-no-choice");var s=t.parent().attr("theme")||e.theme;return s+"/no-choice.tpl.html"}}}]),i.directive("uiSelectSingle",["$timeout","$compile",function(t,l){return{restrict:"EA",require:["^uiSelect","^ngModel"],link:function(i,c,n,a){var r=a[0],o=a[1];o.$parsers.unshift(function(t){if(e(t))return t;if(t.$$null)return t[r.itemProperty];var s={};return s[r.parserResult.itemName]=t,r.parserResult.modelMapper(i,s)}),o.$formatters.unshift(function(t){if(e(t))return t;var s,l=r.parserResult&&r.parserResult.source(i,{$select:{search:""}}),c={};if(l){var n=function(e){return c[r.parserResult.itemName]=e,s=r.parserResult.modelMapper(i,c),s===t};if(r.selected&&n(r.selected))return r.selected;for(var a=l.length-1;a>=0;a--)if(n(l[a]))return l[a]}return t}),i.$watch("$select.selected",function(e){o.$viewValue!==e&&o.$setViewValue(e)}),o.$render=function(){r.selected=o.$viewValue},i.$on("uis:select",function(s,l){r.selected=l;var c={};c[r.parserResult.itemName]=l,t(function(){r.onSelectCallback(i,{$item:l,$model:e(l)?l:r.parserResult.modelMapper(i,c)})})}),i.$on("uis:close",function(e,s){t(function(){r.focusser.prop("disabled",!1),s||r.focusser[0].focus()},0,!1)}),i.$on("uis:activate",function(){u.prop("disabled",!0)});var u=angular.element("");l(u)(i),r.focusser=u,r.focusInput=u,c.parent().parent().prepend(u),i.$on("$destroy",function(){r.focusser&&r.focusser.remove()}),u.on("focus",function(){i.$evalAsync(function(){r.focus=!0})}),u.on("blur",function(){i.$evalAsync(function(){r.focus=!1; -})}),u.on("keydown",function(e){return e.which===s.BACKSPACE&&r.backspaceReset!==!1?(r.select(r.nullValue),r.cancelEvent(e),void i.$apply()):e.which===s.TAB?(r.tabNavigate(e.shiftKey),void r.cancelEvent(e)):void(e.which===s.TAB||s.isControl(e)||s.isFunctionKey(e)||e.which===s.ESC||(e.which!=s.DOWN&&e.which!=s.UP&&e.which!=s.ENTER&&e.which!=s.SPACE||(r.cancelEvent(e),r.activate()),i.$digest()))}),u.on("keyup input",function(e){e.which===s.TAB||s.isControl(e)||s.isFunctionKey(e)||e.which===s.ESC||e.which==s.ENTER||e.which===s.BACKSPACE||(r.activate(u.val()),u.val(""),i.$digest())})}}}]),i.directive("uiSelectSort",["$timeout","uiSelectConfig","uiSelectMinErr",function(e,t,s){return{require:["^^uiSelect","^ngModel"],link:function(t,l,i,c){if(null===t[i.uiSelectSort])throw s("sort","Expected a list to sort");var n=c[0],a=c[1],r=angular.extend({axis:"horizontal"},t.$eval(i.uiSelectSortOptions)),o=r.axis,u="dragging",d="dropping",p="dropping-before",h="dropping-after";if(t.$watch(function(){return n.sortable},function(e){e?l.attr("draggable",!0):l.removeAttr("draggable")}),!l.data("disallowDrop")){l.on("dragstart",function(e){l.addClass(u),(e.dataTransfer||e.originalEvent.dataTransfer).setData("text",t.$index.toString())}),l.on("dragend",function(){v(u)});var g,f=function(e,t){this.splice(t,0,this.splice(e,1)[0])},v=function(e){angular.forEach(n.$element.querySelectorAll("."+e),function(t){angular.element(t).removeClass(e)})},m=function(e){e.preventDefault();var t="vertical"===o?e.offsetY||e.layerY||(e.originalEvent?e.originalEvent.offsetY:0):e.offsetX||e.layerX||(e.originalEvent?e.originalEvent.offsetX:0);t
  • '),e.put("bootstrap/footer.tpl.html",''),e.put("bootstrap/header.tpl.html",'
    '),e.put("bootstrap/match-multiple.tpl.html",' × '),e.put("bootstrap/match.tpl.html",'
    '),e.put("bootstrap/no-choice.tpl.html",''),e.put("bootstrap/select-multiple.tpl.html",''),e.put("bootstrap/select.tpl.html",''),e.put("selectize/choices.tpl.html",'
    '),e.put("selectize/footer.tpl.html",''),e.put("selectize/header.tpl.html",'
    '),e.put("selectize/match-multiple.tpl.html",'
    ×
    '),e.put("selectize/match.tpl.html",'
    '),e.put("selectize/no-choice.tpl.html",'
    '),e.put("selectize/select-multiple.tpl.html",'
    '),e.put("selectize/select.tpl.html",'
    '),e.put("select2/choices.tpl.html",'
    '),e.put("select2/footer.tpl.html",''),e.put("select2/header.tpl.html",'
    '),e.put("select2/match-multiple.tpl.html",'
  • '),e.put("select2/match.tpl.html",' '),e.put("select2/no-choice.tpl.html",''),e.put("select2/select-multiple.tpl.html",'
    '),e.put("select2/select.tpl.html",'
    ')}]); +!function(){"use strict";function e(e){return void 0===e||null===e}function t(t,s,l,c,n,a,r,o,u,d){function p(){var t=Y.selected;return e(t)||""===t||t.$$null||Y.multiple&&!t.length}function h(){return Y.$element.find(".ui-select-match-text").text()}function g(){var e=Y.selected;if(!e||!e.length)return Y.placeholder}function f(e,t,i){if(e.findIndex)return e.findIndex(t,i);for(var s,l=Object(e),c=l.length>>>0,n=0;n1&&Y.open&&H()}))}function E(e){Y.search=e||Y.search,Y.searchInput[0].focus()}function x(e,t){return Y.groups&&Y.groups.filter(function(i){return t?i.name==e:i.name===e})[0]}function y(i,s,c){function n(){var e=E(t);t.$uisSource=Object.keys(e).map(function(t){var i={};return i[Y.parserResult.keyName]=t,i.value=e[t],i})}function o(){var e={$$null:!0};return e[Y.itemProperty]=Y.nullValue,e}function d(e){return!Y.taggingLabel&&!Y.required&&(!Y.search||Y.nullLabel.toLowerCase().indexOf(Y.search)>-1)&&!e.some(b)}function h(e,t){e!==t&&n()}function g(t){if(e(t))Y.items=[];else{if(!angular.isArray(t))throw r("items","Expected an array but got '{0}'.",t);Y.refreshItems(t),angular.isDefined(Y.ngModel.$modelValue)&&(Y.ngModel.$modelValue=null)}}function f(i){function s(e){function t(t){return!angular.equals(e,t)}return angular.isArray(c)?c.every(t):t(c)}var c=Y.selected;i=i||Y.parserResult.source(t)||Y.items||[],!Y.multiple||!Y.removeSelected||p()||angular.isArray(c)&&!c.length?Y.setItemsFn(i):e(i)||Y.setItemsFn(i.filter(s)),l(t.calculateDropdownPos),t.$broadcast("uis:refresh")}function v(e){Y.items=e,d(e)&&e.unshift(o())}function m(e){e=e||Y.items;var i=t.$eval(s);Y.items=[],Y.groups=[],e.forEach(function(e){var t=angular.isFunction(i)?i(e):e[i],s=x(t);s?s.items.push(e):Y.groups.push({name:t,items:[e]})});var l=c&&t.$eval(c);if(angular.isFunction(l)?Y.groups=l(Y.groups):angular.isArray(l)&&(Y.groups=$(Y.groups,l)),e=Y.items=Y.groups.reduce(function(e,t){return e.concat(t.items)},[]),d(e)){var n=Y.groups[0]||(Y.groups[0]={name:"",items:[]}),a=o();n.items.unshift(a),e.unshift(a)}}var w=a.parse(i),E=w.source;Y.isGrouped=!!s,Y.itemProperty=w.itemName,Y.parserResult=w,Y.refreshItems=f,Y.setItemsFn=s?m:v,w.keyName&&(n(),w.source=u("$uisSource"+w.filters),t.$watch(E,h,!0)),t.$watchCollection(w.source,g)}function S(i){e(i)||(X&&l.cancel(X),X=l(function(){if(t.$select.search.length>=t.$select.minimumInputLength){var e=t.$eval(i);e&&angular.isFunction(e.then)&&!Y.refreshing&&(Y.refreshing=!0,e["finally"](function(){Y.refreshing=!1}))}},Y.refreshDelay))}function A(e){if(!Y.open)return!1;var t=Y.items.indexOf(e[Y.itemProperty]),i=t==Y.activeIndex;return!(!i||t<0)&&(i&&!angular.isUndefined(Y.onHighlightCallback)&&e.$eval(Y.onHighlightCallback),i)}function C(e){var t=Y.selected;return angular.isArray(t)&&t.filter(function(t){return angular.equals(t,e)}).length>0}function k(e,t){var i=j.indexOf(e);t&&i===-1&&j.push(e),!t&&i>-1&&j.splice(i,1)}function I(e){return j.indexOf(e)>-1}function T(e){if(Y.open){var t=e[Y.itemProperty],i=Y.items.indexOf(t),s=!1;if(i>=0&&(angular.isDefined(Y.disableChoiceExpression)||Y.multiple)){if(t.isTag)return!1;Y.multiple&&(s=C(t)),!s&&angular.isDefined(Y.disableChoiceExpression)&&(s=!!e.$eval(Y.disableChoiceExpression)),k(t,s)}return s}}function M(i,s,l){if(e(i)||!I(i)){if(!Y.items&&!Y.search&&!Y.tagging.isActivated)return;if(!i||!I(i)){if(Y.clickTriggeredSelect=!1,l&&("click"===l.type||"touchend"===l.type)&&i&&(Y.clickTriggeredSelect=!0),Y.tagging.isActivated&&Y.clickTriggeredSelect===!1){if(Y.taggingLabel===!1)if(Y.activeIndex<0){if(void 0===i&&(i=void 0!==Y.tagging.fct?Y.tagging.fct(Y.search):Y.search),!i||angular.equals(Y.items[0],i))return}else i=Y.items[Y.activeIndex];else if(0===Y.activeIndex){if(void 0===i)return;if(void 0!==Y.tagging.fct&&"string"==typeof i){if(i=Y.tagging.fct(i),!i)return}else"string"==typeof i&&(i=i.replace(Y.taggingLabel,"").trim())}if(C(i))return void L(s)}v(),t.$broadcast("uis:select",i),Y.closeOnSelect&&L(s)}}}function L(e){Y.open&&(Y.ngModel&&Y.ngModel.$setTouched&&Y.ngModel.$setTouched(),Y.open=!1,v(),t.$broadcast("uis:close",e))}function R(){Y.focus||Y.searchInput[0].focus()}function D(e){M(Y.nullValue),e.stopPropagation(),l(function(){Y.focusser[0].focus()},0,!1)}function P(e){Y.open?L():w(),F(e)}function O(e){function t(e,t){var i=l.indexOf(e);t&&i===-1&&l.push(e),!t&&i>-1&&l.splice(i,1)}function i(e){return l.indexOf(e)>-1}function s(e,s){var l=!1,c=Y.selected[s];return c&&(e?(l=!!e.$eval(Y.lockChoiceExpression),t(c,l)):l=i(c)),l}if(e){var l=[];Y.isLocked=s}}function q(){function e(){return c.clientWidth*!!s.offsetParent}function i(e){if(0===e)return!1;var t=e-s.offsetLeft;return t<50&&(t=e),Y.searchInput.css("width",t+"px"),!0}var s=Y.searchInput[0],c=Y.$element[0];Y.searchInput.css("width","10px"),l(function(){null!==Z||i(e())||(Z=t.$watch(function(){ee||(ee=!0,t.$$postDigest(function(){ee=!1,i(e())&&(Z(),Z=null)}))},angular.noop))})}function N(e,t){var s=!0;switch(e){case i.DOWN:case i.UP:if(!Y.open&&Y.multiple)w(!1,!0);else{var l=Y.items.length;do Y.activeIndex+=e===i.UP?-1:1;while(Y.activeIndex>0&&Y.activeIndex=0)?M(Y.items[Y.activeIndex],Y.skipFocusser):w(!1,!0);break;case i.ESC:L();break;default:s=!1}return s}function F(e){e.preventDefault(),e.stopPropagation()}function V(e){L(!0),l(function(){var t=Y.focusser&&Y.focusser[0];if(t){var i=angular.element(":tabbable"),s=i.index(t);if(s>-1){s+=e?-1:1;var l=i[s+(s<0?i.length:0)];l&&l.focus()}}},50)}function z(e){var s=e.which;~[i.ENTER,i.ESC,i.TAB].indexOf(s)&&F(e),t.$apply(function(){var t=!1;if(Y.items.length>0||Y.tagging.isActivated){if(N(s,e.shiftKey)||Y.searchEnabled||F(e),Y.taggingTokens.isActivated){for(var c=0;c0&&(t=!0);t&&l(function(){Y.searchInput.triggerHandler("tagged");var t=Y.search.replace(i.MAP[e.keyCode],"").trim();Y.tagging.fct&&(t=Y.tagging.fct(t)),t&&M(t,!0)})}}else s===i.TAB&&V(e.shiftKey)}),i.isVerticalMovement(s)&&Y.items.length>0&&H()}function B(e){var t;if(t=window.clipboardData&&window.clipboardData.getData?window.clipboardData.getData("Text"):(e.originalEvent||e).clipboardData.getData("text/plain"),t=Y.search+t,t&&t.length>0)if(Y.taggingTokens.isActivated){for(var s=[],l=0;l-1){s=t.split(c);break}}0===s.length&&(s=[t]);var n=Y.search;s.forEach(function(e){var t=Y.tagging.fct?Y.tagging.fct(e):e;t&&M(t,!0)}),Y.search=n||Q,F(e)}else Y.paste&&(Y.paste(t),Y.search=Q,F(e))}function G(){l(v)}function H(){var e=s.querySelectorAll(".ui-select-choices-content"),t=e.querySelectorAll(".ui-select-choices-row");if(t.length<1)throw r("choices","Expected multiple .ui-select-choices-row but got '{0}'.",t.length);var i=t[Y.activeIndex];if(i){var l=i.offsetTop+i.clientHeight-e[0].scrollTop,c=e[0].offsetHeight;l>c?e[0].scrollTop+=l-c:l=112&&e<=123},isVerticalMovement:function(e){return~[i.UP,i.DOWN].indexOf(e)},isHorizontalMovement:function(e){return~[i.LEFT,i.RIGHT,i.BACKSPACE,i.DELETE].indexOf(e)},toSeparator:function(e){var t={ENTER:"\n",TAB:"\t",SPACE:" "}[e];return t?t:i[e]?void 0:e}};void 0===angular.element.prototype.querySelectorAll&&(angular.element.prototype.querySelectorAll=function(e){return angular.element(this[0].querySelectorAll(e))}),void 0===angular.element.prototype.closest&&(angular.element.prototype.closest=function(e){for(var t=this[0],i=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.msMatchesSelector;t;){if(i.bind(t)(e))return t;t=t.parentElement}return!1});var s=0,l=angular.module("ui.select",[]).constant("uiSelectConfig",{theme:"bootstrap",searchEnabled:!0,sortable:!1,placeholder:"",refreshDelay:1e3,closeOnSelect:!0,skipFocusser:!1,dropdownXPosition:"auto",dropdownYPosition:"auto",removeSelected:!0,resetSearchInput:!0,generateId:function(){return s++},appendToBody:!1,spinnerEnabled:!1,spinnerClass:"glyphicon glyphicon-refresh ui-select-spin",backspaceReset:!0,nullLabel:"(none)",nullValue:null}).service("uiSelectMinErr",function(){var e=angular.$$minErr("ui.select");return function(){var t=e.apply(this,arguments),i=t.message.replace(new RegExp("\nhttp://errors.angularjs.org/.*"),"");return new Error(i)}}).directive("uisTranscludeAppend",function(){return{link:function(e,t,i,s,l){l(e,function(e){t.append(e)})}}}).filter("highlight",function(){function e(e){return(""+e).replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(t,i){return i&&t?(""+t).replace(new RegExp(e(i),"gi"),'$&'):t}}).factory("uisOffset",["$document","$window",function(e,t){return function(i){var s=i[0].getBoundingClientRect();return{width:s.width||i.prop("offsetWidth"),height:s.height||i.prop("offsetHeight"),top:s.top+(t.pageYOffset||e[0].documentElement.scrollTop),left:s.left+(t.pageXOffset||e[0].documentElement.scrollLeft)}}}]);l.directive("uiSelectChoices",["uiSelectConfig","uisRepeatParser","uiSelectMinErr","$compile","$window",function(e,t,i,s,l){return{restrict:"EA",require:"^uiSelect",replace:!0,transclude:!0,templateUrl:function(t){t.addClass("ui-select-choices");var i=t.parent().attr("theme")||e.theme;return i+"/choices.tpl.html"},compile:function(s,c){if(!c.repeat)throw i("repeat","Expected 'repeat' expression.");var n=c.groupBy,a=c.groupFilter;if(n){var r=s.querySelectorAll(".ui-select-choices-group");if(1!==r.length)throw i("rows","Expected 1 .ui-select-choices-group but got '{0}'.",r.length);r.attr("ng-repeat",t.getGroupNgRepeatExpression())}var o=t.parse(c.repeat),u=s.querySelectorAll(".ui-select-choices-row");if(1!==u.length)throw i("rows","Expected 1 .ui-select-choices-row but got '{0}'.",u.length);u.attr("ng-repeat",o.repeatExpression(n));var d=s.querySelectorAll(".ui-select-choices-row-inner");if(1!==d.length)throw i("rows","Expected 1 .ui-select-choices-row-inner but got '{0}'.",d.length);d.attr("uis-transclude-append","");var p=l.document.addEventListener?u:d;return p.attr("ng-click","$select.select("+o.itemName+",$select.skipFocusser,$event)"),function(t,i,s,l){l.parseRepeatAttr(s.repeat,n,a),l.disableChoiceExpression=s.uiDisableChoice,l.onHighlightCallback=s.onHighlight,l.minimumInputLength=parseInt(s.minimumInputLength)||0;var c=String(s.position||"").toLowerCase().split(/\s+/g);l.dropdownYPosition=c[0]||e.dropdownYPosition,l.dropdownXPosition=c[1]||e.dropdownXPosition,t.$watch("$select.search",function(e){e&&!l.open&&l.multiple&&l.activate(!1,!0),l.activeIndex=l.tagging.isActivated?-1:0,!s.minimumInputLength||l.search.length>=s.minimumInputLength?l.refresh(s.refresh):l.items=[]}),s.$observe("refreshDelay",function(i){i=t.$eval(i),l.refreshDelay=void 0!==i?i:e.refreshDelay}),s.$observe("nullValue",function(e){e=t.$eval(e),l.nullValue=void 0!==e?e:null,l.refreshItems()}),s.$observe("nullLabel",function(t){l.nullLabel=void 0!==t&&""!==t?t:e.nullLabel}),t.$watch("$select.open",function(e){e?(i.attr("role","listbox"),l.refresh(s.refresh)):i.removeAttr("role")})}}}}]),l.controller("uiSelectCtrl",["$scope","$element","$timeout","$filter","$$uisDebounce","uisRepeatParser","uiSelectMinErr","uiSelectConfig","$parse","$window",t]),l.directive("uiSelect",["$document","uiSelectConfig","uiSelectMinErr","uisOffset","$parse","$timeout","$window",function(e,t,i,s,l,c,n){return{restrict:"EA",templateUrl:function(e,i){var s=i.theme||t.theme;return s+(angular.isDefined(i.multiple)?"/select-multiple.tpl.html":"/select.tpl.html")},replace:!0,transclude:!0,require:["uiSelect","^ngModel","?^^fieldset"],scope:!0,controller:"uiSelectCtrl",controllerAs:"$select",compile:function(a,r){var o=/{(.*)}\s*{(.*)}/.exec(r.ngClass);if(o){var u="{"+o[1]+", "+o[2]+"}";r.ngClass=u,a.attr("ng-class",u)}return angular.isDefined(r.multiple)?a.append("").removeAttr("multiple"):a.append(""),r.inputId&&(a.querySelectorAll("input.ui-select-search")[0].id=r.inputId),function(a,r,o,u,d){function p(t){var i=x.scrollLeft||e[0].body.scrollLeft,s=t.left+t.width-(i+x.clientWidth),l=30,c=t.left;return s>0&&(c-=s+l),c}function h(e){if(b.open){var t=!1,i=e.target||e.srcElement;if(t=window.jQuery?window.jQuery.contains(r[0],i):r[0].contains(i),!t&&!b.clickTriggeredSelect){var s;if(b.skipFocusser)s=!0;else{var l=["input","button","textarea","select"],c=angular.element(i).controller("uiSelect");s=c&&c!==b,s||(s=~l.indexOf(i.tagName.toLowerCase()))}b.close(s),a.$digest()}b.clickTriggeredSelect=!1}}function g(){b.close(!1)}function f(e){r[0].contains(e.target||e.srcElement)||b.close(!1)}function v(){var t=s(r);A=angular.element('
    '),A[0].style.width=t.width+"px",A[0].style.height=t.height+"px",r.after(A),S=r[0].style.width,r[0].style.position="absolute",r[0].style.left=p(t)+"px",r[0].style.top=t.top+"px",r[0].style.width=t.width+"px",e[0].body.appendChild(r[0])}function m(){n.removeEventListener("mousedown",h,!0),n.removeEventListener("scroll",g,!0),n.removeEventListener("resize",m,!0),A&&(r[0].style.position="",r[0].style.left="",r[0].style.top="",r[0].style.width=S,A.replaceWith(r),A=null,$())}function $(){c(b.setFocus)}var b=u[0],w=u[1],E=u[2],x=e[0].documentElement,y=angular.element(),S="",A=null,C=a.$eval(o.appendToBody);void 0===C&&(C=t.appendToBody),b.generatedId=t.generateId(),b.baseTitle=o.title||"Select box",b.focusserTitle=b.baseTitle+" focus",b.focusserId="focusser-"+b.generatedId,b.closeOnSelect=function(){return angular.isDefined(o.closeOnSelect)?l(o.closeOnSelect)():t.closeOnSelect}(),a.$watch("skipFocusser",function(){var e=a.$eval(o.skipFocusser);b.skipFocusser=void 0!==e?e:t.skipFocusser}),b.onSelectCallback=l(o.onSelect),b.onRemoveCallback=l(o.onRemove),b.ngModel=w,b.choiceGrouped=function(e){return b.isGrouped&&e&&e.name},o.tabindex&&o.$observe("tabindex",function(e){b.searchInput.attr("tabindex",e),r.removeAttr("tabindex")}),a.$watch(function(){return a.$eval(o.searchEnabled)},function(e){b.searchEnabled=void 0!==e?e:t.searchEnabled}),a.$watch("sortable",function(){var e=a.$eval(o.sortable);b.sortable=void 0!==e?e:t.sortable}),o.$observe("backspaceReset",function(){var e=a.$eval(o.backspaceReset);b.backspaceReset=void 0===e||e}),o.$observe("limit",function(){b.limit=angular.isDefined(o.limit)?parseInt(o.limit,10):void 0}),a.$watch("removeSelected",function(){var e=a.$eval(o.removeSelected);b.removeSelected=void 0!==e?e:t.removeSelected}),a.$watch(function(){return r.attr("disabled")||E&&E.isDisabled()},function(e){b.disabled=e}),o.$observe("resetSearchInput",function(){var e=a.$eval(o.resetSearchInput);b.resetSearchInput=void 0===e||e}),o.$observe("paste",function(){b.paste=a.$eval(o.paste)}),o.$observe("tagging",function(){if(void 0!==o.tagging){var e=a.$eval(o.tagging);b.tagging={isActivated:!0,fct:e!==!0?e:void 0}}else b.tagging={isActivated:!1,fct:void 0}}),o.$observe("taggingLabel",function(){void 0!==o.tagging&&("false"===o.taggingLabel?b.taggingLabel=!1:b.taggingLabel=void 0!==o.taggingLabel?o.taggingLabel:"(new)")}),o.$observe("taggingTokens",function(){if(void 0!==o.tagging){var e=void 0!==o.taggingTokens?o.taggingTokens.split("|"):[",","ENTER"];b.taggingTokens={isActivated:!0,tokens:e}}}),o.$observe("spinnerEnabled",function(){var e=a.$eval(o.spinnerEnabled);b.spinnerEnabled=void 0!==e?e:t.spinnerEnabled}),o.$observe("spinnerClass",function(){var e=o.spinnerClass;b.spinnerClass=void 0!==e?o.spinnerClass:t.spinnerClass}),a.$watch(function(){return!!a.$eval(o.ngRequired)},function(e,t){b.required=e,b.refreshItems()}),angular.isDefined(o.autofocus)&&$(),angular.isDefined(o.focusOn)&&a.$on(o.focusOn,$),d(a,function(e){var t=angular.element("
    ").append(e),s=t.querySelectorAll(".ui-select-match");if(s.removeAttr("ui-select-match"),s.removeAttr("data-ui-select-match"),1!==s.length)throw i("transcluded","Expected 1 .ui-select-match but got '{0}'.",s.length);r.querySelectorAll(".ui-select-match").replaceWith(s);var l=t.querySelectorAll(".ui-select-choices");if(l.removeAttr("ui-select-choices"),l.removeAttr("data-ui-select-choices"),1!==l.length)throw i("transcluded","Expected 1 .ui-select-choices but got '{0}'.",l.length);r.querySelectorAll(".ui-select-choices").replaceWith(l);var c=t.querySelectorAll(".ui-select-no-choice");c.removeAttr("ui-select-no-choice"),c.removeAttr("data-ui-select-no-choice"),1==c.length&&r.querySelectorAll(".ui-select-no-choice").replaceWith(c);var n=t.querySelectorAll(".ui-select-header");n.removeAttr("ui-select-header"),n.removeAttr("data-ui-select-header"),1==n.length?r.querySelectorAll(".ui-select-header").replaceWith(n):r.querySelectorAll(".ui-select-header").remove();var a=t.querySelectorAll(".ui-select-footer");a.removeAttr("ui-select-footer"),a.removeAttr("data-ui-select-footer"),1==a.length?r.querySelectorAll(".ui-select-footer").replaceWith(a):r.querySelectorAll(".ui-select-footer").remove()}),a.$watch("$select.open",function(e){e?(n.addEventListener("mousedown",h,!0),n.addEventListener("scroll",f,!0),n.addEventListener("resize",g,!0),C&&a.$evalAsync(v),a.calculateDropdownPos()):m()}),a.$on("$destroy",m),a.calculateDropdownPos=function(){if(b.open&&(y=y.length?y:angular.element(r).querySelectorAll(".ui-select-dropdown"),y.length)){y[0].style.position="",y[0].style.top="",y[0].style.visibility="hidden",r.removeClass("direction-up dropdown-menu-right");var t=s(r),i=s(y),l=x||e[0].body,c=b.dropdownXPosition;y.toggleClass("dropdown-menu-right","right"===c||"auto"===c&&t.left+i.width-l.scrollLeft>x.clientWidth);var n=b.dropdownYPosition,a="up"===n||"auto"===n&&t.top+t.height+i.height-l.scrollTop>x.clientHeight?i.height*-1+"px":"";y[0].style.position=a?"absolute":"",y[0].style.top=a,y[0].style.visibility="",a&&r.addClass("direction-up")}}}}}}]),l.directive("uiSelectFooter",["uiSelectConfig",function(e){return{templateUrl:function(t){t.addClass("ui-select-footer");var i=t.parent().attr("theme")||e.theme;return i+"/footer.tpl.html"},restrict:"EA",transclude:!0,replace:!0}}]),l.directive("uiSelectHeader",["uiSelectConfig",function(e){return{templateUrl:function(t){t.addClass("ui-select-header");var i=t.parent().attr("theme")||e.theme;return i+"/header.tpl.html"},restrict:"EA",transclude:!0,replace:!0}}]),l.directive("uiSelectHeaderGroupSelectable",["$timeout",function(e){return{restrict:"EA",require:["^uiSelect"],scope:{isEnabled:"0||p.search.length&&e==i.RIGHT)&&(p.close(),d=t(),p.selected.length&&d!==!1?g.activeMatchIndex=Math.min(n,Math.max(c,d)):g.activeMatchIndex=-1,!0)}function u(e){if(void 0===e||void 0===p.search)return!1;var t=e.filter(function(e){return void 0!==p.search.toUpperCase()&&void 0!==e&&e.toUpperCase()===p.search.toUpperCase()}).length>0;return t}function d(e,t){var i=-1;if(angular.isArray(e))for(var s=angular.copy(e),l=0;l=0;s--)t={},t[p.parserResult.itemName]=p.selected[s],e=p.parserResult.modelMapper(l,t),i.unshift(e);return i}),h.$formatters.unshift(function(e){var t,i=p.parserResult&&p.parserResult.source(l,{$select:{search:""}}),s={};if(!i)return e;var c=[],n=function(e,i){if(e&&e.length){for(var n=e.length-1;n>=0;n--){if(s[p.parserResult.itemName]=e[n],t=p.parserResult.modelMapper(l,s),p.parserResult.trackByExp){var a=/(\w*)\./.exec(p.parserResult.trackByExp),r=/\.([^\s]+)/.exec(p.parserResult.trackByExp);if(a&&a.length>0&&a[1]==p.parserResult.itemName&&r&&r.length>0&&t[r[1]]==i[r[1]])return c.unshift(e[n]),!0}if(angular.equals(t,i))return c.unshift(e[n]),!0}return!1}};if(!e)return c;for(var a=e.length-1;a>=0;a--)n(p.selected,e[a])||n(i,e[a])||c.unshift(e[a]);return c}),l.$watchCollection(function(){return h.$modelValue},function(e,t){t!=e&&(angular.isDefined(h.$modelValue)&&(h.$modelValue=null),g.refreshComponent())}),h.$render=function(){if(!angular.isArray(h.$viewValue)){if(!e(h.$viewValue))throw t("multiarr","Expected model value to be array but got '{0}'",h.$viewValue);h.$viewValue=[]}p.selected=h.$viewValue,g.refreshComponent(),l.$evalAsync()},l.$on("uis:select",function(e,t){if(!(p.selected.length>=p.limit)){p.selected.push(t);var i={};i[p.parserResult.itemName]=t,s(function(){p.onSelectCallback(l,{$item:t,$model:p.parserResult.modelMapper(l,i)})}),g.updateModel()}}),l.$on("uis:activate",function(){g.activeMatchIndex=-1}),l.$watch("$select.disabled",function(e,t){t&&!e&&p.sizeSearchInput()}),p.searchInput.on("keydown",function(e){var t=e.which;l.$apply(function(){var s=!1;i.isHorizontalMovement(t)&&(s=o(t)),s&&t!=i.TAB&&p.cancelEvent(e)})}),p.searchInput.on("keyup",function(e){if(i.isVerticalMovement(e.which)||l.$evalAsync(function(){p.activeIndex=p.taggingLabel===!1?-1:0}),p.tagging.isActivated&&p.search.length>0){if(e.which===i.TAB||i.isControl(e)||i.isFunctionKey(e)||e.which===i.ESC||i.isVerticalMovement(e.which))return;if(p.activeIndex=p.taggingLabel===!1?-1:0,p.taggingLabel===!1)return;var t,s,c,n,a=angular.copy(p.items),r=angular.copy(p.items),o=!1,h=-1;if(void 0!==p.tagging.fct){if(c=p.$filter("filter")(a,{isTag:!0}),c.length>0&&(n=c[0]),a.length>0&&n&&(o=!0,a=a.slice(1,a.length),r=r.slice(1,r.length)),t=p.tagging.fct(p.search),r.some(function(e){return angular.equals(e,t)})||p.selected.some(function(e){return angular.equals(e,t)}))return void l.$evalAsync(function(){p.activeIndex=0,p.items=a});t&&(t.isTag=!0)}else{if(c=p.$filter("filter")(a,function(e){return e.match(p.taggingLabel)}),c.length>0&&(n=c[0]),s=a[0],void 0!==s&&a.length>0&&n&&(o=!0,a=a.slice(1,a.length),r=r.slice(1,r.length)),t=p.search+" "+p.taggingLabel,d(p.selected,p.search)>-1)return;if(u(r.concat(p.selected)))return void(o&&(a=r,l.$evalAsync(function(){p.activeIndex=0,p.items=a})));if(u(r))return void(o&&(p.items=r.slice(1,r.length)))}o&&(h=d(p.selected,t)),h>-1?a=a.slice(h+1,a.length-1):(a=[],t&&a.push(t),a=a.concat(r)),l.$evalAsync(function(){if(p.activeIndex=0,p.items=a,p.isGrouped){var e=t?a.slice(1):a;p.setItemsFn(e),t&&(p.items.unshift(t),p.groups.unshift({name:"",items:[t],tagging:!0}))}})}}),p.searchInput.on("blur",function(){s(function(){g.activeMatchIndex=-1})})}}}]),l.directive("uiSelectNoChoice",["uiSelectConfig",function(e){return{restrict:"EA",require:"^uiSelect",replace:!0,transclude:!0,templateUrl:function(t){t.addClass("ui-select-no-choice");var i=t.parent().attr("theme")||e.theme;return i+"/no-choice.tpl.html"}}}]),l.directive("uiSelectSingle",["$timeout","$compile",function(t,s){return{restrict:"EA",require:["^uiSelect","^ngModel"],link:function(l,c,n,a){var r=a[0],o=a[1];o.$parsers.unshift(function(t){if(e(t))return t;if(t.$$null)return t[r.itemProperty];var i={};return i[r.parserResult.itemName]=t,r.parserResult.modelMapper(l,i)}),o.$formatters.unshift(function(t){if(e(t))return t;var i,s=r.parserResult&&r.parserResult.source(l,{$select:{search:""}}),c={};if(s){var n=function(e){return c[r.parserResult.itemName]=e,i=r.parserResult.modelMapper(l,c),i===t};if(r.selected&&n(r.selected))return r.selected;for(var a=s.length-1;a>=0;a--)if(n(s[a]))return s[a]}return t}),l.$watch("$select.selected",function(e){o.$viewValue!==e&&o.$setViewValue(e)}),o.$render=function(){r.selected=o.$viewValue},l.$on("uis:select",function(i,s){r.selected=s;var c={};c[r.parserResult.itemName]=s,t(function(){r.onSelectCallback(l,{$item:s,$model:e(s)?s:r.parserResult.modelMapper(l,c)})})}),l.$on("uis:close",function(e,i){t(function(){i||r.focusser[0].focus()},0,!1)});var u=angular.element("");s(u)(l),r.focusser=u,c.parent().parent().prepend(u),l.$on("$destroy",function(){r.focusser&&r.focusser.remove()}),u.on("focus",function(){l.$evalAsync(function(){r.focus=!0})}),u.on("blur",function(){l.$evalAsync(function(){r.focus=!1})}),u.on("keydown",function(e){return e.which===i.BACKSPACE&&r.backspaceReset!==!1?(r.select(r.nullValue),r.cancelEvent(e),void l.$apply()):e.which===i.TAB?(r.tabNavigate(e.shiftKey),void r.cancelEvent(e)):void(e.which===i.TAB||i.isControl(e)||i.isFunctionKey(e)||e.which===i.ESC||(e.which!=i.DOWN&&e.which!=i.UP&&e.which!=i.ENTER&&e.which!=i.SPACE||(r.cancelEvent(e),r.activate()),l.$digest()))}),u.on("keyup input",function(e){e.which===i.TAB||i.isControl(e)||i.isFunctionKey(e)||e.which===i.ESC||e.which==i.ENTER||e.which===i.BACKSPACE||(r.activate(u.val()),u.val(""),l.$digest())})}}}]),l.directive("uiSelectSort",["$timeout","uiSelectConfig","uiSelectMinErr",function(e,t,i){return{require:["^^uiSelect","^ngModel"],link:function(t,s,l,c){if(null===t[l.uiSelectSort])throw i("sort","Expected a list to sort"); +var n=c[0],a=c[1],r=angular.extend({axis:"horizontal"},t.$eval(l.uiSelectSortOptions)),o=r.axis,u="dragging",d="dropping",p="dropping-before",h="dropping-after";if(t.$watch(function(){return n.sortable},function(e){e?s.attr("draggable",!0):s.removeAttr("draggable")}),!s.data("disallowDrop")){s.on("dragstart",function(e){s.addClass(u),(e.dataTransfer||e.originalEvent.dataTransfer).setData("text",t.$index.toString())}),s.on("dragend",function(){v(u)});var g,f=function(e,t){this.splice(t,0,this.splice(e,1)[0])},v=function(e){angular.forEach(n.$element.querySelectorAll("."+e),function(t){angular.element(t).removeClass(e)})},m=function(e){e.preventDefault();var t="vertical"===o?e.offsetY||e.layerY||(e.originalEvent?e.originalEvent.offsetY:0):e.offsetX||e.layerX||(e.originalEvent?e.originalEvent.offsetX:0);t
  • '),e.put("select2/footer.tpl.html",''),e.put("select2/header.tpl.html",'
    '),e.put("select2/match-multiple.tpl.html",'
  • '),e.put("select2/match.tpl.html",' '),e.put("select2/no-choice.tpl.html",''),e.put("select2/select-multiple.tpl.html",'
    '),e.put("select2/select.tpl.html",'
    '),e.put("bootstrap/choices.tpl.html",'
    '),e.put("bootstrap/footer.tpl.html",''),e.put("bootstrap/header.tpl.html",'
    '),e.put("bootstrap/match-multiple.tpl.html",' × '),e.put("bootstrap/match.tpl.html",'
    '),e.put("bootstrap/no-choice.tpl.html",''),e.put("bootstrap/select-multiple.tpl.html",''),e.put("bootstrap/select.tpl.html",''),e.put("selectize/choices.tpl.html",'
    '),e.put("selectize/footer.tpl.html",''),e.put("selectize/header.tpl.html",'
    '),e.put("selectize/match-multiple.tpl.html",'
    ×
    '),e.put("selectize/match.tpl.html",'
    '),e.put("selectize/no-choice.tpl.html",'
    '),e.put("selectize/select-multiple.tpl.html",'
    '),e.put("selectize/select.tpl.html",'
    ')}]); //# sourceMappingURL=select.min.js.map diff --git a/dist/select.min.js.map b/dist/select.min.js.map index fa102578e..8d68ac1f7 100644 --- a/dist/select.min.js.map +++ b/dist/select.min.js.map @@ -1 +1 @@ -{"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","ctrl","selected","$$null","multiple","length","getSelectedText","find","text","getPlaceholder","placeholder","_findIndex","collection","predicate","thisArg","findIndex","list","Object","i","call","_resetSearchInput","resetSearchInput","search","EMPTY_SEARCH","setActiveIndexToSelected","active","angular","equals","nullValue","items","isNullValue","trackBy","parserResult","trackByExp","trackSkipFirst","indexOf","getter","slice","obj","trackedValue","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","some","onOriginalSourceChange","newVal","oldVal","onSourceChange","isArray","refreshItems","isDefined","ngModel","$modelValue","data","excludeSelected","isNotSelected","selectedItem","selectedItems","every","source","removeSelected","setItemsFn","dropdownPosition","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","focusInput","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","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","newValue","$observe","controller","uisOffset","controllerAs","match","exec","ngClass","combined","inputId","id","ctrls","transcludeFn","closeOnClick","contains","target","srcElement","jQuery","focusableControls","targetController","tagName","$digest","closeOnResize","closeOnScroll","calculateSelectLeftPosition","offset","body","edgeOffscreenAmount","paddingFromEdge","leftPosition","positionDropdown","style","after","originalWidth","removeGlobalHandlers","removeEventListener","resetDropdown","replaceWith","resetFocus","$fieldset","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","dropdown","directionUpClassName","setDropdownPosUp","offsetDropdown","setDropdownPosDown","removeClass","setDropdownHorizontalPos","calculateDropdownPosAfterAnimation","opened","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","propsItemNameMatches","oldValue","$render","$viewValue","event","tagItems","tagItem","stashArr","hasTag","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 \");\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\",\"
    • 0\\\">
    \");\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 \");\n $compile(focusser)(scope);\n $select.focusser = 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 getTrackedValue: function(scope, item) {\n if (!this.trackByExp) {\n return item;\n } else {\n var locals = {};\n locals[this.itemName] = item;\n return scope.$eval(this.trackByExp, locals);\n }\n },\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(\"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\",\"
    \");\n$templateCache.put(\"bootstrap/choices.tpl.html\",\"
    • 0\\\">
    \");\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\",\"
    \");}]);",null,null]} \ No newline at end of file diff --git a/src/common.css b/src/common.css index 64f82f888..1eb966379 100644 --- a/src/common.css +++ b/src/common.css @@ -17,11 +17,6 @@ top: 0 !important; } -.ui-select-detached { - position: fixed; - opacity: 0; -} - .ui-select-choices-row { position: relative; } diff --git a/src/common.js b/src/common.js index ff3253988..1cf081d80 100644 --- a/src/common.js +++ b/src/common.js @@ -103,7 +103,8 @@ var uis = angular.module('ui.select', []) refreshDelay: 1000, // In milliseconds closeOnSelect: true, skipFocusser: false, - dropdownPosition: 'auto', + dropdownXPosition: 'auto', + dropdownYPosition: 'auto', removeSelected: true, resetSearchInput: true, generateId: function() { diff --git a/src/uiSelectChoicesDirective.js b/src/uiSelectChoicesDirective.js index a2dde52b9..384ef2fdc 100644 --- a/src/uiSelectChoicesDirective.js +++ b/src/uiSelectChoicesDirective.js @@ -54,7 +54,11 @@ uis.directive('uiSelectChoices', $select.disableChoiceExpression = attrs.uiDisableChoice; $select.onHighlightCallback = attrs.onHighlight; $select.minimumInputLength = parseInt(attrs.minimumInputLength) || 0; - $select.dropdownPosition = attrs.position ? attrs.position.toLowerCase() : uiSelectConfig.dropdownPosition; + + // Position may be: [auto|up|down] [auto|left|right]. + var position = String(attrs.position || '').toLowerCase().split(/\s+/g); + $select.dropdownYPosition = position[0] || uiSelectConfig.dropdownYPosition; + $select.dropdownXPosition = position[1] || uiSelectConfig.dropdownXPosition; scope.$watch('$select.search', function(newValue) { if(newValue && !$select.open && $select.multiple) $select.activate(false, true); diff --git a/src/uiSelectController.js b/src/uiSelectController.js index 64eec73b8..2e327c36e 100644 --- a/src/uiSelectController.js +++ b/src/uiSelectController.js @@ -25,7 +25,8 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat ctrl.closeOnSelect = true; //Initialized inside uiSelect directive link function ctrl.disableChoiceExpression = undefined; // Initialized inside uiSelectChoices directive link function ctrl.disabled = false; - ctrl.dropdownPosition = 'auto'; + ctrl.dropdownXPosition = 'auto'; + ctrl.dropdownYPosition = 'auto'; ctrl.focus = false; ctrl.focusser = undefined; //Reference to input element used to handle focus events ctrl.items = []; //All available choices @@ -92,7 +93,8 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat //#region Controller Functions function isEmpty() { - return isNil(ctrl.selected) || ctrl.selected === '' || ctrl.selected.$$null || (ctrl.multiple && ctrl.selected.length === 0); + var selected = ctrl.selected; + return isNil(selected) || selected === '' || selected.$$null || (ctrl.multiple && !selected.length); } function getSelectedText() { @@ -100,7 +102,8 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat } function getPlaceholder() { - if (ctrl.selected && ctrl.selected.length) { return; } + var selected = ctrl.selected; + if (selected && selected.length) { return; } return ctrl.placeholder; } @@ -139,15 +142,15 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat // prototype. Otherwise, do equality checks. var active = -1; var selected = ctrl.selected; + var parserResult = ctrl.parserResult; if (angular.equals(selected, ctrl.nullValue)) { active = _findIndex(ctrl.items, isNullValue); - } else if (ctrl.items.length) { - var trackBy = ctrl.parserResult && ctrl.parserResult.trackByExp; - var trackSkipFirst = trackBy ? trackBy.indexOf('.') : -1; - var getter = trackSkipFirst > -1 ? $parse(trackBy.slice(trackSkipFirst + 1)) : function(obj) { return obj; }; - var trackedValue = getter(selected); + } else if (parserResult && ctrl.items.length) { + // If tracked by option.field.id, ng-model={field: {id}}, and items [{field: {id}, oopsNotSelected: true}], + // angular.equals will not find the ng-model, thus leaving unselected, due to oopsNotSelected. + var trackedValue = parserResult.getTrackedValue($scope, selected); active = _findIndex(ctrl.items, function(item) { - return angular.equals(getter(item), trackedValue); + return angular.equals(parserResult.getTrackedValue($scope, item), trackedValue); }); } @@ -195,14 +198,14 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat } $timeout(function() { - ctrl.focusSearchInput(initSearchValue); + focusSearchInput(initSearchValue); if (!ctrl.tagging.isActivated && ctrl.items.length > 1 && ctrl.open) { _ensureHighlightVisible(); } }); } else if (ctrl.open && !ctrl.searchEnabled) { // Close the selection if we don't have search enabled, and we click on the select again - ctrl.close(); + close(); } } @@ -289,16 +292,13 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat //TODO should implement for single mode removeSelected var selectedItems = ctrl.selected; data = data || ctrl.parserResult.source($scope) || ctrl.items || []; - if (!ctrl.multiple || !ctrl.removeSelected || ctrl.isEmpty() || (angular.isArray(selectedItems) && !selectedItems.length)) { + if (!ctrl.multiple || !ctrl.removeSelected || isEmpty() || (angular.isArray(selectedItems) && !selectedItems.length)) { ctrl.setItemsFn(data); } else if (!isNil(data)) { ctrl.setItemsFn(data.filter(excludeSelected)); } - if (ctrl.dropdownPosition === 'auto' || ctrl.dropdownPosition === 'up') { - $scope.calculateDropdownPos(); - } - + $timeout($scope.calculateDropdownPos); $scope.$broadcast('uis:refresh'); function excludeSelected(item) { @@ -328,7 +328,7 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat ctrl.groups = []; items.forEach(function(item) { var groupName = angular.isFunction(groupFn) ? groupFn(item) : item[groupFn]; - var group = ctrl.findGroupByName(groupName); + var group = findGroupByName(groupName); if (group) { group.items.push(item); } else { @@ -402,7 +402,8 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat } function _isItemSelected(item) { - return (angular.isArray(ctrl.selected) && ctrl.selected.filter(function(selection) { + var selected = ctrl.selected; + return (angular.isArray(selected) && selected.filter(function(selection) { return angular.equals(selection, item); }).length > 0); } @@ -492,7 +493,7 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat } // search ctrl.selected for dupes potentially caused by tagging and return early if found if (_isItemSelected(item)) { - ctrl.close(skipFocusser); + close(skipFocusser); return; } } @@ -501,7 +502,7 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat $scope.$broadcast('uis:select', item); if (ctrl.closeOnSelect) { - ctrl.close(skipFocusser); + close(skipFocusser); } } } @@ -523,12 +524,12 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat function setFocus() { if (!ctrl.focus) { - ctrl.focusInput[0].focus(); + ctrl.searchInput[0].focus(); } } function clear($event) { - ctrl.select(ctrl.nullValue); + select(ctrl.nullValue); $event.stopPropagation(); $timeout(function() { ctrl.focusser[0].focus(); @@ -538,9 +539,9 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat // Toggle dropdown function toggle(e) { if (ctrl.open) { - ctrl.close(); + close(); } else { - ctrl.activate(); + activate(); } cancelEvent(e); @@ -630,7 +631,7 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat case KEY.UP: if (!ctrl.open && ctrl.multiple) { // In case its the search input in 'multiple' mode - ctrl.activate(false, true); + activate(false, true); } else { var len = ctrl.items.length; do { @@ -643,23 +644,23 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat break; case KEY.TAB: if (!ctrl.multiple || ctrl.open) { - ctrl.select(ctrl.items[ctrl.activeIndex], true); - ctrl.tabNavigate(shiftKey); + select(ctrl.items[ctrl.activeIndex], true); + tabNavigate(shiftKey); } break; case KEY.ENTER: if (ctrl.open && (ctrl.tagging.isActivated || ctrl.activeIndex >= 0)) { // Make sure at least one dropdown item is highlighted before adding if not in tagging mode - ctrl.select(ctrl.items[ctrl.activeIndex], ctrl.skipFocusser); + select(ctrl.items[ctrl.activeIndex], ctrl.skipFocusser); } else { // In case its the search input in 'multiple' mode - ctrl.activate(false, true); + activate(false, true); } break; case KEY.ESC: - ctrl.close(); + close(); break; default: processed = false; @@ -673,6 +674,8 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat } function tabNavigate(shiftKey) { + close(true); + $timeout(function() { var focusEl = ctrl.focusser && ctrl.focusser[0]; if (!focusEl) { return; } @@ -680,12 +683,13 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat var focusable = angular.element(':tabbable'); var index = focusable.index(focusEl); if (index > -1) { - var el = focusable[index + (shiftKey ? -1 : 1)]; + index += shiftKey ? -1 : 1; + var el = focusable[index + (index < 0 ? focusable.length : 0)]; if (el) { el.focus(); } } - }, 10); + }, 50); } function onSearchInputKeyDown(e) { @@ -720,14 +724,14 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat } if (newItem) { - ctrl.select(newItem, true); + select(newItem, true); } }); } } } else if (key === KEY.TAB) { // Don't trap users in lists with no items - ctrl.tabNavigate(e.shiftKey); + tabNavigate(e.shiftKey); } }); @@ -766,7 +770,7 @@ function uiSelectCtrl($scope, $element, $timeout, $filter, $$uisDebounce, Repeat items.forEach(function(item) { var newItem = ctrl.tagging.fct ? ctrl.tagging.fct(item) : item; if (newItem) { - ctrl.select(newItem, true); + select(newItem, true); } }); ctrl.search = oldsearch || EMPTY_SEARCH; diff --git a/src/uiSelectDirective.js b/src/uiSelectDirective.js index a3d27ecb1..780de8ca7 100644 --- a/src/uiSelectDirective.js +++ b/src/uiSelectDirective.js @@ -35,11 +35,21 @@ uis.directive('uiSelect', tElement.querySelectorAll('input.ui-select-search')[0].id = tAttrs.inputId; return function(scope, element, attrs, ctrls, transcludeFn) { - var $select = ctrls[0]; var ngModel = ctrls[1]; var $fieldset = ctrls[2]; + var documentElement = $document[0].documentElement; + var dropdown = angular.element(); // Hold on to a reference to the .ui-select-dropdown element for direction support. + var originalWidth = ''; + var placeholder = null; // Hold on to a reference to the .ui-select-container element for appendToBody support + + // Support for appending the select field to the body when its open + var appendToBody = scope.$eval(attrs.appendToBody); + if (appendToBody === undefined) { + appendToBody = uiSelectConfig.appendToBody; + } + $select.generatedId = uiSelectConfig.generateId(); $select.baseTitle = attrs.title || 'Select box'; $select.focusserTitle = $select.baseTitle + ' focus'; @@ -70,7 +80,7 @@ uis.directive('uiSelect', if(attrs.tabindex){ attrs.$observe('tabindex', function(value) { - $select.focusInput.attr('tabindex', value); + $select.searchInput.attr('tabindex', value); element.removeAttr('tabindex'); }); } @@ -231,12 +241,6 @@ uis.directive('uiSelect', } }); - // Support for appending the select field to the body when its open - var appendToBody = scope.$eval(attrs.appendToBody); - if (appendToBody === undefined) { - appendToBody = uiSelectConfig.appendToBody; - } - scope.$watch('$select.open', function(isOpen) { if (isOpen) { // Attach global handlers that cause the dropdowns to close @@ -248,25 +252,65 @@ uis.directive('uiSelect', // Wait for ui-select-match child directive, it hasn't started rendering yet. scope.$evalAsync(positionDropdown); } - } else if (appendToBody) { - resetDropdown(); - } else { - removeGlobalHandlers(); - } - // Support changing the direction of the dropdown if there isn't enough space to render it. - if ($select.dropdownPosition === 'auto' || $select.dropdownPosition === 'up'){ scope.calculateDropdownPos(); + } else { + resetDropdown(); } }); // Move the dropdown back to its original location when the scope is destroyed. Otherwise // it might stick around when the user routes away or the select field is otherwise removed - scope.$on('$destroy', appendToBody ? resetDropdown : removeGlobalHandlers); + scope.$on('$destroy', resetDropdown); + + scope.calculateDropdownPos = function() { + if (!$select.open) { return; } + + dropdown = dropdown.length ? dropdown : angular.element(element).querySelectorAll('.ui-select-dropdown'); + if (!dropdown.length) { return; } + + // Clear existing state and hide dropdown + dropdown[0].style.position = ''; + dropdown[0].style.top = ''; + dropdown[0].style.visibility = 'hidden'; + element.removeClass('direction-up dropdown-menu-right'); + + // Determine X positioning + var offset = uisOffset(element); + var offsetDropdown = uisOffset(dropdown); + var scrollTarget = documentElement || $document[0].body; + var xState = $select.dropdownXPosition; + dropdown.toggleClass('dropdown-menu-right', xState === 'right' || + (xState === 'auto' && offset.left + offsetDropdown.width - scrollTarget.scrollLeft > documentElement.clientWidth) + ); + + // Determine Y positioning + var yState = $select.dropdownYPosition; + var top = yState === 'up' || (yState === 'auto' && offset.top + offset.height + offsetDropdown.height - scrollTarget.scrollTop > documentElement.clientHeight) ? + (offsetDropdown.height * -1) + 'px' : + ''; + + // Apply and make visible. + dropdown[0].style.position = top ? 'absolute' : ''; + dropdown[0].style.top = top; + dropdown[0].style.visibility = ''; + if (top) { + element.addClass('direction-up'); + } + }; + + function calculateSelectLeftPosition(offset) { + var scrollLeft = documentElement.scrollLeft || $document[0].body.scrollLeft; + var edgeOffscreenAmount = (offset.left + offset.width) - (scrollLeft + documentElement.clientWidth); + var paddingFromEdge = 30; + + var leftPosition = offset.left; + if (edgeOffscreenAmount > 0) { + leftPosition -= (edgeOffscreenAmount + paddingFromEdge); + } - // Hold on to a reference to the .ui-select-container element for appendToBody support - var placeholder = null, - originalWidth = ''; + return leftPosition; + } function closeOnClick(e) { if (!$select.open) return; //Skip it if dropdown is close @@ -309,19 +353,6 @@ uis.directive('uiSelect', } } - function calculateSelectLeftPosition(offset) { - var scrollLeft = $document[0].documentElement.scrollLeft || $document[0].body.scrollLeft; - var edgeOffscreenAmount = (offset.left + offset.width) - (scrollLeft + $document[0].documentElement.clientWidth); - var paddingFromEdge = 30; - - var leftPosition = offset.left; - if (edgeOffscreenAmount > 0) { - leftPosition -= (edgeOffscreenAmount + paddingFromEdge); - } - - return leftPosition; - } - function positionDropdown() { // Remember the absolute position of the element var offset = uisOffset(element); @@ -335,148 +366,33 @@ uis.directive('uiSelect', // Remember the original value of the element width inline style, so it can be restored // when the dropdown is closed originalWidth = element[0].style.width; - - // Now move the actual dropdown element to the end of the body - $document.find('body').append(element); - element[0].style.position = 'absolute'; element[0].style.left = calculateSelectLeftPosition(offset) + 'px'; element[0].style.top = offset.top + 'px'; element[0].style.width = offset.width + 'px'; + $document[0].body.appendChild(element[0]); } - function removeGlobalHandlers() { + function resetDropdown() { $window.removeEventListener('mousedown', closeOnClick, true); $window.removeEventListener('scroll', closeOnResize, true); $window.removeEventListener('resize', resetDropdown, true); - } - function resetDropdown() { - removeGlobalHandlers(); - - if (placeholder === null) { - // The dropdown has not actually been display yet, so there's nothing to reset - return; + // Move the dropdown element back to its original location in the DOM if we moved it. + if (placeholder) { + element[0].style.position = ''; + element[0].style.left = ''; + element[0].style.top = ''; + element[0].style.width = originalWidth; + placeholder.replaceWith(element); + placeholder = null; + resetFocus(); } - - // Move the dropdown element back to its original location in the DOM - placeholder.replaceWith(element); - placeholder = null; - - element[0].style.position = ''; - element[0].style.left = ''; - element[0].style.top = ''; - element[0].style.width = originalWidth; - - // Set focus back on to the moved element - $select.setFocus(); } function resetFocus() { - $timeout(function(){ - $select.setFocus(); - }); + $timeout($select.setFocus); } - - // Hold on to a reference to the .ui-select-dropdown element for direction support. - var dropdown = null, - directionUpClassName = 'direction-up'; - - var setDropdownPosUp = function(offset, offsetDropdown){ - - offset = offset || uisOffset(element); - offsetDropdown = offsetDropdown || uisOffset(dropdown); - - dropdown[0].style.position = 'absolute'; - dropdown[0].style.top = (offsetDropdown.height * -1) + 'px'; - element.addClass(directionUpClassName); - - }; - - var setDropdownPosDown = function(offset, offsetDropdown){ - - element.removeClass(directionUpClassName); - - offset = offset || uisOffset(element); - offsetDropdown = offsetDropdown || uisOffset(dropdown); - - dropdown[0].style.position = ''; - dropdown[0].style.top = ''; - - }; - - var setDropdownHorizontalPos = function(offset, offsetDropdown){ - var scrollLeft = $document[0].documentElement.scrollLeft || $document[0].body.scrollLeft; - - if (offset.left + offsetDropdown.width > scrollLeft + $document[0].documentElement.clientWidth) { - dropdown.addClass('dropdown-menu-right'); - }else{ - dropdown.removeClass('dropdown-menu-right'); - } - }; - - var calculateDropdownPosAfterAnimation = function() { - // Delay positioning the dropdown until all choices have been added so its height is correct. - $timeout(function() { - if ($select.dropdownPosition === 'up') { - //Go UP - setDropdownPosUp(); - } else { - //AUTO - element.removeClass(directionUpClassName); - - var offset = uisOffset(element); - var offsetDropdown = uisOffset(dropdown); - - //https://code.google.com/p/chromium/issues/detail?id=342307#c4 - var scrollTop = $document[0].documentElement.scrollTop || $document[0].body.scrollTop; //To make it cross browser (blink, webkit, IE, Firefox). - - // Determine if the direction of the dropdown needs to be changed. - if (offset.top + offset.height + offsetDropdown.height > scrollTop + $document[0].documentElement.clientHeight) { - //Go UP - setDropdownPosUp(offset, offsetDropdown); - }else{ - //Go DOWN - setDropdownPosDown(offset, offsetDropdown); - } - setDropdownHorizontalPos(offset, offsetDropdown); - } - - // Display the dropdown once it has been positioned. - dropdown.removeClass('ui-select-detached'); - }); - }; - - var opened = false; - - scope.calculateDropdownPos = function() { - if ($select.open) { - dropdown = angular.element(element).querySelectorAll('.ui-select-dropdown'); - - if (dropdown.length === 0) { - return; - } - - // Hide the dropdown so there is no flicker until $timeout is done executing. - if ($select.search === '' && !opened) { - dropdown.addClass('ui-select-detached'); - opened = true; - } - - calculateDropdownPosAfterAnimation(); - } else { - if (dropdown === null || dropdown.length === 0) { - return; - } - - // Reset the position of the dropdown. - dropdown.removeClass('ui-select-detached'); - dropdown.removeClass('dropdown-menu-right'); - dropdown[0].style.position = ''; - dropdown[0].style.top = ''; - element.removeClass(directionUpClassName); - } - }; }; } }; diff --git a/src/uiSelectMultipleDirective.js b/src/uiSelectMultipleDirective.js index af398a38d..ad645bf1d 100644 --- a/src/uiSelectMultipleDirective.js +++ b/src/uiSelectMultipleDirective.js @@ -72,9 +72,6 @@ uis.directive('uiSelectMultiple', ['uiSelectMinErr','$timeout', function(uiSelec $select.multiple = true; - //Input that will handle focus - $select.focusInput = $select.searchInput; - //Properly check for empty if set to multiple ngModel.$isEmpty = function(value) { return !value || value.length === 0; diff --git a/src/uiSelectSingleDirective.js b/src/uiSelectSingleDirective.js index a9939c96b..3a4e9790b 100644 --- a/src/uiSelectSingleDirective.js +++ b/src/uiSelectSingleDirective.js @@ -77,20 +77,14 @@ uis.directive('uiSelectSingle', ['$timeout','$compile', function($timeout, $comp scope.$on('uis:close', function (event, skipFocusser) { $timeout(function(){ - $select.focusser.prop('disabled', false); if (!skipFocusser) $select.focusser[0].focus(); },0,false); }); - scope.$on('uis:activate', function () { - focusser.prop('disabled', true); //Will reactivate it on .close() - }); //Idea from: https://github.com/ivaynberg/select2/blob/79b5bf6db918d7560bdd959109b7bcfb47edaf43/select2.js#L1954 var focusser = angular.element(""); $compile(focusser)(scope); $select.focusser = focusser; - //Input that will handle focus - $select.focusInput = focusser; // Move focuser out of because append-to-body="true" will move the focusser out of :tabbable order. element.parent().parent().prepend(focusser); diff --git a/src/uisRepeatParserService.js b/src/uisRepeatParserService.js index 005bed15d..5e7c4cc95 100644 --- a/src/uisRepeatParserService.js +++ b/src/uisRepeatParserService.js @@ -8,7 +8,7 @@ * https://github.com/angular-ui/ui-select/commit/5dd63ad#commitcomment-5504697 */ -uis.service('uisRepeatParser', ['uiSelectMinErr','$parse', function(uiSelectMinErr, $parse) { +uis.service('uisRepeatParser', ['uiSelectMinErr', '$parse', function(uiSelectMinErr, $parse) { var self = this; /** @@ -40,12 +40,12 @@ uis.service('uisRepeatParser', ['uiSelectMinErr','$parse', function(uiSelectMinE throw uiSelectMinErr('iexp', "Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.", expression); } - - var source = match[5], + + var source = match[5], filters = ''; // When using (key,value) ui-select requires filters to be extracted, since the object - // is converted to an array for $select.items + // is converted to an array for $select.items // (in which case the filters need to be reapplied) if (match[3]) { // Remove any enclosing parenthesis @@ -55,7 +55,7 @@ uis.service('uisRepeatParser', ['uiSelectMinErr','$parse', function(uiSelectMinE if(filterMatch && filterMatch[1].trim()) { filters = filterMatch[1]; source = source.replace(filters, ''); - } + } } return { @@ -64,6 +64,15 @@ uis.service('uisRepeatParser', ['uiSelectMinErr','$parse', function(uiSelectMinE source: $parse(source), filters: filters, trackByExp: match[6], + getTrackedValue: function(scope, item) { + if (!this.trackByExp) { + return item; + } else { + var locals = {}; + locals[this.itemName] = item; + return scope.$eval(this.trackByExp, locals); + } + }, modelMapper: $parse(match[1] || match[4] || match[2]), repeatExpression: function (grouped) { var expression = this.itemName + ' in ' + (grouped ? '$group.items' : '$select.items'); @@ -71,7 +80,7 @@ uis.service('uisRepeatParser', ['uiSelectMinErr','$parse', function(uiSelectMinE expression += ' track by ' + this.trackByExp; } return expression; - } + } }; };