vue-i18n 8.27.2 → 8.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <p align="center"><img width="128px" height="112px" src="./assets/vue-i18n-logo.png" alt="Vue I18n logo"></p>
2
2
  <h1 align="center">vue-i18n</h1>
3
3
  <p align="center">
4
- <a href="https://circleci.com/gh/kazupon/vue-i18n/tree/dev"><img src="https://circleci.com/gh/kazupon/vue-i18n/tree/dev.svg?style=shield" alt="Build Status"></a>
4
+ <a href="https://github.com/kazupon/vue-i18n/actions/workflows/ci.yml"><img src="https://github.com/kazupon/vue-i18n/actions/workflows/ci.yml/badge.svg" alt="Test Status"></a>
5
5
  <a href="http://badge.fury.io/js/vue-i18n"><img src="https://badge.fury.io/js/vue-i18n.svg" alt="NPM version"></a>
6
6
  <a href="https://discord.gg/4yCnk2m"><img src="https://img.shields.io/badge/Discord-join%20chat-738bd7.svg" alt="vue-i18n channel on Discord"></a>
7
7
  </p>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * vue-i18n v8.27.2
2
+ * vue-i18n v8.28.0
3
3
  * (c) 2022 kazuya kawaguchi
4
4
  * Released under the MIT License.
5
5
  */
@@ -31,6 +31,18 @@ var numberFormatKeys = [
31
31
  'maximumSignificantDigits'
32
32
  ];
33
33
 
34
+ var dateTimeFormatKeys = [
35
+ 'weekday',
36
+ 'era',
37
+ 'year',
38
+ 'month',
39
+ 'day',
40
+ 'hour',
41
+ 'minute',
42
+ 'second',
43
+ 'timeZoneName'
44
+ ];
45
+
34
46
  /**
35
47
  * utilities
36
48
  */
@@ -1983,7 +1995,8 @@ VueI18n.prototype._localizeDateTime = function _localizeDateTime (
1983
1995
  locale,
1984
1996
  fallback,
1985
1997
  dateTimeFormats,
1986
- key
1998
+ key,
1999
+ options
1987
2000
  ) {
1988
2001
  var _locale = locale;
1989
2002
  var formats = dateTimeFormats[_locale];
@@ -2008,16 +2021,23 @@ VueI18n.prototype._localizeDateTime = function _localizeDateTime (
2008
2021
  return null
2009
2022
  } else {
2010
2023
  var format = formats[key];
2011
- var id = _locale + "__" + key;
2012
- var formatter = this._dateTimeFormatters[id];
2013
- if (!formatter) {
2014
- formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);
2024
+
2025
+ var formatter;
2026
+ if (options) {
2027
+ formatter = new Intl.DateTimeFormat(_locale, Object.assign({}, format, options));
2028
+ } else {
2029
+ var id = _locale + "__" + key;
2030
+ formatter = this._dateTimeFormatters[id];
2031
+ if (!formatter) {
2032
+ formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);
2033
+ }
2015
2034
  }
2035
+
2016
2036
  return formatter.format(value)
2017
2037
  }
2018
2038
  };
2019
2039
 
