From 5e8b960a091912885c6bfebda0ed1bcbef14719d Mon Sep 17 00:00:00 2001 From: indirectlylit Date: Sat, 1 Dec 2018 13:31:48 -0800 Subject: [PATCH 1/4] add basic support for hot module reloading in dev mode; fix typo --- src/format.js | 6 ++++++ src/vue-intl.js | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/format.js b/src/format.js index 216fe13..9723d73 100644 --- a/src/format.js +++ b/src/format.js @@ -232,6 +232,12 @@ export function formatMessage(config, state, messageDescriptor = {}, values = {} return message || defaultMessage || id; } + // When debugging in English, show default string to enable hot module reloading + if (process.env.NODE_ENV === 'development' && defaultMessage && locale === 'en') { + var formatter = state.getMessageFormat(defaultMessage, locale, formats); + return formatter.format(values); + } + let formattedMessage; if (message) { diff --git a/src/vue-intl.js b/src/vue-intl.js index d37837e..5e2f73b 100644 --- a/src/vue-intl.js +++ b/src/vue-intl.js @@ -30,7 +30,7 @@ function install(Vue, options={}) { return formatMethods[key](config, state, ...args); } } -}; +} export default { addLocaleData, From 8b59935a7a4d074416db5047e90605276f92d227 Mon Sep 17 00:00:00 2001 From: indirectlylit Date: Sat, 1 Dec 2018 13:32:21 -0800 Subject: [PATCH 2/4] regenerate dist files --- dist/vue-intl.js | 14 ++++++++++---- dist/vue-intl.js.map | 2 +- dist/vue-intl.min.js | 2 +- dist/vue-intl.min.js.map | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/dist/vue-intl.js b/dist/vue-intl.js index 89131c2..204cfbe 100644 --- a/dist/vue-intl.js +++ b/dist/vue-intl.js @@ -3130,13 +3130,19 @@ function formatMessage(config, state) { return message || defaultMessage || id; } + // When debugging in English, show default string to enable hot module reloading + if ("development" === 'development' && defaultMessage && locale === 'en') { + var formatter = state.getMessageFormat(defaultMessage, locale, formats); + return formatter.format(values); + } + var formattedMessage = void 0; if (message) { try { - var formatter = state.getMessageFormat(message, locale, formats); + var _formatter = state.getMessageFormat(message, locale, formats); - formattedMessage = formatter.format(values); + formattedMessage = _formatter.format(values); } catch (e) { { console.error('[Vue Intl] Error formatting message: "' + id + '" for locale: "' + locale + '"' + (defaultMessage ? ', using default message as fallback.' : '') + ('\n' + e)); @@ -3156,9 +3162,9 @@ function formatMessage(config, state) { if (!formattedMessage && defaultMessage) { try { - var _formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats); + var _formatter2 = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats); - formattedMessage = _formatter.format(values); + formattedMessage = _formatter2.format(values); } catch (e) { { console.error('[Vue Intl] Error formatting the default message for: "' + id + '"' + ('\n' + e)); diff --git a/dist/vue-intl.js.map b/dist/vue-intl.js.map index 90f2d49..c88b436 100644 --- a/dist/vue-intl.js.map +++ b/dist/vue-intl.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-intl.js","sources":["../node_modules/intl-messageformat/src/utils.js","../node_modules/intl-messageformat/src/es5.js","../node_modules/intl-messageformat/src/compiler.js","../node_modules/intl-messageformat-parser/src/parser.js","../node_modules/intl-messageformat/src/core.js","../node_modules/intl-messageformat/src/en.js","../node_modules/intl-messageformat/src/main.js","../node_modules/intl-relativeformat/src/diff.js","../node_modules/intl-relativeformat/src/es5.js","../node_modules/intl-relativeformat/src/core.js","../node_modules/intl-relativeformat/src/en.js","../node_modules/intl-relativeformat/src/main.js","../src/localeData.js","../src/setLocale.js","../src/getLocaleData.js","../src/plural.js","../node_modules/intl-format-cache/src/es5.js","../node_modules/intl-format-cache/src/memoizer.js","../src/state.js","../src/types.js","../src/utils.js","../src/format.js","../src/FormattedMessage.js","../src/en.js","../src/vue-intl.js"],"sourcesContent":["/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport var hop = Object.prototype.hasOwnProperty;\n\nexport function extend(obj) {\n var sources = Array.prototype.slice.call(arguments, 1),\n i, len, source, key;\n\n for (i = 0, len = sources.length; i < len; i += 1) {\n source = sources[i];\n if (!source) { continue; }\n\n for (key in source) {\n if (hop.call(source, key)) {\n obj[key] = source[key];\n }\n }\n }\n\n return obj;\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {hop} from './utils';\n\nexport {defineProperty, objCreate};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport default Compiler;\n\nfunction Compiler(locales, formats, pluralFn) {\n this.locales = locales;\n this.formats = formats;\n this.pluralFn = pluralFn;\n}\n\nCompiler.prototype.compile = function (ast) {\n this.pluralStack = [];\n this.currentPlural = null;\n this.pluralNumberFormat = null;\n\n return this.compileMessage(ast);\n};\n\nCompiler.prototype.compileMessage = function (ast) {\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new Error('Message AST is not of type: \"messageFormatPattern\"');\n }\n\n var elements = ast.elements,\n pattern = [];\n\n var i, len, element;\n\n for (i = 0, len = elements.length; i < len; i += 1) {\n element = elements[i];\n\n switch (element.type) {\n case 'messageTextElement':\n pattern.push(this.compileMessageText(element));\n break;\n\n case 'argumentElement':\n pattern.push(this.compileArgument(element));\n break;\n\n default:\n throw new Error('Message element does not have a valid type');\n }\n }\n\n return pattern;\n};\n\nCompiler.prototype.compileMessageText = function (element) {\n // When this `element` is part of plural sub-pattern and its value contains\n // an unescaped '#', use a `PluralOffsetString` helper to properly output\n // the number with the correct offset in the string.\n if (this.currentPlural && /(^|[^\\\\])#/g.test(element.value)) {\n // Create a cache a NumberFormat instance that can be reused for any\n // PluralOffsetString instance in this message.\n if (!this.pluralNumberFormat) {\n this.pluralNumberFormat = new Intl.NumberFormat(this.locales);\n }\n\n return new PluralOffsetString(\n this.currentPlural.id,\n this.currentPlural.format.offset,\n this.pluralNumberFormat,\n element.value);\n }\n\n // Unescape the escaped '#'s in the message text.\n return element.value.replace(/\\\\#/g, '#');\n};\n\nCompiler.prototype.compileArgument = function (element) {\n var format = element.format;\n\n if (!format) {\n return new StringFormat(element.id);\n }\n\n var formats = this.formats,\n locales = this.locales,\n pluralFn = this.pluralFn,\n options;\n\n switch (format.type) {\n case 'numberFormat':\n options = formats.number[format.style];\n return {\n id : element.id,\n format: new Intl.NumberFormat(locales, options).format\n };\n\n case 'dateFormat':\n options = formats.date[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'timeFormat':\n options = formats.time[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'pluralFormat':\n options = this.compileOptions(element);\n return new PluralFormat(\n element.id, format.ordinal, format.offset, options, pluralFn\n );\n\n case 'selectFormat':\n options = this.compileOptions(element);\n return new SelectFormat(element.id, options);\n\n default:\n throw new Error('Message element does not have a valid format type');\n }\n};\n\nCompiler.prototype.compileOptions = function (element) {\n var format = element.format,\n options = format.options,\n optionsHash = {};\n\n // Save the current plural element, if any, then set it to a new value when\n // compiling the options sub-patterns. This conforms the spec's algorithm\n // for handling `\"#\"` syntax in message text.\n this.pluralStack.push(this.currentPlural);\n this.currentPlural = format.type === 'pluralFormat' ? element : null;\n\n var i, len, option;\n\n for (i = 0, len = options.length; i < len; i += 1) {\n option = options[i];\n\n // Compile the sub-pattern and save it under the options's selector.\n optionsHash[option.selector] = this.compileMessage(option.value);\n }\n\n // Pop the plural stack to put back the original current plural value.\n this.currentPlural = this.pluralStack.pop();\n\n return optionsHash;\n};\n\n// -- Compiler Helper Classes --------------------------------------------------\n\nfunction StringFormat(id) {\n this.id = id;\n}\n\nStringFormat.prototype.format = function (value) {\n if (!value) {\n return '';\n }\n\n return typeof value === 'string' ? value : String(value);\n};\n\nfunction PluralFormat(id, useOrdinal, offset, options, pluralFn) {\n this.id = id;\n this.useOrdinal = useOrdinal;\n this.offset = offset;\n this.options = options;\n this.pluralFn = pluralFn;\n}\n\nPluralFormat.prototype.getOption = function (value) {\n var options = this.options;\n\n var option = options['=' + value] ||\n options[this.pluralFn(value - this.offset, this.useOrdinal)];\n\n return option || options.other;\n};\n\nfunction PluralOffsetString(id, offset, numberFormat, string) {\n this.id = id;\n this.offset = offset;\n this.numberFormat = numberFormat;\n this.string = string;\n}\n\nPluralOffsetString.prototype.format = function (value) {\n var number = this.numberFormat.format(value - this.offset);\n\n return this.string\n .replace(/(^|[^\\\\])#/g, '$1' + number)\n .replace(/\\\\#/g, '#');\n};\n\nfunction SelectFormat(id, options) {\n this.id = id;\n this.options = options;\n}\n\nSelectFormat.prototype.getOption = function (value) {\n var options = this.options;\n return options[value] || options.other;\n};\n","export default (function() {\n /*\n * Generated by PEG.js 0.8.0.\n *\n * http://pegjs.majda.cz/\n */\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function SyntaxError(message, expected, found, offset, line, column) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.offset = offset;\n this.line = line;\n this.column = column;\n\n this.name = \"SyntaxError\";\n }\n\n peg$subclass(SyntaxError, Error);\n\n function parse(input) {\n var options = arguments.length > 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = [],\n peg$c1 = function(elements) {\n return {\n type : 'messageFormatPattern',\n elements: elements\n };\n },\n peg$c2 = peg$FAILED,\n peg$c3 = function(text) {\n var string = '',\n i, j, outerLen, inner, innerLen;\n\n for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n inner = text[i];\n\n for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n string += inner[j];\n }\n }\n\n return string;\n },\n peg$c4 = function(messageText) {\n return {\n type : 'messageTextElement',\n value: messageText\n };\n },\n peg$c5 = /^[^ \\t\\n\\r,.+={}#]/,\n peg$c6 = { type: \"class\", value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\", description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\" },\n peg$c7 = \"{\",\n peg$c8 = { type: \"literal\", value: \"{\", description: \"\\\"{\\\"\" },\n peg$c9 = null,\n peg$c10 = \",\",\n peg$c11 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c12 = \"}\",\n peg$c13 = { type: \"literal\", value: \"}\", description: \"\\\"}\\\"\" },\n peg$c14 = function(id, format) {\n return {\n type : 'argumentElement',\n id : id,\n format: format && format[2]\n };\n },\n peg$c15 = \"number\",\n peg$c16 = { type: \"literal\", value: \"number\", description: \"\\\"number\\\"\" },\n peg$c17 = \"date\",\n peg$c18 = { type: \"literal\", value: \"date\", description: \"\\\"date\\\"\" },\n peg$c19 = \"time\",\n peg$c20 = { type: \"literal\", value: \"time\", description: \"\\\"time\\\"\" },\n peg$c21 = function(type, style) {\n return {\n type : type + 'Format',\n style: style && style[2]\n };\n },\n peg$c22 = \"plural\",\n peg$c23 = { type: \"literal\", value: \"plural\", description: \"\\\"plural\\\"\" },\n peg$c24 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: false,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n };\n },\n peg$c25 = \"selectordinal\",\n peg$c26 = { type: \"literal\", value: \"selectordinal\", description: \"\\\"selectordinal\\\"\" },\n peg$c27 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: true,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n }\n },\n peg$c28 = \"select\",\n peg$c29 = { type: \"literal\", value: \"select\", description: \"\\\"select\\\"\" },\n peg$c30 = function(options) {\n return {\n type : 'selectFormat',\n options: options\n };\n },\n peg$c31 = \"=\",\n peg$c32 = { type: \"literal\", value: \"=\", description: \"\\\"=\\\"\" },\n peg$c33 = function(selector, pattern) {\n return {\n type : 'optionalFormatPattern',\n selector: selector,\n value : pattern\n };\n },\n peg$c34 = \"offset:\",\n peg$c35 = { type: \"literal\", value: \"offset:\", description: \"\\\"offset:\\\"\" },\n peg$c36 = function(number) {\n return number;\n },\n peg$c37 = function(offset, options) {\n return {\n type : 'pluralFormat',\n offset : offset,\n options: options\n };\n },\n peg$c38 = { type: \"other\", description: \"whitespace\" },\n peg$c39 = /^[ \\t\\n\\r]/,\n peg$c40 = { type: \"class\", value: \"[ \\\\t\\\\n\\\\r]\", description: \"[ \\\\t\\\\n\\\\r]\" },\n peg$c41 = { type: \"other\", description: \"optionalWhitespace\" },\n peg$c42 = /^[0-9]/,\n peg$c43 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c44 = /^[0-9a-f]/i,\n peg$c45 = { type: \"class\", value: \"[0-9a-f]i\", description: \"[0-9a-f]i\" },\n peg$c46 = \"0\",\n peg$c47 = { type: \"literal\", value: \"0\", description: \"\\\"0\\\"\" },\n peg$c48 = /^[1-9]/,\n peg$c49 = { type: \"class\", value: \"[1-9]\", description: \"[1-9]\" },\n peg$c50 = function(digits) {\n return parseInt(digits, 10);\n },\n peg$c51 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n peg$c52 = { type: \"class\", value: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\", description: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\" },\n peg$c53 = \"\\\\\\\\\",\n peg$c54 = { type: \"literal\", value: \"\\\\\\\\\", description: \"\\\"\\\\\\\\\\\\\\\\\\\"\" },\n peg$c55 = function() { return '\\\\'; },\n peg$c56 = \"\\\\#\",\n peg$c57 = { type: \"literal\", value: \"\\\\#\", description: \"\\\"\\\\\\\\#\\\"\" },\n peg$c58 = function() { return '\\\\#'; },\n peg$c59 = \"\\\\{\",\n peg$c60 = { type: \"literal\", value: \"\\\\{\", description: \"\\\"\\\\\\\\{\\\"\" },\n peg$c61 = function() { return '\\u007B'; },\n peg$c62 = \"\\\\}\",\n peg$c63 = { type: \"literal\", value: \"\\\\}\", description: \"\\\"\\\\\\\\}\\\"\" },\n peg$c64 = function() { return '\\u007D'; },\n peg$c65 = \"\\\\u\",\n peg$c66 = { type: \"literal\", value: \"\\\\u\", description: \"\\\"\\\\\\\\u\\\"\" },\n peg$c67 = function(digits) {\n return String.fromCharCode(parseInt(digits, 16));\n },\n peg$c68 = function(chars) { return chars.join(''); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsestart() {\n var s0;\n\n s0 = peg$parsemessageFormatPattern();\n\n return s0;\n }\n\n function peg$parsemessageFormatPattern() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemessageFormatElement();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemessageFormatElement();\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsemessageFormatElement() {\n var s0;\n\n s0 = peg$parsemessageTextElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n }\n\n return s0;\n }\n\n function peg$parsemessageText() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c3(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsews();\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsemessageTextElement() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c4(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseargument() {\n var s0, s1, s2;\n\n s0 = peg$parsenumber();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c7;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargument();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c10;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseelementFormat();\n if (s8 !== peg$FAILED) {\n s6 = [s6, s7, s8];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c9;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c12;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s7 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c14(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseelementFormat() {\n var s0;\n\n s0 = peg$parsesimpleFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectOrdinalFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectFormat();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsesimpleFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c15) {\n s1 = peg$c15;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c10;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsechars();\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c9;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c21(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c24(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectOrdinalFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 13) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 13;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c26); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c27(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c28) {\n s1 = peg$c28;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseoptionalFormatPattern();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseoptionalFormatPattern();\n }\n } else {\n s5 = peg$c2;\n }\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c30(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c31;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c32); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$parsechars();\n }\n\n return s0;\n }\n\n function peg$parseoptionalFormatPattern() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselector();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c7;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessageFormatPattern();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c12;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s8 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c33(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c34) {\n s1 = peg$c34;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c36(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralStyle() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseoffset();\n if (s1 === peg$FAILED) {\n s1 = peg$c9;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoptionalFormatPattern();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoptionalFormatPattern();\n }\n } else {\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c37(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsews() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = [];\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n }\n } else {\n s0 = peg$c2;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1, s2;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsews();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsews();\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c42.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n\n return s0;\n }\n\n function peg$parsehexDigit() {\n var s0;\n\n if (peg$c44.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c45); }\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c46;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c47); }\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n if (peg$c48.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c49); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsedigit();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsedigit();\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c50(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsechar() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c53) {\n s1 = peg$c53;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c55();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c56) {\n s1 = peg$c56;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c58();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c60); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c64();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c65) {\n s1 = peg$c65;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c66); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parsehexDigit();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehexDigit();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehexDigit();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehexDigit();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c67(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsechars() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsechar();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsechar();\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c68(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {extend, hop} from './utils';\nimport {defineProperty, objCreate} from './es5';\nimport Compiler from './compiler';\nimport parser from 'intl-messageformat-parser';\n\nexport default MessageFormat;\n\n// -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n // Parse string messages into an AST.\n var ast = typeof message === 'string' ?\n MessageFormat.__parse(message) : message;\n\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n formats = this._mergeFormats(MessageFormat.formats, formats);\n\n // Defined first because it's used to build the format pattern.\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n\n // Compile the `ast` to a pattern that is highly optimized for repeated\n // `format()` invocations. **Note:** This passes the `locales` set provided\n // to the constructor instead of just the resolved locale.\n var pluralFn = this._findPluralRuleFunction(this._locale);\n var pattern = this._compilePattern(ast, locales, formats, pluralFn);\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var messageFormat = this;\n this.format = function (values) {\n return messageFormat._format(pattern, values);\n };\n}\n\n// Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\ndefineProperty(MessageFormat, 'formats', {\n enumerable: true,\n\n value: {\n number: {\n 'currency': {\n style: 'currency'\n },\n\n 'percent': {\n style: 'percent'\n }\n },\n\n date: {\n 'short': {\n month: 'numeric',\n day : 'numeric',\n year : '2-digit'\n },\n\n 'medium': {\n month: 'short',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'long': {\n month: 'long',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'full': {\n weekday: 'long',\n month : 'long',\n day : 'numeric',\n year : 'numeric'\n }\n },\n\n time: {\n 'short': {\n hour : 'numeric',\n minute: 'numeric'\n },\n\n 'medium': {\n hour : 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n\n 'long': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n },\n\n 'full': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n }\n }\n }\n});\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(MessageFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(MessageFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlMessageFormat is missing a ' +\n '`locale` property'\n );\n }\n\n MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n}});\n\n// Defines `__parse()` static method as an exposed private.\ndefineProperty(MessageFormat, '__parse', {value: parser.parse});\n\n// Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\ndefineProperty(MessageFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n // TODO: Provide anything else?\n return {\n locale: this._locale\n };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n var compiler = new Compiler(locales, formats, pluralFn);\n return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n var localeData = MessageFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find a `pluralRuleFunction` to return.\n while (data) {\n if (data.pluralRuleFunction) {\n return data.pluralRuleFunction;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlMessageFormat is missing a ' +\n '`pluralRuleFunction` for :' + locale\n );\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n var result = '',\n i, len, part, id, value;\n\n for (i = 0, len = pattern.length; i < len; i += 1) {\n part = pattern[i];\n\n // Exist early for string parts.\n if (typeof part === 'string') {\n result += part;\n continue;\n }\n\n id = part.id;\n\n // Enforce that all required values are provided by the caller.\n if (!(values && hop.call(values, id))) {\n throw new Error('A value must be provided for: ' + id);\n }\n\n value = values[id];\n\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (part.options) {\n result += this._format(part.getOption(value), values);\n } else {\n result += part.format(value);\n }\n }\n\n return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n var mergedFormats = {},\n type, mergedType;\n\n for (type in defaults) {\n if (!hop.call(defaults, type)) { continue; }\n\n mergedFormats[type] = mergedType = objCreate(defaults[type]);\n\n if (formats && hop.call(formats, type)) {\n extend(mergedType, formats[type]);\n }\n }\n\n return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(MessageFormat.defaultLocale);\n\n var localeData = MessageFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlMessageFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"}};\n","/* jslint esnext: true */\n\nimport IntlMessageFormat from './core';\nimport defaultLocale from './en';\n\nIntlMessageFormat.__addLocaleData(defaultLocale);\nIntlMessageFormat.defaultLocale = 'en';\n\nexport default IntlMessageFormat;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nvar round = Math.round;\n\nfunction daysToYears(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n return days * 400 / 146097;\n}\n\nexport default function (from, to) {\n // Convert to ms timestamps.\n from = +from;\n to = +to;\n\n var millisecond = round(to - from),\n second = round(millisecond / 1000),\n minute = round(second / 60),\n hour = round(minute / 60),\n day = round(hour / 24),\n week = round(day / 7);\n\n var rawYears = daysToYears(day),\n month = round(rawYears * 12),\n year = round(rawYears);\n\n return {\n millisecond: millisecond,\n second : second,\n minute : minute,\n hour : hour,\n day : day,\n week : week,\n month : month,\n year : year\n };\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport {defineProperty, objCreate, arrIndexOf, isArray, dateNow};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nvar arrIndexOf = Array.prototype.indexOf || function (search, fromIndex) {\n /*jshint validthis:true */\n var arr = this;\n if (!arr.length) {\n return -1;\n }\n\n for (var i = fromIndex || 0, max = arr.length; i < max; i++) {\n if (arr[i] === search) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar isArray = Array.isArray || function (obj) {\n return toString.call(obj) === '[object Array]';\n};\n\nvar dateNow = Date.now || function () {\n return new Date().getTime();\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport diff from './diff';\nimport {\n defineProperty,\n objCreate,\n arrIndexOf,\n isArray,\n dateNow\n} from './es5';\n\nexport default RelativeFormat;\n\n// -----------------------------------------------------------------------------\n\nvar FIELDS = ['second', 'minute', 'hour', 'day', 'month', 'year'];\nvar STYLES = ['best fit', 'numeric'];\n\n// -- RelativeFormat -----------------------------------------------------------\n\nfunction RelativeFormat(locales, options) {\n options = options || {};\n\n // Make a copy of `locales` if it's an array, so that it doesn't change\n // since it's used lazily.\n if (isArray(locales)) {\n locales = locales.concat();\n }\n\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n defineProperty(this, '_options', {value: {\n style: this._resolveStyle(options.style),\n units: this._isValidUnits(options.units) && options.units\n }});\n\n defineProperty(this, '_locales', {value: locales});\n defineProperty(this, '_fields', {value: this._findFields(this._locale)});\n defineProperty(this, '_messages', {value: objCreate(null)});\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var relativeFormat = this;\n this.format = function format(date, options) {\n return relativeFormat._format(date, options);\n };\n}\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(RelativeFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(RelativeFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlRelativeFormat is missing a ' +\n '`locale` property value'\n );\n }\n\n RelativeFormat.__localeData__[data.locale.toLowerCase()] = data;\n\n // Add data to IntlMessageFormat.\n IntlMessageFormat.__addLocaleData(data);\n}});\n\n// Define public `defaultLocale` property which can be set by the developer, or\n// it will be set when the first RelativeFormat instance is created by\n// leveraging the resolved locale from `Intl`.\ndefineProperty(RelativeFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\n// Define public `thresholds` property which can be set by the developer, and\n// defaults to relative time thresholds from moment.js.\ndefineProperty(RelativeFormat, 'thresholds', {\n enumerable: true,\n\n value: {\n second: 45, // seconds to minute\n minute: 45, // minutes to hour\n hour : 22, // hours to day\n day : 26, // days to month\n month : 11 // months to year\n }\n});\n\nRelativeFormat.prototype.resolvedOptions = function () {\n return {\n locale: this._locale,\n style : this._options.style,\n units : this._options.units\n };\n};\n\nRelativeFormat.prototype._compileMessage = function (units) {\n // `this._locales` is the original set of locales the user specified to the\n // constructor, while `this._locale` is the resolved root locale.\n var locales = this._locales;\n var resolvedLocale = this._locale;\n\n var field = this._fields[units];\n var relativeTime = field.relativeTime;\n var future = '';\n var past = '';\n var i;\n\n for (i in relativeTime.future) {\n if (relativeTime.future.hasOwnProperty(i)) {\n future += ' ' + i + ' {' +\n relativeTime.future[i].replace('{0}', '#') + '}';\n }\n }\n\n for (i in relativeTime.past) {\n if (relativeTime.past.hasOwnProperty(i)) {\n past += ' ' + i + ' {' +\n relativeTime.past[i].replace('{0}', '#') + '}';\n }\n }\n\n var message = '{when, select, future {{0, plural, ' + future + '}}' +\n 'past {{0, plural, ' + past + '}}}';\n\n // Create the synthetic IntlMessageFormat instance using the original\n // locales value specified by the user when constructing the the parent\n // IntlRelativeFormat instance.\n return new IntlMessageFormat(message, locales);\n};\n\nRelativeFormat.prototype._getMessage = function (units) {\n var messages = this._messages;\n\n // Create a new synthetic message based on the locale data from CLDR.\n if (!messages[units]) {\n messages[units] = this._compileMessage(units);\n }\n\n return messages[units];\n};\n\nRelativeFormat.prototype._getRelativeUnits = function (diff, units) {\n var field = this._fields[units];\n\n if (field.relative) {\n return field.relative[diff];\n }\n};\n\nRelativeFormat.prototype._findFields = function (locale) {\n var localeData = RelativeFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find `fields` to return.\n while (data) {\n if (data.fields) {\n return data.fields;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlRelativeFormat is missing `fields` for :' +\n locale\n );\n};\n\nRelativeFormat.prototype._format = function (date, options) {\n var now = options && options.now !== undefined ? options.now : dateNow();\n\n if (date === undefined) {\n date = now;\n }\n\n // Determine if the `date` and optional `now` values are valid, and throw a\n // similar error to what `Intl.DateTimeFormat#format()` would throw.\n if (!isFinite(now)) {\n throw new RangeError(\n 'The `now` option provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n if (!isFinite(date)) {\n throw new RangeError(\n 'The date value provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n var diffReport = diff(now, date);\n var units = this._options.units || this._selectUnits(diffReport);\n var diffInUnits = diffReport[units];\n\n if (this._options.style !== 'numeric') {\n var relativeUnits = this._getRelativeUnits(diffInUnits, units);\n if (relativeUnits) {\n return relativeUnits;\n }\n }\n\n return this._getMessage(units).format({\n '0' : Math.abs(diffInUnits),\n when: diffInUnits < 0 ? 'past' : 'future'\n });\n};\n\nRelativeFormat.prototype._isValidUnits = function (units) {\n if (!units || arrIndexOf.call(FIELDS, units) >= 0) {\n return true;\n }\n\n if (typeof units === 'string') {\n var suggestion = /s$/.test(units) && units.substr(0, units.length - 1);\n if (suggestion && arrIndexOf.call(FIELDS, suggestion) >= 0) {\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` ' +\n 'value, did you mean: ' + suggestion\n );\n }\n }\n\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` value, it ' +\n 'must be one of: \"' + FIELDS.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(RelativeFormat.defaultLocale);\n\n var localeData = RelativeFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlRelativeFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n\nRelativeFormat.prototype._resolveStyle = function (style) {\n // Default to \"best fit\" style.\n if (!style) {\n return STYLES[0];\n }\n\n if (arrIndexOf.call(STYLES, style) >= 0) {\n return style;\n }\n\n throw new Error(\n '\"' + style + '\" is not a valid IntlRelativeFormat `style` value, it ' +\n 'must be one of: \"' + STYLES.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._selectUnits = function (diffReport) {\n var i, l, units;\n\n for (i = 0, l = FIELDS.length; i < l; i += 1) {\n units = FIELDS[i];\n\n if (Math.abs(diffReport[units]) < RelativeFormat.thresholds[units]) {\n break;\n }\n }\n\n return units;\n};\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}}}};\n","/* jslint esnext: true */\n\nimport IntlRelativeFormat from './core';\nimport defaultLocale from './en';\n\nIntlRelativeFormat.__addLocaleData(defaultLocale);\nIntlRelativeFormat.defaultLocale = 'en';\n\nexport default IntlRelativeFormat;\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nexport function addLocaleData(data = []) {\n let locales = Array.isArray(data) ? data : [data];\n\n locales.forEach((localeData) => {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nexport function hasLocaleData(locale) {\n let localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n let normalizedLocale = locale && locale.toLowerCase();\n\n return !!(\n IntlMessageFormat.__localeData__[normalizedLocale] &&\n IntlRelativeFormat.__localeData__[normalizedLocale]\n );\n}\n\nexport function registerMessages(Vue, locale, messages) {\n Vue.__allMessages = Vue.__allMessages || {};\n Vue.__allMessages[locale] = Vue.__allMessages[locale] || {};\n Object.assign(Vue.__allMessages[locale], messages);\n}\n\nexport function registerFormats(Vue, locale, formats) {\n Vue.__allFormats = Vue.__allFormats || {};\n Vue.__allFormats[locale] = Vue.__allFormats[locale] || {};\n Object.assign(Vue.__allFormats[locale], formats);\n}\n","export default function setLocale(Vue, locale) {\n Vue.set(Vue, 'locale', locale);\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n Vue.__format_config.formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n Vue.__format_config.messages = (Vue.__allMessages || {})[locale] || {};\n}\n","export default function getLocaleData(Vue) {\n const locale = Vue.locale;\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n const formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n const messages = (Vue.__allMessages || {})[locale] || {};\n return {\n formats,\n messages,\n defaultLocale: Vue.__format_config.defaultLocale,\n defaultFormats: Vue.__format_config.defaultFormats\n };\n}\n","/*\n * This file is an unmodified copy of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nimport IntlMessageFormat from 'intl-messageformat';\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nexport default class IntlPluralFormat {\n constructor(locales, options = {}) {\n let useOrdinal = options.style === 'ordinal';\n let pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = (value) => pluralFn(value, useOrdinal);\n }\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n// Function.prototype.bind implementation from Mozilla Developer Network:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill\n\nvar bind = Function.prototype.bind || function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexport {bind, defineProperty, objCreate};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jshint esnext: true */\n\nimport {bind, objCreate} from './es5';\n\nexport default createFormatCache;\n\n// -----------------------------------------------------------------------------\n\nfunction createFormatCache(FormatConstructor) {\n var cache = objCreate(null);\n\n return function () {\n var args = Array.prototype.slice.call(arguments);\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n\n if (!format) {\n format = new (bind.apply(FormatConstructor, [null].concat(args)))();\n\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n\n return format;\n };\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction getCacheId(inputs) {\n // When JSON is not available in the runtime, we will not create a cache id.\n if (typeof JSON === 'undefined') { return; }\n\n var cacheId = [];\n\n var i, len, input;\n\n for (i = 0, len = inputs.length; i < len; i += 1) {\n input = inputs[i];\n\n if (input && typeof input === 'object') {\n cacheId.push(orderedProps(input));\n } else {\n cacheId.push(input);\n }\n }\n\n return JSON.stringify(cacheId);\n}\n\nfunction orderedProps(obj) {\n var props = [],\n keys = [];\n\n var key, i, len, prop;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n\n var orderedKeys = keys.sort();\n\n for (i = 0, len = orderedKeys.length; i < len; i += 1) {\n key = orderedKeys[i];\n prop = {};\n\n prop[key] = obj[key];\n props[i] = prop;\n }\n\n return props;\n}\n","import IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport IntlPluralFormat from './plural';\nimport memoizeIntlConstructor from 'intl-format-cache';\n\nconst state = {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat : memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat : memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat : memoizeIntlConstructor(IntlPluralFormat),\n now: Date.now()\n};\n\nexport default state;\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst bool = { type : Boolean },\n number = { type : Number },\n string = { type : String },\n object = { type : Object },\n oneOf = function(array) {\n return {validator: function(value) {\n return array.indexOf(value) > -1;\n }};\n };\n\nexport const intlConfigPropTypes = {\n locale : string,\n formats : object,\n messages: object,\n\n defaultLocale : string,\n defaultFormats: object\n};\n\nexport const dateTimeFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12 : bool,\n\n weekday : oneOf(['narrow', 'short', 'long']),\n era : oneOf(['narrow', 'short', 'long']),\n year : oneOf(['numeric', '2-digit']),\n month : oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day : oneOf(['numeric', '2-digit']),\n hour : oneOf(['numeric', '2-digit']),\n minute : oneOf(['numeric', '2-digit']),\n second : oneOf(['numeric', '2-digit']),\n timeZoneName: oneOf(['short', 'long'])\n};\n\nexport const numberFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n\n style : oneOf(['decimal', 'currency', 'percent']),\n currency : string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping : bool,\n\n minimumIntegerDigits : number,\n minimumFractionDigits : number,\n maximumFractionDigits : number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nexport const relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nexport const pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nconst ESCAPED_CHARS = {\n '&' : '&',\n '>' : '>',\n '<' : '<',\n '\"' : '"',\n '\\'': '''\n};\n\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, (match) => ESCAPED_CHARS[match]);\n}\n\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults.hasOwnProperty(name)) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nimport {\n dateTimeFormatPropTypes,\n numberFormatPropTypes,\n relativeFormatPropTypes,\n pluralFormatPropTypes\n} from './types';\n\nimport {\n escape,\n filterProps\n} from './utils';\n\nconst DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nconst NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nconst RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nconst PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nconst RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour : 24, // hours to day\n day : 30, // days to month\n month : 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n const {thresholds} = IntlRelativeFormat;\n ({\n second: thresholds.second,\n minute: thresholds.minute,\n hour : thresholds.hour,\n day : thresholds.day,\n month : thresholds.month\n } = newThresholds);\n}\n\nfunction getNamedFormat(formats, type, name) {\n let format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] No ${type} format named: ${name}`\n );\n }\n}\n\nexport function formatDate(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'date', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting date.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatTime(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'time', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n // When no formatting options have been specified, default to outputting a\n // time; e.g.: \"9:42 AM\".\n if (Object.keys(filteredOptions).length === 0) {\n filteredOptions = {\n hour : 'numeric',\n minute: 'numeric'\n };\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting time.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatRelative(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let now = new Date(options.now);\n let defaults = format && getNamedFormat(formats, 'relative', format);\n let filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n const oldThresholds = Object.assign({}, IntlRelativeFormat.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting relative time.\\n${e}`\n );\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nexport function formatNumber(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let defaults = format && getNamedFormat(formats, 'number', format);\n let filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting number.\\n${e}`\n );\n }\n }\n\n return String(value);\n}\n\nexport function formatPlural(config, state, value, options = {}) {\n const {locale} = config;\n\n let filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting plural.\\n${e}`\n );\n }\n }\n\n return 'other';\n}\n\nexport function formatMessage(config, state, messageDescriptor = {}, values = {}) {\n const {\n locale,\n formats,\n messages,\n defaultLocale,\n defaultFormats\n } = config;\n\n const {\n id,\n defaultMessage\n } = messageDescriptor;\n\n // `id` is a required field of a Message Descriptor.\n if (!id) {\n throw new TypeError('[Vue Intl] An `id` must be provided to format a message.');\n }\n\n const message = messages && messages[id];\n const hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n let formattedMessage;\n\n if (message) {\n try {\n let formatter = state.getMessageFormat(\n message, locale, formats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '') +\n `\\n${e}`\n );\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n\n console.error(\n `[Vue Intl] Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')\n );\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n let formatter = state.getMessageFormat(\n defaultMessage, defaultLocale, defaultFormats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting the default message for: \"${id}\"` +\n `\\n${e}`\n );\n }\n }\n }\n\n if (!formattedMessage) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`\n );\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nexport function formatHTMLMessage(config, state, messageDescriptor, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n let escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n let value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","const format = (ctx, values) => ctx.parent.$formatMessage(ctx.props, values)\nconst placeholder = (name) => `@\\0@\\0${name}\\0@\\0@`\nconst placeholderRegex = /@\\0@\\0(.*?)\\0@\\0@/g\n\nexport default {\n functional: true,\n\n props: {\n id: {type: String, required: true},\n defaultMessage: String,\n values: Object,\n tagName: {type: String, default: 'span'}\n },\n\n render (h, ctx) {\n const slots = ctx.slots()\n const slotNames = Object.keys(slots)\n if (slotNames.length === 0) {\n return h(ctx.props.tagName, ctx.data, format(ctx, ctx.props.values))\n }\n\n const values = Object.assign({}, ctx.props.values)\n slotNames.forEach(slot => {\n values[slot] = placeholder(slot)\n })\n\n const message = format(ctx, values)\n\n let match;\n let pos = 0;\n const children = []\n while ((match = placeholderRegex.exec(message)) !== null) {\n children.push(message.substring(pos, match.index), slots[match[1]])\n pos = match.index + match[0].length\n }\n children.push(message.substring(pos))\n return h(ctx.props.tagName, ctx.data, children)\n }\n}\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"year-short\":{\"displayName\":\"yr.\",\"relative\":{\"0\":\"this yr.\",\"1\":\"next yr.\",\"-1\":\"last yr.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yr.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yr. ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"month-short\":{\"displayName\":\"mo.\",\"relative\":{\"0\":\"this mo.\",\"1\":\"next mo.\",\"-1\":\"last mo.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"day-short\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"hour-short\":{\"displayName\":\"hr.\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hr.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hr. ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"minute-short\":{\"displayName\":\"min.\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} min.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} min. ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}},\"second-short\":{\"displayName\":\"sec.\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} sec.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} sec. ago\"}}}}};\n","import {addLocaleData, registerMessages, registerFormats} from './localeData';\nimport setLocale from './setLocale';\nimport getLocaleData from './getLocaleData';\nimport state from './state';\nimport * as formatMethods from './format';\nimport FormattedMessage from './FormattedMessage'\nimport defaultLocaleData from './en';\n\naddLocaleData(defaultLocaleData);\n\n\nfunction install(Vue, options={}) {\n Vue.addLocaleData = addLocaleData;\n Vue.registerMessages = registerMessages.bind(null, Vue);\n Vue.registerFormats = registerFormats.bind(null, Vue);\n Vue.setLocale = setLocale.bind(null, Vue);\n Vue.__format_state = state;\n Vue.__format_config = {\n defaultLocale: options.defaultLocale || 'en',\n defaultFormats: options.defaultFormats || {}\n };\n\n for (let key of Object.getOwnPropertyNames(formatMethods).filter((name) => {\n return formatMethods[name] instanceof Function;\n })) {\n Vue.prototype[`\\$${key}`] = function(...args) {\n let config = {locale: Vue.locale};\n Object.assign(config, getLocaleData(Vue));\n const state = Vue.__format_state;\n return formatMethods[key](config, state, ...args);\n }\n }\n};\n\nexport default {\n addLocaleData,\n FormattedMessage,\n install,\n}\n"],"names":["hop","Object","prototype","hasOwnProperty","extend","obj","sources","Array","slice","call","arguments","i","len","source","key","length","realDefineProp","defineProperty","e","name","desc","__defineGetter__","get","value","objCreate","create","proto","props","k","F","Compiler","locales","formats","pluralFn","compile","ast","pluralStack","currentPlural","pluralNumberFormat","compileMessage","type","Error","elements","pattern","element","push","compileMessageText","compileArgument","test","Intl","NumberFormat","PluralOffsetString","id","format","offset","replace","StringFormat","options","number","style","date","DateTimeFormat","time","compileOptions","PluralFormat","ordinal","SelectFormat","optionsHash","option","selector","pop","String","useOrdinal","getOption","other","numberFormat","string","peg$subclass","child","parent","ctor","constructor","SyntaxError","message","expected","found","line","column","parse","input","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c0","peg$c1","peg$c2","peg$c3","text","j","outerLen","inner","innerLen","peg$c4","messageText","peg$c5","peg$c6","description","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$c22","peg$c23","peg$c24","pluralStyle","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","digits","parseInt","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","fromCharCode","peg$c68","chars","join","peg$currPos","peg$reportedPos","peg$cachedPos","peg$cachedPosDetails","seenCR","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","peg$result","startRule","peg$computePosDetails","pos","advance","details","startPos","endPos","p","ch","charAt","peg$fail","peg$buildException","cleanupExpected","sort","a","b","splice","buildMessage","stringEscape","s","hex","charCodeAt","toString","toUpperCase","expectedDescs","expectedDesc","foundDesc","posDetails","s0","peg$parsemessageFormatPattern","s1","s2","peg$parsemessageFormatElement","peg$parsemessageTextElement","peg$parseargumentElement","peg$parsemessageText","s3","s4","s5","peg$parse_","peg$parsechars","peg$parsews","substring","peg$parseargument","peg$parsenumber","s6","s7","s8","peg$parseelementFormat","peg$parsesimpleFormat","peg$parsepluralFormat","peg$parseselectOrdinalFormat","peg$parseselectFormat","substr","peg$parsepluralStyle","peg$parseoptionalFormatPattern","peg$parseselector","peg$parseoffset","peg$parsedigit","peg$parsehexDigit","peg$parsechar","MessageFormat","__parse","TypeError","_mergeFormats","_resolveLocale","_findPluralRuleFunction","_locale","_compilePattern","messageFormat","values","_format","data","locale","__localeData__","toLowerCase","parser","undefined","resolvedOptions","compiler","localeData","pluralRuleFunction","parentLocale","result","part","defaults","mergedFormats","mergedType","concat","defaultLocale","localeParts","split","n","ord","v0","t0","Number","n10","n100","IntlMessageFormat","__addLocaleData","round","Math","daysToYears","days","from","to","millisecond","second","minute","hour","day","week","rawYears","month","year","arrIndexOf","indexOf","search","fromIndex","arr","max","isArray","dateNow","Date","now","getTime","FIELDS","STYLES","RelativeFormat","_resolveStyle","_isValidUnits","units","_findFields","relativeFormat","_options","_compileMessage","_locales","field","_fields","relativeTime","future","past","_getMessage","messages","_messages","_getRelativeUnits","diff","relative","fields","isFinite","RangeError","diffReport","_selectUnits","diffInUnits","relativeUnits","abs","suggestion","l","thresholds","IntlRelativeFormat","addLocaleData","forEach","registerMessages","Vue","__allMessages","assign","registerFormats","__allFormats","setLocale","set","format_data","getOwnPropertyNames","__format_config","defaultFormats","getLocaleData","resolveLocale","findPluralFunction","IntlPluralFormat","bind","Function","oThis","aArgs","fToBind","fNOP","fBound","apply","createFormatCache","FormatConstructor","cache","args","cacheId","getCacheId","inputs","JSON","orderedProps","stringify","keys","prop","orderedKeys","state","memoizeIntlConstructor","bool","Boolean","oneOf","array","validator","dateTimeFormatPropTypes","numberFormatPropTypes","relativeFormatPropTypes","pluralFormatPropTypes","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","escape","str","match","filterProps","whitelist","reduce","filtered","DATE_TIME_FORMAT_OPTIONS","NUMBER_FORMAT_OPTIONS","RELATIVE_FORMAT_OPTIONS","PLURAL_FORMAT_OPTIONS","RELATIVE_FORMAT_THRESHOLDS","updateRelativeFormatThresholds","newThresholds","getNamedFormat","error","formatDate","config","filteredOptions","getDateTimeFormat","formatTime","formatRelative","oldThresholds","getRelativeFormat","formatNumber","getNumberFormat","formatPlural","getPluralFormat","formatMessage","messageDescriptor","defaultMessage","hasValues","process","formattedMessage","formatter","getMessageFormat","formatHTMLMessage","rawValues","escapedValues","escaped","ctx","$formatMessage","placeholder","placeholderRegex","required","h","slots","slotNames","tagName","slot","children","exec","index","defaultLocaleData","install","__format_state","formatMethods","filter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-intl.js","sources":["../node_modules/intl-messageformat/src/utils.js","../node_modules/intl-messageformat/src/es5.js","../node_modules/intl-messageformat/src/compiler.js","../node_modules/intl-messageformat-parser/src/parser.js","../node_modules/intl-messageformat/src/core.js","../node_modules/intl-messageformat/src/en.js","../node_modules/intl-messageformat/src/main.js","../node_modules/intl-relativeformat/src/diff.js","../node_modules/intl-relativeformat/src/es5.js","../node_modules/intl-relativeformat/src/core.js","../node_modules/intl-relativeformat/src/en.js","../node_modules/intl-relativeformat/src/main.js","../src/localeData.js","../src/setLocale.js","../src/getLocaleData.js","../src/plural.js","../node_modules/intl-format-cache/src/es5.js","../node_modules/intl-format-cache/src/memoizer.js","../src/state.js","../src/types.js","../src/utils.js","../src/format.js","../src/FormattedMessage.js","../src/en.js","../src/vue-intl.js"],"sourcesContent":["/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport var hop = Object.prototype.hasOwnProperty;\n\nexport function extend(obj) {\n var sources = Array.prototype.slice.call(arguments, 1),\n i, len, source, key;\n\n for (i = 0, len = sources.length; i < len; i += 1) {\n source = sources[i];\n if (!source) { continue; }\n\n for (key in source) {\n if (hop.call(source, key)) {\n obj[key] = source[key];\n }\n }\n }\n\n return obj;\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {hop} from './utils';\n\nexport {defineProperty, objCreate};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport default Compiler;\n\nfunction Compiler(locales, formats, pluralFn) {\n this.locales = locales;\n this.formats = formats;\n this.pluralFn = pluralFn;\n}\n\nCompiler.prototype.compile = function (ast) {\n this.pluralStack = [];\n this.currentPlural = null;\n this.pluralNumberFormat = null;\n\n return this.compileMessage(ast);\n};\n\nCompiler.prototype.compileMessage = function (ast) {\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new Error('Message AST is not of type: \"messageFormatPattern\"');\n }\n\n var elements = ast.elements,\n pattern = [];\n\n var i, len, element;\n\n for (i = 0, len = elements.length; i < len; i += 1) {\n element = elements[i];\n\n switch (element.type) {\n case 'messageTextElement':\n pattern.push(this.compileMessageText(element));\n break;\n\n case 'argumentElement':\n pattern.push(this.compileArgument(element));\n break;\n\n default:\n throw new Error('Message element does not have a valid type');\n }\n }\n\n return pattern;\n};\n\nCompiler.prototype.compileMessageText = function (element) {\n // When this `element` is part of plural sub-pattern and its value contains\n // an unescaped '#', use a `PluralOffsetString` helper to properly output\n // the number with the correct offset in the string.\n if (this.currentPlural && /(^|[^\\\\])#/g.test(element.value)) {\n // Create a cache a NumberFormat instance that can be reused for any\n // PluralOffsetString instance in this message.\n if (!this.pluralNumberFormat) {\n this.pluralNumberFormat = new Intl.NumberFormat(this.locales);\n }\n\n return new PluralOffsetString(\n this.currentPlural.id,\n this.currentPlural.format.offset,\n this.pluralNumberFormat,\n element.value);\n }\n\n // Unescape the escaped '#'s in the message text.\n return element.value.replace(/\\\\#/g, '#');\n};\n\nCompiler.prototype.compileArgument = function (element) {\n var format = element.format;\n\n if (!format) {\n return new StringFormat(element.id);\n }\n\n var formats = this.formats,\n locales = this.locales,\n pluralFn = this.pluralFn,\n options;\n\n switch (format.type) {\n case 'numberFormat':\n options = formats.number[format.style];\n return {\n id : element.id,\n format: new Intl.NumberFormat(locales, options).format\n };\n\n case 'dateFormat':\n options = formats.date[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'timeFormat':\n options = formats.time[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'pluralFormat':\n options = this.compileOptions(element);\n return new PluralFormat(\n element.id, format.ordinal, format.offset, options, pluralFn\n );\n\n case 'selectFormat':\n options = this.compileOptions(element);\n return new SelectFormat(element.id, options);\n\n default:\n throw new Error('Message element does not have a valid format type');\n }\n};\n\nCompiler.prototype.compileOptions = function (element) {\n var format = element.format,\n options = format.options,\n optionsHash = {};\n\n // Save the current plural element, if any, then set it to a new value when\n // compiling the options sub-patterns. This conforms the spec's algorithm\n // for handling `\"#\"` syntax in message text.\n this.pluralStack.push(this.currentPlural);\n this.currentPlural = format.type === 'pluralFormat' ? element : null;\n\n var i, len, option;\n\n for (i = 0, len = options.length; i < len; i += 1) {\n option = options[i];\n\n // Compile the sub-pattern and save it under the options's selector.\n optionsHash[option.selector] = this.compileMessage(option.value);\n }\n\n // Pop the plural stack to put back the original current plural value.\n this.currentPlural = this.pluralStack.pop();\n\n return optionsHash;\n};\n\n// -- Compiler Helper Classes --------------------------------------------------\n\nfunction StringFormat(id) {\n this.id = id;\n}\n\nStringFormat.prototype.format = function (value) {\n if (!value) {\n return '';\n }\n\n return typeof value === 'string' ? value : String(value);\n};\n\nfunction PluralFormat(id, useOrdinal, offset, options, pluralFn) {\n this.id = id;\n this.useOrdinal = useOrdinal;\n this.offset = offset;\n this.options = options;\n this.pluralFn = pluralFn;\n}\n\nPluralFormat.prototype.getOption = function (value) {\n var options = this.options;\n\n var option = options['=' + value] ||\n options[this.pluralFn(value - this.offset, this.useOrdinal)];\n\n return option || options.other;\n};\n\nfunction PluralOffsetString(id, offset, numberFormat, string) {\n this.id = id;\n this.offset = offset;\n this.numberFormat = numberFormat;\n this.string = string;\n}\n\nPluralOffsetString.prototype.format = function (value) {\n var number = this.numberFormat.format(value - this.offset);\n\n return this.string\n .replace(/(^|[^\\\\])#/g, '$1' + number)\n .replace(/\\\\#/g, '#');\n};\n\nfunction SelectFormat(id, options) {\n this.id = id;\n this.options = options;\n}\n\nSelectFormat.prototype.getOption = function (value) {\n var options = this.options;\n return options[value] || options.other;\n};\n","export default (function() {\n /*\n * Generated by PEG.js 0.8.0.\n *\n * http://pegjs.majda.cz/\n */\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function SyntaxError(message, expected, found, offset, line, column) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.offset = offset;\n this.line = line;\n this.column = column;\n\n this.name = \"SyntaxError\";\n }\n\n peg$subclass(SyntaxError, Error);\n\n function parse(input) {\n var options = arguments.length > 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = [],\n peg$c1 = function(elements) {\n return {\n type : 'messageFormatPattern',\n elements: elements\n };\n },\n peg$c2 = peg$FAILED,\n peg$c3 = function(text) {\n var string = '',\n i, j, outerLen, inner, innerLen;\n\n for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n inner = text[i];\n\n for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n string += inner[j];\n }\n }\n\n return string;\n },\n peg$c4 = function(messageText) {\n return {\n type : 'messageTextElement',\n value: messageText\n };\n },\n peg$c5 = /^[^ \\t\\n\\r,.+={}#]/,\n peg$c6 = { type: \"class\", value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\", description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\" },\n peg$c7 = \"{\",\n peg$c8 = { type: \"literal\", value: \"{\", description: \"\\\"{\\\"\" },\n peg$c9 = null,\n peg$c10 = \",\",\n peg$c11 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c12 = \"}\",\n peg$c13 = { type: \"literal\", value: \"}\", description: \"\\\"}\\\"\" },\n peg$c14 = function(id, format) {\n return {\n type : 'argumentElement',\n id : id,\n format: format && format[2]\n };\n },\n peg$c15 = \"number\",\n peg$c16 = { type: \"literal\", value: \"number\", description: \"\\\"number\\\"\" },\n peg$c17 = \"date\",\n peg$c18 = { type: \"literal\", value: \"date\", description: \"\\\"date\\\"\" },\n peg$c19 = \"time\",\n peg$c20 = { type: \"literal\", value: \"time\", description: \"\\\"time\\\"\" },\n peg$c21 = function(type, style) {\n return {\n type : type + 'Format',\n style: style && style[2]\n };\n },\n peg$c22 = \"plural\",\n peg$c23 = { type: \"literal\", value: \"plural\", description: \"\\\"plural\\\"\" },\n peg$c24 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: false,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n };\n },\n peg$c25 = \"selectordinal\",\n peg$c26 = { type: \"literal\", value: \"selectordinal\", description: \"\\\"selectordinal\\\"\" },\n peg$c27 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: true,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n }\n },\n peg$c28 = \"select\",\n peg$c29 = { type: \"literal\", value: \"select\", description: \"\\\"select\\\"\" },\n peg$c30 = function(options) {\n return {\n type : 'selectFormat',\n options: options\n };\n },\n peg$c31 = \"=\",\n peg$c32 = { type: \"literal\", value: \"=\", description: \"\\\"=\\\"\" },\n peg$c33 = function(selector, pattern) {\n return {\n type : 'optionalFormatPattern',\n selector: selector,\n value : pattern\n };\n },\n peg$c34 = \"offset:\",\n peg$c35 = { type: \"literal\", value: \"offset:\", description: \"\\\"offset:\\\"\" },\n peg$c36 = function(number) {\n return number;\n },\n peg$c37 = function(offset, options) {\n return {\n type : 'pluralFormat',\n offset : offset,\n options: options\n };\n },\n peg$c38 = { type: \"other\", description: \"whitespace\" },\n peg$c39 = /^[ \\t\\n\\r]/,\n peg$c40 = { type: \"class\", value: \"[ \\\\t\\\\n\\\\r]\", description: \"[ \\\\t\\\\n\\\\r]\" },\n peg$c41 = { type: \"other\", description: \"optionalWhitespace\" },\n peg$c42 = /^[0-9]/,\n peg$c43 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c44 = /^[0-9a-f]/i,\n peg$c45 = { type: \"class\", value: \"[0-9a-f]i\", description: \"[0-9a-f]i\" },\n peg$c46 = \"0\",\n peg$c47 = { type: \"literal\", value: \"0\", description: \"\\\"0\\\"\" },\n peg$c48 = /^[1-9]/,\n peg$c49 = { type: \"class\", value: \"[1-9]\", description: \"[1-9]\" },\n peg$c50 = function(digits) {\n return parseInt(digits, 10);\n },\n peg$c51 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n peg$c52 = { type: \"class\", value: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\", description: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\" },\n peg$c53 = \"\\\\\\\\\",\n peg$c54 = { type: \"literal\", value: \"\\\\\\\\\", description: \"\\\"\\\\\\\\\\\\\\\\\\\"\" },\n peg$c55 = function() { return '\\\\'; },\n peg$c56 = \"\\\\#\",\n peg$c57 = { type: \"literal\", value: \"\\\\#\", description: \"\\\"\\\\\\\\#\\\"\" },\n peg$c58 = function() { return '\\\\#'; },\n peg$c59 = \"\\\\{\",\n peg$c60 = { type: \"literal\", value: \"\\\\{\", description: \"\\\"\\\\\\\\{\\\"\" },\n peg$c61 = function() { return '\\u007B'; },\n peg$c62 = \"\\\\}\",\n peg$c63 = { type: \"literal\", value: \"\\\\}\", description: \"\\\"\\\\\\\\}\\\"\" },\n peg$c64 = function() { return '\\u007D'; },\n peg$c65 = \"\\\\u\",\n peg$c66 = { type: \"literal\", value: \"\\\\u\", description: \"\\\"\\\\\\\\u\\\"\" },\n peg$c67 = function(digits) {\n return String.fromCharCode(parseInt(digits, 16));\n },\n peg$c68 = function(chars) { return chars.join(''); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsestart() {\n var s0;\n\n s0 = peg$parsemessageFormatPattern();\n\n return s0;\n }\n\n function peg$parsemessageFormatPattern() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemessageFormatElement();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemessageFormatElement();\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsemessageFormatElement() {\n var s0;\n\n s0 = peg$parsemessageTextElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n }\n\n return s0;\n }\n\n function peg$parsemessageText() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c3(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsews();\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsemessageTextElement() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c4(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseargument() {\n var s0, s1, s2;\n\n s0 = peg$parsenumber();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c7;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargument();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c10;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseelementFormat();\n if (s8 !== peg$FAILED) {\n s6 = [s6, s7, s8];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c9;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c12;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s7 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c14(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseelementFormat() {\n var s0;\n\n s0 = peg$parsesimpleFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectOrdinalFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectFormat();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsesimpleFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c15) {\n s1 = peg$c15;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c10;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsechars();\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c9;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c21(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c24(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectOrdinalFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 13) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 13;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c26); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c27(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c28) {\n s1 = peg$c28;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseoptionalFormatPattern();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseoptionalFormatPattern();\n }\n } else {\n s5 = peg$c2;\n }\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c30(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c31;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c32); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$parsechars();\n }\n\n return s0;\n }\n\n function peg$parseoptionalFormatPattern() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselector();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c7;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessageFormatPattern();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c12;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s8 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c33(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c34) {\n s1 = peg$c34;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c36(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralStyle() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseoffset();\n if (s1 === peg$FAILED) {\n s1 = peg$c9;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoptionalFormatPattern();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoptionalFormatPattern();\n }\n } else {\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c37(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsews() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = [];\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n }\n } else {\n s0 = peg$c2;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1, s2;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsews();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsews();\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c42.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n\n return s0;\n }\n\n function peg$parsehexDigit() {\n var s0;\n\n if (peg$c44.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c45); }\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c46;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c47); }\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n if (peg$c48.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c49); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsedigit();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsedigit();\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c50(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsechar() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c53) {\n s1 = peg$c53;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c55();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c56) {\n s1 = peg$c56;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c58();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c60); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c64();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c65) {\n s1 = peg$c65;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c66); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parsehexDigit();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehexDigit();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehexDigit();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehexDigit();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c67(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsechars() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsechar();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsechar();\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c68(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {extend, hop} from './utils';\nimport {defineProperty, objCreate} from './es5';\nimport Compiler from './compiler';\nimport parser from 'intl-messageformat-parser';\n\nexport default MessageFormat;\n\n// -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n // Parse string messages into an AST.\n var ast = typeof message === 'string' ?\n MessageFormat.__parse(message) : message;\n\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n formats = this._mergeFormats(MessageFormat.formats, formats);\n\n // Defined first because it's used to build the format pattern.\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n\n // Compile the `ast` to a pattern that is highly optimized for repeated\n // `format()` invocations. **Note:** This passes the `locales` set provided\n // to the constructor instead of just the resolved locale.\n var pluralFn = this._findPluralRuleFunction(this._locale);\n var pattern = this._compilePattern(ast, locales, formats, pluralFn);\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var messageFormat = this;\n this.format = function (values) {\n return messageFormat._format(pattern, values);\n };\n}\n\n// Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\ndefineProperty(MessageFormat, 'formats', {\n enumerable: true,\n\n value: {\n number: {\n 'currency': {\n style: 'currency'\n },\n\n 'percent': {\n style: 'percent'\n }\n },\n\n date: {\n 'short': {\n month: 'numeric',\n day : 'numeric',\n year : '2-digit'\n },\n\n 'medium': {\n month: 'short',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'long': {\n month: 'long',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'full': {\n weekday: 'long',\n month : 'long',\n day : 'numeric',\n year : 'numeric'\n }\n },\n\n time: {\n 'short': {\n hour : 'numeric',\n minute: 'numeric'\n },\n\n 'medium': {\n hour : 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n\n 'long': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n },\n\n 'full': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n }\n }\n }\n});\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(MessageFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(MessageFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlMessageFormat is missing a ' +\n '`locale` property'\n );\n }\n\n MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n}});\n\n// Defines `__parse()` static method as an exposed private.\ndefineProperty(MessageFormat, '__parse', {value: parser.parse});\n\n// Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\ndefineProperty(MessageFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n // TODO: Provide anything else?\n return {\n locale: this._locale\n };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n var compiler = new Compiler(locales, formats, pluralFn);\n return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n var localeData = MessageFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find a `pluralRuleFunction` to return.\n while (data) {\n if (data.pluralRuleFunction) {\n return data.pluralRuleFunction;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlMessageFormat is missing a ' +\n '`pluralRuleFunction` for :' + locale\n );\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n var result = '',\n i, len, part, id, value;\n\n for (i = 0, len = pattern.length; i < len; i += 1) {\n part = pattern[i];\n\n // Exist early for string parts.\n if (typeof part === 'string') {\n result += part;\n continue;\n }\n\n id = part.id;\n\n // Enforce that all required values are provided by the caller.\n if (!(values && hop.call(values, id))) {\n throw new Error('A value must be provided for: ' + id);\n }\n\n value = values[id];\n\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (part.options) {\n result += this._format(part.getOption(value), values);\n } else {\n result += part.format(value);\n }\n }\n\n return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n var mergedFormats = {},\n type, mergedType;\n\n for (type in defaults) {\n if (!hop.call(defaults, type)) { continue; }\n\n mergedFormats[type] = mergedType = objCreate(defaults[type]);\n\n if (formats && hop.call(formats, type)) {\n extend(mergedType, formats[type]);\n }\n }\n\n return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(MessageFormat.defaultLocale);\n\n var localeData = MessageFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlMessageFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"}};\n","/* jslint esnext: true */\n\nimport IntlMessageFormat from './core';\nimport defaultLocale from './en';\n\nIntlMessageFormat.__addLocaleData(defaultLocale);\nIntlMessageFormat.defaultLocale = 'en';\n\nexport default IntlMessageFormat;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nvar round = Math.round;\n\nfunction daysToYears(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n return days * 400 / 146097;\n}\n\nexport default function (from, to) {\n // Convert to ms timestamps.\n from = +from;\n to = +to;\n\n var millisecond = round(to - from),\n second = round(millisecond / 1000),\n minute = round(second / 60),\n hour = round(minute / 60),\n day = round(hour / 24),\n week = round(day / 7);\n\n var rawYears = daysToYears(day),\n month = round(rawYears * 12),\n year = round(rawYears);\n\n return {\n millisecond: millisecond,\n second : second,\n minute : minute,\n hour : hour,\n day : day,\n week : week,\n month : month,\n year : year\n };\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport {defineProperty, objCreate, arrIndexOf, isArray, dateNow};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nvar arrIndexOf = Array.prototype.indexOf || function (search, fromIndex) {\n /*jshint validthis:true */\n var arr = this;\n if (!arr.length) {\n return -1;\n }\n\n for (var i = fromIndex || 0, max = arr.length; i < max; i++) {\n if (arr[i] === search) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar isArray = Array.isArray || function (obj) {\n return toString.call(obj) === '[object Array]';\n};\n\nvar dateNow = Date.now || function () {\n return new Date().getTime();\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport diff from './diff';\nimport {\n defineProperty,\n objCreate,\n arrIndexOf,\n isArray,\n dateNow\n} from './es5';\n\nexport default RelativeFormat;\n\n// -----------------------------------------------------------------------------\n\nvar FIELDS = ['second', 'minute', 'hour', 'day', 'month', 'year'];\nvar STYLES = ['best fit', 'numeric'];\n\n// -- RelativeFormat -----------------------------------------------------------\n\nfunction RelativeFormat(locales, options) {\n options = options || {};\n\n // Make a copy of `locales` if it's an array, so that it doesn't change\n // since it's used lazily.\n if (isArray(locales)) {\n locales = locales.concat();\n }\n\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n defineProperty(this, '_options', {value: {\n style: this._resolveStyle(options.style),\n units: this._isValidUnits(options.units) && options.units\n }});\n\n defineProperty(this, '_locales', {value: locales});\n defineProperty(this, '_fields', {value: this._findFields(this._locale)});\n defineProperty(this, '_messages', {value: objCreate(null)});\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var relativeFormat = this;\n this.format = function format(date, options) {\n return relativeFormat._format(date, options);\n };\n}\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(RelativeFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(RelativeFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlRelativeFormat is missing a ' +\n '`locale` property value'\n );\n }\n\n RelativeFormat.__localeData__[data.locale.toLowerCase()] = data;\n\n // Add data to IntlMessageFormat.\n IntlMessageFormat.__addLocaleData(data);\n}});\n\n// Define public `defaultLocale` property which can be set by the developer, or\n// it will be set when the first RelativeFormat instance is created by\n// leveraging the resolved locale from `Intl`.\ndefineProperty(RelativeFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\n// Define public `thresholds` property which can be set by the developer, and\n// defaults to relative time thresholds from moment.js.\ndefineProperty(RelativeFormat, 'thresholds', {\n enumerable: true,\n\n value: {\n second: 45, // seconds to minute\n minute: 45, // minutes to hour\n hour : 22, // hours to day\n day : 26, // days to month\n month : 11 // months to year\n }\n});\n\nRelativeFormat.prototype.resolvedOptions = function () {\n return {\n locale: this._locale,\n style : this._options.style,\n units : this._options.units\n };\n};\n\nRelativeFormat.prototype._compileMessage = function (units) {\n // `this._locales` is the original set of locales the user specified to the\n // constructor, while `this._locale` is the resolved root locale.\n var locales = this._locales;\n var resolvedLocale = this._locale;\n\n var field = this._fields[units];\n var relativeTime = field.relativeTime;\n var future = '';\n var past = '';\n var i;\n\n for (i in relativeTime.future) {\n if (relativeTime.future.hasOwnProperty(i)) {\n future += ' ' + i + ' {' +\n relativeTime.future[i].replace('{0}', '#') + '}';\n }\n }\n\n for (i in relativeTime.past) {\n if (relativeTime.past.hasOwnProperty(i)) {\n past += ' ' + i + ' {' +\n relativeTime.past[i].replace('{0}', '#') + '}';\n }\n }\n\n var message = '{when, select, future {{0, plural, ' + future + '}}' +\n 'past {{0, plural, ' + past + '}}}';\n\n // Create the synthetic IntlMessageFormat instance using the original\n // locales value specified by the user when constructing the the parent\n // IntlRelativeFormat instance.\n return new IntlMessageFormat(message, locales);\n};\n\nRelativeFormat.prototype._getMessage = function (units) {\n var messages = this._messages;\n\n // Create a new synthetic message based on the locale data from CLDR.\n if (!messages[units]) {\n messages[units] = this._compileMessage(units);\n }\n\n return messages[units];\n};\n\nRelativeFormat.prototype._getRelativeUnits = function (diff, units) {\n var field = this._fields[units];\n\n if (field.relative) {\n return field.relative[diff];\n }\n};\n\nRelativeFormat.prototype._findFields = function (locale) {\n var localeData = RelativeFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find `fields` to return.\n while (data) {\n if (data.fields) {\n return data.fields;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlRelativeFormat is missing `fields` for :' +\n locale\n );\n};\n\nRelativeFormat.prototype._format = function (date, options) {\n var now = options && options.now !== undefined ? options.now : dateNow();\n\n if (date === undefined) {\n date = now;\n }\n\n // Determine if the `date` and optional `now` values are valid, and throw a\n // similar error to what `Intl.DateTimeFormat#format()` would throw.\n if (!isFinite(now)) {\n throw new RangeError(\n 'The `now` option provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n if (!isFinite(date)) {\n throw new RangeError(\n 'The date value provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n var diffReport = diff(now, date);\n var units = this._options.units || this._selectUnits(diffReport);\n var diffInUnits = diffReport[units];\n\n if (this._options.style !== 'numeric') {\n var relativeUnits = this._getRelativeUnits(diffInUnits, units);\n if (relativeUnits) {\n return relativeUnits;\n }\n }\n\n return this._getMessage(units).format({\n '0' : Math.abs(diffInUnits),\n when: diffInUnits < 0 ? 'past' : 'future'\n });\n};\n\nRelativeFormat.prototype._isValidUnits = function (units) {\n if (!units || arrIndexOf.call(FIELDS, units) >= 0) {\n return true;\n }\n\n if (typeof units === 'string') {\n var suggestion = /s$/.test(units) && units.substr(0, units.length - 1);\n if (suggestion && arrIndexOf.call(FIELDS, suggestion) >= 0) {\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` ' +\n 'value, did you mean: ' + suggestion\n );\n }\n }\n\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` value, it ' +\n 'must be one of: \"' + FIELDS.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(RelativeFormat.defaultLocale);\n\n var localeData = RelativeFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlRelativeFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n\nRelativeFormat.prototype._resolveStyle = function (style) {\n // Default to \"best fit\" style.\n if (!style) {\n return STYLES[0];\n }\n\n if (arrIndexOf.call(STYLES, style) >= 0) {\n return style;\n }\n\n throw new Error(\n '\"' + style + '\" is not a valid IntlRelativeFormat `style` value, it ' +\n 'must be one of: \"' + STYLES.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._selectUnits = function (diffReport) {\n var i, l, units;\n\n for (i = 0, l = FIELDS.length; i < l; i += 1) {\n units = FIELDS[i];\n\n if (Math.abs(diffReport[units]) < RelativeFormat.thresholds[units]) {\n break;\n }\n }\n\n return units;\n};\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}}}};\n","/* jslint esnext: true */\n\nimport IntlRelativeFormat from './core';\nimport defaultLocale from './en';\n\nIntlRelativeFormat.__addLocaleData(defaultLocale);\nIntlRelativeFormat.defaultLocale = 'en';\n\nexport default IntlRelativeFormat;\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nexport function addLocaleData(data = []) {\n let locales = Array.isArray(data) ? data : [data];\n\n locales.forEach((localeData) => {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nexport function hasLocaleData(locale) {\n let localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n let normalizedLocale = locale && locale.toLowerCase();\n\n return !!(\n IntlMessageFormat.__localeData__[normalizedLocale] &&\n IntlRelativeFormat.__localeData__[normalizedLocale]\n );\n}\n\nexport function registerMessages(Vue, locale, messages) {\n Vue.__allMessages = Vue.__allMessages || {};\n Vue.__allMessages[locale] = Vue.__allMessages[locale] || {};\n Object.assign(Vue.__allMessages[locale], messages);\n}\n\nexport function registerFormats(Vue, locale, formats) {\n Vue.__allFormats = Vue.__allFormats || {};\n Vue.__allFormats[locale] = Vue.__allFormats[locale] || {};\n Object.assign(Vue.__allFormats[locale], formats);\n}\n","export default function setLocale(Vue, locale) {\n Vue.set(Vue, 'locale', locale);\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n Vue.__format_config.formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n Vue.__format_config.messages = (Vue.__allMessages || {})[locale] || {};\n}\n","export default function getLocaleData(Vue) {\n const locale = Vue.locale;\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n const formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n const messages = (Vue.__allMessages || {})[locale] || {};\n return {\n formats,\n messages,\n defaultLocale: Vue.__format_config.defaultLocale,\n defaultFormats: Vue.__format_config.defaultFormats\n };\n}\n","/*\n * This file is an unmodified copy of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nimport IntlMessageFormat from 'intl-messageformat';\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nexport default class IntlPluralFormat {\n constructor(locales, options = {}) {\n let useOrdinal = options.style === 'ordinal';\n let pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = (value) => pluralFn(value, useOrdinal);\n }\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n// Function.prototype.bind implementation from Mozilla Developer Network:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill\n\nvar bind = Function.prototype.bind || function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexport {bind, defineProperty, objCreate};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jshint esnext: true */\n\nimport {bind, objCreate} from './es5';\n\nexport default createFormatCache;\n\n// -----------------------------------------------------------------------------\n\nfunction createFormatCache(FormatConstructor) {\n var cache = objCreate(null);\n\n return function () {\n var args = Array.prototype.slice.call(arguments);\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n\n if (!format) {\n format = new (bind.apply(FormatConstructor, [null].concat(args)))();\n\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n\n return format;\n };\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction getCacheId(inputs) {\n // When JSON is not available in the runtime, we will not create a cache id.\n if (typeof JSON === 'undefined') { return; }\n\n var cacheId = [];\n\n var i, len, input;\n\n for (i = 0, len = inputs.length; i < len; i += 1) {\n input = inputs[i];\n\n if (input && typeof input === 'object') {\n cacheId.push(orderedProps(input));\n } else {\n cacheId.push(input);\n }\n }\n\n return JSON.stringify(cacheId);\n}\n\nfunction orderedProps(obj) {\n var props = [],\n keys = [];\n\n var key, i, len, prop;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n\n var orderedKeys = keys.sort();\n\n for (i = 0, len = orderedKeys.length; i < len; i += 1) {\n key = orderedKeys[i];\n prop = {};\n\n prop[key] = obj[key];\n props[i] = prop;\n }\n\n return props;\n}\n","import IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport IntlPluralFormat from './plural';\nimport memoizeIntlConstructor from 'intl-format-cache';\n\nconst state = {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat : memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat : memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat : memoizeIntlConstructor(IntlPluralFormat),\n now: Date.now()\n};\n\nexport default state;\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst bool = { type : Boolean },\n number = { type : Number },\n string = { type : String },\n object = { type : Object },\n oneOf = function(array) {\n return {validator: function(value) {\n return array.indexOf(value) > -1;\n }};\n };\n\nexport const intlConfigPropTypes = {\n locale : string,\n formats : object,\n messages: object,\n\n defaultLocale : string,\n defaultFormats: object\n};\n\nexport const dateTimeFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12 : bool,\n\n weekday : oneOf(['narrow', 'short', 'long']),\n era : oneOf(['narrow', 'short', 'long']),\n year : oneOf(['numeric', '2-digit']),\n month : oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day : oneOf(['numeric', '2-digit']),\n hour : oneOf(['numeric', '2-digit']),\n minute : oneOf(['numeric', '2-digit']),\n second : oneOf(['numeric', '2-digit']),\n timeZoneName: oneOf(['short', 'long'])\n};\n\nexport const numberFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n\n style : oneOf(['decimal', 'currency', 'percent']),\n currency : string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping : bool,\n\n minimumIntegerDigits : number,\n minimumFractionDigits : number,\n maximumFractionDigits : number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nexport const relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nexport const pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nconst ESCAPED_CHARS = {\n '&' : '&',\n '>' : '>',\n '<' : '<',\n '\"' : '"',\n '\\'': '''\n};\n\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, (match) => ESCAPED_CHARS[match]);\n}\n\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults.hasOwnProperty(name)) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nimport {\n dateTimeFormatPropTypes,\n numberFormatPropTypes,\n relativeFormatPropTypes,\n pluralFormatPropTypes\n} from './types';\n\nimport {\n escape,\n filterProps\n} from './utils';\n\nconst DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nconst NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nconst RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nconst PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nconst RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour : 24, // hours to day\n day : 30, // days to month\n month : 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n const {thresholds} = IntlRelativeFormat;\n ({\n second: thresholds.second,\n minute: thresholds.minute,\n hour : thresholds.hour,\n day : thresholds.day,\n month : thresholds.month\n } = newThresholds);\n}\n\nfunction getNamedFormat(formats, type, name) {\n let format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] No ${type} format named: ${name}`\n );\n }\n}\n\nexport function formatDate(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'date', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting date.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatTime(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'time', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n // When no formatting options have been specified, default to outputting a\n // time; e.g.: \"9:42 AM\".\n if (Object.keys(filteredOptions).length === 0) {\n filteredOptions = {\n hour : 'numeric',\n minute: 'numeric'\n };\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting time.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatRelative(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let now = new Date(options.now);\n let defaults = format && getNamedFormat(formats, 'relative', format);\n let filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n const oldThresholds = Object.assign({}, IntlRelativeFormat.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting relative time.\\n${e}`\n );\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nexport function formatNumber(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let defaults = format && getNamedFormat(formats, 'number', format);\n let filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting number.\\n${e}`\n );\n }\n }\n\n return String(value);\n}\n\nexport function formatPlural(config, state, value, options = {}) {\n const {locale} = config;\n\n let filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting plural.\\n${e}`\n );\n }\n }\n\n return 'other';\n}\n\nexport function formatMessage(config, state, messageDescriptor = {}, values = {}) {\n const {\n locale,\n formats,\n messages,\n defaultLocale,\n defaultFormats\n } = config;\n\n const {\n id,\n defaultMessage\n } = messageDescriptor;\n\n // `id` is a required field of a Message Descriptor.\n if (!id) {\n throw new TypeError('[Vue Intl] An `id` must be provided to format a message.');\n }\n\n const message = messages && messages[id];\n const hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n // When debugging in English, show default string to enable hot module reloading\n if (process.env.NODE_ENV === 'development' && defaultMessage && locale === 'en') {\n var formatter = state.getMessageFormat(defaultMessage, locale, formats);\n return formatter.format(values);\n }\n\n let formattedMessage;\n\n if (message) {\n try {\n let formatter = state.getMessageFormat(\n message, locale, formats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '') +\n `\\n${e}`\n );\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n\n console.error(\n `[Vue Intl] Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')\n );\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n let formatter = state.getMessageFormat(\n defaultMessage, defaultLocale, defaultFormats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting the default message for: \"${id}\"` +\n `\\n${e}`\n );\n }\n }\n }\n\n if (!formattedMessage) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`\n );\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nexport function formatHTMLMessage(config, state, messageDescriptor, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n let escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n let value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","const format = (ctx, values) => ctx.parent.$formatMessage(ctx.props, values)\nconst placeholder = (name) => `@\\0@\\0${name}\\0@\\0@`\nconst placeholderRegex = /@\\0@\\0(.*?)\\0@\\0@/g\n\nexport default {\n functional: true,\n\n props: {\n id: {type: String, required: true},\n defaultMessage: String,\n values: Object,\n tagName: {type: String, default: 'span'}\n },\n\n render (h, ctx) {\n const slots = ctx.slots()\n const slotNames = Object.keys(slots)\n if (slotNames.length === 0) {\n return h(ctx.props.tagName, ctx.data, format(ctx, ctx.props.values))\n }\n\n const values = Object.assign({}, ctx.props.values)\n slotNames.forEach(slot => {\n values[slot] = placeholder(slot)\n })\n\n const message = format(ctx, values)\n\n let match;\n let pos = 0;\n const children = []\n while ((match = placeholderRegex.exec(message)) !== null) {\n children.push(message.substring(pos, match.index), slots[match[1]])\n pos = match.index + match[0].length\n }\n children.push(message.substring(pos))\n return h(ctx.props.tagName, ctx.data, children)\n }\n}\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"year-short\":{\"displayName\":\"yr.\",\"relative\":{\"0\":\"this yr.\",\"1\":\"next yr.\",\"-1\":\"last yr.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yr.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yr. ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"month-short\":{\"displayName\":\"mo.\",\"relative\":{\"0\":\"this mo.\",\"1\":\"next mo.\",\"-1\":\"last mo.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"day-short\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"hour-short\":{\"displayName\":\"hr.\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hr.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hr. ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"minute-short\":{\"displayName\":\"min.\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} min.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} min. ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}},\"second-short\":{\"displayName\":\"sec.\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} sec.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} sec. ago\"}}}}};\n","import {addLocaleData, registerMessages, registerFormats} from './localeData';\nimport setLocale from './setLocale';\nimport getLocaleData from './getLocaleData';\nimport state from './state';\nimport * as formatMethods from './format';\nimport FormattedMessage from './FormattedMessage'\nimport defaultLocaleData from './en';\n\naddLocaleData(defaultLocaleData);\n\n\nfunction install(Vue, options={}) {\n Vue.addLocaleData = addLocaleData;\n Vue.registerMessages = registerMessages.bind(null, Vue);\n Vue.registerFormats = registerFormats.bind(null, Vue);\n Vue.setLocale = setLocale.bind(null, Vue);\n Vue.__format_state = state;\n Vue.__format_config = {\n defaultLocale: options.defaultLocale || 'en',\n defaultFormats: options.defaultFormats || {}\n };\n\n for (let key of Object.getOwnPropertyNames(formatMethods).filter((name) => {\n return formatMethods[name] instanceof Function;\n })) {\n Vue.prototype[`\\$${key}`] = function(...args) {\n let config = {locale: Vue.locale};\n Object.assign(config, getLocaleData(Vue));\n const state = Vue.__format_state;\n return formatMethods[key](config, state, ...args);\n }\n }\n}\n\nexport default {\n addLocaleData,\n FormattedMessage,\n install,\n}\n"],"names":["hop","Object","prototype","hasOwnProperty","extend","obj","sources","Array","slice","call","arguments","i","len","source","key","length","realDefineProp","defineProperty","e","name","desc","__defineGetter__","get","value","objCreate","create","proto","props","k","F","Compiler","locales","formats","pluralFn","compile","ast","pluralStack","currentPlural","pluralNumberFormat","compileMessage","type","Error","elements","pattern","element","push","compileMessageText","compileArgument","test","Intl","NumberFormat","PluralOffsetString","id","format","offset","replace","StringFormat","options","number","style","date","DateTimeFormat","time","compileOptions","PluralFormat","ordinal","SelectFormat","optionsHash","option","selector","pop","String","useOrdinal","getOption","other","numberFormat","string","peg$subclass","child","parent","ctor","constructor","SyntaxError","message","expected","found","line","column","parse","input","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c0","peg$c1","peg$c2","peg$c3","text","j","outerLen","inner","innerLen","peg$c4","messageText","peg$c5","peg$c6","description","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$c22","peg$c23","peg$c24","pluralStyle","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","digits","parseInt","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","fromCharCode","peg$c68","chars","join","peg$currPos","peg$reportedPos","peg$cachedPos","peg$cachedPosDetails","seenCR","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","peg$result","startRule","peg$computePosDetails","pos","advance","details","startPos","endPos","p","ch","charAt","peg$fail","peg$buildException","cleanupExpected","sort","a","b","splice","buildMessage","stringEscape","s","hex","charCodeAt","toString","toUpperCase","expectedDescs","expectedDesc","foundDesc","posDetails","s0","peg$parsemessageFormatPattern","s1","s2","peg$parsemessageFormatElement","peg$parsemessageTextElement","peg$parseargumentElement","peg$parsemessageText","s3","s4","s5","peg$parse_","peg$parsechars","peg$parsews","substring","peg$parseargument","peg$parsenumber","s6","s7","s8","peg$parseelementFormat","peg$parsesimpleFormat","peg$parsepluralFormat","peg$parseselectOrdinalFormat","peg$parseselectFormat","substr","peg$parsepluralStyle","peg$parseoptionalFormatPattern","peg$parseselector","peg$parseoffset","peg$parsedigit","peg$parsehexDigit","peg$parsechar","MessageFormat","__parse","TypeError","_mergeFormats","_resolveLocale","_findPluralRuleFunction","_locale","_compilePattern","messageFormat","values","_format","data","locale","__localeData__","toLowerCase","parser","undefined","resolvedOptions","compiler","localeData","pluralRuleFunction","parentLocale","result","part","defaults","mergedFormats","mergedType","concat","defaultLocale","localeParts","split","n","ord","v0","t0","Number","n10","n100","IntlMessageFormat","__addLocaleData","round","Math","daysToYears","days","from","to","millisecond","second","minute","hour","day","week","rawYears","month","year","arrIndexOf","indexOf","search","fromIndex","arr","max","isArray","dateNow","Date","now","getTime","FIELDS","STYLES","RelativeFormat","_resolveStyle","_isValidUnits","units","_findFields","relativeFormat","_options","_compileMessage","_locales","field","_fields","relativeTime","future","past","_getMessage","messages","_messages","_getRelativeUnits","diff","relative","fields","isFinite","RangeError","diffReport","_selectUnits","diffInUnits","relativeUnits","abs","suggestion","l","thresholds","IntlRelativeFormat","addLocaleData","forEach","registerMessages","Vue","__allMessages","assign","registerFormats","__allFormats","setLocale","set","format_data","getOwnPropertyNames","__format_config","defaultFormats","getLocaleData","resolveLocale","findPluralFunction","IntlPluralFormat","bind","Function","oThis","aArgs","fToBind","fNOP","fBound","apply","createFormatCache","FormatConstructor","cache","args","cacheId","getCacheId","inputs","JSON","orderedProps","stringify","keys","prop","orderedKeys","state","memoizeIntlConstructor","bool","Boolean","oneOf","array","validator","dateTimeFormatPropTypes","numberFormatPropTypes","relativeFormatPropTypes","pluralFormatPropTypes","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","escape","str","match","filterProps","whitelist","reduce","filtered","DATE_TIME_FORMAT_OPTIONS","NUMBER_FORMAT_OPTIONS","RELATIVE_FORMAT_OPTIONS","PLURAL_FORMAT_OPTIONS","RELATIVE_FORMAT_THRESHOLDS","updateRelativeFormatThresholds","newThresholds","getNamedFormat","error","formatDate","config","filteredOptions","getDateTimeFormat","formatTime","formatRelative","oldThresholds","getRelativeFormat","formatNumber","getNumberFormat","formatPlural","getPluralFormat","formatMessage","messageDescriptor","defaultMessage","hasValues","process","formatter","getMessageFormat","formattedMessage","formatHTMLMessage","rawValues","escapedValues","escaped","ctx","$formatMessage","placeholder","placeholderRegex","required","h","slots","slotNames","tagName","slot","children","exec","index","defaultLocaleData","install","__format_state","formatMethods","filter"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-intl.min.js b/dist/vue-intl.min.js index 547e4a3..f62d32d 100644 --- a/dist/vue-intl.min.js +++ b/dist/vue-intl.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.VueIntl=t()}(this,function(){"use strict";var e=Object.prototype.hasOwnProperty;function t(t){var r,n,o,a,i=Array.prototype.slice.call(arguments,1);for(r=0,n=i.length;r1?arguments[1]:{},c={},f={start:Se},p=Se,m=function(e){return{type:"messageFormatPattern",elements:e}},h=c,d=function(e){var t,r,n,o,a,i="";for(t=0,n=e.length;tMe&&(Me=je,Pe=[]),Pe.push(e))}function Se(){return Ce()}function Ce(){var e,t;for(e=[],t=Ee();t!==c;)e.push(t),t=Ee();return e!==c&&(e=m(e)),e}function Ee(){var e,r,n,o,a,i,l,s,u,f,p,m,$,q,B,J,z,H,W,K,Q,X,Y,ee;return(ee=function(){var e,r,n,o,a,i;if(e=je,r=[],n=je,(o=Ue())!==c&&(a=Be())!==c&&(i=Ue())!==c?n=o=[o,a,i]:(je=n,n=h),n!==c)for(;n!==c;)r.push(n),n=je,(o=Ue())!==c&&(a=Be())!==c&&(i=Ue())!==c?n=o=[o,a,i]:(je=n,n=h);else r=h;return r!==c&&(r=d(r)),(e=r)===c&&(e=je,(r=Ge())!==c&&(r=t.substring(e,je)),e=r),e}())!==c&&(ee=y(ee)),(e=ee)===c&&(r=je,123===t.charCodeAt(je)?(n=_,je++):(n=c,0===De&&Re(w)),n!==c&&Ue()!==c&&(o=function(){var e,r,n;if((e=$e())===c){if(e=je,r=[],v.test(t.charAt(je))?(n=t.charAt(je),je++):(n=c,0===De&&Re(g)),n!==c)for(;n!==c;)r.push(n),v.test(t.charAt(je))?(n=t.charAt(je),je++):(n=c,0===De&&Re(g));else r=h;r!==c&&(r=t.substring(e,je)),e=r}return e}())!==c&&Ue()!==c?(a=je,44===t.charCodeAt(je)?(i=F,je++):(i=c,0===De&&Re(O)),i!==c&&(l=Ue())!==c&&(H=je,t.substr(je,6)===j?(W=j,je+=6):(W=c,0===De&&Re(L)),W===c&&(t.substr(je,4)===T?(W=T,je+=4):(W=c,0===De&&Re(M)),W===c&&(t.substr(je,4)===P?(W=P,je+=4):(W=c,0===De&&Re(D)))),W!==c&&Ue()!==c?(K=je,44===t.charCodeAt(je)?(Q=F,je++):(Q=c,0===De&&Re(O)),Q!==c&&(X=Ue())!==c&&(Y=Be())!==c?K=Q=[Q,X,Y]:(je=K,K=h),K===c&&(K=b),K!==c?(W=R(W,K),H=W):(je=H,H=h)):(je=H,H=h),(u=H)===c&&(q=je,t.substr(je,6)===S?(B=S,je+=6):(B=c,0===De&&Re(C)),B!==c&&Ue()!==c?(44===t.charCodeAt(je)?(J=F,je++):(J=c,0===De&&Re(O)),J!==c&&Ue()!==c&&(z=Ie())!==c?(B=E(z),q=B):(je=q,q=h)):(je=q,q=h),(u=q)===c)&&(f=je,t.substr(je,13)===k?(p=k,je+=13):(p=c,0===De&&Re(I)),p!==c&&Ue()!==c?(44===t.charCodeAt(je)?(m=F,je++):(m=c,0===De&&Re(O)),m!==c&&Ue()!==c&&($=Ie())!==c?(p=G($),f=p):(je=f,f=h)):(je=f,f=h),(u=f)===c)&&(u=function(){var e,r,n,o,a;if(e=je,t.substr(je,6)===U?(r=U,je+=6):(r=c,0===De&&Re(V)),r!==c)if(Ue()!==c)if(44===t.charCodeAt(je)?(n=F,je++):(n=c,0===De&&Re(O)),n!==c)if(Ue()!==c){if(o=[],(a=ke())!==c)for(;a!==c;)o.push(a),a=ke();else o=h;o!==c?(r=Z(o),e=r):(je=e,e=h)}else je=e,e=h;else je=e,e=h;else je=e,e=h;else je=e,e=h;return e}()),(s=u)!==c)?a=i=[i,l,s]:(je=a,a=h),a===c&&(a=b),a!==c&&(i=Ue())!==c?(125===t.charCodeAt(je)?(l=A,je++):(l=c,0===De&&Re(x)),l!==c?(n=N(o,a),r=n):(je=r,r=h)):(je=r,r=h)):(je=r,r=h),e=r),e}function ke(){var e,r,n,o,a,i,l,s,u;return e=je,Ue()!==c?(i=je,l=je,61===t.charCodeAt(je)?(s=$,je++):(s=c,0===De&&Re(q)),s!==c&&(u=$e())!==c?l=s=[s,u]:(je=l,l=h),l!==c&&(l=t.substring(i,je)),(i=l)===c&&(i=Be()),(r=i)!==c&&Ue()!==c?(123===t.charCodeAt(je)?(n=_,je++):(n=c,0===De&&Re(w)),n!==c&&Ue()!==c&&(o=Ce())!==c&&Ue()!==c?(125===t.charCodeAt(je)?(a=A,je++):(a=c,0===De&&Re(x)),a!==c?e=B(r,o):(je=e,e=h)):(je=e,e=h)):(je=e,e=h)):(je=e,e=h),e}function Ie(){var e,r,n,o,a,i,l;if(e=je,a=je,t.substr(je,7)===J?(i=J,je+=7):(i=c,0===De&&Re(z)),i!==c&&Ue()!==c&&(l=$e())!==c?a=i=H(l):(je=a,a=h),(r=a)===c&&(r=b),r!==c)if(Ue()!==c){if(n=[],(o=ke())!==c)for(;o!==c;)n.push(o),o=ke();else n=h;n!==c?e=r=W(r,n):(je=e,e=h)}else je=e,e=h;else je=e,e=h;return e}function Ge(){var e,r;if(De++,e=[],Q.test(t.charAt(je))?(r=t.charAt(je),je++):(r=c,0===De&&Re(X)),r!==c)for(;r!==c;)e.push(r),Q.test(t.charAt(je))?(r=t.charAt(je),je++):(r=c,0===De&&Re(X));else e=h;return De--,e===c&&(r=c,0===De&&Re(K)),e}function Ue(){var e,r,n;for(De++,e=je,r=[],n=Ge();n!==c;)r.push(n),n=Ge();return r!==c&&(r=t.substring(e,je)),De--,(e=r)===c&&(r=c,0===De&&Re(Y)),e}function Ve(){var e;return ee.test(t.charAt(je))?(e=t.charAt(je),je++):(e=c,0===De&&Re(te)),e}function Ze(){var e;return re.test(t.charAt(je))?(e=t.charAt(je),je++):(e=c,0===De&&Re(ne)),e}function $e(){var e,r,n,o,a;if(48===t.charCodeAt(je)?(e=oe,je++):(e=c,0===De&&Re(ae)),e===c){if(e=je,r=je,ie.test(t.charAt(je))?(n=t.charAt(je),je++):(n=c,0===De&&Re(le)),n!==c){for(o=[],a=Ve();a!==c;)o.push(a),a=Ve();o!==c?r=n=[n,o]:(je=r,r=h)}else je=r,r=h;r!==c&&(r=t.substring(e,je)),e=r}return e!==c&&(e=se(e)),e}function qe(){var e,r,n,o,a,i,l,s;return ue.test(t.charAt(je))?(e=t.charAt(je),je++):(e=c,0===De&&Re(ce)),e===c&&(e=je,t.substr(je,2)===fe?(r=fe,je+=2):(r=c,0===De&&Re(pe)),r!==c&&(r=me()),(e=r)===c&&(e=je,t.substr(je,2)===he?(r=he,je+=2):(r=c,0===De&&Re(de)),r!==c&&(r=ye()),(e=r)===c&&(e=je,t.substr(je,2)===ve?(r=ve,je+=2):(r=c,0===De&&Re(ge)),r!==c&&(r=_e()),(e=r)===c&&(e=je,t.substr(je,2)===we?(r=we,je+=2):(r=c,0===De&&Re(be)),r!==c&&(r=Fe()),(e=r)===c&&(e=je,t.substr(je,2)===Oe?(r=Oe,je+=2):(r=c,0===De&&Re(Ae)),r!==c?(n=je,o=je,(a=Ze())!==c&&(i=Ze())!==c&&(l=Ze())!==c&&(s=Ze())!==c?o=a=[a,i,l,s]:(je=o,o=h),o!==c&&(o=t.substring(n,je)),(n=o)!==c?e=r=xe(n):(je=e,e=h)):(je=e,e=h)))))),e}function Be(){var e,t;if(e=[],(t=qe())!==c)for(;t!==c;)e.push(t),t=qe();else e=h;return e!==c&&(e=Ne(e)),e}if((r=p())!==c&&je===t.length)return r;throw r!==c&&jei&&(Le=0,Te={line:1,column:1,seenCR:!1}),function(e,r,n){var o,a;for(o=r;ot.description?1:0});t1?n.slice(0,-1).join(", ")+" or "+n[e.length-1]:n[0])+" but "+(t?'"'+function(e){function t(e){return e.charCodeAt(0).toString(16).toUpperCase()}return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E\x0F]/g,function(e){return"\\x0"+t(e)}).replace(/[\x10-\x1F\x80-\xFF]/g,function(e){return"\\x"+t(e)}).replace(/[\u0180-\u0FFF]/g,function(e){return"\\u0"+t(e)}).replace(/[\u1080-\uFFFF]/g,function(e){return"\\u"+t(e)})}(t)+'"':"end of input")+" found."}(o,s),o,s,a,l.line,l.column)}}}();function c(e,t,n){var o="string"==typeof e?c.__parse(e):e;if(!o||"messageFormatPattern"!==o.type)throw new TypeError("A message must be provided as a String or AST.");n=this._mergeFormats(c.formats,n),r(this,"_locale",{value:this._resolveLocale(t)});var a=this._findPluralRuleFunction(this._locale),i=this._compilePattern(o,t,n,a),l=this;this.format=function(e){return l._format(i,e)}}r(c,"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(c,"__localeData__",{value:n(null)}),r(c,"__addLocaleData",{value:function(e){if(!e||!e.locale)throw new Error("Locale data provided to IntlMessageFormat is missing a `locale` property");c.__localeData__[e.locale.toLowerCase()]=e}}),r(c,"__parse",{value:u.parse}),r(c,"defaultLocale",{enumerable:!0,writable:!0,value:void 0}),c.prototype.resolvedOptions=function(){return{locale:this._locale}},c.prototype._compilePattern=function(e,t,r,n){return new o(t,r,n).compile(e)},c.prototype._findPluralRuleFunction=function(e){for(var t=c.__localeData__,r=t[e.toLowerCase()];r;){if(r.pluralRuleFunction)return r.pluralRuleFunction;r=r.parentLocale&&t[r.parentLocale.toLowerCase()]}throw new Error("Locale data added to IntlMessageFormat is missing a `pluralRuleFunction` for :"+e)},c.prototype._format=function(t,r){var n,o,a,i,l,s="";for(n=0,o=t.length;n=0)return!0;if("string"==typeof e){var t=/s$/.test(e)&&e.substr(0,e.length-1);if(t&&v.call(w,t)>=0)throw new Error('"'+e+'" is not a valid IntlRelativeFormat `units` value, did you mean: '+t)}throw new Error('"'+e+'" is not a valid IntlRelativeFormat `units` value, it must be one of: "'+w.join('", "')+'"')},F.prototype._resolveLocale=function(e){"string"==typeof e&&(e=[e]),e=(e||[]).concat(F.defaultLocale);var t,r,n,o,a=F.__localeData__;for(t=0,r=e.length;t=0)return e;throw new Error('"'+e+'" is not a valid IntlRelativeFormat `style` value, it must be one of: "'+b.join('", "')+'"')},F.prototype._selectUnits=function(e){var t,r,n;for(t=0,r=w.length;t0&&void 0!==arguments[0]?arguments[0]:[];(Array.isArray(e)?e:[e]).forEach(function(e){e&&e.locale&&(c.__addLocaleData(e),F.__addLocaleData(e))})}F.__addLocaleData(O),F.defaultLocale="en";!function(){function e(e){this.value=e}function t(t){var r,n;function o(r,n){try{var i=t[r](n),l=i.value;l instanceof e?Promise.resolve(l.value).then(function(e){o("next",e)},function(e){o("throw",e)}):a(i.done?"return":"normal",i.value)}catch(e){a("throw",e)}}function a(e,t){switch(e){case"return":r.resolve({value:t,done:!0});break;case"throw":r.reject(t);break;default:r.resolve({value:t,done:!1})}(r=r.next)?o(r.key,r.arg):n=null}this._invoke=function(e,t){return new Promise(function(a,i){var l={key:e,arg:t,resolve:a,reject:i,next:null};n?n=n.next=l:(r=n=l,o(e,t))})},"function"!=typeof t.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(e){return this._invoke("next",e)},t.prototype.throw=function(e){return this._invoke("throw",e)},t.prototype.return=function(e){return this._invoke("return",e)}}();var x=Function.prototype.bind||function(e){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var t=Array.prototype.slice.call(arguments,1),r=this,n=function(){},o=function(){return r.apply(this instanceof n?this:e,t.concat(Array.prototype.slice.call(arguments)))};return this.prototype&&(n.prototype=this.prototype),o.prototype=new n,o},N=Object.prototype.hasOwnProperty,j=function(){try{return!!Object.defineProperty({},"a",{})}catch(e){return!1}}()?Object.defineProperty:function(e,t,r){"get"in r&&e.__defineGetter__?e.__defineGetter__(t,r.get):(!N.call(e,t)||"value"in r)&&(e[t]=r.value)},L=Object.create||function(e,t){var r,n;function o(){}for(n in o.prototype=e,r=new o,t)N.call(t,n)&&j(r,n,t[n]);return r};function T(e){var t=L(null);return function(){var r=Array.prototype.slice.call(arguments),n=function(e){if("undefined"==typeof JSON)return;var t,r,n,o=[];for(t=0,r=e.length;t1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var n,o,a="ordinal"===r.style,i=(o=t,n=c.prototype._resolveLocale(o),c.prototype._findPluralRuleFunction(n));this.format=function(e){return i(e,a)}}),now:Date.now()},D={type:Boolean},R={type:Number},S={type:String},C=function(e){return{validator:function(t){return e.indexOf(t)>-1}}},E={localeMatcher:C(["best fit","lookup"]),formatMatcher:C(["basic","best fit"]),timeZone:S,hour12:D,weekday:C(["narrow","short","long"]),era:C(["narrow","short","long"]),year:C(["numeric","2-digit"]),month:C(["numeric","2-digit","narrow","short","long"]),day:C(["numeric","2-digit"]),hour:C(["numeric","2-digit"]),minute:C(["numeric","2-digit"]),second:C(["numeric","2-digit"]),timeZoneName:C(["short","long"])},k={localeMatcher:C(["best fit","lookup"]),style:C(["decimal","currency","percent"]),currency:S,currencyDisplay:C(["symbol","code","name"]),useGrouping:D,minimumIntegerDigits:R,minimumFractionDigits:R,maximumFractionDigits:R,minimumSignificantDigits:R,maximumSignificantDigits:R},I={style:C(["best fit","numeric"]),units:C(["second","minute","hour","day","month","year"])},G={style:C(["cardinal","ordinal"])},U={"&":"&",">":">","<":"<",'"':""","'":"'"},V=/[&><"']/g;function Z(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.reduce(function(t,n){return e.hasOwnProperty(n)?t[n]=e[n]:r.hasOwnProperty(n)&&(t[n]=r[n]),t},{})}var $=Object.keys(E),q=Object.keys(k),B=Object.keys(I),J=Object.keys(G),z={second:60,minute:60,hour:24,day:30,month:12};function H(e){var t=F.thresholds;t.second=e.second,t.minute=e.minute,t.hour=e.hour,t.day=e.day,t.month=e.month}function W(e,t,r){var n=e&&e[t]&&e[t][r];if(n)return n}function K(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.locale,a=e.formats,i=e.messages,l=e.defaultLocale,s=e.defaultFormats,u=r.id,c=r.defaultMessage;if(!u)throw new TypeError("[Vue Intl] An `id` must be provided to format a message.");var f=i&&i[u];if(!(Object.keys(n).length>0))return f||c||u;var p=void 0;if(f)try{p=t.getMessageFormat(f,o,a).format(n)}catch(e){}if(!p&&c)try{p=t.getMessageFormat(c,l,s).format(n)}catch(e){}return p||f||c||u}var Q=Object.freeze({formatDate:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.locale,a=e.formats,i=n.format,l=new Date(r),s=i&&W(a,"date",i),u=Z(n,$,s);try{return t.getDateTimeFormat(o,u).format(l)}catch(e){}return String(l)},formatTime:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.locale,a=e.formats,i=n.format,l=new Date(r),s=i&&W(a,"time",i),u=Z(n,$,s);0===Object.keys(u).length&&(u={hour:"numeric",minute:"numeric"});try{return t.getDateTimeFormat(o,u).format(l)}catch(e){}return String(l)},formatRelative:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.locale,a=e.formats,i=n.format,l=new Date(r),s=new Date(n.now),u=i&&W(a,"relative",i),c=Z(n,B,u),f=Object.assign({},F.thresholds);H(z);try{return t.getRelativeFormat(o,c).format(l,{now:isFinite(s)?s:t.now()})}catch(e){}finally{H(f)}return String(l)},formatNumber:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.locale,a=e.formats,i=n.format,l=i&&W(a,"number",i),s=Z(n,q,l);try{return t.getNumberFormat(o,s).format(r)}catch(e){}return String(r)},formatPlural:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.locale,a=Z(n,J);try{return t.getPluralFormat(o,a).format(r)}catch(e){}return"other"},formatMessage:K,formatHTMLMessage:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return K(e,t,r,Object.keys(n).reduce(function(e,t){var r=n[t];return e[t]="string"==typeof r?(""+r).replace(V,function(e){return U[e]}):r,e},{}))}}),X=function(e,t){return e.parent.$formatMessage(e.props,t)},Y=/@\0@\0(.*?)\0@\0@/g,ee={functional:!0,props:{id:{type:String,required:!0},defaultMessage:String,values:Object,tagName:{type:String,default:"span"}},render:function(e,t){var r=t.slots(),n=Object.keys(r);if(0===n.length)return e(t.props.tagName,t.data,X(t,t.props.values));var o=Object.assign({},t.props.values);n.forEach(function(e){o[e]="@\0@\0"+e+"\0@\0@"});for(var a=X(t,o),i=void 0,l=0,s=[];null!==(i=Y.exec(a));)s.push(a.substring(l,i.index),r[i[1]]),l=i.index+i[0].length;return s.push(a.substring(l)),e(t.props.tagName,t.data,s)}};return A({locale:"en",pluralRuleFunction:function(e,t){var r=String(e).split("."),n=!r[1],o=Number(r[0])==e,a=o&&r[0].slice(-1),i=o&&r[0].slice(-2);return t?1==a&&11!=i?"one":2==a&&12!=i?"two":3==a&&13!=i?"few":"other":1==e&&n?"one":"other"},fields:{year:{displayName:"year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{one:"in {0} year",other:"in {0} years"},past:{one:"{0} year ago",other:"{0} years ago"}}},"year-short":{displayName:"yr.",relative:{0:"this yr.",1:"next yr.","-1":"last yr."},relativeTime:{future:{one:"in {0} yr.",other:"in {0} yr."},past:{one:"{0} yr. ago",other:"{0} yr. ago"}}},month:{displayName:"month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{one:"in {0} month",other:"in {0} months"},past:{one:"{0} month ago",other:"{0} months ago"}}},"month-short":{displayName:"mo.",relative:{0:"this mo.",1:"next mo.","-1":"last mo."},relativeTime:{future:{one:"in {0} mo.",other:"in {0} mo."},past:{one:"{0} mo. ago",other:"{0} mo. ago"}}},day:{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},"day-short":{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},hour:{displayName:"hour",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hour",other:"in {0} hours"},past:{one:"{0} hour ago",other:"{0} hours ago"}}},"hour-short":{displayName:"hr.",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hr.",other:"in {0} hr."},past:{one:"{0} hr. ago",other:"{0} hr. ago"}}},minute:{displayName:"minute",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} minute",other:"in {0} minutes"},past:{one:"{0} minute ago",other:"{0} minutes ago"}}},"minute-short":{displayName:"min.",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} min.",other:"in {0} min."},past:{one:"{0} min. ago",other:"{0} min. ago"}}},second:{displayName:"second",relative:{0:"now"},relativeTime:{future:{one:"in {0} second",other:"in {0} seconds"},past:{one:"{0} second ago",other:"{0} seconds ago"}}},"second-short":{displayName:"sec.",relative:{0:"now"},relativeTime:{future:{one:"in {0} sec.",other:"in {0} sec."},past:{one:"{0} sec. ago",other:"{0} sec. ago"}}}}}),{addLocaleData:A,FormattedMessage:ee,install:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.addLocaleData=A,e.registerMessages=function(e,t,r){e.__allMessages=e.__allMessages||{},e.__allMessages[t]=e.__allMessages[t]||{},Object.assign(e.__allMessages[t],r)}.bind(null,e),e.registerFormats=function(e,t,r){e.__allFormats=e.__allFormats||{},e.__allFormats[t]=e.__allFormats[t]||{},Object.assign(e.__allFormats[t],r)}.bind(null,e),e.setLocale=function(e,t){e.set(e,"locale",t);var r=Object.getOwnPropertyNames((e.__allFormats||{})[t]||{}).length>0;e.__format_config.formats=r?e.__allFormats[t]:e.__format_config.defaultFormats,e.__format_config.messages=(e.__allMessages||{})[t]||{}}.bind(null,e),e.__format_state=P,e.__format_config={defaultLocale:t.defaultLocale||"en",defaultFormats:t.defaultFormats||{}};var r=!0,n=!1,o=void 0;try{for(var a,i=function(){var t=a.value;e.prototype["$"+t]=function(){var r,n,o={locale:e.locale};Object.assign(o,(n=(r=e).locale,{formats:Object.getOwnPropertyNames((r.__allFormats||{})[n]||{}).length>0?r.__allFormats[n]:r.__format_config.defaultFormats,messages:(r.__allMessages||{})[n]||{},defaultLocale:r.__format_config.defaultLocale,defaultFormats:r.__format_config.defaultFormats}));for(var a=e.__format_state,i=arguments.length,l=Array(i),s=0;st.description?1:0});t":">","<":"<",'"':""","'":"'"},G=/[&><"']/g;function U(r,e){var n=2 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = [],\n peg$c1 = function(elements) {\n return {\n type : 'messageFormatPattern',\n elements: elements\n };\n },\n peg$c2 = peg$FAILED,\n peg$c3 = function(text) {\n var string = '',\n i, j, outerLen, inner, innerLen;\n\n for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n inner = text[i];\n\n for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n string += inner[j];\n }\n }\n\n return string;\n },\n peg$c4 = function(messageText) {\n return {\n type : 'messageTextElement',\n value: messageText\n };\n },\n peg$c5 = /^[^ \\t\\n\\r,.+={}#]/,\n peg$c6 = { type: \"class\", value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\", description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\" },\n peg$c7 = \"{\",\n peg$c8 = { type: \"literal\", value: \"{\", description: \"\\\"{\\\"\" },\n peg$c9 = null,\n peg$c10 = \",\",\n peg$c11 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c12 = \"}\",\n peg$c13 = { type: \"literal\", value: \"}\", description: \"\\\"}\\\"\" },\n peg$c14 = function(id, format) {\n return {\n type : 'argumentElement',\n id : id,\n format: format && format[2]\n };\n },\n peg$c15 = \"number\",\n peg$c16 = { type: \"literal\", value: \"number\", description: \"\\\"number\\\"\" },\n peg$c17 = \"date\",\n peg$c18 = { type: \"literal\", value: \"date\", description: \"\\\"date\\\"\" },\n peg$c19 = \"time\",\n peg$c20 = { type: \"literal\", value: \"time\", description: \"\\\"time\\\"\" },\n peg$c21 = function(type, style) {\n return {\n type : type + 'Format',\n style: style && style[2]\n };\n },\n peg$c22 = \"plural\",\n peg$c23 = { type: \"literal\", value: \"plural\", description: \"\\\"plural\\\"\" },\n peg$c24 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: false,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n };\n },\n peg$c25 = \"selectordinal\",\n peg$c26 = { type: \"literal\", value: \"selectordinal\", description: \"\\\"selectordinal\\\"\" },\n peg$c27 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: true,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n }\n },\n peg$c28 = \"select\",\n peg$c29 = { type: \"literal\", value: \"select\", description: \"\\\"select\\\"\" },\n peg$c30 = function(options) {\n return {\n type : 'selectFormat',\n options: options\n };\n },\n peg$c31 = \"=\",\n peg$c32 = { type: \"literal\", value: \"=\", description: \"\\\"=\\\"\" },\n peg$c33 = function(selector, pattern) {\n return {\n type : 'optionalFormatPattern',\n selector: selector,\n value : pattern\n };\n },\n peg$c34 = \"offset:\",\n peg$c35 = { type: \"literal\", value: \"offset:\", description: \"\\\"offset:\\\"\" },\n peg$c36 = function(number) {\n return number;\n },\n peg$c37 = function(offset, options) {\n return {\n type : 'pluralFormat',\n offset : offset,\n options: options\n };\n },\n peg$c38 = { type: \"other\", description: \"whitespace\" },\n peg$c39 = /^[ \\t\\n\\r]/,\n peg$c40 = { type: \"class\", value: \"[ \\\\t\\\\n\\\\r]\", description: \"[ \\\\t\\\\n\\\\r]\" },\n peg$c41 = { type: \"other\", description: \"optionalWhitespace\" },\n peg$c42 = /^[0-9]/,\n peg$c43 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c44 = /^[0-9a-f]/i,\n peg$c45 = { type: \"class\", value: \"[0-9a-f]i\", description: \"[0-9a-f]i\" },\n peg$c46 = \"0\",\n peg$c47 = { type: \"literal\", value: \"0\", description: \"\\\"0\\\"\" },\n peg$c48 = /^[1-9]/,\n peg$c49 = { type: \"class\", value: \"[1-9]\", description: \"[1-9]\" },\n peg$c50 = function(digits) {\n return parseInt(digits, 10);\n },\n peg$c51 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n peg$c52 = { type: \"class\", value: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\", description: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\" },\n peg$c53 = \"\\\\\\\\\",\n peg$c54 = { type: \"literal\", value: \"\\\\\\\\\", description: \"\\\"\\\\\\\\\\\\\\\\\\\"\" },\n peg$c55 = function() { return '\\\\'; },\n peg$c56 = \"\\\\#\",\n peg$c57 = { type: \"literal\", value: \"\\\\#\", description: \"\\\"\\\\\\\\#\\\"\" },\n peg$c58 = function() { return '\\\\#'; },\n peg$c59 = \"\\\\{\",\n peg$c60 = { type: \"literal\", value: \"\\\\{\", description: \"\\\"\\\\\\\\{\\\"\" },\n peg$c61 = function() { return '\\u007B'; },\n peg$c62 = \"\\\\}\",\n peg$c63 = { type: \"literal\", value: \"\\\\}\", description: \"\\\"\\\\\\\\}\\\"\" },\n peg$c64 = function() { return '\\u007D'; },\n peg$c65 = \"\\\\u\",\n peg$c66 = { type: \"literal\", value: \"\\\\u\", description: \"\\\"\\\\\\\\u\\\"\" },\n peg$c67 = function(digits) {\n return String.fromCharCode(parseInt(digits, 16));\n },\n peg$c68 = function(chars) { return chars.join(''); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsestart() {\n var s0;\n\n s0 = peg$parsemessageFormatPattern();\n\n return s0;\n }\n\n function peg$parsemessageFormatPattern() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemessageFormatElement();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemessageFormatElement();\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsemessageFormatElement() {\n var s0;\n\n s0 = peg$parsemessageTextElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n }\n\n return s0;\n }\n\n function peg$parsemessageText() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c3(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsews();\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsemessageTextElement() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c4(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseargument() {\n var s0, s1, s2;\n\n s0 = peg$parsenumber();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c7;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargument();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c10;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseelementFormat();\n if (s8 !== peg$FAILED) {\n s6 = [s6, s7, s8];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c9;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c12;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s7 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c14(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseelementFormat() {\n var s0;\n\n s0 = peg$parsesimpleFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectOrdinalFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectFormat();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsesimpleFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c15) {\n s1 = peg$c15;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c10;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsechars();\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c9;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c21(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c24(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectOrdinalFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 13) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 13;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c26); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c27(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c28) {\n s1 = peg$c28;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseoptionalFormatPattern();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseoptionalFormatPattern();\n }\n } else {\n s5 = peg$c2;\n }\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c30(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c31;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c32); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$parsechars();\n }\n\n return s0;\n }\n\n function peg$parseoptionalFormatPattern() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselector();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c7;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessageFormatPattern();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c12;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s8 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c33(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c34) {\n s1 = peg$c34;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c36(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralStyle() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseoffset();\n if (s1 === peg$FAILED) {\n s1 = peg$c9;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoptionalFormatPattern();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoptionalFormatPattern();\n }\n } else {\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c37(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsews() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = [];\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n }\n } else {\n s0 = peg$c2;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1, s2;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsews();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsews();\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c42.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n\n return s0;\n }\n\n function peg$parsehexDigit() {\n var s0;\n\n if (peg$c44.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c45); }\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c46;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c47); }\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n if (peg$c48.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c49); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsedigit();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsedigit();\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c50(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsechar() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c53) {\n s1 = peg$c53;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c55();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c56) {\n s1 = peg$c56;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c58();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c60); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c64();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c65) {\n s1 = peg$c65;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c66); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parsehexDigit();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehexDigit();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehexDigit();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehexDigit();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c67(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsechars() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsechar();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsechar();\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c68(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {extend, hop} from './utils';\nimport {defineProperty, objCreate} from './es5';\nimport Compiler from './compiler';\nimport parser from 'intl-messageformat-parser';\n\nexport default MessageFormat;\n\n// -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n // Parse string messages into an AST.\n var ast = typeof message === 'string' ?\n MessageFormat.__parse(message) : message;\n\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n formats = this._mergeFormats(MessageFormat.formats, formats);\n\n // Defined first because it's used to build the format pattern.\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n\n // Compile the `ast` to a pattern that is highly optimized for repeated\n // `format()` invocations. **Note:** This passes the `locales` set provided\n // to the constructor instead of just the resolved locale.\n var pluralFn = this._findPluralRuleFunction(this._locale);\n var pattern = this._compilePattern(ast, locales, formats, pluralFn);\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var messageFormat = this;\n this.format = function (values) {\n return messageFormat._format(pattern, values);\n };\n}\n\n// Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\ndefineProperty(MessageFormat, 'formats', {\n enumerable: true,\n\n value: {\n number: {\n 'currency': {\n style: 'currency'\n },\n\n 'percent': {\n style: 'percent'\n }\n },\n\n date: {\n 'short': {\n month: 'numeric',\n day : 'numeric',\n year : '2-digit'\n },\n\n 'medium': {\n month: 'short',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'long': {\n month: 'long',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'full': {\n weekday: 'long',\n month : 'long',\n day : 'numeric',\n year : 'numeric'\n }\n },\n\n time: {\n 'short': {\n hour : 'numeric',\n minute: 'numeric'\n },\n\n 'medium': {\n hour : 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n\n 'long': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n },\n\n 'full': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n }\n }\n }\n});\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(MessageFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(MessageFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlMessageFormat is missing a ' +\n '`locale` property'\n );\n }\n\n MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n}});\n\n// Defines `__parse()` static method as an exposed private.\ndefineProperty(MessageFormat, '__parse', {value: parser.parse});\n\n// Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\ndefineProperty(MessageFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n // TODO: Provide anything else?\n return {\n locale: this._locale\n };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n var compiler = new Compiler(locales, formats, pluralFn);\n return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n var localeData = MessageFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find a `pluralRuleFunction` to return.\n while (data) {\n if (data.pluralRuleFunction) {\n return data.pluralRuleFunction;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlMessageFormat is missing a ' +\n '`pluralRuleFunction` for :' + locale\n );\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n var result = '',\n i, len, part, id, value;\n\n for (i = 0, len = pattern.length; i < len; i += 1) {\n part = pattern[i];\n\n // Exist early for string parts.\n if (typeof part === 'string') {\n result += part;\n continue;\n }\n\n id = part.id;\n\n // Enforce that all required values are provided by the caller.\n if (!(values && hop.call(values, id))) {\n throw new Error('A value must be provided for: ' + id);\n }\n\n value = values[id];\n\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (part.options) {\n result += this._format(part.getOption(value), values);\n } else {\n result += part.format(value);\n }\n }\n\n return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n var mergedFormats = {},\n type, mergedType;\n\n for (type in defaults) {\n if (!hop.call(defaults, type)) { continue; }\n\n mergedFormats[type] = mergedType = objCreate(defaults[type]);\n\n if (formats && hop.call(formats, type)) {\n extend(mergedType, formats[type]);\n }\n }\n\n return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(MessageFormat.defaultLocale);\n\n var localeData = MessageFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlMessageFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"}};\n","/* jslint esnext: true */\n\nimport IntlMessageFormat from './core';\nimport defaultLocale from './en';\n\nIntlMessageFormat.__addLocaleData(defaultLocale);\nIntlMessageFormat.defaultLocale = 'en';\n\nexport default IntlMessageFormat;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nvar round = Math.round;\n\nfunction daysToYears(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n return days * 400 / 146097;\n}\n\nexport default function (from, to) {\n // Convert to ms timestamps.\n from = +from;\n to = +to;\n\n var millisecond = round(to - from),\n second = round(millisecond / 1000),\n minute = round(second / 60),\n hour = round(minute / 60),\n day = round(hour / 24),\n week = round(day / 7);\n\n var rawYears = daysToYears(day),\n month = round(rawYears * 12),\n year = round(rawYears);\n\n return {\n millisecond: millisecond,\n second : second,\n minute : minute,\n hour : hour,\n day : day,\n week : week,\n month : month,\n year : year\n };\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport {defineProperty, objCreate, arrIndexOf, isArray, dateNow};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nvar arrIndexOf = Array.prototype.indexOf || function (search, fromIndex) {\n /*jshint validthis:true */\n var arr = this;\n if (!arr.length) {\n return -1;\n }\n\n for (var i = fromIndex || 0, max = arr.length; i < max; i++) {\n if (arr[i] === search) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar isArray = Array.isArray || function (obj) {\n return toString.call(obj) === '[object Array]';\n};\n\nvar dateNow = Date.now || function () {\n return new Date().getTime();\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport diff from './diff';\nimport {\n defineProperty,\n objCreate,\n arrIndexOf,\n isArray,\n dateNow\n} from './es5';\n\nexport default RelativeFormat;\n\n// -----------------------------------------------------------------------------\n\nvar FIELDS = ['second', 'minute', 'hour', 'day', 'month', 'year'];\nvar STYLES = ['best fit', 'numeric'];\n\n// -- RelativeFormat -----------------------------------------------------------\n\nfunction RelativeFormat(locales, options) {\n options = options || {};\n\n // Make a copy of `locales` if it's an array, so that it doesn't change\n // since it's used lazily.\n if (isArray(locales)) {\n locales = locales.concat();\n }\n\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n defineProperty(this, '_options', {value: {\n style: this._resolveStyle(options.style),\n units: this._isValidUnits(options.units) && options.units\n }});\n\n defineProperty(this, '_locales', {value: locales});\n defineProperty(this, '_fields', {value: this._findFields(this._locale)});\n defineProperty(this, '_messages', {value: objCreate(null)});\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var relativeFormat = this;\n this.format = function format(date, options) {\n return relativeFormat._format(date, options);\n };\n}\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(RelativeFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(RelativeFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlRelativeFormat is missing a ' +\n '`locale` property value'\n );\n }\n\n RelativeFormat.__localeData__[data.locale.toLowerCase()] = data;\n\n // Add data to IntlMessageFormat.\n IntlMessageFormat.__addLocaleData(data);\n}});\n\n// Define public `defaultLocale` property which can be set by the developer, or\n// it will be set when the first RelativeFormat instance is created by\n// leveraging the resolved locale from `Intl`.\ndefineProperty(RelativeFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\n// Define public `thresholds` property which can be set by the developer, and\n// defaults to relative time thresholds from moment.js.\ndefineProperty(RelativeFormat, 'thresholds', {\n enumerable: true,\n\n value: {\n second: 45, // seconds to minute\n minute: 45, // minutes to hour\n hour : 22, // hours to day\n day : 26, // days to month\n month : 11 // months to year\n }\n});\n\nRelativeFormat.prototype.resolvedOptions = function () {\n return {\n locale: this._locale,\n style : this._options.style,\n units : this._options.units\n };\n};\n\nRelativeFormat.prototype._compileMessage = function (units) {\n // `this._locales` is the original set of locales the user specified to the\n // constructor, while `this._locale` is the resolved root locale.\n var locales = this._locales;\n var resolvedLocale = this._locale;\n\n var field = this._fields[units];\n var relativeTime = field.relativeTime;\n var future = '';\n var past = '';\n var i;\n\n for (i in relativeTime.future) {\n if (relativeTime.future.hasOwnProperty(i)) {\n future += ' ' + i + ' {' +\n relativeTime.future[i].replace('{0}', '#') + '}';\n }\n }\n\n for (i in relativeTime.past) {\n if (relativeTime.past.hasOwnProperty(i)) {\n past += ' ' + i + ' {' +\n relativeTime.past[i].replace('{0}', '#') + '}';\n }\n }\n\n var message = '{when, select, future {{0, plural, ' + future + '}}' +\n 'past {{0, plural, ' + past + '}}}';\n\n // Create the synthetic IntlMessageFormat instance using the original\n // locales value specified by the user when constructing the the parent\n // IntlRelativeFormat instance.\n return new IntlMessageFormat(message, locales);\n};\n\nRelativeFormat.prototype._getMessage = function (units) {\n var messages = this._messages;\n\n // Create a new synthetic message based on the locale data from CLDR.\n if (!messages[units]) {\n messages[units] = this._compileMessage(units);\n }\n\n return messages[units];\n};\n\nRelativeFormat.prototype._getRelativeUnits = function (diff, units) {\n var field = this._fields[units];\n\n if (field.relative) {\n return field.relative[diff];\n }\n};\n\nRelativeFormat.prototype._findFields = function (locale) {\n var localeData = RelativeFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find `fields` to return.\n while (data) {\n if (data.fields) {\n return data.fields;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlRelativeFormat is missing `fields` for :' +\n locale\n );\n};\n\nRelativeFormat.prototype._format = function (date, options) {\n var now = options && options.now !== undefined ? options.now : dateNow();\n\n if (date === undefined) {\n date = now;\n }\n\n // Determine if the `date` and optional `now` values are valid, and throw a\n // similar error to what `Intl.DateTimeFormat#format()` would throw.\n if (!isFinite(now)) {\n throw new RangeError(\n 'The `now` option provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n if (!isFinite(date)) {\n throw new RangeError(\n 'The date value provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n var diffReport = diff(now, date);\n var units = this._options.units || this._selectUnits(diffReport);\n var diffInUnits = diffReport[units];\n\n if (this._options.style !== 'numeric') {\n var relativeUnits = this._getRelativeUnits(diffInUnits, units);\n if (relativeUnits) {\n return relativeUnits;\n }\n }\n\n return this._getMessage(units).format({\n '0' : Math.abs(diffInUnits),\n when: diffInUnits < 0 ? 'past' : 'future'\n });\n};\n\nRelativeFormat.prototype._isValidUnits = function (units) {\n if (!units || arrIndexOf.call(FIELDS, units) >= 0) {\n return true;\n }\n\n if (typeof units === 'string') {\n var suggestion = /s$/.test(units) && units.substr(0, units.length - 1);\n if (suggestion && arrIndexOf.call(FIELDS, suggestion) >= 0) {\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` ' +\n 'value, did you mean: ' + suggestion\n );\n }\n }\n\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` value, it ' +\n 'must be one of: \"' + FIELDS.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(RelativeFormat.defaultLocale);\n\n var localeData = RelativeFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlRelativeFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n\nRelativeFormat.prototype._resolveStyle = function (style) {\n // Default to \"best fit\" style.\n if (!style) {\n return STYLES[0];\n }\n\n if (arrIndexOf.call(STYLES, style) >= 0) {\n return style;\n }\n\n throw new Error(\n '\"' + style + '\" is not a valid IntlRelativeFormat `style` value, it ' +\n 'must be one of: \"' + STYLES.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._selectUnits = function (diffReport) {\n var i, l, units;\n\n for (i = 0, l = FIELDS.length; i < l; i += 1) {\n units = FIELDS[i];\n\n if (Math.abs(diffReport[units]) < RelativeFormat.thresholds[units]) {\n break;\n }\n }\n\n return units;\n};\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}}}};\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nexport function addLocaleData(data = []) {\n let locales = Array.isArray(data) ? data : [data];\n\n locales.forEach((localeData) => {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nexport function hasLocaleData(locale) {\n let localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n let normalizedLocale = locale && locale.toLowerCase();\n\n return !!(\n IntlMessageFormat.__localeData__[normalizedLocale] &&\n IntlRelativeFormat.__localeData__[normalizedLocale]\n );\n}\n\nexport function registerMessages(Vue, locale, messages) {\n Vue.__allMessages = Vue.__allMessages || {};\n Vue.__allMessages[locale] = Vue.__allMessages[locale] || {};\n Object.assign(Vue.__allMessages[locale], messages);\n}\n\nexport function registerFormats(Vue, locale, formats) {\n Vue.__allFormats = Vue.__allFormats || {};\n Vue.__allFormats[locale] = Vue.__allFormats[locale] || {};\n Object.assign(Vue.__allFormats[locale], formats);\n}\n","/* jslint esnext: true */\n\nimport IntlRelativeFormat from './core';\nimport defaultLocale from './en';\n\nIntlRelativeFormat.__addLocaleData(defaultLocale);\nIntlRelativeFormat.defaultLocale = 'en';\n\nexport default IntlRelativeFormat;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n// Function.prototype.bind implementation from Mozilla Developer Network:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill\n\nvar bind = Function.prototype.bind || function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexport {bind, defineProperty, objCreate};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jshint esnext: true */\n\nimport {bind, objCreate} from './es5';\n\nexport default createFormatCache;\n\n// -----------------------------------------------------------------------------\n\nfunction createFormatCache(FormatConstructor) {\n var cache = objCreate(null);\n\n return function () {\n var args = Array.prototype.slice.call(arguments);\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n\n if (!format) {\n format = new (bind.apply(FormatConstructor, [null].concat(args)))();\n\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n\n return format;\n };\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction getCacheId(inputs) {\n // When JSON is not available in the runtime, we will not create a cache id.\n if (typeof JSON === 'undefined') { return; }\n\n var cacheId = [];\n\n var i, len, input;\n\n for (i = 0, len = inputs.length; i < len; i += 1) {\n input = inputs[i];\n\n if (input && typeof input === 'object') {\n cacheId.push(orderedProps(input));\n } else {\n cacheId.push(input);\n }\n }\n\n return JSON.stringify(cacheId);\n}\n\nfunction orderedProps(obj) {\n var props = [],\n keys = [];\n\n var key, i, len, prop;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n\n var orderedKeys = keys.sort();\n\n for (i = 0, len = orderedKeys.length; i < len; i += 1) {\n key = orderedKeys[i];\n prop = {};\n\n prop[key] = obj[key];\n props[i] = prop;\n }\n\n return props;\n}\n","import IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport IntlPluralFormat from './plural';\nimport memoizeIntlConstructor from 'intl-format-cache';\n\nconst state = {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat : memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat : memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat : memoizeIntlConstructor(IntlPluralFormat),\n now: Date.now()\n};\n\nexport default state;\n","/*\n * This file is an unmodified copy of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nimport IntlMessageFormat from 'intl-messageformat';\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nexport default class IntlPluralFormat {\n constructor(locales, options = {}) {\n let useOrdinal = options.style === 'ordinal';\n let pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = (value) => pluralFn(value, useOrdinal);\n }\n}\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst bool = { type : Boolean },\n number = { type : Number },\n string = { type : String },\n object = { type : Object },\n oneOf = function(array) {\n return {validator: function(value) {\n return array.indexOf(value) > -1;\n }};\n };\n\nexport const intlConfigPropTypes = {\n locale : string,\n formats : object,\n messages: object,\n\n defaultLocale : string,\n defaultFormats: object\n};\n\nexport const dateTimeFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12 : bool,\n\n weekday : oneOf(['narrow', 'short', 'long']),\n era : oneOf(['narrow', 'short', 'long']),\n year : oneOf(['numeric', '2-digit']),\n month : oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day : oneOf(['numeric', '2-digit']),\n hour : oneOf(['numeric', '2-digit']),\n minute : oneOf(['numeric', '2-digit']),\n second : oneOf(['numeric', '2-digit']),\n timeZoneName: oneOf(['short', 'long'])\n};\n\nexport const numberFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n\n style : oneOf(['decimal', 'currency', 'percent']),\n currency : string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping : bool,\n\n minimumIntegerDigits : number,\n minimumFractionDigits : number,\n maximumFractionDigits : number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nexport const relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nexport const pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nconst ESCAPED_CHARS = {\n '&' : '&',\n '>' : '>',\n '<' : '<',\n '\"' : '"',\n '\\'': '''\n};\n\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, (match) => ESCAPED_CHARS[match]);\n}\n\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults.hasOwnProperty(name)) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nimport {\n dateTimeFormatPropTypes,\n numberFormatPropTypes,\n relativeFormatPropTypes,\n pluralFormatPropTypes\n} from './types';\n\nimport {\n escape,\n filterProps\n} from './utils';\n\nconst DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nconst NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nconst RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nconst PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nconst RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour : 24, // hours to day\n day : 30, // days to month\n month : 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n const {thresholds} = IntlRelativeFormat;\n ({\n second: thresholds.second,\n minute: thresholds.minute,\n hour : thresholds.hour,\n day : thresholds.day,\n month : thresholds.month\n } = newThresholds);\n}\n\nfunction getNamedFormat(formats, type, name) {\n let format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] No ${type} format named: ${name}`\n );\n }\n}\n\nexport function formatDate(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'date', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting date.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatTime(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'time', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n // When no formatting options have been specified, default to outputting a\n // time; e.g.: \"9:42 AM\".\n if (Object.keys(filteredOptions).length === 0) {\n filteredOptions = {\n hour : 'numeric',\n minute: 'numeric'\n };\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting time.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatRelative(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let now = new Date(options.now);\n let defaults = format && getNamedFormat(formats, 'relative', format);\n let filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n const oldThresholds = Object.assign({}, IntlRelativeFormat.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting relative time.\\n${e}`\n );\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nexport function formatNumber(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let defaults = format && getNamedFormat(formats, 'number', format);\n let filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting number.\\n${e}`\n );\n }\n }\n\n return String(value);\n}\n\nexport function formatPlural(config, state, value, options = {}) {\n const {locale} = config;\n\n let filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting plural.\\n${e}`\n );\n }\n }\n\n return 'other';\n}\n\nexport function formatMessage(config, state, messageDescriptor = {}, values = {}) {\n const {\n locale,\n formats,\n messages,\n defaultLocale,\n defaultFormats\n } = config;\n\n const {\n id,\n defaultMessage\n } = messageDescriptor;\n\n // `id` is a required field of a Message Descriptor.\n if (!id) {\n throw new TypeError('[Vue Intl] An `id` must be provided to format a message.');\n }\n\n const message = messages && messages[id];\n const hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n let formattedMessage;\n\n if (message) {\n try {\n let formatter = state.getMessageFormat(\n message, locale, formats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '') +\n `\\n${e}`\n );\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n\n console.error(\n `[Vue Intl] Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')\n );\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n let formatter = state.getMessageFormat(\n defaultMessage, defaultLocale, defaultFormats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting the default message for: \"${id}\"` +\n `\\n${e}`\n );\n }\n }\n }\n\n if (!formattedMessage) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`\n );\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nexport function formatHTMLMessage(config, state, messageDescriptor, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n let escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n let value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","const format = (ctx, values) => ctx.parent.$formatMessage(ctx.props, values)\nconst placeholder = (name) => `@\\0@\\0${name}\\0@\\0@`\nconst placeholderRegex = /@\\0@\\0(.*?)\\0@\\0@/g\n\nexport default {\n functional: true,\n\n props: {\n id: {type: String, required: true},\n defaultMessage: String,\n values: Object,\n tagName: {type: String, default: 'span'}\n },\n\n render (h, ctx) {\n const slots = ctx.slots()\n const slotNames = Object.keys(slots)\n if (slotNames.length === 0) {\n return h(ctx.props.tagName, ctx.data, format(ctx, ctx.props.values))\n }\n\n const values = Object.assign({}, ctx.props.values)\n slotNames.forEach(slot => {\n values[slot] = placeholder(slot)\n })\n\n const message = format(ctx, values)\n\n let match;\n let pos = 0;\n const children = []\n while ((match = placeholderRegex.exec(message)) !== null) {\n children.push(message.substring(pos, match.index), slots[match[1]])\n pos = match.index + match[0].length\n }\n children.push(message.substring(pos))\n return h(ctx.props.tagName, ctx.data, children)\n }\n}\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"year-short\":{\"displayName\":\"yr.\",\"relative\":{\"0\":\"this yr.\",\"1\":\"next yr.\",\"-1\":\"last yr.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yr.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yr. ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"month-short\":{\"displayName\":\"mo.\",\"relative\":{\"0\":\"this mo.\",\"1\":\"next mo.\",\"-1\":\"last mo.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"day-short\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"hour-short\":{\"displayName\":\"hr.\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hr.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hr. ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"minute-short\":{\"displayName\":\"min.\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} min.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} min. ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}},\"second-short\":{\"displayName\":\"sec.\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} sec.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} sec. ago\"}}}}};\n","import {addLocaleData, registerMessages, registerFormats} from './localeData';\nimport setLocale from './setLocale';\nimport getLocaleData from './getLocaleData';\nimport state from './state';\nimport * as formatMethods from './format';\nimport FormattedMessage from './FormattedMessage'\nimport defaultLocaleData from './en';\n\naddLocaleData(defaultLocaleData);\n\n\nfunction install(Vue, options={}) {\n Vue.addLocaleData = addLocaleData;\n Vue.registerMessages = registerMessages.bind(null, Vue);\n Vue.registerFormats = registerFormats.bind(null, Vue);\n Vue.setLocale = setLocale.bind(null, Vue);\n Vue.__format_state = state;\n Vue.__format_config = {\n defaultLocale: options.defaultLocale || 'en',\n defaultFormats: options.defaultFormats || {}\n };\n\n for (let key of Object.getOwnPropertyNames(formatMethods).filter((name) => {\n return formatMethods[name] instanceof Function;\n })) {\n Vue.prototype[`\\$${key}`] = function(...args) {\n let config = {locale: Vue.locale};\n Object.assign(config, getLocaleData(Vue));\n const state = Vue.__format_state;\n return formatMethods[key](config, state, ...args);\n }\n }\n};\n\nexport default {\n addLocaleData,\n FormattedMessage,\n install,\n}\n","export default function setLocale(Vue, locale) {\n Vue.set(Vue, 'locale', locale);\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n Vue.__format_config.formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n Vue.__format_config.messages = (Vue.__allMessages || {})[locale] || {};\n}\n","export default function getLocaleData(Vue) {\n const locale = Vue.locale;\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n const formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n const messages = (Vue.__allMessages || {})[locale] || {};\n return {\n formats,\n messages,\n defaultLocale: Vue.__format_config.defaultLocale,\n defaultFormats: Vue.__format_config.defaultFormats\n };\n}\n"],"names":["hop","Object","prototype","hasOwnProperty","extend","obj","i","len","source","key","sources","Array","slice","call","arguments","length","defineProperty","e","name","desc","__defineGetter__","get","value","objCreate","create","proto","props","k","F","Compiler","locales","formats","pluralFn","StringFormat","id","PluralFormat","useOrdinal","offset","options","PluralOffsetString","numberFormat","string","SelectFormat","compile","ast","pluralStack","currentPlural","pluralNumberFormat","this","compileMessage","type","Error","element","elements","pattern","push","compileMessageText","compileArgument","test","Intl","NumberFormat","format","replace","number","style","date","DateTimeFormat","time","compileOptions","ordinal","option","optionsHash","selector","pop","String","getOption","other","SyntaxError","message","expected","found","line","column","child","parent","ctor","constructor","input","peg$result","pos","posDetails","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c1","peg$c2","peg$c3","text","j","outerLen","inner","innerLen","peg$c4","messageText","peg$c5","peg$c6","description","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$c22","peg$c23","peg$c24","pluralStyle","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","digits","parseInt","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","fromCharCode","peg$c68","chars","join","peg$currPos","peg$cachedPos","peg$cachedPosDetails","seenCR","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","peg$fail","peg$parsemessageFormatPattern","s1","s2","peg$parsemessageFormatElement","s0","s3","s5","s6","s7","s8","s4","peg$parse_","peg$parsechars","peg$parsews","substring","peg$parsemessageText","charCodeAt","peg$parsenumber","charAt","peg$parseargument","substr","peg$parsepluralStyle","peg$parseoptionalFormatPattern","peg$parseselectFormat","peg$parsedigit","peg$parsehexDigit","peg$parsechar","details","startPos","endPos","p","ch","sort","a","b","splice","expectedDescs","s","hex","toString","toUpperCase","stringEscape","buildMessage","MessageFormat","__parse","TypeError","_mergeFormats","_resolveLocale","_findPluralRuleFunction","_locale","_compilePattern","messageFormat","values","_format","data","locale","__localeData__","toLowerCase","parser","parse","undefined","resolvedOptions","localeData","pluralRuleFunction","parentLocale","part","result","defaults","mergedType","mergedFormats","concat","defaultLocale","localeParts","split","n","ord","v0","t0","Number","n10","n100","__addLocaleData","IntlMessageFormat","round","Math","arrIndexOf","indexOf","search","fromIndex","max","isArray","dateNow","Date","now","getTime","FIELDS","STYLES","RelativeFormat","_resolveStyle","_isValidUnits","units","_findFields","relativeFormat","_options","_compileMessage","_locales","relativeTime","_fields","future","past","_getMessage","messages","_messages","_getRelativeUnits","diff","field","relative","fields","isFinite","RangeError","millisecond","second","minute","hour","day","week","rawYears","diffReport","_selectUnits","diffInUnits","relativeUnits","abs","suggestion","l","thresholds","year","displayName","0","1","-1","one","month","addLocaleData","forEach","IntlRelativeFormat","bind","Function","oThis","aArgs","fToBind","fNOP","fBound","apply","createFormatCache","FormatConstructor","cache","args","cacheId","inputs","JSON","orderedProps","stringify","getCacheId","prop","keys","orderedKeys","state","memoizeIntlConstructor","bool","Boolean","oneOf","array","validator","dateTimeFormatPropTypes","numberFormatPropTypes","relativeFormatPropTypes","pluralFormatPropTypes","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","filterProps","whitelist","reduce","filtered","DATE_TIME_FORMAT_OPTIONS","NUMBER_FORMAT_OPTIONS","RELATIVE_FORMAT_OPTIONS","PLURAL_FORMAT_OPTIONS","RELATIVE_FORMAT_THRESHOLDS","updateRelativeFormatThresholds","newThresholds","getNamedFormat","formatMessage","config","messageDescriptor","defaultFormats","defaultMessage","formattedMessage","getMessageFormat","filteredOptions","getDateTimeFormat","oldThresholds","assign","getRelativeFormat","getNumberFormat","getPluralFormat","rawValues","escaped","match","ctx","$formatMessage","placeholderRegex","required","default","h","slots","slotNames","tagName","slot","children","exec","index","year-short","month-short","day-short","hour-short","minute-short","second-short","Vue","registerMessages","__allMessages","registerFormats","__allFormats","setLocale","set","format_data","getOwnPropertyNames","__format_config","__format_state","formatMethods","filter"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-intl.min.js","sources":["../node_modules/intl-messageformat/src/utils.js","../node_modules/intl-messageformat/src/es5.js","../node_modules/intl-messageformat/src/compiler.js","../node_modules/intl-messageformat-parser/src/parser.js","../node_modules/intl-messageformat/src/core.js","../node_modules/intl-messageformat/src/main.js","../node_modules/intl-messageformat/src/en.js","../node_modules/intl-relativeformat/src/diff.js","../node_modules/intl-relativeformat/src/es5.js","../node_modules/intl-relativeformat/src/core.js","../src/localeData.js","../node_modules/intl-relativeformat/src/main.js","../node_modules/intl-relativeformat/src/en.js","../node_modules/intl-format-cache/src/es5.js","../node_modules/intl-format-cache/src/memoizer.js","../src/state.js","../src/plural.js","../src/types.js","../src/utils.js","../src/format.js","../src/FormattedMessage.js","../src/en.js","../src/vue-intl.js","../src/setLocale.js","../src/getLocaleData.js"],"sourcesContent":["/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport var hop = Object.prototype.hasOwnProperty;\n\nexport function extend(obj) {\n var sources = Array.prototype.slice.call(arguments, 1),\n i, len, source, key;\n\n for (i = 0, len = sources.length; i < len; i += 1) {\n source = sources[i];\n if (!source) { continue; }\n\n for (key in source) {\n if (hop.call(source, key)) {\n obj[key] = source[key];\n }\n }\n }\n\n return obj;\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {hop} from './utils';\n\nexport {defineProperty, objCreate};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport default Compiler;\n\nfunction Compiler(locales, formats, pluralFn) {\n this.locales = locales;\n this.formats = formats;\n this.pluralFn = pluralFn;\n}\n\nCompiler.prototype.compile = function (ast) {\n this.pluralStack = [];\n this.currentPlural = null;\n this.pluralNumberFormat = null;\n\n return this.compileMessage(ast);\n};\n\nCompiler.prototype.compileMessage = function (ast) {\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new Error('Message AST is not of type: \"messageFormatPattern\"');\n }\n\n var elements = ast.elements,\n pattern = [];\n\n var i, len, element;\n\n for (i = 0, len = elements.length; i < len; i += 1) {\n element = elements[i];\n\n switch (element.type) {\n case 'messageTextElement':\n pattern.push(this.compileMessageText(element));\n break;\n\n case 'argumentElement':\n pattern.push(this.compileArgument(element));\n break;\n\n default:\n throw new Error('Message element does not have a valid type');\n }\n }\n\n return pattern;\n};\n\nCompiler.prototype.compileMessageText = function (element) {\n // When this `element` is part of plural sub-pattern and its value contains\n // an unescaped '#', use a `PluralOffsetString` helper to properly output\n // the number with the correct offset in the string.\n if (this.currentPlural && /(^|[^\\\\])#/g.test(element.value)) {\n // Create a cache a NumberFormat instance that can be reused for any\n // PluralOffsetString instance in this message.\n if (!this.pluralNumberFormat) {\n this.pluralNumberFormat = new Intl.NumberFormat(this.locales);\n }\n\n return new PluralOffsetString(\n this.currentPlural.id,\n this.currentPlural.format.offset,\n this.pluralNumberFormat,\n element.value);\n }\n\n // Unescape the escaped '#'s in the message text.\n return element.value.replace(/\\\\#/g, '#');\n};\n\nCompiler.prototype.compileArgument = function (element) {\n var format = element.format;\n\n if (!format) {\n return new StringFormat(element.id);\n }\n\n var formats = this.formats,\n locales = this.locales,\n pluralFn = this.pluralFn,\n options;\n\n switch (format.type) {\n case 'numberFormat':\n options = formats.number[format.style];\n return {\n id : element.id,\n format: new Intl.NumberFormat(locales, options).format\n };\n\n case 'dateFormat':\n options = formats.date[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'timeFormat':\n options = formats.time[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'pluralFormat':\n options = this.compileOptions(element);\n return new PluralFormat(\n element.id, format.ordinal, format.offset, options, pluralFn\n );\n\n case 'selectFormat':\n options = this.compileOptions(element);\n return new SelectFormat(element.id, options);\n\n default:\n throw new Error('Message element does not have a valid format type');\n }\n};\n\nCompiler.prototype.compileOptions = function (element) {\n var format = element.format,\n options = format.options,\n optionsHash = {};\n\n // Save the current plural element, if any, then set it to a new value when\n // compiling the options sub-patterns. This conforms the spec's algorithm\n // for handling `\"#\"` syntax in message text.\n this.pluralStack.push(this.currentPlural);\n this.currentPlural = format.type === 'pluralFormat' ? element : null;\n\n var i, len, option;\n\n for (i = 0, len = options.length; i < len; i += 1) {\n option = options[i];\n\n // Compile the sub-pattern and save it under the options's selector.\n optionsHash[option.selector] = this.compileMessage(option.value);\n }\n\n // Pop the plural stack to put back the original current plural value.\n this.currentPlural = this.pluralStack.pop();\n\n return optionsHash;\n};\n\n// -- Compiler Helper Classes --------------------------------------------------\n\nfunction StringFormat(id) {\n this.id = id;\n}\n\nStringFormat.prototype.format = function (value) {\n if (!value) {\n return '';\n }\n\n return typeof value === 'string' ? value : String(value);\n};\n\nfunction PluralFormat(id, useOrdinal, offset, options, pluralFn) {\n this.id = id;\n this.useOrdinal = useOrdinal;\n this.offset = offset;\n this.options = options;\n this.pluralFn = pluralFn;\n}\n\nPluralFormat.prototype.getOption = function (value) {\n var options = this.options;\n\n var option = options['=' + value] ||\n options[this.pluralFn(value - this.offset, this.useOrdinal)];\n\n return option || options.other;\n};\n\nfunction PluralOffsetString(id, offset, numberFormat, string) {\n this.id = id;\n this.offset = offset;\n this.numberFormat = numberFormat;\n this.string = string;\n}\n\nPluralOffsetString.prototype.format = function (value) {\n var number = this.numberFormat.format(value - this.offset);\n\n return this.string\n .replace(/(^|[^\\\\])#/g, '$1' + number)\n .replace(/\\\\#/g, '#');\n};\n\nfunction SelectFormat(id, options) {\n this.id = id;\n this.options = options;\n}\n\nSelectFormat.prototype.getOption = function (value) {\n var options = this.options;\n return options[value] || options.other;\n};\n","export default (function() {\n /*\n * Generated by PEG.js 0.8.0.\n *\n * http://pegjs.majda.cz/\n */\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function SyntaxError(message, expected, found, offset, line, column) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.offset = offset;\n this.line = line;\n this.column = column;\n\n this.name = \"SyntaxError\";\n }\n\n peg$subclass(SyntaxError, Error);\n\n function parse(input) {\n var options = arguments.length > 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = [],\n peg$c1 = function(elements) {\n return {\n type : 'messageFormatPattern',\n elements: elements\n };\n },\n peg$c2 = peg$FAILED,\n peg$c3 = function(text) {\n var string = '',\n i, j, outerLen, inner, innerLen;\n\n for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n inner = text[i];\n\n for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n string += inner[j];\n }\n }\n\n return string;\n },\n peg$c4 = function(messageText) {\n return {\n type : 'messageTextElement',\n value: messageText\n };\n },\n peg$c5 = /^[^ \\t\\n\\r,.+={}#]/,\n peg$c6 = { type: \"class\", value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\", description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\" },\n peg$c7 = \"{\",\n peg$c8 = { type: \"literal\", value: \"{\", description: \"\\\"{\\\"\" },\n peg$c9 = null,\n peg$c10 = \",\",\n peg$c11 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c12 = \"}\",\n peg$c13 = { type: \"literal\", value: \"}\", description: \"\\\"}\\\"\" },\n peg$c14 = function(id, format) {\n return {\n type : 'argumentElement',\n id : id,\n format: format && format[2]\n };\n },\n peg$c15 = \"number\",\n peg$c16 = { type: \"literal\", value: \"number\", description: \"\\\"number\\\"\" },\n peg$c17 = \"date\",\n peg$c18 = { type: \"literal\", value: \"date\", description: \"\\\"date\\\"\" },\n peg$c19 = \"time\",\n peg$c20 = { type: \"literal\", value: \"time\", description: \"\\\"time\\\"\" },\n peg$c21 = function(type, style) {\n return {\n type : type + 'Format',\n style: style && style[2]\n };\n },\n peg$c22 = \"plural\",\n peg$c23 = { type: \"literal\", value: \"plural\", description: \"\\\"plural\\\"\" },\n peg$c24 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: false,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n };\n },\n peg$c25 = \"selectordinal\",\n peg$c26 = { type: \"literal\", value: \"selectordinal\", description: \"\\\"selectordinal\\\"\" },\n peg$c27 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: true,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n }\n },\n peg$c28 = \"select\",\n peg$c29 = { type: \"literal\", value: \"select\", description: \"\\\"select\\\"\" },\n peg$c30 = function(options) {\n return {\n type : 'selectFormat',\n options: options\n };\n },\n peg$c31 = \"=\",\n peg$c32 = { type: \"literal\", value: \"=\", description: \"\\\"=\\\"\" },\n peg$c33 = function(selector, pattern) {\n return {\n type : 'optionalFormatPattern',\n selector: selector,\n value : pattern\n };\n },\n peg$c34 = \"offset:\",\n peg$c35 = { type: \"literal\", value: \"offset:\", description: \"\\\"offset:\\\"\" },\n peg$c36 = function(number) {\n return number;\n },\n peg$c37 = function(offset, options) {\n return {\n type : 'pluralFormat',\n offset : offset,\n options: options\n };\n },\n peg$c38 = { type: \"other\", description: \"whitespace\" },\n peg$c39 = /^[ \\t\\n\\r]/,\n peg$c40 = { type: \"class\", value: \"[ \\\\t\\\\n\\\\r]\", description: \"[ \\\\t\\\\n\\\\r]\" },\n peg$c41 = { type: \"other\", description: \"optionalWhitespace\" },\n peg$c42 = /^[0-9]/,\n peg$c43 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c44 = /^[0-9a-f]/i,\n peg$c45 = { type: \"class\", value: \"[0-9a-f]i\", description: \"[0-9a-f]i\" },\n peg$c46 = \"0\",\n peg$c47 = { type: \"literal\", value: \"0\", description: \"\\\"0\\\"\" },\n peg$c48 = /^[1-9]/,\n peg$c49 = { type: \"class\", value: \"[1-9]\", description: \"[1-9]\" },\n peg$c50 = function(digits) {\n return parseInt(digits, 10);\n },\n peg$c51 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n peg$c52 = { type: \"class\", value: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\", description: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\" },\n peg$c53 = \"\\\\\\\\\",\n peg$c54 = { type: \"literal\", value: \"\\\\\\\\\", description: \"\\\"\\\\\\\\\\\\\\\\\\\"\" },\n peg$c55 = function() { return '\\\\'; },\n peg$c56 = \"\\\\#\",\n peg$c57 = { type: \"literal\", value: \"\\\\#\", description: \"\\\"\\\\\\\\#\\\"\" },\n peg$c58 = function() { return '\\\\#'; },\n peg$c59 = \"\\\\{\",\n peg$c60 = { type: \"literal\", value: \"\\\\{\", description: \"\\\"\\\\\\\\{\\\"\" },\n peg$c61 = function() { return '\\u007B'; },\n peg$c62 = \"\\\\}\",\n peg$c63 = { type: \"literal\", value: \"\\\\}\", description: \"\\\"\\\\\\\\}\\\"\" },\n peg$c64 = function() { return '\\u007D'; },\n peg$c65 = \"\\\\u\",\n peg$c66 = { type: \"literal\", value: \"\\\\u\", description: \"\\\"\\\\\\\\u\\\"\" },\n peg$c67 = function(digits) {\n return String.fromCharCode(parseInt(digits, 16));\n },\n peg$c68 = function(chars) { return chars.join(''); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsestart() {\n var s0;\n\n s0 = peg$parsemessageFormatPattern();\n\n return s0;\n }\n\n function peg$parsemessageFormatPattern() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemessageFormatElement();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemessageFormatElement();\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsemessageFormatElement() {\n var s0;\n\n s0 = peg$parsemessageTextElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n }\n\n return s0;\n }\n\n function peg$parsemessageText() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c3(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsews();\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsemessageTextElement() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c4(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseargument() {\n var s0, s1, s2;\n\n s0 = peg$parsenumber();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c7;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargument();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c10;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseelementFormat();\n if (s8 !== peg$FAILED) {\n s6 = [s6, s7, s8];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c9;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c12;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s7 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c14(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseelementFormat() {\n var s0;\n\n s0 = peg$parsesimpleFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectOrdinalFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectFormat();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsesimpleFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c15) {\n s1 = peg$c15;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c10;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsechars();\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c9;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c21(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c24(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectOrdinalFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 13) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 13;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c26); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c27(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c28) {\n s1 = peg$c28;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseoptionalFormatPattern();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseoptionalFormatPattern();\n }\n } else {\n s5 = peg$c2;\n }\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c30(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c31;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c32); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$parsechars();\n }\n\n return s0;\n }\n\n function peg$parseoptionalFormatPattern() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselector();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c7;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessageFormatPattern();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c12;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s8 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c33(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c34) {\n s1 = peg$c34;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c36(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralStyle() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseoffset();\n if (s1 === peg$FAILED) {\n s1 = peg$c9;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoptionalFormatPattern();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoptionalFormatPattern();\n }\n } else {\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c37(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsews() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = [];\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n }\n } else {\n s0 = peg$c2;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1, s2;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsews();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsews();\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c42.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n\n return s0;\n }\n\n function peg$parsehexDigit() {\n var s0;\n\n if (peg$c44.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c45); }\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c46;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c47); }\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n if (peg$c48.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c49); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsedigit();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsedigit();\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c50(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsechar() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c53) {\n s1 = peg$c53;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c55();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c56) {\n s1 = peg$c56;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c58();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c60); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c64();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c65) {\n s1 = peg$c65;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c66); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parsehexDigit();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehexDigit();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehexDigit();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehexDigit();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c67(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsechars() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsechar();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsechar();\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c68(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {extend, hop} from './utils';\nimport {defineProperty, objCreate} from './es5';\nimport Compiler from './compiler';\nimport parser from 'intl-messageformat-parser';\n\nexport default MessageFormat;\n\n// -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n // Parse string messages into an AST.\n var ast = typeof message === 'string' ?\n MessageFormat.__parse(message) : message;\n\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n formats = this._mergeFormats(MessageFormat.formats, formats);\n\n // Defined first because it's used to build the format pattern.\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n\n // Compile the `ast` to a pattern that is highly optimized for repeated\n // `format()` invocations. **Note:** This passes the `locales` set provided\n // to the constructor instead of just the resolved locale.\n var pluralFn = this._findPluralRuleFunction(this._locale);\n var pattern = this._compilePattern(ast, locales, formats, pluralFn);\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var messageFormat = this;\n this.format = function (values) {\n return messageFormat._format(pattern, values);\n };\n}\n\n// Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\ndefineProperty(MessageFormat, 'formats', {\n enumerable: true,\n\n value: {\n number: {\n 'currency': {\n style: 'currency'\n },\n\n 'percent': {\n style: 'percent'\n }\n },\n\n date: {\n 'short': {\n month: 'numeric',\n day : 'numeric',\n year : '2-digit'\n },\n\n 'medium': {\n month: 'short',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'long': {\n month: 'long',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'full': {\n weekday: 'long',\n month : 'long',\n day : 'numeric',\n year : 'numeric'\n }\n },\n\n time: {\n 'short': {\n hour : 'numeric',\n minute: 'numeric'\n },\n\n 'medium': {\n hour : 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n\n 'long': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n },\n\n 'full': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n }\n }\n }\n});\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(MessageFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(MessageFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlMessageFormat is missing a ' +\n '`locale` property'\n );\n }\n\n MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n}});\n\n// Defines `__parse()` static method as an exposed private.\ndefineProperty(MessageFormat, '__parse', {value: parser.parse});\n\n// Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\ndefineProperty(MessageFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n // TODO: Provide anything else?\n return {\n locale: this._locale\n };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n var compiler = new Compiler(locales, formats, pluralFn);\n return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n var localeData = MessageFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find a `pluralRuleFunction` to return.\n while (data) {\n if (data.pluralRuleFunction) {\n return data.pluralRuleFunction;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlMessageFormat is missing a ' +\n '`pluralRuleFunction` for :' + locale\n );\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n var result = '',\n i, len, part, id, value;\n\n for (i = 0, len = pattern.length; i < len; i += 1) {\n part = pattern[i];\n\n // Exist early for string parts.\n if (typeof part === 'string') {\n result += part;\n continue;\n }\n\n id = part.id;\n\n // Enforce that all required values are provided by the caller.\n if (!(values && hop.call(values, id))) {\n throw new Error('A value must be provided for: ' + id);\n }\n\n value = values[id];\n\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (part.options) {\n result += this._format(part.getOption(value), values);\n } else {\n result += part.format(value);\n }\n }\n\n return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n var mergedFormats = {},\n type, mergedType;\n\n for (type in defaults) {\n if (!hop.call(defaults, type)) { continue; }\n\n mergedFormats[type] = mergedType = objCreate(defaults[type]);\n\n if (formats && hop.call(formats, type)) {\n extend(mergedType, formats[type]);\n }\n }\n\n return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(MessageFormat.defaultLocale);\n\n var localeData = MessageFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlMessageFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n","/* jslint esnext: true */\n\nimport IntlMessageFormat from './core';\nimport defaultLocale from './en';\n\nIntlMessageFormat.__addLocaleData(defaultLocale);\nIntlMessageFormat.defaultLocale = 'en';\n\nexport default IntlMessageFormat;\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"}};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nvar round = Math.round;\n\nfunction daysToYears(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n return days * 400 / 146097;\n}\n\nexport default function (from, to) {\n // Convert to ms timestamps.\n from = +from;\n to = +to;\n\n var millisecond = round(to - from),\n second = round(millisecond / 1000),\n minute = round(second / 60),\n hour = round(minute / 60),\n day = round(hour / 24),\n week = round(day / 7);\n\n var rawYears = daysToYears(day),\n month = round(rawYears * 12),\n year = round(rawYears);\n\n return {\n millisecond: millisecond,\n second : second,\n minute : minute,\n hour : hour,\n day : day,\n week : week,\n month : month,\n year : year\n };\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport {defineProperty, objCreate, arrIndexOf, isArray, dateNow};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nvar arrIndexOf = Array.prototype.indexOf || function (search, fromIndex) {\n /*jshint validthis:true */\n var arr = this;\n if (!arr.length) {\n return -1;\n }\n\n for (var i = fromIndex || 0, max = arr.length; i < max; i++) {\n if (arr[i] === search) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar isArray = Array.isArray || function (obj) {\n return toString.call(obj) === '[object Array]';\n};\n\nvar dateNow = Date.now || function () {\n return new Date().getTime();\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport diff from './diff';\nimport {\n defineProperty,\n objCreate,\n arrIndexOf,\n isArray,\n dateNow\n} from './es5';\n\nexport default RelativeFormat;\n\n// -----------------------------------------------------------------------------\n\nvar FIELDS = ['second', 'minute', 'hour', 'day', 'month', 'year'];\nvar STYLES = ['best fit', 'numeric'];\n\n// -- RelativeFormat -----------------------------------------------------------\n\nfunction RelativeFormat(locales, options) {\n options = options || {};\n\n // Make a copy of `locales` if it's an array, so that it doesn't change\n // since it's used lazily.\n if (isArray(locales)) {\n locales = locales.concat();\n }\n\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n defineProperty(this, '_options', {value: {\n style: this._resolveStyle(options.style),\n units: this._isValidUnits(options.units) && options.units\n }});\n\n defineProperty(this, '_locales', {value: locales});\n defineProperty(this, '_fields', {value: this._findFields(this._locale)});\n defineProperty(this, '_messages', {value: objCreate(null)});\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var relativeFormat = this;\n this.format = function format(date, options) {\n return relativeFormat._format(date, options);\n };\n}\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(RelativeFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(RelativeFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlRelativeFormat is missing a ' +\n '`locale` property value'\n );\n }\n\n RelativeFormat.__localeData__[data.locale.toLowerCase()] = data;\n\n // Add data to IntlMessageFormat.\n IntlMessageFormat.__addLocaleData(data);\n}});\n\n// Define public `defaultLocale` property which can be set by the developer, or\n// it will be set when the first RelativeFormat instance is created by\n// leveraging the resolved locale from `Intl`.\ndefineProperty(RelativeFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\n// Define public `thresholds` property which can be set by the developer, and\n// defaults to relative time thresholds from moment.js.\ndefineProperty(RelativeFormat, 'thresholds', {\n enumerable: true,\n\n value: {\n second: 45, // seconds to minute\n minute: 45, // minutes to hour\n hour : 22, // hours to day\n day : 26, // days to month\n month : 11 // months to year\n }\n});\n\nRelativeFormat.prototype.resolvedOptions = function () {\n return {\n locale: this._locale,\n style : this._options.style,\n units : this._options.units\n };\n};\n\nRelativeFormat.prototype._compileMessage = function (units) {\n // `this._locales` is the original set of locales the user specified to the\n // constructor, while `this._locale` is the resolved root locale.\n var locales = this._locales;\n var resolvedLocale = this._locale;\n\n var field = this._fields[units];\n var relativeTime = field.relativeTime;\n var future = '';\n var past = '';\n var i;\n\n for (i in relativeTime.future) {\n if (relativeTime.future.hasOwnProperty(i)) {\n future += ' ' + i + ' {' +\n relativeTime.future[i].replace('{0}', '#') + '}';\n }\n }\n\n for (i in relativeTime.past) {\n if (relativeTime.past.hasOwnProperty(i)) {\n past += ' ' + i + ' {' +\n relativeTime.past[i].replace('{0}', '#') + '}';\n }\n }\n\n var message = '{when, select, future {{0, plural, ' + future + '}}' +\n 'past {{0, plural, ' + past + '}}}';\n\n // Create the synthetic IntlMessageFormat instance using the original\n // locales value specified by the user when constructing the the parent\n // IntlRelativeFormat instance.\n return new IntlMessageFormat(message, locales);\n};\n\nRelativeFormat.prototype._getMessage = function (units) {\n var messages = this._messages;\n\n // Create a new synthetic message based on the locale data from CLDR.\n if (!messages[units]) {\n messages[units] = this._compileMessage(units);\n }\n\n return messages[units];\n};\n\nRelativeFormat.prototype._getRelativeUnits = function (diff, units) {\n var field = this._fields[units];\n\n if (field.relative) {\n return field.relative[diff];\n }\n};\n\nRelativeFormat.prototype._findFields = function (locale) {\n var localeData = RelativeFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find `fields` to return.\n while (data) {\n if (data.fields) {\n return data.fields;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlRelativeFormat is missing `fields` for :' +\n locale\n );\n};\n\nRelativeFormat.prototype._format = function (date, options) {\n var now = options && options.now !== undefined ? options.now : dateNow();\n\n if (date === undefined) {\n date = now;\n }\n\n // Determine if the `date` and optional `now` values are valid, and throw a\n // similar error to what `Intl.DateTimeFormat#format()` would throw.\n if (!isFinite(now)) {\n throw new RangeError(\n 'The `now` option provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n if (!isFinite(date)) {\n throw new RangeError(\n 'The date value provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n var diffReport = diff(now, date);\n var units = this._options.units || this._selectUnits(diffReport);\n var diffInUnits = diffReport[units];\n\n if (this._options.style !== 'numeric') {\n var relativeUnits = this._getRelativeUnits(diffInUnits, units);\n if (relativeUnits) {\n return relativeUnits;\n }\n }\n\n return this._getMessage(units).format({\n '0' : Math.abs(diffInUnits),\n when: diffInUnits < 0 ? 'past' : 'future'\n });\n};\n\nRelativeFormat.prototype._isValidUnits = function (units) {\n if (!units || arrIndexOf.call(FIELDS, units) >= 0) {\n return true;\n }\n\n if (typeof units === 'string') {\n var suggestion = /s$/.test(units) && units.substr(0, units.length - 1);\n if (suggestion && arrIndexOf.call(FIELDS, suggestion) >= 0) {\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` ' +\n 'value, did you mean: ' + suggestion\n );\n }\n }\n\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` value, it ' +\n 'must be one of: \"' + FIELDS.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(RelativeFormat.defaultLocale);\n\n var localeData = RelativeFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlRelativeFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n\nRelativeFormat.prototype._resolveStyle = function (style) {\n // Default to \"best fit\" style.\n if (!style) {\n return STYLES[0];\n }\n\n if (arrIndexOf.call(STYLES, style) >= 0) {\n return style;\n }\n\n throw new Error(\n '\"' + style + '\" is not a valid IntlRelativeFormat `style` value, it ' +\n 'must be one of: \"' + STYLES.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._selectUnits = function (diffReport) {\n var i, l, units;\n\n for (i = 0, l = FIELDS.length; i < l; i += 1) {\n units = FIELDS[i];\n\n if (Math.abs(diffReport[units]) < RelativeFormat.thresholds[units]) {\n break;\n }\n }\n\n return units;\n};\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nexport function addLocaleData(data = []) {\n let locales = Array.isArray(data) ? data : [data];\n\n locales.forEach((localeData) => {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nexport function hasLocaleData(locale) {\n let localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n let normalizedLocale = locale && locale.toLowerCase();\n\n return !!(\n IntlMessageFormat.__localeData__[normalizedLocale] &&\n IntlRelativeFormat.__localeData__[normalizedLocale]\n );\n}\n\nexport function registerMessages(Vue, locale, messages) {\n Vue.__allMessages = Vue.__allMessages || {};\n Vue.__allMessages[locale] = Vue.__allMessages[locale] || {};\n Object.assign(Vue.__allMessages[locale], messages);\n}\n\nexport function registerFormats(Vue, locale, formats) {\n Vue.__allFormats = Vue.__allFormats || {};\n Vue.__allFormats[locale] = Vue.__allFormats[locale] || {};\n Object.assign(Vue.__allFormats[locale], formats);\n}\n","/* jslint esnext: true */\n\nimport IntlRelativeFormat from './core';\nimport defaultLocale from './en';\n\nIntlRelativeFormat.__addLocaleData(defaultLocale);\nIntlRelativeFormat.defaultLocale = 'en';\n\nexport default IntlRelativeFormat;\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}}}};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n// Function.prototype.bind implementation from Mozilla Developer Network:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill\n\nvar bind = Function.prototype.bind || function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexport {bind, defineProperty, objCreate};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jshint esnext: true */\n\nimport {bind, objCreate} from './es5';\n\nexport default createFormatCache;\n\n// -----------------------------------------------------------------------------\n\nfunction createFormatCache(FormatConstructor) {\n var cache = objCreate(null);\n\n return function () {\n var args = Array.prototype.slice.call(arguments);\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n\n if (!format) {\n format = new (bind.apply(FormatConstructor, [null].concat(args)))();\n\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n\n return format;\n };\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction getCacheId(inputs) {\n // When JSON is not available in the runtime, we will not create a cache id.\n if (typeof JSON === 'undefined') { return; }\n\n var cacheId = [];\n\n var i, len, input;\n\n for (i = 0, len = inputs.length; i < len; i += 1) {\n input = inputs[i];\n\n if (input && typeof input === 'object') {\n cacheId.push(orderedProps(input));\n } else {\n cacheId.push(input);\n }\n }\n\n return JSON.stringify(cacheId);\n}\n\nfunction orderedProps(obj) {\n var props = [],\n keys = [];\n\n var key, i, len, prop;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n\n var orderedKeys = keys.sort();\n\n for (i = 0, len = orderedKeys.length; i < len; i += 1) {\n key = orderedKeys[i];\n prop = {};\n\n prop[key] = obj[key];\n props[i] = prop;\n }\n\n return props;\n}\n","import IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport IntlPluralFormat from './plural';\nimport memoizeIntlConstructor from 'intl-format-cache';\n\nconst state = {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat : memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat : memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat : memoizeIntlConstructor(IntlPluralFormat),\n now: Date.now()\n};\n\nexport default state;\n","/*\n * This file is an unmodified copy of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nimport IntlMessageFormat from 'intl-messageformat';\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nexport default class IntlPluralFormat {\n constructor(locales, options = {}) {\n let useOrdinal = options.style === 'ordinal';\n let pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = (value) => pluralFn(value, useOrdinal);\n }\n}\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst bool = { type : Boolean },\n number = { type : Number },\n string = { type : String },\n object = { type : Object },\n oneOf = function(array) {\n return {validator: function(value) {\n return array.indexOf(value) > -1;\n }};\n };\n\nexport const intlConfigPropTypes = {\n locale : string,\n formats : object,\n messages: object,\n\n defaultLocale : string,\n defaultFormats: object\n};\n\nexport const dateTimeFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12 : bool,\n\n weekday : oneOf(['narrow', 'short', 'long']),\n era : oneOf(['narrow', 'short', 'long']),\n year : oneOf(['numeric', '2-digit']),\n month : oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day : oneOf(['numeric', '2-digit']),\n hour : oneOf(['numeric', '2-digit']),\n minute : oneOf(['numeric', '2-digit']),\n second : oneOf(['numeric', '2-digit']),\n timeZoneName: oneOf(['short', 'long'])\n};\n\nexport const numberFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n\n style : oneOf(['decimal', 'currency', 'percent']),\n currency : string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping : bool,\n\n minimumIntegerDigits : number,\n minimumFractionDigits : number,\n maximumFractionDigits : number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nexport const relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nexport const pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nconst ESCAPED_CHARS = {\n '&' : '&',\n '>' : '>',\n '<' : '<',\n '\"' : '"',\n '\\'': '''\n};\n\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, (match) => ESCAPED_CHARS[match]);\n}\n\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults.hasOwnProperty(name)) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nimport {\n dateTimeFormatPropTypes,\n numberFormatPropTypes,\n relativeFormatPropTypes,\n pluralFormatPropTypes\n} from './types';\n\nimport {\n escape,\n filterProps\n} from './utils';\n\nconst DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nconst NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nconst RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nconst PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nconst RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour : 24, // hours to day\n day : 30, // days to month\n month : 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n const {thresholds} = IntlRelativeFormat;\n ({\n second: thresholds.second,\n minute: thresholds.minute,\n hour : thresholds.hour,\n day : thresholds.day,\n month : thresholds.month\n } = newThresholds);\n}\n\nfunction getNamedFormat(formats, type, name) {\n let format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] No ${type} format named: ${name}`\n );\n }\n}\n\nexport function formatDate(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'date', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting date.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatTime(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'time', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n // When no formatting options have been specified, default to outputting a\n // time; e.g.: \"9:42 AM\".\n if (Object.keys(filteredOptions).length === 0) {\n filteredOptions = {\n hour : 'numeric',\n minute: 'numeric'\n };\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting time.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatRelative(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let now = new Date(options.now);\n let defaults = format && getNamedFormat(formats, 'relative', format);\n let filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n const oldThresholds = Object.assign({}, IntlRelativeFormat.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting relative time.\\n${e}`\n );\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nexport function formatNumber(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let defaults = format && getNamedFormat(formats, 'number', format);\n let filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting number.\\n${e}`\n );\n }\n }\n\n return String(value);\n}\n\nexport function formatPlural(config, state, value, options = {}) {\n const {locale} = config;\n\n let filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting plural.\\n${e}`\n );\n }\n }\n\n return 'other';\n}\n\nexport function formatMessage(config, state, messageDescriptor = {}, values = {}) {\n const {\n locale,\n formats,\n messages,\n defaultLocale,\n defaultFormats\n } = config;\n\n const {\n id,\n defaultMessage\n } = messageDescriptor;\n\n // `id` is a required field of a Message Descriptor.\n if (!id) {\n throw new TypeError('[Vue Intl] An `id` must be provided to format a message.');\n }\n\n const message = messages && messages[id];\n const hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n // When debugging in English, show default string to enable hot module reloading\n if (process.env.NODE_ENV === 'development' && defaultMessage && locale === 'en') {\n var formatter = state.getMessageFormat(defaultMessage, locale, formats);\n return formatter.format(values);\n }\n\n let formattedMessage;\n\n if (message) {\n try {\n let formatter = state.getMessageFormat(\n message, locale, formats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '') +\n `\\n${e}`\n );\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n\n console.error(\n `[Vue Intl] Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')\n );\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n let formatter = state.getMessageFormat(\n defaultMessage, defaultLocale, defaultFormats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting the default message for: \"${id}\"` +\n `\\n${e}`\n );\n }\n }\n }\n\n if (!formattedMessage) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`\n );\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nexport function formatHTMLMessage(config, state, messageDescriptor, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n let escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n let value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","const format = (ctx, values) => ctx.parent.$formatMessage(ctx.props, values)\nconst placeholder = (name) => `@\\0@\\0${name}\\0@\\0@`\nconst placeholderRegex = /@\\0@\\0(.*?)\\0@\\0@/g\n\nexport default {\n functional: true,\n\n props: {\n id: {type: String, required: true},\n defaultMessage: String,\n values: Object,\n tagName: {type: String, default: 'span'}\n },\n\n render (h, ctx) {\n const slots = ctx.slots()\n const slotNames = Object.keys(slots)\n if (slotNames.length === 0) {\n return h(ctx.props.tagName, ctx.data, format(ctx, ctx.props.values))\n }\n\n const values = Object.assign({}, ctx.props.values)\n slotNames.forEach(slot => {\n values[slot] = placeholder(slot)\n })\n\n const message = format(ctx, values)\n\n let match;\n let pos = 0;\n const children = []\n while ((match = placeholderRegex.exec(message)) !== null) {\n children.push(message.substring(pos, match.index), slots[match[1]])\n pos = match.index + match[0].length\n }\n children.push(message.substring(pos))\n return h(ctx.props.tagName, ctx.data, children)\n }\n}\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"year-short\":{\"displayName\":\"yr.\",\"relative\":{\"0\":\"this yr.\",\"1\":\"next yr.\",\"-1\":\"last yr.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yr.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yr. ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"month-short\":{\"displayName\":\"mo.\",\"relative\":{\"0\":\"this mo.\",\"1\":\"next mo.\",\"-1\":\"last mo.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"day-short\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"hour-short\":{\"displayName\":\"hr.\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hr.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hr. ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"minute-short\":{\"displayName\":\"min.\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} min.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} min. ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}},\"second-short\":{\"displayName\":\"sec.\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} sec.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} sec. ago\"}}}}};\n","import {addLocaleData, registerMessages, registerFormats} from './localeData';\nimport setLocale from './setLocale';\nimport getLocaleData from './getLocaleData';\nimport state from './state';\nimport * as formatMethods from './format';\nimport FormattedMessage from './FormattedMessage'\nimport defaultLocaleData from './en';\n\naddLocaleData(defaultLocaleData);\n\n\nfunction install(Vue, options={}) {\n Vue.addLocaleData = addLocaleData;\n Vue.registerMessages = registerMessages.bind(null, Vue);\n Vue.registerFormats = registerFormats.bind(null, Vue);\n Vue.setLocale = setLocale.bind(null, Vue);\n Vue.__format_state = state;\n Vue.__format_config = {\n defaultLocale: options.defaultLocale || 'en',\n defaultFormats: options.defaultFormats || {}\n };\n\n for (let key of Object.getOwnPropertyNames(formatMethods).filter((name) => {\n return formatMethods[name] instanceof Function;\n })) {\n Vue.prototype[`\\$${key}`] = function(...args) {\n let config = {locale: Vue.locale};\n Object.assign(config, getLocaleData(Vue));\n const state = Vue.__format_state;\n return formatMethods[key](config, state, ...args);\n }\n }\n}\n\nexport default {\n addLocaleData,\n FormattedMessage,\n install,\n}\n","export default function setLocale(Vue, locale) {\n Vue.set(Vue, 'locale', locale);\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n Vue.__format_config.formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n Vue.__format_config.messages = (Vue.__allMessages || {})[locale] || {};\n}\n","export default function getLocaleData(Vue) {\n const locale = Vue.locale;\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n const formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n const messages = (Vue.__allMessages || {})[locale] || {};\n return {\n formats,\n messages,\n defaultLocale: Vue.__format_config.defaultLocale,\n defaultFormats: Vue.__format_config.defaultFormats\n };\n}\n"],"names":["hop","Object","prototype","hasOwnProperty","extend","obj","i","len","source","key","sources","Array","slice","call","arguments","length","defineProperty","e","name","desc","__defineGetter__","get","value","objCreate","create","proto","props","k","F","Compiler","locales","formats","pluralFn","StringFormat","id","PluralFormat","useOrdinal","offset","options","PluralOffsetString","numberFormat","string","SelectFormat","compile","ast","pluralStack","currentPlural","pluralNumberFormat","this","compileMessage","type","Error","element","elements","pattern","push","compileMessageText","compileArgument","test","Intl","NumberFormat","format","replace","number","style","date","DateTimeFormat","time","compileOptions","ordinal","option","optionsHash","selector","pop","String","getOption","other","SyntaxError","message","expected","found","line","column","child","parent","ctor","constructor","input","peg$result","pos","posDetails","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c1","peg$c2","peg$c3","text","j","outerLen","inner","innerLen","peg$c4","messageText","peg$c5","peg$c6","description","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$c22","peg$c23","peg$c24","pluralStyle","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","digits","parseInt","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","fromCharCode","peg$c68","chars","join","peg$currPos","peg$cachedPos","peg$cachedPosDetails","seenCR","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","peg$fail","peg$parsemessageFormatPattern","s1","s2","peg$parsemessageFormatElement","s0","s3","s5","s6","s7","s8","s4","peg$parse_","peg$parsechars","peg$parsews","substring","peg$parsemessageText","charCodeAt","peg$parsenumber","charAt","peg$parseargument","substr","peg$parsepluralStyle","peg$parseoptionalFormatPattern","peg$parseselectFormat","peg$parsedigit","peg$parsehexDigit","peg$parsechar","details","startPos","endPos","p","ch","sort","a","b","splice","expectedDescs","s","hex","toString","toUpperCase","stringEscape","buildMessage","MessageFormat","__parse","TypeError","_mergeFormats","_resolveLocale","_findPluralRuleFunction","_locale","_compilePattern","messageFormat","values","_format","data","locale","__localeData__","toLowerCase","parser","parse","undefined","resolvedOptions","localeData","pluralRuleFunction","parentLocale","part","result","defaults","mergedType","mergedFormats","concat","defaultLocale","localeParts","split","__addLocaleData","n","ord","v0","t0","Number","n10","n100","IntlMessageFormat","round","Math","arrIndexOf","indexOf","search","fromIndex","max","isArray","dateNow","Date","now","getTime","FIELDS","STYLES","RelativeFormat","_resolveStyle","_isValidUnits","units","_findFields","relativeFormat","addLocaleData","forEach","_options","_compileMessage","_locales","relativeTime","_fields","future","past","_getMessage","messages","_messages","_getRelativeUnits","diff","field","relative","fields","isFinite","RangeError","millisecond","second","minute","hour","day","week","rawYears","diffReport","_selectUnits","diffInUnits","relativeUnits","abs","suggestion","l","thresholds","year","displayName","0","1","-1","one","month","IntlRelativeFormat","bind","Function","oThis","aArgs","fToBind","fNOP","fBound","apply","createFormatCache","FormatConstructor","cache","args","cacheId","inputs","JSON","orderedProps","stringify","getCacheId","prop","keys","orderedKeys","state","memoizeIntlConstructor","bool","Boolean","oneOf","array","validator","dateTimeFormatPropTypes","numberFormatPropTypes","relativeFormatPropTypes","pluralFormatPropTypes","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","filterProps","whitelist","reduce","filtered","DATE_TIME_FORMAT_OPTIONS","NUMBER_FORMAT_OPTIONS","RELATIVE_FORMAT_OPTIONS","PLURAL_FORMAT_OPTIONS","RELATIVE_FORMAT_THRESHOLDS","updateRelativeFormatThresholds","newThresholds","getNamedFormat","formatMessage","config","messageDescriptor","defaultFormats","defaultMessage","formattedMessage","getMessageFormat","filteredOptions","getDateTimeFormat","oldThresholds","assign","getRelativeFormat","getNumberFormat","getPluralFormat","rawValues","escaped","match","ctx","$formatMessage","placeholderRegex","required","default","h","slots","slotNames","tagName","slot","children","exec","index","year-short","month-short","day-short","hour-short","minute-short","second-short","Vue","registerMessages","__allMessages","registerFormats","__allFormats","setLocale","set","format_data","getOwnPropertyNames","__format_config","__format_state","formatMethods","filter"],"mappings":"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"} \ No newline at end of file From 1d8bd98cefc790514ce6b4912d4c9801626a8a25 Mon Sep 17 00:00:00 2001 From: indirectlylit Date: Sat, 1 Dec 2018 13:35:15 -0800 Subject: [PATCH 3/4] update naming of dist files to clarify dev vs prod builds --- dist/{vue-intl.js => vue-intl.dev.js} | 2 +- dist/vue-intl.dev.js.map | 1 + dist/vue-intl.js.map | 1 - dist/vue-intl.min.js.map | 1 - dist/{vue-intl.min.js => vue-intl.prod.min.js} | 2 +- dist/vue-intl.prod.min.js.map | 1 + package.json | 2 +- rollup.config.dist.js | 4 ++-- 8 files changed, 7 insertions(+), 7 deletions(-) rename dist/{vue-intl.js => vue-intl.dev.js} (99%) create mode 100644 dist/vue-intl.dev.js.map delete mode 100644 dist/vue-intl.js.map delete mode 100644 dist/vue-intl.min.js.map rename dist/{vue-intl.min.js => vue-intl.prod.min.js} (99%) create mode 100644 dist/vue-intl.prod.min.js.map diff --git a/dist/vue-intl.js b/dist/vue-intl.dev.js similarity index 99% rename from dist/vue-intl.js rename to dist/vue-intl.dev.js index 204cfbe..e8e45ba 100644 --- a/dist/vue-intl.js +++ b/dist/vue-intl.dev.js @@ -3325,4 +3325,4 @@ var vueIntl = { return vueIntl; }))); -//# sourceMappingURL=vue-intl.js.map +//# sourceMappingURL=vue-intl.dev.js.map diff --git a/dist/vue-intl.dev.js.map b/dist/vue-intl.dev.js.map new file mode 100644 index 0000000..176e17b --- /dev/null +++ b/dist/vue-intl.dev.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vue-intl.dev.js","sources":["../node_modules/intl-messageformat/src/utils.js","../node_modules/intl-messageformat/src/es5.js","../node_modules/intl-messageformat/src/compiler.js","../node_modules/intl-messageformat-parser/src/parser.js","../node_modules/intl-messageformat/src/core.js","../node_modules/intl-messageformat/src/en.js","../node_modules/intl-messageformat/src/main.js","../node_modules/intl-relativeformat/src/diff.js","../node_modules/intl-relativeformat/src/es5.js","../node_modules/intl-relativeformat/src/core.js","../node_modules/intl-relativeformat/src/en.js","../node_modules/intl-relativeformat/src/main.js","../src/localeData.js","../src/setLocale.js","../src/getLocaleData.js","../src/plural.js","../node_modules/intl-format-cache/src/es5.js","../node_modules/intl-format-cache/src/memoizer.js","../src/state.js","../src/types.js","../src/utils.js","../src/format.js","../src/FormattedMessage.js","../src/en.js","../src/vue-intl.js"],"sourcesContent":["/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport var hop = Object.prototype.hasOwnProperty;\n\nexport function extend(obj) {\n var sources = Array.prototype.slice.call(arguments, 1),\n i, len, source, key;\n\n for (i = 0, len = sources.length; i < len; i += 1) {\n source = sources[i];\n if (!source) { continue; }\n\n for (key in source) {\n if (hop.call(source, key)) {\n obj[key] = source[key];\n }\n }\n }\n\n return obj;\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {hop} from './utils';\n\nexport {defineProperty, objCreate};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport default Compiler;\n\nfunction Compiler(locales, formats, pluralFn) {\n this.locales = locales;\n this.formats = formats;\n this.pluralFn = pluralFn;\n}\n\nCompiler.prototype.compile = function (ast) {\n this.pluralStack = [];\n this.currentPlural = null;\n this.pluralNumberFormat = null;\n\n return this.compileMessage(ast);\n};\n\nCompiler.prototype.compileMessage = function (ast) {\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new Error('Message AST is not of type: \"messageFormatPattern\"');\n }\n\n var elements = ast.elements,\n pattern = [];\n\n var i, len, element;\n\n for (i = 0, len = elements.length; i < len; i += 1) {\n element = elements[i];\n\n switch (element.type) {\n case 'messageTextElement':\n pattern.push(this.compileMessageText(element));\n break;\n\n case 'argumentElement':\n pattern.push(this.compileArgument(element));\n break;\n\n default:\n throw new Error('Message element does not have a valid type');\n }\n }\n\n return pattern;\n};\n\nCompiler.prototype.compileMessageText = function (element) {\n // When this `element` is part of plural sub-pattern and its value contains\n // an unescaped '#', use a `PluralOffsetString` helper to properly output\n // the number with the correct offset in the string.\n if (this.currentPlural && /(^|[^\\\\])#/g.test(element.value)) {\n // Create a cache a NumberFormat instance that can be reused for any\n // PluralOffsetString instance in this message.\n if (!this.pluralNumberFormat) {\n this.pluralNumberFormat = new Intl.NumberFormat(this.locales);\n }\n\n return new PluralOffsetString(\n this.currentPlural.id,\n this.currentPlural.format.offset,\n this.pluralNumberFormat,\n element.value);\n }\n\n // Unescape the escaped '#'s in the message text.\n return element.value.replace(/\\\\#/g, '#');\n};\n\nCompiler.prototype.compileArgument = function (element) {\n var format = element.format;\n\n if (!format) {\n return new StringFormat(element.id);\n }\n\n var formats = this.formats,\n locales = this.locales,\n pluralFn = this.pluralFn,\n options;\n\n switch (format.type) {\n case 'numberFormat':\n options = formats.number[format.style];\n return {\n id : element.id,\n format: new Intl.NumberFormat(locales, options).format\n };\n\n case 'dateFormat':\n options = formats.date[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'timeFormat':\n options = formats.time[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'pluralFormat':\n options = this.compileOptions(element);\n return new PluralFormat(\n element.id, format.ordinal, format.offset, options, pluralFn\n );\n\n case 'selectFormat':\n options = this.compileOptions(element);\n return new SelectFormat(element.id, options);\n\n default:\n throw new Error('Message element does not have a valid format type');\n }\n};\n\nCompiler.prototype.compileOptions = function (element) {\n var format = element.format,\n options = format.options,\n optionsHash = {};\n\n // Save the current plural element, if any, then set it to a new value when\n // compiling the options sub-patterns. This conforms the spec's algorithm\n // for handling `\"#\"` syntax in message text.\n this.pluralStack.push(this.currentPlural);\n this.currentPlural = format.type === 'pluralFormat' ? element : null;\n\n var i, len, option;\n\n for (i = 0, len = options.length; i < len; i += 1) {\n option = options[i];\n\n // Compile the sub-pattern and save it under the options's selector.\n optionsHash[option.selector] = this.compileMessage(option.value);\n }\n\n // Pop the plural stack to put back the original current plural value.\n this.currentPlural = this.pluralStack.pop();\n\n return optionsHash;\n};\n\n// -- Compiler Helper Classes --------------------------------------------------\n\nfunction StringFormat(id) {\n this.id = id;\n}\n\nStringFormat.prototype.format = function (value) {\n if (!value) {\n return '';\n }\n\n return typeof value === 'string' ? value : String(value);\n};\n\nfunction PluralFormat(id, useOrdinal, offset, options, pluralFn) {\n this.id = id;\n this.useOrdinal = useOrdinal;\n this.offset = offset;\n this.options = options;\n this.pluralFn = pluralFn;\n}\n\nPluralFormat.prototype.getOption = function (value) {\n var options = this.options;\n\n var option = options['=' + value] ||\n options[this.pluralFn(value - this.offset, this.useOrdinal)];\n\n return option || options.other;\n};\n\nfunction PluralOffsetString(id, offset, numberFormat, string) {\n this.id = id;\n this.offset = offset;\n this.numberFormat = numberFormat;\n this.string = string;\n}\n\nPluralOffsetString.prototype.format = function (value) {\n var number = this.numberFormat.format(value - this.offset);\n\n return this.string\n .replace(/(^|[^\\\\])#/g, '$1' + number)\n .replace(/\\\\#/g, '#');\n};\n\nfunction SelectFormat(id, options) {\n this.id = id;\n this.options = options;\n}\n\nSelectFormat.prototype.getOption = function (value) {\n var options = this.options;\n return options[value] || options.other;\n};\n","export default (function() {\n /*\n * Generated by PEG.js 0.8.0.\n *\n * http://pegjs.majda.cz/\n */\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function SyntaxError(message, expected, found, offset, line, column) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.offset = offset;\n this.line = line;\n this.column = column;\n\n this.name = \"SyntaxError\";\n }\n\n peg$subclass(SyntaxError, Error);\n\n function parse(input) {\n var options = arguments.length > 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = [],\n peg$c1 = function(elements) {\n return {\n type : 'messageFormatPattern',\n elements: elements\n };\n },\n peg$c2 = peg$FAILED,\n peg$c3 = function(text) {\n var string = '',\n i, j, outerLen, inner, innerLen;\n\n for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n inner = text[i];\n\n for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n string += inner[j];\n }\n }\n\n return string;\n },\n peg$c4 = function(messageText) {\n return {\n type : 'messageTextElement',\n value: messageText\n };\n },\n peg$c5 = /^[^ \\t\\n\\r,.+={}#]/,\n peg$c6 = { type: \"class\", value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\", description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\" },\n peg$c7 = \"{\",\n peg$c8 = { type: \"literal\", value: \"{\", description: \"\\\"{\\\"\" },\n peg$c9 = null,\n peg$c10 = \",\",\n peg$c11 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c12 = \"}\",\n peg$c13 = { type: \"literal\", value: \"}\", description: \"\\\"}\\\"\" },\n peg$c14 = function(id, format) {\n return {\n type : 'argumentElement',\n id : id,\n format: format && format[2]\n };\n },\n peg$c15 = \"number\",\n peg$c16 = { type: \"literal\", value: \"number\", description: \"\\\"number\\\"\" },\n peg$c17 = \"date\",\n peg$c18 = { type: \"literal\", value: \"date\", description: \"\\\"date\\\"\" },\n peg$c19 = \"time\",\n peg$c20 = { type: \"literal\", value: \"time\", description: \"\\\"time\\\"\" },\n peg$c21 = function(type, style) {\n return {\n type : type + 'Format',\n style: style && style[2]\n };\n },\n peg$c22 = \"plural\",\n peg$c23 = { type: \"literal\", value: \"plural\", description: \"\\\"plural\\\"\" },\n peg$c24 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: false,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n };\n },\n peg$c25 = \"selectordinal\",\n peg$c26 = { type: \"literal\", value: \"selectordinal\", description: \"\\\"selectordinal\\\"\" },\n peg$c27 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: true,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n }\n },\n peg$c28 = \"select\",\n peg$c29 = { type: \"literal\", value: \"select\", description: \"\\\"select\\\"\" },\n peg$c30 = function(options) {\n return {\n type : 'selectFormat',\n options: options\n };\n },\n peg$c31 = \"=\",\n peg$c32 = { type: \"literal\", value: \"=\", description: \"\\\"=\\\"\" },\n peg$c33 = function(selector, pattern) {\n return {\n type : 'optionalFormatPattern',\n selector: selector,\n value : pattern\n };\n },\n peg$c34 = \"offset:\",\n peg$c35 = { type: \"literal\", value: \"offset:\", description: \"\\\"offset:\\\"\" },\n peg$c36 = function(number) {\n return number;\n },\n peg$c37 = function(offset, options) {\n return {\n type : 'pluralFormat',\n offset : offset,\n options: options\n };\n },\n peg$c38 = { type: \"other\", description: \"whitespace\" },\n peg$c39 = /^[ \\t\\n\\r]/,\n peg$c40 = { type: \"class\", value: \"[ \\\\t\\\\n\\\\r]\", description: \"[ \\\\t\\\\n\\\\r]\" },\n peg$c41 = { type: \"other\", description: \"optionalWhitespace\" },\n peg$c42 = /^[0-9]/,\n peg$c43 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c44 = /^[0-9a-f]/i,\n peg$c45 = { type: \"class\", value: \"[0-9a-f]i\", description: \"[0-9a-f]i\" },\n peg$c46 = \"0\",\n peg$c47 = { type: \"literal\", value: \"0\", description: \"\\\"0\\\"\" },\n peg$c48 = /^[1-9]/,\n peg$c49 = { type: \"class\", value: \"[1-9]\", description: \"[1-9]\" },\n peg$c50 = function(digits) {\n return parseInt(digits, 10);\n },\n peg$c51 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n peg$c52 = { type: \"class\", value: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\", description: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\" },\n peg$c53 = \"\\\\\\\\\",\n peg$c54 = { type: \"literal\", value: \"\\\\\\\\\", description: \"\\\"\\\\\\\\\\\\\\\\\\\"\" },\n peg$c55 = function() { return '\\\\'; },\n peg$c56 = \"\\\\#\",\n peg$c57 = { type: \"literal\", value: \"\\\\#\", description: \"\\\"\\\\\\\\#\\\"\" },\n peg$c58 = function() { return '\\\\#'; },\n peg$c59 = \"\\\\{\",\n peg$c60 = { type: \"literal\", value: \"\\\\{\", description: \"\\\"\\\\\\\\{\\\"\" },\n peg$c61 = function() { return '\\u007B'; },\n peg$c62 = \"\\\\}\",\n peg$c63 = { type: \"literal\", value: \"\\\\}\", description: \"\\\"\\\\\\\\}\\\"\" },\n peg$c64 = function() { return '\\u007D'; },\n peg$c65 = \"\\\\u\",\n peg$c66 = { type: \"literal\", value: \"\\\\u\", description: \"\\\"\\\\\\\\u\\\"\" },\n peg$c67 = function(digits) {\n return String.fromCharCode(parseInt(digits, 16));\n },\n peg$c68 = function(chars) { return chars.join(''); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsestart() {\n var s0;\n\n s0 = peg$parsemessageFormatPattern();\n\n return s0;\n }\n\n function peg$parsemessageFormatPattern() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemessageFormatElement();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemessageFormatElement();\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsemessageFormatElement() {\n var s0;\n\n s0 = peg$parsemessageTextElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n }\n\n return s0;\n }\n\n function peg$parsemessageText() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c3(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsews();\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsemessageTextElement() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c4(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseargument() {\n var s0, s1, s2;\n\n s0 = peg$parsenumber();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c7;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargument();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c10;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseelementFormat();\n if (s8 !== peg$FAILED) {\n s6 = [s6, s7, s8];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c9;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c12;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s7 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c14(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseelementFormat() {\n var s0;\n\n s0 = peg$parsesimpleFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectOrdinalFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectFormat();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsesimpleFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c15) {\n s1 = peg$c15;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c10;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsechars();\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c9;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c21(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c24(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectOrdinalFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 13) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 13;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c26); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c27(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c28) {\n s1 = peg$c28;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseoptionalFormatPattern();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseoptionalFormatPattern();\n }\n } else {\n s5 = peg$c2;\n }\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c30(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c31;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c32); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$parsechars();\n }\n\n return s0;\n }\n\n function peg$parseoptionalFormatPattern() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselector();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c7;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessageFormatPattern();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c12;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s8 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c33(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c34) {\n s1 = peg$c34;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c36(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralStyle() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseoffset();\n if (s1 === peg$FAILED) {\n s1 = peg$c9;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoptionalFormatPattern();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoptionalFormatPattern();\n }\n } else {\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c37(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsews() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = [];\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n }\n } else {\n s0 = peg$c2;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1, s2;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsews();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsews();\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c42.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n\n return s0;\n }\n\n function peg$parsehexDigit() {\n var s0;\n\n if (peg$c44.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c45); }\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c46;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c47); }\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n if (peg$c48.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c49); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsedigit();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsedigit();\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c50(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsechar() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c53) {\n s1 = peg$c53;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c55();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c56) {\n s1 = peg$c56;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c58();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c60); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c64();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c65) {\n s1 = peg$c65;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c66); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parsehexDigit();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehexDigit();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehexDigit();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehexDigit();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c67(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsechars() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsechar();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsechar();\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c68(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {extend, hop} from './utils';\nimport {defineProperty, objCreate} from './es5';\nimport Compiler from './compiler';\nimport parser from 'intl-messageformat-parser';\n\nexport default MessageFormat;\n\n// -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n // Parse string messages into an AST.\n var ast = typeof message === 'string' ?\n MessageFormat.__parse(message) : message;\n\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n formats = this._mergeFormats(MessageFormat.formats, formats);\n\n // Defined first because it's used to build the format pattern.\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n\n // Compile the `ast` to a pattern that is highly optimized for repeated\n // `format()` invocations. **Note:** This passes the `locales` set provided\n // to the constructor instead of just the resolved locale.\n var pluralFn = this._findPluralRuleFunction(this._locale);\n var pattern = this._compilePattern(ast, locales, formats, pluralFn);\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var messageFormat = this;\n this.format = function (values) {\n return messageFormat._format(pattern, values);\n };\n}\n\n// Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\ndefineProperty(MessageFormat, 'formats', {\n enumerable: true,\n\n value: {\n number: {\n 'currency': {\n style: 'currency'\n },\n\n 'percent': {\n style: 'percent'\n }\n },\n\n date: {\n 'short': {\n month: 'numeric',\n day : 'numeric',\n year : '2-digit'\n },\n\n 'medium': {\n month: 'short',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'long': {\n month: 'long',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'full': {\n weekday: 'long',\n month : 'long',\n day : 'numeric',\n year : 'numeric'\n }\n },\n\n time: {\n 'short': {\n hour : 'numeric',\n minute: 'numeric'\n },\n\n 'medium': {\n hour : 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n\n 'long': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n },\n\n 'full': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n }\n }\n }\n});\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(MessageFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(MessageFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlMessageFormat is missing a ' +\n '`locale` property'\n );\n }\n\n MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n}});\n\n// Defines `__parse()` static method as an exposed private.\ndefineProperty(MessageFormat, '__parse', {value: parser.parse});\n\n// Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\ndefineProperty(MessageFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n // TODO: Provide anything else?\n return {\n locale: this._locale\n };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n var compiler = new Compiler(locales, formats, pluralFn);\n return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n var localeData = MessageFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find a `pluralRuleFunction` to return.\n while (data) {\n if (data.pluralRuleFunction) {\n return data.pluralRuleFunction;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlMessageFormat is missing a ' +\n '`pluralRuleFunction` for :' + locale\n );\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n var result = '',\n i, len, part, id, value;\n\n for (i = 0, len = pattern.length; i < len; i += 1) {\n part = pattern[i];\n\n // Exist early for string parts.\n if (typeof part === 'string') {\n result += part;\n continue;\n }\n\n id = part.id;\n\n // Enforce that all required values are provided by the caller.\n if (!(values && hop.call(values, id))) {\n throw new Error('A value must be provided for: ' + id);\n }\n\n value = values[id];\n\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (part.options) {\n result += this._format(part.getOption(value), values);\n } else {\n result += part.format(value);\n }\n }\n\n return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n var mergedFormats = {},\n type, mergedType;\n\n for (type in defaults) {\n if (!hop.call(defaults, type)) { continue; }\n\n mergedFormats[type] = mergedType = objCreate(defaults[type]);\n\n if (formats && hop.call(formats, type)) {\n extend(mergedType, formats[type]);\n }\n }\n\n return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(MessageFormat.defaultLocale);\n\n var localeData = MessageFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlMessageFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"}};\n","/* jslint esnext: true */\n\nimport IntlMessageFormat from './core';\nimport defaultLocale from './en';\n\nIntlMessageFormat.__addLocaleData(defaultLocale);\nIntlMessageFormat.defaultLocale = 'en';\n\nexport default IntlMessageFormat;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nvar round = Math.round;\n\nfunction daysToYears(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n return days * 400 / 146097;\n}\n\nexport default function (from, to) {\n // Convert to ms timestamps.\n from = +from;\n to = +to;\n\n var millisecond = round(to - from),\n second = round(millisecond / 1000),\n minute = round(second / 60),\n hour = round(minute / 60),\n day = round(hour / 24),\n week = round(day / 7);\n\n var rawYears = daysToYears(day),\n month = round(rawYears * 12),\n year = round(rawYears);\n\n return {\n millisecond: millisecond,\n second : second,\n minute : minute,\n hour : hour,\n day : day,\n week : week,\n month : month,\n year : year\n };\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport {defineProperty, objCreate, arrIndexOf, isArray, dateNow};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nvar arrIndexOf = Array.prototype.indexOf || function (search, fromIndex) {\n /*jshint validthis:true */\n var arr = this;\n if (!arr.length) {\n return -1;\n }\n\n for (var i = fromIndex || 0, max = arr.length; i < max; i++) {\n if (arr[i] === search) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar isArray = Array.isArray || function (obj) {\n return toString.call(obj) === '[object Array]';\n};\n\nvar dateNow = Date.now || function () {\n return new Date().getTime();\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport diff from './diff';\nimport {\n defineProperty,\n objCreate,\n arrIndexOf,\n isArray,\n dateNow\n} from './es5';\n\nexport default RelativeFormat;\n\n// -----------------------------------------------------------------------------\n\nvar FIELDS = ['second', 'minute', 'hour', 'day', 'month', 'year'];\nvar STYLES = ['best fit', 'numeric'];\n\n// -- RelativeFormat -----------------------------------------------------------\n\nfunction RelativeFormat(locales, options) {\n options = options || {};\n\n // Make a copy of `locales` if it's an array, so that it doesn't change\n // since it's used lazily.\n if (isArray(locales)) {\n locales = locales.concat();\n }\n\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n defineProperty(this, '_options', {value: {\n style: this._resolveStyle(options.style),\n units: this._isValidUnits(options.units) && options.units\n }});\n\n defineProperty(this, '_locales', {value: locales});\n defineProperty(this, '_fields', {value: this._findFields(this._locale)});\n defineProperty(this, '_messages', {value: objCreate(null)});\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var relativeFormat = this;\n this.format = function format(date, options) {\n return relativeFormat._format(date, options);\n };\n}\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(RelativeFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(RelativeFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlRelativeFormat is missing a ' +\n '`locale` property value'\n );\n }\n\n RelativeFormat.__localeData__[data.locale.toLowerCase()] = data;\n\n // Add data to IntlMessageFormat.\n IntlMessageFormat.__addLocaleData(data);\n}});\n\n// Define public `defaultLocale` property which can be set by the developer, or\n// it will be set when the first RelativeFormat instance is created by\n// leveraging the resolved locale from `Intl`.\ndefineProperty(RelativeFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\n// Define public `thresholds` property which can be set by the developer, and\n// defaults to relative time thresholds from moment.js.\ndefineProperty(RelativeFormat, 'thresholds', {\n enumerable: true,\n\n value: {\n second: 45, // seconds to minute\n minute: 45, // minutes to hour\n hour : 22, // hours to day\n day : 26, // days to month\n month : 11 // months to year\n }\n});\n\nRelativeFormat.prototype.resolvedOptions = function () {\n return {\n locale: this._locale,\n style : this._options.style,\n units : this._options.units\n };\n};\n\nRelativeFormat.prototype._compileMessage = function (units) {\n // `this._locales` is the original set of locales the user specified to the\n // constructor, while `this._locale` is the resolved root locale.\n var locales = this._locales;\n var resolvedLocale = this._locale;\n\n var field = this._fields[units];\n var relativeTime = field.relativeTime;\n var future = '';\n var past = '';\n var i;\n\n for (i in relativeTime.future) {\n if (relativeTime.future.hasOwnProperty(i)) {\n future += ' ' + i + ' {' +\n relativeTime.future[i].replace('{0}', '#') + '}';\n }\n }\n\n for (i in relativeTime.past) {\n if (relativeTime.past.hasOwnProperty(i)) {\n past += ' ' + i + ' {' +\n relativeTime.past[i].replace('{0}', '#') + '}';\n }\n }\n\n var message = '{when, select, future {{0, plural, ' + future + '}}' +\n 'past {{0, plural, ' + past + '}}}';\n\n // Create the synthetic IntlMessageFormat instance using the original\n // locales value specified by the user when constructing the the parent\n // IntlRelativeFormat instance.\n return new IntlMessageFormat(message, locales);\n};\n\nRelativeFormat.prototype._getMessage = function (units) {\n var messages = this._messages;\n\n // Create a new synthetic message based on the locale data from CLDR.\n if (!messages[units]) {\n messages[units] = this._compileMessage(units);\n }\n\n return messages[units];\n};\n\nRelativeFormat.prototype._getRelativeUnits = function (diff, units) {\n var field = this._fields[units];\n\n if (field.relative) {\n return field.relative[diff];\n }\n};\n\nRelativeFormat.prototype._findFields = function (locale) {\n var localeData = RelativeFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find `fields` to return.\n while (data) {\n if (data.fields) {\n return data.fields;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlRelativeFormat is missing `fields` for :' +\n locale\n );\n};\n\nRelativeFormat.prototype._format = function (date, options) {\n var now = options && options.now !== undefined ? options.now : dateNow();\n\n if (date === undefined) {\n date = now;\n }\n\n // Determine if the `date` and optional `now` values are valid, and throw a\n // similar error to what `Intl.DateTimeFormat#format()` would throw.\n if (!isFinite(now)) {\n throw new RangeError(\n 'The `now` option provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n if (!isFinite(date)) {\n throw new RangeError(\n 'The date value provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n var diffReport = diff(now, date);\n var units = this._options.units || this._selectUnits(diffReport);\n var diffInUnits = diffReport[units];\n\n if (this._options.style !== 'numeric') {\n var relativeUnits = this._getRelativeUnits(diffInUnits, units);\n if (relativeUnits) {\n return relativeUnits;\n }\n }\n\n return this._getMessage(units).format({\n '0' : Math.abs(diffInUnits),\n when: diffInUnits < 0 ? 'past' : 'future'\n });\n};\n\nRelativeFormat.prototype._isValidUnits = function (units) {\n if (!units || arrIndexOf.call(FIELDS, units) >= 0) {\n return true;\n }\n\n if (typeof units === 'string') {\n var suggestion = /s$/.test(units) && units.substr(0, units.length - 1);\n if (suggestion && arrIndexOf.call(FIELDS, suggestion) >= 0) {\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` ' +\n 'value, did you mean: ' + suggestion\n );\n }\n }\n\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` value, it ' +\n 'must be one of: \"' + FIELDS.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(RelativeFormat.defaultLocale);\n\n var localeData = RelativeFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlRelativeFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n\nRelativeFormat.prototype._resolveStyle = function (style) {\n // Default to \"best fit\" style.\n if (!style) {\n return STYLES[0];\n }\n\n if (arrIndexOf.call(STYLES, style) >= 0) {\n return style;\n }\n\n throw new Error(\n '\"' + style + '\" is not a valid IntlRelativeFormat `style` value, it ' +\n 'must be one of: \"' + STYLES.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._selectUnits = function (diffReport) {\n var i, l, units;\n\n for (i = 0, l = FIELDS.length; i < l; i += 1) {\n units = FIELDS[i];\n\n if (Math.abs(diffReport[units]) < RelativeFormat.thresholds[units]) {\n break;\n }\n }\n\n return units;\n};\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}}}};\n","/* jslint esnext: true */\n\nimport IntlRelativeFormat from './core';\nimport defaultLocale from './en';\n\nIntlRelativeFormat.__addLocaleData(defaultLocale);\nIntlRelativeFormat.defaultLocale = 'en';\n\nexport default IntlRelativeFormat;\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nexport function addLocaleData(data = []) {\n let locales = Array.isArray(data) ? data : [data];\n\n locales.forEach((localeData) => {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nexport function hasLocaleData(locale) {\n let localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n let normalizedLocale = locale && locale.toLowerCase();\n\n return !!(\n IntlMessageFormat.__localeData__[normalizedLocale] &&\n IntlRelativeFormat.__localeData__[normalizedLocale]\n );\n}\n\nexport function registerMessages(Vue, locale, messages) {\n Vue.__allMessages = Vue.__allMessages || {};\n Vue.__allMessages[locale] = Vue.__allMessages[locale] || {};\n Object.assign(Vue.__allMessages[locale], messages);\n}\n\nexport function registerFormats(Vue, locale, formats) {\n Vue.__allFormats = Vue.__allFormats || {};\n Vue.__allFormats[locale] = Vue.__allFormats[locale] || {};\n Object.assign(Vue.__allFormats[locale], formats);\n}\n","export default function setLocale(Vue, locale) {\n Vue.set(Vue, 'locale', locale);\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n Vue.__format_config.formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n Vue.__format_config.messages = (Vue.__allMessages || {})[locale] || {};\n}\n","export default function getLocaleData(Vue) {\n const locale = Vue.locale;\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n const formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n const messages = (Vue.__allMessages || {})[locale] || {};\n return {\n formats,\n messages,\n defaultLocale: Vue.__format_config.defaultLocale,\n defaultFormats: Vue.__format_config.defaultFormats\n };\n}\n","/*\n * This file is an unmodified copy of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nimport IntlMessageFormat from 'intl-messageformat';\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nexport default class IntlPluralFormat {\n constructor(locales, options = {}) {\n let useOrdinal = options.style === 'ordinal';\n let pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = (value) => pluralFn(value, useOrdinal);\n }\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n// Function.prototype.bind implementation from Mozilla Developer Network:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill\n\nvar bind = Function.prototype.bind || function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexport {bind, defineProperty, objCreate};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jshint esnext: true */\n\nimport {bind, objCreate} from './es5';\n\nexport default createFormatCache;\n\n// -----------------------------------------------------------------------------\n\nfunction createFormatCache(FormatConstructor) {\n var cache = objCreate(null);\n\n return function () {\n var args = Array.prototype.slice.call(arguments);\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n\n if (!format) {\n format = new (bind.apply(FormatConstructor, [null].concat(args)))();\n\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n\n return format;\n };\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction getCacheId(inputs) {\n // When JSON is not available in the runtime, we will not create a cache id.\n if (typeof JSON === 'undefined') { return; }\n\n var cacheId = [];\n\n var i, len, input;\n\n for (i = 0, len = inputs.length; i < len; i += 1) {\n input = inputs[i];\n\n if (input && typeof input === 'object') {\n cacheId.push(orderedProps(input));\n } else {\n cacheId.push(input);\n }\n }\n\n return JSON.stringify(cacheId);\n}\n\nfunction orderedProps(obj) {\n var props = [],\n keys = [];\n\n var key, i, len, prop;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n\n var orderedKeys = keys.sort();\n\n for (i = 0, len = orderedKeys.length; i < len; i += 1) {\n key = orderedKeys[i];\n prop = {};\n\n prop[key] = obj[key];\n props[i] = prop;\n }\n\n return props;\n}\n","import IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport IntlPluralFormat from './plural';\nimport memoizeIntlConstructor from 'intl-format-cache';\n\nconst state = {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat : memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat : memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat : memoizeIntlConstructor(IntlPluralFormat),\n now: Date.now()\n};\n\nexport default state;\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst bool = { type : Boolean },\n number = { type : Number },\n string = { type : String },\n object = { type : Object },\n oneOf = function(array) {\n return {validator: function(value) {\n return array.indexOf(value) > -1;\n }};\n };\n\nexport const intlConfigPropTypes = {\n locale : string,\n formats : object,\n messages: object,\n\n defaultLocale : string,\n defaultFormats: object\n};\n\nexport const dateTimeFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12 : bool,\n\n weekday : oneOf(['narrow', 'short', 'long']),\n era : oneOf(['narrow', 'short', 'long']),\n year : oneOf(['numeric', '2-digit']),\n month : oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day : oneOf(['numeric', '2-digit']),\n hour : oneOf(['numeric', '2-digit']),\n minute : oneOf(['numeric', '2-digit']),\n second : oneOf(['numeric', '2-digit']),\n timeZoneName: oneOf(['short', 'long'])\n};\n\nexport const numberFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n\n style : oneOf(['decimal', 'currency', 'percent']),\n currency : string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping : bool,\n\n minimumIntegerDigits : number,\n minimumFractionDigits : number,\n maximumFractionDigits : number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nexport const relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nexport const pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nconst ESCAPED_CHARS = {\n '&' : '&',\n '>' : '>',\n '<' : '<',\n '\"' : '"',\n '\\'': '''\n};\n\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, (match) => ESCAPED_CHARS[match]);\n}\n\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults.hasOwnProperty(name)) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nimport {\n dateTimeFormatPropTypes,\n numberFormatPropTypes,\n relativeFormatPropTypes,\n pluralFormatPropTypes\n} from './types';\n\nimport {\n escape,\n filterProps\n} from './utils';\n\nconst DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nconst NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nconst RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nconst PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nconst RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour : 24, // hours to day\n day : 30, // days to month\n month : 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n const {thresholds} = IntlRelativeFormat;\n ({\n second: thresholds.second,\n minute: thresholds.minute,\n hour : thresholds.hour,\n day : thresholds.day,\n month : thresholds.month\n } = newThresholds);\n}\n\nfunction getNamedFormat(formats, type, name) {\n let format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] No ${type} format named: ${name}`\n );\n }\n}\n\nexport function formatDate(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'date', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting date.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatTime(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'time', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n // When no formatting options have been specified, default to outputting a\n // time; e.g.: \"9:42 AM\".\n if (Object.keys(filteredOptions).length === 0) {\n filteredOptions = {\n hour : 'numeric',\n minute: 'numeric'\n };\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting time.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatRelative(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let now = new Date(options.now);\n let defaults = format && getNamedFormat(formats, 'relative', format);\n let filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n const oldThresholds = Object.assign({}, IntlRelativeFormat.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting relative time.\\n${e}`\n );\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nexport function formatNumber(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let defaults = format && getNamedFormat(formats, 'number', format);\n let filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting number.\\n${e}`\n );\n }\n }\n\n return String(value);\n}\n\nexport function formatPlural(config, state, value, options = {}) {\n const {locale} = config;\n\n let filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting plural.\\n${e}`\n );\n }\n }\n\n return 'other';\n}\n\nexport function formatMessage(config, state, messageDescriptor = {}, values = {}) {\n const {\n locale,\n formats,\n messages,\n defaultLocale,\n defaultFormats\n } = config;\n\n const {\n id,\n defaultMessage\n } = messageDescriptor;\n\n // `id` is a required field of a Message Descriptor.\n if (!id) {\n throw new TypeError('[Vue Intl] An `id` must be provided to format a message.');\n }\n\n const message = messages && messages[id];\n const hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n // When debugging in English, show default string to enable hot module reloading\n if (process.env.NODE_ENV === 'development' && defaultMessage && locale === 'en') {\n var formatter = state.getMessageFormat(defaultMessage, locale, formats);\n return formatter.format(values);\n }\n\n let formattedMessage;\n\n if (message) {\n try {\n let formatter = state.getMessageFormat(\n message, locale, formats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '') +\n `\\n${e}`\n );\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n\n console.error(\n `[Vue Intl] Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')\n );\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n let formatter = state.getMessageFormat(\n defaultMessage, defaultLocale, defaultFormats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting the default message for: \"${id}\"` +\n `\\n${e}`\n );\n }\n }\n }\n\n if (!formattedMessage) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`\n );\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nexport function formatHTMLMessage(config, state, messageDescriptor, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n let escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n let value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","const format = (ctx, values) => ctx.parent.$formatMessage(ctx.props, values)\nconst placeholder = (name) => `@\\0@\\0${name}\\0@\\0@`\nconst placeholderRegex = /@\\0@\\0(.*?)\\0@\\0@/g\n\nexport default {\n functional: true,\n\n props: {\n id: {type: String, required: true},\n defaultMessage: String,\n values: Object,\n tagName: {type: String, default: 'span'}\n },\n\n render (h, ctx) {\n const slots = ctx.slots()\n const slotNames = Object.keys(slots)\n if (slotNames.length === 0) {\n return h(ctx.props.tagName, ctx.data, format(ctx, ctx.props.values))\n }\n\n const values = Object.assign({}, ctx.props.values)\n slotNames.forEach(slot => {\n values[slot] = placeholder(slot)\n })\n\n const message = format(ctx, values)\n\n let match;\n let pos = 0;\n const children = []\n while ((match = placeholderRegex.exec(message)) !== null) {\n children.push(message.substring(pos, match.index), slots[match[1]])\n pos = match.index + match[0].length\n }\n children.push(message.substring(pos))\n return h(ctx.props.tagName, ctx.data, children)\n }\n}\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"year-short\":{\"displayName\":\"yr.\",\"relative\":{\"0\":\"this yr.\",\"1\":\"next yr.\",\"-1\":\"last yr.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yr.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yr. ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"month-short\":{\"displayName\":\"mo.\",\"relative\":{\"0\":\"this mo.\",\"1\":\"next mo.\",\"-1\":\"last mo.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"day-short\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"hour-short\":{\"displayName\":\"hr.\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hr.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hr. ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"minute-short\":{\"displayName\":\"min.\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} min.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} min. ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}},\"second-short\":{\"displayName\":\"sec.\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} sec.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} sec. ago\"}}}}};\n","import {addLocaleData, registerMessages, registerFormats} from './localeData';\nimport setLocale from './setLocale';\nimport getLocaleData from './getLocaleData';\nimport state from './state';\nimport * as formatMethods from './format';\nimport FormattedMessage from './FormattedMessage'\nimport defaultLocaleData from './en';\n\naddLocaleData(defaultLocaleData);\n\n\nfunction install(Vue, options={}) {\n Vue.addLocaleData = addLocaleData;\n Vue.registerMessages = registerMessages.bind(null, Vue);\n Vue.registerFormats = registerFormats.bind(null, Vue);\n Vue.setLocale = setLocale.bind(null, Vue);\n Vue.__format_state = state;\n Vue.__format_config = {\n defaultLocale: options.defaultLocale || 'en',\n defaultFormats: options.defaultFormats || {}\n };\n\n for (let key of Object.getOwnPropertyNames(formatMethods).filter((name) => {\n return formatMethods[name] instanceof Function;\n })) {\n Vue.prototype[`\\$${key}`] = function(...args) {\n let config = {locale: Vue.locale};\n Object.assign(config, getLocaleData(Vue));\n const state = Vue.__format_state;\n return formatMethods[key](config, state, ...args);\n }\n }\n}\n\nexport default {\n addLocaleData,\n FormattedMessage,\n install,\n}\n"],"names":["hop","Object","prototype","hasOwnProperty","extend","obj","sources","Array","slice","call","arguments","i","len","source","key","length","realDefineProp","defineProperty","e","name","desc","__defineGetter__","get","value","objCreate","create","proto","props","k","F","Compiler","locales","formats","pluralFn","compile","ast","pluralStack","currentPlural","pluralNumberFormat","compileMessage","type","Error","elements","pattern","element","push","compileMessageText","compileArgument","test","Intl","NumberFormat","PluralOffsetString","id","format","offset","replace","StringFormat","options","number","style","date","DateTimeFormat","time","compileOptions","PluralFormat","ordinal","SelectFormat","optionsHash","option","selector","pop","String","useOrdinal","getOption","other","numberFormat","string","peg$subclass","child","parent","ctor","constructor","SyntaxError","message","expected","found","line","column","parse","input","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c0","peg$c1","peg$c2","peg$c3","text","j","outerLen","inner","innerLen","peg$c4","messageText","peg$c5","peg$c6","description","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$c22","peg$c23","peg$c24","pluralStyle","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","digits","parseInt","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","fromCharCode","peg$c68","chars","join","peg$currPos","peg$reportedPos","peg$cachedPos","peg$cachedPosDetails","seenCR","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","peg$result","startRule","peg$computePosDetails","pos","advance","details","startPos","endPos","p","ch","charAt","peg$fail","peg$buildException","cleanupExpected","sort","a","b","splice","buildMessage","stringEscape","s","hex","charCodeAt","toString","toUpperCase","expectedDescs","expectedDesc","foundDesc","posDetails","s0","peg$parsemessageFormatPattern","s1","s2","peg$parsemessageFormatElement","peg$parsemessageTextElement","peg$parseargumentElement","peg$parsemessageText","s3","s4","s5","peg$parse_","peg$parsechars","peg$parsews","substring","peg$parseargument","peg$parsenumber","s6","s7","s8","peg$parseelementFormat","peg$parsesimpleFormat","peg$parsepluralFormat","peg$parseselectOrdinalFormat","peg$parseselectFormat","substr","peg$parsepluralStyle","peg$parseoptionalFormatPattern","peg$parseselector","peg$parseoffset","peg$parsedigit","peg$parsehexDigit","peg$parsechar","MessageFormat","__parse","TypeError","_mergeFormats","_resolveLocale","_findPluralRuleFunction","_locale","_compilePattern","messageFormat","values","_format","data","locale","__localeData__","toLowerCase","parser","undefined","resolvedOptions","compiler","localeData","pluralRuleFunction","parentLocale","result","part","defaults","mergedFormats","mergedType","concat","defaultLocale","localeParts","split","n","ord","v0","t0","Number","n10","n100","IntlMessageFormat","__addLocaleData","round","Math","daysToYears","days","from","to","millisecond","second","minute","hour","day","week","rawYears","month","year","arrIndexOf","indexOf","search","fromIndex","arr","max","isArray","dateNow","Date","now","getTime","FIELDS","STYLES","RelativeFormat","_resolveStyle","_isValidUnits","units","_findFields","relativeFormat","_options","_compileMessage","_locales","field","_fields","relativeTime","future","past","_getMessage","messages","_messages","_getRelativeUnits","diff","relative","fields","isFinite","RangeError","diffReport","_selectUnits","diffInUnits","relativeUnits","abs","suggestion","l","thresholds","IntlRelativeFormat","addLocaleData","forEach","registerMessages","Vue","__allMessages","assign","registerFormats","__allFormats","setLocale","set","format_data","getOwnPropertyNames","__format_config","defaultFormats","getLocaleData","resolveLocale","findPluralFunction","IntlPluralFormat","bind","Function","oThis","aArgs","fToBind","fNOP","fBound","apply","createFormatCache","FormatConstructor","cache","args","cacheId","getCacheId","inputs","JSON","orderedProps","stringify","keys","prop","orderedKeys","state","memoizeIntlConstructor","bool","Boolean","oneOf","array","validator","dateTimeFormatPropTypes","numberFormatPropTypes","relativeFormatPropTypes","pluralFormatPropTypes","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","escape","str","match","filterProps","whitelist","reduce","filtered","DATE_TIME_FORMAT_OPTIONS","NUMBER_FORMAT_OPTIONS","RELATIVE_FORMAT_OPTIONS","PLURAL_FORMAT_OPTIONS","RELATIVE_FORMAT_THRESHOLDS","updateRelativeFormatThresholds","newThresholds","getNamedFormat","error","formatDate","config","filteredOptions","getDateTimeFormat","formatTime","formatRelative","oldThresholds","getRelativeFormat","formatNumber","getNumberFormat","formatPlural","getPluralFormat","formatMessage","messageDescriptor","defaultMessage","hasValues","process","formatter","getMessageFormat","formattedMessage","formatHTMLMessage","rawValues","escapedValues","escaped","ctx","$formatMessage","placeholder","placeholderRegex","required","h","slots","slotNames","tagName","slot","children","exec","index","defaultLocaleData","install","__format_state","formatMethods","filter"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-intl.js.map b/dist/vue-intl.js.map deleted file mode 100644 index c88b436..0000000 --- a/dist/vue-intl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"vue-intl.js","sources":["../node_modules/intl-messageformat/src/utils.js","../node_modules/intl-messageformat/src/es5.js","../node_modules/intl-messageformat/src/compiler.js","../node_modules/intl-messageformat-parser/src/parser.js","../node_modules/intl-messageformat/src/core.js","../node_modules/intl-messageformat/src/en.js","../node_modules/intl-messageformat/src/main.js","../node_modules/intl-relativeformat/src/diff.js","../node_modules/intl-relativeformat/src/es5.js","../node_modules/intl-relativeformat/src/core.js","../node_modules/intl-relativeformat/src/en.js","../node_modules/intl-relativeformat/src/main.js","../src/localeData.js","../src/setLocale.js","../src/getLocaleData.js","../src/plural.js","../node_modules/intl-format-cache/src/es5.js","../node_modules/intl-format-cache/src/memoizer.js","../src/state.js","../src/types.js","../src/utils.js","../src/format.js","../src/FormattedMessage.js","../src/en.js","../src/vue-intl.js"],"sourcesContent":["/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport var hop = Object.prototype.hasOwnProperty;\n\nexport function extend(obj) {\n var sources = Array.prototype.slice.call(arguments, 1),\n i, len, source, key;\n\n for (i = 0, len = sources.length; i < len; i += 1) {\n source = sources[i];\n if (!source) { continue; }\n\n for (key in source) {\n if (hop.call(source, key)) {\n obj[key] = source[key];\n }\n }\n }\n\n return obj;\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {hop} from './utils';\n\nexport {defineProperty, objCreate};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport default Compiler;\n\nfunction Compiler(locales, formats, pluralFn) {\n this.locales = locales;\n this.formats = formats;\n this.pluralFn = pluralFn;\n}\n\nCompiler.prototype.compile = function (ast) {\n this.pluralStack = [];\n this.currentPlural = null;\n this.pluralNumberFormat = null;\n\n return this.compileMessage(ast);\n};\n\nCompiler.prototype.compileMessage = function (ast) {\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new Error('Message AST is not of type: \"messageFormatPattern\"');\n }\n\n var elements = ast.elements,\n pattern = [];\n\n var i, len, element;\n\n for (i = 0, len = elements.length; i < len; i += 1) {\n element = elements[i];\n\n switch (element.type) {\n case 'messageTextElement':\n pattern.push(this.compileMessageText(element));\n break;\n\n case 'argumentElement':\n pattern.push(this.compileArgument(element));\n break;\n\n default:\n throw new Error('Message element does not have a valid type');\n }\n }\n\n return pattern;\n};\n\nCompiler.prototype.compileMessageText = function (element) {\n // When this `element` is part of plural sub-pattern and its value contains\n // an unescaped '#', use a `PluralOffsetString` helper to properly output\n // the number with the correct offset in the string.\n if (this.currentPlural && /(^|[^\\\\])#/g.test(element.value)) {\n // Create a cache a NumberFormat instance that can be reused for any\n // PluralOffsetString instance in this message.\n if (!this.pluralNumberFormat) {\n this.pluralNumberFormat = new Intl.NumberFormat(this.locales);\n }\n\n return new PluralOffsetString(\n this.currentPlural.id,\n this.currentPlural.format.offset,\n this.pluralNumberFormat,\n element.value);\n }\n\n // Unescape the escaped '#'s in the message text.\n return element.value.replace(/\\\\#/g, '#');\n};\n\nCompiler.prototype.compileArgument = function (element) {\n var format = element.format;\n\n if (!format) {\n return new StringFormat(element.id);\n }\n\n var formats = this.formats,\n locales = this.locales,\n pluralFn = this.pluralFn,\n options;\n\n switch (format.type) {\n case 'numberFormat':\n options = formats.number[format.style];\n return {\n id : element.id,\n format: new Intl.NumberFormat(locales, options).format\n };\n\n case 'dateFormat':\n options = formats.date[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'timeFormat':\n options = formats.time[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'pluralFormat':\n options = this.compileOptions(element);\n return new PluralFormat(\n element.id, format.ordinal, format.offset, options, pluralFn\n );\n\n case 'selectFormat':\n options = this.compileOptions(element);\n return new SelectFormat(element.id, options);\n\n default:\n throw new Error('Message element does not have a valid format type');\n }\n};\n\nCompiler.prototype.compileOptions = function (element) {\n var format = element.format,\n options = format.options,\n optionsHash = {};\n\n // Save the current plural element, if any, then set it to a new value when\n // compiling the options sub-patterns. This conforms the spec's algorithm\n // for handling `\"#\"` syntax in message text.\n this.pluralStack.push(this.currentPlural);\n this.currentPlural = format.type === 'pluralFormat' ? element : null;\n\n var i, len, option;\n\n for (i = 0, len = options.length; i < len; i += 1) {\n option = options[i];\n\n // Compile the sub-pattern and save it under the options's selector.\n optionsHash[option.selector] = this.compileMessage(option.value);\n }\n\n // Pop the plural stack to put back the original current plural value.\n this.currentPlural = this.pluralStack.pop();\n\n return optionsHash;\n};\n\n// -- Compiler Helper Classes --------------------------------------------------\n\nfunction StringFormat(id) {\n this.id = id;\n}\n\nStringFormat.prototype.format = function (value) {\n if (!value) {\n return '';\n }\n\n return typeof value === 'string' ? value : String(value);\n};\n\nfunction PluralFormat(id, useOrdinal, offset, options, pluralFn) {\n this.id = id;\n this.useOrdinal = useOrdinal;\n this.offset = offset;\n this.options = options;\n this.pluralFn = pluralFn;\n}\n\nPluralFormat.prototype.getOption = function (value) {\n var options = this.options;\n\n var option = options['=' + value] ||\n options[this.pluralFn(value - this.offset, this.useOrdinal)];\n\n return option || options.other;\n};\n\nfunction PluralOffsetString(id, offset, numberFormat, string) {\n this.id = id;\n this.offset = offset;\n this.numberFormat = numberFormat;\n this.string = string;\n}\n\nPluralOffsetString.prototype.format = function (value) {\n var number = this.numberFormat.format(value - this.offset);\n\n return this.string\n .replace(/(^|[^\\\\])#/g, '$1' + number)\n .replace(/\\\\#/g, '#');\n};\n\nfunction SelectFormat(id, options) {\n this.id = id;\n this.options = options;\n}\n\nSelectFormat.prototype.getOption = function (value) {\n var options = this.options;\n return options[value] || options.other;\n};\n","export default (function() {\n /*\n * Generated by PEG.js 0.8.0.\n *\n * http://pegjs.majda.cz/\n */\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function SyntaxError(message, expected, found, offset, line, column) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.offset = offset;\n this.line = line;\n this.column = column;\n\n this.name = \"SyntaxError\";\n }\n\n peg$subclass(SyntaxError, Error);\n\n function parse(input) {\n var options = arguments.length > 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = [],\n peg$c1 = function(elements) {\n return {\n type : 'messageFormatPattern',\n elements: elements\n };\n },\n peg$c2 = peg$FAILED,\n peg$c3 = function(text) {\n var string = '',\n i, j, outerLen, inner, innerLen;\n\n for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n inner = text[i];\n\n for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n string += inner[j];\n }\n }\n\n return string;\n },\n peg$c4 = function(messageText) {\n return {\n type : 'messageTextElement',\n value: messageText\n };\n },\n peg$c5 = /^[^ \\t\\n\\r,.+={}#]/,\n peg$c6 = { type: \"class\", value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\", description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\" },\n peg$c7 = \"{\",\n peg$c8 = { type: \"literal\", value: \"{\", description: \"\\\"{\\\"\" },\n peg$c9 = null,\n peg$c10 = \",\",\n peg$c11 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c12 = \"}\",\n peg$c13 = { type: \"literal\", value: \"}\", description: \"\\\"}\\\"\" },\n peg$c14 = function(id, format) {\n return {\n type : 'argumentElement',\n id : id,\n format: format && format[2]\n };\n },\n peg$c15 = \"number\",\n peg$c16 = { type: \"literal\", value: \"number\", description: \"\\\"number\\\"\" },\n peg$c17 = \"date\",\n peg$c18 = { type: \"literal\", value: \"date\", description: \"\\\"date\\\"\" },\n peg$c19 = \"time\",\n peg$c20 = { type: \"literal\", value: \"time\", description: \"\\\"time\\\"\" },\n peg$c21 = function(type, style) {\n return {\n type : type + 'Format',\n style: style && style[2]\n };\n },\n peg$c22 = \"plural\",\n peg$c23 = { type: \"literal\", value: \"plural\", description: \"\\\"plural\\\"\" },\n peg$c24 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: false,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n };\n },\n peg$c25 = \"selectordinal\",\n peg$c26 = { type: \"literal\", value: \"selectordinal\", description: \"\\\"selectordinal\\\"\" },\n peg$c27 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: true,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n }\n },\n peg$c28 = \"select\",\n peg$c29 = { type: \"literal\", value: \"select\", description: \"\\\"select\\\"\" },\n peg$c30 = function(options) {\n return {\n type : 'selectFormat',\n options: options\n };\n },\n peg$c31 = \"=\",\n peg$c32 = { type: \"literal\", value: \"=\", description: \"\\\"=\\\"\" },\n peg$c33 = function(selector, pattern) {\n return {\n type : 'optionalFormatPattern',\n selector: selector,\n value : pattern\n };\n },\n peg$c34 = \"offset:\",\n peg$c35 = { type: \"literal\", value: \"offset:\", description: \"\\\"offset:\\\"\" },\n peg$c36 = function(number) {\n return number;\n },\n peg$c37 = function(offset, options) {\n return {\n type : 'pluralFormat',\n offset : offset,\n options: options\n };\n },\n peg$c38 = { type: \"other\", description: \"whitespace\" },\n peg$c39 = /^[ \\t\\n\\r]/,\n peg$c40 = { type: \"class\", value: \"[ \\\\t\\\\n\\\\r]\", description: \"[ \\\\t\\\\n\\\\r]\" },\n peg$c41 = { type: \"other\", description: \"optionalWhitespace\" },\n peg$c42 = /^[0-9]/,\n peg$c43 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c44 = /^[0-9a-f]/i,\n peg$c45 = { type: \"class\", value: \"[0-9a-f]i\", description: \"[0-9a-f]i\" },\n peg$c46 = \"0\",\n peg$c47 = { type: \"literal\", value: \"0\", description: \"\\\"0\\\"\" },\n peg$c48 = /^[1-9]/,\n peg$c49 = { type: \"class\", value: \"[1-9]\", description: \"[1-9]\" },\n peg$c50 = function(digits) {\n return parseInt(digits, 10);\n },\n peg$c51 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n peg$c52 = { type: \"class\", value: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\", description: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\" },\n peg$c53 = \"\\\\\\\\\",\n peg$c54 = { type: \"literal\", value: \"\\\\\\\\\", description: \"\\\"\\\\\\\\\\\\\\\\\\\"\" },\n peg$c55 = function() { return '\\\\'; },\n peg$c56 = \"\\\\#\",\n peg$c57 = { type: \"literal\", value: \"\\\\#\", description: \"\\\"\\\\\\\\#\\\"\" },\n peg$c58 = function() { return '\\\\#'; },\n peg$c59 = \"\\\\{\",\n peg$c60 = { type: \"literal\", value: \"\\\\{\", description: \"\\\"\\\\\\\\{\\\"\" },\n peg$c61 = function() { return '\\u007B'; },\n peg$c62 = \"\\\\}\",\n peg$c63 = { type: \"literal\", value: \"\\\\}\", description: \"\\\"\\\\\\\\}\\\"\" },\n peg$c64 = function() { return '\\u007D'; },\n peg$c65 = \"\\\\u\",\n peg$c66 = { type: \"literal\", value: \"\\\\u\", description: \"\\\"\\\\\\\\u\\\"\" },\n peg$c67 = function(digits) {\n return String.fromCharCode(parseInt(digits, 16));\n },\n peg$c68 = function(chars) { return chars.join(''); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsestart() {\n var s0;\n\n s0 = peg$parsemessageFormatPattern();\n\n return s0;\n }\n\n function peg$parsemessageFormatPattern() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemessageFormatElement();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemessageFormatElement();\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsemessageFormatElement() {\n var s0;\n\n s0 = peg$parsemessageTextElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n }\n\n return s0;\n }\n\n function peg$parsemessageText() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c3(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsews();\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsemessageTextElement() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c4(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseargument() {\n var s0, s1, s2;\n\n s0 = peg$parsenumber();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c7;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargument();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c10;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseelementFormat();\n if (s8 !== peg$FAILED) {\n s6 = [s6, s7, s8];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c9;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c12;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s7 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c14(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseelementFormat() {\n var s0;\n\n s0 = peg$parsesimpleFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectOrdinalFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectFormat();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsesimpleFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c15) {\n s1 = peg$c15;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c10;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsechars();\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c9;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c21(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c24(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectOrdinalFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 13) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 13;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c26); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c27(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c28) {\n s1 = peg$c28;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseoptionalFormatPattern();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseoptionalFormatPattern();\n }\n } else {\n s5 = peg$c2;\n }\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c30(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c31;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c32); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$parsechars();\n }\n\n return s0;\n }\n\n function peg$parseoptionalFormatPattern() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselector();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c7;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessageFormatPattern();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c12;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s8 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c33(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c34) {\n s1 = peg$c34;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c36(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralStyle() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseoffset();\n if (s1 === peg$FAILED) {\n s1 = peg$c9;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoptionalFormatPattern();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoptionalFormatPattern();\n }\n } else {\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c37(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsews() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = [];\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n }\n } else {\n s0 = peg$c2;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1, s2;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsews();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsews();\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c42.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n\n return s0;\n }\n\n function peg$parsehexDigit() {\n var s0;\n\n if (peg$c44.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c45); }\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c46;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c47); }\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n if (peg$c48.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c49); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsedigit();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsedigit();\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c50(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsechar() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c53) {\n s1 = peg$c53;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c55();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c56) {\n s1 = peg$c56;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c58();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c60); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c64();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c65) {\n s1 = peg$c65;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c66); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parsehexDigit();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehexDigit();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehexDigit();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehexDigit();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c67(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsechars() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsechar();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsechar();\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c68(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {extend, hop} from './utils';\nimport {defineProperty, objCreate} from './es5';\nimport Compiler from './compiler';\nimport parser from 'intl-messageformat-parser';\n\nexport default MessageFormat;\n\n// -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n // Parse string messages into an AST.\n var ast = typeof message === 'string' ?\n MessageFormat.__parse(message) : message;\n\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n formats = this._mergeFormats(MessageFormat.formats, formats);\n\n // Defined first because it's used to build the format pattern.\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n\n // Compile the `ast` to a pattern that is highly optimized for repeated\n // `format()` invocations. **Note:** This passes the `locales` set provided\n // to the constructor instead of just the resolved locale.\n var pluralFn = this._findPluralRuleFunction(this._locale);\n var pattern = this._compilePattern(ast, locales, formats, pluralFn);\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var messageFormat = this;\n this.format = function (values) {\n return messageFormat._format(pattern, values);\n };\n}\n\n// Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\ndefineProperty(MessageFormat, 'formats', {\n enumerable: true,\n\n value: {\n number: {\n 'currency': {\n style: 'currency'\n },\n\n 'percent': {\n style: 'percent'\n }\n },\n\n date: {\n 'short': {\n month: 'numeric',\n day : 'numeric',\n year : '2-digit'\n },\n\n 'medium': {\n month: 'short',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'long': {\n month: 'long',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'full': {\n weekday: 'long',\n month : 'long',\n day : 'numeric',\n year : 'numeric'\n }\n },\n\n time: {\n 'short': {\n hour : 'numeric',\n minute: 'numeric'\n },\n\n 'medium': {\n hour : 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n\n 'long': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n },\n\n 'full': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n }\n }\n }\n});\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(MessageFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(MessageFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlMessageFormat is missing a ' +\n '`locale` property'\n );\n }\n\n MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n}});\n\n// Defines `__parse()` static method as an exposed private.\ndefineProperty(MessageFormat, '__parse', {value: parser.parse});\n\n// Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\ndefineProperty(MessageFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n // TODO: Provide anything else?\n return {\n locale: this._locale\n };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n var compiler = new Compiler(locales, formats, pluralFn);\n return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n var localeData = MessageFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find a `pluralRuleFunction` to return.\n while (data) {\n if (data.pluralRuleFunction) {\n return data.pluralRuleFunction;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlMessageFormat is missing a ' +\n '`pluralRuleFunction` for :' + locale\n );\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n var result = '',\n i, len, part, id, value;\n\n for (i = 0, len = pattern.length; i < len; i += 1) {\n part = pattern[i];\n\n // Exist early for string parts.\n if (typeof part === 'string') {\n result += part;\n continue;\n }\n\n id = part.id;\n\n // Enforce that all required values are provided by the caller.\n if (!(values && hop.call(values, id))) {\n throw new Error('A value must be provided for: ' + id);\n }\n\n value = values[id];\n\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (part.options) {\n result += this._format(part.getOption(value), values);\n } else {\n result += part.format(value);\n }\n }\n\n return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n var mergedFormats = {},\n type, mergedType;\n\n for (type in defaults) {\n if (!hop.call(defaults, type)) { continue; }\n\n mergedFormats[type] = mergedType = objCreate(defaults[type]);\n\n if (formats && hop.call(formats, type)) {\n extend(mergedType, formats[type]);\n }\n }\n\n return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(MessageFormat.defaultLocale);\n\n var localeData = MessageFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlMessageFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"}};\n","/* jslint esnext: true */\n\nimport IntlMessageFormat from './core';\nimport defaultLocale from './en';\n\nIntlMessageFormat.__addLocaleData(defaultLocale);\nIntlMessageFormat.defaultLocale = 'en';\n\nexport default IntlMessageFormat;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nvar round = Math.round;\n\nfunction daysToYears(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n return days * 400 / 146097;\n}\n\nexport default function (from, to) {\n // Convert to ms timestamps.\n from = +from;\n to = +to;\n\n var millisecond = round(to - from),\n second = round(millisecond / 1000),\n minute = round(second / 60),\n hour = round(minute / 60),\n day = round(hour / 24),\n week = round(day / 7);\n\n var rawYears = daysToYears(day),\n month = round(rawYears * 12),\n year = round(rawYears);\n\n return {\n millisecond: millisecond,\n second : second,\n minute : minute,\n hour : hour,\n day : day,\n week : week,\n month : month,\n year : year\n };\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport {defineProperty, objCreate, arrIndexOf, isArray, dateNow};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nvar arrIndexOf = Array.prototype.indexOf || function (search, fromIndex) {\n /*jshint validthis:true */\n var arr = this;\n if (!arr.length) {\n return -1;\n }\n\n for (var i = fromIndex || 0, max = arr.length; i < max; i++) {\n if (arr[i] === search) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar isArray = Array.isArray || function (obj) {\n return toString.call(obj) === '[object Array]';\n};\n\nvar dateNow = Date.now || function () {\n return new Date().getTime();\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport diff from './diff';\nimport {\n defineProperty,\n objCreate,\n arrIndexOf,\n isArray,\n dateNow\n} from './es5';\n\nexport default RelativeFormat;\n\n// -----------------------------------------------------------------------------\n\nvar FIELDS = ['second', 'minute', 'hour', 'day', 'month', 'year'];\nvar STYLES = ['best fit', 'numeric'];\n\n// -- RelativeFormat -----------------------------------------------------------\n\nfunction RelativeFormat(locales, options) {\n options = options || {};\n\n // Make a copy of `locales` if it's an array, so that it doesn't change\n // since it's used lazily.\n if (isArray(locales)) {\n locales = locales.concat();\n }\n\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n defineProperty(this, '_options', {value: {\n style: this._resolveStyle(options.style),\n units: this._isValidUnits(options.units) && options.units\n }});\n\n defineProperty(this, '_locales', {value: locales});\n defineProperty(this, '_fields', {value: this._findFields(this._locale)});\n defineProperty(this, '_messages', {value: objCreate(null)});\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var relativeFormat = this;\n this.format = function format(date, options) {\n return relativeFormat._format(date, options);\n };\n}\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(RelativeFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(RelativeFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlRelativeFormat is missing a ' +\n '`locale` property value'\n );\n }\n\n RelativeFormat.__localeData__[data.locale.toLowerCase()] = data;\n\n // Add data to IntlMessageFormat.\n IntlMessageFormat.__addLocaleData(data);\n}});\n\n// Define public `defaultLocale` property which can be set by the developer, or\n// it will be set when the first RelativeFormat instance is created by\n// leveraging the resolved locale from `Intl`.\ndefineProperty(RelativeFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\n// Define public `thresholds` property which can be set by the developer, and\n// defaults to relative time thresholds from moment.js.\ndefineProperty(RelativeFormat, 'thresholds', {\n enumerable: true,\n\n value: {\n second: 45, // seconds to minute\n minute: 45, // minutes to hour\n hour : 22, // hours to day\n day : 26, // days to month\n month : 11 // months to year\n }\n});\n\nRelativeFormat.prototype.resolvedOptions = function () {\n return {\n locale: this._locale,\n style : this._options.style,\n units : this._options.units\n };\n};\n\nRelativeFormat.prototype._compileMessage = function (units) {\n // `this._locales` is the original set of locales the user specified to the\n // constructor, while `this._locale` is the resolved root locale.\n var locales = this._locales;\n var resolvedLocale = this._locale;\n\n var field = this._fields[units];\n var relativeTime = field.relativeTime;\n var future = '';\n var past = '';\n var i;\n\n for (i in relativeTime.future) {\n if (relativeTime.future.hasOwnProperty(i)) {\n future += ' ' + i + ' {' +\n relativeTime.future[i].replace('{0}', '#') + '}';\n }\n }\n\n for (i in relativeTime.past) {\n if (relativeTime.past.hasOwnProperty(i)) {\n past += ' ' + i + ' {' +\n relativeTime.past[i].replace('{0}', '#') + '}';\n }\n }\n\n var message = '{when, select, future {{0, plural, ' + future + '}}' +\n 'past {{0, plural, ' + past + '}}}';\n\n // Create the synthetic IntlMessageFormat instance using the original\n // locales value specified by the user when constructing the the parent\n // IntlRelativeFormat instance.\n return new IntlMessageFormat(message, locales);\n};\n\nRelativeFormat.prototype._getMessage = function (units) {\n var messages = this._messages;\n\n // Create a new synthetic message based on the locale data from CLDR.\n if (!messages[units]) {\n messages[units] = this._compileMessage(units);\n }\n\n return messages[units];\n};\n\nRelativeFormat.prototype._getRelativeUnits = function (diff, units) {\n var field = this._fields[units];\n\n if (field.relative) {\n return field.relative[diff];\n }\n};\n\nRelativeFormat.prototype._findFields = function (locale) {\n var localeData = RelativeFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find `fields` to return.\n while (data) {\n if (data.fields) {\n return data.fields;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlRelativeFormat is missing `fields` for :' +\n locale\n );\n};\n\nRelativeFormat.prototype._format = function (date, options) {\n var now = options && options.now !== undefined ? options.now : dateNow();\n\n if (date === undefined) {\n date = now;\n }\n\n // Determine if the `date` and optional `now` values are valid, and throw a\n // similar error to what `Intl.DateTimeFormat#format()` would throw.\n if (!isFinite(now)) {\n throw new RangeError(\n 'The `now` option provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n if (!isFinite(date)) {\n throw new RangeError(\n 'The date value provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n var diffReport = diff(now, date);\n var units = this._options.units || this._selectUnits(diffReport);\n var diffInUnits = diffReport[units];\n\n if (this._options.style !== 'numeric') {\n var relativeUnits = this._getRelativeUnits(diffInUnits, units);\n if (relativeUnits) {\n return relativeUnits;\n }\n }\n\n return this._getMessage(units).format({\n '0' : Math.abs(diffInUnits),\n when: diffInUnits < 0 ? 'past' : 'future'\n });\n};\n\nRelativeFormat.prototype._isValidUnits = function (units) {\n if (!units || arrIndexOf.call(FIELDS, units) >= 0) {\n return true;\n }\n\n if (typeof units === 'string') {\n var suggestion = /s$/.test(units) && units.substr(0, units.length - 1);\n if (suggestion && arrIndexOf.call(FIELDS, suggestion) >= 0) {\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` ' +\n 'value, did you mean: ' + suggestion\n );\n }\n }\n\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` value, it ' +\n 'must be one of: \"' + FIELDS.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(RelativeFormat.defaultLocale);\n\n var localeData = RelativeFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlRelativeFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n\nRelativeFormat.prototype._resolveStyle = function (style) {\n // Default to \"best fit\" style.\n if (!style) {\n return STYLES[0];\n }\n\n if (arrIndexOf.call(STYLES, style) >= 0) {\n return style;\n }\n\n throw new Error(\n '\"' + style + '\" is not a valid IntlRelativeFormat `style` value, it ' +\n 'must be one of: \"' + STYLES.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._selectUnits = function (diffReport) {\n var i, l, units;\n\n for (i = 0, l = FIELDS.length; i < l; i += 1) {\n units = FIELDS[i];\n\n if (Math.abs(diffReport[units]) < RelativeFormat.thresholds[units]) {\n break;\n }\n }\n\n return units;\n};\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}}}};\n","/* jslint esnext: true */\n\nimport IntlRelativeFormat from './core';\nimport defaultLocale from './en';\n\nIntlRelativeFormat.__addLocaleData(defaultLocale);\nIntlRelativeFormat.defaultLocale = 'en';\n\nexport default IntlRelativeFormat;\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nexport function addLocaleData(data = []) {\n let locales = Array.isArray(data) ? data : [data];\n\n locales.forEach((localeData) => {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nexport function hasLocaleData(locale) {\n let localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n let normalizedLocale = locale && locale.toLowerCase();\n\n return !!(\n IntlMessageFormat.__localeData__[normalizedLocale] &&\n IntlRelativeFormat.__localeData__[normalizedLocale]\n );\n}\n\nexport function registerMessages(Vue, locale, messages) {\n Vue.__allMessages = Vue.__allMessages || {};\n Vue.__allMessages[locale] = Vue.__allMessages[locale] || {};\n Object.assign(Vue.__allMessages[locale], messages);\n}\n\nexport function registerFormats(Vue, locale, formats) {\n Vue.__allFormats = Vue.__allFormats || {};\n Vue.__allFormats[locale] = Vue.__allFormats[locale] || {};\n Object.assign(Vue.__allFormats[locale], formats);\n}\n","export default function setLocale(Vue, locale) {\n Vue.set(Vue, 'locale', locale);\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n Vue.__format_config.formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n Vue.__format_config.messages = (Vue.__allMessages || {})[locale] || {};\n}\n","export default function getLocaleData(Vue) {\n const locale = Vue.locale;\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n const formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n const messages = (Vue.__allMessages || {})[locale] || {};\n return {\n formats,\n messages,\n defaultLocale: Vue.__format_config.defaultLocale,\n defaultFormats: Vue.__format_config.defaultFormats\n };\n}\n","/*\n * This file is an unmodified copy of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nimport IntlMessageFormat from 'intl-messageformat';\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nexport default class IntlPluralFormat {\n constructor(locales, options = {}) {\n let useOrdinal = options.style === 'ordinal';\n let pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = (value) => pluralFn(value, useOrdinal);\n }\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n// Function.prototype.bind implementation from Mozilla Developer Network:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill\n\nvar bind = Function.prototype.bind || function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexport {bind, defineProperty, objCreate};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jshint esnext: true */\n\nimport {bind, objCreate} from './es5';\n\nexport default createFormatCache;\n\n// -----------------------------------------------------------------------------\n\nfunction createFormatCache(FormatConstructor) {\n var cache = objCreate(null);\n\n return function () {\n var args = Array.prototype.slice.call(arguments);\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n\n if (!format) {\n format = new (bind.apply(FormatConstructor, [null].concat(args)))();\n\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n\n return format;\n };\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction getCacheId(inputs) {\n // When JSON is not available in the runtime, we will not create a cache id.\n if (typeof JSON === 'undefined') { return; }\n\n var cacheId = [];\n\n var i, len, input;\n\n for (i = 0, len = inputs.length; i < len; i += 1) {\n input = inputs[i];\n\n if (input && typeof input === 'object') {\n cacheId.push(orderedProps(input));\n } else {\n cacheId.push(input);\n }\n }\n\n return JSON.stringify(cacheId);\n}\n\nfunction orderedProps(obj) {\n var props = [],\n keys = [];\n\n var key, i, len, prop;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n\n var orderedKeys = keys.sort();\n\n for (i = 0, len = orderedKeys.length; i < len; i += 1) {\n key = orderedKeys[i];\n prop = {};\n\n prop[key] = obj[key];\n props[i] = prop;\n }\n\n return props;\n}\n","import IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport IntlPluralFormat from './plural';\nimport memoizeIntlConstructor from 'intl-format-cache';\n\nconst state = {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat : memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat : memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat : memoizeIntlConstructor(IntlPluralFormat),\n now: Date.now()\n};\n\nexport default state;\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst bool = { type : Boolean },\n number = { type : Number },\n string = { type : String },\n object = { type : Object },\n oneOf = function(array) {\n return {validator: function(value) {\n return array.indexOf(value) > -1;\n }};\n };\n\nexport const intlConfigPropTypes = {\n locale : string,\n formats : object,\n messages: object,\n\n defaultLocale : string,\n defaultFormats: object\n};\n\nexport const dateTimeFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12 : bool,\n\n weekday : oneOf(['narrow', 'short', 'long']),\n era : oneOf(['narrow', 'short', 'long']),\n year : oneOf(['numeric', '2-digit']),\n month : oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day : oneOf(['numeric', '2-digit']),\n hour : oneOf(['numeric', '2-digit']),\n minute : oneOf(['numeric', '2-digit']),\n second : oneOf(['numeric', '2-digit']),\n timeZoneName: oneOf(['short', 'long'])\n};\n\nexport const numberFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n\n style : oneOf(['decimal', 'currency', 'percent']),\n currency : string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping : bool,\n\n minimumIntegerDigits : number,\n minimumFractionDigits : number,\n maximumFractionDigits : number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nexport const relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nexport const pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nconst ESCAPED_CHARS = {\n '&' : '&',\n '>' : '>',\n '<' : '<',\n '\"' : '"',\n '\\'': '''\n};\n\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, (match) => ESCAPED_CHARS[match]);\n}\n\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults.hasOwnProperty(name)) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nimport {\n dateTimeFormatPropTypes,\n numberFormatPropTypes,\n relativeFormatPropTypes,\n pluralFormatPropTypes\n} from './types';\n\nimport {\n escape,\n filterProps\n} from './utils';\n\nconst DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nconst NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nconst RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nconst PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nconst RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour : 24, // hours to day\n day : 30, // days to month\n month : 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n const {thresholds} = IntlRelativeFormat;\n ({\n second: thresholds.second,\n minute: thresholds.minute,\n hour : thresholds.hour,\n day : thresholds.day,\n month : thresholds.month\n } = newThresholds);\n}\n\nfunction getNamedFormat(formats, type, name) {\n let format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] No ${type} format named: ${name}`\n );\n }\n}\n\nexport function formatDate(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'date', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting date.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatTime(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'time', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n // When no formatting options have been specified, default to outputting a\n // time; e.g.: \"9:42 AM\".\n if (Object.keys(filteredOptions).length === 0) {\n filteredOptions = {\n hour : 'numeric',\n minute: 'numeric'\n };\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting time.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatRelative(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let now = new Date(options.now);\n let defaults = format && getNamedFormat(formats, 'relative', format);\n let filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n const oldThresholds = Object.assign({}, IntlRelativeFormat.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting relative time.\\n${e}`\n );\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nexport function formatNumber(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let defaults = format && getNamedFormat(formats, 'number', format);\n let filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting number.\\n${e}`\n );\n }\n }\n\n return String(value);\n}\n\nexport function formatPlural(config, state, value, options = {}) {\n const {locale} = config;\n\n let filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting plural.\\n${e}`\n );\n }\n }\n\n return 'other';\n}\n\nexport function formatMessage(config, state, messageDescriptor = {}, values = {}) {\n const {\n locale,\n formats,\n messages,\n defaultLocale,\n defaultFormats\n } = config;\n\n const {\n id,\n defaultMessage\n } = messageDescriptor;\n\n // `id` is a required field of a Message Descriptor.\n if (!id) {\n throw new TypeError('[Vue Intl] An `id` must be provided to format a message.');\n }\n\n const message = messages && messages[id];\n const hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n // When debugging in English, show default string to enable hot module reloading\n if (process.env.NODE_ENV === 'development' && defaultMessage && locale === 'en') {\n var formatter = state.getMessageFormat(defaultMessage, locale, formats);\n return formatter.format(values);\n }\n\n let formattedMessage;\n\n if (message) {\n try {\n let formatter = state.getMessageFormat(\n message, locale, formats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '') +\n `\\n${e}`\n );\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n\n console.error(\n `[Vue Intl] Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')\n );\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n let formatter = state.getMessageFormat(\n defaultMessage, defaultLocale, defaultFormats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting the default message for: \"${id}\"` +\n `\\n${e}`\n );\n }\n }\n }\n\n if (!formattedMessage) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`\n );\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nexport function formatHTMLMessage(config, state, messageDescriptor, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n let escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n let value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","const format = (ctx, values) => ctx.parent.$formatMessage(ctx.props, values)\nconst placeholder = (name) => `@\\0@\\0${name}\\0@\\0@`\nconst placeholderRegex = /@\\0@\\0(.*?)\\0@\\0@/g\n\nexport default {\n functional: true,\n\n props: {\n id: {type: String, required: true},\n defaultMessage: String,\n values: Object,\n tagName: {type: String, default: 'span'}\n },\n\n render (h, ctx) {\n const slots = ctx.slots()\n const slotNames = Object.keys(slots)\n if (slotNames.length === 0) {\n return h(ctx.props.tagName, ctx.data, format(ctx, ctx.props.values))\n }\n\n const values = Object.assign({}, ctx.props.values)\n slotNames.forEach(slot => {\n values[slot] = placeholder(slot)\n })\n\n const message = format(ctx, values)\n\n let match;\n let pos = 0;\n const children = []\n while ((match = placeholderRegex.exec(message)) !== null) {\n children.push(message.substring(pos, match.index), slots[match[1]])\n pos = match.index + match[0].length\n }\n children.push(message.substring(pos))\n return h(ctx.props.tagName, ctx.data, children)\n }\n}\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"year-short\":{\"displayName\":\"yr.\",\"relative\":{\"0\":\"this yr.\",\"1\":\"next yr.\",\"-1\":\"last yr.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yr.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yr. ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"month-short\":{\"displayName\":\"mo.\",\"relative\":{\"0\":\"this mo.\",\"1\":\"next mo.\",\"-1\":\"last mo.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"day-short\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"hour-short\":{\"displayName\":\"hr.\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hr.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hr. ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"minute-short\":{\"displayName\":\"min.\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} min.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} min. ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}},\"second-short\":{\"displayName\":\"sec.\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} sec.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} sec. ago\"}}}}};\n","import {addLocaleData, registerMessages, registerFormats} from './localeData';\nimport setLocale from './setLocale';\nimport getLocaleData from './getLocaleData';\nimport state from './state';\nimport * as formatMethods from './format';\nimport FormattedMessage from './FormattedMessage'\nimport defaultLocaleData from './en';\n\naddLocaleData(defaultLocaleData);\n\n\nfunction install(Vue, options={}) {\n Vue.addLocaleData = addLocaleData;\n Vue.registerMessages = registerMessages.bind(null, Vue);\n Vue.registerFormats = registerFormats.bind(null, Vue);\n Vue.setLocale = setLocale.bind(null, Vue);\n Vue.__format_state = state;\n Vue.__format_config = {\n defaultLocale: options.defaultLocale || 'en',\n defaultFormats: options.defaultFormats || {}\n };\n\n for (let key of Object.getOwnPropertyNames(formatMethods).filter((name) => {\n return formatMethods[name] instanceof Function;\n })) {\n Vue.prototype[`\\$${key}`] = function(...args) {\n let config = {locale: Vue.locale};\n Object.assign(config, getLocaleData(Vue));\n const state = Vue.__format_state;\n return formatMethods[key](config, state, ...args);\n }\n }\n}\n\nexport default {\n addLocaleData,\n FormattedMessage,\n install,\n}\n"],"names":["hop","Object","prototype","hasOwnProperty","extend","obj","sources","Array","slice","call","arguments","i","len","source","key","length","realDefineProp","defineProperty","e","name","desc","__defineGetter__","get","value","objCreate","create","proto","props","k","F","Compiler","locales","formats","pluralFn","compile","ast","pluralStack","currentPlural","pluralNumberFormat","compileMessage","type","Error","elements","pattern","element","push","compileMessageText","compileArgument","test","Intl","NumberFormat","PluralOffsetString","id","format","offset","replace","StringFormat","options","number","style","date","DateTimeFormat","time","compileOptions","PluralFormat","ordinal","SelectFormat","optionsHash","option","selector","pop","String","useOrdinal","getOption","other","numberFormat","string","peg$subclass","child","parent","ctor","constructor","SyntaxError","message","expected","found","line","column","parse","input","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c0","peg$c1","peg$c2","peg$c3","text","j","outerLen","inner","innerLen","peg$c4","messageText","peg$c5","peg$c6","description","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$c22","peg$c23","peg$c24","pluralStyle","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","digits","parseInt","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","fromCharCode","peg$c68","chars","join","peg$currPos","peg$reportedPos","peg$cachedPos","peg$cachedPosDetails","seenCR","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","peg$result","startRule","peg$computePosDetails","pos","advance","details","startPos","endPos","p","ch","charAt","peg$fail","peg$buildException","cleanupExpected","sort","a","b","splice","buildMessage","stringEscape","s","hex","charCodeAt","toString","toUpperCase","expectedDescs","expectedDesc","foundDesc","posDetails","s0","peg$parsemessageFormatPattern","s1","s2","peg$parsemessageFormatElement","peg$parsemessageTextElement","peg$parseargumentElement","peg$parsemessageText","s3","s4","s5","peg$parse_","peg$parsechars","peg$parsews","substring","peg$parseargument","peg$parsenumber","s6","s7","s8","peg$parseelementFormat","peg$parsesimpleFormat","peg$parsepluralFormat","peg$parseselectOrdinalFormat","peg$parseselectFormat","substr","peg$parsepluralStyle","peg$parseoptionalFormatPattern","peg$parseselector","peg$parseoffset","peg$parsedigit","peg$parsehexDigit","peg$parsechar","MessageFormat","__parse","TypeError","_mergeFormats","_resolveLocale","_findPluralRuleFunction","_locale","_compilePattern","messageFormat","values","_format","data","locale","__localeData__","toLowerCase","parser","undefined","resolvedOptions","compiler","localeData","pluralRuleFunction","parentLocale","result","part","defaults","mergedFormats","mergedType","concat","defaultLocale","localeParts","split","n","ord","v0","t0","Number","n10","n100","IntlMessageFormat","__addLocaleData","round","Math","daysToYears","days","from","to","millisecond","second","minute","hour","day","week","rawYears","month","year","arrIndexOf","indexOf","search","fromIndex","arr","max","isArray","dateNow","Date","now","getTime","FIELDS","STYLES","RelativeFormat","_resolveStyle","_isValidUnits","units","_findFields","relativeFormat","_options","_compileMessage","_locales","field","_fields","relativeTime","future","past","_getMessage","messages","_messages","_getRelativeUnits","diff","relative","fields","isFinite","RangeError","diffReport","_selectUnits","diffInUnits","relativeUnits","abs","suggestion","l","thresholds","IntlRelativeFormat","addLocaleData","forEach","registerMessages","Vue","__allMessages","assign","registerFormats","__allFormats","setLocale","set","format_data","getOwnPropertyNames","__format_config","defaultFormats","getLocaleData","resolveLocale","findPluralFunction","IntlPluralFormat","bind","Function","oThis","aArgs","fToBind","fNOP","fBound","apply","createFormatCache","FormatConstructor","cache","args","cacheId","getCacheId","inputs","JSON","orderedProps","stringify","keys","prop","orderedKeys","state","memoizeIntlConstructor","bool","Boolean","oneOf","array","validator","dateTimeFormatPropTypes","numberFormatPropTypes","relativeFormatPropTypes","pluralFormatPropTypes","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","escape","str","match","filterProps","whitelist","reduce","filtered","DATE_TIME_FORMAT_OPTIONS","NUMBER_FORMAT_OPTIONS","RELATIVE_FORMAT_OPTIONS","PLURAL_FORMAT_OPTIONS","RELATIVE_FORMAT_THRESHOLDS","updateRelativeFormatThresholds","newThresholds","getNamedFormat","error","formatDate","config","filteredOptions","getDateTimeFormat","formatTime","formatRelative","oldThresholds","getRelativeFormat","formatNumber","getNumberFormat","formatPlural","getPluralFormat","formatMessage","messageDescriptor","defaultMessage","hasValues","process","formatter","getMessageFormat","formattedMessage","formatHTMLMessage","rawValues","escapedValues","escaped","ctx","$formatMessage","placeholder","placeholderRegex","required","h","slots","slotNames","tagName","slot","children","exec","index","defaultLocaleData","install","__format_state","formatMethods","filter"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-intl.min.js.map b/dist/vue-intl.min.js.map deleted file mode 100644 index adc7697..0000000 --- a/dist/vue-intl.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"vue-intl.min.js","sources":["../node_modules/intl-messageformat/src/utils.js","../node_modules/intl-messageformat/src/es5.js","../node_modules/intl-messageformat/src/compiler.js","../node_modules/intl-messageformat-parser/src/parser.js","../node_modules/intl-messageformat/src/core.js","../node_modules/intl-messageformat/src/main.js","../node_modules/intl-messageformat/src/en.js","../node_modules/intl-relativeformat/src/diff.js","../node_modules/intl-relativeformat/src/es5.js","../node_modules/intl-relativeformat/src/core.js","../src/localeData.js","../node_modules/intl-relativeformat/src/main.js","../node_modules/intl-relativeformat/src/en.js","../node_modules/intl-format-cache/src/es5.js","../node_modules/intl-format-cache/src/memoizer.js","../src/state.js","../src/plural.js","../src/types.js","../src/utils.js","../src/format.js","../src/FormattedMessage.js","../src/en.js","../src/vue-intl.js","../src/setLocale.js","../src/getLocaleData.js"],"sourcesContent":["/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport var hop = Object.prototype.hasOwnProperty;\n\nexport function extend(obj) {\n var sources = Array.prototype.slice.call(arguments, 1),\n i, len, source, key;\n\n for (i = 0, len = sources.length; i < len; i += 1) {\n source = sources[i];\n if (!source) { continue; }\n\n for (key in source) {\n if (hop.call(source, key)) {\n obj[key] = source[key];\n }\n }\n }\n\n return obj;\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {hop} from './utils';\n\nexport {defineProperty, objCreate};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport default Compiler;\n\nfunction Compiler(locales, formats, pluralFn) {\n this.locales = locales;\n this.formats = formats;\n this.pluralFn = pluralFn;\n}\n\nCompiler.prototype.compile = function (ast) {\n this.pluralStack = [];\n this.currentPlural = null;\n this.pluralNumberFormat = null;\n\n return this.compileMessage(ast);\n};\n\nCompiler.prototype.compileMessage = function (ast) {\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new Error('Message AST is not of type: \"messageFormatPattern\"');\n }\n\n var elements = ast.elements,\n pattern = [];\n\n var i, len, element;\n\n for (i = 0, len = elements.length; i < len; i += 1) {\n element = elements[i];\n\n switch (element.type) {\n case 'messageTextElement':\n pattern.push(this.compileMessageText(element));\n break;\n\n case 'argumentElement':\n pattern.push(this.compileArgument(element));\n break;\n\n default:\n throw new Error('Message element does not have a valid type');\n }\n }\n\n return pattern;\n};\n\nCompiler.prototype.compileMessageText = function (element) {\n // When this `element` is part of plural sub-pattern and its value contains\n // an unescaped '#', use a `PluralOffsetString` helper to properly output\n // the number with the correct offset in the string.\n if (this.currentPlural && /(^|[^\\\\])#/g.test(element.value)) {\n // Create a cache a NumberFormat instance that can be reused for any\n // PluralOffsetString instance in this message.\n if (!this.pluralNumberFormat) {\n this.pluralNumberFormat = new Intl.NumberFormat(this.locales);\n }\n\n return new PluralOffsetString(\n this.currentPlural.id,\n this.currentPlural.format.offset,\n this.pluralNumberFormat,\n element.value);\n }\n\n // Unescape the escaped '#'s in the message text.\n return element.value.replace(/\\\\#/g, '#');\n};\n\nCompiler.prototype.compileArgument = function (element) {\n var format = element.format;\n\n if (!format) {\n return new StringFormat(element.id);\n }\n\n var formats = this.formats,\n locales = this.locales,\n pluralFn = this.pluralFn,\n options;\n\n switch (format.type) {\n case 'numberFormat':\n options = formats.number[format.style];\n return {\n id : element.id,\n format: new Intl.NumberFormat(locales, options).format\n };\n\n case 'dateFormat':\n options = formats.date[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'timeFormat':\n options = formats.time[format.style];\n return {\n id : element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'pluralFormat':\n options = this.compileOptions(element);\n return new PluralFormat(\n element.id, format.ordinal, format.offset, options, pluralFn\n );\n\n case 'selectFormat':\n options = this.compileOptions(element);\n return new SelectFormat(element.id, options);\n\n default:\n throw new Error('Message element does not have a valid format type');\n }\n};\n\nCompiler.prototype.compileOptions = function (element) {\n var format = element.format,\n options = format.options,\n optionsHash = {};\n\n // Save the current plural element, if any, then set it to a new value when\n // compiling the options sub-patterns. This conforms the spec's algorithm\n // for handling `\"#\"` syntax in message text.\n this.pluralStack.push(this.currentPlural);\n this.currentPlural = format.type === 'pluralFormat' ? element : null;\n\n var i, len, option;\n\n for (i = 0, len = options.length; i < len; i += 1) {\n option = options[i];\n\n // Compile the sub-pattern and save it under the options's selector.\n optionsHash[option.selector] = this.compileMessage(option.value);\n }\n\n // Pop the plural stack to put back the original current plural value.\n this.currentPlural = this.pluralStack.pop();\n\n return optionsHash;\n};\n\n// -- Compiler Helper Classes --------------------------------------------------\n\nfunction StringFormat(id) {\n this.id = id;\n}\n\nStringFormat.prototype.format = function (value) {\n if (!value) {\n return '';\n }\n\n return typeof value === 'string' ? value : String(value);\n};\n\nfunction PluralFormat(id, useOrdinal, offset, options, pluralFn) {\n this.id = id;\n this.useOrdinal = useOrdinal;\n this.offset = offset;\n this.options = options;\n this.pluralFn = pluralFn;\n}\n\nPluralFormat.prototype.getOption = function (value) {\n var options = this.options;\n\n var option = options['=' + value] ||\n options[this.pluralFn(value - this.offset, this.useOrdinal)];\n\n return option || options.other;\n};\n\nfunction PluralOffsetString(id, offset, numberFormat, string) {\n this.id = id;\n this.offset = offset;\n this.numberFormat = numberFormat;\n this.string = string;\n}\n\nPluralOffsetString.prototype.format = function (value) {\n var number = this.numberFormat.format(value - this.offset);\n\n return this.string\n .replace(/(^|[^\\\\])#/g, '$1' + number)\n .replace(/\\\\#/g, '#');\n};\n\nfunction SelectFormat(id, options) {\n this.id = id;\n this.options = options;\n}\n\nSelectFormat.prototype.getOption = function (value) {\n var options = this.options;\n return options[value] || options.other;\n};\n","export default (function() {\n /*\n * Generated by PEG.js 0.8.0.\n *\n * http://pegjs.majda.cz/\n */\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function SyntaxError(message, expected, found, offset, line, column) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.offset = offset;\n this.line = line;\n this.column = column;\n\n this.name = \"SyntaxError\";\n }\n\n peg$subclass(SyntaxError, Error);\n\n function parse(input) {\n var options = arguments.length > 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = [],\n peg$c1 = function(elements) {\n return {\n type : 'messageFormatPattern',\n elements: elements\n };\n },\n peg$c2 = peg$FAILED,\n peg$c3 = function(text) {\n var string = '',\n i, j, outerLen, inner, innerLen;\n\n for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n inner = text[i];\n\n for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n string += inner[j];\n }\n }\n\n return string;\n },\n peg$c4 = function(messageText) {\n return {\n type : 'messageTextElement',\n value: messageText\n };\n },\n peg$c5 = /^[^ \\t\\n\\r,.+={}#]/,\n peg$c6 = { type: \"class\", value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\", description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\" },\n peg$c7 = \"{\",\n peg$c8 = { type: \"literal\", value: \"{\", description: \"\\\"{\\\"\" },\n peg$c9 = null,\n peg$c10 = \",\",\n peg$c11 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c12 = \"}\",\n peg$c13 = { type: \"literal\", value: \"}\", description: \"\\\"}\\\"\" },\n peg$c14 = function(id, format) {\n return {\n type : 'argumentElement',\n id : id,\n format: format && format[2]\n };\n },\n peg$c15 = \"number\",\n peg$c16 = { type: \"literal\", value: \"number\", description: \"\\\"number\\\"\" },\n peg$c17 = \"date\",\n peg$c18 = { type: \"literal\", value: \"date\", description: \"\\\"date\\\"\" },\n peg$c19 = \"time\",\n peg$c20 = { type: \"literal\", value: \"time\", description: \"\\\"time\\\"\" },\n peg$c21 = function(type, style) {\n return {\n type : type + 'Format',\n style: style && style[2]\n };\n },\n peg$c22 = \"plural\",\n peg$c23 = { type: \"literal\", value: \"plural\", description: \"\\\"plural\\\"\" },\n peg$c24 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: false,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n };\n },\n peg$c25 = \"selectordinal\",\n peg$c26 = { type: \"literal\", value: \"selectordinal\", description: \"\\\"selectordinal\\\"\" },\n peg$c27 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: true,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n }\n },\n peg$c28 = \"select\",\n peg$c29 = { type: \"literal\", value: \"select\", description: \"\\\"select\\\"\" },\n peg$c30 = function(options) {\n return {\n type : 'selectFormat',\n options: options\n };\n },\n peg$c31 = \"=\",\n peg$c32 = { type: \"literal\", value: \"=\", description: \"\\\"=\\\"\" },\n peg$c33 = function(selector, pattern) {\n return {\n type : 'optionalFormatPattern',\n selector: selector,\n value : pattern\n };\n },\n peg$c34 = \"offset:\",\n peg$c35 = { type: \"literal\", value: \"offset:\", description: \"\\\"offset:\\\"\" },\n peg$c36 = function(number) {\n return number;\n },\n peg$c37 = function(offset, options) {\n return {\n type : 'pluralFormat',\n offset : offset,\n options: options\n };\n },\n peg$c38 = { type: \"other\", description: \"whitespace\" },\n peg$c39 = /^[ \\t\\n\\r]/,\n peg$c40 = { type: \"class\", value: \"[ \\\\t\\\\n\\\\r]\", description: \"[ \\\\t\\\\n\\\\r]\" },\n peg$c41 = { type: \"other\", description: \"optionalWhitespace\" },\n peg$c42 = /^[0-9]/,\n peg$c43 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c44 = /^[0-9a-f]/i,\n peg$c45 = { type: \"class\", value: \"[0-9a-f]i\", description: \"[0-9a-f]i\" },\n peg$c46 = \"0\",\n peg$c47 = { type: \"literal\", value: \"0\", description: \"\\\"0\\\"\" },\n peg$c48 = /^[1-9]/,\n peg$c49 = { type: \"class\", value: \"[1-9]\", description: \"[1-9]\" },\n peg$c50 = function(digits) {\n return parseInt(digits, 10);\n },\n peg$c51 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n peg$c52 = { type: \"class\", value: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\", description: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\" },\n peg$c53 = \"\\\\\\\\\",\n peg$c54 = { type: \"literal\", value: \"\\\\\\\\\", description: \"\\\"\\\\\\\\\\\\\\\\\\\"\" },\n peg$c55 = function() { return '\\\\'; },\n peg$c56 = \"\\\\#\",\n peg$c57 = { type: \"literal\", value: \"\\\\#\", description: \"\\\"\\\\\\\\#\\\"\" },\n peg$c58 = function() { return '\\\\#'; },\n peg$c59 = \"\\\\{\",\n peg$c60 = { type: \"literal\", value: \"\\\\{\", description: \"\\\"\\\\\\\\{\\\"\" },\n peg$c61 = function() { return '\\u007B'; },\n peg$c62 = \"\\\\}\",\n peg$c63 = { type: \"literal\", value: \"\\\\}\", description: \"\\\"\\\\\\\\}\\\"\" },\n peg$c64 = function() { return '\\u007D'; },\n peg$c65 = \"\\\\u\",\n peg$c66 = { type: \"literal\", value: \"\\\\u\", description: \"\\\"\\\\\\\\u\\\"\" },\n peg$c67 = function(digits) {\n return String.fromCharCode(parseInt(digits, 16));\n },\n peg$c68 = function(chars) { return chars.join(''); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsestart() {\n var s0;\n\n s0 = peg$parsemessageFormatPattern();\n\n return s0;\n }\n\n function peg$parsemessageFormatPattern() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemessageFormatElement();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemessageFormatElement();\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsemessageFormatElement() {\n var s0;\n\n s0 = peg$parsemessageTextElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n }\n\n return s0;\n }\n\n function peg$parsemessageText() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c3(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsews();\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsemessageTextElement() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c4(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseargument() {\n var s0, s1, s2;\n\n s0 = peg$parsenumber();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c7;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargument();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c10;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseelementFormat();\n if (s8 !== peg$FAILED) {\n s6 = [s6, s7, s8];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c9;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c12;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s7 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c14(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseelementFormat() {\n var s0;\n\n s0 = peg$parsesimpleFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectOrdinalFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectFormat();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsesimpleFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c15) {\n s1 = peg$c15;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c10;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsechars();\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c9;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c21(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c24(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectOrdinalFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 13) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 13;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c26); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c27(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c28) {\n s1 = peg$c28;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseoptionalFormatPattern();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseoptionalFormatPattern();\n }\n } else {\n s5 = peg$c2;\n }\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c30(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c31;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c32); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$parsechars();\n }\n\n return s0;\n }\n\n function peg$parseoptionalFormatPattern() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselector();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c7;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessageFormatPattern();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c12;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s8 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c33(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c34) {\n s1 = peg$c34;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c36(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralStyle() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseoffset();\n if (s1 === peg$FAILED) {\n s1 = peg$c9;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoptionalFormatPattern();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoptionalFormatPattern();\n }\n } else {\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c37(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsews() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = [];\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n }\n } else {\n s0 = peg$c2;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1, s2;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsews();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsews();\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c42.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n\n return s0;\n }\n\n function peg$parsehexDigit() {\n var s0;\n\n if (peg$c44.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c45); }\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c46;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c47); }\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n if (peg$c48.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c49); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsedigit();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsedigit();\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c50(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsechar() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c53) {\n s1 = peg$c53;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c55();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c56) {\n s1 = peg$c56;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c58();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c60); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c64();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c65) {\n s1 = peg$c65;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c66); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parsehexDigit();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehexDigit();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehexDigit();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehexDigit();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c67(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsechars() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsechar();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsechar();\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c68(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {extend, hop} from './utils';\nimport {defineProperty, objCreate} from './es5';\nimport Compiler from './compiler';\nimport parser from 'intl-messageformat-parser';\n\nexport default MessageFormat;\n\n// -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n // Parse string messages into an AST.\n var ast = typeof message === 'string' ?\n MessageFormat.__parse(message) : message;\n\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n formats = this._mergeFormats(MessageFormat.formats, formats);\n\n // Defined first because it's used to build the format pattern.\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n\n // Compile the `ast` to a pattern that is highly optimized for repeated\n // `format()` invocations. **Note:** This passes the `locales` set provided\n // to the constructor instead of just the resolved locale.\n var pluralFn = this._findPluralRuleFunction(this._locale);\n var pattern = this._compilePattern(ast, locales, formats, pluralFn);\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var messageFormat = this;\n this.format = function (values) {\n return messageFormat._format(pattern, values);\n };\n}\n\n// Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\ndefineProperty(MessageFormat, 'formats', {\n enumerable: true,\n\n value: {\n number: {\n 'currency': {\n style: 'currency'\n },\n\n 'percent': {\n style: 'percent'\n }\n },\n\n date: {\n 'short': {\n month: 'numeric',\n day : 'numeric',\n year : '2-digit'\n },\n\n 'medium': {\n month: 'short',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'long': {\n month: 'long',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'full': {\n weekday: 'long',\n month : 'long',\n day : 'numeric',\n year : 'numeric'\n }\n },\n\n time: {\n 'short': {\n hour : 'numeric',\n minute: 'numeric'\n },\n\n 'medium': {\n hour : 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n\n 'long': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n },\n\n 'full': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n }\n }\n }\n});\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(MessageFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(MessageFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlMessageFormat is missing a ' +\n '`locale` property'\n );\n }\n\n MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n}});\n\n// Defines `__parse()` static method as an exposed private.\ndefineProperty(MessageFormat, '__parse', {value: parser.parse});\n\n// Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\ndefineProperty(MessageFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n // TODO: Provide anything else?\n return {\n locale: this._locale\n };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n var compiler = new Compiler(locales, formats, pluralFn);\n return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n var localeData = MessageFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find a `pluralRuleFunction` to return.\n while (data) {\n if (data.pluralRuleFunction) {\n return data.pluralRuleFunction;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlMessageFormat is missing a ' +\n '`pluralRuleFunction` for :' + locale\n );\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n var result = '',\n i, len, part, id, value;\n\n for (i = 0, len = pattern.length; i < len; i += 1) {\n part = pattern[i];\n\n // Exist early for string parts.\n if (typeof part === 'string') {\n result += part;\n continue;\n }\n\n id = part.id;\n\n // Enforce that all required values are provided by the caller.\n if (!(values && hop.call(values, id))) {\n throw new Error('A value must be provided for: ' + id);\n }\n\n value = values[id];\n\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (part.options) {\n result += this._format(part.getOption(value), values);\n } else {\n result += part.format(value);\n }\n }\n\n return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n var mergedFormats = {},\n type, mergedType;\n\n for (type in defaults) {\n if (!hop.call(defaults, type)) { continue; }\n\n mergedFormats[type] = mergedType = objCreate(defaults[type]);\n\n if (formats && hop.call(formats, type)) {\n extend(mergedType, formats[type]);\n }\n }\n\n return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(MessageFormat.defaultLocale);\n\n var localeData = MessageFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlMessageFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n","/* jslint esnext: true */\n\nimport IntlMessageFormat from './core';\nimport defaultLocale from './en';\n\nIntlMessageFormat.__addLocaleData(defaultLocale);\nIntlMessageFormat.defaultLocale = 'en';\n\nexport default IntlMessageFormat;\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"}};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nvar round = Math.round;\n\nfunction daysToYears(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n return days * 400 / 146097;\n}\n\nexport default function (from, to) {\n // Convert to ms timestamps.\n from = +from;\n to = +to;\n\n var millisecond = round(to - from),\n second = round(millisecond / 1000),\n minute = round(second / 60),\n hour = round(minute / 60),\n day = round(hour / 24),\n week = round(day / 7);\n\n var rawYears = daysToYears(day),\n month = round(rawYears * 12),\n year = round(rawYears);\n\n return {\n millisecond: millisecond,\n second : second,\n minute : minute,\n hour : hour,\n day : day,\n week : week,\n month : month,\n year : year\n };\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport {defineProperty, objCreate, arrIndexOf, isArray, dateNow};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nvar arrIndexOf = Array.prototype.indexOf || function (search, fromIndex) {\n /*jshint validthis:true */\n var arr = this;\n if (!arr.length) {\n return -1;\n }\n\n for (var i = fromIndex || 0, max = arr.length; i < max; i++) {\n if (arr[i] === search) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar isArray = Array.isArray || function (obj) {\n return toString.call(obj) === '[object Array]';\n};\n\nvar dateNow = Date.now || function () {\n return new Date().getTime();\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport diff from './diff';\nimport {\n defineProperty,\n objCreate,\n arrIndexOf,\n isArray,\n dateNow\n} from './es5';\n\nexport default RelativeFormat;\n\n// -----------------------------------------------------------------------------\n\nvar FIELDS = ['second', 'minute', 'hour', 'day', 'month', 'year'];\nvar STYLES = ['best fit', 'numeric'];\n\n// -- RelativeFormat -----------------------------------------------------------\n\nfunction RelativeFormat(locales, options) {\n options = options || {};\n\n // Make a copy of `locales` if it's an array, so that it doesn't change\n // since it's used lazily.\n if (isArray(locales)) {\n locales = locales.concat();\n }\n\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n defineProperty(this, '_options', {value: {\n style: this._resolveStyle(options.style),\n units: this._isValidUnits(options.units) && options.units\n }});\n\n defineProperty(this, '_locales', {value: locales});\n defineProperty(this, '_fields', {value: this._findFields(this._locale)});\n defineProperty(this, '_messages', {value: objCreate(null)});\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var relativeFormat = this;\n this.format = function format(date, options) {\n return relativeFormat._format(date, options);\n };\n}\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(RelativeFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(RelativeFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlRelativeFormat is missing a ' +\n '`locale` property value'\n );\n }\n\n RelativeFormat.__localeData__[data.locale.toLowerCase()] = data;\n\n // Add data to IntlMessageFormat.\n IntlMessageFormat.__addLocaleData(data);\n}});\n\n// Define public `defaultLocale` property which can be set by the developer, or\n// it will be set when the first RelativeFormat instance is created by\n// leveraging the resolved locale from `Intl`.\ndefineProperty(RelativeFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\n// Define public `thresholds` property which can be set by the developer, and\n// defaults to relative time thresholds from moment.js.\ndefineProperty(RelativeFormat, 'thresholds', {\n enumerable: true,\n\n value: {\n second: 45, // seconds to minute\n minute: 45, // minutes to hour\n hour : 22, // hours to day\n day : 26, // days to month\n month : 11 // months to year\n }\n});\n\nRelativeFormat.prototype.resolvedOptions = function () {\n return {\n locale: this._locale,\n style : this._options.style,\n units : this._options.units\n };\n};\n\nRelativeFormat.prototype._compileMessage = function (units) {\n // `this._locales` is the original set of locales the user specified to the\n // constructor, while `this._locale` is the resolved root locale.\n var locales = this._locales;\n var resolvedLocale = this._locale;\n\n var field = this._fields[units];\n var relativeTime = field.relativeTime;\n var future = '';\n var past = '';\n var i;\n\n for (i in relativeTime.future) {\n if (relativeTime.future.hasOwnProperty(i)) {\n future += ' ' + i + ' {' +\n relativeTime.future[i].replace('{0}', '#') + '}';\n }\n }\n\n for (i in relativeTime.past) {\n if (relativeTime.past.hasOwnProperty(i)) {\n past += ' ' + i + ' {' +\n relativeTime.past[i].replace('{0}', '#') + '}';\n }\n }\n\n var message = '{when, select, future {{0, plural, ' + future + '}}' +\n 'past {{0, plural, ' + past + '}}}';\n\n // Create the synthetic IntlMessageFormat instance using the original\n // locales value specified by the user when constructing the the parent\n // IntlRelativeFormat instance.\n return new IntlMessageFormat(message, locales);\n};\n\nRelativeFormat.prototype._getMessage = function (units) {\n var messages = this._messages;\n\n // Create a new synthetic message based on the locale data from CLDR.\n if (!messages[units]) {\n messages[units] = this._compileMessage(units);\n }\n\n return messages[units];\n};\n\nRelativeFormat.prototype._getRelativeUnits = function (diff, units) {\n var field = this._fields[units];\n\n if (field.relative) {\n return field.relative[diff];\n }\n};\n\nRelativeFormat.prototype._findFields = function (locale) {\n var localeData = RelativeFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find `fields` to return.\n while (data) {\n if (data.fields) {\n return data.fields;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlRelativeFormat is missing `fields` for :' +\n locale\n );\n};\n\nRelativeFormat.prototype._format = function (date, options) {\n var now = options && options.now !== undefined ? options.now : dateNow();\n\n if (date === undefined) {\n date = now;\n }\n\n // Determine if the `date` and optional `now` values are valid, and throw a\n // similar error to what `Intl.DateTimeFormat#format()` would throw.\n if (!isFinite(now)) {\n throw new RangeError(\n 'The `now` option provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n if (!isFinite(date)) {\n throw new RangeError(\n 'The date value provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n var diffReport = diff(now, date);\n var units = this._options.units || this._selectUnits(diffReport);\n var diffInUnits = diffReport[units];\n\n if (this._options.style !== 'numeric') {\n var relativeUnits = this._getRelativeUnits(diffInUnits, units);\n if (relativeUnits) {\n return relativeUnits;\n }\n }\n\n return this._getMessage(units).format({\n '0' : Math.abs(diffInUnits),\n when: diffInUnits < 0 ? 'past' : 'future'\n });\n};\n\nRelativeFormat.prototype._isValidUnits = function (units) {\n if (!units || arrIndexOf.call(FIELDS, units) >= 0) {\n return true;\n }\n\n if (typeof units === 'string') {\n var suggestion = /s$/.test(units) && units.substr(0, units.length - 1);\n if (suggestion && arrIndexOf.call(FIELDS, suggestion) >= 0) {\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` ' +\n 'value, did you mean: ' + suggestion\n );\n }\n }\n\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` value, it ' +\n 'must be one of: \"' + FIELDS.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(RelativeFormat.defaultLocale);\n\n var localeData = RelativeFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlRelativeFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n\nRelativeFormat.prototype._resolveStyle = function (style) {\n // Default to \"best fit\" style.\n if (!style) {\n return STYLES[0];\n }\n\n if (arrIndexOf.call(STYLES, style) >= 0) {\n return style;\n }\n\n throw new Error(\n '\"' + style + '\" is not a valid IntlRelativeFormat `style` value, it ' +\n 'must be one of: \"' + STYLES.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._selectUnits = function (diffReport) {\n var i, l, units;\n\n for (i = 0, l = FIELDS.length; i < l; i += 1) {\n units = FIELDS[i];\n\n if (Math.abs(diffReport[units]) < RelativeFormat.thresholds[units]) {\n break;\n }\n }\n\n return units;\n};\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nexport function addLocaleData(data = []) {\n let locales = Array.isArray(data) ? data : [data];\n\n locales.forEach((localeData) => {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nexport function hasLocaleData(locale) {\n let localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n let normalizedLocale = locale && locale.toLowerCase();\n\n return !!(\n IntlMessageFormat.__localeData__[normalizedLocale] &&\n IntlRelativeFormat.__localeData__[normalizedLocale]\n );\n}\n\nexport function registerMessages(Vue, locale, messages) {\n Vue.__allMessages = Vue.__allMessages || {};\n Vue.__allMessages[locale] = Vue.__allMessages[locale] || {};\n Object.assign(Vue.__allMessages[locale], messages);\n}\n\nexport function registerFormats(Vue, locale, formats) {\n Vue.__allFormats = Vue.__allFormats || {};\n Vue.__allFormats[locale] = Vue.__allFormats[locale] || {};\n Object.assign(Vue.__allFormats[locale], formats);\n}\n","/* jslint esnext: true */\n\nimport IntlRelativeFormat from './core';\nimport defaultLocale from './en';\n\nIntlRelativeFormat.__addLocaleData(defaultLocale);\nIntlRelativeFormat.defaultLocale = 'en';\n\nexport default IntlRelativeFormat;\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}}}};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n// Function.prototype.bind implementation from Mozilla Developer Network:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill\n\nvar bind = Function.prototype.bind || function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexport {bind, defineProperty, objCreate};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jshint esnext: true */\n\nimport {bind, objCreate} from './es5';\n\nexport default createFormatCache;\n\n// -----------------------------------------------------------------------------\n\nfunction createFormatCache(FormatConstructor) {\n var cache = objCreate(null);\n\n return function () {\n var args = Array.prototype.slice.call(arguments);\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n\n if (!format) {\n format = new (bind.apply(FormatConstructor, [null].concat(args)))();\n\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n\n return format;\n };\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction getCacheId(inputs) {\n // When JSON is not available in the runtime, we will not create a cache id.\n if (typeof JSON === 'undefined') { return; }\n\n var cacheId = [];\n\n var i, len, input;\n\n for (i = 0, len = inputs.length; i < len; i += 1) {\n input = inputs[i];\n\n if (input && typeof input === 'object') {\n cacheId.push(orderedProps(input));\n } else {\n cacheId.push(input);\n }\n }\n\n return JSON.stringify(cacheId);\n}\n\nfunction orderedProps(obj) {\n var props = [],\n keys = [];\n\n var key, i, len, prop;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n\n var orderedKeys = keys.sort();\n\n for (i = 0, len = orderedKeys.length; i < len; i += 1) {\n key = orderedKeys[i];\n prop = {};\n\n prop[key] = obj[key];\n props[i] = prop;\n }\n\n return props;\n}\n","import IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport IntlPluralFormat from './plural';\nimport memoizeIntlConstructor from 'intl-format-cache';\n\nconst state = {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat : memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat : memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat : memoizeIntlConstructor(IntlPluralFormat),\n now: Date.now()\n};\n\nexport default state;\n","/*\n * This file is an unmodified copy of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nimport IntlMessageFormat from 'intl-messageformat';\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nexport default class IntlPluralFormat {\n constructor(locales, options = {}) {\n let useOrdinal = options.style === 'ordinal';\n let pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = (value) => pluralFn(value, useOrdinal);\n }\n}\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst bool = { type : Boolean },\n number = { type : Number },\n string = { type : String },\n object = { type : Object },\n oneOf = function(array) {\n return {validator: function(value) {\n return array.indexOf(value) > -1;\n }};\n };\n\nexport const intlConfigPropTypes = {\n locale : string,\n formats : object,\n messages: object,\n\n defaultLocale : string,\n defaultFormats: object\n};\n\nexport const dateTimeFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12 : bool,\n\n weekday : oneOf(['narrow', 'short', 'long']),\n era : oneOf(['narrow', 'short', 'long']),\n year : oneOf(['numeric', '2-digit']),\n month : oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day : oneOf(['numeric', '2-digit']),\n hour : oneOf(['numeric', '2-digit']),\n minute : oneOf(['numeric', '2-digit']),\n second : oneOf(['numeric', '2-digit']),\n timeZoneName: oneOf(['short', 'long'])\n};\n\nexport const numberFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n\n style : oneOf(['decimal', 'currency', 'percent']),\n currency : string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping : bool,\n\n minimumIntegerDigits : number,\n minimumFractionDigits : number,\n maximumFractionDigits : number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nexport const relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nexport const pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nconst ESCAPED_CHARS = {\n '&' : '&',\n '>' : '>',\n '<' : '<',\n '\"' : '"',\n '\\'': '''\n};\n\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, (match) => ESCAPED_CHARS[match]);\n}\n\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults.hasOwnProperty(name)) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nimport {\n dateTimeFormatPropTypes,\n numberFormatPropTypes,\n relativeFormatPropTypes,\n pluralFormatPropTypes\n} from './types';\n\nimport {\n escape,\n filterProps\n} from './utils';\n\nconst DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nconst NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nconst RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nconst PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nconst RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour : 24, // hours to day\n day : 30, // days to month\n month : 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n const {thresholds} = IntlRelativeFormat;\n ({\n second: thresholds.second,\n minute: thresholds.minute,\n hour : thresholds.hour,\n day : thresholds.day,\n month : thresholds.month\n } = newThresholds);\n}\n\nfunction getNamedFormat(formats, type, name) {\n let format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] No ${type} format named: ${name}`\n );\n }\n}\n\nexport function formatDate(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'date', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting date.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatTime(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'time', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n // When no formatting options have been specified, default to outputting a\n // time; e.g.: \"9:42 AM\".\n if (Object.keys(filteredOptions).length === 0) {\n filteredOptions = {\n hour : 'numeric',\n minute: 'numeric'\n };\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting time.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatRelative(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let now = new Date(options.now);\n let defaults = format && getNamedFormat(formats, 'relative', format);\n let filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n const oldThresholds = Object.assign({}, IntlRelativeFormat.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting relative time.\\n${e}`\n );\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nexport function formatNumber(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let defaults = format && getNamedFormat(formats, 'number', format);\n let filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting number.\\n${e}`\n );\n }\n }\n\n return String(value);\n}\n\nexport function formatPlural(config, state, value, options = {}) {\n const {locale} = config;\n\n let filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting plural.\\n${e}`\n );\n }\n }\n\n return 'other';\n}\n\nexport function formatMessage(config, state, messageDescriptor = {}, values = {}) {\n const {\n locale,\n formats,\n messages,\n defaultLocale,\n defaultFormats\n } = config;\n\n const {\n id,\n defaultMessage\n } = messageDescriptor;\n\n // `id` is a required field of a Message Descriptor.\n if (!id) {\n throw new TypeError('[Vue Intl] An `id` must be provided to format a message.');\n }\n\n const message = messages && messages[id];\n const hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n // When debugging in English, show default string to enable hot module reloading\n if (process.env.NODE_ENV === 'development' && defaultMessage && locale === 'en') {\n var formatter = state.getMessageFormat(defaultMessage, locale, formats);\n return formatter.format(values);\n }\n\n let formattedMessage;\n\n if (message) {\n try {\n let formatter = state.getMessageFormat(\n message, locale, formats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '') +\n `\\n${e}`\n );\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n\n console.error(\n `[Vue Intl] Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')\n );\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n let formatter = state.getMessageFormat(\n defaultMessage, defaultLocale, defaultFormats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting the default message for: \"${id}\"` +\n `\\n${e}`\n );\n }\n }\n }\n\n if (!formattedMessage) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`\n );\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nexport function formatHTMLMessage(config, state, messageDescriptor, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n let escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n let value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","const format = (ctx, values) => ctx.parent.$formatMessage(ctx.props, values)\nconst placeholder = (name) => `@\\0@\\0${name}\\0@\\0@`\nconst placeholderRegex = /@\\0@\\0(.*?)\\0@\\0@/g\n\nexport default {\n functional: true,\n\n props: {\n id: {type: String, required: true},\n defaultMessage: String,\n values: Object,\n tagName: {type: String, default: 'span'}\n },\n\n render (h, ctx) {\n const slots = ctx.slots()\n const slotNames = Object.keys(slots)\n if (slotNames.length === 0) {\n return h(ctx.props.tagName, ctx.data, format(ctx, ctx.props.values))\n }\n\n const values = Object.assign({}, ctx.props.values)\n slotNames.forEach(slot => {\n values[slot] = placeholder(slot)\n })\n\n const message = format(ctx, values)\n\n let match;\n let pos = 0;\n const children = []\n while ((match = placeholderRegex.exec(message)) !== null) {\n children.push(message.substring(pos, match.index), slots[match[1]])\n pos = match.index + match[0].length\n }\n children.push(message.substring(pos))\n return h(ctx.props.tagName, ctx.data, children)\n }\n}\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"year-short\":{\"displayName\":\"yr.\",\"relative\":{\"0\":\"this yr.\",\"1\":\"next yr.\",\"-1\":\"last yr.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yr.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yr. ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"month-short\":{\"displayName\":\"mo.\",\"relative\":{\"0\":\"this mo.\",\"1\":\"next mo.\",\"-1\":\"last mo.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"day-short\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"hour-short\":{\"displayName\":\"hr.\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hr.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hr. ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"minute-short\":{\"displayName\":\"min.\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} min.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} min. ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}},\"second-short\":{\"displayName\":\"sec.\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} sec.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} sec. ago\"}}}}};\n","import {addLocaleData, registerMessages, registerFormats} from './localeData';\nimport setLocale from './setLocale';\nimport getLocaleData from './getLocaleData';\nimport state from './state';\nimport * as formatMethods from './format';\nimport FormattedMessage from './FormattedMessage'\nimport defaultLocaleData from './en';\n\naddLocaleData(defaultLocaleData);\n\n\nfunction install(Vue, options={}) {\n Vue.addLocaleData = addLocaleData;\n Vue.registerMessages = registerMessages.bind(null, Vue);\n Vue.registerFormats = registerFormats.bind(null, Vue);\n Vue.setLocale = setLocale.bind(null, Vue);\n Vue.__format_state = state;\n Vue.__format_config = {\n defaultLocale: options.defaultLocale || 'en',\n defaultFormats: options.defaultFormats || {}\n };\n\n for (let key of Object.getOwnPropertyNames(formatMethods).filter((name) => {\n return formatMethods[name] instanceof Function;\n })) {\n Vue.prototype[`\\$${key}`] = function(...args) {\n let config = {locale: Vue.locale};\n Object.assign(config, getLocaleData(Vue));\n const state = Vue.__format_state;\n return formatMethods[key](config, state, ...args);\n }\n }\n}\n\nexport default {\n addLocaleData,\n FormattedMessage,\n install,\n}\n","export default function setLocale(Vue, locale) {\n Vue.set(Vue, 'locale', locale);\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n Vue.__format_config.formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n Vue.__format_config.messages = (Vue.__allMessages || {})[locale] || {};\n}\n","export default function getLocaleData(Vue) {\n const locale = Vue.locale;\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n const formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n const messages = (Vue.__allMessages || {})[locale] || {};\n return {\n formats,\n messages,\n defaultLocale: Vue.__format_config.defaultLocale,\n defaultFormats: Vue.__format_config.defaultFormats\n };\n}\n"],"names":["hop","Object","prototype","hasOwnProperty","extend","obj","i","len","source","key","sources","Array","slice","call","arguments","length","defineProperty","e","name","desc","__defineGetter__","get","value","objCreate","create","proto","props","k","F","Compiler","locales","formats","pluralFn","StringFormat","id","PluralFormat","useOrdinal","offset","options","PluralOffsetString","numberFormat","string","SelectFormat","compile","ast","pluralStack","currentPlural","pluralNumberFormat","this","compileMessage","type","Error","element","elements","pattern","push","compileMessageText","compileArgument","test","Intl","NumberFormat","format","replace","number","style","date","DateTimeFormat","time","compileOptions","ordinal","option","optionsHash","selector","pop","String","getOption","other","SyntaxError","message","expected","found","line","column","child","parent","ctor","constructor","input","peg$result","pos","posDetails","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c1","peg$c2","peg$c3","text","j","outerLen","inner","innerLen","peg$c4","messageText","peg$c5","peg$c6","description","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$c22","peg$c23","peg$c24","pluralStyle","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","digits","parseInt","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","fromCharCode","peg$c68","chars","join","peg$currPos","peg$cachedPos","peg$cachedPosDetails","seenCR","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","peg$fail","peg$parsemessageFormatPattern","s1","s2","peg$parsemessageFormatElement","s0","s3","s5","s6","s7","s8","s4","peg$parse_","peg$parsechars","peg$parsews","substring","peg$parsemessageText","charCodeAt","peg$parsenumber","charAt","peg$parseargument","substr","peg$parsepluralStyle","peg$parseoptionalFormatPattern","peg$parseselectFormat","peg$parsedigit","peg$parsehexDigit","peg$parsechar","details","startPos","endPos","p","ch","sort","a","b","splice","expectedDescs","s","hex","toString","toUpperCase","stringEscape","buildMessage","MessageFormat","__parse","TypeError","_mergeFormats","_resolveLocale","_findPluralRuleFunction","_locale","_compilePattern","messageFormat","values","_format","data","locale","__localeData__","toLowerCase","parser","parse","undefined","resolvedOptions","localeData","pluralRuleFunction","parentLocale","part","result","defaults","mergedType","mergedFormats","concat","defaultLocale","localeParts","split","__addLocaleData","n","ord","v0","t0","Number","n10","n100","IntlMessageFormat","round","Math","arrIndexOf","indexOf","search","fromIndex","max","isArray","dateNow","Date","now","getTime","FIELDS","STYLES","RelativeFormat","_resolveStyle","_isValidUnits","units","_findFields","relativeFormat","addLocaleData","forEach","_options","_compileMessage","_locales","relativeTime","_fields","future","past","_getMessage","messages","_messages","_getRelativeUnits","diff","field","relative","fields","isFinite","RangeError","millisecond","second","minute","hour","day","week","rawYears","diffReport","_selectUnits","diffInUnits","relativeUnits","abs","suggestion","l","thresholds","year","displayName","0","1","-1","one","month","IntlRelativeFormat","bind","Function","oThis","aArgs","fToBind","fNOP","fBound","apply","createFormatCache","FormatConstructor","cache","args","cacheId","inputs","JSON","orderedProps","stringify","getCacheId","prop","keys","orderedKeys","state","memoizeIntlConstructor","bool","Boolean","oneOf","array","validator","dateTimeFormatPropTypes","numberFormatPropTypes","relativeFormatPropTypes","pluralFormatPropTypes","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","filterProps","whitelist","reduce","filtered","DATE_TIME_FORMAT_OPTIONS","NUMBER_FORMAT_OPTIONS","RELATIVE_FORMAT_OPTIONS","PLURAL_FORMAT_OPTIONS","RELATIVE_FORMAT_THRESHOLDS","updateRelativeFormatThresholds","newThresholds","getNamedFormat","formatMessage","config","messageDescriptor","defaultFormats","defaultMessage","formattedMessage","getMessageFormat","filteredOptions","getDateTimeFormat","oldThresholds","assign","getRelativeFormat","getNumberFormat","getPluralFormat","rawValues","escaped","match","ctx","$formatMessage","placeholderRegex","required","default","h","slots","slotNames","tagName","slot","children","exec","index","year-short","month-short","day-short","hour-short","minute-short","second-short","Vue","registerMessages","__allMessages","registerFormats","__allFormats","setLocale","set","format_data","getOwnPropertyNames","__format_config","__format_state","formatMethods","filter"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-intl.min.js b/dist/vue-intl.prod.min.js similarity index 99% rename from dist/vue-intl.min.js rename to dist/vue-intl.prod.min.js index f62d32d..15d25a9 100644 --- a/dist/vue-intl.min.js +++ b/dist/vue-intl.prod.min.js @@ -1,2 +1,2 @@ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.VueIntl=t()}(this,function(){"use strict";var s=Object.prototype.hasOwnProperty;function a(e){var t,r,n,o,a=Array.prototype.slice.call(arguments,1);for(t=0,r=a.length;tt.description?1:0});t":">","<":"<",'"':""","'":"'"},G=/[&><"']/g;function U(r,e){var n=2 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = [],\n peg$c1 = function(elements) {\n return {\n type : 'messageFormatPattern',\n elements: elements\n };\n },\n peg$c2 = peg$FAILED,\n peg$c3 = function(text) {\n var string = '',\n i, j, outerLen, inner, innerLen;\n\n for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n inner = text[i];\n\n for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n string += inner[j];\n }\n }\n\n return string;\n },\n peg$c4 = function(messageText) {\n return {\n type : 'messageTextElement',\n value: messageText\n };\n },\n peg$c5 = /^[^ \\t\\n\\r,.+={}#]/,\n peg$c6 = { type: \"class\", value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\", description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\" },\n peg$c7 = \"{\",\n peg$c8 = { type: \"literal\", value: \"{\", description: \"\\\"{\\\"\" },\n peg$c9 = null,\n peg$c10 = \",\",\n peg$c11 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c12 = \"}\",\n peg$c13 = { type: \"literal\", value: \"}\", description: \"\\\"}\\\"\" },\n peg$c14 = function(id, format) {\n return {\n type : 'argumentElement',\n id : id,\n format: format && format[2]\n };\n },\n peg$c15 = \"number\",\n peg$c16 = { type: \"literal\", value: \"number\", description: \"\\\"number\\\"\" },\n peg$c17 = \"date\",\n peg$c18 = { type: \"literal\", value: \"date\", description: \"\\\"date\\\"\" },\n peg$c19 = \"time\",\n peg$c20 = { type: \"literal\", value: \"time\", description: \"\\\"time\\\"\" },\n peg$c21 = function(type, style) {\n return {\n type : type + 'Format',\n style: style && style[2]\n };\n },\n peg$c22 = \"plural\",\n peg$c23 = { type: \"literal\", value: \"plural\", description: \"\\\"plural\\\"\" },\n peg$c24 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: false,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n };\n },\n peg$c25 = \"selectordinal\",\n peg$c26 = { type: \"literal\", value: \"selectordinal\", description: \"\\\"selectordinal\\\"\" },\n peg$c27 = function(pluralStyle) {\n return {\n type : pluralStyle.type,\n ordinal: true,\n offset : pluralStyle.offset || 0,\n options: pluralStyle.options\n }\n },\n peg$c28 = \"select\",\n peg$c29 = { type: \"literal\", value: \"select\", description: \"\\\"select\\\"\" },\n peg$c30 = function(options) {\n return {\n type : 'selectFormat',\n options: options\n };\n },\n peg$c31 = \"=\",\n peg$c32 = { type: \"literal\", value: \"=\", description: \"\\\"=\\\"\" },\n peg$c33 = function(selector, pattern) {\n return {\n type : 'optionalFormatPattern',\n selector: selector,\n value : pattern\n };\n },\n peg$c34 = \"offset:\",\n peg$c35 = { type: \"literal\", value: \"offset:\", description: \"\\\"offset:\\\"\" },\n peg$c36 = function(number) {\n return number;\n },\n peg$c37 = function(offset, options) {\n return {\n type : 'pluralFormat',\n offset : offset,\n options: options\n };\n },\n peg$c38 = { type: \"other\", description: \"whitespace\" },\n peg$c39 = /^[ \\t\\n\\r]/,\n peg$c40 = { type: \"class\", value: \"[ \\\\t\\\\n\\\\r]\", description: \"[ \\\\t\\\\n\\\\r]\" },\n peg$c41 = { type: \"other\", description: \"optionalWhitespace\" },\n peg$c42 = /^[0-9]/,\n peg$c43 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c44 = /^[0-9a-f]/i,\n peg$c45 = { type: \"class\", value: \"[0-9a-f]i\", description: \"[0-9a-f]i\" },\n peg$c46 = \"0\",\n peg$c47 = { type: \"literal\", value: \"0\", description: \"\\\"0\\\"\" },\n peg$c48 = /^[1-9]/,\n peg$c49 = { type: \"class\", value: \"[1-9]\", description: \"[1-9]\" },\n peg$c50 = function(digits) {\n return parseInt(digits, 10);\n },\n peg$c51 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n peg$c52 = { type: \"class\", value: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\", description: \"[^{}\\\\\\\\\\\\0-\\\\x1F \\\\t\\\\n\\\\r]\" },\n peg$c53 = \"\\\\\\\\\",\n peg$c54 = { type: \"literal\", value: \"\\\\\\\\\", description: \"\\\"\\\\\\\\\\\\\\\\\\\"\" },\n peg$c55 = function() { return '\\\\'; },\n peg$c56 = \"\\\\#\",\n peg$c57 = { type: \"literal\", value: \"\\\\#\", description: \"\\\"\\\\\\\\#\\\"\" },\n peg$c58 = function() { return '\\\\#'; },\n peg$c59 = \"\\\\{\",\n peg$c60 = { type: \"literal\", value: \"\\\\{\", description: \"\\\"\\\\\\\\{\\\"\" },\n peg$c61 = function() { return '\\u007B'; },\n peg$c62 = \"\\\\}\",\n peg$c63 = { type: \"literal\", value: \"\\\\}\", description: \"\\\"\\\\\\\\}\\\"\" },\n peg$c64 = function() { return '\\u007D'; },\n peg$c65 = \"\\\\u\",\n peg$c66 = { type: \"literal\", value: \"\\\\u\", description: \"\\\"\\\\\\\\u\\\"\" },\n peg$c67 = function(digits) {\n return String.fromCharCode(parseInt(digits, 16));\n },\n peg$c68 = function(chars) { return chars.join(''); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsestart() {\n var s0;\n\n s0 = peg$parsemessageFormatPattern();\n\n return s0;\n }\n\n function peg$parsemessageFormatPattern() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemessageFormatElement();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemessageFormatElement();\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsemessageFormatElement() {\n var s0;\n\n s0 = peg$parsemessageTextElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n }\n\n return s0;\n }\n\n function peg$parsemessageText() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c3(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsews();\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsemessageTextElement() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c4(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseargument() {\n var s0, s1, s2;\n\n s0 = peg$parsenumber();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c5.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c6); }\n }\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c7;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargument();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c10;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseelementFormat();\n if (s8 !== peg$FAILED) {\n s6 = [s6, s7, s8];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c2;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c9;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c12;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s7 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c14(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseelementFormat() {\n var s0;\n\n s0 = peg$parsesimpleFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectOrdinalFormat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectFormat();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsesimpleFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c15) {\n s1 = peg$c15;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c18); }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c10;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsechars();\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c9;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c21(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c24(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectOrdinalFormat() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 13) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 13;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c26); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c27(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselectFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c28) {\n s1 = peg$c28;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseoptionalFormatPattern();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseoptionalFormatPattern();\n }\n } else {\n s5 = peg$c2;\n }\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c30(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c31;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c32); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$parsechars();\n }\n\n return s0;\n }\n\n function peg$parseoptionalFormatPattern() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselector();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c7;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessageFormatPattern();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c12;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s8 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c33(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c34) {\n s1 = peg$c34;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c36(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsepluralStyle() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseoffset();\n if (s1 === peg$FAILED) {\n s1 = peg$c9;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoptionalFormatPattern();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoptionalFormatPattern();\n }\n } else {\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c37(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n\n return s0;\n }\n\n function peg$parsews() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = [];\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n }\n } else {\n s0 = peg$c2;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1, s2;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsews();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsews();\n }\n if (s1 !== peg$FAILED) {\n s1 = input.substring(s0, peg$currPos);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c42.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n\n return s0;\n }\n\n function peg$parsehexDigit() {\n var s0;\n\n if (peg$c44.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c45); }\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c46;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c47); }\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n if (peg$c48.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c49); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsedigit();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsedigit();\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c2;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c50(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsechar() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c53) {\n s1 = peg$c53;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c55();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c56) {\n s1 = peg$c56;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c58();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c60); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c64();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c65) {\n s1 = peg$c65;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c66); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parsehexDigit();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehexDigit();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehexDigit();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehexDigit();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c2;\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c67(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c2;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsechars() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsechar();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsechar();\n }\n } else {\n s1 = peg$c2;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c68(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {extend, hop} from './utils';\nimport {defineProperty, objCreate} from './es5';\nimport Compiler from './compiler';\nimport parser from 'intl-messageformat-parser';\n\nexport default MessageFormat;\n\n// -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n // Parse string messages into an AST.\n var ast = typeof message === 'string' ?\n MessageFormat.__parse(message) : message;\n\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n formats = this._mergeFormats(MessageFormat.formats, formats);\n\n // Defined first because it's used to build the format pattern.\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n\n // Compile the `ast` to a pattern that is highly optimized for repeated\n // `format()` invocations. **Note:** This passes the `locales` set provided\n // to the constructor instead of just the resolved locale.\n var pluralFn = this._findPluralRuleFunction(this._locale);\n var pattern = this._compilePattern(ast, locales, formats, pluralFn);\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var messageFormat = this;\n this.format = function (values) {\n return messageFormat._format(pattern, values);\n };\n}\n\n// Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\ndefineProperty(MessageFormat, 'formats', {\n enumerable: true,\n\n value: {\n number: {\n 'currency': {\n style: 'currency'\n },\n\n 'percent': {\n style: 'percent'\n }\n },\n\n date: {\n 'short': {\n month: 'numeric',\n day : 'numeric',\n year : '2-digit'\n },\n\n 'medium': {\n month: 'short',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'long': {\n month: 'long',\n day : 'numeric',\n year : 'numeric'\n },\n\n 'full': {\n weekday: 'long',\n month : 'long',\n day : 'numeric',\n year : 'numeric'\n }\n },\n\n time: {\n 'short': {\n hour : 'numeric',\n minute: 'numeric'\n },\n\n 'medium': {\n hour : 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n\n 'long': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n },\n\n 'full': {\n hour : 'numeric',\n minute : 'numeric',\n second : 'numeric',\n timeZoneName: 'short'\n }\n }\n }\n});\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(MessageFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(MessageFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlMessageFormat is missing a ' +\n '`locale` property'\n );\n }\n\n MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n}});\n\n// Defines `__parse()` static method as an exposed private.\ndefineProperty(MessageFormat, '__parse', {value: parser.parse});\n\n// Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\ndefineProperty(MessageFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n // TODO: Provide anything else?\n return {\n locale: this._locale\n };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n var compiler = new Compiler(locales, formats, pluralFn);\n return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n var localeData = MessageFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find a `pluralRuleFunction` to return.\n while (data) {\n if (data.pluralRuleFunction) {\n return data.pluralRuleFunction;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlMessageFormat is missing a ' +\n '`pluralRuleFunction` for :' + locale\n );\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n var result = '',\n i, len, part, id, value;\n\n for (i = 0, len = pattern.length; i < len; i += 1) {\n part = pattern[i];\n\n // Exist early for string parts.\n if (typeof part === 'string') {\n result += part;\n continue;\n }\n\n id = part.id;\n\n // Enforce that all required values are provided by the caller.\n if (!(values && hop.call(values, id))) {\n throw new Error('A value must be provided for: ' + id);\n }\n\n value = values[id];\n\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (part.options) {\n result += this._format(part.getOption(value), values);\n } else {\n result += part.format(value);\n }\n }\n\n return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n var mergedFormats = {},\n type, mergedType;\n\n for (type in defaults) {\n if (!hop.call(defaults, type)) { continue; }\n\n mergedFormats[type] = mergedType = objCreate(defaults[type]);\n\n if (formats && hop.call(formats, type)) {\n extend(mergedType, formats[type]);\n }\n }\n\n return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(MessageFormat.defaultLocale);\n\n var localeData = MessageFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlMessageFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n","/* jslint esnext: true */\n\nimport IntlMessageFormat from './core';\nimport defaultLocale from './en';\n\nIntlMessageFormat.__addLocaleData(defaultLocale);\nIntlMessageFormat.defaultLocale = 'en';\n\nexport default IntlMessageFormat;\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"}};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nvar round = Math.round;\n\nfunction daysToYears(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n return days * 400 / 146097;\n}\n\nexport default function (from, to) {\n // Convert to ms timestamps.\n from = +from;\n to = +to;\n\n var millisecond = round(to - from),\n second = round(millisecond / 1000),\n minute = round(second / 60),\n hour = round(minute / 60),\n day = round(hour / 24),\n week = round(day / 7);\n\n var rawYears = daysToYears(day),\n month = round(rawYears * 12),\n year = round(rawYears);\n\n return {\n millisecond: millisecond,\n second : second,\n minute : minute,\n hour : hour,\n day : day,\n week : week,\n month : month,\n year : year\n };\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport {defineProperty, objCreate, arrIndexOf, isArray, dateNow};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nvar arrIndexOf = Array.prototype.indexOf || function (search, fromIndex) {\n /*jshint validthis:true */\n var arr = this;\n if (!arr.length) {\n return -1;\n }\n\n for (var i = fromIndex || 0, max = arr.length; i < max; i++) {\n if (arr[i] === search) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar isArray = Array.isArray || function (obj) {\n return toString.call(obj) === '[object Array]';\n};\n\nvar dateNow = Date.now || function () {\n return new Date().getTime();\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport diff from './diff';\nimport {\n defineProperty,\n objCreate,\n arrIndexOf,\n isArray,\n dateNow\n} from './es5';\n\nexport default RelativeFormat;\n\n// -----------------------------------------------------------------------------\n\nvar FIELDS = ['second', 'minute', 'hour', 'day', 'month', 'year'];\nvar STYLES = ['best fit', 'numeric'];\n\n// -- RelativeFormat -----------------------------------------------------------\n\nfunction RelativeFormat(locales, options) {\n options = options || {};\n\n // Make a copy of `locales` if it's an array, so that it doesn't change\n // since it's used lazily.\n if (isArray(locales)) {\n locales = locales.concat();\n }\n\n defineProperty(this, '_locale', {value: this._resolveLocale(locales)});\n defineProperty(this, '_options', {value: {\n style: this._resolveStyle(options.style),\n units: this._isValidUnits(options.units) && options.units\n }});\n\n defineProperty(this, '_locales', {value: locales});\n defineProperty(this, '_fields', {value: this._findFields(this._locale)});\n defineProperty(this, '_messages', {value: objCreate(null)});\n\n // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n var relativeFormat = this;\n this.format = function format(date, options) {\n return relativeFormat._format(date, options);\n };\n}\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(RelativeFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(RelativeFormat, '__addLocaleData', {value: function (data) {\n if (!(data && data.locale)) {\n throw new Error(\n 'Locale data provided to IntlRelativeFormat is missing a ' +\n '`locale` property value'\n );\n }\n\n RelativeFormat.__localeData__[data.locale.toLowerCase()] = data;\n\n // Add data to IntlMessageFormat.\n IntlMessageFormat.__addLocaleData(data);\n}});\n\n// Define public `defaultLocale` property which can be set by the developer, or\n// it will be set when the first RelativeFormat instance is created by\n// leveraging the resolved locale from `Intl`.\ndefineProperty(RelativeFormat, 'defaultLocale', {\n enumerable: true,\n writable : true,\n value : undefined\n});\n\n// Define public `thresholds` property which can be set by the developer, and\n// defaults to relative time thresholds from moment.js.\ndefineProperty(RelativeFormat, 'thresholds', {\n enumerable: true,\n\n value: {\n second: 45, // seconds to minute\n minute: 45, // minutes to hour\n hour : 22, // hours to day\n day : 26, // days to month\n month : 11 // months to year\n }\n});\n\nRelativeFormat.prototype.resolvedOptions = function () {\n return {\n locale: this._locale,\n style : this._options.style,\n units : this._options.units\n };\n};\n\nRelativeFormat.prototype._compileMessage = function (units) {\n // `this._locales` is the original set of locales the user specified to the\n // constructor, while `this._locale` is the resolved root locale.\n var locales = this._locales;\n var resolvedLocale = this._locale;\n\n var field = this._fields[units];\n var relativeTime = field.relativeTime;\n var future = '';\n var past = '';\n var i;\n\n for (i in relativeTime.future) {\n if (relativeTime.future.hasOwnProperty(i)) {\n future += ' ' + i + ' {' +\n relativeTime.future[i].replace('{0}', '#') + '}';\n }\n }\n\n for (i in relativeTime.past) {\n if (relativeTime.past.hasOwnProperty(i)) {\n past += ' ' + i + ' {' +\n relativeTime.past[i].replace('{0}', '#') + '}';\n }\n }\n\n var message = '{when, select, future {{0, plural, ' + future + '}}' +\n 'past {{0, plural, ' + past + '}}}';\n\n // Create the synthetic IntlMessageFormat instance using the original\n // locales value specified by the user when constructing the the parent\n // IntlRelativeFormat instance.\n return new IntlMessageFormat(message, locales);\n};\n\nRelativeFormat.prototype._getMessage = function (units) {\n var messages = this._messages;\n\n // Create a new synthetic message based on the locale data from CLDR.\n if (!messages[units]) {\n messages[units] = this._compileMessage(units);\n }\n\n return messages[units];\n};\n\nRelativeFormat.prototype._getRelativeUnits = function (diff, units) {\n var field = this._fields[units];\n\n if (field.relative) {\n return field.relative[diff];\n }\n};\n\nRelativeFormat.prototype._findFields = function (locale) {\n var localeData = RelativeFormat.__localeData__;\n var data = localeData[locale.toLowerCase()];\n\n // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find `fields` to return.\n while (data) {\n if (data.fields) {\n return data.fields;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error(\n 'Locale data added to IntlRelativeFormat is missing `fields` for :' +\n locale\n );\n};\n\nRelativeFormat.prototype._format = function (date, options) {\n var now = options && options.now !== undefined ? options.now : dateNow();\n\n if (date === undefined) {\n date = now;\n }\n\n // Determine if the `date` and optional `now` values are valid, and throw a\n // similar error to what `Intl.DateTimeFormat#format()` would throw.\n if (!isFinite(now)) {\n throw new RangeError(\n 'The `now` option provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n if (!isFinite(date)) {\n throw new RangeError(\n 'The date value provided to IntlRelativeFormat#format() is not ' +\n 'in valid range.'\n );\n }\n\n var diffReport = diff(now, date);\n var units = this._options.units || this._selectUnits(diffReport);\n var diffInUnits = diffReport[units];\n\n if (this._options.style !== 'numeric') {\n var relativeUnits = this._getRelativeUnits(diffInUnits, units);\n if (relativeUnits) {\n return relativeUnits;\n }\n }\n\n return this._getMessage(units).format({\n '0' : Math.abs(diffInUnits),\n when: diffInUnits < 0 ? 'past' : 'future'\n });\n};\n\nRelativeFormat.prototype._isValidUnits = function (units) {\n if (!units || arrIndexOf.call(FIELDS, units) >= 0) {\n return true;\n }\n\n if (typeof units === 'string') {\n var suggestion = /s$/.test(units) && units.substr(0, units.length - 1);\n if (suggestion && arrIndexOf.call(FIELDS, suggestion) >= 0) {\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` ' +\n 'value, did you mean: ' + suggestion\n );\n }\n }\n\n throw new Error(\n '\"' + units + '\" is not a valid IntlRelativeFormat `units` value, it ' +\n 'must be one of: \"' + FIELDS.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n }\n\n // Create a copy of the array so we can push on the default locale.\n locales = (locales || []).concat(RelativeFormat.defaultLocale);\n\n var localeData = RelativeFormat.__localeData__;\n var i, len, localeParts, data;\n\n // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error(\n 'No locale data has been added to IntlRelativeFormat for: ' +\n locales.join(', ') + ', or the default locale: ' + defaultLocale\n );\n};\n\nRelativeFormat.prototype._resolveStyle = function (style) {\n // Default to \"best fit\" style.\n if (!style) {\n return STYLES[0];\n }\n\n if (arrIndexOf.call(STYLES, style) >= 0) {\n return style;\n }\n\n throw new Error(\n '\"' + style + '\" is not a valid IntlRelativeFormat `style` value, it ' +\n 'must be one of: \"' + STYLES.join('\", \"') + '\"'\n );\n};\n\nRelativeFormat.prototype._selectUnits = function (diffReport) {\n var i, l, units;\n\n for (i = 0, l = FIELDS.length; i < l; i += 1) {\n units = FIELDS[i];\n\n if (Math.abs(diffReport[units]) < RelativeFormat.thresholds[units]) {\n break;\n }\n }\n\n return units;\n};\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nexport function addLocaleData(data = []) {\n let locales = Array.isArray(data) ? data : [data];\n\n locales.forEach((localeData) => {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nexport function hasLocaleData(locale) {\n let localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n let normalizedLocale = locale && locale.toLowerCase();\n\n return !!(\n IntlMessageFormat.__localeData__[normalizedLocale] &&\n IntlRelativeFormat.__localeData__[normalizedLocale]\n );\n}\n\nexport function registerMessages(Vue, locale, messages) {\n Vue.__allMessages = Vue.__allMessages || {};\n Vue.__allMessages[locale] = Vue.__allMessages[locale] || {};\n Object.assign(Vue.__allMessages[locale], messages);\n}\n\nexport function registerFormats(Vue, locale, formats) {\n Vue.__allFormats = Vue.__allFormats || {};\n Vue.__allFormats[locale] = Vue.__allFormats[locale] || {};\n Object.assign(Vue.__allFormats[locale], formats);\n}\n","/* jslint esnext: true */\n\nimport IntlRelativeFormat from './core';\nimport defaultLocale from './en';\n\nIntlRelativeFormat.__addLocaleData(defaultLocale);\nIntlRelativeFormat.defaultLocale = 'en';\n\nexport default IntlRelativeFormat;\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}}}};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\n// Function.prototype.bind implementation from Mozilla Developer Network:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill\n\nvar bind = Function.prototype.bind || function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n};\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar hop = Object.prototype.hasOwnProperty;\n\nvar realDefineProp = (function () {\n try { return !!Object.defineProperty({}, 'a', {}); }\n catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n function (obj, name, desc) {\n\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexport {bind, defineProperty, objCreate};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jshint esnext: true */\n\nimport {bind, objCreate} from './es5';\n\nexport default createFormatCache;\n\n// -----------------------------------------------------------------------------\n\nfunction createFormatCache(FormatConstructor) {\n var cache = objCreate(null);\n\n return function () {\n var args = Array.prototype.slice.call(arguments);\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n\n if (!format) {\n format = new (bind.apply(FormatConstructor, [null].concat(args)))();\n\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n\n return format;\n };\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction getCacheId(inputs) {\n // When JSON is not available in the runtime, we will not create a cache id.\n if (typeof JSON === 'undefined') { return; }\n\n var cacheId = [];\n\n var i, len, input;\n\n for (i = 0, len = inputs.length; i < len; i += 1) {\n input = inputs[i];\n\n if (input && typeof input === 'object') {\n cacheId.push(orderedProps(input));\n } else {\n cacheId.push(input);\n }\n }\n\n return JSON.stringify(cacheId);\n}\n\nfunction orderedProps(obj) {\n var props = [],\n keys = [];\n\n var key, i, len, prop;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n\n var orderedKeys = keys.sort();\n\n for (i = 0, len = orderedKeys.length; i < len; i += 1) {\n key = orderedKeys[i];\n prop = {};\n\n prop[key] = obj[key];\n props[i] = prop;\n }\n\n return props;\n}\n","import IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport IntlPluralFormat from './plural';\nimport memoizeIntlConstructor from 'intl-format-cache';\n\nconst state = {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat : memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat : memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat : memoizeIntlConstructor(IntlPluralFormat),\n now: Date.now()\n};\n\nexport default state;\n","/*\n * This file is an unmodified copy of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nimport IntlMessageFormat from 'intl-messageformat';\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nexport default class IntlPluralFormat {\n constructor(locales, options = {}) {\n let useOrdinal = options.style === 'ordinal';\n let pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = (value) => pluralFn(value, useOrdinal);\n }\n}\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst bool = { type : Boolean },\n number = { type : Number },\n string = { type : String },\n object = { type : Object },\n oneOf = function(array) {\n return {validator: function(value) {\n return array.indexOf(value) > -1;\n }};\n };\n\nexport const intlConfigPropTypes = {\n locale : string,\n formats : object,\n messages: object,\n\n defaultLocale : string,\n defaultFormats: object\n};\n\nexport const dateTimeFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12 : bool,\n\n weekday : oneOf(['narrow', 'short', 'long']),\n era : oneOf(['narrow', 'short', 'long']),\n year : oneOf(['numeric', '2-digit']),\n month : oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day : oneOf(['numeric', '2-digit']),\n hour : oneOf(['numeric', '2-digit']),\n minute : oneOf(['numeric', '2-digit']),\n second : oneOf(['numeric', '2-digit']),\n timeZoneName: oneOf(['short', 'long'])\n};\n\nexport const numberFormatPropTypes = {\n localeMatcher: oneOf(['best fit', 'lookup']),\n\n style : oneOf(['decimal', 'currency', 'percent']),\n currency : string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping : bool,\n\n minimumIntegerDigits : number,\n minimumFractionDigits : number,\n maximumFractionDigits : number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nexport const relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nexport const pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nconst ESCAPED_CHARS = {\n '&' : '&',\n '>' : '>',\n '<' : '<',\n '\"' : '"',\n '\\'': '''\n};\n\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, (match) => ESCAPED_CHARS[match]);\n}\n\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults.hasOwnProperty(name)) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\n","/*\n * This file is a modified version of that used in the react-intl package.\n * https://github.com/yahoo/react-intl\n * The license notice below is provided to comply with the terms of the BSD license of that package.\n */\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * * Neither the name of the Yahoo Inc. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport IntlRelativeFormat from 'intl-relativeformat';\n\nimport {\n dateTimeFormatPropTypes,\n numberFormatPropTypes,\n relativeFormatPropTypes,\n pluralFormatPropTypes\n} from './types';\n\nimport {\n escape,\n filterProps\n} from './utils';\n\nconst DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nconst NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nconst RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nconst PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nconst RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour : 24, // hours to day\n day : 30, // days to month\n month : 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n const {thresholds} = IntlRelativeFormat;\n ({\n second: thresholds.second,\n minute: thresholds.minute,\n hour : thresholds.hour,\n day : thresholds.day,\n month : thresholds.month\n } = newThresholds);\n}\n\nfunction getNamedFormat(formats, type, name) {\n let format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] No ${type} format named: ${name}`\n );\n }\n}\n\nexport function formatDate(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'date', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting date.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatTime(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let defaults = format && getNamedFormat(formats, 'time', format);\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n\n // When no formatting options have been specified, default to outputting a\n // time; e.g.: \"9:42 AM\".\n if (Object.keys(filteredOptions).length === 0) {\n filteredOptions = {\n hour : 'numeric',\n minute: 'numeric'\n };\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting time.\\n${e}`\n );\n }\n }\n\n return String(date);\n}\n\nexport function formatRelative(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let date = new Date(value);\n let now = new Date(options.now);\n let defaults = format && getNamedFormat(formats, 'relative', format);\n let filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n const oldThresholds = Object.assign({}, IntlRelativeFormat.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting relative time.\\n${e}`\n );\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nexport function formatNumber(config, state, value, options = {}) {\n const {locale, formats} = config;\n const {format} = options;\n\n let defaults = format && getNamedFormat(formats, 'number', format);\n let filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting number.\\n${e}`\n );\n }\n }\n\n return String(value);\n}\n\nexport function formatPlural(config, state, value, options = {}) {\n const {locale} = config;\n\n let filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting plural.\\n${e}`\n );\n }\n }\n\n return 'other';\n}\n\nexport function formatMessage(config, state, messageDescriptor = {}, values = {}) {\n const {\n locale,\n formats,\n messages,\n defaultLocale,\n defaultFormats\n } = config;\n\n const {\n id,\n defaultMessage\n } = messageDescriptor;\n\n // `id` is a required field of a Message Descriptor.\n if (!id) {\n throw new TypeError('[Vue Intl] An `id` must be provided to format a message.');\n }\n\n const message = messages && messages[id];\n const hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n // When debugging in English, show default string to enable hot module reloading\n if (process.env.NODE_ENV === 'development' && defaultMessage && locale === 'en') {\n var formatter = state.getMessageFormat(defaultMessage, locale, formats);\n return formatter.format(values);\n }\n\n let formattedMessage;\n\n if (message) {\n try {\n let formatter = state.getMessageFormat(\n message, locale, formats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '') +\n `\\n${e}`\n );\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n\n console.error(\n `[Vue Intl] Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')\n );\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n let formatter = state.getMessageFormat(\n defaultMessage, defaultLocale, defaultFormats\n );\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Error formatting the default message for: \"${id}\"` +\n `\\n${e}`\n );\n }\n }\n }\n\n if (!formattedMessage) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n `[Vue Intl] Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`\n );\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nexport function formatHTMLMessage(config, state, messageDescriptor, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n let escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n let value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","const format = (ctx, values) => ctx.parent.$formatMessage(ctx.props, values)\nconst placeholder = (name) => `@\\0@\\0${name}\\0@\\0@`\nconst placeholderRegex = /@\\0@\\0(.*?)\\0@\\0@/g\n\nexport default {\n functional: true,\n\n props: {\n id: {type: String, required: true},\n defaultMessage: String,\n values: Object,\n tagName: {type: String, default: 'span'}\n },\n\n render (h, ctx) {\n const slots = ctx.slots()\n const slotNames = Object.keys(slots)\n if (slotNames.length === 0) {\n return h(ctx.props.tagName, ctx.data, format(ctx, ctx.props.values))\n }\n\n const values = Object.assign({}, ctx.props.values)\n slotNames.forEach(slot => {\n values[slot] = placeholder(slot)\n })\n\n const message = format(ctx, values)\n\n let match;\n let pos = 0;\n const children = []\n while ((match = placeholderRegex.exec(message)) !== null) {\n children.push(message.substring(pos, match.index), slots[match[1]])\n pos = match.index + match[0].length\n }\n children.push(message.substring(pos))\n return h(ctx.props.tagName, ctx.data, children)\n }\n}\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"},\"fields\":{\"year\":{\"displayName\":\"year\",\"relative\":{\"0\":\"this year\",\"1\":\"next year\",\"-1\":\"last year\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"}}},\"year-short\":{\"displayName\":\"yr.\",\"relative\":{\"0\":\"this yr.\",\"1\":\"next yr.\",\"-1\":\"last yr.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yr.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yr. ago\"}}},\"month\":{\"displayName\":\"month\",\"relative\":{\"0\":\"this month\",\"1\":\"next month\",\"-1\":\"last month\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"}}},\"month-short\":{\"displayName\":\"mo.\",\"relative\":{\"0\":\"this mo.\",\"1\":\"next mo.\",\"-1\":\"last mo.\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"}}},\"day\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"day-short\":{\"displayName\":\"day\",\"relative\":{\"0\":\"today\",\"1\":\"tomorrow\",\"-1\":\"yesterday\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"}}},\"hour\":{\"displayName\":\"hour\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}}},\"hour-short\":{\"displayName\":\"hr.\",\"relative\":{\"0\":\"this hour\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hr.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hr. ago\"}}},\"minute\":{\"displayName\":\"minute\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}}},\"minute-short\":{\"displayName\":\"min.\",\"relative\":{\"0\":\"this minute\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} min.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} min. ago\"}}},\"second\":{\"displayName\":\"second\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}}},\"second-short\":{\"displayName\":\"sec.\",\"relative\":{\"0\":\"now\"},\"relativeTime\":{\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} sec.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} sec. ago\"}}}}};\n","import {addLocaleData, registerMessages, registerFormats} from './localeData';\nimport setLocale from './setLocale';\nimport getLocaleData from './getLocaleData';\nimport state from './state';\nimport * as formatMethods from './format';\nimport FormattedMessage from './FormattedMessage'\nimport defaultLocaleData from './en';\n\naddLocaleData(defaultLocaleData);\n\n\nfunction install(Vue, options={}) {\n Vue.addLocaleData = addLocaleData;\n Vue.registerMessages = registerMessages.bind(null, Vue);\n Vue.registerFormats = registerFormats.bind(null, Vue);\n Vue.setLocale = setLocale.bind(null, Vue);\n Vue.__format_state = state;\n Vue.__format_config = {\n defaultLocale: options.defaultLocale || 'en',\n defaultFormats: options.defaultFormats || {}\n };\n\n for (let key of Object.getOwnPropertyNames(formatMethods).filter((name) => {\n return formatMethods[name] instanceof Function;\n })) {\n Vue.prototype[`\\$${key}`] = function(...args) {\n let config = {locale: Vue.locale};\n Object.assign(config, getLocaleData(Vue));\n const state = Vue.__format_state;\n return formatMethods[key](config, state, ...args);\n }\n }\n}\n\nexport default {\n addLocaleData,\n FormattedMessage,\n install,\n}\n","export default function setLocale(Vue, locale) {\n Vue.set(Vue, 'locale', locale);\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n Vue.__format_config.formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n Vue.__format_config.messages = (Vue.__allMessages || {})[locale] || {};\n}\n","export default function getLocaleData(Vue) {\n const locale = Vue.locale;\n const format_data = Object.getOwnPropertyNames((Vue.__allFormats || {})[locale] || {}).length > 0;\n const formats = format_data ? Vue.__allFormats[locale] : Vue.__format_config.defaultFormats;\n const messages = (Vue.__allMessages || {})[locale] || {};\n return {\n formats,\n messages,\n defaultLocale: Vue.__format_config.defaultLocale,\n defaultFormats: Vue.__format_config.defaultFormats\n };\n}\n"],"names":["hop","Object","prototype","hasOwnProperty","extend","obj","i","len","source","key","sources","Array","slice","call","arguments","length","defineProperty","e","name","desc","__defineGetter__","get","value","objCreate","create","proto","props","k","F","Compiler","locales","formats","pluralFn","StringFormat","id","PluralFormat","useOrdinal","offset","options","PluralOffsetString","numberFormat","string","SelectFormat","compile","ast","pluralStack","currentPlural","pluralNumberFormat","this","compileMessage","type","Error","element","elements","pattern","push","compileMessageText","compileArgument","test","Intl","NumberFormat","format","replace","number","style","date","DateTimeFormat","time","compileOptions","ordinal","option","optionsHash","selector","pop","String","getOption","other","SyntaxError","message","expected","found","line","column","child","parent","ctor","constructor","input","peg$result","pos","posDetails","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c1","peg$c2","peg$c3","text","j","outerLen","inner","innerLen","peg$c4","messageText","peg$c5","peg$c6","description","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$c22","peg$c23","peg$c24","pluralStyle","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","digits","parseInt","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","fromCharCode","peg$c68","chars","join","peg$currPos","peg$cachedPos","peg$cachedPosDetails","seenCR","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","peg$fail","peg$parsemessageFormatPattern","s1","s2","peg$parsemessageFormatElement","s0","s3","s5","s6","s7","s8","s4","peg$parse_","peg$parsechars","peg$parsews","substring","peg$parsemessageText","charCodeAt","peg$parsenumber","charAt","peg$parseargument","substr","peg$parsepluralStyle","peg$parseoptionalFormatPattern","peg$parseselectFormat","peg$parsedigit","peg$parsehexDigit","peg$parsechar","details","startPos","endPos","p","ch","sort","a","b","splice","expectedDescs","s","hex","toString","toUpperCase","stringEscape","buildMessage","MessageFormat","__parse","TypeError","_mergeFormats","_resolveLocale","_findPluralRuleFunction","_locale","_compilePattern","messageFormat","values","_format","data","locale","__localeData__","toLowerCase","parser","parse","undefined","resolvedOptions","localeData","pluralRuleFunction","parentLocale","part","result","defaults","mergedType","mergedFormats","concat","defaultLocale","localeParts","split","__addLocaleData","n","ord","v0","t0","Number","n10","n100","IntlMessageFormat","round","Math","arrIndexOf","indexOf","search","fromIndex","max","isArray","dateNow","Date","now","getTime","FIELDS","STYLES","RelativeFormat","_resolveStyle","_isValidUnits","units","_findFields","relativeFormat","addLocaleData","forEach","_options","_compileMessage","_locales","relativeTime","_fields","future","past","_getMessage","messages","_messages","_getRelativeUnits","diff","field","relative","fields","isFinite","RangeError","millisecond","second","minute","hour","day","week","rawYears","diffReport","_selectUnits","diffInUnits","relativeUnits","abs","suggestion","l","thresholds","year","displayName","0","1","-1","one","month","IntlRelativeFormat","bind","Function","oThis","aArgs","fToBind","fNOP","fBound","apply","createFormatCache","FormatConstructor","cache","args","cacheId","inputs","JSON","orderedProps","stringify","getCacheId","prop","keys","orderedKeys","state","memoizeIntlConstructor","bool","Boolean","oneOf","array","validator","dateTimeFormatPropTypes","numberFormatPropTypes","relativeFormatPropTypes","pluralFormatPropTypes","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","filterProps","whitelist","reduce","filtered","DATE_TIME_FORMAT_OPTIONS","NUMBER_FORMAT_OPTIONS","RELATIVE_FORMAT_OPTIONS","PLURAL_FORMAT_OPTIONS","RELATIVE_FORMAT_THRESHOLDS","updateRelativeFormatThresholds","newThresholds","getNamedFormat","formatMessage","config","messageDescriptor","defaultFormats","defaultMessage","formattedMessage","getMessageFormat","filteredOptions","getDateTimeFormat","oldThresholds","assign","getRelativeFormat","getNumberFormat","getPluralFormat","rawValues","escaped","match","ctx","$formatMessage","placeholderRegex","required","default","h","slots","slotNames","tagName","slot","children","exec","index","year-short","month-short","day-short","hour-short","minute-short","second-short","Vue","registerMessages","__allMessages","registerFormats","__allFormats","setLocale","set","format_data","getOwnPropertyNames","__format_config","__format_state","formatMethods","filter"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 4f1c61d..e166035 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "vue-intl", "version": "2.1.1", "description": "Vue Plugin for FormatJS Internalization and Localization", - "main": "dist/vue-intl.js", + "main": "dist/vue-intl.dev.js", "directories": { "lib": "./dist" }, diff --git a/rollup.config.dist.js b/rollup.config.dist.js index 0fde6cd..56e9c45 100644 --- a/rollup.config.dist.js +++ b/rollup.config.dist.js @@ -53,7 +53,7 @@ const isProduction = process.env.NODE_ENV === 'production'; export default { input: p.resolve('src/vue-intl.js'), output: { - file: p.resolve(`dist/vue-intl.${isProduction ? 'min.js' : 'js'}`), + file: p.resolve(`dist/vue-intl.${isProduction ? 'prod.min.js' : 'dev.js'}`), format: 'umd', }, name: 'VueIntl', @@ -75,4 +75,4 @@ export default { warnings: false, }), ].filter(Boolean), -}; \ No newline at end of file +}; From 2765520c0eb665a2a11d2e9fca68d0ddca450e64 Mon Sep 17 00:00:00 2001 From: indirectlylit Date: Sat, 1 Dec 2018 13:35:59 -0800 Subject: [PATCH 4/4] bump version to 3.0.0 (changing dist file names is a breaking change) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e166035..ddf65fc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-intl", - "version": "2.1.1", + "version": "3.0.0", "description": "Vue Plugin for FormatJS Internalization and Localization", "main": "dist/vue-intl.dev.js", "directories": {