react-i18next 11.6.0 → 11.7.3

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.
@@ -1,13 +1,16 @@
1
- import { createElement } from 'react';
1
+ import { createElement, useMemo } from 'react';
2
2
  import { I18nContext } from './context';
3
3
  export function I18nextProvider(_ref) {
4
4
  var i18n = _ref.i18n,
5
5
  defaultNS = _ref.defaultNS,
6
6
  children = _ref.children;
7
- return createElement(I18nContext.Provider, {
8
- value: {
7
+ var value = useMemo(function () {
8
+ return {
9
9
  i18n: i18n,
10
10
  defaultNS: defaultNS
11
- }
11
+ };
12
+ }, [i18n, defaultNS]);
13
+ return createElement(I18nContext.Provider, {
14
+ value: value
12
15
  }, children);
13
16
  }
package/dist/es/Trans.js CHANGED
@@ -4,7 +4,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
4
 
5
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
6
6
 
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
8
 
9
9
  import React, { useContext } from 'react';
10
10
  import HTML from 'html-parse-stringify2';
@@ -101,9 +101,22 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
101
101
  }
102
102
 
103
103
  getData(children);
104
- var interpolatedString = i18n.services.interpolator.interpolate(targetString, _objectSpread({}, data, {}, combinedTOpts), i18n.language);
104
+ var interpolatedString = i18n.services.interpolator.interpolate(targetString, _objectSpread(_objectSpread({}, data), combinedTOpts), i18n.language);
105
105
  var ast = HTML.parse("<0>".concat(interpolatedString, "</0>"));
106
106
 
107
+ function renderInner(child, node, rootReactNode) {
108
+ var childs = getChildren(child);
109
+ var mappedChildren = mapAST(childs, node.children, rootReactNode);
110
+ return hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;
111
+ }
112
+
113
+ function pushTranslatedJSX(child, inner, mem, i) {
114
+ if (child.dummy) child.children = inner;
115
+ mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {
116
+ key: i
117
+ }), inner));
118
+ }
119
+
107
120
  function mapAST(reactNode, astNode, rootReactNode) {
108
121
  var reactNodes = getAsArray(reactNode);
109
122
  var astNodes = getAsArray(astNode);
@@ -118,52 +131,54 @@ function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
118
131
  props: node.attrs
119
132
  }, tmp) : tmp;
120
133
  var isElement = React.isValidElement(child);
134
+ var isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;
135
+ var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement;
136
+ var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);
121
137
 
122
138
  if (typeof child === 'string') {
123
139
  mem.push(child);
124
- } else if (hasChildren(child) || isElement && hasChildren(node, true) && !node.voidElement) {
125
- var childs = getChildren(child);
126
- var mappedChildren = mapAST(childs, node.children, rootReactNode);
127
- var inner = hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;
128
- if (child.dummy) child.children = inner;
129
- mem.push(React.cloneElement(child, _objectSpread({}, child.props, {
130
- key: i
131
- }), inner));
132
- } else if (emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement) {
140
+ } else if (hasChildren(child) || isValidTranslationWithChildren) {
141
+ var inner = renderInner(child, node, rootReactNode);
142
+ pushTranslatedJSX(child, inner, mem, i);
143
+ } else if (isEmptyTransWithHTML) {
133
144
  var _inner = mapAST(reactNodes, node.children, rootReactNode);
134
145
 
135
- mem.push(React.cloneElement(child, _objectSpread({}, child.props, {
146
+ mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {
136
147
  key: i
137
148
  }), _inner));
138
149
  } else if (Number.isNaN(parseFloat(node.name))) {
139
- if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {
150
+ if (isKnownComponent) {
151
+ var _inner2 = renderInner(child, node, rootReactNode);
152
+
153
+ pushTranslatedJSX(child, _inner2, mem, i);
154
+ } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {
140
155
  if (node.voidElement) {
141
156
  mem.push(React.createElement(node.name, {
142
157
  key: "".concat(node.name, "-").concat(i)
143
158
  }));
144
159
  } else {
145
- var _inner2 = mapAST(reactNodes, node.children, rootReactNode);
160
+ var _inner3 = mapAST(reactNodes, node.children, rootReactNode);
146
161
 
147
162
  mem.push(React.createElement(node.name, {
148
163
  key: "".concat(node.name, "-").concat(i)
149
- }, _inner2));
164
+ }, _inner3));
150
165
  }
151
166
  } else if (node.voidElement) {
152
167
  mem.push("<".concat(node.name, " />"));
153
168
  } else {
154
- var _inner3 = mapAST(reactNodes, node.children, rootReactNode);
169
+ var _inner4 = mapAST(reactNodes, node.children, rootReactNode);
155
170
 
156
- mem.push("<".concat(node.name, ">").concat(_inner3, "</").concat(node.name, ">"));
171
+ mem.push("<".concat(node.name, ">").concat(_inner4, "</").concat(node.name, ">"));
157
172
  }
158
173
  } else if (_typeof(child) === 'object' && !isElement) {
159
174
  var content = node.children[0] ? translationContent : null;
160
175
  if (content) mem.push(content);
161
176
  } else if (node.children.length === 1 && translationContent) {
162
- mem.push(React.cloneElement(child, _objectSpread({}, child.props, {
177
+ mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {
163
178
  key: i
164
179
  }), translationContent));
165
180
  } else {
166
- mem.push(React.cloneElement(child, _objectSpread({}, child.props, {
181
+ mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {
167
182
  key: i
168
183
  })));
169
184
  }
@@ -203,7 +218,7 @@ export function Trans(_ref) {
203
218
  var i18n = i18nFromProps || i18nFromContext || getI18n();
204
219
 
205
220
  if (!i18n) {
206
- warnOnce('You will need pass in an i18next instance by using i18nextReactModule');
221
+ warnOnce('You will need to pass in an i18next instance by using i18nextReactModule');
207
222
  return children;
208
223
  }
209
224
 
@@ -211,7 +226,7 @@ export function Trans(_ref) {
211
226
  return k;
212
227
  };
213
228
 
214
- var reactI18nextOptions = _objectSpread({}, getDefaults(), {}, i18n.options && i18n.options.react);
229
+ var reactI18nextOptions = _objectSpread(_objectSpread({}, getDefaults()), i18n.options && i18n.options.react);
215
230
 
216
231
  var namespaces = ns || t.ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
217
232
  namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];
@@ -225,9 +240,9 @@ export function Trans(_ref) {
225
240
  }
226
241
  };
227
242
 
228
- var combinedTOpts = _objectSpread({}, tOptions, {
243
+ var combinedTOpts = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, tOptions), {}, {
229
244
  count: count
230
- }, values, {}, interpolationOverride, {
245
+ }, values), interpolationOverride), {}, {
231
246
  defaultValue: defaultValue,
232
247
  ns: namespaces
233
248
  });