2020
- VueI18n.prototype._d = function _d (value, locale, key) {
2040
+ VueI18n.prototype._d = function _d (value, locale, key, options) {
2021
2041
  /* istanbul ignore if */
2022
2042
  if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {
2023
2043
  warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');
@@ -2025,11 +2045,12 @@ VueI18n.prototype._d = function _d (value, locale, key) {
2025
2045
  }
2026
2046
 
2027
2047
  if (!key) {
2028
- return new Intl.DateTimeFormat(locale).format(value)
2048
+ var dtf = !options ? new Intl.DateTimeFormat(locale) : new Intl.DateTimeFormat(locale, options);
2049
+ return dtf.format(value)
2029
2050
  }
2030
2051
 
2031
2052
  var ret =
2032
- this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);
2053
+ this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key, options);
2033
2054
  if (this._isFallbackRoot(ret)) {
2034
2055
  if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {
2035
2056
  warn(("Fall back to datetime localization of root: key '" + key + "'."));
@@ -2048,6 +2069,7 @@ VueI18n.prototype.d = function d (value) {
2048
2069
 
2049
2070
  var locale = this.locale;
2050
2071
  var key = null;
2072
+ var options = null;
2051
2073
 
2052
2074
  if (args.length === 1) {
2053
2075
  if (isString(args[0])) {
@@ -2060,6 +2082,16 @@ VueI18n.prototype.d = function d (value) {
2060
2082
  key = args[0].key;
2061
2083
  }
2062
2084
  }
2085
+
2086
+ options = Object.keys(args[0]).reduce(function (acc, key) {
2087
+ var obj;
2088
+
2089
+ if (includes(dateTimeFormatKeys, key)) {
2090
+ return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))
2091
+ }
2092
+ return acc
2093
+ }, null);
2094
+
2063
2095
  } else if (args.length === 2) {
2064
2096
  if (isString(args[0])) {
2065
2097
  key = args[0];
@@ -2069,7 +2101,7 @@ VueI18n.prototype.d = function d (value) {
2069
2101
  }
2070
2102
  }
2071
2103
 
2072
- return this._d(value, locale, key)
2104
+ return this._d(value, locale, key, options)
2073
2105
  };
2074
2106
 
2075
2107
  VueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {
@@ -2262,6 +2294,6 @@ Object.defineProperty(VueI18n, 'availabilities', {
2262
2294
  });
2263
2295
 
2264
2296
  VueI18n.install = install;
2265
- VueI18n.version = '8.27.2';
2297
+ VueI18n.version = '8.28.0';
2266
2298
 
2267
2299
  module.exports = VueI18n;
@@ -24,6 +24,18 @@ const numberFormatKeys = [
24
24
  'maximumSignificantDigits'
25
25
  ];
26
26
 
27
+ const dateTimeFormatKeys = [
28
+ 'weekday',
29
+ 'era',
30
+ 'year',
31
+ 'month',
32
+ 'day',
33
+ 'hour',
34
+ 'minute',
35
+ 'second',
36
+ 'timeZoneName'
37
+ ];
38
+
27
39
  /**
28
40
  * utilities
29
41
  */
@@ -1941,7 +1953,8 @@ class VueI18n {
1941
1953
  locale,
1942
1954
  fallback,
1943
1955
  dateTimeFormats,
1944
- key
1956
+ key,
1957
+ options
1945
1958
  ) {
1946
1959
  let _locale = locale;
1947
1960
  let formats = dateTimeFormats[_locale];
@@ -1966,16 +1979,23 @@ class VueI18n {
1966
1979
  return null
1967
1980
  } else {
1968
1981
  const format = formats[key];
1969
- const id = `${_locale}__${key}`;
1970
- let formatter = this._dateTimeFormatters[id];
1971
- if (!formatter) {
1972
- formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);
1982
+
1983
+ let formatter;
1984
+ if (options) {
1985
+ formatter = new Intl.DateTimeFormat(_locale, Object.assign({}, format, options));
1986
+ } else {
1987
+ const id = `${_locale}__${key}`;
1988
+ formatter = this._dateTimeFormatters[id];
1989
+ if (!formatter) {
1990
+ formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);
1991
+ }
1973
1992
  }
1993
+
1974
1994
  return formatter.format(value)
1975
1995
  }
1976
1996
  }
1977
1997
 
1978
- _d (value, locale, key) {
1998
+ _d (value, locale, key, options) {
1979
1999
  /* istanbul ignore if */
1980
2000
  if (!VueI18n.availabilities.dateTimeFormat) {
1981
2001
  warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');
@@ -1983,11 +2003,12 @@ class VueI18n {
1983
2003
  }
1984
2004
 
1985
2005
  if (!key) {
1986
- return new Intl.DateTimeFormat(locale).format(value)
2006
+ const dtf = !options ? new Intl.DateTimeFormat(locale) : new Intl.DateTimeFormat(locale, options);
2007
+ return dtf.format(value)
1987
2008
  }
1988
2009
 
1989
2010
  const ret =
1990
- this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);
2011
+ this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key, options);
1991
2012
  if (this._isFallbackRoot(ret)) {
1992
2013
  if (!this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {
1993
2014
  warn(`Fall back to datetime localization of root: key '${key}'.`);
@@ -2003,6 +2024,7 @@ class VueI18n {
2003
2024
  d (value, ...args) {
2004
2025
  let locale = this.locale;
2005
2026
  let key = null;
2027
+ let options = null;
2006
2028
 
2007
2029
  if (args.length === 1) {
2008
2030
  if (isString(args[0])) {
@@ -2015,6 +2037,14 @@ class VueI18n {
2015
2037
  key = args[0].key;
2016
2038
  }
2017
2039
  }
2040
+
2041
+ options = Object.keys(args[0]).reduce((acc, key) => {
2042
+ if (includes(dateTimeFormatKeys, key)) {
2043
+ return Object.assign({}, acc, { [key]: args[0][key] })
2044
+ }
2045
+ return acc
2046
+ }, null);
2047
+
2018
2048
  } else if (args.length === 2) {
2019
2049
  if (isString(args[0])) {
2020
2050
  key = args[0];
@@ -2024,7 +2054,7 @@ class VueI18n {
2024
2054
  }
2025
2055
  }
2026
2056
 
2027
- return this._d(value, locale, key)
2057
+ return this._d(value, locale, key, options)
2028
2058
  }
2029
2059
 
2030
2060
  getNumberFormat (locale) {
@@ -2211,6 +2241,6 @@ Object.defineProperty(VueI18n, 'availabilities', {
2211
2241
  });
2212
2242
 
2213
2243
  VueI18n.install = install;
2214
- VueI18n.version = '8.27.2';
2244
+ VueI18n.version = '8.28.0';
2215
2245
 
2216
2246
  export default VueI18n;
@@ -1 +1 @@
1
- const t=["compactDisplay","currency","currencyDisplay","currencySign","localeMatcher","notation","numberingSystem","signDisplay","style","unit","unitDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits"];function e(t,e){"undefined"!=typeof console&&(console.warn("[vue-i18n] "+t),e&&console.warn(e.stack))}const n=Array.isArray;function s(t){return null!==t&&"object"==typeof t}function i(t){return"string"==typeof t}const r=Object.prototype.toString,a="[object Object]";function o(t){return r.call(t)===a}function l(t){return null==t}function c(t){return"function"==typeof t}function h(...t){let e=null,i=null;return 1===t.length?s(t[0])||n(t[0])?i=t[0]:"string"==typeof t[0]&&(e=t[0]):2===t.length&&("string"==typeof t[0]&&(e=t[0]),(s(t[1])||n(t[1]))&&(i=t[1])),{locale:e,params:i}}function u(t){return JSON.parse(JSON.stringify(t))}function _(t,e){return!!~t.indexOf(e)}const m=Object.prototype.hasOwnProperty;function f(t,e){return m.call(t,e)}function g(t){const e=Object(t);for(let t=1;t<arguments.length;t++){const n=arguments[t];if(null!=n){let t;for(t in n)f(n,t)&&(s(n[t])?e[t]=g(e[t],n[t]):e[t]=n[t])}}return e}function p(t,e){if(t===e)return!0;const i=s(t),r=s(e);if(!i||!r)return!i&&!r&&String(t)===String(e);try{const s=n(t),i=n(e);if(s&&i)return t.length===e.length&&t.every((t,n)=>p(t,e[n]));if(s||i)return!1;{const n=Object.keys(t),s=Object.keys(e);return n.length===s.length&&n.every(n=>p(t[n],e[n]))}}catch(t){return!1}}var d={name:"i18n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},path:{type:String,required:!0},locale:{type:String},places:{type:[Array,Object]}},render(t,{data:e,parent:n,props:s,slots:i}){const{$i18n:r}=n;if(!r)return;const{path:a,locale:o,places:l}=s,c=i(),h=r.i(a,o,function(t){let e;for(e in t)if("default"!==e)return!1;return Boolean(e)}(c)||l?function(t,e){const n=e?function(t){return Array.isArray(t)?t.reduce(v,{}):Object.assign({},t)}(e):{};if(!t)return n;const s=(t=t.filter(t=>t.tag||""!==t.text.trim())).every(y);return t.reduce(s?b:v,n)}(c.default,l):c),u=s.tag&&!0!==s.tag||!1===s.tag?s.tag:"span";return u?t(u,e,h):h}};function b(t,e){return e.data&&e.data.attrs&&e.data.attrs.place&&(t[e.data.attrs.place]=e),t}function v(t,e,n){return t[n]=e,t}function y(t){return Boolean(t.data&&t.data.attrs&&t.data.attrs.place)}var k={name:"i18n-n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},value:{type:Number,required:!0},format:{type:[String,Object]},locale:{type:String}},render(e,{props:n,parent:r,data:a}){const o=r.$i18n;if(!o)return null;let l=null,c=null;i(n.format)?l=n.format:s(n.format)&&(n.format.key&&(l=n.format.key),c=Object.keys(n.format).reduce((e,s)=>_(t,s)?Object.assign({},e,{[s]:n.format[s]}):e,null));const h=n.locale||o.locale,u=o._ntp(n.value,h,l,c),m=u.map((t,e)=>{const n=a.scopedSlots&&a.scopedSlots[t.type];return n?n({[t.type]:t.value,index:e,parts:u}):t.value}),f=n.tag&&!0!==n.tag||!1===n.tag?n.tag:"span";return f?e(f,{attrs:a.attrs,class:a.class,staticClass:a.staticClass},m):m}};function F(t,e,n){M(t,n)&&C(t,e,n)}function $(t,e,n,s){if(!M(t,n))return;const i=n.context.$i18n;(function(t,e){const n=e.context;return t._locale===n.$i18n.locale})(t,n)&&p(e.value,e.oldValue)&&p(t._localeMessage,i.getLocaleMessage(i.locale))||C(t,e,n)}function w(t,n,s,i){if(!s.context)return void e("Vue instance does not exists in VNode context");const r=s.context.$i18n||{};n.modifiers.preserve||r.preserveDirectiveContent||(t.textContent=""),t._vt=void 0,delete t._vt,t._locale=void 0,delete t._locale,t._localeMessage=void 0,delete t._localeMessage}function M(t,n){const s=n.context;return s?!!s.$i18n||(e("VueI18n instance does not exists in Vue instance"),!1):(e("Vue instance does not exists in VNode context"),!1)}function C(t,n,s){const r=n.value,{path:a,locale:l,args:c,choice:h}=function(t){let e,n,s,r;i(t)?e=t:o(t)&&(e=t.path,n=t.locale,s=t.args,r=t.choice);return{path:e,locale:n,args:s,choice:r}}(r);if(!a&&!l&&!c)return void e("value type not supported");if(!a)return void e("`path` is required in v-t directive");const u=s.context;t._vt=t.textContent=null!=h?u.$i18n.tc(a,h,...T(l,c)):u.$i18n.t(a,...T(l,c)),t._locale=u.$i18n.locale,t._localeMessage=u.$i18n.getLocaleMessage(u.$i18n.locale)}function T(t,e){const n=[];return t&&n.push(t),e&&(Array.isArray(e)||o(e))&&n.push(e),n}let I;function D(t,e={bridge:!1}){D.installed=!0;(I=t).version&&Number(I.version.split(".")[0]);!function(t){t.prototype.hasOwnProperty("$i18n")||Object.defineProperty(t.prototype,"$i18n",{get(){return this._i18n}}),t.prototype.$t=function(t,...e){const n=this.$i18n;return n._t(t,n.locale,n._getMessages(),this,...e)},t.prototype.$tc=function(t,e,...n){const s=this.$i18n;return s._tc(t,s.locale,s._getMessages(),this,e,...n)},t.prototype.$te=function(t,e){const n=this.$i18n;return n._te(t,n.locale,n._getMessages(),e)},t.prototype.$d=function(t,...e){return this.$i18n.d(t,...e)},t.prototype.$n=function(t,...e){return this.$i18n.n(t,...e)}}(I),I.mixin(function(t=!1){function e(){this!==this.$root&&this.$options.__INTLIFY_META__&&this.$el&&this.$el.setAttribute("data-intlify",this.$options.__INTLIFY_META__)}return t?{mounted:e}:{beforeCreate(){const t=this.$options;if(t.i18n=t.i18n||(t.__i18nBridge||t.__i18n?{}:null),t.i18n){if(t.i18n instanceof Q){if(t.__i18nBridge||t.__i18n)try{let e=t.i18n&&t.i18n.messages?t.i18n.messages:{};(t.__i18nBridge||t.__i18n).forEach(t=>{e=g(e,JSON.parse(t))}),Object.keys(e).forEach(n=>{t.i18n.mergeLocaleMessage(n,e[n])})}catch(t){}this._i18n=t.i18n,this._i18nWatcher=this._i18n.watchI18nData()}else if(o(t.i18n)){const e=this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof Q?this.$root.$i18n:null;if(e&&(t.i18n.root=this.$root,t.i18n.formatter=e.formatter,t.i18n.fallbackLocale=e.fallbackLocale,t.i18n.formatFallbackMessages=e.formatFallbackMessages,t.i18n.silentTranslationWarn=e.silentTranslationWarn,t.i18n.silentFallbackWarn=e.silentFallbackWarn,t.i18n.pluralizationRules=e.pluralizationRules,t.i18n.preserveDirectiveContent=e.preserveDirectiveContent),t.__i18nBridge||t.__i18n)try{let e=t.i18n&&t.i18n.messages?t.i18n.messages:{};(t.__i18nBridge||t.__i18n).forEach(t=>{e=g(e,JSON.parse(t))}),t.i18n.messages=e}catch(t){}const{sharedMessages:n}=t.i18n;n&&o(n)&&(t.i18n.messages=g(t.i18n.messages,n)),this._i18n=new Q(t.i18n),this._i18nWatcher=this._i18n.watchI18nData(),(void 0===t.i18n.sync||t.i18n.sync)&&(this._localeWatcher=this.$i18n.watchLocale()),e&&e.onComponentInstanceCreated(this._i18n)}}else this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof Q?this._i18n=this.$root.$i18n:t.parent&&t.parent.$i18n&&t.parent.$i18n instanceof Q&&(this._i18n=t.parent.$i18n)},beforeMount(){const t=this.$options;t.i18n=t.i18n||(t.__i18nBridge||t.__i18n?{}:null),t.i18n?t.i18n instanceof Q?(this._i18n.subscribeDataChanging(this),this._subscribing=!0):o(t.i18n)&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0):this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof Q?(this._i18n.subscribeDataChanging(this),this._subscribing=!0):t.parent&&t.parent.$i18n&&t.parent.$i18n instanceof Q&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0)},mounted:e,beforeDestroy(){if(!this._i18n)return;const t=this;this.$nextTick(()=>{t._subscribing&&(t._i18n.unsubscribeDataChanging(t),delete t._subscribing),t._i18nWatcher&&(t._i18nWatcher(),t._i18n.destroyVM(),delete t._i18nWatcher),t._localeWatcher&&(t._localeWatcher(),delete t._localeWatcher)})}}}(e.bridge)),I.directive("t",{bind:F,update:$,unbind:w}),I.component(d.name,d),I.component(k.name,k),I.config.optionMergeStrategies.i18n=function(t,e){return void 0===e?t:e}}const L=/^(?:\d)+/,O=/^(?:\w)+/;const x=0,N=1,W=2,j=3,E=0,S=4,R=5,V=6,H=7,A=8,P=[];P[E]={ws:[E],ident:[3,x],"[":[S],eof:[H]},P[1]={ws:[1],".":[2],"[":[S],eof:[H]},P[2]={ws:[2],ident:[3,x],0:[3,x],number:[3,x]},P[3]={ident:[3,x],0:[3,x],number:[3,x],ws:[1,N],".":[2,N],"[":[S,N],eof:[H,N]},P[S]={"'":[R,x],'"':[V,x],"[":[S,W],"]":[1,j],eof:A,else:[S,x]},P[R]={"'":[S,x],eof:A,else:[R,x]},P[V]={'"':[S,x],eof:A,else:[V,x]};const B=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function U(t){if(null==t)return"eof";switch(t.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return t;case 95:case 36:case 45:return"ident";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return"ident"}function z(t){const e=t.trim();return("0"!==t.charAt(0)||!isNaN(t))&&(n=e,B.test(n)?function(t){const e=t.charCodeAt(0);return e!==t.charCodeAt(t.length-1)||34!==e&&39!==e?t:t.slice(1,-1)}(e):"*"+e);var n}class G{constructor(){this._cache=Object.create(null)}parsePath(t){let e=this._cache[t];return e||(e=function(t){const e=[];let n,s,i,r,a,o,l,c=-1,h=E,u=0;const _=[];function m(){const e=t[c+1];if(h===R&&"'"===e||h===V&&'"'===e)return c++,i="\\"+e,_[x](),!0}for(_[N]=function(){void 0!==s&&(e.push(s),s=void 0)},_[x]=function(){void 0===s?s=i:s+=i},_[W]=function(){_[x](),u++},_[j]=function(){if(u>0)u--,h=S,_[x]();else{if(u=0,void 0===s)return!1;if(!1===(s=z(s)))return!1;_[N]()}};null!==h;)if("\\"!==(n=t[++c])||!m()){if(r=U(n),(a=(l=P[h])[r]||l.else||A)===A)return;if(h=a[0],(o=_[a[1]])&&(i=void 0===(i=a[2])?n:i,!1===o()))return;if(h===H)return e}}(t))&&(this._cache[t]=e),e||[]}getPathValue(t,e){if(!s(t))return null;const n=this.parsePath(e);if(0===n.length)return null;{const e=n.length;let s=t,i=0;for(;i<e;){const t=s[n[i]];if(null==t)return null;s=t,i++}return s}}}const q=/<\/?[\w\s="/.':;#-\/]+>/,J=/(?:@(?:\.[a-zA-Z]+)?:(?:[\w\-_|./]+|\([\w\-_:|./]+\)))/g,Z=/^@(?:\.([a-zA-Z]+))?:/,Y=/[()]/g,X={upper:t=>t.toLocaleUpperCase(),lower:t=>t.toLocaleLowerCase(),capitalize:t=>`${t.charAt(0).toLocaleUpperCase()}${t.substr(1)}`},K=new class{constructor(){this._caches=Object.create(null)}interpolate(t,e){if(!e)return[t];let n=this._caches[t];return n||(n=function(t){const e=[];let n=0,s="";for(;n<t.length;){let i=t[n++];if("{"===i){s&&e.push({type:"text",value:s}),s="";let r="";for(i=t[n++];void 0!==i&&"}"!==i;)r+=i,i=t[n++];const a="}"===i,o=L.test(r)?"list":a&&O.test(r)?"named":"unknown";e.push({value:r,type:o})}else"%"===i?"{"!==t[n]&&(s+=i):s+=i}return s&&e.push({type:"text",value:s}),e}(t),this._caches[t]=n),function(t,e){const n=[];let i=0;const r=Array.isArray(e)?"list":s(e)?"named":"unknown";if("unknown"===r)return n;for(;i<t.length;){const s=t[i];switch(s.type){case"text":n.push(s.value);break;case"list":n.push(e[parseInt(s.value,10)]);break;case"named":"named"===r&&n.push(e[s.value])}i++}return n}(n,e)}};class Q{constructor(t={}){!I&&"undefined"!=typeof window&&window.Vue&&D(window.Vue);const e=t.locale||"en-US",n=!1!==t.fallbackLocale&&(t.fallbackLocale||"en-US"),s=t.messages||{},i=t.dateTimeFormats||t.datetimeFormats||{},r=t.numberFormats||{};this._vm=null,this._formatter=t.formatter||K,this._modifiers=t.modifiers||{},this._missing=t.missing||null,this._root=t.root||null,this._sync=void 0===t.sync||!!t.sync,this._fallbackRoot=void 0===t.fallbackRoot||!!t.fallbackRoot,this._fallbackRootWithEmptyString=void 0===t.fallbackRootWithEmptyString||!!t.fallbackRootWithEmptyString,this._formatFallbackMessages=void 0!==t.formatFallbackMessages&&!!t.formatFallbackMessages,this._silentTranslationWarn=void 0!==t.silentTranslationWarn&&t.silentTranslationWarn,this._silentFallbackWarn=void 0!==t.silentFallbackWarn&&!!t.silentFallbackWarn,this._dateTimeFormatters={},this._numberFormatters={},this._path=new G,this._dataListeners=new Set,this._componentInstanceCreatedListener=t.componentInstanceCreatedListener||null,this._preserveDirectiveContent=void 0!==t.preserveDirectiveContent&&!!t.preserveDirectiveContent,this.pluralizationRules=t.pluralizationRules||{},this._warnHtmlInMessage=t.warnHtmlInMessage||"off",this._postTranslation=t.postTranslation||null,this._escapeParameterHtml=t.escapeParameterHtml||!1,"__VUE_I18N_BRIDGE__"in t&&(this.__VUE_I18N_BRIDGE__=t.__VUE_I18N_BRIDGE__),this.getChoiceIndex=((t,e)=>{const n=Object.getPrototypeOf(this);if(n&&n.getChoiceIndex){return n.getChoiceIndex.call(this,t,e)}return this.locale in this.pluralizationRules?this.pluralizationRules[this.locale].apply(this,[t,e]):((t,e)=>(t=Math.abs(t),2===e?t?t>1?1:0:1:t?Math.min(t,2):0))(t,e)}),this._exist=((t,e)=>!(!t||!e)&&(!l(this._path.getPathValue(t,e))||!!t[e])),"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||Object.keys(s).forEach(t=>{this._checkLocaleMessage(t,this._warnHtmlInMessage,s[t])}),this._initVM({locale:e,fallbackLocale:n,messages:s,dateTimeFormats:i,numberFormats:r})}_checkLocaleMessage(t,s,r){const a=(t,s,r,l)=>{if(o(r))Object.keys(r).forEach(e=>{const n=r[e];o(n)?(l.push(e),l.push("."),a(t,s,n,l),l.pop(),l.pop()):(l.push(e),a(t,s,n,l),l.pop())});else if(n(r))r.forEach((e,n)=>{o(e)?(l.push(`[${n}]`),l.push("."),a(t,s,e,l),l.pop(),l.pop()):(l.push(`[${n}]`),a(t,s,e,l),l.pop())});else if(i(r)){if(q.test(r)){const n=`Detected HTML in message '${r}' of keypath '${l.join("")}' at '${s}'. Consider component interpolation with '<i18n>' to avoid XSS. See https://bit.ly/2ZqJzkp`;"warn"===t?e(n):"error"===t&&function(t,e){"undefined"!=typeof console&&(console.error("[vue-i18n] "+t),e&&console.error(e.stack))}(n)}}};a(s,t,r,[])}_initVM(t){const e=I.config.silent;I.config.silent=!0,this._vm=new I({data:t,__VUE18N__INSTANCE__:!0}),I.config.silent=e}destroyVM(){this._vm.$destroy()}subscribeDataChanging(t){this._dataListeners.add(t)}unsubscribeDataChanging(t){!function(t,e){if(t.delete(e));}(this._dataListeners,t)}watchI18nData(){return this._vm.$watch("$data",()=>{const t=function(t){const e=[];return t.forEach(t=>e.push(t)),e}(this._dataListeners);let e=t.length;for(;e--;)I.nextTick(()=>{t[e]&&t[e].$forceUpdate()})},{deep:!0})}watchLocale(t){if(t){if(!this.__VUE_I18N_BRIDGE__)return null;const e=this,n=this._vm;return this.vm.$watch("locale",s=>{n.$set(n,"locale",s),e.__VUE_I18N_BRIDGE__&&t&&(t.locale.value=s),n.$forceUpdate()},{immediate:!0})}{if(!this._sync||!this._root)return null;const t=this._vm;return this._root.$i18n.vm.$watch("locale",e=>{t.$set(t,"locale",e),t.$forceUpdate()},{immediate:!0})}}onComponentInstanceCreated(t){this._componentInstanceCreatedListener&&this._componentInstanceCreatedListener(t,this)}get vm(){return this._vm}get messages(){return u(this._getMessages())}get dateTimeFormats(){return u(this._getDateTimeFormats())}get numberFormats(){return u(this._getNumberFormats())}get availableLocales(){return Object.keys(this.messages).sort()}get locale(){return this._vm.locale}set locale(t){this._vm.$set(this._vm,"locale",t)}get fallbackLocale(){return this._vm.fallbackLocale}set fallbackLocale(t){this._localeChainCache={},this._vm.$set(this._vm,"fallbackLocale",t)}get formatFallbackMessages(){return this._formatFallbackMessages}set formatFallbackMessages(t){this._formatFallbackMessages=t}get missing(){return this._missing}set missing(t){this._missing=t}get formatter(){return this._formatter}set formatter(t){this._formatter=t}get silentTranslationWarn(){return this._silentTranslationWarn}set silentTranslationWarn(t){this._silentTranslationWarn=t}get silentFallbackWarn(){return this._silentFallbackWarn}set silentFallbackWarn(t){this._silentFallbackWarn=t}get preserveDirectiveContent(){return this._preserveDirectiveContent}set preserveDirectiveContent(t){this._preserveDirectiveContent=t}get warnHtmlInMessage(){return this._warnHtmlInMessage}set warnHtmlInMessage(t){const e=this._warnHtmlInMessage;if(this._warnHtmlInMessage=t,e!==t&&("warn"===t||"error"===t)){const t=this._getMessages();Object.keys(t).forEach(e=>{this._checkLocaleMessage(e,this._warnHtmlInMessage,t[e])})}}get postTranslation(){return this._postTranslation}set postTranslation(t){this._postTranslation=t}get sync(){return this._sync}set sync(t){this._sync=t}_getMessages(){return this._vm.messages}_getDateTimeFormats(){return this._vm.dateTimeFormats}_getNumberFormats(){return this._vm.numberFormats}_warnDefault(t,e,n,s,r,a){if(!l(n))return n;if(this._missing){const n=this._missing.apply(null,[t,e,s,r]);if(i(n))return n}if(this._formatFallbackMessages){const t=h(...r);return this._render(e,a,t.params,e)}return e}_isFallbackRoot(t){return(this._fallbackRootWithEmptyString?!t:l(t))&&!l(this._root)&&this._fallbackRoot}_isSilentFallbackWarn(t){return this._silentFallbackWarn instanceof RegExp?this._silentFallbackWarn.test(t):this._silentFallbackWarn}_isSilentFallback(t,e){return this._isSilentFallbackWarn(e)&&(this._isFallbackRoot()||t!==this.fallbackLocale)}_isSilentTranslationWarn(t){return this._silentTranslationWarn instanceof RegExp?this._silentTranslationWarn.test(t):this._silentTranslationWarn}_interpolate(t,e,s,r,a,h,u){if(!e)return null;const _=this._path.getPathValue(e,s);if(n(_)||o(_))return _;let m;if(l(_)){if(!o(e))return null;if(!i(m=e[s])&&!c(m))return null}else{if(!i(_)&&!c(_))return null;m=_}return i(m)&&(m.indexOf("@:")>=0||m.indexOf("@.")>=0)&&(m=this._link(t,e,m,r,"raw",h,u)),this._render(m,a,h,s)}_link(t,e,s,i,r,a,o){let l=s;const c=l.match(J);for(let s in c){if(!c.hasOwnProperty(s))continue;const h=c[s],u=h.match(Z),[m,f]=u,g=h.replace(m,"").replace(Y,"");if(_(o,g))return l;o.push(g);let p=this._interpolate(t,e,g,i,"raw"===r?"string":r,"raw"===r?void 0:a,o);if(this._isFallbackRoot(p)){if(!this._root)throw Error("unexpected error");const t=this._root.$i18n;p=t._translate(t._getMessages(),t.locale,t.fallbackLocale,g,i,r,a)}p=this._warnDefault(t,g,p,i,n(a)?a:[a],r),this._modifiers.hasOwnProperty(f)?p=this._modifiers[f](p):X.hasOwnProperty(f)&&(p=X[f](p)),o.pop(),l=p?l.replace(h,p):l}return l}_createMessageContext(t,e,i,r){const a=n(t)?t:[],o=s(t)?t:{},l=this._getMessages(),c=this.locale;return{list:t=>a[t],named:t=>o[t],values:t,formatter:e,path:i,messages:l,locale:c,linked:t=>this._interpolate(c,l[c]||{},t,null,r,void 0,[t])}}_render(t,e,n,s){if(c(t))return t(this._createMessageContext(n,this._formatter||K,s,e));let r=this._formatter.interpolate(t,n,s);return r||(r=K.interpolate(t,n,s)),"string"!==e||i(r)?r:r.join("")}_appendItemToChain(t,e,n){let s=!1;return _(t,e)||(s=!0,e&&(s="!"!==e[e.length-1],e=e.replace(/!/g,""),t.push(e),n&&n[e]&&(s=n[e]))),s}_appendLocaleToChain(t,e,n){let s;const i=e.split("-");do{const e=i.join("-");s=this._appendItemToChain(t,e,n),i.splice(-1,1)}while(i.length&&!0===s);return s}_appendBlockToChain(t,e,n){let s=!0;for(let r=0;r<e.length&&"boolean"==typeof s;r++){const a=e[r];i(a)&&(s=this._appendLocaleToChain(t,a,n))}return s}_getLocaleChain(t,e){if(""===t)return[];this._localeChainCache||(this._localeChainCache={});let r=this._localeChainCache[t];if(!r){e||(e=this.fallbackLocale),r=[];let a,o=[t];for(;n(o);)o=this._appendBlockToChain(r,o,e);(o=i(a=n(e)?e:s(e)?e.default?e.default:null:e)?[a]:a)&&this._appendBlockToChain(r,o,null),this._localeChainCache[t]=r}return r}_translate(t,e,n,s,i,r,a){const o=this._getLocaleChain(e,n);let c;for(let e=0;e<o.length;e++){const n=o[e];if(!l(c=this._interpolate(n,t[n],s,i,r,a,[s])))return c}return null}_t(t,e,n,s,...i){if(!t)return"";const r=h(...i);var a;this._escapeParameterHtml&&(r.params=(null!=(a=r.params)&&Object.keys(a).forEach(t=>{"string"==typeof a[t]&&(a[t]=function(t){return t.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}(a[t]))}),a));const o=r.locale||e;let l=this._translate(n,o,this.fallbackLocale,t,s,"string",r.params);if(this._isFallbackRoot(l)){if(!this._root)throw Error("unexpected error");return this._root.$t(t,...i)}return l=this._warnDefault(o,t,l,s,i,"string"),this._postTranslation&&null!=l&&(l=this._postTranslation(l,t)),l}t(t,...e){return this._t(t,this.locale,this._getMessages(),null,...e)}_i(t,e,n,s,i){const r=this._translate(n,e,this.fallbackLocale,t,s,"raw",i);if(this._isFallbackRoot(r)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.i(t,e,i)}return this._warnDefault(e,t,r,s,[i],"raw")}i(t,e,n){return t?(i(e)||(e=this.locale),this._i(t,e,this._getMessages(),null,n)):""}_tc(t,e,n,s,i,...r){if(!t)return"";void 0===i&&(i=1);const a={count:i,n:i},o=h(...r);return o.params=Object.assign(a,o.params),r=null===o.locale?[o.params]:[o.locale,o.params],this.fetchChoice(this._t(t,e,n,s,...r),i)}fetchChoice(t,e){if(!t||!i(t))return null;const n=t.split("|");return n[e=this.getChoiceIndex(e,n.length)]?n[e].trim():t}tc(t,e,...n){return this._tc(t,this.locale,this._getMessages(),null,e,...n)}_te(t,e,n,...s){const i=h(...s).locale||e;return this._exist(n[i],t)}te(t,e){return this._te(t,this.locale,this._getMessages(),e)}getLocaleMessage(t){return u(this._vm.messages[t]||{})}setLocaleMessage(t,e){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(t,this._warnHtmlInMessage,e),this._vm.$set(this._vm.messages,t,e)}mergeLocaleMessage(t,e){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(t,this._warnHtmlInMessage,e),this._vm.$set(this._vm.messages,t,g(void 0!==this._vm.messages[t]&&Object.keys(this._vm.messages[t]).length?Object.assign({},this._vm.messages[t]):{},e))}getDateTimeFormat(t){return u(this._vm.dateTimeFormats[t]||{})}setDateTimeFormat(t,e){this._vm.$set(this._vm.dateTimeFormats,t,e),this._clearDateTimeFormat(t,e)}mergeDateTimeFormat(t,e){this._vm.$set(this._vm.dateTimeFormats,t,g(this._vm.dateTimeFormats[t]||{},e)),this._clearDateTimeFormat(t,e)}_clearDateTimeFormat(t,e){for(let n in e){const e=`${t}__${n}`;this._dateTimeFormatters.hasOwnProperty(e)&&delete this._dateTimeFormatters[e]}}_localizeDateTime(t,e,n,s,i){let r=e,a=s[r];const o=this._getLocaleChain(e,n);for(let t=0;t<o.length;t++){const e=o[t];if(r=e,!l(a=s[e])&&!l(a[i]))break}if(l(a)||l(a[i]))return null;{const e=a[i],n=`${r}__${i}`;let s=this._dateTimeFormatters[n];return s||(s=this._dateTimeFormatters[n]=new Intl.DateTimeFormat(r,e)),s.format(t)}}_d(t,e,n){if(!n)return new Intl.DateTimeFormat(e).format(t);const s=this._localizeDateTime(t,e,this.fallbackLocale,this._getDateTimeFormats(),n);if(this._isFallbackRoot(s)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.d(t,n,e)}return s||""}d(t,...e){let n=this.locale,r=null;return 1===e.length?i(e[0])?r=e[0]:s(e[0])&&(e[0].locale&&(n=e[0].locale),e[0].key&&(r=e[0].key)):2===e.length&&(i(e[0])&&(r=e[0]),i(e[1])&&(n=e[1])),this._d(t,n,r)}getNumberFormat(t){return u(this._vm.numberFormats[t]||{})}setNumberFormat(t,e){this._vm.$set(this._vm.numberFormats,t,e),this._clearNumberFormat(t,e)}mergeNumberFormat(t,e){this._vm.$set(this._vm.numberFormats,t,g(this._vm.numberFormats[t]||{},e)),this._clearNumberFormat(t,e)}_clearNumberFormat(t,e){for(let n in e){const e=`${t}__${n}`;this._numberFormatters.hasOwnProperty(e)&&delete this._numberFormatters[e]}}_getNumberFormatter(t,e,n,s,i,r){let a=e,o=s[a];const c=this._getLocaleChain(e,n);for(let t=0;t<c.length;t++){const e=c[t];if(a=e,!l(o=s[e])&&!l(o[i]))break}if(l(o)||l(o[i]))return null;{const t=o[i];let e;if(r)e=new Intl.NumberFormat(a,Object.assign({},t,r));else{const n=`${a}__${i}`;(e=this._numberFormatters[n])||(e=this._numberFormatters[n]=new Intl.NumberFormat(a,t))}return e}}_n(t,e,n,s){if(!Q.availabilities.numberFormat)return"";if(!n){return(s?new Intl.NumberFormat(e,s):new Intl.NumberFormat(e)).format(t)}const i=this._getNumberFormatter(t,e,this.fallbackLocale,this._getNumberFormats(),n,s),r=i&&i.format(t);if(this._isFallbackRoot(r)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.n(t,Object.assign({},{key:n,locale:e},s))}return r||""}n(e,...n){let r=this.locale,a=null,o=null;return 1===n.length?i(n[0])?a=n[0]:s(n[0])&&(n[0].locale&&(r=n[0].locale),n[0].key&&(a=n[0].key),o=Object.keys(n[0]).reduce((e,s)=>_(t,s)?Object.assign({},e,{[s]:n[0][s]}):e,null)):2===n.length&&(i(n[0])&&(a=n[0]),i(n[1])&&(r=n[1])),this._n(e,r,a,o)}_ntp(t,e,n,s){if(!Q.availabilities.numberFormat)return[];if(!n){return(s?new Intl.NumberFormat(e,s):new Intl.NumberFormat(e)).formatToParts(t)}const i=this._getNumberFormatter(t,e,this.fallbackLocale,this._getNumberFormats(),n,s),r=i&&i.formatToParts(t);if(this._isFallbackRoot(r)){if(!this._root)throw Error("unexpected error");return this._root.$i18n._ntp(t,e,n,s)}return r||[]}}let tt;Object.defineProperty(Q,"availabilities",{get(){if(!tt){const t="undefined"!=typeof Intl;tt={dateTimeFormat:t&&void 0!==Intl.DateTimeFormat,numberFormat:t&&void 0!==Intl.NumberFormat}}return tt}}),Q.install=D,Q.version="8.27.2";export default Q;
1
+ const t=["compactDisplay","currency","currencyDisplay","currencySign","localeMatcher","notation","numberingSystem","signDisplay","style","unit","unitDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits"],e=["weekday","era","year","month","day","hour","minute","second","timeZoneName"];function n(t,e){"undefined"!=typeof console&&(console.warn("[vue-i18n] "+t),e&&console.warn(e.stack))}const s=Array.isArray;function i(t){return null!==t&&"object"==typeof t}function r(t){return"string"==typeof t}const a=Object.prototype.toString,o="[object Object]";function l(t){return a.call(t)===o}function c(t){return null==t}function h(t){return"function"==typeof t}function u(...t){let e=null,n=null;return 1===t.length?i(t[0])||s(t[0])?n=t[0]:"string"==typeof t[0]&&(e=t[0]):2===t.length&&("string"==typeof t[0]&&(e=t[0]),(i(t[1])||s(t[1]))&&(n=t[1])),{locale:e,params:n}}function _(t){return JSON.parse(JSON.stringify(t))}function m(t,e){return!!~t.indexOf(e)}const f=Object.prototype.hasOwnProperty;function g(t,e){return f.call(t,e)}function p(t){const e=Object(t);for(let t=1;t<arguments.length;t++){const n=arguments[t];if(null!=n){let t;for(t in n)g(n,t)&&(i(n[t])?e[t]=p(e[t],n[t]):e[t]=n[t])}}return e}function d(t,e){if(t===e)return!0;const n=i(t),r=i(e);if(!n||!r)return!n&&!r&&String(t)===String(e);try{const n=s(t),i=s(e);if(n&&i)return t.length===e.length&&t.every((t,n)=>d(t,e[n]));if(n||i)return!1;{const n=Object.keys(t),s=Object.keys(e);return n.length===s.length&&n.every(n=>d(t[n],e[n]))}}catch(t){return!1}}var b={name:"i18n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},path:{type:String,required:!0},locale:{type:String},places:{type:[Array,Object]}},render(t,{data:e,parent:n,props:s,slots:i}){const{$i18n:r}=n;if(!r)return;const{path:a,locale:o,places:l}=s,c=i(),h=r.i(a,o,function(t){let e;for(e in t)if("default"!==e)return!1;return Boolean(e)}(c)||l?function(t,e){const n=e?function(t){return Array.isArray(t)?t.reduce(y,{}):Object.assign({},t)}(e):{};if(!t)return n;const s=(t=t.filter(t=>t.tag||""!==t.text.trim())).every(k);return t.reduce(s?v:y,n)}(c.default,l):c),u=s.tag&&!0!==s.tag||!1===s.tag?s.tag:"span";return u?t(u,e,h):h}};function v(t,e){return e.data&&e.data.attrs&&e.data.attrs.place&&(t[e.data.attrs.place]=e),t}function y(t,e,n){return t[n]=e,t}function k(t){return Boolean(t.data&&t.data.attrs&&t.data.attrs.place)}var F={name:"i18n-n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},value:{type:Number,required:!0},format:{type:[String,Object]},locale:{type:String}},render(e,{props:n,parent:s,data:a}){const o=s.$i18n;if(!o)return null;let l=null,c=null;r(n.format)?l=n.format:i(n.format)&&(n.format.key&&(l=n.format.key),c=Object.keys(n.format).reduce((e,s)=>m(t,s)?Object.assign({},e,{[s]:n.format[s]}):e,null));const h=n.locale||o.locale,u=o._ntp(n.value,h,l,c),_=u.map((t,e)=>{const n=a.scopedSlots&&a.scopedSlots[t.type];return n?n({[t.type]:t.value,index:e,parts:u}):t.value}),f=n.tag&&!0!==n.tag||!1===n.tag?n.tag:"span";return f?e(f,{attrs:a.attrs,class:a.class,staticClass:a.staticClass},_):_}};function $(t,e,n){T(t,n)&&C(t,e,n)}function w(t,e,n,s){if(!T(t,n))return;const i=n.context.$i18n;(function(t,e){const n=e.context;return t._locale===n.$i18n.locale})(t,n)&&d(e.value,e.oldValue)&&d(t._localeMessage,i.getLocaleMessage(i.locale))||C(t,e,n)}function M(t,e,s,i){if(!s.context)return void n("Vue instance does not exists in VNode context");const r=s.context.$i18n||{};e.modifiers.preserve||r.preserveDirectiveContent||(t.textContent=""),t._vt=void 0,delete t._vt,t._locale=void 0,delete t._locale,t._localeMessage=void 0,delete t._localeMessage}function T(t,e){const s=e.context;return s?!!s.$i18n||(n("VueI18n instance does not exists in Vue instance"),!1):(n("Vue instance does not exists in VNode context"),!1)}function C(t,e,s){const i=e.value,{path:a,locale:o,args:c,choice:h}=function(t){let e,n,s,i;r(t)?e=t:l(t)&&(e=t.path,n=t.locale,s=t.args,i=t.choice);return{path:e,locale:n,args:s,choice:i}}(i);if(!a&&!o&&!c)return void n("value type not supported");if(!a)return void n("`path` is required in v-t directive");const u=s.context;t._vt=t.textContent=null!=h?u.$i18n.tc(a,h,...I(o,c)):u.$i18n.t(a,...I(o,c)),t._locale=u.$i18n.locale,t._localeMessage=u.$i18n.getLocaleMessage(u.$i18n.locale)}function I(t,e){const n=[];return t&&n.push(t),e&&(Array.isArray(e)||l(e))&&n.push(e),n}let D;function L(t,e={bridge:!1}){L.installed=!0;(D=t).version&&Number(D.version.split(".")[0]);!function(t){t.prototype.hasOwnProperty("$i18n")||Object.defineProperty(t.prototype,"$i18n",{get(){return this._i18n}}),t.prototype.$t=function(t,...e){const n=this.$i18n;return n._t(t,n.locale,n._getMessages(),this,...e)},t.prototype.$tc=function(t,e,...n){const s=this.$i18n;return s._tc(t,s.locale,s._getMessages(),this,e,...n)},t.prototype.$te=function(t,e){const n=this.$i18n;return n._te(t,n.locale,n._getMessages(),e)},t.prototype.$d=function(t,...e){return this.$i18n.d(t,...e)},t.prototype.$n=function(t,...e){return this.$i18n.n(t,...e)}}(D),D.mixin(function(t=!1){function e(){this!==this.$root&&this.$options.__INTLIFY_META__&&this.$el&&this.$el.setAttribute("data-intlify",this.$options.__INTLIFY_META__)}return t?{mounted:e}:{beforeCreate(){const t=this.$options;if(t.i18n=t.i18n||(t.__i18nBridge||t.__i18n?{}:null),t.i18n){if(t.i18n instanceof tt){if(t.__i18nBridge||t.__i18n)try{let e=t.i18n&&t.i18n.messages?t.i18n.messages:{};(t.__i18nBridge||t.__i18n).forEach(t=>{e=p(e,JSON.parse(t))}),Object.keys(e).forEach(n=>{t.i18n.mergeLocaleMessage(n,e[n])})}catch(t){}this._i18n=t.i18n,this._i18nWatcher=this._i18n.watchI18nData()}else if(l(t.i18n)){const e=this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof tt?this.$root.$i18n:null;if(e&&(t.i18n.root=this.$root,t.i18n.formatter=e.formatter,t.i18n.fallbackLocale=e.fallbackLocale,t.i18n.formatFallbackMessages=e.formatFallbackMessages,t.i18n.silentTranslationWarn=e.silentTranslationWarn,t.i18n.silentFallbackWarn=e.silentFallbackWarn,t.i18n.pluralizationRules=e.pluralizationRules,t.i18n.preserveDirectiveContent=e.preserveDirectiveContent),t.__i18nBridge||t.__i18n)try{let e=t.i18n&&t.i18n.messages?t.i18n.messages:{};(t.__i18nBridge||t.__i18n).forEach(t=>{e=p(e,JSON.parse(t))}),t.i18n.messages=e}catch(t){}const{sharedMessages:n}=t.i18n;n&&l(n)&&(t.i18n.messages=p(t.i18n.messages,n)),this._i18n=new tt(t.i18n),this._i18nWatcher=this._i18n.watchI18nData(),(void 0===t.i18n.sync||t.i18n.sync)&&(this._localeWatcher=this.$i18n.watchLocale()),e&&e.onComponentInstanceCreated(this._i18n)}}else this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof tt?this._i18n=this.$root.$i18n:t.parent&&t.parent.$i18n&&t.parent.$i18n instanceof tt&&(this._i18n=t.parent.$i18n)},beforeMount(){const t=this.$options;t.i18n=t.i18n||(t.__i18nBridge||t.__i18n?{}:null),t.i18n?t.i18n instanceof tt?(this._i18n.subscribeDataChanging(this),this._subscribing=!0):l(t.i18n)&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0):this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof tt?(this._i18n.subscribeDataChanging(this),this._subscribing=!0):t.parent&&t.parent.$i18n&&t.parent.$i18n instanceof tt&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0)},mounted:e,beforeDestroy(){if(!this._i18n)return;const t=this;this.$nextTick(()=>{t._subscribing&&(t._i18n.unsubscribeDataChanging(t),delete t._subscribing),t._i18nWatcher&&(t._i18nWatcher(),t._i18n.destroyVM(),delete t._i18nWatcher),t._localeWatcher&&(t._localeWatcher(),delete t._localeWatcher)})}}}(e.bridge)),D.directive("t",{bind:$,update:w,unbind:M}),D.component(b.name,b),D.component(F.name,F),D.config.optionMergeStrategies.i18n=function(t,e){return void 0===e?t:e}}const O=/^(?:\d)+/,x=/^(?:\w)+/;const N=0,W=1,j=2,E=3,S=0,R=4,V=5,H=6,A=7,P=8,B=[];B[S]={ws:[S],ident:[3,N],"[":[R],eof:[A]},B[1]={ws:[1],".":[2],"[":[R],eof:[A]},B[2]={ws:[2],ident:[3,N],0:[3,N],number:[3,N]},B[3]={ident:[3,N],0:[3,N],number:[3,N],ws:[1,W],".":[2,W],"[":[R,W],eof:[A,W]},B[R]={"'":[V,N],'"':[H,N],"[":[R,j],"]":[1,E],eof:P,else:[R,N]},B[V]={"'":[R,N],eof:P,else:[V,N]},B[H]={'"':[R,N],eof:P,else:[H,N]};const U=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function z(t){if(null==t)return"eof";switch(t.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return t;case 95:case 36:case 45:return"ident";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return"ident"}function G(t){const e=t.trim();return("0"!==t.charAt(0)||!isNaN(t))&&(n=e,U.test(n)?function(t){const e=t.charCodeAt(0);return e!==t.charCodeAt(t.length-1)||34!==e&&39!==e?t:t.slice(1,-1)}(e):"*"+e);var n}class q{constructor(){this._cache=Object.create(null)}parsePath(t){let e=this._cache[t];return e||(e=function(t){const e=[];let n,s,i,r,a,o,l,c=-1,h=S,u=0;const _=[];function m(){const e=t[c+1];if(h===V&&"'"===e||h===H&&'"'===e)return c++,i="\\"+e,_[N](),!0}for(_[W]=function(){void 0!==s&&(e.push(s),s=void 0)},_[N]=function(){void 0===s?s=i:s+=i},_[j]=function(){_[N](),u++},_[E]=function(){if(u>0)u--,h=R,_[N]();else{if(u=0,void 0===s)return!1;if(!1===(s=G(s)))return!1;_[W]()}};null!==h;)if("\\"!==(n=t[++c])||!m()){if(r=z(n),(a=(l=B[h])[r]||l.else||P)===P)return;if(h=a[0],(o=_[a[1]])&&(i=void 0===(i=a[2])?n:i,!1===o()))return;if(h===A)return e}}(t))&&(this._cache[t]=e),e||[]}getPathValue(t,e){if(!i(t))return null;const n=this.parsePath(e);if(0===n.length)return null;{const e=n.length;let s=t,i=0;for(;i<e;){const t=s[n[i]];if(null==t)return null;s=t,i++}return s}}}const J=/<\/?[\w\s="/.':;#-\/]+>/,Z=/(?:@(?:\.[a-zA-Z]+)?:(?:[\w\-_|./]+|\([\w\-_:|./]+\)))/g,Y=/^@(?:\.([a-zA-Z]+))?:/,X=/[()]/g,K={upper:t=>t.toLocaleUpperCase(),lower:t=>t.toLocaleLowerCase(),capitalize:t=>`${t.charAt(0).toLocaleUpperCase()}${t.substr(1)}`},Q=new class{constructor(){this._caches=Object.create(null)}interpolate(t,e){if(!e)return[t];let n=this._caches[t];return n||(n=function(t){const e=[];let n=0,s="";for(;n<t.length;){let i=t[n++];if("{"===i){s&&e.push({type:"text",value:s}),s="";let r="";for(i=t[n++];void 0!==i&&"}"!==i;)r+=i,i=t[n++];const a="}"===i,o=O.test(r)?"list":a&&x.test(r)?"named":"unknown";e.push({value:r,type:o})}else"%"===i?"{"!==t[n]&&(s+=i):s+=i}return s&&e.push({type:"text",value:s}),e}(t),this._caches[t]=n),function(t,e){const n=[];let s=0;const r=Array.isArray(e)?"list":i(e)?"named":"unknown";if("unknown"===r)return n;for(;s<t.length;){const i=t[s];switch(i.type){case"text":n.push(i.value);break;case"list":n.push(e[parseInt(i.value,10)]);break;case"named":"named"===r&&n.push(e[i.value])}s++}return n}(n,e)}};class tt{constructor(t={}){!D&&"undefined"!=typeof window&&window.Vue&&L(window.Vue);const e=t.locale||"en-US",n=!1!==t.fallbackLocale&&(t.fallbackLocale||"en-US"),s=t.messages||{},i=t.dateTimeFormats||t.datetimeFormats||{},r=t.numberFormats||{};this._vm=null,this._formatter=t.formatter||Q,this._modifiers=t.modifiers||{},this._missing=t.missing||null,this._root=t.root||null,this._sync=void 0===t.sync||!!t.sync,this._fallbackRoot=void 0===t.fallbackRoot||!!t.fallbackRoot,this._fallbackRootWithEmptyString=void 0===t.fallbackRootWithEmptyString||!!t.fallbackRootWithEmptyString,this._formatFallbackMessages=void 0!==t.formatFallbackMessages&&!!t.formatFallbackMessages,this._silentTranslationWarn=void 0!==t.silentTranslationWarn&&t.silentTranslationWarn,this._silentFallbackWarn=void 0!==t.silentFallbackWarn&&!!t.silentFallbackWarn,this._dateTimeFormatters={},this._numberFormatters={},this._path=new q,this._dataListeners=new Set,this._componentInstanceCreatedListener=t.componentInstanceCreatedListener||null,this._preserveDirectiveContent=void 0!==t.preserveDirectiveContent&&!!t.preserveDirectiveContent,this.pluralizationRules=t.pluralizationRules||{},this._warnHtmlInMessage=t.warnHtmlInMessage||"off",this._postTranslation=t.postTranslation||null,this._escapeParameterHtml=t.escapeParameterHtml||!1,"__VUE_I18N_BRIDGE__"in t&&(this.__VUE_I18N_BRIDGE__=t.__VUE_I18N_BRIDGE__),this.getChoiceIndex=((t,e)=>{const n=Object.getPrototypeOf(this);if(n&&n.getChoiceIndex){return n.getChoiceIndex.call(this,t,e)}return this.locale in this.pluralizationRules?this.pluralizationRules[this.locale].apply(this,[t,e]):((t,e)=>(t=Math.abs(t),2===e?t?t>1?1:0:1:t?Math.min(t,2):0))(t,e)}),this._exist=((t,e)=>!(!t||!e)&&(!c(this._path.getPathValue(t,e))||!!t[e])),"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||Object.keys(s).forEach(t=>{this._checkLocaleMessage(t,this._warnHtmlInMessage,s[t])}),this._initVM({locale:e,fallbackLocale:n,messages:s,dateTimeFormats:i,numberFormats:r})}_checkLocaleMessage(t,e,i){const a=(t,e,i,o)=>{if(l(i))Object.keys(i).forEach(n=>{const s=i[n];l(s)?(o.push(n),o.push("."),a(t,e,s,o),o.pop(),o.pop()):(o.push(n),a(t,e,s,o),o.pop())});else if(s(i))i.forEach((n,s)=>{l(n)?(o.push(`[${s}]`),o.push("."),a(t,e,n,o),o.pop(),o.pop()):(o.push(`[${s}]`),a(t,e,n,o),o.pop())});else if(r(i)){if(J.test(i)){const s=`Detected HTML in message '${i}' of keypath '${o.join("")}' at '${e}'. Consider component interpolation with '<i18n>' to avoid XSS. See https://bit.ly/2ZqJzkp`;"warn"===t?n(s):"error"===t&&function(t,e){"undefined"!=typeof console&&(console.error("[vue-i18n] "+t),e&&console.error(e.stack))}(s)}}};a(e,t,i,[])}_initVM(t){const e=D.config.silent;D.config.silent=!0,this._vm=new D({data:t,__VUE18N__INSTANCE__:!0}),D.config.silent=e}destroyVM(){this._vm.$destroy()}subscribeDataChanging(t){this._dataListeners.add(t)}unsubscribeDataChanging(t){!function(t,e){if(t.delete(e));}(this._dataListeners,t)}watchI18nData(){return this._vm.$watch("$data",()=>{const t=function(t){const e=[];return t.forEach(t=>e.push(t)),e}(this._dataListeners);let e=t.length;for(;e--;)D.nextTick(()=>{t[e]&&t[e].$forceUpdate()})},{deep:!0})}watchLocale(t){if(t){if(!this.__VUE_I18N_BRIDGE__)return null;const e=this,n=this._vm;return this.vm.$watch("locale",s=>{n.$set(n,"locale",s),e.__VUE_I18N_BRIDGE__&&t&&(t.locale.value=s),n.$forceUpdate()},{immediate:!0})}{if(!this._sync||!this._root)return null;const t=this._vm;return this._root.$i18n.vm.$watch("locale",e=>{t.$set(t,"locale",e),t.$forceUpdate()},{immediate:!0})}}onComponentInstanceCreated(t){this._componentInstanceCreatedListener&&this._componentInstanceCreatedListener(t,this)}get vm(){return this._vm}get messages(){return _(this._getMessages())}get dateTimeFormats(){return _(this._getDateTimeFormats())}get numberFormats(){return _(this._getNumberFormats())}get availableLocales(){return Object.keys(this.messages).sort()}get locale(){return this._vm.locale}set locale(t){this._vm.$set(this._vm,"locale",t)}get fallbackLocale(){return this._vm.fallbackLocale}set fallbackLocale(t){this._localeChainCache={},this._vm.$set(this._vm,"fallbackLocale",t)}get formatFallbackMessages(){return this._formatFallbackMessages}set formatFallbackMessages(t){this._formatFallbackMessages=t}get missing(){return this._missing}set missing(t){this._missing=t}get formatter(){return this._formatter}set formatter(t){this._formatter=t}get silentTranslationWarn(){return this._silentTranslationWarn}set silentTranslationWarn(t){this._silentTranslationWarn=t}get silentFallbackWarn(){return this._silentFallbackWarn}set silentFallbackWarn(t){this._silentFallbackWarn=t}get preserveDirectiveContent(){return this._preserveDirectiveContent}set preserveDirectiveContent(t){this._preserveDirectiveContent=t}get warnHtmlInMessage(){return this._warnHtmlInMessage}set warnHtmlInMessage(t){const e=this._warnHtmlInMessage;if(this._warnHtmlInMessage=t,e!==t&&("warn"===t||"error"===t)){const t=this._getMessages();Object.keys(t).forEach(e=>{this._checkLocaleMessage(e,this._warnHtmlInMessage,t[e])})}}get postTranslation(){return this._postTranslation}set postTranslation(t){this._postTranslation=t}get sync(){return this._sync}set sync(t){this._sync=t}_getMessages(){return this._vm.messages}_getDateTimeFormats(){return this._vm.dateTimeFormats}_getNumberFormats(){return this._vm.numberFormats}_warnDefault(t,e,n,s,i,a){if(!c(n))return n;if(this._missing){const n=this._missing.apply(null,[t,e,s,i]);if(r(n))return n}if(this._formatFallbackMessages){const t=u(...i);return this._render(e,a,t.params,e)}return e}_isFallbackRoot(t){return(this._fallbackRootWithEmptyString?!t:c(t))&&!c(this._root)&&this._fallbackRoot}_isSilentFallbackWarn(t){return this._silentFallbackWarn instanceof RegExp?this._silentFallbackWarn.test(t):this._silentFallbackWarn}_isSilentFallback(t,e){return this._isSilentFallbackWarn(e)&&(this._isFallbackRoot()||t!==this.fallbackLocale)}_isSilentTranslationWarn(t){return this._silentTranslationWarn instanceof RegExp?this._silentTranslationWarn.test(t):this._silentTranslationWarn}_interpolate(t,e,n,i,a,o,u){if(!e)return null;const _=this._path.getPathValue(e,n);if(s(_)||l(_))return _;let m;if(c(_)){if(!l(e))return null;if(!r(m=e[n])&&!h(m))return null}else{if(!r(_)&&!h(_))return null;m=_}return r(m)&&(m.indexOf("@:")>=0||m.indexOf("@.")>=0)&&(m=this._link(t,e,m,i,"raw",o,u)),this._render(m,a,o,n)}_link(t,e,n,i,r,a,o){let l=n;const c=l.match(Z);for(let n in c){if(!c.hasOwnProperty(n))continue;const h=c[n],u=h.match(Y),[_,f]=u,g=h.replace(_,"").replace(X,"");if(m(o,g))return l;o.push(g);let p=this._interpolate(t,e,g,i,"raw"===r?"string":r,"raw"===r?void 0:a,o);if(this._isFallbackRoot(p)){if(!this._root)throw Error("unexpected error");const t=this._root.$i18n;p=t._translate(t._getMessages(),t.locale,t.fallbackLocale,g,i,r,a)}p=this._warnDefault(t,g,p,i,s(a)?a:[a],r),this._modifiers.hasOwnProperty(f)?p=this._modifiers[f](p):K.hasOwnProperty(f)&&(p=K[f](p)),o.pop(),l=p?l.replace(h,p):l}return l}_createMessageContext(t,e,n,r){const a=s(t)?t:[],o=i(t)?t:{},l=this._getMessages(),c=this.locale;return{list:t=>a[t],named:t=>o[t],values:t,formatter:e,path:n,messages:l,locale:c,linked:t=>this._interpolate(c,l[c]||{},t,null,r,void 0,[t])}}_render(t,e,n,s){if(h(t))return t(this._createMessageContext(n,this._formatter||Q,s,e));let i=this._formatter.interpolate(t,n,s);return i||(i=Q.interpolate(t,n,s)),"string"!==e||r(i)?i:i.join("")}_appendItemToChain(t,e,n){let s=!1;return m(t,e)||(s=!0,e&&(s="!"!==e[e.length-1],e=e.replace(/!/g,""),t.push(e),n&&n[e]&&(s=n[e]))),s}_appendLocaleToChain(t,e,n){let s;const i=e.split("-");do{const e=i.join("-");s=this._appendItemToChain(t,e,n),i.splice(-1,1)}while(i.length&&!0===s);return s}_appendBlockToChain(t,e,n){let s=!0;for(let i=0;i<e.length&&"boolean"==typeof s;i++){const a=e[i];r(a)&&(s=this._appendLocaleToChain(t,a,n))}return s}_getLocaleChain(t,e){if(""===t)return[];this._localeChainCache||(this._localeChainCache={});let n=this._localeChainCache[t];if(!n){e||(e=this.fallbackLocale),n=[];let a,o=[t];for(;s(o);)o=this._appendBlockToChain(n,o,e);(o=r(a=s(e)?e:i(e)?e.default?e.default:null:e)?[a]:a)&&this._appendBlockToChain(n,o,null),this._localeChainCache[t]=n}return n}_translate(t,e,n,s,i,r,a){const o=this._getLocaleChain(e,n);let l;for(let e=0;e<o.length;e++){const n=o[e];if(!c(l=this._interpolate(n,t[n],s,i,r,a,[s])))return l}return null}_t(t,e,n,s,...i){if(!t)return"";const r=u(...i);var a;this._escapeParameterHtml&&(r.params=(null!=(a=r.params)&&Object.keys(a).forEach(t=>{"string"==typeof a[t]&&(a[t]=function(t){return t.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}(a[t]))}),a));const o=r.locale||e;let l=this._translate(n,o,this.fallbackLocale,t,s,"string",r.params);if(this._isFallbackRoot(l)){if(!this._root)throw Error("unexpected error");return this._root.$t(t,...i)}return l=this._warnDefault(o,t,l,s,i,"string"),this._postTranslation&&null!=l&&(l=this._postTranslation(l,t)),l}t(t,...e){return this._t(t,this.locale,this._getMessages(),null,...e)}_i(t,e,n,s,i){const r=this._translate(n,e,this.fallbackLocale,t,s,"raw",i);if(this._isFallbackRoot(r)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.i(t,e,i)}return this._warnDefault(e,t,r,s,[i],"raw")}i(t,e,n){return t?(r(e)||(e=this.locale),this._i(t,e,this._getMessages(),null,n)):""}_tc(t,e,n,s,i,...r){if(!t)return"";void 0===i&&(i=1);const a={count:i,n:i},o=u(...r);return o.params=Object.assign(a,o.params),r=null===o.locale?[o.params]:[o.locale,o.params],this.fetchChoice(this._t(t,e,n,s,...r),i)}fetchChoice(t,e){if(!t||!r(t))return null;const n=t.split("|");return n[e=this.getChoiceIndex(e,n.length)]?n[e].trim():t}tc(t,e,...n){return this._tc(t,this.locale,this._getMessages(),null,e,...n)}_te(t,e,n,...s){const i=u(...s).locale||e;return this._exist(n[i],t)}te(t,e){return this._te(t,this.locale,this._getMessages(),e)}getLocaleMessage(t){return _(this._vm.messages[t]||{})}setLocaleMessage(t,e){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(t,this._warnHtmlInMessage,e),this._vm.$set(this._vm.messages,t,e)}mergeLocaleMessage(t,e){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(t,this._warnHtmlInMessage,e),this._vm.$set(this._vm.messages,t,p(void 0!==this._vm.messages[t]&&Object.keys(this._vm.messages[t]).length?Object.assign({},this._vm.messages[t]):{},e))}getDateTimeFormat(t){return _(this._vm.dateTimeFormats[t]||{})}setDateTimeFormat(t,e){this._vm.$set(this._vm.dateTimeFormats,t,e),this._clearDateTimeFormat(t,e)}mergeDateTimeFormat(t,e){this._vm.$set(this._vm.dateTimeFormats,t,p(this._vm.dateTimeFormats[t]||{},e)),this._clearDateTimeFormat(t,e)}_clearDateTimeFormat(t,e){for(let n in e){const e=`${t}__${n}`;this._dateTimeFormatters.hasOwnProperty(e)&&delete this._dateTimeFormatters[e]}}_localizeDateTime(t,e,n,s,i,r){let a=e,o=s[a];const l=this._getLocaleChain(e,n);for(let t=0;t<l.length;t++){const e=l[t];if(a=e,!c(o=s[e])&&!c(o[i]))break}if(c(o)||c(o[i]))return null;{const e=o[i];let n;if(r)n=new Intl.DateTimeFormat(a,Object.assign({},e,r));else{const t=`${a}__${i}`;(n=this._dateTimeFormatters[t])||(n=this._dateTimeFormatters[t]=new Intl.DateTimeFormat(a,e))}return n.format(t)}}_d(t,e,n,s){if(!n){return(s?new Intl.DateTimeFormat(e,s):new Intl.DateTimeFormat(e)).format(t)}const i=this._localizeDateTime(t,e,this.fallbackLocale,this._getDateTimeFormats(),n,s);if(this._isFallbackRoot(i)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.d(t,n,e)}return i||""}d(t,...n){let s=this.locale,a=null,o=null;return 1===n.length?(r(n[0])?a=n[0]:i(n[0])&&(n[0].locale&&(s=n[0].locale),n[0].key&&(a=n[0].key)),o=Object.keys(n[0]).reduce((t,s)=>m(e,s)?Object.assign({},t,{[s]:n[0][s]}):t,null)):2===n.length&&(r(n[0])&&(a=n[0]),r(n[1])&&(s=n[1])),this._d(t,s,a,o)}getNumberFormat(t){return _(this._vm.numberFormats[t]||{})}setNumberFormat(t,e){this._vm.$set(this._vm.numberFormats,t,e),this._clearNumberFormat(t,e)}mergeNumberFormat(t,e){this._vm.$set(this._vm.numberFormats,t,p(this._vm.numberFormats[t]||{},e)),this._clearNumberFormat(t,e)}_clearNumberFormat(t,e){for(let n in e){const e=`${t}__${n}`;this._numberFormatters.hasOwnProperty(e)&&delete this._numberFormatters[e]}}_getNumberFormatter(t,e,n,s,i,r){let a=e,o=s[a];const l=this._getLocaleChain(e,n);for(let t=0;t<l.length;t++){const e=l[t];if(a=e,!c(o=s[e])&&!c(o[i]))break}if(c(o)||c(o[i]))return null;{const t=o[i];let e;if(r)e=new Intl.NumberFormat(a,Object.assign({},t,r));else{const n=`${a}__${i}`;(e=this._numberFormatters[n])||(e=this._numberFormatters[n]=new Intl.NumberFormat(a,t))}return e}}_n(t,e,n,s){if(!tt.availabilities.numberFormat)return"";if(!n){return(s?new Intl.NumberFormat(e,s):new Intl.NumberFormat(e)).format(t)}const i=this._getNumberFormatter(t,e,this.fallbackLocale,this._getNumberFormats(),n,s),r=i&&i.format(t);if(this._isFallbackRoot(r)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.n(t,Object.assign({},{key:n,locale:e},s))}return r||""}n(e,...n){let s=this.locale,a=null,o=null;return 1===n.length?r(n[0])?a=n[0]:i(n[0])&&(n[0].locale&&(s=n[0].locale),n[0].key&&(a=n[0].key),o=Object.keys(n[0]).reduce((e,s)=>m(t,s)?Object.assign({},e,{[s]:n[0][s]}):e,null)):2===n.length&&(r(n[0])&&(a=n[0]),r(n[1])&&(s=n[1])),this._n(e,s,a,o)}_ntp(t,e,n,s){if(!tt.availabilities.numberFormat)return[];if(!n){return(s?new Intl.NumberFormat(e,s):new Intl.NumberFormat(e)).formatToParts(t)}const i=this._getNumberFormatter(t,e,this.fallbackLocale,this._getNumberFormats(),n,s),r=i&&i.formatToParts(t);if(this._isFallbackRoot(r)){if(!this._root)throw Error("unexpected error");return this._root.$i18n._ntp(t,e,n,s)}return r||[]}}let et;Object.defineProperty(tt,"availabilities",{get(){if(!et){const t="undefined"!=typeof Intl;et={dateTimeFormat:t&&void 0!==Intl.DateTimeFormat,numberFormat:t&&void 0!==Intl.NumberFormat}}return et}}),tt.install=L,tt.version="8.28.0";export default tt;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * vue-i18n v8.27.2
2
+ * vue-i18n v8.28.0
3
3
  * (c) 2022 kazuya kawaguchi
4
4
  * Released under the MIT License.
5
5
  */
@@ -29,6 +29,18 @@ var numberFormatKeys = [
29
29
  'maximumSignificantDigits'
30
30
  ];
31
31
 
32
+ var dateTimeFormatKeys = [
33
+ 'weekday',
34
+ 'era',
35
+ 'year',
36
+ 'month',
37
+ 'day',
38
+ 'hour',
39
+ 'minute',
40
+ 'second',
41
+ 'timeZoneName'
42
+ ];
43
+
32
44
  /**
33
45
  * utilities
34
46
  */
@@ -1981,7 +1993,8 @@ VueI18n.prototype._localizeDateTime = function _localizeDateTime (
1981
1993
  locale,
1982
1994
  fallback,
1983
1995
  dateTimeFormats,
1984
- key
1996
+ key,
1997
+ options
1985
1998
  ) {
1986
1999
  var _locale = locale;
1987
2000
  var formats = dateTimeFormats[_locale];
@@ -2006,16 +2019,23 @@ VueI18n.prototype._localizeDateTime = function _localizeDateTime (
2006
2019
  return null
2007
2020
  } else {
2008
2021
  var format = formats[key];
2009
- var id = _locale + "__" + key;
2010
- var formatter = this._dateTimeFormatters[id];
2011
- if (!formatter) {
2012
- formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);
2022
+
2023
+ var formatter;
2024
+ if (options) {
2025
+ formatter = new Intl.DateTimeFormat(_locale, Object.assign({}, format, options));
2026
+ } else {
2027
+ var id = _locale + "__" + key;
2028
+ formatter = this._dateTimeFormatters[id];
2029
+ if (!formatter) {
2030
+ formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);
2031
+ }
2013
2032
  }
2033
+
2014
2034
  return formatter.format(value)
2015
2035
  }
2016
2036
  };
