mega refactoring, typescript & Co.

Signed-off-by: Gwenhael Le Moine <gwenhael.le.moine@gmail.com>
This commit is contained in:
Gwenhael Le Moine 2017-11-06 16:50:44 +01:00
parent 4af9bd7d8d
commit ba01b39b9d
No known key found for this signature in database
GPG key ID: FDFE3669426707A7
1795 changed files with 148889 additions and 151448 deletions

View file

@ -11,7 +11,6 @@ GEM
rack (2.0.3)
rack-protection (2.0.0)
rack
rack-rewrite (1.5.1)
rake (12.2.1)
sinatra (2.0.0)
mustermann (~> 1.0)
@ -26,9 +25,8 @@ PLATFORMS
DEPENDENCIES
pry
puma
rack-rewrite
rake
sinatra
BUNDLED WITH
1.14.6
1.16.0

10
gems.rb
View file

@ -1,8 +1,8 @@
# encoding: utf-8
source 'https://rubygems.org'
source "https://rubygems.org"
gem 'sinatra'
gem 'puma'
gem 'rake'
gem 'pry'
gem "pry"
gem "puma"
gem "rake"
gem "sinatra"

View file

@ -1,6 +1,6 @@
# encoding: utf-8
ENV[ 'LEDGER_FILE' ] ||= '/home/nextcloud/data/cycojesus/files/org-files/comptes.ledger'
ENV[ 'LEDGER_FILE' ] ||= '/home/cycojesus/org/comptes.ledger'
CURRENCY = '€'
SEPARATOR = ','

View file

@ -31,7 +31,7 @@
<script src="/app/vendor/node_modules/angular/angular.min.js"></script>
<script src="/app/vendor/node_modules/angular-i18n/angular-locale_en-us.js"></script>
<script src="/app/vendor/node_modules/angular-ui-router/release/angular-ui-router.min.js"></script>
<script src="/app/vendor/node_modules/@uirouter/angularjs/release/angular-ui-router.min.js"></script>
<script src="/app/vendor/node_modules/angular-aria/angular-aria.min.js"></script>
<script src="/app/vendor/node_modules/angular-animate/angular-animate.min.js"></script>
<script src="/app/vendor/node_modules/angular-material/angular-material.min.js"></script>
@ -41,9 +41,5 @@
<!-- APP -->
<script src="/app/js/app.js"></script>
<script src="/app/js/state.js"></script>
<script src="/app/js/services/API.js"></script>
<script src="/app/js/controllers/DashboardCtrl.js"></script>
</body>
</html>

View file

@ -4,3 +4,334 @@ var app = angular.module( 'app', [ 'ui.router',
'chieffancypants.loadingBar',
'ngMaterial'
]);
app.config(['$stateProvider', '$urlRouterProvider',
function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('app', {
url: '',
views: {
'main': {
component: 'dashboard'
}
}
});
}
]);
app.component('dashboard', {
controller: ['$filter', 'API',
function ($filter, API) {
var ctrl = this;
ctrl.xFunction = function () {
return function (d) {
return d.account;
};
};
ctrl.yFunction = function () {
return function (d) {
return d.amount;
};
};
ctrl.toolTipContentFunction = function () {
return function (key, x, y, e, graph) {
var details = ctrl.balance.details[key];
return '<md-content><h3>' + key + '</h3>' + '<table>' + _(details).map(function (transaction) {
return '<tr><td>' + transaction.date + '</td><td>' + transaction.payee + '</td><td style="text-align: right">' + $filter('number')(transaction.amount, 2) + ' ' + transaction.currency + '</td></tr>';
}).join('') + '<tr><th></th><th>Total :</th><th>' + x + ' €</th></tr>' + '</table></md-content>';
};
};
var score_account = function (account) {
if (account.match(/^Income/)) {
return -10;
}
else if (account.match(/^Expenses:(courses|Hang)$/)) {
return 1;
}
else if (account.match(/^Expenses:Home/)) {
return 1;
}
else if (account.match(/^Expenses:Health/)) {
return 1;
}
else if (account.match(/^Expenses:Car/)) {
return 4;
}
else if (account.match(/^Expenses:(Food|Transport)/)) {
return 5;
}
else if (account.match(/^Expenses:(Shopping|Leisure)/)) {
return 9;
}
else if (account.match(/^Expenses:Gadgets/)) {
return 10;
}
else if (account.match(/^Liabilities/)) {
return 0;
}
else if (account.match(/^Assets/)) {
return -100;
}
else {
return 0;
}
};
ctrl.coloring_score = function (score) {
var adjusted_score = score;
var color_scale = ['#99f', '#0f0', '#3f0', '#6f0', '#9f0', '#cf0', '#fc0', '#f90', '#f60', '#f30', '#f00'];
if (score <= -100) {
adjusted_score = (score * -1) - 100;
color_scale = ['#f0f'];
}
else if (score <= -10) {
adjusted_score = (score * -1) - 10;
color_scale = ['#360'];
}
return color_scale[adjusted_score];
};
ctrl.color = function () {
return function (d, i) {
return ctrl.coloring_score(score_account(d.data.account));
};
};
ctrl.filter_data = function () {
_(ctrl.balance.buckets).each(function (bucket) {
bucket.data = [];
if (_(bucket.accounts_selected).isEmpty() && bucket.score_threshold === 0) {
bucket.data = bucket.raw_data;
}
else {
_(bucket.accounts_selected).each(function (account_selected) {
bucket.data = bucket.data.concat($filter('filter')(bucket.raw_data, account_selected, true));
});
}
bucket.total_detailed = _.chain(bucket.data)
.groupBy(function (account) {
return account.account.split(':')[0];
})
.each(function (category) {
category.total = _(category).reduce(function (memo, account) {
return memo + account.amount;
}, 0);
})
.value();
bucket.total_detailed = _.chain(bucket.total_detailed)
.keys()
.map(function (key) {
return {
account: key,
amount: bucket.total_detailed[key].total
};
})
.value();
});
};
var Bucket = function (categories, period) {
var _this = this;
this.categories = categories;
this.period = period;
this.score_threshold = 0;
this.orderBy = 'amount';
this.orderDesc = false;
this.order_by = function (field) {
if (_this.orderBy == field) {
_this.orderDesc = !_this.orderDesc;
}
else {
_this.orderBy = field;
}
};
this.pie_graph_options = {
chart: {
type: 'pieChart',
donut: true,
donutRatio: 0.25,
height: 300,
x: function (d) { return d.account; },
y: function (d) { return d.amount; },
showLabels: false,
showLegend: true,
legendPosition: 'right',
showTooltipPercent: true,
duration: 500,
labelThreshold: 0.01,
labelSunbeamLayout: true,
labelsOutside: true
}
};
};
ctrl.depth = 99;
var retrieve_period_detailed_data = function () {
ctrl.balance = {
buckets: [new Bucket('Expenses Liabilities Equity Income', ctrl.period),
new Bucket('Assets', null)],
details: {}
};
_(ctrl.balance.buckets).each(function (bucket) {
API.balance({
period: bucket.period,
categories: bucket.categories,
depth: ctrl.depth
})
.then(function (response) {
bucket.raw_data = _.chain(response.data)
.map(function (account) {
account.amount = (account.amount < 0) ? account.amount * -1 : account.amount;
account.score = score_account(account.account);
return account;
})
.sortBy(function (account) {
return 1 / account.amount;
})
.sortBy(function (account) {
return account.account.split(":")[0];
})
.value()
.reverse();
bucket.raw_total = _(response.data).reduce(function (memo, account) {
return memo + account.amount;
}, 0);
bucket.accounts_selected = bucket.raw_data;
ctrl.filter_data();
});
});
};
var retrieve_accounts = function () {
API.accounts()
.then(function (response) {
ctrl.accounts = response.data.map(function (account_ary) {
return account_ary.join(':');
});
});
};
var retrieve_graph_values = function (params) {
API.graph_values(params).then(function (response) {
ctrl.periods = [];
var largest_cat = _(response.data).reduce(function (memo, cat) {
return cat.length > memo.length ? cat : memo;
}, []);
_.chain(largest_cat)
.pluck('date')
.each(function (date) {
_(response.data).each(function (cat) {
var value = _(cat).find({ date: date });
if (_(value).isUndefined()) {
cat.push({
date: date,
amount: 0,
currency: _(cat).first().currency
});
}
});
});
_(response.data).each(function (cat) {
cat = _(cat).sortBy(function (month) {
return month.date;
});
});
ctrl.graphiques = {
monthly_values: {
options: {
chart: {
type: 'multiBarChart',
height: 300,
showControls: false,
showLegend: true,
showLabels: true,
stacked: false,
duration: 500,
reduceXTicks: false,
rotateLabels: 67,
labelSunbeamLayout: true,
useInteractiveGuideline: false,
multibar: {
dispatch: {
elementClick: function (event) {
ctrl.period = event.data.x;
retrieve_period_detailed_data();
}
}
}
}
},
data: _.chain(response.data)
.keys()
.reverse()
.map(function (key) {
var multiplicator = (key == "Income") ? -1 : 1;
return {
key: key,
values: _.chain(response.data[key]).map(function (value) {
var date = new Date(value.date);
var period = date.getFullYear() + '-' + (date.getMonth() < 9 ? '0' : '') + (date.getMonth() + 1);
ctrl.periods.push(period);
return {
key: key,
x: period,
y: parseInt(value.amount) * multiplicator
};
})
.sortBy(function (item) { return item.x; })
.value()
};
})
.value()
}
};
ctrl.periods = _.chain(ctrl.periods).uniq().sort().reverse().value();
ctrl.period = _(ctrl.periods).first();
});
};
ctrl.graphed_accounts = ['Expenses', 'Income'];
retrieve_accounts();
retrieve_period_detailed_data();
retrieve_graph_values({ period: '',
categories: ctrl.graphed_accounts.join(' ') });
}
],
template: "\n<md-content flex=\"100\" layout=\"column\">\n <md-card flex=\"100\" layout=\"row\">\n <md-card flex=\"20\">\n <select style=\"height: 100%;\" multiple ng:model=\"$ctrl.graphed_accounts\">\n <option ng:repeat=\"account in $ctrl.accounts\">{{account}}</option>\n </select>\n </md-card>\n <md-card flex=\"81\">\n <nvd3 data=\"$ctrl.graphiques.monthly_values.data\"\n options=\"$ctrl.graphiques.monthly_values.options\"></nvd3>\n </md-card>\n </md-card>\n <h1 style=\"text-align: center;\">{{$ctrl.period | amDateFormat:'MMMM YYYY'}}</h1>\n <md-card flex=\"100\" layout=\"column\"\n ng:repeat=\"bucket in $ctrl.balance.buckets\">\n <md-toolbar>\n <span ng:repeat=\"account in bucket.total_detailed\">{{account.account}} = {{account.amount | number:2}} \u20AC</span>\n </md-toolbar>\n <md-content layout=\"row\">\n <md-card flex=\"20\">\n <select style=\"height: 100%;\" multiple\n ng:model=\"bucket.accounts_selected\"\n ng:options=\"account.account for account in bucket.raw_data | orderBy:'account'\"\n ng:change=\"filter_data()\">\n <option value=''>...</option>\n </select>\n </md-card>\n <md-card flex=\"78\">\n <nvd3 data=\"bucket.data\"\n options=\"bucket.pie_graph_options\" >\n </nvd3>\n </md-card>\n <!-- <md-card flex=\"56\">\n <table class=\"table\">\n <thead>\n <tr>\n <th><md-buton ng:click=\"bucket.order_by( 'account' )\">account</md-buton></th>\n <th><md-buton ng:click=\"bucket.order_by( 'amount' )\">amount</md-buton></th>\n <th><md-buton ng:click=\"bucket.order_by( 'score' )\">score</md-buton></th>\n </tr>\n </thead>\n <tbody>\n <tr ng:repeat=\"account in bucket.data | orderBy:bucket.orderBy:bucket.orderDesc\"\n ng:class=\"{'even': $even, 'odd': $odd}\"\n style=\"border-left:10px solid {{coloring_score( account.score )}};border-right:10px solid {{coloring_score( account.score )}}\">\n <td style=\"border-bottom:1px solid {{coloring_score( account.score )}}\">\n {{account.account}}\n </td>\n <td style=\"text-align:right;border-bottom:1px solid {{coloring_score( account.score )}}\">\n {{account.amount | number:2}} \u20AC\n </td>\n <td style=\"text-align:right;border-bottom:1px solid {{coloring_score( account.score )}}\">\n {{account.score}}\n </td>\n </tr>\n </tbody>\n </table>\n </md-card> -->\n </md-content>\n </md-card>\n</md-content>\n"
});
app.service('API', ['$http',
function ($http) {
var API = this;
API.balance = function (params) {
return $http.get('/api/ledger/balance', {
params: {
period: params.period,
categories: params.categories,
depth: params.depth
}
});
};
API.register = function (params) {
return $http.get('/api/ledger/register', {
params: {
period: params.period,
categories: params.categories
}
});
};
API.graph_values = function (params) {
return $http.get('/api/ledger/graph_values', {
params: {
period: params.period,
categories: params.categories
}
});
};
API.budget = function (params) {
return $http.get('/api/ledger/budget', {
params: {
period: params.period,
categories: params.categories
}
});
};
API.dates_salaries = function () {
return $http.get('/api/ledger/dates_salaries');
};
API.accounts = function () {
return $http.get('/api/ledger/accounts');
};
API.cleared = function () {
return $http.get('/api/ledger/cleared');
};
}]);

17
public/app/js/app.min.js vendored Normal file
View file

@ -0,0 +1,17 @@
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,c,b){a!=Array.prototype&&a!=Object.prototype&&(a[c]=b.value)};$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_";
$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.Symbol=function(){var a=0;return function(c){return $jscomp.SYMBOL_PREFIX+(c||"")+a++}}();
$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var a=$jscomp.global.Symbol.iterator;a||(a=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&$jscomp.defineProperty(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(a){var c=0;return $jscomp.iteratorPrototype(function(){return c<a.length?{done:!1,value:a[c++]}:{done:!0}})};
$jscomp.iteratorPrototype=function(a){$jscomp.initSymbolIterator();a={next:a};a[$jscomp.global.Symbol.iterator]=function(){return this};return a};$jscomp.iteratorFromArray=function(a,c){$jscomp.initSymbolIterator();a instanceof String&&(a+="");var b=0,e={next:function(){if(b<a.length){var d=b++;return{value:c(d,a[d]),done:!1}}e.next=function(){return{done:!0,value:void 0}};return e.next()}};e[Symbol.iterator]=function(){return e};return e};
$jscomp.polyfill=function(a,c,b,e){if(c){b=$jscomp.global;a=a.split(".");for(e=0;e<a.length-1;e++){var d=a[e];d in b||(b[d]={});b=b[d]}a=a[a.length-1];e=b[a];c=c(e);c!=e&&null!=c&&$jscomp.defineProperty(b,a,{configurable:!0,writable:!0,value:c})}};$jscomp.polyfill("Array.prototype.keys",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(a){return a})}},"es6","es3");
$jscomp.findInternal=function(a,c,b){a instanceof String&&(a=String(a));for(var e=a.length,d=0;d<e;d++){var g=a[d];if(c.call(b,g,d,a))return{i:d,v:g}}return{i:-1,v:void 0}};$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,b){return $jscomp.findInternal(this,a,b).v}},"es6","es3");var app=angular.module("app",["ui.router","nvd3","angularMoment","chieffancypants.loadingBar","ngMaterial"]);app.config(["$stateProvider","$urlRouterProvider",function(a,c){a.state("app",{url:"",views:{main:{component:"dashboard"}}})}]);
app.component("dashboard",{controller:["$filter","API",function(a,c){var b=this;b.xFunction=function(){return function(a){return a.account}};b.yFunction=function(){return function(a){return a.amount}};b.toolTipContentFunction=function(){return function(f,c,h,k,e){return"\x3cmd-content\x3e\x3ch3\x3e"+f+"\x3c/h3\x3e\x3ctable\x3e"+_(b.balance.details[f]).map(function(f){return"\x3ctr\x3e\x3ctd\x3e"+f.date+"\x3c/td\x3e\x3ctd\x3e"+f.payee+'\x3c/td\x3e\x3ctd style\x3d"text-align: right"\x3e'+a("number")(f.amount,
2)+" "+f.currency+"\x3c/td\x3e\x3c/tr\x3e"}).join("")+"\x3ctr\x3e\x3cth\x3e\x3c/th\x3e\x3cth\x3eTotal :\x3c/th\x3e\x3cth\x3e"+c+" \u20ac\x3c/th\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/md-content\x3e"}};var e=function(a){return a.match(/^Income/)?-10:a.match(/^Expenses:(courses|Hang)$/)?1:a.match(/^Expenses:Home/)?1:a.match(/^Expenses:Health/)?1:a.match(/^Expenses:Car/)?4:a.match(/^Expenses:(Food|Transport)/)?5:a.match(/^Expenses:(Shopping|Leisure)/)?9:a.match(/^Expenses:Gadgets/)?10:a.match(/^Liabilities/)?
0:a.match(/^Assets/)?-100:0};b.coloring_score=function(a){var b=a,c="#99f #0f0 #3f0 #6f0 #9f0 #cf0 #fc0 #f90 #f60 #f30 #f00".split(" ");-100>=a?(b=-1*a-100,c=["#f0f"]):-10>=a&&(b=-1*a-10,c=["#360"]);return c[b]};b.color=function(){return function(a,c){return b.coloring_score(e(a.data.account))}};b.filter_data=function(){_(b.balance.buckets).each(function(b){b.data=[];_(b.accounts_selected).isEmpty()&&0===b.score_threshold?b.data=b.raw_data:_(b.accounts_selected).each(function(c){b.data=b.data.concat(a("filter")(b.raw_data,
c,!0))});b.total_detailed=_.chain(b.data).groupBy(function(a){return a.account.split(":")[0]}).each(function(a){a.total=_(a).reduce(function(a,b){return a+b.amount},0)}).value();b.total_detailed=_.chain(b.total_detailed).keys().map(function(a){return{account:a,amount:b.total_detailed[a].total}}).value()})};var d=function(a,b){var c=this;this.categories=a;this.period=b;this.score_threshold=0;this.orderBy="amount";this.orderDesc=!1;this.order_by=function(a){c.orderBy==a?c.orderDesc=!c.orderDesc:c.orderBy=
a};this.pie_graph_options={chart:{type:"pieChart",donut:!0,donutRatio:.25,height:300,x:function(a){return a.account},y:function(a){return a.amount},showLabels:!1,showLegend:!0,legendPosition:"right",showTooltipPercent:!0,duration:500,labelThreshold:.01,labelSunbeamLayout:!0,labelsOutside:!0}}};b.depth=99;var g=function(){b.balance={buckets:[new d("Expenses Liabilities Equity Income",b.period),new d("Assets",null)],details:{}};_(b.balance.buckets).each(function(a){c.balance({period:a.period,categories:a.categories,
depth:b.depth}).then(function(c){a.raw_data=_.chain(c.data).map(function(a){a.amount=0>a.amount?-1*a.amount:a.amount;a.score=e(a.account);return a}).sortBy(function(a){return 1/a.amount}).sortBy(function(a){return a.account.split(":")[0]}).value().reverse();a.raw_total=_(c.data).reduce(function(a,b){return a+b.amount},0);a.accounts_selected=a.raw_data;b.filter_data()})})};b.graphed_accounts=["Expenses","Income"];(function(){c.accounts().then(function(a){b.accounts=a.data.map(function(a){return a.join(":")})})})();
g();(function(a){c.graph_values(a).then(function(a){b.periods=[];var c=_(a.data).reduce(function(a,b){return b.length>a.length?b:a},[]);_.chain(c).pluck("date").each(function(b){_(a.data).each(function(a){var c=_(a).find({date:b});_(c).isUndefined()&&a.push({date:b,amount:0,currency:_(a).first().currency})})});_(a.data).each(function(a){a=_(a).sortBy(function(a){return a.date})});b.graphiques={monthly_values:{options:{chart:{type:"multiBarChart",height:300,showControls:!1,showLegend:!0,showLabels:!0,
stacked:!1,duration:500,reduceXTicks:!1,rotateLabels:67,labelSunbeamLayout:!0,useInteractiveGuideline:!1,multibar:{dispatch:{elementClick:function(a){b.period=a.data.x;g()}}}}},data:_.chain(a.data).keys().reverse().map(function(c){var e="Income"==c?-1:1;return{key:c,values:_.chain(a.data[c]).map(function(a){var d=new Date(a.date);d=d.getFullYear()+"-"+(9>d.getMonth()?"0":"")+(d.getMonth()+1);b.periods.push(d);return{key:c,x:d,y:parseInt(a.amount)*e}}).sortBy(function(a){return a.x}).value()}}).value()}};
b.periods=_.chain(b.periods).uniq().sort().reverse().value();b.period=_(b.periods).first()})})({period:"",categories:b.graphed_accounts.join(" ")})}],template:'\n\x3cmd-content flex\x3d"100" layout\x3d"column"\x3e\n \x3cmd-card flex\x3d"100" layout\x3d"row"\x3e\n \x3cmd-card flex\x3d"20"\x3e\n \x3cselect style\x3d"height: 100%;" multiple ng:model\x3d"$ctrl.graphed_accounts"\x3e\n \x3coption ng:repeat\x3d"account in $ctrl.accounts"\x3e{{account}}\x3c/option\x3e\n \x3c/select\x3e\n \x3c/md-card\x3e\n \x3cmd-card flex\x3d"81"\x3e\n \x3cnvd3 data\x3d"$ctrl.graphiques.monthly_values.data"\n options\x3d"$ctrl.graphiques.monthly_values.options"\x3e\x3c/nvd3\x3e\n \x3c/md-card\x3e\n \x3c/md-card\x3e\n \x3ch1 style\x3d"text-align: center;"\x3e{{$ctrl.period | amDateFormat:\'MMMM YYYY\'}}\x3c/h1\x3e\n \x3cmd-card flex\x3d"100" layout\x3d"column"\n ng:repeat\x3d"bucket in $ctrl.balance.buckets"\x3e\n \x3cmd-toolbar\x3e\n \x3cspan ng:repeat\x3d"account in bucket.total_detailed"\x3e{{account.account}} \x3d {{account.amount | number:2}} \u20ac\x3c/span\x3e\n \x3c/md-toolbar\x3e\n \x3cmd-content layout\x3d"row"\x3e\n \x3cmd-card flex\x3d"20"\x3e\n \x3cselect style\x3d"height: 100%;" multiple\n ng:model\x3d"bucket.accounts_selected"\n ng:options\x3d"account.account for account in bucket.raw_data | orderBy:\'account\'"\n ng:change\x3d"filter_data()"\x3e\n \x3coption value\x3d\'\'\x3e...\x3c/option\x3e\n \x3c/select\x3e\n \x3c/md-card\x3e\n \x3cmd-card flex\x3d"78"\x3e\n \x3cnvd3 data\x3d"bucket.data"\n options\x3d"bucket.pie_graph_options" \x3e\n \x3c/nvd3\x3e\n \x3c/md-card\x3e\n \x3c!-- \x3cmd-card flex\x3d"56"\x3e\n \x3ctable class\x3d"table"\x3e\n \x3cthead\x3e\n \x3ctr\x3e\n \x3cth\x3e\x3cmd-buton ng:click\x3d"bucket.order_by( \'account\' )"\x3eaccount\x3c/md-buton\x3e\x3c/th\x3e\n \x3cth\x3e\x3cmd-buton ng:click\x3d"bucket.order_by( \'amount\' )"\x3eamount\x3c/md-buton\x3e\x3c/th\x3e\n \x3cth\x3e\x3cmd-buton ng:click\x3d"bucket.order_by( \'score\' )"\x3escore\x3c/md-buton\x3e\x3c/th\x3e\n \x3c/tr\x3e\n \x3c/thead\x3e\n \x3ctbody\x3e\n \x3ctr ng:repeat\x3d"account in bucket.data | orderBy:bucket.orderBy:bucket.orderDesc"\n ng:class\x3d"{\'even\': $even, \'odd\': $odd}"\n style\x3d"border-left:10px solid {{coloring_score( account.score )}};border-right:10px solid {{coloring_score( account.score )}}"\x3e\n \x3ctd style\x3d"border-bottom:1px solid {{coloring_score( account.score )}}"\x3e\n {{account.account}}\n \x3c/td\x3e\n \x3ctd style\x3d"text-align:right;border-bottom:1px solid {{coloring_score( account.score )}}"\x3e\n {{account.amount | number:2}} \u20ac\n \x3c/td\x3e\n \x3ctd style\x3d"text-align:right;border-bottom:1px solid {{coloring_score( account.score )}}"\x3e\n {{account.score}}\n \x3c/td\x3e\n \x3c/tr\x3e\n \x3c/tbody\x3e\n \x3c/table\x3e\n \x3c/md-card\x3e --\x3e\n \x3c/md-content\x3e\n \x3c/md-card\x3e\n\x3c/md-content\x3e\n'});
app.service("API",["$http",function(a){this.balance=function(c){return a.get("/api/ledger/balance",{params:{period:c.period,categories:c.categories,depth:c.depth}})};this.register=function(c){return a.get("/api/ledger/register",{params:{period:c.period,categories:c.categories}})};this.graph_values=function(c){return a.get("/api/ledger/graph_values",{params:{period:c.period,categories:c.categories}})};this.budget=function(c){return a.get("/api/ledger/budget",{params:{period:c.period,categories:c.categories}})};
this.dates_salaries=function(){return a.get("/api/ledger/dates_salaries")};this.accounts=function(){return a.get("/api/ledger/accounts")};this.cleared=function(){return a.get("/api/ledger/cleared")}}]);

View file

@ -1,276 +0,0 @@
app.controller( 'DashboardCtrl',
[ '$scope', '$filter', 'API',
function ( $scope, $filter, API ) {
$scope.xFunction = function () {
return function ( d ) {
return d.account;
};
};
$scope.yFunction = function () {
return function ( d ) {
return d.amount;
};
};
$scope.toolTipContentFunction = function () {
return function ( key, x, y, e, graph ) {
var details = $scope.balance.details[ key ];
return '<md-content><h3>' + key + '</h3>' + '<table>' + _( details ).map( function ( transaction ) {
return '<tr><td>' + transaction.date + '</td><td>' + transaction.payee + '</td><td style="text-align: right">' + $filter( 'number' )( transaction.amount, 2 ) + ' ' + transaction.currency + '</td></tr>';
} ).join( '' ) + '<tr><th></th><th>Total :</th><th>' + x + ' €</th></tr>' + '</table></md-content>';
};
};
// compute an account's score: from 1 (good) to 10 (bad), 0 is neutral/undecided
var score_account = function ( account ) {
if ( account.match( /^Income/ ) ) {
return -10;
} else if ( account.match( /^Expenses:(courses|Hang)$/ ) ) {
return 1;
} else if ( account.match( /^Expenses:Home/ ) ) {
return 1;
} else if ( account.match( /^Expenses:Health/ ) ) {
return 1;
} else if ( account.match( /^Expenses:Car/ ) ) {
return 4;
} else if ( account.match( /^Expenses:(Food|Transport)/ ) ) {
return 5;
} else if ( account.match( /^Expenses:(Shopping|Leisure)/ ) ) {
return 9;
} else if ( account.match( /^Expenses:Gadgets/ ) ) {
return 10;
} else if ( account.match( /^Liabilities/ ) ) {
return 0;
} else if ( account.match( /^Assets/ ) ) {
return -100;
} else {
return 0;
}
};
$scope.coloring_score = function ( score ) {
var adjusted_score = score;
var color_scale = [ '#99f', '#0f0', '#3f0', '#6f0', '#9f0', '#cf0', '#fc0', '#f90', '#f60', '#f30', '#f00' ];
if ( score <= -100 ) {
// Assets
adjusted_score = ( score * -1 ) - 100;
color_scale = [ '#f0f' ];
} else if ( score <= -10 ) {
// Income
adjusted_score = ( score * -1 ) - 10;
color_scale = [ '#360' ];
}
return color_scale[ adjusted_score ];
};
$scope.color = function () {
return function ( d, i ) {
return $scope.coloring_score( score_account( d.data.account ) );
};
};
$scope.filter_data = function() {
_($scope.balance.buckets).each( function( bucket ) {
bucket.data = [];
if ( _(bucket.accounts_selected).isEmpty() && bucket.score_threshold === 0 ) {
bucket.data = bucket.raw_data;
} else {
_(bucket.accounts_selected).each( function( account_selected ) {
bucket.data = bucket.data.concat( $filter('filter')( bucket.raw_data, account_selected, true ) );
} );
}
bucket.total_detailed = _.chain( bucket.data )
.groupBy( function( account ) {
return account.account.split(':')[0];
} )
.each( function( category ) {
category.total = _( category ).reduce( function ( memo, account ) {
return memo + account.amount;
}, 0 );
} )
.value();
bucket.total_detailed = _.chain(bucket.total_detailed)
.keys()
.map( function( key ) {
return { account: key,
amount: bucket.total_detailed[key].total };
} )
.value();
} );
};
var Bucket = function( categories, period ) {
var _this = this;
this.categories = categories;
this.period = period;
this.score_threshold = 0;
this.orderBy = 'amount';
this.orderDesc = false;
this.order_by = function( field ) {
if ( _this.orderBy == field ) {
_this.orderDesc = !_this.orderDesc;
} else {
_this.orderBy = field;
}
};
this.pie_graph_options = { chart: { type: 'pieChart',
donut: true,
donutRatio: 0.25,
height: 300,
x: function( d ) { return d.account; },
y: function( d ) { return d.amount; },
showLabels: false,
showLegend: true,
legendPosition: 'right',
showTooltipPercent: true,
duration: 500,
labelThreshold: 0.01,
labelSunbeamLayout: true,
donutLabelsOutside: true
} };
};
$scope.depth = 99;
var retrieve_period_detailed_data = function () {
$scope.balance = {
buckets: [ new Bucket( 'Expenses Liabilities Equity Income', $scope.period ),
new Bucket( 'Assets', null ) ],
details: {}
};
_($scope.balance.buckets).each( function( bucket ) {
API.balance( { period: bucket.period,
categories: bucket.categories,
depth: $scope.depth } )
.then( function ( response ) {
bucket.raw_data = _.chain( response.data )
.map( function( account ) {
account.amount = ( account.amount < 0 ) ? account.amount * -1 : account.amount;
account.score = score_account( account.account );
return account;
} )
.sortBy( function ( account ) {
return 1 / account.amount;
} )
.sortBy( function ( account ) {
return account.account.split(":")[0];
} )
.value()
.reverse();
bucket.raw_total = _( response.data ).reduce( function ( memo, account ) {
return memo + account.amount;
}, 0 );
bucket.accounts_selected = bucket.raw_data;
$scope.filter_data();
} );
} );
};
var retrieve_accounts = function() {
API.accounts()
.then( function ( response ) {
$scope.accounts = response.data.map( function( account_ary ) {
return account_ary.join( ':' );
} );
} );
};
var retrieve_graph_values = function( params ) {
API.graph_values( params ).then( function( response ) {
$scope.periods = [];
var largest_cat = _(response.data).reduce( function( memo, cat ) {
return cat.length > memo.length ? cat : memo;
}, [] );
_.chain(largest_cat)
.pluck( 'date' )
.each( function( date ) {
_(response.data).each( function( cat ) {
var value = _(cat).find( { date: date } );
if ( _(value).isUndefined() ) {
cat.push( { date: date,
amount: 0,
currency: _(cat).first().currency } );
}
} );
} );
_(response.data).each( function( cat ) {
cat = _(cat).sortBy( function( month ) {
return month.date;
} );
} );
$scope.graphiques = {
monthly_values: {
options: {
chart: {
type: 'multiBarChart',
height: 300,
showControls: false,
showLegend: true,
showLabels: true,
stacked: false,
duration: 500,
reduceXTicks: false,
rotateLabels: 67,
labelSunbeamLayout: true,
useInteractiveGuideline: false,
multibar: {
dispatch: {
elementClick: function( event ) {
$scope.period = event.data.x;
retrieve_period_detailed_data();
}
}
}
}
},
data: _.chain( response.data )
.keys()
.reverse()
.map( function( key ) {
var multiplicator = ( key == "Income" ) ? -1 : 1;
return { key: key,
values: _.chain(response.data[ key ]).map( function( value ) {
var date = new Date( value.date );
var period = date.getFullYear() + '-' + ( date.getMonth() < 9 ? '0' : '' ) + ( date.getMonth() + 1 );
$scope.periods.push( period );
return { key: key,
x: period,
y: parseInt( value.amount ) * multiplicator };
} )
.sortBy( function( item ) { return item.x; } )
.value()
};
} )
.value()
}
};
$scope.periods = _.chain($scope.periods).uniq().sort().reverse().value();
$scope.period = _($scope.periods).first();
} );
};
$scope.graphed_accounts = [ 'Expenses', 'Income' ];
$scope.$watch( 'period', function () {
retrieve_period_detailed_data();
} );
retrieve_accounts();
$scope.$watch( 'graphed_accounts', function () {
retrieve_graph_values( { period: '',
categories: $scope.graphed_accounts.join(' ') } );
} );
}
] );

View file

@ -1,52 +0,0 @@
app.service( 'API',
[ '$http',
function( $http ) {
this.balance = function( params ) {
return $http.get( '/api/ledger/balance', {
params: {
period: params.period,
categories: params.categories,
depth: params.depth
}
} );
};
this.register = function( params ) {
return $http.get( '/api/ledger/register', {
params: {
period: params.period,
categories: params.categories
}
} );
};
this.graph_values = function( params ) {
return $http.get( '/api/ledger/graph_values', {
params: {
period: params.period,
categories: params.categories
}
} );
};
this.budget = function( params ) {
return $http.get( '/api/ledger/budget', {
params: {
period: params.period,
categories: params.categories
}
} );
};
this.dates_salaries = function( ) {
return $http.get( '/api/ledger/dates_salaries' );
};
this.accounts = function( ) {
return $http.get( '/api/ledger/accounts' );
};
this.cleared = function( ) {
return $http.get( '/api/ledger/cleared' );
};
} ] );

View file

@ -1,20 +0,0 @@
// Sub-application/main Level State
app.config( [ '$stateProvider', '$urlRouterProvider',
function ( $stateProvider, $urlRouterProvider ) {
$stateProvider
.state( 'app', {
url: '',
views: {
'main': {
templateUrl: 'app/js/templates/dashboard.html',
controller: 'DashboardCtrl'
}
}
} )
.state( '404', {
url: '/404',
templateUrl: 'app/js/templates/404.html'
} );
}
] );

View file

@ -1 +0,0 @@
<div>404 Error</div>

View file

@ -1,61 +0,0 @@
<md-content flex="100" layout="column">
<md-card flex="100" layout="row">
<md-card flex="20">
<select style="height: 100%;" multiple ng:model="graphed_accounts">
<option ng:repeat="account in accounts">{{account}}</option>
</select>
</md-card>
<md-card flex="81">
<nvd3 data="graphiques.monthly_values.data"
options="graphiques.monthly_values.options"></nvd3>
</md-card>
</md-card>
<h1 style="text-align: center;">{{period | amDateFormat:'MMMM YYYY'}}</h1>
<md-card flex="100" layout="column"
ng:repeat="bucket in balance.buckets">
<md-toolbar>
<span ng:repeat="account in bucket.total_detailed">{{account.account}} = {{account.amount | number:2}} €</span>
</md-toolbar>
<md-content layout="row">
<md-card flex="20">
<select style="height: 100%;" multiple
ng:model="bucket.accounts_selected"
ng:options="account.account for account in bucket.raw_data | orderBy:'account'"
ng:change="filter_data()">
<option value=''>...</option>
</select>
</md-card>
<md-card flex="78">
<nvd3 data="bucket.data"
options="bucket.pie_graph_options" >
</nvd3>
</md-card>
<!-- <md-card flex="56">
<table class="table">
<thead>
<tr>
<th><md-buton ng:click="bucket.order_by( 'account' )">account</md-buton></th>
<th><md-buton ng:click="bucket.order_by( 'amount' )">amount</md-buton></th>
<th><md-buton ng:click="bucket.order_by( 'score' )">score</md-buton></th>
</tr>
</thead>
<tbody>
<tr ng:repeat="account in bucket.data | orderBy:bucket.orderBy:bucket.orderDesc"
ng:class="{'even': $even, 'odd': $odd}"
style="border-left:10px solid {{coloring_score( account.score )}};border-right:10px solid {{coloring_score( account.score )}}">
<td style="border-bottom:1px solid {{coloring_score( account.score )}}">
{{account.account}}
</td>
<td style="text-align:right;border-bottom:1px solid {{coloring_score( account.score )}}">
{{account.amount | number:2}} €
</td>
<td style="text-align:right;border-bottom:1px solid {{coloring_score( account.score )}}">
{{account.score}}
</td>
</tr>
</tbody>
</table>
</md-card> -->
</md-content>
</md-card>
</md-content>

6
public/app/ts/app.ts Normal file
View file

@ -0,0 +1,6 @@
var app = angular.module( 'app', [ 'ui.router',
'nvd3',
'angularMoment',
'chieffancypants.loadingBar',
'ngMaterial'
] );

View file

@ -0,0 +1,349 @@
app.component('dashboard',
{
controller: ['$filter', 'API',
function($filter, API) {
let ctrl = this;
ctrl.xFunction = function() {
return function(d) {
return d.account;
};
};
ctrl.yFunction = function() {
return function(d) {
return d.amount;
};
};
ctrl.toolTipContentFunction = function() {
return function(key, x, y, e, graph) {
let details = ctrl.balance.details[key];
return '<md-content><h3>' + key + '</h3>' + '<table>' + _(details).map(function(transaction) {
return '<tr><td>' + transaction.date + '</td><td>' + transaction.payee + '</td><td style="text-align: right">' + $filter('number')(transaction.amount, 2) + ' ' + transaction.currency + '</td></tr>';
}).join('') + '<tr><th></th><th>Total :</th><th>' + x + ' €</th></tr>' + '</table></md-content>';
};
};
// compute an account's score: from 1 (good) to 10 (bad), 0 is neutral/undecided
let score_account = function(account) {
if (account.match(/^Income/)) {
return -10;
} else if (account.match(/^Expenses:(courses|Hang)$/)) {
return 1;
} else if (account.match(/^Expenses:Home/)) {
return 1;
} else if (account.match(/^Expenses:Health/)) {
return 1;
} else if (account.match(/^Expenses:Car/)) {
return 4;
} else if (account.match(/^Expenses:(Food|Transport)/)) {
return 5;
} else if (account.match(/^Expenses:(Shopping|Leisure)/)) {
return 9;
} else if (account.match(/^Expenses:Gadgets/)) {
return 10;
} else if (account.match(/^Liabilities/)) {
return 0;
} else if (account.match(/^Assets/)) {
return -100;
} else {
return 0;
}
};
ctrl.coloring_score = function(score) {
let adjusted_score = score;
let color_scale = ['#99f', '#0f0', '#3f0', '#6f0', '#9f0', '#cf0', '#fc0', '#f90', '#f60', '#f30', '#f00'];
if (score <= -100) {
// Assets
adjusted_score = (score * -1) - 100;
color_scale = ['#f0f'];
} else if (score <= -10) {
// Income
adjusted_score = (score * -1) - 10;
color_scale = ['#360'];
}
return color_scale[adjusted_score];
};
ctrl.color = function() {
return function(d, i) {
return ctrl.coloring_score(score_account(d.data.account));
};
};
ctrl.filter_data = function() {
_(ctrl.balance.buckets).each(function(bucket) {
bucket.data = [];
if (_(bucket.accounts_selected).isEmpty() && bucket.score_threshold === 0) {
bucket.data = bucket.raw_data;
} else {
_(bucket.accounts_selected).each(function(account_selected) {
bucket.data = bucket.data.concat($filter('filter')(bucket.raw_data, account_selected, true));
});
}
bucket.total_detailed = _.chain(bucket.data)
.groupBy(function(account) {
return account.account.split(':')[0];
})
.each(function(category) {
category.total = _(category).reduce(function(memo, account) {
return memo + account.amount;
}, 0);
})
.value();
bucket.total_detailed = _.chain(bucket.total_detailed)
.keys()
.map(function(key) {
return {
account: key,
amount: bucket.total_detailed[key].total
};
})
.value();
});
};
let Bucket = function(categories, period) {
let _this = this;
this.categories = categories;
this.period = period;
this.score_threshold = 0;
this.orderBy = 'amount';
this.orderDesc = false;
this.order_by = function(field) {
if (_this.orderBy == field) {
_this.orderDesc = !_this.orderDesc;
} else {
_this.orderBy = field;
}
};
this.pie_graph_options = {
chart: {
type: 'pieChart',
donut: true,
donutRatio: 0.25,
height: 300,
x: function(d) { return d.account; },
y: function(d) { return d.amount; },
showLabels: false,
showLegend: true,
legendPosition: 'right',
showTooltipPercent: true,
duration: 500,
labelThreshold: 0.01,
labelSunbeamLayout: true,
labelsOutside: true
}
};
};
ctrl.depth = 99;
let retrieve_period_detailed_data = function() {
ctrl.balance = {
buckets: [new Bucket('Expenses Liabilities Equity Income', ctrl.period),
new Bucket('Assets', null)],
details: {}
};
_(ctrl.balance.buckets).each(function(bucket) {
API.balance({
period: bucket.period,
categories: bucket.categories,
depth: ctrl.depth
})
.then(function(response) {
bucket.raw_data = _.chain(response.data)
.map(function(account) {
account.amount = (account.amount < 0) ? account.amount * -1 : account.amount;
account.score = score_account(account.account);
return account;
})
.sortBy(function(account) {
return 1 / account.amount;
})
.sortBy(function(account) {
return account.account.split(":")[0];
})
.value()
.reverse();
bucket.raw_total = _(response.data).reduce(function(memo, account) {
return memo + account.amount;
}, 0);
bucket.accounts_selected = bucket.raw_data;
ctrl.filter_data();
});
});
};
let retrieve_accounts = function() {
API.accounts()
.then(function(response) {
ctrl.accounts = response.data.map(function(account_ary) {
return account_ary.join(':');
});
});
};
let retrieve_graph_values = function(params) {
API.graph_values(params).then(function(response) {
ctrl.periods = [];
let largest_cat = _(response.data).reduce(function(memo, cat) {
return cat.length > memo.length ? cat : memo;
}, []);
_.chain(largest_cat)
.pluck('date')
.each(function(date) {
_(response.data).each(function(cat) {
let value = _(cat).find({ date: date });
if (_(value).isUndefined()) {
cat.push({
date: date,
amount: 0,
currency: _(cat).first().currency
});
}
});
});
_(response.data).each(function(cat) {
cat = _(cat).sortBy(function(month) {
return month.date;
});
});
ctrl.graphiques = {
monthly_values: {
options: {
chart: {
type: 'multiBarChart',
height: 300,
showControls: false,
showLegend: true,
showLabels: true,
stacked: false,
duration: 500,
reduceXTicks: false,
rotateLabels: 67,
labelSunbeamLayout: true,
useInteractiveGuideline: false,
multibar: {
dispatch: {
elementClick: function(event) {
ctrl.period = event.data.x;
retrieve_period_detailed_data();
}
}
}
}
},
data: _.chain(response.data)
.keys()
.reverse()
.map(function(key) {
let multiplicator = (key == "Income") ? -1 : 1;
return {
key: key,
values: _.chain(response.data[key]).map(function(value) {
let date = new Date(value.date);
let period = date.getFullYear() + '-' + (date.getMonth() < 9 ? '0' : '') + (date.getMonth() + 1);
ctrl.periods.push(period);
return {
key: key,
x: period,
y: parseInt(value.amount) * multiplicator
};
})
.sortBy(function(item) { return item.x; })
.value()
};
})
.value()
}
};
ctrl.periods = _.chain(ctrl.periods).uniq().sort().reverse().value();
ctrl.period = _(ctrl.periods).first();
});
};
ctrl.graphed_accounts = ['Expenses', 'Income'];
retrieve_accounts();
retrieve_period_detailed_data();
retrieve_graph_values({ period: '',
categories: ctrl.graphed_accounts.join(' ') });
}
],
template: `
<md-content flex="100" layout="column">
<md-card flex="100" layout="row">
<md-card flex="20">
<select style="height: 100%;" multiple ng:model="$ctrl.graphed_accounts">
<option ng:repeat="account in $ctrl.accounts">{{account}}</option>
</select>
</md-card>
<md-card flex="81">
<nvd3 data="$ctrl.graphiques.monthly_values.data"
options="$ctrl.graphiques.monthly_values.options"></nvd3>
</md-card>
</md-card>
<h1 style="text-align: center;">{{$ctrl.period | amDateFormat:'MMMM YYYY'}}</h1>
<md-card flex="100" layout="column"
ng:repeat="bucket in $ctrl.balance.buckets">
<md-toolbar>
<span ng:repeat="account in bucket.total_detailed">{{account.account}} = {{account.amount | number:2}} </span>
</md-toolbar>
<md-content layout="row">
<md-card flex="20">
<select style="height: 100%;" multiple
ng:model="bucket.accounts_selected"
ng:options="account.account for account in bucket.raw_data | orderBy:'account'"
ng:change="filter_data()">
<option value=''>...</option>
</select>
</md-card>
<md-card flex="78">
<nvd3 data="bucket.data"
options="bucket.pie_graph_options" >
</nvd3>
</md-card>
<!-- <md-card flex="56">
<table class="table">
<thead>
<tr>
<th><md-buton ng:click="bucket.order_by( 'account' )">account</md-buton></th>
<th><md-buton ng:click="bucket.order_by( 'amount' )">amount</md-buton></th>
<th><md-buton ng:click="bucket.order_by( 'score' )">score</md-buton></th>
</tr>
</thead>
<tbody>
<tr ng:repeat="account in bucket.data | orderBy:bucket.orderBy:bucket.orderDesc"
ng:class="{'even': $even, 'odd': $odd}"
style="border-left:10px solid {{coloring_score( account.score )}};border-right:10px solid {{coloring_score( account.score )}}">
<td style="border-bottom:1px solid {{coloring_score( account.score )}}">
{{account.account}}
</td>
<td style="text-align:right;border-bottom:1px solid {{coloring_score( account.score )}}">
{{account.amount | number:2}}
</td>
<td style="text-align:right;border-bottom:1px solid {{coloring_score( account.score )}}">
{{account.score}}
</td>
</tr>
</tbody>
</table>
</md-card> -->
</md-content>
</md-card>
</md-content>
`
});

View file

@ -0,0 +1,54 @@
app.service( 'API',
[ '$http',
function( $http ) {
let API = this;
API.balance = function( params ) {
return $http.get( '/api/ledger/balance', {
params: {
period: params.period,
categories: params.categories,
depth: params.depth
}
} );
};
API.register = function( params ) {
return $http.get( '/api/ledger/register', {
params: {
period: params.period,
categories: params.categories
}
} );
};
API.graph_values = function( params ) {
return $http.get( '/api/ledger/graph_values', {
params: {
period: params.period,
categories: params.categories
}
} );
};
API.budget = function( params ) {
return $http.get( '/api/ledger/budget', {
params: {
period: params.period,
categories: params.categories
}
} );
};
API.dates_salaries = function( ) {
return $http.get( '/api/ledger/dates_salaries' );
};
API.accounts = function( ) {
return $http.get( '/api/ledger/accounts' );
};
API.cleared = function( ) {
return $http.get( '/api/ledger/cleared' );
};
} ] );

15
public/app/ts/state.ts Normal file
View file

@ -0,0 +1,15 @@
// Sub-application/main Level State
app.config( [ '$stateProvider', '$urlRouterProvider',
function ( $stateProvider, $urlRouterProvider ) {
$stateProvider
.state( 'app', {
url: '',
views: {
'main': {
component: 'dashboard'
}
}
} );
}
] );

15
public/app/tsconfig.json Normal file
View file

@ -0,0 +1,15 @@
{
"compilerOptions": {
"target": "es5",
"declaration": false,
"removeComments": true,
"sourceMap": false,
"outFile": "js/app.js"
},
"include": [
"ts/app.ts",
"ts/state.ts",
"ts/components/*.ts",
"ts/services/*.ts",
],
}

View file

