vue-i18n 8.27.2 → 8.28.1

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.1
3
3
  * (c) 2022 kazuya kawaguchi
4
4
  * Released under the MIT License.
5
5
  */
@@ -31,6 +31,25 @@ var numberFormatKeys = [
31
31
  'maximumSignificantDigits'
32
32
  ];
33
33
 
34
+ var dateTimeFormatKeys = [
35
+ 'dateStyle',
36
+ 'timeStyle',
37
+ 'calender',
38
+ 'localeMatcher',
39
+ "hour12",
40
+ "hourCycle",
41
+ "timeZone",
42
+ "formatMatcher",
43
+ 'weekday',
44
+ 'era',
45
+ 'year',
46
+ 'month',
47
+ 'day',
48
+ 'hour',
49
+ 'minute',
50
+ 'second',
51
+ 'timeZoneName' ];
52
+
34
53
  /**
35
54
  * utilities
36
55
  */
@@ -1983,7 +2002,8 @@ VueI18n.prototype._localizeDateTime = function _localizeDateTime (
1983
2002
  locale,
1984
2003
  fallback,
1985
2004
  dateTimeFormats,
1986
- key
2005
+ key,
2006
+ options
1987
2007
  ) {
1988
2008
  var _locale = locale;
1989
2009
  var formats = dateTimeFormats[_locale];
@@ -2008,16 +2028,23 @@ VueI18n.prototype._localizeDateTime = function _localizeDateTime (
2008
2028
  return null
2009
2029
  } else {
2010
2030
  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);
2031
+
2032
+ var formatter;
2033
+ if (options) {
2034
+ formatter = new Intl.DateTimeFormat(_locale, Object.assign({}, format, options));
2035
+ } else {
2036
+ var id = _locale + "__" + key;
2037
+ formatter = this._dateTimeFormatters[id];
2038
+ if (!formatter) {
2039
+ formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);
2040
+ }
2015
2041
  }
2042
+
2016
2043
  return formatter.format(value)
2017
2044
  }
2018
2045
  };
2019
2046
 