2017
2037
 
2018
- VueI18n.prototype._d = function _d (value, locale, key) {
2038
+ VueI18n.prototype._d = function _d (value, locale, key, options) {
2019
2039
  /* istanbul ignore if */
2020
2040
  if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {
2021
2041
  warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');
@@ -2023,11 +2043,12 @@ VueI18n.prototype._d = function _d (value, locale, key) {
2023
2043
  }
2024
2044
 
2025
2045
  if (!key) {
2026
- return new Intl.DateTimeFormat(locale).format(value)
2046
+ var dtf = !options ? new Intl.DateTimeFormat(locale) : new Intl.DateTimeFormat(locale, options);
2047
+ return dtf.format(value)
2027
2048
  }
2028
2049
 
2029
2050
  var ret =
2030
- this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);
2051
+ this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key, options);
2031
2052
  if (this._isFallbackRoot(ret)) {
2032
2053
  if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {
2033
2054
  warn(("Fall back to datetime localization of root: key '" + key + "'."));
@@ -2046,6 +2067,7 @@ VueI18n.prototype.d = function d (value) {
2046
2067
 
2047
2068
  var locale = this.locale;
2048
2069
  var key = null;
2070
+ var options = null;
2049
2071
 
2050
2072
  if (args.length === 1) {
2051
2073
  if (isString(args[0])) {
@@ -2058,6 +2080,16 @@ VueI18n.prototype.d = function d (value) {
2058
2080
  key = args[0].key;
2059
2081
  }
2060
2082
  }
2083
+
2084
+ options = Object.keys(args[0]).reduce(function (acc, key) {
2085
+ var obj;
2086
+
2087
+ if (includes(dateTimeFormatKeys, key)) {
2088
+ return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))
2089
+ }
2090
+ return acc
2091
+ }, null);
2092
+
2061
2093
  } else if (args.length === 2) {
2062
2094
  if (isString(args[0])) {
2063
2095
  key = args[0];
@@ -2067,7 +2099,7 @@ VueI18n.prototype.d = function d (value) {
2067
2099
  }
2068
2100
  }
2069
2101
 
2070
- return this._d(value, locale, key)
2102
+ return this._d(value, locale, key, options)
2071
2103
  };
2072
2104
 
2073
2105
  VueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {
@@ -2260,6 +2292,6 @@ Object.defineProperty(VueI18n, 'availabilities', {
2260
2292
  });
2261
2293
 
2262
2294
  VueI18n.install = install;
2263
- VueI18n.version = '8.27.2';
2295
+ VueI18n.version = '8.28.0';
2264
2296
 
2265
2297
  export default VueI18n;
package/dist/vue-i18n.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * vue-i18n v8.27.2
2
+ * vue-i18n v8.28.0
3
3
  * (c) 2022 kazuya kawaguchi
4
4
  * Released under the MIT License.
5
5
  */
@@ -35,6 +35,18 @@
35
35
  'maximumSignificantDigits'
36
36
  ];
37
37
 
38
+ var dateTimeFormatKeys = [
39
+ 'weekday',
40
+ 'era',
41
+ 'year',
42
+ 'month',
43
+ 'day',
44
+ 'hour',
45
+ 'minute',
46
+ 'second',
47
+ 'timeZoneName'
48
+ ];
49
+
38
50
  /**
39
51
  * utilities
40
52
  */
@@ -1987,7 +1999,8 @@
1987
1999
  locale,
1988
2000
  fallback,
1989
2001
  dateTimeFormats,
1990
- key
2002
+ key,
2003
+ options
1991
2004
  ) {
1992
2005
  var _locale = locale;
1993
2006
  var formats = dateTimeFormats[_locale];
@@ -2012,16 +2025,23 @@
2012
2025
  return null
2013
2026
  } else {
2014
2027
  var format = formats[key];
2015
- var id = _locale + "__" + key;
2016
- var formatter = this._dateTimeFormatters[id];
2017
- if (!formatter) {
2018
- formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);
2028
+
2029
+ var formatter;
2030
+ if (options) {
2031
+ formatter = new Intl.DateTimeFormat(_locale, Object.assign({}, format, options));
2032
+ } else {
2033
+ var id = _locale + "__" + key;
2034
+ formatter = this._dateTimeFormatters[id];
2035
+ if (!formatter) {
2036
+ formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);
2037
+ }
2019
2038
  }
2039
+
2020
2040
  return formatter.format(value)
2021
2041
  }
2022
2042
  };
2023
2043
 
2024
- VueI18n.prototype._d = function _d (value, locale, key) {
2044
+ VueI18n.prototype._d = function _d (value, locale, key, options) {
2025
2045
  /* istanbul ignore if */
2026
2046
  if (!VueI18n.availabilities.dateTimeFormat) {
2027
2047
  warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');
@@ -2029,11 +2049,12 @@
2029
2049
  }
2030
2050
 
2031
2051
  if (!key) {
2032
- return new Intl.DateTimeFormat(locale).format(value)
2052
+ var dtf = !options ? new Intl.DateTimeFormat(locale) : new Intl.DateTimeFormat(locale, options);
2053
+ return dtf.format(value)
2033
2054
  }
2034
2055
 
2035
2056
  var ret =
2036
- this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);
2057
+ this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key, options);
2037
2058
  if (this._isFallbackRoot(ret)) {
2038
2059
  if (!this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {
2039
2060
  warn(("Fall back to datetime localization of root: key '" + key + "'."));
@@ -2052,6 +2073,7 @@
2052
2073
 
2053
2074
  var locale = this.locale;
2054
2075
  var key = null;
2076
+ var options = null;
2055
2077
 
2056
2078
  if (args.length === 1) {
2057
2079
  if (isString(args[0])) {
@@ -2064,6 +2086,16 @@
2064
2086
  key = args[0].key;
2065
2087
  }
2066
2088
  }
2089
+
2090
+ options = Object.keys(args[0]).reduce(function (acc, key) {
2091
+ var obj;
2092
+
2093
+ if (includes(dateTimeFormatKeys, key)) {
2094
+ return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))
2095
+ }
2096
+ return acc
2097
+ }, null);
2098
+
2067
2099
  } else if (args.length === 2) {
2068
2100
  if (isString(args[0])) {
2069
2101
  key = args[0];
@@ -2073,7 +2105,7 @@
2073
2105
  }
2074
2106
  }
2075
2107
 
2076
- return this._d(value, locale, key)
2108
+ return this._d(value, locale, key, options)
2077
2109
  };
2078
2110
 
2079
2111
  VueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {
@@ -2266,7 +2298,7 @@
2266
2298
  });
2267
2299
 
2268
2300
  VueI18n.install = install;
2269
- VueI18n.version = '8.27.2';
2301
+ VueI18n.version = '8.28.0';
2270
2302
 
2271
2303
  return VueI18n;
2272
2304