/** * @license Copyright 2013 Andy Earnshaw, MIT License * * Implements the ECMAScript Internationalization API in ES5-compatible environments, * following the ECMA-402 specification as closely as possible * * ECMA-402: http://ecma-international.org/ecma-402/1.0/ * * CLDR format locale data should be provided using IntlPolyfill.__addLocaleData(). */ (function(n,t){var i=t();typeof define=="function"&&define.amd&&define(i);typeof exports=="object"&&(module.exports=i);n.Intl||(n.Intl=i,i.__applyLocaleSensitivePrototypes());n.IntlPolyfill=i})(typeof global!="undefined"?global:this,function(){"use strict";function gt(n){return wt.test(n)?bt.test(n)?!1:kt.test(n)?!1:!0:!1}function pi(n){var e,i,r,u;for(n=n.toLowerCase(),i=n.split("-"),r=1,u=i.length;r1&&(e.sort(),n=n.replace(RegExp("(?:"+ot.source+")+","i"),f.call(e,""))),t.call(v.tags,n)&&(n=v.tags[n]),i=n.split("-"),r=1,u=i.length;r-1)return i;if(r=i.lastIndexOf("-"),r<0)return;r>=2&&i.charAt(r-2)=="-"&&(r-=2);i=i.substring(0,r)}}function ti(n,t){for(var u=0,c=t.length,f,i,s,h;u2?(tt=l[v+1],b=w.call(y,tt),b!==-1&&(h=tt,nt="-"+s+"-"+h)):(b=w(y,"true"),b!==-1&&(h="true"))));t.call(r,"[["+s+"]]")&&(k=r["[["+s+"]]"],w.call(y,k)!==-1&&k!==h&&(h=k,nt=""));a["[["+s+"]]"]=h;d+=nt;g++}if(d.length>2)var ht=o.substring(0,rt),ct=o.substring(rt),o=ht+d+ct;return a["[[locale]]"]=o,a}function ri(n,t){for(var f=t.length,r=new o,i=0;ir)throw new RangeError("Value is not a number or outside accepted range");return Math.floor(f)}return u}function ui(){var n=arguments[0],t=arguments[1];return!this||this===i?new i.NumberFormat(n,t):fi(b(this),n,t)}function fi(n,t,i){var f=y(n),it=g(),rt,w,ut,d,a,ft,s,c,nt,et,ot,ht,l,ct,lt,v,p,vt;if(f["[[initializedIntlObject]]"]===!0)throw new TypeError("`this` object has already been initialized as an Intl object");if(r(n,"__getInternalProperties",{value:function(){if(arguments[0]===tt)return f}}),f["[[initializedIntlObject]]"]=!0,rt=st(t),i=i===undefined?{}:b(i),w=new e,ut=h(i,"localeMatcher","string",new o("lookup","best fit"),"best fit"),w["[[localeMatcher]]"]=ut,d=u.NumberFormat["[[localeData]]"],a=ii(u.NumberFormat["[[availableLocales]]"],rt,w,u.NumberFormat["[[relevantExtensionKeys]]"],d),f["[[locale]]"]=a["[[locale]]"],f["[[numberingSystem]]"]=a["[[nu]]"],f["[[dataLocale]]"]=a["[[dataLocale]]"],ft=a["[[dataLocale]]"],s=h(i,"style","string",new o("decimal","percent","currency"),"decimal"),f["[[style]]"]=s,c=h(i,"currency","string"),c!==undefined&&!bi(c))throw new RangeError("'"+c+"' is not a valid currency code");if(s==="currency"&&c===undefined)throw new TypeError("Currency code is required when style is currency");s==="currency"&&(c=c.toUpperCase(),f["[[currency]]"]=c,nt=nr(c));et=h(i,"currencyDisplay","string",new o("code","symbol","name"),"symbol");s==="currency"&&(f["[[currencyDisplay]]"]=et);ot=k(i,"minimumIntegerDigits",1,21,1);f["[[minimumIntegerDigits]]"]=ot;ht=s==="currency"?nt:0;l=k(i,"minimumFractionDigits",0,20,ht);f["[[minimumFractionDigits]]"]=l;ct=s==="currency"?Math.max(l,nt):s==="percent"?Math.max(l,0):Math.max(l,3);lt=k(i,"maximumFractionDigits",l,20,ct);f["[[maximumFractionDigits]]"]=lt;v=i.minimumSignificantDigits;p=i.maximumSignificantDigits;(v!==undefined||p!==undefined)&&(v=k(i,"minimumSignificantDigits",1,21,1),p=k(i,"maximumSignificantDigits",v,21,21),f["[[minimumSignificantDigits]]"]=v,f["[[maximumSignificantDigits]]"]=p);vt=h(i,"useGrouping","boolean",undefined,!0);f["[[useGrouping]]"]=vt;var pt=d[ft],wt=pt.patterns,yt=wt[s];return f["[[positivePattern]]"]=yt.positivePattern,f["[[negativePattern]]"]=yt.negativePattern,f["[[boundFormat]]"]=undefined,f["[[initializedNumberFormat]]"]=!0,at&&(n.format=ei.call(n)),it.exp.test(it.input),n}function nr(n){return dt[n]!==undefined?dt[n]:2}function ei(){var n=this!=null&&typeof this=="object"&&y(this),t,i;if(!n||!n["[[initializedNumberFormat]]"])throw new TypeError("`this` value for format() is not an initialized Intl.NumberFormat object.");return n["[[boundFormat]]"]===undefined&&(t=function(n){return it(this,Number(n))},i=nt.call(t,this),n["[[boundFormat]]"]=i),n["[[boundFormat]]"]}function it(n,i){var e,rt=g(),r=y(n),st=r["[[dataLocale]]"],ut=r["[[numberingSystem]]"],l=u.NumberFormat["[[localeData]]"][st],h=l.symbols[ut]||l.symbols.latn,b=!1,ft,c,it,w,ot;if(isFinite(i)===!1)isNaN(i)?e=h.nan:(e=h.infinity,i<0&&(b=!0));else if(i<0&&(b=!0,i=-i),r["[[style]]"]==="percent"&&(i*=100),e=t.call(r,"[[minimumSignificantDigits]]")&&t.call(r,"[[maximumSignificantDigits]]")?tr(i,r["[[minimumSignificantDigits]]"],r["[[maximumSignificantDigits]]"]):ir(i,r["[[minimumIntegerDigits]]"],r["[[minimumFractionDigits]]"],r["[[maximumFractionDigits]]"]),ht[ut]?(ft=ht[r["[[numberingSystem]]"]],e=String(e).replace(/\d/g,function(n){return ft[n]})):e=String(e),e=e.replace(/\./g,h.decimal),r["[[useGrouping]]"]===!0){var k=e.split(h.decimal),a=k[0],d=l.patterns.primaryGroupSize||3,nt=l.patterns.secondaryGroupSize||d;if(a.length>d){var p=new o,tt=a.length-d,v=tt%nt,et=a.slice(0,v);for(et.length&&s.call(p,et);v=e)return r+f.call(Array(u-e+1+1),"0");if(u===e-1)return r;if(u>=0?r=r.slice(0,u+1)+"."+r.slice(u+1):u<0&&(r="0."+f.call(Array(-(u+1)+1),"0")+r),r.indexOf(".")>=0&&i>t){for(o=i-t;o>0&&r.charAt(r.length-1)==="0";)r=r.slice(0,-1),o--;r.charAt(r.length-1)==="."&&(r=r.slice(0,-1))}return r}function ir(n,t,i,r){var e,u=Number.prototype.toFixed.call(n,r),o=u.split(".")[0].length,h=r-i,c=(e=u.indexOf("e"))>-1?u.slice(e+1):0,s;for(c&&(u=u.slice(0,e).replace(".",""),u+=f.call(Array(c-(u.length-1)+1),"0")+"."+f.call(Array(r+1),"0"),o=u.length);h>0&&u.slice(-1)==="0";)u=u.slice(0,-1),h--;return u.slice(-1)==="."&&(u=u.slice(0,-1)),oa&&(a=u,v=s);l++}return v}function ur(n,t){return si(n,t,!0)}function hi(){var n=this!=null&&typeof this=="object"&&y(this),t,i;if(!n||!n["[[initializedDateTimeFormat]]"])throw new TypeError("`this` value for format() is not an initialized Intl.DateTimeFormat object.");return n["[[boundFormat]]"]===undefined&&(t=function(){var n=Number(arguments.length===0?Date.now():arguments[0]);return ut(this,n)},i=nt.call(t,this),n["[[boundFormat]]"]=i),n["[[boundFormat]]"]}function ut(n,r){var f,b,e,h,o;if(!isFinite(r))throw new RangeError("Invalid valid date passed to format");var s=n.__getInternalProperties(tt),w=g(),v=s["[[locale]]"],k=new i.NumberFormat([v],{useGrouping:!1}),d=new i.NumberFormat([v],{minimumIntegerDigits:2,useGrouping:!1}),l=fr(r,s["[[calendar]]"],s["[[timeZone]]"]),a=s["[[pattern]]"],nt=s["[[dataLocale]]"],y=u.DateTimeFormat["[[localeData]]"][nt].calendars,p=s["[[calendar]]"];for(f in c)if(t.call(s,"[["+f+"]]")){if(h=s["[["+f+"]]"],o=l["[["+f+"]]"],f==="year"&&o<=0?o=1-o:f==="month"?o++:f==="hour"&&s["[[hour12]]"]===!0&&(o=o%12,b=o!==l["[["+f+"]]"],o===0&&s["[[hourNo0]]"]===!0&&(o=12)),h==="numeric")e=it(k,o);else if(h==="2-digit")e=it(d,o),e.length>2&&(e=e.slice(-2));else if(h in vi)switch(f){case"month":e=ct(y,p,"months",h,l["[["+f+"]]"]);break;case"weekday":try{e=ct(y,p,"days",h,l["[["+f+"]]"])}catch(rt){throw new Error("Could not find weekday data for locale "+v);}break;case"timeZoneName":e="";break;default:e=l["[["+f+"]]"]}a=a.replace("{"+f+"}",e)}return s["[[hour12]]"]===!0&&(e=ct(y,p,"dayPeriods",b?"pm":"am"),a=a.replace("{ampm}",e)),w.exp.test(w.input),a}function fr(n,t,i){var r=new Date(n),u="get"+(i||"");return new e({"[[weekday]]":r[u+"Day"](),"[[era]]":+(r[u+"FullYear"]()>=0),"[[year]]":r[u+"FullYear"](),"[[month]]":r[u+"Month"](),"[[day]]":r[u+"Date"](),"[[hour]]":r[u+"Hours"](),"[[minute]]":r[u+"Minutes"](),"[[second]]":r[u+"Seconds"](),"[[inDST]]":!1})}function n(n,t){if(!n.number)throw new Error("Object passed doesn't contain locale data for Intl.NumberFormat");var r,e=[t],f=t.split("-");for(f.length>2&&f[1].length==4&&s.call(e,f[0]+"-"+f[2]);r=ai.call(e);)s.call(u.NumberFormat["[[availableLocales]]"],r),u.NumberFormat["[[localeData]]"][r]=n.number,n.date&&(n.date.nu=n.number.nu,s.call(u.DateTimeFormat["[[availableLocales]]"],r),u.DateTimeFormat["[[localeData]]"][r]=n.date);ft===undefined&&(ft=t);yt||(fi(i.NumberFormat.prototype),yt=!0);n.date&&!pt&&(oi(i.DateTimeFormat.prototype),pt=!0)}function er(n){if(typeof Math.log10=="function")return Math.floor(Math.log10(n));var t=Math.round(Math.log(n)*Math.LOG10E);return t-(Number("1e"+t)>n)}function ci(n){if(!t.call(this,"[[availableLocales]]"))throw new TypeError("supportedLocalesOf() is not a constructor");var i=g(),r=arguments[1],u=this["[[availableLocales]]"],f=st(n);return i.exp.test(i.input),gi(u,f,r)}function ct(n,i,r,u,f){var e=n[i]&&n[i][r]?n[i][r]:n.gregory[r],o={narrow:["short","long"],short:["long","narrow"],long:["short","narrow"]},s=t.call(e,u)?e[u]:t.call(e,o[u][0])?e[o[u][0]]:e[o[u][1]];return f!=null?s[f]:s}function e(n){for(var i in n)(n instanceof e||t.call(n,i))&&r(this,i,{value:n[i],enumerable:!0,writable:!0,configurable:!0})}function o(){r(this,"length",{writable:!0,value:0});arguments.length&&s.apply(this,w.call(arguments))}function g(){for(var i,u=/[.?*+^$[\]\\(){}|-]/g,n=RegExp.lastMatch,l=RegExp.multiline?"m":"",e={input:RegExp.input},h=new o,r=!1,c={},t=1;t<=9;t++)r=(c["$"+t]=RegExp["$"+t])||r;if(n=n.replace(u,"\\$&"),r)for(t=1;t<=9;t++)i=c["$"+t],i?(i=i.replace(u,"\\$&"),n=n.replace(i,"("+i+")")):n="()"+n,s.call(h,n.slice(0,n.indexOf("(")+1)),n=n.slice(n.indexOf("(")+1);return e.exp=new RegExp(f.call(h,"")+n,l),e}function li(n){for(var t=n.length,i;t--;)i=n.charAt(t),i>="a"&&i<="z"&&(n=n.slice(0,t)+i.toUpperCase()+n.slice(t+1));return n}function b(n){if(n==null)throw new TypeError("Cannot convert null or undefined to object");return Object(n)}function y(n){return t.call(n,"__getInternalProperties")?n.__getInternalProperties(tt):a(null)}var i={},lt=function(){try{return!!Object.defineProperty({},"a",{})}catch(n){return!1}}(),at=!lt&&!Object.prototype.__defineGetter__,t=Object.prototype.hasOwnProperty,r=lt?Object.defineProperty:function(n,i,r){"get"in r&&n.__defineGetter__?n.__defineGetter__(i,r.get):(!t.call(n,i)||"value"in r)&&(n[i]=r.value)},p=Array.prototype.indexOf||function(n){var i=this,t,r;if(!i.length)return-1;for(t=arguments[1]||0,r=i.length;t