2020
- VueI18n.prototype._d = function _d (value, locale, key) {
2047
+ VueI18n.prototype._d = function _d (value, locale, key, options) {
2021
2048
  /* istanbul ignore if */
2022
2049
  if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {
2023
2050
  warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');
@@ -2025,11 +2052,12 @@ VueI18n.prototype._d = function _d (value, locale, key) {
2025
2052
  }
2026
2053
 
2027
2054
  if (!key) {
2028
- return new Intl.DateTimeFormat(locale).format(value)
2055
+ var dtf = !options ? new Intl.DateTimeFormat(locale) : new Intl.DateTimeFormat(locale, options);
2056
+ return dtf.format(value)
2029
2057
  }
2030
2058
 
2031
2059
  var ret =
2032
- this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);
2060
+ this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key, options);
2033
2061
  if (this._isFallbackRoot(ret)) {
2034
2062
  if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {
2035
2063
  warn(("Fall back to datetime localization of root: key '" + key + "'."));
@@ -2048,6 +2076,7 @@ VueI18n.prototype.d = function d (value) {
2048
2076
 
2049
2077
  var locale = this.locale;
2050
2078
  var key = null;
2079
+ var options = null;
2051
2080
 
2052
2081
  if (args.length === 1) {
2053
2082
  if (isString(args[0])) {
@@ -2060,6 +2089,16 @@ VueI18n.prototype.d = function d (value) {
2060
2089
  key = args[0].key;
2061
2090
  }
2062
2091
  }
2092
+
2093
+ options = Object.keys(args[0]).reduce(function (acc, key) {
2094
+ var obj;
2095
+
2096
+ if (includes(dateTimeFormatKeys, key)) {
2097
+ return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))
2098
+ }
2099
+ return acc
2100
+ }, null);
2101
+
2063
2102
  } else if (args.length === 2) {
2064
2103
  if (isString(args[0])) {
2065
2104
  key = args[0];
@@ -2069,7 +2108,7 @@ VueI18n.prototype.d = function d (value) {
2069
2108
  }
2070
2109
  }
2071
2110
 
2072
- return this._d(value, locale, key)
2111
+ return this._d(value, locale, key, options)
2073
2112
  };
2074
2113
 
2075
2114
  VueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {
@@ -2262,6 +2301,6 @@ Object.defineProperty(VueI18n, 'availabilities', {
2262
2301
  });
2263
2302
 
2264
2303
  VueI18n.install = install;
2265
- VueI18n.version = '8.27.2';
2304
+ VueI18n.version = '8.28.1';
2266
2305
 
2267
2306
  module.exports = VueI18n;
@@ -24,6 +24,26 @@ const numberFormatKeys = [
24
24
  'maximumSignificantDigits'
25
25
  ];
26
26
 
27
+ const dateTimeFormatKeys = [
28
+ 'dateStyle',
29
+ 'timeStyle',
30
+ 'calender',
31
+ 'localeMatcher',
32
+ "hour12",
33
+ "hourCycle",
34
+ "timeZone",
35
+ "formatMatcher",
36
+ 'weekday',
37
+ 'era',
38
+ 'year',
39
+ 'month',
40
+ 'day',
41
+ 'hour',
42
+ 'minute',
43
+ 'second',
44
+ 'timeZoneName',
45
+ ];
46
+
27
47
  /**
28
48
  * utilities
29
49
  */
@@ -1941,7 +1961,8 @@ class VueI18n {
1941
1961
  locale,
1942
1962
  fallback,
1943
1963
  dateTimeFormats,
1944
- key
1964
+ key,
1965
+ options
1945
1966
  ) {
1946
1967
  let _locale = locale;
1947
1968
  let formats = dateTimeFormats[_locale];
@@ -1966,16 +1987,23 @@ class VueI18n {
1966
1987
  return null
1967
1988
  } else {
1968
1989
  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);
1990
+
1991
+ let formatter;
1992
+ if (options) {
1993
+ formatter = new Intl.DateTimeFormat(_locale, Object.assign({}, format, options));
1994
+ } else {
1995
+ const id = `${_locale}__${key}`;
1996
+ formatter = this._dateTimeFormatters[id];
1997
+ if (!formatter) {
1998
+ formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);
1999
+ }
1973
2000
  }
2001
+
1974
2002
  return formatter.format(value)
1975
2003
  }
1976
2004
  }
1977
2005
 
1978
- _d (value, locale, key) {
2006
+ _d (value, locale, key, options) {
1979
2007
  /* istanbul ignore if */
1980
2008
  if (!VueI18n.availabilities.dateTimeFormat) {
1981
2009
  warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');
@@ -1983,11 +2011,12 @@ class VueI18n {
1983
2011
  }
1984
2012
 
1985
2013
  if (!key) {
1986
- return new Intl.DateTimeFormat(locale).format(value)
2014
+ const dtf = !options ? new Intl.DateTimeFormat(locale) : new Intl.DateTimeFormat(locale, options);
2015
+ return dtf.format(value)
1987
2016
  }
1988
2017
 
1989
2018
  const ret =
1990
- this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);
2019
+ this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key, options);
1991
2020
  if (this._isFallbackRoot(ret)) {
1992
2021
  if (!this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {
1993
2022
  warn(`Fall back to datetime localization of root: key '${key}'.`);
@@ -2003,6 +2032,7 @@ class VueI18n {
2003
2032
  d (value, ...args) {
2004
2033
  let locale = this.locale;
2005
2034
  let key = null;
2035
+ let options = null;
2006
2036
 
2007
2037
  if (args.length === 1) {
2008
2038
  if (isString(args[0])) {
@@ -2015,6 +2045,14 @@ class VueI18n {
2015
2045
  key = args[0].key;
2016
2046
  }
2017
2047
  }
2048
+
2049
+ options = Object.keys(args[0]).reduce((acc, key) => {
2050
+ if (includes(dateTimeFormatKeys, key)) {
2051
+ return Object.assign({}, acc, { [key]: args[0][key] })
2052
+ }
2053
+ return acc
2054
+ }, null);
2055
+
2018
2056
  } else if (args.length === 2) {
2019
2057
  if (isString(args[0])) {
2020
2058
  key = args[0];
@@ -2024,7 +2062,7 @@ class VueI18n {
2024
2062
  }
2025
2063
  }
2026
2064
 
2027
- return this._d(value, locale, key)
2065
+ return this._d(value, locale, key, options)
2028
2066
  }
2029
2067
 
2030
2068
  getNumberFormat (locale) {
@@ -2211,6 +2249,6 @@ Object.defineProperty(VueI18n, 'availabilities', {
2211
2249
  });
2212
2250
 
2213
2251
  VueI18n.install = install;
2214
- VueI18n.version = '8.27.2';
2252
+ VueI18n.version = '8.28.1';
2215
2253
 
2216
2254
  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=["dateStyle","timeStyle","calender","localeMatcher","hour12","hourCycle","timeZone","formatMatcher","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 r(t){return null!==t&&"object"==typeof t}function i(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?r(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]),(r(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)&&(r(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=r(t),i=r(e);if(!n||!i)return!n&&!i&&String(t)===String(e);try{const n=s(t),r=s(e);if(n&&r)return t.length===e.length&&t.every((t,n)=>d(t,e[n]));if(n||r)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:r}){const{$i18n:i}=n;if(!i)return;const{path:a,locale:o,places:l}=s,c=r(),h=i.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;i(n.format)?l=n.format:r(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){C(t,n)&&T(t,e,n)}function w(t,e,n,s){if(!C(t,n))return;const r=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,r.getLocaleMessage(r.locale))||T(t,e,n)}function M(t,e,s,r){if(!s.context)return void n("Vue instance does not exists in VNode context");const i=s.context.$i18n||{};e.modifiers.preserve||i.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 C(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 T(t,e,s){const r=e.value,{path:a,locale:o,args:c,choice:h}=function(t){let e,n,s,r;i(t)?e=t:l(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&&!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,S=3,E=0,R=4,V=5,H=6,A=7,P=8,B=[];B[E]={ws:[E],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,S],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,r,i,a,o,l,c=-1,h=E,u=0;const _=[];function m(){const e=t[c+1];if(h===V&&"'"===e||h===H&&'"'===e)return c++,r="\\"+e,_[N](),!0}for(_[W]=function(){void 0!==s&&(e.push(s),s=void 0)},_[N]=function(){void 0===s?s=r:s+=r},_[j]=function(){_[N](),u++},_[S]=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(i=z(n),(a=(l=B[h])[i]||l.else||P)===P)return;if(h=a[0],(o=_[a[1]])&&(r=void 0===(r=a[2])?n:r,!1===o()))return;if(h===A)return e}}(t))&&(this._cache[t]=e),e||[]}getPathValue(t,e){if(!r(t))return null;const n=this.parsePath(e);if(0===n.length)return null;{const e=n.length;let s=t,r=0;for(;r<e;){const t=s[n[r]];if(null==t)return null;s=t,r++}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 r=t[n++];if("{"===r){s&&e.push({type:"text",value:s}),s="";let i="";for(r=t[n++];void 0!==r&&"}"!==r;)i+=r,r=t[n++];const a="}"===r,o=O.test(i)?"list":a&&x.test(i)?"named":"unknown";e.push({value:i,type:o})}else"%"===r?"{"!==t[n]&&(s+=r):s+=r}return s&&e.push({type:"text",value:s}),e}(t),this._caches[t]=n),function(t,e){const n=[];let s=0;const i=Array.isArray(e)?"list":r(e)?"named":"unknown";if("unknown"===i)return n;for(;s<t.length;){const r=t[s];switch(r.type){case"text":n.push(r.value);break;case"list":n.push(e[parseInt(r.value,10)]);break;case"named":"named"===i&&n.push(e[r.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||{},r=t.dateTimeFormats||t.datetimeFormats||{},i=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:r,numberFormats:i})}_checkLocaleMessage(t,e,r){const a=(t,e,r,o)=>{if(l(r))Object.keys(r).forEach(n=>{const s=r[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(r))r.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(i(r)){if(J.test(r)){const s=`Detected HTML in message '${r}' 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,r,[])}_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,r,a){if(!c(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=u(...r);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,r,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(!i(m=e[n])&&!h(m))return null}else{if(!i(_)&&!h(_))return null;m=_}return i(m)&&(m.indexOf("@:")>=0||m.indexOf("@.")>=0)&&(m=this._link(t,e,m,r,"raw",o,u)),this._render(m,a,o,n)}_link(t,e,n,r,i,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,r,"raw"===i?"string":i,"raw"===i?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,r,i,a)}p=this._warnDefault(t,g,p,r,s(a)?a:[a],i),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,i){const a=s(t)?t:[],o=r(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,i,void 0,[t])}}_render(t,e,n,s){if(h(t))return t(this._createMessageContext(n,this._formatter||Q,s,e));let r=this._formatter.interpolate(t,n,s);return r||(r=Q.interpolate(t,n,s)),"string"!==e||i(r)?r:r.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 r=e.split("-");do{const e=r.join("-");s=this._appendItemToChain(t,e,n),r.splice(-1,1)}while(r.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 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=i(a=s(e)?e:r(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,r,i,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,r,i,a,[s])))return l}return null}_t(t,e,n,s,...r){if(!t)return"";const i=u(...r);var a;this._escapeParameterHtml&&(i.params=(null!=(a=i.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=i.locale||e;let l=this._translate(n,o,this.fallbackLocale,t,s,"string",i.params);if(this._isFallbackRoot(l)){if(!this._root)throw Error("unexpected error");return this._root.$t(t,...r)}return l=this._warnDefault(o,t,l,s,r,"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,r){const i=this._translate(n,e,this.fallbackLocale,t,s,"raw",r);if(this._isFallbackRoot(i)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.i(t,e,r)}return this._warnDefault(e,t,i,s,[r],"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,r,...i){if(!t)return"";void 0===r&&(r=1);const a={count:r,n:r},o=u(...i);return o.params=Object.assign(a,o.params),i=null===o.locale?[o.params]:[o.locale,o.params],this.fetchChoice(this._t(t,e,n,s,...i),r)}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 r=u(...s).locale||e;return this._exist(n[r],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,r,i){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[r]))break}if(c(o)||c(o[r]))return null;{const e=o[r];let n;if(i)n=new Intl.DateTimeFormat(a,Object.assign({},e,i));else{const t=`${a}__${r}`;(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 r=this._localizeDateTime(t,e,this.fallbackLocale,this._getDateTimeFormats(),n,s);if(this._isFallbackRoot(r)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.d(t,n,e)}return r||""}d(t,...n){let s=this.locale,a=null,o=null;return 1===n.length?(i(n[0])?a=n[0]:r(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&&(i(n[0])&&(a=n[0]),i(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,r,i){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[r]))break}if(c(o)||c(o[r]))return null;{const t=o[r];let e;if(i)e=new Intl.NumberFormat(a,Object.assign({},t,i));else{const n=`${a}__${r}`;(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 r=this._getNumberFormatter(t,e,this.fallbackLocale,this._getNumberFormats(),n,s),i=r&&r.format(t);if(this._isFallbackRoot(i)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.n(t,Object.assign({},{key:n,locale:e},s))}return i||""}n(e,...n){let s=this.locale,a=null,o=null;return 1===n.length?i(n[0])?a=n[0]:r(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&&(i(n[0])&&(a=n[0]),i(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 r=this._getNumberFormatter(t,e,this.fallbackLocale,this._getNumberFormats(),n,s),i=r&&r.formatToParts(t);if(this._isFallbackRoot(i)){if(!this._root)throw Error("unexpected error");return this._root.$i18n._ntp(t,e,n,s)}return i||[]}}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.1";export default tt;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * vue-i18n v8.27.2
2
+ * vue-i18n v8.28.1
3
3
  * (c) 2022 kazuya kawaguchi
4
4
  * Released under the MIT License.
5
5
  */
@@ -29,6 +29,25 @@ var numberFormatKeys = [
29
29
  'maximumSignificantDigits'
30
30
  ];
31
31
 
32
+ var dateTimeFormatKeys = [
33
+ 'dateStyle',
34
+ 'timeStyle',
35
+ 'calender',
36
+ 'localeMatcher',
37
+ "hour12",
38
+ "hourCycle",
39
+ "timeZone",
40
+ "formatMatcher",
41
+ 'weekday',
42
+ 'era',
43
+ 'year',
44
+ 'month',
45
+ 'day',
46
+ 'hour',
47
+ 'minute',
48
+ 'second',
49
+ 'timeZoneName' ];
50
+
32
51
  /**
33
52
  * utilities
34
53
  */
@@ -1981,7 +2000,8 @@ VueI18n.prototype._localizeDateTime = function _localizeDateTime (
1981
2000
  locale,
1982
2001
  fallback,
1983
2002
  dateTimeFormats,
1984
- key
2003
+ key,
2004
+ options
1985
2005
  ) {
1986
2006
  var _locale = locale;
1987
2007
  var formats = dateTimeFormats[_locale];
@@ -2006,16 +2026,23 @@ VueI18n.prototype._localizeDateTime = function _localizeDateTime (
2006
2026
  return null
2007
2027
  } else {
2008
2028
  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);
2029
+
2030
+ var formatter;
2031
+ if (options) {
2032
+ formatter = new Intl.DateTimeFormat(_locale, Object.assign({}, format, options));
2033
+ } else {
2034
+ var id = _locale + "__" + key;
2035
+ formatter = this._dateTimeFormatters[id];
2036
+ if (!formatter) {
2037
+ formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);
2038
+ }
2013
2039
  }
2040
+
2014
2041
  return formatter.format(value)
2015
2042
  }
2016
2043
  };
2017
2044
 
2018
- VueI18n.prototype._d = function _d (value, locale, key) {
2045
+ VueI18n.prototype._d = function _d (value, locale, key, options) {
2019
2046
  /* istanbul ignore if */
2020
2047
  if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {
2021
2048
  warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');
@@ -2023,11 +2050,12 @@ VueI18n.prototype._d = function _d (value, locale, key) {
2023
2050
  }
2024
2051
 
2025
2052
  if (!key) {
2026
- return new Intl.DateTimeFormat(locale).format(value)
2053
+ var dtf = !options ? new Intl.DateTimeFormat(locale) : new Intl.DateTimeFormat(locale, options);
2054
+ return dtf.format(value)
2027
2055
  }
2028
2056
 
2029
2057
  var ret =
2030
- this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);
2058
+ this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key, options);
2031
2059
  if (this._isFallbackRoot(ret)) {
2032
2060
  if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {
2033
2061
  warn(("Fall back to datetime localization of root: key '" + key + "'."));
@@ -2046,6 +2074,7 @@ VueI18n.prototype.d = function d (value) {
2046
2074
 
2047
2075
  var locale = this.locale;
2048
2076
  var key = null;
2077
+ var options = null;
2049
2078
 
2050
2079
  if (args.length === 1) {
2051
2080
  if (isString(args[0])) {
@@ -2058,6 +2087,16 @@ VueI18n.prototype.d = function d (value) {
2058
2087
  key = args[0].key;
2059
2088
  }
2060
2089
  }
2090
+
2091
+ options = Object.keys(args[0]).reduce(function (acc, key) {
2092
+ var obj;
2093
+
2094
+ if (includes(dateTimeFormatKeys, key)) {
2095
+ return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))
2096
+ }
2097
+ return acc
2098
+ }, null);
2099
+
2061
2100
  } else if (args.length === 2) {
2062
2101
  if (isString(args[0])) {
2063
2102
  key = args[0];
@@ -2067,7 +2106,7 @@ VueI18n.prototype.d = function d (value) {
2067
2106
  }
2068
2107
  }
2069
2108
 
2070
- return this._d(value, locale, key)
2109
+ return this._d(value, locale, key, options)
2071
2110
  };
2072
2111
 
2073
2112
  VueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {
@@ -2260,6 +2299,6 @@ Object.defineProperty(VueI18n, 'availabilities', {
2260
2299
  });
2261
2300
 
2262
2301
  VueI18n.install = install;
2263
- VueI18n.version = '8.27.2';
2302
+ VueI18n.version = '8.28.1';
2264
2303
 
2265
2304
  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.1
3
3
  * (c) 2022 kazuya kawaguchi
4
4
  * Released under the MIT License.
5
5
  */
@@ -35,6 +35,25 @@
35
35
  'maximumSignificantDigits'
36
36
  ];
37
37
 
38
+ var dateTimeFormatKeys = [
39
+ 'dateStyle',
40
+ 'timeStyle',
41
+ 'calender',
42
+ 'localeMatcher',
43
+ "hour12",
44
+ "hourCycle",
45
+ "timeZone",
46
+ "formatMatcher",
47
+ 'weekday',
48
+ 'era',
49
+ 'year',
50
+ 'month',
51
+ 'day',
52
+ 'hour',
53
+ 'minute',
54
+ 'second',
55
+ 'timeZoneName' ];
56
+
38
57
  /**
39
58
  * utilities
40
59
  */
@@ -1987,7 +2006,8 @@
1987
2006
  locale,
1988
2007
  fallback,
1989
2008
  dateTimeFormats,
1990
- key
2009
+ key,
2010
+ options
1991
2011
  ) {
1992
2012
  var _locale = locale;
1993
2013
  var formats = dateTimeFormats[_locale];
@@ -2012,16 +2032,23 @@
2012
2032
  return null
2013
2033
  } else {
2014
2034
  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);
2035
+
2036
+ var formatter;
2037
+ if (options) {
2038
+ formatter = new Intl.DateTimeFormat(_locale, Object.assign({}, format, options));
2039
+ } else {
2040
+ var id = _locale + "__" + key;
2041
+ formatter = this._dateTimeFormatters[id];
2042
+ if (!formatter) {
2043
+ formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);
2044
+ }
2019
2045
  }
2046
+
2020
2047
  return formatter.format(value)
2021
2048
  }
2022
2049
  };
2023
2050
 
2024
- VueI18n.prototype._d = function _d (value, locale, key) {
2051
+ VueI18n.prototype._d = function _d (value, locale, key, options) {
2025
2052
  /* istanbul ignore if */
2026
2053
  if (!VueI18n.availabilities.dateTimeFormat) {
2027
2054
  warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');
@@ -2029,11 +2056,12 @@
2029
2056
  }
2030
2057
 
2031
2058
  if (!key) {
2032
- return new Intl.DateTimeFormat(locale).format(value)
2059
+ var dtf = !options ? new Intl.DateTimeFormat(locale) : new Intl.DateTimeFormat(locale, options);
2060
+ return dtf.format(value)
2033
2061
  }
2034
2062
 
2035
2063
  var ret =
2036
- this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);
2064
+ this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key, options);
2037
2065
  if (this._isFallbackRoot(ret)) {
2038
2066
  if (!this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {
2039
2067
  warn(("Fall back to datetime localization of root: key '" + key + "'."));
@@ -2052,6 +2080,7 @@
2052
2080
 
2053
2081
  var locale = this.locale;
2054
2082
  var key = null;
2083
+ var options = null;
2055
2084
 
2056
2085
  if (args.length === 1) {
2057
2086
  if (isString(args[0])) {
@@ -2064,6 +2093,16 @@
2064
2093
  key = args[0].key;
2065
2094
  }
2066
2095
  }
2096
+
2097
+ options = Object.keys(args[0]).reduce(function (acc, key) {
2098
+ var obj;
2099
+
2100
+ if (includes(dateTimeFormatKeys, key)) {
2101
+ return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))
2102
+ }
2103
+ return acc
2104
+ }, null);
2105
+
2067
2106
  } else if (args.length === 2) {
2068
2107
  if (isString(args[0])) {
2069
2108
  key = args[0];
@@ -2073,7 +2112,7 @@
2073
2112
  }
2074
2113
  }
2075
2114
 
2076
- return this._d(value, locale, key)
2115
+ return this._d(value, locale, key, options)
2077
2116
  };
2078
2117
 
2079
2118
  VueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {
@@ -2266,7 +2305,7 @@
2266
2305
  });
2267
2306
 
2268
2307
  VueI18n.install = install;
2269
- VueI18n.version = '8.27.2';
2308
+ VueI18n.version = '8.28.1';
2270
2309
 
2271
2310
  return VueI18n;
2272
2311