Updated bower libs.
This commit is contained in:
parent
f310b8f097
commit
98d5fde88a
71 changed files with 4482 additions and 49918 deletions
app/bower_components/angular-bootstrap
|
@ -11,7 +11,7 @@
|
|||
"license": "MIT",
|
||||
"ignore": [],
|
||||
"description": "Native AngularJS (Angular) directives for Bootstrap.",
|
||||
"version": "1.3.2",
|
||||
"version": "1.3.3",
|
||||
"main": [
|
||||
"./ui-bootstrap-tpls.js"
|
||||
],
|
||||
|
@ -19,13 +19,13 @@
|
|||
"angular": ">=1.4.0"
|
||||
},
|
||||
"homepage": "https://github.com/angular-ui/bootstrap-bower",
|
||||
"_release": "1.3.2",
|
||||
"_release": "1.3.3",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "1.3.2",
|
||||
"commit": "77da362b0b86c0a86762b56d64aaec107889f31a"
|
||||
"tag": "1.3.3",
|
||||
"commit": "d45246707f5bf9533e3824861a29abd36757db45"
|
||||
},
|
||||
"_source": "https://github.com/angular-ui/bootstrap-bower.git",
|
||||
"_target": "~1.3.2",
|
||||
"_target": "1.3.3",
|
||||
"_originalSource": "angular-bootstrap"
|
||||
}
|
|
@ -11,7 +11,7 @@
|
|||
"license": "MIT",
|
||||
"ignore": [],
|
||||
"description": "Native AngularJS (Angular) directives for Bootstrap.",
|
||||
"version": "1.3.2",
|
||||
"version": "1.3.3",
|
||||
"main": ["./ui-bootstrap-tpls.js"],
|
||||
"dependencies": {
|
||||
"angular": ">=1.4.0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "angular-ui-bootstrap",
|
||||
"version": "1.3.2",
|
||||
"version": "1.3.3",
|
||||
"description": "Bootstrap widgets for Angular",
|
||||
"main": "index.js",
|
||||
"homepage": "http://angular-ui.github.io/bootstrap/",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* angular-ui-bootstrap
|
||||
* http://angular-ui.github.io/bootstrap/
|
||||
|
||||
* Version: 1.3.2 - 2016-04-14
|
||||
* Version: 1.3.3 - 2016-05-22
|
||||
* License: MIT
|
||||
*/angular.module("ui.bootstrap", ["ui.bootstrap.tpls", "ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.datepicker","ui.bootstrap.position","ui.bootstrap.datepickerPopup","ui.bootstrap.debounce","ui.bootstrap.dropdown","ui.bootstrap.stackedMap","ui.bootstrap.modal","ui.bootstrap.paging","ui.bootstrap.pager","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]);
|
||||
angular.module("ui.bootstrap.tpls", ["uib/template/accordion/accordion-group.html","uib/template/accordion/accordion.html","uib/template/alert/alert.html","uib/template/carousel/carousel.html","uib/template/carousel/slide.html","uib/template/datepicker/datepicker.html","uib/template/datepicker/day.html","uib/template/datepicker/month.html","uib/template/datepicker/year.html","uib/template/datepickerPopup/popup.html","uib/template/modal/backdrop.html","uib/template/modal/window.html","uib/template/pager/pager.html","uib/template/pagination/pagination.html","uib/template/tooltip/tooltip-html-popup.html","uib/template/tooltip/tooltip-popup.html","uib/template/tooltip/tooltip-template-popup.html","uib/template/popover/popover-html.html","uib/template/popover/popover-template.html","uib/template/popover/popover.html","uib/template/progressbar/bar.html","uib/template/progressbar/progress.html","uib/template/progressbar/progressbar.html","uib/template/rating/rating.html","uib/template/tabs/tab.html","uib/template/tabs/tabset.html","uib/template/timepicker/timepicker.html","uib/template/typeahead/typeahead-match.html","uib/template/typeahead/typeahead-popup.html"]);
|
||||
|
@ -234,13 +234,23 @@ angular.module('ui.bootstrap.accordion', ['ui.bootstrap.collapse'])
|
|||
link: function(scope, element, attrs, controller) {
|
||||
scope.$watch(function() { return controller[attrs.uibAccordionTransclude]; }, function(heading) {
|
||||
if (heading) {
|
||||
var elem = angular.element(element[0].querySelector('[uib-accordion-header]'));
|
||||
var elem = angular.element(element[0].querySelector(getHeaderSelectors()));
|
||||
elem.html('');
|
||||
elem.append(heading);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
function getHeaderSelectors() {
|
||||
return 'uib-accordion-header,' +
|
||||
'data-uib-accordion-header,' +
|
||||
'x-uib-accordion-header,' +
|
||||
'uib\\:accordion-header,' +
|
||||
'[uib-accordion-header],' +
|
||||
'[data-uib-accordion-header],' +
|
||||
'[x-uib-accordion-header]';
|
||||
}
|
||||
});
|
||||
|
||||
angular.module('ui.bootstrap.alert', [])
|
||||
|
@ -1184,8 +1194,9 @@ angular.module('ui.bootstrap.dateparser', [])
|
|||
return date && timezone ? convertTimezoneToLocal(date, timezone, true) : date;
|
||||
}
|
||||
|
||||
//https://github.com/angular/angular.js/blob/4daafd3dbe6a80d578f5a31df1bb99c77559543e/src/Angular.js#L1207
|
||||
//https://github.com/angular/angular.js/blob/622c42169699ec07fc6daaa19fe6d224e5d2f70e/src/Angular.js#L1207
|
||||
function timezoneToOffset(timezone, fallback) {
|
||||
timezone = timezone.replace(/:/g, '');
|
||||
var requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;
|
||||
return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;
|
||||
}
|
||||
|
@ -1198,8 +1209,9 @@ angular.module('ui.bootstrap.dateparser', [])
|
|||
|
||||
function convertTimezoneToLocal(date, timezone, reverse) {
|
||||
reverse = reverse ? -1 : 1;
|
||||
var timezoneOffset = timezoneToOffset(timezone, date.getTimezoneOffset());
|
||||
return addDateMinutes(date, reverse * (timezoneOffset - date.getTimezoneOffset()));
|
||||
var dateTimezoneOffset = date.getTimezoneOffset();
|
||||
var timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);
|
||||
return addDateMinutes(date, reverse * (timezoneOffset - dateTimezoneOffset));
|
||||
}
|
||||
}]);
|
||||
|
||||
|
@ -1471,8 +1483,9 @@ angular.module('ui.bootstrap.datepicker', ['ui.bootstrap.dateparser', 'ui.bootst
|
|||
self.activeDate = new Date();
|
||||
}
|
||||
|
||||
this.activeDate = ngModelCtrl.$modelValue ?
|
||||
dateParser.fromTimezone(new Date(ngModelCtrl.$modelValue), ngModelOptions.timezone) :
|
||||
var date = ngModelCtrl.$modelValue ? new Date(ngModelCtrl.$modelValue) : new Date();
|
||||
this.activeDate = !isNaN(date) ?
|
||||
dateParser.fromTimezone(date, ngModelOptions.timezone) :
|
||||
dateParser.fromTimezone(new Date(), ngModelOptions.timezone);
|
||||
|
||||
ngModelCtrl.$render = function() {
|
||||
|
@ -2677,12 +2690,12 @@ function($scope, $element, $attrs, $compile, $log, $parse, $window, $document, $
|
|||
return value;
|
||||
}
|
||||
|
||||
$scope.date = dateParser.fromTimezone(value, timezone);
|
||||
|
||||
if (angular.isNumber($scope.date)) {
|
||||
$scope.date = new Date($scope.date);
|
||||
if (angular.isNumber(value)) {
|
||||
value = new Date(value);
|
||||
}
|
||||
|
||||
$scope.date = dateParser.fromTimezone(value, timezone);
|
||||
|
||||
return dateParser.filter($scope.date, dateFormat);
|
||||
});
|
||||
} else {
|
||||
|
@ -3217,7 +3230,8 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.position'])
|
|||
if (appendTo && self.dropdownMenu) {
|
||||
var pos = $position.positionElements($element, self.dropdownMenu, 'bottom-left', true),
|
||||
css,
|
||||
rightalign;
|
||||
rightalign,
|
||||
scrollbarWidth;
|
||||
|
||||
css = {
|
||||
top: pos.top + 'px',
|
||||
|
@ -3230,7 +3244,8 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.position'])
|
|||
css.right = 'auto';
|
||||
} else {
|
||||
css.left = 'auto';
|
||||
css.right = window.innerWidth -
|
||||
scrollbarWidth = $position.scrollbarWidth(true);
|
||||
css.right = window.innerWidth - scrollbarWidth -
|
||||
(pos.left + $element.prop('offsetWidth')) + 'px';
|
||||
}
|
||||
|
||||
|
@ -4117,30 +4132,27 @@ angular.module('ui.bootstrap.modal', ['ui.bootstrap.stackedMap', 'ui.bootstrap.p
|
|||
//controllers
|
||||
if (modalOptions.controller) {
|
||||
ctrlLocals.$scope = modalScope;
|
||||
ctrlLocals.$scope.$resolve = {};
|
||||
ctrlLocals.$uibModalInstance = modalInstance;
|
||||
angular.forEach(tplAndVars[1], function(value, key) {
|
||||
ctrlLocals[key] = value;
|
||||
ctrlLocals.$scope.$resolve[key] = value;
|
||||
});
|
||||
|
||||
// the third param will make the controller instantiate later,private api
|
||||
// @see https://github.com/angular/angular.js/blob/master/src/ng/controller.js#L126
|
||||
ctrlInstantiate = $controller(modalOptions.controller, ctrlLocals, true);
|
||||
if (modalOptions.controllerAs) {
|
||||
ctrlInstantiate = $controller(modalOptions.controller, ctrlLocals, true, modalOptions.controllerAs);
|
||||
if (modalOptions.controllerAs && modalOptions.bindToController) {
|
||||
ctrlInstance = ctrlInstantiate.instance;
|
||||
|
||||
if (modalOptions.bindToController) {
|
||||
ctrlInstance.$close = modalScope.$close;
|
||||
ctrlInstance.$dismiss = modalScope.$dismiss;
|
||||
angular.extend(ctrlInstance, providedScope);
|
||||
}
|
||||
|
||||
ctrlInstance = ctrlInstantiate();
|
||||
|
||||
modalScope[modalOptions.controllerAs] = ctrlInstance;
|
||||
} else {
|
||||
ctrlInstance = ctrlInstantiate();
|
||||
ctrlInstance.$close = modalScope.$close;
|
||||
ctrlInstance.$dismiss = modalScope.$dismiss;
|
||||
angular.extend(ctrlInstance, {
|
||||
$resolve: ctrlLocals.$scope.$resolve
|
||||
}, providedScope);
|
||||
}
|
||||
|
||||
ctrlInstance = ctrlInstantiate();
|
||||
|
||||
if (angular.isFunction(ctrlInstance.$onInit)) {
|
||||
ctrlInstance.$onInit();
|
||||
}
|
||||
|
@ -5445,7 +5457,8 @@ angular.module('ui.bootstrap.tabs', [])
|
|||
var previousSelected = ctrl.tabs[previousIndex];
|
||||
if (previousSelected) {
|
||||
previousSelected.tab.onDeselect({
|
||||
$event: evt
|
||||
$event: evt,
|
||||
$selectedIndex: index
|
||||
});
|
||||
if (evt && evt.isDefaultPrevented()) {
|
||||
return;
|
||||
|
@ -5461,7 +5474,7 @@ angular.module('ui.bootstrap.tabs', [])
|
|||
selected.tab.active = true;
|
||||
ctrl.active = selected.index;
|
||||
oldIndex = selected.index;
|
||||
} else if (!selected && angular.isNumber(oldIndex)) {
|
||||
} else if (!selected && angular.isDefined(oldIndex)) {
|
||||
ctrl.active = null;
|
||||
oldIndex = null;
|
||||
}
|
||||
|
@ -5485,7 +5498,7 @@ angular.module('ui.bootstrap.tabs', [])
|
|||
return 0;
|
||||
});
|
||||
|
||||
if (tab.index === ctrl.active || !angular.isNumber(ctrl.active) && ctrl.tabs.length === 1) {
|
||||
if (tab.index === ctrl.active || !angular.isDefined(ctrl.active) && ctrl.tabs.length === 1) {
|
||||
var newActiveIndex = findTabIndex(tab.index);
|
||||
ctrl.select(newActiveIndex);
|
||||
}
|
||||
|
@ -5510,7 +5523,7 @@ angular.module('ui.bootstrap.tabs', [])
|
|||
};
|
||||
|
||||
$scope.$watch('tabset.active', function(val) {
|
||||
if (angular.isNumber(val) && val !== oldIndex) {
|
||||
if (angular.isDefined(val) && val !== oldIndex) {
|
||||
ctrl.select(findTabIndex(val));
|
||||
}
|
||||
});
|
||||
|
@ -5548,9 +5561,6 @@ angular.module('ui.bootstrap.tabs', [])
|
|||
scope.$parent.$eval(attrs.vertical) : false;
|
||||
scope.justified = angular.isDefined(attrs.justified) ?
|
||||
scope.$parent.$eval(attrs.justified) : false;
|
||||
if (angular.isUndefined(attrs.active)) {
|
||||
scope.active = 0;
|
||||
}
|
||||
}
|
||||
};
|
||||
})
|
||||
|
@ -6281,7 +6291,7 @@ angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.debounce', 'ui.bootstrap
|
|||
originalScope.$watch(attrs.typeaheadMinLength, function (newVal) {
|
||||
minLength = !newVal && newVal !== 0 ? 1 : newVal;
|
||||
});
|
||||
|
||||
|
||||
//minimal wait time after last character typed before typeahead kicks-in
|
||||
var waitTime = originalScope.$eval(attrs.typeaheadWaitMs) || 0;
|
||||
|
||||
|
@ -6294,6 +6304,12 @@ angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.debounce', 'ui.bootstrap
|
|||
//binding to a variable that indicates if matches are being retrieved asynchronously
|
||||
var isLoadingSetter = $parse(attrs.typeaheadLoading).assign || angular.noop;
|
||||
|
||||
//a function to determine if an event should cause selection
|
||||
var isSelectEvent = attrs.typeaheadShouldSelect ? $parse(attrs.typeaheadShouldSelect) : function(scope, vals) {
|
||||
var evt = vals.$event;
|
||||
return evt.which === 13 || evt.which === 9;
|
||||
};
|
||||
|
||||
//a callback executed when a match is selected
|
||||
var onSelectCallback = $parse(attrs.typeaheadOnSelect);
|
||||
|
||||
|
@ -6609,13 +6625,15 @@ angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.debounce', 'ui.bootstrap
|
|||
return;
|
||||
}
|
||||
|
||||
var shouldSelect = isSelectEvent(originalScope, {$event: evt});
|
||||
|
||||
/**
|
||||
* if there's nothing selected (i.e. focusFirst) and enter or tab is hit
|
||||
* or
|
||||
* shift + tab is pressed to bring focus to the previous element
|
||||
* then clear the results
|
||||
*/
|
||||
if (scope.activeIdx === -1 && (evt.which === 9 || evt.which === 13) || evt.which === 9 && !!evt.shiftKey) {
|
||||
if (scope.activeIdx === -1 && shouldSelect || evt.which === 9 && !!evt.shiftKey) {
|
||||
resetMatches();
|
||||
scope.$digest();
|
||||
return;
|
||||
|
@ -6624,36 +6642,36 @@ angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.debounce', 'ui.bootstrap
|
|||
evt.preventDefault();
|
||||
var target;
|
||||
switch (evt.which) {
|
||||
case 9:
|
||||
case 13:
|
||||
scope.$apply(function () {
|
||||
if (angular.isNumber(scope.debounceUpdate) || angular.isObject(scope.debounceUpdate)) {
|
||||
$$debounce(function() {
|
||||
scope.select(scope.activeIdx, evt);
|
||||
}, angular.isNumber(scope.debounceUpdate) ? scope.debounceUpdate : scope.debounceUpdate['default']);
|
||||
} else {
|
||||
scope.select(scope.activeIdx, evt);
|
||||
}
|
||||
});
|
||||
break;
|
||||
case 27:
|
||||
case 27: // escape
|
||||
evt.stopPropagation();
|
||||
|
||||
resetMatches();
|
||||
originalScope.$digest();
|
||||
break;
|
||||
case 38:
|
||||
case 38: // up arrow
|
||||
scope.activeIdx = (scope.activeIdx > 0 ? scope.activeIdx : scope.matches.length) - 1;
|
||||
scope.$digest();
|
||||
target = popUpEl.find('li')[scope.activeIdx];
|
||||
target.parentNode.scrollTop = target.offsetTop;
|
||||
break;
|
||||
case 40:
|
||||
case 40: // down arrow
|
||||
scope.activeIdx = (scope.activeIdx + 1) % scope.matches.length;
|
||||
scope.$digest();
|
||||
target = popUpEl.find('li')[scope.activeIdx];
|
||||
target.parentNode.scrollTop = target.offsetTop;
|
||||
break;
|
||||
default:
|
||||
if (shouldSelect) {
|
||||
scope.$apply(function() {
|
||||
if (angular.isNumber(scope.debounceUpdate) || angular.isObject(scope.debounceUpdate)) {
|
||||
$$debounce(function() {
|
||||
scope.select(scope.activeIdx, evt);
|
||||
}, angular.isNumber(scope.debounceUpdate) ? scope.debounceUpdate : scope.debounceUpdate['default']);
|
||||
} else {
|
||||
scope.select(scope.activeIdx, evt);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,7 +2,7 @@
|
|||
* angular-ui-bootstrap
|
||||
* http://angular-ui.github.io/bootstrap/
|
||||
|
||||
* Version: 1.3.2 - 2016-04-14
|
||||
* Version: 1.3.3 - 2016-05-22
|
||||
* License: MIT
|
||||
*/angular.module("ui.bootstrap", ["ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.datepicker","ui.bootstrap.position","ui.bootstrap.datepickerPopup","ui.bootstrap.debounce","ui.bootstrap.dropdown","ui.bootstrap.stackedMap","ui.bootstrap.modal","ui.bootstrap.paging","ui.bootstrap.pager","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]);
|
||||
angular.module('ui.bootstrap.collapse', [])
|
||||
|
@ -233,13 +233,23 @@ angular.module('ui.bootstrap.accordion', ['ui.bootstrap.collapse'])
|
|||
link: function(scope, element, attrs, controller) {
|
||||
scope.$watch(function() { return controller[attrs.uibAccordionTransclude]; }, function(heading) {
|
||||
if (heading) {
|
||||
var elem = angular.element(element[0].querySelector('[uib-accordion-header]'));
|
||||
var elem = angular.element(element[0].querySelector(getHeaderSelectors()));
|
||||
elem.html('');
|
||||
elem.append(heading);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
function getHeaderSelectors() {
|
||||
return 'uib-accordion-header,' +
|
||||
'data-uib-accordion-header,' +
|
||||
'x-uib-accordion-header,' +
|
||||
'uib\\:accordion-header,' +
|
||||
'[uib-accordion-header],' +
|
||||
'[data-uib-accordion-header],' +
|
||||
'[x-uib-accordion-header]';
|
||||
}
|
||||
});
|
||||
|
||||
angular.module('ui.bootstrap.alert', [])
|
||||
|
@ -1183,8 +1193,9 @@ angular.module('ui.bootstrap.dateparser', [])
|
|||
return date && timezone ? convertTimezoneToLocal(date, timezone, true) : date;
|
||||
}
|
||||
|
||||
//https://github.com/angular/angular.js/blob/4daafd3dbe6a80d578f5a31df1bb99c77559543e/src/Angular.js#L1207
|
||||
//https://github.com/angular/angular.js/blob/622c42169699ec07fc6daaa19fe6d224e5d2f70e/src/Angular.js#L1207
|
||||
function timezoneToOffset(timezone, fallback) {
|
||||
timezone = timezone.replace(/:/g, '');
|
||||
var requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;
|
||||
return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;
|
||||
}
|
||||
|
@ -1197,8 +1208,9 @@ angular.module('ui.bootstrap.dateparser', [])
|
|||
|
||||
function convertTimezoneToLocal(date, timezone, reverse) {
|
||||
reverse = reverse ? -1 : 1;
|
||||
var timezoneOffset = timezoneToOffset(timezone, date.getTimezoneOffset());
|
||||
return addDateMinutes(date, reverse * (timezoneOffset - date.getTimezoneOffset()));
|
||||
var dateTimezoneOffset = date.getTimezoneOffset();
|
||||
var timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);
|
||||
return addDateMinutes(date, reverse * (timezoneOffset - dateTimezoneOffset));
|
||||
}
|
||||
}]);
|
||||
|
||||
|
@ -1470,8 +1482,9 @@ angular.module('ui.bootstrap.datepicker', ['ui.bootstrap.dateparser', 'ui.bootst
|
|||
self.activeDate = new Date();
|
||||
}
|
||||
|
||||
this.activeDate = ngModelCtrl.$modelValue ?
|
||||
dateParser.fromTimezone(new Date(ngModelCtrl.$modelValue), ngModelOptions.timezone) :
|
||||
var date = ngModelCtrl.$modelValue ? new Date(ngModelCtrl.$modelValue) : new Date();
|
||||
this.activeDate = !isNaN(date) ?
|
||||
dateParser.fromTimezone(date, ngModelOptions.timezone) :
|
||||
dateParser.fromTimezone(new Date(), ngModelOptions.timezone);
|
||||
|
||||
ngModelCtrl.$render = function() {
|
||||
|
@ -2676,12 +2689,12 @@ function($scope, $element, $attrs, $compile, $log, $parse, $window, $document, $
|
|||
return value;
|
||||
}
|
||||
|
||||
$scope.date = dateParser.fromTimezone(value, timezone);
|
||||
|
||||
if (angular.isNumber($scope.date)) {
|
||||
$scope.date = new Date($scope.date);
|
||||
if (angular.isNumber(value)) {
|
||||
value = new Date(value);
|
||||
}
|
||||
|
||||
$scope.date = dateParser.fromTimezone(value, timezone);
|
||||
|
||||
return dateParser.filter($scope.date, dateFormat);
|
||||
});
|
||||
} else {
|
||||
|
@ -3216,7 +3229,8 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.position'])
|
|||
if (appendTo && self.dropdownMenu) {
|
||||
var pos = $position.positionElements($element, self.dropdownMenu, 'bottom-left', true),
|
||||
css,
|
||||
rightalign;
|
||||
rightalign,
|
||||
scrollbarWidth;
|
||||
|
||||
css = {
|
||||
top: pos.top + 'px',
|
||||
|
@ -3229,7 +3243,8 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.position'])
|
|||
css.right = 'auto';
|
||||
} else {
|
||||
css.left = 'auto';
|
||||
css.right = window.innerWidth -
|
||||
scrollbarWidth = $position.scrollbarWidth(true);
|
||||
css.right = window.innerWidth - scrollbarWidth -
|
||||
(pos.left + $element.prop('offsetWidth')) + 'px';
|
||||
}
|
||||
|
||||
|
@ -4116,30 +4131,27 @@ angular.module('ui.bootstrap.modal', ['ui.bootstrap.stackedMap', 'ui.bootstrap.p
|
|||
//controllers
|
||||
if (modalOptions.controller) {
|
||||
ctrlLocals.$scope = modalScope;
|
||||
ctrlLocals.$scope.$resolve = {};
|
||||
ctrlLocals.$uibModalInstance = modalInstance;
|
||||
angular.forEach(tplAndVars[1], function(value, key) {
|
||||
ctrlLocals[key] = value;
|
||||
ctrlLocals.$scope.$resolve[key] = value;
|
||||
});
|
||||
|
||||
// the third param will make the controller instantiate later,private api
|
||||
// @see https://github.com/angular/angular.js/blob/master/src/ng/controller.js#L126
|
||||
ctrlInstantiate = $controller(modalOptions.controller, ctrlLocals, true);
|
||||
if (modalOptions.controllerAs) {
|
||||
ctrlInstantiate = $controller(modalOptions.controller, ctrlLocals, true, modalOptions.controllerAs);
|
||||
if (modalOptions.controllerAs && modalOptions.bindToController) {
|
||||
ctrlInstance = ctrlInstantiate.instance;
|
||||
|
||||
if (modalOptions.bindToController) {
|
||||
ctrlInstance.$close = modalScope.$close;
|
||||
ctrlInstance.$dismiss = modalScope.$dismiss;
|
||||
angular.extend(ctrlInstance, providedScope);
|
||||
}
|
||||
|
||||
ctrlInstance = ctrlInstantiate();
|
||||
|
||||
modalScope[modalOptions.controllerAs] = ctrlInstance;
|
||||
} else {
|
||||
ctrlInstance = ctrlInstantiate();
|
||||
ctrlInstance.$close = modalScope.$close;
|
||||
ctrlInstance.$dismiss = modalScope.$dismiss;
|
||||
angular.extend(ctrlInstance, {
|
||||
$resolve: ctrlLocals.$scope.$resolve
|
||||
}, providedScope);
|
||||
}
|
||||
|
||||
ctrlInstance = ctrlInstantiate();
|
||||
|
||||
if (angular.isFunction(ctrlInstance.$onInit)) {
|
||||
ctrlInstance.$onInit();
|
||||
}
|
||||
|
@ -5444,7 +5456,8 @@ angular.module('ui.bootstrap.tabs', [])
|
|||
var previousSelected = ctrl.tabs[previousIndex];
|
||||
if (previousSelected) {
|
||||
previousSelected.tab.onDeselect({
|
||||
$event: evt
|
||||
$event: evt,
|
||||
$selectedIndex: index
|
||||
});
|
||||
if (evt && evt.isDefaultPrevented()) {
|
||||
return;
|
||||
|
@ -5460,7 +5473,7 @@ angular.module('ui.bootstrap.tabs', [])
|
|||
selected.tab.active = true;
|
||||
ctrl.active = selected.index;
|
||||
oldIndex = selected.index;
|
||||
} else if (!selected && angular.isNumber(oldIndex)) {
|
||||
} else if (!selected && angular.isDefined(oldIndex)) {
|
||||
ctrl.active = null;
|
||||
oldIndex = null;
|
||||
}
|
||||
|
@ -5484,7 +5497,7 @@ angular.module('ui.bootstrap.tabs', [])
|
|||
return 0;
|
||||
});
|
||||
|
||||
if (tab.index === ctrl.active || !angular.isNumber(ctrl.active) && ctrl.tabs.length === 1) {
|
||||
if (tab.index === ctrl.active || !angular.isDefined(ctrl.active) && ctrl.tabs.length === 1) {
|
||||
var newActiveIndex = findTabIndex(tab.index);
|
||||
ctrl.select(newActiveIndex);
|
||||
}
|
||||
|
@ -5509,7 +5522,7 @@ angular.module('ui.bootstrap.tabs', [])
|
|||
};
|
||||
|
||||
$scope.$watch('tabset.active', function(val) {
|
||||
if (angular.isNumber(val) && val !== oldIndex) {
|
||||
if (angular.isDefined(val) && val !== oldIndex) {
|
||||
ctrl.select(findTabIndex(val));
|
||||
}
|
||||
});
|
||||
|
@ -5547,9 +5560,6 @@ angular.module('ui.bootstrap.tabs', [])
|
|||
scope.$parent.$eval(attrs.vertical) : false;
|
||||
scope.justified = angular.isDefined(attrs.justified) ?
|
||||
scope.$parent.$eval(attrs.justified) : false;
|
||||
if (angular.isUndefined(attrs.active)) {
|
||||
scope.active = 0;
|
||||
}
|
||||
}
|
||||
};
|
||||
})
|
||||
|
@ -6280,7 +6290,7 @@ angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.debounce', 'ui.bootstrap
|
|||
originalScope.$watch(attrs.typeaheadMinLength, function (newVal) {
|
||||
minLength = !newVal && newVal !== 0 ? 1 : newVal;
|
||||
});
|
||||
|
||||
|
||||
//minimal wait time after last character typed before typeahead kicks-in
|
||||
var waitTime = originalScope.$eval(attrs.typeaheadWaitMs) || 0;
|
||||
|
||||
|
@ -6293,6 +6303,12 @@ angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.debounce', 'ui.bootstrap
|
|||
//binding to a variable that indicates if matches are being retrieved asynchronously
|
||||
var isLoadingSetter = $parse(attrs.typeaheadLoading).assign || angular.noop;
|
||||
|
||||
//a function to determine if an event should cause selection
|
||||
var isSelectEvent = attrs.typeaheadShouldSelect ? $parse(attrs.typeaheadShouldSelect) : function(scope, vals) {
|
||||
var evt = vals.$event;
|
||||
return evt.which === 13 || evt.which === 9;
|
||||
};
|
||||
|
||||
//a callback executed when a match is selected
|
||||
var onSelectCallback = $parse(attrs.typeaheadOnSelect);
|
||||
|
||||
|
@ -6608,13 +6624,15 @@ angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.debounce', 'ui.bootstrap
|
|||
return;
|
||||
}
|
||||
|
||||
var shouldSelect = isSelectEvent(originalScope, {$event: evt});
|
||||
|
||||
/**
|
||||
* if there's nothing selected (i.e. focusFirst) and enter or tab is hit
|
||||
* or
|
||||
* shift + tab is pressed to bring focus to the previous element
|
||||
* then clear the results
|
||||
*/
|
||||
if (scope.activeIdx === -1 && (evt.which === 9 || evt.which === 13) || evt.which === 9 && !!evt.shiftKey) {
|
||||
if (scope.activeIdx === -1 && shouldSelect || evt.which === 9 && !!evt.shiftKey) {
|
||||
resetMatches();
|
||||
scope.$digest();
|
||||
return;
|
||||
|
@ -6623,36 +6641,36 @@ angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.debounce', 'ui.bootstrap
|
|||
evt.preventDefault();
|
||||
var target;
|
||||
switch (evt.which) {
|
||||
case 9:
|
||||
case 13:
|
||||
scope.$apply(function () {
|
||||
if (angular.isNumber(scope.debounceUpdate) || angular.isObject(scope.debounceUpdate)) {
|
||||
$$debounce(function() {
|
||||
scope.select(scope.activeIdx, evt);
|
||||
}, angular.isNumber(scope.debounceUpdate) ? scope.debounceUpdate : scope.debounceUpdate['default']);
|
||||
} else {
|
||||
scope.select(scope.activeIdx, evt);
|
||||
}
|
||||
});
|
||||
break;
|
||||
case 27:
|
||||
case 27: // escape
|
||||
evt.stopPropagation();
|
||||
|
||||
resetMatches();
|
||||
originalScope.$digest();
|
||||
break;
|
||||
case 38:
|
||||
case 38: // up arrow
|
||||
scope.activeIdx = (scope.activeIdx > 0 ? scope.activeIdx : scope.matches.length) - 1;
|
||||
scope.$digest();
|
||||
target = popUpEl.find('li')[scope.activeIdx];
|
||||
target.parentNode.scrollTop = target.offsetTop;
|
||||
break;
|
||||
case 40:
|
||||
case 40: // down arrow
|
||||
scope.activeIdx = (scope.activeIdx + 1) % scope.matches.length;
|
||||
scope.$digest();
|
||||
target = popUpEl.find('li')[scope.activeIdx];
|
||||
target.parentNode.scrollTop = target.offsetTop;
|
||||
break;
|
||||
default:
|
||||
if (shouldSelect) {
|
||||
scope.$apply(function() {
|
||||
if (angular.isNumber(scope.debounceUpdate) || angular.isObject(scope.debounceUpdate)) {
|
||||
$$debounce(function() {
|
||||
scope.select(scope.activeIdx, evt);
|
||||
}, angular.isNumber(scope.debounceUpdate) ? scope.debounceUpdate : scope.debounceUpdate['default']);
|
||||
} else {
|
||||
scope.select(scope.activeIdx, evt);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue