From a9df7906eb468bc59ff0e5ed16b61987a21ab486 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 06:51:16 +0100 Subject: [PATCH 01/77] Update JS and CSS libraries. --- public/js/lib/Chart.bundle.min.js | 4 +- public/js/lib/bootstrap3-typeahead.min.js | 2 +- public/js/lib/daterangepicker.js | 154 +++--- public/js/lib/jquery-3.1.1.min.js | 4 - public/js/lib/jquery-3.1.1.min.map | 1 - public/js/lib/modernizr-custom.js | 4 +- public/js/lib/moment.min.js | 549 +--------------------- public/lib/intro/intro.min.js | 103 ++-- public/lib/intro/introjs-rtl.min.css | 2 +- public/lib/intro/introjs.min.css | 2 +- 10 files changed, 149 insertions(+), 676 deletions(-) delete mode 100644 public/js/lib/jquery-3.1.1.min.js delete mode 100644 public/js/lib/jquery-3.1.1.min.map diff --git a/public/js/lib/Chart.bundle.min.js b/public/js/lib/Chart.bundle.min.js index efb0b2a97c..f832ef4e87 100644 --- a/public/js/lib/Chart.bundle.min.js +++ b/public/js/lib/Chart.bundle.min.js @@ -1,10 +1,10 @@ /*! * Chart.js * http://chartjs.org/ - * Version: 2.7.0 + * Version: 2.7.1 * * Copyright 2017 Nick Downie * Released under the MIT license * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md */ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Chart=t()}}(function(){return function t(e,n,i){function a(o,s){if(!n[o]){if(!e[o]){var l="function"==typeof require&&require;if(!s&&l)return l(o,!0);if(r)return r(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var d=n[o]={exports:{}};e[o][0].call(d.exports,function(t){var n=e[o][1][t];return a(n||t)},d,d.exports,t,e,n,i)}return n[o].exports}for(var r="function"==typeof require&&require,o=0;on?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=this,i=t,a=void 0===e?.5:e,r=2*a-1,o=n.alpha()-i.alpha(),s=((r*o==-1?r:(r+o)/(1+r*o))+1)/2,l=1-s;return this.rgb(s*n.red()+l*i.red(),s*n.green()+l*i.green(),s*n.blue()+l*i.blue()).alpha(n.alpha()*a+i.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new r,i=this.values,a=n.values;for(var o in i)i.hasOwnProperty(o)&&(t=i[o],"[object Array]"===(e={}.toString.call(t))?a[o]=t.slice(0):"[object Number]"===e?a[o]=t:console.error("unexpected color value:",t));return n}},r.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},r.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},r.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]}function d(t){var e,n,i,a=u(t),r=a[0],o=a[1],s=a[2];return r/=95.047,o/=100,s/=108.883,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,s=s>.008856?Math.pow(s,1/3):7.787*s+16/116,e=116*o-16,n=500*(r-o),i=200*(o-s),[e,n,i]}function c(t){var e,n,i,a,r,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return r=255*l,[r,r,r];e=2*l-(n=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var u=0;u<3;u++)(i=o+1/3*-(u-1))<0&&i++,i>1&&i--,r=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,a[u]=255*r;return a}function h(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,a=Math.floor(e)%6,r=e-Math.floor(e),o=255*i*(1-n),s=255*i*(1-n*r),l=255*i*(1-n*(1-r)),i=255*i;switch(a){case 0:return[i,l,o];case 1:return[s,i,o];case 2:return[o,i,l];case 3:return[o,s,i];case 4:return[l,o,i];case 5:return[i,o,s]}}function f(t){var e,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,u=s+l;switch(u>1&&(s/=u,l/=u),e=Math.floor(6*o),n=1-l,i=6*o-e,0!=(1&e)&&(i=1-i),a=s+i*(n-s),e){default:case 6:case 0:r=n,g=a,b=s;break;case 1:r=a,g=n,b=s;break;case 2:r=s,g=n,b=a;break;case 3:r=s,g=a,b=n;break;case 4:r=a,g=s,b=n;break;case 5:r=n,g=s,b=a}return[255*r,255*g,255*b]}function m(t){var e,n,i,a=t[0]/100,r=t[1]/100,o=t[2]/100,s=t[3]/100;return e=1-Math.min(1,a*(1-s)+s),n=1-Math.min(1,r*(1-s)+s),i=1-Math.min(1,o*(1-s)+s),[255*e,255*n,255*i]}function p(t){var e,n,i,a=t[0]/100,r=t[1]/100,o=t[2]/100;return e=3.2406*a+-1.5372*r+-.4986*o,n=-.9689*a+1.8758*r+.0415*o,i=.0557*a+-.204*r+1.057*o,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,e=Math.min(Math.max(0,e),1),n=Math.min(Math.max(0,n),1),i=Math.min(Math.max(0,i),1),[255*e,255*n,255*i]}function v(t){var e,n,i,a=t[0],r=t[1],o=t[2];return a/=95.047,r/=100,o/=108.883,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,e=116*r-16,n=500*(a-r),i=200*(r-o),[e,n,i]}function y(t){var e,n,i,a,r=t[0],o=t[1],s=t[2];return r<=8?a=(n=100*r/903.3)/100*7.787+16/116:(n=100*Math.pow((r+16)/116,3),a=Math.pow(n/100,1/3)),e=e/95.047<=.008856?e=95.047*(o/500+a-16/116)/7.787:95.047*Math.pow(o/500+a,3),i=i/108.883<=.008859?i=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3),[e,n,i]}function x(t){var e,n,i,a=t[0],r=t[1],o=t[2];return e=Math.atan2(o,r),(n=360*e/2/Math.PI)<0&&(n+=360),i=Math.sqrt(r*r+o*o),[a,i,n]}function _(t){return p(y(t))}function k(t){var e,n,i,a=t[0],r=t[1];return i=t[2]/360*2*Math.PI,e=r*Math.cos(i),n=r*Math.sin(i),[a,e,n]}function w(t){return M[t]}e.exports={rgb2hsl:i,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:s,rgb2keyword:l,rgb2xyz:u,rgb2lab:d,rgb2lch:function(t){return x(d(t))},hsl2rgb:c,hsl2hsv:function(t){var e,n,i=t[0],a=t[1]/100,r=t[2]/100;return 0===r?[0,0,0]:(r*=2,a*=r<=1?r:2-r,n=(r+a)/2,e=2*a/(r+a),[i,100*e,100*n])},hsl2hwb:function(t){return o(c(t))},hsl2cmyk:function(t){return s(c(t))},hsl2keyword:function(t){return l(c(t))},hsv2rgb:h,hsv2hsl:function(t){var e,n,i=t[0],a=t[1]/100,r=t[2]/100;return n=(2-a)*r,e=a*r,e/=n<=1?n:2-n,e=e||0,n/=2,[i,100*e,100*n]},hsv2hwb:function(t){return o(h(t))},hsv2cmyk:function(t){return s(h(t))},hsv2keyword:function(t){return l(h(t))},hwb2rgb:f,hwb2hsl:function(t){return i(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return s(f(t))},hwb2keyword:function(t){return l(f(t))},cmyk2rgb:m,cmyk2hsl:function(t){return i(m(t))},cmyk2hsv:function(t){return a(m(t))},cmyk2hwb:function(t){return o(m(t))},cmyk2keyword:function(t){return l(m(t))},keyword2rgb:w,keyword2hsl:function(t){return i(w(t))},keyword2hsv:function(t){return a(w(t))},keyword2hwb:function(t){return o(w(t))},keyword2cmyk:function(t){return s(w(t))},keyword2lab:function(t){return d(w(t))},keyword2xyz:function(t){return u(w(t))},xyz2rgb:p,xyz2lab:v,xyz2lch:function(t){return x(v(t))},lab2xyz:y,lab2rgb:_,lab2lch:x,lch2lab:k,lch2xyz:function(t){return y(k(t))},lch2rgb:function(t){return _(k(t))}};var M={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},S={};for(var D in M)S[JSON.stringify(M[D])]=D},{}],4:[function(t,e,n){var i=t(3),a=function(){return new u};for(var r in i){a[r+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),i[t](e)}}(r);var o=/(\w+)2(\w+)/.exec(r),s=o[1],l=o[2];(a[s]=a[s]||{})[l]=a[r]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var n=i[t](e);if("string"==typeof n||void 0===n)return n;for(var a=0;a0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+i}function N(t,e,n,i){var a=i;"string"==typeof i&&(a=function(){return this[i]()}),t&&(Ne[t]=a),e&&(Ne[e[0]]=function(){return Y(a.apply(this,arguments),e[1],e[2])}),n&&(Ne[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),t)})}function z(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function B(t){var e,n,i=t.match(Le);for(e=0,n=i.length;e=0&&We.test(t);)t=t.replace(We,function(t){return e.longDateFormat(t)||t}),We.lastIndex=0,n-=1;return t}function E(t,e,n){nn[t]=D(e)?e:function(t,i){return t&&n?n:e}}function j(t,e){return d(nn,t)?nn[t](e._strict,e._locale):new RegExp(U(t))}function U(t){return q(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,i,a){return e||n||i||a}))}function q(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function G(t,e){var n,i=e;for("string"==typeof t&&(t=[t]),s(e)&&(i=function(t,n){n[e]=_(t)}),n=0;n=0&&isFinite(s.getFullYear())&&s.setFullYear(t),s}function at(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function rt(t,e,n){var i=7+e-n;return-((7+at(t,0,i).getUTCDay()-e)%7)+i-1}function ot(t,e,n,i,a){var r,o,s=1+7*(e-1)+(7+n-i)%7+rt(t,i,a);return s<=0?o=et(r=t-1)+s:s>et(t)?(r=t+1,o=s-et(t)):(r=t,o=s),{year:r,dayOfYear:o}}function st(t,e,n){var i,a,r=rt(t.year(),e,n),o=Math.floor((t.dayOfYear()-r-1)/7)+1;return o<1?i=o+lt(a=t.year()-1,e,n):o>lt(t.year(),e,n)?(i=o-lt(t.year(),e,n),a=t.year()+1):(a=t.year(),i=o),{week:i,year:a}}function lt(t,e,n){var i=rt(t,e,n),a=rt(t+1,e,n);return(et(t)-i+a)/7}function ut(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}function dt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function ct(t,e,n){var i,a,r,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)r=h([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===e?-1!==(a=gn.call(this._weekdaysParse,o))?a:null:"ddd"===e?-1!==(a=gn.call(this._shortWeekdaysParse,o))?a:null:-1!==(a=gn.call(this._minWeekdaysParse,o))?a:null:"dddd"===e?-1!==(a=gn.call(this._weekdaysParse,o))?a:-1!==(a=gn.call(this._shortWeekdaysParse,o))?a:-1!==(a=gn.call(this._minWeekdaysParse,o))?a:null:"ddd"===e?-1!==(a=gn.call(this._shortWeekdaysParse,o))?a:-1!==(a=gn.call(this._weekdaysParse,o))?a:-1!==(a=gn.call(this._minWeekdaysParse,o))?a:null:-1!==(a=gn.call(this._minWeekdaysParse,o))?a:-1!==(a=gn.call(this._weekdaysParse,o))?a:-1!==(a=gn.call(this._shortWeekdaysParse,o))?a:null}function ht(){function t(t,e){return e.length-t.length}var e,n,i,a,r,o=[],s=[],l=[],u=[];for(e=0;e<7;e++)n=h([2e3,1]).day(e),i=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),r=this.weekdays(n,""),o.push(i),s.push(a),l.push(r),u.push(i),u.push(a),u.push(r);for(o.sort(t),s.sort(t),l.sort(t),u.sort(t),e=0;e<7;e++)s[e]=q(s[e]),l[e]=q(l[e]),u[e]=q(u[e]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function ft(){return this.hours()%12||12}function gt(t,e){N(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function mt(t,e){return e._meridiemParse}function pt(t){return t?t.toLowerCase().replace("_","-"):t}function vt(t){for(var e,n,i,a,r=0;r0;){if(i=yt(a.slice(0,e).join("-")))return i;if(n&&n.length>=e&&k(a,n,!0)>=e-1)break;e--}r++}return null}function yt(n){var i=null;if(!On[n]&&void 0!==e&&e&&e.exports)try{i=Pn._abbr,t("./locale/"+n),bt(i)}catch(t){}return On[n]}function bt(t,e){var n;return t&&(n=o(e)?_t(t):xt(t,e))&&(Pn=n),Pn._abbr}function xt(t,e){if(null!==e){var n=An;if(e.abbr=t,null!=On[t])S("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=On[t]._config;else if(null!=e.parentLocale){if(null==On[e.parentLocale])return Fn[e.parentLocale]||(Fn[e.parentLocale]=[]),Fn[e.parentLocale].push({name:t,config:e}),null;n=On[e.parentLocale]._config}return On[t]=new P(C(n,e)),Fn[t]&&Fn[t].forEach(function(t){xt(t.name,t.config)}),bt(t),On[t]}return delete On[t],null}function _t(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Pn;if(!i(t)){if(e=yt(t))return e;t=[t]}return vt(t)}function kt(t){var e,n=t._a;return n&&-2===g(t).overflow&&(e=n[on]<0||n[on]>11?on:n[sn]<1||n[sn]>J(n[rn],n[on])?sn:n[ln]<0||n[ln]>24||24===n[ln]&&(0!==n[un]||0!==n[dn]||0!==n[cn])?ln:n[un]<0||n[un]>59?un:n[dn]<0||n[dn]>59?dn:n[cn]<0||n[cn]>999?cn:-1,g(t)._overflowDayOfYear&&(esn)&&(e=sn),g(t)._overflowWeeks&&-1===e&&(e=hn),g(t)._overflowWeekday&&-1===e&&(e=fn),g(t).overflow=e),t}function wt(t){var e,n,i,a,r,o,s=t._i,l=Rn.exec(s)||Ln.exec(s);if(l){for(g(t).iso=!0,e=0,n=Yn.length;e10?"YYYY ":"YY "),r="HH:mm"+(n[4]?":ss":""),n[1]){var d=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][new Date(n[2]).getDay()];if(n[1].substr(0,3)!==d)return g(t).weekdayMismatch=!0,void(t._isValid=!1)}switch(n[5].length){case 2:s=0===l?" +0000":((l="YXWVUTSRQPONZABCDEFGHIKLM".indexOf(n[5][1].toUpperCase())-12)<0?" -":" +")+(""+l).replace(/^-?/,"0").match(/..$/)[0]+"00";break;case 4:s=u[n[5]];break;default:s=u[" GMT"]}n[5]=s,t._i=n.splice(1).join(""),o=" ZZ",t._f=i+a+r+o,It(t),g(t).rfc2822=!0}else t._isValid=!1}function St(t){var e=zn.exec(t._i);null===e?(wt(t),!1===t._isValid&&(delete t._isValid,Mt(t),!1===t._isValid&&(delete t._isValid,n.createFromInputFallback(t)))):t._d=new Date(+e[1])}function Dt(t,e,n){return null!=t?t:null!=e?e:n}function Ct(t){var e=new Date(n.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function Pt(t){var e,n,i,a,r=[];if(!t._d){for(i=Ct(t),t._w&&null==t._a[sn]&&null==t._a[on]&&Tt(t),null!=t._dayOfYear&&(a=Dt(t._a[rn],i[rn]),(t._dayOfYear>et(a)||0===t._dayOfYear)&&(g(t)._overflowDayOfYear=!0),n=at(a,0,t._dayOfYear),t._a[on]=n.getUTCMonth(),t._a[sn]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=r[e]=i[e];for(;e<7;e++)t._a[e]=r[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[ln]&&0===t._a[un]&&0===t._a[dn]&&0===t._a[cn]&&(t._nextDay=!0,t._a[ln]=0),t._d=(t._useUTC?at:it).apply(null,r),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[ln]=24)}}function Tt(t){var e,n,i,a,r,o,s,l;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)r=1,o=4,n=Dt(e.GG,t._a[rn],st(Nt(),1,4).year),i=Dt(e.W,1),((a=Dt(e.E,1))<1||a>7)&&(l=!0);else{r=t._locale._week.dow,o=t._locale._week.doy;var u=st(Nt(),r,o);n=Dt(e.gg,t._a[rn],u.year),i=Dt(e.w,u.week),null!=e.d?((a=e.d)<0||a>6)&&(l=!0):null!=e.e?(a=e.e+r,(e.e<0||e.e>6)&&(l=!0)):a=r}i<1||i>lt(n,r,o)?g(t)._overflowWeeks=!0:null!=l?g(t)._overflowWeekday=!0:(s=ot(n,i,a,r,o),t._a[rn]=s.year,t._dayOfYear=s.dayOfYear)}function It(t){if(t._f!==n.ISO_8601)if(t._f!==n.RFC_2822){t._a=[],g(t).empty=!0;var e,i,a,r,o,s=""+t._i,l=s.length,u=0;for(a=H(t._f,t._locale).match(Le)||[],e=0;e0&&g(t).unusedInput.push(o),s=s.slice(s.indexOf(i)+i.length),u+=i.length),Ne[r]?(i?g(t).empty=!1:g(t).unusedTokens.push(r),X(r,i,t)):t._strict&&!i&&g(t).unusedTokens.push(r);g(t).charsLeftOver=l-u,s.length>0&&g(t).unusedInput.push(s),t._a[ln]<=12&&!0===g(t).bigHour&&t._a[ln]>0&&(g(t).bigHour=void 0),g(t).parsedDateParts=t._a.slice(0),g(t).meridiem=t._meridiem,t._a[ln]=At(t._locale,t._a[ln],t._meridiem),Pt(t),kt(t)}else Mt(t);else wt(t)}function At(t,e,n){var i;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?((i=t.isPM(n))&&e<12&&(e+=12),i||12!==e||(e=0),e):e}function Ot(t){var e,n,i,a,r;if(0===t._f.length)return g(t).invalidFormat=!0,void(t._d=new Date(NaN));for(a=0;ar&&(e=r),oe.call(this,t,e,n,i,a))}function oe(t,e,n,i,a){var r=ot(t,e,n,i,a),o=at(r.year,0,r.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function se(t){return t}function le(t,e,n,i){var a=_t(),r=h().set(i,e);return a[n](r,t)}function ue(t,e,n){if(s(t)&&(e=t,t=void 0),t=t||"",null!=e)return le(t,e,n,"month");var i,a=[];for(i=0;i<12;i++)a[i]=le(t,i,n,"month");return a}function de(t,e,n,i){"boolean"==typeof t?(s(e)&&(n=e,e=void 0),e=e||""):(n=e=t,t=!1,s(e)&&(n=e,e=void 0),e=e||"");var a=_t(),r=t?a._week.dow:0;if(null!=n)return le(e,(n+r)%7,i,"day");var o,l=[];for(o=0;o<7;o++)l[o]=le(e,(o+r)%7,i,"day");return l}function ce(t,e,n,i){var a=Xt(e,n);return t._milliseconds+=i*a._milliseconds,t._days+=i*a._days,t._months+=i*a._months,t._bubble()}function he(t){return t<0?Math.floor(t):Math.ceil(t)}function fe(t){return 4800*t/146097}function ge(t){return 146097*t/4800}function me(t){return function(){return this.as(t)}}function pe(t){return function(){return this.isValid()?this._data[t]:NaN}}function ve(t,e,n,i,a){return a.relativeTime(e||1,!!n,t,i)}function ye(t,e,n){var i=Xt(t).abs(),a=bi(i.as("s")),r=bi(i.as("m")),o=bi(i.as("h")),s=bi(i.as("d")),l=bi(i.as("M")),u=bi(i.as("y")),d=a<=xi.ss&&["s",a]||a0,d[4]=n,ve.apply(null,d)}function be(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n,i=_i(this._milliseconds)/1e3,a=_i(this._days),r=_i(this._months);e=x((t=x(i/60))/60),i%=60,t%=60;var o=n=x(r/12),s=r%=12,l=a,u=e,d=t,c=i,h=this.asSeconds();return h?(h<0?"-":"")+"P"+(o?o+"Y":"")+(s?s+"M":"")+(l?l+"D":"")+(u||d||c?"T":"")+(u?u+"H":"")+(d?d+"M":"")+(c?c+"S":""):"P0D"}var xe,_e,ke=_e=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),n=e.length>>>0,i=0;i68?1900:2e3)};var xn=R("FullYear",!0);N("w",["ww",2],"wo","week"),N("W",["WW",2],"Wo","isoWeek"),T("week","w"),T("isoWeek","W"),O("week",5),O("isoWeek",5),E("w",je),E("ww",je,Be),E("W",je),E("WW",je,Be),Z(["w","ww","W","WW"],function(t,e,n,i){e[i.substr(0,1)]=_(t)});var _n={dow:0,doy:6};N("d",0,"do","day"),N("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),N("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),N("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),N("e",0,0,"weekday"),N("E",0,0,"isoWeekday"),T("day","d"),T("weekday","e"),T("isoWeekday","E"),O("day",11),O("weekday",11),O("isoWeekday",11),E("d",je),E("e",je),E("E",je),E("dd",function(t,e){return e.weekdaysMinRegex(t)}),E("ddd",function(t,e){return e.weekdaysShortRegex(t)}),E("dddd",function(t,e){return e.weekdaysRegex(t)}),Z(["dd","ddd","dddd"],function(t,e,n,i){var a=n._locale.weekdaysParse(t,i,n._strict);null!=a?e.d=a:g(n).invalidWeekday=t}),Z(["d","e","E"],function(t,e,n,i){e[i]=_(t)});var kn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),wn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Mn="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Sn=en,Dn=en,Cn=en;N("H",["HH",2],0,"hour"),N("h",["hh",2],0,ft),N("k",["kk",2],0,function(){return this.hours()||24}),N("hmm",0,0,function(){return""+ft.apply(this)+Y(this.minutes(),2)}),N("hmmss",0,0,function(){return""+ft.apply(this)+Y(this.minutes(),2)+Y(this.seconds(),2)}),N("Hmm",0,0,function(){return""+this.hours()+Y(this.minutes(),2)}),N("Hmmss",0,0,function(){return""+this.hours()+Y(this.minutes(),2)+Y(this.seconds(),2)}),gt("a",!0),gt("A",!1),T("hour","h"),O("hour",13),E("a",mt),E("A",mt),E("H",je),E("h",je),E("k",je),E("HH",je,Be),E("hh",je,Be),E("kk",je,Be),E("hmm",Ue),E("hmmss",qe),E("Hmm",Ue),E("Hmmss",qe),G(["H","HH"],ln),G(["k","kk"],function(t,e,n){var i=_(t);e[ln]=24===i?0:i}),G(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),G(["h","hh"],function(t,e,n){e[ln]=_(t),g(n).bigHour=!0}),G("hmm",function(t,e,n){var i=t.length-2;e[ln]=_(t.substr(0,i)),e[un]=_(t.substr(i)),g(n).bigHour=!0}),G("hmmss",function(t,e,n){var i=t.length-4,a=t.length-2;e[ln]=_(t.substr(0,i)),e[un]=_(t.substr(i,2)),e[dn]=_(t.substr(a)),g(n).bigHour=!0}),G("Hmm",function(t,e,n){var i=t.length-2;e[ln]=_(t.substr(0,i)),e[un]=_(t.substr(i))}),G("Hmmss",function(t,e,n){var i=t.length-4,a=t.length-2;e[ln]=_(t.substr(0,i)),e[un]=_(t.substr(i,2)),e[dn]=_(t.substr(a))});var Pn,Tn=/[ap]\.?m?\.?/i,In=R("Hours",!0),An={calendar:Te,longDateFormat:Ie,invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:Ae,relativeTime:Oe,months:pn,monthsShort:vn,week:_n,weekdays:kn,weekdaysMin:Mn,weekdaysShort:wn,meridiemParse:Tn},On={},Fn={},Rn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ln=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Wn=/Z|[+-]\d\d(?::?\d\d)?/,Yn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Nn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],zn=/^\/?Date\((\-?\d+)/i,Bn=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;n.createFromInputFallback=M("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),n.ISO_8601=function(){},n.RFC_2822=function(){};var Vn=M("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=Nt.apply(null,arguments);return this.isValid()&&t.isValid()?tthis?this:t:p()}),En=["year","quarter","month","week","day","hour","minute","second","millisecond"];jt("Z",":"),jt("ZZ",""),E("Z",$e),E("ZZ",$e),G(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=Ut($e,t)});var jn=/([\+\-]|\d\d)/gi;n.updateOffset=function(){};var Un=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,qn=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Xt.fn=Vt.prototype,Xt.invalid=function(){return Xt(NaN)};var Gn=$t(1,"add"),Zn=$t(-1,"subtract");n.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",n.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Xn=M("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});N(0,["gg",2],0,function(){return this.weekYear()%100}),N(0,["GG",2],0,function(){return this.isoWeekYear()%100}),ae("gggg","weekYear"),ae("ggggg","weekYear"),ae("GGGG","isoWeekYear"),ae("GGGGG","isoWeekYear"),T("weekYear","gg"),T("isoWeekYear","GG"),O("weekYear",1),O("isoWeekYear",1),E("G",Ke),E("g",Ke),E("GG",je,Be),E("gg",je,Be),E("GGGG",Ze,He),E("gggg",Ze,He),E("GGGGG",Xe,Ee),E("ggggg",Xe,Ee),Z(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,i){e[i.substr(0,2)]=_(t)}),Z(["gg","GG"],function(t,e,i,a){e[a]=n.parseTwoDigitYear(t)}),N("Q",0,"Qo","quarter"),T("quarter","Q"),O("quarter",7),E("Q",ze),G("Q",function(t,e){e[on]=3*(_(t)-1)}),N("D",["DD",2],"Do","date"),T("date","D"),O("date",9),E("D",je),E("DD",je,Be),E("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),G(["D","DD"],sn),G("Do",function(t,e){e[sn]=_(t.match(je)[0],10)});var Jn=R("Date",!0);N("DDD",["DDDD",3],"DDDo","dayOfYear"),T("dayOfYear","DDD"),O("dayOfYear",4),E("DDD",Ge),E("DDDD",Ve),G(["DDD","DDDD"],function(t,e,n){n._dayOfYear=_(t)}),N("m",["mm",2],0,"minute"),T("minute","m"),O("minute",14),E("m",je),E("mm",je,Be),G(["m","mm"],un);var Kn=R("Minutes",!1);N("s",["ss",2],0,"second"),T("second","s"),O("second",15),E("s",je),E("ss",je,Be),G(["s","ss"],dn);var Qn=R("Seconds",!1);N("S",0,0,function(){return~~(this.millisecond()/100)}),N(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),N(0,["SSS",3],0,"millisecond"),N(0,["SSSS",4],0,function(){return 10*this.millisecond()}),N(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),N(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),N(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),N(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),N(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),T("millisecond","ms"),O("millisecond",16),E("S",Ge,ze),E("SS",Ge,Be),E("SSS",Ge,Ve);var $n;for($n="SSSS";$n.length<=9;$n+="S")E($n,Je);for($n="S";$n.length<=9;$n+="S")G($n,function(t,e){e[cn]=_(1e3*("0."+t))});var ti=R("Milliseconds",!1);N("z",0,0,"zoneAbbr"),N("zz",0,0,"zoneName");var ei=y.prototype;ei.add=Gn,ei.calendar=function(t,e){var i=t||Nt(),a=qt(i,this).startOf("day"),r=n.calendarFormat(this,a)||"sameElse",o=e&&(D(e[r])?e[r].call(this,i):e[r]);return this.format(o||this.localeData().calendar(r,this,Nt(i)))},ei.clone=function(){return new y(this)},ei.diff=function(t,e,n){var i,a,r,o;return this.isValid()&&(i=qt(t,this)).isValid()?(a=6e4*(i.utcOffset()-this.utcOffset()),"year"===(e=I(e))||"month"===e||"quarter"===e?(o=ee(this,i),"quarter"===e?o/=3:"year"===e&&(o/=12)):(r=this-i,o="second"===e?r/1e3:"minute"===e?r/6e4:"hour"===e?r/36e5:"day"===e?(r-a)/864e5:"week"===e?(r-a)/6048e5:r),n?o:x(o)):NaN},ei.endOf=function(t){return void 0===(t=I(t))||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))},ei.format=function(t){t||(t=this.isUtc()?n.defaultFormatUtc:n.defaultFormat);var e=V(this,t);return this.localeData().postformat(e)},ei.from=function(t,e){return this.isValid()&&(b(t)&&t.isValid()||Nt(t).isValid())?Xt({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},ei.fromNow=function(t){return this.from(Nt(),t)},ei.to=function(t,e){return this.isValid()&&(b(t)&&t.isValid()||Nt(t).isValid())?Xt({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},ei.toNow=function(t){return this.to(Nt(),t)},ei.get=function(t){return t=I(t),D(this[t])?this[t]():this},ei.invalidAt=function(){return g(this).overflow},ei.isAfter=function(t,e){var n=b(t)?t:Nt(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=I(o(e)?"millisecond":e))?this.valueOf()>n.valueOf():n.valueOf()9999?V(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):D(Date.prototype.toISOString)?this.toDate().toISOString():V(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},ei.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a=e+'[")]';return this.format(n+i+"-MM-DD[T]HH:mm:ss.SSS"+a)},ei.toJSON=function(){return this.isValid()?this.toISOString():null},ei.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},ei.unix=function(){return Math.floor(this.valueOf()/1e3)},ei.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},ei.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},ei.year=xn,ei.isLeapYear=function(){return nt(this.year())},ei.weekYear=function(t){return re.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},ei.isoWeekYear=function(t){return re.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},ei.quarter=ei.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},ei.month=$,ei.daysInMonth=function(){return J(this.year(),this.month())},ei.week=ei.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},ei.isoWeek=ei.isoWeeks=function(t){var e=st(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},ei.weeksInYear=function(){var t=this.localeData()._week;return lt(this.year(),t.dow,t.doy)},ei.isoWeeksInYear=function(){return lt(this.year(),1,4)},ei.date=Jn,ei.day=ei.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ut(t,this.localeData()),this.add(t-e,"d")):e},ei.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},ei.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=dt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},ei.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},ei.hour=ei.hours=In,ei.minute=ei.minutes=Kn,ei.second=ei.seconds=Qn,ei.millisecond=ei.milliseconds=ti,ei.utcOffset=function(t,e,i){var a,r=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=Ut($e,t)))return this}else Math.abs(t)<16&&!i&&(t*=60);return!this._isUTC&&e&&(a=Gt(this)),this._offset=t,this._isUTC=!0,null!=a&&this.add(a,"m"),r!==t&&(!e||this._changeInProgress?te(this,Xt(t-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,n.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?r:Gt(this)},ei.utc=function(t){return this.utcOffset(0,t)},ei.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Gt(this),"m")),this},ei.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=Ut(Qe,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},ei.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Nt(t).utcOffset():0,(this.utcOffset()-t)%60==0)},ei.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ei.isLocal=function(){return!!this.isValid()&&!this._isUTC},ei.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ei.isUtc=Zt,ei.isUTC=Zt,ei.zoneAbbr=function(){return this._isUTC?"UTC":""},ei.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ei.dates=M("dates accessor is deprecated. Use date instead.",Jn),ei.months=M("months accessor is deprecated. Use month instead",$),ei.years=M("years accessor is deprecated. Use year instead",xn),ei.zone=M("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),ei.isDSTShifted=M("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),(t=Lt(t))._a){var e=t._isUTC?h(t._a):Nt(t._a);this._isDSTShifted=this.isValid()&&k(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var ni=P.prototype;ni.calendar=function(t,e,n){var i=this._calendar[t]||this._calendar.sameElse;return D(i)?i.call(e,n):i},ni.longDateFormat=function(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])},ni.invalidDate=function(){return this._invalidDate},ni.ordinal=function(t){return this._ordinal.replace("%d",t)},ni.preparse=se,ni.postformat=se,ni.relativeTime=function(t,e,n,i){var a=this._relativeTime[n];return D(a)?a(t,e,n,i):a.replace(/%d/i,t)},ni.pastFuture=function(t,e){var n=this._relativeTime[t>0?"future":"past"];return D(n)?n(e):n.replace(/%s/i,e)},ni.set=function(t){var e,n;for(n in t)D(e=t[n])?this[n]=e:this["_"+n]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},ni.months=function(t,e){return t?i(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||mn).test(e)?"format":"standalone"][t.month()]:i(this._months)?this._months:this._months.standalone},ni.monthsShort=function(t,e){return t?i(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[mn.test(e)?"format":"standalone"][t.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},ni.monthsParse=function(t,e,n){var i,a,r;if(this._monthsParseExact)return K.call(this,t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(a=h([2e3,i]),n&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[i]||(r="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[i]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(n&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!n&&this._monthsParse[i].test(t))return i}},ni.monthsRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||tt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(d(this,"_monthsRegex")||(this._monthsRegex=bn),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},ni.monthsShortRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||tt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,"_monthsShortRegex")||(this._monthsShortRegex=yn),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},ni.week=function(t){return st(t,this._week.dow,this._week.doy).week},ni.firstDayOfYear=function(){return this._week.doy},ni.firstDayOfWeek=function(){return this._week.dow},ni.weekdays=function(t,e){return t?i(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone},ni.weekdaysMin=function(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin},ni.weekdaysShort=function(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort},ni.weekdaysParse=function(t,e,n){var i,a,r;if(this._weekdaysParseExact)return ct.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(a=h([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(a,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(a,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(a,"").replace(".",".?")+"$","i")),this._weekdaysParse[i]||(r="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[i]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(n&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(n&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!n&&this._weekdaysParse[i].test(t))return i}},ni.weekdaysRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||ht.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=Sn),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},ni.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||ht.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Dn),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},ni.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||ht.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Cn),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},ni.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},ni.meridiem=function(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"},bt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===_(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),n.lang=M("moment.lang is deprecated. Use moment.locale instead.",bt),n.langData=M("moment.langData is deprecated. Use moment.localeData instead.",_t);var ii=Math.abs,ai=me("ms"),ri=me("s"),oi=me("m"),si=me("h"),li=me("d"),ui=me("w"),di=me("M"),ci=me("y"),hi=pe("milliseconds"),fi=pe("seconds"),gi=pe("minutes"),mi=pe("hours"),pi=pe("days"),vi=pe("months"),yi=pe("years"),bi=Math.round,xi={ss:44,s:45,m:45,h:22,d:26,M:11},_i=Math.abs,ki=Vt.prototype;return ki.isValid=function(){return this._isValid},ki.abs=function(){var t=this._data;return this._milliseconds=ii(this._milliseconds),this._days=ii(this._days),this._months=ii(this._months),t.milliseconds=ii(t.milliseconds),t.seconds=ii(t.seconds),t.minutes=ii(t.minutes),t.hours=ii(t.hours),t.months=ii(t.months),t.years=ii(t.years),this},ki.add=function(t,e){return ce(this,t,e,1)},ki.subtract=function(t,e){return ce(this,t,e,-1)},ki.as=function(t){if(!this.isValid())return NaN;var e,n,i=this._milliseconds;if("month"===(t=I(t))||"year"===t)return e=this._days+i/864e5,n=this._months+fe(e),"month"===t?n:n/12;switch(e=this._days+Math.round(ge(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}},ki.asMilliseconds=ai,ki.asSeconds=ri,ki.asMinutes=oi,ki.asHours=si,ki.asDays=li,ki.asWeeks=ui,ki.asMonths=di,ki.asYears=ci,ki.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12):NaN},ki._bubble=function(){var t,e,n,i,a,r=this._milliseconds,o=this._days,s=this._months,l=this._data;return r>=0&&o>=0&&s>=0||r<=0&&o<=0&&s<=0||(r+=864e5*he(ge(s)+o),o=0,s=0),l.milliseconds=r%1e3,t=x(r/1e3),l.seconds=t%60,e=x(t/60),l.minutes=e%60,n=x(e/60),l.hours=n%24,o+=x(n/24),a=x(fe(o)),s+=a,o-=he(ge(a)),i=x(s/12),s%=12,l.days=o,l.months=s,l.years=i,this},ki.get=function(t){return t=I(t),this.isValid()?this[t+"s"]():NaN},ki.milliseconds=hi,ki.seconds=fi,ki.minutes=gi,ki.hours=mi,ki.days=pi,ki.weeks=function(){return x(this.days()/7)},ki.months=vi,ki.years=yi,ki.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=ye(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)},ki.toISOString=be,ki.toString=be,ki.toJSON=be,ki.locale=ne,ki.localeData=ie,ki.toIsoString=M("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",be),ki.lang=Xn,N("X",0,0,"unix"),N("x",0,0,"valueOf"),E("x",Ke),E("X",tn),G("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),G("x",function(t,e,n){n._d=new Date(_(t))}),n.version="2.18.1",function(t){xe=t}(Nt),n.fn=ei,n.min=function(){return zt("isBefore",[].slice.call(arguments,0))},n.max=function(){return zt("isAfter",[].slice.call(arguments,0))},n.now=function(){return Date.now?Date.now():+new Date},n.utc=h,n.unix=function(t){return Nt(1e3*t)},n.months=function(t,e){return ue(t,e,"months")},n.isDate=l,n.locale=bt,n.invalid=p,n.duration=Xt,n.isMoment=b,n.weekdays=function(t,e,n){return de(t,e,n,"weekdays")},n.parseZone=function(){return Nt.apply(null,arguments).parseZone()},n.localeData=_t,n.isDuration=Ht,n.monthsShort=function(t,e){return ue(t,e,"monthsShort")},n.weekdaysMin=function(t,e,n){return de(t,e,n,"weekdaysMin")},n.defineLocale=xt,n.updateLocale=function(t,e){if(null!=e){var n,i=An;null!=On[t]&&(i=On[t]._config),(n=new P(e=C(i,e))).parentLocale=On[t],On[t]=n,bt(t)}else null!=On[t]&&(null!=On[t].parentLocale?On[t]=On[t].parentLocale:null!=On[t]&&delete On[t]);return On[t]},n.locales=function(){return Pe(On)},n.weekdaysShort=function(t,e,n){return de(t,e,n,"weekdaysShort")},n.normalizeUnits=I,n.relativeTimeRounding=function(t){return void 0===t?bi:"function"==typeof t&&(bi=t,!0)},n.relativeTimeThreshold=function(t,e){return void 0!==xi[t]&&(void 0===e?xi[t]:(xi[t]=e,"s"===t&&(xi.ss=e-1),!0))},n.calendarFormat=function(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},n.prototype=ei,n})},{}],7:[function(t,e,n){var i=t(29)();i.helpers=t(45),t(27)(i),i.defaults=t(25),i.Element=t(26),i.elements=t(40),i.Interaction=t(28),i.platform=t(48),t(31)(i),t(22)(i),t(23)(i),t(24)(i),t(30)(i),t(33)(i),t(32)(i),t(35)(i),t(54)(i),t(52)(i),t(53)(i),t(55)(i),t(56)(i),t(57)(i),t(15)(i),t(16)(i),t(17)(i),t(18)(i),t(19)(i),t(20)(i),t(21)(i),t(8)(i),t(9)(i),t(10)(i),t(11)(i),t(12)(i),t(13)(i),t(14)(i);var a=[];a.push(t(49)(i),t(50)(i),t(51)(i)),i.plugins.register(a),i.platform.initialize(),e.exports=i,"undefined"!=typeof window&&(window.Chart=i),i.canvasHelpers=i.helpers.canvas},{10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,35:35,40:40,45:45,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,8:8,9:9}],8:[function(t,e,n){"use strict";e.exports=function(t){t.Bar=function(e,n){return n.type="bar",new t(e,n)}}},{}],9:[function(t,e,n){"use strict";e.exports=function(t){t.Bubble=function(e,n){return n.type="bubble",new t(e,n)}}},{}],10:[function(t,e,n){"use strict";e.exports=function(t){t.Doughnut=function(e,n){return n.type="doughnut",new t(e,n)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t){t.Line=function(e,n){return n.type="line",new t(e,n)}}},{}],12:[function(t,e,n){"use strict";e.exports=function(t){t.PolarArea=function(e,n){return n.type="polarArea",new t(e,n)}}},{}],13:[function(t,e,n){"use strict";e.exports=function(t){t.Radar=function(e,n){return n.type="radar",new t(e,n)}}},{}],14:[function(t,e,n){"use strict";e.exports=function(t){t.Scatter=function(e,n){return n.type="scatter",new t(e,n)}}},{}],15:[function(t,e,n){"use strict";var i=t(25),a=t(40),r=t(45);i._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),i._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var n="";return t.length>0&&(t[0].yLabel?n=t[0].yLabel:e.labels.length>0&&t[0].index=0&&a>0)&&(p+=a));return r=c.getPixelForValue(p),o=c.getPixelForValue(p+f),s=(o-r)/2,{size:s,base:r,head:o,center:o+s/2}},calculateBarIndexPixels:function(t,e,n){var i,a,o,s,l,u,d=this,c=n.scale.options,h=d.getStackIndex(t),f=n.pixels,g=f[e],m=f.length,p=n.start,v=n.end;return 1===m?(i=g>p?g-p:v-g,a=g0&&(i=(g-f[e-1])/2,e===m-1&&(a=i)),e');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var r=0;r'),a[r]&&e.push(a[r]),e.push("");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var a=t.getDatasetMeta(0),o=e.datasets[0],s=a.data[i],l=s&&s.custom||{},u=r.valueAtIndexOrDefault,d=t.options.elements.arc;return{text:n,fillStyle:l.backgroundColor?l.backgroundColor:u(o.backgroundColor,i,d.backgroundColor),strokeStyle:l.borderColor?l.borderColor:u(o.borderColor,i,d.borderColor),lineWidth:l.borderWidth?l.borderWidth:u(o.borderWidth,i,d.borderWidth),hidden:isNaN(o.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,a,r=e.index,o=this.chart;for(n=0,i=(o.data.datasets||[]).length;n=Math.PI?-1:g<-Math.PI?1:0))+f,p={x:Math.cos(g),y:Math.sin(g)},v={x:Math.cos(m),y:Math.sin(m)},y=g<=0&&m>=0||g<=2*Math.PI&&2*Math.PI<=m,b=g<=.5*Math.PI&&.5*Math.PI<=m||g<=2.5*Math.PI&&2.5*Math.PI<=m,x=g<=-Math.PI&&-Math.PI<=m||g<=Math.PI&&Math.PI<=m,_=g<=.5*-Math.PI&&.5*-Math.PI<=m||g<=1.5*Math.PI&&1.5*Math.PI<=m,k=h/100,w={x:x?-1:Math.min(p.x*(p.x<0?1:k),v.x*(v.x<0?1:k)),y:_?-1:Math.min(p.y*(p.y<0?1:k),v.y*(v.y<0?1:k))},M={x:y?1:Math.max(p.x*(p.x>0?1:k),v.x*(v.x>0?1:k)),y:b?1:Math.max(p.y*(p.y>0?1:k),v.y*(v.y>0?1:k))},S={width:.5*(M.x-w.x),height:.5*(M.y-w.y)};u=Math.min(s/S.width,l/S.height),d={x:-.5*(M.x+w.x),y:-.5*(M.y+w.y)}}n.borderWidth=e.getMaxBorderWidth(c.data),n.outerRadius=Math.max((u-n.borderWidth)/2,0),n.innerRadius=Math.max(h?n.outerRadius/100*h:0,0),n.radiusLength=(n.outerRadius-n.innerRadius)/n.getVisibleDatasetCount(),n.offsetX=d.x*n.outerRadius,n.offsetY=d.y*n.outerRadius,c.total=e.calculateTotal(),e.outerRadius=n.outerRadius-n.radiusLength*e.getRingIndex(e.index),e.innerRadius=Math.max(e.outerRadius-n.radiusLength,0),r.each(c.data,function(n,i){e.updateElement(n,i,t)})},updateElement:function(t,e,n){var i=this,a=i.chart,o=a.chartArea,s=a.options,l=s.animation,u=(o.left+o.right)/2,d=(o.top+o.bottom)/2,c=s.rotation,h=s.rotation,f=i.getDataset(),g=n&&l.animateRotate?0:t.hidden?0:i.calculateCircumference(f.data[e])*(s.circumference/(2*Math.PI)),m=n&&l.animateScale?0:i.innerRadius,p=n&&l.animateScale?0:i.outerRadius,v=r.valueAtIndexOrDefault;r.extend(t,{_datasetIndex:i.index,_index:e,_model:{x:u+a.offsetX,y:d+a.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:p,innerRadius:m,label:v(f.label,e,a.data.labels[e])}});var y=t._model;this.removeHoverStyle(t),n&&l.animateRotate||(y.startAngle=0===e?s.rotation:i.getMeta().data[e-1]._model.endAngle,y.endAngle=y.startAngle+y.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,e=this.getDataset(),n=this.getMeta(),i=0;return r.each(n.data,function(n,a){t=e.data[a],isNaN(t)||n.hidden||(i+=Math.abs(t))}),i},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(t/e):0},getMaxBorderWidth:function(t){for(var e,n,i=0,a=this.index,r=t.length,o=0;o(i=e>i?e:i)?n:i;return i}})}},{25:25,40:40,45:45}],18:[function(t,e,n){"use strict";var i=t(25),a=t(40),r=t(45);i._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),e.exports=function(t){function e(t,e){return r.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(t){var n,i,a,o=this,s=o.getMeta(),l=s.dataset,u=s.data||[],d=o.chart.options,c=d.elements.line,h=o.getScaleForId(s.yAxisID),f=o.getDataset(),g=e(f,d);for(g&&(a=l.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),l._scale=h,l._datasetIndex=o.index,l._children=u,l._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps,tension:a.tension?a.tension:r.valueOrDefault(f.lineTension,c.tension),backgroundColor:a.backgroundColor?a.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:a.borderWidth?a.borderWidth:f.borderWidth||c.borderWidth,borderColor:a.borderColor?a.borderColor:f.borderColor||c.borderColor,borderCapStyle:a.borderCapStyle?a.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:a.borderDash?a.borderDash:f.borderDash||c.borderDash,borderDashOffset:a.borderDashOffset?a.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:a.borderJoinStyle?a.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:a.fill?a.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:a.steppedLine?a.steppedLine:r.valueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:a.cubicInterpolationMode?a.cubicInterpolationMode:r.valueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode)},l.pivot()),n=0,i=u.length;n');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var r=0;r'),a[r]&&e.push(a[r]),e.push("");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var a=t.getDatasetMeta(0),o=e.datasets[0],s=a.data[i].custom||{},l=r.valueAtIndexOrDefault,u=t.options.elements.arc;return{text:n,fillStyle:s.backgroundColor?s.backgroundColor:l(o.backgroundColor,i,u.backgroundColor),strokeStyle:s.borderColor?s.borderColor:l(o.borderColor,i,u.borderColor),lineWidth:s.borderWidth?s.borderWidth:l(o.borderWidth,i,u.borderWidth),hidden:isNaN(o.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,a,r=e.index,o=this.chart;for(n=0,i=(o.data.datasets||[]).length;n0&&!isNaN(t)?2*Math.PI/e:0}})}},{25:25,40:40,45:45}],20:[function(t,e,n){"use strict";var i=t(25),a=t(40),r=t(45);i._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),e.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,linkScales:r.noop,update:function(t){var e=this,n=e.getMeta(),i=n.dataset,a=n.data,o=i.custom||{},s=e.getDataset(),l=e.chart.options.elements.line,u=e.chart.scale;void 0!==s.tension&&void 0===s.lineTension&&(s.lineTension=s.tension),r.extend(n.dataset,{_datasetIndex:e.index,_scale:u,_children:a,_loop:!0,_model:{tension:o.tension?o.tension:r.valueOrDefault(s.lineTension,l.tension),backgroundColor:o.backgroundColor?o.backgroundColor:s.backgroundColor||l.backgroundColor,borderWidth:o.borderWidth?o.borderWidth:s.borderWidth||l.borderWidth,borderColor:o.borderColor?o.borderColor:s.borderColor||l.borderColor,fill:o.fill?o.fill:void 0!==s.fill?s.fill:l.fill,borderCapStyle:o.borderCapStyle?o.borderCapStyle:s.borderCapStyle||l.borderCapStyle,borderDash:o.borderDash?o.borderDash:s.borderDash||l.borderDash,borderDashOffset:o.borderDashOffset?o.borderDashOffset:s.borderDashOffset||l.borderDashOffset,borderJoinStyle:o.borderJoinStyle?o.borderJoinStyle:s.borderJoinStyle||l.borderJoinStyle}}),n.dataset.pivot(),r.each(a,function(n,i){e.updateElement(n,i,t)},e),e.updateBezierControlPoints()},updateElement:function(t,e,n){var i=this,a=t.custom||{},o=i.getDataset(),s=i.chart.scale,l=i.chart.options.elements.point,u=s.getPointPositionForValue(e,o.data[e]);void 0!==o.radius&&void 0===o.pointRadius&&(o.pointRadius=o.radius),void 0!==o.hitRadius&&void 0===o.pointHitRadius&&(o.pointHitRadius=o.hitRadius),r.extend(t,{_datasetIndex:i.index,_index:e,_scale:s,_model:{x:n?s.xCenter:u.x,y:n?s.yCenter:u.y,tension:a.tension?a.tension:r.valueOrDefault(o.lineTension,i.chart.options.elements.line.tension),radius:a.radius?a.radius:r.valueAtIndexOrDefault(o.pointRadius,e,l.radius),backgroundColor:a.backgroundColor?a.backgroundColor:r.valueAtIndexOrDefault(o.pointBackgroundColor,e,l.backgroundColor),borderColor:a.borderColor?a.borderColor:r.valueAtIndexOrDefault(o.pointBorderColor,e,l.borderColor),borderWidth:a.borderWidth?a.borderWidth:r.valueAtIndexOrDefault(o.pointBorderWidth,e,l.borderWidth),pointStyle:a.pointStyle?a.pointStyle:r.valueAtIndexOrDefault(o.pointStyle,e,l.pointStyle),hitRadius:a.hitRadius?a.hitRadius:r.valueAtIndexOrDefault(o.pointHitRadius,e,l.hitRadius)}}),t._model.skip=a.skip?a.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,e=this.getMeta();r.each(e.data,function(n,i){var a=n._model,o=r.splineCurve(r.previousItem(e.data,i,!0)._model,a,r.nextItem(e.data,i,!0)._model,a.tension);a.controlPointPreviousX=Math.max(Math.min(o.previous.x,t.right),t.left),a.controlPointPreviousY=Math.max(Math.min(o.previous.y,t.bottom),t.top),a.controlPointNextX=Math.max(Math.min(o.next.x,t.right),t.left),a.controlPointNextY=Math.max(Math.min(o.next.y,t.bottom),t.top),n.pivot()})},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model;a.radius=n.hoverRadius?n.hoverRadius:r.valueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),a.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:r.valueAtIndexOrDefault(e.pointHoverBackgroundColor,i,r.getHoverColor(a.backgroundColor)),a.borderColor=n.hoverBorderColor?n.hoverBorderColor:r.valueAtIndexOrDefault(e.pointHoverBorderColor,i,r.getHoverColor(a.borderColor)),a.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:r.valueAtIndexOrDefault(e.pointHoverBorderWidth,i,a.borderWidth)},removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model,o=this.chart.options.elements.point;a.radius=n.radius?n.radius:r.valueAtIndexOrDefault(e.pointRadius,i,o.radius),a.backgroundColor=n.backgroundColor?n.backgroundColor:r.valueAtIndexOrDefault(e.pointBackgroundColor,i,o.backgroundColor),a.borderColor=n.borderColor?n.borderColor:r.valueAtIndexOrDefault(e.pointBorderColor,i,o.borderColor),a.borderWidth=n.borderWidth?n.borderWidth:r.valueAtIndexOrDefault(e.pointBorderWidth,i,o.borderWidth)}})}},{25:25,40:40,45:45}],21:[function(t,e,n){"use strict";t(25)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}),e.exports=function(t){t.controllers.scatter=t.controllers.line}},{25:25}],22:[function(t,e,n){"use strict";var i=t(25),a=t(26),r=t(45);i._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:r.noop,onComplete:r.noop}}),e.exports=function(t){t.Animation=a.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,n,i){var a,r,o=this.animations;for(e.chart=t,i||(t.animating=!0),a=0,r=o.length;a1&&(n=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+n);var i=Date.now();t.dropFrames+=(i-e)/t.frameDuration,t.animations.length>0&&t.requestAnimationFrame()},advance:function(t){for(var e,n,i=this.animations,a=0;a=e.numSteps?(r.callback(e.onAnimationComplete,[e],n),n.animating=!1,i.splice(a,1)):++a}},Object.defineProperty(t.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(t.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}})}},{25:25,26:26,45:45}],23:[function(t,e,n){"use strict";var i=t(25),a=t(45),r=t(28),o=t(48);e.exports=function(t){function e(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=a.configMerge(i.global,i[t.type],t.options||{}),t}function n(t){var e=t.options;e.scale?t.scale.options=e.scale:e.scales&&e.scales.xAxes.concat(e.scales.yAxes).forEach(function(e){t.scales[e.id].options=e}),t.tooltip._options=e.tooltips}function s(t){return"top"===t||"bottom"===t}var l=t.plugins;t.types={},t.instances={},t.controllers={},a.extend(t.prototype,{construct:function(n,i){var r=this;i=e(i);var s=o.acquireContext(n,i),l=s&&s.canvas,u=l&&l.height,d=l&&l.width;r.id=a.uid(),r.ctx=s,r.canvas=l,r.config=i,r.width=d,r.height=u,r.aspectRatio=u?d/u:null,r.options=i.options,r._bufferedRender=!1,r.chart=r,r.controller=r,t.instances[r.id]=r,Object.defineProperty(r,"data",{get:function(){return r.config.data},set:function(t){r.config.data=t}}),s&&l?(r.initialize(),r.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return l.notify(t,"beforeInit"),a.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildScales(),t.initToolTip(),l.notify(t,"afterInit"),t},clear:function(){return a.canvas.clear(this),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,i=e.canvas,r=n.maintainAspectRatio&&e.aspectRatio||null,o=Math.max(0,Math.floor(a.getMaximumWidth(i))),s=Math.max(0,Math.floor(r?o/r:a.getMaximumHeight(i)));if((e.width!==o||e.height!==s)&&(i.width=e.width=o,i.height=e.height=s,i.style.width=o+"px",i.style.height=s+"px",a.retinaScale(e,n.devicePixelRatio),!t)){var u={width:o,height:s};l.notify(e,"resize",[u]),e.options.onResize&&e.options.onResize(e,u),e.stop(),e.update(e.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;a.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),a.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),n&&(n.id=n.id||"scale")},buildScales:function(){var e=this,n=e.options,i=e.scales={},r=[];n.scales&&(r=r.concat((n.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(n.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),n.scale&&r.push({options:n.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),a.each(r,function(n){var r=n.options,o=a.valueOrDefault(r.type,n.dtype),l=t.scaleService.getScaleConstructor(o);if(l){s(r.position)!==s(n.dposition)&&(r.position=n.dposition);var u=new l({id:r.id,options:r,ctx:e.ctx,chart:e});i[u.id]=u,u.mergeTicksOptions(),n.isDefault&&(e.scale=u)}}),t.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e=this,n=[],i=[];return a.each(e.data.datasets,function(a,r){var o=e.getDatasetMeta(r),s=a.type||e.config.type;if(o.type&&o.type!==s&&(e.destroyDatasetMeta(r),o=e.getDatasetMeta(r)),o.type=s,n.push(o.type),o.controller)o.controller.updateIndex(r);else{var l=t.controllers[o.type];if(void 0===l)throw new Error('"'+o.type+'" is not a chart type.');o.controller=new l(e,r),i.push(o.controller)}},e),i},resetElements:function(){var t=this;a.each(t.data.datasets,function(e,n){t.getDatasetMeta(n).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),n(e),!1!==l.notify(e,"beforeUpdate")){e.tooltip._data=e.data;var i=e.buildOrUpdateControllers();a.each(e.data.datasets,function(t,n){e.getDatasetMeta(n).controller.buildOrUpdateElements()},e),e.updateLayout(),a.each(i,function(t){t.reset()}),e.updateDatasets(),l.notify(e,"afterUpdate"),e._bufferedRender?e._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:e.render(t)}},updateLayout:function(){var e=this;!1!==l.notify(e,"beforeLayout")&&(t.layoutService.update(this,this.width,this.height),l.notify(e,"afterScaleUpdate"),l.notify(e,"afterLayout"))},updateDatasets:function(){var t=this;if(!1!==l.notify(t,"beforeDatasetsUpdate")){for(var e=0,n=t.data.datasets.length;e=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);l.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this,i=n.getDatasetMeta(t),a={meta:i,index:t,easingValue:e};!1!==l.notify(n,"beforeDatasetDraw",[a])&&(i.controller.draw(e),l.notify(n,"afterDatasetDraw",[a]))},getElementAtEvent:function(t){return r.modes.single(this,t)},getElementsAtEvent:function(t){return r.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return r.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var i=r.modes[e];return"function"==typeof i?i(this,t,n):[]},getDatasetAtEvent:function(t){return r.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this,n=e.data.datasets[t];n._meta||(n._meta={});var i=n._meta[e.id];return i||(i=n._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e0||(a.forEach(function(e){delete t[e]}),delete t._chartjs)}}var a=["push","pop","shift","splice","unshift"];t.DatasetController=function(t,e){this.initialize(t,e)},i.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null===e.xAxisID&&(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null===e.yAxisID&&(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&n(this._data,this)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,n=e.dataElementType;return n&&new n({_chart:e.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,n=this,i=n.getMeta(),a=n.getDataset().data||[],r=i.data;for(t=0,e=a.length;ti&&t.insertElements(i,a-i)},insertElements:function(t,e){for(var n=0;n=n[e].length&&n[e].push({}),!n[e][o].type||l.type&&l.type!==n[e][o].type?r.merge(n[e][o],[t.scaleService.getScaleDefaults(s),l]):r.merge(n[e][o],l)}else r._merger(e,n,i,a)}})},r.where=function(t,e){if(r.isArray(t)&&Array.prototype.filter)return t.filter(e);var n=[];return r.each(t,function(t){e(t)&&n.push(t)}),n},r.findIndex=Array.prototype.findIndex?function(t,e,n){return t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var i=0,a=t.length;i=0;i--){var a=t[i];if(e(a))return a}},r.inherits=function(t){var e=this,n=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},i=function(){this.constructor=n};return i.prototype=e.prototype,n.prototype=new i,n.extend=r.inherits,t&&r.extend(n.prototype,t),n.__super__=e.prototype,n},r.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},r.almostEquals=function(t,e,n){return Math.abs(t-e)t},r.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},r.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},r.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},r.log10=Math.log10?function(t){return Math.log10(t)}:function(t){return Math.log(t)/Math.LN10},r.toRadians=function(t){return t*(Math.PI/180)},r.toDegrees=function(t){return t*(180/Math.PI)},r.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),r=Math.atan2(i,n);return r<-.5*Math.PI&&(r+=2*Math.PI),{angle:r,distance:a}},r.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},r.aliasPixel=function(t){return t%2==0?0:.5},r.splineCurve=function(t,e,n,i){var a=t.skip?e:t,r=e,o=n.skip?e:n,s=Math.sqrt(Math.pow(r.x-a.x,2)+Math.pow(r.y-a.y,2)),l=Math.sqrt(Math.pow(o.x-r.x,2)+Math.pow(o.y-r.y,2)),u=s/(s+l),d=l/(s+l),c=i*(u=isNaN(u)?0:u),h=i*(d=isNaN(d)?0:d);return{previous:{x:r.x-c*(o.x-a.x),y:r.y-c*(o.y-a.y)},next:{x:r.x+h*(o.x-a.x),y:r.y+h*(o.y-a.y)}}},r.EPSILON=Number.EPSILON||1e-14,r.splineCurveMonotone=function(t){var e,n,i,a,o=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),s=o.length;for(e=0;e0?o[e-1]:null,(a=e0?o[e-1]:null,a=e=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},r.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},r.niceNum=function(t,e){var n=Math.floor(r.log10(t)),i=t/Math.pow(10,n);return(e?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},r.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},r.getRelativePosition=function(t,e){var n,i,a=t.originalEvent||t,o=t.currentTarget||t.srcElement,s=o.getBoundingClientRect(),l=a.touches;l&&l.length>0?(n=l[0].clientX,i=l[0].clientY):(n=a.clientX,i=a.clientY);var u=parseFloat(r.getStyle(o,"padding-left")),d=parseFloat(r.getStyle(o,"padding-top")),c=parseFloat(r.getStyle(o,"padding-right")),h=parseFloat(r.getStyle(o,"padding-bottom")),f=s.right-s.left-u-c,g=s.bottom-s.top-d-h;return n=Math.round((n-s.left-u)/f*o.width/e.currentDevicePixelRatio),i=Math.round((i-s.top-d)/g*o.height/e.currentDevicePixelRatio),{x:n,y:i}},r.getConstraintWidth=function(t){return o(t,"max-width","clientWidth")},r.getConstraintHeight=function(t){return o(t,"max-height","clientHeight")},r.getMaximumWidth=function(t){var e=t.parentNode;if(!e)return t.clientWidth;var n=parseInt(r.getStyle(e,"padding-left"),10),i=parseInt(r.getStyle(e,"padding-right"),10),a=e.clientWidth-n-i,o=r.getConstraintWidth(t);return isNaN(o)?a:Math.min(a,o)},r.getMaximumHeight=function(t){var e=t.parentNode;if(!e)return t.clientHeight;var n=parseInt(r.getStyle(e,"padding-top"),10),i=parseInt(r.getStyle(e,"padding-bottom"),10),a=e.clientHeight-n-i,o=r.getConstraintHeight(t);return isNaN(o)?a:Math.min(a,o)},r.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},r.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||window.devicePixelRatio||1;if(1!==n){var i=t.canvas,a=t.height,r=t.width;i.height=a*n,i.width=r*n,t.ctx.scale(n,n),i.style.height=a+"px",i.style.width=r+"px"}},r.fontString=function(t,e,n){return e+" "+t+"px "+n},r.longestText=function(t,e,n,i){var a=(i=i||{}).data=i.data||{},o=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(a=i.data={},o=i.garbageCollect=[],i.font=e),t.font=e;var s=0;r.each(n,function(e){void 0!==e&&null!==e&&!0!==r.isArray(e)?s=r.measureText(t,a,o,s,e):r.isArray(e)&&r.each(e,function(e){void 0===e||null===e||r.isArray(e)||(s=r.measureText(t,a,o,s,e))})});var l=o.length/2;if(l>n.length){for(var u=0;ui&&(i=r),i},r.numberOfLabelLines=function(t){var e=1;return r.each(t,function(t){r.isArray(t)&&t.length>e&&(e=t.length)}),e},r.color=i?function(t){return t instanceof CanvasGradient&&(t=a.global.defaultColor),i(t)}:function(t){return console.error("Color.js not found!"),t},r.getHoverColor=function(t){return t instanceof CanvasPattern?t:r.color(t).saturate(.5).darken(.1).rgbString()}}},{2:2,25:25,45:45}],28:[function(t,e,n){"use strict";function i(t,e){return t.native?{x:t.x,y:t.y}:u.getRelativePosition(t,e)}function a(t,e){var n,i,a,r,o;for(i=0,r=t.data.datasets.length;i0&&(u=t.getDatasetMeta(u[0]._datasetIndex).data),u},"x-axis":function(t,e){return l(t,e,{intersect:!0})},point:function(t,e){return r(t,i(e,t))},nearest:function(t,e,n){var a=i(e,t);n.axis=n.axis||"xy";var r=s(n.axis),l=o(t,a,n.intersect,r);return l.length>1&&l.sort(function(t,e){var n=t.getArea()-e.getArea();return 0===n&&(n=t._datasetIndex-e._datasetIndex),n}),l.slice(0,1)},x:function(t,e,n){var r=i(e,t),o=[],s=!1;return a(t,function(t){t.inXRange(r.x)&&o.push(t),t.inRange(r.x,r.y)&&(s=!0)}),n.intersect&&!s&&(o=[]),o},y:function(t,e,n){var r=i(e,t),o=[],s=!1;return a(t,function(t){t.inYRange(r.y)&&o.push(t),t.inRange(r.x,r.y)&&(s=!0)}),n.intersect&&!s&&(o=[]),o}}}},{45:45}],29:[function(t,e,n){"use strict";t(25)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),e.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t,t}},{25:25}],30:[function(t,e,n){"use strict";var i=t(45);e.exports=function(t){function e(t,e){return i.where(t,function(t){return t.position===e})}function n(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,n){var i=e?n:t,a=e?t:n;return i.weight===a.weight?i._tmpIndex_-a._tmpIndex_:i.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}t.layoutService={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var i,a=["fullWidth","position","weight"],r=a.length,o=0;oh&&lt.maxHeight){l--;break}l++,c=u*d}t.labelRotation=l},afterCalculateTickRotation:function(){s.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){s.callback(this.options.beforeFit,[this])},fit:function(){var t=this,a=t.minSize={width:0,height:0},r=i(t._ticks),o=t.options,u=o.ticks,d=o.scaleLabel,c=o.gridLines,h=o.display,f=t.isHorizontal(),g=n(u),m=o.gridLines.tickMarkLength;if(a.width=f?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:h&&c.drawTicks?m:0,a.height=f?h&&c.drawTicks?m:0:t.maxHeight,d.display&&h){var p=l(d)+s.options.toPadding(d.padding).height;f?a.height+=p:a.width+=p}if(u.display&&h){var v=s.longestText(t.ctx,g.font,r,t.longestTextCache),y=s.numberOfLabelLines(r),b=.5*g.size,x=t.options.ticks.padding;if(f){t.longestLabelWidth=v;var _=s.toRadians(t.labelRotation),k=Math.cos(_),w=Math.sin(_)*v+g.size*y+b*(y-1)+b;a.height=Math.min(t.maxHeight,a.height+w+x),t.ctx.font=g.font;var M=e(t.ctx,r[0],g.font),S=e(t.ctx,r[r.length-1],g.font);0!==t.labelRotation?(t.paddingLeft="bottom"===o.position?k*M+3:k*b+3,t.paddingRight="bottom"===o.position?k*b+3:k*S+3):(t.paddingLeft=M/2+3,t.paddingRight=S/2+3)}else u.mirror?v=0:v+=x+b,a.width=Math.min(t.maxWidth,a.width+v),t.paddingTop=g.size/2,t.paddingBottom=g.size/2}t.handleMargins(),t.width=a.width,t.height=a.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){s.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(s.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:s.noop,getPixelForValue:s.noop,getValueForPixel:s.noop,getPixelForTick:function(t){var e=this,n=e.options.offset;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(n?0:1),1),a=i*t+e.paddingLeft;n&&(a+=i/2);var r=e.left+Math.round(a);return r+=e.isFullWidth()?e.margins.left:0}var o=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(o/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,i=e.left+Math.round(n);return i+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this,e=t.min,n=t.max;return t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0},_autoSkip:function(t){var e,n,i,a,r=this,o=r.isHorizontal(),l=r.options.ticks.minor,u=t.length,d=s.toRadians(r.labelRotation),c=Math.cos(d),h=r.longestLabelWidth*c,f=[];for(l.maxTicksLimit&&(a=l.maxTicksLimit),o&&(e=!1,(h+l.autoSkipPadding)*u>r.width-(r.paddingLeft+r.paddingRight)&&(e=1+Math.floor((h+l.autoSkipPadding)*u/(r.width-(r.paddingLeft+r.paddingRight)))),a&&u>a&&(e=Math.max(e,Math.floor(u/a)))),n=0;n1&&n%e>0||n%e==0&&n+e>=u)&&n!==u-1||s.isNullOrUndef(i.label))&&delete i.label,f.push(i);return f},draw:function(t){var e=this,i=e.options;if(i.display){var o=e.ctx,u=r.global,d=i.ticks.minor,c=i.ticks.major||d,h=i.gridLines,f=i.scaleLabel,g=0!==e.labelRotation,m=e.isHorizontal(),p=d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),v=s.valueOrDefault(d.fontColor,u.defaultFontColor),y=n(d),b=s.valueOrDefault(c.fontColor,u.defaultFontColor),x=n(c),_=h.drawTicks?h.tickMarkLength:0,k=s.valueOrDefault(f.fontColor,u.defaultFontColor),w=n(f),M=s.options.toPadding(f.padding),S=s.toRadians(e.labelRotation),D=[],C="right"===i.position?e.left:e.right-_,P="right"===i.position?e.left+_:e.right,T="bottom"===i.position?e.top:e.bottom-_,I="bottom"===i.position?e.top+_:e.bottom;if(s.each(p,function(n,r){if(void 0!==n.label){var o,l,c,f,v=n.label;r===e.zeroLineIndex&&i.offset===h.offsetGridLines?(o=h.zeroLineWidth,l=h.zeroLineColor,c=h.zeroLineBorderDash,f=h.zeroLineBorderDashOffset):(o=s.valueAtIndexOrDefault(h.lineWidth,r),l=s.valueAtIndexOrDefault(h.color,r),c=s.valueOrDefault(h.borderDash,u.borderDash),f=s.valueOrDefault(h.borderDashOffset,u.borderDashOffset));var y,b,x,k,w,M,A,O,F,R,L="middle",W="middle",Y=d.padding;if(m){var N=_+Y;"bottom"===i.position?(W=g?"middle":"top",L=g?"right":"center",R=e.top+N):(W=g?"middle":"bottom",L=g?"left":"center",R=e.bottom-N);var z=a(e,r,h.offsetGridLines&&p.length>1);z1);H0)n=t.stepSize;else{var r=i.niceNum(e.max-e.min,!1);n=i.niceNum(r/(t.maxTicks-1),!0)}var o=Math.floor(e.min/n)*n,s=Math.ceil(e.max/n)*n;t.min&&t.max&&t.stepSize&&i.almostWhole((t.max-t.min)/t.stepSize,n/1e3)&&(o=t.min,s=t.max);var l=(s-o)/n;l=i.almostEquals(l,Math.round(l),n/1e3)?Math.round(l):Math.ceil(l),a.push(void 0!==t.min?t.min:o);for(var u=1;u3?n[2]-n[1]:n[1]-n[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var r=i.log10(Math.abs(a)),o="";if(0!==t){var s=-1*Math.floor(r);s=Math.max(Math.min(s,20),0),o=t.toFixed(s)}else o="0";return o},logarithmic:function(t,e,n){var a=t/Math.pow(10,Math.floor(i.log10(t)));return 0===t?"0":1===a||2===a||5===a||0===e||e===n.length-1?t.toExponential():""}}}},{45:45}],35:[function(t,e,n){"use strict";var i=t(25),a=t(26),r=t(45);i._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:r.noop,title:function(t,e){var n="",i=e.labels,a=i?i.length:0;if(t.length>0){var r=t[0];r.xLabel?n=r.xLabel:a>0&&r.indexi.height-e.height&&(o="bottom");var s,l,u,d,c,h=(a.left+a.right)/2,f=(a.top+a.bottom)/2;"center"===o?(s=function(t){return t<=h},l=function(t){return t>h}):(s=function(t){return t<=e.width/2},l=function(t){return t>=i.width-e.width/2}),u=function(t){return t+e.width>i.width},d=function(t){return t-e.width<0},c=function(t){return t<=f?"top":"bottom"},s(n.x)?(r="left",u(n.x)&&(r="center",o=c(n.y))):l(n.x)&&(r="right",d(n.x)&&(r="center",o=c(n.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:r,yAlign:g.yAlign?g.yAlign:o}}function d(t,e,n){var i=t.x,a=t.y,r=t.caretSize,o=t.caretPadding,s=t.cornerRadius,l=n.xAlign,u=n.yAlign,d=r+o,c=s+o;return"right"===l?i-=e.width:"center"===l&&(i-=e.width/2),"top"===u?a+=d:a-="bottom"===u?e.height+d:e.height/2,"center"===u?"left"===l?i+=d:"right"===l&&(i-=d):"left"===l?i-=c:"right"===l&&(i+=c),{x:i,y:a}}t.Tooltip=a.extend({initialize:function(){this._model=s(this._options)},getTitle:function(){var t=this,e=t._options.callbacks,i=e.beforeTitle.apply(t,arguments),a=e.title.apply(t,arguments),r=e.afterTitle.apply(t,arguments),o=[];return o=n(o,i),o=n(o,a),o=n(o,r)},getBeforeBody:function(){var t=this._options.callbacks.beforeBody.apply(this,arguments);return r.isArray(t)?t:void 0!==t?[t]:[]},getBody:function(t,e){var i=this,a=i._options.callbacks,o=[];return r.each(t,function(t){var r={before:[],lines:[],after:[]};n(r.before,a.beforeLabel.call(i,t,e)),n(r.lines,a.label.call(i,t,e)),n(r.after,a.afterLabel.call(i,t,e)),o.push(r)}),o},getAfterBody:function(){var t=this._options.callbacks.afterBody.apply(this,arguments);return r.isArray(t)?t:void 0!==t?[t]:[]},getFooter:function(){var t=this,e=t._options.callbacks,i=e.beforeFooter.apply(t,arguments),a=e.footer.apply(t,arguments),r=e.afterFooter.apply(t,arguments),o=[];return o=n(o,i),o=n(o,a),o=n(o,r)},update:function(e){var n,i,a=this,c=a._options,h=a._model,f=a._model=s(c),g=a._active,m=a._data,p={xAlign:h.xAlign,yAlign:h.yAlign},v={x:h.x,y:h.y},y={width:h.width,height:h.height},b={x:h.caretX,y:h.caretY};if(g.length){f.opacity=1;var x=[],_=[];b=t.Tooltip.positioners[c.position](g,a._eventPosition);var k=[];for(n=0,i=g.length;n0&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},i={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,r=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&r&&(this.drawBackground(i,e,t,n,a),i.x+=e.xPadding,i.y+=e.yPadding,this.drawTitle(i,e,t,a),this.drawBody(i,e,t,a),this.drawFooter(i,e,t,a))}},handleEvent:function(t){var e=this,n=e._options,i=!1;if(e._lastActive=e._lastActive||[],"mouseout"===t.type?e._active=[]:e._active=e._chart.getElementsAtEventForMode(t,n.mode,n),!(i=!r.arrayEquals(e._active,e._lastActive)))return!1;if(e._lastActive=e._active,n.enabled||n.custom){e._eventPosition={x:t.x,y:t.y};var a=e._model;e.update(!0),e.pivot(),i|=a.x!==e._model.x||a.y!==e._model.y}return i}}),t.Tooltip.positioners={average:function(t){if(!t.length)return!1;var e,n,i=0,a=0,r=0;for(e=0,n=t.length;el;)a-=2*Math.PI;for(;a=s&&a<=l,d=o>=n.innerRadius&&o<=n.outerRadius;return u&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t=this._chart.ctx,e=this._view,n=e.startAngle,i=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,n,i),t.arc(e.x,e.y,e.innerRadius,i,n,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})},{25:25,26:26,45:45}],37:[function(t,e,n){"use strict";var i=t(25),a=t(26),r=t(45),o=i.global;i._set("global",{elements:{line:{tension:.4,backgroundColor:o.defaultColor,borderWidth:3,borderColor:o.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),e.exports=a.extend({draw:function(){var t,e,n,i,a=this,s=a._view,l=a._chart.ctx,u=s.spanGaps,d=a._children.slice(),c=o.elements.line,h=-1;for(a._loop&&d.length&&d.push(d[0]),l.save(),l.lineCap=s.borderCapStyle||c.borderCapStyle,l.setLineDash&&l.setLineDash(s.borderDash||c.borderDash),l.lineDashOffset=s.borderDashOffset||c.borderDashOffset,l.lineJoin=s.borderJoinStyle||c.borderJoinStyle,l.lineWidth=s.borderWidth||c.borderWidth,l.strokeStyle=s.borderColor||o.defaultColor,l.beginPath(),h=-1,t=0;te?1:-1,o=1,s=u.borderSkipped||"left"):(e=u.x-u.width/2,n=u.x+u.width/2,i=u.y,r=1,o=(a=u.base)>i?1:-1,s=u.borderSkipped||"bottom"),d){var c=Math.min(Math.abs(e-n),Math.abs(i-a)),h=(d=d>c?c:d)/2,f=e+("left"!==s?h*r:0),g=n+("right"!==s?-h*r:0),m=i+("top"!==s?h*o:0),p=a+("bottom"!==s?-h*o:0);f!==g&&(i=m,a=p),m!==p&&(e=f,n=g)}l.beginPath(),l.fillStyle=u.backgroundColor,l.strokeStyle=u.borderColor,l.lineWidth=d;var v=[[e,a],[e,i],[n,i],[n,a]],y=["bottom","left","top","right"].indexOf(s,0);-1===y&&(y=0);var b=t(0);l.moveTo(b[0],b[1]);for(var x=1;x<4;x++)b=t(x),l.lineTo(b[0],b[1]);l.fill(),d&&l.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var n=!1;if(this._view){var i=a(this);n=t>=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom}return n},inLabelRange:function(t,e){var n=this;if(!n._view)return!1;var r=a(n);return i(n)?t>=r.left&&t<=r.right:e>=r.top&&e<=r.bottom},inXRange:function(t){var e=a(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=a(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,n=this._view;return i(this)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},{25:25,26:26}],40:[function(t,e,n){"use strict";e.exports={},e.exports.Arc=t(36),e.exports.Line=t(37),e.exports.Point=t(38),e.exports.Rectangle=t(39)},{36:36,37:37,38:38,39:39}],41:[function(t,e,n){"use strict";var i=t(42),n=e.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,i,a,r){if(r){var o=Math.min(r,i/2),s=Math.min(r,a/2);t.moveTo(e+o,n),t.lineTo(e+i-o,n),t.quadraticCurveTo(e+i,n,e+i,n+s),t.lineTo(e+i,n+a-s),t.quadraticCurveTo(e+i,n+a,e+i-o,n+a),t.lineTo(e+o,n+a),t.quadraticCurveTo(e,n+a,e,n+a-s),t.lineTo(e,n+s),t.quadraticCurveTo(e,n,e+o,n)}else t.rect(e,n,i,a)},drawPoint:function(t,e,n,i,a){var r,o,s,l,u,d;if("object"!=typeof e||"[object HTMLImageElement]"!==(r=e.toString())&&"[object HTMLCanvasElement]"!==r){if(!(isNaN(n)||n<=0)){switch(e){default:t.beginPath(),t.arc(i,a,n,0,2*Math.PI),t.closePath(),t.fill();break;case"triangle":t.beginPath(),u=(o=3*n/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(i-o/2,a+u/3),t.lineTo(i+o/2,a+u/3),t.lineTo(i,a-2*u/3),t.closePath(),t.fill();break;case"rect":d=1/Math.SQRT2*n,t.beginPath(),t.fillRect(i-d,a-d,2*d,2*d),t.strokeRect(i-d,a-d,2*d,2*d);break;case"rectRounded":var c=n/Math.SQRT2,h=i-c,f=a-c,g=Math.SQRT2*n;t.beginPath(),this.roundedRect(t,h,f,g,g,n/2),t.closePath(),t.fill();break;case"rectRot":d=1/Math.SQRT2*n,t.beginPath(),t.moveTo(i-d,a),t.lineTo(i,a+d),t.lineTo(i+d,a),t.lineTo(i,a-d),t.closePath(),t.fill();break;case"cross":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"crossRot":t.beginPath(),s=Math.cos(Math.PI/4)*n,l=Math.sin(Math.PI/4)*n,t.moveTo(i-s,a-l),t.lineTo(i+s,a+l),t.moveTo(i-s,a+l),t.lineTo(i+s,a-l),t.closePath();break;case"star":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),s=Math.cos(Math.PI/4)*n,l=Math.sin(Math.PI/4)*n,t.moveTo(i-s,a-l),t.lineTo(i+s,a+l),t.moveTo(i-s,a+l),t.lineTo(i+s,a-l),t.closePath();break;case"line":t.beginPath(),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"dash":t.beginPath(),t.moveTo(i,a),t.lineTo(i+n,a),t.closePath()}t.stroke()}}else t.drawImage(e,i-e.width/2,a-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,n,i){if(n.steppedLine)return"after"===n.steppedLine&&!i||"after"!==n.steppedLine&&i?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y),void t.lineTo(n.x,n.y);n.tension?t.bezierCurveTo(i?e.controlPointPreviousX:e.controlPointNextX,i?e.controlPointPreviousY:e.controlPointNextY,i?n.controlPointNextX:n.controlPointPreviousX,i?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):t.lineTo(n.x,n.y)}};i.clear=n.clear,i.drawRoundedRectangle=function(t){t.beginPath(),n.roundedRect.apply(n,arguments),t.closePath()}},{42:42}],42:[function(t,e,n){"use strict";var i={noop:function(){},uid:function(){var t=0;return function(){return t++}}(),isNullOrUndef:function(t){return null===t||void 0===t},isArray:Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,n){return i.valueOrDefault(i.isArray(t)?t[e]:t,n)},callback:function(t,e,n){if(t&&"function"==typeof t.call)return t.apply(n,e)},each:function(t,e,n,a){var r,o,s;if(i.isArray(t))if(o=t.length,a)for(r=o-1;r>=0;r--)e.call(n,t[r],r);else for(r=0;r=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),t<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-a.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*a.easeInBounce(2*t):.5*a.easeOutBounce(2*t-1)+.5}};e.exports={effects:a},i.easingEffects=a},{42:42}],44:[function(t,e,n){"use strict";var i=t(42);e.exports={toLineHeight:function(t,e){var n=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*e;switch(t=+n[2],n[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,n,a,r;return i.isObject(t)?(e=+t.top||0,n=+t.right||0,a=+t.bottom||0,r=+t.left||0):e=n=a=r=+t||0,{top:e,right:n,bottom:a,left:r,height:e+a,width:r+n}},resolve:function(t,e,n){var a,r,o;for(a=0,r=t.length;a
';var a=e.childNodes[0],o=e.childNodes[1];e._reset=function(){a.scrollLeft=1e6,a.scrollTop=1e6,o.scrollLeft=1e6,o.scrollTop=1e6};var s=function(){e._reset(),t()};return r(a,"scroll",s.bind(a,"expand")),r(o,"scroll",s.bind(o,"shrink")),e}function c(t,e){var n=(t[v]||(t[v]={})).renderProxy=function(t){t.animationName===x&&e()};p.each(_,function(e){r(t,e,n)}),t.classList.add(b)}function h(t){var e=t[v]||{},n=e.renderProxy;n&&(p.each(_,function(e){o(t,e,n)}),delete e.renderProxy),t.classList.remove(b)}function f(t,e,n){var i=t[v]||(t[v]={}),a=i.resizer=d(u(function(){if(i.resizer)return e(s("resize",n))}));c(t,function(){if(i.resizer){var e=t.parentNode;e&&e!==a.parentNode&&e.insertBefore(a,e.firstChild),a._reset()}})}function g(t){var e=t[v]||{},n=e.resizer;delete e.resizer,h(t),n&&n.parentNode&&n.parentNode.removeChild(n)}function m(t,e){var n=t._style||document.createElement("style");t._style||(t._style=n,e="/* Chart.js */\n"+e,n.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(n)),n.appendChild(document.createTextNode(e))}var p=t(45),v="$chartjs",y="chartjs-",b=y+"render-monitor",x=y+"render-animation",_=["animationstart","webkitAnimationStart"],k={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},w=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};e.exports={_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,initialize:function(){var t="from{opacity:0.99}to{opacity:1}";m(this,"@-webkit-keyframes "+x+"{"+t+"}@keyframes "+x+"{"+t+"}."+b+"{-webkit-animation:"+x+" 0.001s;animation:"+x+" 0.001s;}")},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var n=t&&t.getContext&&t.getContext("2d");return n&&n.canvas===t?(a(t,e),n):null},releaseContext:function(t){var e=t.canvas;if(e[v]){var n=e[v].initial;["height","width"].forEach(function(t){var i=n[t];p.isNullOrUndef(i)?e.removeAttribute(t):e.setAttribute(t,i)}),p.each(n.style||{},function(t,n){e.style[n]=t}),e.width=e.width,delete e[v]}},addEventListener:function(t,e,n){var i=t.canvas;if("resize"!==e){var a=n[v]||(n[v]={});r(i,e,(a.proxies||(a.proxies={}))[t.id+"_"+e]=function(e){n(l(e,t))})}else f(i,n,t)},removeEventListener:function(t,e,n){var i=t.canvas;if("resize"!==e){var a=((n[v]||{}).proxies||{})[t.id+"_"+e];a&&o(i,e,a)}else g(i)}},p.addEvent=r,p.removeEvent=o},{45:45}],48:[function(t,e,n){"use strict";var i=t(45),a=t(46),r=t(47),o=r._enabled?r:a;e.exports=i.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},o)},{45:45,46:46,47:47}],49:[function(t,e,n){"use strict";var i=t(25),a=t(40),r=t(45);i._set("global",{plugins:{filler:{propagate:!0}}}),e.exports=function(){function t(t,e,n){var i,a=t._model||{},r=a.fill;if(void 0===r&&(r=!!a.backgroundColor),!1===r||null===r)return!1;if(!0===r)return"origin";if(i=parseFloat(r,10),isFinite(i)&&Math.floor(i)===i)return"-"!==r[0]&&"+"!==r[0]||(i=e+i),!(i===e||i<0||i>=n)&&i;switch(r){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return r;default:return!1}}function e(t){var e,n=t.el._model||{},i=t.el._scale||{},a=t.fill,r=null;if(isFinite(a))return null;if("start"===a?r=void 0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===a?r=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?r=n.scaleZero:i.getBasePosition?r=i.getBasePosition():i.getBasePixel&&(r=i.getBasePixel()),void 0!==r&&null!==r){if(void 0!==r.x&&void 0!==r.y)return r;if("number"==typeof r&&isFinite(r))return e=i.isHorizontal(),{x:e?r:null,y:e?null:r}}return null}function n(t,e,n){var i,a=t[e].fill,r=[e];if(!n)return a;for(;!1!==a&&-1===r.indexOf(a);){if(!isFinite(a))return a;if(!(i=t[a]))return!1;if(i.visible)return a;r.push(a),a=i.fill}return!1}function o(t){var e=t.fill,n="dataset";return!1===e?null:(isFinite(e)||(n="boundary"),d[n](t))}function s(t){return t&&!t.skip}function l(t,e,n,i,a){var o;if(i&&a){for(t.moveTo(e[0].x,e[0].y),o=1;o0;--o)r.canvas.lineTo(t,n[o],n[o-1],!0)}}function u(t,e,n,i,a,r){var o,u,d,c,h,f,g,m=e.length,p=i.spanGaps,v=[],y=[],b=0,x=0;for(t.beginPath(),o=0,u=m+!!r;o');for(var n=0;n'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("");return e.push(""),e.join("")}}),e.exports=function(t){function e(t,e){return t.usePointStyle?e*Math.SQRT2:t.boxWidth}function n(e,n){var i=new t.Legend({ctx:e.ctx,options:n,chart:e});o.configure(e,i,n),o.addBox(e,i),e.legend=i}var o=t.layoutService,s=r.noop;return t.Legend=a.extend({initialize:function(t){r.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:s,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:s,beforeSetDimensions:s,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:s,beforeBuildLabels:s,buildLabels:function(){var t=this,e=t.options.labels||{},n=r.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(n=n.filter(function(n){return e.filter(n,t.chart.data)})),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:s,beforeFit:s,fit:function(){var t=this,n=t.options,a=n.labels,o=n.display,s=t.ctx,l=i.global,u=r.valueOrDefault,d=u(a.fontSize,l.defaultFontSize),c=u(a.fontStyle,l.defaultFontStyle),h=u(a.fontFamily,l.defaultFontFamily),f=r.fontString(d,c,h),g=t.legendHitBoxes=[],m=t.minSize,p=t.isHorizontal();if(p?(m.width=t.maxWidth,m.height=o?10:0):(m.width=o?10:0,m.height=t.maxHeight),o)if(s.font=f,p){var v=t.lineWidths=[0],y=t.legendItems.length?d+a.padding:0;s.textAlign="left",s.textBaseline="top",r.each(t.legendItems,function(n,i){var r=e(a,d)+d/2+s.measureText(n.text).width;v[v.length-1]+r+a.padding>=t.width&&(y+=d+a.padding,v[v.length]=t.left),g[i]={left:0,top:0,width:r,height:d},v[v.length-1]+=r+a.padding}),m.height+=y}else{var b=a.padding,x=t.columnWidths=[],_=a.padding,k=0,w=0,M=d+b;r.each(t.legendItems,function(t,n){var i=e(a,d)+d/2+s.measureText(t.text).width;w+M>m.height&&(_+=k+a.padding,x.push(k),k=0,w=0),k=Math.max(k,i),w+=M,g[n]={left:0,top:0,width:i,height:d}}),_+=k,x.push(k),m.width+=_}t.width=m.width,t.height=m.height},afterFit:s,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,n=t.options,a=n.labels,o=i.global,s=o.elements.line,l=t.width,u=t.lineWidths;if(n.display){var d,c=t.ctx,h=r.valueOrDefault,f=h(a.fontColor,o.defaultFontColor),g=h(a.fontSize,o.defaultFontSize),m=h(a.fontStyle,o.defaultFontStyle),p=h(a.fontFamily,o.defaultFontFamily),v=r.fontString(g,m,p);c.textAlign="left",c.textBaseline="middle",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=v;var y=e(a,g),b=t.legendHitBoxes,x=function(t,e,i){if(!(isNaN(y)||y<=0)){c.save(),c.fillStyle=h(i.fillStyle,o.defaultColor),c.lineCap=h(i.lineCap,s.borderCapStyle),c.lineDashOffset=h(i.lineDashOffset,s.borderDashOffset),c.lineJoin=h(i.lineJoin,s.borderJoinStyle),c.lineWidth=h(i.lineWidth,s.borderWidth),c.strokeStyle=h(i.strokeStyle,o.defaultColor);var a=0===h(i.lineWidth,s.borderWidth);if(c.setLineDash&&c.setLineDash(h(i.lineDash,s.borderDash)),n.labels&&n.labels.usePointStyle){var l=g*Math.SQRT2/2,u=l/Math.SQRT2,d=t+u,f=e+u;r.canvas.drawPoint(c,i.pointStyle,l,d,f)}else a||c.strokeRect(t,e,y,g),c.fillRect(t,e,y,g);c.restore()}},_=function(t,e,n,i){var a=g/2,r=y+a+t,o=e+a;c.fillText(n.text,r,o),n.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(r,o),c.lineTo(r+i,o),c.stroke())},k=t.isHorizontal();d=k?{x:t.left+(l-u[0])/2,y:t.top+a.padding,line:0}:{x:t.left+a.padding,y:t.top+a.padding,line:0};var w=g+a.padding;r.each(t.legendItems,function(e,n){var i=c.measureText(e.text).width,r=y+g/2+i,o=d.x,s=d.y;k?o+r>=l&&(s=d.y+=w,d.line++,o=d.x=t.left+(l-u[d.line])/2):s+w>t.bottom&&(o=d.x=o+t.columnWidths[d.line]+a.padding,s=d.y=t.top+a.padding,d.line++),x(o,s,e),b[n].left=o,b[n].top=s,_(o,s,e,i),k?d.x+=r+a.padding:d.y+=w})}},handleEvent:function(t){var e=this,n=e.options,i="mouseup"===t.type?"click":t.type,a=!1;if("mousemove"===i){if(!n.onHover)return}else{if("click"!==i)return;if(!n.onClick)return}var r=t.x,o=t.y;if(r>=e.left&&r<=e.right&&o>=e.top&&o<=e.bottom)for(var s=e.legendHitBoxes,l=0;l=u.left&&r<=u.left+u.width&&o>=u.top&&o<=u.top+u.height){if("click"===i){n.onClick.call(e,t.native,e.legendItems[l]),a=!0;break}if("mousemove"===i){n.onHover.call(e,t.native,e.legendItems[l]),a=!0;break}}}return a}}),{id:"legend",beforeInit:function(t){var e=t.options.legend;e&&n(t,e)},beforeUpdate:function(t){var e=t.options.legend,a=t.legend;e?(r.mergeIf(e,i.global.legend),a?(o.configure(t,a,e),a.options=e):n(t,e)):a&&(o.removeBox(t,a),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}}}},{25:25,26:26,45:45}],51:[function(t,e,n){"use strict";var i=t(25),a=t(26),r=t(45);i._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}}),e.exports=function(t){function e(e,i){var a=new t.Title({ctx:e.ctx,options:i,chart:e});n.configure(e,a,i),n.addBox(e,a),e.titleBlock=a}var n=t.layoutService,o=r.noop;return t.Title=a.extend({initialize:function(t){var e=this;r.extend(e,t),e.legendHitBoxes=[]},beforeUpdate:o,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:o,beforeSetDimensions:o,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:o,beforeBuildLabels:o,buildLabels:o,afterBuildLabels:o,beforeFit:o,fit:function(){var t=this,e=r.valueOrDefault,n=t.options,a=n.display,o=e(n.fontSize,i.global.defaultFontSize),s=t.minSize,l=r.isArray(n.text)?n.text.length:1,u=r.options.toLineHeight(n.lineHeight,o),d=a?l*u+2*n.padding:0;t.isHorizontal()?(s.width=t.maxWidth,s.height=d):(s.width=d,s.height=t.maxHeight),t.width=s.width,t.height=s.height},afterFit:o,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=r.valueOrDefault,a=t.options,o=i.global;if(a.display){var s,l,u,d=n(a.fontSize,o.defaultFontSize),c=n(a.fontStyle,o.defaultFontStyle),h=n(a.fontFamily,o.defaultFontFamily),f=r.fontString(d,c,h),g=r.options.toLineHeight(a.lineHeight,d),m=g/2+a.padding,p=0,v=t.top,y=t.left,b=t.bottom,x=t.right;e.fillStyle=n(a.fontColor,o.defaultFontColor),e.font=f,t.isHorizontal()?(l=y+(x-y)/2,u=v+m,s=x-y):(l="left"===a.position?y+m:x-m,u=v+(b-v)/2,s=b-v,p=Math.PI*("left"===a.position?-.5:.5)),e.save(),e.translate(l,u),e.rotate(p),e.textAlign="center",e.textBaseline="middle";var _=a.text;if(r.isArray(_))for(var k=0,w=0;w<_.length;++w)e.fillText(_[w],0,k,s),k+=g;else e.fillText(_,0,0,s);e.restore()}}}),{id:"title",beforeInit:function(t){var n=t.options.title;n&&e(t,n)},beforeUpdate:function(a){var o=a.options.title,s=a.titleBlock;o?(r.mergeIf(o,i.global.title),s?(n.configure(a,s,o),s.options=o):e(a,o)):s&&(t.layoutService.removeBox(a,s),delete a.titleBlock)}}}},{25:25,26:26,45:45}],52:[function(t,e,n){"use strict";e.exports=function(t){var e={position:"bottom"},n=t.Scale.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t=this,e=t.getLabels();t.minIndex=0,t.maxIndex=e.length-1;var n;void 0!==t.options.ticks.min&&(n=e.indexOf(t.options.ticks.min),t.minIndex=-1!==n?n:t.minIndex),void 0!==t.options.ticks.max&&(n=e.indexOf(t.options.ticks.max),t.maxIndex=-1!==n?n:t.maxIndex),t.min=e[t.minIndex],t.max=e[t.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var n=this,i=n.chart.data,a=n.isHorizontal();return i.yLabels&&!a?n.getRightValue(i.datasets[e].data[t]):n.ticks[t-n.minIndex]},getPixelForValue:function(t,e){var n,i=this,a=i.options.offset,r=Math.max(i.maxIndex+1-i.minIndex-(a?0:1),1);if(void 0!==t&&null!==t&&(n=i.isHorizontal()?t.x:t.y),void 0!==n||void 0!==t&&isNaN(e)){var o=i.getLabels();t=n||t;var s=o.indexOf(t);e=-1!==s?s:e}if(i.isHorizontal()){var l=i.width/r,u=l*(e-i.minIndex);return a&&(u+=l/2),i.left+Math.round(u)}var d=i.height/r,c=d*(e-i.minIndex);return a&&(c+=d/2),i.top+Math.round(c)},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,n=e.options.offset,i=Math.max(e._ticks.length-(n?0:1),1),a=e.isHorizontal(),r=(a?e.width:e.height)/i;return t-=a?e.left:e.top,n&&(t-=r/2),(t<=0?0:Math.round(t/r))+e.minIndex},getBasePixel:function(){return this.bottom}});t.scaleService.registerScaleType("category",n,e)}},{}],53:[function(t,e,n){"use strict";var i=t(25),a=t(45),r=t(34);e.exports=function(t){var e={position:"left",ticks:{callback:r.formatters.linear}},n=t.LinearScaleBase.extend({determineDataLimits:function(){function t(t){return o?t.xAxisID===e.id:t.yAxisID===e.id}var e=this,n=e.options,i=e.chart,r=i.data.datasets,o=e.isHorizontal();e.min=null,e.max=null;var s=n.stacked;if(void 0===s&&a.each(r,function(e,n){if(!s){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&t(a)&&void 0!==a.stack&&(s=!0)}}),n.stacked||s){var l={};a.each(r,function(r,o){var s=i.getDatasetMeta(o),u=[s.type,void 0===n.stacked&&void 0===s.stack?o:"",s.stack].join(".");void 0===l[u]&&(l[u]={positiveValues:[],negativeValues:[]});var d=l[u].positiveValues,c=l[u].negativeValues;i.isDatasetVisible(o)&&t(s)&&a.each(r.data,function(t,i){var a=+e.getRightValue(t);isNaN(a)||s.data[i].hidden||(d[i]=d[i]||0,c[i]=c[i]||0,n.relativePoints?d[i]=100:a<0?c[i]+=a:d[i]+=a)})}),a.each(l,function(t){var n=t.positiveValues.concat(t.negativeValues),i=a.min(n),r=a.max(n);e.min=null===e.min?i:Math.min(e.min,i),e.max=null===e.max?r:Math.max(e.max,r)})}else a.each(r,function(n,r){var o=i.getDatasetMeta(r);i.isDatasetVisible(r)&&t(o)&&a.each(n.data,function(t,n){var i=+e.getRightValue(t);isNaN(i)||o.data[n].hidden||(null===e.min?e.min=i:ie.max&&(e.max=i))})});e.min=isFinite(e.min)&&!isNaN(e.min)?e.min:0,e.max=isFinite(e.max)&&!isNaN(e.max)?e.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this,n=e.options.ticks;if(e.isHorizontal())t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.width/50));else{var r=a.valueOrDefault(n.fontSize,i.global.defaultFontSize);t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.height/(2*r)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e,n=this,i=n.start,a=+n.getRightValue(t),r=n.end-i;return n.isHorizontal()?(e=n.left+n.width/r*(a-i),Math.round(e)):(e=n.bottom-n.height/r*(a-i),Math.round(e))},getValueForPixel:function(t){var e=this,n=e.isHorizontal(),i=n?e.width:e.height,a=(n?t-e.left:e.bottom-t)/i;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",n,e)}},{25:25,34:34,45:45}],54:[function(t,e,n){"use strict";var i=t(45),a=t(34);e.exports=function(t){var e=i.noop;t.LinearScaleBase=t.Scale.extend({getRightValue:function(e){return"string"==typeof e?+e:t.Scale.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=i.sign(t.min),a=i.sign(t.max);n<0&&a<0?t.max=0:n>0&&a>0&&(t.min=0)}var r=void 0!==e.min||void 0!==e.suggestedMin,o=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),r!==o&&t.min>=t.max&&(r?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),r={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,stepSize:i.valueOrDefault(e.fixedStepSize,e.stepSize)},o=t.ticks=a.generators.linear(r,t);t.handleDirectionalChanges(),t.max=i.max(o),t.min=i.min(o),e.reverse?(o.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{34:34,45:45}],55:[function(t,e,n){"use strict";var i=t(45),a=t(34);e.exports=function(t){var e={position:"left",ticks:{callback:a.formatters.logarithmic}},n=t.Scale.extend({determineDataLimits:function(){function t(t){return l?t.xAxisID===e.id:t.yAxisID===e.id}var e=this,n=e.options,a=n.ticks,r=e.chart,o=r.data.datasets,s=i.valueOrDefault,l=e.isHorizontal();e.min=null,e.max=null,e.minNotZero=null;var u=n.stacked;if(void 0===u&&i.each(o,function(e,n){if(!u){var i=r.getDatasetMeta(n);r.isDatasetVisible(n)&&t(i)&&void 0!==i.stack&&(u=!0)}}),n.stacked||u){var d={};i.each(o,function(a,o){var s=r.getDatasetMeta(o),l=[s.type,void 0===n.stacked&&void 0===s.stack?o:"",s.stack].join(".");r.isDatasetVisible(o)&&t(s)&&(void 0===d[l]&&(d[l]=[]),i.each(a.data,function(t,i){var a=d[l],r=+e.getRightValue(t);isNaN(r)||s.data[i].hidden||(a[i]=a[i]||0,n.relativePoints?a[i]=100:a[i]+=r)}))}),i.each(d,function(t){var n=i.min(t),a=i.max(t);e.min=null===e.min?n:Math.min(e.min,n),e.max=null===e.max?a:Math.max(e.max,a)})}else i.each(o,function(n,a){var o=r.getDatasetMeta(a);r.isDatasetVisible(a)&&t(o)&&i.each(n.data,function(t,n){var i=+e.getRightValue(t);isNaN(i)||o.data[n].hidden||(null===e.min?e.min=i:ie.max&&(e.max=i),0!==i&&(null===e.minNotZero||ia?{start:e-n-5,end:e}:{start:e,end:e+n+5}}function l(t){var i,r,l,u=n(t),d=Math.min(t.height/2,t.width/2),c={r:t.width,l:0,t:t.height,b:0},h={};t.ctx.font=u.font,t._pointLabelSizes=[];var f=e(t);for(i=0;ic.r&&(c.r=p.end,h.r=g),v.startc.b&&(c.b=v.end,h.b=g)}t.setReductions(d,c,h)}function u(t){var e=Math.min(t.height/2,t.width/2);t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0)}function d(t){return 0===t||180===t?"center":t<180?"left":"right"}function c(t,e,n,i){if(a.isArray(e))for(var r=n.y,o=1.5*i,s=0;s270||t<90)&&(n.y-=e.h)}function f(t){var i=t.ctx,r=a.valueOrDefault,o=t.options,s=o.angleLines,l=o.pointLabels;i.lineWidth=s.lineWidth,i.strokeStyle=s.color;var u=t.getDistanceFromCenterForValue(o.ticks.reverse?t.min:t.max),f=n(t);i.textBaseline="top";for(var g=e(t)-1;g>=0;g--){if(s.display){var m=t.getPointPosition(g,u);i.beginPath(),i.moveTo(t.xCenter,t.yCenter),i.lineTo(m.x,m.y),i.stroke(),i.closePath()}if(l.display){var v=t.getPointPosition(g,u+5),y=r(l.fontColor,p.defaultFontColor);i.font=f.font,i.fillStyle=y;var b=t.getIndexAngle(g),x=a.toDegrees(b);i.textAlign=d(x),h(x,t._pointLabelSizes[g],v),c(i,t.pointLabels[g]||"",v,f.size)}}}function g(t,n,i,r){var o=t.ctx;if(o.strokeStyle=a.valueAtIndexOrDefault(n.color,r-1),o.lineWidth=a.valueAtIndexOrDefault(n.lineWidth,r-1),t.options.gridLines.circular)o.beginPath(),o.arc(t.xCenter,t.yCenter,i,0,2*Math.PI),o.closePath(),o.stroke();else{var s=e(t);if(0===s)return;o.beginPath();var l=t.getPointPosition(0,i);o.moveTo(l.x,l.y);for(var u=1;u0&&n>0?e:0)},draw:function(){var t=this,e=t.options,n=e.gridLines,i=e.ticks,r=a.valueOrDefault;if(e.display){var o=t.ctx,s=this.getIndexAngle(0),l=r(i.fontSize,p.defaultFontSize),u=r(i.fontStyle,p.defaultFontStyle),d=r(i.fontFamily,p.defaultFontFamily),c=a.fontString(l,u,d);a.each(t.ticks,function(e,a){if(a>0||i.reverse){var u=t.getDistanceFromCenterForValue(t.ticksAsNumbers[a]);if(n.display&&0!==a&&g(t,n,u,a),i.display){var d=r(i.fontColor,p.defaultFontColor);if(o.font=c,o.save(),o.translate(t.xCenter,t.yCenter),o.rotate(s),i.showLabelBackdrop){var h=o.measureText(e).width;o.fillStyle=i.backdropColor,o.fillRect(-h/2-i.backdropPaddingX,-u-l/2-i.backdropPaddingY,h+2*i.backdropPaddingX,l+2*i.backdropPaddingY)}o.textAlign="center",o.textBaseline="middle",o.fillStyle=d,o.fillText(e,0,-u),o.restore()}}}),(e.angleLines.display||e.pointLabels.display)&&f(t)}}});t.scaleService.registerScaleType("radialLinear",y,v)}},{25:25,34:34,45:45}],57:[function(t,e,n){"use strict";function i(t,e){return t-e}function a(t){var e,n,i,a={},r=[];for(e=0,n=t.length;ee&&s=0&&o<=s;){if(i=o+s>>1,a=t[i-1]||null,r=t[i],!a)return{lo:null,hi:r};if(r[e]n))return{lo:a,hi:r};s=i-1}}return{lo:r,hi:null}}function s(t,e,n,i){var a=o(t,e,n),r=a.lo?a.hi?a.lo:t[t.length-2]:t[0],s=a.lo?a.hi?a.hi:t[t.length-1]:t[1],l=s[e]-r[e],u=l?(n-r[e])/l:0,d=(s[i]-r[i])*u;return r[i]+d}function l(t,e){var n=e.parser,i=e.parser||e.format;return"function"==typeof n?n(t):"string"==typeof t&&"string"==typeof i?p(t,i):(t instanceof p||(t=p(t)),t.isValid()?t:"function"==typeof i?i(t):t)}function u(t,e){if(y.isNullOrUndef(t))return null;var n=e.options.time,i=l(e.getRightValue(t),n);return i.isValid()?(n.round&&i.startOf(n.round),i.valueOf()):null}function d(t,e,n,i){var a,r,o,s=e-t,l=_[n],u=l.size,d=l.steps;if(!d)return Math.ceil(s/((i||1)*u));for(a=0,r=d.length;a1?e[1]:i,o=e[0],l=(s(t,"time",r,"pos")-s(t,"time",o,"pos"))/2),a.time.max||(r=e[e.length-1],o=e.length>1?e[e.length-2]:n,u=(s(t,"time",r,"pos")-s(t,"time",o,"pos"))/2)),{left:l,right:u}}function m(t,e){var n,i,a,r,o=[];for(n=0,i=t.length;n=a&&n<=o&&x.push(n);return i.min=a,i.max=o,i._unit=v,i._majorUnit=y,i._minorFormat=d[v],i._majorFormat=d[y],i._table=r(i._timestamps.data,a,o,s.distribution),i._offsets=g(i._table,x,a,o,s),m(x,y)},getLabelForIndex:function(t,e){var n=this,i=n.chart.data,a=n.options.time,r=i.labels&&t=0&&tn?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=this,i=t,a=void 0===e?.5:e,r=2*a-1,o=n.alpha()-i.alpha(),s=((r*o==-1?r:(r+o)/(1+r*o))+1)/2,l=1-s;return this.rgb(s*n.red()+l*i.red(),s*n.green()+l*i.green(),s*n.blue()+l*i.blue()).alpha(n.alpha()*a+i.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new r,i=this.values,a=n.values;for(var o in i)i.hasOwnProperty(o)&&(t=i[o],"[object Array]"===(e={}.toString.call(t))?a[o]=t.slice(0):"[object Number]"===e?a[o]=t:console.error("unexpected color value:",t));return n}},r.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},r.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},r.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]}function d(t){var e,n,i,a=u(t),r=a[0],o=a[1],s=a[2];return r/=95.047,o/=100,s/=108.883,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,s=s>.008856?Math.pow(s,1/3):7.787*s+16/116,e=116*o-16,n=500*(r-o),i=200*(o-s),[e,n,i]}function c(t){var e,n,i,a,r,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return r=255*l,[r,r,r];e=2*l-(n=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var u=0;u<3;u++)(i=o+1/3*-(u-1))<0&&i++,i>1&&i--,r=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,a[u]=255*r;return a}function h(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,a=Math.floor(e)%6,r=e-Math.floor(e),o=255*i*(1-n),s=255*i*(1-n*r),l=255*i*(1-n*(1-r)),i=255*i;switch(a){case 0:return[i,l,o];case 1:return[s,i,o];case 2:return[o,i,l];case 3:return[o,s,i];case 4:return[l,o,i];case 5:return[i,o,s]}}function f(t){var e,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,u=s+l;switch(u>1&&(s/=u,l/=u),e=Math.floor(6*o),n=1-l,i=6*o-e,0!=(1&e)&&(i=1-i),a=s+i*(n-s),e){default:case 6:case 0:r=n,g=a,b=s;break;case 1:r=a,g=n,b=s;break;case 2:r=s,g=n,b=a;break;case 3:r=s,g=a,b=n;break;case 4:r=a,g=s,b=n;break;case 5:r=n,g=s,b=a}return[255*r,255*g,255*b]}function m(t){var e,n,i,a=t[0]/100,r=t[1]/100,o=t[2]/100,s=t[3]/100;return e=1-Math.min(1,a*(1-s)+s),n=1-Math.min(1,r*(1-s)+s),i=1-Math.min(1,o*(1-s)+s),[255*e,255*n,255*i]}function p(t){var e,n,i,a=t[0]/100,r=t[1]/100,o=t[2]/100;return e=3.2406*a+-1.5372*r+-.4986*o,n=-.9689*a+1.8758*r+.0415*o,i=.0557*a+-.204*r+1.057*o,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,e=Math.min(Math.max(0,e),1),n=Math.min(Math.max(0,n),1),i=Math.min(Math.max(0,i),1),[255*e,255*n,255*i]}function v(t){var e,n,i,a=t[0],r=t[1],o=t[2];return a/=95.047,r/=100,o/=108.883,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,e=116*r-16,n=500*(a-r),i=200*(r-o),[e,n,i]}function y(t){var e,n,i,a,r=t[0],o=t[1],s=t[2];return r<=8?a=(n=100*r/903.3)/100*7.787+16/116:(n=100*Math.pow((r+16)/116,3),a=Math.pow(n/100,1/3)),e=e/95.047<=.008856?e=95.047*(o/500+a-16/116)/7.787:95.047*Math.pow(o/500+a,3),i=i/108.883<=.008859?i=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3),[e,n,i]}function x(t){var e,n,i,a=t[0],r=t[1],o=t[2];return e=Math.atan2(o,r),(n=360*e/2/Math.PI)<0&&(n+=360),i=Math.sqrt(r*r+o*o),[a,i,n]}function _(t){return p(y(t))}function k(t){var e,n,i,a=t[0],r=t[1];return i=t[2]/360*2*Math.PI,e=r*Math.cos(i),n=r*Math.sin(i),[a,e,n]}function w(t){return M[t]}e.exports={rgb2hsl:i,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:s,rgb2keyword:l,rgb2xyz:u,rgb2lab:d,rgb2lch:function(t){return x(d(t))},hsl2rgb:c,hsl2hsv:function(t){var e,n,i=t[0],a=t[1]/100,r=t[2]/100;return 0===r?[0,0,0]:(r*=2,a*=r<=1?r:2-r,n=(r+a)/2,e=2*a/(r+a),[i,100*e,100*n])},hsl2hwb:function(t){return o(c(t))},hsl2cmyk:function(t){return s(c(t))},hsl2keyword:function(t){return l(c(t))},hsv2rgb:h,hsv2hsl:function(t){var e,n,i=t[0],a=t[1]/100,r=t[2]/100;return n=(2-a)*r,e=a*r,e/=n<=1?n:2-n,e=e||0,n/=2,[i,100*e,100*n]},hsv2hwb:function(t){return o(h(t))},hsv2cmyk:function(t){return s(h(t))},hsv2keyword:function(t){return l(h(t))},hwb2rgb:f,hwb2hsl:function(t){return i(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return s(f(t))},hwb2keyword:function(t){return l(f(t))},cmyk2rgb:m,cmyk2hsl:function(t){return i(m(t))},cmyk2hsv:function(t){return a(m(t))},cmyk2hwb:function(t){return o(m(t))},cmyk2keyword:function(t){return l(m(t))},keyword2rgb:w,keyword2hsl:function(t){return i(w(t))},keyword2hsv:function(t){return a(w(t))},keyword2hwb:function(t){return o(w(t))},keyword2cmyk:function(t){return s(w(t))},keyword2lab:function(t){return d(w(t))},keyword2xyz:function(t){return u(w(t))},xyz2rgb:p,xyz2lab:v,xyz2lch:function(t){return x(v(t))},lab2xyz:y,lab2rgb:_,lab2lch:x,lch2lab:k,lch2xyz:function(t){return y(k(t))},lch2rgb:function(t){return _(k(t))}};var M={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},S={};for(var D in M)S[JSON.stringify(M[D])]=D},{}],4:[function(t,e,n){var i=t(3),a=function(){return new u};for(var r in i){a[r+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),i[t](e)}}(r);var o=/(\w+)2(\w+)/.exec(r),s=o[1],l=o[2];(a[s]=a[s]||{})[l]=a[r]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var n=i[t](e);if("string"==typeof n||void 0===n)return n;for(var a=0;a0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+i}function N(t,e,n,i){var a=i;"string"==typeof i&&(a=function(){return this[i]()}),t&&(Re[t]=a),e&&(Re[e[0]]=function(){return Y(a.apply(this,arguments),e[1],e[2])}),n&&(Re[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),t)})}function z(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function B(t){var e,n,i=t.match(Ie);for(e=0,n=i.length;e=0&&Oe.test(t);)t=t.replace(Oe,function(t){return e.longDateFormat(t)||t}),Oe.lastIndex=0,n-=1;return t}function E(t,e,n){Ke[t]=D(e)?e:function(t,i){return t&&n?n:e}}function j(t,e){return d(Ke,t)?Ke[t](e._strict,e._locale):new RegExp(U(t))}function U(t){return q(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,i,a){return e||n||i||a}))}function q(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function G(t,e){var n,i=e;for("string"==typeof t&&(t=[t]),s(e)&&(i=function(t,n){n[e]=_(t)}),n=0;n=0&&isFinite(s.getFullYear())&&s.setFullYear(t),s}function at(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function rt(t,e,n){var i=7+e-n;return-((7+at(t,0,i).getUTCDay()-e)%7)+i-1}function ot(t,e,n,i,a){var r,o,s=1+7*(e-1)+(7+n-i)%7+rt(t,i,a);return s<=0?o=et(r=t-1)+s:s>et(t)?(r=t+1,o=s-et(t)):(r=t,o=s),{year:r,dayOfYear:o}}function st(t,e,n){var i,a,r=rt(t.year(),e,n),o=Math.floor((t.dayOfYear()-r-1)/7)+1;return o<1?i=o+lt(a=t.year()-1,e,n):o>lt(t.year(),e,n)?(i=o-lt(t.year(),e,n),a=t.year()+1):(a=t.year(),i=o),{week:i,year:a}}function lt(t,e,n){var i=rt(t,e,n),a=rt(t+1,e,n);return(et(t)-i+a)/7}function ut(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}function dt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function ct(t,e,n){var i,a,r,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)r=h([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===e?-1!==(a=un.call(this._weekdaysParse,o))?a:null:"ddd"===e?-1!==(a=un.call(this._shortWeekdaysParse,o))?a:null:-1!==(a=un.call(this._minWeekdaysParse,o))?a:null:"dddd"===e?-1!==(a=un.call(this._weekdaysParse,o))?a:-1!==(a=un.call(this._shortWeekdaysParse,o))?a:-1!==(a=un.call(this._minWeekdaysParse,o))?a:null:"ddd"===e?-1!==(a=un.call(this._shortWeekdaysParse,o))?a:-1!==(a=un.call(this._weekdaysParse,o))?a:-1!==(a=un.call(this._minWeekdaysParse,o))?a:null:-1!==(a=un.call(this._minWeekdaysParse,o))?a:-1!==(a=un.call(this._weekdaysParse,o))?a:-1!==(a=un.call(this._shortWeekdaysParse,o))?a:null}function ht(){function t(t,e){return e.length-t.length}var e,n,i,a,r,o=[],s=[],l=[],u=[];for(e=0;e<7;e++)n=h([2e3,1]).day(e),i=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),r=this.weekdays(n,""),o.push(i),s.push(a),l.push(r),u.push(i),u.push(a),u.push(r);for(o.sort(t),s.sort(t),l.sort(t),u.sort(t),e=0;e<7;e++)s[e]=q(s[e]),l[e]=q(l[e]),u[e]=q(u[e]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function ft(){return this.hours()%12||12}function gt(t,e){N(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function mt(t,e){return e._meridiemParse}function pt(t){return t?t.toLowerCase().replace("_","-"):t}function vt(t){for(var e,n,i,a,r=0;r0;){if(i=yt(a.slice(0,e).join("-")))return i;if(n&&n.length>=e&&k(a,n,!0)>=e-1)break;e--}r++}return null}function yt(n){var i=null;if(!Sn[n]&&void 0!==e&&e&&e.exports)try{i=kn._abbr,t("./locale/"+n),bt(i)}catch(t){}return Sn[n]}function bt(t,e){var n;return t&&(n=o(e)?_t(t):xt(t,e))&&(kn=n),kn._abbr}function xt(t,e){if(null!==e){var n=Mn;if(e.abbr=t,null!=Sn[t])S("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=Sn[t]._config;else if(null!=e.parentLocale){if(null==Sn[e.parentLocale])return Dn[e.parentLocale]||(Dn[e.parentLocale]=[]),Dn[e.parentLocale].push({name:t,config:e}),null;n=Sn[e.parentLocale]._config}return Sn[t]=new P(C(n,e)),Dn[t]&&Dn[t].forEach(function(t){xt(t.name,t.config)}),bt(t),Sn[t]}return delete Sn[t],null}function _t(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return kn;if(!i(t)){if(e=yt(t))return e;t=[t]}return vt(t)}function kt(t){var e,n=t._a;return n&&-2===g(t).overflow&&(e=n[tn]<0||n[tn]>11?tn:n[en]<1||n[en]>J(n[$e],n[tn])?en:n[nn]<0||n[nn]>24||24===n[nn]&&(0!==n[an]||0!==n[rn]||0!==n[on])?nn:n[an]<0||n[an]>59?an:n[rn]<0||n[rn]>59?rn:n[on]<0||n[on]>999?on:-1,g(t)._overflowDayOfYear&&(e<$e||e>en)&&(e=en),g(t)._overflowWeeks&&-1===e&&(e=sn),g(t)._overflowWeekday&&-1===e&&(e=ln),g(t).overflow=e),t}function wt(t){var e,n,i,a,r,o,s=t._i,l=Cn.exec(s)||Pn.exec(s);if(l){for(g(t).iso=!0,e=0,n=An.length;e10?"YYYY ":"YY "),r="HH:mm"+(n[4]?":ss":""),n[1]){var d=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][new Date(n[2]).getDay()];if(n[1].substr(0,3)!==d)return g(t).weekdayMismatch=!0,void(t._isValid=!1)}switch(n[5].length){case 2:s=0===l?" +0000":((l="YXWVUTSRQPONZABCDEFGHIKLM".indexOf(n[5][1].toUpperCase())-12)<0?" -":" +")+(""+l).replace(/^-?/,"0").match(/..$/)[0]+"00";break;case 4:s=u[n[5]];break;default:s=u[" GMT"]}n[5]=s,t._i=n.splice(1).join(""),o=" ZZ",t._f=i+a+r+o,At(t),g(t).rfc2822=!0}else t._isValid=!1}function St(t){var e=On.exec(t._i);null===e?(wt(t),!1===t._isValid&&(delete t._isValid,Mt(t),!1===t._isValid&&(delete t._isValid,n.createFromInputFallback(t)))):t._d=new Date(+e[1])}function Dt(t,e,n){return null!=t?t:null!=e?e:n}function Ct(t){var e=new Date(n.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function Pt(t){var e,n,i,a,r=[];if(!t._d){for(i=Ct(t),t._w&&null==t._a[en]&&null==t._a[tn]&&Tt(t),null!=t._dayOfYear&&(a=Dt(t._a[$e],i[$e]),(t._dayOfYear>et(a)||0===t._dayOfYear)&&(g(t)._overflowDayOfYear=!0),n=at(a,0,t._dayOfYear),t._a[tn]=n.getUTCMonth(),t._a[en]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=r[e]=i[e];for(;e<7;e++)t._a[e]=r[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[nn]&&0===t._a[an]&&0===t._a[rn]&&0===t._a[on]&&(t._nextDay=!0,t._a[nn]=0),t._d=(t._useUTC?at:it).apply(null,r),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[nn]=24)}}function Tt(t){var e,n,i,a,r,o,s,l;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)r=1,o=4,n=Dt(e.GG,t._a[$e],st(Nt(),1,4).year),i=Dt(e.W,1),((a=Dt(e.E,1))<1||a>7)&&(l=!0);else{r=t._locale._week.dow,o=t._locale._week.doy;var u=st(Nt(),r,o);n=Dt(e.gg,t._a[$e],u.year),i=Dt(e.w,u.week),null!=e.d?((a=e.d)<0||a>6)&&(l=!0):null!=e.e?(a=e.e+r,(e.e<0||e.e>6)&&(l=!0)):a=r}i<1||i>lt(n,r,o)?g(t)._overflowWeeks=!0:null!=l?g(t)._overflowWeekday=!0:(s=ot(n,i,a,r,o),t._a[$e]=s.year,t._dayOfYear=s.dayOfYear)}function At(t){if(t._f!==n.ISO_8601)if(t._f!==n.RFC_2822){t._a=[],g(t).empty=!0;var e,i,a,r,o,s=""+t._i,l=s.length,u=0;for(a=H(t._f,t._locale).match(Ie)||[],e=0;e0&&g(t).unusedInput.push(o),s=s.slice(s.indexOf(i)+i.length),u+=i.length),Re[r]?(i?g(t).empty=!1:g(t).unusedTokens.push(r),X(r,i,t)):t._strict&&!i&&g(t).unusedTokens.push(r);g(t).charsLeftOver=l-u,s.length>0&&g(t).unusedInput.push(s),t._a[nn]<=12&&!0===g(t).bigHour&&t._a[nn]>0&&(g(t).bigHour=void 0),g(t).parsedDateParts=t._a.slice(0),g(t).meridiem=t._meridiem,t._a[nn]=It(t._locale,t._a[nn],t._meridiem),Pt(t),kt(t)}else Mt(t);else wt(t)}function It(t,e,n){var i;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?((i=t.isPM(n))&&e<12&&(e+=12),i||12!==e||(e=0),e):e}function Ot(t){var e,n,i,a,r;if(0===t._f.length)return g(t).invalidFormat=!0,void(t._d=new Date(NaN));for(a=0;ar&&(e=r),oe.call(this,t,e,n,i,a))}function oe(t,e,n,i,a){var r=ot(t,e,n,i,a),o=at(r.year,0,r.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function se(t){return t}function le(t,e,n,i){var a=_t(),r=h().set(i,e);return a[n](r,t)}function ue(t,e,n){if(s(t)&&(e=t,t=void 0),t=t||"",null!=e)return le(t,e,n,"month");var i,a=[];for(i=0;i<12;i++)a[i]=le(t,i,n,"month");return a}function de(t,e,n,i){"boolean"==typeof t?(s(e)&&(n=e,e=void 0),e=e||""):(n=e=t,t=!1,s(e)&&(n=e,e=void 0),e=e||"");var a=_t(),r=t?a._week.dow:0;if(null!=n)return le(e,(n+r)%7,i,"day");var o,l=[];for(o=0;o<7;o++)l[o]=le(e,(o+r)%7,i,"day");return l}function ce(t,e,n,i){var a=Xt(e,n);return t._milliseconds+=i*a._milliseconds,t._days+=i*a._days,t._months+=i*a._months,t._bubble()}function he(t){return t<0?Math.floor(t):Math.ceil(t)}function fe(t){return 4800*t/146097}function ge(t){return 146097*t/4800}function me(t){return function(){return this.as(t)}}function pe(t){return function(){return this.isValid()?this._data[t]:NaN}}function ve(t,e,n,i,a){return a.relativeTime(e||1,!!n,t,i)}function ye(t,e,n){var i=Xt(t).abs(),a=hi(i.as("s")),r=hi(i.as("m")),o=hi(i.as("h")),s=hi(i.as("d")),l=hi(i.as("M")),u=hi(i.as("y")),d=a<=fi.ss&&["s",a]||a0,d[4]=n,ve.apply(null,d)}function be(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n,i=gi(this._milliseconds)/1e3,a=gi(this._days),r=gi(this._months);e=x((t=x(i/60))/60),i%=60,t%=60;var o=n=x(r/12),s=r%=12,l=a,u=e,d=t,c=i,h=this.asSeconds();return h?(h<0?"-":"")+"P"+(o?o+"Y":"")+(s?s+"M":"")+(l?l+"D":"")+(u||d||c?"T":"")+(u?u+"H":"")+(d?d+"M":"")+(c?c+"S":""):"P0D"}var xe,_e,ke=_e=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),n=e.length>>>0,i=0;i68?1900:2e3)};var mn=R("FullYear",!0);N("w",["ww",2],"wo","week"),N("W",["WW",2],"Wo","isoWeek"),T("week","w"),T("isoWeek","W"),O("week",5),O("isoWeek",5),E("w",Be),E("ww",Be,We),E("W",Be),E("WW",Be,We),Z(["w","ww","W","WW"],function(t,e,n,i){e[i.substr(0,1)]=_(t)});N("d",0,"do","day"),N("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),N("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),N("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),N("e",0,0,"weekday"),N("E",0,0,"isoWeekday"),T("day","d"),T("weekday","e"),T("isoWeekday","E"),O("day",11),O("weekday",11),O("isoWeekday",11),E("d",Be),E("e",Be),E("E",Be),E("dd",function(t,e){return e.weekdaysMinRegex(t)}),E("ddd",function(t,e){return e.weekdaysShortRegex(t)}),E("dddd",function(t,e){return e.weekdaysRegex(t)}),Z(["dd","ddd","dddd"],function(t,e,n,i){var a=n._locale.weekdaysParse(t,i,n._strict);null!=a?e.d=a:g(n).invalidWeekday=t}),Z(["d","e","E"],function(t,e,n,i){e[i]=_(t)});var pn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),vn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),yn="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),bn=Je,xn=Je,_n=Je;N("H",["HH",2],0,"hour"),N("h",["hh",2],0,ft),N("k",["kk",2],0,function(){return this.hours()||24}),N("hmm",0,0,function(){return""+ft.apply(this)+Y(this.minutes(),2)}),N("hmmss",0,0,function(){return""+ft.apply(this)+Y(this.minutes(),2)+Y(this.seconds(),2)}),N("Hmm",0,0,function(){return""+this.hours()+Y(this.minutes(),2)}),N("Hmmss",0,0,function(){return""+this.hours()+Y(this.minutes(),2)+Y(this.seconds(),2)}),gt("a",!0),gt("A",!1),T("hour","h"),O("hour",13),E("a",mt),E("A",mt),E("H",Be),E("h",Be),E("k",Be),E("HH",Be,We),E("hh",Be,We),E("kk",Be,We),E("hmm",Ve),E("hmmss",He),E("Hmm",Ve),E("Hmmss",He),G(["H","HH"],nn),G(["k","kk"],function(t,e,n){var i=_(t);e[nn]=24===i?0:i}),G(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),G(["h","hh"],function(t,e,n){e[nn]=_(t),g(n).bigHour=!0}),G("hmm",function(t,e,n){var i=t.length-2;e[nn]=_(t.substr(0,i)),e[an]=_(t.substr(i)),g(n).bigHour=!0}),G("hmmss",function(t,e,n){var i=t.length-4,a=t.length-2;e[nn]=_(t.substr(0,i)),e[an]=_(t.substr(i,2)),e[rn]=_(t.substr(a)),g(n).bigHour=!0}),G("Hmm",function(t,e,n){var i=t.length-2;e[nn]=_(t.substr(0,i)),e[an]=_(t.substr(i))}),G("Hmmss",function(t,e,n){var i=t.length-4,a=t.length-2;e[nn]=_(t.substr(0,i)),e[an]=_(t.substr(i,2)),e[rn]=_(t.substr(a))});var kn,wn=R("Hours",!0),Mn={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:cn,monthsShort:hn,week:{dow:0,doy:6},weekdays:pn,weekdaysMin:yn,weekdaysShort:vn,meridiemParse:/[ap]\.?m?\.?/i},Sn={},Dn={},Cn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Pn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Tn=/Z|[+-]\d\d(?::?\d\d)?/,An=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],In=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],On=/^\/?Date\((\-?\d+)/i,Fn=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;n.createFromInputFallback=M("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),n.ISO_8601=function(){},n.RFC_2822=function(){};var Rn=M("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=Nt.apply(null,arguments);return this.isValid()&&t.isValid()?tthis?this:t:p()}),Wn=["year","quarter","month","week","day","hour","minute","second","millisecond"];jt("Z",":"),jt("ZZ",""),E("Z",Xe),E("ZZ",Xe),G(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=Ut(Xe,t)});var Yn=/([\+\-]|\d\d)/gi;n.updateOffset=function(){};var Nn=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,zn=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Xt.fn=Vt.prototype,Xt.invalid=function(){return Xt(NaN)};var Bn=$t(1,"add"),Vn=$t(-1,"subtract");n.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",n.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Hn=M("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});N(0,["gg",2],0,function(){return this.weekYear()%100}),N(0,["GG",2],0,function(){return this.isoWeekYear()%100}),ae("gggg","weekYear"),ae("ggggg","weekYear"),ae("GGGG","isoWeekYear"),ae("GGGGG","isoWeekYear"),T("weekYear","gg"),T("isoWeekYear","GG"),O("weekYear",1),O("isoWeekYear",1),E("G",Ge),E("g",Ge),E("GG",Be,We),E("gg",Be,We),E("GGGG",je,Ne),E("gggg",je,Ne),E("GGGGG",Ue,ze),E("ggggg",Ue,ze),Z(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,i){e[i.substr(0,2)]=_(t)}),Z(["gg","GG"],function(t,e,i,a){e[a]=n.parseTwoDigitYear(t)}),N("Q",0,"Qo","quarter"),T("quarter","Q"),O("quarter",7),E("Q",Le),G("Q",function(t,e){e[tn]=3*(_(t)-1)}),N("D",["DD",2],"Do","date"),T("date","D"),O("date",9),E("D",Be),E("DD",Be,We),E("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),G(["D","DD"],en),G("Do",function(t,e){e[en]=_(t.match(Be)[0],10)});var En=R("Date",!0);N("DDD",["DDDD",3],"DDDo","dayOfYear"),T("dayOfYear","DDD"),O("dayOfYear",4),E("DDD",Ee),E("DDDD",Ye),G(["DDD","DDDD"],function(t,e,n){n._dayOfYear=_(t)}),N("m",["mm",2],0,"minute"),T("minute","m"),O("minute",14),E("m",Be),E("mm",Be,We),G(["m","mm"],an);var jn=R("Minutes",!1);N("s",["ss",2],0,"second"),T("second","s"),O("second",15),E("s",Be),E("ss",Be,We),G(["s","ss"],rn);var Un=R("Seconds",!1);N("S",0,0,function(){return~~(this.millisecond()/100)}),N(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),N(0,["SSS",3],0,"millisecond"),N(0,["SSSS",4],0,function(){return 10*this.millisecond()}),N(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),N(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),N(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),N(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),N(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),T("millisecond","ms"),O("millisecond",16),E("S",Ee,Le),E("SS",Ee,We),E("SSS",Ee,Ye);var qn;for(qn="SSSS";qn.length<=9;qn+="S")E(qn,qe);for(qn="S";qn.length<=9;qn+="S")G(qn,function(t,e){e[on]=_(1e3*("0."+t))});var Gn=R("Milliseconds",!1);N("z",0,0,"zoneAbbr"),N("zz",0,0,"zoneName");var Zn=y.prototype;Zn.add=Bn,Zn.calendar=function(t,e){var i=t||Nt(),a=qt(i,this).startOf("day"),r=n.calendarFormat(this,a)||"sameElse",o=e&&(D(e[r])?e[r].call(this,i):e[r]);return this.format(o||this.localeData().calendar(r,this,Nt(i)))},Zn.clone=function(){return new y(this)},Zn.diff=function(t,e,n){var i,a,r,o;return this.isValid()&&(i=qt(t,this)).isValid()?(a=6e4*(i.utcOffset()-this.utcOffset()),"year"===(e=A(e))||"month"===e||"quarter"===e?(o=ee(this,i),"quarter"===e?o/=3:"year"===e&&(o/=12)):(r=this-i,o="second"===e?r/1e3:"minute"===e?r/6e4:"hour"===e?r/36e5:"day"===e?(r-a)/864e5:"week"===e?(r-a)/6048e5:r),n?o:x(o)):NaN},Zn.endOf=function(t){return void 0===(t=A(t))||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))},Zn.format=function(t){t||(t=this.isUtc()?n.defaultFormatUtc:n.defaultFormat);var e=V(this,t);return this.localeData().postformat(e)},Zn.from=function(t,e){return this.isValid()&&(b(t)&&t.isValid()||Nt(t).isValid())?Xt({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},Zn.fromNow=function(t){return this.from(Nt(),t)},Zn.to=function(t,e){return this.isValid()&&(b(t)&&t.isValid()||Nt(t).isValid())?Xt({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},Zn.toNow=function(t){return this.to(Nt(),t)},Zn.get=function(t){return t=A(t),D(this[t])?this[t]():this},Zn.invalidAt=function(){return g(this).overflow},Zn.isAfter=function(t,e){var n=b(t)?t:Nt(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=A(o(e)?"millisecond":e))?this.valueOf()>n.valueOf():n.valueOf()9999?V(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):D(Date.prototype.toISOString)?this.toDate().toISOString():V(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},Zn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a=e+'[")]';return this.format(n+i+"-MM-DD[T]HH:mm:ss.SSS"+a)},Zn.toJSON=function(){return this.isValid()?this.toISOString():null},Zn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Zn.unix=function(){return Math.floor(this.valueOf()/1e3)},Zn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Zn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Zn.year=mn,Zn.isLeapYear=function(){return nt(this.year())},Zn.weekYear=function(t){return re.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Zn.isoWeekYear=function(t){return re.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},Zn.quarter=Zn.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},Zn.month=$,Zn.daysInMonth=function(){return J(this.year(),this.month())},Zn.week=Zn.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},Zn.isoWeek=Zn.isoWeeks=function(t){var e=st(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},Zn.weeksInYear=function(){var t=this.localeData()._week;return lt(this.year(),t.dow,t.doy)},Zn.isoWeeksInYear=function(){return lt(this.year(),1,4)},Zn.date=En,Zn.day=Zn.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ut(t,this.localeData()),this.add(t-e,"d")):e},Zn.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},Zn.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=dt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},Zn.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},Zn.hour=Zn.hours=wn,Zn.minute=Zn.minutes=jn,Zn.second=Zn.seconds=Un,Zn.millisecond=Zn.milliseconds=Gn,Zn.utcOffset=function(t,e,i){var a,r=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=Ut(Xe,t)))return this}else Math.abs(t)<16&&!i&&(t*=60);return!this._isUTC&&e&&(a=Gt(this)),this._offset=t,this._isUTC=!0,null!=a&&this.add(a,"m"),r!==t&&(!e||this._changeInProgress?te(this,Xt(t-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,n.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?r:Gt(this)},Zn.utc=function(t){return this.utcOffset(0,t)},Zn.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Gt(this),"m")),this},Zn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=Ut(Ze,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},Zn.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Nt(t).utcOffset():0,(this.utcOffset()-t)%60==0)},Zn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Zn.isLocal=function(){return!!this.isValid()&&!this._isUTC},Zn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Zn.isUtc=Zt,Zn.isUTC=Zt,Zn.zoneAbbr=function(){return this._isUTC?"UTC":""},Zn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},Zn.dates=M("dates accessor is deprecated. Use date instead.",En),Zn.months=M("months accessor is deprecated. Use month instead",$),Zn.years=M("years accessor is deprecated. Use year instead",mn),Zn.zone=M("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),Zn.isDSTShifted=M("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),(t=Lt(t))._a){var e=t._isUTC?h(t._a):Nt(t._a);this._isDSTShifted=this.isValid()&&k(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var Xn=P.prototype;Xn.calendar=function(t,e,n){var i=this._calendar[t]||this._calendar.sameElse;return D(i)?i.call(e,n):i},Xn.longDateFormat=function(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])},Xn.invalidDate=function(){return this._invalidDate},Xn.ordinal=function(t){return this._ordinal.replace("%d",t)},Xn.preparse=se,Xn.postformat=se,Xn.relativeTime=function(t,e,n,i){var a=this._relativeTime[n];return D(a)?a(t,e,n,i):a.replace(/%d/i,t)},Xn.pastFuture=function(t,e){var n=this._relativeTime[t>0?"future":"past"];return D(n)?n(e):n.replace(/%s/i,e)},Xn.set=function(t){var e,n;for(n in t)D(e=t[n])?this[n]=e:this["_"+n]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},Xn.months=function(t,e){return t?i(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||dn).test(e)?"format":"standalone"][t.month()]:i(this._months)?this._months:this._months.standalone},Xn.monthsShort=function(t,e){return t?i(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[dn.test(e)?"format":"standalone"][t.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Xn.monthsParse=function(t,e,n){var i,a,r;if(this._monthsParseExact)return K.call(this,t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(a=h([2e3,i]),n&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[i]||(r="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[i]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(n&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!n&&this._monthsParse[i].test(t))return i}},Xn.monthsRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||tt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(d(this,"_monthsRegex")||(this._monthsRegex=gn),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},Xn.monthsShortRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||tt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,"_monthsShortRegex")||(this._monthsShortRegex=fn),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},Xn.week=function(t){return st(t,this._week.dow,this._week.doy).week},Xn.firstDayOfYear=function(){return this._week.doy},Xn.firstDayOfWeek=function(){return this._week.dow},Xn.weekdays=function(t,e){return t?i(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone},Xn.weekdaysMin=function(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin},Xn.weekdaysShort=function(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort},Xn.weekdaysParse=function(t,e,n){var i,a,r;if(this._weekdaysParseExact)return ct.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(a=h([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(a,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(a,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(a,"").replace(".",".?")+"$","i")),this._weekdaysParse[i]||(r="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[i]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(n&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(n&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!n&&this._weekdaysParse[i].test(t))return i}},Xn.weekdaysRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||ht.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=bn),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},Xn.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||ht.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=xn),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Xn.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||ht.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=_n),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Xn.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},Xn.meridiem=function(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"},bt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===_(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),n.lang=M("moment.lang is deprecated. Use moment.locale instead.",bt),n.langData=M("moment.langData is deprecated. Use moment.localeData instead.",_t);var Jn=Math.abs,Kn=me("ms"),Qn=me("s"),$n=me("m"),ti=me("h"),ei=me("d"),ni=me("w"),ii=me("M"),ai=me("y"),ri=pe("milliseconds"),oi=pe("seconds"),si=pe("minutes"),li=pe("hours"),ui=pe("days"),di=pe("months"),ci=pe("years"),hi=Math.round,fi={ss:44,s:45,m:45,h:22,d:26,M:11},gi=Math.abs,mi=Vt.prototype;return mi.isValid=function(){return this._isValid},mi.abs=function(){var t=this._data;return this._milliseconds=Jn(this._milliseconds),this._days=Jn(this._days),this._months=Jn(this._months),t.milliseconds=Jn(t.milliseconds),t.seconds=Jn(t.seconds),t.minutes=Jn(t.minutes),t.hours=Jn(t.hours),t.months=Jn(t.months),t.years=Jn(t.years),this},mi.add=function(t,e){return ce(this,t,e,1)},mi.subtract=function(t,e){return ce(this,t,e,-1)},mi.as=function(t){if(!this.isValid())return NaN;var e,n,i=this._milliseconds;if("month"===(t=A(t))||"year"===t)return e=this._days+i/864e5,n=this._months+fe(e),"month"===t?n:n/12;switch(e=this._days+Math.round(ge(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}},mi.asMilliseconds=Kn,mi.asSeconds=Qn,mi.asMinutes=$n,mi.asHours=ti,mi.asDays=ei,mi.asWeeks=ni,mi.asMonths=ii,mi.asYears=ai,mi.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12):NaN},mi._bubble=function(){var t,e,n,i,a,r=this._milliseconds,o=this._days,s=this._months,l=this._data;return r>=0&&o>=0&&s>=0||r<=0&&o<=0&&s<=0||(r+=864e5*he(ge(s)+o),o=0,s=0),l.milliseconds=r%1e3,t=x(r/1e3),l.seconds=t%60,e=x(t/60),l.minutes=e%60,n=x(e/60),l.hours=n%24,o+=x(n/24),a=x(fe(o)),s+=a,o-=he(ge(a)),i=x(s/12),s%=12,l.days=o,l.months=s,l.years=i,this},mi.get=function(t){return t=A(t),this.isValid()?this[t+"s"]():NaN},mi.milliseconds=ri,mi.seconds=oi,mi.minutes=si,mi.hours=li,mi.days=ui,mi.weeks=function(){return x(this.days()/7)},mi.months=di,mi.years=ci,mi.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=ye(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)},mi.toISOString=be,mi.toString=be,mi.toJSON=be,mi.locale=ne,mi.localeData=ie,mi.toIsoString=M("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",be),mi.lang=Hn,N("X",0,0,"unix"),N("x",0,0,"valueOf"),E("x",Ge),E("X",/[+-]?\d+(\.\d{1,3})?/),G("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),G("x",function(t,e,n){n._d=new Date(_(t))}),n.version="2.18.1",function(t){xe=t}(Nt),n.fn=Zn,n.min=function(){return zt("isBefore",[].slice.call(arguments,0))},n.max=function(){return zt("isAfter",[].slice.call(arguments,0))},n.now=function(){return Date.now?Date.now():+new Date},n.utc=h,n.unix=function(t){return Nt(1e3*t)},n.months=function(t,e){return ue(t,e,"months")},n.isDate=l,n.locale=bt,n.invalid=p,n.duration=Xt,n.isMoment=b,n.weekdays=function(t,e,n){return de(t,e,n,"weekdays")},n.parseZone=function(){return Nt.apply(null,arguments).parseZone()},n.localeData=_t,n.isDuration=Ht,n.monthsShort=function(t,e){return ue(t,e,"monthsShort")},n.weekdaysMin=function(t,e,n){return de(t,e,n,"weekdaysMin")},n.defineLocale=xt,n.updateLocale=function(t,e){if(null!=e){var n,i=Mn;null!=Sn[t]&&(i=Sn[t]._config),(n=new P(e=C(i,e))).parentLocale=Sn[t],Sn[t]=n,bt(t)}else null!=Sn[t]&&(null!=Sn[t].parentLocale?Sn[t]=Sn[t].parentLocale:null!=Sn[t]&&delete Sn[t]);return Sn[t]},n.locales=function(){return Pe(Sn)},n.weekdaysShort=function(t,e,n){return de(t,e,n,"weekdaysShort")},n.normalizeUnits=A,n.relativeTimeRounding=function(t){return void 0===t?hi:"function"==typeof t&&(hi=t,!0)},n.relativeTimeThreshold=function(t,e){return void 0!==fi[t]&&(void 0===e?fi[t]:(fi[t]=e,"s"===t&&(fi.ss=e-1),!0))},n.calendarFormat=function(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},n.prototype=Zn,n})},{}],7:[function(t,e,n){var i=t(29)();i.helpers=t(45),t(27)(i),i.defaults=t(25),i.Element=t(26),i.elements=t(40),i.Interaction=t(28),i.platform=t(48),t(31)(i),t(22)(i),t(23)(i),t(24)(i),t(30)(i),t(33)(i),t(32)(i),t(35)(i),t(54)(i),t(52)(i),t(53)(i),t(55)(i),t(56)(i),t(57)(i),t(15)(i),t(16)(i),t(17)(i),t(18)(i),t(19)(i),t(20)(i),t(21)(i),t(8)(i),t(9)(i),t(10)(i),t(11)(i),t(12)(i),t(13)(i),t(14)(i);var a=[];a.push(t(49)(i),t(50)(i),t(51)(i)),i.plugins.register(a),i.platform.initialize(),e.exports=i,"undefined"!=typeof window&&(window.Chart=i),i.canvasHelpers=i.helpers.canvas},{10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,35:35,40:40,45:45,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,8:8,9:9}],8:[function(t,e,n){"use strict";e.exports=function(t){t.Bar=function(e,n){return n.type="bar",new t(e,n)}}},{}],9:[function(t,e,n){"use strict";e.exports=function(t){t.Bubble=function(e,n){return n.type="bubble",new t(e,n)}}},{}],10:[function(t,e,n){"use strict";e.exports=function(t){t.Doughnut=function(e,n){return n.type="doughnut",new t(e,n)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t){t.Line=function(e,n){return n.type="line",new t(e,n)}}},{}],12:[function(t,e,n){"use strict";e.exports=function(t){t.PolarArea=function(e,n){return n.type="polarArea",new t(e,n)}}},{}],13:[function(t,e,n){"use strict";e.exports=function(t){t.Radar=function(e,n){return n.type="radar",new t(e,n)}}},{}],14:[function(t,e,n){"use strict";e.exports=function(t){t.Scatter=function(e,n){return n.type="scatter",new t(e,n)}}},{}],15:[function(t,e,n){"use strict";var i=t(25),a=t(40),r=t(45);i._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),i._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var n="";return t.length>0&&(t[0].yLabel?n=t[0].yLabel:e.labels.length>0&&t[0].index=0&&a>0)&&(p+=a));return r=c.getPixelForValue(p),o=c.getPixelForValue(p+f),s=(o-r)/2,{size:s,base:r,head:o,center:o+s/2}},calculateBarIndexPixels:function(t,e,n){var i,a,o,s,l,u,d=this,c=n.scale.options,h=d.getStackIndex(t),f=n.pixels,g=f[e],m=f.length,p=n.start,v=n.end;return 1===m?(i=g>p?g-p:v-g,a=g0&&(i=(g-f[e-1])/2,e===m-1&&(a=i)),e');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var r=0;r'),a[r]&&e.push(a[r]),e.push("");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var a=t.getDatasetMeta(0),o=e.datasets[0],s=a.data[i],l=s&&s.custom||{},u=r.valueAtIndexOrDefault,d=t.options.elements.arc;return{text:n,fillStyle:l.backgroundColor?l.backgroundColor:u(o.backgroundColor,i,d.backgroundColor),strokeStyle:l.borderColor?l.borderColor:u(o.borderColor,i,d.borderColor),lineWidth:l.borderWidth?l.borderWidth:u(o.borderWidth,i,d.borderWidth),hidden:isNaN(o.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,a,r=e.index,o=this.chart;for(n=0,i=(o.data.datasets||[]).length;n=Math.PI?-1:g<-Math.PI?1:0))+f,p={x:Math.cos(g),y:Math.sin(g)},v={x:Math.cos(m),y:Math.sin(m)},y=g<=0&&m>=0||g<=2*Math.PI&&2*Math.PI<=m,b=g<=.5*Math.PI&&.5*Math.PI<=m||g<=2.5*Math.PI&&2.5*Math.PI<=m,x=g<=-Math.PI&&-Math.PI<=m||g<=Math.PI&&Math.PI<=m,_=g<=.5*-Math.PI&&.5*-Math.PI<=m||g<=1.5*Math.PI&&1.5*Math.PI<=m,k=h/100,w={x:x?-1:Math.min(p.x*(p.x<0?1:k),v.x*(v.x<0?1:k)),y:_?-1:Math.min(p.y*(p.y<0?1:k),v.y*(v.y<0?1:k))},M={x:y?1:Math.max(p.x*(p.x>0?1:k),v.x*(v.x>0?1:k)),y:b?1:Math.max(p.y*(p.y>0?1:k),v.y*(v.y>0?1:k))},S={width:.5*(M.x-w.x),height:.5*(M.y-w.y)};u=Math.min(s/S.width,l/S.height),d={x:-.5*(M.x+w.x),y:-.5*(M.y+w.y)}}n.borderWidth=e.getMaxBorderWidth(c.data),n.outerRadius=Math.max((u-n.borderWidth)/2,0),n.innerRadius=Math.max(h?n.outerRadius/100*h:0,0),n.radiusLength=(n.outerRadius-n.innerRadius)/n.getVisibleDatasetCount(),n.offsetX=d.x*n.outerRadius,n.offsetY=d.y*n.outerRadius,c.total=e.calculateTotal(),e.outerRadius=n.outerRadius-n.radiusLength*e.getRingIndex(e.index),e.innerRadius=Math.max(e.outerRadius-n.radiusLength,0),r.each(c.data,function(n,i){e.updateElement(n,i,t)})},updateElement:function(t,e,n){var i=this,a=i.chart,o=a.chartArea,s=a.options,l=s.animation,u=(o.left+o.right)/2,d=(o.top+o.bottom)/2,c=s.rotation,h=s.rotation,f=i.getDataset(),g=n&&l.animateRotate?0:t.hidden?0:i.calculateCircumference(f.data[e])*(s.circumference/(2*Math.PI)),m=n&&l.animateScale?0:i.innerRadius,p=n&&l.animateScale?0:i.outerRadius,v=r.valueAtIndexOrDefault;r.extend(t,{_datasetIndex:i.index,_index:e,_model:{x:u+a.offsetX,y:d+a.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:p,innerRadius:m,label:v(f.label,e,a.data.labels[e])}});var y=t._model;this.removeHoverStyle(t),n&&l.animateRotate||(y.startAngle=0===e?s.rotation:i.getMeta().data[e-1]._model.endAngle,y.endAngle=y.startAngle+y.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,e=this.getDataset(),n=this.getMeta(),i=0;return r.each(n.data,function(n,a){t=e.data[a],isNaN(t)||n.hidden||(i+=Math.abs(t))}),i},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(t/e):0},getMaxBorderWidth:function(t){for(var e,n,i=0,a=this.index,r=t.length,o=0;o(i=e>i?e:i)?n:i;return i}})}},{25:25,40:40,45:45}],18:[function(t,e,n){"use strict";var i=t(25),a=t(40),r=t(45);i._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),e.exports=function(t){function e(t,e){return r.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(t){var n,i,a,o=this,s=o.getMeta(),l=s.dataset,u=s.data||[],d=o.chart.options,c=d.elements.line,h=o.getScaleForId(s.yAxisID),f=o.getDataset(),g=e(f,d);for(g&&(a=l.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),l._scale=h,l._datasetIndex=o.index,l._children=u,l._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps,tension:a.tension?a.tension:r.valueOrDefault(f.lineTension,c.tension),backgroundColor:a.backgroundColor?a.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:a.borderWidth?a.borderWidth:f.borderWidth||c.borderWidth,borderColor:a.borderColor?a.borderColor:f.borderColor||c.borderColor,borderCapStyle:a.borderCapStyle?a.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:a.borderDash?a.borderDash:f.borderDash||c.borderDash,borderDashOffset:a.borderDashOffset?a.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:a.borderJoinStyle?a.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:a.fill?a.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:a.steppedLine?a.steppedLine:r.valueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:a.cubicInterpolationMode?a.cubicInterpolationMode:r.valueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode)},l.pivot()),n=0,i=u.length;n');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var r=0;r'),a[r]&&e.push(a[r]),e.push("");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var a=t.getDatasetMeta(0),o=e.datasets[0],s=a.data[i].custom||{},l=r.valueAtIndexOrDefault,u=t.options.elements.arc;return{text:n,fillStyle:s.backgroundColor?s.backgroundColor:l(o.backgroundColor,i,u.backgroundColor),strokeStyle:s.borderColor?s.borderColor:l(o.borderColor,i,u.borderColor),lineWidth:s.borderWidth?s.borderWidth:l(o.borderWidth,i,u.borderWidth),hidden:isNaN(o.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,a,r=e.index,o=this.chart;for(n=0,i=(o.data.datasets||[]).length;n0&&!isNaN(t)?2*Math.PI/e:0}})}},{25:25,40:40,45:45}],20:[function(t,e,n){"use strict";var i=t(25),a=t(40),r=t(45);i._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),e.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,linkScales:r.noop,update:function(t){var e=this,n=e.getMeta(),i=n.dataset,a=n.data,o=i.custom||{},s=e.getDataset(),l=e.chart.options.elements.line,u=e.chart.scale;void 0!==s.tension&&void 0===s.lineTension&&(s.lineTension=s.tension),r.extend(n.dataset,{_datasetIndex:e.index,_scale:u,_children:a,_loop:!0,_model:{tension:o.tension?o.tension:r.valueOrDefault(s.lineTension,l.tension),backgroundColor:o.backgroundColor?o.backgroundColor:s.backgroundColor||l.backgroundColor,borderWidth:o.borderWidth?o.borderWidth:s.borderWidth||l.borderWidth,borderColor:o.borderColor?o.borderColor:s.borderColor||l.borderColor,fill:o.fill?o.fill:void 0!==s.fill?s.fill:l.fill,borderCapStyle:o.borderCapStyle?o.borderCapStyle:s.borderCapStyle||l.borderCapStyle,borderDash:o.borderDash?o.borderDash:s.borderDash||l.borderDash,borderDashOffset:o.borderDashOffset?o.borderDashOffset:s.borderDashOffset||l.borderDashOffset,borderJoinStyle:o.borderJoinStyle?o.borderJoinStyle:s.borderJoinStyle||l.borderJoinStyle}}),n.dataset.pivot(),r.each(a,function(n,i){e.updateElement(n,i,t)},e),e.updateBezierControlPoints()},updateElement:function(t,e,n){var i=this,a=t.custom||{},o=i.getDataset(),s=i.chart.scale,l=i.chart.options.elements.point,u=s.getPointPositionForValue(e,o.data[e]);void 0!==o.radius&&void 0===o.pointRadius&&(o.pointRadius=o.radius),void 0!==o.hitRadius&&void 0===o.pointHitRadius&&(o.pointHitRadius=o.hitRadius),r.extend(t,{_datasetIndex:i.index,_index:e,_scale:s,_model:{x:n?s.xCenter:u.x,y:n?s.yCenter:u.y,tension:a.tension?a.tension:r.valueOrDefault(o.lineTension,i.chart.options.elements.line.tension),radius:a.radius?a.radius:r.valueAtIndexOrDefault(o.pointRadius,e,l.radius),backgroundColor:a.backgroundColor?a.backgroundColor:r.valueAtIndexOrDefault(o.pointBackgroundColor,e,l.backgroundColor),borderColor:a.borderColor?a.borderColor:r.valueAtIndexOrDefault(o.pointBorderColor,e,l.borderColor),borderWidth:a.borderWidth?a.borderWidth:r.valueAtIndexOrDefault(o.pointBorderWidth,e,l.borderWidth),pointStyle:a.pointStyle?a.pointStyle:r.valueAtIndexOrDefault(o.pointStyle,e,l.pointStyle),hitRadius:a.hitRadius?a.hitRadius:r.valueAtIndexOrDefault(o.pointHitRadius,e,l.hitRadius)}}),t._model.skip=a.skip?a.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,e=this.getMeta();r.each(e.data,function(n,i){var a=n._model,o=r.splineCurve(r.previousItem(e.data,i,!0)._model,a,r.nextItem(e.data,i,!0)._model,a.tension);a.controlPointPreviousX=Math.max(Math.min(o.previous.x,t.right),t.left),a.controlPointPreviousY=Math.max(Math.min(o.previous.y,t.bottom),t.top),a.controlPointNextX=Math.max(Math.min(o.next.x,t.right),t.left),a.controlPointNextY=Math.max(Math.min(o.next.y,t.bottom),t.top),n.pivot()})},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model;a.radius=n.hoverRadius?n.hoverRadius:r.valueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),a.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:r.valueAtIndexOrDefault(e.pointHoverBackgroundColor,i,r.getHoverColor(a.backgroundColor)),a.borderColor=n.hoverBorderColor?n.hoverBorderColor:r.valueAtIndexOrDefault(e.pointHoverBorderColor,i,r.getHoverColor(a.borderColor)),a.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:r.valueAtIndexOrDefault(e.pointHoverBorderWidth,i,a.borderWidth)},removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model,o=this.chart.options.elements.point;a.radius=n.radius?n.radius:r.valueAtIndexOrDefault(e.pointRadius,i,o.radius),a.backgroundColor=n.backgroundColor?n.backgroundColor:r.valueAtIndexOrDefault(e.pointBackgroundColor,i,o.backgroundColor),a.borderColor=n.borderColor?n.borderColor:r.valueAtIndexOrDefault(e.pointBorderColor,i,o.borderColor),a.borderWidth=n.borderWidth?n.borderWidth:r.valueAtIndexOrDefault(e.pointBorderWidth,i,o.borderWidth)}})}},{25:25,40:40,45:45}],21:[function(t,e,n){"use strict";t(25)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}),e.exports=function(t){t.controllers.scatter=t.controllers.line}},{25:25}],22:[function(t,e,n){"use strict";var i=t(25),a=t(26),r=t(45);i._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:r.noop,onComplete:r.noop}}),e.exports=function(t){t.Animation=a.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,n,i){var a,r,o=this.animations;for(e.chart=t,i||(t.animating=!0),a=0,r=o.length;a1&&(n=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+n);var i=Date.now();t.dropFrames+=(i-e)/t.frameDuration,t.animations.length>0&&t.requestAnimationFrame()},advance:function(t){for(var e,n,i=this.animations,a=0;a=e.numSteps?(r.callback(e.onAnimationComplete,[e],n),n.animating=!1,i.splice(a,1)):++a}},Object.defineProperty(t.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(t.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}})}},{25:25,26:26,45:45}],23:[function(t,e,n){"use strict";var i=t(25),a=t(45),r=t(28),o=t(48);e.exports=function(t){function e(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=a.configMerge(i.global,i[t.type],t.options||{}),t}function n(t){var e=t.options;e.scale?t.scale.options=e.scale:e.scales&&e.scales.xAxes.concat(e.scales.yAxes).forEach(function(e){t.scales[e.id].options=e}),t.tooltip._options=e.tooltips}function s(t){return"top"===t||"bottom"===t}var l=t.plugins;t.types={},t.instances={},t.controllers={},a.extend(t.prototype,{construct:function(n,i){var r=this;i=e(i);var s=o.acquireContext(n,i),l=s&&s.canvas,u=l&&l.height,d=l&&l.width;r.id=a.uid(),r.ctx=s,r.canvas=l,r.config=i,r.width=d,r.height=u,r.aspectRatio=u?d/u:null,r.options=i.options,r._bufferedRender=!1,r.chart=r,r.controller=r,t.instances[r.id]=r,Object.defineProperty(r,"data",{get:function(){return r.config.data},set:function(t){r.config.data=t}}),s&&l?(r.initialize(),r.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return l.notify(t,"beforeInit"),a.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildScales(),t.initToolTip(),l.notify(t,"afterInit"),t},clear:function(){return a.canvas.clear(this),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,i=e.canvas,r=n.maintainAspectRatio&&e.aspectRatio||null,o=Math.max(0,Math.floor(a.getMaximumWidth(i))),s=Math.max(0,Math.floor(r?o/r:a.getMaximumHeight(i)));if((e.width!==o||e.height!==s)&&(i.width=e.width=o,i.height=e.height=s,i.style.width=o+"px",i.style.height=s+"px",a.retinaScale(e,n.devicePixelRatio),!t)){var u={width:o,height:s};l.notify(e,"resize",[u]),e.options.onResize&&e.options.onResize(e,u),e.stop(),e.update(e.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;a.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),a.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),n&&(n.id=n.id||"scale")},buildScales:function(){var e=this,n=e.options,i=e.scales={},r=[];n.scales&&(r=r.concat((n.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(n.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),n.scale&&r.push({options:n.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),a.each(r,function(n){var r=n.options,o=a.valueOrDefault(r.type,n.dtype),l=t.scaleService.getScaleConstructor(o);if(l){s(r.position)!==s(n.dposition)&&(r.position=n.dposition);var u=new l({id:r.id,options:r,ctx:e.ctx,chart:e});i[u.id]=u,u.mergeTicksOptions(),n.isDefault&&(e.scale=u)}}),t.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e=this,n=[],i=[];return a.each(e.data.datasets,function(a,r){var o=e.getDatasetMeta(r),s=a.type||e.config.type;if(o.type&&o.type!==s&&(e.destroyDatasetMeta(r),o=e.getDatasetMeta(r)),o.type=s,n.push(o.type),o.controller)o.controller.updateIndex(r);else{var l=t.controllers[o.type];if(void 0===l)throw new Error('"'+o.type+'" is not a chart type.');o.controller=new l(e,r),i.push(o.controller)}},e),i},resetElements:function(){var t=this;a.each(t.data.datasets,function(e,n){t.getDatasetMeta(n).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),n(e),!1!==l.notify(e,"beforeUpdate")){e.tooltip._data=e.data;var i=e.buildOrUpdateControllers();a.each(e.data.datasets,function(t,n){e.getDatasetMeta(n).controller.buildOrUpdateElements()},e),e.updateLayout(),a.each(i,function(t){t.reset()}),e.updateDatasets(),e.tooltip.initialize(),e.lastActive=[],l.notify(e,"afterUpdate"),e._bufferedRender?e._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:e.render(t)}},updateLayout:function(){var e=this;!1!==l.notify(e,"beforeLayout")&&(t.layoutService.update(this,this.width,this.height),l.notify(e,"afterScaleUpdate"),l.notify(e,"afterLayout"))},updateDatasets:function(){var t=this;if(!1!==l.notify(t,"beforeDatasetsUpdate")){for(var e=0,n=t.data.datasets.length;e=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);l.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this,i=n.getDatasetMeta(t),a={meta:i,index:t,easingValue:e};!1!==l.notify(n,"beforeDatasetDraw",[a])&&(i.controller.draw(e),l.notify(n,"afterDatasetDraw",[a]))},_drawTooltip:function(t){var e=this,n=e.tooltip,i={tooltip:n,easingValue:t};!1!==l.notify(e,"beforeTooltipDraw",[i])&&(n.draw(),l.notify(e,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return r.modes.single(this,t)},getElementsAtEvent:function(t){return r.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return r.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var i=r.modes[e];return"function"==typeof i?i(this,t,n):[]},getDatasetAtEvent:function(t){return r.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this,n=e.data.datasets[t];n._meta||(n._meta={});var i=n._meta[e.id];return i||(i=n._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e0||(a.forEach(function(e){delete t[e]}),delete t._chartjs)}}var a=["push","pop","shift","splice","unshift"];t.DatasetController=function(t,e){this.initialize(t,e)},i.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null===e.xAxisID&&(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null===e.yAxisID&&(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&n(this._data,this)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,n=e.dataElementType;return n&&new n({_chart:e.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,n=this,i=n.getMeta(),a=n.getDataset().data||[],r=i.data;for(t=0,e=a.length;ti&&t.insertElements(i,a-i)},insertElements:function(t,e){for(var n=0;n=n[e].length&&n[e].push({}),!n[e][o].type||l.type&&l.type!==n[e][o].type?r.merge(n[e][o],[t.scaleService.getScaleDefaults(s),l]):r.merge(n[e][o],l)}else r._merger(e,n,i,a)}})},r.where=function(t,e){if(r.isArray(t)&&Array.prototype.filter)return t.filter(e);var n=[];return r.each(t,function(t){e(t)&&n.push(t)}),n},r.findIndex=Array.prototype.findIndex?function(t,e,n){return t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var i=0,a=t.length;i=0;i--){var a=t[i];if(e(a))return a}},r.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},r.almostEquals=function(t,e,n){return Math.abs(t-e)t},r.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},r.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},r.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},r.log10=Math.log10?function(t){return Math.log10(t)}:function(t){return Math.log(t)/Math.LN10},r.toRadians=function(t){return t*(Math.PI/180)},r.toDegrees=function(t){return t*(180/Math.PI)},r.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),r=Math.atan2(i,n);return r<-.5*Math.PI&&(r+=2*Math.PI),{angle:r,distance:a}},r.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},r.aliasPixel=function(t){return t%2==0?0:.5},r.splineCurve=function(t,e,n,i){var a=t.skip?e:t,r=e,o=n.skip?e:n,s=Math.sqrt(Math.pow(r.x-a.x,2)+Math.pow(r.y-a.y,2)),l=Math.sqrt(Math.pow(o.x-r.x,2)+Math.pow(o.y-r.y,2)),u=s/(s+l),d=l/(s+l),c=i*(u=isNaN(u)?0:u),h=i*(d=isNaN(d)?0:d);return{previous:{x:r.x-c*(o.x-a.x),y:r.y-c*(o.y-a.y)},next:{x:r.x+h*(o.x-a.x),y:r.y+h*(o.y-a.y)}}},r.EPSILON=Number.EPSILON||1e-14,r.splineCurveMonotone=function(t){var e,n,i,a,o=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),s=o.length;for(e=0;e0?o[e-1]:null,(a=e0?o[e-1]:null,a=e=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},r.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},r.niceNum=function(t,e){var n=Math.floor(r.log10(t)),i=t/Math.pow(10,n);return(e?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},r.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},r.getRelativePosition=function(t,e){var n,i,a=t.originalEvent||t,o=t.currentTarget||t.srcElement,s=o.getBoundingClientRect(),l=a.touches;l&&l.length>0?(n=l[0].clientX,i=l[0].clientY):(n=a.clientX,i=a.clientY);var u=parseFloat(r.getStyle(o,"padding-left")),d=parseFloat(r.getStyle(o,"padding-top")),c=parseFloat(r.getStyle(o,"padding-right")),h=parseFloat(r.getStyle(o,"padding-bottom")),f=s.right-s.left-u-c,g=s.bottom-s.top-d-h;return n=Math.round((n-s.left-u)/f*o.width/e.currentDevicePixelRatio),i=Math.round((i-s.top-d)/g*o.height/e.currentDevicePixelRatio),{x:n,y:i}},r.getConstraintWidth=function(t){return o(t,"max-width","clientWidth")},r.getConstraintHeight=function(t){return o(t,"max-height","clientHeight")},r.getMaximumWidth=function(t){var e=t.parentNode;if(!e)return t.clientWidth;var n=parseInt(r.getStyle(e,"padding-left"),10),i=parseInt(r.getStyle(e,"padding-right"),10),a=e.clientWidth-n-i,o=r.getConstraintWidth(t);return isNaN(o)?a:Math.min(a,o)},r.getMaximumHeight=function(t){var e=t.parentNode;if(!e)return t.clientHeight;var n=parseInt(r.getStyle(e,"padding-top"),10),i=parseInt(r.getStyle(e,"padding-bottom"),10),a=e.clientHeight-n-i,o=r.getConstraintHeight(t);return isNaN(o)?a:Math.min(a,o)},r.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},r.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||window.devicePixelRatio||1;if(1!==n){var i=t.canvas,a=t.height,r=t.width;i.height=a*n,i.width=r*n,t.ctx.scale(n,n),i.style.height=a+"px",i.style.width=r+"px"}},r.fontString=function(t,e,n){return e+" "+t+"px "+n},r.longestText=function(t,e,n,i){var a=(i=i||{}).data=i.data||{},o=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(a=i.data={},o=i.garbageCollect=[],i.font=e),t.font=e;var s=0;r.each(n,function(e){void 0!==e&&null!==e&&!0!==r.isArray(e)?s=r.measureText(t,a,o,s,e):r.isArray(e)&&r.each(e,function(e){void 0===e||null===e||r.isArray(e)||(s=r.measureText(t,a,o,s,e))})});var l=o.length/2;if(l>n.length){for(var u=0;ui&&(i=r),i},r.numberOfLabelLines=function(t){var e=1;return r.each(t,function(t){r.isArray(t)&&t.length>e&&(e=t.length)}),e},r.color=i?function(t){return t instanceof CanvasGradient&&(t=a.global.defaultColor),i(t)}:function(t){return console.error("Color.js not found!"),t},r.getHoverColor=function(t){return t instanceof CanvasPattern?t:r.color(t).saturate(.5).darken(.1).rgbString()}}},{2:2,25:25,45:45}],28:[function(t,e,n){"use strict";function i(t,e){return t.native?{x:t.x,y:t.y}:u.getRelativePosition(t,e)}function a(t,e){var n,i,a,r,o;for(i=0,r=t.data.datasets.length;i0&&(u=t.getDatasetMeta(u[0]._datasetIndex).data),u},"x-axis":function(t,e){return l(t,e,{intersect:!1})},point:function(t,e){return r(t,i(e,t))},nearest:function(t,e,n){var a=i(e,t);n.axis=n.axis||"xy";var r=s(n.axis),l=o(t,a,n.intersect,r);return l.length>1&&l.sort(function(t,e){var n=t.getArea()-e.getArea();return 0===n&&(n=t._datasetIndex-e._datasetIndex),n}),l.slice(0,1)},x:function(t,e,n){var r=i(e,t),o=[],s=!1;return a(t,function(t){t.inXRange(r.x)&&o.push(t),t.inRange(r.x,r.y)&&(s=!0)}),n.intersect&&!s&&(o=[]),o},y:function(t,e,n){var r=i(e,t),o=[],s=!1;return a(t,function(t){t.inYRange(r.y)&&o.push(t),t.inRange(r.x,r.y)&&(s=!0)}),n.intersect&&!s&&(o=[]),o}}}},{45:45}],29:[function(t,e,n){"use strict";t(25)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),e.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t,t}},{25:25}],30:[function(t,e,n){"use strict";var i=t(45);e.exports=function(t){function e(t,e){return i.where(t,function(t){return t.position===e})}function n(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,n){var i=e?n:t,a=e?t:n;return i.weight===a.weight?i._tmpIndex_-a._tmpIndex_:i.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}t.layoutService={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var i,a=["fullWidth","position","weight"],r=a.length,o=0;oh&&lt.maxHeight){l--;break}l++,c=u*d}t.labelRotation=l},afterCalculateTickRotation:function(){s.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){s.callback(this.options.beforeFit,[this])},fit:function(){var t=this,a=t.minSize={width:0,height:0},r=i(t._ticks),o=t.options,u=o.ticks,d=o.scaleLabel,c=o.gridLines,h=o.display,f=t.isHorizontal(),g=n(u),m=o.gridLines.tickMarkLength;if(a.width=f?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:h&&c.drawTicks?m:0,a.height=f?h&&c.drawTicks?m:0:t.maxHeight,d.display&&h){var p=l(d)+s.options.toPadding(d.padding).height;f?a.height+=p:a.width+=p}if(u.display&&h){var v=s.longestText(t.ctx,g.font,r,t.longestTextCache),y=s.numberOfLabelLines(r),b=.5*g.size,x=t.options.ticks.padding;if(f){t.longestLabelWidth=v;var _=s.toRadians(t.labelRotation),k=Math.cos(_),w=Math.sin(_)*v+g.size*y+b*(y-1)+b;a.height=Math.min(t.maxHeight,a.height+w+x),t.ctx.font=g.font;var M=e(t.ctx,r[0],g.font),S=e(t.ctx,r[r.length-1],g.font);0!==t.labelRotation?(t.paddingLeft="bottom"===o.position?k*M+3:k*b+3,t.paddingRight="bottom"===o.position?k*b+3:k*S+3):(t.paddingLeft=M/2+3,t.paddingRight=S/2+3)}else u.mirror?v=0:v+=x+b,a.width=Math.min(t.maxWidth,a.width+v),t.paddingTop=g.size/2,t.paddingBottom=g.size/2}t.handleMargins(),t.width=a.width,t.height=a.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){s.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(s.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:s.noop,getPixelForValue:s.noop,getValueForPixel:s.noop,getPixelForTick:function(t){var e=this,n=e.options.offset;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(n?0:1),1),a=i*t+e.paddingLeft;n&&(a+=i/2);var r=e.left+Math.round(a);return r+=e.isFullWidth()?e.margins.left:0}var o=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(o/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,i=e.left+Math.round(n);return i+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this,e=t.min,n=t.max;return t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0},_autoSkip:function(t){var e,n,i,a,r=this,o=r.isHorizontal(),l=r.options.ticks.minor,u=t.length,d=s.toRadians(r.labelRotation),c=Math.cos(d),h=r.longestLabelWidth*c,f=[];for(l.maxTicksLimit&&(a=l.maxTicksLimit),o&&(e=!1,(h+l.autoSkipPadding)*u>r.width-(r.paddingLeft+r.paddingRight)&&(e=1+Math.floor((h+l.autoSkipPadding)*u/(r.width-(r.paddingLeft+r.paddingRight)))),a&&u>a&&(e=Math.max(e,Math.floor(u/a)))),n=0;n1&&n%e>0||n%e==0&&n+e>=u)&&n!==u-1&&delete i.label,f.push(i);return f},draw:function(t){var e=this,i=e.options;if(i.display){var o=e.ctx,u=r.global,d=i.ticks.minor,c=i.ticks.major||d,h=i.gridLines,f=i.scaleLabel,g=0!==e.labelRotation,m=e.isHorizontal(),p=d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),v=s.valueOrDefault(d.fontColor,u.defaultFontColor),y=n(d),b=s.valueOrDefault(c.fontColor,u.defaultFontColor),x=n(c),_=h.drawTicks?h.tickMarkLength:0,k=s.valueOrDefault(f.fontColor,u.defaultFontColor),w=n(f),M=s.options.toPadding(f.padding),S=s.toRadians(e.labelRotation),D=[],C="right"===i.position?e.left:e.right-_,P="right"===i.position?e.left+_:e.right,T="bottom"===i.position?e.top:e.bottom-_,A="bottom"===i.position?e.top+_:e.bottom;if(s.each(p,function(n,r){if(!s.isNullOrUndef(n.label)){var o,l,c,f,v=n.label;r===e.zeroLineIndex&&i.offset===h.offsetGridLines?(o=h.zeroLineWidth,l=h.zeroLineColor,c=h.zeroLineBorderDash,f=h.zeroLineBorderDashOffset):(o=s.valueAtIndexOrDefault(h.lineWidth,r),l=s.valueAtIndexOrDefault(h.color,r),c=s.valueOrDefault(h.borderDash,u.borderDash),f=s.valueOrDefault(h.borderDashOffset,u.borderDashOffset));var y,b,x,k,w,M,I,O,F,R,L="middle",W="middle",Y=d.padding;if(m){var N=_+Y;"bottom"===i.position?(W=g?"middle":"top",L=g?"right":"center",R=e.top+N):(W=g?"middle":"bottom",L=g?"left":"center",R=e.bottom-N);var z=a(e,r,h.offsetGridLines&&p.length>1);z1);H0)n=t.stepSize;else{var r=i.niceNum(e.max-e.min,!1);n=i.niceNum(r/(t.maxTicks-1),!0)}var o=Math.floor(e.min/n)*n,s=Math.ceil(e.max/n)*n;t.min&&t.max&&t.stepSize&&i.almostWhole((t.max-t.min)/t.stepSize,n/1e3)&&(o=t.min,s=t.max);var l=(s-o)/n;l=i.almostEquals(l,Math.round(l),n/1e3)?Math.round(l):Math.ceil(l),a.push(void 0!==t.min?t.min:o);for(var u=1;u3?n[2]-n[1]:n[1]-n[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var r=i.log10(Math.abs(a)),o="";if(0!==t){var s=-1*Math.floor(r);s=Math.max(Math.min(s,20),0),o=t.toFixed(s)}else o="0";return o},logarithmic:function(t,e,n){var a=t/Math.pow(10,Math.floor(i.log10(t)));return 0===t?"0":1===a||2===a||5===a||0===e||e===n.length-1?t.toExponential():""}}}},{45:45}],35:[function(t,e,n){"use strict";var i=t(25),a=t(26),r=t(45);i._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:r.noop,title:function(t,e){var n="",i=e.labels,a=i?i.length:0;if(t.length>0){var r=t[0];r.xLabel?n=r.xLabel:a>0&&r.indexi.height-e.height&&(o="bottom");var s,l,u,d,c,h=(a.left+a.right)/2,f=(a.top+a.bottom)/2;"center"===o?(s=function(t){return t<=h},l=function(t){return t>h}):(s=function(t){return t<=e.width/2},l=function(t){return t>=i.width-e.width/2}),u=function(t){return t+e.width>i.width},d=function(t){return t-e.width<0},c=function(t){return t<=f?"top":"bottom"},s(n.x)?(r="left",u(n.x)&&(r="center",o=c(n.y))):l(n.x)&&(r="right",d(n.x)&&(r="center",o=c(n.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:r,yAlign:g.yAlign?g.yAlign:o}}function d(t,e,n){var i=t.x,a=t.y,r=t.caretSize,o=t.caretPadding,s=t.cornerRadius,l=n.xAlign,u=n.yAlign,d=r+o,c=s+o;return"right"===l?i-=e.width:"center"===l&&(i-=e.width/2),"top"===u?a+=d:a-="bottom"===u?e.height+d:e.height/2,"center"===u?"left"===l?i+=d:"right"===l&&(i-=d):"left"===l?i-=c:"right"===l&&(i+=c),{x:i,y:a}}t.Tooltip=a.extend({initialize:function(){this._model=s(this._options),this._lastActive=[]},getTitle:function(){var t=this,e=t._options.callbacks,i=e.beforeTitle.apply(t,arguments),a=e.title.apply(t,arguments),r=e.afterTitle.apply(t,arguments),o=[];return o=n(o,i),o=n(o,a),o=n(o,r)},getBeforeBody:function(){var t=this._options.callbacks.beforeBody.apply(this,arguments);return r.isArray(t)?t:void 0!==t?[t]:[]},getBody:function(t,e){var i=this,a=i._options.callbacks,o=[];return r.each(t,function(t){var r={before:[],lines:[],after:[]};n(r.before,a.beforeLabel.call(i,t,e)),n(r.lines,a.label.call(i,t,e)),n(r.after,a.afterLabel.call(i,t,e)),o.push(r)}),o},getAfterBody:function(){var t=this._options.callbacks.afterBody.apply(this,arguments);return r.isArray(t)?t:void 0!==t?[t]:[]},getFooter:function(){var t=this,e=t._options.callbacks,i=e.beforeFooter.apply(t,arguments),a=e.footer.apply(t,arguments),r=e.afterFooter.apply(t,arguments),o=[];return o=n(o,i),o=n(o,a),o=n(o,r)},update:function(e){var n,i,a=this,c=a._options,h=a._model,f=a._model=s(c),g=a._active,m=a._data,p={xAlign:h.xAlign,yAlign:h.yAlign},v={x:h.x,y:h.y},y={width:h.width,height:h.height},b={x:h.caretX,y:h.caretY};if(g.length){f.opacity=1;var x=[],_=[];b=t.Tooltip.positioners[c.position].call(a,g,a._eventPosition);var k=[];for(n=0,i=g.length;n0&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},i={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,r=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&r&&(this.drawBackground(i,e,t,n,a),i.x+=e.xPadding,i.y+=e.yPadding,this.drawTitle(i,e,t,a),this.drawBody(i,e,t,a),this.drawFooter(i,e,t,a))}},handleEvent:function(t){var e=this,n=e._options,i=!1;if(e._lastActive=e._lastActive||[],"mouseout"===t.type?e._active=[]:e._active=e._chart.getElementsAtEventForMode(t,n.mode,n),!(i=!r.arrayEquals(e._active,e._lastActive)))return!1;if(e._lastActive=e._active,n.enabled||n.custom){e._eventPosition={x:t.x,y:t.y};var a=e._model;e.update(!0),e.pivot(),i|=a.x!==e._model.x||a.y!==e._model.y}return i}}),t.Tooltip.positioners={average:function(t){if(!t.length)return!1;var e,n,i=0,a=0,r=0;for(e=0,n=t.length;el;)a-=2*Math.PI;for(;a=s&&a<=l,d=o>=n.innerRadius&&o<=n.outerRadius;return u&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t=this._chart.ctx,e=this._view,n=e.startAngle,i=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,n,i),t.arc(e.x,e.y,e.innerRadius,i,n,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})},{25:25,26:26,45:45}],37:[function(t,e,n){"use strict";var i=t(25),a=t(26),r=t(45),o=i.global;i._set("global",{elements:{line:{tension:.4,backgroundColor:o.defaultColor,borderWidth:3,borderColor:o.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),e.exports=a.extend({draw:function(){var t,e,n,i,a=this,s=a._view,l=a._chart.ctx,u=s.spanGaps,d=a._children.slice(),c=o.elements.line,h=-1;for(a._loop&&d.length&&d.push(d[0]),l.save(),l.lineCap=s.borderCapStyle||c.borderCapStyle,l.setLineDash&&l.setLineDash(s.borderDash||c.borderDash),l.lineDashOffset=s.borderDashOffset||c.borderDashOffset,l.lineJoin=s.borderJoinStyle||c.borderJoinStyle,l.lineWidth=s.borderWidth||c.borderWidth,l.strokeStyle=s.borderColor||o.defaultColor,l.beginPath(),h=-1,t=0;te?1:-1,o=1,s=u.borderSkipped||"left"):(e=u.x-u.width/2,n=u.x+u.width/2,i=u.y,r=1,o=(a=u.base)>i?1:-1,s=u.borderSkipped||"bottom"),d){var c=Math.min(Math.abs(e-n),Math.abs(i-a)),h=(d=d>c?c:d)/2,f=e+("left"!==s?h*r:0),g=n+("right"!==s?-h*r:0),m=i+("top"!==s?h*o:0),p=a+("bottom"!==s?-h*o:0);f!==g&&(i=m,a=p),m!==p&&(e=f,n=g)}l.beginPath(),l.fillStyle=u.backgroundColor,l.strokeStyle=u.borderColor,l.lineWidth=d;var v=[[e,a],[e,i],[n,i],[n,a]],y=["bottom","left","top","right"].indexOf(s,0);-1===y&&(y=0);var b=t(0);l.moveTo(b[0],b[1]);for(var x=1;x<4;x++)b=t(x),l.lineTo(b[0],b[1]);l.fill(),d&&l.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var n=!1;if(this._view){var i=a(this);n=t>=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom}return n},inLabelRange:function(t,e){var n=this;if(!n._view)return!1;var r=a(n);return i(n)?t>=r.left&&t<=r.right:e>=r.top&&e<=r.bottom},inXRange:function(t){var e=a(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=a(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,n=this._view;return i(this)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},{25:25,26:26}],40:[function(t,e,n){"use strict";e.exports={},e.exports.Arc=t(36),e.exports.Line=t(37),e.exports.Point=t(38),e.exports.Rectangle=t(39)},{36:36,37:37,38:38,39:39}],41:[function(t,e,n){"use strict";var i=t(42),n=e.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,i,a,r){if(r){var o=Math.min(r,i/2),s=Math.min(r,a/2);t.moveTo(e+o,n),t.lineTo(e+i-o,n),t.quadraticCurveTo(e+i,n,e+i,n+s),t.lineTo(e+i,n+a-s),t.quadraticCurveTo(e+i,n+a,e+i-o,n+a),t.lineTo(e+o,n+a),t.quadraticCurveTo(e,n+a,e,n+a-s),t.lineTo(e,n+s),t.quadraticCurveTo(e,n,e+o,n)}else t.rect(e,n,i,a)},drawPoint:function(t,e,n,i,a){var r,o,s,l,u,d;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(r=e.toString())&&"[object HTMLCanvasElement]"!==r){if(!(isNaN(n)||n<=0)){switch(e){default:t.beginPath(),t.arc(i,a,n,0,2*Math.PI),t.closePath(),t.fill();break;case"triangle":t.beginPath(),u=(o=3*n/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(i-o/2,a+u/3),t.lineTo(i+o/2,a+u/3),t.lineTo(i,a-2*u/3),t.closePath(),t.fill();break;case"rect":d=1/Math.SQRT2*n,t.beginPath(),t.fillRect(i-d,a-d,2*d,2*d),t.strokeRect(i-d,a-d,2*d,2*d);break;case"rectRounded":var c=n/Math.SQRT2,h=i-c,f=a-c,g=Math.SQRT2*n;t.beginPath(),this.roundedRect(t,h,f,g,g,n/2),t.closePath(),t.fill();break;case"rectRot":d=1/Math.SQRT2*n,t.beginPath(),t.moveTo(i-d,a),t.lineTo(i,a+d),t.lineTo(i+d,a),t.lineTo(i,a-d),t.closePath(),t.fill();break;case"cross":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"crossRot":t.beginPath(),s=Math.cos(Math.PI/4)*n,l=Math.sin(Math.PI/4)*n,t.moveTo(i-s,a-l),t.lineTo(i+s,a+l),t.moveTo(i-s,a+l),t.lineTo(i+s,a-l),t.closePath();break;case"star":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),s=Math.cos(Math.PI/4)*n,l=Math.sin(Math.PI/4)*n,t.moveTo(i-s,a-l),t.lineTo(i+s,a+l),t.moveTo(i-s,a+l),t.lineTo(i+s,a-l),t.closePath();break;case"line":t.beginPath(),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"dash":t.beginPath(),t.moveTo(i,a),t.lineTo(i+n,a),t.closePath()}t.stroke()}}else t.drawImage(e,i-e.width/2,a-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,n,i){if(n.steppedLine)return"after"===n.steppedLine&&!i||"after"!==n.steppedLine&&i?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y),void t.lineTo(n.x,n.y);n.tension?t.bezierCurveTo(i?e.controlPointPreviousX:e.controlPointNextX,i?e.controlPointPreviousY:e.controlPointNextY,i?n.controlPointNextX:n.controlPointPreviousX,i?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):t.lineTo(n.x,n.y)}};i.clear=n.clear,i.drawRoundedRectangle=function(t){t.beginPath(),n.roundedRect.apply(n,arguments),t.closePath()}},{42:42}],42:[function(t,e,n){"use strict";var i={noop:function(){},uid:function(){var t=0;return function(){return t++}}(),isNullOrUndef:function(t){return null===t||void 0===t},isArray:Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,n){return i.valueOrDefault(i.isArray(t)?t[e]:t,n)},callback:function(t,e,n){if(t&&"function"==typeof t.call)return t.apply(n,e)},each:function(t,e,n,a){var r,o,s;if(i.isArray(t))if(o=t.length,a)for(r=o-1;r>=0;r--)e.call(n,t[r],r);else for(r=0;r=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),t<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-a.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*a.easeInBounce(2*t):.5*a.easeOutBounce(2*t-1)+.5}};e.exports={effects:a},i.easingEffects=a},{42:42}],44:[function(t,e,n){"use strict";var i=t(42);e.exports={toLineHeight:function(t,e){var n=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*e;switch(t=+n[2],n[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,n,a,r;return i.isObject(t)?(e=+t.top||0,n=+t.right||0,a=+t.bottom||0,r=+t.left||0):e=n=a=r=+t||0,{top:e,right:n,bottom:a,left:r,height:e+a,width:r+n}},resolve:function(t,e,n){var a,r,o;for(a=0,r=t.length;a
';var a=e.childNodes[0],o=e.childNodes[1];e._reset=function(){a.scrollLeft=1e6,a.scrollTop=1e6,o.scrollLeft=1e6,o.scrollTop=1e6};var s=function(){e._reset(),t()};return r(a,"scroll",s.bind(a,"expand")),r(o,"scroll",s.bind(o,"shrink")),e}function c(t,e){var n=t[v]||(t[v]={}),i=n.renderProxy=function(t){t.animationName===x&&e()};p.each(_,function(e){r(t,e,i)}),n.reflow=!!t.offsetParent,t.classList.add(b)}function h(t){var e=t[v]||{},n=e.renderProxy;n&&(p.each(_,function(e){o(t,e,n)}),delete e.renderProxy),t.classList.remove(b)}function f(t,e,n){var i=t[v]||(t[v]={}),a=i.resizer=d(u(function(){if(i.resizer)return e(s("resize",n))}));c(t,function(){if(i.resizer){var e=t.parentNode;e&&e!==a.parentNode&&e.insertBefore(a,e.firstChild),a._reset()}})}function g(t){var e=t[v]||{},n=e.resizer;delete e.resizer,h(t),n&&n.parentNode&&n.parentNode.removeChild(n)}function m(t,e){var n=t._style||document.createElement("style");t._style||(t._style=n,e="/* Chart.js */\n"+e,n.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(n)),n.appendChild(document.createTextNode(e))}var p=t(45),v="$chartjs",y="chartjs-",b=y+"render-monitor",x=y+"render-animation",_=["animationstart","webkitAnimationStart"],k={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},w=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};e.exports={_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,initialize:function(){var t="from{opacity:0.99}to{opacity:1}";m(this,"@-webkit-keyframes "+x+"{"+t+"}@keyframes "+x+"{"+t+"}."+b+"{-webkit-animation:"+x+" 0.001s;animation:"+x+" 0.001s;}")},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var n=t&&t.getContext&&t.getContext("2d");return n&&n.canvas===t?(a(t,e),n):null},releaseContext:function(t){var e=t.canvas;if(e[v]){var n=e[v].initial;["height","width"].forEach(function(t){var i=n[t];p.isNullOrUndef(i)?e.removeAttribute(t):e.setAttribute(t,i)}),p.each(n.style||{},function(t,n){e.style[n]=t}),e.width=e.width,delete e[v]}},addEventListener:function(t,e,n){var i=t.canvas;if("resize"!==e){var a=n[v]||(n[v]={});r(i,e,(a.proxies||(a.proxies={}))[t.id+"_"+e]=function(e){n(l(e,t))})}else f(i,n,t)},removeEventListener:function(t,e,n){var i=t.canvas;if("resize"!==e){var a=((n[v]||{}).proxies||{})[t.id+"_"+e];a&&o(i,e,a)}else g(i)}},p.addEvent=r,p.removeEvent=o},{45:45}],48:[function(t,e,n){"use strict";var i=t(45),a=t(46),r=t(47),o=r._enabled?r:a;e.exports=i.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},o)},{45:45,46:46,47:47}],49:[function(t,e,n){"use strict";var i=t(25),a=t(40),r=t(45);i._set("global",{plugins:{filler:{propagate:!0}}}),e.exports=function(){function t(t,e,n){var i,a=t._model||{},r=a.fill;if(void 0===r&&(r=!!a.backgroundColor),!1===r||null===r)return!1;if(!0===r)return"origin";if(i=parseFloat(r,10),isFinite(i)&&Math.floor(i)===i)return"-"!==r[0]&&"+"!==r[0]||(i=e+i),!(i===e||i<0||i>=n)&&i;switch(r){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return r;default:return!1}}function e(t){var e,n=t.el._model||{},i=t.el._scale||{},a=t.fill,r=null;if(isFinite(a))return null;if("start"===a?r=void 0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===a?r=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?r=n.scaleZero:i.getBasePosition?r=i.getBasePosition():i.getBasePixel&&(r=i.getBasePixel()),void 0!==r&&null!==r){if(void 0!==r.x&&void 0!==r.y)return r;if("number"==typeof r&&isFinite(r))return e=i.isHorizontal(),{x:e?r:null,y:e?null:r}}return null}function n(t,e,n){var i,a=t[e].fill,r=[e];if(!n)return a;for(;!1!==a&&-1===r.indexOf(a);){if(!isFinite(a))return a;if(!(i=t[a]))return!1;if(i.visible)return a;r.push(a),a=i.fill}return!1}function o(t){var e=t.fill,n="dataset";return!1===e?null:(isFinite(e)||(n="boundary"),d[n](t))}function s(t){return t&&!t.skip}function l(t,e,n,i,a){var o;if(i&&a){for(t.moveTo(e[0].x,e[0].y),o=1;o0;--o)r.canvas.lineTo(t,n[o],n[o-1],!0)}}function u(t,e,n,i,a,r){var o,u,d,c,h,f,g,m=e.length,p=i.spanGaps,v=[],y=[],b=0,x=0;for(t.beginPath(),o=0,u=m+!!r;o');for(var n=0;n'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("");return e.push(""),e.join("")}}),e.exports=function(t){function e(t,e){return t.usePointStyle?e*Math.SQRT2:t.boxWidth}function n(e,n){var i=new t.Legend({ctx:e.ctx,options:n,chart:e});o.configure(e,i,n),o.addBox(e,i),e.legend=i}var o=t.layoutService,s=r.noop;return t.Legend=a.extend({initialize:function(t){r.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:s,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:s,beforeSetDimensions:s,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:s,beforeBuildLabels:s,buildLabels:function(){var t=this,e=t.options.labels||{},n=r.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(n=n.filter(function(n){return e.filter(n,t.chart.data)})),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:s,beforeFit:s,fit:function(){var t=this,n=t.options,a=n.labels,o=n.display,s=t.ctx,l=i.global,u=r.valueOrDefault,d=u(a.fontSize,l.defaultFontSize),c=u(a.fontStyle,l.defaultFontStyle),h=u(a.fontFamily,l.defaultFontFamily),f=r.fontString(d,c,h),g=t.legendHitBoxes=[],m=t.minSize,p=t.isHorizontal();if(p?(m.width=t.maxWidth,m.height=o?10:0):(m.width=o?10:0,m.height=t.maxHeight),o)if(s.font=f,p){var v=t.lineWidths=[0],y=t.legendItems.length?d+a.padding:0;s.textAlign="left",s.textBaseline="top",r.each(t.legendItems,function(n,i){var r=e(a,d)+d/2+s.measureText(n.text).width;v[v.length-1]+r+a.padding>=t.width&&(y+=d+a.padding,v[v.length]=t.left),g[i]={left:0,top:0,width:r,height:d},v[v.length-1]+=r+a.padding}),m.height+=y}else{var b=a.padding,x=t.columnWidths=[],_=a.padding,k=0,w=0,M=d+b;r.each(t.legendItems,function(t,n){var i=e(a,d)+d/2+s.measureText(t.text).width;w+M>m.height&&(_+=k+a.padding,x.push(k),k=0,w=0),k=Math.max(k,i),w+=M,g[n]={left:0,top:0,width:i,height:d}}),_+=k,x.push(k),m.width+=_}t.width=m.width,t.height=m.height},afterFit:s,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,n=t.options,a=n.labels,o=i.global,s=o.elements.line,l=t.width,u=t.lineWidths;if(n.display){var d,c=t.ctx,h=r.valueOrDefault,f=h(a.fontColor,o.defaultFontColor),g=h(a.fontSize,o.defaultFontSize),m=h(a.fontStyle,o.defaultFontStyle),p=h(a.fontFamily,o.defaultFontFamily),v=r.fontString(g,m,p);c.textAlign="left",c.textBaseline="middle",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=v;var y=e(a,g),b=t.legendHitBoxes,x=function(t,e,i){if(!(isNaN(y)||y<=0)){c.save(),c.fillStyle=h(i.fillStyle,o.defaultColor),c.lineCap=h(i.lineCap,s.borderCapStyle),c.lineDashOffset=h(i.lineDashOffset,s.borderDashOffset),c.lineJoin=h(i.lineJoin,s.borderJoinStyle),c.lineWidth=h(i.lineWidth,s.borderWidth),c.strokeStyle=h(i.strokeStyle,o.defaultColor);var a=0===h(i.lineWidth,s.borderWidth);if(c.setLineDash&&c.setLineDash(h(i.lineDash,s.borderDash)),n.labels&&n.labels.usePointStyle){var l=g*Math.SQRT2/2,u=l/Math.SQRT2,d=t+u,f=e+u;r.canvas.drawPoint(c,i.pointStyle,l,d,f)}else a||c.strokeRect(t,e,y,g),c.fillRect(t,e,y,g);c.restore()}},_=function(t,e,n,i){var a=g/2,r=y+a+t,o=e+a;c.fillText(n.text,r,o),n.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(r,o),c.lineTo(r+i,o),c.stroke())},k=t.isHorizontal();d=k?{x:t.left+(l-u[0])/2,y:t.top+a.padding,line:0}:{x:t.left+a.padding,y:t.top+a.padding,line:0};var w=g+a.padding;r.each(t.legendItems,function(e,n){var i=c.measureText(e.text).width,r=y+g/2+i,o=d.x,s=d.y;k?o+r>=l&&(s=d.y+=w,d.line++,o=d.x=t.left+(l-u[d.line])/2):s+w>t.bottom&&(o=d.x=o+t.columnWidths[d.line]+a.padding,s=d.y=t.top+a.padding,d.line++),x(o,s,e),b[n].left=o,b[n].top=s,_(o,s,e,i),k?d.x+=r+a.padding:d.y+=w})}},handleEvent:function(t){var e=this,n=e.options,i="mouseup"===t.type?"click":t.type,a=!1;if("mousemove"===i){if(!n.onHover)return}else{if("click"!==i)return;if(!n.onClick)return}var r=t.x,o=t.y;if(r>=e.left&&r<=e.right&&o>=e.top&&o<=e.bottom)for(var s=e.legendHitBoxes,l=0;l=u.left&&r<=u.left+u.width&&o>=u.top&&o<=u.top+u.height){if("click"===i){n.onClick.call(e,t.native,e.legendItems[l]),a=!0;break}if("mousemove"===i){n.onHover.call(e,t.native,e.legendItems[l]),a=!0;break}}}return a}}),{id:"legend",beforeInit:function(t){var e=t.options.legend;e&&n(t,e)},beforeUpdate:function(t){var e=t.options.legend,a=t.legend;e?(r.mergeIf(e,i.global.legend),a?(o.configure(t,a,e),a.options=e):n(t,e)):a&&(o.removeBox(t,a),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}}}},{25:25,26:26,45:45}],51:[function(t,e,n){"use strict";var i=t(25),a=t(26),r=t(45);i._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}}),e.exports=function(t){function e(e,i){var a=new t.Title({ctx:e.ctx,options:i,chart:e});n.configure(e,a,i),n.addBox(e,a),e.titleBlock=a}var n=t.layoutService,o=r.noop;return t.Title=a.extend({initialize:function(t){var e=this;r.extend(e,t),e.legendHitBoxes=[]},beforeUpdate:o,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:o,beforeSetDimensions:o,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:o,beforeBuildLabels:o,buildLabels:o,afterBuildLabels:o,beforeFit:o,fit:function(){var t=this,e=r.valueOrDefault,n=t.options,a=n.display,o=e(n.fontSize,i.global.defaultFontSize),s=t.minSize,l=r.isArray(n.text)?n.text.length:1,u=r.options.toLineHeight(n.lineHeight,o),d=a?l*u+2*n.padding:0;t.isHorizontal()?(s.width=t.maxWidth,s.height=d):(s.width=d,s.height=t.maxHeight),t.width=s.width,t.height=s.height},afterFit:o,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=r.valueOrDefault,a=t.options,o=i.global;if(a.display){var s,l,u,d=n(a.fontSize,o.defaultFontSize),c=n(a.fontStyle,o.defaultFontStyle),h=n(a.fontFamily,o.defaultFontFamily),f=r.fontString(d,c,h),g=r.options.toLineHeight(a.lineHeight,d),m=g/2+a.padding,p=0,v=t.top,y=t.left,b=t.bottom,x=t.right;e.fillStyle=n(a.fontColor,o.defaultFontColor),e.font=f,t.isHorizontal()?(l=y+(x-y)/2,u=v+m,s=x-y):(l="left"===a.position?y+m:x-m,u=v+(b-v)/2,s=b-v,p=Math.PI*("left"===a.position?-.5:.5)),e.save(),e.translate(l,u),e.rotate(p),e.textAlign="center",e.textBaseline="middle";var _=a.text;if(r.isArray(_))for(var k=0,w=0;w<_.length;++w)e.fillText(_[w],0,k,s),k+=g;else e.fillText(_,0,0,s);e.restore()}}}),{id:"title",beforeInit:function(t){var n=t.options.title;n&&e(t,n)},beforeUpdate:function(a){var o=a.options.title,s=a.titleBlock;o?(r.mergeIf(o,i.global.title),s?(n.configure(a,s,o),s.options=o):e(a,o)):s&&(t.layoutService.removeBox(a,s),delete a.titleBlock)}}}},{25:25,26:26,45:45}],52:[function(t,e,n){"use strict";e.exports=function(t){var e=t.Scale.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t=this,e=t.getLabels();t.minIndex=0,t.maxIndex=e.length-1;var n;void 0!==t.options.ticks.min&&(n=e.indexOf(t.options.ticks.min),t.minIndex=-1!==n?n:t.minIndex),void 0!==t.options.ticks.max&&(n=e.indexOf(t.options.ticks.max),t.maxIndex=-1!==n?n:t.maxIndex),t.min=e[t.minIndex],t.max=e[t.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var n=this,i=n.chart.data,a=n.isHorizontal();return i.yLabels&&!a?n.getRightValue(i.datasets[e].data[t]):n.ticks[t-n.minIndex]},getPixelForValue:function(t,e){var n,i=this,a=i.options.offset,r=Math.max(i.maxIndex+1-i.minIndex-(a?0:1),1);if(void 0!==t&&null!==t&&(n=i.isHorizontal()?t.x:t.y),void 0!==n||void 0!==t&&isNaN(e)){var o=i.getLabels();t=n||t;var s=o.indexOf(t);e=-1!==s?s:e}if(i.isHorizontal()){var l=i.width/r,u=l*(e-i.minIndex);return a&&(u+=l/2),i.left+Math.round(u)}var d=i.height/r,c=d*(e-i.minIndex);return a&&(c+=d/2),i.top+Math.round(c)},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,n=e.options.offset,i=Math.max(e._ticks.length-(n?0:1),1),a=e.isHorizontal(),r=(a?e.width:e.height)/i;return t-=a?e.left:e.top,n&&(t-=r/2),(t<=0?0:Math.round(t/r))+e.minIndex},getBasePixel:function(){return this.bottom}});t.scaleService.registerScaleType("category",e,{position:"bottom"})}},{}],53:[function(t,e,n){"use strict";var i=t(25),a=t(45),r=t(34);e.exports=function(t){var e={position:"left",ticks:{callback:r.formatters.linear}},n=t.LinearScaleBase.extend({determineDataLimits:function(){function t(t){return o?t.xAxisID===e.id:t.yAxisID===e.id}var e=this,n=e.options,i=e.chart,r=i.data.datasets,o=e.isHorizontal();e.min=null,e.max=null;var s=n.stacked;if(void 0===s&&a.each(r,function(e,n){if(!s){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&t(a)&&void 0!==a.stack&&(s=!0)}}),n.stacked||s){var l={};a.each(r,function(r,o){var s=i.getDatasetMeta(o),u=[s.type,void 0===n.stacked&&void 0===s.stack?o:"",s.stack].join(".");void 0===l[u]&&(l[u]={positiveValues:[],negativeValues:[]});var d=l[u].positiveValues,c=l[u].negativeValues;i.isDatasetVisible(o)&&t(s)&&a.each(r.data,function(t,i){var a=+e.getRightValue(t);isNaN(a)||s.data[i].hidden||(d[i]=d[i]||0,c[i]=c[i]||0,n.relativePoints?d[i]=100:a<0?c[i]+=a:d[i]+=a)})}),a.each(l,function(t){var n=t.positiveValues.concat(t.negativeValues),i=a.min(n),r=a.max(n);e.min=null===e.min?i:Math.min(e.min,i),e.max=null===e.max?r:Math.max(e.max,r)})}else a.each(r,function(n,r){var o=i.getDatasetMeta(r);i.isDatasetVisible(r)&&t(o)&&a.each(n.data,function(t,n){var i=+e.getRightValue(t);isNaN(i)||o.data[n].hidden||(null===e.min?e.min=i:ie.max&&(e.max=i))})});e.min=isFinite(e.min)&&!isNaN(e.min)?e.min:0,e.max=isFinite(e.max)&&!isNaN(e.max)?e.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this,n=e.options.ticks;if(e.isHorizontal())t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.width/50));else{var r=a.valueOrDefault(n.fontSize,i.global.defaultFontSize);t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.height/(2*r)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e,n=this,i=n.start,a=+n.getRightValue(t),r=n.end-i;return n.isHorizontal()?(e=n.left+n.width/r*(a-i),Math.round(e)):(e=n.bottom-n.height/r*(a-i),Math.round(e))},getValueForPixel:function(t){var e=this,n=e.isHorizontal(),i=n?e.width:e.height,a=(n?t-e.left:e.bottom-t)/i;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",n,e)}},{25:25,34:34,45:45}],54:[function(t,e,n){"use strict";var i=t(45),a=t(34);e.exports=function(t){var e=i.noop;t.LinearScaleBase=t.Scale.extend({getRightValue:function(e){return"string"==typeof e?+e:t.Scale.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=i.sign(t.min),a=i.sign(t.max);n<0&&a<0?t.max=0:n>0&&a>0&&(t.min=0)}var r=void 0!==e.min||void 0!==e.suggestedMin,o=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),r!==o&&t.min>=t.max&&(r?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),r={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,stepSize:i.valueOrDefault(e.fixedStepSize,e.stepSize)},o=t.ticks=a.generators.linear(r,t);t.handleDirectionalChanges(),t.max=i.max(o),t.min=i.min(o),e.reverse?(o.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{34:34,45:45}],55:[function(t,e,n){"use strict";var i=t(45),a=t(34);e.exports=function(t){var e={position:"left",ticks:{callback:a.formatters.logarithmic}},n=t.Scale.extend({determineDataLimits:function(){function t(t){return l?t.xAxisID===e.id:t.yAxisID===e.id}var e=this,n=e.options,a=n.ticks,r=e.chart,o=r.data.datasets,s=i.valueOrDefault,l=e.isHorizontal();e.min=null,e.max=null,e.minNotZero=null;var u=n.stacked;if(void 0===u&&i.each(o,function(e,n){if(!u){var i=r.getDatasetMeta(n);r.isDatasetVisible(n)&&t(i)&&void 0!==i.stack&&(u=!0)}}),n.stacked||u){var d={};i.each(o,function(a,o){var s=r.getDatasetMeta(o),l=[s.type,void 0===n.stacked&&void 0===s.stack?o:"",s.stack].join(".");r.isDatasetVisible(o)&&t(s)&&(void 0===d[l]&&(d[l]=[]),i.each(a.data,function(t,i){var a=d[l],r=+e.getRightValue(t);isNaN(r)||s.data[i].hidden||(a[i]=a[i]||0,n.relativePoints?a[i]=100:a[i]+=r)}))}),i.each(d,function(t){var n=i.min(t),a=i.max(t);e.min=null===e.min?n:Math.min(e.min,n),e.max=null===e.max?a:Math.max(e.max,a)})}else i.each(o,function(n,a){var o=r.getDatasetMeta(a);r.isDatasetVisible(a)&&t(o)&&i.each(n.data,function(t,n){var i=+e.getRightValue(t);isNaN(i)||o.data[n].hidden||(null===e.min?e.min=i:ie.max&&(e.max=i),0!==i&&(null===e.minNotZero||ia?{start:e-n-5,end:e}:{start:e,end:e+n+5}}function l(t){var i,r,l,u=n(t),d=Math.min(t.height/2,t.width/2),c={r:t.width,l:0,t:t.height,b:0},h={};t.ctx.font=u.font,t._pointLabelSizes=[];var f=e(t);for(i=0;ic.r&&(c.r=p.end,h.r=g),v.startc.b&&(c.b=v.end,h.b=g)}t.setReductions(d,c,h)}function u(t){var e=Math.min(t.height/2,t.width/2);t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0)}function d(t){return 0===t||180===t?"center":t<180?"left":"right"}function c(t,e,n,i){if(a.isArray(e))for(var r=n.y,o=1.5*i,s=0;s270||t<90)&&(n.y-=e.h)}function f(t){var i=t.ctx,r=a.valueOrDefault,o=t.options,s=o.angleLines,l=o.pointLabels;i.lineWidth=s.lineWidth,i.strokeStyle=s.color;var u=t.getDistanceFromCenterForValue(o.ticks.reverse?t.min:t.max),f=n(t);i.textBaseline="top";for(var g=e(t)-1;g>=0;g--){if(s.display){var m=t.getPointPosition(g,u);i.beginPath(),i.moveTo(t.xCenter,t.yCenter),i.lineTo(m.x,m.y),i.stroke(),i.closePath()}if(l.display){var v=t.getPointPosition(g,u+5),y=r(l.fontColor,p.defaultFontColor);i.font=f.font,i.fillStyle=y;var b=t.getIndexAngle(g),x=a.toDegrees(b);i.textAlign=d(x),h(x,t._pointLabelSizes[g],v),c(i,t.pointLabels[g]||"",v,f.size)}}}function g(t,n,i,r){var o=t.ctx;if(o.strokeStyle=a.valueAtIndexOrDefault(n.color,r-1),o.lineWidth=a.valueAtIndexOrDefault(n.lineWidth,r-1),t.options.gridLines.circular)o.beginPath(),o.arc(t.xCenter,t.yCenter,i,0,2*Math.PI),o.closePath(),o.stroke();else{var s=e(t);if(0===s)return;o.beginPath();var l=t.getPointPosition(0,i);o.moveTo(l.x,l.y);for(var u=1;u0&&n>0?e:0)},draw:function(){var t=this,e=t.options,n=e.gridLines,i=e.ticks,r=a.valueOrDefault;if(e.display){var o=t.ctx,s=this.getIndexAngle(0),l=r(i.fontSize,p.defaultFontSize),u=r(i.fontStyle,p.defaultFontStyle),d=r(i.fontFamily,p.defaultFontFamily),c=a.fontString(l,u,d);a.each(t.ticks,function(e,a){if(a>0||i.reverse){var u=t.getDistanceFromCenterForValue(t.ticksAsNumbers[a]);if(n.display&&0!==a&&g(t,n,u,a),i.display){var d=r(i.fontColor,p.defaultFontColor);if(o.font=c,o.save(),o.translate(t.xCenter,t.yCenter),o.rotate(s),i.showLabelBackdrop){var h=o.measureText(e).width;o.fillStyle=i.backdropColor,o.fillRect(-h/2-i.backdropPaddingX,-u-l/2-i.backdropPaddingY,h+2*i.backdropPaddingX,l+2*i.backdropPaddingY)}o.textAlign="center",o.textBaseline="middle",o.fillStyle=d,o.fillText(e,0,-u),o.restore()}}}),(e.angleLines.display||e.pointLabels.display)&&f(t)}}});t.scaleService.registerScaleType("radialLinear",y,v)}},{25:25,34:34,45:45}],57:[function(t,e,n){"use strict";function i(t,e){return t-e}function a(t){var e,n,i,a={},r=[];for(e=0,n=t.length;ee&&s=0&&o<=s;){if(i=o+s>>1,a=t[i-1]||null,r=t[i],!a)return{lo:null,hi:r};if(r[e]n))return{lo:a,hi:r};s=i-1}}return{lo:r,hi:null}}function s(t,e,n,i){var a=o(t,e,n),r=a.lo?a.hi?a.lo:t[t.length-2]:t[0],s=a.lo?a.hi?a.hi:t[t.length-1]:t[1],l=s[e]-r[e],u=l?(n-r[e])/l:0,d=(s[i]-r[i])*u;return r[i]+d}function l(t,e){var n=e.parser,i=e.parser||e.format;return"function"==typeof n?n(t):"string"==typeof t&&"string"==typeof i?v(t,i):(t instanceof v||(t=v(t)),t.isValid()?t:"function"==typeof i?i(t):t)}function u(t,e){if(b.isNullOrUndef(t))return null;var n=e.options.time,i=l(e.getRightValue(t),n);return i.isValid()?(n.round&&i.startOf(n.round),i.valueOf()):null}function d(t,e,n,i){var a,r,o,s=e-t,l=k[n],u=l.size,d=l.steps;if(!d)return Math.ceil(s/((i||1)*u));for(a=0,r=d.length;a=w.indexOf(e);a--)if(r=w[a],k[r].common&&o.as(r)>=t.length)return r;return w[e?w.indexOf(e):0]}function f(t){for(var e=w.indexOf(t)+1,n=w.length;e1?e[1]:i,o=e[0],l=(s(t,"time",r,"pos")-s(t,"time",o,"pos"))/2),a.time.max||(r=e[e.length-1],o=e.length>1?e[e.length-2]:n,u=(s(t,"time",r,"pos")-s(t,"time",o,"pos"))/2)),{left:l,right:u}}function p(t,e){var n,i,a,r,o=[];for(n=0,i=t.length;n=a&&n<=o&&c.push(n);return i.min=a,i.max=o,i._unit=l.unit||h(c,l.minUnit,i.min,i.max),i._majorUnit=f(i._unit),i._table=r(i._timestamps.data,a,o,s.distribution),i._offsets=m(i._table,c,a,o,s),p(c,i._majorUnit)},getLabelForIndex:function(t,e){var n=this,i=n.chart.data,a=n.options.time,r=i.labels&&t=0&&t0){this.$element.data("active",items[0])}else{this.$element.data("active",null)}if(this.options.addItem){items.push(this.options.addItem)}if(this.options.items=="all"){return this.render(items).show()}else{return this.render(items.slice(0,this.options.items)).show()}},matcher:function(item){var it=this.displayText(item);return~it.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(items){var beginswith=[];var caseSensitive=[];var caseInsensitive=[];var item;while(item=items.shift()){var it=this.displayText(item);if(!it.toLowerCase().indexOf(this.query.toLowerCase()))beginswith.push(item);else if(~it.indexOf(this.query))caseSensitive.push(item);else caseInsensitive.push(item)}return beginswith.concat(caseSensitive,caseInsensitive)},highlighter:function(item){var html=$("
");var query=this.query;var i=item.toLowerCase().indexOf(query.toLowerCase());var len=query.length;var leftPart;var middlePart;var rightPart;var strong;if(len===0){return html.text(item).html()}while(i>-1){leftPart=item.substr(0,i);middlePart=item.substr(i,len);rightPart=item.substr(i+len);strong=$("").text(middlePart);html.append(document.createTextNode(leftPart)).append(strong);item=rightPart;i=item.toLowerCase().indexOf(query.toLowerCase())}return html.append(document.createTextNode(item)).html()},render:function(items){var that=this;var self=this;var activeFound=false;var data=[];var _category=that.options.separator;$.each(items,function(key,value){if(key>0&&value[_category]!==items[key-1][_category]){data.push({__type:"divider"})}if(value[_category]&&(key===0||value[_category]!==items[key-1][_category])){data.push({__type:"category",name:value[_category]})}data.push(value)});items=$(data).map(function(i,item){if((item.__type||false)=="category"){return $(that.options.headerHtml).text(item.name)[0]}if((item.__type||false)=="divider"){return $(that.options.headerDivider)[0]}var text=self.displayText(item);i=$(that.options.item).data("value",item);i.find("a").html(that.highlighter(text,item));if(text==self.$element.val()){i.addClass("active");self.$element.data("active",item);activeFound=true}return i[0]});if(this.autoSelect&&!activeFound){items.filter(":not(.dropdown-header)").first().addClass("active");this.$element.data("active",items.first().data("value"))}this.$menu.html(items);return this},displayText:function(item){return typeof item!=="undefined"&&typeof item.name!="undefined"&&item.name||item},next:function(event){var active=this.$menu.find(".active").removeClass("active");var next=active.next();if(!next.length){next=$(this.$menu.find("li")[0])}next.addClass("active")},prev:function(event){var active=this.$menu.find(".active").removeClass("active");var prev=active.prev();if(!prev.length){prev=this.$menu.find("li").last()}prev.addClass("active")},listen:function(){this.$element.on("focus",$.proxy(this.focus,this)).on("blur",$.proxy(this.blur,this)).on("keypress",$.proxy(this.keypress,this)).on("input",$.proxy(this.input,this)).on("keyup",$.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$element.on("keydown",$.proxy(this.keydown,this))}this.$menu.on("click",$.proxy(this.click,this)).on("mouseenter","li",$.proxy(this.mouseenter,this)).on("mouseleave","li",$.proxy(this.mouseleave,this)).on("mousedown",$.proxy(this.mousedown,this))},destroy:function(){this.$element.data("typeahead",null);this.$element.data("active",null);this.$element.off("focus").off("blur").off("keypress").off("input").off("keyup");if(this.eventSupported("keydown")){this.$element.off("keydown")}this.$menu.remove();this.destroyed=true},eventSupported:function(eventName){var isSupported=eventName in this.$element;if(!isSupported){this.$element.setAttribute(eventName,"return;");isSupported=typeof this.$element[eventName]==="function"}return isSupported},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:if(e.shiftKey)return;e.preventDefault();this.prev();break;case 40:if(e.shiftKey)return;e.preventDefault();this.next();break}},keydown:function(e){this.suppressKeyPressRepeat=~$.inArray(e.keyCode,[40,38,9,13,27]);if(!this.shown&&e.keyCode==40){this.lookup()}else{this.move(e)}},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},input:function(e){var currentValue=this.$element.val()||this.$element.text();if(this.value!==currentValue){this.value=currentValue;this.lookup()}},keyup:function(e){if(this.destroyed){return}switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break}},focus:function(e){if(!this.focused){this.focused=true;if(this.options.showHintOnFocus&&this.skipShowHintOnFocus!==true){if(this.options.showHintOnFocus==="all"){this.lookup("")}else{this.lookup()}}}if(this.skipShowHintOnFocus){this.skipShowHintOnFocus=false}},blur:function(e){if(!this.mousedover&&!this.mouseddown&&this.shown){this.hide();this.focused=false}else if(this.mouseddown){this.skipShowHintOnFocus=true;this.$element.focus();this.mouseddown=false}},click:function(e){e.preventDefault();this.skipShowHintOnFocus=true;this.select();this.$element.focus();this.hide()},mouseenter:function(e){this.mousedover=true;this.$menu.find(".active").removeClass("active");$(e.currentTarget).addClass("active")},mouseleave:function(e){this.mousedover=false;if(!this.focused&&this.shown)this.hide()},mousedown:function(e){this.mouseddown=true;this.$menu.one("mouseup",function(e){this.mouseddown=false}.bind(this))}};var old=$.fn.typeahead;$.fn.typeahead=function(option){var arg=arguments;if(typeof option=="string"&&option=="getActive"){return this.data("active")}return this.each(function(){var $this=$(this);var data=$this.data("typeahead");var options=typeof option=="object"&&option;if(!data)$this.data("typeahead",data=new Typeahead(this,options));if(typeof option=="string"&&data[option]){if(arg.length>1){data[option].apply(data,Array.prototype.slice.call(arg,1))}else{data[option]()}}})};$.fn.typeahead.defaults={source:[],items:8,menu:'',item:'
  • ',minLength:1,scrollHeight:0,autoSelect:true,afterSelect:$.noop,addItem:false,delay:0,separator:"category",headerHtml:'',headerDivider:''};$.fn.typeahead.Constructor=Typeahead;$.fn.typeahead.noConflict=function(){$.fn.typeahead=old;return this};$(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(e){var $this=$(this);if($this.data("typeahead"))return;$this.typeahead($this.data())})}); +!function(a,b){"use strict";"undefined"!=typeof module&&module.exports?module.exports=b(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):b(a.jQuery)}(this,function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.defaults,d),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.select=this.options.select||this.select,this.autoSelect="boolean"!=typeof this.options.autoSelect||this.options.autoSelect,this.highlighter=this.options.highlighter||this.highlighter,this.render=this.options.render||this.render,this.updater=this.options.updater||this.updater,this.displayText=this.options.displayText||this.displayText,this.itemLink=this.options.itemLink||this.itemLink,this.followLinkOnSelect=this.options.followLinkOnSelect||this.followLinkOnSelect,this.source=this.options.source,this.delay=this.options.delay,this.$menu=a(this.options.menu),this.$appendTo=this.options.appendTo?a(this.options.appendTo):null,this.fitToElement="boolean"==typeof this.options.fitToElement&&this.options.fitToElement,this.shown=!1,this.listen(),this.showHintOnFocus=("boolean"==typeof this.options.showHintOnFocus||"all"===this.options.showHintOnFocus)&&this.options.showHintOnFocus,this.afterSelect=this.options.afterSelect,this.afterEmptySelect=this.options.afterEmptySelect,this.addItem=!1,this.value=this.$element.val()||this.$element.text(),this.keyPressed=!1,this.focused=this.$element.is(":focus")};b.prototype={constructor:b,setDefault:function(a){if(this.$element.data("active",a),this.autoSelect||a){var b=this.updater(a);b||(b=""),this.$element.val(this.displayText(b)||b).text(this.displayText(b)||b).change(),this.afterSelect(b)}return this.hide()},select:function(){var a=this.$menu.find(".active").data("value");if(this.$element.data("active",a),this.autoSelect||a){var b=this.updater(a);b||(b=""),this.$element.val(this.displayText(b)||b).text(this.displayText(b)||b).change(),this.afterSelect(b),this.followLinkOnSelect&&this.itemLink(a)?(document.location=this.itemLink(a),this.afterSelect(b)):this.followLinkOnSelect&&!this.itemLink(a)?this.afterEmptySelect(b):this.afterSelect(b)}else this.afterEmptySelect(b);return this.hide()},updater:function(a){return a},setSource:function(a){this.source=a},show:function(){var b,c=a.extend({},this.$element.position(),{height:this.$element[0].offsetHeight}),d="function"==typeof this.options.scrollHeight?this.options.scrollHeight.call():this.options.scrollHeight;if(this.shown?b=this.$menu:this.$appendTo?(b=this.$menu.appendTo(this.$appendTo),this.hasSameParent=this.$appendTo.is(this.$element.parent())):(b=this.$menu.insertAfter(this.$element),this.hasSameParent=!0),!this.hasSameParent){b.css("position","fixed");var e=this.$element.offset();c.top=e.top,c.left=e.left}var f=a(b).parent().hasClass("dropup"),g=f?"auto":c.top+c.height+d,h=a(b).hasClass("dropdown-menu-right"),i=h?"auto":c.left;return b.css({top:g,left:i}).show(),!0===this.options.fitToElement&&b.css("width",this.$element.outerWidth()+"px"),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(b){if(this.query=void 0!==b&&null!==b?b:this.$element.val(),this.query.length0?this.$element.data("active",b[0]):this.$element.data("active",null),"all"!=this.options.items&&(b=b.slice(0,this.options.items)),this.options.addItem&&b.push(this.options.addItem),this.render(b).show()):this.shown?this.hide():this},matcher:function(a){return~this.displayText(a).toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(a){for(var b,c=[],d=[],e=[];b=a.shift();){var f=this.displayText(b);f.toLowerCase().indexOf(this.query.toLowerCase())?~f.indexOf(this.query)?d.push(b):e.push(b):c.push(b)}return c.concat(d,e)},highlighter:function(a){var b=this.query;if(""===b)return a;var c,d=a.match(/(>)([^<]*)(<)/g),e=[],f=[];if(d&&d.length)for(c=0;c2&&e.push(d[c]);else e=[],e.push(a);b=b.replace(/[\(\)\/\.\*\+\?\[\]]/g,function(a){return"\\"+a});var g,h=new RegExp(b,"g");for(c=0;c0&&f.push(e[c]);for(c=0;c$&"));return a},render:function(b){var c=this,d=this,e=!1,f=[],g=c.options.separator;return a.each(b,function(a,c){a>0&&c[g]!==b[a-1][g]&&f.push({__type:"divider"}),!c[g]||0!==a&&c[g]===b[a-1][g]||f.push({__type:"category",name:c[g]}),f.push(c)}),b=a(f).map(function(b,f){if("category"==(f.__type||!1))return a(c.options.headerHtml).text(f.name)[0];if("divider"==(f.__type||!1))return a(c.options.headerDivider)[0];var g=d.displayText(f);return b=a(c.options.item).data("value",f),b.find(c.options.itemContentSelector).addBack(c.options.itemContentSelector).html(c.highlighter(g,f)),this.followLinkOnSelect&&b.find("a").attr("href",d.itemLink(f)),g==d.$element.val()&&(b.addClass("active"),d.$element.data("active",f),e=!0),b[0]}),this.autoSelect&&!e&&(b.filter(":not(.dropdown-header)").first().addClass("active"),this.$element.data("active",b.first().data("value"))),this.$menu.html(b),this},displayText:function(a){return void 0!==a&&void 0!==a.name?a.name:a},itemLink:function(a){return null},next:function(b){var c=this.$menu.find(".active").removeClass("active"),d=c.next();d.length||(d=a(this.$menu.find("li")[0])),d.addClass("active");var e=this.updater(d.data("value"));this.$element.val(this.displayText(e)||e)},prev:function(a){var b=this.$menu.find(".active").removeClass("active"),c=b.prev();c.length||(c=this.$menu.find("li").last()),c.addClass("active");var d=this.updater(c.data("value"));this.$element.val(this.displayText(d)||d)},listen:function(){this.$element.on("focus.bootstrap3Typeahead",a.proxy(this.focus,this)).on("blur.bootstrap3Typeahead",a.proxy(this.blur,this)).on("keypress.bootstrap3Typeahead",a.proxy(this.keypress,this)).on("propertychange.bootstrap3Typeahead input.bootstrap3Typeahead",a.proxy(this.input,this)).on("keyup.bootstrap3Typeahead",a.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown.bootstrap3Typeahead",a.proxy(this.keydown,this)),"ontouchstart"in document.documentElement?this.$menu.on("touchstart","li",a.proxy(this.touchstart,this)).on("touchend","li",a.proxy(this.click,this)):this.$menu.on("click",a.proxy(this.click,this)).on("mouseenter","li",a.proxy(this.mouseenter,this)).on("mouseleave","li",a.proxy(this.mouseleave,this)).on("mousedown",a.proxy(this.mousedown,this))},destroy:function(){this.$element.data("typeahead",null),this.$element.data("active",null),this.$element.unbind("focus.bootstrap3Typeahead").unbind("blur.bootstrap3Typeahead").unbind("keypress.bootstrap3Typeahead").unbind("propertychange.bootstrap3Typeahead input.bootstrap3Typeahead").unbind("keyup.bootstrap3Typeahead"),this.eventSupported("keydown")&&this.$element.unbind("keydown.bootstrap3-typeahead"),this.$menu.remove(),this.destroyed=!0},eventSupported:function(a){var b=a in this.$element;return b||(this.$element.setAttribute(a,"return;"),b="function"==typeof this.$element[a]),b},move:function(a){if(this.shown)switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:if(a.shiftKey)return;a.preventDefault(),this.prev();break;case 40:if(a.shiftKey)return;a.preventDefault(),this.next()}},keydown:function(b){this.keyPressed=!0,this.suppressKeyPressRepeat=~a.inArray(b.keyCode,[40,38,9,13,27]),this.shown||40!=b.keyCode?this.move(b):this.lookup()},keypress:function(a){this.suppressKeyPressRepeat||this.move(a)},input:function(a){var b=this.$element.val()||this.$element.text();this.value!==b&&(this.value=b,this.lookup())},keyup:function(a){if(!this.destroyed)switch(a.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:if(!this.shown||this.showHintOnFocus&&!this.keyPressed)return;this.select();break;case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide()}},focus:function(a){this.focused||(this.focused=!0,this.keyPressed=!1,this.options.showHintOnFocus&&!0!==this.skipShowHintOnFocus&&("all"===this.options.showHintOnFocus?this.lookup(""):this.lookup())),this.skipShowHintOnFocus&&(this.skipShowHintOnFocus=!1)},blur:function(a){this.mousedover||this.mouseddown||!this.shown?this.mouseddown&&(this.skipShowHintOnFocus=!0,this.$element.focus(),this.mouseddown=!1):(this.select(),this.hide(),this.focused=!1,this.keyPressed=!1)},click:function(a){a.preventDefault(),this.skipShowHintOnFocus=!0,this.select(),this.$element.focus(),this.hide()},mouseenter:function(b){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),a(b.currentTarget).addClass("active")},mouseleave:function(a){this.mousedover=!1,!this.focused&&this.shown&&this.hide()},mousedown:function(a){this.mouseddown=!0,this.$menu.one("mouseup",function(a){this.mouseddown=!1}.bind(this))},touchstart:function(b){b.preventDefault(),this.$menu.find(".active").removeClass("active"),a(b.currentTarget).addClass("active")},touchend:function(a){a.preventDefault(),this.select(),this.$element.focus()}};var c=a.fn.typeahead;a.fn.typeahead=function(c){var d=arguments;return"string"==typeof c&&"getActive"==c?this.data("active"):this.each(function(){var e=a(this),f=e.data("typeahead"),g="object"==typeof c&&c;f||e.data("typeahead",f=new b(this,g)),"string"==typeof c&&f[c]&&(d.length>1?f[c].apply(f,Array.prototype.slice.call(d,1)):f[c]())})},b.defaults={source:[],items:8,menu:'',item:'
  • ',itemContentSelector:"a",minLength:1,scrollHeight:0,autoSelect:!0,afterSelect:a.noop,afterEmptySelect:a.noop,addItem:!1,followLinkOnSelect:!1,delay:0,separator:"category",headerHtml:'',headerDivider:''},a.fn.typeahead.Constructor=b,a.fn.typeahead.noConflict=function(){return a.fn.typeahead=c,this},a(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(b){var c=a(this);c.data("typeahead")||c.typeahead(c.data())})}); \ No newline at end of file diff --git a/public/js/lib/daterangepicker.js b/public/js/lib/daterangepicker.js index fdf10f9f44..822afc9a80 100755 --- a/public/js/lib/daterangepicker.js +++ b/public/js/lib/daterangepicker.js @@ -1,5 +1,5 @@ /** - * @version: 2.1.25 + * @version: 2.1.30 * @author: Dan Grossman http://www.dangrossman.info/ * @copyright: Copyright (c) 2012-2017 Dan Grossman. All rights reserved. * @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php @@ -11,7 +11,7 @@ // AMD. Make globaly available as well define(['moment', 'jquery'], function (moment, jquery) { if (!jquery.fn) jquery.fn = {}; // webpack server rendering - return (root.daterangepicker = factory(moment, jquery)); + return factory(moment, jquery); }); } else if (typeof module === 'object' && module.exports) { // Node / Browserify @@ -27,8 +27,8 @@ // Browser globals root.daterangepicker = factory(root.moment, root.jQuery); } -}(this, function (moment, $) { - var DateRangePicker = function (element, options, cb) { +}(this, function(moment, $) { + var DateRangePicker = function(element, options, cb) { //default settings for options this.parentEl = 'body'; @@ -78,8 +78,7 @@ firstDay: moment.localeData().firstDayOfWeek() }; - this.callback = function () { - }; + this.callback = function() { }; //some state information this.isShowing = false; @@ -163,7 +162,7 @@ if (typeof options.locale.weekLabel === 'string') this.locale.weekLabel = options.locale.weekLabel; - if (typeof options.locale.customRangeLabel === 'string') { + if (typeof options.locale.customRangeLabel === 'string'){ //Support unicode chars in the custom range name. var elem = document.createElement('textarea'); elem.innerHTML = options.locale.customRangeLabel; @@ -288,7 +287,7 @@ //if no start/end dates set, check if an input element contains initial values if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') { if ($(this.element).is('input[type=text]')) { - var val = $(this.element).val(), + var val = $(this.element).val(), split = val.split(this.locale.separator); start = end = null; @@ -397,7 +396,7 @@ //swap the position of the predefined ranges if opens right if (typeof options.ranges !== 'undefined' && this.opens == 'right') { - this.container.find('.ranges').prependTo(this.container.find('.calendar.left').parent()); + this.container.find('.ranges').prependTo( this.container.find('.calendar.left').parent() ); } //apply CSS classes and labels to buttons @@ -425,7 +424,8 @@ .on('click.daterangepicker', '.daterangepicker_input input', $.proxy(this.showCalendars, this)) .on('focus.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsFocused, this)) .on('blur.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsBlurred, this)) - .on('change.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsChanged, this)); + .on('change.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsChanged, this)) + .on('keydown.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsKeydown, this)); this.container.find('.ranges') .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this)) @@ -439,10 +439,11 @@ 'click.daterangepicker': $.proxy(this.show, this), 'focus.daterangepicker': $.proxy(this.show, this), 'keyup.daterangepicker': $.proxy(this.elementChanged, this), - 'keydown.daterangepicker': $.proxy(this.keydown, this) + 'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility }); } else { this.element.on('click.daterangepicker', $.proxy(this.toggle, this)); + this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this)); } // @@ -463,7 +464,7 @@ constructor: DateRangePicker, - setStartDate: function (startDate) { + setStartDate: function(startDate) { if (typeof startDate === 'string') this.startDate = moment(startDate, this.locale.format); @@ -494,7 +495,7 @@ this.updateMonthsInView(); }, - setEndDate: function (endDate) { + setEndDate: function(endDate) { if (typeof endDate === 'string') this.endDate = moment(endDate, this.locale.format); @@ -502,7 +503,7 @@ this.endDate = moment(endDate); if (!this.timePicker) - this.endDate = this.endDate.endOf('day'); + this.endDate = this.endDate.add(1,'d').startOf('day').subtract(1,'second'); if (this.timePicker && this.timePickerIncrement) this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); @@ -524,15 +525,15 @@ this.updateMonthsInView(); }, - isInvalidDate: function () { + isInvalidDate: function() { return false; }, - isCustomDate: function () { + isCustomDate: function() { return false; }, - updateView: function () { + updateView: function() { if (this.timePicker) { this.renderTimePicker('left'); this.renderTimePicker('right'); @@ -554,7 +555,7 @@ this.updateFormInputs(); }, - updateMonthsInView: function () { + updateMonthsInView: function() { if (this.endDate) { //if both dates are visible already, do nothing @@ -585,7 +586,7 @@ } }, - updateCalendars: function () { + updateCalendars: function() { if (this.timePicker) { var hour, minute, second; @@ -626,7 +627,7 @@ this.calculateChosenLabel(); }, - renderCalendar: function (side) { + renderCalendar: function(side) { // // Build the matrix of dates that will populate the calendar @@ -763,7 +764,7 @@ if (this.showWeekNumbers || this.showISOWeekNumbers) html += '' + this.locale.weekLabel + ''; - $.each(this.locale.daysOfWeek, function (index, dayOfWeek) { + $.each(this.locale.daysOfWeek, function(index, dayOfWeek) { html += '' + dayOfWeek + ''; }); @@ -860,7 +861,7 @@ }, - renderTimePicker: function (side) { + renderTimePicker: function(side) { // Don't bother updating the time picker if it's currently disabled // because an end date hasn't been clicked yet @@ -1021,7 +1022,7 @@ }, - updateFormInputs: function () { + updateFormInputs: function() { //ignore mouse movements while an above-calendar text input has focus if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus")) @@ -1039,8 +1040,8 @@ }, - move: function () { - var parentOffset = {top: 0, left: 0}, + move: function() { + var parentOffset = { top: 0, left: 0 }, containerTop; var parentRightEdge = $(window).width(); if (!this.parentEl.is('body')) { @@ -1097,13 +1098,11 @@ } }, - show: function (e) { + show: function(e) { if (this.isShowing) return; // Create a click proxy that is private to this instance of datepicker, for unbinding - this._outsideClickProxy = $.proxy(function (e) { - this.outsideClick(e); - }, this); + this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this); // Bind global datepicker mousedown for hiding and $(document) @@ -1116,9 +1115,7 @@ .on('focusin.daterangepicker', this._outsideClickProxy); // Reposition the picker if the window is resized while it's open - $(window).on('resize.daterangepicker', $.proxy(function (e) { - this.move(e); - }, this)); + $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this)); this.oldStartDate = this.startDate.clone(); this.oldEndDate = this.endDate.clone(); @@ -1131,7 +1128,7 @@ this.isShowing = true; }, - hide: function (e) { + hide: function(e) { if (!this.isShowing) return; //incomplete date selection, revert to last values @@ -1154,7 +1151,7 @@ this.isShowing = false; }, - toggle: function (e) { + toggle: function(e) { if (this.isShowing) { this.hide(); } else { @@ -1162,7 +1159,7 @@ } }, - outsideClick: function (e) { + outsideClick: function(e) { var target = $(e.target); // if the page is clicked anywhere except within the daterangerpicker/button // itself then call this.hide() @@ -1177,18 +1174,18 @@ this.element.trigger('outsideClick.daterangepicker', this); }, - showCalendars: function () { + showCalendars: function() { this.container.addClass('show-calendar'); this.move(); this.element.trigger('showCalendar.daterangepicker', this); }, - hideCalendars: function () { + hideCalendars: function() { this.container.removeClass('show-calendar'); this.element.trigger('hideCalendar.daterangepicker', this); }, - hoverRange: function (e) { + hoverRange: function(e) { //ignore mouse movements while an above-calendar text input has focus if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus")) @@ -1206,7 +1203,7 @@ }, - clickRange: function (e) { + clickRange: function(e) { var label = e.target.getAttribute('data-range-key'); this.chosenLabel = label; if (label == this.locale.customRangeLabel) { @@ -1227,7 +1224,7 @@ } }, - clickPrev: function (e) { + clickPrev: function(e) { var cal = $(e.target).parents('.calendar'); if (cal.hasClass('left')) { this.leftCalendar.month.subtract(1, 'month'); @@ -1239,7 +1236,7 @@ this.updateCalendars(); }, - clickNext: function (e) { + clickNext: function(e) { var cal = $(e.target).parents('.calendar'); if (cal.hasClass('left')) { this.leftCalendar.month.add(1, 'month'); @@ -1251,7 +1248,7 @@ this.updateCalendars(); }, - hoverDate: function (e) { + hoverDate: function(e) { //ignore mouse movements while an above-calendar text input has focus //if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus")) @@ -1278,7 +1275,7 @@ var rightCalendar = this.rightCalendar; var startDate = this.startDate; if (!this.endDate) { - this.container.find('.calendar tbody td').each(function (index, el) { + this.container.find('.calendar tbody td').each(function(index, el) { //skip week numbers, only look at dates if ($(el).hasClass('week')) return; @@ -1300,7 +1297,7 @@ }, - clickDate: function (e) { + clickDate: function(e) { if (!$(e.target).hasClass('available')) return; @@ -1378,7 +1375,9 @@ var i = 0; for (var range in this.ranges) { if (this.timePicker) { - if (this.startDate.isSame(this.ranges[range][0]) && this.endDate.isSame(this.ranges[range][1])) { + var format = this.timePickerSeconds ? "YYYY-MM-DD hh:mm:ss" : "YYYY-MM-DD hh:mm"; + //ignore times when comparing dates if time picker seconds is not enabled + if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) { customRange = false; this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').html(); break; @@ -1403,22 +1402,22 @@ } }, - clickApply: function (e) { + clickApply: function(e) { this.hide(); this.element.trigger('apply.daterangepicker', this); }, - clickCancel: function (e) { + clickCancel: function(e) { this.startDate = this.oldStartDate; this.endDate = this.oldEndDate; this.hide(); this.element.trigger('cancel.daterangepicker', this); }, - monthOrYearChanged: function (e) { - var isLeft = $(e.target).closest('.calendar').hasClass('left'), + monthOrYearChanged: function(e) { + var isLeft = $(e.target).closest('.calendar').hasClass('left'), leftOrRight = isLeft ? 'left' : 'right', - cal = this.container.find('.calendar.' + leftOrRight); + cal = this.container.find('.calendar.'+leftOrRight); // Month must be Number for new moment versions var month = parseInt(cal.find('.monthselect').val(), 10); @@ -1457,9 +1456,9 @@ this.updateCalendars(); }, - timeChanged: function (e) { + timeChanged: function(e) { - var cal = $(e.target).closest('.calendar'), + var cal = $(e.target).closest('.calendar'), isLeft = cal.hasClass('left'); var hour = parseInt(cal.find('.hourselect').val(), 10); @@ -1505,7 +1504,7 @@ }, - formInputsChanged: function (e) { + formInputsChanged: function(e) { var isRight = $(e.target).closest('.calendar').hasClass('right'); var start = moment(this.container.find('input[name="daterangepicker_start"]').val(), this.locale.format); var end = moment(this.container.find('input[name="daterangepicker_end"]').val(), this.locale.format); @@ -1529,13 +1528,13 @@ this.updateView(); }, - formInputsFocused: function (e) { + formInputsFocused: function(e) { // Highlight the focused input this.container.find('input[name="daterangepicker_start"], input[name="daterangepicker_end"]').removeClass('active'); $(e.target).addClass('active'); - // Set the state such that if the user goes back to using a mouse, + // Set the state such that if the user goes back to using a mouse, // the calendars are aware we're selecting the end of the range, not // the start. This allows someone to edit the end of a date range without // re-selecting the beginning, by clicking on the end date input then @@ -1549,7 +1548,7 @@ }, - formInputsBlurred: function (e) { + formInputsBlurred: function(e) { // this function has one purpose right now: if you tab from the first // text input to the second in the UI, the endDate is nulled so that @@ -1567,14 +1566,26 @@ }, - elementChanged: function () { + formInputsKeydown: function(e) { + // This function ensures that if the 'enter' key was pressed in the input, then the calendars + // are updated with the startDate and endDate. + // This behaviour is automatic in Chrome/Firefox/Edge but not in IE 11 hence why this exists. + // Other browsers and versions of IE are untested and the behaviour is unknown. + if (e.keyCode === 13) { + // Prevent the calendar from being updated twice on Chrome/Firefox/Edge + e.preventDefault(); + this.formInputsChanged(e); + } + }, + + + elementChanged: function() { if (!this.element.is('input')) return; if (!this.element.val().length) return; - if (this.element.val().length < this.locale.format.length) return; var dateString = this.element.val().split(this.locale.separator), - start = null, - end = null; + start = null, + end = null; if (dateString.length === 2) { start = moment(dateString[0], this.locale.format); @@ -1593,14 +1604,22 @@ this.updateView(); }, - keydown: function (e) { + keydown: function(e) { //hide on tab or enter if ((e.keyCode === 9) || (e.keyCode === 13)) { this.hide(); } + + //hide on esc and prevent propagation + if (e.keyCode === 27) { + e.preventDefault(); + e.stopPropagation(); + + this.hide(); + } }, - updateElement: function () { + updateElement: function() { if (this.element.is('input') && !this.singleDatePicker && this.autoUpdateInput) { this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)); this.element.trigger('change'); @@ -1610,7 +1629,7 @@ } }, - remove: function () { + remove: function() { this.container.remove(); this.element.off('.daterangepicker'); this.element.removeData(); @@ -1618,16 +1637,17 @@ }; - $.fn.daterangepicker = function (options, callback) { - this.each(function () { + $.fn.daterangepicker = function(options, callback) { + var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options); + this.each(function() { var el = $(this); if (el.data('daterangepicker')) el.data('daterangepicker').remove(); - el.data('daterangepicker', new DateRangePicker(el, options, callback)); + el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback)); }); return this; }; return DateRangePicker; -})); +})); \ No newline at end of file diff --git a/public/js/lib/jquery-3.1.1.min.js b/public/js/lib/jquery-3.1.1.min.js deleted file mode 100644 index 4c5be4c0fb..0000000000 --- a/public/js/lib/jquery-3.1.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R), -a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)), -void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" diff --git a/resources/views/transactions/mass/edit-bulk.twig b/resources/views/transactions/mass/edit-bulk.twig new file mode 100644 index 0000000000..fdff24348f --- /dev/null +++ b/resources/views/transactions/mass/edit-bulk.twig @@ -0,0 +1,65 @@ +{% extends "./layout/default" %} + +{% block breadcrumbs %} + {{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName, journals) }} +{% endblock %} + +{% block content %} +
    + + {% for journal in journals %} + {% if journal.transaction_count == 2 %} + + {% endif %} + {% endfor %} + +
    +
    +
    +
    +

    {{ 'mass_edit_bulk_journals'|_ }}

    +
    +
    +

    + {{ 'cannot_edit_other_fields'|_ }} +

    + + + + + + + {# category #} + + {# tags #} + + +
    {{ trans('list.category') }}{{ trans('list.tags') }}
    + + + +
    +
    + +
    +
    +
    +
    +{% endblock %} +{% block scripts %} + + + + +{% endblock %} +{% block styles %} + +{% endblock %} diff --git a/resources/views/transactions/mass/edit.twig b/resources/views/transactions/mass/edit.twig index 9f834d26e5..5f46ef6e47 100644 --- a/resources/views/transactions/mass/edit.twig +++ b/resources/views/transactions/mass/edit.twig @@ -19,7 +19,6 @@ {{ 'cannot_edit_other_fields'|_ }}

    - diff --git a/routes/web.php b/routes/web.php index e368b4fc71..03c1c4caeb 100755 --- a/routes/web.php +++ b/routes/web.php @@ -784,8 +784,10 @@ Route::group( Route::group( ['middleware' => 'user-full-auth', 'namespace' => 'Transaction', 'prefix' => 'transactions/mass', 'as' => 'transactions.mass.'], function () { Route::get('edit/{journalList}', ['uses' => 'MassController@edit', 'as' => 'edit']); + Route::get('edit/bulk/{journalList}', ['uses' => 'MassController@editBulk', 'as' => 'edit-bulk']); Route::get('delete/{journalList}', ['uses' => 'MassController@delete', 'as' => 'delete']); Route::post('update', ['uses' => 'MassController@update', 'as' => 'update']); + Route::post('update/bulk', ['uses' => 'MassController@updateBulk', 'as' => 'update-bulk']); Route::post('destroy', ['uses' => 'MassController@destroy', 'as' => 'destroy']); } ); From 50fcc42e9956c4711c5f6467be0b864488991501 Mon Sep 17 00:00:00 2001 From: Victor Mosin Date: Sat, 30 Dec 2017 09:39:47 +0100 Subject: [PATCH 03/77] Fixed wrong counter value --- app/Http/Controllers/Transaction/MassController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Transaction/MassController.php b/app/Http/Controllers/Transaction/MassController.php index aea0bf9d9d..cd393d7581 100644 --- a/app/Http/Controllers/Transaction/MassController.php +++ b/app/Http/Controllers/Transaction/MassController.php @@ -341,7 +341,7 @@ class MassController extends Controller $journalIds = $request->get('journals'); $count = 0; if (is_array($journalIds)) { - $repository->updateBulk($journalIds, $request->get('category'), $request->get('tags')); + $count = $repository->updateBulk($journalIds, $request->get('category'), $request->get('tags')); } Preferences::mark(); Session::flash('success', trans('firefly.mass_edited_transactions_success', ['amount' => $count])); From f9d87cb9f6179e294b31e13811cb3e224cd40daf Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 09:47:37 +0100 Subject: [PATCH 04/77] Remove unused translations. --- resources/lang/en_US/config.php | 1 - resources/lang/en_US/import.php | 11 +--- .../views/import/spectre/input-fields.twig | 65 ------------------- .../views/import/spectre/select-country.twig | 42 ------------ .../views/import/spectre/select-provider.twig | 42 ------------ 5 files changed, 3 insertions(+), 158 deletions(-) delete mode 100644 resources/views/import/spectre/input-fields.twig delete mode 100644 resources/views/import/spectre/select-country.twig delete mode 100644 resources/views/import/spectre/select-provider.twig diff --git a/resources/lang/en_US/config.php b/resources/lang/en_US/config.php index d3be97099d..e41b1d60fb 100644 --- a/resources/lang/en_US/config.php +++ b/resources/lang/en_US/config.php @@ -27,7 +27,6 @@ return [ 'date_time' => '%B %e, %Y, @ %T', 'specific_day' => '%e %B %Y', 'week_in_year' => 'Week %W, %Y', - 'quarter_of_year' => '%B %Y', 'year' => '%Y', 'half_year' => '%B %Y', ]; diff --git a/resources/lang/en_US/import.php b/resources/lang/en_US/import.php index a73f185e19..67db75427f 100644 --- a/resources/lang/en_US/import.php +++ b/resources/lang/en_US/import.php @@ -92,7 +92,9 @@ return [ 'csv_roles_column' => 'Column', 'csv_roles_no_example_data' => 'No example data available', 'csv_roles_submit' => 'Continue with step 4/4', - 'csv_roles_warning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.', + + // not csv, but normal warning + 'roles_warning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.', // file, map data 'file_map_title' => 'Import setup (4/4) - Connect import data to Firefly III data', @@ -153,11 +155,4 @@ return [ 'spectre_prerequisites_title' => 'Prerequisites for an import using Spectre', 'spectre_prerequisites_text' => 'In order to import data using the Spectre API, you need to prove some secrets. They can be found on the secrets page.', 'spectre_enter_pub_key' => 'The import will only work when you enter this public key on your security page.', - 'spectre_select_country_title' => 'Select a country', - 'spectre_select_country_text' => 'Firefly III has a large selection of banks and sites from which Spectre can download transactional data. These banks are sorted by country. Please not that there is a "Fake Country" for when you wish to test something. If you wish to import from other financial tools, please use the imaginary country called "Other financial applications". By default, Spectre only allows you to download data from fake banks. Make sure your status is "Live" on your Dashboard if you wish to download from real banks.', - 'spectre_select_provider_title' => 'Select a bank', - 'spectre_select_provider_text' => 'Spectre supports the following banks or financial services grouped under :country. Please pick the one you wish to import from.', - 'spectre_input_fields_title' => 'Input mandatory fields', - 'spectre_input_fields_text' => 'The following fields are mandated by ":provider" (from :country).', - 'spectre_instructions_english' => 'These instructions are provided by Spectre for your convencience. They are in English:', ]; diff --git a/resources/views/import/spectre/input-fields.twig b/resources/views/import/spectre/input-fields.twig deleted file mode 100644 index adc64440d2..0000000000 --- a/resources/views/import/spectre/input-fields.twig +++ /dev/null @@ -1,65 +0,0 @@ -{% extends "./layout/default" %} - -{% block breadcrumbs %} - {{ Breadcrumbs.render }} -{% endblock %} -{% block content %} -
    -
    - -
    -
    -
    -

    {{ trans('import.spectre_input_fields_title') }}

    -
    -
    -
    -
    -

    - {{ trans('import.spectre_input_fields_text',{provider: data.provider.data.name, country: data.country})|raw }} -

    -

    - {{ trans('import.spectre_instructions_english') }} -

    -

    - {{ data.provider.data.instruction|nl2br }} -

    -
    -
    - -
    -
    - {% for field in data.fields %} - {# text, password, select, file #} - {% if field.nature == 'text' %} - {{ ExpandedForm.text(field.name,null, {label: field.english_name ~ ' ('~field.localized_name~')'}) }} - {% endif %} - {% if field.nature == 'password' %} - {{ ExpandedForm.password(field.name, {label: field.english_name ~ ' ('~field.localized_name~')'}) }} - {% endif %} - {% if field.nature == 'select' %} - DO NOT SUPPORT - {{ dump(field) }} - {% endif %} - {% if field.narture == 'file' %} - DO NOT SUPPORT - {{ dump(field) }} - {% endif %} - - {% endfor %} -
    -
    - -
    -
    - -
    -{% endblock %} -{% block scripts %} -{% endblock %} -{% block styles %} -{% endblock %} diff --git a/resources/views/import/spectre/select-country.twig b/resources/views/import/spectre/select-country.twig deleted file mode 100644 index 55a5905f86..0000000000 --- a/resources/views/import/spectre/select-country.twig +++ /dev/null @@ -1,42 +0,0 @@ -{% extends "./layout/default" %} - -{% block breadcrumbs %} - {{ Breadcrumbs.render }} -{% endblock %} -{% block content %} -
    -
    - -
    -
    -
    -

    {{ trans('import.spectre_select_country_title') }}

    -
    -
    -
    -
    -

    - {{ trans('import.spectre_select_country_text')|raw }} -

    -
    -
    - -
    -
    - {{ ExpandedForm.select('country_code', data.countries, null)|raw }} -
    -
    - -
    -
    - -
    -{% endblock %} -{% block scripts %} -{% endblock %} -{% block styles %} -{% endblock %} diff --git a/resources/views/import/spectre/select-provider.twig b/resources/views/import/spectre/select-provider.twig deleted file mode 100644 index c4f94fbdd2..0000000000 --- a/resources/views/import/spectre/select-provider.twig +++ /dev/null @@ -1,42 +0,0 @@ -{% extends "./layout/default" %} - -{% block breadcrumbs %} - {{ Breadcrumbs.render }} -{% endblock %} -{% block content %} -
    -
    - -
    -
    -
    -

    {{ trans('import.spectre_select_provider_title') }}

    -
    -
    -
    -
    -

    - {{ trans('import.spectre_select_provider_text',{country: data.country})|raw }} -

    -
    -
    - -
    -
    - {{ ExpandedForm.select('provider_code', data.providers, null)|raw }} -
    -
    - -
    -
    - -
    -{% endblock %} -{% block scripts %} -{% endblock %} -{% block styles %} -{% endblock %} From 7ff8c5e966357b821dbff50142410d0b6ac76860 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 12:13:13 +0100 Subject: [PATCH 05/77] Move bulk methods to their own controller. #1078 --- .../Transaction/BulkController.php | 127 ++++++++++++++++++ .../Transaction/MassController.php | 83 ------------ 2 files changed, 127 insertions(+), 83 deletions(-) create mode 100644 app/Http/Controllers/Transaction/BulkController.php diff --git a/app/Http/Controllers/Transaction/BulkController.php b/app/Http/Controllers/Transaction/BulkController.php new file mode 100644 index 0000000000..c3e825a7c6 --- /dev/null +++ b/app/Http/Controllers/Transaction/BulkController.php @@ -0,0 +1,127 @@ +. + */ + +declare(strict_types=1); + +namespace FireflyIII\Http\Controllers\Transaction; + + +use FireflyIII\Http\Controllers\Controller; +use FireflyIII\Http\Requests\MassEditBulkJournalRequest; +use FireflyIII\Models\TransactionJournal; +use FireflyIII\Models\TransactionType; +use FireflyIII\Repositories\Journal\JournalRepositoryInterface; +use Illuminate\Support\Collection; +use Preferences; +use Session; +use View; + +/** + * Class BulkController + */ +class BulkController extends Controller +{ + /** + * @param Collection $journals + * + * @return View + */ + public function edit(Collection $journals) + { + $subTitle = trans('firefly.mass_edit_bulk_journals'); + + // skip transactions that have multiple destinations, multiple sources or are an opening balance. + $filtered = new Collection; + $messages = []; + /** @var TransactionJournal $journal */ + foreach ($journals as $journal) { + $sources = $journal->sourceAccountList(); + $destinations = $journal->destinationAccountList(); + if ($sources->count() > 1) { + $messages[] = trans('firefly.cannot_edit_multiple_source', ['description' => $journal->description, 'id' => $journal->id]); + continue; + } + + if ($destinations->count() > 1) { + $messages[] = trans('firefly.cannot_edit_multiple_dest', ['description' => $journal->description, 'id' => $journal->id]); + continue; + } + if (TransactionType::OPENING_BALANCE === $journal->transactionType->type) { + $messages[] = trans('firefly.cannot_edit_opening_balance'); + continue; + } + + // cannot edit reconciled transactions / journals: + if ($journal->transactions->first()->reconciled) { + $messages[] = trans('firefly.cannot_edit_reconciled', ['description' => $journal->description, 'id' => $journal->id]); + continue; + } + + $filtered->push($journal); + } + + if (count($messages) > 0) { + Session::flash('info', $messages); + } + + // put previous url in session + $this->rememberPreviousUri('transactions.mass-edit-bulk.uri'); + Session::flash('gaEventCategory', 'transactions'); + Session::flash('gaEventAction', 'mass-edit-bulk'); + + // collect some useful meta data for the mass edit: + $filtered->each( + function (TransactionJournal $journal) { + $journal->transaction_count = $journal->transactions()->count(); + } + ); + + if (0 === $filtered->count()) { + Session::flash('error', trans('firefly.no_edit_multiple_left')); + } + + $journals = $filtered; + + return view('transactions.mass.edit-bulk', compact('journals', 'subTitle')); + } + + + /** + * @param MassEditBulkJournalRequest $request + * @param JournalRepositoryInterface $repository + * + * @return mixed + */ + public function updateBulk(MassEditBulkJournalRequest $request, JournalRepositoryInterface $repository) + { + $journalIds = $request->get('journals'); + $count = 0; + if (is_array($journalIds)) { + $count = $repository->updateBulk($journalIds, $request->get('category'), $request->get('tags')); + } + Preferences::mark(); + Session::flash('success', trans('firefly.mass_edited_transactions_success', ['amount' => $count])); + + // redirect to previous URL: + return redirect($this->getPreviousUri('transactions.mass-edit-bulk.uri')); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Transaction/MassController.php b/app/Http/Controllers/Transaction/MassController.php index cd393d7581..734bbe1397 100644 --- a/app/Http/Controllers/Transaction/MassController.php +++ b/app/Http/Controllers/Transaction/MassController.php @@ -201,70 +201,6 @@ class MassController extends Controller return view('transactions.mass.edit', compact('journals', 'subTitle', 'accounts', 'budgets')); } - /** - * @param Collection $journals - * - * @return View - */ - public function editBulk(Collection $journals) - { - $subTitle = trans('firefly.mass_edit_bulk_journals'); - - // skip transactions that have multiple destinations, multiple sources or are an opening balance. - $filtered = new Collection; - $messages = []; - /** @var TransactionJournal $journal */ - foreach ($journals as $journal) { - $sources = $journal->sourceAccountList(); - $destinations = $journal->destinationAccountList(); - if ($sources->count() > 1) { - $messages[] = trans('firefly.cannot_edit_multiple_source', ['description' => $journal->description, 'id' => $journal->id]); - continue; - } - - if ($destinations->count() > 1) { - $messages[] = trans('firefly.cannot_edit_multiple_dest', ['description' => $journal->description, 'id' => $journal->id]); - continue; - } - if (TransactionType::OPENING_BALANCE === $journal->transactionType->type) { - $messages[] = trans('firefly.cannot_edit_opening_balance'); - continue; - } - - // cannot edit reconciled transactions / journals: - if ($journal->transactions->first()->reconciled) { - $messages[] = trans('firefly.cannot_edit_reconciled', ['description' => $journal->description, 'id' => $journal->id]); - continue; - } - - $filtered->push($journal); - } - - if (count($messages) > 0) { - Session::flash('info', $messages); - } - - // put previous url in session - $this->rememberPreviousUri('transactions.mass-edit-bulk.uri'); - Session::flash('gaEventCategory', 'transactions'); - Session::flash('gaEventAction', 'mass-edit-bulk'); - - // collect some useful meta data for the mass edit: - $filtered->each( - function (TransactionJournal $journal) { - $journal->transaction_count = $journal->transactions()->count(); - } - ); - - if (0 === $filtered->count()) { - Session::flash('error', trans('firefly.no_edit_multiple_left')); - } - - $journals = $filtered; - - return view('transactions.mass.edit-bulk', compact('journals', 'subTitle')); - } - /** * @param MassEditJournalRequest $request * @param JournalRepositoryInterface $repository @@ -330,23 +266,4 @@ class MassController extends Controller return redirect($this->getPreviousUri('transactions.mass-edit.uri')); } - /** - * @param MassEditBulkJournalRequest $request - * @param JournalRepositoryInterface $repository - * - * @return mixed - */ - public function updateBulk(MassEditBulkJournalRequest $request, JournalRepositoryInterface $repository) - { - $journalIds = $request->get('journals'); - $count = 0; - if (is_array($journalIds)) { - $count = $repository->updateBulk($journalIds, $request->get('category'), $request->get('tags')); - } - Preferences::mark(); - Session::flash('success', trans('firefly.mass_edited_transactions_success', ['amount' => $count])); - - // redirect to previous URL: - return redirect($this->getPreviousUri('transactions.mass-edit-bulk.uri')); - } } From c73dd5f6644d34a49585583c79e869551ba6df15 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 12:14:10 +0100 Subject: [PATCH 06/77] Update routes to reflect change. #1078 --- routes/web.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/routes/web.php b/routes/web.php index 03c1c4caeb..9e6c9f88fd 100755 --- a/routes/web.php +++ b/routes/web.php @@ -792,6 +792,16 @@ Route::group( } ); +/** + * Transaction Bulk Controller + */ +Route::group( + ['middleware' => 'user-full-auth', 'namespace' => 'Transaction', 'prefix' => 'transactions/bulk', 'as' => 'transactions.bulk.'], function () { + Route::get('edit/journalList}', ['uses' => 'MassController@editBulk', 'as' => 'edit']); + Route::post('update', ['uses' => 'MassController@updateBulk', 'as' => 'update']); +} +); + /** * Transaction Split Controller */ From 9d8a4cd934ef6ba386e7b9b574e7a8f1a202be4a Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 12:22:49 +0100 Subject: [PATCH 07/77] Clean up JS code #1078 (also old code removed) --- public/js/ff/transactions/list.js | 43 +++++-------------------------- 1 file changed, 6 insertions(+), 37 deletions(-) diff --git a/public/js/ff/transactions/list.js b/public/js/ff/transactions/list.js index 4af8b7ce1e..fa5fc55946 100644 --- a/public/js/ff/transactions/list.js +++ b/public/js/ff/transactions/list.js @@ -43,45 +43,14 @@ $(document).ready(function () { countChecked(); }); - // click the edit button: + // click the mass edit button: $('.mass_edit').click(goToMassEdit); - // click the edit button: - $('.mass_edit_bulk').click(goToMassBulkEdit); + // click the bulk edit button: + $('.bulk_edit').click(goToBulkEdit); // click the delete button: $('.mass_delete').click(goToMassDelete); - // click reconcile button - // $('.mass_reconcile').click(goToReconcile); }); -/** - * - * @returns {boolean} - */ -function goToReconcile() { - - var checked = $('.select_all_single:checked'); - var ids = []; - $.each(checked, function (i, v) { - ids.push(parseInt($(v).data('transaction'))); - }); - - // go to specially crafted URL: - var bases = document.getElementsByTagName('base'); - var baseHref = null; - - if (bases.length > 0) { - baseHref = bases[0].href; - } - - $.post(baseHref + 'transactions/reconcile', {transactions: ids, _token: token}).done(function () { - window.location.reload(true); - }).fail(function () { - alert('Could not reconcile transactions: please check the logs and try again later.'); - }); - - return false; -} - /** * * @returns {boolean} @@ -106,7 +75,7 @@ function goToMassEdit() { * * @returns {boolean} */ -function goToMassBulkEdit() { +function goToBulkEdit() { "use strict"; var checkedArray = getCheckboxes(); @@ -118,7 +87,7 @@ function goToMassBulkEdit() { baseHref = bases[0].href; } - window.location.href = baseHref + '/transactions/mass/edit/bulk/' + checkedArray; + window.location.href = baseHref + '/transactions/bulk/edit/' + checkedArray; return false; } @@ -166,7 +135,7 @@ function countChecked() { var checked = $('.select_all_single:checked').length; if (checked > 0) { $('.mass_edit span').text(edit_selected_txt + ' (' + checked + ')'); - $('.mass_edit_bulk span').text(edit_bulk_selected_txt + ' (' + checked + ')'); + $('.bulk_edit span').text(edit_bulk_selected_txt + ' (' + checked + ')'); $('.mass_delete span').text(delete_selected_txt + ' (' + checked + ')'); // get amount for the transactions: From a6b22b51564240673330b5cfaaaf4987612c03d3 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 12:23:03 +0100 Subject: [PATCH 08/77] Remove unused language string. #1078 --- resources/lang/en_US/firefly.php | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index ad207ed562..229cf324f4 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -740,7 +740,6 @@ return [ 'opt_group_savingAsset' => 'Savings accounts', 'opt_group_sharedAsset' => 'Shared asset accounts', 'opt_group_ccAsset' => 'Credit cards', - 'mass_edit_bulk' => 'Bulk edit', // new user: 'welcome' => 'Welcome to Firefly!', From 273f1881015d933ba11960f5ec92df15b243decc Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 12:23:16 +0100 Subject: [PATCH 09/77] Fix error in route (my error) #1078 --- routes/web.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routes/web.php b/routes/web.php index 9e6c9f88fd..b482b2cc92 100755 --- a/routes/web.php +++ b/routes/web.php @@ -797,8 +797,8 @@ Route::group( */ Route::group( ['middleware' => 'user-full-auth', 'namespace' => 'Transaction', 'prefix' => 'transactions/bulk', 'as' => 'transactions.bulk.'], function () { - Route::get('edit/journalList}', ['uses' => 'MassController@editBulk', 'as' => 'edit']); - Route::post('update', ['uses' => 'MassController@updateBulk', 'as' => 'update']); + Route::get('edit/{journalList}', ['uses' => 'BulkController@edit', 'as' => 'edit']); + Route::post('update', ['uses' => 'BulkController@update', 'as' => 'update']); } ); From dc95395f4290c1c35eeee332fb206e831725596d Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 12:23:26 +0100 Subject: [PATCH 10/77] Clean up buttons #1078 --- resources/views/list/journals.twig | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/views/list/journals.twig b/resources/views/list/journals.twig index 8cda6503bf..dbf1fc0d64 100644 --- a/resources/views/list/journals.twig +++ b/resources/views/list/journals.twig @@ -36,8 +36,7 @@ From 64624bea1de29defd30c859f570a4c999c4783a3 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 12:24:28 +0100 Subject: [PATCH 11/77] Rename language string #1078 --- resources/lang/en_US/firefly.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 229cf324f4..782201f1bf 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -728,7 +728,7 @@ return [ 'reconcile_selected' => 'Reconcile', 'mass_delete_journals' => 'Delete a number of transactions', 'mass_edit_journals' => 'Edit a number of transactions', - 'mass_edit_bulk_journals' => 'Bulk edit', + 'bulk_edit' => 'Bulk edit', 'cannot_edit_other_fields' => 'You cannot mass-edit other fields than the ones here, because there is no room to show them. Please follow the link and edit them by one-by-one, if you need to edit these fields.', 'no_budget' => 'none', 'no_budget_squared' => '(no budget)', From 5da9f0cfb61b308d01629e226bba0596c593d670 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 12:33:44 +0100 Subject: [PATCH 12/77] Fix #1080 --- app/Services/Github/Request/UpdateRequest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/Github/Request/UpdateRequest.php b/app/Services/Github/Request/UpdateRequest.php index 5182b75d10..a0f6a58de7 100644 --- a/app/Services/Github/Request/UpdateRequest.php +++ b/app/Services/Github/Request/UpdateRequest.php @@ -32,7 +32,7 @@ use SimpleXMLElement; /** * Class UpdateRequest */ -class UpdateRequest implements GitHubRequest +class UpdateRequest implements GithubRequest { /** @var array */ private $releases = []; From 3cc1bf52cb42d298f488c742ed0f6584a077c8b5 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 12:43:13 +0100 Subject: [PATCH 13/77] Move view. #1078 --- .../{mass/edit-bulk.twig => bulk/edit.twig} | 47 +++++++++++++++++-- 1 file changed, 44 insertions(+), 3 deletions(-) rename resources/views/transactions/{mass/edit-bulk.twig => bulk/edit.twig} (50%) diff --git a/resources/views/transactions/mass/edit-bulk.twig b/resources/views/transactions/bulk/edit.twig similarity index 50% rename from resources/views/transactions/mass/edit-bulk.twig rename to resources/views/transactions/bulk/edit.twig index fdff24348f..71a94c5567 100644 --- a/resources/views/transactions/mass/edit-bulk.twig +++ b/resources/views/transactions/bulk/edit.twig @@ -1,7 +1,7 @@ {% extends "./layout/default" %} {% block breadcrumbs %} - {{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName, journals) }} + {{ Breadcrumbs.render(Route.getCurrentRoute.getName, journals) }} {% endblock %} {% block content %} @@ -17,12 +17,53 @@
    -

    {{ 'mass_edit_bulk_journals'|_ }}

    +

    {{ 'mass_bulk_journals'|_ }}

    - {{ 'cannot_edit_other_fields'|_ }} + {{ 'mass_bulk_journals_explain'|_ }}

    +
    +
    +
      {{ trans('list.description') }}
    + + + + + + + + + + + + {% for journal in journals %} + + + + + + + + + + {% endfor %} + +
    {{ trans('list.description') }}{{ trans('list.amount') }}{{ trans('list.date') }}{{ trans('list.category') }}{{ trans('list.budget') }}{{ trans('list.tags') }}
    + + {{ journal.description }}{{ journal|journalTotalAmount }}{{ journal.date.formatLocalized(monthAndDayFormat) }} + {% set cat = journal.categories.first %} + {% if cat %} + {{ cat.name }} + {% endif %} + + {% set bud = journal.budgets.first %} + {% if bud %} + {{ bud.name }} + {% endif %} +
    + + From ec2f693575773ed8b15fe69336d3e7a3ef66a5f1 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 12:43:57 +0100 Subject: [PATCH 14/77] Update breadcrumb #1078 --- resources/views/transactions/mass-delete.twig | 1 - routes/breadcrumbs.php | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/resources/views/transactions/mass-delete.twig b/resources/views/transactions/mass-delete.twig index b038ab16be..ce6ae5c185 100644 --- a/resources/views/transactions/mass-delete.twig +++ b/resources/views/transactions/mass-delete.twig @@ -44,7 +44,6 @@ - - + {% endfor %}
    {{ trans('list.category') }} {{ journal|journalTotalAmount }} - {{ journal.date.formatLocalized(monthAndDayFormat) }} diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index e8237cd6e0..5e29693372 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -990,6 +990,25 @@ Breadcrumbs::register( } ); +// BULK EDIT +Breadcrumbs::register( + 'transactions.bulk.edit', + function (BreadCrumbsGenerator $breadcrumbs, Collection $journals): void { + if ($journals->count() > 0) { + $journalIds = $journals->pluck('id')->toArray(); + $what = strtolower($journals->first()->transactionType->type); + $breadcrumbs->parent('transactions.index', $what, '(nothing)', new Carbon, new Carbon); + $breadcrumbs->push(trans('firefly.mass_bulk_journals'), route('transactions.bulk.edit', $journalIds)); + + return; + } + + $breadcrumbs->parent('index'); + + return; + } +); + // SPLIT Breadcrumbs::register( 'transactions.split.edit', From 08f28d48af765e5630b159b366d922fd090f5441 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 12:44:10 +0100 Subject: [PATCH 15/77] Refer to new views. --- .../Transaction/BulkController.php | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Transaction/BulkController.php b/app/Http/Controllers/Transaction/BulkController.php index c3e825a7c6..6de6d1a7e9 100644 --- a/app/Http/Controllers/Transaction/BulkController.php +++ b/app/Http/Controllers/Transaction/BulkController.php @@ -39,6 +39,25 @@ use View; */ class BulkController extends Controller { + + + /** + * + */ + public function __construct() + { + parent::__construct(); + + $this->middleware( + function ($request, $next) { + app('view')->share('title', trans('firefly.transactions')); + app('view')->share('mainTitleIcon', 'fa-repeat'); + + return $next($request); + } + ); + } + /** * @param Collection $journals * @@ -46,7 +65,8 @@ class BulkController extends Controller */ public function edit(Collection $journals) { - $subTitle = trans('firefly.mass_edit_bulk_journals'); + $subTitle = trans('firefly.mass_bulk_journals'); + // skip transactions that have multiple destinations, multiple sources or are an opening balance. $filtered = new Collection; @@ -100,7 +120,7 @@ class BulkController extends Controller $journals = $filtered; - return view('transactions.mass.edit-bulk', compact('journals', 'subTitle')); + return view('transactions.bulk.edit', compact('journals', 'subTitle')); } From 717e101b80e45771470c98a58a2074c685cd5a3e Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 12:54:19 +0100 Subject: [PATCH 16/77] Start updating view. --- resources/lang/en_US/firefly.php | 3 ++ resources/views/transactions/bulk/edit.twig | 43 +++++++++++++++++++-- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 782201f1bf..9f09d2d2b8 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -728,6 +728,9 @@ return [ 'reconcile_selected' => 'Reconcile', 'mass_delete_journals' => 'Delete a number of transactions', 'mass_edit_journals' => 'Edit a number of transactions', + 'mass_bulk_journals' => 'Bulk edit a number of transactions', + 'mass_bulk_journals_explain' => 'If you do not want to change your transactions one-by-one using the mass-edit function, you can update them in one go. Simply select the preferred category, tag(s) or budget in the fields below, and all the transactions in the table will be updated.', + 'bulk_set_new_values' => 'Use the inputs below to set new values. If you leave them empty, they will be made empty for all. Also, note that only withdrawals will be given a budget.', 'bulk_edit' => 'Bulk edit', 'cannot_edit_other_fields' => 'You cannot mass-edit other fields than the ones here, because there is no room to show them. Please follow the link and edit them by one-by-one, if you need to edit these fields.', 'no_budget' => 'none', diff --git a/resources/views/transactions/bulk/edit.twig b/resources/views/transactions/bulk/edit.twig index 71a94c5567..8f4c48b2ce 100644 --- a/resources/views/transactions/bulk/edit.twig +++ b/resources/views/transactions/bulk/edit.twig @@ -56,14 +56,48 @@ {{ bud.name }} {% endif %} + {% for tag in journal.tags %} + + {{ tag.tag }} + {% endfor %} +
    +

    + {{ 'bulk_set_new_values'|_ }} +

    +
    +
    + + + + + + + + + + + + + +
    {{ trans('list.category') }} + +
    {{ trans('list.budget') }} + +
    {{ trans('list.tags') }} + +
    +
    +
    + From 3fba741f1b950f2fea1a03a0f39d4abcb5112dac Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 14:25:11 +0100 Subject: [PATCH 18/77] Update views and routes for #1078 --- .../Transaction/BulkController.php | 53 ++++++--- .../Transaction/MassController.php | 2 +- ...Request.php => BulkEditJournalRequest.php} | 10 +- app/Http/Requests/Request.php | 2 +- .../Journal/JournalRepository.php | 107 ++++++++++++------ .../Journal/JournalRepositoryInterface.php | 25 +++- .../Journal/SupportJournalsTrait.php | 2 + .../Journal/UpdateJournalsTrait.php | 43 +------ resources/lang/en_US/firefly.php | 5 +- resources/views/transactions/bulk/edit.twig | 11 +- routes/web.php | 1 - 11 files changed, 153 insertions(+), 108 deletions(-) rename app/Http/Requests/{MassEditBulkJournalRequest.php => BulkEditJournalRequest.php} (85%) diff --git a/app/Http/Controllers/Transaction/BulkController.php b/app/Http/Controllers/Transaction/BulkController.php index 9df614045c..2dfecca07b 100644 --- a/app/Http/Controllers/Transaction/BulkController.php +++ b/app/Http/Controllers/Transaction/BulkController.php @@ -26,12 +26,14 @@ namespace FireflyIII\Http\Controllers\Transaction; use ExpandedForm; use FireflyIII\Http\Controllers\Controller; -use FireflyIII\Http\Requests\MassEditBulkJournalRequest; +use FireflyIII\Http\Requests\BulkEditJournalRequest; use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionType; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; +use Illuminate\Http\Request; use Illuminate\Support\Collection; +use Log; use Preferences; use Session; use View; @@ -65,7 +67,7 @@ class BulkController extends Controller * * @return View */ - public function edit(Collection $journals) + public function edit(Request $request, Collection $journals) { $subTitle = trans('firefly.mass_bulk_journals'); @@ -101,11 +103,11 @@ class BulkController extends Controller } if (count($messages) > 0) { - Session::flash('info', $messages); + $request->session()->flash('info', $messages); } // put previous url in session - $this->rememberPreviousUri('transactions.mass-edit-bulk.uri'); + $this->rememberPreviousUri('transactions.bulk-edit.uri'); // get list of budgets: /** @var BudgetRepositoryInterface $repository */ @@ -119,33 +121,58 @@ class BulkController extends Controller ); if (0 === $filtered->count()) { - Session::flash('error', trans('firefly.no_edit_multiple_left')); + $request->session()->flash('error', trans('firefly.no_edit_multiple_left')); } $journals = $filtered; - return view('transactions.bulk.edit', compact('journals', 'subTitle','budgetList')); + return view('transactions.bulk.edit', compact('journals', 'subTitle', 'budgetList')); } /** - * @param MassEditBulkJournalRequest $request + * @param BulkEditJournalRequest $request * @param JournalRepositoryInterface $repository * * @return mixed */ - public function updateBulk(MassEditBulkJournalRequest $request, JournalRepositoryInterface $repository) + public function update(BulkEditJournalRequest $request, JournalRepositoryInterface $repository) { - $journalIds = $request->get('journals'); - $count = 0; + $journalIds = $request->get('journals'); + $ignoreCategory = intval($request->get('ignore_category')) === 1; + $ignoreBudget = intval($request->get('ignore_budget')) === 1; + $ignoreTags = intval($request->get('ignore_tags')) === 1; + $count = 0; if (is_array($journalIds)) { - $count = $repository->updateBulk($journalIds, $request->get('category'), $request->get('tags')); + foreach ($journalIds as $journalId) { + $journal = $repository->find(intval($journalId)); + if (!is_null($journal)) { + $count++; + Log::debug(sprintf('Found journal #%d', $journal->id)); + // update category if not told to ignore + if ($ignoreCategory === false) { + Log::debug(sprintf('Set category to %s', $request->string('category'))); + $repository->updateCategory($journal, $request->string('category')); + } + // update budget if not told to ignore (and is withdrawal) + if ($ignoreBudget === false) { + Log::debug(sprintf('Set budget to %d', $request->integer('budget_id'))); + $repository->updateBudget($journal, $request->integer('budget_id')); + } + if ($ignoreTags === false) { + Log::debug(sprintf('Set tags to %s', $request->string('budget_id'))); + $repository->updateTags($journal, explode(',', $request->string('tags'))); + } + // update tags if not told to ignore (and is withdrawal) + } + } } + Preferences::mark(); - Session::flash('success', trans('firefly.mass_edited_transactions_success', ['amount' => $count])); + $request->session()->flash('success', trans('firefly.mass_edited_transactions_success', ['amount' => $count])); // redirect to previous URL: - return redirect($this->getPreviousUri('transactions.mass-edit-bulk.uri')); + return redirect($this->getPreviousUri('transactions.bulk-edit.uri')); } } \ No newline at end of file diff --git a/app/Http/Controllers/Transaction/MassController.php b/app/Http/Controllers/Transaction/MassController.php index 734bbe1397..f19e12df7b 100644 --- a/app/Http/Controllers/Transaction/MassController.php +++ b/app/Http/Controllers/Transaction/MassController.php @@ -214,7 +214,7 @@ class MassController extends Controller if (is_array($journalIds)) { foreach ($journalIds as $journalId) { $journal = $repository->find(intval($journalId)); - if ($journal) { + if (!is_null($journal)) { // get optional fields: $what = strtolower($journal->transactionTypeStr()); $sourceAccountId = $request->get('source_account_id')[$journal->id] ?? 0; diff --git a/app/Http/Requests/MassEditBulkJournalRequest.php b/app/Http/Requests/BulkEditJournalRequest.php similarity index 85% rename from app/Http/Requests/MassEditBulkJournalRequest.php rename to app/Http/Requests/BulkEditJournalRequest.php index c3024e6729..4aefd85029 100644 --- a/app/Http/Requests/MassEditBulkJournalRequest.php +++ b/app/Http/Requests/BulkEditJournalRequest.php @@ -1,6 +1,6 @@ 'required|belongsToUser:transaction_journals,id', + ]; } } diff --git a/app/Http/Requests/Request.php b/app/Http/Requests/Request.php index 92916f77f4..dca2d3f774 100644 --- a/app/Http/Requests/Request.php +++ b/app/Http/Requests/Request.php @@ -143,7 +143,7 @@ class Request extends FormRequest * * @return int */ - protected function integer(string $field): int + public function integer(string $field): int { return intval($this->get($field)); } diff --git a/app/Repositories/Journal/JournalRepository.php b/app/Repositories/Journal/JournalRepository.php index 43b66715fd..7bf6bb78cd 100644 --- a/app/Repositories/Journal/JournalRepository.php +++ b/app/Repositories/Journal/JournalRepository.php @@ -22,14 +22,15 @@ declare(strict_types=1); namespace FireflyIII\Repositories\Journal; +use DB; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; -use FireflyIII\Models\Category; use FireflyIII\Models\Note; use FireflyIII\Models\Tag; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionType; +use FireflyIII\Repositories\Tag\TagRepositoryInterface; use FireflyIII\User; use Illuminate\Support\Collection; use Illuminate\Support\MessageBag; @@ -435,44 +436,40 @@ class JournalRepository implements JournalRepositoryInterface } /** - * @param array $journals - * @param var $category - * @param var $tags + * @param TransactionJournal $journal + * @param int $budgetId * - * @return int + * @return TransactionJournal */ - public function updateBulk(array $journals, $category, $tags): int + public function updateBudget(TransactionJournal $journal, int $budgetId): TransactionJournal { - $count = 0; - foreach ($journals as $journalId) { - $journal = $this->find(intval($journalId)); - if ($journal) { - // update category: - if (isset($category)) { - $categoryToReplace = Category::firstOrCreateEncrypted(['name' => strval($category), 'user_id' => $journal->user->id]); - $journal->categories()->sync([$categoryToReplace->id]); - /** @var Transaction $transaction */ - foreach ($journal->transactions()->getResults() as $transaction) { - $transaction->categories()->sync([$categoryToReplace->id]); - $transaction->touch(); - } - } + if ($budgetId === 0) { + $journal->budgets()->detach(); + $journal->save(); - // update tags: - if (isset($tags)) { - $tagsToReplace = []; - foreach (explode(',', strval($tags)) as $tag) { - array_push($tagsToReplace, Tag::firstOrCreateEncrypted(['tag' => $tag, 'user_id' => $journal->user->id])->id); - } - $journal->tags()->sync($tagsToReplace); - } - - $journal->touch(); - ++$count; - } + return $journal; } + $this->storeBudgetWithJournal($journal, $budgetId); - return $count; + return $journal; + } + + /** + * @param TransactionJournal $journal + * @param string $category + * + * @return TransactionJournal + */ + public function updateCategory(TransactionJournal $journal, string $category): TransactionJournal + { + Log::debug(sprintf('In updateCategory("%s")', $category)); + $journal->categories()->detach(); + if (strlen($category) === 0) { + return $journal; + } + $this->storeCategoryWithJournal($journal, $category); + + return $journal; } /** @@ -535,4 +532,48 @@ class JournalRepository implements JournalRepositoryInterface return $journal; } + + /** + * Update tags. + * + * @param TransactionJournal $journal + * @param array $array + * + * @return bool + */ + public function updateTags(TransactionJournal $journal, array $array): bool + { + // create tag repository + /** @var TagRepositoryInterface $tagRepository */ + $tagRepository = app(TagRepositoryInterface::class); + + // find or create all tags: + $tags = []; + $ids = []; + foreach ($array as $name) { + if (strlen(trim($name)) > 0) { + $tag = Tag::firstOrCreateEncrypted(['tag' => $name, 'user_id' => $journal->user_id]); + $tags[] = $tag; + $ids[] = $tag->id; + } + } + + // delete all tags connected to journal not in this array: + if (count($ids) > 0) { + DB::table('tag_transaction_journal')->where('transaction_journal_id', $journal->id)->whereNotIn('tag_id', $ids)->delete(); + } + // if count is zero, delete them all: + if (0 === count($ids)) { + DB::table('tag_transaction_journal')->where('transaction_journal_id', $journal->id)->delete(); + } + + // connect each tag to journal (if not yet connected): + /** @var Tag $tag */ + foreach ($tags as $tag) { + Log::debug(sprintf('Will try to connect tag #%d to journal #%d.', $tag->id, $journal->id)); + $tagRepository->connect($journal, $tag); + } + + return true; + } } diff --git a/app/Repositories/Journal/JournalRepositoryInterface.php b/app/Repositories/Journal/JournalRepositoryInterface.php index 1e765722c0..5a99125173 100644 --- a/app/Repositories/Journal/JournalRepositoryInterface.php +++ b/app/Repositories/Journal/JournalRepositoryInterface.php @@ -161,13 +161,20 @@ interface JournalRepositoryInterface public function update(TransactionJournal $journal, array $data): TransactionJournal; /** - * @param array $journals - * @param var $category - * @param var $tags + * @param TransactionJournal $journal + * @param int $budgetId * - * @return int + * @return TransactionJournal */ - public function updateBulk(array $journals, $category, $tags): int; + public function updateBudget(TransactionJournal $journal, int $budgetId): TransactionJournal; + + /** + * @param TransactionJournal $journal + * @param string $category + * + * @return TransactionJournal + */ + public function updateCategory(TransactionJournal $journal, string $category): TransactionJournal; /** * @param TransactionJournal $journal @@ -176,4 +183,12 @@ interface JournalRepositoryInterface * @return TransactionJournal */ public function updateSplitJournal(TransactionJournal $journal, array $data): TransactionJournal; + + /** + * @param TransactionJournal $journal + * @param array $tags + * + * @return bool + */ + public function updateTags(TransactionJournal $journal, array $tags): bool; } diff --git a/app/Repositories/Journal/SupportJournalsTrait.php b/app/Repositories/Journal/SupportJournalsTrait.php index 6584e18a80..fd856d9b56 100644 --- a/app/Repositories/Journal/SupportJournalsTrait.php +++ b/app/Repositories/Journal/SupportJournalsTrait.php @@ -100,6 +100,7 @@ trait SupportJournalsTrait $budget = Budget::find($budgetId); $journal->budgets()->save($budget); } + $journal->touch(); } /** @@ -112,6 +113,7 @@ trait SupportJournalsTrait $category = Category::firstOrCreateEncrypted(['name' => $category, 'user_id' => $journal->user_id]); $journal->categories()->save($category); } + $journal->touch(); } /** diff --git a/app/Repositories/Journal/UpdateJournalsTrait.php b/app/Repositories/Journal/UpdateJournalsTrait.php index e56b62d73a..eb16eaeda3 100644 --- a/app/Repositories/Journal/UpdateJournalsTrait.php +++ b/app/Repositories/Journal/UpdateJournalsTrait.php @@ -37,6 +37,7 @@ use Log; */ trait UpdateJournalsTrait { + /** * When the user edits a split journal, each line is missing crucial data:. * @@ -121,47 +122,5 @@ trait UpdateJournalsTrait $transaction->save(); } - /** - * Update tags. - * - * @param TransactionJournal $journal - * @param array $array - * - * @return bool - */ - protected function updateTags(TransactionJournal $journal, array $array): bool - { - // create tag repository - /** @var TagRepositoryInterface $tagRepository */ - $tagRepository = app(TagRepositoryInterface::class); - // find or create all tags: - $tags = []; - $ids = []; - foreach ($array as $name) { - if (strlen(trim($name)) > 0) { - $tag = Tag::firstOrCreateEncrypted(['tag' => $name, 'user_id' => $journal->user_id]); - $tags[] = $tag; - $ids[] = $tag->id; - } - } - - // delete all tags connected to journal not in this array: - if (count($ids) > 0) { - DB::table('tag_transaction_journal')->where('transaction_journal_id', $journal->id)->whereNotIn('tag_id', $ids)->delete(); - } - // if count is zero, delete them all: - if (0 === count($ids)) { - DB::table('tag_transaction_journal')->where('transaction_journal_id', $journal->id)->delete(); - } - - // connect each tag to journal (if not yet connected): - /** @var Tag $tag */ - foreach ($tags as $tag) { - Log::debug(sprintf('Will try to connect tag #%d to journal #%d.', $tag->id, $journal->id)); - $tagRepository->connect($journal, $tag); - } - - return true; - } } diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 9f09d2d2b8..559caacafc 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -730,7 +730,10 @@ return [ 'mass_edit_journals' => 'Edit a number of transactions', 'mass_bulk_journals' => 'Bulk edit a number of transactions', 'mass_bulk_journals_explain' => 'If you do not want to change your transactions one-by-one using the mass-edit function, you can update them in one go. Simply select the preferred category, tag(s) or budget in the fields below, and all the transactions in the table will be updated.', - 'bulk_set_new_values' => 'Use the inputs below to set new values. If you leave them empty, they will be made empty for all. Also, note that only withdrawals will be given a budget.', + 'bulk_set_new_values' => 'Use the inputs below to set new values. If you leave them empty, they will be made empty for all. Also, note that only withdrawals will be given a budget.', + 'no_bulk_category' => 'Don\'t update category', + 'no_bulk_budget' => 'Don\'t update budget', + 'no_bulk_tags' => 'Don\'t update tag(s)', 'bulk_edit' => 'Bulk edit', 'cannot_edit_other_fields' => 'You cannot mass-edit other fields than the ones here, because there is no room to show them. Please follow the link and edit them by one-by-one, if you need to edit these fields.', 'no_budget' => 'none', diff --git a/resources/views/transactions/bulk/edit.twig b/resources/views/transactions/bulk/edit.twig index 1e8ece9167..5c7c3d0cc8 100644 --- a/resources/views/transactions/bulk/edit.twig +++ b/resources/views/transactions/bulk/edit.twig @@ -5,14 +5,8 @@ {% endblock %} {% block content %} -
    + - {% for journal in journals %} - {% if journal.transaction_count == 2 %} - - {% endif %} - {% endfor %} -
    @@ -38,6 +32,8 @@ {% for journal in journals %} + {% if journal.transaction_count == 2 %} + @@ -63,6 +59,7 @@ {% endfor %} + {% endif %} {% endfor %} diff --git a/routes/web.php b/routes/web.php index b482b2cc92..125308b036 100755 --- a/routes/web.php +++ b/routes/web.php @@ -787,7 +787,6 @@ Route::group( Route::get('edit/bulk/{journalList}', ['uses' => 'MassController@editBulk', 'as' => 'edit-bulk']); Route::get('delete/{journalList}', ['uses' => 'MassController@delete', 'as' => 'delete']); Route::post('update', ['uses' => 'MassController@update', 'as' => 'update']); - Route::post('update/bulk', ['uses' => 'MassController@updateBulk', 'as' => 'update-bulk']); Route::post('destroy', ['uses' => 'MassController@destroy', 'as' => 'destroy']); } ); From b37ed5ab23531b3b966cb226a8804da67c39e0a7 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 20:07:49 +0100 Subject: [PATCH 19/77] Code for #1077 --- resources/views/tags/index.twig | 65 +++++++-------------------------- 1 file changed, 13 insertions(+), 52 deletions(-) diff --git a/resources/views/tags/index.twig b/resources/views/tags/index.twig index e611b43801..6aee84d08b 100644 --- a/resources/views/tags/index.twig +++ b/resources/views/tags/index.twig @@ -8,6 +8,13 @@ {% if count == 0 %} {% include 'partials.empty' with {what: 'default', type: 'tags',route: route('tags.create')} %} {% else %} + {% for period,entries in clouds %} {% if entries|length > 0 %}
    @@ -31,59 +38,13 @@
    {% endif %} {% endfor %} - {# - -
    - - {% for type in types %} - {% if counts[type] > 0 %} -
    -
    -
    -

    {{ ('tag_title_'~type)|_ }}

    -
    -
    - {% for year,months in collection[type] %} -

    {{ year }}

    - - {% for month,tags in months %} -
    {{ month }}
    -

    - {% for tag in tags %} - - {% if tag.tagMode == 'nothing' %} - - {% endif %} - {% if tag.tagMode == 'balancingAct' %} - - {% endif %} - {% if tag.tagMode == 'advancePayment' %} - - {% endif %} - {{ tag.tag }} - - {% endfor %} -

    - {% endfor %} - {% endfor %} - - -
    - -
    -
    - {% endif %} - {% endfor %} - + - #} {% endif %} {% endblock %} From 6d9baaa4999127a584b87363dff8b1b1aa34515b Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 20:43:18 +0100 Subject: [PATCH 20/77] Updated language files. [skip ci] --- resources/lang/de_DE/config.php | 1 - resources/lang/de_DE/firefly.php | 9 +++++++-- resources/lang/de_DE/import.php | 11 +++-------- resources/lang/fr_FR/config.php | 1 - resources/lang/fr_FR/firefly.php | 7 +++++++ resources/lang/fr_FR/import.php | 11 +++-------- resources/lang/fr_FR/list.php | 1 + resources/lang/id_ID/config.php | 1 - resources/lang/id_ID/firefly.php | 7 +++++++ resources/lang/id_ID/import.php | 11 +++-------- resources/lang/id_ID/list.php | 1 + resources/lang/nl_NL/config.php | 1 - resources/lang/nl_NL/firefly.php | 7 +++++++ resources/lang/nl_NL/import.php | 11 +++-------- resources/lang/nl_NL/list.php | 1 + resources/lang/pl_PL/config.php | 1 - resources/lang/pl_PL/firefly.php | 7 +++++++ resources/lang/pl_PL/import.php | 11 +++-------- resources/lang/pl_PL/list.php | 1 + 19 files changed, 54 insertions(+), 47 deletions(-) diff --git a/resources/lang/de_DE/config.php b/resources/lang/de_DE/config.php index e5cce81e77..c3ea682c45 100644 --- a/resources/lang/de_DE/config.php +++ b/resources/lang/de_DE/config.php @@ -27,7 +27,6 @@ return [ 'date_time' => '%e %B %Y, @ %T', 'specific_day' => '%e. %B %Y', 'week_in_year' => 'Woche %W, %Y', - 'quarter_of_year' => '%B %Y', 'year' => '%Y', 'half_year' => '%B %Y', ]; diff --git a/resources/lang/de_DE/firefly.php b/resources/lang/de_DE/firefly.php index f5aa95a21d..5c009dfe61 100644 --- a/resources/lang/de_DE/firefly.php +++ b/resources/lang/de_DE/firefly.php @@ -729,7 +729,13 @@ Sollen zusätzlich Ihre Girokonten angezeigt werden?', 'reconcile_selected' => 'Ausgleichen', 'mass_delete_journals' => 'Löschen Sie eine Reihe von Überweisungen', 'mass_edit_journals' => 'Bearbeiten Sie eine Reihe von Überweisungen', - 'mass_edit_bulk_journals' => 'Bulk-Bearbeitung', + 'mass_bulk_journals' => 'Bulk edit a number of transactions', + 'mass_bulk_journals_explain' => 'If you do not want to change your transactions one-by-one using the mass-edit function, you can update them in one go. Simply select the preferred category, tag(s) or budget in the fields below, and all the transactions in the table will be updated.', + 'bulk_set_new_values' => 'Use the inputs below to set new values. If you leave them empty, they will be made empty for all. Also, note that only withdrawals will be given a budget.', + 'no_bulk_category' => 'Don\'t update category', + 'no_bulk_budget' => 'Don\'t update budget', + 'no_bulk_tags' => 'Don\'t update tag(s)', + 'bulk_edit' => 'Bulk edit', 'cannot_edit_other_fields' => 'You cannot mass-edit other fields than the ones here, because there is no room to show them. Please follow the link and edit them by one-by-one, if you need to edit these fields.', 'no_budget' => '(kein Budget)', 'no_budget_squared' => '(kein Budget)', @@ -741,7 +747,6 @@ Sollen zusätzlich Ihre Girokonten angezeigt werden?', 'opt_group_savingAsset' => 'Sparkonten', 'opt_group_sharedAsset' => 'Shared asset accounts', 'opt_group_ccAsset' => 'Kreditkarten', - 'mass_edit_bulk' => 'Bulk-Bearbeitung', // new user: 'welcome' => 'Willkommen bei Firefly!', diff --git a/resources/lang/de_DE/import.php b/resources/lang/de_DE/import.php index 8ed4cc8d53..f36c6554d0 100644 --- a/resources/lang/de_DE/import.php +++ b/resources/lang/de_DE/import.php @@ -92,7 +92,9 @@ return [ 'csv_roles_column' => 'Spalte', 'csv_roles_no_example_data' => 'Keine Beispieldaten vorhanden', 'csv_roles_submit' => 'Fortfahren mit Schritt 4/4', - 'csv_roles_warning' => 'Markieren Sie zumindest eine Spalte als Betragsspalte. Es empfiehlt sich auch, eine Spalte für die Beschreibung, das Datum und das Gegenkonto auszuwählen.', + + // not csv, but normal warning + 'roles_warning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.', // file, map data 'file_map_title' => 'Import Einrichten (4/4) - Import mit bereits vorhandenen Daten verknüpfen', @@ -153,11 +155,4 @@ return [ 'spectre_prerequisites_title' => 'Voraussetzungen für einen Import von Spectre', 'spectre_prerequisites_text' => 'Um Daten mithilfe der Spectre-API zu importieren, müssen Sie einige Daten angeben. Sie sind auf der secrets-Seite zu finden.', 'spectre_enter_pub_key' => 'Der Import funktioniert nur, wenn Sie diesen öffentlichen Schlüssel auf Ihrer Sicherheitsseite eingeben.', - 'spectre_select_country_title' => 'Land auswählen', - 'spectre_select_country_text' => 'Firefly III bietet eine große Auswahl an Banken und Websites, von denen Spectre Transaktionsdaten herunterladen kann. Diese Banken sind nach Ländern sortiert. Bitte beachten Sie, dass es ein "Pseudo-Land" gibt, wenn Sie etwas testen möchten. Wenn Sie aus anderen Finanzinstrumenten importieren möchten, verwenden Sie bitte das Pseudo-Land "Andere Finanzanwendungen". Standardmäßig erlaubt Spectre nur das Herunterladen von Daten von Pseudo-Banken. Stellen Sie ihren Status auf "Live" in Ihrem Dashboard, wenn Sie von echten Banken herunterladen möchten.', - 'spectre_select_provider_title' => 'Wählen Sie eine Bank', - 'spectre_select_provider_text' => 'Spectre unterstützt die folgenden Banken oder Finanzdienstleistungen, gruppiert nach Land. Bitte wählen Sie das aus, von dem Sie importieren möchten.', - 'spectre_input_fields_title' => 'Pflichtfelder', - 'spectre_input_fields_text' => 'Die folgenden Felder werden von ":provider" (aus: :country) benötigt.', - 'spectre_instructions_english' => 'Diese Anweisungen werden von "Spectre" für Sie zur Verfügung gestellt. Sie sind in Englisch:', ]; diff --git a/resources/lang/fr_FR/config.php b/resources/lang/fr_FR/config.php index 4db3999e58..80add95912 100644 --- a/resources/lang/fr_FR/config.php +++ b/resources/lang/fr_FR/config.php @@ -27,7 +27,6 @@ return [ 'date_time' => '%B %e %Y @ %T', 'specific_day' => '%e %B %Y', 'week_in_year' => 'Semaine %W %Y', - 'quarter_of_year' => '%B %Y', 'year' => '%Y', 'half_year' => '%B %Y', ]; diff --git a/resources/lang/fr_FR/firefly.php b/resources/lang/fr_FR/firefly.php index 7b6ae27046..50c53a3a4a 100644 --- a/resources/lang/fr_FR/firefly.php +++ b/resources/lang/fr_FR/firefly.php @@ -728,6 +728,13 @@ return [ 'reconcile_selected' => 'Rapproché', 'mass_delete_journals' => 'Supprimer un certain nombre de transactions', 'mass_edit_journals' => 'Modifier un certain nombre d’opérations', + 'mass_bulk_journals' => 'Bulk edit a number of transactions', + 'mass_bulk_journals_explain' => 'If you do not want to change your transactions one-by-one using the mass-edit function, you can update them in one go. Simply select the preferred category, tag(s) or budget in the fields below, and all the transactions in the table will be updated.', + 'bulk_set_new_values' => 'Use the inputs below to set new values. If you leave them empty, they will be made empty for all. Also, note that only withdrawals will be given a budget.', + 'no_bulk_category' => 'Don\'t update category', + 'no_bulk_budget' => 'Don\'t update budget', + 'no_bulk_tags' => 'Don\'t update tag(s)', + 'bulk_edit' => 'Bulk edit', 'cannot_edit_other_fields' => 'Vous ne pouvez pas modifier en masse d\'autres champs que ceux-ci, car il n’y a pas de place pour tous les montrer. S’il vous plaît suivez le lien et modifiez les par un par un, si vous devez modifier ces champs.', 'no_budget' => '(pas de budget)', 'no_budget_squared' => '(pas de budget)', diff --git a/resources/lang/fr_FR/import.php b/resources/lang/fr_FR/import.php index a9d043eccb..3964374016 100644 --- a/resources/lang/fr_FR/import.php +++ b/resources/lang/fr_FR/import.php @@ -92,7 +92,9 @@ return [ 'csv_roles_column' => 'Column', 'csv_roles_no_example_data' => 'No example data available', 'csv_roles_submit' => 'Continue with step 4/4', - 'csv_roles_warning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.', + + // not csv, but normal warning + 'roles_warning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.', // file, map data 'file_map_title' => 'Import setup (4/4) - Connect import data to Firefly III data', @@ -153,11 +155,4 @@ return [ 'spectre_prerequisites_title' => 'Prerequisites for an import using Spectre', 'spectre_prerequisites_text' => 'In order to import data using the Spectre API, you need to prove some secrets. They can be found on the secrets page.', 'spectre_enter_pub_key' => 'The import will only work when you enter this public key on your security page.', - 'spectre_select_country_title' => 'Select a country', - 'spectre_select_country_text' => 'Firefly III has a large selection of banks and sites from which Spectre can download transactional data. These banks are sorted by country. Please not that there is a "Fake Country" for when you wish to test something. If you wish to import from other financial tools, please use the imaginary country called "Other financial applications". By default, Spectre only allows you to download data from fake banks. Make sure your status is "Live" on your Dashboard if you wish to download from real banks.', - 'spectre_select_provider_title' => 'Select a bank', - 'spectre_select_provider_text' => 'Spectre supports the following banks or financial services grouped under :country. Please pick the one you wish to import from.', - 'spectre_input_fields_title' => 'Input mandatory fields', - 'spectre_input_fields_text' => 'The following fields are mandated by ":provider" (from :country).', - 'spectre_instructions_english' => 'These instructions are provided by Spectre for your convencience. They are in English:', ]; diff --git a/resources/lang/fr_FR/list.php b/resources/lang/fr_FR/list.php index fb3a23f5cd..a7f5f6e39b 100644 --- a/resources/lang/fr_FR/list.php +++ b/resources/lang/fr_FR/list.php @@ -89,6 +89,7 @@ return [ 'budget_count' => 'Nombre de budgets', 'rule_and_groups_count' => 'Nombre de règles et de groupes de règles', 'tags_count' => 'Nombre d’étiquettes', + 'tags' => 'Tags', 'inward' => 'Description vers l’intérieur', 'outward' => 'Description de l’extérieur', 'number_of_transactions' => 'Nombre de transactions', diff --git a/resources/lang/id_ID/config.php b/resources/lang/id_ID/config.php index f3cde3d997..4b966ecc7c 100644 --- a/resources/lang/id_ID/config.php +++ b/resources/lang/id_ID/config.php @@ -27,7 +27,6 @@ return [ 'date_time' => '%e %B %Y, @ %T', 'specific_day' => '%e %B %Y', 'week_in_year' => 'Minggu %W, %Y', - 'quarter_of_year' => '%B %Y', 'year' => '%Y', 'half_year' => '%B %Y', ]; diff --git a/resources/lang/id_ID/firefly.php b/resources/lang/id_ID/firefly.php index 0929bdded7..a204cc6fd2 100644 --- a/resources/lang/id_ID/firefly.php +++ b/resources/lang/id_ID/firefly.php @@ -728,6 +728,13 @@ return [ 'reconcile_selected' => 'Mendamaikan', 'mass_delete_journals' => 'Hapus sejumlah transaksi', 'mass_edit_journals' => 'Edit sejumlah transaksi', + 'mass_bulk_journals' => 'Bulk edit a number of transactions', + 'mass_bulk_journals_explain' => 'If you do not want to change your transactions one-by-one using the mass-edit function, you can update them in one go. Simply select the preferred category, tag(s) or budget in the fields below, and all the transactions in the table will be updated.', + 'bulk_set_new_values' => 'Use the inputs below to set new values. If you leave them empty, they will be made empty for all. Also, note that only withdrawals will be given a budget.', + 'no_bulk_category' => 'Don\'t update category', + 'no_bulk_budget' => 'Don\'t update budget', + 'no_bulk_tags' => 'Don\'t update tag(s)', + 'bulk_edit' => 'Bulk edit', 'cannot_edit_other_fields' => 'Anda tidak bisa menyunting bidang lain dari yang lain di sini, karena tidak ada ruang untuk ditunjukkan kepada mereka. Ikuti tautan dan edit dengan satu per satu, jika Anda perlu mengedit bidang ini.', 'no_budget' => '(no budget)', 'no_budget_squared' => '(tidak ada anggaran)', diff --git a/resources/lang/id_ID/import.php b/resources/lang/id_ID/import.php index 2a0166a207..c07316fb6c 100644 --- a/resources/lang/id_ID/import.php +++ b/resources/lang/id_ID/import.php @@ -92,7 +92,9 @@ return [ 'csv_roles_column' => 'Kolom', 'csv_roles_no_example_data' => 'Tidak ada data contoh yang tersedia', 'csv_roles_submit' => 'Lanjutkan dengan langkah 4/4', - 'csv_roles_warning' => 'Paling tidak, tandai satu kolom sebagai kolom jumlah. Sebaiknya pilih juga kolom untuk deskripsi, tanggal dan akun lawan.', + + // not csv, but normal warning + 'roles_warning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.', // file, map data 'file_map_title' => 'Pengaturan impor (4/4) - Sambungkan data impor ke data Firefly III', @@ -153,11 +155,4 @@ return [ 'spectre_prerequisites_title' => 'Prasyarat untuk impor menggunakan momok', 'spectre_prerequisites_text' => 'Untuk mengimpor data menggunakan API momok, Anda perlu membuktikan beberapa rahasia. Mereka dapat ditemukan di halaman rahasia.', 'spectre_enter_pub_key' => 'Impor hanya akan berfungsi saat Anda memasukkan kunci publik ini di halaman keamanan Anda.', - 'spectre_select_country_title' => 'Pilih negara', - 'spectre_select_country_text' => 'Firefly III memiliki banyak pilihan bank dan lokasi dari mana Spectre dapat mendownload data transaksional. Bank-bank ini diurutkan berdasarkan negara. Tolong jangan sampai ada "Negara Palsu" saat Anda ingin menguji sesuatu. Jika Anda ingin mengimpor dari alat keuangan lainnya, mohon gunakan negara imajiner yang disebut "aplikasi keuangan lainnya". Secara default, momok hanya memungkinkan Anda mendownload data dari bank palsu. Pastikan status Anda "Langsung" di Dasbor jika ingin men-download dari bank sebenarnya.', - 'spectre_select_provider_title' => 'Pilih bank', - 'spectre_select_provider_text' => 'Momok mendukung bank atau layanan keuangan berikut yang dikelompokkan di bawah :country. Silakan pilih yang ingin Anda impor.', - 'spectre_input_fields_title' => 'Masukkan bidang wajib', - 'spectre_input_fields_text' => 'Bidang berikut diamanatkan oleh ":provider" (dari :country).', - 'spectre_instructions_english' => 'Petunjuk ini diberikan oleh momok untuk convencience Anda. Mereka berbahasa Inggris:', ]; diff --git a/resources/lang/id_ID/list.php b/resources/lang/id_ID/list.php index 8efad5ca02..4a1557f98a 100644 --- a/resources/lang/id_ID/list.php +++ b/resources/lang/id_ID/list.php @@ -89,6 +89,7 @@ return [ 'budget_count' => 'Jumlah anggaran', 'rule_and_groups_count' => 'Jumlah aturan dan kelompok aturan', 'tags_count' => 'Jumlah label', + 'tags' => 'Tags', 'inward' => 'Deskripsi dalam', 'outward' => 'Deskripsi luar', 'number_of_transactions' => 'Jumlah transaksi', diff --git a/resources/lang/nl_NL/config.php b/resources/lang/nl_NL/config.php index c0e26bebd1..e473cc88d8 100644 --- a/resources/lang/nl_NL/config.php +++ b/resources/lang/nl_NL/config.php @@ -27,7 +27,6 @@ return [ 'date_time' => '%e %B %Y, @ %T', 'specific_day' => '%e %B %Y', 'week_in_year' => 'week %W, %Y', - 'quarter_of_year' => '%B %Y', 'year' => '%Y', 'half_year' => '%B %Y', ]; diff --git a/resources/lang/nl_NL/firefly.php b/resources/lang/nl_NL/firefly.php index 5b90aeaf84..12c71404c5 100644 --- a/resources/lang/nl_NL/firefly.php +++ b/resources/lang/nl_NL/firefly.php @@ -728,6 +728,13 @@ return [ 'reconcile_selected' => 'Verrekenen', 'mass_delete_journals' => 'Verwijder een aantal transacties', 'mass_edit_journals' => 'Wijzig een aantal transacties', + 'mass_bulk_journals' => 'Bulk edit a number of transactions', + 'mass_bulk_journals_explain' => 'If you do not want to change your transactions one-by-one using the mass-edit function, you can update them in one go. Simply select the preferred category, tag(s) or budget in the fields below, and all the transactions in the table will be updated.', + 'bulk_set_new_values' => 'Use the inputs below to set new values. If you leave them empty, they will be made empty for all. Also, note that only withdrawals will be given a budget.', + 'no_bulk_category' => 'Don\'t update category', + 'no_bulk_budget' => 'Don\'t update budget', + 'no_bulk_tags' => 'Don\'t update tag(s)', + 'bulk_edit' => 'Bulk edit', 'cannot_edit_other_fields' => 'Je kan andere velden dan de velden die je hier ziet niet groepsgewijs wijzigen. Er is geen ruimte om ze te laten zien. Als je deze velden toch wilt wijzigen, volg dan de link naast de transactie en wijzig ze stuk voor stuk.', 'no_budget' => '(geen budget)', 'no_budget_squared' => '(geen budget)', diff --git a/resources/lang/nl_NL/import.php b/resources/lang/nl_NL/import.php index 633d1bb239..5891f4f416 100644 --- a/resources/lang/nl_NL/import.php +++ b/resources/lang/nl_NL/import.php @@ -92,7 +92,9 @@ return [ 'csv_roles_column' => 'Kolom', 'csv_roles_no_example_data' => 'Geen voorbeeldgegevens', 'csv_roles_submit' => 'Ga verder met stap 4/4', - 'csv_roles_warning' => 'Geef minstens de kolom aan waar het bedrag in staat. Als het even kan, ook een kolom voor de omschrijving, datum en de andere rekening.', + + // not csv, but normal warning + 'roles_warning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.', // file, map data 'file_map_title' => 'Importinstellingen (4/4) - Link importgegevens aan Firefly III-gegevens', @@ -153,11 +155,4 @@ return [ 'spectre_prerequisites_title' => 'Voorwaarden voor een import via Spectre', 'spectre_prerequisites_text' => 'Als je gegevens wilt importeren via de Spectre API, moet je een aantal geheime codes bezitten. Ze zijn te vinden op de secrets pagina.', 'spectre_enter_pub_key' => 'Het importeren werkt alleen als je deze publieke sleutel op uw security pagina invoert.', - 'spectre_select_country_title' => 'Selecteer een land', - 'spectre_select_country_text' => 'Firefly III bevat een groot aantal banken en sites waaruit Spectre transactiegegevens voor je kan downloaden. Deze banken zijn gesorteerd per land. Let op: er is een "Fake Country" voor wanneer je dingen wilt testen. Als je uit andere financiële apps wilt importeren, gebruik dan het denkbeeldige land "Andere financiële applicaties". In Spectre kun je standaard alleen gegevens van nep-banken downloaden. Zorg ervoor dat je status "Live" is op je Dashboard als je wilt downloaden van echte banken.', - 'spectre_select_provider_title' => 'Selecteer een bank', - 'spectre_select_provider_text' => 'Spectre ondersteunt de volgende banken of financiële apps onder :country. Kies degene waaruit je wilt importeren.', - 'spectre_input_fields_title' => 'Verplichte velden', - 'spectre_input_fields_text' => 'De volgende velden zijn verplicht voor ":provider" (uit :country).', - 'spectre_instructions_english' => 'Deze instructies worden door Spectre verstrekt. Ze zijn in het Engels:', ]; diff --git a/resources/lang/nl_NL/list.php b/resources/lang/nl_NL/list.php index f0f84251eb..d3e08435cb 100644 --- a/resources/lang/nl_NL/list.php +++ b/resources/lang/nl_NL/list.php @@ -89,6 +89,7 @@ return [ 'budget_count' => 'Aantal budgetten', 'rule_and_groups_count' => 'Aantal regels en regelgroepen', 'tags_count' => 'Aantal tags', + 'tags' => 'Tags', 'inward' => 'Binnenwaartse beschrijving', 'outward' => 'Buitenwaartse beschrijving', 'number_of_transactions' => 'Aantal transacties', diff --git a/resources/lang/pl_PL/config.php b/resources/lang/pl_PL/config.php index 1dabe6d74c..2591be728d 100644 --- a/resources/lang/pl_PL/config.php +++ b/resources/lang/pl_PL/config.php @@ -27,7 +27,6 @@ return [ 'date_time' => '%e %B %Y o %T', 'specific_day' => '%e %B %Y', 'week_in_year' => 'Tydzień %W, %Y', - 'quarter_of_year' => '%B %Y', 'year' => '%Y', 'half_year' => '%B %Y', ]; diff --git a/resources/lang/pl_PL/firefly.php b/resources/lang/pl_PL/firefly.php index f61c03df21..a1f25e56dd 100644 --- a/resources/lang/pl_PL/firefly.php +++ b/resources/lang/pl_PL/firefly.php @@ -728,6 +728,13 @@ return [ 'reconcile_selected' => 'Uzgodnij', 'mass_delete_journals' => 'Usuń wiele transakcji', 'mass_edit_journals' => 'Modyfikuj wiele transakcji', + 'mass_bulk_journals' => 'Bulk edit a number of transactions', + 'mass_bulk_journals_explain' => 'If you do not want to change your transactions one-by-one using the mass-edit function, you can update them in one go. Simply select the preferred category, tag(s) or budget in the fields below, and all the transactions in the table will be updated.', + 'bulk_set_new_values' => 'Use the inputs below to set new values. If you leave them empty, they will be made empty for all. Also, note that only withdrawals will be given a budget.', + 'no_bulk_category' => 'Don\'t update category', + 'no_bulk_budget' => 'Don\'t update budget', + 'no_bulk_tags' => 'Don\'t update tag(s)', + 'bulk_edit' => 'Bulk edit', 'cannot_edit_other_fields' => 'Nie możesz masowo modyfikować innych pól niż te tutaj, ponieważ nie ma miejsca, aby je pokazać. Proszę użyć ikony edycji i edytować je jedno po drugim, jeśli chcesz edytować te pola.', 'no_budget' => '(bez budżetu)', 'no_budget_squared' => '(brak budżetu)', diff --git a/resources/lang/pl_PL/import.php b/resources/lang/pl_PL/import.php index 84d4183933..aa92233d3b 100644 --- a/resources/lang/pl_PL/import.php +++ b/resources/lang/pl_PL/import.php @@ -92,7 +92,9 @@ return [ 'csv_roles_column' => 'Kolumna', 'csv_roles_no_example_data' => 'Brak dostępnych przykładowych danych', 'csv_roles_submit' => 'Przejdź do kroku 4/4', - 'csv_roles_warning' => 'Zaznacz jedną z kolumn jako kolumnę z kwotami. Wskazane jest również wybranie kolumny dla opisu, daty oraz konta przeciwnego.', + + // not csv, but normal warning + 'roles_warning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.', // file, map data 'file_map_title' => 'Ustawienia importu (4/4) - Połącz dane importu z danymi Firefly III', @@ -153,11 +155,4 @@ return [ 'spectre_prerequisites_title' => 'Wymagania wstępne do importowania za pomocą Spectre', 'spectre_prerequisites_text' => 'Aby importować dane za pomocą interfejsu Spectre API, musisz udowodnić pewne sekrety. Można je znaleźć na stronie sekretów.', 'spectre_enter_pub_key' => 'Importowanie będzie działać tylko po wpisaniu tego klucza publicznego na stronie zabezpieczeń.', - 'spectre_select_country_title' => 'Wybierz kraj', - 'spectre_select_country_text' => 'Firefly III ma duży wybór banków i stron, z których Spectre może pobierać dane transakcyjne. Te banki są sortowane według krajów. Proszę nie pamiętać, że istnieje "Fałszywy Kraj", gdy chce się coś przetestować. Jeśli chcesz importować z innych narzędzi finansowych, użyj wyimaginowanego kraju o nazwie "Inne aplikacje finansowe". Domyślnie Spectre pozwala tylko pobierać dane z fałszywych banków. Upewnij się, że Twój status jest "Na żywo" na Twojejdesce rozdzielczej, jeśli chcesz pobierać z prawdziwych banków.', - 'spectre_select_provider_title' => 'Wybierz swój bank', - 'spectre_select_provider_text' => 'Spectre obsługuje następujące banki lub usługi finansowe pogrupowane pod :country. Wybierz ten, z którego chcesz importować.', - 'spectre_input_fields_title' => 'Wprowadź obowiązkowe pola', - 'spectre_input_fields_text' => 'Następujące pola są wymagane przez ":provider" (z: :country).', - 'spectre_instructions_english' => 'Instrukcje te są dostarczane przez Spectre dla Państwa komfortu. Są one w języku angielskim:', ]; diff --git a/resources/lang/pl_PL/list.php b/resources/lang/pl_PL/list.php index 2358e5fb9d..528ec7174f 100644 --- a/resources/lang/pl_PL/list.php +++ b/resources/lang/pl_PL/list.php @@ -89,6 +89,7 @@ return [ 'budget_count' => 'Liczba budżetów', 'rule_and_groups_count' => 'Liczba reguł i grup reguł', 'tags_count' => 'Liczba tagów', + 'tags' => 'Tags', 'inward' => 'Opis wewnętrzny', 'outward' => 'Opis zewnętrzny', 'number_of_transactions' => 'Liczba transakcji', From d9dd00eb39fdded9f89a659147003c3035b382b2 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 30 Dec 2017 21:04:04 +0100 Subject: [PATCH 21/77] Fix #1074 --- app/Http/Controllers/AccountController.php | 9 +++++ app/Http/Requests/AccountFormRequest.php | 1 + app/Models/Account.php | 9 +++++ app/Models/Bill.php | 2 +- app/Models/Note.php | 4 +- .../Account/AccountRepository.php | 39 +++++++++++++++++++ resources/lang/en_US/firefly.php | 1 + resources/views/accounts/create.twig | 1 + resources/views/accounts/edit.twig | 1 + resources/views/accounts/show.twig | 13 +++++++ 10 files changed, 77 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index 421425a835..bb9d6d0b04 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -29,6 +29,7 @@ use FireflyIII\Helpers\Collector\JournalCollectorInterface; use FireflyIII\Http\Requests\AccountFormRequest; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; +use FireflyIII\Models\Note; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; @@ -195,7 +196,15 @@ class AccountController extends Controller 'openingBalance' => $openingBalanceAmount, 'virtualBalance' => $account->virtual_balance, 'currency_id' => $currency->id, + 'notes' => '', ]; + /** @var Note $note */ + $note = $account->notes()->first(); + if (null !== $note) { + $preFilled['notes'] = $note->text; + } + + $request->session()->flash('preFilled', $preFilled); return view( diff --git a/app/Http/Requests/AccountFormRequest.php b/app/Http/Requests/AccountFormRequest.php index 9b640d7b08..efb721d45a 100644 --- a/app/Http/Requests/AccountFormRequest.php +++ b/app/Http/Requests/AccountFormRequest.php @@ -57,6 +57,7 @@ class AccountFormRequest extends Request 'openingBalanceDate' => $this->date('openingBalanceDate'), 'ccType' => $this->string('ccType'), 'ccMonthlyPaymentDate' => $this->string('ccMonthlyPaymentDate'), + 'notes' => $this->string('notes'), ]; } diff --git a/app/Models/Account.php b/app/Models/Account.php index 11a1061320..b04ec43d8e 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -345,6 +345,15 @@ class Account extends Model $this->attributes['iban'] = Crypt::encrypt($value); } + /** + * @codeCoverageIgnore + * Get all of the notes. + */ + public function notes() + { + return $this->morphMany(Note::class, 'noteable'); + } + /** * @codeCoverageIgnore * diff --git a/app/Models/Bill.php b/app/Models/Bill.php index b7dcb125cd..ec09d0fcc7 100644 --- a/app/Models/Bill.php +++ b/app/Models/Bill.php @@ -132,7 +132,7 @@ class Bill extends Model */ public function notes() { - return $this->morphMany('FireflyIII\Models\Note', 'noteable'); + return $this->morphMany(Note::class, 'noteable'); } /** diff --git a/app/Models/Note.php b/app/Models/Note.php index df8b0de9de..b9fa882cd5 100644 --- a/app/Models/Note.php +++ b/app/Models/Note.php @@ -57,8 +57,8 @@ class Note extends Model /** * @codeCoverageIgnore - * Get all of the owning noteable models. Currently piggy bank and - * transaction journal. + * + * Get all of the owning noteable models. */ public function noteable() { diff --git a/app/Repositories/Account/AccountRepository.php b/app/Repositories/Account/AccountRepository.php index 3c404fdf88..291166d511 100644 --- a/app/Repositories/Account/AccountRepository.php +++ b/app/Repositories/Account/AccountRepository.php @@ -29,6 +29,7 @@ use FireflyIII\Models\Account; use FireflyIII\Models\AccountMeta; use FireflyIII\Models\AccountType; use FireflyIII\Models\Category; +use FireflyIII\Models\Note; use FireflyIII\Models\Tag; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionJournal; @@ -176,6 +177,11 @@ class AccountRepository implements AccountRepositoryInterface } $this->deleteInitialBalance($newAccount); + // update note: + if (isset($data['notes'])) { + $this->updateNote($newAccount, $data['notes']); + } + return $newAccount; } @@ -199,6 +205,12 @@ class AccountRepository implements AccountRepositoryInterface $this->updateInitialBalance($account, $data); } + // update note: + if (isset($data['notes']) && null !== $data['notes']) { + $this->updateNote($account, strval($data['notes'])); + } + + return $account; } @@ -507,6 +519,33 @@ class AccountRepository implements AccountRepositoryInterface } } + /** + * @param Account $account + * @param string $note + * + * @return bool + */ + protected function updateNote(Account $account, string $note): bool + { + if (0 === strlen($note)) { + $dbNote = $account->notes()->first(); + if (null !== $dbNote) { + $dbNote->delete(); + } + + return true; + } + $dbNote = $account->notes()->first(); + if (null === $dbNote) { + $dbNote = new Note(); + $dbNote->noteable()->associate($account); + } + $dbNote->text = trim($note); + $dbNote->save(); + + return true; + } + /** * @param Account $account * @param TransactionJournal $journal diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 559caacafc..2325b3e52a 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -746,6 +746,7 @@ return [ 'opt_group_savingAsset' => 'Savings accounts', 'opt_group_sharedAsset' => 'Shared asset accounts', 'opt_group_ccAsset' => 'Credit cards', + 'notes' => 'Notes', // new user: 'welcome' => 'Welcome to Firefly!', diff --git a/resources/views/accounts/create.twig b/resources/views/accounts/create.twig index 50c35a5eae..3ad8c7dbc5 100644 --- a/resources/views/accounts/create.twig +++ b/resources/views/accounts/create.twig @@ -44,6 +44,7 @@ {{ ExpandedForm.select('accountRole', roles,null,{'helpText' : 'asset_account_role_help'|_}) }} {{ ExpandedForm.nonSelectableBalance('virtualBalance') }} {% endif %} + {{ ExpandedForm.textarea('notes',null,{helpText: trans('firefly.field_supports_markdown')}) }}
    diff --git a/resources/views/accounts/edit.twig b/resources/views/accounts/edit.twig index a3ed653d29..96f13de5a3 100644 --- a/resources/views/accounts/edit.twig +++ b/resources/views/accounts/edit.twig @@ -48,6 +48,7 @@ {{ ExpandedForm.nonSelectableBalance('virtualBalance',null, {'currency' : currency }) }} {% endif %} + {{ ExpandedForm.textarea('notes',null,{helpText: trans('firefly.field_supports_markdown')}) }} {{ ExpandedForm.checkbox('active','1') }}
    diff --git a/resources/views/accounts/show.twig b/resources/views/accounts/show.twig index 74fdaf1889..edf3a22fe5 100644 --- a/resources/views/accounts/show.twig +++ b/resources/views/accounts/show.twig @@ -70,6 +70,19 @@ + {% if account.notes.count == 1 %} +
    +
    +
    +

    {{ 'notes'|_ }}

    +
    +
    + {{ account.notes.first.text|markdown }} +
    +
    +
    + {% endif %} + {% if periods.count > 0 %}
    From c0961d438d2c599f15565085d7064f553ada194e Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 31 Dec 2017 09:01:27 +0100 Subject: [PATCH 22/77] Rename a view. --- app/Http/Controllers/Transaction/MassController.php | 2 +- .../views/transactions/{mass-delete.twig => mass/delete.twig} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename resources/views/transactions/{mass-delete.twig => mass/delete.twig} (100%) diff --git a/app/Http/Controllers/Transaction/MassController.php b/app/Http/Controllers/Transaction/MassController.php index f19e12df7b..cbae31b26c 100644 --- a/app/Http/Controllers/Transaction/MassController.php +++ b/app/Http/Controllers/Transaction/MassController.php @@ -72,7 +72,7 @@ class MassController extends Controller // put previous url in session $this->rememberPreviousUri('transactions.mass-delete.uri'); - return view('transactions.mass-delete', compact('journals', 'subTitle')); + return view('transactions.mass.delete', compact('journals', 'subTitle')); } /** diff --git a/resources/views/transactions/mass-delete.twig b/resources/views/transactions/mass/delete.twig similarity index 100% rename from resources/views/transactions/mass-delete.twig rename to resources/views/transactions/mass/delete.twig From f8dda5b4a6dbce1f9e656041fc69b509b406973d Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 31 Dec 2017 09:10:38 +0100 Subject: [PATCH 23/77] Added Turkish. --- config/firefly.php | 5 +- resources/lang/de_DE/firefly.php | 1 + resources/lang/fr_FR/firefly.php | 1 + resources/lang/id_ID/firefly.php | 1 + resources/lang/nl_NL/firefly.php | 15 +- resources/lang/nl_NL/import.php | 2 +- resources/lang/pl_PL/firefly.php | 15 +- resources/lang/pl_PL/import.php | 2 +- resources/lang/pl_PL/list.php | 2 +- resources/lang/tr_TR/auth.php | 37 + resources/lang/tr_TR/bank.php | 24 + resources/lang/tr_TR/breadcrumbs.php | 55 ++ resources/lang/tr_TR/config.php | 32 + resources/lang/tr_TR/csv.php | 24 + resources/lang/tr_TR/demo.php | 37 + resources/lang/tr_TR/firefly.php | 1151 ++++++++++++++++++++++++++ resources/lang/tr_TR/form.php | 209 +++++ resources/lang/tr_TR/import.php | 158 ++++ resources/lang/tr_TR/intro.php | 133 +++ resources/lang/tr_TR/list.php | 103 +++ resources/lang/tr_TR/pagination.php | 26 + resources/lang/tr_TR/passwords.php | 30 + resources/lang/tr_TR/validation.php | 102 +++ 23 files changed, 2146 insertions(+), 19 deletions(-) create mode 100644 resources/lang/tr_TR/auth.php create mode 100644 resources/lang/tr_TR/bank.php create mode 100644 resources/lang/tr_TR/breadcrumbs.php create mode 100644 resources/lang/tr_TR/config.php create mode 100644 resources/lang/tr_TR/csv.php create mode 100644 resources/lang/tr_TR/demo.php create mode 100644 resources/lang/tr_TR/firefly.php create mode 100644 resources/lang/tr_TR/form.php create mode 100644 resources/lang/tr_TR/import.php create mode 100644 resources/lang/tr_TR/intro.php create mode 100644 resources/lang/tr_TR/list.php create mode 100644 resources/lang/tr_TR/pagination.php create mode 100644 resources/lang/tr_TR/passwords.php create mode 100644 resources/lang/tr_TR/validation.php diff --git a/config/firefly.php b/config/firefly.php index ba2d8eae30..bbfd688ffb 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -33,7 +33,7 @@ return [ 'is_demo_site' => false, ], 'encryption' => (is_null(env('USE_ENCRYPTION')) || env('USE_ENCRYPTION') === true), - 'version' => '4.6.12', + 'version' => '4.7.0', 'maxUploadSize' => 15242880, 'allowedMimes' => ['image/png', 'image/jpeg', 'application/pdf', 'text/plain'], 'list_length' => 10, @@ -119,6 +119,7 @@ return [ 'id_ID' => ['name_locale' => 'Bahasa Indonesia', 'name_english' => 'Indonesian'], 'nl_NL' => ['name_locale' => 'Nederlands', 'name_english' => 'Dutch'], 'pl_PL' => ['name_locale' => 'Polski', 'name_english' => 'Polish '], + 'tr_TR' => ['name_locale' => 'Türkçe', 'name_english' => 'Turkish'], // incomplete languages: //'pt_BR' => ['name_locale' => 'Português do Brasil', 'name_english' => 'Portuguese (Brazil)'], @@ -126,7 +127,7 @@ return [ //'es_ES' => ['name_locale' => 'Spanish', 'name_english' => 'Spanish'], //'ru_RU' => ['name_locale' => 'Русский', 'name_english' => 'Russian'], //'sl_SI' => ['name_locale' => 'Slovenščina', 'name_english' => 'Slovenian'], - //'tr_TR' => ['name_locale' => 'Türkçe', 'name_english' => 'Turkish'], + // ], 'transactionTypesByWhat' => [ 'expenses' => ['Withdrawal'], diff --git a/resources/lang/de_DE/firefly.php b/resources/lang/de_DE/firefly.php index 5c009dfe61..19f21826e3 100644 --- a/resources/lang/de_DE/firefly.php +++ b/resources/lang/de_DE/firefly.php @@ -747,6 +747,7 @@ Sollen zusätzlich Ihre Girokonten angezeigt werden?', 'opt_group_savingAsset' => 'Sparkonten', 'opt_group_sharedAsset' => 'Shared asset accounts', 'opt_group_ccAsset' => 'Kreditkarten', + 'notes' => 'Notes', // new user: 'welcome' => 'Willkommen bei Firefly!', diff --git a/resources/lang/fr_FR/firefly.php b/resources/lang/fr_FR/firefly.php index 50c53a3a4a..4f5515d70f 100644 --- a/resources/lang/fr_FR/firefly.php +++ b/resources/lang/fr_FR/firefly.php @@ -746,6 +746,7 @@ return [ 'opt_group_savingAsset' => 'Comptes d\'épargne', 'opt_group_sharedAsset' => 'Comptes d\'actifs partagés', 'opt_group_ccAsset' => 'Cartes de crédit', + 'notes' => 'Notes', // new user: 'welcome' => 'Bienvenue sur Firefly !', diff --git a/resources/lang/id_ID/firefly.php b/resources/lang/id_ID/firefly.php index a204cc6fd2..306be4f209 100644 --- a/resources/lang/id_ID/firefly.php +++ b/resources/lang/id_ID/firefly.php @@ -746,6 +746,7 @@ return [ 'opt_group_savingAsset' => 'Menyimpan akun', 'opt_group_sharedAsset' => 'Akun aset bersama', 'opt_group_ccAsset' => 'Kartu kredit', + 'notes' => 'Notes', // new user: 'welcome' => 'Selamat datang di Firefly!', diff --git a/resources/lang/nl_NL/firefly.php b/resources/lang/nl_NL/firefly.php index 12c71404c5..f16d62bdf7 100644 --- a/resources/lang/nl_NL/firefly.php +++ b/resources/lang/nl_NL/firefly.php @@ -728,13 +728,13 @@ return [ 'reconcile_selected' => 'Verrekenen', 'mass_delete_journals' => 'Verwijder een aantal transacties', 'mass_edit_journals' => 'Wijzig een aantal transacties', - 'mass_bulk_journals' => 'Bulk edit a number of transactions', - 'mass_bulk_journals_explain' => 'If you do not want to change your transactions one-by-one using the mass-edit function, you can update them in one go. Simply select the preferred category, tag(s) or budget in the fields below, and all the transactions in the table will be updated.', - 'bulk_set_new_values' => 'Use the inputs below to set new values. If you leave them empty, they will be made empty for all. Also, note that only withdrawals will be given a budget.', - 'no_bulk_category' => 'Don\'t update category', - 'no_bulk_budget' => 'Don\'t update budget', - 'no_bulk_tags' => 'Don\'t update tag(s)', - 'bulk_edit' => 'Bulk edit', + 'mass_bulk_journals' => 'Wijzig een aantal transacties in bulk', + 'mass_bulk_journals_explain' => 'Als je je transacties niet één voor één wilt wijzigen met de daarvoor bestemde functie, kan je ze ook allemaal in één keer wijzigen. Selecteer de gewenste categorie, budget of tag(s) hieronder en alle transacties in de tabel zullen deze waarde krijgen.', + 'bulk_set_new_values' => 'Gebruik de velden hieronder voor nieuwe waarden. Als je ze leeg laat, worden ze leeggemaakt voor alle gebruikers. Denk eraan dat alleen uitgaven een budget kunnen krijgen.', + 'no_bulk_category' => 'Update categorie niet', + 'no_bulk_budget' => 'Update budget niet', + 'no_bulk_tags' => 'Update tag(s) niet', + 'bulk_edit' => 'Wijzig in bulk', 'cannot_edit_other_fields' => 'Je kan andere velden dan de velden die je hier ziet niet groepsgewijs wijzigen. Er is geen ruimte om ze te laten zien. Als je deze velden toch wilt wijzigen, volg dan de link naast de transactie en wijzig ze stuk voor stuk.', 'no_budget' => '(geen budget)', 'no_budget_squared' => '(geen budget)', @@ -746,6 +746,7 @@ return [ 'opt_group_savingAsset' => 'Spaarrekeningen', 'opt_group_sharedAsset' => 'Gedeelde betaalrekeningen', 'opt_group_ccAsset' => 'Creditcards', + 'notes' => 'Notities', // new user: 'welcome' => 'Welkom bij Firefly!', diff --git a/resources/lang/nl_NL/import.php b/resources/lang/nl_NL/import.php index 5891f4f416..3e35459647 100644 --- a/resources/lang/nl_NL/import.php +++ b/resources/lang/nl_NL/import.php @@ -94,7 +94,7 @@ return [ 'csv_roles_submit' => 'Ga verder met stap 4/4', // not csv, but normal warning - 'roles_warning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.', + 'roles_warning' => 'Geef minstens de kolom aan waar het bedrag in staat. Als het even kan, ook een kolom voor de omschrijving, datum en de andere rekening.', // file, map data 'file_map_title' => 'Importinstellingen (4/4) - Link importgegevens aan Firefly III-gegevens', diff --git a/resources/lang/pl_PL/firefly.php b/resources/lang/pl_PL/firefly.php index a1f25e56dd..14d0aed590 100644 --- a/resources/lang/pl_PL/firefly.php +++ b/resources/lang/pl_PL/firefly.php @@ -728,13 +728,13 @@ return [ 'reconcile_selected' => 'Uzgodnij', 'mass_delete_journals' => 'Usuń wiele transakcji', 'mass_edit_journals' => 'Modyfikuj wiele transakcji', - 'mass_bulk_journals' => 'Bulk edit a number of transactions', - 'mass_bulk_journals_explain' => 'If you do not want to change your transactions one-by-one using the mass-edit function, you can update them in one go. Simply select the preferred category, tag(s) or budget in the fields below, and all the transactions in the table will be updated.', - 'bulk_set_new_values' => 'Use the inputs below to set new values. If you leave them empty, they will be made empty for all. Also, note that only withdrawals will be given a budget.', - 'no_bulk_category' => 'Don\'t update category', - 'no_bulk_budget' => 'Don\'t update budget', - 'no_bulk_tags' => 'Don\'t update tag(s)', - 'bulk_edit' => 'Bulk edit', + 'mass_bulk_journals' => 'Hurtowa edycja wielu transakcji', + 'mass_bulk_journals_explain' => 'Jeśli nie chcesz modyfikować transakcji jedna po drugiej za pomocą funkcji masowej edycji, możesz zaktualizować je za jednym razem. Po prostu wybierz preferowaną kategorię, tag(i) lub budżet w poniższych polach i wszystkie transakcje z tabeli zostaną zaktualizowane.', + 'bulk_set_new_values' => 'Użyj pól poniżej, aby ustawić nowe wartości. Jeżeli zostawisz je puste, zostaną wyczyszczone dla wszystkich transakcji. Pamiętaj także, że budżet zostanie ustawiony tylko dla wypłat.', + 'no_bulk_category' => 'Nie aktualizuj kategorii', + 'no_bulk_budget' => 'Nie aktualizuj budżetu', + 'no_bulk_tags' => 'Nie aktualizuj tagów', + 'bulk_edit' => 'Hurtowa edycja', 'cannot_edit_other_fields' => 'Nie możesz masowo modyfikować innych pól niż te tutaj, ponieważ nie ma miejsca, aby je pokazać. Proszę użyć ikony edycji i edytować je jedno po drugim, jeśli chcesz edytować te pola.', 'no_budget' => '(bez budżetu)', 'no_budget_squared' => '(brak budżetu)', @@ -746,6 +746,7 @@ return [ 'opt_group_savingAsset' => 'Konta oszczędnościowe', 'opt_group_sharedAsset' => 'Współdzielone konta aktywów', 'opt_group_ccAsset' => 'Karty kredytowe', + 'notes' => 'Notatki', // new user: 'welcome' => 'Witaj w Firefly!', diff --git a/resources/lang/pl_PL/import.php b/resources/lang/pl_PL/import.php index aa92233d3b..6a147a80cc 100644 --- a/resources/lang/pl_PL/import.php +++ b/resources/lang/pl_PL/import.php @@ -94,7 +94,7 @@ return [ 'csv_roles_submit' => 'Przejdź do kroku 4/4', // not csv, but normal warning - 'roles_warning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.', + 'roles_warning' => 'Zaznacz jedną z kolumn jako kolumnę z kwotami. Wskazane jest również wybranie kolumny dla opisu, daty oraz konta przeciwnego.', // file, map data 'file_map_title' => 'Ustawienia importu (4/4) - Połącz dane importu z danymi Firefly III', diff --git a/resources/lang/pl_PL/list.php b/resources/lang/pl_PL/list.php index 528ec7174f..d9b4b8ece0 100644 --- a/resources/lang/pl_PL/list.php +++ b/resources/lang/pl_PL/list.php @@ -89,7 +89,7 @@ return [ 'budget_count' => 'Liczba budżetów', 'rule_and_groups_count' => 'Liczba reguł i grup reguł', 'tags_count' => 'Liczba tagów', - 'tags' => 'Tags', + 'tags' => 'Tagi', 'inward' => 'Opis wewnętrzny', 'outward' => 'Opis zewnętrzny', 'number_of_transactions' => 'Liczba transakcji', diff --git a/resources/lang/tr_TR/auth.php b/resources/lang/tr_TR/auth.php new file mode 100644 index 0000000000..f33b5ad7cb --- /dev/null +++ b/resources/lang/tr_TR/auth.php @@ -0,0 +1,37 @@ +. + */ +declare(strict_types=1); + +return [ + /* + |-------------------------------------------------------------------------- + | Authentication Language Lines + |-------------------------------------------------------------------------- + | + | The following language lines are used during authentication for various + | messages that we need to display to the user. You are free to modify + | these language lines according to your application's requirements. + | + */ + + 'failed' => 'Bu kimlik bilgileri kayıtlarımızla uyuşmuyor.', + 'throttle' => 'Fazla sayıda oturum açma girişimi. Lütfen :seconds saniye sonra tekrar deneyiniz.', +]; diff --git a/resources/lang/tr_TR/bank.php b/resources/lang/tr_TR/bank.php new file mode 100644 index 0000000000..ef0d636f91 --- /dev/null +++ b/resources/lang/tr_TR/bank.php @@ -0,0 +1,24 @@ +. + */ +declare(strict_types=1); + +return [ +]; diff --git a/resources/lang/tr_TR/breadcrumbs.php b/resources/lang/tr_TR/breadcrumbs.php new file mode 100644 index 0000000000..8242f30c69 --- /dev/null +++ b/resources/lang/tr_TR/breadcrumbs.php @@ -0,0 +1,55 @@ +. + */ +declare(strict_types=1); + +return [ + 'home' => 'Anasayfa', + 'edit_currency' => '":name" para birimini düzenle', + 'delete_currency' => '":name" para birimini sil', + 'newPiggyBank' => 'Yeni bir kumbara oluştur', + 'edit_piggyBank' => '":name" kumbarasını düzenle', + 'preferences' => 'Tercihler', + 'profile' => 'Profil', + 'changePassword' => 'Şifrenizi değiştirin', + 'change_email' => 'E-posta adresini değiştir', + 'bills' => 'Fatura', + 'newBill' => 'Yeni Fatura', + 'edit_bill' => 'Faturayı düzenle \'\': name\'\'', + 'delete_bill' => 'Faturayı \'\': name\'\'', + 'reports' => 'Raporlar', + 'search_result' => '":query" için arama sonuçları', + 'withdrawal_list' => 'Giderler', + 'deposit_list' => 'Varlık, gelir ve mevduatlar', + 'transfer_list' => 'Transferler', + 'transfers_list' => 'Transferler', + 'reconciliation_list' => 'Mutabakatlar', + 'create_withdrawal' => 'Yeni para çekme oluştur', + 'create_deposit' => 'Yeni mevduat oluştur', + 'create_transfer' => 'Yeni transfer oluştur', + 'edit_journal' => '":description" işlemini düzenle', + 'edit_reconciliation' => 'Düzenle \'\': açıklama\'\'', + 'delete_journal' => '":description" işlemini sil', + 'tags' => 'Etiketler', + 'createTag' => 'Yeni etiket oluştur', + 'edit_tag' => '":tag" etiketini düzenle', + 'delete_tag' => '":tag" etiketini sil', + 'delete_journal_link' => 'Hesap hareketleri arasındaki bağlantıyı sil', +]; diff --git a/resources/lang/tr_TR/config.php b/resources/lang/tr_TR/config.php new file mode 100644 index 0000000000..086fd1a53e --- /dev/null +++ b/resources/lang/tr_TR/config.php @@ -0,0 +1,32 @@ +. + */ +declare(strict_types=1); + +return [ + 'locale' => 'tr, Turkish, tr_TR, tr_TR.utf8, tr_TR.S.UTF-8', + 'month' => '%B %Y', + 'month_and_day' => '%e %B %Y', + 'date_time' => '%e %B %Y, @ %T', + 'specific_day' => '%e %B %Y', + 'week_in_year' => '%W. hafta, %Y', + 'year' => '%Y', + 'half_year' => '%B %Y', +]; diff --git a/resources/lang/tr_TR/csv.php b/resources/lang/tr_TR/csv.php new file mode 100644 index 0000000000..d61316b632 --- /dev/null +++ b/resources/lang/tr_TR/csv.php @@ -0,0 +1,24 @@ +. + */ +declare(strict_types=1); + +return [ +]; diff --git a/resources/lang/tr_TR/demo.php b/resources/lang/tr_TR/demo.php new file mode 100644 index 0000000000..f5f05e11c3 --- /dev/null +++ b/resources/lang/tr_TR/demo.php @@ -0,0 +1,37 @@ +. + */ +declare(strict_types=1); + +return [ + 'no_demo_text' => 'Maalesef, bu sayfa için daha fazla demo açıklama metni yok.', + 'see_help_icon' => 'Ancak, sağ üst köşedeki simge size daha fazla bilgi verebilir.', + 'index' => 'Firefly III\'e hoş geldiniz! Bu sayfada, finansal durumunuzun özetini görebilirsiniz. Daha fazla bilgi için Hesapları → Varlık Hesaplarını ve tabii ki deBütçe ve Rapor sayfalarına göz atın. Ya da sadece bir göz gezdirin ve ne durumda olduğunuzu görün.', + 'accounts-index' => 'Varlık hesapları kişisel banka hesaplarınızdır. Gider hesaplar, mağazalar ve arkadaşlar gibi para harcadığınız hesaplardır. Gelir hesapları, işiniz veya diğer gelir kaynakları gibi para aldığınız hesaplardır. Bu sayfada bunları düzenleyebilir veya silebilirsiniz.', + 'budgets-index' => 'Bu sayfa bütçelerinize genel bir bakış sunmaktadır. Üstteki çubuk bütçelenebilecek miktarı gösterir. Bu sağdaki tutara tıklayarak herhangi bir dönem için özelleştirilebilir. Gerçekte harcadığınız tutar aşağıdaki barda gösterilir. Aşağıda, bütçe başına harcamalar ve bütçeniz için ne kadar para ayırdığınız gösterilir.', + 'reports-index-start' => 'Firefly III supports a number of types of reports. Read about them by clicking on the -icon in the top right corner.', + 'reports-index-examples' => 'Şu örnekleri incelediğinizden emin olun: a aylık finansal genel bakış, a yıllık finansal genel bakış ve a bütçe genel bakışı.', + 'currencies-index' => 'Firefly III, birden fazla para birimini destekliyor. Euro varsayılan olmasına rağmen, ABD Doları ve diğer birçok para birimine ayarlanabilir. Gördüğünüz gibi küçük bir para birimi seçeneği dedahil edilmiştir ancak isterseniz kendi para biriminizi ekleyebilirsiniz. Varsayılan para birimi değiştirilebilir ancak mevcut işlemlerin para birimi değiştirilemez: Firefly III, aynı anda birden çok para biriminin kullanılmasını destekler.', + 'transactions-index' => 'Bu masraflar, mevduatlar ve transferler için özellikle yaratıcı değildir. Bunlar otomatik olarak oluşturuldu.', + 'piggy-banks-index' => 'Gördüğünüz gibi, üç tane banka var. Her domuzcuk bankasındaki para miktarını değiştirmek için artı ve eksi düğmelerini kullanın. Her domuzcuk bankasının yönetimini görmek için domuzcuk\'un üzerine tıklayın.', + 'import-index' => 'Elbette, herhangi bir CVS dosyası Firefly III\'e aktarılabilir', + 'import-configure-security' => 'Güvenlik kaygıları nedeniyle yüklemeniz yerel bir dosya ile değiştirildi.', + 'import-configure-configuration' => 'Aşağıda gördüğünüz yapılandırma, yerel dosya için doğrudur.', +]; diff --git a/resources/lang/tr_TR/firefly.php b/resources/lang/tr_TR/firefly.php new file mode 100644 index 0000000000..4234fa3511 --- /dev/null +++ b/resources/lang/tr_TR/firefly.php @@ -0,0 +1,1151 @@ +. + */ +declare(strict_types=1); + +return [ + // general stuff: + 'close' => 'Kapat', + 'actions' => 'Eylemler', + 'edit' => 'Düzenle', + 'delete' => 'Sil', + 'welcomeBack' => 'Neler oluyor?', + 'everything' => 'Her şey', + 'today' => 'bugün', + 'customRange' => 'Özel menzil', + 'apply' => 'Uygula', + 'select_date' => 'Tarih Seç..', + 'cancel' => 'İptal', + 'from' => 'Gönderen', + 'to' => 'Alıcı', + 'showEverything' => 'Her şeyi göster', + 'never' => 'Asla', + 'no_results_for_empty_search' => 'Aramanız boştu, bu nedenle hiçbir şey bulunamadı.', + 'removed_amount' => '" :amount" kaldırıldı', + 'added_amount' => ':amount eklendi', + 'asset_account_role_help' => 'Seçiminizden kaynaklanan ekstra seçenekler daha sonra ayarlanabilir.', + 'Opening balance' => 'Açılış bakiyesi', + 'create_new_stuff' => 'Yeni bir şey oluştur', + 'new_withdrawal' => 'Yeni para çekme', + 'new_deposit' => 'Yeni Depozito', + 'new_transfer' => 'Yeni transfer', + 'new_asset_account' => 'Yeni varlık hesabı', + 'new_expense_account' => 'Yeni gider hesabı', + 'new_revenue_account' => 'Yeni Gelir Hesabı', + 'new_budget' => 'Yeni bütçe', + 'new_bill' => 'Yeni Fatura', + 'block_account_logout' => 'Çıkış yaptınız. Engellenen hesaplar bu siteyi kullanamaz. Geçerli bir e-posta adresiyle kayıt oldunuz mu?', + 'flash_success' => 'Başarılı!', + 'flash_info' => 'İleti', + 'flash_warning' => 'Uyarı!', + 'flash_error' => 'Hata!', + 'flash_info_multiple' => 'Bir ileti var|:count ileti var', + 'flash_error_multiple' => 'Bir hata var|:count hata var', + 'net_worth' => 'Net değer', + 'route_has_no_help' => 'Bu rota için yardım yok.', + 'two_factor_welcome' => 'Merhaba, :user!', + 'two_factor_enter_code' => 'Devam etmek için lütfen iki faktörlü kimlik doğrulama kodunuzu girin. Uygulamanız sizin için oluşturabilir.', + 'two_factor_code_here' => 'Kodu buraya girin', + 'two_factor_title' => 'İki faktörlü kimlik doğrulaması', + 'authenticate' => 'Kimliği doğrula', + 'two_factor_forgot_title' => 'Kayıp iki faktörlü kimlik doğrulaması', + 'two_factor_forgot' => 'İki faktörlü kimlik doğrulama cihazını unuttum.', + 'two_factor_lost_header' => 'İki faktörlü kimlik doğrulamanızı mı kaybettiniz?', + 'two_factor_lost_intro' => 'Ne yazık ki, bu web arayüzünden sıfırlayabileceğiniz bir şey değil. İki seçeneğiniz var.', + 'two_factor_lost_fix_self' => 'Kendi Firefly III örneğinizi çalıştırıyorsanız, talimatlar için storage/logs\'daki günlükleri kontrol edin.', + 'two_factor_lost_fix_owner' => 'Aksi takdirde, site sahibine (: site_owner) e-posta gönderin ve iki faktörlü kimlik doğrulamasını sıfırlamasını isteyin.', + 'warning_much_data' => ': gün günlük verinin yüklenmesi biraz zaman alabilir.', + 'registered' => 'Başarıyla kaydoldunuz!', + 'Default asset account' => 'Varsayılan varlık hesabı', + 'no_budget_pointer' => 'Henüz bütçeniz yok gibi görünüyor. Bütçe sayfasında bütçe oluşturun. Bütçeler giderleri takip etmenize yardımcı olabilir.', + 'Savings account' => 'Birikim Hesabı', + 'Credit card' => 'Kredi Kartı', + 'source_accounts' => 'Kaynak Hesap(lar)', + 'destination_accounts' => 'Hedef Hesap(lar)', + 'user_id_is' => 'Kullanıcı kimliğiniz :kullanıcı', + 'field_supports_markdown' => 'Bu alan Markdown\'u destekliyor.', + 'need_more_help' => 'Firefly III kullanımında daha fazla yardıma ihtiyacınız olursa, lütfen Github\'da bir talep açın.', + 'reenable_intro_text' => 'Ayrıca tanıtım kılavuzunu yeniden etkinleştirebilirsiniz.', + 'intro_boxes_after_refresh' => 'Sayfayı yenilediğinizde tanıtım kutuları yeniden görünecektir.', + 'show_all_no_filter' => 'Tüm işlemleri, tarihe göre gruplamadan gösterin.', + 'expenses_by_category' => 'Kategoriye göre giderler', + 'expenses_by_budget' => 'Bütçeye göre giderler', + 'income_by_category' => 'Kategoriye göre gelir', + 'expenses_by_asset_account' => 'Varlık hesabına göre giderler', + 'expenses_by_expense_account' => 'Gider hesabına göre giderler', + 'cannot_redirect_to_account' => 'Firefly III sizi doğru sayfaya yönlendiremiyor. Özür dileriz.', + 'sum_of_expenses' => 'Giderlerin Toplamı', + 'sum_of_income' => 'Gelirin Toplamı', + 'spent_in_specific_budget' => 'Miktar ": bütçe" harcandı', + 'sum_of_expenses_in_budget' => 'Harcanan toplam bütçe \'\':budget\'\'', + 'left_in_budget_limit' => 'Bütçeye göre harcama ayrıldı', + 'current_period' => 'Cari dönem', + 'show_the_current_period_and_overview' => 'Geçerli periyodu ve genel bakışı göster', + 'pref_languages_locale' => 'İngilizce dışındaki bir dilin düzgün çalışması için, işletim sisteminizin doğru yerel ayar bilgileri ile donatılmış olmalıdır. Aksi halde, tarih, para birim verileri ve tutarı yanlış gösterilebilir.', + 'budget_in_period' => ':star ve :end arasında \'\':name\'\' bütçesinin bütün işlemleri', + 'chart_budget_in_period' => ':start ve :end arasında \'\':name\'\' bütçesinin bütün işlemleri için grafik', + 'chart_account_in_period' => ':start ve :end arasında \'\':name\'\' hesabında bütün işlemler için grafik', + 'chart_category_in_period' => ':start ve :end arasında \'\':name\'\' kategorisindeki bütün işlemler için grafik', + 'chart_category_all' => '\'\':name\'\' kategorisinde bütün işlemler çizelgesi', + 'clone_withdrawal' => 'Bu para çekimini klonla', + 'clone_deposit' => 'Bu depozitoyu klonla', + 'clone_transfer' => 'Bu transferi kopyala', + 'multi_select_no_selection' => 'Hiçbiri seçilmedi', + 'multi_select_all_selected' => 'Tümü seçildi', + 'multi_select_filter_placeholder' => 'Bul..', + 'between_dates_breadcrumb' => ':başlangıç ve :son arasında', + 'all_journals_without_budget' => 'Bütçesiz tüm işlemler', + 'journals_without_budget' => 'Bütçesiz İşlemler', + 'all_journals_without_category' => 'Kategorisiz tüm işlemler', + 'journals_without_category' => 'Kategorisiz işlemler', + 'all_journals_for_account' => ':name hesabındaki tüm işlemler', + 'chart_all_journals_for_account' => ':name hesabındaki tüm işlemlerin grafiği', + 'journals_in_period_for_account' => ':start ile :end tarihleri arasında :name hesabından yapılan tüm işlemler', + 'transferred' => 'Transfer yapıldı', + 'all_withdrawal' => 'Tüm giderler', + 'all_transactions' => 'Tüm işlemler', + 'title_withdrawal_between' => 'Başlangıç ve Bitiş arasındaki tüm harcamalar', + 'all_deposit' => 'Toplam varlık', + 'title_deposit_between' => 'Başlangıç ve Bitiş arasındaki tüm gelir', + 'all_transfers' => 'Tüm transferler', + 'title_transfers_between' => ':start ile :end tarihleri arasındaki tüm işlemler', + 'all_transfer' => 'Tüm transferler', + 'all_journals_for_tag' => '":tag" etiketiyle yapılan tüm işlemler', + 'title_transfer_between' => ':start ile :end tarihleri arasındaki tüm işlemler', + 'all_journals_for_category' => '":name" kategorisindeki tüm işlemler', + 'all_journals_for_budget' => '":name" bütçesindeki tüm işlemler', + 'chart_all_journals_for_budget' => ':name bütçesindeki tüm işlemlerin grafiği', + 'journals_in_period_for_category' => ':start ile :end tarihleri arasında :name kategorisinde yapılan tüm işlemler', + 'journals_in_period_for_tag' => ':start ile :end tarihleri arasında :tag etiketiyle yapılan tüm işlemler', + 'not_available_demo_user' => 'Erişmeye çalıştığınız özellik, demo kullanıcıları tarafından kullanılamaz.', + 'exchange_rate_instructions' => '"@name" varlık hesabı yalnızca @native_currency\'daki işlemleri kabul eder. Bunun yerine @foreign_currency\'u kullanmak istiyorsanız, @native_currency\'daki karşılığının da bilinmesini sağlayın:', + 'transfer_exchange_rate_instructions' => 'Kaynak varlık hesabı "@source_name" sadece @soruce_currency işlemlerini kabul eder. Hedef varlık hesabı "@dest_name" sadece @dest_currency işlemlerini kabul eder. Aktarılan tutarı her iki para biriminde de doğru olarak girmeniz gerekir.', + 'transaction_data' => 'İşlem Verileri', + 'invalid_server_configuration' => 'Geçersiz sunucu yapılandırması', + 'invalid_locale_settings' => 'Firefly III parasal tutarları biçimlendiremiyor çünkü gerekli paketler sunucunuzda yok. Bunun nasıl yapıldığıyla ilgili talimatlar var.', + 'quickswitch' => 'Hızlı anahtar', + + // check for updates: + 'update_check_title' => 'Check for updates', + 'admin_update_check_title' => 'Automatically check for update', + 'admin_update_check_explain' => 'Firefly III can check for updates automatically. When you enable this setting, it will contact Github to see if a new version of Firefly III is available. When it is, you will get a notification. You can test this notification using the button on the right. Please indicate below if you want Firefly III to check for updates.', + 'check_for_updates_permission' => 'Firefly III can check for updates, but it needs your permission to do so. Please go to the administration to indicate if you would like this feature to be enabled.', + 'updates_ask_me_later' => 'Ask me later', + 'updates_do_not_check' => 'Do not check for updates', + 'updates_enable_check' => 'Enable the check for updates', + 'admin_update_check_now_title' => 'Check for updates now', + 'admin_update_check_now_explain' => 'If you press the button, Firefly III will see if your current version is the latest.', + 'check_for_updates_button' => 'Check now!', + 'update_new_version_alert' => 'A new version is available. You are running v:your_version, the latest version is v:new_version which was released on :date.', + 'update_current_version_alert' => 'You are running v:version, which is the latest available release.', + 'update_newer_version_alert' => 'You are running v:your_version, which is newer than the latest release, v:new_version.', + 'update_check_error' => 'An error occurred while checking for updates. Please view the log files.', + + // search + 'search' => 'Ara', + 'search_query' => 'Sorgu', + 'search_found_transactions' => 'Bulunan işlem sayısı:', + 'general_search_error' => 'Arama yapılırken bir hata oluştu. Daha fazla bilgi için günlük dosyalarına bakın.', + 'search_box' => 'Ara', + 'search_box_intro' => 'Firefly III\'ün arama fonksiyonuna hoş geldiniz. Kutuya arama sorgunuzu giriniz. Arama oldukça gelişmiş olduğundan yardım dosyasını kontrol ettiğinizden emin olun.', + 'search_error' => 'Arama sırasında hata oluştu', + 'search_searching' => 'Aranıyor ...', + 'search_results' => 'Arama sonuçları', + + // repeat frequencies: + 'repeat_freq_yearly' => 'yıllık', + 'repeat_freq_half-year' => 'her yarı yıl', + 'repeat_freq_quarterly' => 'üç aylık', + 'repeat_freq_monthly' => 'aylık', + 'repeat_freq_weekly' => 'haftalık', + 'weekly' => 'haftalık', + 'quarterly' => 'üç aylık', + 'half-year' => 'her yarı yıl', + 'yearly' => 'yıllık', + + // export data: + 'import_and_export' => 'İçe al ve dışarı aktar', + 'export_data' => 'Veriyi dışarı aktar', + 'export_and_backup_data' => 'Dışa aktarma ve yedekleme', + 'export_data_intro' => 'Yedekleme amacıyla, başka bir sisteme geçiş yaparken veya başka bir ateş Firefly III yüklemesine geçerken.', + 'export_format' => 'Dışa Aktarma Biçimi', + 'export_format_csv' => 'Virgülle ayrılmış değerler (CSV file)', + 'export_format_mt940' => 'MT940 uyumlu format', + 'include_old_uploads_help' => 'Firefly III geçmişte aktarmış olduğunuz CSV dosyalarınızı herhangi bir yere atmıyor. Onları ihracata ekleyebilirsiniz.', + 'do_export' => 'Dışa Aktar', + 'export_status_never_started' => 'Dışa aktarım henüz başlamadı', + 'export_status_make_exporter' => 'İhracatçı oluşturuluyor...', + 'export_status_collecting_journals' => 'İşlemleriniz Hesaplanıyor...', + 'export_status_collected_journals' => 'İşlemlerinizi Hesaplandınız!', + 'export_status_converting_to_export_format' => 'İşlemleriniz Değiştiriliyor...', + 'export_status_converted_to_export_format' => 'İşlemlerinizi Değiştirdiniz!', + 'export_status_creating_journal_file' => 'Dışa aktarım dosyası oluşturuluyor...', + 'export_status_created_journal_file' => 'Dışa aktarım dosyası oluşturuldu!', + 'export_status_collecting_attachments' => 'Tüm eklentilerinizi topluyorsunuz...', + 'export_status_collected_attachments' => 'Tüm eklentilerinizi topladınız!', + 'export_status_collecting_old_uploads' => 'Tüm yüklemeleriniz toplanıyor...', + 'export_status_collected_old_uploads' => 'Tüm yüklemeleriniz toplandı!', + 'export_status_creating_zip_file' => 'Zip dosyası oluşturuluyor...', + 'export_status_created_zip_file' => 'Zip dosyası oluşturuldu!', + 'export_status_finished' => 'Satış başarıyla tamamlandı! Yuppi!', + 'export_data_please_wait' => 'Lütfen Bekle...', + + // rules + 'rules' => 'Kurallar', + 'rule_name' => 'Kural adı', + 'rule_triggers' => 'Kural ne zaman etkinleşir', + 'rule_actions' => 'Kural olacak', + 'new_rule' => 'Yeni kural', + 'new_rule_group' => 'Yeni kural grubu', + 'rule_priority_up' => 'Kurala daha fazla öncelik ver', + 'rule_priority_down' => 'Kurala daha az öncelik ver', + 'make_new_rule_group' => 'Yeni kural grubu oluştur', + 'store_new_rule_group' => 'Yeni kural grubunu kaydet', + 'created_new_rule_group' => 'Yeni kural grubu \'\': başlık\'\' saklandı!', + 'updated_rule_group' => 'Başarıyla güncellenen kural grubu: \'\'title\'\'.', + 'edit_rule_group' => '\'\': Başlık\'\' kural grubunu düzenle', + 'delete_rule_group' => '\'\': Başlık\'\' kural grubunu sil', + 'deleted_rule_group' => 'Silinen kural grubu \'\'title\'\'', + 'update_rule_group' => 'Grup bilgilerini güncelle', + 'no_rules_in_group' => 'Bu grupta kural yok', + 'move_rule_group_up' => 'Grup kuralını yukarı taşı', + 'move_rule_group_down' => 'Grup kuralını aşağı taşı', + 'save_rules_by_moving' => 'Bu kuralları başka bir kural grubuna taşıyarak kaydedin:', + 'make_new_rule' => '\'\': Başlık\'\' kural grubunda yeni kural oluşturun', + 'rule_help_stop_processing' => 'Bu kutuyu işaretlediğinizde, bu grupta sonraki kurallar yürütülemez.', + 'rule_help_active' => 'Aktif olmayan kurallar asla çalışmaz.', + 'stored_new_rule' => '":title" başlığıyla saklanmış yeni kural', + 'deleted_rule' => '":title" başlığıyla saklanmış kuralı sil', + 'store_new_rule' => 'Yeni kural sakla', + 'updated_rule' => '":rule" başlığı ile la güncellenmiş kural', + 'default_rule_group_name' => 'Varsayılan kurallar', + 'default_rule_group_description' => 'Tüm kurallarınız belli bir grupta değil.', + 'default_rule_name' => 'İlk varsayılan kuralınız', + 'default_rule_description' => 'Bu kural bir örnektir. Güvenle silebilirsiniz.', + 'default_rule_trigger_description' => 'The Man Who Sold the World', + 'default_rule_trigger_from_account' => 'David Bowie', + 'default_rule_action_prepend' => 'Bought the world from ', + 'default_rule_action_set_category' => 'Büyük giderler', + 'trigger' => 'Tetikleyici', + 'trigger_value' => 'Değer üzerindeki tetikleyici', + 'stop_processing_other_triggers' => 'Diğer tetikleyicilerin işlenmesini durdur', + 'add_rule_trigger' => 'Yeni tetikleyici ekle', + 'action' => 'Eylem', + 'action_value' => 'Eylem değeri', + 'stop_executing_other_actions' => 'Diğer işlemleri yürütmeyi durdur', + 'add_rule_action' => 'Yeni eylem ekle', + 'edit_rule' => '\'\': Başlık\'\' düzenle', + 'delete_rule' => '\'\': Başlık\'\' kuralını sil', + 'update_rule' => 'Güncelleme kuralları', + 'test_rule_triggers' => 'Eşleşen işlemleri görün', + 'warning_transaction_subset' => 'Performans nedenlerinden bu liste :max_num_transactions ile sınırlıdır ve sadece eşleşen işlemlerin bir alt kümesini gösterebilir', + 'warning_no_matching_transactions' => 'Uygun olmayan işlemler bulundu. Performans nedenleriyle sadece son :num_transactions +işlemlerin kontrol edildiğini lütfen unutmayın.', + 'warning_no_valid_triggers' => 'Geçerli tetikleyiciler sağlanmadı.', + 'apply_rule_selection' => 'İşleminizin bir bölümüne \'\': başlık\'\' kuralını uygulayın', + 'apply_rule_selection_intro' => '":title" gibi kurallar normalde sadece yeni ve güncellenen işlemlerde geçerlidir ama Firefly III\'e onları mevcut işlemlerinizin istediğiniz bölümlerinde uygulanmasını söyleyebilirsiniz. Bu bir kuralı değiştirdiğinizde ve bunun diğer tüm işlemlerde uygulanmasını istediğinizde yararlı olabilir.', + 'include_transactions_from_accounts' => 'Bu hesaplardan gelen işlemleri dahil et', + 'applied_rule_selection' => 'Seçtiğiniz ": title" kuralı uygulandı.', + 'execute' => 'Çalıştır', + 'apply_rule_group_selection' => 'İşlemlerinizin bir bölümüne \'\': title\'\' kural grubunu uygulayın', + 'apply_rule_group_selection_intro' => '":title" gibi kural grupları normalde sadece yeni ve güncellenen işlemlerde geçerlidir ama Firefly III\'e onları mevcut işlemlerinizin istediğiniz bölümlerinde uygulanmasını söyleyebilirsiniz. Bu bir kural grubunu değiştirdiğinizde ve bunun diğer tüm işlemlerde uygulanmasını istediğinizde yararlı olabilir.', + 'applied_rule_group_selection' => 'Seçeneğinize \'\': başlık\'\' kuralı uygulandı.', + + // actions and triggers + 'rule_trigger_user_action' => 'Kullanıcı işlemi \'\': trigger_value\'\'', + 'rule_trigger_from_account_starts_choice' => 'Kaynak hesabı ile başlar..', + 'rule_trigger_from_account_starts' => 'Kaynak hesabı \'\': trigger_value\'\' ile başlar', + 'rule_trigger_from_account_ends_choice' => 'Kaynak hesabı ile bitiyor..', + 'rule_trigger_from_account_ends' => 'Kaynak hesabı \'\': trigger_value\'\' ile bitiyor', + 'rule_trigger_from_account_is_choice' => 'Kaynak Hesap..', + 'rule_trigger_from_account_is' => 'Kaynak hesabı \'\': trigger_value\'\'', + 'rule_trigger_from_account_contains_choice' => 'Kaynak hesap içerir..', + 'rule_trigger_from_account_contains' => 'Kaynak hesabı \'\': trigger_value\'\' içeriyor', + 'rule_trigger_to_account_starts_choice' => 'Hedef hesap başlıyor..', + 'rule_trigger_to_account_starts' => 'Hedef hesap \'\': trigger_value\'\' ile başlar', + 'rule_trigger_to_account_ends_choice' => 'Hedef hesap ile bitiyor..', + 'rule_trigger_to_account_ends' => 'Hedef hesap \'\': trigger_value\'\' ile bitiyor', + 'rule_trigger_to_account_is_choice' => 'Hedef Hesap..', + 'rule_trigger_to_account_is' => 'Hedef hesap \'\': trigger_value\'\'', + 'rule_trigger_to_account_contains_choice' => 'Hedef hesap içeriyor..', + 'rule_trigger_to_account_contains' => 'Hedef hesap ": trigger_value\'\' içeriyor', + 'rule_trigger_transaction_type_choice' => 'İşlem türü..', + 'rule_trigger_transaction_type' => 'İşlem türü ": trigger_value"', + 'rule_trigger_category_is_choice' => 'Kategori..', + 'rule_trigger_category_is' => 'Kategori \'\': trigger_value\'\'', + 'rule_trigger_amount_less_choice' => 'Miktar şundan az..', + 'rule_trigger_amount_less' => 'Miktar :trigger_value \'den daha düşük', + 'rule_trigger_amount_exactly_choice' => 'Tutar..', + 'rule_trigger_amount_exactly' => 'Miktar :trigger_value', + 'rule_trigger_amount_more_choice' => 'Miktar fazla..', + 'rule_trigger_amount_more' => 'Miktar :trigger_value \'den daha büyük', + 'rule_trigger_description_starts_choice' => 'Açıklama başlıyor..', + 'rule_trigger_description_starts' => 'Açıklama ": trigger_value" ile başlar', + 'rule_trigger_description_ends_choice' => 'Açıklama bitiyor..', + 'rule_trigger_description_ends' => 'Açıklama \'\':trigger_value\'\' ile bitiyor', + 'rule_trigger_description_contains_choice' => 'Açıklama içerir..', + 'rule_trigger_description_contains' => 'Açıklama \'\': trigger_value\'\' içerir', + 'rule_trigger_description_is_choice' => 'Açıklama..', + 'rule_trigger_description_is' => 'Açıklama ": trigger_value"', + 'rule_trigger_budget_is_choice' => 'Bütçe..', + 'rule_trigger_budget_is' => 'Bütçe ": trigger_value"', + 'rule_trigger_tag_is_choice' => '(A) etiketi..', + 'rule_trigger_tag_is' => 'Bir etiket \'\':trigger_value\'\'', + 'rule_trigger_has_attachments_choice' => 'En son bir çok eklentileri var', + 'rule_trigger_has_attachments' => 'En azından :trigger_value eklentisine(eklentilerine) sahip olsun', + 'rule_trigger_store_journal' => 'Bir işlem oluşturulduğunda', + 'rule_trigger_update_journal' => 'Bir işlem güncellendiğinde', + 'rule_trigger_has_no_category_choice' => 'Kategorisi yok', + 'rule_trigger_has_no_category' => 'İşlemin kategorisi yok', + 'rule_trigger_has_any_category_choice' => 'Bir kategorisi var', + 'rule_trigger_has_any_category' => 'İşlemin bir kategorisi var', + 'rule_trigger_has_no_budget_choice' => 'Bütçe yok', + 'rule_trigger_has_no_budget' => 'İşlem bütçesi yok', + 'rule_trigger_has_any_budget_choice' => 'Bir bütçesi var', + 'rule_trigger_has_any_budget' => 'İşlemin bir bütçesi var', + 'rule_trigger_has_no_tag_choice' => 'Etiket yok', + 'rule_trigger_has_no_tag' => 'İşlemin etiketi yok', + 'rule_trigger_has_any_tag_choice' => 'Bir veya birçok etiketleri var', + 'rule_trigger_has_any_tag' => 'İşlemin bir veya birçok etiketi var', + 'rule_trigger_any_notes_choice' => 'Notları var', + 'rule_trigger_any_notes' => 'İşlemin notları var', + 'rule_trigger_no_notes_choice' => 'Notu yok', + 'rule_trigger_no_notes' => 'İşlemin notu yok', + 'rule_trigger_notes_are_choice' => 'Notlar..', + 'rule_trigger_notes_are' => 'Notlar ": trigger_value"', + 'rule_trigger_notes_contain_choice' => 'Notlar içeriyor..', + 'rule_trigger_notes_contain' => 'Notlar ": trigger_value" içerir', + 'rule_trigger_notes_start_choice' => 'Notlar ile başlıyor..', + 'rule_trigger_notes_start' => 'Notlar ": trigger_value" ile başlar', + 'rule_trigger_notes_end_choice' => 'Notlar bitiyor..', + 'rule_trigger_notes_end' => 'Notlar ": trigger_value" ile bitiyor', + 'rule_action_set_category' => 'Kategoriyi \'\': action_value\'\' olarak ayarla', + 'rule_action_clear_category' => 'Kategoriyi temizle', + 'rule_action_set_budget' => 'Bütçeyi \'\': action_value\'\' olarak ayarlayın', + 'rule_action_clear_budget' => 'Bütçeyi temizle', + 'rule_action_add_tag' => '\'\': Action_value\'\' etiketi ekle', + 'rule_action_remove_tag' => '": Action_value" etiketini kaldır', + 'rule_action_remove_all_tags' => 'Tüm etiketleri kaldır', + 'rule_action_set_description' => 'Açıklamayı ": action_value" olarak ayarla', + 'rule_action_append_description' => 'Açıklamayı ": action_value" ile ekle', + 'rule_action_prepend_description' => 'Açıklamayı ": action_value" ile ekleyin', + 'rule_action_set_category_choice' => 'Kategori ayarla..', + 'rule_action_clear_category_choice' => 'Tüm kategoriyi temizle', + 'rule_action_set_budget_choice' => 'Bütçe ayarla..', + 'rule_action_clear_budget_choice' => 'Herhangi bir bütçeyi temizle', + 'rule_action_add_tag_choice' => 'Etiket ekle..', + 'rule_action_remove_tag_choice' => 'Etiketi kaldır..', + 'rule_action_remove_all_tags_choice' => 'Tüm etiketleri kaldır', + 'rule_action_set_description_choice' => 'Açıklama belirtiniz..', + 'rule_action_append_description_choice' => 'İle açıklamayı ekle..', + 'rule_action_prepend_description_choice' => 'Açıklamanın başlığını ekleyin..', + 'rule_action_set_source_account_choice' => 'Kaynak hesabı ayarla...', + 'rule_action_set_source_account' => 'Kaynak hesaba :action_value ayarlayınız', + 'rule_action_set_destination_account_choice' => 'Hedef hesabı ayarla...', + 'rule_action_set_destination_account' => 'Hedef hesaba :action_value ayarlayınız', + 'rule_action_append_notes_choice' => 'İle not ekle..', + 'rule_action_append_notes' => '": Action_value" ile not ekle', + 'rule_action_prepend_notes_choice' => 'İle notları başlatın..', + 'rule_action_prepend_notes' => 'Notlarına başına ":action_value" ekleyiniz', + 'rule_action_clear_notes_choice' => 'Herhangi bir notu kaldır', + 'rule_action_clear_notes' => 'Herhangi bir notu kaldır', + 'rule_action_set_notes_choice' => 'Notları şuna ayarla..', + 'rule_action_set_notes' => 'Notları \'\': action_value\'\' olarak ayarla', + + 'rules_have_read_warning' => 'Uyarıyı okudun mu?', + 'apply_rule_warning' => 'Uyarı: çok sayıda işleme bir kuralı(grubu) uygulamak çok zaman alabilir ve zaman aşımına uğrayabilir. Eğer öyle olursa kural(grup) işlemlerin belli olmayan bir kısmına uygulanacaktır. Bu mali yönetiminizi lime lime edebilir. Lütfen dikkatli olun.', + + // tags + 'store_new_tag' => 'Yeni etiket kaydet', + 'update_tag' => 'Etiketi Güncelle', + 'no_location_set' => 'Konum ayarlanamadı.', + 'meta_data' => 'Meta veri', + 'location' => 'Konum', + 'without_date' => 'Tarihsiz', + 'result' => 'Sonuç', + 'sums_apply_to_range' => 'Tüm toplamlar seçili aralıkta geçerlidir', + 'mapbox_api_key' => 'Haritayı kullanmak için Mapbox\'dan bir API anahtarı alın. .env dosyanızı açın ve sonrasında bu kodu girin MAPBOX_API_KEY=.', + 'press_tag_location' => 'Etiketin konumunun ayarlamak için sağ tıklayın yada basılı tutun.', + 'clear_location' => 'Konumu temizle', + + // preferences + 'pref_home_screen_accounts' => 'Ana ekran hesapları', + 'pref_home_screen_accounts_help' => 'Giriş sayfasında hangi hesaplar görüntülensin?', + 'pref_view_range' => 'Görüş Mesafesi', + 'pref_view_range_help' => 'Bazı dönemlerde grafikler otomatik olarak gruplandırılır. Hangi dönemi tercih etmek istersiniz?', + 'pref_1D' => 'Bir gün', + 'pref_1W' => 'Bir hafta', + 'pref_1M' => 'Bir ay', + 'pref_3M' => 'Üç ay (çeyrek)', + 'pref_6M' => 'Altı ay', + 'pref_1Y' => 'Bir yıl', + 'pref_languages' => 'Diller', + 'pref_languages_help' => 'Firefly III birçok dili destekliyor. Hangisini tercih edersiniz?', + 'pref_custom_fiscal_year' => 'Mali yıl ayarları', + 'pref_custom_fiscal_year_label' => 'Etkin', + 'pref_custom_fiscal_year_help' => '1 Ocak - 31 Aralık arasındaki bir mali yılı kullanan ülkelerde bu ayarı açabilir ve mali yılın başlangıç / bitiş günlerini belirleyebilirsiniz', + 'pref_fiscal_year_start_label' => 'Mali yıl başlangıç tarihi', + 'pref_two_factor_auth' => '2 adımlı doğrulama', + 'pref_two_factor_auth_help' => '2 adımlı doğrulamayı etkinleştirdiğinizde (iki faktörlü kimlik doğrulama olarak da bilinir) hesabınıza fazladan bir güvenlik katmanı eklersiniz. Bildiğiniz bir şeyle (şifreniz) ve sahip olduğunuz bir şeyle(doğrulama kodu) ile giriş yaparsınız. Doğrulama kodları telefonunuzda Authy ya da Google Authenticator gibi bir uygulama tarafından oluşturulur.', + 'pref_enable_two_factor_auth' => '2 adımlı doğrulamayı etkinleştir', + 'pref_two_factor_auth_disabled' => '2 adımlı doğrulama kodu kaldırıldı ve devre dışı bırakıldı', + 'pref_two_factor_auth_remove_it' => 'Kimlik hesabı doğrulama uygulaması için çıkış yapmayı unutmayın!', + 'pref_two_factor_auth_code' => 'Doğrulama kodu', + 'pref_two_factor_auth_code_help' => 'QR kodunu, telefonunuzda Authy veya Authenticator uygulamalarında bulun ve oluşturulan kodu girin.', + 'pref_two_factor_auth_reset_code' => 'Doğrulama kodunu sıfırla', + 'pref_two_factor_auth_remove_code' => 'Doğrulama kodunu kaldır', + 'pref_two_factor_auth_remove_will_disable' => '(iki faktörlü kimlik doğrulamayı da devre dışı bırakır)', + 'pref_save_settings' => 'Ayarları kaydet', + 'saved_preferences' => 'Tercihler kaydedildi!', + 'preferences_general' => 'Genel', + 'preferences_frontpage' => 'Ana ekran', + 'preferences_security' => 'Güvenlik', + 'preferences_layout' => 'Düzen', + 'pref_home_show_deposits' => 'Ana ekranda mevduat göster', + 'pref_home_show_deposits_info' => 'Ana ekranınızda hesaplarınız zaten görüntülenir. Gelir hesaplarınız da görüntülensin mi?', + 'pref_home_do_show_deposits' => 'Evet, onlara göster', + 'successful_count' => ':count bunlar başarılı oldu', + 'list_page_size_title' => 'Sayfa boyutu', + 'list_page_size_help' => 'Herhangi bir şeyin listesi (hesaplar, işlemler, vb) sayfa başına en fazla bu kadar gösterebilir.', + 'list_page_size_label' => 'Sayfa boyutu', + 'between_dates' => '(:start ​ve :end)', + 'pref_optional_fields_transaction' => 'İşlemler için bağlı alanlar', + 'pref_optional_fields_transaction_help' => 'Yeni bir işlem oluşturulurken (dağınıklık nedeniyle) varsayılan olarak tüm alanlar ektinleştirilmez. Aşağıdan, eğer işinize yarayacağını düşünüyorsanız bu alanları ektinleştirebilirsiniz. Tabii ki, devre dışı bırakılmış ama zaten doldurulmuş alanlar ayarlar ne olursa olsun görünecektir.', + 'optional_tj_date_fields' => 'Tarih alanları', + 'optional_tj_business_fields' => 'İş alanları', + 'optional_tj_attachment_fields' => 'Ek alanları', + 'pref_optional_tj_interest_date' => 'Faiz tarihi', + 'pref_optional_tj_book_date' => 'Kitap tarihi', + 'pref_optional_tj_process_date' => 'İşlem tarihi', + 'pref_optional_tj_due_date' => 'Bitiş tarihi', + 'pref_optional_tj_payment_date' => 'Ödeme tarihi', + 'pref_optional_tj_invoice_date' => 'Fatura tarihi', + 'pref_optional_tj_internal_reference' => 'Dahili referans', + 'pref_optional_tj_notes' => 'Notlar', + 'pref_optional_tj_attachments' => 'Ekler', + 'optional_field_meta_dates' => 'Tarih', + 'optional_field_meta_business' => 'İş', + 'optional_field_attachments' => 'Ekler', + 'optional_field_meta_data' => 'İsteğe bağlı meta veriler', + + // profile: + 'change_your_password' => 'Şifrenizi değiştirin', + 'delete_account' => 'Hesabı Sil', + 'current_password' => 'Güncel Şifre', + 'new_password' => 'Yeni Şifre', + 'new_password_again' => 'Yeni Şifre (Tekrar)', + 'delete_your_account' => 'Hesabını Sil', + 'delete_your_account_help' => 'Hesabınızı silmeniz aynı zamanda Firefly III\'e kaydetmiş olabileceğiniz hesapları, işlemleri, her şeyi de silecektir. YOK OLACAK.', + 'delete_your_account_password' => 'Devam etmek için şifrenizi girin.', + 'password' => 'Şifre', + 'are_you_sure' => 'Emin misiniz? Bunu geri alamazsınız.', + 'delete_account_button' => 'Hesabını Sil', + 'invalid_current_password' => 'Geçersiz Şifre!', + 'password_changed' => 'Şifre değiştirildi!', + 'should_change' => 'Amaç, şifrenizi değiştirmenizdir.', + 'invalid_password' => 'Geçersiz şifre!', + 'what_is_pw_security' => '\'\'Doğrulama şifresi güvenliği\'\' nedir?', + 'secure_pw_title' => 'Güvenli şifre nasıl seçilir?', + 'secure_pw_history' => 'Ağustos 2017\'de ünlü güvenlik araştırmacısı Troy Hunt, 306 milyon çalınan parolanın bir listesini yayınladı. Bu şifreler, LinkedIn, Adobe ve NeoPets gibi şirketlerde (ve daha pek çok yerde) sistem çökmesi sırasında çalındı.', + 'secure_pw_check_box' => 'Kutuyu işaretlerseniz, listede olup olmadığını görmek için Firefly III şifrenizin SHA1 hash\'ini Troy Hunt web sitesine gönderecektir. Bu NIST Özel Yayınında önerilen güvenli olmayan şifreleri kullanmanızı önleyecektir.', + 'secure_pw_sha1' => 'SHA1\'in çözüdüğünü sanıyordum', + 'secure_pw_hash_speed' => 'Doğru, ama bu bağlamda değil. SHA1\'in nasıl çözüleceğini anlatan web sitesinde de okuyabileceğin gibi artık bir "kesişim(aynı SHA1 hash\'i ile sonuçlanan başka bir dizin)" bulmak daha kolay. Şimdilik tek GPU\'lu bir makine ile sadece 10,000 yıl sürmektedir.', + 'secure_pw_hash_security' => 'Bu kesişim şifrenizin eşiti olamaz ve Firefly III (gibi sitelerde) de işe yaramaz. Bu uygulama şifre doğrulaması için SHA 1 kullanmaz. Bu nedenle bu kutuyu işaretlemek güvenlidir. Şifreniz karıştırıldı ve HTTPS üzerinden gönderildi.', + 'secure_pw_should' => 'Kutuyu kontrol etmeli miyim?', + 'secure_pw_long_password' => 'Firefly III için bir çeşit şifre üreticisi kullanarak uzun, tek kullanımlık bir şifre oluşturduysanız: hayır.', + 'secure_pw_short' => 'Her zaman kullandığınız şifreyi kullandıysanız: Evet lütfen.', + 'personal_access_token' => 'Kişisel erişim simgesi', + 'explain_access_token' => 'Verileri içe veya dışa aktarmak gibi komut satır seçeneklerini gerçekleştirebilmek için bu token\'a ihtiyacınız var. O olmadan bu gibi hassas komutlar çalışmayacaktır. Erişim token\'ınınızı kimseyle paylaşmayın. Ben dahil kimse sizden bu token\'ı istemeyecek. Eğer kaybedeceğinizden korkuyorsanız ya da paranoyaklaştığınız zaman bu tuşu kullanarak token\'ı yeniden oluşturun.', + 'regenerate_access_token' => 'Erişim iznini yeniden oluştur', + 'token_regenerated' => 'Yeni bir belirteç oluşturuldu', + 'change_your_email' => 'E-posta adresini değiştir', + 'email_verification' => 'ESKİ ve yeni e-posta adreslerinize bir e-posta gönderilecektir. Güvenlik nedenlerinden ötürü email adreslerinizi onaylayana kadar giriş yapamayacaksınız. Eğer Fİrefly III yüklemenizin e-posta gönderebileceğinden emin değilseniz lütfen bu özelliği kullanmayınız. Eğer bir yöneticiyseniz bunu Yönetim de test edebilirsiniz.', + 'email_changed_logout' => 'E-posta adresinizi doğrulayana kadar giriş yapamazsınız.', + 'login_with_new_email' => 'Artık yeni e-posta adresinizle giriş yapabilirsiniz.', + 'login_with_old_email' => 'Artık eski e-posta adresinizle yeniden giriş yapabilirsiniz.', + + // attachments + 'nr_of_attachments' => 'Bir eklenti |:count eklenti', + 'attachments' => 'Ekler', + 'edit_attachment' => 'Ek \'\': name\'\' düzenle', + 'update_attachment' => 'Eki güncelle', + 'delete_attachment' => '\'\': name\'\' Eki sil', + 'attachment_deleted' => '\'\': Name\'\' eki silindi', + 'attachment_updated' => '\'\': name\'\' Ek güncellendi', + 'upload_max_file_size' => 'Maksimum dosya boyutu: :size', + + // transaction index + 'title_expenses' => 'Giderler', + 'title_withdrawal' => 'Giderler', + 'title_revenue' => 'Gelir / Gelir', + 'title_deposit' => 'Gelir / Gelir', + 'title_transfer' => 'Transferler', + 'title_transfers' => 'Transferler', + + // convert stuff: + 'convert_is_already_type_Withdrawal' => 'Bu işlem zaten bir para çekme işlemidir', + 'convert_is_already_type_Deposit' => 'Bu işlem zaten bir para çekme işlemidir', + 'convert_is_already_type_Transfer' => 'Bu işlem zaten bir transfer işlemidir', + 'convert_to_Withdrawal' => '\'\': Açıklama\'\' yı bir para çekme işlemine dönüştür', + 'convert_to_Deposit' => '\'\': Açıklama\'\' yı mevduata dönüştür', + 'convert_to_Transfer' => '\'\': Açıklama\'\' yı bir aktarıma dönüştür', + 'convert_options_WithdrawalDeposit' => 'Para çekme işlemini çekime dönüştür', + 'convert_options_WithdrawalTransfer' => 'Para çekim işlemini aktarmaya dönüştür', + 'convert_options_DepositTransfer' => 'Para yatırma işlemini bir aktarmaya dönüştür', + 'convert_options_DepositWithdrawal' => 'Para yatırma işlemini çekime dönüştür', + 'convert_options_TransferWithdrawal' => 'Bir transferi çekime dönüştür', + 'convert_options_TransferDeposit' => 'Bir transferi çekime dönüştür', + 'convert_Withdrawal_to_deposit' => 'Bu para çekme işlemini para yatırma işlemine çevir', + 'convert_Withdrawal_to_transfer' => 'Bu para çekim işlemini havaleye çevir', + 'convert_Deposit_to_withdrawal' => 'Bu para yatırma işlemini para çekme işlemine dönüştür', + 'convert_Deposit_to_transfer' => 'Bu yatırımı bir havale olarak değiştir', + 'convert_Transfer_to_deposit' => 'Bu havaleyi birikime dönüştürün', + 'convert_Transfer_to_withdrawal' => 'Bu transferi bir para çekme işlemine dönüştür', + 'convert_please_set_revenue_source' => 'Lütfen paranın geleceği bir gelir hesabı seçiniz.', + 'convert_please_set_asset_destination' => 'Lütfen paranın gideceği varlık hesabını seçin.', + 'convert_please_set_expense_destination' => 'Lütfen paranın gideceği masraf hesaplarını seçin.', + 'convert_please_set_asset_source' => 'Lütfen paranın geleceği bir varlık hesabı seçiniz.', + 'convert_explanation_withdrawal_deposit' => 'Eğer bu para çekme işlemini para yatırma işlemine çevirirseniz, :amount :sourceName den çekilmek yerine oraya yatırılacaktır.', + 'convert_explanation_withdrawal_transfer' => 'Eğer bu para çekme işlemini transfer işlemine dönüştürürseniz, :amount :destinationName\'e ödenmek yerine :sourceName den yeni bir varlık hesabına transfer edilecektir.', + 'convert_explanation_deposit_withdrawal' => 'Eğer bu para yatırma işlemini para çekim işlemine dönüştürürseniz :amount :destinationName\'e eklenmek yerine ondan düşecektir.', + 'convert_explanation_deposit_transfer' => 'Eğer bu para yatırım işlemini transfer işlemine dönüştürürseniz, :amount sizin seçeceğiniz bir varlık hesabından destinationName\'e transfer edilecektir.', + 'convert_explanation_transfer_withdrawal' => 'Eğer bu transfer işlemini para çekme işlemine dönüştürürseniz, :amount destinationName\'e transfer olmak yerine sourceName\'e yeni bir gider olarak işlenecektir.', + 'convert_explanation_transfer_deposit' => 'Eğer bu transfer işlemini para yatırma işlemine dönüştürürseniz, :amount destinationName\'e aktarılmak yerine oraya yatırılacaktır.', + 'converted_to_Withdrawal' => 'İşlem çekime dönüştürüldü', + 'converted_to_Deposit' => 'İşlem depozitoya dönüştürüldü', + 'converted_to_Transfer' => 'İşlem aktarıma dönüştürüldü', + 'invalid_convert_selection' => 'Seçtiğiniz hesap zaten bu işlemde kullanılmış veya mevcut değil.', + + // create new stuff: + 'create_new_withdrawal' => 'Yeni çekim oluştur', + 'create_new_deposit' => 'Yeni mevduat oluştur', + 'create_new_transfer' => 'Yeni transfer oluştur', + 'create_new_asset' => 'Yeni varlık hesabı oluştur', + 'create_new_expense' => 'Yeni gider hesabı oluştur', + 'create_new_revenue' => 'Yeni gelir hesabı oluştur', + 'create_new_piggy_bank' => 'Yeni bir kumbara oluştur', + 'create_new_bill' => 'Yeni fatura oluştur', + + // currencies: + 'create_currency' => 'Yeni para birimi oluştur', + 'store_currency' => 'Yeni para birimini sakla', + 'update_currency' => 'Para birimini güncelle', + 'new_default_currency' => ': name artık varsayılan para birimi.', + 'cannot_delete_currency' => ': İsim hala kullanıldığı için silinemiyor.', + 'deleted_currency' => 'Para birimi: adı silindi', + 'created_currency' => 'Para birimi :adı oluşturuldu', + 'updated_currency' => 'Para birimi :name güncellendi', + 'ask_site_owner' => 'Lütfen para birimleri eklemek, kaldırmak veya düzenlemek için :owner\'a danışın.', + 'currencies_intro' => 'Firefly III, burada ayarlayabileceğiniz ve etkinleştirebileceğiniz çeşitli para birimlerini destekliyor.', + 'make_default_currency' => 'varsayılanı ayarla', + 'default_currency' => 'varsayılan', + + // forms: + 'mandatoryFields' => 'Zorunlu alanlar', + 'optionalFields' => 'İsteğe bağlı alanlar', + 'options' => 'Seçenekler', + + // budgets: + 'create_new_budget' => 'Yeni bir bütçe oluştur', + 'store_new_budget' => 'Yeni bütçeyi sakla', + 'stored_new_budget' => 'Yeni bütçe \'\': isim\'\' kaydedildi', + 'available_between' => ':start ve :end arasında kullanılabilir', + 'transactionsWithoutBudget' => 'Bütçesiz Giderler', + 'transactions_no_budget' => ':start ve :end arasındaki bütçe dışı harcamalar', + 'spent_between' => ':start ve :end arasında harca', + 'createBudget' => 'Yeni bütçe', + 'inactiveBudgets' => 'Etkin olmayan bütçeler', + 'without_budget_between' => ':start ve :end arasında bütçesiz işlemler', + 'delete_budget' => '\'\': Name\'\' bütçesini sil', + 'deleted_budget' => 'Silinen bütçe \'\': name\'\'', + 'edit_budget' => '\'\': Name\'\' bütçesini düzenle', + 'updated_budget' => 'Güncellenmiş bütçe: \'\'name\'\'', + 'update_amount' => 'Güncelleme miktarı', + 'update_budget' => 'Bütçeyi güncelle', + 'update_budget_amount_range' => ':start ve :end arasında (beklenen) mevcut miktarı güncelleyiniz', + 'budget_period_navigator' => 'Devreden sayacı', + 'info_on_available_amount' => 'Elimde ne var?', + 'available_amount_indication' => 'Toplam bütçenizin ne olabileceğinin bir göstergesi olarak bu tutarı kullanın.', + 'suggested' => 'Önerilen', + 'average_between' => ':start ve :end arasında Averaj', + + // bills: + 'matching_on' => 'Eşleşti', + 'between_amounts' => ':low ve :high arasında.', + 'repeats' => 'Tekrarlar', + 'connected_journals' => 'İlişkili işlemler', + 'auto_match_on' => 'Firefly otomatik olarak eşleştirilir', + 'auto_match_off' => 'Firefly otomatik olarak eşleştirilmez', + 'next_expected_match' => 'Beklenen sonraki eşleşme', + 'delete_bill' => 'Faturayı sil \'\': name\'\'', + 'deleted_bill' => 'Silinmiş fatura \'\': name\'\'', + 'edit_bill' => 'Fatura düzenle \'\': name\'\'', + 'more' => 'Daha', + 'rescan_old' => 'Eski işlemleri yeniden tara', + 'update_bill' => 'Faturayı güncelle', + 'updated_bill' => 'Güncellenmiş fatura \'\': name\'\'', + 'store_new_bill' => 'Yeni fatura kaydet', + 'stored_new_bill' => 'Yeni fatura \'\': name\'\' kaydedildi', + 'cannot_scan_inactive_bill' => 'Etkin olmayan faturalar taranamaz.', + 'rescanned_bill' => 'Her şeyi yeniden araştırdım.', + 'average_bill_amount_year' => 'Ortalama fatura tutarı (: yıl)', + 'average_bill_amount_overall' => 'Ortalama fatura tutarı (genel)', + 'not_or_not_yet' => 'Henüz değil', + 'not_expected_period' => 'Bu periyotta beklenmiyor', + 'bill_is_active' => 'Fatura aktif', + 'bill_expected_between' => ':start ve :end arasında beklenen', + 'bill_will_automatch' => 'Fatura uygun işlemlere otomatik olarak bağlandı', + 'skips_over' => 'atla', + + // accounts: + 'details_for_asset' => '\'\': name\'\' Varlık hesabı ayrıntıları', + 'details_for_expense' => '\'\': name\'\' Harcama hesabı ayrıntıları', + 'details_for_revenue' => '\'\': name\'\' Gelir hesabı ayrıntıları', + 'details_for_cash' => '\'\': name\'\' Nakit hesabı ayrıntıları', + 'store_new_asset_account' => 'Yeni varlık hesabını kaydet', + 'store_new_expense_account' => 'Yeni gider hesabını sakla', + 'store_new_revenue_account' => 'Yeni gelir hesabını kaydet', + 'edit_asset_account' => '\'\': name\'\' Öğe hesabını düzenle', + 'edit_expense_account' => '\'\': name\'\' Harcama hesabını düzenle', + 'edit_revenue_account' => '\'\': name\'\' Gelir hesabını düzenle', + 'delete_asset_account' => '\'\': name\'\' Öğe hesabını sil', + 'delete_expense_account' => '\'\': name\'\' Masraf hesaplarını sil', + 'delete_revenue_account' => '\'\': name\'\' Gelir hesabını sil', + 'asset_deleted' => '\'\': Name\'\' Adlı varlık hesabı başarıyla silindi', + 'expense_deleted' => '\'\': Name\'\' gider hesabı başarıyla silindi', + 'revenue_deleted' => '\'\': Name\'\' gelir hesabı başarıyla silindi', + 'update_asset_account' => 'Varlık hesabını güncelle', + 'update_expense_account' => 'Gider hesabını güncelle', + 'update_revenue_account' => 'Gelir hesabı güncelleme', + 'make_new_asset_account' => 'Yeni varlık hesabı oluştur', + 'make_new_expense_account' => 'Yeni gider hesabı oluştur', + 'make_new_revenue_account' => 'Yeni gelir hesabı oluştur', + 'asset_accounts' => 'Varlık hesapları', + 'expense_accounts' => 'Gider hesapları', + 'revenue_accounts' => 'Gelir hesapları', + 'cash_accounts' => 'Nakit Hesabı', + 'Cash account' => 'Nakit Hesabı', + 'reconcile_account' => 'Hesabı \'\': hesapla\'\' dengeleyin', + 'delete_reconciliation' => 'Mutabakatı sil', + 'update_reconciliation' => 'Mutabakatı güncelle', + 'amount_cannot_be_zero' => 'Miktar sıfır olamaz', + 'end_of_reconcile_period' => 'Uzlaştırma dönemi sonu: :period', + 'start_of_reconcile_period' => 'Uzlaştırma dönemi başlangıcı: :period', + 'start_balance' => 'Başlangıç bakiyesi', + 'end_balance' => 'Son bakiye', + 'update_balance_dates_instruction' => 'Yukarıdaki tutarlar ve tarihleri banka ekstrenizle esşleştirin ve \'\'Mutabakatı başlat\'\' düğmesine basın', + 'select_transactions_instruction' => 'Banka ekstrenizde görünen işlemleri seçin.', + 'select_range_and_balance' => 'Önce tarih aralığını ve bakiyeleri doğrulayın. Daha sonra "Mutabakatı başlat" tuşuna basın', + 'date_change_instruction' => 'Tarih aralığını şim değiştirdiniz, ilerleme kaydedilemez.', + 'update_selection' => 'Güncelleme seç', + 'store_reconcile' => 'Mutabakatı sakla', + 'reconciliation_transaction' => 'Mutabakat işlemi', + 'Reconciliation' => 'Mutabakat', + 'reconciliation' => 'Mutabakat', + 'reconcile_options' => 'Mutabakat Seçenekleri', + 'reconcile_range' => 'Mutabakat aralığı', + 'start_reconcile' => 'Mutabakatı başlat', + 'cash' => 'nakit', + 'account_type' => 'Hesap Türü', + 'save_transactions_by_moving' => 'Bu işlemleri başka bir hesaba taşıyarak kaydet:', + 'stored_new_account' => 'Yeni hesap ": name" kaydedildi!', + 'updated_account' => 'Güncellenmiş hesap ismi ": name"', + 'credit_card_options' => 'Kredi kart seçenekleri', + 'no_transactions_account' => 'Aktif hesapta herhangi bir işlem yok (bu dönem için) ": name".', + 'no_data_for_chart' => 'Bu grafiği oluşturmak için yeterli bilgi (henüz) yok.', + 'select_more_than_one_account' => 'Lütfen birden fazla hesap seçin', + 'select_more_than_one_category' => 'Lütfen birden fazla kategori seçin', + 'select_more_than_one_budget' => 'Lütfen birden fazla bütçe seçin', + 'select_more_than_one_tag' => 'Lütfen birden fazla etiket seçin', + 'account_default_currency' => 'Eğer başka bir para birimi seçerseniz, bu hesaptan yapılacak yeni işlemler için o para birimi kullanılacaktır.', + 'reconcile_has_more' => 'Firefly III hesabınızda bankanızın iddia ettiğinden daha fazla para var. Birkaç seçenek var. Lütfen ne yapılacağını seçin. Daha sonra "Uzlaşmayı onayla" ya basın.', + 'reconcile_has_less' => 'Firefly III\'de bankanızın iddia ettiğinden daha az para var. Birkaç seçenek var. Lütfen ne yapılacağını seçin. Daha sonra "Uzlaşmayı onayla"\'ya basın.', + 'reconcile_is_equal' => 'Firefly III hesabınızdaki para ile banka ekstreniz eşleşiyor. Yapılacak bir şey yok. Lütfen girdinizi onaylamak için "Uzlaşmayı onayla"\'ya basın.', + 'create_pos_reconcile_transaction' => 'Seçilen işlemleri temizleyiniz ve varlık hesabına :amount ekleyerek bir düzeltme oluşturun.', + 'create_neg_reconcile_transaction' => 'Seçilen işlemleri temizleyiniz ve varlık hesabından :amount kaldırarak bir düzeltme oluşturun.', + 'reconcile_do_nothing' => 'Seçilen işlemleri temizleyin, ama düzeltmeyiniz.', + 'reconcile_go_back' => 'Bir düzeltmeyi daha sonra her zaman düzenleyebilir ya da silebilirsiniz.', + 'must_be_asset_account' => 'Sadece varlık hesapları bağdaştırabilirsiniz', + 'reconciliation_stored' => 'Depolanmış Mutabakat', + 'reconcilliation_transaction_title' => 'Bağdaştırma (:from to :to)', + 'reconcile_this_account' => 'Bu hesabı bağdaştırınız', + 'confirm_reconciliation' => 'Mutabakatı onayla', + 'submitted_start_balance' => 'Gönderilen başlangıç bakiyesi', + 'selected_transactions' => 'Seçilen İşlemler (:count)', + 'already_cleared_transactions' => 'Halihazırda temizlenmiş işlemler (:count)', + 'submitted_end_balance' => 'Gönderilen bitiş bakiyesi', + + // categories: + 'new_category' => 'Yeni Kategori', + 'create_new_category' => 'Yeni bir kategori oluştur', + 'without_category' => 'Kategori olmaksızın', + 'update_category' => 'Kategoriyi güncelle', + 'updated_category' => '\'\': İsim\'\' kategorisi güncellendi', + 'categories' => 'Kategoriler', + 'edit_category' => '\'\': İsim\'\' kategorisini düzenle', + 'no_category' => '(Kategori yok)', + 'category' => 'Kategori', + 'delete_category' => '\'\': Name\'\' kategorisini sil', + 'deleted_category' => '\'\' İsim\'\' kategorisi silindi', + 'store_category' => 'Yeni kategoriyi kaydet', + 'stored_category' => 'Kaydedilen yeni kategori \'\': isim\'\'', + 'without_category_between' => ':start ve :end arasında kategorisiz', + + // transactions: + 'update_withdrawal' => 'Geri çekmeyi güncelle', + 'update_deposit' => 'Depozitoyu güncelle', + 'update_transfer' => 'Aktarımı güncelle', + 'updated_withdrawal' => 'Para çekme güncellendi \'\': description\'\'', + 'updated_deposit' => 'Güncellenmiş depozito \'\': açıklama\'\'', + 'updated_transfer' => 'Güncellenmiş \'\': açıklama\'\'', + 'delete_withdrawal' => 'Çekimi sil \'\': açıklama\'\'', + 'delete_deposit' => 'Mevduat sil \'\': açıklama\'\'', + 'delete_transfer' => 'Aktarımı sil \'\': açıklama\'\'', + 'deleted_withdrawal' => 'Çekilme başarıyla silindi \'\': açıklama\'\'', + 'deleted_deposit' => '\'\': açıklama\'\' Para yatırma başarıyla silindi', + 'deleted_transfer' => '": açıklama" Aktarım başarıyla silindi', + 'stored_journal' => '\'\': açıklama\'\' Yeni işlem başarıyla oluşturuldu', + 'select_transactions' => 'İşlemleri Seç', + 'rule_group_select_transactions' => 'İşlemlere "başlık" uygula', + 'rule_select_transactions' => 'İşlemlere "başlık" uygula', + 'stop_selection' => 'İşlemleri seçmeyi durdur', + 'reconcile_selected' => 'Onaylanmış', + 'mass_delete_journals' => 'Bir dizi işlemi sil', + 'mass_edit_journals' => 'Bir dizi işlem düzenle', + 'mass_bulk_journals' => 'Bulk edit a number of transactions', + 'mass_bulk_journals_explain' => 'If you do not want to change your transactions one-by-one using the mass-edit function, you can update them in one go. Simply select the preferred category, tag(s) or budget in the fields below, and all the transactions in the table will be updated.', + 'bulk_set_new_values' => 'Use the inputs below to set new values. If you leave them empty, they will be made empty for all. Also, note that only withdrawals will be given a budget.', + 'no_bulk_category' => 'Don\'t update category', + 'no_bulk_budget' => 'Don\'t update budget', + 'no_bulk_tags' => 'Don\'t update tag(s)', + 'bulk_edit' => 'Bulk edit', + 'cannot_edit_other_fields' => 'Gösterecek yer olmadığı için, bu dosya dışındaki dosyaları toplu olarak düzenleyemezsiniz. Eğer o alanları düzenlemeniz gerekliyse lütfen linki takip edin ve onları teker teker düzenleyin.', + 'no_budget' => 'hiçbiri', + 'no_budget_squared' => '(Bütçe yok)', + 'perm-delete-many' => 'Birden fazla öğeyi tek seferde silmek sıkıntı olabilir. Lütfen temkinli olun.', + 'mass_deleted_transactions_success' => 'Silinen :Miktar işlem(ler).', + 'mass_edited_transactions_success' => 'Güncellenen :amount işlem(ler)', + 'opt_group_no_account_type' => '(hesap türü yok)', + 'opt_group_defaultAsset' => 'Varsayılan varlık hesapları', + 'opt_group_savingAsset' => 'Tasarruf Hesapları', + 'opt_group_sharedAsset' => 'Paylaşılan varlık hesapları', + 'opt_group_ccAsset' => 'Kredi Kartı', + 'notes' => 'Notes', + + // new user: + 'welcome' => 'Firefly\'a hoş geldiniz!', + 'submit' => 'Gönder', + 'getting_started' => 'Başla', + 'to_get_started' => 'Firefly III\'ü başarılı şekilde yüklediğinizi görmek güzel. Bu aracı kullanmak için lütfen banka adınızı ve ana hesabınızın bakiyesini girin. Birden fazla hesabınız varsa endişelenmeyin. Onları daha sonra ekleyebilirsiniz. Bu adım sadece Firefly III\'ün bir yerden başlaması gerektiği içindir.', + 'savings_balance_text' => 'Firefly III sizin için otomatik olarak bir birikim hesabı oluşturacaktır. Varsayılan olarak birikim hesabınızda hiç para olmayacaktır ama Firefly III\'e dengelemesini söylerseniz o şekilde saklayacaktır.', + 'finish_up_new_user' => 'İşte bu! Submit tıklayarak devam edebilirsiniz. Firefly III Anasayfasına yönlendirileceksiniz.', + 'stored_new_accounts_new_user' => 'Yuppi! Yeni hesabınız kaydedildi.', + + // home page: + 'yourAccounts' => 'Hesaplarınız', + 'budgetsAndSpending' => 'Bütçe ve Harcama', + 'savings' => 'Birikim', + 'newWithdrawal' => 'Yeni gider', + 'newDeposit' => 'Yeni mevduat', + 'newTransfer' => 'Yeni Transfer', + 'bills_to_pay' => 'Ödenecek fatura', + 'per_day' => 'Hergün', + 'left_to_spend_per_day' => 'Günlük harcama için bırakıldı', + 'bills_paid' => 'Ödenen Faturalar', + + // menu and titles, should be recycled as often as possible: + 'currency' => 'Para birimi', + 'preferences' => 'Tercihler', + 'logout' => 'Çıkış Yap', + 'toggleNavigation' => 'Navigasyonu aç / kapat', + 'searchPlaceholder' => 'Aranıyor...', + 'version' => 'Versiyon', + 'dashboard' => 'Gösterge paneli', + 'currencies' => 'Kurlar', + 'accounts' => 'Hesaplar', + 'Asset account' => 'Varlık hesabı', + 'Default account' => 'Varlık hesabı', + 'Expense account' => 'Gider hesabı', + 'Revenue account' => 'Gelir hesabı', + 'Initial balance account' => 'Başlangıç bakiye hesabı', + 'budgets' => 'Bütçeler', + 'tags' => 'Etiketler', + 'reports' => 'Raporlar', + 'transactions' => 'İşlemler', + 'expenses' => 'Giderler', + 'income' => 'Gelir / gelir', + 'transfers' => 'Transferler', + 'moneyManagement' => 'Para Yönetimi', + 'piggyBanks' => 'Kumbara', + 'bills' => 'Fatura', + 'withdrawal' => 'Para Çekme', + 'opening_balance' => 'Açılış bakiyesi', + 'deposit' => 'Mevduat', + 'account' => 'Hesap', + 'transfer' => 'Havale', + 'Withdrawal' => 'Para Çekme', + 'Deposit' => 'Mevduat', + 'Transfer' => 'Havale', + 'bill' => 'Fatura', + 'yes' => 'Evet', + 'no' => 'Hayır', + 'amount' => 'Miktar', + 'overview' => 'Genel Bakış', + 'saveOnAccount' => 'Hesabı Kaydet', + 'unknown' => 'Bilinmeyen', + 'daily' => 'Günlük', + 'monthly' => 'Aylık', + 'profile' => 'Profil', + 'errors' => 'Hatalar', + + // reports: + 'report_default' => ':start ve :end arasında varsayılan finans raporu', + 'report_audit' => ':start ve :end arasında işlem geçmişine genel bakış', + 'report_category' => ':start ve :end arasında kategori raporu', + 'report_account' => ':start ve :end arasında gelir/gider hesap raporu', + 'report_budget' => ':start ve :end arasında bütçe raporu', + 'report_tag' => ':start ve :end arasında etiket raporu', + 'quick_link_reports' => 'Hızlı Erişim', + 'quick_link_default_report' => 'Varsayılan finansal rapor', + 'quick_link_audit_report' => 'İşlem geçmişine genel bakış', + 'report_this_month_quick' => 'Cari ay, tüm hesaplar', + 'report_this_year_quick' => 'Cari yıl, tüm hesaplar', + 'report_this_fiscal_year_quick' => 'Cari mali yıl, bütün hesaplar', + 'report_all_time_quick' => 'Bütün zaman, bütün hesaplar', + 'reports_can_bookmark' => 'Raporların yer imlerine eklenebileceğini unutmayın.', + 'incomeVsExpenses' => 'Gelir ve giderler', + 'accountBalances' => 'Hesap bakiyeleri', + 'balanceStart' => 'Dönem Başında Bakiye', + 'balanceEnd' => 'Dönem Sonunda Bakiye', + 'splitByAccount' => 'Hesaplara göre bölünmüş', + 'coveredWithTags' => 'Etiketler kapatılmıştır', + 'leftUnbalanced' => 'Sol dengesiz', + 'leftInBudget' => 'Bütçede bırakıldı', + 'sumOfSums' => 'Hesap toplamı', + 'noCategory' => '(Kategori yok)', + 'notCharged' => 'Ücret alınmadı (henüz)', + 'inactive' => 'Etkisiz', + 'active' => 'Aktif', + 'difference' => 'Fark', + 'money_flowing_in' => 'İçeri', + 'money_flowing_out' => 'Dışarı', + 'topX' => 'üst :number', + 'show_full_list' => 'Tüm listeyi göster', + 'show_only_top' => 'Sadece üst :number göster', + 'report_type' => 'Rapor Türü', + 'report_type_default' => 'Varsayılan finansal rapor', + 'report_type_audit' => 'İşlem geçmişine genel bakış (denetim)', + 'report_type_category' => 'Kategori raporu', + 'report_type_budget' => 'Bütçe raporu', + 'report_type_tag' => 'Etiket raporu', + 'report_type_account' => 'Gider / Gelir hesap raporu', + 'more_info_help' => 'Bu tür raporlar hakkında daha fazla bilgi yardım sayfalarında bulunabilir. Sağ üst köşedeki (?) simgesine basın.', + 'report_included_accounts' => 'Dahil edilen hesaplar', + 'report_date_range' => 'Tarih aralığı', + 'report_preset_ranges' => 'Önceden ayarlanmış aralıklar', + 'shared' => 'Paylaşılan', + 'fiscal_year' => 'Mali yıl', + 'income_entry' => ':start ve :end arasında \'\':name\'\' hesabının geliri', + 'expense_entry' => ':start ve :end arasında \'\':name\'\' hesabının giderleri', + 'category_entry' => ':start ve :end arasında \'\':name\'\' kategorisinde giderler', + 'budget_spent_amount' => '":budget" bütçesindeki :start ve :end arası harcamalar', + 'balance_amount' => '":budget" bütçesindeki, ":account" hesabından :start ve :end arası ödenen giderler', + 'no_audit_activity' => ':account_name hesabında :start ve :end arasında hiç bir hareket kaydedilmedi.', + 'audit_end_balance' => ':end sonunda :account_name hesabının bakiyesi: :balance', + 'reports_extra_options' => 'Ekstra Seçenekler', + 'report_has_no_extra_options' => 'Bu raporda ekstra bir seçenek yok', + 'reports_submit' => 'Raporu görüntüle', + 'end_after_start_date' => 'Raporun bitiş tarihi, başlangıç tarihinden sonra olmalıdır.', + 'select_category' => 'Kategori (ler) seçin', + 'select_budget' => 'Bütçe (ler) seçin.', + 'select_tag' => 'Etiket (ler) seçin.', + 'income_per_category' => 'Kategori başına gelir', + 'expense_per_category' => 'Kategori başına harcama', + 'expense_per_budget' => 'Bütçe başına harcama', + 'income_per_account' => 'Hesap başına gelir', + 'expense_per_account' => 'Hesap başına gider', + 'expense_per_tag' => 'Etiket başına harcama', + 'income_per_tag' => 'Etiket başına gelir', + 'include_expense_not_in_budget' => 'Dahil edilen masraflar seçili bütçe(ler) içinde değil', + 'include_expense_not_in_account' => 'Dahil edilen masraflar seçili hesaplar(lar) içinde değil', + 'include_expense_not_in_category' => 'Dahil edilen masraflar seçili kategori(ler) içinde değil', + 'include_income_not_in_category' => 'Dahil edilen gelirler seçili kategori(ler) içinde değil', + 'include_income_not_in_account' => 'Dahil edilen gelirler seçili hesap(lar) içinde değil', + 'include_income_not_in_tags' => 'Dahil edilen gelirler seçili etiket(ler) içinde değil', + 'include_expense_not_in_tags' => 'Dahil edilen giderler seçili etiket(ler) içinde değil', + 'everything_else' => 'Geri kalan her şey', + 'income_and_expenses' => 'Gelir ve gider', + 'spent_average' => 'Harcanan (ortalama)', + 'income_average' => 'Gelir (ortalama)', + 'transaction_count' => 'İşlem sayısı', + 'average_spending_per_account' => 'Hesap başına ortalama harcama', + 'average_income_per_account' => 'Hesap başına ortalama gelir', + 'total' => 'Genel Toplam', + 'description' => 'Açıklama', + 'sum_of_period' => 'Dönemin toplamı', + 'average_in_period' => 'Dönem içinde ortalama', + 'account_role_defaultAsset' => 'Varsayılan varlık hesabı', + 'account_role_sharedAsset' => 'Paylaşılan varlık hesabı', + 'account_role_savingAsset' => 'Birikim hesabı', + 'account_role_ccAsset' => 'Kredi Kartı', + 'budget_chart_click' => 'Bir grafik görmek için lütfen yukarıdaki tabloda bir bütçe adına tıklayın.', + 'category_chart_click' => 'Bir grafik görmek için lütfen yukarıdaki tabloda bir kategori adına tıklayın.', + 'in_out_accounts' => 'Kazanılan ve kombinasyon başına harcanan', + 'in_out_per_category' => 'Kazanılan ve kategori başına harcanan', + 'out_per_budget' => 'Bütçe başına harcama', + 'select_expense_revenue' => 'Harcama / gelir hesabı seçin', + + // charts: + 'chart' => 'Grafik', + 'month' => 'Ay', + 'budget' => 'Bütçe', + 'spent' => 'Harcanan', + 'spent_in_budget' => 'Bütçede harcama', + 'left_to_spend' => 'Harcama için bırakıldı', + 'earned' => 'Kazanılan', + 'overspent' => 'Fazladan', + 'left' => 'Ayrıldı', + 'max-amount' => 'En yüksek miktar', + 'min-amount' => 'Minimum miktar', + 'journal-amount' => 'Geçerli fatura girişi', + 'name' => 'İsim', + 'date' => 'Tarih', + 'paid' => 'Ödendi', + 'unpaid' => 'Ödenmedi', + 'day' => 'Gün', + 'budgeted' => 'Bütçelenen', + 'period' => 'Dönem', + 'balance' => 'Denge', + 'sum' => 'Toplam', + 'average' => 'Ortalama', + 'balanceFor' => ':name için bakiye', + + // piggy banks: + 'add_money_to_piggy' => '": name" kumbarasına paraa ekle', + 'piggy_bank' => 'Kumbara', + 'new_piggy_bank' => 'Yeni kumbara', + 'store_piggy_bank' => 'Yeni bir kumbara kaydet', + 'stored_piggy_bank' => '":name" isimli yeni bir kumbara kaydet', + 'account_status' => 'Hesap Durumu', + 'left_for_piggy_banks' => 'Kumbara için sola', + 'sum_of_piggy_banks' => 'Kumbaranın toplamı', + 'saved_so_far' => 'Şimdiye kadar biriktirilmiş', + 'left_to_save' => 'Kaydetmek için sola', + 'suggested_amount' => 'Birikim için önerilen aylık tutar', + 'add_money_to_piggy_title' => '": name" kumbarasına para ekle', + 'remove_money_from_piggy_title' => '":name" kumbarasından para çek', + 'add' => 'Ekle', + 'no_money_for_piggy' => 'Bu kumbaraya koyacak paran yok.', + + 'remove' => 'Kaldır', + 'max_amount_add' => 'Ekleyebileceğiniz azami tutar', + 'max_amount_remove' => 'Kaldırabileceğiniz maksimum tutar', + 'update_piggy_button' => 'Kumbarayı güncelle', + 'update_piggy_title' => '":name" kumbarasını güncelle', + 'updated_piggy_bank' => '": name" kumbarası güncellenmiş', + 'details' => 'Detaylar', + 'events' => 'Etkinlikler', + 'target_amount' => 'Hedef miktar', + 'start_date' => 'Başlangıç Tarihi', + 'target_date' => 'Hedeflenen tarih', + 'no_target_date' => 'Hedef tarihi yok', + 'table' => 'Tablo', + 'delete_piggy_bank' => '\'\': name\'\' (adlı) kumbarayı sil', + 'cannot_add_amount_piggy' => '": Name" değerine "amount:" eklenemedi.', + 'cannot_remove_from_piggy' => '": Name" adresinden miktar kaldırılamadı.', + 'deleted_piggy_bank' => '": name" kumbarası silinmiş', + 'added_amount_to_piggy' => '": name" e kadar olan miktar eklendi', + 'removed_amount_from_piggy' => '":name"\'den :amount" silindi', + + // tags + 'delete_tag' => '\'\':tag\'\' etiketi sil', + 'deleted_tag' => '\'\':tag\'\' etiketi silinmiş', + 'new_tag' => 'Yeni etiket yap', + 'edit_tag' => '\'\':tag\'\' etiketi düzenle', + 'updated_tag' => 'Güncellenmiş etiket \'\': tag\'\'', + 'created_tag' => 'Tag \'\': tag\'\' oluşturuldu!', + + 'transaction_journal_information' => 'İşlem Bilgileri', + 'transaction_journal_meta' => 'Meta Bilgisi', + 'total_amount' => 'Toplam Tutar', + 'number_of_decimals' => 'Ondalık Sayı', + + // administration + 'administration' => 'Yönetim', + 'user_administration' => 'Kullanıcı Yönetimi', + 'list_all_users' => 'Tüm kullanıcılar', + 'all_users' => 'Tüm kullanıcılar', + 'instance_configuration' => 'Yapılandırma', + 'firefly_instance_configuration' => 'Firefly III için yapılandırma seçenekleri', + 'setting_single_user_mode' => 'Tek kullanıcı modu', + 'setting_single_user_mode_explain' => 'Varsayılan olarak Firefly III sadece bir kayıt kabul eder: sizi. Bu başkalarının sizin isteklerinizi kontrol etmemesi için bir güvenlik önlemidir. Gelecekteki kayıtlar engellendi. Bu kutunun işaretini kaldırdığınızda erişebildiklerini var sayarsak (internete bağlı olduğunda) başkaları da sizin isteklerinizi kullanabilir.', + 'store_configuration' => 'Mağaza yapılandırması', + 'single_user_administration' => ':email için kullanıcı yönetimi', + 'edit_user' => ':email kullanıcısını düzenle', + 'hidden_fields_preferences' => 'Şu anda tüm alanlar görülebilir değil. Ayarlardan etkinleştirmeniz gerek.', + 'user_data_information' => 'Kullanıcı bilgisi', + 'user_information' => 'Kullanıcı bilgisi', + 'total_size' => 'toplam boyut', + 'budget_or_budgets' => 'bütçe (ler)', + 'budgets_with_limits' => 'yapılandırılmış miktarlı bütçe(ler)', + 'nr_of_rules_in_total_groups' => ':count_groups kural gruplarındaki :count_rules kuralları', + 'tag_or_tags' => 'etiket (ler)', + 'configuration_updated' => 'Yapılandırma güncellendi', + 'setting_is_demo_site' => 'Tanıtım videosu', + 'setting_is_demo_site_explain' => 'Bu kutuyu işaretlediniz, bu yükleme, demo sitesinin sanki garip yan etkilere sahipmiş gibi davranır.', + 'block_code_bounced' => 'E-posta mesajı geri çevrildi', + 'block_code_expired' => 'Demo hesabı doldu', + 'no_block_code' => 'Engellemek için bir neden yok ya da kullanıcı engellenmemiş', + 'block_code_email_changed' => 'Kullanıcı henüz yeni bir e-posta adresi teyit etmedi', + 'admin_update_email' => 'Profil sayfasının aksine kullanıcı e-posta adresleri değiştirildiğinde bildirim ALMAYACAKLAR!', + 'update_user' => 'Kullanıcıyı güncelle', + 'updated_user' => 'Kullanıcı verileri değiştirildi.', + 'delete_user' => 'Kullanıcıyı sil: e-posta', + 'user_deleted' => 'Kullanıcı silindi', + 'send_test_email' => 'E-posta adresine test mesajı gönder', + 'send_test_email_text' => 'Yüklemenizin e-posta gönderme yetkisine sahip olup olmadığını anlamak için lütfen bu tuşa basınız.Burada bir hata görmeyeceksiniz(varsa), kayıt dosyaları hataları gösterecektir. Bu düğmeye istediğiniz kadar basabilirsiniz. Spam kontrolü yoktur.Bu mesaj :email\'e gönderilecektir ve kısa sürede varmalıdır.', + 'send_message' => 'Mesaj gönder', + 'send_test_triggered' => 'Test tetiklendi. Gelen kutunuzu ve kayıt dosyalarınızı kontrol ediniz.', + + // links + 'journal_link_configuration' => 'İşlem bağlantıları yapılandırması', + 'create_new_link_type' => 'Yeni bağlantı türü oluştur', + 'store_new_link_type' => 'Yeni bağlantı türünü kaydet', + 'update_link_type' => 'Bağlantı türünü güncelle', + 'edit_link_type' => '":name" bağlantı türünü düzenleyin', + 'updated_link_type' => '":name" bağlantı türünü güncelleyin', + 'delete_link_type' => '":name" bağlantı türünü silin', + 'deleted_link_type' => '":name" bağlantı türü silinmiş', + 'stored_new_link_type' => '":name" yeni bağlantı türünü kaydet', + 'cannot_edit_link_type' => '":name" bağlantı türü düzenlenemiyor', + 'link_type_help_name' => 'Yani "Kopyalar"', + 'link_type_help_inward' => 'Yani "kopyalar"', + 'link_type_help_outward' => 'Yani "tarafından çoğaltılmış"', + 'save_connections_by_moving' => 'Bu işlem(ler) arasındaki bağlantıyı başka bir bağlantı türüne taşıyarak kaydedin:', + 'do_not_save_connection' => '(bağlantıyı kaydetme)', + 'link_transaction' => 'Bağlantı işlemi', + 'link_to_other_transaction' => 'Bu işlemi başka bir işlemle bağlantılandır', + 'select_transaction_to_link' => 'Bu hareketi bağlamak için bir işlem seçin', + 'this_transaction' => 'Bu işlem', + 'transaction' => 'İşlem', + 'comments' => 'Yorumlar', + 'to_link_not_found' => 'Bağlantılamak istediğiniz işlem listelenmemişse, basitçe ID\'sini girin.', + 'invalid_link_selection' => 'Bu işlemler bağlantılanamıyor', + 'journals_linked' => 'İşlemler bağlantıları oluşturuldu.', + 'journals_error_linked' => 'Bu işlemler zaten bağlantılı.', + 'journal_links' => 'İşlem bağlantıları', + 'this_withdrawal' => 'Bu çekim', + 'this_deposit' => 'Bu depozito', + 'this_transfer' => 'Bu transfer', + 'overview_for_link' => '\'\':name\'\' bağlantı tipine genel bakış', + 'source_transaction' => 'İşlem kaynağı', + 'link_description' => 'Bağlantı açıklaması', + 'destination_transaction' => 'Hedef işlem', + 'delete_journal_link' => ':sourceve:destination arasında bağlantıyı sil', + 'deleted_link' => 'Bağlantı silindi', + + // link translations: + 'relates to_inward' => 'ile ilişkili', + 'is (partially) refunded by_inward' => 'tarafından (kısmen) geri ödendi', + 'is (partially) paid for by_inward' => 'tarafından (kısmen) ödendi', + 'is (partially) reimbursed by_inward' => 'tarafından (kısmen) iade edildi', + 'relates to_outward' => 'ile ilişkili', + '(partially) refunds_outward' => '(kısmen) geri ödeme', + '(partially) pays for_outward' => 'için (kısmen) öder', + '(partially) reimburses_outward' => '(kısmen) iade edilir', + + // split a transaction: + 'splits' => 'Bölmeler', + 'add_another_split' => 'Başka bir bölme ekle', + 'split-transactions' => 'İşlemleri böl', + 'do_split' => 'Bölme yap', + 'split_this_withdrawal' => 'Bu çekimi böl', + 'split_this_deposit' => 'Bu mevduat\'ı böl', + 'split_this_transfer' => 'Bu aktarımı böl', + 'cannot_edit_multiple_source' => 'Bölünmüş işlemi #:id ile ":description"açıklamasıyla birlikte düzenleyemezsiniz. çünkü birden fazla kaynak hesabı içeriyor.', + 'cannot_edit_multiple_dest' => 'Bölünmüş işlemi #:id ile ":description"açıklamasıyla birlikte düzenleyemezsiniz. çünkü birden fazla kaynak hesabı içeriyor.', + 'cannot_edit_reconciled' => 'İşlemi #:id ile ":description"açıklamasıyla birlikte düzenleyemezsiniz. çünkü uzlaştırılmış olarak işaretli.', + 'cannot_edit_opening_balance' => 'Bir hesabın açılış bakiyesini düzenleyemezsiniz.', + 'no_edit_multiple_left' => 'Düzenlemek için geçerli İşlemler seçmediniz.', + 'cannot_convert_split_journal' => 'Bölünmüş bir İşlemi dönüştüremezsiniz', + + // import bread crumbs and titles: + 'import' => 'İçe aktar', + 'import_data' => 'Veriyi içe aktar', + 'import_general_index_file' => 'Bir Dosyayı içe aktar', + 'import_from_bunq' => 'Bunq\'dan aktar', + 'import_using_spectre' => 'Spectre kullanarak içe aktar', + 'import_using_plaid' => 'Palid kullanarak içe aktar', + 'import_config_bread_crumb' => 'Aktarımınızı oluşturunuz', + + // import index page: + 'import_index_title' => 'Firefly III\'e veri aktarma', + 'import_index_sub_title' => 'İndeks', + 'import_general_index_intro' => 'Firefly aktarım programına hoş geldiniz. Firefly III içine dosya aktarmanın burada bir kaç yolu var, burada butonlar olarak görüntülenmekte.', + + // sandstorm.io errors and messages: + 'sandstorm_not_available' => 'Bir Sandstorm.io ortamında Firefly III kullanıyorsanız, bu işlev kullanılamaz.', + + // empty lists? no objects? instructions: + 'no_accounts_title_asset' => 'Bir varlık hesabı oluşturalım!', + 'no_accounts_intro_asset' => 'Henüz varlık hesabınız yok. Varlık hesapları ana hesaplarınızdır: çek hesabı, birikim hesabı, paylaşılan hesabınız veya kredi kartınız.', + 'no_accounts_imperative_asset' => 'Firefly III kullanmaya başlamak için en az bir varlık hesabı açmanız gerekir. Hadi şimdi yapalım:', + 'no_accounts_create_asset' => 'Yeni varlık hesabı oluştur', + 'no_accounts_title_expense' => 'Haydi bir gider hesabı oluşturalım!', + 'no_accounts_intro_expense' => 'Henüz gider hesaplarınız yok. Gider hesapları parayı harcadığınız yerdir, dükkanlar ve süpermarketler gibi.', + 'no_accounts_imperative_expense' => 'Gider hesapları işlemler oluşturduğunuzda otomatik olarak oluşturulur, ama eğer isterseniz manuel olarak da bir tane oluşturabilirsiniz. Haydi şimdi bir tane oluşturalım:', + 'no_accounts_create_expense' => 'Bir masraf hesabı oluştur', + 'no_accounts_title_revenue' => 'Gelir hesabı oluşturalım!', + 'no_accounts_intro_revenue' => 'Henüz gelir hesaplarınız yok. Gelir hesapları para almanızı sağlayan yerdir, tıpkı işvereniniz gibi.', + 'no_accounts_imperative_revenue' => 'Gelir hesapları, işlemler oluşturduğunuzda otomatikmen oluşturulur, ama isterseniz manuel olarak da bir tane oluşturabilirsiniz. Hadi şimdi bir tane oluşturalım:', + 'no_accounts_create_revenue' => 'Bir gelir hesabı oluşturun', + 'no_budgets_title_default' => 'Bütçe oluşturalım', + 'no_budgets_intro_default' => 'Henüz bütçeniz yok. Bütçeler, giderlerinizi mantıklı guruplara organize etmenizi sağlar, bunlara giderlerinizi sınırlamak için esnek bir sınır verebilmeniz için kullanılır.', + 'no_budgets_imperative_default' => 'Bütçeler, finansal yönetimin temel araçlarıdır. Şimdi bir tane oluşturalım:', + 'no_budgets_create_default' => 'Bir bütçe oluştur', + 'no_categories_title_default' => 'Bir kategori oluşturalım!', + 'no_categories_intro_default' => 'Henüz kategorileriniz yok. Kategoriler işlemlerinizi ayrıntılı ayarlamak ve onları belirlenmiş olan kategorilere etiketlemenize yarar.', + 'no_categories_imperative_default' => 'Kategoriler, işlemler oluşturduğunuzda otomatikmen oluşturulur, ama siz manuel olarak da oluşturabilirsiniz. Hadi bir tane oluşturalım:', + 'no_categories_create_default' => 'Bir kategori oluştur', + 'no_tags_title_default' => 'Bir etiket oluşturalım!', + 'no_tags_intro_default' => 'Henüz etiketler yok. Etiketler, işlemlerinizi ayrıntılı ayarlamak ve onları özel anahtar kelimelerle etiketlemenize yarar.', + 'no_tags_imperative_default' => 'Etiketler, işlemler oluşturduğunuzda otomatikmen oluşturulur, ama siz manuel olarak da oluşturabilirsiniz. Haydi bir tane oluşturalım şimdi:', + 'no_tags_create_default' => 'Etiket oluştur', + 'no_transactions_title_withdrawal' => 'Hadi bir gider oluşturalım!', + 'no_transactions_intro_withdrawal' => 'Henüz giderleriniz yok. Maliyenizi yönetmek için giderler oluşturmanız gerekir.', + 'no_transactions_imperative_withdrawal' => 'Biraz para harcadın mı? O zaman şunu yazmalısın:', + 'no_transactions_create_withdrawal' => 'Bir gider oluştur', + 'no_transactions_title_deposit' => 'Bir kaç gelir oluşturalım!', + 'no_transactions_intro_deposit' => 'Kayıtlı bir geliriniz henüz yok. Giderlerinizi yönetmeye başlamak için gelir girdileri oluşturmalısınız.', + 'no_transactions_imperative_deposit' => 'Biraz para aldınız mı? Ozaman aşağıya yazmanız gerekir:', + 'no_transactions_create_deposit' => 'Para yatırma', + 'no_transactions_title_transfers' => 'Bir transfer oluşturalım!', + 'no_transactions_intro_transfers' => 'Henüz bir transferiniz yok. Varlık hesapları arasında para taşıdığınızda, bir transfer olarak kaydedilir.', + 'no_transactions_imperative_transfers' => 'Biraz para mı harcadın? O zaman onu aşağıya yazmalısın:', + 'no_transactions_create_transfers' => 'Aktarma oluştur', + 'no_piggies_title_default' => 'Bir kumbara oluşturalım!', + 'no_piggies_intro_default' => 'Henüz kumbaranız yok. Kazançlarınızı bölmek ve ne kazandığınızı izlemek için kumbaralar oluşturabilirsiniz.', + 'no_piggies_imperative_default' => 'Para biriktirdiğiniz birşeyler var mı? Bir kumbara oluşturun ve takip edin:', + 'no_piggies_create_default' => 'Yeni bir kumbara yarat', + 'no_bills_title_default' => 'Bir fatura oluşturalım!', + 'no_bills_intro_default' => 'Henüz bir faturanız yok. Kira veya sigortanız gibi düzenli giderleri takip etmek için faturalar oluşturabilirsiniz.', + 'no_bills_imperative_default' => 'Böyle düzenli faturalarınız var mı? Bir fatura oluşturun ve ödemelerinizi takip edin:', + 'no_bills_create_default' => 'Fatura oluştur', +]; diff --git a/resources/lang/tr_TR/form.php b/resources/lang/tr_TR/form.php new file mode 100644 index 0000000000..c148cd8ee3 --- /dev/null +++ b/resources/lang/tr_TR/form.php @@ -0,0 +1,209 @@ +. + */ +declare(strict_types=1); + +return [ + // new user: + 'bank_name' => 'Banka adı', + 'bank_balance' => 'Bakiye', + 'savings_balance' => 'Tasarruf bakiyesi', + 'credit_card_limit' => 'Kredi kartı limiti', + 'automatch' => 'Otomatik olarak eşleştir', + 'skip' => 'Atla', + 'name' => 'İsim', + 'active' => 'Aktif', + 'amount_min' => 'Minimum tutar', + 'amount_max' => 'Minimum tutar', + 'match' => 'Eşleşti', + 'repeat_freq' => 'Tekrarlar', + 'journal_currency_id' => 'Para birimi', + 'currency_id' => 'Para birimi', + 'attachments' => 'Ekler', + 'journal_amount' => 'Tutar', + 'journal_source_account_name' => 'Gelir hesabı (kaynak)', + 'journal_source_account_id' => 'Varlık hesabı (kaynak)', + 'BIC' => 'BIC', + 'verify_password' => 'Parola güvenliğini doğrula', + 'source_account' => 'Kaynak hesap', + 'destination_account' => 'Hedef Hesap', + 'journal_destination_account_id' => 'Öğe hesabı (Hedef)', + 'asset_destination_account' => 'Öğe hesabı (Hedef)', + 'asset_source_account' => 'Varlık Hesabı (kaynak)', + 'journal_description' => 'Tanımlama', + 'note' => 'Notlar', + 'split_journal' => 'Bu işlemi böl / Taksitlendir', + 'split_journal_explanation' => 'Bu işlemi taksitlendirin', + 'currency' => 'Para birimi', + 'account_id' => 'Varlık hesabı', + 'budget_id' => 'Bütçe', + 'openingBalance' => 'Açılış bakiyesi', + 'tagMode' => 'Etiket modu', + 'tag_position' => 'Etiket konumu', + 'virtualBalance' => 'Sanal bakiye', + 'targetamount' => 'Hedef tutar', + 'accountRole' => 'Hesap rolü', + 'openingBalanceDate' => 'Açılış bakiyesi tarihi', + 'ccType' => 'Kredi kartı ödeme planı', + 'ccMonthlyPaymentDate' => 'Kredi kartı aylık ödeme tarihi', + 'piggy_bank_id' => 'Kumbara', + 'returnHere' => 'Dön buraya', + 'returnHereExplanation' => 'Sakladıktan sonra, başka bir tane oluşturmak için buraya dön.', + 'returnHereUpdateExplanation' => 'Güncelledikten sonra buraya dönün.', + 'description' => 'Tanımlama', + 'expense_account' => 'Gider Hesabı', + 'revenue_account' => 'Gelir hesabı', + 'decimal_places' => 'Ondalık basamak', + 'exchange_rate_instruction' => 'Yabancı para birimleri', + 'source_amount' => 'Miktar (kaynak)', + 'destination_amount' => 'Miktar (Hedef)', + 'native_amount' => 'Yerli Miktar', + 'new_email_address' => 'Yeni e-posta adresi', + 'verification' => 'Doğrulama', + 'api_key' => 'API anahtarı', + + 'source_account_asset' => 'Kaynak Hesabı (varlık hesabı)', + 'destination_account_expense' => 'Hedef Hesap (gider hesabı)', + 'destination_account_asset' => 'Hedef hesabı (gider hesabı)', + 'source_account_revenue' => 'Kaynak hesap (gelir hesabı)', + 'type' => 'Tür', + 'convert_Withdrawal' => 'Para çekmeyi değiştir', + 'convert_Deposit' => 'Mevduata dönüştürün', + 'convert_Transfer' => 'Aktarımı dönüştür', + + 'amount' => 'Tutar', + 'date' => 'Tarih', + 'interest_date' => 'Faiz tarihi', + 'book_date' => 'Kitap Tarihi', + 'process_date' => 'İşlem tarihi', + 'category' => 'Kategori', + 'tags' => 'Etiketler', + 'deletePermanently' => 'Kalıcı olarak sil', + 'cancel' => 'İptal', + 'targetdate' => 'Hedeflenen tarih', + 'startdate' => 'Başlangıç Tarihi', + 'tag' => 'Etiket', + 'under' => 'Altında', + 'symbol' => 'Sembol', + 'code' => 'Kod', + 'iban' => 'IBAN numarası', + 'accountNumber' => 'Hesap numarası', + 'creditCardNumber' => 'Kredi Kartı Numarası', + 'has_headers' => 'Başlıklar', + 'date_format' => 'Tarih formatı', + 'specifix' => 'Banka veya dosyalara özel düzeltmeler', + 'attachments[]' => 'Ekler', + 'store_new_withdrawal' => 'Yeni para çekme oluştur', + 'store_new_deposit' => 'Yeni depozito oluştur', + 'store_new_transfer' => 'Yeni transfer oluştur', + 'add_new_withdrawal' => 'Yeni para çekme ekle', + 'add_new_deposit' => 'Yeni depozito ekle', + 'add_new_transfer' => 'Yeni bir transfer ekle', + 'title' => 'Başlık', + 'notes' => 'Notlar', + 'filename' => 'Dosya adı', + 'mime' => 'MIME türü', + 'size' => 'Boyut', + 'trigger' => 'Tetikleyici', + 'stop_processing' => 'İşlemeyi durdur', + 'start_date' => 'Sayfa başlangıcı', + 'end_date' => 'Kapsama alanı dışında', + 'export_start_range' => 'İhracatın başlangıcı', + 'export_end_range' => 'İhracatın sonu', + 'export_format' => 'Dosya biçimi', + 'include_attachments' => 'Yüklenen ekleri dahil et', + 'include_old_uploads' => 'İçe aktarılan verileri dahil et', + 'accounts' => 'Bu hesaptan işlemleri çıkarın', + 'delete_account' => '\'\': Name\'\' adlı hesabı sil', + 'delete_bill' => 'Faturayı sil \'\': name\'\'', + 'delete_budget' => '": Name" bütçesini sil', + 'delete_category' => '\'\' Name\'\' kategorisini sil', + 'delete_currency' => 'Para birimini sil \'\':name\'\'', + 'delete_journal' => '":description" açıklamalı işlemi sil', + 'delete_attachment' => '\'\': name\'\' eklentisini sil', + 'delete_rule' => '\'":title" kuralını sil', + 'delete_rule_group' => '":title" kural grubunu sil', + 'delete_link_type' => '":name" bağlantı türünü sil', + 'delete_user' => '":email" kullanıcısını sil', + 'user_areYouSure' => '":email" kullanıcısını silerseniz her şey gitmiş olacak. Geriye alma, silmeyi iptal etme veya başka bir şey yoktur. Eğer kendinizi silerseniz, bu Firefly III\'e erişiminizi kaybedersiniz.', + 'attachment_areYouSure' => '":name" isimli eklentiyi silmek istediğinizden emin misiniz?', + 'account_areYouSure' => '":name" isimli hesabı silmek istediğinizden emin misiniz?', + 'bill_areYouSure' => '":name" isimli faturayı silmek istediğinizden emin misiniz?', + 'rule_areYouSure' => '":title" başlıklı kuralı silmek istediğinizden emin misiniz?', + 'ruleGroup_areYouSure' => '":title" başlıklı kural grubunu silmek istediğinizden emin misiniz?', + 'budget_areYouSure' => '":name" isimli bütçeyi silmek istediğinizden emin misiniz?', + 'category_areYouSure' => '":name" isimli kategoriyi silmek istediğinizden emin misiniz?', + 'currency_areYouSure' => '":name" isimli para birimini silmek istediğinizden emin misiniz?', + 'piggyBank_areYouSure' => '":name" isimli kumbarayı silmek istediğinizden emin misiniz?', + 'journal_areYouSure' => ':description" açıklamalı işlemi silmek istediğinizden emin misiniz?', + 'mass_journal_are_you_sure' => 'Bu işlemi silmek istediğinizden emin misiniz?', + 'tag_areYouSure' => '":tag" etiketini silmek istediğinizden emin misiniz?', + 'journal_link_areYouSure' => ':kaynak and :hedef arasındaki bağlantıyı silmek istediğinizden emin misiniz?', + 'linkType_areYouSure' => '":name" (":inward" / ":outside") bağlantı türünü silmek istediğinizden emin misiniz?', + 'permDeleteWarning' => 'Firely\'den bir şeyler silmek kalıcıdır ve geri alınamaz.', + 'mass_make_selection' => 'Onay kutusunu kaldırarak öğelerin silinmesini engelleyebilirsiniz.', + 'delete_all_permanently' => 'Seçilenleri kalıcı olarak sil', + 'update_all_journals' => 'Bu işlemleri güncelleyin', + 'also_delete_transactions' => 'Bu hesaba bağlı olan tek işlem de silinecektir. |Bu hesaba bağlı tüm :count işlemleri de silinecektir.', + 'also_delete_connections' => 'Bu bağlantıya bağlı tek işlem bağlantısını kaybedecek.| Bu bağlantı türüne bağlı tüm :count işlemleri bağlantılarını kaybedecek.', + 'also_delete_rules' => 'Bu hesaba bağlı olan tek kural grubu da silinecektir. |Bu hesaba bağlı tüm :count kuralları da silinecektir.', + 'also_delete_piggyBanks' => 'Bu hesaba bağlı olan tek kumbara da silinecektir. |Bu hesaba bağlı olan tüm :count kumbaraları da silinecektir.', + 'bill_keep_transactions' => 'Bu hesaba bağlı olan tek işlem de silinmeyecek. |Bu hesaba bağlı tüm :count işlemleri de silinmeden muaf olacaklar.', + 'budget_keep_transactions' => 'Bu bütçeye bağlı olan tek işlem silinmeyecek. |Bu bütçeye bağlı tüm :count işlemleri de silinmeden muaf olacaklar.', + 'category_keep_transactions' => 'Bu kategoriye bağlı olan tek işlem silinmeyecek. |Bu kategoriye bağlı tüm :count işlemleri de silinmeden muaf olacaklar.', + 'tag_keep_transactions' => 'Bu etikete bağlı olan tek işlem silinmeyecek. |Bu etikete bağlı tüm :count işlemleri de silinmeden muaf olacaklar.', + 'check_for_updates' => 'Check for updates', + + 'email' => 'E-posta adresi', + 'password' => 'Şifre', + 'password_confirmation' => 'Şifre (Tekrar)', + 'blocked' => 'Engellendi mi?', + 'blocked_code' => 'Blok nedeni', + + // admin + 'domain' => 'Alan adı', + 'single_user_mode' => 'Kullanıcı kaydını devre dışı bırak', + 'is_demo_site' => 'Demo sitesi var mı', + + // import + 'import_file' => 'Önemli dosya', + 'configuration_file' => 'Yapılandırma dosyası', + 'import_file_type' => 'Dosya türünü içe aktar', + 'csv_comma' => 'Bir virgül (,)', + 'csv_semicolon' => 'Noktalı virgül (;)', + 'csv_tab' => 'Bir sekme (görünmez)', + 'csv_delimiter' => 'CSV alan ayırıcısı', + 'csv_import_account' => 'Varsayılan ithalat hesabı', + 'csv_config' => 'CSV içe aktarım yapılandırılması', + 'client_id' => 'Müşteri Kimliği', + 'service_secret' => 'Hizmet Sırrı', + 'app_secret' => 'Uygulama Sırrı', + 'public_key' => 'Genel anahtar', + 'country_code' => 'Ülke kodu', + 'provider_code' => 'Banka ya da veri sağlayıcı', + + 'due_date' => 'Bitiş Tarihi', + 'payment_date' => 'Ödeme Tarihi', + 'invoice_date' => 'Fatura Tarihi', + 'internal_reference' => 'Dahili referans', + 'inward' => 'Dahili açıklama', + 'outward' => 'Harici açıklama', + 'rule_group_id' => 'Kural grubu', +]; diff --git a/resources/lang/tr_TR/import.php b/resources/lang/tr_TR/import.php new file mode 100644 index 0000000000..1ca135a238 --- /dev/null +++ b/resources/lang/tr_TR/import.php @@ -0,0 +1,158 @@ +. + */ +declare(strict_types=1); + +return [ + // status of import: + 'status_wait_title' => 'Lütfen bekleyin...', + 'status_wait_text' => 'Bu kutu bir dakika içinde kaybolacak.', + 'status_fatal_title' => 'Önemli bir hata oluştu', + 'status_fatal_text' => 'İçe aktarma rutininin kurtaramadığı önemli bir hata oluştu. Lütfen aşağıdaki kırmızı renkli açıklamaları okuyun.', + 'status_fatal_more' => 'Eğer hata zaman aşımı ise, içe aktarma yarısında durdurulur. Bazı sunucu ayarlarında sadece sunucu durdurulurken içe aktarım arka planda devam eder. Bunu sağlamak için kayıt dosyalarını kontrol edin. Eğer sorun devam ederse komut satırı üzerinden içe aktarımı deneyin.', + 'status_ready_title' => 'İçe aktarım başlamaya hazır', + 'status_ready_text' => 'İçe aktarım başlamaya hazır. Yapmanız gereken tüm ayarlar yapıldı. Lütfen ayar dosyasını indirin. İçe aktarım planlandığı gibi gitmezse size yardım edecektir. İçe aktarımı başlatmak için takip eden komutu konsolunuza girebilir ya da web tabanlı içe aktarımı kullanabilirsiniz. Ayarlarınıza bağlı olarak göre konsol içe aktarımı size daha fazla geri bildirim verecektir.', + 'status_ready_noconfig_text' => 'İçe aktarım başlamaya hazır. Yapmanız gereken tüm ayarlar yapıldı. İçe aktarımı başlatmak için takip eden komutu konsolunuza girebilir ya da web tabanlı içe aktarımı kullanabilirsiniz. Ayarlarınıza bağlı olarak göre konsol içe aktarımı size daha fazla geri bildirim verecektir.', + 'status_ready_config' => 'Yapılandırmayı indir', + 'status_ready_start' => 'İçe aktarmayı başlat', + 'status_ready_share' => 'Lütfen ayarlarınızı indirmeyi ve onu içe aktarım ayarları merkezinde paylaşmayı düşünün. Bu diğer kullanıcılarının Firefly III\'ün dosyalarını daha kolay içe aktarmasına olanak tanır.', + 'status_job_new' => 'Yeni iş.', + 'status_job_configuring' => 'İçe aktarım ayarlanıyor.', + 'status_job_configured' => 'İçe aktarım ayarlandı.', + 'status_job_running' => 'Alma işlemi çalışıyor... Lütfen bekleyin..', + 'status_job_error' => 'İş bir hata üretti.', + 'status_job_finished' => 'Alma işlemi tamamlandı!', + 'status_running_title' => 'İçe aktarma işlemi sürüyor', + 'status_running_placeholder' => 'Güncelleme için lütfen bekleyin...', + 'status_finished_title' => 'İçe aktarma rutini tamamlandı', + 'status_finished_text' => 'İçe aktarma rutini verilerinizi içe aktardı.', + 'status_errors_title' => 'İçe aktarım sırasında hata', + 'status_errors_single' => 'İçe aktarım sırasında bir hata oluştu. Önemli gibi görünmüyor.', + 'status_errors_multi' => 'İçe aktarım sırasında hatalar oluştu. Önemli gibi görünmüyorlar.', + 'status_bread_crumb' => 'Aktarma durumu', + 'status_sub_title' => 'Aktarma durumu', + 'config_sub_title' => 'Hesabınızı oluşturunuz', + 'status_finished_job' => 'İçe aktarılan işlemler etiket etiketinde bulunabilirler.', + 'import_with_key' => ':key ile içe aktarın', + + // file, upload something + 'file_upload_title' => 'Ayarları aktar (1/4) - Dosyalarınızı yükelyin', + 'file_upload_text' => 'Bu yöntem dosyalarınızı bankanızdan Firefly III\'e aktarmanıza yardımcı olur. Lütfen sağ üst köşedeki yardımı kontrol edin.', + 'file_upload_fields' => 'Alanlar', + 'file_upload_help' => 'Dosyanızı seçin', + 'file_upload_config_help' => 'Eğer Firefly III\'e daha önce veri aktardıysanız, ayarları sizin için önceden ayarlayacak bir ayar dosyasına sahip olabilirsiniz. Diğer kullanıcılar baı bankalar için kendi ayar dosyalarını sağlayabilirler', + 'file_upload_type_help' => 'Yükleyeceğiniz dosya türünü seçin', + 'file_upload_submit' => 'Dosyaları yükle', + + // file, upload types + 'import_file_type_csv' => 'CSV (virgülle ayrılmış değerler)', + + // file, initial config for CSV + 'csv_initial_title' => 'Ayarları aktar (2/4) - Temel CSV aktarım ayarları', + 'csv_initial_text' => 'Dosyanızı doğru bir şekilde içe aktarabilmek için lütfen aşağıdaki seçenekleri doğrulayın.', + 'csv_initial_box' => 'Temel CSV aktarım ayarları', + 'csv_initial_box_title' => 'Temel CSV aktarım ayarları seçenekleri', + 'csv_initial_header_help' => 'CSV dosyanızın ilk satırları sütun başlıklarıysa bu kutuyu işaretleyin.', + 'csv_initial_date_help' => 'CSV dosyanızda ki zaman biçimi. Bu sayfanın gösterdiği biçimi kontrol takip edin. Varsayılan değer şu şekilde görülen tarihleri ayrıştırır: :dateExample.', + 'csv_initial_delimiter_help' => 'Gir dosyanızda kullanılan alan sınırlayıcıyı seçin. Emin değilseniz, virgül en güvenli seçenektir.', + 'csv_initial_import_account_help' => 'Eğer CSV dosyanız aktif hesabınızla ilgili bilgi içermiyorsa, CSV\'de bulunan işlemlerin hangi hesaba ait olduğunu bu açılan kutudan seçiniz.', + 'csv_initial_submit' => '3/4 adım ile devam et', + + // file, new options: + 'file_apply_rules_title' => 'Kuralları uygula', + 'file_apply_rules_description' => 'Kurallarınızı kabul ediniz. Bunun önemli ölçüde içe aktarmayı yavaşlattığını unutmayın.', + 'file_match_bills_title' => 'Faturaları eşleştirin', + 'file_match_bills_description' => 'Faturalarınızı yeni oluşturulan çekimlerle eşleştirin. Bunun önemli ölçüde içe aktarmayı yavaşlatacağını unutmayın.', + + // file, roles config + 'csv_roles_title' => 'Ayarları aktar (3/4) - Her sütunun görevini belirleyin', + 'csv_roles_text' => 'CSV dosyanızdaki her sütun belirli verileri içerir. Lütfen aktarıcının ne tür bir veri beklemesi gerektiğini belirtin. Verileri "planla" seçeneği sütunda bulunan her girdinin veri tabanınınızdaki bir değer ile bağlantılanması anlamına gelir. Genellikle planlanan sütun karşı hesabın IBAN numarasının olduğu sütundur. Bu veri tabanınızda bulunan IBAN\'larla kolayca eşleştirilebilir.', + 'csv_roles_table' => 'Tablo', + 'csv_roles_column_name' => 'Sütun adı', + 'csv_roles_column_example' => 'Sütun örneği verileri', + 'csv_roles_column_role' => 'Sütun veri ortalaması', + 'csv_roles_do_map_value' => 'Değerlerin haritası', + 'csv_roles_column' => 'Sütun', + 'csv_roles_no_example_data' => 'Örnek veri yok', + 'csv_roles_submit' => '4/4 adım ile devam et', + + // not csv, but normal warning + 'roles_warning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.', + + // file, map data + 'file_map_title' => 'Ayarları aktar (4/4) - İçe aktarım verilerini Firefly III verilerine bağlayın', + 'file_map_text' => 'Takip eden tabloda, sol değer yüklediğiniz dosyada bulunan bilgileri gösterir. Bu değeri eşlemek sizin göreviniz, eğer mümkünse veritabanınızda bulunan bir değerle. Firefly bu eşlemeye bağlı kalacak. Eğer eşleştirilecek değer yoksa ya da belirli bir değer ile eşleştirmek istemiyorsanız hiçbir şey seçmeyin.', + 'file_map_field_value' => 'Alan değeri', + 'file_map_field_mapped_to' => 'Eşleşti', + 'map_do_not_map' => '(eşleştirme)', + 'file_map_submit' => 'İçe aktarmaya başla', + + // map things. + 'column__ignore' => '(bu sütünu yok say)', + 'column_account-iban' => 'Öğe hesabı (IBAN)', + 'column_account-id' => 'Varlık hesabı kimliği (Firefly ile eşleşen)', + 'column_account-name' => 'Varlık hesabı (isim)', + 'column_amount' => 'Tutar', + 'column_amount_debit' => 'Miktar (borç sütunu)', + 'column_amount_credit' => 'Miktar (kredi sütunu)', + 'column_amount-comma-separated' => 'Miktar (virgül ondalık ayırıcı olarak)', + 'column_bill-id' => 'Fatura Kimliği (Firefly ile eşleşen)', + 'column_bill-name' => 'Fatura adı', + 'column_budget-id' => 'Bütçe kimliği (Firefly ile eşleşen)', + 'column_budget-name' => 'Bütçe adı', + 'column_category-id' => 'Kategori kimliği (Firefly ile eşleşen)', + 'column_category-name' => 'Kategori adı', + 'column_currency-code' => 'Para birimi kodu (ISO 4217)', + 'column_currency-id' => 'Para birimi kimliği (Firefly ile eşleşen)', + 'column_currency-name' => 'Para birimi adı (Firefly ile eşleşen)', + 'column_currency-symbol' => 'Para birimi simgesi (Firefly eşleşen)', + 'column_date-interest' => 'Faiz hesaplama tarihi', + 'column_date-book' => 'İşlem rezervasyon tarihi', + 'column_date-process' => 'İşlem tarihi', + 'column_date-transaction' => 'Tarih', + 'column_description' => 'Açıklama', + 'column_opposing-iban' => 'Karşı hesap (IBAN)', + 'column_opposing-id' => 'Karşı hesap kimliği (Firefly ile eşleşen)', + 'column_external-id' => 'Harici Kimlik', + 'column_opposing-name' => 'Karşı hesap (isim)', + 'column_rabo-debit-credit' => 'Rabobank\'a özel borç / kredi göstergesi', + 'column_ing-debit-credit' => 'ING\'ye özel borç/kredi göstergesi', + 'column_sepa-ct-id' => 'SEPA Kredi Transferinin uçtan uca kimliği', + 'column_sepa-ct-op' => 'SEPA Kredi Transferinin karşı hesabı', + 'column_sepa-db' => 'SEPA Direkt Borç', + 'column_tags-comma' => 'Etiketler (virgülle ayrılmış)', + 'column_tags-space' => 'Etiketler (boşlukla ayrılmış)', + 'column_account-number' => 'Varlık hesabı (hesap numarası)', + 'column_opposing-number' => 'Karşı hesap (hesap numarası)', + 'column_note' => 'Not(lar)', + + // prerequisites + 'prerequisites' => 'Prerequisites', + + // bunq + 'bunq_prerequisites_title' => 'Bunq\'dan içeri aktarım için şartlar', + 'bunq_prerequisites_text' => 'Bunq\'dan içe aktarabilmek için bir API anahtarı almalısınız. Bunu uygulamadan yapabilirsiniz.', + + // Spectre + 'spectre_title' => 'Spectre kullanarak içe aktar', + 'spectre_prerequisites_title' => 'Spectre kullanarak içe aktarma için ön koşullar', + 'spectre_prerequisites_text' => 'Spectre API\'sini kullanarak verileri içe aktarabilmek için bazı sırlara sahip olmanız gerekmektedir. Bunları sırlar sayfasında bulunabilirsiniz.', + 'spectre_enter_pub_key' => 'Alma işlemi sadece bu ortak anahtarı güvenlik sayfasına girdiğinizde çalışacaktır.', +]; diff --git a/resources/lang/tr_TR/intro.php b/resources/lang/tr_TR/intro.php new file mode 100644 index 0000000000..3cbd8a607e --- /dev/null +++ b/resources/lang/tr_TR/intro.php @@ -0,0 +1,133 @@ +. + */ +declare(strict_types=1); + +return [ + // index + 'index_intro' => 'Firefly III indeks sayfasına hoşgeldiniz. Firefly III\'nin nasıl çalıştığını öğrenmek için lütfen bu tanıtımı izleyin.', + 'index_accounts-chart' => 'Bu grafik, varlık hesaplarınızın geçerli bakiyesini gösterir. Burada görünen hesapları tercihlerinizde seçebilirsiniz.', + 'index_box_out_holder' => 'Bu küçük kutu ve bunun yanındaki kutular size finansal durumunuza hızlı bir bakış sunar.', + 'index_help' => 'Bir sayfa veya formla ilgili yardıma ihtiyacınız varsa, bu düğmeye basın.', + 'index_outro' => 'Firefly III\'ün çoğu sayfası bunun gibi küçük bir turla başlayacak. Sorularınız ve yorumlarınız olursa lütfen benimle iletişime geçin. Keyfini çıkarın!', + 'index_sidebar-toggle' => 'Yeni işlemler, hesaplar veya başka şeyler oluşturmak için bu simgenin altındaki menüyü kullanın.', + + // create account: + 'accounts_create_iban' => 'Hesaplarınıza geçerli IBAN girin. Bu, ileride veri aktarma işlemini kolaylaştırabilir.', + 'accounts_create_asset_opening_balance' => 'Aktif hesapların, Firefly\'da bu hesap geçmişinin başlangıcını gösteren bir "açılış bakiyesi" olabilir.', + 'accounts_create_asset_currency' => 'Firefly III, birden fazla para birimini destekliyor. Varlık hesaplarının bir ana para birimi var, burada ayarlamanız gerekir.', + 'accounts_create_asset_virtual' => 'Bazen hesabınıza sanal bir bakiye sağlamanıza yardımcı olabilir: ek bir miktar her zaman gerçek bakiyeye eklenir veya gerçek bakiyeden çıkarılır.', + + // budgets index + 'budgets_index_intro' => 'Bütçeler, finansmanınızı yönetmek ve Firefly III\'nin temel işlevlerinden birini oluşturmak için kullanılır.', + 'budgets_index_set_budget' => 'Toplam bütçenizi her dönem için belirleyin, böylelikle Firefly size mevcut tüm parayı bütçelendirdiğinizde söyleyebilir.', + 'budgets_index_see_expenses_bar' => 'Para harcamak yavaşça bu çubuğu dolduracaktır.', + 'budgets_index_navigate_periods' => 'Bütçeleri önceden kolayca ayarlamak için dönemleri gezinin.', + 'budgets_index_new_budget' => 'Uygun gördüğünüz yeni bütçeler oluşturun.', + 'budgets_index_list_of_budgets' => 'Her bütçe için tutarları ayarlamak ve ne durumda olduğunuzu görmek için bu tabloyu kullanın.', + 'budgets_index_outro' => 'Bütçeleme hakkında daha fazla bilgi almak için sağ üst köşedeki yardım simgesini kontrol edin.', + + // reports (index) + 'reports_index_intro' => 'Maliyetlerinizde ayrıntılı bilgi edinmek için bu raporları kullanın.', + 'reports_index_inputReportType' => 'Bir rapor türü seçin. Her bir raporun neyi gösterdiğini görmek için yardım sayfalarına göz atın.', + 'reports_index_inputAccountsSelect' => 'Varlık hesaplarını uygun gördüğünüz gibi hariç tutabilir veya ekleyebilirsiniz.', + 'reports_index_inputDateRange' => 'Seçilen tarih aralığı tamamen size kalmış: 1 günden 10 yıla kadar.', + 'reports_index_extra-options-box' => 'Seçtiğiniz rapora bağlı olarak, burada ekstra filtre ve seçenekleri belirleyebilirsiniz. Rapor türlerini değiştirirken bu kutuya dikkat edin.', + + // reports (reports) + 'reports_report_default_intro' => 'Bu rapor size mali durumunuz hakkında hızlı ve kapsamlı bir bilgi verecektir. Başka bir şey görmek isterseniz, lütfen benimle iletişime geçmekten çekinmeyin!', + 'reports_report_audit_intro' => 'Bu rapor size aktif hesaplarınızla ilgili ayrıntılı bilgiler verecektir.', + 'reports_report_audit_optionsBox' => 'İlgilendiğiniz sütunları göstermek veya gizlemek için bu onay kutularını kullanın.', + + 'reports_report_category_intro' => 'Bu rapor size bir veya birden fazla kategoride fikir verecektir.', + 'reports_report_category_pieCharts' => 'Bu grafikler, size her bir kategori veya hesaptaki gelir ve giderler konusunda fikir verecektir.', + 'reports_report_category_incomeAndExpensesChart' => 'Bu grafik her bir kategori için gelir ve giderlerinizi gösterir.', + + 'reports_report_tag_intro' => 'Bu rapor size bir veya birden fazla etikette fikir verecektir.', + 'reports_report_tag_pieCharts' => 'Bu grafikler, her bir etiket, hesap, kategori veya bütçe için gelir ve giderler konusunda size fikir verecektir.', + 'reports_report_tag_incomeAndExpensesChart' => 'Bu grafik her bir etiket için gelir ve giderlerinizi gösterir.', + + 'reports_report_budget_intro' => 'Bu rapor size bir veya birden fazla bütçede fikir verecektir.', + 'reports_report_budget_pieCharts' => 'Bu grafikler her bir bütçe veya hesaptaki giderler konusunda size fikir verecektir.', + 'reports_report_budget_incomeAndExpensesChart' => 'Bu grafik her bir bütçe için giderlerinizi gösterir.', + + // create transaction + 'transactions_create_switch_box' => 'Kaydetmek istediğiniz işlem tipini hızlıca değiştirmek için bu düğmeleri kullanın.', + 'transactions_create_ffInput_category' => 'Bu alana istediğiniz şekilde yazabilirsiniz. Daha önceden oluşturulan kategoriler önerilir.', + 'transactions_create_withdrawal_ffInput_budget' => 'Daha iyi mali kontrol için para çekme işleminizi bir bütçeyle ilişkilendirin.', + 'transactions_create_withdrawal_currency_dropdown_amount' => 'Para çekme işleminiz başka bir para biriminde olduğunda bu açılan listeyi kullanın.', + 'transactions_create_deposit_currency_dropdown_amount' => 'Para yatırma işleminiz başka bir bir para biriminde olduğunda bu açılır listeyi kullanın.', + 'transactions_create_transfer_ffInput_piggy_bank_id' => 'Bir kumbara seçin ve bu transferi birikimlerinize ilişkilendirin.', + + // piggy banks index: + 'piggy-banks_index_saved' => 'Bu alan size her bir kumbarada ne kadar biriktirdiğinizi gösterir.', + 'piggy-banks_index_button' => 'Her bir kumbaraya para eklemek veya çıkarmak için bu ilerleme çubuğunun yanında iki düğme (+ ve -) bulunur.', + 'piggy-banks_index_accountStatus' => 'En az bir kumbarası olan her bir aktif hesap için durum bu tabloda listelenir.', + + // create piggy + 'piggy-banks_create_name' => 'Hedefin nedir? Yeni bir kanepe, bir kamera ya da acil durumlar için para mı?', + 'piggy-banks_create_date' => 'Kumbaranız için bir hedef tarih ya da bitiş tarihi belirleyebilirsiniz.', + + // show piggy + 'piggy-banks_show_piggyChart' => 'Bu tablo, bu kumbaranın geçmişini gösterecektir.', + 'piggy-banks_show_piggyDetails' => 'Kumbaranız hakkında bazı bilgiler', + 'piggy-banks_show_piggyEvents' => 'Herhangi bir ekleme veya çıkarma işlemi de burada listelenmektedir.', + + // bill index + 'bills_index_paid_in_period' => 'Bu alan faturanın en son ne zaman ödendiğini gösterir.', + 'bills_index_expected_in_period' => 'Bu alan, her fatura için, eğer ödenmesi gerekiyorsa bir sonraki faturanın ne zaman ödeneceğini gösterir.', + + // show bill + 'bills_show_billInfo' => 'Bu tablo, bu fatura hakkında bazı genel bilgiler gösterir.', + 'bills_show_billButtons' => 'Eski işlemleri tekrar taramak için bu düğmeyi kullanın böylelikle bu fatura ile eşleşeceklerdir.', + 'bills_show_billChart' => 'Bu tablo, bu faturaya ilişkilendirilmiş işlemleri gösterir.', + + // create bill + 'bills_create_name' => '"Kira" veya "Sağlık sigortası" gibi açıklayıcı bir isim kullanın.', + 'bills_create_match' => 'İşlemleri eşleştirmek için, bu işlemlerden veya ilgili gider hesabından gelen terimleri kullanın. Tüm kelimeler eşleşmelidir.', + 'bills_create_amount_min_holder' => 'Bu fatura için minimum ve maksimum bir tutar seçin.', + 'bills_create_repeat_freq_holder' => 'Birçok fatura aylık yinelenir, fakat burada başka bir sıklık ayarlayabilirsiniz.', + 'bills_create_skip_holder' => 'Örneğin bir fatura her 2 haftada yineleniyorsa, "atla" alanı iki haftada bir atlaması için "1" olarak ayarlanmalıdır.', + + // rules index + 'rules_index_intro' => 'Firefly III, oluşturduğunuz veya düzenlediğiniz herhangi bir işleme otomatik olarak uygulanacak olan kuralları yönetmenize olanak verir.', + 'rules_index_new_rule_group' => 'Daha kolay yönetim için kuralları gruplar halinde bir araya getirebilirsiniz.', + 'rules_index_new_rule' => 'İstediğiniz kadar kural oluşturun.', + 'rules_index_prio_buttons' => 'Onları uygun gördüğün herhangi bir şekilde sipariş edin.', + 'rules_index_test_buttons' => 'Kurallarınızı test edebilir veya onları mevcut işlemlere uygulayabilirsiniz.', + 'rules_index_rule-triggers' => 'Kuralların, sürükleyip bırakarak sıralayabileceğiniz "tetikleyicileri" ve "eylemleri" vardır.', + 'rules_index_outro' => 'Sağ üstteki (?) Simgesini kullanarak yardım sayfalarını kontrol ettiğinizden emin olun!', + + // create rule: + 'rules_create_mandatory' => 'Açıklayıcı bir başlık seçin ve kuralın ne zaman harekete geçeceğini ayarlayın.', + 'rules_create_ruletriggerholder' => 'İstediğiniz kadar çok tetikleyici ekleyin, fakat herhangi bir eylem harekete geçmeden önce TÜM tetikleyicilerin eşleşmesi gerektiğini unutmayın.', + 'rules_create_test_rule_triggers' => 'Hangi işlemlerin kurallarınıza uyacağını görmek için bu tuşu kullanın.', + 'rules_create_actions' => 'İstediğiniz kadar eylem belirleyin.', + + // preferences + 'preferences_index_tabs' => 'Bu sekmelerin arkasında daha fazla seçenek bulunmaktadır.', + + // currencies + 'currencies_index_intro' => 'Firefly III, bu sayfada değiştirebileceğiniz birden fazla para birimini destekliyor.', + 'currencies_index_default' => 'Firefly III bir varsayılan para birimine sahiptir. Tabi ki istediğiniz zaman bu düğmeleri kullanarak değiştirebilirsiniz.', + + // create currency + 'currencies_create_code' => 'Bu kod ISO uyumlu olmalıdır (Yeni para biriminiz için Google\'da arayın).', +]; diff --git a/resources/lang/tr_TR/list.php b/resources/lang/tr_TR/list.php new file mode 100644 index 0000000000..6c8b6f834d --- /dev/null +++ b/resources/lang/tr_TR/list.php @@ -0,0 +1,103 @@ +. + */ +declare(strict_types=1); + +return [ + 'buttons' => 'Tuşlar', + 'icon' => 'Simge', + 'id' => 'Kimlik', + 'create_date' => 'Tarihinde oluşturuldu', + 'update_date' => 'Tarihinde güncellendi', + 'updated_at' => 'Tarihinde güncellendi', + 'balance_before' => 'Önceki bakiye', + 'balance_after' => 'Sonraki bakiye', + 'name' => 'İsim', + 'role' => 'Rol', + 'currentBalance' => 'Cari bakiye', + 'active' => 'Aktif mi?', + 'lastActivity' => 'Son Etkinlik', + 'balanceDiff' => 'Bakiye farkı', + 'matchesOn' => 'Eşleşti', + 'account_type' => 'Hesap Türü', + 'created_at' => 'Tarihinde oluşturuldu', + 'account' => 'Hesap', + 'matchingAmount' => 'Miktar', + 'split_number' => 'Ayır #', + 'destination' => 'Hedef', + 'source' => 'Kaynak', + 'next_expected_match' => 'Beklenen sonraki eşleşme', + 'automatch' => 'Otomatik eşleştir?', + 'repeat_freq' => 'Tekrarlar', + 'description' => 'Açıklama', + 'amount' => 'Miktar', + 'internal_reference' => 'Dahili referans', + 'date' => 'Tarih', + 'interest_date' => 'Faiz tarihi', + 'book_date' => 'Kitap tarihi', + 'process_date' => 'İşlem tarihi', + 'due_date' => 'Bitiş tarihi', + 'payment_date' => 'Ödeme tarihi', + 'invoice_date' => 'Fatura tarihi', + 'interal_reference' => 'Dahili referans', + 'notes' => 'Notlar', + 'from' => 'Kimden', + 'piggy_bank' => 'Kumbara', + 'to' => 'Alıcı', + 'budget' => 'Bütçe', + 'category' => 'Kategori', + 'bill' => 'Fatura', + 'withdrawal' => 'Para Çekme', + 'deposit' => 'Yatır', + 'transfer' => 'Transfer', + 'type' => 'Tür', + 'completed' => 'Tamamlandı', + 'iban' => 'IBAN numarası', + 'paid_current_period' => 'Bu dönemde ödenen', + 'email' => 'E-posta', + 'registered_at' => 'Şurada kayıtlı', + 'is_blocked' => 'Engellendi', + 'is_admin' => 'Yönetici mi', + 'has_two_factor' => '2FA var', + 'blocked_code' => 'Blok kodu', + 'source_account' => 'Kaynak Hesap', + 'destination_account' => 'Hedef Hesap', + 'accounts_count' => 'Hesap Sayısı', + 'journals_count' => 'İşlem Sayısı', + 'attachments_count' => 'Eklerin sayısı', + 'bills_count' => 'Fatura sayısı', + 'categories_count' => 'Kategori sayısı', + 'export_jobs_count' => 'İhracat sayısı', + 'import_jobs_count' => 'İthalat sayısı', + 'budget_count' => 'Bütçelerin sayısı', + 'rule_and_groups_count' => 'Kuralların ve kural gruplarının sayısı', + 'tags_count' => 'Etiket sayısı', + 'tags' => 'Tags', + 'inward' => 'Dahili açıklama', + 'outward' => 'Dışa açıklama', + 'number_of_transactions' => 'İşlem sayısı', + 'total_amount' => 'Toplam Tutar', + 'sum' => 'Toplam', + 'sum_excluding_transfers' => 'Toplam (transferler hariç)', + 'sum_withdrawals' => 'Para çekme toplamı', + 'sum_deposits' => 'Toplam para yatırma', + 'sum_transfers' => 'Transferlerin toplamı', + 'reconcile' => 'Onaylanmış', +]; diff --git a/resources/lang/tr_TR/pagination.php b/resources/lang/tr_TR/pagination.php new file mode 100644 index 0000000000..d3268e7a07 --- /dev/null +++ b/resources/lang/tr_TR/pagination.php @@ -0,0 +1,26 @@ +. + */ +declare(strict_types=1); + +return [ + 'previous' => '« Önceki', + 'next' => 'Sonraki »', +]; diff --git a/resources/lang/tr_TR/passwords.php b/resources/lang/tr_TR/passwords.php new file mode 100644 index 0000000000..150281848b --- /dev/null +++ b/resources/lang/tr_TR/passwords.php @@ -0,0 +1,30 @@ +. + */ +declare(strict_types=1); + +return [ + 'password' => 'Şifreniz en az altı karakter olmalıdır ve onayla eşleşmelidir.', + 'user' => 'Bu e-posta adresine sahip bir kullanıcı bulunamadı.', + 'token' => 'Şifre sıfırlama kodu geçersiz.', + 'sent' => 'Şifre sıfırlama linkini e-posta adresinize gönderdik!', + 'reset' => 'Şifreniz sıfırlandı!', + 'blocked' => 'Yine de iyi denemeydi.', +]; diff --git a/resources/lang/tr_TR/validation.php b/resources/lang/tr_TR/validation.php new file mode 100644 index 0000000000..ee41b5c28b --- /dev/null +++ b/resources/lang/tr_TR/validation.php @@ -0,0 +1,102 @@ +. + */ +declare(strict_types=1); + +return [ + 'iban' => 'Bu IBAN geçerli değilrdir.', + 'unique_account_number_for_user' => 'Bu hesap numarası zaten kullanılmaktadır.', + 'deleted_user' => 'Güvenlik kısıtlamaları nedeniyle, bu e-posta adresini kullanarak kayıt yapamazsınız.', + 'rule_trigger_value' => 'Bu eylem, seçili işlem için geçersizdir.', + 'rule_action_value' => 'Bu eylem seçili işlem için geçersizdir.', + 'file_already_attached' => 'Yüklenen dosya \'\': name\'\' zaten bu nesneye bağlı.', + 'file_attached' => '\'\': name\'\' dosyası başarıyla yüklendi.', + 'file_invalid_mime' => '": Name" dosyası ": mime" türünde olup yeni bir yükleme olarak kabul edilemez.', + 'file_too_large' => '\'\': Name\'\' dosyası çok büyük.', + 'belongs_to_user' => ':attribute\'nin değeri bilinmiyor', + 'accepted' => ': attribute kabul edilmek zorunda.', + 'bic' => 'Bu BIC geçerli değilrdir.', + 'more' => ':attribute sıfırdan büyük olmak zorundadır.', + 'active_url' => ':attribute geçerli bir URL değil.', + 'after' => ':attribute :date tarihinden sonrası için tarihlendirilmelidir.', + 'alpha' => ':attribute sadece harf içerebilir.', + 'alpha_dash' => ':attribute sadece harf, sayı ve kısa çizgi içerebilir.', + 'alpha_num' => ':attribute sadece harf ve sayı içerebilir.', + 'array' => ': Nitelikli bir dizi olmalıdır.', + 'unique_for_user' => ':attribute\'de zaten bir girdi var.', + 'before' => ':attribute :date tarihinden öncesi için tarihlendirilmelidir.', + 'unique_object_for_user' => 'Bu isim zaten kullanılıyor', + 'unique_account_for_user' => 'Bu hesap adı zaten kullanılıyor', + 'between.numeric' => ':attribute :min ve :max arasında olmalıdır.', + 'between.file' => ':attribute, :min kilobayt ve :max kilobayt arasında olmalıdır.', + 'between.string' => ':attribute :min karakter ve :max karakter olmalıdır.', + 'between.array' => ':attribute :min öğe ve :max öğe olmalıdır.', + 'boolean' => ':attribute alanının doğru veya yanlış olması gerekir.', + 'confirmed' => ': Öznitelik doğrulaması eşleşmiyor.', + 'date' => ':attribute geçerli bir tarih değil.', + 'date_format' => ':attribute :format formatına uymuyor.', + 'different' => ':attribute ve :other farklı olmalı.', + 'digits' => ':attribute :digits basamak olmalıdır.', + 'digits_between' => ':attribute en az :min basamak en fazla :max basamak olmalı.', + 'email' => ':attribute geçerli bir e-posta adresi olmalıdır.', + 'filled' => ':attribute alanı gereklidir.', + 'exists' => 'Seçili :attribute geçersiz.', + 'image' => ':attribute bir resim olmalı.', + 'in' => 'Seçili :attribute geçersiz.', + 'integer' => ':attribute bir tamsayı olmalı.', + 'ip' => ':attribute geçerli bir IP adresi olmalı.', + 'json' => ':attribute geçerli bir JSON dizini olmalı.', + 'max.numeric' => ':attribute, :max değerinden daha büyük olamamalıdır.', + 'max.file' => ':attribute :max kilobayttan büyük olmamalıdır.', + 'max.string' => ':attribute :max karakterden büyük olmamalıdır.', + 'max.array' => ':attribute :max öğeden daha fazlasına sahip olamaz.', + 'mimes' => ':attribute :values türünde bir dosya olmalı.', + 'min.numeric' => ':attribute en az :min olmalıdır.', + 'min.file' => ':attribute en az :min kilobayt olmalıdır.', + 'min.string' => ':attribute en az :min karakter olmalıdır.', + 'min.array' => ':attribute en az :min öğe içermelidir.', + 'not_in' => 'Seçili :attribute geçersiz.', + 'numeric' => ':attribute sayı olmalıdır.', + 'regex' => ':attribute biçimi geçersiz.', + 'required' => ':attribute alanı gereklidir.', + 'required_if' => ':other :value iken :attribute alanı gereklidir.', + 'required_unless' => ':others :values içinde değilse :attribute alanı gereklidir.', + 'required_with' => ':values mevcutken :attribute alanı gereklidir.', + 'required_with_all' => ':values mevcutken :attribute alanı gereklidir.', + 'required_without' => ':values mevcut değilken :attribute alanı gereklidir.', + 'required_without_all' => 'Hiçbir :values mevcut değilken :attribute alanı gereklidir.', + 'same' => ': Attribute ve: diğeri eşleşmelidir.', + 'size.numeric' => ': attribute :size olmalıdır.', + 'size.file' => ':attribute :size kilobyte olmalıdır.', + 'size.string' => ': attribute :size karakter olmalıdır.', + 'size.array' => ':attribute :size öğeye sahip olmalıdır.', + 'unique' => ':attribute zaten alınmış.', + 'string' => ':attribute bir dizi olmalıdır.', + 'url' => ':attribute biçimi geçersiz.', + 'timezone' => ':attribute geçerli bir bölge olmalıdır.', + '2fa_code' => ':attribute alanı geçersiz.', + 'dimensions' => ':attribute geçersiz görüntü boyutlarına sahip.', + 'distinct' => ':attribute alanı yinelenen bir değere sahip.', + 'file' => ':attribute bir dosya olmalıdır.', + 'in_array' => ':attribute alanı :other içinde olamaz.', + 'present' => ':attribute alanı mevcut olmalıdır.', + 'amount_zero' => 'Toplam tutar sıfır olamaz', + 'secure_password' => 'Güvenli bir şifre değildir. Lütfen tekrar deneyin. Daha fazla bilgi için https://goo.gl/NCh2tN adresini ziyaret edin', +]; From 8bcfa729b6ecce65ae1ac681646426616e16eaf6 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 31 Dec 2017 09:36:36 +0100 Subject: [PATCH 24/77] Updated language files. --- resources/lang/tr_TR/breadcrumbs.php | 6 +- resources/lang/tr_TR/firefly.php | 262 +++++++++++++-------------- resources/lang/tr_TR/form.php | 16 +- resources/lang/tr_TR/import.php | 2 +- resources/lang/tr_TR/validation.php | 22 +-- 5 files changed, 154 insertions(+), 154 deletions(-) diff --git a/resources/lang/tr_TR/breadcrumbs.php b/resources/lang/tr_TR/breadcrumbs.php index 8242f30c69..cd43056d5b 100644 --- a/resources/lang/tr_TR/breadcrumbs.php +++ b/resources/lang/tr_TR/breadcrumbs.php @@ -32,8 +32,8 @@ return [ 'change_email' => 'E-posta adresini değiştir', 'bills' => 'Fatura', 'newBill' => 'Yeni Fatura', - 'edit_bill' => 'Faturayı düzenle \'\': name\'\'', - 'delete_bill' => 'Faturayı \'\': name\'\'', + 'edit_bill' => 'Faturayı düzenle ":name"', + 'delete_bill' => 'Faturayı ":name"', 'reports' => 'Raporlar', 'search_result' => '":query" için arama sonuçları', 'withdrawal_list' => 'Giderler', @@ -45,7 +45,7 @@ return [ 'create_deposit' => 'Yeni mevduat oluştur', 'create_transfer' => 'Yeni transfer oluştur', 'edit_journal' => '":description" işlemini düzenle', - 'edit_reconciliation' => 'Düzenle \'\': açıklama\'\'', + 'edit_reconciliation' => 'Düzenle ":description"', 'delete_journal' => '":description" işlemini sil', 'tags' => 'Etiketler', 'createTag' => 'Yeni etiket oluştur', diff --git a/resources/lang/tr_TR/firefly.php b/resources/lang/tr_TR/firefly.php index 4234fa3511..a6bf3f3151 100644 --- a/resources/lang/tr_TR/firefly.php +++ b/resources/lang/tr_TR/firefly.php @@ -70,8 +70,8 @@ return [ 'two_factor_lost_header' => 'İki faktörlü kimlik doğrulamanızı mı kaybettiniz?', 'two_factor_lost_intro' => 'Ne yazık ki, bu web arayüzünden sıfırlayabileceğiniz bir şey değil. İki seçeneğiniz var.', 'two_factor_lost_fix_self' => 'Kendi Firefly III örneğinizi çalıştırıyorsanız, talimatlar için storage/logs\'daki günlükleri kontrol edin.', - 'two_factor_lost_fix_owner' => 'Aksi takdirde, site sahibine (: site_owner) e-posta gönderin ve iki faktörlü kimlik doğrulamasını sıfırlamasını isteyin.', - 'warning_much_data' => ': gün günlük verinin yüklenmesi biraz zaman alabilir.', + 'two_factor_lost_fix_owner' => 'Aksi takdirde, site sahibine (:site_owner) e-posta gönderin ve iki faktörlü kimlik doğrulamasını sıfırlamasını isteyin.', + 'warning_much_data' => ':days günlük verinin yüklenmesi biraz zaman alabilir.', 'registered' => 'Başarıyla kaydoldunuz!', 'Default asset account' => 'Varsayılan varlık hesabı', 'no_budget_pointer' => 'Henüz bütçeniz yok gibi görünüyor. Bütçe sayfasında bütçe oluşturun. Bütçeler giderleri takip etmenize yardımcı olabilir.', @@ -79,8 +79,8 @@ return [ 'Credit card' => 'Kredi Kartı', 'source_accounts' => 'Kaynak Hesap(lar)', 'destination_accounts' => 'Hedef Hesap(lar)', - 'user_id_is' => 'Kullanıcı kimliğiniz :kullanıcı', - 'field_supports_markdown' => 'Bu alan Markdown\'u destekliyor.', + 'user_id_is' => 'Kullanıcı kimliğiniz :user', + 'field_supports_markdown' => 'Bu alan Markdown\'u destekliyor.', 'need_more_help' => 'Firefly III kullanımında daha fazla yardıma ihtiyacınız olursa, lütfen Github\'da bir talep açın.', 'reenable_intro_text' => 'Ayrıca tanıtım kılavuzunu yeniden etkinleştirebilirsiniz.', 'intro_boxes_after_refresh' => 'Sayfayı yenilediğinizde tanıtım kutuları yeniden görünecektir.', @@ -93,24 +93,24 @@ return [ 'cannot_redirect_to_account' => 'Firefly III sizi doğru sayfaya yönlendiremiyor. Özür dileriz.', 'sum_of_expenses' => 'Giderlerin Toplamı', 'sum_of_income' => 'Gelirin Toplamı', - 'spent_in_specific_budget' => 'Miktar ": bütçe" harcandı', - 'sum_of_expenses_in_budget' => 'Harcanan toplam bütçe \'\':budget\'\'', + 'spent_in_specific_budget' => 'Miktar ":budget" harcandı', + 'sum_of_expenses_in_budget' => 'Harcanan toplam bütçe ":budget"', 'left_in_budget_limit' => 'Bütçeye göre harcama ayrıldı', 'current_period' => 'Cari dönem', 'show_the_current_period_and_overview' => 'Geçerli periyodu ve genel bakışı göster', 'pref_languages_locale' => 'İngilizce dışındaki bir dilin düzgün çalışması için, işletim sisteminizin doğru yerel ayar bilgileri ile donatılmış olmalıdır. Aksi halde, tarih, para birim verileri ve tutarı yanlış gösterilebilir.', - 'budget_in_period' => ':star ve :end arasında \'\':name\'\' bütçesinin bütün işlemleri', - 'chart_budget_in_period' => ':start ve :end arasında \'\':name\'\' bütçesinin bütün işlemleri için grafik', - 'chart_account_in_period' => ':start ve :end arasında \'\':name\'\' hesabında bütün işlemler için grafik', - 'chart_category_in_period' => ':start ve :end arasında \'\':name\'\' kategorisindeki bütün işlemler için grafik', - 'chart_category_all' => '\'\':name\'\' kategorisinde bütün işlemler çizelgesi', + 'budget_in_period' => ':start ve :end arasında ":name" bütçesinin bütün işlemleri', + 'chart_budget_in_period' => ':start ve :end arasında ":name" bütçesinin bütün işlemleri için grafik', + 'chart_account_in_period' => ':start ve :end arasında ":name" hesabında bütün işlemler için grafik', + 'chart_category_in_period' => ':start ve :end arasında ":name" kategorisindeki bütün işlemler için grafik', + 'chart_category_all' => '":name" kategorisinde bütün işlemler çizelgesi', 'clone_withdrawal' => 'Bu para çekimini klonla', 'clone_deposit' => 'Bu depozitoyu klonla', 'clone_transfer' => 'Bu transferi kopyala', 'multi_select_no_selection' => 'Hiçbiri seçilmedi', 'multi_select_all_selected' => 'Tümü seçildi', 'multi_select_filter_placeholder' => 'Bul..', - 'between_dates_breadcrumb' => ':başlangıç ve :son arasında', + 'between_dates_breadcrumb' => ':start ve :end arasında', 'all_journals_without_budget' => 'Bütçesiz tüm işlemler', 'journals_without_budget' => 'Bütçesiz İşlemler', 'all_journals_without_category' => 'Kategorisiz tüm işlemler', @@ -139,7 +139,7 @@ return [ 'transfer_exchange_rate_instructions' => 'Kaynak varlık hesabı "@source_name" sadece @soruce_currency işlemlerini kabul eder. Hedef varlık hesabı "@dest_name" sadece @dest_currency işlemlerini kabul eder. Aktarılan tutarı her iki para biriminde de doğru olarak girmeniz gerekir.', 'transaction_data' => 'İşlem Verileri', 'invalid_server_configuration' => 'Geçersiz sunucu yapılandırması', - 'invalid_locale_settings' => 'Firefly III parasal tutarları biçimlendiremiyor çünkü gerekli paketler sunucunuzda yok. Bunun nasıl yapıldığıyla ilgili talimatlar var.', + 'invalid_locale_settings' => 'Firefly III parasal tutarları biçimlendiremiyor çünkü gerekli paketler sunucunuzda yok. Bunun nasıl yapıldığıyla ilgili talimatlar var.', 'quickswitch' => 'Hızlı anahtar', // check for updates: @@ -218,23 +218,23 @@ return [ 'rule_priority_down' => 'Kurala daha az öncelik ver', 'make_new_rule_group' => 'Yeni kural grubu oluştur', 'store_new_rule_group' => 'Yeni kural grubunu kaydet', - 'created_new_rule_group' => 'Yeni kural grubu \'\': başlık\'\' saklandı!', - 'updated_rule_group' => 'Başarıyla güncellenen kural grubu: \'\'title\'\'.', - 'edit_rule_group' => '\'\': Başlık\'\' kural grubunu düzenle', - 'delete_rule_group' => '\'\': Başlık\'\' kural grubunu sil', - 'deleted_rule_group' => 'Silinen kural grubu \'\'title\'\'', + 'created_new_rule_group' => 'Yeni kural grubu ":title" saklandı!', + 'updated_rule_group' => 'Başarıyla güncellenen kural grubu ":title".', + 'edit_rule_group' => '":title" kural grubunu düzenle', + 'delete_rule_group' => '":title" kural grubunu sil', + 'deleted_rule_group' => 'Silinen kural grubu ":title"', 'update_rule_group' => 'Grup bilgilerini güncelle', 'no_rules_in_group' => 'Bu grupta kural yok', 'move_rule_group_up' => 'Grup kuralını yukarı taşı', 'move_rule_group_down' => 'Grup kuralını aşağı taşı', 'save_rules_by_moving' => 'Bu kuralları başka bir kural grubuna taşıyarak kaydedin:', - 'make_new_rule' => '\'\': Başlık\'\' kural grubunda yeni kural oluşturun', + 'make_new_rule' => '":title" kural grubunda yeni kural oluşturun', 'rule_help_stop_processing' => 'Bu kutuyu işaretlediğinizde, bu grupta sonraki kurallar yürütülemez.', 'rule_help_active' => 'Aktif olmayan kurallar asla çalışmaz.', 'stored_new_rule' => '":title" başlığıyla saklanmış yeni kural', 'deleted_rule' => '":title" başlığıyla saklanmış kuralı sil', 'store_new_rule' => 'Yeni kural sakla', - 'updated_rule' => '":rule" başlığı ile la güncellenmiş kural', + 'updated_rule' => '":title" başlığı ile la güncellenmiş kural', 'default_rule_group_name' => 'Varsayılan kurallar', 'default_rule_group_description' => 'Tüm kurallarınız belli bir grupta değil.', 'default_rule_name' => 'İlk varsayılan kuralınız', @@ -251,45 +251,45 @@ return [ 'action_value' => 'Eylem değeri', 'stop_executing_other_actions' => 'Diğer işlemleri yürütmeyi durdur', 'add_rule_action' => 'Yeni eylem ekle', - 'edit_rule' => '\'\': Başlık\'\' düzenle', - 'delete_rule' => '\'\': Başlık\'\' kuralını sil', + 'edit_rule' => '":title" düzenle', + 'delete_rule' => '":title" kuralını sil', 'update_rule' => 'Güncelleme kuralları', 'test_rule_triggers' => 'Eşleşen işlemleri görün', 'warning_transaction_subset' => 'Performans nedenlerinden bu liste :max_num_transactions ile sınırlıdır ve sadece eşleşen işlemlerin bir alt kümesini gösterebilir', 'warning_no_matching_transactions' => 'Uygun olmayan işlemler bulundu. Performans nedenleriyle sadece son :num_transactions işlemlerin kontrol edildiğini lütfen unutmayın.', 'warning_no_valid_triggers' => 'Geçerli tetikleyiciler sağlanmadı.', - 'apply_rule_selection' => 'İşleminizin bir bölümüne \'\': başlık\'\' kuralını uygulayın', + 'apply_rule_selection' => 'İşleminizin bir bölümüne ":title" kuralını uygulayın', 'apply_rule_selection_intro' => '":title" gibi kurallar normalde sadece yeni ve güncellenen işlemlerde geçerlidir ama Firefly III\'e onları mevcut işlemlerinizin istediğiniz bölümlerinde uygulanmasını söyleyebilirsiniz. Bu bir kuralı değiştirdiğinizde ve bunun diğer tüm işlemlerde uygulanmasını istediğinizde yararlı olabilir.', 'include_transactions_from_accounts' => 'Bu hesaplardan gelen işlemleri dahil et', - 'applied_rule_selection' => 'Seçtiğiniz ": title" kuralı uygulandı.', + 'applied_rule_selection' => 'Seçtiğiniz ":title" kuralı uygulandı.', 'execute' => 'Çalıştır', - 'apply_rule_group_selection' => 'İşlemlerinizin bir bölümüne \'\': title\'\' kural grubunu uygulayın', + 'apply_rule_group_selection' => 'İşlemlerinizin bir bölümüne ":title" kural grubunu uygulayın', 'apply_rule_group_selection_intro' => '":title" gibi kural grupları normalde sadece yeni ve güncellenen işlemlerde geçerlidir ama Firefly III\'e onları mevcut işlemlerinizin istediğiniz bölümlerinde uygulanmasını söyleyebilirsiniz. Bu bir kural grubunu değiştirdiğinizde ve bunun diğer tüm işlemlerde uygulanmasını istediğinizde yararlı olabilir.', - 'applied_rule_group_selection' => 'Seçeneğinize \'\': başlık\'\' kuralı uygulandı.', + 'applied_rule_group_selection' => 'Seçeneğinize ":title" kuralı uygulandı.', // actions and triggers - 'rule_trigger_user_action' => 'Kullanıcı işlemi \'\': trigger_value\'\'', + 'rule_trigger_user_action' => 'Kullanıcı işlemi ":trigger_value"', 'rule_trigger_from_account_starts_choice' => 'Kaynak hesabı ile başlar..', - 'rule_trigger_from_account_starts' => 'Kaynak hesabı \'\': trigger_value\'\' ile başlar', + 'rule_trigger_from_account_starts' => 'Kaynak hesabı ":trigger_value" ile başlar', 'rule_trigger_from_account_ends_choice' => 'Kaynak hesabı ile bitiyor..', - 'rule_trigger_from_account_ends' => 'Kaynak hesabı \'\': trigger_value\'\' ile bitiyor', + 'rule_trigger_from_account_ends' => 'Kaynak hesabı ":trigger_value" ile bitiyor', 'rule_trigger_from_account_is_choice' => 'Kaynak Hesap..', - 'rule_trigger_from_account_is' => 'Kaynak hesabı \'\': trigger_value\'\'', + 'rule_trigger_from_account_is' => 'Kaynak hesabı ":trigger_value"', 'rule_trigger_from_account_contains_choice' => 'Kaynak hesap içerir..', - 'rule_trigger_from_account_contains' => 'Kaynak hesabı \'\': trigger_value\'\' içeriyor', + 'rule_trigger_from_account_contains' => 'Kaynak hesabı ":trigger_value" içeriyor', 'rule_trigger_to_account_starts_choice' => 'Hedef hesap başlıyor..', - 'rule_trigger_to_account_starts' => 'Hedef hesap \'\': trigger_value\'\' ile başlar', + 'rule_trigger_to_account_starts' => 'Hedef hesap ":trigger_value" ile başlar', 'rule_trigger_to_account_ends_choice' => 'Hedef hesap ile bitiyor..', - 'rule_trigger_to_account_ends' => 'Hedef hesap \'\': trigger_value\'\' ile bitiyor', + 'rule_trigger_to_account_ends' => 'Hedef hesap ":trigger_value" ile bitiyor', 'rule_trigger_to_account_is_choice' => 'Hedef Hesap..', - 'rule_trigger_to_account_is' => 'Hedef hesap \'\': trigger_value\'\'', + 'rule_trigger_to_account_is' => 'Hedef hesap ":trigger_value"', 'rule_trigger_to_account_contains_choice' => 'Hedef hesap içeriyor..', - 'rule_trigger_to_account_contains' => 'Hedef hesap ": trigger_value\'\' içeriyor', + 'rule_trigger_to_account_contains' => 'Hedef hesap ":trigger_value" içeriyor', 'rule_trigger_transaction_type_choice' => 'İşlem türü..', - 'rule_trigger_transaction_type' => 'İşlem türü ": trigger_value"', + 'rule_trigger_transaction_type' => 'İşlem türü ":trigger_value"', 'rule_trigger_category_is_choice' => 'Kategori..', - 'rule_trigger_category_is' => 'Kategori \'\': trigger_value\'\'', + 'rule_trigger_category_is' => 'Kategori ":trigger_value"', 'rule_trigger_amount_less_choice' => 'Miktar şundan az..', 'rule_trigger_amount_less' => 'Miktar :trigger_value \'den daha düşük', 'rule_trigger_amount_exactly_choice' => 'Tutar..', @@ -297,17 +297,17 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'rule_trigger_amount_more_choice' => 'Miktar fazla..', 'rule_trigger_amount_more' => 'Miktar :trigger_value \'den daha büyük', 'rule_trigger_description_starts_choice' => 'Açıklama başlıyor..', - 'rule_trigger_description_starts' => 'Açıklama ": trigger_value" ile başlar', + 'rule_trigger_description_starts' => 'Açıklama ":trigger_value" ile başlar', 'rule_trigger_description_ends_choice' => 'Açıklama bitiyor..', - 'rule_trigger_description_ends' => 'Açıklama \'\':trigger_value\'\' ile bitiyor', + 'rule_trigger_description_ends' => 'Açıklama ":trigger_value" ile bitiyor', 'rule_trigger_description_contains_choice' => 'Açıklama içerir..', - 'rule_trigger_description_contains' => 'Açıklama \'\': trigger_value\'\' içerir', + 'rule_trigger_description_contains' => 'Açıklama ":trigger_value" içerir', 'rule_trigger_description_is_choice' => 'Açıklama..', - 'rule_trigger_description_is' => 'Açıklama ": trigger_value"', + 'rule_trigger_description_is' => 'Açıklama ":trigger_value"', 'rule_trigger_budget_is_choice' => 'Bütçe..', - 'rule_trigger_budget_is' => 'Bütçe ": trigger_value"', + 'rule_trigger_budget_is' => 'Bütçe ":trigger_value"', 'rule_trigger_tag_is_choice' => '(A) etiketi..', - 'rule_trigger_tag_is' => 'Bir etiket \'\':trigger_value\'\'', + 'rule_trigger_tag_is' => 'Bir etiket ":trigger_value"', 'rule_trigger_has_attachments_choice' => 'En son bir çok eklentileri var', 'rule_trigger_has_attachments' => 'En azından :trigger_value eklentisine(eklentilerine) sahip olsun', 'rule_trigger_store_journal' => 'Bir işlem oluşturulduğunda', @@ -329,23 +329,23 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'rule_trigger_no_notes_choice' => 'Notu yok', 'rule_trigger_no_notes' => 'İşlemin notu yok', 'rule_trigger_notes_are_choice' => 'Notlar..', - 'rule_trigger_notes_are' => 'Notlar ": trigger_value"', + 'rule_trigger_notes_are' => 'Notlar ":trigger_value"', 'rule_trigger_notes_contain_choice' => 'Notlar içeriyor..', - 'rule_trigger_notes_contain' => 'Notlar ": trigger_value" içerir', + 'rule_trigger_notes_contain' => 'Notlar ":trigger_value" içerir', 'rule_trigger_notes_start_choice' => 'Notlar ile başlıyor..', - 'rule_trigger_notes_start' => 'Notlar ": trigger_value" ile başlar', + 'rule_trigger_notes_start' => 'Notlar ":trigger_value" ile başlar', 'rule_trigger_notes_end_choice' => 'Notlar bitiyor..', - 'rule_trigger_notes_end' => 'Notlar ": trigger_value" ile bitiyor', - 'rule_action_set_category' => 'Kategoriyi \'\': action_value\'\' olarak ayarla', + 'rule_trigger_notes_end' => 'Notlar ":trigger_value" ile bitiyor', + 'rule_action_set_category' => 'Kategoriyi ":action_value" olarak ayarla', 'rule_action_clear_category' => 'Kategoriyi temizle', - 'rule_action_set_budget' => 'Bütçeyi \'\': action_value\'\' olarak ayarlayın', + 'rule_action_set_budget' => 'Bütçeyi ":action_value" olarak ayarlayın', 'rule_action_clear_budget' => 'Bütçeyi temizle', - 'rule_action_add_tag' => '\'\': Action_value\'\' etiketi ekle', - 'rule_action_remove_tag' => '": Action_value" etiketini kaldır', + 'rule_action_add_tag' => '":action_value" etiketi ekle', + 'rule_action_remove_tag' => '":action_value" etiketini kaldır', 'rule_action_remove_all_tags' => 'Tüm etiketleri kaldır', - 'rule_action_set_description' => 'Açıklamayı ": action_value" olarak ayarla', - 'rule_action_append_description' => 'Açıklamayı ": action_value" ile ekle', - 'rule_action_prepend_description' => 'Açıklamayı ": action_value" ile ekleyin', + 'rule_action_set_description' => 'Açıklamayı ":action_value" olarak ayarla', + 'rule_action_append_description' => 'Açıklamayı ":action_value" ile ekle', + 'rule_action_prepend_description' => 'Açıklamayı ":action_value" ile ekleyin', 'rule_action_set_category_choice' => 'Kategori ayarla..', 'rule_action_clear_category_choice' => 'Tüm kategoriyi temizle', 'rule_action_set_budget_choice' => 'Bütçe ayarla..', @@ -361,13 +361,13 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'rule_action_set_destination_account_choice' => 'Hedef hesabı ayarla...', 'rule_action_set_destination_account' => 'Hedef hesaba :action_value ayarlayınız', 'rule_action_append_notes_choice' => 'İle not ekle..', - 'rule_action_append_notes' => '": Action_value" ile not ekle', + 'rule_action_append_notes' => '":action_value" ile not ekle', 'rule_action_prepend_notes_choice' => 'İle notları başlatın..', 'rule_action_prepend_notes' => 'Notlarına başına ":action_value" ekleyiniz', 'rule_action_clear_notes_choice' => 'Herhangi bir notu kaldır', 'rule_action_clear_notes' => 'Herhangi bir notu kaldır', 'rule_action_set_notes_choice' => 'Notları şuna ayarla..', - 'rule_action_set_notes' => 'Notları \'\': action_value\'\' olarak ayarla', + 'rule_action_set_notes' => 'Notları ":action_value" olarak ayarla', 'rules_have_read_warning' => 'Uyarıyı okudun mu?', 'apply_rule_warning' => 'Uyarı: çok sayıda işleme bir kuralı(grubu) uygulamak çok zaman alabilir ve zaman aşımına uğrayabilir. Eğer öyle olursa kural(grup) işlemlerin belli olmayan bir kısmına uygulanacaktır. Bu mali yönetiminizi lime lime edebilir. Lütfen dikkatli olun.', @@ -464,7 +464,7 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'what_is_pw_security' => '\'\'Doğrulama şifresi güvenliği\'\' nedir?', 'secure_pw_title' => 'Güvenli şifre nasıl seçilir?', 'secure_pw_history' => 'Ağustos 2017\'de ünlü güvenlik araştırmacısı Troy Hunt, 306 milyon çalınan parolanın bir listesini yayınladı. Bu şifreler, LinkedIn, Adobe ve NeoPets gibi şirketlerde (ve daha pek çok yerde) sistem çökmesi sırasında çalındı.', - 'secure_pw_check_box' => 'Kutuyu işaretlerseniz, listede olup olmadığını görmek için Firefly III şifrenizin SHA1 hash\'ini Troy Hunt web sitesine gönderecektir. Bu NIST Özel Yayınında önerilen güvenli olmayan şifreleri kullanmanızı önleyecektir.', + 'secure_pw_check_box' => 'Kutuyu işaretlerseniz, listede olup olmadığını görmek için Firefly III şifrenizin SHA1 hash\'ini Troy Hunt web sitesine gönderecektir. Bu NIST Özel Yayınında önerilen güvenli olmayan şifreleri kullanmanızı önleyecektir.', 'secure_pw_sha1' => 'SHA1\'in çözüdüğünü sanıyordum', 'secure_pw_hash_speed' => 'Doğru, ama bu bağlamda değil. SHA1\'in nasıl çözüleceğini anlatan web sitesinde de okuyabileceğin gibi artık bir "kesişim(aynı SHA1 hash\'i ile sonuçlanan başka bir dizin)" bulmak daha kolay. Şimdilik tek GPU\'lu bir makine ile sadece 10,000 yıl sürmektedir.', 'secure_pw_hash_security' => 'Bu kesişim şifrenizin eşiti olamaz ve Firefly III (gibi sitelerde) de işe yaramaz. Bu uygulama şifre doğrulaması için SHA 1 kullanmaz. Bu nedenle bu kutuyu işaretlemek güvenlidir. Şifreniz karıştırıldı ve HTTPS üzerinden gönderildi.', @@ -484,11 +484,11 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', // attachments 'nr_of_attachments' => 'Bir eklenti |:count eklenti', 'attachments' => 'Ekler', - 'edit_attachment' => 'Ek \'\': name\'\' düzenle', + 'edit_attachment' => 'Ek ":name" düzenle', 'update_attachment' => 'Eki güncelle', - 'delete_attachment' => '\'\': name\'\' Eki sil', - 'attachment_deleted' => '\'\': Name\'\' eki silindi', - 'attachment_updated' => '\'\': name\'\' Ek güncellendi', + 'delete_attachment' => '":name" Eki sil', + 'attachment_deleted' => '":name" eki silindi', + 'attachment_updated' => '":name" Ek güncellendi', 'upload_max_file_size' => 'Maksimum dosya boyutu: :size', // transaction index @@ -503,9 +503,9 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'convert_is_already_type_Withdrawal' => 'Bu işlem zaten bir para çekme işlemidir', 'convert_is_already_type_Deposit' => 'Bu işlem zaten bir para çekme işlemidir', 'convert_is_already_type_Transfer' => 'Bu işlem zaten bir transfer işlemidir', - 'convert_to_Withdrawal' => '\'\': Açıklama\'\' yı bir para çekme işlemine dönüştür', - 'convert_to_Deposit' => '\'\': Açıklama\'\' yı mevduata dönüştür', - 'convert_to_Transfer' => '\'\': Açıklama\'\' yı bir aktarıma dönüştür', + 'convert_to_Withdrawal' => '":description" yı bir para çekme işlemine dönüştür', + 'convert_to_Deposit' => '":description" yı mevduata dönüştür', + 'convert_to_Transfer' => '":description" yı bir aktarıma dönüştür', 'convert_options_WithdrawalDeposit' => 'Para çekme işlemini çekime dönüştür', 'convert_options_WithdrawalTransfer' => 'Para çekim işlemini aktarmaya dönüştür', 'convert_options_DepositTransfer' => 'Para yatırma işlemini bir aktarmaya dönüştür', @@ -547,10 +547,10 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'create_currency' => 'Yeni para birimi oluştur', 'store_currency' => 'Yeni para birimini sakla', 'update_currency' => 'Para birimini güncelle', - 'new_default_currency' => ': name artık varsayılan para birimi.', - 'cannot_delete_currency' => ': İsim hala kullanıldığı için silinemiyor.', - 'deleted_currency' => 'Para birimi: adı silindi', - 'created_currency' => 'Para birimi :adı oluşturuldu', + 'new_default_currency' => ':name artık varsayılan para birimi.', + 'cannot_delete_currency' => ':name hala kullanıldığı için silinemiyor.', + 'deleted_currency' => 'Para birimi :name silindi', + 'created_currency' => 'Para birimi :name oluşturuldu', 'updated_currency' => 'Para birimi :name güncellendi', 'ask_site_owner' => 'Lütfen para birimleri eklemek, kaldırmak veya düzenlemek için :owner\'a danışın.', 'currencies_intro' => 'Firefly III, burada ayarlayabileceğiniz ve etkinleştirebileceğiniz çeşitli para birimlerini destekliyor.', @@ -565,7 +565,7 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', // budgets: 'create_new_budget' => 'Yeni bir bütçe oluştur', 'store_new_budget' => 'Yeni bütçeyi sakla', - 'stored_new_budget' => 'Yeni bütçe \'\': isim\'\' kaydedildi', + 'stored_new_budget' => 'Yeni bütçe ":name" kaydedildi', 'available_between' => ':start ve :end arasında kullanılabilir', 'transactionsWithoutBudget' => 'Bütçesiz Giderler', 'transactions_no_budget' => ':start ve :end arasındaki bütçe dışı harcamalar', @@ -573,10 +573,10 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'createBudget' => 'Yeni bütçe', 'inactiveBudgets' => 'Etkin olmayan bütçeler', 'without_budget_between' => ':start ve :end arasında bütçesiz işlemler', - 'delete_budget' => '\'\': Name\'\' bütçesini sil', - 'deleted_budget' => 'Silinen bütçe \'\': name\'\'', - 'edit_budget' => '\'\': Name\'\' bütçesini düzenle', - 'updated_budget' => 'Güncellenmiş bütçe: \'\'name\'\'', + 'delete_budget' => '":name" bütçesini sil', + 'deleted_budget' => 'Silinen bütçe ":name"', + 'edit_budget' => '":name" bütçesini düzenle', + 'updated_budget' => 'Güncellenmiş bütçe ":name"', 'update_amount' => 'Güncelleme miktarı', 'update_budget' => 'Bütçeyi güncelle', 'update_budget_amount_range' => ':start ve :end arasında (beklenen) mevcut miktarı güncelleyiniz', @@ -594,18 +594,18 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'auto_match_on' => 'Firefly otomatik olarak eşleştirilir', 'auto_match_off' => 'Firefly otomatik olarak eşleştirilmez', 'next_expected_match' => 'Beklenen sonraki eşleşme', - 'delete_bill' => 'Faturayı sil \'\': name\'\'', - 'deleted_bill' => 'Silinmiş fatura \'\': name\'\'', - 'edit_bill' => 'Fatura düzenle \'\': name\'\'', + 'delete_bill' => 'Faturayı sil ":name"', + 'deleted_bill' => 'Silinmiş fatura ":name"', + 'edit_bill' => 'Fatura düzenle ":name"', 'more' => 'Daha', 'rescan_old' => 'Eski işlemleri yeniden tara', 'update_bill' => 'Faturayı güncelle', - 'updated_bill' => 'Güncellenmiş fatura \'\': name\'\'', + 'updated_bill' => 'Güncellenmiş fatura ":name"', 'store_new_bill' => 'Yeni fatura kaydet', - 'stored_new_bill' => 'Yeni fatura \'\': name\'\' kaydedildi', + 'stored_new_bill' => 'Yeni fatura ":name" kaydedildi', 'cannot_scan_inactive_bill' => 'Etkin olmayan faturalar taranamaz.', 'rescanned_bill' => 'Her şeyi yeniden araştırdım.', - 'average_bill_amount_year' => 'Ortalama fatura tutarı (: yıl)', + 'average_bill_amount_year' => 'Ortalama fatura tutarı (:year)', 'average_bill_amount_overall' => 'Ortalama fatura tutarı (genel)', 'not_or_not_yet' => 'Henüz değil', 'not_expected_period' => 'Bu periyotta beklenmiyor', @@ -615,22 +615,22 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'skips_over' => 'atla', // accounts: - 'details_for_asset' => '\'\': name\'\' Varlık hesabı ayrıntıları', - 'details_for_expense' => '\'\': name\'\' Harcama hesabı ayrıntıları', - 'details_for_revenue' => '\'\': name\'\' Gelir hesabı ayrıntıları', - 'details_for_cash' => '\'\': name\'\' Nakit hesabı ayrıntıları', + 'details_for_asset' => '":name" Varlık hesabı ayrıntıları', + 'details_for_expense' => '":name" Harcama hesabı ayrıntıları', + 'details_for_revenue' => '":name" Gelir hesabı ayrıntıları', + 'details_for_cash' => '":name" Nakit hesabı ayrıntıları', 'store_new_asset_account' => 'Yeni varlık hesabını kaydet', 'store_new_expense_account' => 'Yeni gider hesabını sakla', 'store_new_revenue_account' => 'Yeni gelir hesabını kaydet', - 'edit_asset_account' => '\'\': name\'\' Öğe hesabını düzenle', - 'edit_expense_account' => '\'\': name\'\' Harcama hesabını düzenle', - 'edit_revenue_account' => '\'\': name\'\' Gelir hesabını düzenle', - 'delete_asset_account' => '\'\': name\'\' Öğe hesabını sil', - 'delete_expense_account' => '\'\': name\'\' Masraf hesaplarını sil', - 'delete_revenue_account' => '\'\': name\'\' Gelir hesabını sil', - 'asset_deleted' => '\'\': Name\'\' Adlı varlık hesabı başarıyla silindi', - 'expense_deleted' => '\'\': Name\'\' gider hesabı başarıyla silindi', - 'revenue_deleted' => '\'\': Name\'\' gelir hesabı başarıyla silindi', + 'edit_asset_account' => '":name" Öğe hesabını düzenle', + 'edit_expense_account' => '":name" Harcama hesabını düzenle', + 'edit_revenue_account' => '":name" Gelir hesabını düzenle', + 'delete_asset_account' => '":name" Öğe hesabını sil', + 'delete_expense_account' => '":name" Masraf hesaplarını sil', + 'delete_revenue_account' => '":name" Gelir hesabını sil', + 'asset_deleted' => '":name" Adlı varlık hesabı başarıyla silindi', + 'expense_deleted' => '":name" gider hesabı başarıyla silindi', + 'revenue_deleted' => '":name" gelir hesabı başarıyla silindi', 'update_asset_account' => 'Varlık hesabını güncelle', 'update_expense_account' => 'Gider hesabını güncelle', 'update_revenue_account' => 'Gelir hesabı güncelleme', @@ -642,7 +642,7 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'revenue_accounts' => 'Gelir hesapları', 'cash_accounts' => 'Nakit Hesabı', 'Cash account' => 'Nakit Hesabı', - 'reconcile_account' => 'Hesabı \'\': hesapla\'\' dengeleyin', + 'reconcile_account' => 'Hesabı ":account" dengeleyin', 'delete_reconciliation' => 'Mutabakatı sil', 'update_reconciliation' => 'Mutabakatı güncelle', 'amount_cannot_be_zero' => 'Miktar sıfır olamaz', @@ -650,7 +650,7 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'start_of_reconcile_period' => 'Uzlaştırma dönemi başlangıcı: :period', 'start_balance' => 'Başlangıç bakiyesi', 'end_balance' => 'Son bakiye', - 'update_balance_dates_instruction' => 'Yukarıdaki tutarlar ve tarihleri banka ekstrenizle esşleştirin ve \'\'Mutabakatı başlat\'\' düğmesine basın', + 'update_balance_dates_instruction' => 'Yukarıdaki tutarlar ve tarihleri banka ekstrenizle esşleştirin ve "Mutabakatı başlat" düğmesine basın', 'select_transactions_instruction' => 'Banka ekstrenizde görünen işlemleri seçin.', 'select_range_and_balance' => 'Önce tarih aralığını ve bakiyeleri doğrulayın. Daha sonra "Mutabakatı başlat" tuşuna basın', 'date_change_instruction' => 'Tarih aralığını şim değiştirdiniz, ilerleme kaydedilemez.', @@ -665,10 +665,10 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'cash' => 'nakit', 'account_type' => 'Hesap Türü', 'save_transactions_by_moving' => 'Bu işlemleri başka bir hesaba taşıyarak kaydet:', - 'stored_new_account' => 'Yeni hesap ": name" kaydedildi!', - 'updated_account' => 'Güncellenmiş hesap ismi ": name"', + 'stored_new_account' => 'Yeni hesap ":name" kaydedildi!', + 'updated_account' => 'Güncellenmiş hesap ismi ":name"', 'credit_card_options' => 'Kredi kart seçenekleri', - 'no_transactions_account' => 'Aktif hesapta herhangi bir işlem yok (bu dönem için) ": name".', + 'no_transactions_account' => 'Aktif hesapta herhangi bir işlem yok (bu dönem için) ":name".', 'no_data_for_chart' => 'Bu grafiği oluşturmak için yeterli bilgi (henüz) yok.', 'select_more_than_one_account' => 'Lütfen birden fazla hesap seçin', 'select_more_than_one_category' => 'Lütfen birden fazla kategori seçin', @@ -697,31 +697,31 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'create_new_category' => 'Yeni bir kategori oluştur', 'without_category' => 'Kategori olmaksızın', 'update_category' => 'Kategoriyi güncelle', - 'updated_category' => '\'\': İsim\'\' kategorisi güncellendi', + 'updated_category' => '":name" kategorisi güncellendi', 'categories' => 'Kategoriler', - 'edit_category' => '\'\': İsim\'\' kategorisini düzenle', + 'edit_category' => '":name" kategorisini düzenle', 'no_category' => '(Kategori yok)', 'category' => 'Kategori', - 'delete_category' => '\'\': Name\'\' kategorisini sil', - 'deleted_category' => '\'\' İsim\'\' kategorisi silindi', + 'delete_category' => '":name" kategorisini sil', + 'deleted_category' => ' kategorisi silindi', 'store_category' => 'Yeni kategoriyi kaydet', - 'stored_category' => 'Kaydedilen yeni kategori \'\': isim\'\'', + 'stored_category' => 'Kaydedilen yeni kategori ":name"', 'without_category_between' => ':start ve :end arasında kategorisiz', // transactions: 'update_withdrawal' => 'Geri çekmeyi güncelle', 'update_deposit' => 'Depozitoyu güncelle', 'update_transfer' => 'Aktarımı güncelle', - 'updated_withdrawal' => 'Para çekme güncellendi \'\': description\'\'', - 'updated_deposit' => 'Güncellenmiş depozito \'\': açıklama\'\'', - 'updated_transfer' => 'Güncellenmiş \'\': açıklama\'\'', - 'delete_withdrawal' => 'Çekimi sil \'\': açıklama\'\'', - 'delete_deposit' => 'Mevduat sil \'\': açıklama\'\'', - 'delete_transfer' => 'Aktarımı sil \'\': açıklama\'\'', - 'deleted_withdrawal' => 'Çekilme başarıyla silindi \'\': açıklama\'\'', - 'deleted_deposit' => '\'\': açıklama\'\' Para yatırma başarıyla silindi', - 'deleted_transfer' => '": açıklama" Aktarım başarıyla silindi', - 'stored_journal' => '\'\': açıklama\'\' Yeni işlem başarıyla oluşturuldu', + 'updated_withdrawal' => 'Para çekme güncellendi ":description"', + 'updated_deposit' => 'Güncellenmiş depozito ":description"', + 'updated_transfer' => 'Güncellenmiş ":description"', + 'delete_withdrawal' => 'Çekimi sil ":description"', + 'delete_deposit' => 'Mevduat sil ":description"', + 'delete_transfer' => 'Aktarımı sil ":description"', + 'deleted_withdrawal' => 'Çekilme başarıyla silindi ":description"', + 'deleted_deposit' => '":description" Para yatırma başarıyla silindi', + 'deleted_transfer' => '":description" Aktarım başarıyla silindi', + 'stored_journal' => '":description" Yeni işlem başarıyla oluşturuldu', 'select_transactions' => 'İşlemleri Seç', 'rule_group_select_transactions' => 'İşlemlere "başlık" uygula', 'rule_select_transactions' => 'İşlemlere "başlık" uygula', @@ -740,7 +740,7 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'no_budget' => 'hiçbiri', 'no_budget_squared' => '(Bütçe yok)', 'perm-delete-many' => 'Birden fazla öğeyi tek seferde silmek sıkıntı olabilir. Lütfen temkinli olun.', - 'mass_deleted_transactions_success' => 'Silinen :Miktar işlem(ler).', + 'mass_deleted_transactions_success' => 'Silinen :amount işlem(ler).', 'mass_edited_transactions_success' => 'Güncellenen :amount işlem(ler)', 'opt_group_no_account_type' => '(hesap türü yok)', 'opt_group_defaultAsset' => 'Varsayılan varlık hesapları', @@ -862,9 +862,9 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'report_preset_ranges' => 'Önceden ayarlanmış aralıklar', 'shared' => 'Paylaşılan', 'fiscal_year' => 'Mali yıl', - 'income_entry' => ':start ve :end arasında \'\':name\'\' hesabının geliri', - 'expense_entry' => ':start ve :end arasında \'\':name\'\' hesabının giderleri', - 'category_entry' => ':start ve :end arasında \'\':name\'\' kategorisinde giderler', + 'income_entry' => ':start ve :end arasında ":name" hesabının geliri', + 'expense_entry' => ':start ve :end arasında ":name" hesabının giderleri', + 'category_entry' => ':start ve :end arasında ":name" kategorisinde giderler', 'budget_spent_amount' => '":budget" bütçesindeki :start ve :end arası harcamalar', 'balance_amount' => '":budget" bütçesindeki, ":account" hesabından :start ve :end arası ödenen giderler', 'no_audit_activity' => ':account_name hesabında :start ve :end arasında hiç bir hareket kaydedilmedi.', @@ -938,7 +938,7 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'balanceFor' => ':name için bakiye', // piggy banks: - 'add_money_to_piggy' => '": name" kumbarasına paraa ekle', + 'add_money_to_piggy' => '":name" kumbarasına paraa ekle', 'piggy_bank' => 'Kumbara', 'new_piggy_bank' => 'Yeni kumbara', 'store_piggy_bank' => 'Yeni bir kumbara kaydet', @@ -949,7 +949,7 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'saved_so_far' => 'Şimdiye kadar biriktirilmiş', 'left_to_save' => 'Kaydetmek için sola', 'suggested_amount' => 'Birikim için önerilen aylık tutar', - 'add_money_to_piggy_title' => '": name" kumbarasına para ekle', + 'add_money_to_piggy_title' => '":name" kumbarasına para ekle', 'remove_money_from_piggy_title' => '":name" kumbarasından para çek', 'add' => 'Ekle', 'no_money_for_piggy' => 'Bu kumbaraya koyacak paran yok.', @@ -959,7 +959,7 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'max_amount_remove' => 'Kaldırabileceğiniz maksimum tutar', 'update_piggy_button' => 'Kumbarayı güncelle', 'update_piggy_title' => '":name" kumbarasını güncelle', - 'updated_piggy_bank' => '": name" kumbarası güncellenmiş', + 'updated_piggy_bank' => '":name" kumbarası güncellenmiş', 'details' => 'Detaylar', 'events' => 'Etkinlikler', 'target_amount' => 'Hedef miktar', @@ -967,20 +967,20 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'target_date' => 'Hedeflenen tarih', 'no_target_date' => 'Hedef tarihi yok', 'table' => 'Tablo', - 'delete_piggy_bank' => '\'\': name\'\' (adlı) kumbarayı sil', - 'cannot_add_amount_piggy' => '": Name" değerine "amount:" eklenemedi.', - 'cannot_remove_from_piggy' => '": Name" adresinden miktar kaldırılamadı.', - 'deleted_piggy_bank' => '": name" kumbarası silinmiş', - 'added_amount_to_piggy' => '": name" e kadar olan miktar eklendi', + 'delete_piggy_bank' => '":name" (adlı) kumbarayı sil', + 'cannot_add_amount_piggy' => '":name" değerine "amount:" eklenemedi.', + 'cannot_remove_from_piggy' => '":name" adresinden miktar kaldırılamadı.', + 'deleted_piggy_bank' => '":name" kumbarası silinmiş', + 'added_amount_to_piggy' => '":name" e kadar olan miktar eklendi', 'removed_amount_from_piggy' => '":name"\'den :amount" silindi', // tags - 'delete_tag' => '\'\':tag\'\' etiketi sil', - 'deleted_tag' => '\'\':tag\'\' etiketi silinmiş', + 'delete_tag' => '":tag" etiketi sil', + 'deleted_tag' => '":tag" etiketi silinmiş', 'new_tag' => 'Yeni etiket yap', - 'edit_tag' => '\'\':tag\'\' etiketi düzenle', - 'updated_tag' => 'Güncellenmiş etiket \'\': tag\'\'', - 'created_tag' => 'Tag \'\': tag\'\' oluşturuldu!', + 'edit_tag' => '":tag" etiketi düzenle', + 'updated_tag' => 'Güncellenmiş etiket ":tag"', + 'created_tag' => 'Tag ":tag" oluşturuldu!', 'transaction_journal_information' => 'İşlem Bilgileri', 'transaction_journal_meta' => 'Meta Bilgisi', @@ -1017,7 +1017,7 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'admin_update_email' => 'Profil sayfasının aksine kullanıcı e-posta adresleri değiştirildiğinde bildirim ALMAYACAKLAR!', 'update_user' => 'Kullanıcıyı güncelle', 'updated_user' => 'Kullanıcı verileri değiştirildi.', - 'delete_user' => 'Kullanıcıyı sil: e-posta', + 'delete_user' => 'Kullanıcıyı sil :email', 'user_deleted' => 'Kullanıcı silindi', 'send_test_email' => 'E-posta adresine test mesajı gönder', 'send_test_email_text' => 'Yüklemenizin e-posta gönderme yetkisine sahip olup olmadığını anlamak için lütfen bu tuşa basınız.Burada bir hata görmeyeceksiniz(varsa), kayıt dosyaları hataları gösterecektir. Bu düğmeye istediğiniz kadar basabilirsiniz. Spam kontrolü yoktur.Bu mesaj :email\'e gönderilecektir ve kısa sürede varmalıdır.', @@ -1054,7 +1054,7 @@ işlemlerin kontrol edildiğini lütfen unutmayın.', 'this_withdrawal' => 'Bu çekim', 'this_deposit' => 'Bu depozito', 'this_transfer' => 'Bu transfer', - 'overview_for_link' => '\'\':name\'\' bağlantı tipine genel bakış', + 'overview_for_link' => '":name" bağlantı tipine genel bakış', 'source_transaction' => 'İşlem kaynağı', 'link_description' => 'Bağlantı açıklaması', 'destination_transaction' => 'Hedef işlem', diff --git a/resources/lang/tr_TR/form.php b/resources/lang/tr_TR/form.php index c148cd8ee3..754c1e1498 100644 --- a/resources/lang/tr_TR/form.php +++ b/resources/lang/tr_TR/form.php @@ -131,13 +131,13 @@ return [ 'include_attachments' => 'Yüklenen ekleri dahil et', 'include_old_uploads' => 'İçe aktarılan verileri dahil et', 'accounts' => 'Bu hesaptan işlemleri çıkarın', - 'delete_account' => '\'\': Name\'\' adlı hesabı sil', - 'delete_bill' => 'Faturayı sil \'\': name\'\'', - 'delete_budget' => '": Name" bütçesini sil', - 'delete_category' => '\'\' Name\'\' kategorisini sil', - 'delete_currency' => 'Para birimini sil \'\':name\'\'', + 'delete_account' => '":name" adlı hesabı sil', + 'delete_bill' => 'Faturayı sil ":name"', + 'delete_budget' => '":name" bütçesini sil', + 'delete_category' => '":name" kategorisini sil', + 'delete_currency' => 'Para birimini sil ":name"', 'delete_journal' => '":description" açıklamalı işlemi sil', - 'delete_attachment' => '\'\': name\'\' eklentisini sil', + 'delete_attachment' => '":name" eklentisini sil', 'delete_rule' => '\'":title" kuralını sil', 'delete_rule_group' => '":title" kural grubunu sil', 'delete_link_type' => '":name" bağlantı türünü sil', @@ -155,8 +155,8 @@ return [ 'journal_areYouSure' => ':description" açıklamalı işlemi silmek istediğinizden emin misiniz?', 'mass_journal_are_you_sure' => 'Bu işlemi silmek istediğinizden emin misiniz?', 'tag_areYouSure' => '":tag" etiketini silmek istediğinizden emin misiniz?', - 'journal_link_areYouSure' => ':kaynak and :hedef arasındaki bağlantıyı silmek istediğinizden emin misiniz?', - 'linkType_areYouSure' => '":name" (":inward" / ":outside") bağlantı türünü silmek istediğinizden emin misiniz?', + 'journal_link_areYouSure' => ':source and :destination arasındaki bağlantıyı silmek istediğinizden emin misiniz?', + 'linkType_areYouSure' => '":name" (":inward" / ":outward") bağlantı türünü silmek istediğinizden emin misiniz?', 'permDeleteWarning' => 'Firely\'den bir şeyler silmek kalıcıdır ve geri alınamaz.', 'mass_make_selection' => 'Onay kutusunu kaldırarak öğelerin silinmesini engelleyebilirsiniz.', 'delete_all_permanently' => 'Seçilenleri kalıcı olarak sil', diff --git a/resources/lang/tr_TR/import.php b/resources/lang/tr_TR/import.php index 1ca135a238..2292ed9569 100644 --- a/resources/lang/tr_TR/import.php +++ b/resources/lang/tr_TR/import.php @@ -21,7 +21,7 @@ declare(strict_types=1); return [ - // status of import: + // status of import: 'status_wait_title' => 'Lütfen bekleyin...', 'status_wait_text' => 'Bu kutu bir dakika içinde kaybolacak.', 'status_fatal_title' => 'Önemli bir hata oluştu', diff --git a/resources/lang/tr_TR/validation.php b/resources/lang/tr_TR/validation.php index ee41b5c28b..d239a55b4b 100644 --- a/resources/lang/tr_TR/validation.php +++ b/resources/lang/tr_TR/validation.php @@ -26,12 +26,12 @@ return [ 'deleted_user' => 'Güvenlik kısıtlamaları nedeniyle, bu e-posta adresini kullanarak kayıt yapamazsınız.', 'rule_trigger_value' => 'Bu eylem, seçili işlem için geçersizdir.', 'rule_action_value' => 'Bu eylem seçili işlem için geçersizdir.', - 'file_already_attached' => 'Yüklenen dosya \'\': name\'\' zaten bu nesneye bağlı.', - 'file_attached' => '\'\': name\'\' dosyası başarıyla yüklendi.', - 'file_invalid_mime' => '": Name" dosyası ": mime" türünde olup yeni bir yükleme olarak kabul edilemez.', - 'file_too_large' => '\'\': Name\'\' dosyası çok büyük.', + 'file_already_attached' => 'Yüklenen dosya ":name" zaten bu nesneye bağlı.', + 'file_attached' => '":name" dosyası başarıyla yüklendi.', + 'file_invalid_mime' => '":name" dosyası ":mime" türünde olup yeni bir yükleme olarak kabul edilemez.', + 'file_too_large' => '":name" dosyası çok büyük.', 'belongs_to_user' => ':attribute\'nin değeri bilinmiyor', - 'accepted' => ': attribute kabul edilmek zorunda.', + 'accepted' => ':attribute kabul edilmek zorunda.', 'bic' => 'Bu BIC geçerli değilrdir.', 'more' => ':attribute sıfırdan büyük olmak zorundadır.', 'active_url' => ':attribute geçerli bir URL değil.', @@ -39,7 +39,7 @@ return [ 'alpha' => ':attribute sadece harf içerebilir.', 'alpha_dash' => ':attribute sadece harf, sayı ve kısa çizgi içerebilir.', 'alpha_num' => ':attribute sadece harf ve sayı içerebilir.', - 'array' => ': Nitelikli bir dizi olmalıdır.', + 'array' => ':attribute bir dizi olmalıdır.', 'unique_for_user' => ':attribute\'de zaten bir girdi var.', 'before' => ':attribute :date tarihinden öncesi için tarihlendirilmelidir.', 'unique_object_for_user' => 'Bu isim zaten kullanılıyor', @@ -49,7 +49,7 @@ return [ 'between.string' => ':attribute :min karakter ve :max karakter olmalıdır.', 'between.array' => ':attribute :min öğe ve :max öğe olmalıdır.', 'boolean' => ':attribute alanının doğru veya yanlış olması gerekir.', - 'confirmed' => ': Öznitelik doğrulaması eşleşmiyor.', + 'confirmed' => ':attribute doğrulaması eşleşmiyor.', 'date' => ':attribute geçerli bir tarih değil.', 'date_format' => ':attribute :format formatına uymuyor.', 'different' => ':attribute ve :other farklı olmalı.', @@ -77,15 +77,15 @@ return [ 'regex' => ':attribute biçimi geçersiz.', 'required' => ':attribute alanı gereklidir.', 'required_if' => ':other :value iken :attribute alanı gereklidir.', - 'required_unless' => ':others :values içinde değilse :attribute alanı gereklidir.', + 'required_unless' => ':other :values içinde değilse :attribute alanı gereklidir.', 'required_with' => ':values mevcutken :attribute alanı gereklidir.', 'required_with_all' => ':values mevcutken :attribute alanı gereklidir.', 'required_without' => ':values mevcut değilken :attribute alanı gereklidir.', 'required_without_all' => 'Hiçbir :values mevcut değilken :attribute alanı gereklidir.', - 'same' => ': Attribute ve: diğeri eşleşmelidir.', - 'size.numeric' => ': attribute :size olmalıdır.', + 'same' => ':attribute ve :other eşleşmelidir.', + 'size.numeric' => ':attribute :size olmalıdır.', 'size.file' => ':attribute :size kilobyte olmalıdır.', - 'size.string' => ': attribute :size karakter olmalıdır.', + 'size.string' => ':attribute :size karakter olmalıdır.', 'size.array' => ':attribute :size öğeye sahip olmalıdır.', 'unique' => ':attribute zaten alınmış.', 'string' => ':attribute bir dizi olmalıdır.', From b73884160acfe98f490a7ae30613277fc92272e9 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 31 Dec 2017 10:40:27 +0100 Subject: [PATCH 25/77] Fix account controller + coverage. --- app/Http/Controllers/AccountController.php | 14 +- .../Account/AccountRepository.php | 10 + .../Account/AccountRepositoryInterface.php | 7 + resources/views/transactions/bulk/edit.twig | 24 +- .../Controllers/AccountControllerTest.php | 6 + .../Transaction/BulkControllerTest.php | 217 ++++++++++++++++++ .../Transaction/MassControllerTest.php | 4 + 7 files changed, 254 insertions(+), 28 deletions(-) create mode 100644 tests/Feature/Controllers/Transaction/BulkControllerTest.php diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index bb9d6d0b04..8005640860 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -157,14 +157,14 @@ class AccountController extends Controller * @throws FireflyException * @throws FireflyException */ - public function edit(Request $request, Account $account) + public function edit(Request $request, Account $account, AccountRepositoryInterface $repository) { - /** @var CurrencyRepositoryInterface $repository */ - $repository = app(CurrencyRepositoryInterface::class); + /** @var CurrencyRepositoryInterface $currencyRepos */ + $currencyRepos = app(CurrencyRepositoryInterface::class); $what = config('firefly.shortNamesByFullName')[$account->accountType->type]; $subTitle = trans('firefly.edit_' . $what . '_account', ['name' => $account->name]); $subTitleIcon = config('firefly.subIconsByIdentifier.' . $what); - $allCurrencies = $repository->get(); + $allCurrencies = $currencyRepos->get(); $currencySelectList = ExpandedForm::makeSelectList($allCurrencies); $roles = []; foreach (config('firefly.accountRoles') as $role) { @@ -184,7 +184,7 @@ class AccountController extends Controller $openingBalanceAmount = '0' === $account->getOpeningBalanceAmount() ? '' : $openingBalanceAmount; $openingBalanceDate = $account->getOpeningBalanceDate(); $openingBalanceDate = 1900 === $openingBalanceDate->year ? null : $openingBalanceDate->format('Y-m-d'); - $currency = $repository->find(intval($account->getMeta('currency_id'))); + $currency = $currencyRepos->find(intval($account->getMeta('currency_id'))); $preFilled = [ 'accountNumber' => $account->getMeta('accountNumber'), @@ -196,10 +196,10 @@ class AccountController extends Controller 'openingBalance' => $openingBalanceAmount, 'virtualBalance' => $account->virtual_balance, 'currency_id' => $currency->id, - 'notes' => '', + 'notes' => '', ]; /** @var Note $note */ - $note = $account->notes()->first(); + $note = $repository->getNote($account); if (null !== $note) { $preFilled['notes'] = $note->text; } diff --git a/app/Repositories/Account/AccountRepository.php b/app/Repositories/Account/AccountRepository.php index 291166d511..3a6d0155bb 100644 --- a/app/Repositories/Account/AccountRepository.php +++ b/app/Repositories/Account/AccountRepository.php @@ -87,6 +87,16 @@ class AccountRepository implements AccountRepositoryInterface return true; } + /** + * @param Account $account + * + * @return Note|null + */ + public function getNote(Account $account): ?Note + { + return $account->notes()->first(); + } + /** * Returns the date of the very last transaction in this account. * diff --git a/app/Repositories/Account/AccountRepositoryInterface.php b/app/Repositories/Account/AccountRepositoryInterface.php index 985b32104c..145c7aeeb0 100644 --- a/app/Repositories/Account/AccountRepositoryInterface.php +++ b/app/Repositories/Account/AccountRepositoryInterface.php @@ -24,6 +24,7 @@ namespace FireflyIII\Repositories\Account; use Carbon\Carbon; use FireflyIII\Models\Account; +use FireflyIII\Models\Note; use FireflyIII\Models\TransactionJournal; use FireflyIII\User; use Illuminate\Support\Collection; @@ -33,6 +34,12 @@ use Illuminate\Support\Collection; */ interface AccountRepositoryInterface { + /** + * @param Account $account + * + * @return Note|null + */ + public function getNote(Account $account): ?Note; /** * Moved here from account CRUD. * diff --git a/resources/views/transactions/bulk/edit.twig b/resources/views/transactions/bulk/edit.twig index 5c7c3d0cc8..4957e9eeb8 100644 --- a/resources/views/transactions/bulk/edit.twig +++ b/resources/views/transactions/bulk/edit.twig @@ -79,7 +79,7 @@
    @@ -97,7 +97,7 @@
    @@ -111,7 +111,7 @@
    @@ -121,24 +121,6 @@
    -