angular-ui-bootstrap-rails 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f8242f5fc7aaf064a61d57097ccd63d647a31f7
|
4
|
+
data.tar.gz: 0bccd68709856ae1558baff6579b6ce3f36bb027
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11d5e42f80be112f83902749ac98539576a67c4cc858db7c06ccfb64855166ea0e41741df03dc3676394f2ed08edc3cceb814a2964275ca36a285ffa8eb41492
|
7
|
+
data.tar.gz: 63d5dd56b1f5ddf4723dbb4a2d0f88f2a00f5f570a39ba92dde9d15571193cb036b57570550b81353c231b3113edd4b2795980cfa8f24a0067d420e1d57d4f6d
|
@@ -1,3 +1,10 @@
|
|
1
|
+
/*
|
2
|
+
* angular-ui-bootstrap
|
3
|
+
* http://angular-ui.github.io/bootstrap/
|
4
|
+
|
5
|
+
* Version: 0.10.0 - 2014-01-13
|
6
|
+
* License: MIT
|
7
|
+
*/
|
1
8
|
angular.module("ui.bootstrap", ["ui.bootstrap.tpls", "ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdownToggle","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]);
|
2
9
|
angular.module("ui.bootstrap.tpls", ["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/popup.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]);
|
3
10
|
angular.module('ui.bootstrap.transition', [])
|
@@ -134,7 +141,7 @@ angular.module('ui.bootstrap.collapse', ['ui.bootstrap.transition'])
|
|
134
141
|
} else {
|
135
142
|
// CSS transitions don't work with height: auto, so we have to manually change the height to a specific value
|
136
143
|
element.css({ height: element[0].scrollHeight + 'px' });
|
137
|
-
//trigger reflow so a browser
|
144
|
+
//trigger reflow so a browser realizes that height was updated from auto to a specific value
|
138
145
|
var x = element[0].offsetWidth;
|
139
146
|
|
140
147
|
element.removeClass('collapse in').addClass('collapsing');
|
@@ -1167,9 +1174,11 @@ function ($compile, $parse, $document, $position, dateFilter, datepickerPopupCon
|
|
1167
1174
|
'ng-model': 'date',
|
1168
1175
|
'ng-change': 'dateSelection()'
|
1169
1176
|
});
|
1170
|
-
var datepickerEl = angular.element(popupEl.children()[0])
|
1177
|
+
var datepickerEl = angular.element(popupEl.children()[0]),
|
1178
|
+
datepickerOptions = {};
|
1171
1179
|
if (attrs.datepickerOptions) {
|
1172
|
-
|
1180
|
+
datepickerOptions = originalScope.$eval(attrs.datepickerOptions);
|
1181
|
+
datepickerEl.attr(angular.extend({}, datepickerOptions));
|
1173
1182
|
}
|
1174
1183
|
|
1175
1184
|
// TODO: reverse from dateFilter string to Date object
|
@@ -1235,7 +1244,7 @@ function ($compile, $parse, $document, $position, dateFilter, datepickerPopupCon
|
|
1235
1244
|
if (attrs.showWeeks) {
|
1236
1245
|
addWatchableAttribute(attrs.showWeeks, 'showWeeks', 'show-weeks');
|
1237
1246
|
} else {
|
1238
|
-
scope.showWeeks = datepickerConfig.showWeeks;
|
1247
|
+
scope.showWeeks = 'show-weeks' in datepickerOptions ? datepickerOptions['show-weeks'] : datepickerConfig.showWeeks;
|
1239
1248
|
datepickerEl.attr('show-weeks', 'showWeeks');
|
1240
1249
|
}
|
1241
1250
|
if (attrs.dateDisabled) {
|
@@ -1355,7 +1364,7 @@ angular.module('ui.bootstrap.dropdownToggle', []).directive('dropdownToggle', ['
|
|
1355
1364
|
};
|
1356
1365
|
}]);
|
1357
1366
|
|
1358
|
-
angular.module('ui.bootstrap.modal', [])
|
1367
|
+
angular.module('ui.bootstrap.modal', ['ui.bootstrap.transition'])
|
1359
1368
|
|
1360
1369
|
/**
|
1361
1370
|
* A helper, internal data structure that acts as a map but also allows getting / removing
|
@@ -1435,7 +1444,8 @@ angular.module('ui.bootstrap.modal', [])
|
|
1435
1444
|
return {
|
1436
1445
|
restrict: 'EA',
|
1437
1446
|
scope: {
|
1438
|
-
index: '@'
|
1447
|
+
index: '@',
|
1448
|
+
animate: '='
|
1439
1449
|
},
|
1440
1450
|
replace: true,
|
1441
1451
|
transclude: true,
|
@@ -1462,13 +1472,12 @@ angular.module('ui.bootstrap.modal', [])
|
|
1462
1472
|
};
|
1463
1473
|
}])
|
1464
1474
|
|
1465
|
-
.factory('$modalStack', ['$document', '$compile', '$rootScope', '$$stackedMap',
|
1466
|
-
function ($document, $compile, $rootScope, $$stackedMap) {
|
1475
|
+
.factory('$modalStack', ['$transition', '$timeout', '$document', '$compile', '$rootScope', '$$stackedMap',
|
1476
|
+
function ($transition, $timeout, $document, $compile, $rootScope, $$stackedMap) {
|
1467
1477
|
|
1468
1478
|
var OPENED_MODAL_CLASS = 'modal-open';
|
1469
1479
|
|
1470
|
-
var
|
1471
|
-
var backdropScope = $rootScope.$new(true);
|
1480
|
+
var backdropDomEl, backdropScope;
|
1472
1481
|
var openedWindows = $$stackedMap.createNew();
|
1473
1482
|
var $modalStack = {};
|
1474
1483
|
|
@@ -1484,7 +1493,9 @@ angular.module('ui.bootstrap.modal', [])
|
|
1484
1493
|
}
|
1485
1494
|
|
1486
1495
|
$rootScope.$watch(backdropIndex, function(newBackdropIndex){
|
1487
|
-
backdropScope
|
1496
|
+
if (backdropScope) {
|
1497
|
+
backdropScope.index = newBackdropIndex;
|
1498
|
+
}
|
1488
1499
|
});
|
1489
1500
|
|
1490
1501
|
function removeModalWindow(modalInstance) {
|
@@ -1496,17 +1507,53 @@ angular.module('ui.bootstrap.modal', [])
|
|
1496
1507
|
openedWindows.remove(modalInstance);
|
1497
1508
|
|
1498
1509
|
//remove window DOM element
|
1499
|
-
modalWindow.modalDomEl.
|
1510
|
+
removeAfterAnimate(modalWindow.modalDomEl, modalWindow.modalScope, 300, checkRemoveBackdrop);
|
1500
1511
|
body.toggleClass(OPENED_MODAL_CLASS, openedWindows.length() > 0);
|
1512
|
+
}
|
1501
1513
|
|
1502
|
-
|
1503
|
-
|
1504
|
-
backdropDomEl
|
1505
|
-
|
1514
|
+
function checkRemoveBackdrop() {
|
1515
|
+
//remove backdrop if no longer needed
|
1516
|
+
if (backdropDomEl && backdropIndex() == -1) {
|
1517
|
+
var backdropScopeRef = backdropScope;
|
1518
|
+
removeAfterAnimate(backdropDomEl, backdropScope, 150, function () {
|
1519
|
+
backdropScopeRef.$destroy();
|
1520
|
+
backdropScopeRef = null;
|
1521
|
+
});
|
1522
|
+
backdropDomEl = undefined;
|
1523
|
+
backdropScope = undefined;
|
1524
|
+
}
|
1525
|
+
}
|
1526
|
+
|
1527
|
+
function removeAfterAnimate(domEl, scope, emulateTime, done) {
|
1528
|
+
// Closing animation
|
1529
|
+
scope.animate = false;
|
1530
|
+
|
1531
|
+
var transitionEndEventName = $transition.transitionEndEventName;
|
1532
|
+
if (transitionEndEventName) {
|
1533
|
+
// transition out
|
1534
|
+
var timeout = $timeout(afterAnimating, emulateTime);
|
1535
|
+
|
1536
|
+
domEl.bind(transitionEndEventName, function () {
|
1537
|
+
$timeout.cancel(timeout);
|
1538
|
+
afterAnimating();
|
1539
|
+
scope.$apply();
|
1540
|
+
});
|
1541
|
+
} else {
|
1542
|
+
// Ensure this call is async
|
1543
|
+
$timeout(afterAnimating, 0);
|
1506
1544
|
}
|
1507
1545
|
|
1508
|
-
|
1509
|
-
|
1546
|
+
function afterAnimating() {
|
1547
|
+
if (afterAnimating.done) {
|
1548
|
+
return;
|
1549
|
+
}
|
1550
|
+
afterAnimating.done = true;
|
1551
|
+
|
1552
|
+
domEl.remove();
|
1553
|
+
if (done) {
|
1554
|
+
done();
|
1555
|
+
}
|
1556
|
+
}
|
1510
1557
|
}
|
1511
1558
|
|
1512
1559
|
$document.bind('keydown', function (evt) {
|
@@ -1531,17 +1578,20 @@ angular.module('ui.bootstrap.modal', [])
|
|
1531
1578
|
keyboard: modal.keyboard
|
1532
1579
|
});
|
1533
1580
|
|
1534
|
-
var body = $document.find('body').eq(0)
|
1581
|
+
var body = $document.find('body').eq(0),
|
1582
|
+
currBackdropIndex = backdropIndex();
|
1535
1583
|
|
1536
|
-
if (
|
1537
|
-
|
1538
|
-
|
1539
|
-
|
1584
|
+
if (currBackdropIndex >= 0 && !backdropDomEl) {
|
1585
|
+
backdropScope = $rootScope.$new(true);
|
1586
|
+
backdropScope.index = currBackdropIndex;
|
1587
|
+
backdropDomEl = $compile('<div modal-backdrop></div>')(backdropScope);
|
1588
|
+
body.append(backdropDomEl);
|
1540
1589
|
}
|
1541
1590
|
|
1542
1591
|
var angularDomEl = angular.element('<div modal-window></div>');
|
1543
1592
|
angularDomEl.attr('window-class', modal.windowClass);
|
1544
1593
|
angularDomEl.attr('index', openedWindows.length() - 1);
|
1594
|
+
angularDomEl.attr('animate', 'animate');
|
1545
1595
|
angularDomEl.html(modal.content);
|
1546
1596
|
|
1547
1597
|
var modalDomEl = $compile(angularDomEl)(modal.scope);
|
@@ -1566,6 +1616,14 @@ angular.module('ui.bootstrap.modal', [])
|
|
1566
1616
|
}
|
1567
1617
|
};
|
1568
1618
|
|
1619
|
+
$modalStack.dismissAll = function (reason) {
|
1620
|
+
var topModal = this.getTop();
|
1621
|
+
while (topModal) {
|
1622
|
+
this.dismiss(topModal.key, reason);
|
1623
|
+
topModal = this.getTop();
|
1624
|
+
}
|
1625
|
+
};
|
1626
|
+
|
1569
1627
|
$modalStack.getTop = function () {
|
1570
1628
|
return openedWindows.top();
|
1571
1629
|
};
|
@@ -2033,224 +2091,245 @@ angular.module( 'ui.bootstrap.tooltip', [ 'ui.bootstrap.position', 'ui.bootstrap
|
|
2033
2091
|
return {
|
2034
2092
|
restrict: 'EA',
|
2035
2093
|
scope: true,
|
2036
|
-
|
2037
|
-
var
|
2038
|
-
|
2039
|
-
|
2040
|
-
|
2041
|
-
|
2042
|
-
|
2043
|
-
|
2044
|
-
|
2045
|
-
|
2046
|
-
var
|
2047
|
-
|
2048
|
-
|
2049
|
-
|
2050
|
-
|
2051
|
-
|
2052
|
-
|
2053
|
-
|
2054
|
-
|
2055
|
-
|
2056
|
-
|
2057
|
-
|
2058
|
-
|
2059
|
-
|
2060
|
-
|
2061
|
-
|
2062
|
-
|
2063
|
-
|
2064
|
-
|
2065
|
-
|
2066
|
-
|
2067
|
-
|
2068
|
-
|
2069
|
-
|
2070
|
-
|
2071
|
-
|
2072
|
-
|
2073
|
-
|
2074
|
-
|
2075
|
-
|
2076
|
-
|
2077
|
-
|
2078
|
-
|
2079
|
-
|
2080
|
-
|
2081
|
-
|
2082
|
-
|
2083
|
-
|
2084
|
-
|
2094
|
+
compile: function (tElem, tAttrs) {
|
2095
|
+
var tooltipLinker = $compile( template );
|
2096
|
+
|
2097
|
+
return function link ( scope, element, attrs ) {
|
2098
|
+
var tooltip;
|
2099
|
+
var transitionTimeout;
|
2100
|
+
var popupTimeout;
|
2101
|
+
var appendToBody = angular.isDefined( options.appendToBody ) ? options.appendToBody : false;
|
2102
|
+
var triggers = getTriggers( undefined );
|
2103
|
+
var hasRegisteredTriggers = false;
|
2104
|
+
var hasEnableExp = angular.isDefined(attrs[prefix+'Enable']);
|
2105
|
+
|
2106
|
+
var positionTooltip = function (){
|
2107
|
+
var position,
|
2108
|
+
ttWidth,
|
2109
|
+
ttHeight,
|
2110
|
+
ttPosition;
|
2111
|
+
// Get the position of the directive element.
|
2112
|
+
position = appendToBody ? $position.offset( element ) : $position.position( element );
|
2113
|
+
|
2114
|
+
// Get the height and width of the tooltip so we can center it.
|
2115
|
+
ttWidth = tooltip.prop( 'offsetWidth' );
|
2116
|
+
ttHeight = tooltip.prop( 'offsetHeight' );
|
2117
|
+
|
2118
|
+
// Calculate the tooltip's top and left coordinates to center it with
|
2119
|
+
// this directive.
|
2120
|
+
switch ( scope.tt_placement ) {
|
2121
|
+
case 'right':
|
2122
|
+
ttPosition = {
|
2123
|
+
top: position.top + position.height / 2 - ttHeight / 2,
|
2124
|
+
left: position.left + position.width
|
2125
|
+
};
|
2126
|
+
break;
|
2127
|
+
case 'bottom':
|
2128
|
+
ttPosition = {
|
2129
|
+
top: position.top + position.height,
|
2130
|
+
left: position.left + position.width / 2 - ttWidth / 2
|
2131
|
+
};
|
2132
|
+
break;
|
2133
|
+
case 'left':
|
2134
|
+
ttPosition = {
|
2135
|
+
top: position.top + position.height / 2 - ttHeight / 2,
|
2136
|
+
left: position.left - ttWidth
|
2137
|
+
};
|
2138
|
+
break;
|
2139
|
+
default:
|
2140
|
+
ttPosition = {
|
2141
|
+
top: position.top - ttHeight,
|
2142
|
+
left: position.left + position.width / 2 - ttWidth / 2
|
2143
|
+
};
|
2144
|
+
break;
|
2145
|
+
}
|
2085
2146
|
|
2086
|
-
|
2087
|
-
|
2147
|
+
ttPosition.top += 'px';
|
2148
|
+
ttPosition.left += 'px';
|
2088
2149
|
|
2089
|
-
|
2090
|
-
|
2150
|
+
// Now set the calculated positioning.
|
2151
|
+
tooltip.css( ttPosition );
|
2091
2152
|
|
2092
|
-
|
2153
|
+
};
|
2093
2154
|
|
2094
|
-
|
2095
|
-
|
2096
|
-
|
2155
|
+
// By default, the tooltip is not open.
|
2156
|
+
// TODO add ability to start tooltip opened
|
2157
|
+
scope.tt_isOpen = false;
|
2097
2158
|
|
2098
|
-
|
2099
|
-
|
2100
|
-
|
2101
|
-
|
2102
|
-
|
2159
|
+
function toggleTooltipBind () {
|
2160
|
+
if ( ! scope.tt_isOpen ) {
|
2161
|
+
showTooltipBind();
|
2162
|
+
} else {
|
2163
|
+
hideTooltipBind();
|
2164
|
+
}
|
2103
2165
|
}
|
2104
|
-
|
2105
|
-
|
2106
|
-
|
2107
|
-
|
2108
|
-
|
2109
|
-
|
2166
|
+
|
2167
|
+
// Show the tooltip with delay if specified, otherwise show it immediately
|
2168
|
+
function showTooltipBind() {
|
2169
|
+
if(hasEnableExp && !scope.$eval(attrs[prefix+'Enable'])) {
|
2170
|
+
return;
|
2171
|
+
}
|
2172
|
+
if ( scope.tt_popupDelay ) {
|
2173
|
+
popupTimeout = $timeout( show, scope.tt_popupDelay, false );
|
2174
|
+
popupTimeout.then(function(reposition){reposition();});
|
2175
|
+
} else {
|
2176
|
+
show()();
|
2177
|
+
}
|
2110
2178
|
}
|
2111
|
-
|
2112
|
-
|
2113
|
-
|
2114
|
-
|
2115
|
-
|
2179
|
+
|
2180
|
+
function hideTooltipBind () {
|
2181
|
+
scope.$apply(function () {
|
2182
|
+
hide();
|
2183
|
+
});
|
2116
2184
|
}
|
2117
|
-
}
|
2118
2185
|
|
2119
|
-
|
2120
|
-
|
2121
|
-
hide();
|
2122
|
-
});
|
2123
|
-
}
|
2124
|
-
|
2125
|
-
// Show the tooltip popup element.
|
2126
|
-
function show() {
|
2186
|
+
// Show the tooltip popup element.
|
2187
|
+
function show() {
|
2127
2188
|
|
2128
2189
|
|
2129
|
-
|
2130
|
-
|
2131
|
-
|
2132
|
-
|
2190
|
+
// Don't show empty tooltips.
|
2191
|
+
if ( ! scope.tt_content ) {
|
2192
|
+
return angular.noop;
|
2193
|
+
}
|
2133
2194
|
|
2134
|
-
|
2135
|
-
|
2136
|
-
|
2137
|
-
|
2138
|
-
|
2139
|
-
|
2140
|
-
|
2141
|
-
|
2142
|
-
|
2143
|
-
|
2144
|
-
|
2145
|
-
|
2146
|
-
|
2147
|
-
|
2148
|
-
|
2195
|
+
createTooltip();
|
2196
|
+
|
2197
|
+
// If there is a pending remove transition, we must cancel it, lest the
|
2198
|
+
// tooltip be mysteriously removed.
|
2199
|
+
if ( transitionTimeout ) {
|
2200
|
+
$timeout.cancel( transitionTimeout );
|
2201
|
+
}
|
2202
|
+
|
2203
|
+
// Set the initial positioning.
|
2204
|
+
tooltip.css({ top: 0, left: 0, display: 'block' });
|
2205
|
+
|
2206
|
+
// Now we add it to the DOM because need some info about it. But it's not
|
2207
|
+
// visible yet anyway.
|
2208
|
+
if ( appendToBody ) {
|
2209
|
+
$document.find( 'body' ).append( tooltip );
|
2210
|
+
} else {
|
2211
|
+
element.after( tooltip );
|
2212
|
+
}
|
2213
|
+
|
2214
|
+
positionTooltip();
|
2215
|
+
|
2216
|
+
// And show the tooltip.
|
2217
|
+
scope.tt_isOpen = true;
|
2218
|
+
scope.$digest(); // digest required as $apply is not called
|
2219
|
+
|
2220
|
+
// Return positioning function as promise callback for correct
|
2221
|
+
// positioning after draw.
|
2222
|
+
return positionTooltip;
|
2149
2223
|
}
|
2150
2224
|
|
2151
|
-
|
2225
|
+
// Hide the tooltip popup element.
|
2226
|
+
function hide() {
|
2227
|
+
// First things first: we don't show it anymore.
|
2228
|
+
scope.tt_isOpen = false;
|
2229
|
+
|
2230
|
+
//if tooltip is going to be shown after delay, we must cancel this
|
2231
|
+
$timeout.cancel( popupTimeout );
|
2232
|
+
|
2233
|
+
// And now we remove it from the DOM. However, if we have animation, we
|
2234
|
+
// need to wait for it to expire beforehand.
|
2235
|
+
// FIXME: this is a placeholder for a port of the transitions library.
|
2236
|
+
if ( scope.tt_animation ) {
|
2237
|
+
transitionTimeout = $timeout(removeTooltip, 500);
|
2238
|
+
} else {
|
2239
|
+
removeTooltip();
|
2240
|
+
}
|
2241
|
+
}
|
2152
2242
|
|
2153
|
-
|
2154
|
-
|
2243
|
+
function createTooltip() {
|
2244
|
+
// There can only be one tooltip element per directive shown at once.
|
2245
|
+
if (tooltip) {
|
2246
|
+
removeTooltip();
|
2247
|
+
}
|
2248
|
+
tooltip = tooltipLinker(scope, function () {});
|
2155
2249
|
|
2156
|
-
|
2157
|
-
|
2158
|
-
|
2159
|
-
}
|
2160
|
-
|
2161
|
-
// Hide the tooltip popup element.
|
2162
|
-
function hide() {
|
2163
|
-
// First things first: we don't show it anymore.
|
2164
|
-
scope.tt_isOpen = false;
|
2250
|
+
// Get contents rendered into the tooltip
|
2251
|
+
scope.$digest();
|
2252
|
+
}
|
2165
2253
|
|
2166
|
-
|
2167
|
-
|
2168
|
-
|
2169
|
-
// And now we remove it from the DOM. However, if we have animation, we
|
2170
|
-
// need to wait for it to expire beforehand.
|
2171
|
-
// FIXME: this is a placeholder for a port of the transitions library.
|
2172
|
-
if ( scope.tt_animation ) {
|
2173
|
-
transitionTimeout = $timeout(function () {
|
2254
|
+
function removeTooltip() {
|
2255
|
+
if (tooltip) {
|
2174
2256
|
tooltip.remove();
|
2175
|
-
|
2176
|
-
|
2177
|
-
tooltip.remove();
|
2257
|
+
tooltip = null;
|
2258
|
+
}
|
2178
2259
|
}
|
2179
|
-
}
|
2180
2260
|
|
2181
|
-
|
2182
|
-
|
2183
|
-
|
2184
|
-
|
2185
|
-
|
2261
|
+
/**
|
2262
|
+
* Observe the relevant attributes.
|
2263
|
+
*/
|
2264
|
+
attrs.$observe( type, function ( val ) {
|
2265
|
+
scope.tt_content = val;
|
2186
2266
|
|
2187
|
-
|
2188
|
-
|
2189
|
-
|
2190
|
-
|
2267
|
+
if (!val && scope.tt_isOpen ) {
|
2268
|
+
hide();
|
2269
|
+
}
|
2270
|
+
});
|
2191
2271
|
|
2192
|
-
|
2193
|
-
|
2194
|
-
|
2272
|
+
attrs.$observe( prefix+'Title', function ( val ) {
|
2273
|
+
scope.tt_title = val;
|
2274
|
+
});
|
2195
2275
|
|
2196
|
-
|
2197
|
-
|
2198
|
-
|
2276
|
+
attrs.$observe( prefix+'Placement', function ( val ) {
|
2277
|
+
scope.tt_placement = angular.isDefined( val ) ? val : options.placement;
|
2278
|
+
});
|
2199
2279
|
|
2200
|
-
|
2201
|
-
|
2202
|
-
|
2203
|
-
|
2280
|
+
attrs.$observe( prefix+'PopupDelay', function ( val ) {
|
2281
|
+
var delay = parseInt( val, 10 );
|
2282
|
+
scope.tt_popupDelay = ! isNaN(delay) ? delay : options.popupDelay;
|
2283
|
+
});
|
2204
2284
|
|
2205
|
-
|
2206
|
-
|
2207
|
-
|
2208
|
-
|
2209
|
-
|
2210
|
-
|
2285
|
+
var unregisterTriggers = function() {
|
2286
|
+
if (hasRegisteredTriggers) {
|
2287
|
+
element.unbind( triggers.show, showTooltipBind );
|
2288
|
+
element.unbind( triggers.hide, hideTooltipBind );
|
2289
|
+
}
|
2290
|
+
};
|
2211
2291
|
|
2212
|
-
|
2213
|
-
|
2292
|
+
attrs.$observe( prefix+'Trigger', function ( val ) {
|
2293
|
+
unregisterTriggers();
|
2214
2294
|
|
2215
|
-
|
2295
|
+
triggers = getTriggers( val );
|
2216
2296
|
|
2217
|
-
|
2218
|
-
|
2219
|
-
|
2220
|
-
|
2221
|
-
|
2222
|
-
|
2297
|
+
if ( triggers.show === triggers.hide ) {
|
2298
|
+
element.bind( triggers.show, toggleTooltipBind );
|
2299
|
+
} else {
|
2300
|
+
element.bind( triggers.show, showTooltipBind );
|
2301
|
+
element.bind( triggers.hide, hideTooltipBind );
|
2302
|
+
}
|
2223
2303
|
|
2224
|
-
|
2225
|
-
|
2304
|
+
hasRegisteredTriggers = true;
|
2305
|
+
});
|
2226
2306
|
|
2227
|
-
|
2228
|
-
|
2307
|
+
var animation = scope.$eval(attrs[prefix + 'Animation']);
|
2308
|
+
scope.tt_animation = angular.isDefined(animation) ? !!animation : options.animation;
|
2229
2309
|
|
2230
|
-
|
2231
|
-
|
2232
|
-
|
2310
|
+
attrs.$observe( prefix+'AppendToBody', function ( val ) {
|
2311
|
+
appendToBody = angular.isDefined( val ) ? $parse( val )( scope ) : appendToBody;
|
2312
|
+
});
|
2233
2313
|
|
2234
|
-
|
2235
|
-
|
2236
|
-
|
2237
|
-
|
2238
|
-
|
2239
|
-
|
2240
|
-
|
2314
|
+
// if a tooltip is attached to <body> we need to remove it on
|
2315
|
+
// location change as its parent scope will probably not be destroyed
|
2316
|
+
// by the change.
|
2317
|
+
if ( appendToBody ) {
|
2318
|
+
scope.$on('$locationChangeSuccess', function closeTooltipOnLocationChangeSuccess () {
|
2319
|
+
if ( scope.tt_isOpen ) {
|
2320
|
+
hide();
|
2321
|
+
}
|
2322
|
+
});
|
2241
2323
|
}
|
2242
|
-
});
|
2243
|
-
}
|
2244
2324
|
|
2245
|
-
|
2246
|
-
|
2247
|
-
|
2248
|
-
|
2249
|
-
|
2250
|
-
|
2251
|
-
|
2252
|
-
|
2253
|
-
});
|
2325
|
+
// Make sure tooltip is destroyed and removed.
|
2326
|
+
scope.$on('$destroy', function onDestroyTooltip() {
|
2327
|
+
$timeout.cancel( transitionTimeout );
|
2328
|
+
$timeout.cancel( popupTimeout );
|
2329
|
+
unregisterTriggers();
|
2330
|
+
removeTooltip();
|
2331
|
+
});
|
2332
|
+
};
|
2254
2333
|
}
|
2255
2334
|
};
|
2256
2335
|
};
|
@@ -2289,6 +2368,7 @@ angular.module( 'ui.bootstrap.tooltip', [ 'ui.bootstrap.position', 'ui.bootstrap
|
|
2289
2368
|
* just mouse enter/leave, html popovers, and selector delegatation.
|
2290
2369
|
*/
|
2291
2370
|
angular.module( 'ui.bootstrap.popover', [ 'ui.bootstrap.tooltip' ] )
|
2371
|
+
|
2292
2372
|
.directive( 'popoverPopup', function () {
|
2293
2373
|
return {
|
2294
2374
|
restrict: 'EA',
|
@@ -2297,11 +2377,11 @@ angular.module( 'ui.bootstrap.popover', [ 'ui.bootstrap.tooltip' ] )
|
|
2297
2377
|
templateUrl: 'template/popover/popover.html'
|
2298
2378
|
};
|
2299
2379
|
})
|
2300
|
-
|
2380
|
+
|
2381
|
+
.directive( 'popover', [ '$tooltip', function ( $tooltip ) {
|
2301
2382
|
return $tooltip( 'popover', 'popover', 'click' );
|
2302
2383
|
}]);
|
2303
2384
|
|
2304
|
-
|
2305
2385
|
angular.module('ui.bootstrap.progressbar', ['ui.bootstrap.transition'])
|
2306
2386
|
|
2307
2387
|
.constant('progressConfig', {
|
@@ -2432,11 +2512,9 @@ angular.module('ui.bootstrap.rating', [])
|
|
2432
2512
|
$scope.range = angular.isDefined($attrs.ratingStates) ? this.createRateObjects(angular.copy($scope.$parent.$eval($attrs.ratingStates))): this.createRateObjects(new Array(this.maxRange));
|
2433
2513
|
|
2434
2514
|
$scope.rate = function(value) {
|
2435
|
-
if ( $scope.
|
2436
|
-
|
2515
|
+
if ( $scope.value !== value && !$scope.readonly ) {
|
2516
|
+
$scope.value = value;
|
2437
2517
|
}
|
2438
|
-
|
2439
|
-
$scope.value = value;
|
2440
2518
|
};
|
2441
2519
|
|
2442
2520
|
$scope.enter = function(value) {
|
@@ -3571,7 +3649,7 @@ angular.module("template/timepicker/timepicker.html", []).run(["$templateCache",
|
|
3571
3649
|
" <td style=\"width:50px;\" class=\"form-group\" ng-class=\"{'has-error': invalidMinutes}\">\n" +
|
3572
3650
|
" <input type=\"text\" ng-model=\"minutes\" ng-change=\"updateMinutes()\" class=\"form-control text-center\" ng-readonly=\"readonlyInput\" maxlength=\"2\">\n" +
|
3573
3651
|
" </td>\n" +
|
3574
|
-
" <td ng-show=\"showMeridian\"><button class=\"btn btn-default text-center\" ng-click=\"toggleMeridian()\">{{meridian}}</button></td>\n" +
|
3652
|
+
" <td ng-show=\"showMeridian\"><button type=\"button\" class=\"btn btn-default text-center\" ng-click=\"toggleMeridian()\">{{meridian}}</button></td>\n" +
|
3575
3653
|
" </tr>\n" +
|
3576
3654
|
" <tr class=\"text-center\">\n" +
|
3577
3655
|
" <td><a ng-click=\"decrementHours()\" class=\"btn btn-link\"><span class=\"glyphicon glyphicon-chevron-down\"></span></a></td>\n" +
|