@ -1,6 +1,6 @@
/**
* @license AngularJS v1.5.8
* (c) 2010-2016 Google, Inc. http://angularjs.org
* @license AngularJS v1.6.6
* (c) 2010-2017 Google, Inc. http://angularjs.org
* License: MIT
*/
(function(window, angular) {'use strict';
@ -29,7 +29,7 @@ var CSS_PREFIX = '', TRANSITION_PROP, TRANSITIONEND_EVENT, ANIMATION_PROP, ANIMA
// Also, the only modern browser that uses vendor prefixes for transitions/keyframes is webkit
// therefore there is no reason to test anymore for other vendor prefixes:
// http://caniuse.com/#search=transition
if ((window.ontransitionend === void 0) && (window.onwebkittransitionend !== void 0)) {
if ((window.ontransitionend === undefined) && (window.onwebkittransitionend !== undefined)) {
CSS_PREFIX = '-webkit-';
TRANSITION_PROP = 'WebkitTransition';
TRANSITIONEND_EVENT = 'webkitTransitionEnd transitionend';
@ -38,7 +38,7 @@ if ((window.ontransitionend === void 0) && (window.onwebkittransitionend !== voi
TRANSITIONEND_EVENT = 'transitionend';
}
if ((window.onanimationend === void 0) && (window.onwebkitanimationend !== void 0)) {
if ((window.onanimationend === undefined) && (window.onwebkitanimationend !== undefined)) {
CSS_PREFIX = '-webkit-';
ANIMATION_PROP = 'WebkitAnimation';
ANIMATIONEND_EVENT = 'webkitAnimationEnd animationend';
@ -63,7 +63,7 @@ var TRANSITION_DURATION_PROP = TRANSITION_PROP + DURATION_KEY;
var ngMinErr = angular.$$minErr('ng');
function assertArg(arg, name, reason) {
if (!arg) {
throw ngMinErr('areq', "Argument '{0}' is {1}", (name || '?'), (reason || "required"));
throw ngMinErr('areq', 'Argument \'{0}\' is {1}', (name || '?'), (reason || 'required'));
}
return arg;
}
@ -139,7 +139,7 @@ function extractElementNode(element) {
if (!element[0]) return element;
for (var i = 0; i < element.length; i++) {
var elm = element[i];
if (elm.nodeType == ELEMENT_NODE) {
if (elm.nodeType === ELEMENT_NODE) {
return elm;
}
}
@ -423,7 +423,7 @@ var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) {
* of the children's parents are currently animating. By default, when an element has an active `enter`, `leave`, or `move`
* (structural) animation, child elements that also have an active structural animation are not animated.
*
* Note that even if `ngAnimteChildren` is set, no child animations will run when the parent element is removed from the DOM (`leave` animation).
* Note that even if `ngAnimateChildren` is set, no child animations will run when the parent element is removed from the DOM (`leave` animation).
*
*
* @param {string} ngAnimateChildren If the value is empty, `true` or `on`,
@ -432,7 +432,7 @@ var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) {
* @example
* <example module="ngAnimateChildren" name="ngAnimateChildren" deps="angular-animate.js" animations="true">
<file name="index.html">
<div ng-controller="mainController as main">
<div ng-controller="MainController as main">
<label>Show container? <input type="checkbox" ng-model="main.enterElement" /></label>
<label>Animate children? <input type="checkbox" ng-model="main.animateChildren" /></label>
<hr>
@ -482,7 +482,7 @@ var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) {
</file>
<file name="script.js">
angular.module('ngAnimateChildren', ['ngAnimate'])
.controller('mainController', function() {
.controller('MainController', function MainController() {
this.animateChildren = false;
this.enterElement = false;
});
@ -510,6 +510,8 @@ var $$AnimateChildrenDirective = ['$interpolate', function($interpolate) {
};
}];
/* exported $AnimateCssProvider */
var ANIMATE_TIMER_KEY = '$$animateCss';
/**
@ -727,7 +729,6 @@ var ANIMATE_TIMER_KEY = '$$animateCss';
* * `end` - This method will cancel the animation and remove all applied CSS classes and styles.
*/
var ONE_SECOND = 1000;
var BASE_TEN = 10;
var ELAPSED_TIME_MAX_DECIMAL_PLACES = 3;
var CLOSING_TIME_BUFFER = 1.5;
@ -789,7 +790,7 @@ function parseMaxTime(str) {
forEach(values, function(value) {
// it's always safe to consider only second values and omit `ms` values since
// getComputedStyle will always handle the conversion for us
if (value.charAt(value.length - 1) == 's') {
if (value.charAt(value.length - 1) === 's') {
value = value.substring(0, value.length - 1);
}
value = parseFloat(value) || 0;
@ -857,7 +858,7 @@ function registerRestorableStyles(backup, node, properties) {
});
}
var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
var $AnimateCssProvider = ['$animateProvider', /** @this */ function($animateProvider) {
var gcsLookup = createLocalCacheLookup();
var gcsStaggerLookup = createLocalCacheLookup();
@ -870,7 +871,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
var parentCounter = 0;
function gcsHashFn(node, extraClasses) {
var KEY = "$$ngAnimateParentKey";
var KEY = '$$ngAnimateParentKey';
var parentNode = node.parentNode;
var parentID = parentNode[KEY] || (parentNode[KEY] = ++parentCounter);
return parentID + '-' + node.getAttribute('class') + '-' + extraClasses;
@ -921,7 +922,6 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
return stagger || {};
}
var cancelLastRAFRequest;
var rafWaitQueue = [];
function waitUntilQuiet(callback) {
rafWaitQueue.push(callback);
@ -1110,7 +1110,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
var flags = {};
flags.hasTransitions = timings.transitionDuration > 0;
flags.hasAnimations = timings.animationDuration > 0;
flags.hasTransitionAll = flags.hasTransitions && timings.transitionProperty == 'all';
flags.hasTransitionAll = flags.hasTransitions && timings.transitionProperty === 'all';
flags.applyTransitionDuration = hasToStyles && (
(flags.hasTransitions && !flags.hasTransitionAll)
|| (flags.hasAnimations && !flags.hasTransitions));
@ -1142,7 +1142,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
if (options.delay != null) {
var delayStyle;
if (typeof options.delay !== "boolean") {
if (typeof options.delay !== 'boolean') {
delayStyle = parseFloat(options.delay);
// number in options.delay means we have to recalculate the delay for the closing timeout
maxDelay = Math.max(delayStyle, 0);
@ -1220,7 +1220,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
close(true);
}
function close(rejected) { // jshint ignore:line
function close(rejected) {
// if the promise has been called already then we shouldn't close
// the animation again
if (animationClosed || (animationCompleted && animationPaused)) return;
@ -1247,8 +1247,11 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
if (Object.keys(restoreStyles).length) {
forEach(restoreStyles, function(value, prop) {
value ? node.style.setProperty(prop, value)
: node.style.removeProperty(prop);
if (value) {
node.style.setProperty(prop, value);
} else {
node.style.removeProperty(prop);
}
});
}
@ -1351,9 +1354,11 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
animationPaused = !playAnimation;
if (timings.animationDuration) {
var value = blockKeyframeAnimations(node, animationPaused);
animationPaused
? temporaryStyles.push(value)
: removeFromArray(temporaryStyles, value);
if (animationPaused) {
temporaryStyles.push(value);
} else {
removeFromArray(temporaryStyles, value);
}
}
} else if (animationPaused && playAnimation) {
animationPaused = false;
@ -1402,7 +1407,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
$$jqLite.addClass(element, activeClasses);
if (flags.recalculateTimingStyles) {
fullClassName = node.className + ' ' + preparationClasses;
fullClassName = node.getAttribute('class') + ' ' + preparationClasses;
cacheKey = gcsHashFn(node, fullClassName);
timings = computeTimings(node, fullClassName, cacheKey);
@ -1420,7 +1425,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
}
if (flags.applyAnimationDelay) {
relativeDelay = typeof options.delay !== "boolean" && truthyTimingValue(options.delay)
relativeDelay = typeof options.delay !== 'boolean' && truthyTimingValue(options.delay)
? parseFloat(options.delay)
: relativeDelay;
@ -1512,7 +1517,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
}];
}];
var $$AnimateCssDriverProvider = ['$$animationProvider', function($$animationProvider) {
var $$AnimateCssDriverProvider = ['$$animationProvider', /** @this */ function($$animationProvider) {
$$animationProvider.drivers.push('$$animateCssDriver');
var NG_ANIMATE_SHIM_CLASS_NAME = 'ng-animate-shim';
@ -1541,8 +1546,6 @@ var $$AnimateCssDriverProvider = ['$$animationProvider', function($$animationPro
isDocumentFragment(rootNode) || bodyNode.contains(rootNode) ? rootNode : bodyNode
);
var applyAnimationClasses = applyAnimationClassesFactory($$jqLite);
return function initDriverFn(animationDetails) {
return animationDetails.from && animationDetails.to
? prepareFromToAnchorAnimation(animationDetails.from,
@ -1784,7 +1787,7 @@ var $$AnimateCssDriverProvider = ['$$animationProvider', function($$animationPro
// TODO(matsko): add documentation
// by the time...
var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
var $$AnimateJsProvider = ['$animateProvider', /** @this */ function($animateProvider) {
this.$get = ['$injector', '$$AnimateRunner', '$$jqLite',
function($injector, $$AnimateRunner, $$jqLite) {
@ -1823,7 +1826,7 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
var before, after;
if (animations.length) {
var afterFn, beforeFn;
if (event == 'leave') {
if (event === 'leave') {
beforeFn = 'leave';
afterFn = 'afterLeave'; // TODO(matsko): get rid of this
} else {
@ -2036,11 +2039,19 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
});
}
runners.length ? $$AnimateRunner.all(runners, callback) : callback();
if (runners.length) {
$$AnimateRunner.all(runners, callback);
} else {
callback();
}
return function endFn(reject) {
forEach(runners, function(runner) {
reject ? runner.cancel() : runner.end();
if (reject) {
runner.cancel();
} else {
runner.end();
}
});
};
};
@ -2063,7 +2074,7 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
}];
}];
var $$AnimateJsDriverProvider = ['$$animationProvider', function($$animationProvider) {
var $$AnimateJsDriverProvider = ['$$animationProvider', /** @this */ function($$animationProvider) {
$$animationProvider.drivers.push('$$animateJsDriver');
this.$get = ['$$animateJs', '$$AnimateRunner', function($$animateJs, $$AnimateRunner) {
return function initDriverFn(animationDetails) {
@ -2125,7 +2136,7 @@ var $$AnimateJsDriverProvider = ['$$animationProvider', function($$animationProv
var NG_ANIMATE_ATTR_NAME = 'data-ng-animate';
var NG_ANIMATE_PIN_DATA = '$ngAnimatePin';
var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
var $$AnimateQueueProvider = ['$animateProvider', /** @this */ function($animateProvider) {
var PRE_DIGEST_STATE = 1;
var RUNNING_STATE = 2;
var ONE_SPACE = ' ';
@ -2159,9 +2170,9 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
}
}
function isAllowed(ruleType, element, currentAnimation, previousAnimation) {
function isAllowed(ruleType, currentAnimation, previousAnimation) {
return rules[ruleType].some(function(fn) {
return fn(element, currentAnimation, previousAnimation);
return fn(currentAnimation, previousAnimation);
});
}
@ -2171,40 +2182,40 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
return and ? a && b : a || b;
}
rules.join.push(function(element, newAnimation, currentAnimation) {
rules.join.push(function(newAnimation, currentAnimation) {
// if the new animation is class-based then we can just tack that on
return !newAnimation.structural && hasAnimationClasses(newAnimation);
});
rules.skip.push(function(element, newAnimation, currentAnimation) {
rules.skip.push(function(newAnimation, currentAnimation) {
// there is no need to animate anything if no classes are being added and
// there is no structural animation that will be triggered
return !newAnimation.structural && !hasAnimationClasses(newAnimation);
});
rules.skip.push(function(element, newAnimation, currentAnimation) {
rules.skip.push(function(newAnimation, currentAnimation) {
// why should we trigger a new structural animation if the element will
// be removed from the DOM anyway?
return currentAnimation.event == 'leave' && newAnimation.structural;
return currentAnimation.event === 'leave' && newAnimation.structural;
});
rules.skip.push(function(element, newAnimation, currentAnimation) {
rules.skip.push(function(newAnimation, currentAnimation) {
// if there is an ongoing current animation then don't even bother running the class-based animation
return currentAnimation.structural && currentAnimation.state === RUNNING_STATE && !newAnimation.structural;
});
rules.cancel.push(function(element, newAnimation, currentAnimation) {
rules.cancel.push(function(newAnimation, currentAnimation) {
// there can never be two structural animations running at the same time
return currentAnimation.structural && newAnimation.structural;
});
rules.cancel.push(function(element, newAnimation, currentAnimation) {
rules.cancel.push(function(newAnimation, currentAnimation) {
// if the previous animation is already running, but the new animation will
// be triggered, but the new animation is structural
return currentAnimation.state === RUNNING_STATE && newAnimation.structural;
});
rules.cancel.push(function(element, newAnimation, currentAnimation) {
rules.cancel.push(function(newAnimation, currentAnimation) {
// cancel the animation if classes added / removed in both animation cancel each other out,
// but only if the current animation isn't structural
@ -2223,13 +2234,15 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
return hasMatchingClasses(nA, cR) || hasMatchingClasses(nR, cA);
});
this.$get = ['$$rAF', '$rootScope', '$rootElement', '$document', '$$HashMap',
this.$get = ['$$rAF', '$rootScope', '$rootElement', '$document', '$$Map',
'$$animation', '$$AnimateRunner', '$templateRequest', '$$jqLite', '$$forceReflow',
function($$rAF, $rootScope, $rootElement, $document, $$HashMap,
$$animation, $$AnimateRunner, $templateRequest, $$jqLite, $$forceReflow) {
'$$isDocumentHidden',
function($$rAF, $rootScope, $rootElement, $document, $$Map,
$$animation, $$AnimateRunner, $templateRequest, $$jqLite, $$forceReflow,
$$isDocumentHidden) {
var activeAnimationsLookup = new $$HashMap();
var disabledElementsLookup = new $$HashMap();
var activeAnimationsLookup = new $$Map();
var disabledElementsLookup = new $$Map();
var animationsEnabled = null;
function postDigestTaskFactory() {
@ -2281,12 +2294,15 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
var callbackRegistry = Object.create(null);
// remember that the classNameFilter is set during the provider/config
// stage therefore we can optimize here and setup a helper function
// remember that the `customFilter`/`classNameFilter` are set during the
// provider/config stage therefore we can optimize here and setup helper functions
var customFilter = $animateProvider.customFilter();
var classNameFilter = $animateProvider.classNameFilter();
var isAnimatableClassName = !classNameFilter
? function() { return true; }
: function(className) {
var returnTrue = function() { return true; };
var isAnimatableByFilter = customFilter || returnTrue;
var isAnimatableClassName = !classNameFilter ? returnTrue : function(node, options) {
var className = [node.getAttribute('class'), options.addClass, options.removeClass].join(' ');
return classNameFilter.test(className);
};
@ -2297,16 +2313,12 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
}
// IE9-11 has no method "contains" in SVG element and in Node.prototype. Bug #10259.
var contains = window.Node.prototype.contains || function(arg) {
// jshint bitwise: false
var contains = window.Node.prototype.contains || /** @this */ function(arg) {
// eslint-disable-next-line no-bitwise
return this === arg || !!(this.compareDocumentPosition(arg) & 16);
// jshint bitwise: true
};
function findCallbacks(parent, element, event) {
var targetNode = getDomNode(element);
var targetParentNode = getDomNode(parent);
function findCallbacks(targetParentNode, targetNode, event) {
var matches = [];
var entries = callbackRegistry[event];
if (entries) {
@ -2331,11 +2343,11 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
});
}
function cleanupEventListeners(phase, element) {
if (phase === 'close' && !element[0].parentNode) {
function cleanupEventListeners(phase, node) {
if (phase === 'close' && !node.parentNode) {
// If the element is not attached to a parentNode, it has been removed by
// the domOperation, and we can safely remove the event callbacks
$animate.off(element);
$animate.off(node);
}
}
@ -2416,7 +2428,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
bool = !disabledElementsLookup.get(node);
} else {
// (element, bool) - Element setter
disabledElementsLookup.put(node, !bool);
disabledElementsLookup.set(node, !bool);
}
}
}
@ -2427,18 +2439,15 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
return $animate;
function queueAnimation(element, event, initialOptions) {
function queueAnimation(originalElement, event, initialOptions) {
// we always make a copy of the options since
// there should never be any side effects on
// the input data when running `$animateCss`.
var options = copy(initialOptions);
var node, parent;
element = stripCommentsFromElement(element);
if (element) {
node = getDomNode(element);
parent = element.parent();
}
var element = stripCommentsFromElement(originalElement);
var node = getDomNode(element);
var parentNode = node && node.parentNode;
options = prepareAnimationOptions(options);
@ -2473,37 +2482,33 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
options.to = null;
}
// there are situations where a directive issues an animation for
// a jqLite wrapper that contains only comment nodes... If this
// happens then there is no way we can perform an animation
if (!node) {
close();
return runner;
}
var className = [node.className, options.addClass, options.removeClass].join(' ');
if (!isAnimatableClassName(className)) {
// If animations are hard-disabled for the whole application there is no need to continue.
// There are also situations where a directive issues an animation for a jqLite wrapper that
// contains only comment nodes. In this case, there is no way we can perform an animation.
if (!animationsEnabled ||
!node ||
!isAnimatableByFilter(node, event, initialOptions) ||
!isAnimatableClassName(node, options)) {
close();
return runner;
}
var isStructural = ['enter', 'move', 'leave'].indexOf(event) >= 0;
var documentHidden = $document[0].hidden;
var documentHidden = $$isDocumentHidden();
// this is a hard disable of all animations for the application or on
// the element itself, therefore there is no need to continue further
// past this point if not enabled
// This is a hard disable of all animations the element itself, therefore there is no need to
// continue further past this point if not enabled
// Animations are also disabled if the document is currently hidden (page is not visible
// to the user), because browsers slow down or do not flush calls to requestAnimationFrame
var skipAnimations = !animationsEnabled || documentHidden || disabledElementsLookup.get(node);
var skipAnimations = documentHidden || disabledElementsLookup.get(node);
var existingAnimation = (!skipAnimations && activeAnimationsLookup.get(node)) || {};
var hasExistingAnimation = !!existingAnimation.state;
// there is no point in traversing the same collection of parent ancestors if a followup
// animation will be run on the same element that already did all that checking work
if (!skipAnimations && (!hasExistingAnimation || existingAnimation.state != PRE_DIGEST_STATE)) {
skipAnimations = !areAnimationsAllowed(element, parent, event);
if (!skipAnimations && (!hasExistingAnimation || existingAnimation.state !== PRE_DIGEST_STATE)) {
skipAnimations = !areAnimationsAllowed(node, parentNode, event);
}
if (skipAnimations) {
@ -2515,7 +2520,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
}
if (isStructural) {
closeChildAnimations(element);
closeChildAnimations(node);
}
var newAnimation = {
@ -2530,7 +2535,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
};
if (hasExistingAnimation) {
var skipAnimationFlag = isAllowed('skip', element, newAnimation, existingAnimation);
var skipAnimationFlag = isAllowed('skip', newAnimation, existingAnimation);
if (skipAnimationFlag) {
if (existingAnimation.state === RUNNING_STATE) {
close();
@ -2540,7 +2545,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
return existingAnimation.runner;
}
}
var cancelAnimationFlag = isAllowed('cancel', element, newAnimation, existingAnimation);
var cancelAnimationFlag = isAllowed('cancel', newAnimation, existingAnimation);
if (cancelAnimationFlag) {
if (existingAnimation.state === RUNNING_STATE) {
// this will end the animation right away and it is safe
@ -2562,7 +2567,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
// a joined animation means that this animation will take over the existing one
// so an example would involve a leave animation taking over an enter. Then when
// the postDigest kicks in the enter will be ignored.
var joinAnimationFlag = isAllowed('join', element, newAnimation, existingAnimation);
var joinAnimationFlag = isAllowed('join', newAnimation, existingAnimation);
if (joinAnimationFlag) {
if (existingAnimation.state === RUNNING_STATE) {
normalizeAnimationDetails(element, newAnimation);
@ -2596,7 +2601,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
if (!isValidAnimation) {
close();
clearElementAnimationState(element);
clearElementAnimationState(node);
return runner;
}
@ -2604,9 +2609,18 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
var counter = (existingAnimation.counter || 0) + 1;
newAnimation.counter = counter;
markElementAnimationState(element, PRE_DIGEST_STATE, newAnimation);
markElementAnimationState(node, PRE_DIGEST_STATE, newAnimation);
$rootScope.$$postDigest(function() {
// It is possible that the DOM nodes inside `originalElement` have been replaced. This can
// happen if the animated element is a transcluded clone and also has a `templateUrl`
// directive on it. Therefore, we must recreate `element` in order to interact with the
// actual DOM nodes.
// Note: We still need to use the old `node` for certain things, such as looking up in
// HashMaps where it was used as the key.
element = stripCommentsFromElement(originalElement);
var animationDetails = activeAnimationsLookup.get(node);
var animationCancelled = !animationDetails;
animationDetails = animationDetails || {};
@ -2645,7 +2659,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
// isn't allowed to animate from here then we need to clear the state of the element
// so that any future animations won't read the expired animation data.
if (!isValidAnimation) {
clearElementAnimationState(element);
clearElementAnimationState(node);
}
return;
@ -2657,7 +2671,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
? 'setClass'
: animationDetails.event;
markElementAnimationState(element, RUNNING_STATE);
markElementAnimationState(node, RUNNING_STATE);
var realRunner = $$animation(element, event, animationDetails.options);
// this will update the runner's flow-control events based on
@ -2669,7 +2683,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
close(!status);
var animationDetails = activeAnimationsLookup.get(node);
if (animationDetails && animationDetails.counter === counter) {
clearElementAnimationState(getDomNode(element));
clearElementAnimationState(node);
}
notifyProgress(runner, event, 'close', {});
});
@ -2679,7 +2693,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
function notifyProgress(runner, event, phase, data) {
runInNextPostDigestOrNow(function() {
var callbacks = findCallbacks(parent, element, event);
var callbacks = findCallbacks(parentNode, node, event);
if (callbacks.length) {
// do not optimize this call here to RAF because
// we don't know how heavy the callback code here will
@ -2689,16 +2703,16 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
forEach(callbacks, function(callback) {
callback(element, phase, data);
});
cleanupEventListeners(phase, element);
cleanupEventListeners(phase, node);
});
} else {
cleanupEventListeners(phase, element);
cleanupEventListeners(phase, node);
}
});
runner.progress(event, phase, data);
}
function close(reject) { // jshint ignore:line
function close(reject) {
clearGeneratedClasses(element, options);
applyAnimationClasses(element, options);
applyAnimationStyles(element, options);
@ -2707,11 +2721,10 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
}
}
function closeChildAnimations(element) {
var node = getDomNode(element);
function closeChildAnimations(node) {
var children = node.querySelectorAll('[' + NG_ANIMATE_ATTR_NAME + ']');
forEach(children, function(child) {
var state = parseInt(child.getAttribute(NG_ANIMATE_ATTR_NAME));
var state = parseInt(child.getAttribute(NG_ANIMATE_ATTR_NAME), 10);
var animationDetails = activeAnimationsLookup.get(child);
if (animationDetails) {
switch (state) {
@ -2719,21 +2732,16 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
animationDetails.runner.end();
/* falls through */
case PRE_DIGEST_STATE:
activeAnimationsLookup.remove(child);
activeAnimationsLookup.delete(child);
break;
}
}
});
}
function clearElementAnimationState(element) {
var node = getDomNode(element);
function clearElementAnimationState(node) {
node.removeAttribute(NG_ANIMATE_ATTR_NAME);
activeAnimationsLookup.remove(node);
}
function isMatchingElement(nodeOrElmA, nodeOrElmB) {
return getDomNode(nodeOrElmA) === getDomNode(nodeOrElmB);
activeAnimationsLookup.delete(node);
}
/**
@ -2743,54 +2751,54 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
* c) the element is not a child of the body
* d) the element is not a child of the $rootElement
*/
function areAnimationsAllowed(element, parentElement, event) {
var bodyElement = jqLite($document[0].body);
var bodyElementDetected = isMatchingElement(element, bodyElement) || element[0].nodeName === 'HTML';
var rootElementDetected = isMatchingElement(element, $rootElement);
var parentAnimationDetected = false;
var animateChildren;
var elementDisabled = disabledElementsLookup.get(getDomNode(element));
function areAnimationsAllowed(node, parentNode, event) {
var bodyNode = $document[0].body;
var rootNode = getDomNode($rootElement);
var parentHost = jqLite.data(element[0], NG_ANIMATE_PIN_DATA);
var bodyNodeDetected = (node === bodyNode) || node.nodeName === 'HTML';
var rootNodeDetected = (node === rootNode);
var parentAnimationDetected = false;
var elementDisabled = disabledElementsLookup.get(node);
var animateChildren;
var parentHost = jqLite.data(node, NG_ANIMATE_PIN_DATA);
if (parentHost) {
parentElement = parentHost;
parentNode = getDomNode(parentHost);
}
parentElement = getDomNode(parentElement);
while (parentElement) {
if (!rootElementDetected) {
while (parentNode) {
if (!rootNodeDetected) {
// angular doesn't want to attempt to animate elements outside of the application
// therefore we need to ensure that the rootElement is an ancestor of the current element
rootElementDetected = isMatchingElement(parentElement, $rootElement);
rootNodeDetected = (parentNode === rootNode);
}
if (parentElement.nodeType !== ELEMENT_NODE) {
if (parentNode.nodeType !== ELEMENT_NODE) {
// no point in inspecting the #document element
break;
}
var details = activeAnimationsLookup.get(parentElement) || {};
var details = activeAnimationsLookup.get(parentNode) || {};
// either an enter, leave or move animation will commence
// therefore we can't allow any animations to take place
// but if a parent animation is class-based then that's ok
if (!parentAnimationDetected) {
var parentElementDisabled = disabledElementsLookup.get(parentElement);
var parentNodeDisabled = disabledElementsLookup.get(parentNode);
if (parentElementDisabled === true && elementDisabled !== false) {
if (parentNodeDisabled === true && elementDisabled !== false) {
// disable animations if the user hasn't explicitly enabled animations on the
// current element
elementDisabled = true;
// element is disabled via parent element, no need to check anything else
break;
} else if (parentElementDisabled === false) {
} else if (parentNodeDisabled === false) {
elementDisabled = false;
}
parentAnimationDetected = details.structural;
}
if (isUndefined(animateChildren) || animateChildren === true) {
var value = jqLite.data(parentElement, NG_ANIMATE_CHILDREN_DATA);
var value = jqLite.data(parentNode, NG_ANIMATE_CHILDREN_DATA);
if (isDefined(value)) {
animateChildren = value;
}
@ -2799,52 +2807,53 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
// there is no need to continue traversing at this point
if (parentAnimationDetected && animateChildren === false) break;
if (!bodyElementDetected) {
if (!bodyNodeDetected) {
// we also need to ensure that the element is or will be a part of the body element
// otherwise it is pointless to even issue an animation to be rendered
bodyElementDetected = isMatchingElement(parentElement, bodyElement);
bodyNodeDetected = (parentNode === bodyNode);
}
if (bodyElementDetected && rootElementDetected) {
if (bodyNodeDetected && rootNodeDetected) {
// If both body and root have been found, any other checks are pointless,
// as no animation data should live outside the application
break;
}
if (!rootElementDetected) {
// If no rootElement is detected, check if the parentElement is pinned to another element
parentHost = jqLite.data(parentElement, NG_ANIMATE_PIN_DATA);
if (!rootNodeDetected) {
// If `rootNode` is not detected, check if `parentNode` is pinned to another element
parentHost = jqLite.data(parentNode, NG_ANIMATE_PIN_DATA);
if (parentHost) {
// The pin target element becomes the next parent element
parentElement = getDomNode(parentHost);
parentNode = getDomNode(parentHost);
continue;
}
}
parentElement = parentElement.parentNode;
parentNode = parentNode.parentNode;
}
var allowAnimation = (!parentAnimationDetected || animateChildren) && elementDisabled !== true;
return allowAnimation && rootElementDetected && bodyElementDetected;
return allowAnimation && rootNodeDetected && bodyNodeDetected;
}
function markElementAnimationState(element, state, details) {
function markElementAnimationState(node, state, details) {
details = details || {};
details.state = state;
var node = getDomNode(element);
node.setAttribute(NG_ANIMATE_ATTR_NAME, state);
var oldValue = activeAnimationsLookup.get(node);
var newValue = oldValue
? extend(oldValue, details)
: details;
activeAnimationsLookup.put(node, newValue);
activeAnimationsLookup.set(node, newValue);
}
}];
}];
var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
/* exported $$AnimationProvider */
var $$AnimationProvider = ['$animateProvider', /** @this */ function($animateProvider) {
var NG_ANIMATE_REF_ATTR = 'ng-animate-ref';
var drivers = this.drivers = [];
@ -2863,21 +2872,21 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
return element.data(RUNNER_STORAGE_KEY);
}
this.$get = ['$$jqLite', '$rootScope', '$injector', '$$AnimateRunner', '$$HashMap', '$$rAFScheduler',
function($$jqLite, $rootScope, $injector, $$AnimateRunner, $$HashMap, $$rAFScheduler) {
this.$get = ['$$jqLite', '$rootScope', '$injector', '$$AnimateRunner', '$$Map', '$$rAFScheduler',
function($$jqLite, $rootScope, $injector, $$AnimateRunner, $$Map, $$rAFScheduler) {
var animationQueue = [];
var applyAnimationClasses = applyAnimationClassesFactory($$jqLite);
function sortAnimations(animations) {
var tree = { children: [] };
var i, lookup = new $$HashMap();
var i, lookup = new $$Map();
// this is done first beforehand so that the hashmap
// this is done first beforehand so that the map
// is filled with a list of the elements that will be animated
for (i = 0; i < animations.length; i++) {
var animation = animations[i];
lookup.put(animation.domNode, animations[i] = {
lookup.set(animation.domNode, animations[i] = {
domNode: animation.domNode,
fn: animation.fn,
children: []
@ -2896,7 +2905,7 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
var elementNode = entry.domNode;
var parentNode = elementNode.parentNode;
lookup.put(elementNode, entry);
lookup.set(elementNode, entry);
var parentEntry;
while (parentNode) {
@ -3232,7 +3241,7 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
}
}
function close(rejected) { // jshint ignore:line
function close(rejected) {
element.off('$destroy', handleDestroyedElement);
removeRunner(element);
@ -3403,7 +3412,7 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
* ## CSS-based Animations
*
* CSS-based animations with ngAnimate are unique since they require no JavaScript code at all. By using a CSS class that we reference between our HTML
* and CSS code we can create an animation that will be picked up by Angular when an the underlying directive performs an operation.
* and CSS code we can create an animation that will be picked up by Angular when an underlying directive performs an operation.
*
* The example below shows how an `enter` animation can be made possible on an element using `ng-if`:
*
@ -3543,6 +3552,10 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
* /&#42; As of 1.4.4, this must always be set: it signals ngAnimate
* to not accidentally inherit a delay property from another CSS class &#42;/
* transition-duration: 0s;
*
* /&#42; if you are using animations instead of transitions you should configure as follows:
* animation-delay: 0.1s;
* animation-duration: 0s; &#42;/
* }
* .my-animation.ng-enter.ng-enter-active {
* /&#42; standard transition styles &#42;/
@ -3898,7 +3911,7 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
deps="angular-animate.js;angular-route.js"
animations="true">
<file name="index.html">
<a href="#/">Home</a>
<a href="#!/">Home</a>
<hr />
<div class="view-container">
<div ng-view class="view"></div>
@ -3918,22 +3931,23 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
}])
.run(['$rootScope', function($rootScope) {
$rootScope.records = [
{ id:1, title: "Miss Beulah Roob" },
{ id:2, title: "Trent Morissette" },
{ id:3, title: "Miss Ava Pouros" },
{ id:4, title: "Rod Pouros" },
{ id:5, title: "Abdul Rice" },
{ id:6, title: "Laurie Rutherford Sr." },
{ id:7, title: "Nakia McLaughlin" },
{ id:8, title: "Jordon Blanda DVM" },
{ id:9, title: "Rhoda Hand" },
{ id:10, title: "Alexandrea Sauer" }
{ id: 1, title: 'Miss Beulah Roob' },
{ id: 2, title: 'Trent Morissette' },
{ id: 3, title: 'Miss Ava Pouros' },
{ id: 4, title: 'Rod Pouros' },
{ id: 5, title: 'Abdul Rice' },
{ id: 6, title: 'Laurie Rutherford Sr.' },
{ id: 7, title: 'Nakia McLaughlin' },
{ id: 8, title: 'Jordon Blanda DVM' },
{ id: 9, title: 'Rhoda Hand' },
{ id: 10, title: 'Alexandrea Sauer' }
];
}])
.controller('HomeController', [function() {
//empty
}])
.controller('ProfileController', ['$rootScope', '$routeParams', function($rootScope, $routeParams) {
.controller('ProfileController', ['$rootScope', '$routeParams',
function ProfileController($rootScope, $routeParams) {
var index = parseInt($routeParams.id, 10);
var record = $rootScope.records[index - 1];
@ -3945,7 +3959,7 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
<h2>Welcome to the home page</h1>
<p>Please click on an element</p>
<a class="record"
ng-href="#/profile/{{ record.id }}"
ng-href="#!/profile/{{ record.id }}"
ng-animate-ref="{{ record.id }}"
ng-repeat="record in records">
{{ record.title }}
@ -4121,6 +4135,7 @@ angular.module('ngAnimate', [], function initAngularHelpers() {
isFunction = angular.isFunction;
isElement = angular.isElement;
})
.info({ angularVersion: '1.6.6' })
.directive('ngAnimateSwap', ngAnimateSwapDirective)
.directive('ngAnimateChildren', $$AnimateChildrenDirective)

View file

@ -1,57 +1,57 @@
/*
AngularJS v1.5.8
(c) 2010-2016 Google, Inc. http://angularjs.org
AngularJS v1.6.6
(c) 2010-2017 Google, Inc. http://angularjs.org
License: MIT
*/
(function(R,B){'use strict';function Da(a,b,c){if(!a)throw Ma("areq",b||"?",c||"required");return a}function Ea(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;Y(a)&&(a=a.join(" "));Y(b)&&(b=b.join(" "));return a+" "+b}function Na(a){var b={};a&&(a.to||a.from)&&(b.to=a.to,b.from=a.from);return b}function Z(a,b,c){var d="";a=Y(a)?a:a&&G(a)&&a.length?a.split(/\s+/):[];s(a,function(a,l){a&&0<a.length&&(d+=0<l?" ":"",d+=c?b+a:a+b)});return d}function Oa(a){if(a instanceof F)switch(a.length){case 0:return a;
case 1:if(1===a[0].nodeType)return a;break;default:return F(ta(a))}if(1===a.nodeType)return F(a)}function ta(a){if(!a[0])return a;for(var b=0;b<a.length;b++){var c=a[b];if(1==c.nodeType)return c}}function Pa(a,b,c){s(b,function(b){a.addClass(b,c)})}function Qa(a,b,c){s(b,function(b){a.removeClass(b,c)})}function V(a){return function(b,c){c.addClass&&(Pa(a,b,c.addClass),c.addClass=null);c.removeClass&&(Qa(a,b,c.removeClass),c.removeClass=null)}}function oa(a){a=a||{};if(!a.$$prepared){var b=a.domOperation||
P;a.domOperation=function(){a.$$domOperationFired=!0;b();b=P};a.$$prepared=!0}return a}function ha(a,b){Fa(a,b);Ga(a,b)}function Fa(a,b){b.from&&(a.css(b.from),b.from=null)}function Ga(a,b){b.to&&(a.css(b.to),b.to=null)}function W(a,b,c){var d=b.options||{};c=c.options||{};var e=(d.addClass||"")+" "+(c.addClass||""),l=(d.removeClass||"")+" "+(c.removeClass||"");a=Ra(a.attr("class"),e,l);c.preparationClasses&&(d.preparationClasses=$(c.preparationClasses,d.preparationClasses),delete c.preparationClasses);
e=d.domOperation!==P?d.domOperation:null;ua(d,c);e&&(d.domOperation=e);d.addClass=a.addClass?a.addClass:null;d.removeClass=a.removeClass?a.removeClass:null;b.addClass=d.addClass;b.removeClass=d.removeClass;return d}function Ra(a,b,c){function d(a){G(a)&&(a=a.split(" "));var b={};s(a,function(a){a.length&&(b[a]=!0)});return b}var e={};a=d(a);b=d(b);s(b,function(a,b){e[b]=1});c=d(c);s(c,function(a,b){e[b]=1===e[b]?null:-1});var l={addClass:"",removeClass:""};s(e,function(b,c){var d,e;1===b?(d="addClass",
e=!a[c]||a[c+"-remove"]):-1===b&&(d="removeClass",e=a[c]||a[c+"-add"]);e&&(l[d].length&&(l[d]+=" "),l[d]+=c)});return l}function y(a){return a instanceof F?a[0]:a}function Sa(a,b,c){var d="";b&&(d=Z(b,"ng-",!0));c.addClass&&(d=$(d,Z(c.addClass,"-add")));c.removeClass&&(d=$(d,Z(c.removeClass,"-remove")));d.length&&(c.preparationClasses=d,a.addClass(d))}function pa(a,b){var c=b?"-"+b+"s":"";la(a,[ma,c]);return[ma,c]}function va(a,b){var c=b?"paused":"",d=aa+"PlayState";la(a,[d,c]);return[d,c]}function la(a,
b){a.style[b[0]]=b[1]}function $(a,b){return a?b?a+" "+b:a:b}function Ha(a,b,c){var d=Object.create(null),e=a.getComputedStyle(b)||{};s(c,function(a,b){var c=e[a];if(c){var g=c.charAt(0);if("-"===g||"+"===g||0<=g)c=Ta(c);0===c&&(c=null);d[b]=c}});return d}function Ta(a){var b=0;a=a.split(/\s*,\s*/);s(a,function(a){"s"==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));a=parseFloat(a)||0;b=b?Math.max(a,b):a});return b}function wa(a){return 0===a||null!=a}function Ia(a,b){var c=S,d=a+"s";b?c+="Duration":
d+=" linear all";return[c,d]}function Ja(){var a=Object.create(null);return{flush:function(){a=Object.create(null)},count:function(b){return(b=a[b])?b.total:0},get:function(b){return(b=a[b])&&b.value},put:function(b,c){a[b]?a[b].total++:a[b]={total:1,value:c}}}}function Ka(a,b,c){s(c,function(c){a[c]=xa(a[c])?a[c]:b.style.getPropertyValue(c)})}var S,ya,aa,za;void 0===R.ontransitionend&&void 0!==R.onwebkittransitionend?(S="WebkitTransition",ya="webkitTransitionEnd transitionend"):(S="transition",ya=
"transitionend");void 0===R.onanimationend&&void 0!==R.onwebkitanimationend?(aa="WebkitAnimation",za="webkitAnimationEnd animationend"):(aa="animation",za="animationend");var qa=aa+"Delay",Aa=aa+"Duration",ma=S+"Delay",La=S+"Duration",Ma=B.$$minErr("ng"),Ua={transitionDuration:La,transitionDelay:ma,transitionProperty:S+"Property",animationDuration:Aa,animationDelay:qa,animationIterationCount:aa+"IterationCount"},Va={transitionDuration:La,transitionDelay:ma,animationDuration:Aa,animationDelay:qa},
Ba,ua,s,Y,xa,ea,Ca,ba,G,J,F,P;B.module("ngAnimate",[],function(){P=B.noop;Ba=B.copy;ua=B.extend;F=B.element;s=B.forEach;Y=B.isArray;G=B.isString;ba=B.isObject;J=B.isUndefined;xa=B.isDefined;Ca=B.isFunction;ea=B.isElement}).directive("ngAnimateSwap",["$animate","$rootScope",function(a,b){return{restrict:"A",transclude:"element",terminal:!0,priority:600,link:function(b,d,e,l,n){var I,g;b.$watchCollection(e.ngAnimateSwap||e["for"],function(e){I&&a.leave(I);g&&(g.$destroy(),g=null);if(e||0===e)g=b.$new(),
n(g,function(b){I=b;a.enter(b,null,d)})})}}}]).directive("ngAnimateChildren",["$interpolate",function(a){return{link:function(b,c,d){function e(a){c.data("$$ngAnimateChildren","on"===a||"true"===a)}var l=d.ngAnimateChildren;G(l)&&0===l.length?c.data("$$ngAnimateChildren",!0):(e(a(l)(b)),d.$observe("ngAnimateChildren",e))}}}]).factory("$$rAFScheduler",["$$rAF",function(a){function b(a){d=d.concat(a);c()}function c(){if(d.length){for(var b=d.shift(),n=0;n<b.length;n++)b[n]();e||a(function(){e||c()})}}
var d,e;d=b.queue=[];b.waitUntilQuiet=function(b){e&&e();e=a(function(){e=null;b();c()})};return b}]).provider("$$animateQueue",["$animateProvider",function(a){function b(a){if(!a)return null;a=a.split(" ");var b=Object.create(null);s(a,function(a){b[a]=!0});return b}function c(a,c){if(a&&c){var d=b(c);return a.split(" ").some(function(a){return d[a]})}}function d(a,b,c,d){return l[a].some(function(a){return a(b,c,d)})}function e(a,b){var c=0<(a.addClass||"").length,d=0<(a.removeClass||"").length;
return b?c&&d:c||d}var l=this.rules={skip:[],cancel:[],join:[]};l.join.push(function(a,b,c){return!b.structural&&e(b)});l.skip.push(function(a,b,c){return!b.structural&&!e(b)});l.skip.push(function(a,b,c){return"leave"==c.event&&b.structural});l.skip.push(function(a,b,c){return c.structural&&2===c.state&&!b.structural});l.cancel.push(function(a,b,c){return c.structural&&b.structural});l.cancel.push(function(a,b,c){return 2===c.state&&b.structural});l.cancel.push(function(a,b,d){if(d.structural)return!1;
a=b.addClass;b=b.removeClass;var e=d.addClass;d=d.removeClass;return J(a)&&J(b)||J(e)&&J(d)?!1:c(a,d)||c(b,e)});this.$get=["$$rAF","$rootScope","$rootElement","$document","$$HashMap","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow",function(b,c,g,l,C,Wa,Q,t,H,T){function O(){var a=!1;return function(b){a?b():c.$$postDigest(function(){a=!0;b()})}}function x(a,b,c){var f=y(b),d=y(a),N=[];(a=h[c])&&s(a,function(a){w.call(a.node,f)?N.push(a.callback):"leave"===c&&w.call(a.node,
d)&&N.push(a.callback)});return N}function r(a,b,c){var f=ta(b);return a.filter(function(a){return!(a.node===f&&(!c||a.callback===c))})}function p(a,h,v){function r(c,f,d,h){sa(function(){var c=x(T,a,f);c.length?b(function(){s(c,function(b){b(a,d,h)});"close"!==d||a[0].parentNode||ra.off(a)}):"close"!==d||a[0].parentNode||ra.off(a)});c.progress(f,d,h)}function k(b){var c=a,f=m;f.preparationClasses&&(c.removeClass(f.preparationClasses),f.preparationClasses=null);f.activeClasses&&(c.removeClass(f.activeClasses),
f.activeClasses=null);E(a,m);ha(a,m);m.domOperation();A.complete(!b)}var m=Ba(v),p,T;if(a=Oa(a))p=y(a),T=a.parent();var m=oa(m),A=new Q,sa=O();Y(m.addClass)&&(m.addClass=m.addClass.join(" "));m.addClass&&!G(m.addClass)&&(m.addClass=null);Y(m.removeClass)&&(m.removeClass=m.removeClass.join(" "));m.removeClass&&!G(m.removeClass)&&(m.removeClass=null);m.from&&!ba(m.from)&&(m.from=null);m.to&&!ba(m.to)&&(m.to=null);if(!p)return k(),A;v=[p.className,m.addClass,m.removeClass].join(" ");if(!Xa(v))return k(),
A;var g=0<=["enter","move","leave"].indexOf(h),w=l[0].hidden,t=!f||w||N.get(p);v=!t&&z.get(p)||{};var H=!!v.state;t||H&&1==v.state||(t=!M(a,T,h));if(t)return w&&r(A,h,"start"),k(),w&&r(A,h,"close"),A;g&&K(a);w={structural:g,element:a,event:h,addClass:m.addClass,removeClass:m.removeClass,close:k,options:m,runner:A};if(H){if(d("skip",a,w,v)){if(2===v.state)return k(),A;W(a,v,w);return v.runner}if(d("cancel",a,w,v))if(2===v.state)v.runner.end();else if(v.structural)v.close();else return W(a,v,w),v.runner;
else if(d("join",a,w,v))if(2===v.state)W(a,w,{});else return Sa(a,g?h:null,m),h=w.event=v.event,m=W(a,v,w),v.runner}else W(a,w,{});(H=w.structural)||(H="animate"===w.event&&0<Object.keys(w.options.to||{}).length||e(w));if(!H)return k(),ka(a),A;var C=(v.counter||0)+1;w.counter=C;L(a,1,w);c.$$postDigest(function(){var b=z.get(p),c=!b,b=b||{},f=0<(a.parent()||[]).length&&("animate"===b.event||b.structural||e(b));if(c||b.counter!==C||!f){c&&(E(a,m),ha(a,m));if(c||g&&b.event!==h)m.domOperation(),A.end();
f||ka(a)}else h=!b.structural&&e(b,!0)?"setClass":b.event,L(a,2),b=Wa(a,h,b.options),A.setHost(b),r(A,h,"start",{}),b.done(function(b){k(!b);(b=z.get(p))&&b.counter===C&&ka(y(a));r(A,h,"close",{})})});return A}function K(a){a=y(a).querySelectorAll("[data-ng-animate]");s(a,function(a){var b=parseInt(a.getAttribute("data-ng-animate")),c=z.get(a);if(c)switch(b){case 2:c.runner.end();case 1:z.remove(a)}})}function ka(a){a=y(a);a.removeAttribute("data-ng-animate");z.remove(a)}function k(a,b){return y(a)===
y(b)}function M(a,b,c){c=F(l[0].body);var f=k(a,c)||"HTML"===a[0].nodeName,d=k(a,g),h=!1,r,e=N.get(y(a));(a=F.data(a[0],"$ngAnimatePin"))&&(b=a);for(b=y(b);b;){d||(d=k(b,g));if(1!==b.nodeType)break;a=z.get(b)||{};if(!h){var p=N.get(b);if(!0===p&&!1!==e){e=!0;break}else!1===p&&(e=!1);h=a.structural}if(J(r)||!0===r)a=F.data(b,"$$ngAnimateChildren"),xa(a)&&(r=a);if(h&&!1===r)break;f||(f=k(b,c));if(f&&d)break;if(!d&&(a=F.data(b,"$ngAnimatePin"))){b=y(a);continue}b=b.parentNode}return(!h||r)&&!0!==e&&
d&&f}function L(a,b,c){c=c||{};c.state=b;a=y(a);a.setAttribute("data-ng-animate",b);c=(b=z.get(a))?ua(b,c):c;z.put(a,c)}var z=new C,N=new C,f=null,A=c.$watch(function(){return 0===t.totalPendingRequests},function(a){a&&(A(),c.$$postDigest(function(){c.$$postDigest(function(){null===f&&(f=!0)})}))}),h=Object.create(null),sa=a.classNameFilter(),Xa=sa?function(a){return sa.test(a)}:function(){return!0},E=V(H),w=R.Node.prototype.contains||function(a){return this===a||!!(this.compareDocumentPosition(a)&
16)},ra={on:function(a,b,c){var f=ta(b);h[a]=h[a]||[];h[a].push({node:f,callback:c});F(b).on("$destroy",function(){z.get(f)||ra.off(a,b,c)})},off:function(a,b,c){if(1!==arguments.length||G(arguments[0])){var f=h[a];f&&(h[a]=1===arguments.length?null:r(f,b,c))}else for(f in b=arguments[0],h)h[f]=r(h[f],b)},pin:function(a,b){Da(ea(a),"element","not an element");Da(ea(b),"parentElement","not an element");a.data("$ngAnimatePin",b)},push:function(a,b,c,f){c=c||{};c.domOperation=f;return p(a,b,c)},enabled:function(a,
b){var c=arguments.length;if(0===c)b=!!f;else if(ea(a)){var d=y(a);1===c?b=!N.get(d):N.put(d,!b)}else b=f=!!a;return b}};return ra}]}]).provider("$$animation",["$animateProvider",function(a){var b=this.drivers=[];this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$HashMap","$$rAFScheduler",function(a,d,e,l,n,I){function g(a){function b(a){if(a.processed)return a;a.processed=!0;var d=a.domNode,p=d.parentNode;e.put(d,a);for(var K;p;){if(K=e.get(p)){K.processed||(K=b(K));break}p=p.parentNode}(K||
c).children.push(a);return a}var c={children:[]},d,e=new n;for(d=0;d<a.length;d++){var g=a[d];e.put(g.domNode,a[d]={domNode:g.domNode,fn:g.fn,children:[]})}for(d=0;d<a.length;d++)b(a[d]);return function(a){var b=[],c=[],d;for(d=0;d<a.children.length;d++)c.push(a.children[d]);a=c.length;var e=0,k=[];for(d=0;d<c.length;d++){var g=c[d];0>=a&&(a=e,e=0,b.push(k),k=[]);k.push(g.fn);g.children.forEach(function(a){e++;c.push(a)});a--}k.length&&b.push(k);return b}(c)}var u=[],C=V(a);return function(n,Q,t){function H(a){a=
a.hasAttribute("ng-animate-ref")?[a]:a.querySelectorAll("[ng-animate-ref]");var b=[];s(a,function(a){var c=a.getAttribute("ng-animate-ref");c&&c.length&&b.push(a)});return b}function T(a){var b=[],c={};s(a,function(a,d){var h=y(a.element),e=0<=["enter","move"].indexOf(a.event),h=a.structural?H(h):[];if(h.length){var k=e?"to":"from";s(h,function(a){var b=a.getAttribute("ng-animate-ref");c[b]=c[b]||{};c[b][k]={animationID:d,element:F(a)}})}else b.push(a)});var d={},e={};s(c,function(c,k){var r=c.from,
p=c.to;if(r&&p){var z=a[r.animationID],g=a[p.animationID],A=r.animationID.toString();if(!e[A]){var n=e[A]={structural:!0,beforeStart:function(){z.beforeStart();g.beforeStart()},close:function(){z.close();g.close()},classes:O(z.classes,g.classes),from:z,to:g,anchors:[]};n.classes.length?b.push(n):(b.push(z),b.push(g))}e[A].anchors.push({out:r.element,"in":p.element})}else r=r?r.animationID:p.animationID,p=r.toString(),d[p]||(d[p]=!0,b.push(a[r]))});return b}function O(a,b){a=a.split(" ");b=b.split(" ");
for(var c=[],d=0;d<a.length;d++){var e=a[d];if("ng-"!==e.substring(0,3))for(var r=0;r<b.length;r++)if(e===b[r]){c.push(e);break}}return c.join(" ")}function x(a){for(var c=b.length-1;0<=c;c--){var d=e.get(b[c])(a);if(d)return d}}function r(a,b){function c(a){(a=a.data("$$animationRunner"))&&a.setHost(b)}a.from&&a.to?(c(a.from.element),c(a.to.element)):c(a.element)}function p(){var a=n.data("$$animationRunner");!a||"leave"===Q&&t.$$domOperationFired||a.end()}function K(b){n.off("$destroy",p);n.removeData("$$animationRunner");
C(n,t);ha(n,t);t.domOperation();L&&a.removeClass(n,L);n.removeClass("ng-animate");k.complete(!b)}t=oa(t);var ka=0<=["enter","move","leave"].indexOf(Q),k=new l({end:function(){K()},cancel:function(){K(!0)}});if(!b.length)return K(),k;n.data("$$animationRunner",k);var M=Ea(n.attr("class"),Ea(t.addClass,t.removeClass)),L=t.tempClasses;L&&(M+=" "+L,t.tempClasses=null);var z;ka&&(z="ng-"+Q+"-prepare",a.addClass(n,z));u.push({element:n,classes:M,event:Q,structural:ka,options:t,beforeStart:function(){n.addClass("ng-animate");
L&&a.addClass(n,L);z&&(a.removeClass(n,z),z=null)},close:K});n.on("$destroy",p);if(1<u.length)return k;d.$$postDigest(function(){var a=[];s(u,function(b){b.element.data("$$animationRunner")?a.push(b):b.close()});u.length=0;var b=T(a),c=[];s(b,function(a){c.push({domNode:y(a.from?a.from.element:a.element),fn:function(){a.beforeStart();var b,c=a.close;if((a.anchors?a.from.element||a.to.element:a.element).data("$$animationRunner")){var d=x(a);d&&(b=d.start)}b?(b=b(),b.done(function(a){c(!a)}),r(a,b)):
c()}})});I(g(c))});return k}}]}]).provider("$animateCss",["$animateProvider",function(a){var b=Ja(),c=Ja();this.$get=["$window","$$jqLite","$$AnimateRunner","$timeout","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue",function(a,e,l,n,I,g,u,C){function B(a,b){var c=a.parentNode;return(c.$$ngAnimateParentKey||(c.$$ngAnimateParentKey=++O))+"-"+a.getAttribute("class")+"-"+b}function Q(r,p,g,n){var k;0<b.count(g)&&(k=c.get(g),k||(p=Z(p,"-stagger"),e.addClass(r,p),k=Ha(a,r,n),k.animationDuration=
Math.max(k.animationDuration,0),k.transitionDuration=Math.max(k.transitionDuration,0),e.removeClass(r,p),c.put(g,k)));return k||{}}function t(a){x.push(a);u.waitUntilQuiet(function(){b.flush();c.flush();for(var a=I(),d=0;d<x.length;d++)x[d](a);x.length=0})}function H(c,e,g){e=b.get(g);e||(e=Ha(a,c,Ua),"infinite"===e.animationIterationCount&&(e.animationIterationCount=1));b.put(g,e);c=e;g=c.animationDelay;e=c.transitionDelay;c.maxDelay=g&&e?Math.max(g,e):g||e;c.maxDuration=Math.max(c.animationDuration*
c.animationIterationCount,c.transitionDuration);return c}var T=V(e),O=0,x=[];return function(a,c){function d(){k()}function u(){k(!0)}function k(b){if(!(w||F&&O)){w=!0;O=!1;f.$$skipPreparationClasses||e.removeClass(a,ga);e.removeClass(a,ea);va(h,!1);pa(h,!1);s(x,function(a){h.style[a[0]]=""});T(a,f);ha(a,f);Object.keys(A).length&&s(A,function(a,b){a?h.style.setProperty(b,a):h.style.removeProperty(b)});if(f.onDone)f.onDone();fa&&fa.length&&a.off(fa.join(" "),z);var c=a.data("$$animateCss");c&&(n.cancel(c[0].timer),
a.removeData("$$animateCss"));G&&G.complete(!b)}}function M(a){q.blockTransition&&pa(h,a);q.blockKeyframeAnimation&&va(h,!!a)}function L(){G=new l({end:d,cancel:u});t(P);k();return{$$willAnimate:!1,start:function(){return G},end:d}}function z(a){a.stopPropagation();var b=a.originalEvent||a;a=b.$manualTimeStamp||Date.now();b=parseFloat(b.elapsedTime.toFixed(3));Math.max(a-W,0)>=R&&b>=m&&(F=!0,k())}function N(){function b(){if(!w){M(!1);s(x,function(a){h.style[a[0]]=a[1]});T(a,f);e.addClass(a,ea);if(q.recalculateTimingStyles){na=
h.className+" "+ga;ia=B(h,na);D=H(h,na,ia);ca=D.maxDelay;J=Math.max(ca,0);m=D.maxDuration;if(0===m){k();return}q.hasTransitions=0<D.transitionDuration;q.hasAnimations=0<D.animationDuration}q.applyAnimationDelay&&(ca="boolean"!==typeof f.delay&&wa(f.delay)?parseFloat(f.delay):ca,J=Math.max(ca,0),D.animationDelay=ca,da=[qa,ca+"s"],x.push(da),h.style[da[0]]=da[1]);R=1E3*J;V=1E3*m;if(f.easing){var d,g=f.easing;q.hasTransitions&&(d=S+"TimingFunction",x.push([d,g]),h.style[d]=g);q.hasAnimations&&(d=aa+
"TimingFunction",x.push([d,g]),h.style[d]=g)}D.transitionDuration&&fa.push(ya);D.animationDuration&&fa.push(za);W=Date.now();var p=R+1.5*V;d=W+p;var g=a.data("$$animateCss")||[],N=!0;if(g.length){var l=g[0];(N=d>l.expectedEndTime)?n.cancel(l.timer):g.push(k)}N&&(p=n(c,p,!1),g[0]={timer:p,expectedEndTime:d},g.push(k),a.data("$$animateCss",g));if(fa.length)a.on(fa.join(" "),z);f.to&&(f.cleanupStyles&&Ka(A,h,Object.keys(f.to)),Ga(a,f))}}function c(){var b=a.data("$$animateCss");if(b){for(var d=1;d<b.length;d++)b[d]();
a.removeData("$$animateCss")}}if(!w)if(h.parentNode){var d=function(a){if(F)O&&a&&(O=!1,k());else if(O=!a,D.animationDuration)if(a=va(h,O),O)x.push(a);else{var b=x,c=b.indexOf(a);0<=a&&b.splice(c,1)}},g=0<ba&&(D.transitionDuration&&0===X.transitionDuration||D.animationDuration&&0===X.animationDuration)&&Math.max(X.animationDelay,X.transitionDelay);g?n(b,Math.floor(g*ba*1E3),!1):b();v.resume=function(){d(!0)};v.pause=function(){d(!1)}}else k()}var f=c||{};f.$$prepared||(f=oa(Ba(f)));var A={},h=y(a);
if(!h||!h.parentNode||!C.enabled())return L();var x=[],I=a.attr("class"),E=Na(f),w,O,F,G,v,J,R,m,V,W,fa=[];if(0===f.duration||!g.animations&&!g.transitions)return L();var ja=f.event&&Y(f.event)?f.event.join(" "):f.event,$="",U="";ja&&f.structural?$=Z(ja,"ng-",!0):ja&&($=ja);f.addClass&&(U+=Z(f.addClass,"-add"));f.removeClass&&(U.length&&(U+=" "),U+=Z(f.removeClass,"-remove"));f.applyClassesEarly&&U.length&&T(a,f);var ga=[$,U].join(" ").trim(),na=I+" "+ga,ea=Z(ga,"-active"),I=E.to&&0<Object.keys(E.to).length;
if(!(0<(f.keyframeStyle||"").length||I||ga))return L();var ia,X;0<f.stagger?(E=parseFloat(f.stagger),X={transitionDelay:E,animationDelay:E,transitionDuration:0,animationDuration:0}):(ia=B(h,na),X=Q(h,ga,ia,Va));f.$$skipPreparationClasses||e.addClass(a,ga);f.transitionStyle&&(E=[S,f.transitionStyle],la(h,E),x.push(E));0<=f.duration&&(E=0<h.style[S].length,E=Ia(f.duration,E),la(h,E),x.push(E));f.keyframeStyle&&(E=[aa,f.keyframeStyle],la(h,E),x.push(E));var ba=X?0<=f.staggerIndex?f.staggerIndex:b.count(ia):
0;(ja=0===ba)&&!f.skipBlocking&&pa(h,9999);var D=H(h,na,ia),ca=D.maxDelay;J=Math.max(ca,0);m=D.maxDuration;var q={};q.hasTransitions=0<D.transitionDuration;q.hasAnimations=0<D.animationDuration;q.hasTransitionAll=q.hasTransitions&&"all"==D.transitionProperty;q.applyTransitionDuration=I&&(q.hasTransitions&&!q.hasTransitionAll||q.hasAnimations&&!q.hasTransitions);q.applyAnimationDuration=f.duration&&q.hasAnimations;q.applyTransitionDelay=wa(f.delay)&&(q.applyTransitionDuration||q.hasTransitions);q.applyAnimationDelay=
wa(f.delay)&&q.hasAnimations;q.recalculateTimingStyles=0<U.length;if(q.applyTransitionDuration||q.applyAnimationDuration)m=f.duration?parseFloat(f.duration):m,q.applyTransitionDuration&&(q.hasTransitions=!0,D.transitionDuration=m,E=0<h.style[S+"Property"].length,x.push(Ia(m,E))),q.applyAnimationDuration&&(q.hasAnimations=!0,D.animationDuration=m,x.push([Aa,m+"s"]));if(0===m&&!q.recalculateTimingStyles)return L();if(null!=f.delay){var da;"boolean"!==typeof f.delay&&(da=parseFloat(f.delay),J=Math.max(da,
0));q.applyTransitionDelay&&x.push([ma,da+"s"]);q.applyAnimationDelay&&x.push([qa,da+"s"])}null==f.duration&&0<D.transitionDuration&&(q.recalculateTimingStyles=q.recalculateTimingStyles||ja);R=1E3*J;V=1E3*m;f.skipBlocking||(q.blockTransition=0<D.transitionDuration,q.blockKeyframeAnimation=0<D.animationDuration&&0<X.animationDelay&&0===X.animationDuration);f.from&&(f.cleanupStyles&&Ka(A,h,Object.keys(f.from)),Fa(a,f));q.blockTransition||q.blockKeyframeAnimation?M(m):f.skipBlocking||pa(h,!1);return{$$willAnimate:!0,
end:d,start:function(){if(!w)return v={end:d,cancel:u,resume:null,pause:null},G=new l(v),t(N),G}}}}]}]).provider("$$animateCssDriver",["$$animationProvider",function(a){a.drivers.push("$$animateCssDriver");this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(a,c,d,e,l,n,I){function g(a){return a.replace(/\bng-\S+\b/g,"")}function u(a,b){G(a)&&(a=a.split(" "));G(b)&&(b=b.split(" "));return a.filter(function(a){return-1===b.indexOf(a)}).join(" ")}
function C(c,e,n){function l(a){var b={},c=y(a).getBoundingClientRect();s(["width","height","top","left"],function(a){var d=c[a];switch(a){case "top":d+=t.scrollTop;break;case "left":d+=t.scrollLeft}b[a]=Math.floor(d)+"px"});return b}function p(){var c=g(n.attr("class")||""),d=u(c,k),c=u(k,c),d=a(C,{to:l(n),addClass:"ng-anchor-in "+d,removeClass:"ng-anchor-out "+c,delay:!0});return d.$$willAnimate?d:null}function I(){C.remove();e.removeClass("ng-animate-shim");n.removeClass("ng-animate-shim")}var C=
F(y(e).cloneNode(!0)),k=g(C.attr("class")||"");e.addClass("ng-animate-shim");n.addClass("ng-animate-shim");C.addClass("ng-anchor");H.append(C);var M;c=function(){var c=a(C,{addClass:"ng-anchor-out",delay:!0,from:l(e)});return c.$$willAnimate?c:null}();if(!c&&(M=p(),!M))return I();var L=c||M;return{start:function(){function a(){c&&c.end()}var b,c=L.start();c.done(function(){c=null;if(!M&&(M=p()))return c=M.start(),c.done(function(){c=null;I();b.complete()}),c;I();b.complete()});return b=new d({end:a,
cancel:a})}}}function B(a,b,c,e){var g=Q(a,P),n=Q(b,P),l=[];s(e,function(a){(a=C(c,a.out,a["in"]))&&l.push(a)});if(g||n||0!==l.length)return{start:function(){function a(){s(b,function(a){a.end()})}var b=[];g&&b.push(g.start());n&&b.push(n.start());s(l,function(a){b.push(a.start())});var c=new d({end:a,cancel:a});d.all(b,function(a){c.complete(a)});return c}}}function Q(c){var d=c.element,e=c.options||{};c.structural&&(e.event=c.event,e.structural=!0,e.applyClassesEarly=!0,"leave"===c.event&&(e.onDone=
e.domOperation));e.preparationClasses&&(e.event=$(e.event,e.preparationClasses));c=a(d,e);return c.$$willAnimate?c:null}if(!l.animations&&!l.transitions)return P;var t=I[0].body;c=y(e);var H=F(c.parentNode&&11===c.parentNode.nodeType||t.contains(c)?c:t);V(n);return function(a){return a.from&&a.to?B(a.from,a.to,a.classes,a.anchors):Q(a)}}]}]).provider("$$animateJs",["$animateProvider",function(a){this.$get=["$injector","$$AnimateRunner","$$jqLite",function(b,c,d){function e(c){c=Y(c)?c:c.split(" ");
for(var d=[],e={},l=0;l<c.length;l++){var s=c[l],B=a.$$registeredAnimations[s];B&&!e[s]&&(d.push(b.get(B)),e[s]=!0)}return d}var l=V(d);return function(a,b,d,u){function C(){u.domOperation();l(a,u)}function B(a,b,d,e,f){switch(d){case "animate":b=[b,e.from,e.to,f];break;case "setClass":b=[b,F,G,f];break;case "addClass":b=[b,F,f];break;case "removeClass":b=[b,G,f];break;default:b=[b,f]}b.push(e);if(a=a.apply(a,b))if(Ca(a.start)&&(a=a.start()),a instanceof c)a.done(f);else if(Ca(a))return a;return P}
function y(a,b,d,e,f){var g=[];s(e,function(e){var k=e[f];k&&g.push(function(){var e,f,g=!1,h=function(a){g||(g=!0,(f||P)(a),e.complete(!a))};e=new c({end:function(){h()},cancel:function(){h(!0)}});f=B(k,a,b,d,function(a){h(!1===a)});return e})});return g}function t(a,b,d,e,f){var g=y(a,b,d,e,f);if(0===g.length){var h,k;"beforeSetClass"===f?(h=y(a,"removeClass",d,e,"beforeRemoveClass"),k=y(a,"addClass",d,e,"beforeAddClass")):"setClass"===f&&(h=y(a,"removeClass",d,e,"removeClass"),k=y(a,"addClass",
d,e,"addClass"));h&&(g=g.concat(h));k&&(g=g.concat(k))}if(0!==g.length)return function(a){var b=[];g.length&&s(g,function(a){b.push(a())});b.length?c.all(b,a):a();return function(a){s(b,function(b){a?b.cancel():b.end()})}}}var H=!1;3===arguments.length&&ba(d)&&(u=d,d=null);u=oa(u);d||(d=a.attr("class")||"",u.addClass&&(d+=" "+u.addClass),u.removeClass&&(d+=" "+u.removeClass));var F=u.addClass,G=u.removeClass,x=e(d),r,p;if(x.length){var K,J;"leave"==b?(J="leave",K="afterLeave"):(J="before"+b.charAt(0).toUpperCase()+
b.substr(1),K=b);"enter"!==b&&"move"!==b&&(r=t(a,b,u,x,J));p=t(a,b,u,x,K)}if(r||p){var k;return{$$willAnimate:!0,end:function(){k?k.end():(H=!0,C(),ha(a,u),k=new c,k.complete(!0));return k},start:function(){function b(c){H=!0;C();ha(a,u);k.complete(c)}if(k)return k;k=new c;var d,e=[];r&&e.push(function(a){d=r(a)});e.length?e.push(function(a){C();a(!0)}):C();p&&e.push(function(a){d=p(a)});k.setHost({end:function(){H||((d||P)(void 0),b(void 0))},cancel:function(){H||((d||P)(!0),b(!0))}});c.chain(e,
b);return k}}}}}]}]).provider("$$animateJsDriver",["$$animationProvider",function(a){a.drivers.push("$$animateJsDriver");this.$get=["$$animateJs","$$AnimateRunner",function(a,c){function d(c){return a(c.element,c.event,c.classes,c.options)}return function(a){if(a.from&&a.to){var b=d(a.from),n=d(a.to);if(b||n)return{start:function(){function a(){return function(){s(d,function(a){a.end()})}}var d=[];b&&d.push(b.start());n&&d.push(n.start());c.all(d,function(a){e.complete(a)});var e=new c({end:a(),cancel:a()});
(function(S,q){'use strict';function Ea(a,b,c){if(!a)throw Pa("areq",b||"?",c||"required");return a}function Fa(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;V(a)&&(a=a.join(" "));V(b)&&(b=b.join(" "));return a+" "+b}function Qa(a){var b={};a&&(a.to||a.from)&&(b.to=a.to,b.from=a.from);return b}function W(a,b,c){var d="";a=V(a)?a:a&&C(a)&&a.length?a.split(/\s+/):[];t(a,function(a,f){a&&0<a.length&&(d+=0<f?" ":"",d+=c?b+a:a+b)});return d}function Ga(a){if(a instanceof A)switch(a.length){case 0:return a;
case 1:if(1===a[0].nodeType)return a;break;default:return A(ua(a))}if(1===a.nodeType)return A(a)}function ua(a){if(!a[0])return a;for(var b=0;b<a.length;b++){var c=a[b];if(1===c.nodeType)return c}}function Ra(a,b,c){t(b,function(b){a.addClass(b,c)})}function Sa(a,b,c){t(b,function(b){a.removeClass(b,c)})}function X(a){return function(b,c){c.addClass&&(Ra(a,b,c.addClass),c.addClass=null);c.removeClass&&(Sa(a,b,c.removeClass),c.removeClass=null)}}function oa(a){a=a||{};if(!a.$$prepared){var b=a.domOperation||
O;a.domOperation=function(){a.$$domOperationFired=!0;b();b=O};a.$$prepared=!0}return a}function ha(a,b){Ha(a,b);Ia(a,b)}function Ha(a,b){b.from&&(a.css(b.from),b.from=null)}function Ia(a,b){b.to&&(a.css(b.to),b.to=null)}function T(a,b,c){var d=b.options||{};c=c.options||{};var e=(d.addClass||"")+" "+(c.addClass||""),f=(d.removeClass||"")+" "+(c.removeClass||"");a=Ta(a.attr("class"),e,f);c.preparationClasses&&(d.preparationClasses=ca(c.preparationClasses,d.preparationClasses),delete c.preparationClasses);
e=d.domOperation!==O?d.domOperation:null;va(d,c);e&&(d.domOperation=e);d.addClass=a.addClass?a.addClass:null;d.removeClass=a.removeClass?a.removeClass:null;b.addClass=d.addClass;b.removeClass=d.removeClass;return d}function Ta(a,b,c){function d(a){C(a)&&(a=a.split(" "));var b={};t(a,function(a){a.length&&(b[a]=!0)});return b}var e={};a=d(a);b=d(b);t(b,function(a,b){e[b]=1});c=d(c);t(c,function(a,b){e[b]=1===e[b]?null:-1});var f={addClass:"",removeClass:""};t(e,function(b,c){var d,e;1===b?(d="addClass",
e=!a[c]||a[c+"-remove"]):-1===b&&(d="removeClass",e=a[c]||a[c+"-add"]);e&&(f[d].length&&(f[d]+=" "),f[d]+=c)});return f}function J(a){return a instanceof A?a[0]:a}function Ua(a,b,c){var d="";b&&(d=W(b,"ng-",!0));c.addClass&&(d=ca(d,W(c.addClass,"-add")));c.removeClass&&(d=ca(d,W(c.removeClass,"-remove")));d.length&&(c.preparationClasses=d,a.addClass(d))}function pa(a,b){var c=b?"-"+b+"s":"";ka(a,[la,c]);return[la,c]}function wa(a,b){var c=b?"paused":"",d=Y+"PlayState";ka(a,[d,c]);return[d,c]}function ka(a,
b){a.style[b[0]]=b[1]}function ca(a,b){return a?b?a+" "+b:a:b}function Ja(a,b,c){var d=Object.create(null),e=a.getComputedStyle(b)||{};t(c,function(a,b){var c=e[a];if(c){var l=c.charAt(0);if("-"===l||"+"===l||0<=l)c=Va(c);0===c&&(c=null);d[b]=c}});return d}function Va(a){var b=0;a=a.split(/\s*,\s*/);t(a,function(a){"s"===a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));a=parseFloat(a)||0;b=b?Math.max(a,b):a});return b}function xa(a){return 0===a||null!=a}function Ka(a,b){var c=Q,d=a+"s";b?c+="Duration":
d+=" linear all";return[c,d]}function La(){var a=Object.create(null);return{flush:function(){a=Object.create(null)},count:function(b){return(b=a[b])?b.total:0},get:function(b){return(b=a[b])&&b.value},put:function(b,c){a[b]?a[b].total++:a[b]={total:1,value:c}}}}function Ma(a,b,c){t(c,function(c){a[c]=ya(a[c])?a[c]:b.style.getPropertyValue(c)})}var Q,za,Y,Aa;void 0===S.ontransitionend&&void 0!==S.onwebkittransitionend?(Q="WebkitTransition",za="webkitTransitionEnd transitionend"):(Q="transition",za=
"transitionend");void 0===S.onanimationend&&void 0!==S.onwebkitanimationend?(Y="WebkitAnimation",Aa="webkitAnimationEnd animationend"):(Y="animation",Aa="animationend");var qa=Y+"Delay",Ba=Y+"Duration",la=Q+"Delay",Na=Q+"Duration",Pa=q.$$minErr("ng"),Wa={transitionDuration:Na,transitionDelay:la,transitionProperty:Q+"Property",animationDuration:Ba,animationDelay:qa,animationIterationCount:Y+"IterationCount"},Xa={transitionDuration:Na,transitionDelay:la,animationDuration:Ba,animationDelay:qa},Ca,va,
t,V,ya,Z,Da,ra,C,P,A,O;q.module("ngAnimate",[],function(){O=q.noop;Ca=q.copy;va=q.extend;A=q.element;t=q.forEach;V=q.isArray;C=q.isString;ra=q.isObject;P=q.isUndefined;ya=q.isDefined;Da=q.isFunction;Z=q.isElement}).info({angularVersion:"1.6.6"}).directive("ngAnimateSwap",["$animate","$rootScope",function(a,b){return{restrict:"A",transclude:"element",terminal:!0,priority:600,link:function(b,d,e,f,n){var G,l;b.$watchCollection(e.ngAnimateSwap||e["for"],function(e){G&&a.leave(G);l&&(l.$destroy(),l=null);
if(e||0===e)l=b.$new(),n(l,function(b){G=b;a.enter(b,null,d)})})}}}]).directive("ngAnimateChildren",["$interpolate",function(a){return{link:function(b,c,d){function e(a){c.data("$$ngAnimateChildren","on"===a||"true"===a)}var f=d.ngAnimateChildren;C(f)&&0===f.length?c.data("$$ngAnimateChildren",!0):(e(a(f)(b)),d.$observe("ngAnimateChildren",e))}}}]).factory("$$rAFScheduler",["$$rAF",function(a){function b(a){d=d.concat(a);c()}function c(){if(d.length){for(var b=d.shift(),n=0;n<b.length;n++)b[n]();
e||a(function(){e||c()})}}var d,e;d=b.queue=[];b.waitUntilQuiet=function(b){e&&e();e=a(function(){e=null;b();c()})};return b}]).provider("$$animateQueue",["$animateProvider",function(a){function b(a){if(!a)return null;a=a.split(" ");var b=Object.create(null);t(a,function(a){b[a]=!0});return b}function c(a,c){if(a&&c){var d=b(c);return a.split(" ").some(function(a){return d[a]})}}function d(a,b,c){return f[a].some(function(a){return a(b,c)})}function e(a,b){var c=0<(a.addClass||"").length,d=0<(a.removeClass||
"").length;return b?c&&d:c||d}var f=this.rules={skip:[],cancel:[],join:[]};f.join.push(function(a,b){return!a.structural&&e(a)});f.skip.push(function(a,b){return!a.structural&&!e(a)});f.skip.push(function(a,b){return"leave"===b.event&&a.structural});f.skip.push(function(a,b){return b.structural&&2===b.state&&!a.structural});f.cancel.push(function(a,b){return b.structural&&a.structural});f.cancel.push(function(a,b){return 2===b.state&&a.structural});f.cancel.push(function(a,b){if(b.structural)return!1;
var d=a.addClass,e=a.removeClass,f=b.addClass,sa=b.removeClass;return P(d)&&P(e)||P(f)&&P(sa)?!1:c(d,sa)||c(e,f)});this.$get=["$$rAF","$rootScope","$rootElement","$document","$$Map","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow","$$isDocumentHidden",function(b,c,f,s,y,sa,da,v,E,g,M){function x(){var a=!1;return function(b){a?b():c.$$postDigest(function(){a=!0;b()})}}function H(a,b,c){var h=[],d=k[c];d&&t(d,function(d){u.call(d.node,b)?h.push(d.callback):"leave"===c&&
u.call(d.node,a)&&h.push(d.callback)});return h}function I(a,b,c){var h=ua(b);return a.filter(function(a){return!(a.node===h&&(!c||a.callback===c))})}function K(a,k,w){function K(a,c,h,k){s(function(){var a=H(na,p,c);a.length?b(function(){t(a,function(a){a(f,h,k)});"close"!==h||p.parentNode||ba.off(p)}):"close"!==h||p.parentNode||ba.off(p)});a.progress(c,h,k)}function I(a){var b=f,c=g;c.preparationClasses&&(b.removeClass(c.preparationClasses),c.preparationClasses=null);c.activeClasses&&(b.removeClass(c.activeClasses),
c.activeClasses=null);Oa(f,g);ha(f,g);g.domOperation();l.complete(!a)}var g=Ca(w),f=Ga(a),p=J(f),na=p&&p.parentNode,g=oa(g),l=new da,s=x();V(g.addClass)&&(g.addClass=g.addClass.join(" "));g.addClass&&!C(g.addClass)&&(g.addClass=null);V(g.removeClass)&&(g.removeClass=g.removeClass.join(" "));g.removeClass&&!C(g.removeClass)&&(g.removeClass=null);g.from&&!ra(g.from)&&(g.from=null);g.to&&!ra(g.to)&&(g.to=null);if(!(h&&p&&Ya(p,k,w)&&D(p,g)))return I(),l;var v=0<=["enter","move","leave"].indexOf(k),u=
M(),y=u||ga.get(p);w=!y&&z.get(p)||{};var E=!!w.state;y||E&&1===w.state||(y=!L(p,na,k));if(y)return u&&K(l,k,"start"),I(),u&&K(l,k,"close"),l;v&&ta(p);u={structural:v,element:f,event:k,addClass:g.addClass,removeClass:g.removeClass,close:I,options:g,runner:l};if(E){if(d("skip",u,w)){if(2===w.state)return I(),l;T(f,w,u);return w.runner}if(d("cancel",u,w))if(2===w.state)w.runner.end();else if(w.structural)w.close();else return T(f,w,u),w.runner;else if(d("join",u,w))if(2===w.state)T(f,u,{});else return Ua(f,
v?k:null,g),k=u.event=w.event,g=T(f,w,u),w.runner}else T(f,u,{});(E=u.structural)||(E="animate"===u.event&&0<Object.keys(u.options.to||{}).length||e(u));if(!E)return I(),m(p),l;var q=(w.counter||0)+1;u.counter=q;F(p,1,u);c.$$postDigest(function(){f=Ga(a);var b=z.get(p),c=!b,b=b||{},h=0<(f.parent()||[]).length&&("animate"===b.event||b.structural||e(b));if(c||b.counter!==q||!h){c&&(Oa(f,g),ha(f,g));if(c||v&&b.event!==k)g.domOperation(),l.end();h||m(p)}else k=!b.structural&&e(b,!0)?"setClass":b.event,
F(p,2),b=sa(f,k,b.options),l.setHost(b),K(l,k,"start",{}),b.done(function(a){I(!a);(a=z.get(p))&&a.counter===q&&m(p);K(l,k,"close",{})})});return l}function ta(a){a=a.querySelectorAll("[data-ng-animate]");t(a,function(a){var b=parseInt(a.getAttribute("data-ng-animate"),10),c=z.get(a);if(c)switch(b){case 2:c.runner.end();case 1:z.delete(a)}})}function m(a){a.removeAttribute("data-ng-animate");z.delete(a)}function L(a,b,c){c=s[0].body;var h=J(f),k=a===c||"HTML"===a.nodeName,d=a===h,g=!1,e=ga.get(a),
p;for((a=A.data(a,"$ngAnimatePin"))&&(b=J(a));b;){d||(d=b===h);if(1!==b.nodeType)break;a=z.get(b)||{};if(!g){var H=ga.get(b);if(!0===H&&!1!==e){e=!0;break}else!1===H&&(e=!1);g=a.structural}if(P(p)||!0===p)a=A.data(b,"$$ngAnimateChildren"),ya(a)&&(p=a);if(g&&!1===p)break;k||(k=b===c);if(k&&d)break;if(!d&&(a=A.data(b,"$ngAnimatePin"))){b=J(a);continue}b=b.parentNode}return(!g||p)&&!0!==e&&d&&k}function F(a,b,c){c=c||{};c.state=b;a.setAttribute("data-ng-animate",b);c=(b=z.get(a))?va(b,c):c;z.set(a,c)}
var z=new y,ga=new y,h=null,p=c.$watch(function(){return 0===v.totalPendingRequests},function(a){a&&(p(),c.$$postDigest(function(){c.$$postDigest(function(){null===h&&(h=!0)})}))}),k=Object.create(null);y=a.customFilter();var na=a.classNameFilter();g=function(){return!0};var Ya=y||g,D=na?function(a,b){var c=[a.getAttribute("class"),b.addClass,b.removeClass].join(" ");return na.test(c)}:g,Oa=X(E),u=S.Node.prototype.contains||function(a){return this===a||!!(this.compareDocumentPosition(a)&16)},ba={on:function(a,
b,c){var h=ua(b);k[a]=k[a]||[];k[a].push({node:h,callback:c});A(b).on("$destroy",function(){z.get(h)||ba.off(a,b,c)})},off:function(a,b,c){if(1!==arguments.length||C(arguments[0])){var h=k[a];h&&(k[a]=1===arguments.length?null:I(h,b,c))}else for(h in b=arguments[0],k)k[h]=I(k[h],b)},pin:function(a,b){Ea(Z(a),"element","not an element");Ea(Z(b),"parentElement","not an element");a.data("$ngAnimatePin",b)},push:function(a,b,c,h){c=c||{};c.domOperation=h;return K(a,b,c)},enabled:function(a,b){var c=arguments.length;
if(0===c)b=!!h;else if(Z(a)){var k=J(a);1===c?b=!ga.get(k):ga.set(k,!b)}else b=h=!!a;return b}};return ba}]}]).provider("$$animation",["$animateProvider",function(a){var b=this.drivers=[];this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$Map","$$rAFScheduler",function(a,d,e,f,n,G){function l(a){function b(a){if(a.processed)return a;a.processed=!0;var d=a.domNode,e=d.parentNode;g.set(d,a);for(var f;e;){if(f=g.get(e)){f.processed||(f=b(f));break}e=e.parentNode}(f||c).children.push(a);
return a}var c={children:[]},d,g=new n;for(d=0;d<a.length;d++){var e=a[d];g.set(e.domNode,a[d]={domNode:e.domNode,fn:e.fn,children:[]})}for(d=0;d<a.length;d++)b(a[d]);return function(a){var b=[],c=[],d;for(d=0;d<a.children.length;d++)c.push(a.children[d]);a=c.length;var g=0,e=[];for(d=0;d<c.length;d++){var f=c[d];0>=a&&(a=g,g=0,b.push(e),e=[]);e.push(f.fn);f.children.forEach(function(a){g++;c.push(a)});a--}e.length&&b.push(e);return b}(c)}var s=[],y=X(a);return function(n,q,v){function E(a){a=a.hasAttribute("ng-animate-ref")?
[a]:a.querySelectorAll("[ng-animate-ref]");var b=[];t(a,function(a){var c=a.getAttribute("ng-animate-ref");c&&c.length&&b.push(a)});return b}function g(a){var b=[],c={};t(a,function(a,d){var k=J(a.element),g=0<=["enter","move"].indexOf(a.event),k=a.structural?E(k):[];if(k.length){var e=g?"to":"from";t(k,function(a){var b=a.getAttribute("ng-animate-ref");c[b]=c[b]||{};c[b][e]={animationID:d,element:A(a)}})}else b.push(a)});var d={},g={};t(c,function(c,e){var f=c.from,p=c.to;if(f&&p){var H=a[f.animationID],
z=a[p.animationID],m=f.animationID.toString();if(!g[m]){var l=g[m]={structural:!0,beforeStart:function(){H.beforeStart();z.beforeStart()},close:function(){H.close();z.close()},classes:M(H.classes,z.classes),from:H,to:z,anchors:[]};l.classes.length?b.push(l):(b.push(H),b.push(z))}g[m].anchors.push({out:f.element,"in":p.element})}else f=f?f.animationID:p.animationID,p=f.toString(),d[p]||(d[p]=!0,b.push(a[f]))});return b}function M(a,b){a=a.split(" ");b=b.split(" ");for(var c=[],d=0;d<a.length;d++){var g=
a[d];if("ng-"!==g.substring(0,3))for(var e=0;e<b.length;e++)if(g===b[e]){c.push(g);break}}return c.join(" ")}function x(a){for(var c=b.length-1;0<=c;c--){var d=e.get(b[c])(a);if(d)return d}}function H(a,b){function c(a){(a=a.data("$$animationRunner"))&&a.setHost(b)}a.from&&a.to?(c(a.from.element),c(a.to.element)):c(a.element)}function I(){var a=n.data("$$animationRunner");!a||"leave"===q&&v.$$domOperationFired||a.end()}function K(b){n.off("$destroy",I);n.removeData("$$animationRunner");y(n,v);ha(n,
v);v.domOperation();F&&a.removeClass(n,F);n.removeClass("ng-animate");m.complete(!b)}v=oa(v);var ta=0<=["enter","move","leave"].indexOf(q),m=new f({end:function(){K()},cancel:function(){K(!0)}});if(!b.length)return K(),m;n.data("$$animationRunner",m);var L=Fa(n.attr("class"),Fa(v.addClass,v.removeClass)),F=v.tempClasses;F&&(L+=" "+F,v.tempClasses=null);var z;ta&&(z="ng-"+q+"-prepare",a.addClass(n,z));s.push({element:n,classes:L,event:q,structural:ta,options:v,beforeStart:function(){n.addClass("ng-animate");
F&&a.addClass(n,F);z&&(a.removeClass(n,z),z=null)},close:K});n.on("$destroy",I);if(1<s.length)return m;d.$$postDigest(function(){var a=[];t(s,function(b){b.element.data("$$animationRunner")?a.push(b):b.close()});s.length=0;var b=g(a),c=[];t(b,function(a){c.push({domNode:J(a.from?a.from.element:a.element),fn:function(){a.beforeStart();var b,c=a.close;if((a.anchors?a.from.element||a.to.element:a.element).data("$$animationRunner")){var d=x(a);d&&(b=d.start)}b?(b=b(),b.done(function(a){c(!a)}),H(a,b)):
c()}})});G(l(c))});return m}}]}]).provider("$animateCss",["$animateProvider",function(a){var b=La(),c=La();this.$get=["$window","$$jqLite","$$AnimateRunner","$timeout","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue",function(a,e,f,n,G,l,s,y){function q(a,b){var c=a.parentNode;return(c.$$ngAnimateParentKey||(c.$$ngAnimateParentKey=++M))+"-"+a.getAttribute("class")+"-"+b}function da(g,f,l,n){var m;0<b.count(l)&&(m=c.get(l),m||(f=W(f,"-stagger"),e.addClass(g,f),m=Ja(a,g,n),m.animationDuration=
Math.max(m.animationDuration,0),m.transitionDuration=Math.max(m.transitionDuration,0),e.removeClass(g,f),c.put(l,m)));return m||{}}function v(a){x.push(a);s.waitUntilQuiet(function(){b.flush();c.flush();for(var a=G(),d=0;d<x.length;d++)x[d](a);x.length=0})}function E(c,g,e){g=b.get(e);g||(g=Ja(a,c,Wa),"infinite"===g.animationIterationCount&&(g.animationIterationCount=1));b.put(e,g);c=g;e=c.animationDelay;g=c.transitionDelay;c.maxDelay=e&&g?Math.max(e,g):e||g;c.maxDuration=Math.max(c.animationDuration*
c.animationIterationCount,c.transitionDuration);return c}var g=X(e),M=0,x=[];return function(a,c){function d(){m()}function s(){m(!0)}function m(b){if(!(M||ba&&u)){M=!0;u=!1;h.$$skipPreparationClasses||e.removeClass(a,fa);e.removeClass(a,ca);wa(k,!1);pa(k,!1);t(x,function(a){k.style[a[0]]=""});g(a,h);ha(a,h);Object.keys(p).length&&t(p,function(a,b){a?k.style.setProperty(b,a):k.style.removeProperty(b)});if(h.onDone)h.onDone();ea&&ea.length&&a.off(ea.join(" "),z);var c=a.data("$$animateCss");c&&(n.cancel(c[0].timer),
a.removeData("$$animateCss"));A&&A.complete(!b)}}function L(a){r.blockTransition&&pa(k,a);r.blockKeyframeAnimation&&wa(k,!!a)}function F(){A=new f({end:d,cancel:s});v(O);m();return{$$willAnimate:!1,start:function(){return A},end:d}}function z(a){a.stopPropagation();var b=a.originalEvent||a;a=b.$manualTimeStamp||Date.now();b=parseFloat(b.elapsedTime.toFixed(3));Math.max(a-T,0)>=P&&b>=N&&(ba=!0,m())}function ga(){function b(){if(!M){L(!1);t(x,function(a){k.style[a[0]]=a[1]});g(a,h);e.addClass(a,ca);
if(r.recalculateTimingStyles){ma=k.getAttribute("class")+" "+fa;ja=q(k,ma);B=E(k,ma,ja);$=B.maxDelay;w=Math.max($,0);N=B.maxDuration;if(0===N){m();return}r.hasTransitions=0<B.transitionDuration;r.hasAnimations=0<B.animationDuration}r.applyAnimationDelay&&($="boolean"!==typeof h.delay&&xa(h.delay)?parseFloat(h.delay):$,w=Math.max($,0),B.animationDelay=$,aa=[qa,$+"s"],x.push(aa),k.style[aa[0]]=aa[1]);P=1E3*w;S=1E3*N;if(h.easing){var d,f=h.easing;r.hasTransitions&&(d=Q+"TimingFunction",x.push([d,f]),
k.style[d]=f);r.hasAnimations&&(d=Y+"TimingFunction",x.push([d,f]),k.style[d]=f)}B.transitionDuration&&ea.push(za);B.animationDuration&&ea.push(Aa);T=Date.now();var l=P+1.5*S;d=T+l;var f=a.data("$$animateCss")||[],F=!0;if(f.length){var s=f[0];(F=d>s.expectedEndTime)?n.cancel(s.timer):f.push(m)}F&&(l=n(c,l,!1),f[0]={timer:l,expectedEndTime:d},f.push(m),a.data("$$animateCss",f));if(ea.length)a.on(ea.join(" "),z);h.to&&(h.cleanupStyles&&Ma(p,k,Object.keys(h.to)),Ia(a,h))}}function c(){var b=a.data("$$animateCss");
if(b){for(var d=1;d<b.length;d++)b[d]();a.removeData("$$animateCss")}}if(!M)if(k.parentNode){var d=function(a){if(ba)u&&a&&(u=!1,m());else if(u=!a,B.animationDuration)if(a=wa(k,u),u)x.push(a);else{var b=x,c=b.indexOf(a);0<=a&&b.splice(c,1)}},f=0<Z&&(B.transitionDuration&&0===U.transitionDuration||B.animationDuration&&0===U.animationDuration)&&Math.max(U.animationDelay,U.transitionDelay);f?n(b,Math.floor(f*Z*1E3),!1):b();C.resume=function(){d(!0)};C.pause=function(){d(!1)}}else m()}var h=c||{};h.$$prepared||
(h=oa(Ca(h)));var p={},k=J(a);if(!k||!k.parentNode||!y.enabled())return F();var x=[],G=a.attr("class"),D=Qa(h),M,u,ba,A,C,w,P,N,S,T,ea=[];if(0===h.duration||!l.animations&&!l.transitions)return F();var ia=h.event&&V(h.event)?h.event.join(" "):h.event,X="",R="";ia&&h.structural?X=W(ia,"ng-",!0):ia&&(X=ia);h.addClass&&(R+=W(h.addClass,"-add"));h.removeClass&&(R.length&&(R+=" "),R+=W(h.removeClass,"-remove"));h.applyClassesEarly&&R.length&&g(a,h);var fa=[X,R].join(" ").trim(),ma=G+" "+fa,ca=W(fa,"-active"),
G=D.to&&0<Object.keys(D.to).length;if(!(0<(h.keyframeStyle||"").length||G||fa))return F();var ja,U;0<h.stagger?(D=parseFloat(h.stagger),U={transitionDelay:D,animationDelay:D,transitionDuration:0,animationDuration:0}):(ja=q(k,ma),U=da(k,fa,ja,Xa));h.$$skipPreparationClasses||e.addClass(a,fa);h.transitionStyle&&(D=[Q,h.transitionStyle],ka(k,D),x.push(D));0<=h.duration&&(D=0<k.style[Q].length,D=Ka(h.duration,D),ka(k,D),x.push(D));h.keyframeStyle&&(D=[Y,h.keyframeStyle],ka(k,D),x.push(D));var Z=U?0<=
h.staggerIndex?h.staggerIndex:b.count(ja):0;(ia=0===Z)&&!h.skipBlocking&&pa(k,9999);var B=E(k,ma,ja),$=B.maxDelay;w=Math.max($,0);N=B.maxDuration;var r={};r.hasTransitions=0<B.transitionDuration;r.hasAnimations=0<B.animationDuration;r.hasTransitionAll=r.hasTransitions&&"all"===B.transitionProperty;r.applyTransitionDuration=G&&(r.hasTransitions&&!r.hasTransitionAll||r.hasAnimations&&!r.hasTransitions);r.applyAnimationDuration=h.duration&&r.hasAnimations;r.applyTransitionDelay=xa(h.delay)&&(r.applyTransitionDuration||
r.hasTransitions);r.applyAnimationDelay=xa(h.delay)&&r.hasAnimations;r.recalculateTimingStyles=0<R.length;if(r.applyTransitionDuration||r.applyAnimationDuration)N=h.duration?parseFloat(h.duration):N,r.applyTransitionDuration&&(r.hasTransitions=!0,B.transitionDuration=N,D=0<k.style[Q+"Property"].length,x.push(Ka(N,D))),r.applyAnimationDuration&&(r.hasAnimations=!0,B.animationDuration=N,x.push([Ba,N+"s"]));if(0===N&&!r.recalculateTimingStyles)return F();if(null!=h.delay){var aa;"boolean"!==typeof h.delay&&
(aa=parseFloat(h.delay),w=Math.max(aa,0));r.applyTransitionDelay&&x.push([la,aa+"s"]);r.applyAnimationDelay&&x.push([qa,aa+"s"])}null==h.duration&&0<B.transitionDuration&&(r.recalculateTimingStyles=r.recalculateTimingStyles||ia);P=1E3*w;S=1E3*N;h.skipBlocking||(r.blockTransition=0<B.transitionDuration,r.blockKeyframeAnimation=0<B.animationDuration&&0<U.animationDelay&&0===U.animationDuration);h.from&&(h.cleanupStyles&&Ma(p,k,Object.keys(h.from)),Ha(a,h));r.blockTransition||r.blockKeyframeAnimation?
L(N):h.skipBlocking||pa(k,!1);return{$$willAnimate:!0,end:d,start:function(){if(!M)return C={end:d,cancel:s,resume:null,pause:null},A=new f(C),v(ga),A}}}}]}]).provider("$$animateCssDriver",["$$animationProvider",function(a){a.drivers.push("$$animateCssDriver");this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(a,c,d,e,f,n,G){function l(a){return a.replace(/\bng-\S+\b/g,"")}function s(a,b){C(a)&&(a=a.split(" "));C(b)&&(b=b.split(" "));
return a.filter(function(a){return-1===b.indexOf(a)}).join(" ")}function y(c,f,e){function n(a){var b={},c=J(a).getBoundingClientRect();t(["width","height","top","left"],function(a){var d=c[a];switch(a){case "top":d+=v.scrollTop;break;case "left":d+=v.scrollLeft}b[a]=Math.floor(d)+"px"});return b}function G(){var c=l(e.attr("class")||""),d=s(c,m),c=s(m,c),d=a(y,{to:n(e),addClass:"ng-anchor-in "+d,removeClass:"ng-anchor-out "+c,delay:!0});return d.$$willAnimate?d:null}function q(){y.remove();f.removeClass("ng-animate-shim");
e.removeClass("ng-animate-shim")}var y=A(J(f).cloneNode(!0)),m=l(y.attr("class")||"");f.addClass("ng-animate-shim");e.addClass("ng-animate-shim");y.addClass("ng-anchor");E.append(y);var L;c=function(){var c=a(y,{addClass:"ng-anchor-out",delay:!0,from:n(f)});return c.$$willAnimate?c:null}();if(!c&&(L=G(),!L))return q();var F=c||L;return{start:function(){function a(){c&&c.end()}var b,c=F.start();c.done(function(){c=null;if(!L&&(L=G()))return c=L.start(),c.done(function(){c=null;q();b.complete()}),c;
q();b.complete()});return b=new d({end:a,cancel:a})}}}function q(a,b,c,f){var e=da(a,O),l=da(b,O),n=[];t(f,function(a){(a=y(c,a.out,a["in"]))&&n.push(a)});if(e||l||0!==n.length)return{start:function(){function a(){t(b,function(a){a.end()})}var b=[];e&&b.push(e.start());l&&b.push(l.start());t(n,function(a){b.push(a.start())});var c=new d({end:a,cancel:a});d.all(b,function(a){c.complete(a)});return c}}}function da(c){var d=c.element,e=c.options||{};c.structural&&(e.event=c.event,e.structural=!0,e.applyClassesEarly=
!0,"leave"===c.event&&(e.onDone=e.domOperation));e.preparationClasses&&(e.event=ca(e.event,e.preparationClasses));c=a(d,e);return c.$$willAnimate?c:null}if(!f.animations&&!f.transitions)return O;var v=G[0].body;c=J(e);var E=A(c.parentNode&&11===c.parentNode.nodeType||v.contains(c)?c:v);return function(a){return a.from&&a.to?q(a.from,a.to,a.classes,a.anchors):da(a)}}]}]).provider("$$animateJs",["$animateProvider",function(a){this.$get=["$injector","$$AnimateRunner","$$jqLite",function(b,c,d){function e(c){c=
V(c)?c:c.split(" ");for(var d=[],e={},f=0;f<c.length;f++){var y=c[f],q=a.$$registeredAnimations[y];q&&!e[y]&&(d.push(b.get(q)),e[y]=!0)}return d}var f=X(d);return function(a,b,d,s){function q(){s.domOperation();f(a,s)}function A(a,b,d,e,f){switch(d){case "animate":b=[b,e.from,e.to,f];break;case "setClass":b=[b,g,M,f];break;case "addClass":b=[b,g,f];break;case "removeClass":b=[b,M,f];break;default:b=[b,f]}b.push(e);if(a=a.apply(a,b))if(Da(a.start)&&(a=a.start()),a instanceof c)a.done(f);else if(Da(a))return a;
return O}function C(a,b,d,e,f){var g=[];t(e,function(e){var l=e[f];l&&g.push(function(){var e,f,h=!1,g=function(a){h||(h=!0,(f||O)(a),e.complete(!a))};e=new c({end:function(){g()},cancel:function(){g(!0)}});f=A(l,a,b,d,function(a){g(!1===a)});return e})});return g}function v(a,b,d,e,f){var g=C(a,b,d,e,f);if(0===g.length){var k,l;"beforeSetClass"===f?(k=C(a,"removeClass",d,e,"beforeRemoveClass"),l=C(a,"addClass",d,e,"beforeAddClass")):"setClass"===f&&(k=C(a,"removeClass",d,e,"removeClass"),l=C(a,"addClass",
d,e,"addClass"));k&&(g=g.concat(k));l&&(g=g.concat(l))}if(0!==g.length)return function(a){var b=[];g.length&&t(g,function(a){b.push(a())});b.length?c.all(b,a):a();return function(a){t(b,function(b){a?b.cancel():b.end()})}}}var E=!1;3===arguments.length&&ra(d)&&(s=d,d=null);s=oa(s);d||(d=a.attr("class")||"",s.addClass&&(d+=" "+s.addClass),s.removeClass&&(d+=" "+s.removeClass));var g=s.addClass,M=s.removeClass,x=e(d),H,I;if(x.length){var K,J;"leave"===b?(J="leave",K="afterLeave"):(J="before"+b.charAt(0).toUpperCase()+
b.substr(1),K=b);"enter"!==b&&"move"!==b&&(H=v(a,b,s,x,J));I=v(a,b,s,x,K)}if(H||I){var m;return{$$willAnimate:!0,end:function(){m?m.end():(E=!0,q(),ha(a,s),m=new c,m.complete(!0));return m},start:function(){function b(c){E=!0;q();ha(a,s);m.complete(c)}if(m)return m;m=new c;var d,e=[];H&&e.push(function(a){d=H(a)});e.length?e.push(function(a){q();a(!0)}):q();I&&e.push(function(a){d=I(a)});m.setHost({end:function(){E||((d||O)(void 0),b(void 0))},cancel:function(){E||((d||O)(!0),b(!0))}});c.chain(e,
b);return m}}}}}]}]).provider("$$animateJsDriver",["$$animationProvider",function(a){a.drivers.push("$$animateJsDriver");this.$get=["$$animateJs","$$AnimateRunner",function(a,c){function d(c){return a(c.element,c.event,c.classes,c.options)}return function(a){if(a.from&&a.to){var b=d(a.from),n=d(a.to);if(b||n)return{start:function(){function a(){return function(){t(d,function(a){a.end()})}}var d=[];b&&d.push(b.start());n&&d.push(n.start());c.all(d,function(a){e.complete(a)});var e=new c({end:a(),cancel:a()});
return e}}}else return d(a)}}]}])})(window,window.angular);
//# sourceMappingURL=angular-animate.min.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,10 +1,10 @@
{
"name": "angular-animate",
"version": "1.5.8",
"version": "1.6.6",
"license": "MIT",
"main": "./angular-animate.js",
"ignore": [],
"dependencies": {
"angular": "1.5.8"
"angular": "1.6.6"
}
}

View file

@ -1,30 +1,67 @@
{
"_args": [
[
{
"raw": "angular-animate@1.6.6",
"scope": null,
"escapedName": "angular-animate",
"name": "angular-animate",
"version": "1.5.8",
"description": "AngularJS module for animations",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"rawSpec": "1.6.6",
"spec": "1.6.6",
"type": "version"
},
"repository": {
"type": "git",
"url": "git+https://github.com/angular/angular.js.git"
},
"keywords": [
"angular",
"framework",
"browser",
"animation",
"client-side"
"/home/cycojesus/projets/ledgerrb/public/app/vendor"
]
],
"_from": "angular-animate@1.6.6",
"_id": "angular-animate@1.6.6",
"_inCache": true,
"_location": "/angular-animate",
"_nodeVersion": "6.11.2",
"_npmOperationalInternal": {
"host": "s3://npm-registry-packages",
"tmp": "tmp/angular-animate-1.6.6.tgz_1503067160752_0.017920649610459805"
},
"_npmUser": {
"name": "angularcore",
"email": "angular-core+npm@google.com"
},
"_npmVersion": "3.10.10",
"_phantomChildren": {},
"_requested": {
"raw": "angular-animate@1.6.6",
"scope": null,
"escapedName": "angular-animate",
"name": "angular-animate",
"rawSpec": "1.6.6",
"spec": "1.6.6",
"type": "version"
},
"_requiredBy": [
"#USER",
"/"
],
"_resolved": "https://registry.npmjs.org/angular-animate/-/angular-animate-1.6.6.tgz",
"_shasum": "6925647b141a040d241bf125040f1a150fcd8a70",
"_shrinkwrap": null,
"_spec": "angular-animate@1.6.6",
"_where": "/home/cycojesus/projets/ledgerrb/public/app/vendor",
"author": {
"name": "Angular Core Team",
"email": "angular-core+npm@google.com"
},
"license": "MIT",
"bugs": {
"url": "https://github.com/angular/angular.js/issues"
},
"dependencies": {},
"description": "AngularJS module for animations",
"devDependencies": {},
"directories": {},
"dist": {
"shasum": "6925647b141a040d241bf125040f1a150fcd8a70",
"tarball": "https://registry.npmjs.org/angular-animate/-/angular-animate-1.6.6.tgz"
},
"gitHead": "c776891d55ab19592833bb51b31c08b054edda25",
"homepage": "http://angularjs.org",
"jspm": {
"shim": {
@ -35,20 +72,15 @@
}
}
},
"gitHead": "688b68844cf95420e1793327f69d0c25589c23d1",
"_id": "angular-animate@1.5.8",
"_shasum": "535f7369225aba7fb15bf7134c71b15bc635c586",
"_from": "angular-animate@latest",
"_npmVersion": "2.15.8",
"_nodeVersion": "4.4.7",
"_npmUser": {
"name": "angularcore",
"email": "angular-core+npm@google.com"
},
"dist": {
"shasum": "535f7369225aba7fb15bf7134c71b15bc635c586",
"tarball": "https://registry.npmjs.org/angular-animate/-/angular-animate-1.5.8.tgz"
},
"keywords": [
"angular",
"framework",
"browser",
"animation",
"client-side"
],
"license": "MIT",
"main": "index.js",
"maintainers": [
{
"name": "akalinovski",
@ -63,11 +95,15 @@
"email": "pete@bacondarwin.com"
}
],
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/angular-animate-1.5.8.tgz_1469201403735_0.004368406254798174"
"name": "angular-animate",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/angular/angular.js.git"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/angular-animate/-/angular-animate-1.5.8.tgz",
"readme": "ERROR: No README data found!"
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"version": "1.6.6"
}

View file

@ -1,6 +1,6 @@
/**
* @license AngularJS v1.5.8
* (c) 2010-2016 Google, Inc. http://angularjs.org
* @license AngularJS v1.6.6
* (c) 2010-2017 Google, Inc. http://angularjs.org
* License: MIT
*/
(function(window, angular) {'use strict';
@ -27,18 +27,18 @@
* Below is a more detailed breakdown of the attributes handled by ngAria:
*
* | Directive | Supported Attributes |
* |---------------------------------------------|----------------------------------------------------------------------------------------|
* |---------------------------------------------|-----------------------------------------------------------------------------------------------------|
* | {@link ng.directive:ngModel ngModel} | aria-checked, aria-valuemin, aria-valuemax, aria-valuenow, aria-invalid, aria-required, input roles |
* | {@link ng.directive:ngDisabled ngDisabled} | aria-disabled |
* | {@link ng.directive:ngRequired ngRequired} | aria-required
* | {@link ng.directive:ngChecked ngChecked} | aria-checked
* | {@link ng.directive:ngRequired ngRequired} | aria-required |
* | {@link ng.directive:ngChecked ngChecked} | aria-checked |
* | {@link ng.directive:ngReadonly ngReadonly} | aria-readonly |
* | {@link ng.directive:ngValue ngValue} | aria-checked |
* | {@link ng.directive:ngShow ngShow} | aria-hidden |
* | {@link ng.directive:ngHide ngHide} | aria-hidden |
* | {@link ng.directive:ngDblclick ngDblclick} | tabindex |
* | {@link module:ngMessages ngMessages} | aria-live |
* | {@link ng.directive:ngClick ngClick} | tabindex, keypress event, button role |
* | {@link ng.directive:ngClick ngClick} | tabindex, keydown event, button role |
*
* Find out more information about each directive by reading the
* {@link guide/accessibility ngAria Developer Guide}.
@ -58,8 +58,8 @@
* {@link ngAria.$ariaProvider#config config} method. For more details, see the
* {@link guide/accessibility Developer Guide}.
*/
/* global -ngAriaModule */
var ngAriaModule = angular.module('ngAria', ['ng']).
info({ angularVersion: '1.6.6' }).
provider('$aria', $AriaProvider);
/**
@ -75,6 +75,7 @@ var isNodeOneOf = function(elem, nodeTypeArray) {
/**
* @ngdoc provider
* @name $ariaProvider
* @this
*
* @description
*
@ -103,7 +104,7 @@ function $AriaProvider() {
ariaInvalid: true,
ariaValue: true,
tabindex: true,
bindKeypress: true,
bindKeydown: true,
bindRoleForClick: true
};
@ -119,12 +120,15 @@ function $AriaProvider() {
* - **ariaDisabled** `{boolean}` Enables/disables aria-disabled tags
* - **ariaRequired** `{boolean}` Enables/disables aria-required tags
* - **ariaInvalid** `{boolean}` Enables/disables aria-invalid tags
* - **ariaValue** `{boolean}` Enables/disables aria-valuemin, aria-valuemax and aria-valuenow tags
* - **ariaValue** `{boolean}` Enables/disables aria-valuemin, aria-valuemax and
* aria-valuenow tags
* - **tabindex** `{boolean}` Enables/disables tabindex tags
* - **bindKeypress** `{boolean}` Enables/disables keypress event binding on `div` and
* `li` elements with ng-click
* - **bindRoleForClick** `{boolean}` Adds role=button to non-interactive elements like `div`
* using ng-click, making them more accessible to users of assistive technologies
* - **bindKeydown** `{boolean}` Enables/disables keyboard event binding on non-interactive
* elements (such as `div` or `li`) using ng-click, making them more accessible to users of
* assistive technologies
* - **bindRoleForClick** `{boolean}` Adds role=button to non-interactive elements (such as
* `div` or `li`) using ng-click, making them more accessible to users of assistive
* technologies
*
* @description
* Enables/disables various ARIA attributes
@ -233,8 +237,8 @@ ngAriaModule.directive('ngShow', ['$aria', function($aria) {
function shouldAttachRole(role, elem) {
// if element does not have role attribute
// AND element type is equal to role (if custom element has a type equaling shape) <-- remove?
// AND element is not INPUT
return !elem.attr('role') && (elem.attr('type') === role) && (elem[0].nodeName !== 'INPUT');
// AND element is not in nodeBlackList
return !elem.attr('role') && (elem.attr('type') === role) && !isNodeOneOf(elem, nodeBlackList);
}
function getShape(attr, elem) {
@ -254,14 +258,6 @@ ngAriaModule.directive('ngShow', ['$aria', function($aria) {
var shape = getShape(attr, elem);
return {
pre: function(scope, elem, attr, ngModel) {
if (shape === 'checkbox') {
//Use the input[checkbox] $isEmpty implementation for elements with checkbox roles
ngModel.$isEmpty = function(value) {
return value === false;
};
}
},
post: function(scope, elem, attr, ngModel) {
var needsTabIndex = shouldAttachAttr('tabindex', 'tabindex', elem, false);
@ -270,6 +266,8 @@ ngAriaModule.directive('ngShow', ['$aria', function($aria) {
}
function getRadioReaction(newVal) {
// Strict comparison would cause a BC
// eslint-disable-next-line eqeqeq
var boolVal = (attr.value == ngModel.$viewValue);
elem.attr('aria-checked', boolVal);
}
@ -363,7 +361,7 @@ ngAriaModule.directive('ngShow', ['$aria', function($aria) {
return {
restrict: 'A',
compile: function(elem, attr) {
var fn = $parse(attr.ngClick, /* interceptorFn */ null, /* expensiveChecks */ true);
var fn = $parse(attr.ngClick);
return function(scope, elem, attr) {
if (!isNodeOneOf(elem, nodeBlackList)) {
@ -376,8 +374,8 @@ ngAriaModule.directive('ngShow', ['$aria', function($aria) {
elem.attr('tabindex', 0);
}
if ($aria.config('bindKeypress') && !attr.ngKeypress) {
elem.on('keypress', function(event) {
if ($aria.config('bindKeydown') && !attr.ngKeydown && !attr.ngKeypress && !attr.ngKeyup) {
elem.on('keydown', function(event) {
var keyCode = event.which || event.keyCode;
if (keyCode === 32 || keyCode === 13) {
scope.$apply(callback);

View file

@ -1,14 +1,14 @@
/*
AngularJS v1.5.8
(c) 2010-2016 Google, Inc. http://angularjs.org
AngularJS v1.6.6
(c) 2010-2017 Google, Inc. http://angularjs.org
License: MIT
*/
(function(t,p){'use strict';var b="BUTTON A INPUT TEXTAREA SELECT DETAILS SUMMARY".split(" "),l=function(a,c){if(-1!==c.indexOf(a[0].nodeName))return!0};p.module("ngAria",["ng"]).provider("$aria",function(){function a(a,b,m,h){return function(d,f,e){var q=e.$normalize(b);!c[q]||l(f,m)||e[q]||d.$watch(e[a],function(a){a=h?!a:!!a;f.attr(b,a)})}}var c={ariaHidden:!0,ariaChecked:!0,ariaReadonly:!0,ariaDisabled:!0,ariaRequired:!0,ariaInvalid:!0,ariaValue:!0,tabindex:!0,bindKeypress:!0,bindRoleForClick:!0};
this.config=function(a){c=p.extend(c,a)};this.$get=function(){return{config:function(a){return c[a]},$$watchExpr:a}}}).directive("ngShow",["$aria",function(a){return a.$$watchExpr("ngShow","aria-hidden",[],!0)}]).directive("ngHide",["$aria",function(a){return a.$$watchExpr("ngHide","aria-hidden",[],!1)}]).directive("ngValue",["$aria",function(a){return a.$$watchExpr("ngValue","aria-checked",b,!1)}]).directive("ngChecked",["$aria",function(a){return a.$$watchExpr("ngChecked","aria-checked",b,!1)}]).directive("ngReadonly",
["$aria",function(a){return a.$$watchExpr("ngReadonly","aria-readonly",b,!1)}]).directive("ngRequired",["$aria",function(a){return a.$$watchExpr("ngRequired","aria-required",b,!1)}]).directive("ngModel",["$aria",function(a){function c(c,h,d,f){return a.config(h)&&!d.attr(c)&&(f||!l(d,b))}function g(a,c){return!c.attr("role")&&c.attr("type")===a&&"INPUT"!==c[0].nodeName}function k(a,c){var d=a.type,f=a.role;return"checkbox"===(d||f)||"menuitemcheckbox"===f?"checkbox":"radio"===(d||f)||"menuitemradio"===
f?"radio":"range"===d||"progressbar"===f||"slider"===f?"range":""}return{restrict:"A",require:"ngModel",priority:200,compile:function(b,h){var d=k(h,b);return{pre:function(a,e,c,b){"checkbox"===d&&(b.$isEmpty=function(a){return!1===a})},post:function(f,e,b,n){function h(){return n.$modelValue}function k(a){e.attr("aria-checked",b.value==n.$viewValue)}function l(){e.attr("aria-checked",!n.$isEmpty(n.$viewValue))}var m=c("tabindex","tabindex",e,!1);switch(d){case "radio":case "checkbox":g(d,e)&&e.attr("role",
d);c("aria-checked","ariaChecked",e,!1)&&f.$watch(h,"radio"===d?k:l);m&&e.attr("tabindex",0);break;case "range":g(d,e)&&e.attr("role","slider");if(a.config("ariaValue")){var p=!e.attr("aria-valuemin")&&(b.hasOwnProperty("min")||b.hasOwnProperty("ngMin")),r=!e.attr("aria-valuemax")&&(b.hasOwnProperty("max")||b.hasOwnProperty("ngMax")),s=!e.attr("aria-valuenow");p&&b.$observe("min",function(a){e.attr("aria-valuemin",a)});r&&b.$observe("max",function(a){e.attr("aria-valuemax",a)});s&&f.$watch(h,function(a){e.attr("aria-valuenow",
a)})}m&&e.attr("tabindex",0)}!b.hasOwnProperty("ngRequired")&&n.$validators.required&&c("aria-required","ariaRequired",e,!1)&&b.$observe("required",function(){e.attr("aria-required",!!b.required)});c("aria-invalid","ariaInvalid",e,!0)&&f.$watch(function(){return n.$invalid},function(a){e.attr("aria-invalid",!!a)})}}}}}]).directive("ngDisabled",["$aria",function(a){return a.$$watchExpr("ngDisabled","aria-disabled",b,!1)}]).directive("ngMessages",function(){return{restrict:"A",require:"?ngMessages",
link:function(a,b,g,k){b.attr("aria-live")||b.attr("aria-live","assertive")}}}).directive("ngClick",["$aria","$parse",function(a,c){return{restrict:"A",compile:function(g,k){var m=c(k.ngClick,null,!0);return function(c,d,f){if(!l(d,b)&&(a.config("bindRoleForClick")&&!d.attr("role")&&d.attr("role","button"),a.config("tabindex")&&!d.attr("tabindex")&&d.attr("tabindex",0),a.config("bindKeypress")&&!f.ngKeypress))d.on("keypress",function(a){function b(){m(c,{$event:a})}var d=a.which||a.keyCode;32!==d&&
13!==d||c.$apply(b)})}}}}]).directive("ngDblclick",["$aria",function(a){return function(c,g,k){!a.config("tabindex")||g.attr("tabindex")||l(g,b)||g.attr("tabindex",0)}}])})(window,window.angular);
(function(s,p){'use strict';var c="BUTTON A INPUT TEXTAREA SELECT DETAILS SUMMARY".split(" "),h=function(a,b){if(-1!==b.indexOf(a[0].nodeName))return!0};p.module("ngAria",["ng"]).info({angularVersion:"1.6.6"}).provider("$aria",function(){function a(a,c,n,k){return function(d,f,e){var g=e.$normalize(c);!b[g]||h(f,n)||e[g]||d.$watch(e[a],function(a){a=k?!a:!!a;f.attr(c,a)})}}var b={ariaHidden:!0,ariaChecked:!0,ariaReadonly:!0,ariaDisabled:!0,ariaRequired:!0,ariaInvalid:!0,ariaValue:!0,tabindex:!0,bindKeydown:!0,
bindRoleForClick:!0};this.config=function(a){b=p.extend(b,a)};this.$get=function(){return{config:function(a){return b[a]},$$watchExpr:a}}}).directive("ngShow",["$aria",function(a){return a.$$watchExpr("ngShow","aria-hidden",[],!0)}]).directive("ngHide",["$aria",function(a){return a.$$watchExpr("ngHide","aria-hidden",[],!1)}]).directive("ngValue",["$aria",function(a){return a.$$watchExpr("ngValue","aria-checked",c,!1)}]).directive("ngChecked",["$aria",function(a){return a.$$watchExpr("ngChecked","aria-checked",
c,!1)}]).directive("ngReadonly",["$aria",function(a){return a.$$watchExpr("ngReadonly","aria-readonly",c,!1)}]).directive("ngRequired",["$aria",function(a){return a.$$watchExpr("ngRequired","aria-required",c,!1)}]).directive("ngModel",["$aria",function(a){function b(b,k,d,f){return a.config(k)&&!d.attr(b)&&(f||!h(d,c))}function l(a,b){return!b.attr("role")&&b.attr("type")===a&&!h(b,c)}function m(a,b){var d=a.type,f=a.role;return"checkbox"===(d||f)||"menuitemcheckbox"===f?"checkbox":"radio"===(d||
f)||"menuitemradio"===f?"radio":"range"===d||"progressbar"===f||"slider"===f?"range":""}return{restrict:"A",require:"ngModel",priority:200,compile:function(c,k){var d=m(k,c);return{post:function(f,e,g,c){function k(){return c.$modelValue}function h(a){e.attr("aria-checked",g.value==c.$viewValue)}function m(){e.attr("aria-checked",!c.$isEmpty(c.$viewValue))}var n=b("tabindex","tabindex",e,!1);switch(d){case "radio":case "checkbox":l(d,e)&&e.attr("role",d);b("aria-checked","ariaChecked",e,!1)&&f.$watch(k,
"radio"===d?h:m);n&&e.attr("tabindex",0);break;case "range":l(d,e)&&e.attr("role","slider");if(a.config("ariaValue")){var p=!e.attr("aria-valuemin")&&(g.hasOwnProperty("min")||g.hasOwnProperty("ngMin")),q=!e.attr("aria-valuemax")&&(g.hasOwnProperty("max")||g.hasOwnProperty("ngMax")),r=!e.attr("aria-valuenow");p&&g.$observe("min",function(a){e.attr("aria-valuemin",a)});q&&g.$observe("max",function(a){e.attr("aria-valuemax",a)});r&&f.$watch(k,function(a){e.attr("aria-valuenow",a)})}n&&e.attr("tabindex",
0)}!g.hasOwnProperty("ngRequired")&&c.$validators.required&&b("aria-required","ariaRequired",e,!1)&&g.$observe("required",function(){e.attr("aria-required",!!g.required)});b("aria-invalid","ariaInvalid",e,!0)&&f.$watch(function(){return c.$invalid},function(a){e.attr("aria-invalid",!!a)})}}}}}]).directive("ngDisabled",["$aria",function(a){return a.$$watchExpr("ngDisabled","aria-disabled",c,!1)}]).directive("ngMessages",function(){return{restrict:"A",require:"?ngMessages",link:function(a,b,c,h){b.attr("aria-live")||
b.attr("aria-live","assertive")}}}).directive("ngClick",["$aria","$parse",function(a,b){return{restrict:"A",compile:function(l,m){var n=b(m.ngClick);return function(b,d,f){if(!h(d,c)&&(a.config("bindRoleForClick")&&!d.attr("role")&&d.attr("role","button"),a.config("tabindex")&&!d.attr("tabindex")&&d.attr("tabindex",0),a.config("bindKeydown")&&!f.ngKeydown&&!f.ngKeypress&&!f.ngKeyup))d.on("keydown",function(a){function c(){n(b,{$event:a})}var d=a.which||a.keyCode;32!==d&&13!==d||b.$apply(c)})}}}}]).directive("ngDblclick",
["$aria",function(a){return function(b,l,m){!a.config("tabindex")||l.attr("tabindex")||h(l,c)||l.attr("tabindex",0)}}])})(window,window.angular);
//# sourceMappingURL=angular-aria.min.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,10 +1,10 @@
{
"name": "angular-aria",
"version": "1.5.8",
"version": "1.6.6",
"license": "MIT",
"main": "./angular-aria.js",
"ignore": [],
"dependencies": {
"angular": "1.5.8"
"angular": "1.6.6"
}
}

View file

@ -1,31 +1,67 @@
{
"_args": [
[
{
"raw": "angular-aria@1.6.6",
"scope": null,
"escapedName": "angular-aria",
"name": "angular-aria",
"version": "1.5.8",
"description": "AngularJS module for making accessibility easy",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"rawSpec": "1.6.6",
"spec": "1.6.6",
"type": "version"
},
"repository": {
"type": "git",
"url": "git+https://github.com/angular/angular.js.git"
},
"keywords": [
"angular",
"framework",
"browser",
"accessibility",
"a11y",
"client-side"
"/home/cycojesus/projets/ledgerrb/public/app/vendor"
]
],
"_from": "angular-aria@1.6.6",
"_id": "angular-aria@1.6.6",
"_inCache": true,
"_location": "/angular-aria",
"_nodeVersion": "6.11.2",
"_npmOperationalInternal": {
"host": "s3://npm-registry-packages",
"tmp": "tmp/angular-aria-1.6.6.tgz_1503067175045_0.5452085908036679"
},
"_npmUser": {
"name": "angularcore",
"email": "angular-core+npm@google.com"
},
"_npmVersion": "3.10.10",
"_phantomChildren": {},
"_requested": {
"raw": "angular-aria@1.6.6",
"scope": null,
"escapedName": "angular-aria",
"name": "angular-aria",
"rawSpec": "1.6.6",
"spec": "1.6.6",
"type": "version"
},
"_requiredBy": [
"#USER",
"/"
],
"_resolved": "https://registry.npmjs.org/angular-aria/-/angular-aria-1.6.6.tgz",
"_shasum": "58dd748e09564bc8409f739bde57b35fbee5b6a5",
"_shrinkwrap": null,
"_spec": "angular-aria@1.6.6",
"_where": "/home/cycojesus/projets/ledgerrb/public/app/vendor",
"author": {
"name": "Angular Core Team",
"email": "angular-core+npm@google.com"
},
"license": "MIT",
"bugs": {
"url": "https://github.com/angular/angular.js/issues"
},
"dependencies": {},
"description": "AngularJS module for making accessibility easy",
"devDependencies": {},
"directories": {},
"dist": {
"shasum": "58dd748e09564bc8409f739bde57b35fbee5b6a5",
"tarball": "https://registry.npmjs.org/angular-aria/-/angular-aria-1.6.6.tgz"
},
"gitHead": "0f0b36dd676e685650a5e2a342288c2578ecda04",
"homepage": "http://angularjs.org",
"jspm": {
"shim": {
@ -36,20 +72,16 @@
}
}
},
"gitHead": "91710f3ee26d4e2858af0c91ec462aa43360da47",
"_id": "angular-aria@1.5.8",
"_shasum": "558fa07dc82c6fa57b1438e660bbdcfcb805a2f5",
"_from": "angular-aria@latest",
"_npmVersion": "2.15.8",
"_nodeVersion": "4.4.7",
"_npmUser": {
"name": "angularcore",
"email": "angular-core+npm@google.com"
},
"dist": {
"shasum": "558fa07dc82c6fa57b1438e660bbdcfcb805a2f5",
"tarball": "https://registry.npmjs.org/angular-aria/-/angular-aria-1.5.8.tgz"
},
"keywords": [
"angular",
"framework",
"browser",
"accessibility",
"a11y",
"client-side"
],
"license": "MIT",
"main": "index.js",
"maintainers": [
{
"name": "angularcore",
@ -60,11 +92,15 @@
"email": "pete@bacondarwin.com"
}
],
"_npmOperationalInternal": {
"host": "packages-16-east.internal.npmjs.com",
"tmp": "tmp/angular-aria-1.5.8.tgz_1469201415039_0.7212073430418968"
"name": "angular-aria",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/angular/angular.js.git"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/angular-aria/-/angular-aria-1.5.8.tgz",
"readme": "ERROR: No README data found!"
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"version": "1.6.6"
}

View file

@ -40,27 +40,27 @@ $provide.value("$locale", {
"Desember"
],
"SHORTDAY": [
"So",
"Ma",
"Di",
"Wo",
"Do",
"Vr",
"Sa"
"So.",
"Ma.",
"Di.",
"Wo.",
"Do.",
"Vr.",
"Sa."
],
"SHORTMONTH": [
"Jan.",
"Feb.",
"Mrt.",
"Apr",
"Apr.",
"Mei",
"Jun",
"Jul",
"Aug",
"Sep",
"Okt",
"Nov",
"Des"
"Jun.",
"Jul.",
"Aug.",
"Sep.",
"Okt.",
"Nov.",
"Des."
],
"STANDALONEMONTH": [
"Januarie",
@ -80,10 +80,10 @@ $provide.value("$locale", {
5,
6
],
"fullDate": "EEEE d MMMM y",
"longDate": "d MMMM y",
"medium": "d MMM y HH:mm:ss",
"mediumDate": "d MMM y",
"fullDate": "EEEE, dd MMMM y",
"longDate": "dd MMMM y",
"medium": "dd MMM y HH:mm:ss",
"mediumDate": "dd MMM y",
"mediumTime": "HH:mm:ss",
"short": "y-MM-dd HH:mm",
"shortDate": "y-MM-dd",

View file

@ -40,27 +40,27 @@ $provide.value("$locale", {
"Desember"
],
"SHORTDAY": [
"So",
"Ma",
"Di",
"Wo",
"Do",
"Vr",
"Sa"
"So.",
"Ma.",
"Di.",
"Wo.",
"Do.",
"Vr.",
"Sa."
],
"SHORTMONTH": [
"Jan.",
"Feb.",
"Mrt.",
"Apr",
"Apr.",
"Mei",
"Jun",
"Jul",
"Aug",
"Sep",
"Okt",
"Nov",
"Des"
"Jun.",
"Jul.",
"Aug.",
"Sep.",
"Okt.",
"Nov.",
"Des."
],
"STANDALONEMONTH": [
"Januarie",
@ -82,12 +82,12 @@ $provide.value("$locale", {
],
"fullDate": "EEEE, dd MMMM y",
"longDate": "dd MMMM y",
"medium": "dd MMM y h:mm:ss a",
"medium": "dd MMM y HH:mm:ss",
"mediumDate": "dd MMM y",
"mediumTime": "h:mm:ss a",
"short": "y-MM-dd h:mm a",
"mediumTime": "HH:mm:ss",
"short": "y-MM-dd HH:mm",
"shortDate": "y-MM-dd",
"shortTime": "h:mm a"
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "R",

View file

@ -40,27 +40,27 @@ $provide.value("$locale", {
"Desember"
],
"SHORTDAY": [
"So",
"Ma",
"Di",
"Wo",
"Do",
"Vr",
"Sa"
"So.",
"Ma.",
"Di.",
"Wo.",
"Do.",
"Vr.",
"Sa."
],
"SHORTMONTH": [
"Jan.",
"Feb.",
"Mrt.",
"Apr",
"Apr.",
"Mei",
"Jun",
"Jul",
"Aug",
"Sep",
"Okt",
"Nov",
"Des"
"Jun.",
"Jul.",
"Aug.",
"Sep.",
"Okt.",
"Nov.",
"Des."
],
"STANDALONEMONTH": [
"Januarie",
@ -82,12 +82,12 @@ $provide.value("$locale", {
],
"fullDate": "EEEE, dd MMMM y",
"longDate": "dd MMMM y",
"medium": "dd MMM y h:mm:ss a",
"medium": "dd MMM y HH:mm:ss",
"mediumDate": "dd MMM y",
"mediumTime": "h:mm:ss a",
"short": "y-MM-dd h:mm a",
"mediumTime": "HH:mm:ss",
"short": "y-MM-dd HH:mm",
"shortDate": "y-MM-dd",
"shortTime": "h:mm a"
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "R",

View file

@ -126,8 +126,8 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-",
"negSuf": "\u00a4",

View file

@ -100,12 +100,12 @@ $provide.value("$locale", {
],
"fullDate": "EEEE, y MMMM dd",
"longDate": "y MMMM d",
"medium": "y MMM d HH:mm:ss",
"medium": "y MMM d h:mm:ss a",
"mediumDate": "y MMM d",
"mediumTime": "HH:mm:ss",
"short": "yy/MM/dd HH:mm",
"mediumTime": "h:mm:ss a",
"short": "yy/MM/dd h:mm a",
"shortDate": "yy/MM/dd",
"shortTime": "HH:mm"
"shortTime": "h:mm a"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "GHS",

View file

@ -100,12 +100,12 @@ $provide.value("$locale", {
],
"fullDate": "EEEE, y MMMM dd",
"longDate": "y MMMM d",
"medium": "y MMM d HH:mm:ss",
"medium": "y MMM d h:mm:ss a",
"mediumDate": "y MMM d",
"mediumTime": "HH:mm:ss",
"short": "yy/MM/dd HH:mm",
"mediumTime": "h:mm:ss a",
"short": "yy/MM/dd h:mm a",
"shortDate": "yy/MM/dd",
"shortTime": "HH:mm"
"shortTime": "h:mm a"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "GHS",

View file

@ -80,7 +80,7 @@ $provide.value("$locale", {
5,
6
],
"fullDate": "EEEE, d MMMM y",
"fullDate": "EEEE \u1363d MMMM y",
"longDate": "d MMMM y",
"medium": "d MMM y h:mm:ss a",
"mediumDate": "d MMM y",

View file

@ -80,7 +80,7 @@ $provide.value("$locale", {
5,
6
],
"fullDate": "EEEE, d MMMM y",
"fullDate": "EEEE \u1363d MMMM y",
"longDate": "d MMMM y",
"medium": "d MMM y h:mm:ss a",
"mediumDate": "d MMM y",

View file

@ -24,7 +24,7 @@ $provide.value("$locale", {
"\u0642.\u0645",
"\u0645"
],
"FIRSTDAYOFWEEK": 5,
"FIRSTDAYOFWEEK": 0,
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
@ -77,8 +77,8 @@ $provide.value("$locale", {
"\u062f\u064a\u0633\u0645\u0628\u0631"
],
"WEEKENDRANGE": [
4,
5
5,
6
],
"fullDate": "EEEE\u060c d MMMM\u060c y",
"longDate": "d MMMM\u060c y",
@ -111,10 +111,10 @@ $provide.value("$locale", {
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -111,10 +111,10 @@ $provide.value("$locale", {
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -108,13 +108,13 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 3,
"minFrac": 3,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -108,13 +108,13 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -111,10 +111,10 @@ $provide.value("$locale", {
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -111,10 +111,10 @@ $provide.value("$locale", {
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -82,12 +82,12 @@ $provide.value("$locale", {
],
"fullDate": "EEEE\u060c d MMMM\u060c y",
"longDate": "d MMMM\u060c y",
"medium": "dd\u200f/MM\u200f/y h:mm:ss a",
"medium": "dd\u200f/MM\u200f/y H:mm:ss",
"mediumDate": "dd\u200f/MM\u200f/y",
"mediumTime": "h:mm:ss a",
"short": "d\u200f/M\u200f/y h:mm a",
"mediumTime": "H:mm:ss",
"short": "d\u200f/M\u200f/y H:mm",
"shortDate": "d\u200f/M\u200f/y",
"shortTime": "h:mm a"
"shortTime": "H:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "\u20aa",
@ -111,10 +111,10 @@ $provide.value("$locale", {
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -108,13 +108,13 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -108,13 +108,13 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 3,
"minFrac": 3,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -82,12 +82,12 @@ $provide.value("$locale", {
],
"fullDate": "EEEE\u060c d MMMM\u060c y",
"longDate": "d MMMM\u060c y",
"medium": "dd\u200f/MM\u200f/y h:mm:ss a",
"medium": "dd\u200f/MM\u200f/y HH:mm:ss",
"mediumDate": "dd\u200f/MM\u200f/y",
"mediumTime": "h:mm:ss a",
"short": "d\u200f/M\u200f/y h:mm a",
"mediumTime": "HH:mm:ss",
"short": "d\u200f/M\u200f/y HH:mm",
"shortDate": "d\u200f/M\u200f/y",
"shortTime": "h:mm a"
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "CF",
@ -108,13 +108,13 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -108,13 +108,13 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 3,
"minFrac": 3,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -108,13 +108,13 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -108,8 +108,8 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 3,
"minFrac": 3,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",

View file

@ -82,12 +82,12 @@ $provide.value("$locale", {
],
"fullDate": "EEEE\u060c d MMMM\u060c y",
"longDate": "d MMMM\u060c y",
"medium": "dd\u200f/MM\u200f/y h:mm:ss a",
"medium": "dd\u200f/MM\u200f/y HH:mm:ss",
"mediumDate": "dd\u200f/MM\u200f/y",
"mediumTime": "h:mm:ss a",
"short": "d\u200f/M\u200f/y h:mm a",
"mediumTime": "HH:mm:ss",
"short": "d\u200f/M\u200f/y HH:mm",
"shortDate": "d\u200f/M\u200f/y",
"shortTime": "h:mm a"
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "dh",

View file

@ -108,13 +108,13 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -108,13 +108,13 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 3,
"minFrac": 3,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -111,10 +111,10 @@ $provide.value("$locale", {
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -111,10 +111,10 @@ $provide.value("$locale", {
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -111,10 +111,10 @@ $provide.value("$locale", {
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -111,10 +111,10 @@ $provide.value("$locale", {
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -108,13 +108,13 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -111,10 +111,10 @@ $provide.value("$locale", {
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -108,13 +108,13 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -108,13 +108,13 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -108,8 +108,8 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 3,
"minFrac": 3,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",

View file

@ -4,63 +4,63 @@ var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"\u202eAM\u202c",
"\u202ePM\u202c"
"\u061c\u202eAM\u202c\u061c",
"\u061c\u202ePM\u202c\u061c"
],
"DAY": [
"\u202eSunday\u202c",
"\u202eMonday\u202c",
"\u202eTuesday\u202c",
"\u202eWednesday\u202c",
"\u202eThursday\u202c",
"\u202eFriday\u202c",
"\u202eSaturday\u202c"
"\u061c\u202eSunday\u202c\u061c",
"\u061c\u202eMonday\u202c\u061c",
"\u061c\u202eTuesday\u202c\u061c",
"\u061c\u202eWednesday\u202c\u061c",
"\u061c\u202eThursday\u202c\u061c",
"\u061c\u202eFriday\u202c\u061c",
"\u061c\u202eSaturday\u202c\u061c"
],
"ERANAMES": [
"\u202eBefore\u202c \u202eChrist\u202c",
"\u202eAnno\u202c \u202eDomini\u202c"
"\u061c\u202eBefore\u202c\u061c \u061c\u202eChrist\u202c\u061c",
"\u061c\u202eAnno\u202c\u061c \u061c\u202eDomini\u202c\u061c"
],
"ERAS": [
"\u202eBC\u202c",
"\u202eAD\u202c"
"\u061c\u202eBC\u202c\u061c",
"\u061c\u202eAD\u202c\u061c"
],
"FIRSTDAYOFWEEK": 0,
"MONTH": [
"\u202eJanuary\u202c",
"\u202eFebruary\u202c",
"\u202eMarch\u202c",
"\u202eApril\u202c",
"\u202eMay\u202c",
"\u202eJune\u202c",
"\u202eJuly\u202c",
"\u202eAugust\u202c",
"\u202eSeptember\u202c",
"\u202eOctober\u202c",
"\u202eNovember\u202c",
"\u202eDecember\u202c"
"\u061c\u202eJanuary\u202c\u061c",
"\u061c\u202eFebruary\u202c\u061c",
"\u061c\u202eMarch\u202c\u061c",
"\u061c\u202eApril\u202c\u061c",
"\u061c\u202eMay\u202c\u061c",
"\u061c\u202eJune\u202c\u061c",
"\u061c\u202eJuly\u202c\u061c",
"\u061c\u202eAugust\u202c\u061c",
"\u061c\u202eSeptember\u202c\u061c",
"\u061c\u202eOctober\u202c\u061c",
"\u061c\u202eNovember\u202c\u061c",
"\u061c\u202eDecember\u202c\u061c"
],
"SHORTDAY": [
"\u202eSun\u202c",
"\u202eMon\u202c",
"\u202eTue\u202c",
"\u202eWed\u202c",
"\u202eThu\u202c",
"\u202eFri\u202c",
"\u202eSat\u202c"
"\u061c\u202eSun\u202c\u061c",
"\u061c\u202eMon\u202c\u061c",
"\u061c\u202eTue\u202c\u061c",
"\u061c\u202eWed\u202c\u061c",
"\u061c\u202eThu\u202c\u061c",
"\u061c\u202eFri\u202c\u061c",
"\u061c\u202eSat\u202c\u061c"
],
"SHORTMONTH": [
"\u202eJan\u202c",
"\u202eFeb\u202c",
"\u202eMar\u202c",
"\u202eApr\u202c",
"\u202eMay\u202c",
"\u202eJun\u202c",
"\u202eJul\u202c",
"\u202eAug\u202c",
"\u202eSep\u202c",
"\u202eOct\u202c",
"\u202eNov\u202c",
"\u202eDec\u202c"
"\u061c\u202eJan\u202c\u061c",
"\u061c\u202eFeb\u202c\u061c",
"\u061c\u202eMar\u202c\u061c",
"\u061c\u202eApr\u202c\u061c",
"\u061c\u202eMay\u202c\u061c",
"\u061c\u202eJun\u202c\u061c",
"\u061c\u202eJul\u202c\u061c",
"\u061c\u202eAug\u202c\u061c",
"\u061c\u202eSep\u202c\u061c",
"\u061c\u202eOct\u202c\u061c",
"\u061c\u202eNov\u202c\u061c",
"\u061c\u202eDec\u202c\u061c"
],
"STANDALONEMONTH": [
"\u064a\u0646\u0627\u064a\u0631",
@ -91,8 +91,8 @@ $provide.value("$locale", {
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "\u00a3",
"DECIMAL_SEP": "\u066b",
"GROUP_SEP": "\u066c",
"DECIMAL_SEP": ".",
"GROUP_SEP": ",",
"PATTERNS": [
{
"gSize": 3,

View file

@ -108,13 +108,13 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -111,10 +111,10 @@ $provide.value("$locale", {
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-\u00a4\u00a0",
"negSuf": "",
"posPre": "\u00a4\u00a0",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -98,14 +98,14 @@ $provide.value("$locale", {
6,
6
],
"fullDate": "EEEE, d MMMM, y",
"longDate": "d MMMM, y",
"medium": "dd-MM-y h.mm.ss a",
"mediumDate": "dd-MM-y",
"mediumTime": "h.mm.ss a",
"short": "d-M-y h.mm. a",
"shortDate": "d-M-y",
"shortTime": "h.mm. a"
"fullDate": "y MMMM d, EEEE",
"longDate": "y MMMM d",
"medium": "y MMM d HH:mm:ss",
"mediumDate": "y MMM d",
"mediumTime": "HH:mm:ss",
"short": "y-MM-dd HH:mm",
"shortDate": "y-MM-dd",
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "\u20b9",

View file

@ -98,14 +98,14 @@ $provide.value("$locale", {
6,
6
],
"fullDate": "EEEE, d MMMM, y",
"longDate": "d MMMM, y",
"medium": "dd-MM-y h.mm.ss a",
"mediumDate": "dd-MM-y",
"mediumTime": "h.mm.ss a",
"short": "d-M-y h.mm. a",
"shortDate": "d-M-y",
"shortTime": "h.mm. a"
"fullDate": "y MMMM d, EEEE",
"longDate": "y MMMM d",
"medium": "y MMM d HH:mm:ss",
"mediumDate": "y MMM d",
"mediumTime": "HH:mm:ss",
"short": "y-MM-dd HH:mm",
"shortDate": "y-MM-dd",
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "\u20b9",

View file

@ -100,12 +100,12 @@ $provide.value("$locale", {
],
"fullDate": "EEEE, d MMMM y",
"longDate": "d MMMM y",
"medium": "d MMM y h:mm:ss a",
"medium": "d MMM y HH:mm:ss",
"mediumDate": "d MMM y",
"mediumTime": "h:mm:ss a",
"short": "dd/MM/y h:mm a",
"mediumTime": "HH:mm:ss",
"short": "dd/MM/y HH:mm",
"shortDate": "dd/MM/y",
"shortTime": "h:mm a"
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "TSh",
@ -126,8 +126,8 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-",
"negSuf": "\u00a0\u00a4",

View file

@ -100,12 +100,12 @@ $provide.value("$locale", {
],
"fullDate": "EEEE, d MMMM y",
"longDate": "d MMMM y",
"medium": "d MMM y h:mm:ss a",
"medium": "d MMM y HH:mm:ss",
"mediumDate": "d MMM y",
"mediumTime": "h:mm:ss a",
"short": "dd/MM/y h:mm a",
"mediumTime": "HH:mm:ss",
"short": "dd/MM/y HH:mm",
"shortDate": "dd/MM/y",
"shortTime": "h:mm a"
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "TSh",

View file

@ -22,8 +22,8 @@ function getVF(n, opt_precision) {
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"AM",
"PM"
"de la ma\u00f1ana",
"de la tarde"
],
"DAY": [
"domingu",
@ -35,11 +35,11 @@ $provide.value("$locale", {
"s\u00e1badu"
],
"ERANAMES": [
"a.C.",
"d.C."
"enantes de Cristu",
"despu\u00e9s de Cristu"
],
"ERAS": [
"a.C.",
"e.C.",
"d.C."
],
"FIRSTDAYOFWEEK": 0,
@ -61,10 +61,10 @@ $provide.value("$locale", {
"dom",
"llu",
"mar",
"mie",
"mi\u00e9",
"xue",
"vie",
"sab"
"s\u00e1b"
],
"SHORTMONTH": [
"xin",

View file

@ -22,8 +22,8 @@ function getVF(n, opt_precision) {
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"AM",
"PM"
"de la ma\u00f1ana",
"de la tarde"
],
"DAY": [
"domingu",
@ -35,11 +35,11 @@ $provide.value("$locale", {
"s\u00e1badu"
],
"ERANAMES": [
"a.C.",
"d.C."
"enantes de Cristu",
"despu\u00e9s de Cristu"
],
"ERAS": [
"a.C.",
"e.C.",
"d.C."
],
"FIRSTDAYOFWEEK": 0,
@ -61,10 +61,10 @@ $provide.value("$locale", {
"dom",
"llu",
"mar",
"mie",
"mi\u00e9",
"xue",
"vie",
"sab"
"s\u00e1b"
],
"SHORTMONTH": [
"xin",

View file

@ -4,8 +4,8 @@ var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"AM",
"PM"
"\u0410\u041c",
"\u041f\u041c"
],
"DAY": [
"\u0431\u0430\u0437\u0430\u0440",
@ -17,12 +17,12 @@ $provide.value("$locale", {
"\u0448\u04d9\u043d\u0431\u04d9"
],
"ERANAMES": [
"BCE",
"CE"
"\u0435\u0440\u0430\u043c\u044b\u0437\u0434\u0430\u043d \u04d9\u0432\u0432\u04d9\u043b",
"\u0458\u0435\u043d\u0438 \u0435\u0440\u0430"
],
"ERAS": [
"BCE",
"CE"
"\u0435.\u04d9.",
"\u0458.\u0435."
],
"FIRSTDAYOFWEEK": 0,
"MONTH": [
@ -40,57 +40,57 @@ $provide.value("$locale", {
"\u0434\u0435\u043a\u0430\u0431\u0440"
],
"SHORTDAY": [
"\u0431\u0430\u0437\u0430\u0440",
"\u0431\u0430\u0437\u0430\u0440 \u0435\u0440\u0442\u04d9\u0441\u0438",
"\u0447\u04d9\u0440\u0448\u04d9\u043d\u0431\u04d9 \u0430\u0445\u0448\u0430\u043c\u044b",
"\u0447\u04d9\u0440\u0448\u04d9\u043d\u0431\u04d9",
"\u04b9\u04af\u043c\u04d9 \u0430\u0445\u0448\u0430\u043c\u044b",
"\u04b9\u04af\u043c\u04d9",
"\u0448\u04d9\u043d\u0431\u04d9"
"\u0411.",
"\u0411.\u0415.",
"\u0427.\u0410.",
"\u0427.",
"\u04b8.\u0410.",
"\u04b8.",
"\u0428."
],
"SHORTMONTH": [
"\u0458\u0430\u043d\u0432\u0430\u0440",
"\u0444\u0435\u0432\u0440\u0430\u043b",
"\u043c\u0430\u0440\u0442",
"\u0430\u043f\u0440\u0435\u043b",
"\u0458\u0430\u043d",
"\u0444\u0435\u0432",
"\u043c\u0430\u0440",
"\u0430\u043f\u0440",
"\u043c\u0430\u0439",
"\u0438\u0458\u0443\u043d",
"\u0438\u0458\u0443\u043b",
"\u0430\u0432\u0433\u0443\u0441\u0442",
"\u0441\u0435\u043d\u0442\u0458\u0430\u0431\u0440",
"\u043e\u043a\u0442\u0458\u0430\u0431\u0440",
"\u043d\u043e\u0458\u0430\u0431\u0440",
"\u0434\u0435\u043a\u0430\u0431\u0440"
"\u0438\u0458\u043d",
"\u0438\u0458\u043b",
"\u0430\u0432\u0433",
"\u0441\u0435\u043d",
"\u043e\u043a\u0442",
"\u043d\u043e\u0458",
"\u0434\u0435\u043a"
],
"STANDALONEMONTH": [
"\u0458\u0430\u043d\u0432\u0430\u0440",
"\u0444\u0435\u0432\u0440\u0430\u043b",
"\u043c\u0430\u0440\u0442",
"\u0430\u043f\u0440\u0435\u043b",
"\u043c\u0430\u0439",
"\u0438\u0458\u0443\u043d",
"\u0438\u0458\u0443\u043b",
"\u0430\u0432\u0433\u0443\u0441\u0442",
"\u0441\u0435\u043d\u0442\u0458\u0430\u0431\u0440",
"\u043e\u043a\u0442\u0458\u0430\u0431\u0440",
"\u043d\u043e\u0458\u0430\u0431\u0440",
"\u0434\u0435\u043a\u0430\u0431\u0440"
"\u0408\u0430\u043d\u0432\u0430\u0440",
"\u0424\u0435\u0432\u0440\u0430\u043b",
"\u041c\u0430\u0440\u0442",
"\u0410\u043f\u0440\u0435\u043b",
"\u041c\u0430\u0439",
"\u0418\u0458\u0443\u043d",
"\u0418\u0458\u0443\u043b",
"\u0410\u0432\u0433\u0443\u0441\u0442",
"\u0421\u0435\u043d\u0442\u0458\u0430\u0431\u0440",
"\u041e\u043a\u0442\u0458\u0430\u0431\u0440",
"\u041d\u043e\u0458\u0430\u0431\u0440",
"\u0414\u0435\u043a\u0430\u0431\u0440"
],
"WEEKENDRANGE": [
5,
6
],
"fullDate": "EEEE, d, MMMM, y",
"longDate": "d MMMM, y",
"medium": "d MMM, y HH:mm:ss",
"mediumDate": "d MMM, y",
"fullDate": "d MMMM y, EEEE",
"longDate": "d MMMM y",
"medium": "d MMM y HH:mm:ss",
"mediumDate": "d MMM y",
"mediumTime": "HH:mm:ss",
"short": "dd.MM.yy HH:mm",
"shortDate": "dd.MM.yy",
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "man.",
"CURRENCY_SYM": "\u20bc",
"DECIMAL_SEP": ",",
"GROUP_SEP": ".",
"PATTERNS": [

View file

@ -4,8 +4,8 @@ var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"AM",
"PM"
"\u0410\u041c",
"\u041f\u041c"
],
"DAY": [
"\u0431\u0430\u0437\u0430\u0440",
@ -17,12 +17,12 @@ $provide.value("$locale", {
"\u0448\u04d9\u043d\u0431\u04d9"
],
"ERANAMES": [
"BCE",
"CE"
"\u0435\u0440\u0430\u043c\u044b\u0437\u0434\u0430\u043d \u04d9\u0432\u0432\u04d9\u043b",
"\u0458\u0435\u043d\u0438 \u0435\u0440\u0430"
],
"ERAS": [
"BCE",
"CE"
"\u0435.\u04d9.",
"\u0458.\u0435."
],
"FIRSTDAYOFWEEK": 0,
"MONTH": [
@ -40,57 +40,57 @@ $provide.value("$locale", {
"\u0434\u0435\u043a\u0430\u0431\u0440"
],
"SHORTDAY": [
"\u0431\u0430\u0437\u0430\u0440",
"\u0431\u0430\u0437\u0430\u0440 \u0435\u0440\u0442\u04d9\u0441\u0438",
"\u0447\u04d9\u0440\u0448\u04d9\u043d\u0431\u04d9 \u0430\u0445\u0448\u0430\u043c\u044b",
"\u0447\u04d9\u0440\u0448\u04d9\u043d\u0431\u04d9",
"\u04b9\u04af\u043c\u04d9 \u0430\u0445\u0448\u0430\u043c\u044b",
"\u04b9\u04af\u043c\u04d9",
"\u0448\u04d9\u043d\u0431\u04d9"
"\u0411.",
"\u0411.\u0415.",
"\u0427.\u0410.",
"\u0427.",
"\u04b8.\u0410.",
"\u04b8.",
"\u0428."
],
"SHORTMONTH": [
"\u0458\u0430\u043d\u0432\u0430\u0440",
"\u0444\u0435\u0432\u0440\u0430\u043b",
"\u043c\u0430\u0440\u0442",
"\u0430\u043f\u0440\u0435\u043b",
"\u0458\u0430\u043d",
"\u0444\u0435\u0432",
"\u043c\u0430\u0440",
"\u0430\u043f\u0440",
"\u043c\u0430\u0439",
"\u0438\u0458\u0443\u043d",
"\u0438\u0458\u0443\u043b",
"\u0430\u0432\u0433\u0443\u0441\u0442",
"\u0441\u0435\u043d\u0442\u0458\u0430\u0431\u0440",
"\u043e\u043a\u0442\u0458\u0430\u0431\u0440",
"\u043d\u043e\u0458\u0430\u0431\u0440",
"\u0434\u0435\u043a\u0430\u0431\u0440"
"\u0438\u0458\u043d",
"\u0438\u0458\u043b",
"\u0430\u0432\u0433",
"\u0441\u0435\u043d",
"\u043e\u043a\u0442",
"\u043d\u043e\u0458",
"\u0434\u0435\u043a"
],
"STANDALONEMONTH": [
"\u0458\u0430\u043d\u0432\u0430\u0440",
"\u0444\u0435\u0432\u0440\u0430\u043b",
"\u043c\u0430\u0440\u0442",
"\u0430\u043f\u0440\u0435\u043b",
"\u043c\u0430\u0439",
"\u0438\u0458\u0443\u043d",
"\u0438\u0458\u0443\u043b",
"\u0430\u0432\u0433\u0443\u0441\u0442",
"\u0441\u0435\u043d\u0442\u0458\u0430\u0431\u0440",
"\u043e\u043a\u0442\u0458\u0430\u0431\u0440",
"\u043d\u043e\u0458\u0430\u0431\u0440",
"\u0434\u0435\u043a\u0430\u0431\u0440"
"\u0408\u0430\u043d\u0432\u0430\u0440",
"\u0424\u0435\u0432\u0440\u0430\u043b",
"\u041c\u0430\u0440\u0442",
"\u0410\u043f\u0440\u0435\u043b",
"\u041c\u0430\u0439",
"\u0418\u0458\u0443\u043d",
"\u0418\u0458\u0443\u043b",
"\u0410\u0432\u0433\u0443\u0441\u0442",
"\u0421\u0435\u043d\u0442\u0458\u0430\u0431\u0440",
"\u041e\u043a\u0442\u0458\u0430\u0431\u0440",
"\u041d\u043e\u0458\u0430\u0431\u0440",
"\u0414\u0435\u043a\u0430\u0431\u0440"
],
"WEEKENDRANGE": [
5,
6
],
"fullDate": "EEEE, d, MMMM, y",
"longDate": "d MMMM, y",
"medium": "d MMM, y HH:mm:ss",
"mediumDate": "d MMM, y",
"fullDate": "d MMMM y, EEEE",
"longDate": "d MMMM y",
"medium": "d MMM y HH:mm:ss",
"mediumDate": "d MMM y",
"mediumTime": "HH:mm:ss",
"short": "dd.MM.yy HH:mm",
"shortDate": "dd.MM.yy",
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "man.",
"CURRENCY_SYM": "\u20bc",
"DECIMAL_SEP": ",",
"GROUP_SEP": ".",
"PATTERNS": [

View file

@ -18,11 +18,11 @@ $provide.value("$locale", {
],
"ERANAMES": [
"eram\u0131zdan \u0259vv\u0259l",
"bizim eram\u0131z\u0131n"
"yeni era"
],
"ERAS": [
"e.\u0259.",
"b.e."
"y.e."
],
"FIRSTDAYOFWEEK": 0,
"MONTH": [
@ -90,7 +90,7 @@ $provide.value("$locale", {
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "man.",
"CURRENCY_SYM": "\u20bc",
"DECIMAL_SEP": ",",
"GROUP_SEP": ".",
"PATTERNS": [

View file

@ -18,11 +18,11 @@ $provide.value("$locale", {
],
"ERANAMES": [
"eram\u0131zdan \u0259vv\u0259l",
"bizim eram\u0131z\u0131n"
"yeni era"
],
"ERAS": [
"e.\u0259.",
"b.e."
"y.e."
],
"FIRSTDAYOFWEEK": 0,
"MONTH": [
@ -90,7 +90,7 @@ $provide.value("$locale", {
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "man.",
"CURRENCY_SYM": "\u20bc",
"DECIMAL_SEP": ",",
"GROUP_SEP": ".",
"PATTERNS": [

View file

@ -18,11 +18,11 @@ $provide.value("$locale", {
],
"ERANAMES": [
"eram\u0131zdan \u0259vv\u0259l",
"bizim eram\u0131z\u0131n"
"yeni era"
],
"ERAS": [
"e.\u0259.",
"b.e."
"y.e."
],
"FIRSTDAYOFWEEK": 0,
"MONTH": [
@ -90,7 +90,7 @@ $provide.value("$locale", {
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "man.",
"CURRENCY_SYM": "\u20bc",
"DECIMAL_SEP": ",",
"GROUP_SEP": ".",
"PATTERNS": [

View file

@ -126,8 +126,8 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-",
"negSuf": "\u00a0\u00a4",

View file

@ -4,8 +4,8 @@ var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"\u0434\u0430 \u043f\u0430\u043b\u0443\u0434\u043d\u044f",
"\u043f\u0430\u0441\u043b\u044f \u043f\u0430\u043b\u0443\u0434\u043d\u044f"
"AM",
"PM"
],
"DAY": [
"\u043d\u044f\u0434\u0437\u0435\u043b\u044f",
@ -17,8 +17,8 @@ $provide.value("$locale", {
"\u0441\u0443\u0431\u043e\u0442\u0430"
],
"ERANAMES": [
"\u0434\u0430 \u043d.\u044d.",
"\u043d.\u044d."
"\u0434\u0430 \u043d\u0430\u0440\u0430\u0434\u0436\u044d\u043d\u043d\u044f \u0425\u0440\u044b\u0441\u0442\u043e\u0432\u0430",
"\u0430\u0434 \u043d\u0430\u0440\u0430\u0434\u0436\u044d\u043d\u043d\u044f \u0425\u0440\u044b\u0441\u0442\u043e\u0432\u0430"
],
"ERAS": [
"\u0434\u0430 \u043d.\u044d.",
@ -80,17 +80,17 @@ $provide.value("$locale", {
5,
6
],
"fullDate": "EEEE, d MMMM y",
"longDate": "d MMMM y",
"medium": "d.M.y HH.mm.ss",
"mediumDate": "d.M.y",
"mediumTime": "HH.mm.ss",
"short": "d.M.yy HH.mm",
"shortDate": "d.M.yy",
"shortTime": "HH.mm"
"fullDate": "EEEE, d MMMM y '\u0433'.",
"longDate": "d MMMM y '\u0433'.",
"medium": "d.MM.y HH:mm:ss",
"mediumDate": "d.MM.y",
"mediumTime": "HH:mm:ss",
"short": "d.MM.yy HH:mm",
"shortDate": "d.MM.yy",
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "BYR",
"CURRENCY_SYM": "BYN",
"DECIMAL_SEP": ",",
"GROUP_SEP": "\u00a0",
"PATTERNS": [
@ -111,10 +111,10 @@ $provide.value("$locale", {
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-\u00a4",
"negSuf": "",
"posPre": "\u00a4",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -4,8 +4,8 @@ var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"\u0434\u0430 \u043f\u0430\u043b\u0443\u0434\u043d\u044f",
"\u043f\u0430\u0441\u043b\u044f \u043f\u0430\u043b\u0443\u0434\u043d\u044f"
"AM",
"PM"
],
"DAY": [
"\u043d\u044f\u0434\u0437\u0435\u043b\u044f",
@ -17,8 +17,8 @@ $provide.value("$locale", {
"\u0441\u0443\u0431\u043e\u0442\u0430"
],
"ERANAMES": [
"\u0434\u0430 \u043d.\u044d.",
"\u043d.\u044d."
"\u0434\u0430 \u043d\u0430\u0440\u0430\u0434\u0436\u044d\u043d\u043d\u044f \u0425\u0440\u044b\u0441\u0442\u043e\u0432\u0430",
"\u0430\u0434 \u043d\u0430\u0440\u0430\u0434\u0436\u044d\u043d\u043d\u044f \u0425\u0440\u044b\u0441\u0442\u043e\u0432\u0430"
],
"ERAS": [
"\u0434\u0430 \u043d.\u044d.",
@ -80,17 +80,17 @@ $provide.value("$locale", {
5,
6
],
"fullDate": "EEEE, d MMMM y",
"longDate": "d MMMM y",
"medium": "d.M.y HH.mm.ss",
"mediumDate": "d.M.y",
"mediumTime": "HH.mm.ss",
"short": "d.M.yy HH.mm",
"shortDate": "d.M.yy",
"shortTime": "HH.mm"
"fullDate": "EEEE, d MMMM y '\u0433'.",
"longDate": "d MMMM y '\u0433'.",
"medium": "d.MM.y HH:mm:ss",
"mediumDate": "d.MM.y",
"mediumTime": "HH:mm:ss",
"short": "d.MM.yy HH:mm",
"shortDate": "d.MM.yy",
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "BYR",
"CURRENCY_SYM": "BYN",
"DECIMAL_SEP": ",",
"GROUP_SEP": "\u00a0",
"PATTERNS": [
@ -111,10 +111,10 @@ $provide.value("$locale", {
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-\u00a4",
"negSuf": "",
"posPre": "\u00a4",
"posSuf": ""
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},

View file

@ -100,12 +100,12 @@ $provide.value("$locale", {
],
"fullDate": "EEEE, d MMMM y",
"longDate": "d MMMM y",
"medium": "d MMM y h:mm:ss a",
"medium": "d MMM y HH:mm:ss",
"mediumDate": "d MMM y",
"mediumTime": "h:mm:ss a",
"short": "dd/MM/y h:mm a",
"mediumTime": "HH:mm:ss",
"short": "dd/MM/y HH:mm",
"shortDate": "dd/MM/y",
"shortTime": "h:mm a"
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "TSh",
@ -126,8 +126,8 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-",
"negSuf": "\u00a4",

View file

@ -100,12 +100,12 @@ $provide.value("$locale", {
],
"fullDate": "EEEE, d MMMM y",
"longDate": "d MMMM y",
"medium": "d MMM y h:mm:ss a",
"medium": "d MMM y HH:mm:ss",
"mediumDate": "d MMM y",
"mediumTime": "h:mm:ss a",
"short": "dd/MM/y h:mm a",
"mediumTime": "HH:mm:ss",
"short": "dd/MM/y HH:mm",
"shortDate": "dd/MM/y",
"shortTime": "h:mm a"
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "TSh",

View file

@ -49,18 +49,18 @@ $provide.value("$locale", {
"\u0441\u0431"
],
"SHORTMONTH": [
"\u044f\u043d.",
"\u0444\u0435\u0432\u0440.",
"\u044f\u043d\u0443",
"\u0444\u0435\u0432",
"\u043c\u0430\u0440\u0442",
"\u0430\u043f\u0440.",
"\u0430\u043f\u0440",
"\u043c\u0430\u0439",
"\u044e\u043d\u0438",
"\u044e\u043b\u0438",
"\u0430\u0432\u0433.",
"\u0441\u0435\u043f\u0442.",
"\u043e\u043a\u0442.",
"\u043d\u043e\u0435\u043c.",
"\u0434\u0435\u043a."
"\u0430\u0432\u0433",
"\u0441\u0435\u043f",
"\u043e\u043a\u0442",
"\u043d\u043e\u0435",
"\u0434\u0435\u043a"
],
"STANDALONEMONTH": [
"\u044f\u043d\u0443\u0430\u0440\u0438",
@ -106,8 +106,8 @@ $provide.value("$locale", {
"posSuf": ""
},
{
"gSize": 3,
"lgSize": 3,
"gSize": 0,
"lgSize": 0,
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,

View file

@ -49,18 +49,18 @@ $provide.value("$locale", {
"\u0441\u0431"
],
"SHORTMONTH": [
"\u044f\u043d.",
"\u0444\u0435\u0432\u0440.",
"\u044f\u043d\u0443",
"\u0444\u0435\u0432",
"\u043c\u0430\u0440\u0442",
"\u0430\u043f\u0440.",
"\u0430\u043f\u0440",
"\u043c\u0430\u0439",
"\u044e\u043d\u0438",
"\u044e\u043b\u0438",
"\u0430\u0432\u0433.",
"\u0441\u0435\u043f\u0442.",
"\u043e\u043a\u0442.",
"\u043d\u043e\u0435\u043c.",
"\u0434\u0435\u043a."
"\u0430\u0432\u0433",
"\u0441\u0435\u043f",
"\u043e\u043a\u0442",
"\u043d\u043e\u0435",
"\u0434\u0435\u043a"
],
"STANDALONEMONTH": [
"\u044f\u043d\u0443\u0430\u0440\u0438",
@ -106,8 +106,8 @@ $provide.value("$locale", {
"posSuf": ""
},
{
"gSize": 3,
"lgSize": 3,
"gSize": 0,
"lgSize": 0,
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,

View file

@ -34,6 +34,15 @@ $provide.value("$locale", {
"juma",
"sibiri"
],
"ERANAMES": [
"jezu krisiti \u0272\u025b",
"jezu krisiti mink\u025b"
],
"ERAS": [
"J.-C. \u0272\u025b",
"ni J.-C."
],
"FIRSTDAYOFWEEK": 0,
"MONTH": [
"zanwuye",
"feburuye",
@ -71,6 +80,24 @@ $provide.value("$locale", {
"now",
"des"
],
"STANDALONEMONTH": [
"zanwuye",
"feburuye",
"marisi",
"awirili",
"m\u025b",
"zuw\u025bn",
"zuluye",
"uti",
"s\u025btanburu",
"\u0254kut\u0254buru",
"nowanburu",
"desanburu"
],
"WEEKENDRANGE": [
5,
6
],
"fullDate": "EEEE d MMMM y",
"longDate": "d MMMM y",
"medium": "d MMM, y HH:mm:ss",
@ -99,10 +126,10 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "\u00a4-",
"negPre": "-\u00a4",
"negSuf": "",
"posPre": "\u00a4",
"posSuf": ""
@ -110,6 +137,7 @@ $provide.value("$locale", {
]
},
"id": "bm-ml",
"localeID": "bm_ML",
"pluralCat": function(n, opt_precision) { var i = n | 0; var vf = getVF(n, opt_precision); if (i == 1 && vf.v == 0) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;}
});
}]);

View file

@ -4,8 +4,8 @@ var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"am",
"pm"
"AM",
"PM"
],
"DAY": [
"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0",
@ -49,8 +49,8 @@ $provide.value("$locale", {
"\u09b6\u09a8\u09bf"
],
"SHORTMONTH": [
"\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09b0\u09c0",
"\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09af\u09bc\u09be\u09b0\u09c0",
"\u099c\u09be\u09a8\u09c1",
"\u09ab\u09c7\u09ac",
"\u09ae\u09be\u09b0\u09cd\u099a",
"\u098f\u09aa\u09cd\u09b0\u09bf\u09b2",
"\u09ae\u09c7",

View file

@ -4,8 +4,8 @@ var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"am",
"pm"
"AM",
"PM"
],
"DAY": [
"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0",
@ -49,8 +49,8 @@ $provide.value("$locale", {
"\u09b6\u09a8\u09bf"
],
"SHORTMONTH": [
"\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09b0\u09c0",
"\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09af\u09bc\u09be\u09b0\u09c0",
"\u099c\u09be\u09a8\u09c1",
"\u09ab\u09c7\u09ac",
"\u09ae\u09be\u09b0\u09cd\u099a",
"\u098f\u09aa\u09cd\u09b0\u09bf\u09b2",
"\u09ae\u09c7",

View file

@ -4,8 +4,8 @@ var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"am",
"pm"
"AM",
"PM"
],
"DAY": [
"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0",
@ -49,8 +49,8 @@ $provide.value("$locale", {
"\u09b6\u09a8\u09bf"
],
"SHORTMONTH": [
"\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09b0\u09c0",
"\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09af\u09bc\u09be\u09b0\u09c0",
"\u099c\u09be\u09a8\u09c1",
"\u09ab\u09c7\u09ac",
"\u09ae\u09be\u09b0\u09cd\u099a",
"\u098f\u09aa\u09cd\u09b0\u09bf\u09b2",
"\u09ae\u09c7",

View file

@ -35,27 +35,27 @@ $provide.value("$locale", {
"\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b"
],
"ERANAMES": [
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0d",
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0d"
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0b",
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b"
],
"ERAS": [
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0d",
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0d"
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0b",
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b"
],
"FIRSTDAYOFWEEK": 6,
"MONTH": [
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b"
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54"
],
"SHORTDAY": [
"\u0f49\u0f72\u0f0b\u0f58\u0f0b",
@ -83,7 +83,7 @@ $provide.value("$locale", {
"STANDALONEMONTH": [
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54\u0f0b",
@ -98,14 +98,14 @@ $provide.value("$locale", {
5,
6
],
"fullDate": "y MMMM d, EEEE",
"longDate": "\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0by MMMM\u0f60\u0f72\u0f0b\u0f59\u0f7a\u0f66\u0f0bd\u0f51",
"medium": "y \u0f63\u0f7c\u0f0b\u0f60\u0f72\u0f0bMMM\u0f59\u0f7a\u0f66\u0f0bd HH:mm:ss",
"mediumDate": "y \u0f63\u0f7c\u0f0b\u0f60\u0f72\u0f0bMMM\u0f59\u0f7a\u0f66\u0f0bd",
"mediumTime": "HH:mm:ss",
"short": "y-MM-dd HH:mm",
"fullDate": "y MMMM\u0f60\u0f72\u0f0b\u0f5a\u0f7a\u0f66\u0f0bd, EEEE",
"longDate": "\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0by MMMM\u0f60\u0f72\u0f0b\u0f5a\u0f7a\u0f66\u0f0bd",
"medium": "y \u0f63\u0f7c\u0f60\u0f72\u0f0bMMM\u0f5a\u0f7a\u0f66\u0f0bd h:mm:ss a",
"mediumDate": "y \u0f63\u0f7c\u0f60\u0f72\u0f0bMMM\u0f5a\u0f7a\u0f66\u0f0bd",
"mediumTime": "h:mm:ss a",
"short": "y-MM-dd h:mm a",
"shortDate": "y-MM-dd",
"shortTime": "HH:mm"
"shortTime": "h:mm a"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "\u00a5",

View file

@ -35,27 +35,27 @@ $provide.value("$locale", {
"\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b"
],
"ERANAMES": [
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0d",
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0d"
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0b",
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b"
],
"ERAS": [
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0d",
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0d"
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0b",
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b"
],
"FIRSTDAYOFWEEK": 6,
"MONTH": [
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b"
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54"
],
"SHORTDAY": [
"\u0f49\u0f72\u0f0b\u0f58\u0f0b",
@ -83,7 +83,7 @@ $provide.value("$locale", {
"STANDALONEMONTH": [
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54\u0f0b",
@ -95,17 +95,17 @@ $provide.value("$locale", {
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b"
],
"WEEKENDRANGE": [
5,
6,
6
],
"fullDate": "y MMMM d, EEEE",
"longDate": "\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0by MMMM\u0f60\u0f72\u0f0b\u0f59\u0f7a\u0f66\u0f0bd\u0f51",
"medium": "y \u0f63\u0f7c\u0f0b\u0f60\u0f72\u0f0bMMM\u0f59\u0f7a\u0f66\u0f0bd HH:mm:ss",
"mediumDate": "y \u0f63\u0f7c\u0f0b\u0f60\u0f72\u0f0bMMM\u0f59\u0f7a\u0f66\u0f0bd",
"mediumTime": "HH:mm:ss",
"short": "y-MM-dd HH:mm",
"fullDate": "y MMMM\u0f60\u0f72\u0f0b\u0f5a\u0f7a\u0f66\u0f0bd, EEEE",
"longDate": "\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0by MMMM\u0f60\u0f72\u0f0b\u0f5a\u0f7a\u0f66\u0f0bd",
"medium": "y \u0f63\u0f7c\u0f60\u0f72\u0f0bMMM\u0f5a\u0f7a\u0f66\u0f0bd h:mm:ss a",
"mediumDate": "y \u0f63\u0f7c\u0f60\u0f72\u0f0bMMM\u0f5a\u0f7a\u0f66\u0f0bd",
"mediumTime": "h:mm:ss a",
"short": "y-MM-dd h:mm a",
"shortDate": "y-MM-dd",
"shortTime": "HH:mm"
"shortTime": "h:mm a"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "\u20b9",

View file

@ -35,27 +35,27 @@ $provide.value("$locale", {
"\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b"
],
"ERANAMES": [
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0d",
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0d"
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0b",
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b"
],
"ERAS": [
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0d",
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0d"
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0b",
"\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b"
],
"FIRSTDAYOFWEEK": 6,
"MONTH": [
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b"
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54"
],
"SHORTDAY": [
"\u0f49\u0f72\u0f0b\u0f58\u0f0b",
@ -83,7 +83,7 @@ $provide.value("$locale", {
"STANDALONEMONTH": [
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54\u0f0b",
"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54\u0f0b",
@ -98,14 +98,14 @@ $provide.value("$locale", {
5,
6
],
"fullDate": "y MMMM d, EEEE",
"longDate": "\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0by MMMM\u0f60\u0f72\u0f0b\u0f59\u0f7a\u0f66\u0f0bd\u0f51",
"medium": "y \u0f63\u0f7c\u0f0b\u0f60\u0f72\u0f0bMMM\u0f59\u0f7a\u0f66\u0f0bd HH:mm:ss",
"mediumDate": "y \u0f63\u0f7c\u0f0b\u0f60\u0f72\u0f0bMMM\u0f59\u0f7a\u0f66\u0f0bd",
"mediumTime": "HH:mm:ss",
"short": "y-MM-dd HH:mm",
"fullDate": "y MMMM\u0f60\u0f72\u0f0b\u0f5a\u0f7a\u0f66\u0f0bd, EEEE",
"longDate": "\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0by MMMM\u0f60\u0f72\u0f0b\u0f5a\u0f7a\u0f66\u0f0bd",
"medium": "y \u0f63\u0f7c\u0f60\u0f72\u0f0bMMM\u0f5a\u0f7a\u0f66\u0f0bd h:mm:ss a",
"mediumDate": "y \u0f63\u0f7c\u0f60\u0f72\u0f0bMMM\u0f5a\u0f7a\u0f66\u0f0bd",
"mediumTime": "h:mm:ss a",
"short": "y-MM-dd h:mm a",
"shortDate": "y-MM-dd",
"shortTime": "HH:mm"
"shortTime": "h:mm a"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "\u00a5",

View file

@ -17,12 +17,12 @@ $provide.value("$locale", {
"Sadorn"
],
"ERANAMES": [
"BCE",
"CE"
"a-raok Jezuz-Krist",
"goude Jezuz-Krist"
],
"ERAS": [
"BCE",
"CE"
"a-raok J.K.",
"goude J.K."
],
"FIRSTDAYOFWEEK": 0,
"MONTH": [
@ -49,18 +49,18 @@ $provide.value("$locale", {
"Sad."
],
"SHORTMONTH": [
"Gen",
"C\u02bchwe",
"Meur",
"Ebr",
"Gen.",
"C\u02bchwe.",
"Meur.",
"Ebr.",
"Mae",
"Mezh",
"Goue",
"Mezh.",
"Goue.",
"Eost",
"Gwen",
"Gwen.",
"Here",
"Du",
"Ker"
"Kzu."
],
"STANDALONEMONTH": [
"Genver",

View file

@ -17,12 +17,12 @@ $provide.value("$locale", {
"Sadorn"
],
"ERANAMES": [
"BCE",
"CE"
"a-raok Jezuz-Krist",
"goude Jezuz-Krist"
],
"ERAS": [
"BCE",
"CE"
"a-raok J.K.",
"goude J.K."
],
"FIRSTDAYOFWEEK": 0,
"MONTH": [
@ -49,18 +49,18 @@ $provide.value("$locale", {
"Sad."
],
"SHORTMONTH": [
"Gen",
"C\u02bchwe",
"Meur",
"Ebr",
"Gen.",
"C\u02bchwe.",
"Meur.",
"Ebr.",
"Mae",
"Mezh",
"Goue",
"Mezh.",
"Goue.",
"Eost",
"Gwen",
"Gwen.",
"Here",
"Du",
"Ker"
"Kzu."
],
"STANDALONEMONTH": [
"Genver",

View file

@ -42,7 +42,7 @@ $provide.value("$locale", {
"\u0908\u0938\u093e.\u092a\u0942\u0930\u094d\u0935",
"\u0938\u0928"
],
"FIRSTDAYOFWEEK": 0,
"FIRSTDAYOFWEEK": 6,
"MONTH": [
"\u091c\u093e\u0928\u0941\u0935\u093e\u0930\u0940",
"\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940",
@ -95,7 +95,7 @@ $provide.value("$locale", {
"\u0926\u093f\u0938\u0947\u091c\u094d\u092c\u093c\u0930"
],
"WEEKENDRANGE": [
5,
6,
6
],
"fullDate": "EEEE, MMMM d, y",

View file

@ -42,7 +42,7 @@ $provide.value("$locale", {
"\u0908\u0938\u093e.\u092a\u0942\u0930\u094d\u0935",
"\u0938\u0928"
],
"FIRSTDAYOFWEEK": 0,
"FIRSTDAYOFWEEK": 6,
"MONTH": [
"\u091c\u093e\u0928\u0941\u0935\u093e\u0930\u0940",
"\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940",
@ -95,7 +95,7 @@ $provide.value("$locale", {
"\u0926\u093f\u0938\u0947\u091c\u094d\u092c\u093c\u0930"
],
"WEEKENDRANGE": [
5,
6,
6
],
"fullDate": "EEEE, MMMM d, y",

View file

@ -35,8 +35,8 @@ $provide.value("$locale", {
"subota"
],
"ERANAMES": [
"Prije nove ere",
"Nove ere"
"prije nove ere",
"nove ere"
],
"ERAS": [
"p. n. e.",
@ -51,7 +51,7 @@ $provide.value("$locale", {
"maj",
"juni",
"juli",
"august",
"avgust",
"septembar",
"oktobar",
"novembar",
@ -74,7 +74,7 @@ $provide.value("$locale", {
"maj",
"jun",
"jul",
"aug",
"avg",
"sep",
"okt",
"nov",
@ -88,7 +88,7 @@ $provide.value("$locale", {
"maj",
"juni",
"juli",
"august",
"avgust",
"septembar",
"oktobar",
"novembar",
@ -98,13 +98,13 @@ $provide.value("$locale", {
5,
6
],
"fullDate": "EEEE, dd. MMMM y.",
"longDate": "dd. MMMM y.",
"medium": "dd. MMM. y. HH:mm:ss",
"mediumDate": "dd. MMM. y.",
"fullDate": "EEEE, d. MMMM y.",
"longDate": "d. MMMM y.",
"medium": "d. MMM. y. HH:mm:ss",
"mediumDate": "d. MMM. y.",
"mediumTime": "HH:mm:ss",
"short": "dd.MM.yy. HH:mm",
"shortDate": "dd.MM.yy.",
"short": "d.M.yy. HH:mm",
"shortDate": "d.M.yy.",
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {

View file

@ -35,8 +35,8 @@ $provide.value("$locale", {
"subota"
],
"ERANAMES": [
"Prije nove ere",
"Nove ere"
"prije nove ere",
"nove ere"
],
"ERAS": [
"p. n. e.",
@ -51,7 +51,7 @@ $provide.value("$locale", {
"maj",
"juni",
"juli",
"august",
"avgust",
"septembar",
"oktobar",
"novembar",
@ -74,7 +74,7 @@ $provide.value("$locale", {
"maj",
"jun",
"jul",
"aug",
"avg",
"sep",
"okt",
"nov",
@ -88,7 +88,7 @@ $provide.value("$locale", {
"maj",
"juni",
"juli",
"august",
"avgust",
"septembar",
"oktobar",
"novembar",
@ -98,13 +98,13 @@ $provide.value("$locale", {
5,
6
],
"fullDate": "EEEE, dd. MMMM y.",
"longDate": "dd. MMMM y.",
"medium": "dd. MMM. y. HH:mm:ss",
"mediumDate": "dd. MMM. y.",
"fullDate": "EEEE, d. MMMM y.",
"longDate": "d. MMMM y.",
"medium": "d. MMM. y. HH:mm:ss",
"mediumDate": "d. MMM. y.",
"mediumTime": "HH:mm:ss",
"short": "dd.MM.yy. HH:mm",
"shortDate": "dd.MM.yy.",
"short": "d.M.yy. HH:mm",
"shortDate": "d.M.yy.",
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {

View file

@ -35,8 +35,8 @@ $provide.value("$locale", {
"subota"
],
"ERANAMES": [
"Prije nove ere",
"Nove ere"
"prije nove ere",
"nove ere"
],
"ERAS": [
"p. n. e.",
@ -51,7 +51,7 @@ $provide.value("$locale", {
"maj",
"juni",
"juli",
"august",
"avgust",
"septembar",
"oktobar",
"novembar",
@ -74,7 +74,7 @@ $provide.value("$locale", {
"maj",
"jun",
"jul",
"aug",
"avg",
"sep",
"okt",
"nov",
@ -88,7 +88,7 @@ $provide.value("$locale", {
"maj",
"juni",
"juli",
"august",
"avgust",
"septembar",
"oktobar",
"novembar",
@ -98,13 +98,13 @@ $provide.value("$locale", {
5,
6
],
"fullDate": "EEEE, dd. MMMM y.",
"longDate": "dd. MMMM y.",
"medium": "dd. MMM. y. HH:mm:ss",
"mediumDate": "dd. MMM. y.",
"fullDate": "EEEE, d. MMMM y.",
"longDate": "d. MMMM y.",
"medium": "d. MMM. y. HH:mm:ss",
"mediumDate": "d. MMM. y.",
"mediumTime": "HH:mm:ss",
"short": "dd.MM.yy. HH:mm",
"shortDate": "dd.MM.yy.",
"short": "d.M.yy. HH:mm",
"shortDate": "d.M.yy.",
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {

View file

@ -67,18 +67,18 @@ $provide.value("$locale", {
"ds."
],
"SHORTMONTH": [
"gen.",
"febr.",
"mar\u00e7",
"abr.",
"maig",
"juny",
"jul.",
"ag.",
"set.",
"oct.",
"nov.",
"des."
"de gen.",
"de febr.",
"de mar\u00e7",
"d\u2019abr.",
"de maig",
"de juny",
"de jul.",
"d\u2019ag.",
"de set.",
"d\u2019oct.",
"de nov.",
"de des."
],
"STANDALONEMONTH": [
"gener",

View file

@ -67,18 +67,18 @@ $provide.value("$locale", {
"ds."
],
"SHORTMONTH": [
"gen.",
"febr.",
"mar\u00e7",
"abr.",
"maig",
"juny",
"jul.",
"ag.",
"set.",
"oct.",
"nov.",
"des."
"de gen.",
"de febr.",
"de mar\u00e7",
"d\u2019abr.",
"de maig",
"de juny",
"de jul.",
"d\u2019ag.",
"de set.",
"d\u2019oct.",
"de nov.",
"de des."
],
"STANDALONEMONTH": [
"gener",

View file

@ -67,18 +67,18 @@ $provide.value("$locale", {
"ds."
],
"SHORTMONTH": [
"gen.",
"febr.",
"mar\u00e7",
"abr.",
"maig",
"juny",
"jul.",
"ag.",
"set.",
"oct.",
"nov.",
"des."
"de gen.",
"de febr.",
"de mar\u00e7",
"d\u2019abr.",
"de maig",
"de juny",
"de jul.",
"d\u2019ag.",
"de set.",
"d\u2019oct.",
"de nov.",
"de des."
],
"STANDALONEMONTH": [
"gener",

View file

@ -67,18 +67,18 @@ $provide.value("$locale", {
"ds."
],
"SHORTMONTH": [
"gen.",
"febr.",
"mar\u00e7",
"abr.",
"maig",
"juny",
"jul.",
"ag.",
"set.",
"oct.",
"nov.",
"des."
"de gen.",
"de febr.",
"de mar\u00e7",
"d\u2019abr.",
"de maig",
"de juny",
"de jul.",
"d\u2019ag.",
"de set.",
"d\u2019oct.",
"de nov.",
"de des."
],
"STANDALONEMONTH": [
"gener",

View file

@ -67,18 +67,18 @@ $provide.value("$locale", {
"ds."
],
"SHORTMONTH": [
"gen.",
"febr.",
"mar\u00e7",
"abr.",
"maig",
"juny",
"jul.",
"ag.",
"set.",
"oct.",
"nov.",
"des."
"de gen.",
"de febr.",
"de mar\u00e7",
"d\u2019abr.",
"de maig",
"de juny",
"de jul.",
"d\u2019ag.",
"de set.",
"d\u2019oct.",
"de nov.",
"de des."
],
"STANDALONEMONTH": [
"gener",

View file

@ -100,12 +100,12 @@ $provide.value("$locale", {
],
"fullDate": "EEEE, d MMMM y",
"longDate": "d MMMM y",
"medium": "d MMM y h:mm:ss a",
"medium": "d MMM y HH:mm:ss",
"mediumDate": "d MMM y",
"mediumTime": "h:mm:ss a",
"short": "dd/MM/y h:mm a",
"mediumTime": "HH:mm:ss",
"short": "dd/MM/y HH:mm",
"shortDate": "dd/MM/y",
"shortTime": "h:mm a"
"shortTime": "HH:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "UGX",
@ -126,8 +126,8 @@ $provide.value("$locale", {
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"maxFrac": 0,
"minFrac": 0,
"minInt": 1,
"negPre": "-\u00a4",
"negSuf": "",

Some files were not shown because too many files have changed in this diff Show more