diff --git a/src/main/webapp/components/angular-strap/dist/modules/affix.js b/src/main/webapp/components/angular-strap/dist/modules/affix.js
index 91ef0398e..61d1675b9 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/affix.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/affix.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/affix.min.js b/src/main/webapp/components/angular-strap/dist/modules/affix.min.js
index e4c3a03cb..2912a237c 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/affix.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/affix.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/alert.js b/src/main/webapp/components/angular-strap/dist/modules/alert.js
index e55c8ab2b..25a98e775 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/alert.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/alert.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -21,7 +21,8 @@ angular.module('mgcrea.ngStrap.alert', ['mgcrea.ngStrap.modal']).provider('$aler
keyboard: true,
show: true,
duration: false,
- type: false
+ type: false,
+ dismissable: true
};
this.$get = [
'$modal',
@@ -32,7 +33,8 @@ angular.module('mgcrea.ngStrap.alert', ['mgcrea.ngStrap.modal']).provider('$aler
// Common vars
var options = angular.extend({}, defaults, config);
$alert = $modal(options);
- // Support scope as string options [/*title, content, */type]
+ // Support scope as string options [/*title, content, */ type, dismissable]
+ $alert.$scope.dismissable = !!options.dismissable;
if (options.type) {
$alert.$scope.type = options.type;
}
@@ -75,7 +77,8 @@ angular.module('mgcrea.ngStrap.alert', ['mgcrea.ngStrap.modal']).provider('$aler
'html',
'container',
'animation',
- 'duration'
+ 'duration',
+ 'dismissable'
], function (key) {
if (angular.isDefined(attr[key]))
options[key] = attr[key];
diff --git a/src/main/webapp/components/angular-strap/dist/modules/alert.min.js b/src/main/webapp/components/angular-strap/dist/modules/alert.min.js
index 9411f2b50..31ec1a231 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/alert.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/alert.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.alert",["mgcrea.ngStrap.modal"]).provider("$alert",function(){var t=this.defaults={animation:"am-fade",prefixClass:"alert",placement:null,template:"alert/alert.tpl.html",container:!1,element:null,backdrop:!1,keyboard:!0,show:!0,duration:!1,type:!1};this.$get=["$modal","$timeout",function(e,n){function a(a){var r={},o=angular.extend({},t,a);r=e(o),o.type&&(r.$scope.type=o.type);var i=r.show;return o.duration&&(r.show=function(){i(),n(function(){r.hide()},1e3*o.duration)}),r}return a}]}).directive("bsAlert",["$window","$location","$sce","$alert",function(t,e,n,a){t.requestAnimationFrame||t.setTimeout;return{restrict:"EAC",scope:!0,link:function(t,e,r){var o={scope:t,element:e,show:!1};angular.forEach(["template","placement","keyboard","html","container","animation","duration"],function(t){angular.isDefined(r[t])&&(o[t]=r[t])}),angular.forEach(["title","content","type"],function(e){r[e]&&r.$observe(e,function(a){t[e]=n.trustAsHtml(a)})}),r.bsAlert&&t.$watch(r.bsAlert,function(e){angular.isObject(e)?angular.extend(t,e):t.content=e},!0);var i=a(o);e.on(r.trigger||"click",i.toggle),t.$on("$destroy",function(){i.destroy(),o=null,i=null})}}}]);
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.alert",["mgcrea.ngStrap.modal"]).provider("$alert",function(){var t=this.defaults={animation:"am-fade",prefixClass:"alert",placement:null,template:"alert/alert.tpl.html",container:!1,element:null,backdrop:!1,keyboard:!0,show:!0,duration:!1,type:!1,dismissable:!0};this.$get=["$modal","$timeout",function(e,n){function a(a){var r={},i=angular.extend({},t,a);r=e(i),r.$scope.dismissable=!!i.dismissable,i.type&&(r.$scope.type=i.type);var o=r.show;return i.duration&&(r.show=function(){o(),n(function(){r.hide()},1e3*i.duration)}),r}return a}]}).directive("bsAlert",["$window","$location","$sce","$alert",function(t,e,n,a){t.requestAnimationFrame||t.setTimeout;return{restrict:"EAC",scope:!0,link:function(t,e,r){var i={scope:t,element:e,show:!1};angular.forEach(["template","placement","keyboard","html","container","animation","duration","dismissable"],function(t){angular.isDefined(r[t])&&(i[t]=r[t])}),angular.forEach(["title","content","type"],function(e){r[e]&&r.$observe(e,function(a){t[e]=n.trustAsHtml(a)})}),r.bsAlert&&t.$watch(r.bsAlert,function(e){angular.isObject(e)?angular.extend(t,e):t.content=e},!0);var o=a(i);e.on(r.trigger||"click",o.toggle),t.$on("$destroy",function(){o.destroy(),i=null,o=null})}}}]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/alert.tpl.js b/src/main/webapp/components/angular-strap/dist/modules/alert.tpl.js
index f6ec9b6ef..01097abe5 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/alert.tpl.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/alert.tpl.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -9,6 +9,6 @@
angular.module('mgcrea.ngStrap.alert').run([
'$templateCache',
function ($templateCache) {
- $templateCache.put('alert/alert.tpl.html', '
×
');
+ $templateCache.put('alert/alert.tpl.html', '×
');
}
]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/alert.tpl.min.js b/src/main/webapp/components/angular-strap/dist/modules/alert.tpl.min.js
index f6ae6925e..c5057ed92 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/alert.tpl.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/alert.tpl.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.alert").run(["$templateCache",function(t){t.put("alert/alert.tpl.html",'×
')}]);
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.alert").run(["$templateCache",function(t){t.put("alert/alert.tpl.html",'×
')}]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/aside.js b/src/main/webapp/components/angular-strap/dist/modules/aside.js
index bc1c90cd7..c6ce50585 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/aside.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/aside.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/aside.min.js b/src/main/webapp/components/angular-strap/dist/modules/aside.min.js
index 431cf5b02..dc8f1b535 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/aside.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/aside.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/aside.tpl.js b/src/main/webapp/components/angular-strap/dist/modules/aside.tpl.js
index 0d45e06d7..9cd2eaea8 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/aside.tpl.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/aside.tpl.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/aside.tpl.min.js b/src/main/webapp/components/angular-strap/dist/modules/aside.tpl.min.js
index abc039139..25c775f27 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/aside.tpl.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/aside.tpl.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/button.js b/src/main/webapp/components/angular-strap/dist/modules/button.js
index e933e85a9..2efb20dc4 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/button.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/button.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/button.min.js b/src/main/webapp/components/angular-strap/dist/modules/button.min.js
index bbfca1394..a7c68a459 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/button.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/button.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/date-parser.js b/src/main/webapp/components/angular-strap/dist/modules/date-parser.js
index 9dd9908f0..11c3d08ec 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/date-parser.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/date-parser.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -91,15 +91,17 @@ angular.module('mgcrea.ngStrap.helpers.dateParser', []).provider('$dateParser',
return !isNaN(date.getTime());
return regex.test(date);
};
- $dateParser.parse = function (value, baseDate) {
+ $dateParser.parse = function (value, baseDate, format) {
+ var formatRegex = format ? regExpForFormat(format) : regex;
+ var formatSetMap = format ? setMapForFormat(format) : setMap;
if (angular.isDate(value))
return value;
- var matches = regex.exec(value);
+ var matches = formatRegex.exec(value);
if (!matches)
return false;
var date = baseDate || new Date(0, 0, 1);
for (var i = 0; i < matches.length - 1; i++) {
- setMap[i] && setMap[i].call(date, matches[i + 1]);
+ formatSetMap[i] && formatSetMap[i].call(date, matches[i + 1]);
}
return date;
};
diff --git a/src/main/webapp/components/angular-strap/dist/modules/date-parser.min.js b/src/main/webapp/components/angular-strap/dist/modules/date-parser.min.js
index 0c8607a41..baa2fecf7 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/date-parser.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/date-parser.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.helpers.dateParser",[]).provider("$dateParser",["$localeProvider",function(){var t=Date.prototype,e=this.defaults={format:"shortDate",strict:!1};this.$get=["$locale",function(r){var s=function(s){function n(t){var e,r=Object.keys(f),s=[],n=[],i=t;for(e=0;e1){var a=i.search(r[e]);t=t.split(r[e]).join(""),f[r[e]]&&(s[a]=f[r[e]])}return angular.forEach(s,function(t){n.push(t)}),n}function i(t){return t.replace(/\//g,"[\\/]").replace("/-/g","[-]").replace(/\./g,"[.]").replace(/\\s/g,"[\\s]")}function a(t){var e,r=Object.keys(l),s=t;for(e=0;e1){var a=i.search(r[e]);t=t.split(r[e]).join(""),f[r[e]]&&(s[a]=f[r[e]])}return angular.forEach(s,function(t){n.push(t)}),n}function i(t){return t.replace(/\//g,"[\\/]").replace("/-/g","[-]").replace(/\./g,"[.]").replace(/\\s/g,"[\\s]")}function a(t){var e,r=Object.keys(l),s=t;for(e=0;e= datepicker.$options.minDate) && (isNaN(datepicker.$options.maxDate) || parsedDate.getTime() <= datepicker.$options.maxDate);
+ var isMinValid = isNaN(datepicker.$options.minDate) || parsedDate.getTime() >= datepicker.$options.minDate;
+ var isMaxValid = isNaN(datepicker.$options.maxDate) || parsedDate.getTime() <= datepicker.$options.maxDate;
+ var isValid = isMinValid && isMaxValid;
controller.$setValidity('date', isValid);
+ controller.$setValidity('min', isMinValid);
+ controller.$setValidity('max', isMaxValid);
// Only update the model when we have a valid date
if (isValid)
controller.$dateValue = parsedDate;
}
if (options.dateType === 'string') {
- return dateFilter(viewValue, options.dateFormat);
+ return dateFilter(parsedDate, options.modelDateFormat || options.dateFormat);
} else if (options.dateType === 'number') {
return controller.$dateValue.getTime();
} else if (options.dateType === 'iso') {
@@ -339,7 +349,7 @@ angular.module('mgcrea.ngStrap.datepicker', [
} else if (angular.isDate(modelValue)) {
date = modelValue;
} else if (options.dateType === 'string') {
- date = dateParser.parse(modelValue);
+ date = dateParser.parse(modelValue, null, options.modelDateFormat);
} else {
date = new Date(modelValue);
}
diff --git a/src/main/webapp/components/angular-strap/dist/modules/datepicker.min.js b/src/main/webapp/components/angular-strap/dist/modules/datepicker.min.js
index b38f22dc4..3f62cafc9 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/datepicker.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/datepicker.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.datepicker",["mgcrea.ngStrap.helpers.dateParser","mgcrea.ngStrap.tooltip"]).provider("$datepicker",function(){var e=this.defaults={animation:"am-fade",prefixClass:"datepicker",placement:"bottom-left",template:"datepicker/datepicker.tpl.html",trigger:"focus",container:!1,keyboard:!0,html:!1,delay:0,useNative:!1,dateType:"date",dateFormat:"shortDate",dayFormat:"dd",strictFormat:!1,autoclose:!1,minDate:-1/0,maxDate:+1/0,startView:0,minView:0,startWeek:0};this.$get=["$window","$document","$rootScope","$sce","$locale","dateFilter","datepickerViews","$tooltip",function(t,a,n,i,o,r,d,l){function s(t,a,n){function i(e){e.selected=r.$isSelected(e.date)}function o(){t[0].focus()}var r=l(t,angular.extend({},e,n)),s=n.scope,g=r.$options,$=r.$scope;g.startView&&(g.startView-=g.minView);var m=d(r);r.$views=m.views;var f=m.viewDate;$.$mode=g.startView;var h=r.$views[$.$mode];$.$select=function(e){r.select(e)},$.$selectPane=function(e){r.$selectPane(e)},$.$toggleMode=function(){r.setMode(($.$mode+1)%r.$views.length)},r.update=function(e){angular.isDate(e)&&!isNaN(e.getTime())&&(r.$date=e,h.update.call(h,e)),r.$build(!0)},r.select=function(e,t){angular.isDate(a.$dateValue)||(a.$dateValue=new Date(e)),a.$dateValue.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),!$.$mode||t?(a.$setViewValue(a.$dateValue),a.$render(),g.autoclose&&!t&&r.hide(!0)):(angular.extend(f,{year:e.getFullYear(),month:e.getMonth(),date:e.getDate()}),r.setMode($.$mode-1),r.$build())},r.setMode=function(e){$.$mode=e,h=r.$views[$.$mode],r.$build()},r.$build=function(e){e===!0&&h.built||(e!==!1||h.built)&&h.build.call(h)},r.$updateSelected=function(){for(var e=0,t=$.rows.length;t>e;e++)angular.forEach($.rows[e],i)},r.$isSelected=function(e){return h.isSelected(e)},r.$selectPane=function(e){var t=h.steps,a=new Date(Date.UTC(f.year+(t.year||0)*e,f.month+(t.month||0)*e,f.date+(t.day||0)*e));angular.extend(f,{year:a.getUTCFullYear(),month:a.getUTCMonth(),date:a.getUTCDate()}),r.$build()},r.$onMouseDown=function(e){if(e.preventDefault(),e.stopPropagation(),u){var t=angular.element(e.target);"button"!==t[0].nodeName.toLowerCase()&&(t=t.parent()),t.triggerHandler("click")}},r.$onKeyDown=function(e){if(/(38|37|39|40|13)/.test(e.keyCode)&&!e.shiftKey&&!e.altKey){if(e.preventDefault(),e.stopPropagation(),13===e.keyCode)return $.$mode?$.$apply(function(){r.setMode($.$mode-1)}):r.hide(!0);h.onKeyDown(e),s.$digest()}};var p=r.init;r.init=function(){return c&&g.useNative?(t.prop("type","date"),void t.css("-webkit-appearance","textfield")):(u&&(t.prop("type","text"),t.attr("readonly","true"),t.on("click",o)),void p())};var y=r.destroy;r.destroy=function(){c&&g.useNative&&t.off("click",o),y()};var D=r.show;r.show=function(){D(),setTimeout(function(){r.$element.on(u?"touchstart":"mousedown",r.$onMouseDown),g.keyboard&&t.on("keydown",r.$onKeyDown)})};var w=r.hide;return r.hide=function(e){r.$element.off(u?"touchstart":"mousedown",r.$onMouseDown),g.keyboard&&t.off("keydown",r.$onKeyDown),w(e)},r}var u=(angular.element(t.document.body),"createTouch"in t.document),c=/(ip(a|o)d|iphone|android)/gi.test(t.navigator.userAgent);return e.lang||(e.lang=o.id),s.defaults=e,s}]}).directive("bsDatepicker",["$window","$parse","$q","$locale","dateFilter","$datepicker","$dateParser","$timeout",function(e,t,a,n,i,o,r){var d=(o.defaults,/(ip(a|o)d|iphone|android)/gi.test(e.navigator.userAgent)),l=function(e){return!isNaN(parseFloat(e))&&isFinite(e)};return{restrict:"EAC",require:"ngModel",link:function(e,t,a,n){var s={scope:e,controller:n};angular.forEach(["placement","container","delay","trigger","keyboard","html","animation","template","autoclose","dateType","dateFormat","dayFormat","strictFormat","startWeek","useNative","lang","startView","minView"],function(e){angular.isDefined(a[e])&&(s[e]=a[e])}),d&&s.useNative&&(s.dateFormat="yyyy-MM-dd");var u=o(t,n,s);s=u.$options,angular.forEach(["minDate","maxDate"],function(e){angular.isDefined(a[e])&&a.$observe(e,function(t){if("today"===t){var a=new Date;u.$options[e]=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+("maxDate"===e?1:0),0,0,0,"minDate"===e?0:-1)}else u.$options[e]=angular.isString(t)&&t.match(/^".+"$/)?+new Date(t.substr(1,t.length-2)):l(t)?+new Date(parseInt(t,10)):+new Date(t);!isNaN(u.$options[e])&&u.$build(!1)})}),e.$watch(a.ngModel,function(){u.update(n.$dateValue)},!0);var c=r({format:s.dateFormat,lang:s.lang,strict:s.strictFormat});n.$parsers.unshift(function(e){if(!e)return void n.$setValidity("date",!0);var t=c.parse(e,n.$dateValue);if(!t||isNaN(t.getTime()))return void n.$setValidity("date",!1);var a=(isNaN(u.$options.minDate)||t.getTime()>=u.$options.minDate)&&(isNaN(u.$options.maxDate)||t.getTime()<=u.$options.maxDate);return n.$setValidity("date",a),a&&(n.$dateValue=t),"string"===s.dateType?i(e,s.dateFormat):"number"===s.dateType?n.$dateValue.getTime():"iso"===s.dateType?n.$dateValue.toISOString():new Date(n.$dateValue)}),n.$formatters.push(function(e){var t;return t=angular.isUndefined(e)||null===e?0/0:angular.isDate(e)?e:"string"===s.dateType?c.parse(e):new Date(e),n.$dateValue=t,n.$dateValue}),n.$render=function(){t.val(!n.$dateValue||isNaN(n.$dateValue.getTime())?"":i(n.$dateValue,s.dateFormat))},e.$on("$destroy",function(){u.destroy(),s=null,u=null})}}}]).provider("datepickerViews",function(){function e(e,t){for(var a=[];e.length>0;)a.push(e.splice(0,t));return a}function t(e,t){return(e%t+t)%t}this.defaults={dayFormat:"dd",daySplit:7};this.$get=["$locale","$sce","dateFilter",function(a,n,i){return function(o){var r=o.$scope,d=o.$options,l=a.DATETIME_FORMATS.SHORTDAY,s=l.slice(d.startWeek).concat(l.slice(0,d.startWeek)),u=n.trustAsHtml(''+s.join(' ')+" "),c=o.$date||new Date,g={year:c.getFullYear(),month:c.getMonth(),date:c.getDate()},$=(6e4*c.getTimezoneOffset(),[{format:d.dayFormat,split:7,steps:{month:1},update:function(e,t){!this.built||t||e.getFullYear()!==g.year||e.getMonth()!==g.month?(angular.extend(g,{year:o.$date.getFullYear(),month:o.$date.getMonth(),date:o.$date.getDate()}),o.$build()):e.getDate()!==g.date&&(g.date=o.$date.getDate(),o.$updateSelected())},build:function(){var a=new Date(g.year,g.month,1),n=a.getTimezoneOffset(),l=new Date(+a-864e5*t(a.getDay()-d.startWeek,7)),s=l.getTimezoneOffset();s!==n&&(l=new Date(+l+6e4*(s-n)));for(var c,$=[],m=0;42>m;m++)c=new Date(l.getFullYear(),l.getMonth(),l.getDate()+m),$.push({date:c,label:i(c,this.format),selected:o.$date&&this.isSelected(c),muted:c.getMonth()!==g.month,disabled:this.isDisabled(c)});r.title=i(a,"MMMM yyyy"),r.showLabels=!0,r.labels=u,r.rows=e($,this.split),this.built=!0},isSelected:function(e){return o.$date&&e.getFullYear()===o.$date.getFullYear()&&e.getMonth()===o.$date.getMonth()&&e.getDate()===o.$date.getDate()},isDisabled:function(e){return e.getTime()d.maxDate},onKeyDown:function(e){var t,a=o.$date.getTime();37===e.keyCode?t=new Date(a-864e5):38===e.keyCode?t=new Date(a-6048e5):39===e.keyCode?t=new Date(a+864e5):40===e.keyCode&&(t=new Date(a+6048e5)),this.isDisabled(t)||o.select(t,!0)}},{name:"month",format:"MMM",split:4,steps:{year:1},update:function(e){this.built&&e.getFullYear()===g.year?e.getMonth()!==g.month&&(angular.extend(g,{month:o.$date.getMonth(),date:o.$date.getDate()}),o.$updateSelected()):(angular.extend(g,{year:o.$date.getFullYear(),month:o.$date.getMonth(),date:o.$date.getDate()}),o.$build())},build:function(){for(var t,a=(new Date(g.year,0,1),[]),n=0;12>n;n++)t=new Date(g.year,n,1),a.push({date:t,label:i(t,this.format),selected:o.$isSelected(t),disabled:this.isDisabled(t)});r.title=i(t,"yyyy"),r.showLabels=!1,r.rows=e(a,this.split),this.built=!0},isSelected:function(e){return o.$date&&e.getFullYear()===o.$date.getFullYear()&&e.getMonth()===o.$date.getMonth()},isDisabled:function(e){var t=+new Date(e.getFullYear(),e.getMonth()+1,0);return td.maxDate},onKeyDown:function(e){var t=o.$date.getMonth(),a=new Date(o.$date);37===e.keyCode?a.setMonth(t-1):38===e.keyCode?a.setMonth(t-4):39===e.keyCode?a.setMonth(t+1):40===e.keyCode&&a.setMonth(t+4),this.isDisabled(a)||o.select(a,!0)}},{name:"year",format:"yyyy",split:4,steps:{year:12},update:function(e,t){!this.built||t||parseInt(e.getFullYear()/20,10)!==parseInt(g.year/20,10)?(angular.extend(g,{year:o.$date.getFullYear(),month:o.$date.getMonth(),date:o.$date.getDate()}),o.$build()):e.getFullYear()!==g.year&&(angular.extend(g,{year:o.$date.getFullYear(),month:o.$date.getMonth(),date:o.$date.getDate()}),o.$updateSelected())},build:function(){for(var t,a=g.year-g.year%(3*this.split),n=[],d=0;12>d;d++)t=new Date(a+d,0,1),n.push({date:t,label:i(t,this.format),selected:o.$isSelected(t),disabled:this.isDisabled(t)});r.title=n[0].label+"-"+n[n.length-1].label,r.showLabels=!1,r.rows=e(n,this.split),this.built=!0},isSelected:function(e){return o.$date&&e.getFullYear()===o.$date.getFullYear()},isDisabled:function(e){var t=+new Date(e.getFullYear()+1,0,0);return td.maxDate},onKeyDown:function(e){var t=o.$date.getFullYear(),a=new Date(o.$date);37===e.keyCode?a.setYear(t-1):38===e.keyCode?a.setYear(t-4):39===e.keyCode?a.setYear(t+1):40===e.keyCode&&a.setYear(t+4),this.isDisabled(a)||o.select(a,!0)}}]);return{views:d.minView?Array.prototype.slice.call($,d.minView):$,viewDate:g}}}]});
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.datepicker",["mgcrea.ngStrap.helpers.dateParser","mgcrea.ngStrap.tooltip"]).provider("$datepicker",function(){var e=this.defaults={animation:"am-fade",prefixClass:"datepicker",placement:"bottom-left",template:"datepicker/datepicker.tpl.html",trigger:"focus",container:!1,keyboard:!0,html:!1,delay:0,useNative:!1,dateType:"date",dateFormat:"shortDate",modelDateFormat:null,dayFormat:"dd",strictFormat:!1,autoclose:!1,minDate:-1/0,maxDate:+1/0,startView:0,minView:0,startWeek:0,iconLeft:"glyphicon glyphicon-chevron-left",iconRight:"glyphicon glyphicon-chevron-right"};this.$get=["$window","$document","$rootScope","$sce","$locale","dateFilter","datepickerViews","$tooltip",function(t,a,n,i,o,r,l,d){function s(t,a,n){function i(e){e.selected=r.$isSelected(e.date)}function o(){t[0].focus()}var r=d(t,angular.extend({},e,n)),s=n.scope,g=r.$options,$=r.$scope;g.startView&&(g.startView-=g.minView);var m=l(r);r.$views=m.views;var h=m.viewDate;$.$mode=g.startView,$.$iconLeft=g.iconLeft,$.$iconRight=g.iconRight;var f=r.$views[$.$mode];$.$select=function(e){r.select(e)},$.$selectPane=function(e){r.$selectPane(e)},$.$toggleMode=function(){r.setMode(($.$mode+1)%r.$views.length)},r.update=function(e){angular.isDate(e)&&!isNaN(e.getTime())&&(r.$date=e,f.update.call(f,e)),r.$build(!0)},r.select=function(e,t){angular.isDate(a.$dateValue)||(a.$dateValue=new Date(e)),a.$dateValue.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),!$.$mode||t?(a.$setViewValue(a.$dateValue),a.$render(),g.autoclose&&!t&&r.hide(!0)):(angular.extend(h,{year:e.getFullYear(),month:e.getMonth(),date:e.getDate()}),r.setMode($.$mode-1),r.$build())},r.setMode=function(e){$.$mode=e,f=r.$views[$.$mode],r.$build()},r.$build=function(e){e===!0&&f.built||(e!==!1||f.built)&&f.build.call(f)},r.$updateSelected=function(){for(var e=0,t=$.rows.length;t>e;e++)angular.forEach($.rows[e],i)},r.$isSelected=function(e){return f.isSelected(e)},r.$selectPane=function(e){var t=f.steps,a=new Date(Date.UTC(h.year+(t.year||0)*e,h.month+(t.month||0)*e,h.date+(t.day||0)*e));angular.extend(h,{year:a.getUTCFullYear(),month:a.getUTCMonth(),date:a.getUTCDate()}),r.$build()},r.$onMouseDown=function(e){if(e.preventDefault(),e.stopPropagation(),u){var t=angular.element(e.target);"button"!==t[0].nodeName.toLowerCase()&&(t=t.parent()),t.triggerHandler("click")}},r.$onKeyDown=function(e){if(/(38|37|39|40|13)/.test(e.keyCode)&&!e.shiftKey&&!e.altKey){if(e.preventDefault(),e.stopPropagation(),13===e.keyCode)return $.$mode?$.$apply(function(){r.setMode($.$mode-1)}):r.hide(!0);f.onKeyDown(e),s.$digest()}};var p=r.init;r.init=function(){return c&&g.useNative?(t.prop("type","date"),void t.css("-webkit-appearance","textfield")):(u&&(t.prop("type","text"),t.attr("readonly","true"),t.on("click",o)),void p())};var y=r.destroy;r.destroy=function(){c&&g.useNative&&t.off("click",o),y()};var D=r.show;r.show=function(){D(),setTimeout(function(){r.$element.on(u?"touchstart":"mousedown",r.$onMouseDown),g.keyboard&&t.on("keydown",r.$onKeyDown)})};var w=r.hide;return r.hide=function(e){r.$element.off(u?"touchstart":"mousedown",r.$onMouseDown),g.keyboard&&t.off("keydown",r.$onKeyDown),w(e)},r}var u=(angular.element(t.document.body),"createTouch"in t.document),c=/(ip(a|o)d|iphone|android)/gi.test(t.navigator.userAgent);return e.lang||(e.lang=o.id),s.defaults=e,s}]}).directive("bsDatepicker",["$window","$parse","$q","$locale","dateFilter","$datepicker","$dateParser","$timeout",function(e,t,a,n,i,o,r){var l=(o.defaults,/(ip(a|o)d|iphone|android)/gi.test(e.navigator.userAgent)),d=function(e){return!isNaN(parseFloat(e))&&isFinite(e)};return{restrict:"EAC",require:"ngModel",link:function(e,t,a,n){var s={scope:e,controller:n};angular.forEach(["placement","container","delay","trigger","keyboard","html","animation","template","autoclose","dateType","dateFormat","modelDateFormat","dayFormat","strictFormat","startWeek","useNative","lang","startView","minView"],function(e){angular.isDefined(a[e])&&(s[e]=a[e])}),l&&s.useNative&&(s.dateFormat="yyyy-MM-dd");var u=o(t,n,s);s=u.$options,angular.forEach(["minDate","maxDate"],function(e){angular.isDefined(a[e])&&a.$observe(e,function(t){if("today"===t){var a=new Date;u.$options[e]=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+("maxDate"===e?1:0),0,0,0,"minDate"===e?0:-1)}else u.$options[e]=angular.isString(t)&&t.match(/^".+"$/)?+new Date(t.substr(1,t.length-2)):d(t)?+new Date(parseInt(t,10)):+new Date(t);!isNaN(u.$options[e])&&u.$build(!1)})}),e.$watch(a.ngModel,function(){u.update(n.$dateValue)},!0);var c=r({format:s.dateFormat,lang:s.lang,strict:s.strictFormat});n.$parsers.unshift(function(e){if(!e)return void n.$setValidity("date",!0);var t=c.parse(e,n.$dateValue);if(!t||isNaN(t.getTime()))return void n.$setValidity("date",!1);var a=isNaN(u.$options.minDate)||t.getTime()>=u.$options.minDate,o=isNaN(u.$options.maxDate)||t.getTime()<=u.$options.maxDate,r=a&&o;return n.$setValidity("date",r),n.$setValidity("min",a),n.$setValidity("max",o),r&&(n.$dateValue=t),"string"===s.dateType?i(t,s.modelDateFormat||s.dateFormat):"number"===s.dateType?n.$dateValue.getTime():"iso"===s.dateType?n.$dateValue.toISOString():new Date(n.$dateValue)}),n.$formatters.push(function(e){var t;return t=angular.isUndefined(e)||null===e?0/0:angular.isDate(e)?e:"string"===s.dateType?c.parse(e,null,s.modelDateFormat):new Date(e),n.$dateValue=t,n.$dateValue}),n.$render=function(){t.val(!n.$dateValue||isNaN(n.$dateValue.getTime())?"":i(n.$dateValue,s.dateFormat))},e.$on("$destroy",function(){u.destroy(),s=null,u=null})}}}]).provider("datepickerViews",function(){function e(e,t){for(var a=[];e.length>0;)a.push(e.splice(0,t));return a}function t(e,t){return(e%t+t)%t}this.defaults={dayFormat:"dd",daySplit:7};this.$get=["$locale","$sce","dateFilter",function(a,n,i){return function(o){var r=o.$scope,l=o.$options,d=a.DATETIME_FORMATS.SHORTDAY,s=d.slice(l.startWeek).concat(d.slice(0,l.startWeek)),u=n.trustAsHtml(''+s.join(' ')+" "),c=o.$date||new Date,g={year:c.getFullYear(),month:c.getMonth(),date:c.getDate()},$=(6e4*c.getTimezoneOffset(),[{format:l.dayFormat,split:7,steps:{month:1},update:function(e,t){!this.built||t||e.getFullYear()!==g.year||e.getMonth()!==g.month?(angular.extend(g,{year:o.$date.getFullYear(),month:o.$date.getMonth(),date:o.$date.getDate()}),o.$build()):e.getDate()!==g.date&&(g.date=o.$date.getDate(),o.$updateSelected())},build:function(){var a=new Date(g.year,g.month,1),n=a.getTimezoneOffset(),d=new Date(+a-864e5*t(a.getDay()-l.startWeek,7)),s=d.getTimezoneOffset();s!==n&&(d=new Date(+d+6e4*(s-n)));for(var c,$=[],m=0;42>m;m++)c=new Date(d.getFullYear(),d.getMonth(),d.getDate()+m),$.push({date:c,label:i(c,this.format),selected:o.$date&&this.isSelected(c),muted:c.getMonth()!==g.month,disabled:this.isDisabled(c)});r.title=i(a,"MMMM yyyy"),r.showLabels=!0,r.labels=u,r.rows=e($,this.split),this.built=!0},isSelected:function(e){return o.$date&&e.getFullYear()===o.$date.getFullYear()&&e.getMonth()===o.$date.getMonth()&&e.getDate()===o.$date.getDate()},isDisabled:function(e){return e.getTime()l.maxDate},onKeyDown:function(e){var t,a=o.$date.getTime();37===e.keyCode?t=new Date(a-864e5):38===e.keyCode?t=new Date(a-6048e5):39===e.keyCode?t=new Date(a+864e5):40===e.keyCode&&(t=new Date(a+6048e5)),this.isDisabled(t)||o.select(t,!0)}},{name:"month",format:"MMM",split:4,steps:{year:1},update:function(e){this.built&&e.getFullYear()===g.year?e.getMonth()!==g.month&&(angular.extend(g,{month:o.$date.getMonth(),date:o.$date.getDate()}),o.$updateSelected()):(angular.extend(g,{year:o.$date.getFullYear(),month:o.$date.getMonth(),date:o.$date.getDate()}),o.$build())},build:function(){for(var t,a=(new Date(g.year,0,1),[]),n=0;12>n;n++)t=new Date(g.year,n,1),a.push({date:t,label:i(t,this.format),selected:o.$isSelected(t),disabled:this.isDisabled(t)});r.title=i(t,"yyyy"),r.showLabels=!1,r.rows=e(a,this.split),this.built=!0},isSelected:function(e){return o.$date&&e.getFullYear()===o.$date.getFullYear()&&e.getMonth()===o.$date.getMonth()},isDisabled:function(e){var t=+new Date(e.getFullYear(),e.getMonth()+1,0);return tl.maxDate},onKeyDown:function(e){var t=o.$date.getMonth(),a=new Date(o.$date);37===e.keyCode?a.setMonth(t-1):38===e.keyCode?a.setMonth(t-4):39===e.keyCode?a.setMonth(t+1):40===e.keyCode&&a.setMonth(t+4),this.isDisabled(a)||o.select(a,!0)}},{name:"year",format:"yyyy",split:4,steps:{year:12},update:function(e,t){!this.built||t||parseInt(e.getFullYear()/20,10)!==parseInt(g.year/20,10)?(angular.extend(g,{year:o.$date.getFullYear(),month:o.$date.getMonth(),date:o.$date.getDate()}),o.$build()):e.getFullYear()!==g.year&&(angular.extend(g,{year:o.$date.getFullYear(),month:o.$date.getMonth(),date:o.$date.getDate()}),o.$updateSelected())},build:function(){for(var t,a=g.year-g.year%(3*this.split),n=[],l=0;12>l;l++)t=new Date(a+l,0,1),n.push({date:t,label:i(t,this.format),selected:o.$isSelected(t),disabled:this.isDisabled(t)});r.title=n[0].label+"-"+n[n.length-1].label,r.showLabels=!1,r.rows=e(n,this.split),this.built=!0},isSelected:function(e){return o.$date&&e.getFullYear()===o.$date.getFullYear()},isDisabled:function(e){var t=+new Date(e.getFullYear()+1,0,0);return tl.maxDate},onKeyDown:function(e){var t=o.$date.getFullYear(),a=new Date(o.$date);37===e.keyCode?a.setYear(t-1):38===e.keyCode?a.setYear(t-4):39===e.keyCode?a.setYear(t+1):40===e.keyCode&&a.setYear(t+4),this.isDisabled(a)||o.select(a,!0)}}]);return{views:l.minView?Array.prototype.slice.call($,l.minView):$,viewDate:g}}}]});
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/datepicker.tpl.js b/src/main/webapp/components/angular-strap/dist/modules/datepicker.tpl.js
index 7ef6b6435..88aeb6b1e 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/datepicker.tpl.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/datepicker.tpl.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -9,6 +9,6 @@
angular.module('mgcrea.ngStrap.datepicker').run([
'$templateCache',
function ($templateCache) {
- $templateCache.put('datepicker/datepicker.tpl.html', '');
+ $templateCache.put('datepicker/datepicker.tpl.html', '');
}
]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/datepicker.tpl.min.js b/src/main/webapp/components/angular-strap/dist/modules/datepicker.tpl.min.js
index b5fde0deb..da4812864 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/datepicker.tpl.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/datepicker.tpl.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.datepicker").run(["$templateCache",function(t){t.put("datepicker/datepicker.tpl.html",'')}]);
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.datepicker").run(["$templateCache",function(t){t.put("datepicker/datepicker.tpl.html",'')}]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/debounce.js b/src/main/webapp/components/angular-strap/dist/modules/debounce.js
index f24ec75b4..9c2746c0b 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/debounce.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/debounce.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/debounce.min.js b/src/main/webapp/components/angular-strap/dist/modules/debounce.min.js
index 535652cec..bbedd7a2b 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/debounce.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/debounce.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/dimensions.js b/src/main/webapp/components/angular-strap/dist/modules/dimensions.js
index 802babdc7..6547d1e8e 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/dimensions.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/dimensions.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -48,8 +48,8 @@ angular.module('mgcrea.ngStrap.helpers.dimensions', []).factory('dimensions', [
var boxRect = element.getBoundingClientRect();
var docElement = element.ownerDocument;
return {
- width: element.offsetWidth,
- height: element.offsetHeight,
+ width: boxRect.width || element.offsetWidth,
+ height: boxRect.height || element.offsetHeight,
top: boxRect.top + (window.pageYOffset || docElement.documentElement.scrollTop) - (docElement.documentElement.clientTop || 0),
left: boxRect.left + (window.pageXOffset || docElement.documentElement.scrollLeft) - (docElement.documentElement.clientLeft || 0)
};
@@ -122,7 +122,7 @@ angular.module('mgcrea.ngStrap.helpers.dimensions', []).factory('dimensions', [
return value;
};
/**
- * Provides equivalent of jQuery's height function
+ * Provides equivalent of jQuery's width function
* @required-by bootstrap-affix
* @url http://api.jquery.com/width/
* @param element
diff --git a/src/main/webapp/components/angular-strap/dist/modules/dimensions.min.js b/src/main/webapp/components/angular-strap/dist/modules/dimensions.min.js
index a4ee03126..edd0bd450 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/dimensions.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/dimensions.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.helpers.dimensions",[]).factory("dimensions",["$document","$window",function(){var t=(angular.element,{}),e=t.nodeName=function(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()};t.css=function(t,e,o){var n;return n=t.currentStyle?t.currentStyle[e]:window.getComputedStyle?window.getComputedStyle(t)[e]:t.style[e],o===!0?parseFloat(n)||0:n},t.offset=function(t){var e=t.getBoundingClientRect(),o=t.ownerDocument;return{width:t.offsetWidth,height:t.offsetHeight,top:e.top+(window.pageYOffset||o.documentElement.scrollTop)-(o.documentElement.clientTop||0),left:e.left+(window.pageXOffset||o.documentElement.scrollLeft)-(o.documentElement.clientLeft||0)}},t.position=function(n){var s,r,i={top:0,left:0};return"fixed"===t.css(n,"position")?r=n.getBoundingClientRect():(s=o(n),r=t.offset(n),r=t.offset(n),e(s,"html")||(i=t.offset(s)),i.top+=t.css(s,"borderTopWidth",!0),i.left+=t.css(s,"borderLeftWidth",!0)),{width:n.offsetWidth,height:n.offsetHeight,top:r.top-i.top-t.css(n,"marginTop",!0),left:r.left-i.left-t.css(n,"marginLeft",!0)}};var o=function(o){var n=o.ownerDocument,s=o.offsetParent||n;if(e(s,"#document"))return n.documentElement;for(;s&&!e(s,"html")&&"static"===t.css(s,"position");)s=s.offsetParent;return s||n.documentElement};return t.height=function(e,o){var n=e.offsetHeight;return o?n+=t.css(e,"marginTop",!0)+t.css(e,"marginBottom",!0):n-=t.css(e,"paddingTop",!0)+t.css(e,"paddingBottom",!0)+t.css(e,"borderTopWidth",!0)+t.css(e,"borderBottomWidth",!0),n},t.width=function(e,o){var n=e.offsetWidth;return o?n+=t.css(e,"marginLeft",!0)+t.css(e,"marginRight",!0):n-=t.css(e,"paddingLeft",!0)+t.css(e,"paddingRight",!0)+t.css(e,"borderLeftWidth",!0)+t.css(e,"borderRightWidth",!0),n},t}]);
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.helpers.dimensions",[]).factory("dimensions",["$document","$window",function(){var t=(angular.element,{}),e=t.nodeName=function(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()};t.css=function(t,e,o){var n;return n=t.currentStyle?t.currentStyle[e]:window.getComputedStyle?window.getComputedStyle(t)[e]:t.style[e],o===!0?parseFloat(n)||0:n},t.offset=function(t){var e=t.getBoundingClientRect(),o=t.ownerDocument;return{width:e.width||t.offsetWidth,height:e.height||t.offsetHeight,top:e.top+(window.pageYOffset||o.documentElement.scrollTop)-(o.documentElement.clientTop||0),left:e.left+(window.pageXOffset||o.documentElement.scrollLeft)-(o.documentElement.clientLeft||0)}},t.position=function(n){var s,i,r={top:0,left:0};return"fixed"===t.css(n,"position")?i=n.getBoundingClientRect():(s=o(n),i=t.offset(n),i=t.offset(n),e(s,"html")||(r=t.offset(s)),r.top+=t.css(s,"borderTopWidth",!0),r.left+=t.css(s,"borderLeftWidth",!0)),{width:n.offsetWidth,height:n.offsetHeight,top:i.top-r.top-t.css(n,"marginTop",!0),left:i.left-r.left-t.css(n,"marginLeft",!0)}};var o=function(o){var n=o.ownerDocument,s=o.offsetParent||n;if(e(s,"#document"))return n.documentElement;for(;s&&!e(s,"html")&&"static"===t.css(s,"position");)s=s.offsetParent;return s||n.documentElement};return t.height=function(e,o){var n=e.offsetHeight;return o?n+=t.css(e,"marginTop",!0)+t.css(e,"marginBottom",!0):n-=t.css(e,"paddingTop",!0)+t.css(e,"paddingBottom",!0)+t.css(e,"borderTopWidth",!0)+t.css(e,"borderBottomWidth",!0),n},t.width=function(e,o){var n=e.offsetWidth;return o?n+=t.css(e,"marginLeft",!0)+t.css(e,"marginRight",!0):n-=t.css(e,"paddingLeft",!0)+t.css(e,"paddingRight",!0)+t.css(e,"borderLeftWidth",!0)+t.css(e,"borderRightWidth",!0),n},t}]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/dropdown.js b/src/main/webapp/components/angular-strap/dist/modules/dropdown.js
index e16e1dee1..a280a65b2 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/dropdown.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/dropdown.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/dropdown.min.js b/src/main/webapp/components/angular-strap/dist/modules/dropdown.min.js
index aeb7eab90..0312fc93e 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/dropdown.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/dropdown.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/dropdown.tpl.js b/src/main/webapp/components/angular-strap/dist/modules/dropdown.tpl.js
index 0c7685337..5bcdb365c 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/dropdown.tpl.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/dropdown.tpl.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -9,6 +9,6 @@
angular.module('mgcrea.ngStrap.dropdown').run([
'$templateCache',
function ($templateCache) {
- $templateCache.put('dropdown/dropdown.tpl.html', '');
+ $templateCache.put('dropdown/dropdown.tpl.html', '');
}
]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/dropdown.tpl.min.js b/src/main/webapp/components/angular-strap/dist/modules/dropdown.tpl.min.js
index 40f873350..3adb29da5 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/dropdown.tpl.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/dropdown.tpl.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.dropdown").run(["$templateCache",function(e){e.put("dropdown/dropdown.tpl.html",'')}]);
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.dropdown").run(["$templateCache",function(e){e.put("dropdown/dropdown.tpl.html",'')}]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/modal.js b/src/main/webapp/components/angular-strap/dist/modules/modal.js
index 5b3df000c..754c90204 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/modal.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/modal.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -142,7 +142,7 @@ angular.module('mgcrea.ngStrap.modal', ['mgcrea.ngStrap.helpers.dimensions']).pr
scope.$emit(options.prefixEvent + '.show', $modal);
});
scope.$isShown = true;
- scope.$$phase || scope.$root.$$phase || scope.$digest();
+ scope.$$phase || scope.$root && scope.$root.$$phase || scope.$digest();
// Focus once the enter-animation has started
// Weird PhantomJS bug hack
var el = modalElement[0];
@@ -176,7 +176,7 @@ angular.module('mgcrea.ngStrap.modal', ['mgcrea.ngStrap.helpers.dimensions']).pr
});
}
scope.$isShown = false;
- scope.$$phase || scope.$root.$$phase || scope.$digest();
+ scope.$$phase || scope.$root && scope.$root.$$phase || scope.$digest();
// Unbind events
if (options.backdrop) {
modalElement.off('click', hideOnBackdropClick);
diff --git a/src/main/webapp/components/angular-strap/dist/modules/modal.min.js b/src/main/webapp/components/angular-strap/dist/modules/modal.min.js
index c3ee890d5..4fcd31e88 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/modal.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/modal.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.modal",["mgcrea.ngStrap.helpers.dimensions"]).provider("$modal",function(){var n=this.defaults={animation:"am-fade",backdropAnimation:"am-fade",prefixClass:"modal",prefixEvent:"modal",placement:"top",template:"modal/modal.tpl.html",contentTemplate:!1,container:!1,element:null,backdrop:!0,keyboard:!0,html:!1,show:!0};this.$get=["$window","$rootScope","$compile","$q","$templateCache","$http","$animate","$timeout","$sce","dimensions",function(e,t,o,a,i,r,c,l,s){function u(e){function a(n){n.target===n.currentTarget&&("static"===r.backdrop?i.focus():i.hide())}var i={},r=i.$options=angular.extend({},n,e);i.$promise=m(r.template);var l=i.$scope=r.scope&&r.scope.$new()||t.$new();r.element||r.container||(r.container="body"),p(["title","content"],function(n){r[n]&&(l[n]=s.trustAsHtml(r[n]))}),l.$hide=function(){l.$$postDigest(function(){i.hide()})},l.$show=function(){l.$$postDigest(function(){i.show()})},l.$toggle=function(){l.$$postDigest(function(){i.toggle()})},r.contentTemplate&&(i.$promise=i.$promise.then(function(n){var t=angular.element(n);return m(r.contentTemplate).then(function(n){var o=d('[ng-bind="content"]',t[0]).removeAttr("ng-bind").html(n);return e.template||o.next().remove(),t[0].outerHTML})}));var u,b,v=angular.element('
');return i.$promise.then(function(n){angular.isObject(n)&&(n=n.data),r.html&&(n=n.replace(g,'ng-bind-html="')),n=f.apply(n),u=o(n),i.init()}),i.init=function(){r.show&&l.$$postDigest(function(){i.show()})},i.destroy=function(){b&&(b.remove(),b=null),v&&(v.remove(),v=null),l.$destroy()},i.show=function(){l.$emit(r.prefixEvent+".show.before",i);var n=r.container?d(r.container):null,e=r.container?null:r.element;b=i.$element=u(l,function(){}),b.css({display:"block"}).addClass(r.placement),r.animation&&(r.backdrop&&v.addClass(r.backdropAnimation),b.addClass(r.animation)),r.backdrop&&c.enter(v,h,null,function(){}),c.enter(b,n,e,function(){l.$emit(r.prefixEvent+".show",i)}),l.$isShown=!0,l.$$phase||l.$root.$$phase||l.$digest();var t=b[0];$(function(){t.focus()}),h.addClass(r.prefixClass+"-open"),r.animation&&h.addClass(r.prefixClass+"-with-"+r.animation),r.backdrop&&(b.on("click",a),v.on("click",a)),r.keyboard&&b.on("keyup",i.$onKeyUp)},i.hide=function(){l.$emit(r.prefixEvent+".hide.before",i),c.leave(b,function(){l.$emit(r.prefixEvent+".hide",i),h.removeClass(r.prefixClass+"-open"),r.animation&&h.addClass(r.prefixClass+"-with-"+r.animation)}),r.backdrop&&c.leave(v,function(){}),l.$isShown=!1,l.$$phase||l.$root.$$phase||l.$digest(),r.backdrop&&(b.off("click",a),v.off("click",a)),r.keyboard&&b.off("keyup",i.$onKeyUp)},i.toggle=function(){l.$isShown?i.hide():i.show()},i.focus=function(){b[0].focus()},i.$onKeyUp=function(n){27===n.which&&i.hide()},i}function d(n,e){return angular.element((e||document).querySelectorAll(n))}function m(n){return a.when(i.get(n)||r.get(n)).then(function(e){return angular.isObject(e)?(i.put(n,e.data),e.data):e})}var p=angular.forEach,f=String.prototype.trim,$=e.requestAnimationFrame||e.setTimeout,h=angular.element(e.document.body),g=/ng-bind="/gi;return u}]}).directive("bsModal",["$window","$location","$sce","$modal",function(n,e,t,o){return{restrict:"EAC",scope:!0,link:function(n,e,a){var i={scope:n,element:e,show:!1};angular.forEach(["template","contentTemplate","placement","backdrop","keyboard","html","container","animation"],function(n){angular.isDefined(a[n])&&(i[n]=a[n])}),angular.forEach(["title","content"],function(e){a[e]&&a.$observe(e,function(o){n[e]=t.trustAsHtml(o)})}),a.bsModal&&n.$watch(a.bsModal,function(e){angular.isObject(e)?angular.extend(n,e):n.content=e},!0);var r=o(i);e.on(a.trigger||"click",r.toggle),n.$on("$destroy",function(){r.destroy(),i=null,r=null})}}}]);
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.modal",["mgcrea.ngStrap.helpers.dimensions"]).provider("$modal",function(){var n=this.defaults={animation:"am-fade",backdropAnimation:"am-fade",prefixClass:"modal",prefixEvent:"modal",placement:"top",template:"modal/modal.tpl.html",contentTemplate:!1,container:!1,element:null,backdrop:!0,keyboard:!0,html:!1,show:!0};this.$get=["$window","$rootScope","$compile","$q","$templateCache","$http","$animate","$timeout","$sce","dimensions",function(e,t,o,a,i,r,c,l,s){function u(e){function a(n){n.target===n.currentTarget&&("static"===r.backdrop?i.focus():i.hide())}var i={},r=i.$options=angular.extend({},n,e);i.$promise=m(r.template);var l=i.$scope=r.scope&&r.scope.$new()||t.$new();r.element||r.container||(r.container="body"),p(["title","content"],function(n){r[n]&&(l[n]=s.trustAsHtml(r[n]))}),l.$hide=function(){l.$$postDigest(function(){i.hide()})},l.$show=function(){l.$$postDigest(function(){i.show()})},l.$toggle=function(){l.$$postDigest(function(){i.toggle()})},r.contentTemplate&&(i.$promise=i.$promise.then(function(n){var t=angular.element(n);return m(r.contentTemplate).then(function(n){var o=d('[ng-bind="content"]',t[0]).removeAttr("ng-bind").html(n);return e.template||o.next().remove(),t[0].outerHTML})}));var u,b,v=angular.element('
');return i.$promise.then(function(n){angular.isObject(n)&&(n=n.data),r.html&&(n=n.replace(g,'ng-bind-html="')),n=f.apply(n),u=o(n),i.init()}),i.init=function(){r.show&&l.$$postDigest(function(){i.show()})},i.destroy=function(){b&&(b.remove(),b=null),v&&(v.remove(),v=null),l.$destroy()},i.show=function(){l.$emit(r.prefixEvent+".show.before",i);var n=r.container?d(r.container):null,e=r.container?null:r.element;b=i.$element=u(l,function(){}),b.css({display:"block"}).addClass(r.placement),r.animation&&(r.backdrop&&v.addClass(r.backdropAnimation),b.addClass(r.animation)),r.backdrop&&c.enter(v,h,null,function(){}),c.enter(b,n,e,function(){l.$emit(r.prefixEvent+".show",i)}),l.$isShown=!0,l.$$phase||l.$root&&l.$root.$$phase||l.$digest();var t=b[0];$(function(){t.focus()}),h.addClass(r.prefixClass+"-open"),r.animation&&h.addClass(r.prefixClass+"-with-"+r.animation),r.backdrop&&(b.on("click",a),v.on("click",a)),r.keyboard&&b.on("keyup",i.$onKeyUp)},i.hide=function(){l.$emit(r.prefixEvent+".hide.before",i),c.leave(b,function(){l.$emit(r.prefixEvent+".hide",i),h.removeClass(r.prefixClass+"-open"),r.animation&&h.addClass(r.prefixClass+"-with-"+r.animation)}),r.backdrop&&c.leave(v,function(){}),l.$isShown=!1,l.$$phase||l.$root&&l.$root.$$phase||l.$digest(),r.backdrop&&(b.off("click",a),v.off("click",a)),r.keyboard&&b.off("keyup",i.$onKeyUp)},i.toggle=function(){l.$isShown?i.hide():i.show()},i.focus=function(){b[0].focus()},i.$onKeyUp=function(n){27===n.which&&i.hide()},i}function d(n,e){return angular.element((e||document).querySelectorAll(n))}function m(n){return a.when(i.get(n)||r.get(n)).then(function(e){return angular.isObject(e)?(i.put(n,e.data),e.data):e})}var p=angular.forEach,f=String.prototype.trim,$=e.requestAnimationFrame||e.setTimeout,h=angular.element(e.document.body),g=/ng-bind="/gi;return u}]}).directive("bsModal",["$window","$location","$sce","$modal",function(n,e,t,o){return{restrict:"EAC",scope:!0,link:function(n,e,a){var i={scope:n,element:e,show:!1};angular.forEach(["template","contentTemplate","placement","backdrop","keyboard","html","container","animation"],function(n){angular.isDefined(a[n])&&(i[n]=a[n])}),angular.forEach(["title","content"],function(e){a[e]&&a.$observe(e,function(o){n[e]=t.trustAsHtml(o)})}),a.bsModal&&n.$watch(a.bsModal,function(e){angular.isObject(e)?angular.extend(n,e):n.content=e},!0);var r=o(i);e.on(a.trigger||"click",r.toggle),n.$on("$destroy",function(){r.destroy(),i=null,r=null})}}}]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/modal.tpl.js b/src/main/webapp/components/angular-strap/dist/modules/modal.tpl.js
index e009a8779..6a3eb9795 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/modal.tpl.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/modal.tpl.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/modal.tpl.min.js b/src/main/webapp/components/angular-strap/dist/modules/modal.tpl.min.js
index 5025eac2d..354824a73 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/modal.tpl.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/modal.tpl.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/navbar.js b/src/main/webapp/components/angular-strap/dist/modules/navbar.js
index 7a41d24c4..695b264ca 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/navbar.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/navbar.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/navbar.min.js b/src/main/webapp/components/angular-strap/dist/modules/navbar.min.js
index 6a44b019f..1448920ad 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/navbar.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/navbar.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/parse-options.js b/src/main/webapp/components/angular-strap/dist/modules/parse-options.js
index c200811e0..fa6c8af37 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/parse-options.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/parse-options.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/parse-options.min.js b/src/main/webapp/components/angular-strap/dist/modules/parse-options.min.js
index d8e95f5d1..1cf8e73ca 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/parse-options.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/parse-options.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/popover.js b/src/main/webapp/components/angular-strap/dist/modules/popover.js
index a34278721..04af85cab 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/popover.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/popover.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -9,6 +9,8 @@
angular.module('mgcrea.ngStrap.popover', ['mgcrea.ngStrap.tooltip']).provider('$popover', function () {
var defaults = this.defaults = {
animation: 'am-fade',
+ container: false,
+ target: false,
placement: 'right',
template: 'popover/popover.tpl.html',
contentTemplate: false,
@@ -17,8 +19,7 @@ angular.module('mgcrea.ngStrap.popover', ['mgcrea.ngStrap.tooltip']).provider('$
html: false,
title: '',
content: '',
- delay: 0,
- container: false
+ delay: 0
};
this.$get = [
'$tooltip',
@@ -54,6 +55,7 @@ angular.module('mgcrea.ngStrap.popover', ['mgcrea.ngStrap.tooltip']).provider('$
'contentTemplate',
'placement',
'container',
+ 'target',
'delay',
'trigger',
'keyboard',
diff --git a/src/main/webapp/components/angular-strap/dist/modules/popover.min.js b/src/main/webapp/components/angular-strap/dist/modules/popover.min.js
index 824011d5d..c96c95ec0 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/popover.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/popover.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.popover",["mgcrea.ngStrap.tooltip"]).provider("$popover",function(){var t=this.defaults={animation:"am-fade",placement:"right",template:"popover/popover.tpl.html",contentTemplate:!1,trigger:"click",keyboard:!0,html:!1,title:"",content:"",delay:0,container:!1};this.$get=["$tooltip",function(e){function n(n,o){var a=angular.extend({},t,o),r=e(n,a);return a.content&&(r.$scope.content=a.content),r}return n}]}).directive("bsPopover",["$window","$location","$sce","$popover",function(t,e,n,o){var a=t.requestAnimationFrame||t.setTimeout;return{restrict:"EAC",scope:!0,link:function(t,e,r){var i={scope:t};angular.forEach(["template","contentTemplate","placement","container","delay","trigger","keyboard","html","animation"],function(t){angular.isDefined(r[t])&&(i[t]=r[t])}),angular.forEach(["title","content"],function(e){r[e]&&r.$observe(e,function(o,r){t[e]=n.trustAsHtml(o),angular.isDefined(r)&&a(function(){c&&c.$applyPlacement()})})}),r.bsPopover&&t.$watch(r.bsPopover,function(e,n){angular.isObject(e)?angular.extend(t,e):t.content=e,angular.isDefined(n)&&a(function(){c&&c.$applyPlacement()})},!0);var c=o(e,i);t.$on("$destroy",function(){c.destroy(),i=null,c=null})}}}]);
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.popover",["mgcrea.ngStrap.tooltip"]).provider("$popover",function(){var t=this.defaults={animation:"am-fade",container:!1,target:!1,placement:"right",template:"popover/popover.tpl.html",contentTemplate:!1,trigger:"click",keyboard:!0,html:!1,title:"",content:"",delay:0};this.$get=["$tooltip",function(e){function n(n,o){var a=angular.extend({},t,o),r=e(n,a);return a.content&&(r.$scope.content=a.content),r}return n}]}).directive("bsPopover",["$window","$location","$sce","$popover",function(t,e,n,o){var a=t.requestAnimationFrame||t.setTimeout;return{restrict:"EAC",scope:!0,link:function(t,e,r){var i={scope:t};angular.forEach(["template","contentTemplate","placement","container","target","delay","trigger","keyboard","html","animation"],function(t){angular.isDefined(r[t])&&(i[t]=r[t])}),angular.forEach(["title","content"],function(e){r[e]&&r.$observe(e,function(o,r){t[e]=n.trustAsHtml(o),angular.isDefined(r)&&a(function(){c&&c.$applyPlacement()})})}),r.bsPopover&&t.$watch(r.bsPopover,function(e,n){angular.isObject(e)?angular.extend(t,e):t.content=e,angular.isDefined(n)&&a(function(){c&&c.$applyPlacement()})},!0);var c=o(e,i);t.$on("$destroy",function(){c.destroy(),i=null,c=null})}}}]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/popover.tpl.js b/src/main/webapp/components/angular-strap/dist/modules/popover.tpl.js
index ab6547290..82718cb2e 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/popover.tpl.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/popover.tpl.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/popover.tpl.min.js b/src/main/webapp/components/angular-strap/dist/modules/popover.tpl.min.js
index 22ab402d6..655e3cb42 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/popover.tpl.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/popover.tpl.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/scrollspy.js b/src/main/webapp/components/angular-strap/dist/modules/scrollspy.js
index b49428924..4f3aaf806 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/scrollspy.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/scrollspy.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/scrollspy.min.js b/src/main/webapp/components/angular-strap/dist/modules/scrollspy.min.js
index 6ac7a67d2..433cdf8a1 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/scrollspy.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/scrollspy.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/select.js b/src/main/webapp/components/angular-strap/dist/modules/select.js
index 7669ddfbb..6d8c54559 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/select.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/select.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -25,7 +25,8 @@ angular.module('mgcrea.ngStrap.select', [
caretHtml: ' ',
placeholder: 'Choose among the following...',
maxLength: 3,
- maxLengthHtml: 'selected'
+ maxLengthHtml: 'selected',
+ iconCheckmark: 'glyphicon glyphicon-ok'
};
this.$get = [
'$window',
@@ -40,11 +41,11 @@ angular.module('mgcrea.ngStrap.select', [
// Common vars
var options = angular.extend({}, defaults, config);
$select = $tooltip(element, options);
- var parentScope = config.scope;
var scope = $select.$scope;
scope.$matches = [];
scope.$activeIndex = 0;
scope.$isMultiple = options.multiple;
+ scope.$iconCheckmark = options.iconCheckmark;
scope.$activate = function (index) {
scope.$$postDigest(function () {
$select.activate(index);
@@ -79,21 +80,18 @@ angular.module('mgcrea.ngStrap.select', [
};
$select.select = function (index) {
var value = scope.$matches[index].value;
- $select.activate(index);
- if (options.multiple) {
- controller.$setViewValue(scope.$activeIndex.map(function (index) {
- return scope.$matches[index].value;
- }));
- } else {
- controller.$setViewValue(value);
- }
- controller.$render();
- if (parentScope)
- parentScope.$digest();
- // Hide if single select
- if (!options.multiple) {
- $select.hide();
- }
+ scope.$apply(function () {
+ $select.activate(index);
+ if (options.multiple) {
+ controller.$setViewValue(scope.$activeIndex.map(function (index) {
+ return scope.$matches[index].value;
+ }));
+ } else {
+ controller.$setViewValue(value);
+ // Hide if single select
+ $select.hide();
+ }
+ });
// Emit event
scope.$emit('$select.select', value, index);
};
@@ -248,6 +246,7 @@ angular.module('mgcrea.ngStrap.select', [
scope.$watch(attr.ngModel, function (newValue, oldValue) {
// console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue);
select.$updateActiveIndex();
+ controller.$render();
}, true);
// Model rendering in view
controller.$render = function () {
diff --git a/src/main/webapp/components/angular-strap/dist/modules/select.min.js b/src/main/webapp/components/angular-strap/dist/modules/select.min.js
index 06c6f9bab..58034868c 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/select.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/select.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.select",["mgcrea.ngStrap.tooltip","mgcrea.ngStrap.helpers.parseOptions"]).provider("$select",function(){var e=this.defaults={animation:"am-fade",prefixClass:"select",placement:"bottom-left",template:"select/select.tpl.html",trigger:"focus",container:!1,keyboard:!0,html:!1,delay:0,multiple:!1,sort:!0,caretHtml:' ',placeholder:"Choose among the following...",maxLength:3,maxLengthHtml:"selected"};this.$get=["$window","$document","$rootScope","$tooltip",function(t,n,a,i){function l(t,n,a){var l={},c=angular.extend({},e,a);l=i(t,c);var r=a.scope,u=l.$scope;u.$matches=[],u.$activeIndex=0,u.$isMultiple=c.multiple,u.$activate=function(e){u.$$postDigest(function(){l.activate(e)})},u.$select=function(e){u.$$postDigest(function(){l.select(e)})},u.$isVisible=function(){return l.$isVisible()},u.$isActive=function(e){return l.$isActive(e)},l.update=function(e){u.$matches=e,l.$updateActiveIndex()},l.activate=function(e){return c.multiple?(u.$activeIndex.sort(),l.$isActive(e)?u.$activeIndex.splice(u.$activeIndex.indexOf(e),1):u.$activeIndex.push(e),c.sort&&u.$activeIndex.sort()):u.$activeIndex=e,u.$activeIndex},l.select=function(e){var t=u.$matches[e].value;l.activate(e),n.$setViewValue(c.multiple?u.$activeIndex.map(function(e){return u.$matches[e].value}):t),n.$render(),r&&r.$digest(),c.multiple||l.hide(),u.$emit("$select.select",t,e)},l.$updateActiveIndex=function(){n.$modelValue&&u.$matches.length?u.$activeIndex=c.multiple&&angular.isArray(n.$modelValue)?n.$modelValue.map(function(e){return l.$getIndex(e)}):l.$getIndex(n.$modelValue):u.$activeIndex>=u.$matches.length&&(u.$activeIndex=c.multiple?[]:0)},l.$isVisible=function(){return c.minLength&&n?u.$matches.length&&n.$viewValue.length>=c.minLength:u.$matches.length},l.$isActive=function(e){return c.multiple?-1!==u.$activeIndex.indexOf(e):u.$activeIndex===e},l.$getIndex=function(e){var t=u.$matches.length,n=t;if(t){for(n=t;n--&&u.$matches[n].value!==e;);if(!(0>n))return n}},l.$onMouseDown=function(e){if(e.preventDefault(),e.stopPropagation(),o){var t=angular.element(e.target);t.triggerHandler("click")}},l.$onKeyDown=function(e){if(/(9|13|38|40)/.test(e.keyCode)){if(e.preventDefault(),e.stopPropagation(),!c.multiple&&(13===e.keyCode||9===e.keyCode))return l.select(u.$activeIndex);38===e.keyCode&&u.$activeIndex>0?u.$activeIndex--:40===e.keyCode&&u.$activeIndex'),r.after(t)}var u=i(n.ngOptions),s=a(t,o,c),d=u.$match[7].replace(/\|.+/,"").trim();e.$watch(d,function(){u.valuesFn(e,o).then(function(e){s.update(e),o.$render()})},!0),e.$watch(n.ngModel,function(){s.$updateActiveIndex()},!0),o.$render=function(){var e,a;c.multiple&&angular.isArray(o.$modelValue)?(e=o.$modelValue.map(function(e){return a=s.$getIndex(e),angular.isDefined(a)?s.$scope.$matches[a].label:!1}).filter(angular.isDefined),e=e.length>(c.maxLength||l.maxLength)?e.length+" "+(c.maxLengthHtml||l.maxLengthHtml):e.join(", ")):(a=s.$getIndex(o.$modelValue),e=angular.isDefined(a)?s.$scope.$matches[a].label:!1),t.html((e?e:n.placeholder||l.placeholder)+l.caretHtml)},e.$on("$destroy",function(){s.destroy(),c=null,s=null})}}}]);
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.select",["mgcrea.ngStrap.tooltip","mgcrea.ngStrap.helpers.parseOptions"]).provider("$select",function(){var e=this.defaults={animation:"am-fade",prefixClass:"select",placement:"bottom-left",template:"select/select.tpl.html",trigger:"focus",container:!1,keyboard:!0,html:!1,delay:0,multiple:!1,sort:!0,caretHtml:' ',placeholder:"Choose among the following...",maxLength:3,maxLengthHtml:"selected",iconCheckmark:"glyphicon glyphicon-ok"};this.$get=["$window","$document","$rootScope","$tooltip",function(t,n,a,i){function l(t,n,a){var l={},c=angular.extend({},e,a);l=i(t,c);var r=l.$scope;r.$matches=[],r.$activeIndex=0,r.$isMultiple=c.multiple,r.$iconCheckmark=c.iconCheckmark,r.$activate=function(e){r.$$postDigest(function(){l.activate(e)})},r.$select=function(e){r.$$postDigest(function(){l.select(e)})},r.$isVisible=function(){return l.$isVisible()},r.$isActive=function(e){return l.$isActive(e)},l.update=function(e){r.$matches=e,l.$updateActiveIndex()},l.activate=function(e){return c.multiple?(r.$activeIndex.sort(),l.$isActive(e)?r.$activeIndex.splice(r.$activeIndex.indexOf(e),1):r.$activeIndex.push(e),c.sort&&r.$activeIndex.sort()):r.$activeIndex=e,r.$activeIndex},l.select=function(e){var t=r.$matches[e].value;r.$apply(function(){l.activate(e),c.multiple?n.$setViewValue(r.$activeIndex.map(function(e){return r.$matches[e].value})):(n.$setViewValue(t),l.hide())}),r.$emit("$select.select",t,e)},l.$updateActiveIndex=function(){n.$modelValue&&r.$matches.length?r.$activeIndex=c.multiple&&angular.isArray(n.$modelValue)?n.$modelValue.map(function(e){return l.$getIndex(e)}):l.$getIndex(n.$modelValue):r.$activeIndex>=r.$matches.length&&(r.$activeIndex=c.multiple?[]:0)},l.$isVisible=function(){return c.minLength&&n?r.$matches.length&&n.$viewValue.length>=c.minLength:r.$matches.length},l.$isActive=function(e){return c.multiple?-1!==r.$activeIndex.indexOf(e):r.$activeIndex===e},l.$getIndex=function(e){var t=r.$matches.length,n=t;if(t){for(n=t;n--&&r.$matches[n].value!==e;);if(!(0>n))return n}},l.$onMouseDown=function(e){if(e.preventDefault(),e.stopPropagation(),o){var t=angular.element(e.target);t.triggerHandler("click")}},l.$onKeyDown=function(e){if(/(9|13|38|40)/.test(e.keyCode)){if(e.preventDefault(),e.stopPropagation(),!c.multiple&&(13===e.keyCode||9===e.keyCode))return l.select(r.$activeIndex);38===e.keyCode&&r.$activeIndex>0?r.$activeIndex--:40===e.keyCode&&r.$activeIndex'),r.after(t)}var u=i(n.ngOptions),s=a(t,o,c),$=u.$match[7].replace(/\|.+/,"").trim();e.$watch($,function(){u.valuesFn(e,o).then(function(e){s.update(e),o.$render()})},!0),e.$watch(n.ngModel,function(){s.$updateActiveIndex(),o.$render()},!0),o.$render=function(){var e,a;c.multiple&&angular.isArray(o.$modelValue)?(e=o.$modelValue.map(function(e){return a=s.$getIndex(e),angular.isDefined(a)?s.$scope.$matches[a].label:!1}).filter(angular.isDefined),e=e.length>(c.maxLength||l.maxLength)?e.length+" "+(c.maxLengthHtml||l.maxLengthHtml):e.join(", ")):(a=s.$getIndex(o.$modelValue),e=angular.isDefined(a)?s.$scope.$matches[a].label:!1),t.html((e?e:n.placeholder||l.placeholder)+l.caretHtml)},e.$on("$destroy",function(){s.destroy(),c=null,s=null})}}}]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/select.tpl.js b/src/main/webapp/components/angular-strap/dist/modules/select.tpl.js
index 27a3a5dc5..0b076317c 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/select.tpl.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/select.tpl.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -9,6 +9,6 @@
angular.module('mgcrea.ngStrap.select').run([
'$templateCache',
function ($templateCache) {
- $templateCache.put('select/select.tpl.html', '');
+ $templateCache.put('select/select.tpl.html', '');
}
]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/select.tpl.min.js b/src/main/webapp/components/angular-strap/dist/modules/select.tpl.min.js
index 5788ed61b..4088ee9bd 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/select.tpl.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/select.tpl.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.select").run(["$templateCache",function(e){e.put("select/select.tpl.html",'')}]);
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.select").run(["$templateCache",function(e){e.put("select/select.tpl.html",'')}]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/tab.js b/src/main/webapp/components/angular-strap/dist/modules/tab.js
index e67e18226..7c643352c 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/tab.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/tab.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/tab.min.js b/src/main/webapp/components/angular-strap/dist/modules/tab.min.js
index e2e3daceb..892f278c7 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/tab.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/tab.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/tab.tpl.js b/src/main/webapp/components/angular-strap/dist/modules/tab.tpl.js
index efa84d799..99e7c8545 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/tab.tpl.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/tab.tpl.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/tab.tpl.min.js b/src/main/webapp/components/angular-strap/dist/modules/tab.tpl.min.js
index 3315fd31b..2ba791349 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/tab.tpl.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/tab.tpl.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/timepicker.js b/src/main/webapp/components/angular-strap/dist/modules/timepicker.js
index e71280d65..5f57f50c8 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/timepicker.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/timepicker.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -23,12 +23,15 @@ angular.module('mgcrea.ngStrap.timepicker', [
useNative: true,
timeType: 'date',
timeFormat: 'shortTime',
+ modelTimeFormat: null,
autoclose: false,
minTime: -Infinity,
maxTime: +Infinity,
length: 5,
hourStep: 1,
- minuteStep: 5
+ minuteStep: 5,
+ iconUp: 'glyphicon glyphicon-chevron-up',
+ iconDown: 'glyphicon glyphicon-chevron-down'
};
this.$get = [
'$window',
@@ -60,7 +63,9 @@ angular.module('mgcrea.ngStrap.timepicker', [
millisecond: startDate.getMilliseconds()
};
var format = $locale.DATETIME_FORMATS[options.timeFormat] || options.timeFormat;
- var formats = /(h+)[:]?(m+)[ ]?(a?)/i.exec(format).slice(1);
+ var formats = /(h+)([:\.])?(m+)[ ]?(a?)/i.exec(format).slice(1);
+ scope.$iconUp = options.iconUp;
+ scope.$iconDown = options.iconDown;
// Scope methods
scope.$select = function (date, index) {
$timepicker.select(date, index);
@@ -128,7 +133,7 @@ angular.module('mgcrea.ngStrap.timepicker', [
minute = new Date(1970, 0, 1, 0, viewDate.minute - (midIndex - i) * options.minuteStep);
minutes.push({
date: minute,
- label: dateFilter(minute, formats[1]),
+ label: dateFilter(minute, formats[2]),
selected: $timepicker.$date && $timepicker.$isSelected(minute, 1),
disabled: $timepicker.$isDisabled(minute, 1)
});
@@ -141,8 +146,9 @@ angular.module('mgcrea.ngStrap.timepicker', [
]);
}
scope.rows = rows;
- scope.showAM = !!formats[2];
+ scope.showAM = !!formats[3];
scope.isAM = ($timepicker.$date || hours[midIndex].date).getHours() < 12;
+ scope.timeSeparator = formats[1];
$timepicker.$isBuilt = true;
};
$timepicker.$isSelected = function (date, index) {
@@ -201,7 +207,7 @@ angular.module('mgcrea.ngStrap.timepicker', [
var hours = newDate.getHours(), hoursLength = dateFilter(newDate, 'h').length;
var minutes = newDate.getMinutes(), minutesLength = dateFilter(newDate, 'mm').length;
var lateralMove = /(37|39)/.test(evt.keyCode);
- var count = 2 + !!formats[2] * 1;
+ var count = 2 + !!formats[3] * 1;
// Navigate indexes (left, right)
if (lateralMove) {
if (evt.keyCode === 37)
@@ -341,6 +347,7 @@ angular.module('mgcrea.ngStrap.timepicker', [
'autoclose',
'timeType',
'timeFormat',
+ 'modelTimeFormat',
'useNative',
'hourStep',
'minuteStep',
@@ -400,7 +407,7 @@ angular.module('mgcrea.ngStrap.timepicker', [
controller.$dateValue = parsedTime;
}
if (options.timeType === 'string') {
- return dateFilter(viewValue, options.timeFormat);
+ return dateFilter(parsedTime, options.modelTimeFormat || options.timeFormat);
} else if (options.timeType === 'number') {
return controller.$dateValue.getTime();
} else if (options.timeType === 'iso') {
@@ -418,7 +425,7 @@ angular.module('mgcrea.ngStrap.timepicker', [
} else if (angular.isDate(modelValue)) {
date = modelValue;
} else if (options.timeType === 'string') {
- date = dateParser.parse(modelValue);
+ date = dateParser.parse(modelValue, null, options.modelTimeFormat);
} else {
date = new Date(modelValue);
}
diff --git a/src/main/webapp/components/angular-strap/dist/modules/timepicker.min.js b/src/main/webapp/components/angular-strap/dist/modules/timepicker.min.js
index bb5ed079a..a29fa315c 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/timepicker.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/timepicker.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.timepicker",["mgcrea.ngStrap.helpers.dateParser","mgcrea.ngStrap.tooltip"]).provider("$timepicker",function(){var e=this.defaults={animation:"am-fade",prefixClass:"timepicker",placement:"bottom-left",template:"timepicker/timepicker.tpl.html",trigger:"focus",container:!1,keyboard:!0,html:!1,delay:0,useNative:!0,timeType:"date",timeFormat:"shortTime",autoclose:!1,minTime:-1/0,maxTime:+1/0,length:5,hourStep:1,minuteStep:5};this.$get=["$window","$document","$rootScope","$sce","$locale","dateFilter","$tooltip",function(t,a,n,i,o,r,u){function s(t,a,n){function i(e,a){if(t[0].createTextRange){var n=t[0].createTextRange();n.collapse(!0),n.moveStart("character",e),n.moveEnd("character",a),n.select()}else t[0].setSelectionRange?t[0].setSelectionRange(e,a):angular.isUndefined(t[0].selectionStart)&&(t[0].selectionStart=e,t[0].selectionEnd=a)}function s(){t[0].focus()}var m=u(t,angular.extend({},e,n)),c=n.scope,g=m.$options,$=m.$scope,p=0,f=a.$dateValue||new Date,h={hour:f.getHours(),meridian:f.getHours()<12,minute:f.getMinutes(),second:f.getSeconds(),millisecond:f.getMilliseconds()},v=o.DATETIME_FORMATS[g.timeFormat]||g.timeFormat,w=/(h+)[:]?(m+)[ ]?(a?)/i.exec(v).slice(1);$.$select=function(e,t){m.select(e,t)},$.$moveIndex=function(e,t){m.$moveIndex(e,t)},$.$switchMeridian=function(e){m.switchMeridian(e)},m.update=function(e){angular.isDate(e)&&!isNaN(e.getTime())?(m.$date=e,angular.extend(h,{hour:e.getHours(),minute:e.getMinutes(),second:e.getSeconds(),millisecond:e.getMilliseconds()}),m.$build()):m.$isBuilt||m.$build()},m.select=function(e,t,n){(!a.$dateValue||isNaN(a.$dateValue.getTime()))&&(a.$dateValue=new Date(1970,0,1)),angular.isDate(e)||(e=new Date(e)),0===t?a.$dateValue.setHours(e.getHours()):1===t&&a.$dateValue.setMinutes(e.getMinutes()),a.$setViewValue(a.$dateValue),a.$render(),g.autoclose&&!n&&m.hide(!0)},m.switchMeridian=function(e){var t=(e||a.$dateValue).getHours();a.$dateValue.setHours(12>t?t+12:t-12),a.$setViewValue(a.$dateValue),a.$render()},m.$build=function(){var e,t,a=$.midIndex=parseInt(g.length/2,10),n=[];for(e=0;e1*g.maxTime},m.$moveIndex=function(e,t){var a;0===t?(a=new Date(1970,0,1,h.hour+e*g.length,h.minute),angular.extend(h,{hour:a.getHours()})):1===t&&(a=new Date(1970,0,1,h.hour,h.minute+e*g.length*g.minuteStep),angular.extend(h,{minute:a.getMinutes()})),m.$build()},m.$onMouseDown=function(e){if("input"!==e.target.nodeName.toLowerCase()&&e.preventDefault(),e.stopPropagation(),l){var t=angular.element(e.target);"button"!==t[0].nodeName.toLowerCase()&&(t=t.parent()),t.triggerHandler("click")}},m.$onKeyDown=function(e){if(/(38|37|39|40|13)/.test(e.keyCode)&&!e.shiftKey&&!e.altKey){if(e.preventDefault(),e.stopPropagation(),13===e.keyCode)return m.hide(!0);var t=new Date(m.$date),a=t.getHours(),n=r(t,"h").length,o=t.getMinutes(),u=r(t,"mm").length,s=/(37|39)/.test(e.keyCode),l=2+1*!!w[2];s&&(37===e.keyCode?p=1>p?l-1:p-1:39===e.keyCode&&(p=l-1>p?p+1:0));var d=[0,n];0===p?(38===e.keyCode?t.setHours(a-parseInt(g.hourStep,10)):40===e.keyCode&&t.setHours(a+parseInt(g.hourStep,10)),d=[0,n]):1===p?(38===e.keyCode?t.setMinutes(o-parseInt(g.minuteStep,10)):40===e.keyCode&&t.setMinutes(o+parseInt(g.minuteStep,10)),d=[n+1,n+1+u]):2===p&&(s||m.switchMeridian(),d=[n+1+u+1,n+1+u+3]),m.select(t,p,!0),i(d[0],d[1]),c.$digest()}};var y=m.init;m.init=function(){return d&&g.useNative?(t.prop("type","time"),void t.css("-webkit-appearance","textfield")):(l&&(t.prop("type","text"),t.attr("readonly","true"),t.on("click",s)),void y())};var T=m.destroy;m.destroy=function(){d&&g.useNative&&t.off("click",s),T()};var D=m.show;m.show=function(){D(),setTimeout(function(){m.$element.on(l?"touchstart":"mousedown",m.$onMouseDown),g.keyboard&&t.on("keydown",m.$onKeyDown)})};var S=m.hide;return m.hide=function(e){m.$element.off(l?"touchstart":"mousedown",m.$onMouseDown),g.keyboard&&t.off("keydown",m.$onKeyDown),S(e)},m}var l=(angular.element(t.document.body),"createTouch"in t.document),d=/(ip(a|o)d|iphone|android)/gi.test(t.navigator.userAgent);return e.lang||(e.lang=o.id),s.defaults=e,s}]}).directive("bsTimepicker",["$window","$parse","$q","$locale","dateFilter","$timepicker","$dateParser","$timeout",function(e,t,a,n,i,o,r){{var u=o.defaults,s=/(ip(a|o)d|iphone|android)/gi.test(e.navigator.userAgent);e.requestAnimationFrame||e.setTimeout}return{restrict:"EAC",require:"ngModel",link:function(e,t,a,n){var l={scope:e,controller:n};angular.forEach(["placement","container","delay","trigger","keyboard","html","animation","template","autoclose","timeType","timeFormat","useNative","hourStep","minuteStep","length"],function(e){angular.isDefined(a[e])&&(l[e]=a[e])}),s&&(l.useNative||u.useNative)&&(l.timeFormat="HH:mm");var d=o(t,n,l);l=d.$options;var m=r({format:l.timeFormat,lang:l.lang});angular.forEach(["minTime","maxTime"],function(e){angular.isDefined(a[e])&&a.$observe(e,function(t){d.$options[e]="now"===t?(new Date).setFullYear(1970,0,1):angular.isString(t)&&t.match(/^".+"$/)?+new Date(t.substr(1,t.length-2)):m.parse(t,new Date(1970,0,1,0)),!isNaN(d.$options[e])&&d.$build()})}),e.$watch(a.ngModel,function(){d.update(n.$dateValue)},!0),n.$parsers.unshift(function(e){if(!e)return void n.$setValidity("date",!0);var t=m.parse(e,n.$dateValue);if(!t||isNaN(t.getTime()))n.$setValidity("date",!1);else{var a=t.getTime()>=l.minTime&&t.getTime()<=l.maxTime;n.$setValidity("date",a),a&&(n.$dateValue=t)}return"string"===l.timeType?i(e,l.timeFormat):"number"===l.timeType?n.$dateValue.getTime():"iso"===l.timeType?n.$dateValue.toISOString():new Date(n.$dateValue)}),n.$formatters.push(function(e){var t;return t=angular.isUndefined(e)||null===e?0/0:angular.isDate(e)?e:"string"===l.timeType?m.parse(e):new Date(e),n.$dateValue=t,n.$dateValue}),n.$render=function(){t.val(!n.$dateValue||isNaN(n.$dateValue.getTime())?"":i(n.$dateValue,l.timeFormat))},e.$on("$destroy",function(){d.destroy(),l=null,d=null})}}}]);
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.timepicker",["mgcrea.ngStrap.helpers.dateParser","mgcrea.ngStrap.tooltip"]).provider("$timepicker",function(){var e=this.defaults={animation:"am-fade",prefixClass:"timepicker",placement:"bottom-left",template:"timepicker/timepicker.tpl.html",trigger:"focus",container:!1,keyboard:!0,html:!1,delay:0,useNative:!0,timeType:"date",timeFormat:"shortTime",modelTimeFormat:null,autoclose:!1,minTime:-1/0,maxTime:+1/0,length:5,hourStep:1,minuteStep:5,iconUp:"glyphicon glyphicon-chevron-up",iconDown:"glyphicon glyphicon-chevron-down"};this.$get=["$window","$document","$rootScope","$sce","$locale","dateFilter","$tooltip",function(t,n,a,i,o,r,u){function s(t,n,a){function i(e,n){if(t[0].createTextRange){var a=t[0].createTextRange();a.collapse(!0),a.moveStart("character",e),a.moveEnd("character",n),a.select()}else t[0].setSelectionRange?t[0].setSelectionRange(e,n):angular.isUndefined(t[0].selectionStart)&&(t[0].selectionStart=e,t[0].selectionEnd=n)}function s(){t[0].focus()}var m=u(t,angular.extend({},e,a)),c=a.scope,g=m.$options,$=m.$scope,p=0,f=n.$dateValue||new Date,h={hour:f.getHours(),meridian:f.getHours()<12,minute:f.getMinutes(),second:f.getSeconds(),millisecond:f.getMilliseconds()},v=o.DATETIME_FORMATS[g.timeFormat]||g.timeFormat,w=/(h+)([:\.])?(m+)[ ]?(a?)/i.exec(v).slice(1);$.$iconUp=g.iconUp,$.$iconDown=g.iconDown,$.$select=function(e,t){m.select(e,t)},$.$moveIndex=function(e,t){m.$moveIndex(e,t)},$.$switchMeridian=function(e){m.switchMeridian(e)},m.update=function(e){angular.isDate(e)&&!isNaN(e.getTime())?(m.$date=e,angular.extend(h,{hour:e.getHours(),minute:e.getMinutes(),second:e.getSeconds(),millisecond:e.getMilliseconds()}),m.$build()):m.$isBuilt||m.$build()},m.select=function(e,t,a){(!n.$dateValue||isNaN(n.$dateValue.getTime()))&&(n.$dateValue=new Date(1970,0,1)),angular.isDate(e)||(e=new Date(e)),0===t?n.$dateValue.setHours(e.getHours()):1===t&&n.$dateValue.setMinutes(e.getMinutes()),n.$setViewValue(n.$dateValue),n.$render(),g.autoclose&&!a&&m.hide(!0)},m.switchMeridian=function(e){var t=(e||n.$dateValue).getHours();n.$dateValue.setHours(12>t?t+12:t-12),n.$setViewValue(n.$dateValue),n.$render()},m.$build=function(){var e,t,n=$.midIndex=parseInt(g.length/2,10),a=[];for(e=0;e1*g.maxTime},m.$moveIndex=function(e,t){var n;0===t?(n=new Date(1970,0,1,h.hour+e*g.length,h.minute),angular.extend(h,{hour:n.getHours()})):1===t&&(n=new Date(1970,0,1,h.hour,h.minute+e*g.length*g.minuteStep),angular.extend(h,{minute:n.getMinutes()})),m.$build()},m.$onMouseDown=function(e){if("input"!==e.target.nodeName.toLowerCase()&&e.preventDefault(),e.stopPropagation(),l){var t=angular.element(e.target);"button"!==t[0].nodeName.toLowerCase()&&(t=t.parent()),t.triggerHandler("click")}},m.$onKeyDown=function(e){if(/(38|37|39|40|13)/.test(e.keyCode)&&!e.shiftKey&&!e.altKey){if(e.preventDefault(),e.stopPropagation(),13===e.keyCode)return m.hide(!0);var t=new Date(m.$date),n=t.getHours(),a=r(t,"h").length,o=t.getMinutes(),u=r(t,"mm").length,s=/(37|39)/.test(e.keyCode),l=2+1*!!w[3];s&&(37===e.keyCode?p=1>p?l-1:p-1:39===e.keyCode&&(p=l-1>p?p+1:0));var d=[0,a];0===p?(38===e.keyCode?t.setHours(n-parseInt(g.hourStep,10)):40===e.keyCode&&t.setHours(n+parseInt(g.hourStep,10)),d=[0,a]):1===p?(38===e.keyCode?t.setMinutes(o-parseInt(g.minuteStep,10)):40===e.keyCode&&t.setMinutes(o+parseInt(g.minuteStep,10)),d=[a+1,a+1+u]):2===p&&(s||m.switchMeridian(),d=[a+1+u+1,a+1+u+3]),m.select(t,p,!0),i(d[0],d[1]),c.$digest()}};var y=m.init;m.init=function(){return d&&g.useNative?(t.prop("type","time"),void t.css("-webkit-appearance","textfield")):(l&&(t.prop("type","text"),t.attr("readonly","true"),t.on("click",s)),void y())};var T=m.destroy;m.destroy=function(){d&&g.useNative&&t.off("click",s),T()};var D=m.show;m.show=function(){D(),setTimeout(function(){m.$element.on(l?"touchstart":"mousedown",m.$onMouseDown),g.keyboard&&t.on("keydown",m.$onKeyDown)})};var S=m.hide;return m.hide=function(e){m.$element.off(l?"touchstart":"mousedown",m.$onMouseDown),g.keyboard&&t.off("keydown",m.$onKeyDown),S(e)},m}var l=(angular.element(t.document.body),"createTouch"in t.document),d=/(ip(a|o)d|iphone|android)/gi.test(t.navigator.userAgent);return e.lang||(e.lang=o.id),s.defaults=e,s}]}).directive("bsTimepicker",["$window","$parse","$q","$locale","dateFilter","$timepicker","$dateParser","$timeout",function(e,t,n,a,i,o,r){{var u=o.defaults,s=/(ip(a|o)d|iphone|android)/gi.test(e.navigator.userAgent);e.requestAnimationFrame||e.setTimeout}return{restrict:"EAC",require:"ngModel",link:function(e,t,n,a){var l={scope:e,controller:a};angular.forEach(["placement","container","delay","trigger","keyboard","html","animation","template","autoclose","timeType","timeFormat","modelTimeFormat","useNative","hourStep","minuteStep","length"],function(e){angular.isDefined(n[e])&&(l[e]=n[e])}),s&&(l.useNative||u.useNative)&&(l.timeFormat="HH:mm");var d=o(t,a,l);l=d.$options;var m=r({format:l.timeFormat,lang:l.lang});angular.forEach(["minTime","maxTime"],function(e){angular.isDefined(n[e])&&n.$observe(e,function(t){d.$options[e]="now"===t?(new Date).setFullYear(1970,0,1):angular.isString(t)&&t.match(/^".+"$/)?+new Date(t.substr(1,t.length-2)):m.parse(t,new Date(1970,0,1,0)),!isNaN(d.$options[e])&&d.$build()})}),e.$watch(n.ngModel,function(){d.update(a.$dateValue)},!0),a.$parsers.unshift(function(e){if(!e)return void a.$setValidity("date",!0);var t=m.parse(e,a.$dateValue);if(!t||isNaN(t.getTime()))a.$setValidity("date",!1);else{var n=t.getTime()>=l.minTime&&t.getTime()<=l.maxTime;a.$setValidity("date",n),n&&(a.$dateValue=t)}return"string"===l.timeType?i(t,l.modelTimeFormat||l.timeFormat):"number"===l.timeType?a.$dateValue.getTime():"iso"===l.timeType?a.$dateValue.toISOString():new Date(a.$dateValue)}),a.$formatters.push(function(e){var t;return t=angular.isUndefined(e)||null===e?0/0:angular.isDate(e)?e:"string"===l.timeType?m.parse(e,null,l.modelTimeFormat):new Date(e),a.$dateValue=t,a.$dateValue}),a.$render=function(){t.val(!a.$dateValue||isNaN(a.$dateValue.getTime())?"":i(a.$dateValue,l.timeFormat))},e.$on("$destroy",function(){d.destroy(),l=null,d=null})}}}]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/timepicker.tpl.js b/src/main/webapp/components/angular-strap/dist/modules/timepicker.tpl.js
index 8930e5a00..f04b1b322 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/timepicker.tpl.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/timepicker.tpl.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -9,6 +9,6 @@
angular.module('mgcrea.ngStrap.timepicker').run([
'$templateCache',
function ($templateCache) {
- $templateCache.put('timepicker/timepicker.tpl.html', '');
+ $templateCache.put('timepicker/timepicker.tpl.html', '');
}
]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/timepicker.tpl.min.js b/src/main/webapp/components/angular-strap/dist/modules/timepicker.tpl.min.js
index 25aa8135c..0980b68d9 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/timepicker.tpl.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/timepicker.tpl.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.timepicker").run(["$templateCache",function(t){t.put("timepicker/timepicker.tpl.html",'')}]);
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.timepicker").run(["$templateCache",function(t){t.put("timepicker/timepicker.tpl.html",'')}]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/tooltip.js b/src/main/webapp/components/angular-strap/dist/modules/tooltip.js
index f8b9f79a1..2fbdc244b 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/tooltip.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/tooltip.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -12,6 +12,7 @@ angular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.helpers.dimensions']).
prefixClass: 'tooltip',
prefixEvent: 'tooltip',
container: false,
+ target: false,
placement: 'top',
template: 'tooltip/tooltip.tpl.html',
contentTemplate: false,
@@ -31,10 +32,9 @@ angular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.helpers.dimensions']).
'$templateCache',
'$http',
'$animate',
- '$timeout',
'dimensions',
'$$rAF',
- function ($window, $rootScope, $compile, $q, $templateCache, $http, $animate, $timeout, dimensions, $$rAF) {
+ function ($window, $rootScope, $compile, $q, $templateCache, $http, $animate, dimensions, $$rAF) {
var trim = String.prototype.trim;
var isTouch = 'createTouch' in $window.document;
var htmlReplaceRegExp = /ng-bind="/gi;
@@ -125,6 +125,10 @@ angular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.helpers.dimensions']).
nodeName === 'button' && trigger !== 'hover' && element.on(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);
}
});
+ // Options: target
+ if (options.target) {
+ options.target = angular.isElement(options.target) ? options.target : findElement(options.target)[0];
+ }
// Options: show
if (options.show) {
scope.$$postDigest(function () {
@@ -150,6 +154,8 @@ angular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.helpers.dimensions']).
tipElement.remove();
tipElement = null;
}
+ // Cancel pending callbacks
+ clearTimeout(timeout);
// Destroy scope
scope.$destroy();
};
@@ -176,8 +182,8 @@ angular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.helpers.dimensions']).
});
// Set the initial positioning.
tipElement.css({
- top: '0px',
- left: '0px',
+ top: '-9999px',
+ left: '-9999px',
display: 'block'
}).addClass(options.placement);
// Options: animation
@@ -190,7 +196,7 @@ angular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.helpers.dimensions']).
scope.$emit(options.prefixEvent + '.show', $tooltip);
});
$tooltip.$isShown = scope.$isShown = true;
- scope.$$phase || scope.$root.$$phase || scope.$digest();
+ scope.$$phase || scope.$root && scope.$root.$$phase || scope.$digest();
$$rAF($tooltip.$applyPlacement);
// var a = bodyEl.offsetWidth + 1; ?
// Bind events
@@ -223,7 +229,7 @@ angular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.helpers.dimensions']).
scope.$emit(options.prefixEvent + '.hide', $tooltip);
});
$tooltip.$isShown = scope.$isShown = false;
- scope.$$phase || scope.$root.$$phase || scope.$digest();
+ scope.$$phase || scope.$root && scope.$root.$$phase || scope.$digest();
// Unbind events
if (options.keyboard && tipElement !== null) {
tipElement.off('keyup', $tooltip.$onKeyUp);
@@ -269,9 +275,9 @@ angular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.helpers.dimensions']).
// Private methods
function getPosition() {
if (options.container === 'body') {
- return dimensions.offset(element[0]);
+ return dimensions.offset(options.target || element[0]);
} else {
- return dimensions.position(element[0]);
+ return dimensions.position(options.target || element[0]);
}
}
function getCalculatedOffset(placement, position, actualWidth, actualHeight) {
@@ -362,6 +368,7 @@ angular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.helpers.dimensions']).
'contentTemplate',
'placement',
'container',
+ 'target',
'delay',
'trigger',
'keyboard',
diff --git a/src/main/webapp/components/angular-strap/dist/modules/tooltip.min.js b/src/main/webapp/components/angular-strap/dist/modules/tooltip.min.js
index bd138b907..b25f71c9e 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/tooltip.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/tooltip.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.tooltip",["mgcrea.ngStrap.helpers.dimensions"]).provider("$tooltip",function(){var e=this.defaults={animation:"am-fade",prefixClass:"tooltip",prefixEvent:"tooltip",container:!1,placement:"top",template:"tooltip/tooltip.tpl.html",contentTemplate:!1,trigger:"hover focus",keyboard:!1,html:!1,show:!1,title:"",type:"",delay:0};this.$get=["$window","$rootScope","$compile","$q","$templateCache","$http","$animate","$timeout","dimensions","$$rAF",function(t,o,n,i,a,r,l,s,u,c){function p(t,i){function a(){return"body"===g.container?u.offset(t[0]):u.position(t[0])}function r(e,t,o,n){var i,a=e.split("-");switch(a[0]){case"right":i={top:t.top+t.height/2-n/2,left:t.left+t.width};break;case"bottom":i={top:t.top+t.height,left:t.left+t.width/2-o/2};break;case"left":i={top:t.top+t.height/2-n/2,left:t.left-o};break;default:i={top:t.top-n,left:t.left+t.width/2-o/2}}if(!a[1])return i;if("top"===a[0]||"bottom"===a[0])switch(a[1]){case"left":i.left=t.left;break;case"right":i.left=t.left+t.width-o}else if("left"===a[0]||"right"===a[0])switch(a[1]){case"top":i.top=t.top-n;break;case"bottom":i.top=t.top+t.height}return i}var s={},p=t[0].nodeName.toLowerCase(),g=s.$options=angular.extend({},e,i);s.$promise=h(g.template);var v=s.$scope=g.scope&&g.scope.$new()||o.$new();g.delay&&angular.isString(g.delay)&&(g.delay=parseFloat(g.delay)),g.title&&(s.$scope.title=g.title),v.$hide=function(){v.$$postDigest(function(){s.hide()})},v.$show=function(){v.$$postDigest(function(){s.show()})},v.$toggle=function(){v.$$postDigest(function(){s.toggle()})},s.$isShown=v.$isShown=!1;var y,w;g.contentTemplate&&(s.$promise=s.$promise.then(function(e){var t=angular.element(e);return h(g.contentTemplate).then(function(e){var o=f('[ng-bind="content"]',t[0]);return o.length||(o=f('[ng-bind="title"]',t[0])),o.removeAttr("ng-bind").html(e),t[0].outerHTML})}));var b,k,S,x;return s.$promise.then(function(e){angular.isObject(e)&&(e=e.data),g.html&&(e=e.replace(m,'ng-bind-html="')),e=d.apply(e),S=e,b=n(e),s.init()}),s.init=function(){g.delay&&angular.isNumber(g.delay)&&(g.delay={show:g.delay,hide:g.delay}),"self"===g.container?x=t:g.container&&(x=f(g.container));var e=g.trigger.split(" ");angular.forEach(e,function(e){"click"===e?t.on("click",s.toggle):"manual"!==e&&(t.on("hover"===e?"mouseenter":"focus",s.enter),t.on("hover"===e?"mouseleave":"blur",s.leave),"button"===p&&"hover"!==e&&t.on($?"touchstart":"mousedown",s.$onFocusElementMouseDown))}),g.show&&v.$$postDigest(function(){"focus"===g.trigger?t[0].focus():s.show()})},s.destroy=function(){for(var e=g.trigger.split(" "),o=e.length;o--;){var n=e[o];"click"===n?t.off("click",s.toggle):"manual"!==n&&(t.off("hover"===n?"mouseenter":"focus",s.enter),t.off("hover"===n?"mouseleave":"blur",s.leave),"button"===p&&"hover"!==n&&t.off($?"touchstart":"mousedown",s.$onFocusElementMouseDown))}k&&(k.remove(),k=null),v.$destroy()},s.enter=function(){return clearTimeout(y),w="in",g.delay&&g.delay.show?void(y=setTimeout(function(){"in"===w&&s.show()},g.delay.show)):s.show()},s.show=function(){v.$emit(g.prefixEvent+".show.before",s);var e=g.container?x:null,o=g.container?null:t;k&&k.remove(),k=s.$element=b(v,function(){}),k.css({top:"0px",left:"0px",display:"block"}).addClass(g.placement),g.animation&&k.addClass(g.animation),g.type&&k.addClass(g.prefixClass+"-"+g.type),l.enter(k,e,o,function(){v.$emit(g.prefixEvent+".show",s)}),s.$isShown=v.$isShown=!0,v.$$phase||v.$root.$$phase||v.$digest(),c(s.$applyPlacement),g.keyboard&&("focus"!==g.trigger?(s.focus(),k.on("keyup",s.$onKeyUp)):t.on("keyup",s.$onFocusKeyUp))},s.leave=function(){return clearTimeout(y),w="out",g.delay&&g.delay.hide?void(y=setTimeout(function(){"out"===w&&s.hide()},g.delay.hide)):s.hide()},s.hide=function(e){return s.$isShown?(v.$emit(g.prefixEvent+".hide.before",s),l.leave(k,function(){v.$emit(g.prefixEvent+".hide",s)}),s.$isShown=v.$isShown=!1,v.$$phase||v.$root.$$phase||v.$digest(),g.keyboard&&null!==k&&k.off("keyup",s.$onKeyUp),e&&"focus"===g.trigger?t[0].blur():void 0):void 0},s.toggle=function(){s.$isShown?s.leave():s.enter()},s.focus=function(){k[0].focus()},s.$applyPlacement=function(){if(k){var e=a(),t=k.prop("offsetWidth"),o=k.prop("offsetHeight"),n=r(g.placement,e,t,o);n.top+="px",n.left+="px",k.css(n)}},s.$onKeyUp=function(e){27===e.which&&s.hide()},s.$onFocusKeyUp=function(e){27===e.which&&t[0].blur()},s.$onFocusElementMouseDown=function(e){e.preventDefault(),e.stopPropagation(),s.$isShown?t[0].blur():t[0].focus()},s}function f(e,t){return angular.element((t||document).querySelectorAll(e))}function h(e){return i.when(a.get(e)||r.get(e)).then(function(t){return angular.isObject(t)?(a.put(e,t.data),t.data):t})}var d=String.prototype.trim,$="createTouch"in t.document,m=/ng-bind="/gi;return p}]}).directive("bsTooltip",["$window","$location","$sce","$tooltip","$$rAF",function(e,t,o,n,i){return{restrict:"EAC",scope:!0,link:function(e,t,a){var r={scope:e};angular.forEach(["template","contentTemplate","placement","container","delay","trigger","keyboard","html","animation","type"],function(e){angular.isDefined(a[e])&&(r[e]=a[e])}),angular.forEach(["title"],function(t){a[t]&&a.$observe(t,function(n,a){e[t]=o.trustAsHtml(n),angular.isDefined(a)&&i(function(){l&&l.$applyPlacement()})})}),a.bsTooltip&&e.$watch(a.bsTooltip,function(t,o){angular.isObject(t)?angular.extend(e,t):e.title=t,angular.isDefined(o)&&i(function(){l&&l.$applyPlacement()})},!0);var l=n(t,r);e.$on("$destroy",function(){l.destroy(),r=null,l=null})}}}]);
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.tooltip",["mgcrea.ngStrap.helpers.dimensions"]).provider("$tooltip",function(){var e=this.defaults={animation:"am-fade",prefixClass:"tooltip",prefixEvent:"tooltip",container:!1,target:!1,placement:"top",template:"tooltip/tooltip.tpl.html",contentTemplate:!1,trigger:"hover focus",keyboard:!1,html:!1,show:!1,title:"",type:"",delay:0};this.$get=["$window","$rootScope","$compile","$q","$templateCache","$http","$animate","dimensions","$$rAF",function(t,o,n,i,a,r,l,s,u){function c(t,i){function a(){return"body"===m.container?s.offset(m.target||t[0]):s.position(m.target||t[0])}function r(e,t,o,n){var i,a=e.split("-");switch(a[0]){case"right":i={top:t.top+t.height/2-n/2,left:t.left+t.width};break;case"bottom":i={top:t.top+t.height,left:t.left+t.width/2-o/2};break;case"left":i={top:t.top+t.height/2-n/2,left:t.left-o};break;default:i={top:t.top-n,left:t.left+t.width/2-o/2}}if(!a[1])return i;if("top"===a[0]||"bottom"===a[0])switch(a[1]){case"left":i.left=t.left;break;case"right":i.left=t.left+t.width-o}else if("left"===a[0]||"right"===a[0])switch(a[1]){case"top":i.top=t.top-n;break;case"bottom":i.top=t.top+t.height}return i}var c={},$=t[0].nodeName.toLowerCase(),m=c.$options=angular.extend({},e,i);c.$promise=f(m.template);var v=c.$scope=m.scope&&m.scope.$new()||o.$new();m.delay&&angular.isString(m.delay)&&(m.delay=parseFloat(m.delay)),m.title&&(c.$scope.title=m.title),v.$hide=function(){v.$$postDigest(function(){c.hide()})},v.$show=function(){v.$$postDigest(function(){c.show()})},v.$toggle=function(){v.$$postDigest(function(){c.toggle()})},c.$isShown=v.$isShown=!1;var y,w;m.contentTemplate&&(c.$promise=c.$promise.then(function(e){var t=angular.element(e);return f(m.contentTemplate).then(function(e){var o=p('[ng-bind="content"]',t[0]);return o.length||(o=p('[ng-bind="title"]',t[0])),o.removeAttr("ng-bind").html(e),t[0].outerHTML})}));var b,k,S,T;return c.$promise.then(function(e){angular.isObject(e)&&(e=e.data),m.html&&(e=e.replace(g,'ng-bind-html="')),e=h.apply(e),S=e,b=n(e),c.init()}),c.init=function(){m.delay&&angular.isNumber(m.delay)&&(m.delay={show:m.delay,hide:m.delay}),"self"===m.container?T=t:m.container&&(T=p(m.container));var e=m.trigger.split(" ");angular.forEach(e,function(e){"click"===e?t.on("click",c.toggle):"manual"!==e&&(t.on("hover"===e?"mouseenter":"focus",c.enter),t.on("hover"===e?"mouseleave":"blur",c.leave),"button"===$&&"hover"!==e&&t.on(d?"touchstart":"mousedown",c.$onFocusElementMouseDown))}),m.target&&(m.target=angular.isElement(m.target)?m.target:p(m.target)[0]),m.show&&v.$$postDigest(function(){"focus"===m.trigger?t[0].focus():c.show()})},c.destroy=function(){for(var e=m.trigger.split(" "),o=e.length;o--;){var n=e[o];"click"===n?t.off("click",c.toggle):"manual"!==n&&(t.off("hover"===n?"mouseenter":"focus",c.enter),t.off("hover"===n?"mouseleave":"blur",c.leave),"button"===$&&"hover"!==n&&t.off(d?"touchstart":"mousedown",c.$onFocusElementMouseDown))}k&&(k.remove(),k=null),clearTimeout(y),v.$destroy()},c.enter=function(){return clearTimeout(y),w="in",m.delay&&m.delay.show?void(y=setTimeout(function(){"in"===w&&c.show()},m.delay.show)):c.show()},c.show=function(){v.$emit(m.prefixEvent+".show.before",c);var e=m.container?T:null,o=m.container?null:t;k&&k.remove(),k=c.$element=b(v,function(){}),k.css({top:"-9999px",left:"-9999px",display:"block"}).addClass(m.placement),m.animation&&k.addClass(m.animation),m.type&&k.addClass(m.prefixClass+"-"+m.type),l.enter(k,e,o,function(){v.$emit(m.prefixEvent+".show",c)}),c.$isShown=v.$isShown=!0,v.$$phase||v.$root&&v.$root.$$phase||v.$digest(),u(c.$applyPlacement),m.keyboard&&("focus"!==m.trigger?(c.focus(),k.on("keyup",c.$onKeyUp)):t.on("keyup",c.$onFocusKeyUp))},c.leave=function(){return clearTimeout(y),w="out",m.delay&&m.delay.hide?void(y=setTimeout(function(){"out"===w&&c.hide()},m.delay.hide)):c.hide()},c.hide=function(e){return c.$isShown?(v.$emit(m.prefixEvent+".hide.before",c),l.leave(k,function(){v.$emit(m.prefixEvent+".hide",c)}),c.$isShown=v.$isShown=!1,v.$$phase||v.$root&&v.$root.$$phase||v.$digest(),m.keyboard&&null!==k&&k.off("keyup",c.$onKeyUp),e&&"focus"===m.trigger?t[0].blur():void 0):void 0},c.toggle=function(){c.$isShown?c.leave():c.enter()},c.focus=function(){k[0].focus()},c.$applyPlacement=function(){if(k){var e=a(),t=k.prop("offsetWidth"),o=k.prop("offsetHeight"),n=r(m.placement,e,t,o);n.top+="px",n.left+="px",k.css(n)}},c.$onKeyUp=function(e){27===e.which&&c.hide()},c.$onFocusKeyUp=function(e){27===e.which&&t[0].blur()},c.$onFocusElementMouseDown=function(e){e.preventDefault(),e.stopPropagation(),c.$isShown?t[0].blur():t[0].focus()},c}function p(e,t){return angular.element((t||document).querySelectorAll(e))}function f(e){return i.when(a.get(e)||r.get(e)).then(function(t){return angular.isObject(t)?(a.put(e,t.data),t.data):t})}var h=String.prototype.trim,d="createTouch"in t.document,g=/ng-bind="/gi;return c}]}).directive("bsTooltip",["$window","$location","$sce","$tooltip","$$rAF",function(e,t,o,n,i){return{restrict:"EAC",scope:!0,link:function(e,t,a){var r={scope:e};angular.forEach(["template","contentTemplate","placement","container","target","delay","trigger","keyboard","html","animation","type"],function(e){angular.isDefined(a[e])&&(r[e]=a[e])}),angular.forEach(["title"],function(t){a[t]&&a.$observe(t,function(n,a){e[t]=o.trustAsHtml(n),angular.isDefined(a)&&i(function(){l&&l.$applyPlacement()})})}),a.bsTooltip&&e.$watch(a.bsTooltip,function(t,o){angular.isObject(t)?angular.extend(e,t):e.title=t,angular.isDefined(o)&&i(function(){l&&l.$applyPlacement()})},!0);var l=n(t,r);e.$on("$destroy",function(){l.destroy(),r=null,l=null})}}}]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/tooltip.tpl.js b/src/main/webapp/components/angular-strap/dist/modules/tooltip.tpl.js
index 4bd78ca83..2c614897d 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/tooltip.tpl.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/tooltip.tpl.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/tooltip.tpl.min.js b/src/main/webapp/components/angular-strap/dist/modules/tooltip.tpl.min.js
index 8fa1cf671..5cfd0d574 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/tooltip.tpl.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/tooltip.tpl.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/typeahead.js b/src/main/webapp/components/angular-strap/dist/modules/typeahead.js
index bff5707ff..f8edc97c6 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/typeahead.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/typeahead.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
@@ -68,8 +68,8 @@ angular.module('mgcrea.ngStrap.typeahead', [
$typeahead.select = function (index) {
var value = scope.$matches[index].value;
controller.$setViewValue(value);
- scope.$resetMatches();
controller.$render();
+ scope.$resetMatches();
if (parentScope)
parentScope.$digest();
// Emit event
diff --git a/src/main/webapp/components/angular-strap/dist/modules/typeahead.min.js b/src/main/webapp/components/angular-strap/dist/modules/typeahead.min.js
index 91a8f7730..161586aaf 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/typeahead.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/typeahead.min.js
@@ -1,8 +1,8 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
-"use strict";angular.module("mgcrea.ngStrap.typeahead",["mgcrea.ngStrap.tooltip","mgcrea.ngStrap.helpers.parseOptions"]).provider("$typeahead",function(){var e=this.defaults={animation:"am-fade",prefixClass:"typeahead",placement:"bottom-left",template:"typeahead/typeahead.tpl.html",trigger:"focus",container:!1,keyboard:!0,html:!1,delay:0,minLength:1,filter:"filter",limit:6};this.$get=["$window","$rootScope","$tooltip",function(t,n,a){function i(t,n,i){var o={},r=angular.extend({},e,i);o=a(t,r);var l=i.scope,c=o.$scope;c.$resetMatches=function(){c.$matches=[],c.$activeIndex=0},c.$resetMatches(),c.$activate=function(e){c.$$postDigest(function(){o.activate(e)})},c.$select=function(e){c.$$postDigest(function(){o.select(e)})},c.$isVisible=function(){return o.$isVisible()},o.update=function(e){c.$matches=e,c.$activeIndex>=e.length&&(c.$activeIndex=0)},o.activate=function(e){c.$activeIndex=e},o.select=function(e){var t=c.$matches[e].value;n.$setViewValue(t),c.$resetMatches(),n.$render(),l&&l.$digest(),c.$emit("$typeahead.select",t,e)},o.$isVisible=function(){return r.minLength&&n?c.$matches.length&&angular.isString(n.$viewValue)&&n.$viewValue.length>=r.minLength:!!c.$matches.length},o.$getIndex=function(e){var t=c.$matches.length,n=t;if(t){for(n=t;n--&&c.$matches[n].value!==e;);if(!(0>n))return n}},o.$onMouseDown=function(e){e.preventDefault(),e.stopPropagation()},o.$onKeyDown=function(e){/(38|40|13)/.test(e.keyCode)&&(e.preventDefault(),e.stopPropagation(),13===e.keyCode&&c.$matches.length?o.select(c.$activeIndex):38===e.keyCode&&c.$activeIndex>0?c.$activeIndex--:40===e.keyCode&&c.$activeIndexs&&(e=e.slice(0,s)),(1!==e.length||e[0].value!==t)&&(d.update(e),r.$render())})}),r.$render=function(){if(r.$isEmpty(r.$viewValue))return t.val("");var e=d.$getIndex(r.$modelValue),n=angular.isDefined(e)?d.$scope.$matches[e].label:r.$viewValue;n=angular.isObject(n)?n.label:n,t.val(n.replace(/<(?:.|\n)*?>/gm,"").trim())},e.$on("$destroy",function(){d.destroy(),l=null,d=null})}}}]);
\ No newline at end of file
+"use strict";angular.module("mgcrea.ngStrap.typeahead",["mgcrea.ngStrap.tooltip","mgcrea.ngStrap.helpers.parseOptions"]).provider("$typeahead",function(){var e=this.defaults={animation:"am-fade",prefixClass:"typeahead",placement:"bottom-left",template:"typeahead/typeahead.tpl.html",trigger:"focus",container:!1,keyboard:!0,html:!1,delay:0,minLength:1,filter:"filter",limit:6};this.$get=["$window","$rootScope","$tooltip",function(t,n,a){function i(t,n,i){var o={},r=angular.extend({},e,i);o=a(t,r);var l=i.scope,c=o.$scope;c.$resetMatches=function(){c.$matches=[],c.$activeIndex=0},c.$resetMatches(),c.$activate=function(e){c.$$postDigest(function(){o.activate(e)})},c.$select=function(e){c.$$postDigest(function(){o.select(e)})},c.$isVisible=function(){return o.$isVisible()},o.update=function(e){c.$matches=e,c.$activeIndex>=e.length&&(c.$activeIndex=0)},o.activate=function(e){c.$activeIndex=e},o.select=function(e){var t=c.$matches[e].value;n.$setViewValue(t),n.$render(),c.$resetMatches(),l&&l.$digest(),c.$emit("$typeahead.select",t,e)},o.$isVisible=function(){return r.minLength&&n?c.$matches.length&&angular.isString(n.$viewValue)&&n.$viewValue.length>=r.minLength:!!c.$matches.length},o.$getIndex=function(e){var t=c.$matches.length,n=t;if(t){for(n=t;n--&&c.$matches[n].value!==e;);if(!(0>n))return n}},o.$onMouseDown=function(e){e.preventDefault(),e.stopPropagation()},o.$onKeyDown=function(e){/(38|40|13)/.test(e.keyCode)&&(e.preventDefault(),e.stopPropagation(),13===e.keyCode&&c.$matches.length?o.select(c.$activeIndex):38===e.keyCode&&c.$activeIndex>0?c.$activeIndex--:40===e.keyCode&&c.$activeIndexs&&(e=e.slice(0,s)),(1!==e.length||e[0].value!==t)&&(d.update(e),r.$render())})}),r.$render=function(){if(r.$isEmpty(r.$viewValue))return t.val("");var e=d.$getIndex(r.$modelValue),n=angular.isDefined(e)?d.$scope.$matches[e].label:r.$viewValue;n=angular.isObject(n)?n.label:n,t.val(n.replace(/<(?:.|\n)*?>/gm,"").trim())},e.$on("$destroy",function(){d.destroy(),l=null,d=null})}}}]);
\ No newline at end of file
diff --git a/src/main/webapp/components/angular-strap/dist/modules/typeahead.tpl.js b/src/main/webapp/components/angular-strap/dist/modules/typeahead.tpl.js
index ccea2dfd0..624e0c5c4 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/typeahead.tpl.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/typeahead.tpl.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT
diff --git a/src/main/webapp/components/angular-strap/dist/modules/typeahead.tpl.min.js b/src/main/webapp/components/angular-strap/dist/modules/typeahead.tpl.min.js
index 5cb06d336..2fba78370 100644
--- a/src/main/webapp/components/angular-strap/dist/modules/typeahead.tpl.min.js
+++ b/src/main/webapp/components/angular-strap/dist/modules/typeahead.tpl.min.js
@@ -1,6 +1,6 @@
/**
* angular-strap
- * @version v2.0.2 - 2014-04-27
+ * @version v2.0.3 - 2014-05-30
* @link http://mgcrea.github.io/angular-strap
* @author Olivier Louvignes (olivier@mg-crea.com)
* @license MIT License, http://www.opensource.org/licenses/MIT