@@ -4,7 +4,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
4
 
5
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
6
6
 
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
8
 
9
9
  import React from 'react';
10
10
  var defaultOptions = {
@@ -19,7 +19,7 @@ var i18nInstance;
19
19
  export var I18nContext = React.createContext();
20
20
  export function setDefaults() {
21
21
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
22
- defaultOptions = _objectSpread({}, defaultOptions, {}, options);
22
+ defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);
23
23
  }
24
24
  export function getDefaults() {
25
25
  return defaultOptions;
@@ -69,7 +69,7 @@ export function composeInitialProps(ForComponent) {
69
69
 
70
70
  if (ForComponent.getInitialProps) {
71
71
  ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {
72
- resolve(_objectSpread({}, componentsInitialProps, {}, i18nInitialProps));
72
+ resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));
73
73
  });
74
74
  } else {
75
75
  resolve(i18nInitialProps);
@@ -3,7 +3,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
 
4
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
5
5
 
6
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
7
 
8
8
  import { useState, useEffect, useContext, useRef } from 'react';
9
9
  import { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';
@@ -20,7 +20,7 @@ export function useTranslation(ns) {
20
20
  if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();
21
21
 
22
22
  if (!i18n) {
23
- warnOnce('You will need pass in an i18next instance by using initReactI18next');
23
+ warnOnce('You will need to pass in an i18next instance by using initReactI18next');
24
24
 
25
25
  var notReadyT = function notReadyT(k) {
26
26
  return Array.isArray(k) ? k[k.length - 1] : k;
@@ -33,7 +33,7 @@ export function useTranslation(ns) {
33
33
  return retNotReady;
34
34
  }
35
35
 
36
- var i18nOptions = _objectSpread({}, getDefaults(), {}, i18n.options.react, {}, props);
36
+ var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);
37
37
 
38
38
  var useSuspense = i18nOptions.useSuspense;
39
39
  var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
@@ -90,7 +90,6 @@ export function useTranslation(ns) {
90
90
  if (!ready && !useSuspense) return ret;
91
91
  throw new Promise(function (resolve) {
92
92
  loadNamespaces(i18n, namespaces, function () {
93
- if (isMounted.current) setT(getT());
94
93
  resolve();
95
94
  });
96
95
  });
@@ -3,7 +3,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
3
3
 
4
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
5
5
 
6
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
7
 
8
8
  import React from 'react';
9
9
  import { useSSR } from './useSSR';
@@ -4,7 +4,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
4
4
 
5
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
6
6
 
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
8
 
9
9
  import React from 'react';
10
10
  import { useTranslation } from './useTranslation';
@@ -22,7 +22,7 @@ export function withTranslation(ns) {
22
22
  i18n = _useTranslation2[1],
23
23
  ready = _useTranslation2[2];
24
24
 
25
- var passDownProps = _objectSpread({}, rest, {
25
+ var passDownProps = _objectSpread(_objectSpread({}, rest), {}, {
26
26
  t: t,
27
27
  i18n: i18n,
28
28
  tReady: ready
@@ -7,6 +7,8 @@
7
7
  var React__default = 'default' in React ? React['default'] : React;
8
8
 
9
9
  function _typeof(obj) {
10
+ "@babel/helpers - typeof";
11
+
10
12
  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
11
13
  _typeof = function (obj) {
12
14
  return typeof obj;
@@ -76,13 +78,13 @@
76
78
  var source = arguments[i] != null ? arguments[i] : {};
77
79
 
78
80
  if (i % 2) {
79
- ownKeys(source, true).forEach(function (key) {
81
+ ownKeys(Object(source), true).forEach(function (key) {
80
82
  _defineProperty(target, key, source[key]);
81
83
  });
82
84
  } else if (Object.getOwnPropertyDescriptors) {
83
85
  Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
84
86
  } else {
85
- ownKeys(source).forEach(function (key) {
87
+ ownKeys(Object(source)).forEach(function (key) {
86
88
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
87
89
  });
88
90
  }
@@ -128,7 +130,7 @@
128
130
  }
129
131
 
130
132
  function _slicedToArray(arr, i) {
131
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
133
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
132
134
  }
133
135
 
134
136
  function _arrayWithHoles(arr) {
@@ -136,10 +138,7 @@
136
138
  }
137
139
 
138
140
  function _iterableToArrayLimit(arr, i) {
139
- if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
140
- return;
141
- }
142
-
141
+ if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
143
142
  var _arr = [];
144
143
  var _n = true;
145
144
  var _d = false;
@@ -165,8 +164,25 @@
165
164
  return _arr;
166
165
  }
167
166
 
167
+ function _unsupportedIterableToArray(o, minLen) {
168
+ if (!o) return;
169
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
170
+ var n = Object.prototype.toString.call(o).slice(8, -1);
171
+ if (n === "Object" && o.constructor) n = o.constructor.name;
172
+ if (n === "Map" || n === "Set") return Array.from(o);
173
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
174
+ }
175
+
176
+ function _arrayLikeToArray(arr, len) {
177
+ if (len == null || len > arr.length) len = arr.length;
178
+
179
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
180
+
181
+ return arr2;
182
+ }
183
+
168
184
  function _nonIterableRest() {
169
- throw new TypeError("Invalid attempt to destructure non-iterable instance");
185
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
170
186
  }
171
187
 
172
188
  var voidElements = {
@@ -381,7 +397,7 @@
381
397
  var I18nContext = React__default.createContext();
382
398
  function setDefaults() {
383
399
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
384
- defaultOptions = _objectSpread2({}, defaultOptions, {}, options);
400
+ defaultOptions = _objectSpread2(_objectSpread2({}, defaultOptions), options);
385
401
  }
386
402
  function getDefaults() {
387
403
  return defaultOptions;
@@ -431,7 +447,7 @@
431
447
 
432
448
  if (ForComponent.getInitialProps) {
433
449
  ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {
434
- resolve(_objectSpread2({}, componentsInitialProps, {}, i18nInitialProps));
450
+ resolve(_objectSpread2(_objectSpread2({}, componentsInitialProps), i18nInitialProps));
435
451
  });
436
452
  } else {
437
453
  resolve(i18nInitialProps);
@@ -612,9 +628,22 @@
612
628
  }
613
629
 
614
630
  getData(children);
615
- var interpolatedString = i18n.services.interpolator.interpolate(targetString, _objectSpread2({}, data, {}, combinedTOpts), i18n.language);
631
+ var interpolatedString = i18n.services.interpolator.interpolate(targetString, _objectSpread2(_objectSpread2({}, data), combinedTOpts), i18n.language);
616
632
  var ast = htmlParseStringify2.parse("<0>".concat(interpolatedString, "</0>"));
617
633
 
634
+ function renderInner(child, node, rootReactNode) {
635
+ var childs = getChildren(child);
636
+ var mappedChildren = mapAST(childs, node.children, rootReactNode);
637
+ return hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;
638
+ }
639
+
640
+ function pushTranslatedJSX(child, inner, mem, i) {
641
+ if (child.dummy) child.children = inner;
642
+ mem.push(React__default.cloneElement(child, _objectSpread2(_objectSpread2({}, child.props), {}, {
643
+ key: i
644
+ }), inner));
645
+ }
646
+
618
647
  function mapAST(reactNode, astNode, rootReactNode) {
619
648
  var reactNodes = getAsArray(reactNode);
620
649
  var astNodes = getAsArray(astNode);
@@ -629,52 +658,54 @@
629
658
  props: node.attrs
630
659
  }, tmp) : tmp;
631
660
  var isElement = React__default.isValidElement(child);
661
+ var isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;
662
+ var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement;
663
+ var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);
632
664
 
633
665
  if (typeof child === 'string') {
634
666
  mem.push(child);
635
- } else if (hasChildren(child) || isElement && hasChildren(node, true) && !node.voidElement) {
636
- var childs = getChildren(child);
637
- var mappedChildren = mapAST(childs, node.children, rootReactNode);
638
- var inner = hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;
639
- if (child.dummy) child.children = inner;
640
- mem.push(React__default.cloneElement(child, _objectSpread2({}, child.props, {
641
- key: i
642
- }), inner));
643
- } else if (emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement) {
667
+ } else if (hasChildren(child) || isValidTranslationWithChildren) {
668
+ var inner = renderInner(child, node, rootReactNode);
669
+ pushTranslatedJSX(child, inner, mem, i);
670
+ } else if (isEmptyTransWithHTML) {
644
671
  var _inner = mapAST(reactNodes, node.children, rootReactNode);
645
672
 
646
- mem.push(React__default.cloneElement(child, _objectSpread2({}, child.props, {
673
+ mem.push(React__default.cloneElement(child, _objectSpread2(_objectSpread2({}, child.props), {}, {
647
674
  key: i
648
675
  }), _inner));
649
676
  } else if (Number.isNaN(parseFloat(node.name))) {
650
- if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {
677
+ if (isKnownComponent) {
678
+ var _inner2 = renderInner(child, node, rootReactNode);
679
+
680
+ pushTranslatedJSX(child, _inner2, mem, i);
681
+ } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {
651
682
  if (node.voidElement) {
652
683
  mem.push(React__default.createElement(node.name, {
653
684
  key: "".concat(node.name, "-").concat(i)
654
685
  }));
655
686
  } else {
656
- var _inner2 = mapAST(reactNodes, node.children, rootReactNode);
687
+ var _inner3 = mapAST(reactNodes, node.children, rootReactNode);
657
688
 
658
689
  mem.push(React__default.createElement(node.name, {
659
690
  key: "".concat(node.name, "-").concat(i)
660
- }, _inner2));
691
+ }, _inner3));
661
692
  }
662
693
  } else if (node.voidElement) {
663
694
  mem.push("<".concat(node.name, " />"));
664
695
  } else {
665
- var _inner3 = mapAST(reactNodes, node.children, rootReactNode);
696
+ var _inner4 = mapAST(reactNodes, node.children, rootReactNode);
666
697
 
667
- mem.push("<".concat(node.name, ">").concat(_inner3, "</").concat(node.name, ">"));
698
+ mem.push("<".concat(node.name, ">").concat(_inner4, "</").concat(node.name, ">"));
668
699
  }
669
700
  } else if (_typeof(child) === 'object' && !isElement) {
670
701
  var content = node.children[0] ? translationContent : null;
671
702
  if (content) mem.push(content);
672
703
  } else if (node.children.length === 1 && translationContent) {
673
- mem.push(React__default.cloneElement(child, _objectSpread2({}, child.props, {
704
+ mem.push(React__default.cloneElement(child, _objectSpread2(_objectSpread2({}, child.props), {}, {
674
705
  key: i
675
706
  }), translationContent));
676
707
  } else {
677
- mem.push(React__default.cloneElement(child, _objectSpread2({}, child.props, {
708
+ mem.push(React__default.cloneElement(child, _objectSpread2(_objectSpread2({}, child.props), {}, {
678
709
  key: i
679
710
  })));
680
711
  }
@@ -714,7 +745,7 @@
714
745
  var i18n = i18nFromProps || i18nFromContext || getI18n();
715
746
 
716
747
  if (!i18n) {
717
- warnOnce('You will need pass in an i18next instance by using i18nextReactModule');
748
+ warnOnce('You will need to pass in an i18next instance by using i18nextReactModule');
718
749
  return children;
719
750
  }
720
751
 
@@ -722,7 +753,7 @@
722
753
  return k;
723
754
  };
724
755
 
725
- var reactI18nextOptions = _objectSpread2({}, getDefaults(), {}, i18n.options && i18n.options.react);
756
+ var reactI18nextOptions = _objectSpread2(_objectSpread2({}, getDefaults()), i18n.options && i18n.options.react);
726
757
 
727
758
  var namespaces = ns || t.ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
728
759
  namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];
@@ -736,9 +767,9 @@
736
767
  }
737
768
  };
738
769
 
739
- var combinedTOpts = _objectSpread2({}, tOptions, {
770
+ var combinedTOpts = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, tOptions), {}, {
740
771
  count: count
741
- }, values, {}, interpolationOverride, {
772
+ }, values), interpolationOverride), {}, {
742
773
  defaultValue: defaultValue,
743
774
  ns: namespaces
744
775
  });
@@ -761,7 +792,7 @@
761
792
  if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();
762
793
 
763
794
  if (!i18n) {
764
- warnOnce('You will need pass in an i18next instance by using initReactI18next');
795
+ warnOnce('You will need to pass in an i18next instance by using initReactI18next');
765
796
 
766
797
  var notReadyT = function notReadyT(k) {
767
798
  return Array.isArray(k) ? k[k.length - 1] : k;
@@ -774,7 +805,7 @@
774
805
  return retNotReady;
775
806
  }
776
807
 
777
- var i18nOptions = _objectSpread2({}, getDefaults(), {}, i18n.options.react, {}, props);
808
+ var i18nOptions = _objectSpread2(_objectSpread2(_objectSpread2({}, getDefaults()), i18n.options.react), props);
778
809
 
779
810
  var useSuspense = i18nOptions.useSuspense;
780
811
  var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
@@ -831,7 +862,6 @@
831
862
  if (!ready && !useSuspense) return ret;
832
863
  throw new Promise(function (resolve) {
833
864
  loadNamespaces(i18n, namespaces, function () {
834
- if (isMounted.current) setT(getT());
835
865
  resolve();
836
866
  });
837
867
  });
@@ -850,7 +880,7 @@
850
880
  i18n = _useTranslation2[1],
851
881
  ready = _useTranslation2[2];
852
882
 
853
- var passDownProps = _objectSpread2({}, rest, {
883
+ var passDownProps = _objectSpread2(_objectSpread2({}, rest), {}, {
854
884
  t: t,
855
885
  i18n: i18n,
856
886
  tReady: ready
@@ -899,11 +929,14 @@
899
929
  var i18n = _ref.i18n,
900
930
  defaultNS = _ref.defaultNS,
901
931
  children = _ref.children;
902
- return React.createElement(I18nContext.Provider, {
903
- value: {
932
+ var value = React.useMemo(function () {
933
+ return {
904
934
  i18n: i18n,
905
935
  defaultNS: defaultNS
906
- }
936
+ };
937
+ }, [i18n, defaultNS]);
938
+ return React.createElement(I18nContext.Provider, {
939
+ value: value
907
940
  }, children);
908
941
  }
909
942
 
@@ -1 +1 @@
1
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],n):n((e=e||self).ReactI18next={},e.React)}(this,(function(e,n){"use strict";var t="default"in n?n.default:n;function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(t,!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(t).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function u(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var t=[],r=!0,i=!1,a=void 0;try{for(var o,c=e[Symbol.iterator]();!(r=(o=c.next()).done)&&(t.push(o.value),!n||t.length!==n);r=!0);}catch(e){i=!0,a=e}finally{try{r||null==c.return||c.return()}finally{if(i)throw a}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var l={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,menuitem:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},f=/([\w-]+)|=|(['"])([.\s\S]*?)\2/g,p=/(?:<!--[\S\s]*?-->|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g,d=Object.create?Object.create(null):{};function g(e,n,t,r,i){var a=n.indexOf("<",r),o=n.slice(r,-1===a?void 0:a);/^\s*$/.test(o)&&(o=" "),(!i&&a>-1&&t+e.length>=0||" "!==o)&&e.push({type:"text",content:o})}function m(e,n){switch(n.type){case"text":return e+n.content;case"tag":return e+="<"+n.name+(n.attrs?function(e){var n=[];for(var t in e)n.push(t+'="'+e[t]+'"');return n.length?" "+n.join(" "):""}(n.attrs):"")+(n.voidElement?"/>":">"),n.voidElement?e:e+n.children.reduce(m,"")+"</"+n.name+">"}}var h,y={parse:function(e,n){n||(n={}),n.components||(n.components=d);var t,r=[],i=-1,a=[],o={},c=!1;return e.replace(p,(function(s,u){if(c){if(s!=="</"+t.name+">")return;c=!1}var p,d="/"!==s.charAt(1),m=0===s.indexOf("\x3c!--"),h=u+s.length,y=e.charAt(h);d&&!m&&(i++,"tag"===(t=function(e){var n,t=0,r=!0,i={type:"tag",name:"",voidElement:!1,attrs:{},children:[]};return e.replace(f,(function(a){if("="===a)return r=!0,void t++;r?0===t?((l[a]||"/"===e.charAt(e.length-2))&&(i.voidElement=!0),i.name=a):(i.attrs[n]=a.replace(/^['"]|['"]$/g,""),n=void 0):(n&&(i.attrs[n]=n),n=a),t++,r=!1})),i}(s)).type&&n.components[t.name]&&(t.type="component",c=!0),t.voidElement||c||!y||"<"===y||g(t.children,e,i,h,n.ignoreWhitespace),o[t.tagName]=t,0===i&&r.push(t),(p=a[i-1])&&p.children.push(t),a[i]=t),(m||!d||t.voidElement)&&(m||i--,!c&&"<"!==y&&y&&g(p=-1===i?r:a[i].children,e,i,h,n.ignoreWhitespace))})),!r.length&&e.length&&g(r,e,0,0,n.ignoreWhitespace),r},stringify:function(e){return e.reduce((function(e,n){return e+m("",n)}),"")}},v={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0},b=t.createContext();function O(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};v=c({},v,{},e)}function w(){return v}var j=function(){function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.usedNamespaces={}}var n,t,r;return n=e,(t=[{key:"addUsedNamespaces",value:function(e){var n=this;e.forEach((function(e){n.usedNamespaces[e]||(n.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}])&&i(n.prototype,t),r&&i(n,r),e}();function E(e){h=e}function S(){return h}var x={type:"3rdParty",init:function(e){O(e.options.react),E(e)}};function N(e){return function(n){return new Promise((function(t){var r=k();e.getInitialProps?e.getInitialProps(n).then((function(e){t(c({},e,{},r))})):t(r)}))}}function k(){var e=S(),n=e.reportNamespaces?e.reportNamespaces.getUsedNamespaces():[],t={},r={};return e.languages.forEach((function(t){r[t]={},n.forEach((function(n){r[t][n]=e.getResourceBundle(t,n)||{}}))})),t.initialI18nStore=r,t.initialLanguage=e.language,t}function I(){if(console&&console.warn){for(var e,n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];"string"==typeof t[0]&&(t[0]="react-i18next:: ".concat(t[0])),(e=console).warn.apply(e,t)}}var P={};function R(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&P[n[0]]||("string"==typeof n[0]&&(P[n[0]]=new Date),I.apply(void 0,n))}function C(e,n,t){e.loadNamespaces(n,(function(){if(e.isInitialized)t();else{e.on("initialized",(function n(){setTimeout((function(){e.off("initialized",n)}),0),t()}))}}))}function T(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}function A(e,n){if(!e)return!1;var t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function L(e){return e?e&&e.children?e.children:e.props&&e.props.children:[]}function z(e){return Array.isArray(e)?e:[e]}function D(e,n,i,a,o){if(""===n)return[];var s=a.transKeepBasicHtmlNodesFor||[],u=n&&new RegExp(s.join("|")).test(n);if(!e&&!u)return[n];var l={};!function e(n){z(n).forEach((function(n){"string"!=typeof n&&(A(n)?e(L(n)):"object"!==r(n)||t.isValidElement(n)||Object.assign(l,n))}))}(e);var f=i.services.interpolator.interpolate(n,c({},l,{},o),i.language);var p=function e(n,i,o){var l=z(n);return z(i).reduce((function(n,i,f){var p,d,g,m=i.children&&i.children[0]&&i.children[0].content;if("tag"===i.type){var h=l[parseInt(i.name,10)];!h&&1===o.length&&o[0][i.name]&&(h=o[0][i.name]),h||(h={});var y=0!==Object.keys(i.attrs).length?(p={props:i.attrs},(g=c({},d=h)).props=Object.assign(p.props,d.props),g):h,v=t.isValidElement(y);if("string"==typeof y)n.push(y);else if(A(y)||v&&A(i,!0)&&!i.voidElement){var b=L(y),O=e(b,i.children,o),w=function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((function(e){return t.isValidElement(e)}))}(b)&&0===O.length?b:O;y.dummy&&(y.children=w),n.push(t.cloneElement(y,c({},y.props,{key:f}),w))}else if(u&&"object"===r(y)&&y.dummy&&!v){var j=e(l,i.children,o);n.push(t.cloneElement(y,c({},y.props,{key:f}),j))}else if(Number.isNaN(parseFloat(i.name)))if(a.transSupportBasicHtmlNodes&&s.indexOf(i.name)>-1)if(i.voidElement)n.push(t.createElement(i.name,{key:"".concat(i.name,"-").concat(f)}));else{var E=e(l,i.children,o);n.push(t.createElement(i.name,{key:"".concat(i.name,"-").concat(f)},E))}else if(i.voidElement)n.push("<".concat(i.name," />"));else{var S=e(l,i.children,o);n.push("<".concat(i.name,">").concat(S,"</").concat(i.name,">"))}else if("object"!==r(y)||v)1===i.children.length&&m?n.push(t.cloneElement(y,c({},y.props,{key:f}),m)):n.push(t.cloneElement(y,c({},y.props,{key:f})));else{var x=i.children[0]?m:null;x&&n.push(x)}}else"text"===i.type&&n.push(i.content);return n}),[])}([{dummy:!0,children:e}],y.parse("<0>".concat(f,"</0>")),z(e||[]));return L(p[0])}function B(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.i18n,i=n.useContext(b)||{},a=i.i18n,o=i.defaultNS,s=r||a||S();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new j),!s){R("You will need pass in an i18next instance by using initReactI18next");var l=function(e){return Array.isArray(e)?e[e.length-1]:e},f=[l,{},!1];return f.t=l,f.i18n={},f.ready=!1,f}var p=c({},w(),{},s.options.react,{},t),d=p.useSuspense,g=e||o||s.options&&s.options.defaultNS;g="string"==typeof g?[g]:g||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(g);var m=(s.isInitialized||s.initializedStoreOnce)&&g.every((function(e){return function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!n.languages||!n.languages.length)return R("i18n.languages were undefined or empty",n.languages),!0;var r=n.languages[0],i=!!n.options&&n.options.fallbackLng,a=n.languages[n.languages.length-1];if("cimode"===r.toLowerCase())return!0;var o=function(e,t){var r=n.services.backendConnector.state["".concat(e,"|").concat(t)];return-1===r||2===r};return!(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!o(n.isLanguageChangingTo,e))&&(!!n.hasResourceBundle(r,e)||(!n.services.backendConnector.backend||!(!o(r,e)||i&&!o(a,e))))}(e,s,p)}));function h(){return{t:s.getFixedT(null,"fallback"===p.nsMode?g:g[0])}}var y=u(n.useState(h()),2),v=y[0],O=y[1],E=n.useRef(!0);n.useEffect((function(){var e=p.bindI18n,n=p.bindI18nStore;function t(){E.current&&O(h())}return E.current=!0,m||d||C(s,g,(function(){E.current&&O(h())})),e&&s&&s.on(e,t),n&&s&&s.store.on(n,t),function(){E.current=!1,e&&s&&e.split(" ").forEach((function(e){return s.off(e,t)})),n&&s&&n.split(" ").forEach((function(e){return s.store.off(e,t)}))}}),[g.join()]);var x=[v.t,s,m];if(x.t=v.t,x.i18n=s,x.ready=m,m)return x;if(!m&&!d)return x;throw new Promise((function(e){C(s,g,(function(){E.current&&O(h()),e()}))}))}function V(e,t){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).i18n,i=(n.useContext(b)||{}).i18n,a=r||i||S();a.options&&a.options.isClone||(e&&!a.initializedStoreOnce&&(a.services.resourceStore.data=e,a.options.ns=Object.values(e).reduce((function(e,n){return Object.keys(n).forEach((function(n){e.indexOf(n)<0&&e.push(n)})),e}),a.options.ns),a.initializedStoreOnce=!0,a.isInitialized=!0),t&&!a.initializedLanguageOnce&&(a.changeLanguage(t),a.initializedLanguageOnce=!0))}e.I18nContext=b,e.I18nextProvider=function(e){var t=e.i18n,r=e.defaultNS,i=e.children;return n.createElement(b.Provider,{value:{i18n:t,defaultNS:r}},i)},e.Trans=function(e){var i=e.children,a=e.count,o=e.parent,u=e.i18nKey,l=e.tOptions,f=e.values,p=e.defaults,d=e.components,g=e.ns,m=e.i18n,h=e.t,y=s(e,["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"]),v=n.useContext(b)||{},O=v.i18n,j=v.defaultNS,E=m||O||S();if(!E)return R("You will need pass in an i18next instance by using i18nextReactModule"),i;var x=h||E.t.bind(E)||function(e){return e},N=c({},w(),{},E.options&&E.options.react),k=g||x.ns||j||E.options&&E.options.defaultNS;k="string"==typeof k?[k]:k||["translation"];var P=p||function e(n,i){if(!n)return"";var a="",o=z(n),c=i.transKeepBasicHtmlNodesFor||[];return o.forEach((function(n,o){if("string"==typeof n)a+="".concat(n);else if(t.isValidElement(n)){var u=Object.keys(n.props).length,l=c.indexOf(n.type)>-1,f=n.props.children;if(!f&&l&&0===u)a+="<".concat(n.type,"/>");else if(f||l&&0===u)if(n.props.i18nIsDynamicList)a+="<".concat(o,"></").concat(o,">");else if(l&&1===u&&"string"==typeof f)a+="<".concat(n.type,">").concat(f,"</").concat(n.type,">");else{var p=e(f,i);a+="<".concat(o,">").concat(p,"</").concat(o,">")}else a+="<".concat(o,"></").concat(o,">")}else if("object"===r(n)){var d=n.format,g=s(n,["format"]),m=Object.keys(g);if(1===m.length){var h=d?"".concat(m[0],", ").concat(d):m[0];a+="{{".concat(h,"}}")}else I("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else I("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",n)})),a}(i,N)||N.transEmptyNodeValue||u,C=N.hashTransKey,T=u||(C?C(P):P),A=c({},l,{count:a},f,{},f?{}:{interpolation:{prefix:"#$?",suffix:"?$#"}},{defaultValue:P,ns:k}),L=D(d||i,T?x(T,A):P,E,N,A),B=void 0!==o?o:N.defaultTransParent;return B?t.createElement(B,y,L):L},e.Translation=function(e){var n=e.ns,t=e.children,r=u(B(n,s(e,["ns","children"])),3),i=r[0],a=r[1],o=r[2];return t(i,{i18n:a,lng:a.language},o)},e.composeInitialProps=N,e.getDefaults=w,e.getI18n=S,e.getInitialProps=k,e.initReactI18next=x,e.setDefaults=O,e.setI18n=E,e.useSSR=V,e.useTranslation=B,e.withSSR=function(){return function(e){function n(n){var r=n.initialI18nStore,i=n.initialLanguage,a=s(n,["initialI18nStore","initialLanguage"]);return V(r,i),t.createElement(e,c({},a))}return n.getInitialProps=N(e),n.displayName="withI18nextSSR(".concat(T(e),")"),n.WrappedComponent=e,n}},e.withTranslation=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(r){function i(i){var a=i.forwardedRef,o=s(i,["forwardedRef"]),l=u(B(e,o),3),f=c({},o,{t:l[0],i18n:l[1],tReady:l[2]});return n.withRef&&a?f.ref=a:!n.withRef&&a&&(f.forwardedRef=a),t.createElement(r,f)}i.displayName="withI18nextTranslation(".concat(T(r),")"),i.WrappedComponent=r;return n.withRef?t.forwardRef((function(e,n){return t.createElement(i,Object.assign({},e,{forwardedRef:n}))})):i}},Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],n):n((e=e||self).ReactI18next={},e.React)}(this,(function(e,n){"use strict";var t="default"in n?n.default:n;function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?o(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function s(e,n){if(null==e)return{};var t,r,i=function(e,n){if(null==e)return{};var t,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}function u(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],r=!0,i=!1,a=void 0;try{for(var o,c=e[Symbol.iterator]();!(r=(o=c.next()).done)&&(t.push(o.value),!n||t.length!==n);r=!0);}catch(e){i=!0,a=e}finally{try{r||null==c.return||c.return()}finally{if(i)throw a}}return t}(e,n)||function(e,n){if(!e)return;if("string"==typeof e)return l(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return l(e,n)}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var f={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,menuitem:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},p=/([\w-]+)|=|(['"])([.\s\S]*?)\2/g,d=/(?:<!--[\S\s]*?-->|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g,g=Object.create?Object.create(null):{};function m(e,n,t,r,i){var a=n.indexOf("<",r),o=n.slice(r,-1===a?void 0:a);/^\s*$/.test(o)&&(o=" "),(!i&&a>-1&&t+e.length>=0||" "!==o)&&e.push({type:"text",content:o})}var y,h=function(e,n){n||(n={}),n.components||(n.components=g);var t,r=[],i=-1,a=[],o={},c=!1;return e.replace(d,(function(s,u){if(c){if(s!=="</"+t.name+">")return;c=!1}var l,d="/"!==s.charAt(1),g=0===s.indexOf("\x3c!--"),y=u+s.length,h=e.charAt(y);d&&!g&&(i++,"tag"===(t=function(e){var n,t=0,r=!0,i={type:"tag",name:"",voidElement:!1,attrs:{},children:[]};return e.replace(p,(function(a){if("="===a)return r=!0,void t++;r?0===t?((f[a]||"/"===e.charAt(e.length-2))&&(i.voidElement=!0),i.name=a):(i.attrs[n]=a.replace(/^['"]|['"]$/g,""),n=void 0):(n&&(i.attrs[n]=n),n=a),t++,r=!1})),i}(s)).type&&n.components[t.name]&&(t.type="component",c=!0),t.voidElement||c||!h||"<"===h||m(t.children,e,i,y,n.ignoreWhitespace),o[t.tagName]=t,0===i&&r.push(t),(l=a[i-1])&&l.children.push(t),a[i]=t),(g||!d||t.voidElement)&&(g||i--,!c&&"<"!==h&&h&&m(l=-1===i?r:a[i].children,e,i,y,n.ignoreWhitespace))})),!r.length&&e.length&&m(r,e,0,0,n.ignoreWhitespace),r},v={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0},b=t.createContext();function O(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};v=c(c({},v),e)}function j(){return v}var w=function(){function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.usedNamespaces={}}var n,t,r;return n=e,(t=[{key:"addUsedNamespaces",value:function(e){var n=this;e.forEach((function(e){n.usedNamespaces[e]||(n.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}])&&i(n.prototype,t),r&&i(n,r),e}();function S(e){y=e}function E(){return y}var N={type:"3rdParty",init:function(e){O(e.options.react),S(e)}};function x(e){return function(n){return new Promise((function(t){var r=I();e.getInitialProps?e.getInitialProps(n).then((function(e){t(c(c({},e),r))})):t(r)}))}}function I(){var e=E(),n=e.reportNamespaces?e.reportNamespaces.getUsedNamespaces():[],t={},r={};return e.languages.forEach((function(t){r[t]={},n.forEach((function(n){r[t][n]=e.getResourceBundle(t,n)||{}}))})),t.initialI18nStore=r,t.initialLanguage=e.language,t}function k(){if(console&&console.warn){for(var e,n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];"string"==typeof t[0]&&(t[0]="react-i18next:: ".concat(t[0])),(e=console).warn.apply(e,t)}}var P={};function R(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];"string"==typeof n[0]&&P[n[0]]||("string"==typeof n[0]&&(P[n[0]]=new Date),k.apply(void 0,n))}function C(e,n,t){e.loadNamespaces(n,(function(){if(e.isInitialized)t();else{e.on("initialized",(function n(){setTimeout((function(){e.off("initialized",n)}),0),t()}))}}))}function A(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!n.languages||!n.languages.length)return R("i18n.languages were undefined or empty",n.languages),!0;var r=n.languages[0],i=!!n.options&&n.options.fallbackLng,a=n.languages[n.languages.length-1];if("cimode"===r.toLowerCase())return!0;var o=function(e,t){var r=n.services.backendConnector.state["".concat(e,"|").concat(t)];return-1===r||2===r};return!(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!o(n.isLanguageChangingTo,e))&&(!!n.hasResourceBundle(r,e)||(!n.services.backendConnector.backend||!(!o(r,e)||i&&!o(a,e))))}function T(e){return e.displayName||e.name||("string"==typeof e&&e.length>0?e:"Unknown")}function L(e,n){if(!e)return!1;var t=e.props?e.props.children:e.children;return n?t.length>0:!!t}function z(e){return e?e&&e.children?e.children:e.props&&e.props.children:[]}function D(e){return Array.isArray(e)?e:[e]}function B(e,n,i,a,o){if(""===n)return[];var s=a.transKeepBasicHtmlNodesFor||[],u=n&&new RegExp(s.join("|")).test(n);if(!e&&!u)return[n];var l={};!function e(n){D(n).forEach((function(n){"string"!=typeof n&&(L(n)?e(z(n)):"object"!==r(n)||t.isValidElement(n)||Object.assign(l,n))}))}(e);var f=i.services.interpolator.interpolate(n,c(c({},l),o),i.language),p=h("<0>".concat(f,"</0>"));function d(e,n,r){var i=z(e),a=m(i,n.children,r);return function(e){return"[object Array]"===Object.prototype.toString.call(e)&&e.every((function(e){return t.isValidElement(e)}))}(i)&&0===a.length?i:a}function g(e,n,r,i){e.dummy&&(e.children=n),r.push(t.cloneElement(e,c(c({},e.props),{},{key:i}),n))}function m(n,i,o){var l=D(n);return D(i).reduce((function(n,i,f){var p,y,h,v=i.children&&i.children[0]&&i.children[0].content;if("tag"===i.type){var b=l[parseInt(i.name,10)];!b&&1===o.length&&o[0][i.name]&&(b=o[0][i.name]),b||(b={});var O=0!==Object.keys(i.attrs).length?(p={props:i.attrs},(h=c({},y=b)).props=Object.assign(p.props,y.props),h):b,j=t.isValidElement(O),w=j&&L(i,!0)&&!i.voidElement,S=u&&"object"===r(O)&&O.dummy&&!j,E="object"===r(e)&&null!==e&&Object.hasOwnProperty.call(e,i.name);if("string"==typeof O)n.push(O);else if(L(O)||w){g(O,d(O,i,o),n,f)}else if(S){var N=m(l,i.children,o);n.push(t.cloneElement(O,c(c({},O.props),{},{key:f}),N))}else if(Number.isNaN(parseFloat(i.name))){if(E)g(O,d(O,i,o),n,f);else if(a.transSupportBasicHtmlNodes&&s.indexOf(i.name)>-1)if(i.voidElement)n.push(t.createElement(i.name,{key:"".concat(i.name,"-").concat(f)}));else{var x=m(l,i.children,o);n.push(t.createElement(i.name,{key:"".concat(i.name,"-").concat(f)},x))}else if(i.voidElement)n.push("<".concat(i.name," />"));else{var I=m(l,i.children,o);n.push("<".concat(i.name,">").concat(I,"</").concat(i.name,">"))}}else if("object"!==r(O)||j)1===i.children.length&&v?n.push(t.cloneElement(O,c(c({},O.props),{},{key:f}),v)):n.push(t.cloneElement(O,c(c({},O.props),{},{key:f})));else{var k=i.children[0]?v:null;k&&n.push(k)}}else"text"===i.type&&n.push(i.content);return n}),[])}return z(m([{dummy:!0,children:e}],p,D(e||[]))[0])}function U(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.i18n,i=n.useContext(b)||{},a=i.i18n,o=i.defaultNS,s=r||a||E();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new w),!s){R("You will need to pass in an i18next instance by using initReactI18next");var l=function(e){return Array.isArray(e)?e[e.length-1]:e},f=[l,{},!1];return f.t=l,f.i18n={},f.ready=!1,f}var p=c(c(c({},j()),s.options.react),t),d=p.useSuspense,g=e||o||s.options&&s.options.defaultNS;g="string"==typeof g?[g]:g||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(g);var m=(s.isInitialized||s.initializedStoreOnce)&&g.every((function(e){return A(e,s,p)}));function y(){return{t:s.getFixedT(null,"fallback"===p.nsMode?g:g[0])}}var h=n.useState(y()),v=u(h,2),O=v[0],S=v[1],N=n.useRef(!0);n.useEffect((function(){var e=p.bindI18n,n=p.bindI18nStore;function t(){N.current&&S(y())}return N.current=!0,m||d||C(s,g,(function(){N.current&&S(y())})),e&&s&&s.on(e,t),n&&s&&s.store.on(n,t),function(){N.current=!1,e&&s&&e.split(" ").forEach((function(e){return s.off(e,t)})),n&&s&&n.split(" ").forEach((function(e){return s.store.off(e,t)}))}}),[g.join()]);var x=[O.t,s,m];if(x.t=O.t,x.i18n=s,x.ready=m,m)return x;if(!m&&!d)return x;throw new Promise((function(e){C(s,g,(function(){e()}))}))}function V(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.i18n,a=n.useContext(b)||{},o=a.i18n,c=i||o||E();c.options&&c.options.isClone||(e&&!c.initializedStoreOnce&&(c.services.resourceStore.data=e,c.options.ns=Object.values(e).reduce((function(e,n){return Object.keys(n).forEach((function(n){e.indexOf(n)<0&&e.push(n)})),e}),c.options.ns),c.initializedStoreOnce=!0,c.isInitialized=!0),t&&!c.initializedLanguageOnce&&(c.changeLanguage(t),c.initializedLanguageOnce=!0))}e.I18nContext=b,e.I18nextProvider=function(e){var t=e.i18n,r=e.defaultNS,i=e.children,a=n.useMemo((function(){return{i18n:t,defaultNS:r}}),[t,r]);return n.createElement(b.Provider,{value:a},i)},e.Trans=function(e){var i=e.children,a=e.count,o=e.parent,u=e.i18nKey,l=e.tOptions,f=e.values,p=e.defaults,d=e.components,g=e.ns,m=e.i18n,y=e.t,h=s(e,["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"]),v=n.useContext(b)||{},O=v.i18n,w=v.defaultNS,S=m||O||E();if(!S)return R("You will need to pass in an i18next instance by using i18nextReactModule"),i;var N=y||S.t.bind(S)||function(e){return e},x=c(c({},j()),S.options&&S.options.react),I=g||N.ns||w||S.options&&S.options.defaultNS;I="string"==typeof I?[I]:I||["translation"];var P=p||function e(n,i){if(!n)return"";var a="",o=D(n),c=i.transKeepBasicHtmlNodesFor||[];return o.forEach((function(n,o){if("string"==typeof n)a+="".concat(n);else if(t.isValidElement(n)){var u=Object.keys(n.props).length,l=c.indexOf(n.type)>-1,f=n.props.children;if(!f&&l&&0===u)a+="<".concat(n.type,"/>");else if(f||l&&0===u)if(n.props.i18nIsDynamicList)a+="<".concat(o,"></").concat(o,">");else if(l&&1===u&&"string"==typeof f)a+="<".concat(n.type,">").concat(f,"</").concat(n.type,">");else{var p=e(f,i);a+="<".concat(o,">").concat(p,"</").concat(o,">")}else a+="<".concat(o,"></").concat(o,">")}else if("object"===r(n)){var d=n.format,g=s(n,["format"]),m=Object.keys(g);if(1===m.length){var y=d?"".concat(m[0],", ").concat(d):m[0];a+="{{".concat(y,"}}")}else k("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else k("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",n)})),a}(i,x)||x.transEmptyNodeValue||u,C=x.hashTransKey,A=u||(C?C(P):P),T=f?{}:{interpolation:{prefix:"#$?",suffix:"?$#"}},L=c(c(c(c({},l),{},{count:a},f),T),{},{defaultValue:P,ns:I}),z=B(d||i,A?N(A,L):P,S,x,L),U=void 0!==o?o:x.defaultTransParent;return U?t.createElement(U,h,z):z},e.Translation=function(e){var n=e.ns,t=e.children,r=u(U(n,s(e,["ns","children"])),3),i=r[0],a=r[1],o=r[2];return t(i,{i18n:a,lng:a.language},o)},e.composeInitialProps=x,e.getDefaults=j,e.getI18n=E,e.getInitialProps=I,e.initReactI18next=N,e.setDefaults=O,e.setI18n=S,e.useSSR=V,e.useTranslation=U,e.withSSR=function(){return function(e){function n(n){var r=n.initialI18nStore,i=n.initialLanguage,a=s(n,["initialI18nStore","initialLanguage"]);return V(r,i),t.createElement(e,c({},a))}return n.getInitialProps=x(e),n.displayName="withI18nextSSR(".concat(T(e),")"),n.WrappedComponent=e,n}},e.withTranslation=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(r){function i(i){var a=i.forwardedRef,o=s(i,["forwardedRef"]),l=u(U(e,o),3),f=l[0],p=l[1],d=l[2],g=c(c({},o),{},{t:f,i18n:p,tReady:d});return n.withRef&&a?g.ref=a:!n.withRef&&a&&(g.forwardedRef=a),t.createElement(r,g)}i.displayName="withI18nextTranslation(".concat(T(r),")"),i.WrappedComponent=r;return n.withRef?t.forwardRef((function(e,n){return t.createElement(i,Object.assign({},e,{forwardedRef:n}))})):i}},Object.defineProperty(e,"__esModule",{value:!0})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-i18next",
3
- "version": "11.6.0",
3
+ "version": "11.7.3",
4
4
  "description": "Internationalization for react done right. Using the i18next i18n ecosystem.",
5
5
  "main": "dist/commonjs/index.js",
6
6
  "types": "src/index.d.ts",