Build 545032stable
Module 237164
2,764 characters · in no known chunkDependencies
Source Raw
function(e,t,n){"use strict";var i=n(691262),r=n(264048),s=n(698982),a=n(415922);function o(e,t,n){var i="string"==typeof e?o.__parse(e):e;if(!(i&&"messageFormatPattern"===i.type))throw TypeError("A message must be provided as a String or AST.");n=this._mergeFormats(o.formats,n),r.defineProperty(this,"_locale",{value:this._resolveLocale(t)});var s=this._findPluralRuleFunction(this._locale),a=this._compilePattern(i,t,n,s),l=this;this.format=function(e){return l._format(a,e)}}t.default=o,r.defineProperty(o,"formats",{enumerable:!0,value:{number:{currency:{style:"currency"},percent:{style:"percent"}},date:{short:{month:"numeric",day:"numeric",year:"2-digit"},medium:{month:"short",day:"numeric",year:"numeric"},long:{month:"long",day:"numeric",year:"numeric"},full:{weekday:"long",month:"long",day:"numeric",year:"numeric"}},time:{short:{hour:"numeric",minute:"numeric"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}}}}),r.defineProperty(o,"__localeData__",{value:r.objCreate(null)}),r.defineProperty(o,"__addLocaleData",{value:function(e){if(!(e&&e.locale))throw Error("Locale data provided to IntlMessageFormat is missing a `locale` property");o.__localeData__[e.locale.toLowerCase()]=e}}),r.defineProperty(o,"__parse",{value:a.default.parse}),r.defineProperty(o,"defaultLocale",{enumerable:!0,writable:!0,value:void 0}),o.prototype.resolvedOptions=function(){return{locale:this._locale}},o.prototype._compilePattern=function(e,t,n,i){return new s.default(t,n,i).compile(e)},o.prototype._findPluralRuleFunction=function(e){for(var t=o.__localeData__,n=t[e.toLowerCase()];n;){if(n.pluralRuleFunction)return n.pluralRuleFunction;n=n.parentLocale&&t[n.parentLocale.toLowerCase()]}throw Error("Locale data added to IntlMessageFormat is missing a `pluralRuleFunction` for :"+e)},o.prototype._format=function(e,t){var n,r,s,a,o,l="";for(n=0,r=e.length;n<r;n+=1){if("string"==typeof(s=e[n])){l+=s;continue}if(a=s.id,!(t&&i.hop.call(t,a)))throw Error("A value must be provided for: "+a);o=t[a],s.options?l+=this._format(s.getOption(o),t):l+=s.format(o)}return l},o.prototype._mergeFormats=function(e,t){var n,s,a={};for(n in e)i.hop.call(e,n)&&(a[n]=s=r.objCreate(e[n]),t&&i.hop.call(t,n)&&i.extend(s,t[n]));return a},o.prototype._resolveLocale=function(e){"string"==typeof e&&(e=[e]),e=(e||[]).concat(o.defaultLocale);var t,n,i,r,s=o.__localeData__;for(t=0,n=e.length;t<n;t+=1)for(i=e[t].toLowerCase().split("-");i.length;){if(r=s[i.join("-")])return r.locale;i.pop()}var a=e.pop();throw Error("No locale data has been added to IntlMessageFormat for: "+e.join(", ")+", or the default locale: "+a)}}