gt-react 8.2.13 → 8.2.14

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.
Files changed (107) hide show
  1. package/dist/branches/Branch.js +3 -5
  2. package/dist/branches/Branch.js.map +1 -1
  3. package/dist/branches/plurals/Plural.js +11 -16
  4. package/dist/branches/plurals/Plural.js.map +1 -1
  5. package/dist/branches/plurals/getPluralBranch.js +3 -6
  6. package/dist/branches/plurals/getPluralBranch.js.map +1 -1
  7. package/dist/client.d.ts +1 -1
  8. package/dist/client.js +4 -12
  9. package/dist/client.js.map +1 -1
  10. package/dist/hooks/useBrowserLocale.js +10 -13
  11. package/dist/hooks/useBrowserLocale.js.map +1 -1
  12. package/dist/hooks/useDefaultLocale.js +3 -9
  13. package/dist/hooks/useDefaultLocale.js.map +1 -1
  14. package/dist/hooks/useElement.d.ts +18 -0
  15. package/dist/hooks/useElement.d.ts.map +1 -0
  16. package/dist/hooks/useElement.js +54 -0
  17. package/dist/hooks/useElement.js.map +1 -0
  18. package/dist/hooks/useGT.d.ts +1 -17
  19. package/dist/hooks/useGT.d.ts.map +1 -1
  20. package/dist/hooks/useGT.js +7 -99
  21. package/dist/hooks/useGT.js.map +1 -1
  22. package/dist/hooks/useLocale.js +3 -9
  23. package/dist/hooks/useLocale.js.map +1 -1
  24. package/dist/index.d.ts +2 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +13 -29
  27. package/dist/index.js.map +1 -1
  28. package/dist/inline/T.d.ts.map +1 -1
  29. package/dist/inline/T.js +56 -57
  30. package/dist/inline/T.js.map +1 -1
  31. package/dist/internal/addGTIdentifier.d.ts +2 -5
  32. package/dist/internal/addGTIdentifier.d.ts.map +1 -1
  33. package/dist/internal/addGTIdentifier.js +15 -52
  34. package/dist/internal/addGTIdentifier.js.map +1 -1
  35. package/dist/internal/flattenDictionary.d.ts +2 -1
  36. package/dist/internal/flattenDictionary.d.ts.map +1 -1
  37. package/dist/internal/flattenDictionary.js +6 -9
  38. package/dist/internal/flattenDictionary.js.map +1 -1
  39. package/dist/internal/writeChildrenAsObjects.d.ts +3 -2
  40. package/dist/internal/writeChildrenAsObjects.d.ts.map +1 -1
  41. package/dist/internal/writeChildrenAsObjects.js +8 -12
  42. package/dist/internal/writeChildrenAsObjects.js.map +1 -1
  43. package/dist/internal.d.ts +2 -3
  44. package/dist/internal.d.ts.map +1 -1
  45. package/dist/internal.js +14 -68
  46. package/dist/internal.js.map +1 -1
  47. package/dist/messages/createMessages.d.ts +17 -0
  48. package/dist/messages/createMessages.d.ts.map +1 -0
  49. package/dist/messages/createMessages.js +27 -0
  50. package/dist/messages/createMessages.js.map +1 -0
  51. package/dist/provider/GTContext.js +4 -8
  52. package/dist/provider/GTContext.js.map +1 -1
  53. package/dist/provider/GTProvider.d.ts +3 -3
  54. package/dist/provider/GTProvider.d.ts.map +1 -1
  55. package/dist/provider/GTProvider.js +167 -158
  56. package/dist/provider/GTProvider.js.map +1 -1
  57. package/dist/provider/helpers/extractEntryMetadata.js +1 -4
  58. package/dist/provider/helpers/extractEntryMetadata.js.map +1 -1
  59. package/dist/provider/helpers/getDictionaryEntry.d.ts +2 -2
  60. package/dist/provider/helpers/getDictionaryEntry.d.ts.map +1 -1
  61. package/dist/provider/helpers/getDictionaryEntry.js +7 -13
  62. package/dist/provider/helpers/getDictionaryEntry.js.map +1 -1
  63. package/dist/provider/helpers/getGTProp.js +1 -4
  64. package/dist/provider/helpers/getGTProp.js.map +1 -1
  65. package/dist/provider/helpers/isValidDictionaryEntry.js +1 -2
  66. package/dist/provider/helpers/isVariableObject.js +1 -4
  67. package/dist/provider/helpers/isVariableObject.js.map +1 -1
  68. package/dist/provider/rendering/defaultRenderSettings.js +1 -4
  69. package/dist/provider/rendering/defaultRenderSettings.js.map +1 -1
  70. package/dist/provider/rendering/renderDefaultChildren.js +17 -23
  71. package/dist/provider/rendering/renderDefaultChildren.js.map +1 -1
  72. package/dist/provider/rendering/renderSkeleton.js +14 -20
  73. package/dist/provider/rendering/renderSkeleton.js.map +1 -1
  74. package/dist/provider/rendering/renderTranslatedChildren.js +36 -42
  75. package/dist/provider/rendering/renderTranslatedChildren.js.map +1 -1
  76. package/dist/provider/rendering/renderVariable.js +10 -16
  77. package/dist/provider/rendering/renderVariable.js.map +1 -1
  78. package/dist/provider/runtime/useRuntimeTranslation.d.ts +15 -0
  79. package/dist/provider/runtime/useRuntimeTranslation.d.ts.map +1 -0
  80. package/dist/provider/runtime/useRuntimeTranslation.js +225 -0
  81. package/dist/provider/runtime/useRuntimeTranslation.js.map +1 -0
  82. package/dist/translate/translateDictionaryStrings.d.ts +3 -0
  83. package/dist/translate/translateDictionaryStrings.d.ts.map +1 -0
  84. package/dist/translate/translateDictionaryStrings.js +97 -0
  85. package/dist/translate/translateDictionaryStrings.js.map +1 -0
  86. package/dist/types/types.d.ts +54 -23
  87. package/dist/types/types.d.ts.map +1 -1
  88. package/dist/types/types.js +28 -2
  89. package/dist/types/types.js.map +1 -1
  90. package/dist/utils/utils.d.ts +3 -2
  91. package/dist/utils/utils.d.ts.map +1 -1
  92. package/dist/utils/utils.js +20 -13
  93. package/dist/utils/utils.js.map +1 -1
  94. package/dist/variables/Currency.js +8 -13
  95. package/dist/variables/Currency.js.map +1 -1
  96. package/dist/variables/DateTime.js +8 -13
  97. package/dist/variables/DateTime.js.map +1 -1
  98. package/dist/variables/Num.js +8 -13
  99. package/dist/variables/Num.js.map +1 -1
  100. package/dist/variables/Var.js +3 -5
  101. package/dist/variables/Var.js.map +1 -1
  102. package/dist/variables/_getVariableProps.js +3 -9
  103. package/dist/variables/_getVariableProps.js.map +1 -1
  104. package/dist/variables/getVariableName.js +4 -9
  105. package/dist/variables/getVariableName.js.map +1 -1
  106. package/package.json +2 -3
  107. package/tsconfig.json +1 -1
package/dist/internal.js CHANGED
@@ -1,69 +1,15 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.isTranslationError = exports.defaultRenderSettings = exports.renderSkeleton = exports.renderTranslatedChildren = exports.renderDefaultChildren = exports.getFallbackVariableName = exports.getVariableName = exports.extractEntryMetadata = exports.getPluralBranch = exports.getVariableProps = exports.getDictionaryEntry = exports.flattenDictionary = exports.isVariableObject = exports.writeChildrenAsObjects = exports.addGTIdentifier = void 0;
40
- var flattenDictionary_1 = __importDefault(require("./internal/flattenDictionary"));
41
- exports.flattenDictionary = flattenDictionary_1.default;
42
- var addGTIdentifier_1 = __importDefault(require("./internal/addGTIdentifier"));
43
- exports.addGTIdentifier = addGTIdentifier_1.default;
44
- var writeChildrenAsObjects_1 = __importDefault(require("./internal/writeChildrenAsObjects"));
45
- exports.writeChildrenAsObjects = writeChildrenAsObjects_1.default;
46
- var getPluralBranch_1 = __importDefault(require("./branches/plurals/getPluralBranch"));
47
- exports.getPluralBranch = getPluralBranch_1.default;
48
- var getDictionaryEntry_1 = __importDefault(require("./provider/helpers/getDictionaryEntry"));
49
- exports.getDictionaryEntry = getDictionaryEntry_1.default;
50
- var extractEntryMetadata_1 = __importDefault(require("./provider/helpers/extractEntryMetadata"));
51
- exports.extractEntryMetadata = extractEntryMetadata_1.default;
52
- var _getVariableProps_1 = __importDefault(require("./variables/_getVariableProps"));
53
- exports.getVariableProps = _getVariableProps_1.default;
54
- var isVariableObject_1 = __importDefault(require("./provider/helpers/isVariableObject"));
55
- exports.isVariableObject = isVariableObject_1.default;
56
- var getVariableName_1 = __importStar(require("./variables/getVariableName"));
57
- exports.getVariableName = getVariableName_1.default;
58
- Object.defineProperty(exports, "getFallbackVariableName", { enumerable: true, get: function () { return getVariableName_1.getFallbackVariableName; } });
59
- var renderDefaultChildren_1 = __importDefault(require("./provider/rendering/renderDefaultChildren"));
60
- exports.renderDefaultChildren = renderDefaultChildren_1.default;
61
- var renderTranslatedChildren_1 = __importDefault(require("./provider/rendering/renderTranslatedChildren"));
62
- exports.renderTranslatedChildren = renderTranslatedChildren_1.default;
63
- var defaultRenderSettings_1 = require("./provider/rendering/defaultRenderSettings");
64
- Object.defineProperty(exports, "defaultRenderSettings", { enumerable: true, get: function () { return defaultRenderSettings_1.defaultRenderSettings; } });
65
- var renderSkeleton_1 = __importDefault(require("./provider/rendering/renderSkeleton"));
66
- exports.renderSkeleton = renderSkeleton_1.default;
67
- var utils_1 = require("./utils/utils");
68
- Object.defineProperty(exports, "isTranslationError", { enumerable: true, get: function () { return utils_1.isTranslationError; } });
1
+ import flattenDictionary from "./internal/flattenDictionary";
2
+ import addGTIdentifier from "./internal/addGTIdentifier";
3
+ import writeChildrenAsObjects from "./internal/writeChildrenAsObjects";
4
+ import getPluralBranch from "./branches/plurals/getPluralBranch";
5
+ import getDictionaryEntry from "./provider/helpers/getDictionaryEntry";
6
+ import extractEntryMetadata from "./provider/helpers/extractEntryMetadata";
7
+ import getVariableProps from './variables/_getVariableProps';
8
+ import isVariableObject from './provider/helpers/isVariableObject';
9
+ import getVariableName, { getFallbackVariableName } from "./variables/getVariableName";
10
+ import renderDefaultChildren from "./provider/rendering/renderDefaultChildren";
11
+ import renderTranslatedChildren from "./provider/rendering/renderTranslatedChildren";
12
+ import { defaultRenderSettings } from "./provider/rendering/defaultRenderSettings";
13
+ import renderSkeleton from "./provider/rendering/renderSkeleton";
14
+ export { addGTIdentifier, writeChildrenAsObjects, isVariableObject, flattenDictionary, getDictionaryEntry, getVariableProps, getPluralBranch, extractEntryMetadata, getVariableName, getFallbackVariableName, renderDefaultChildren, renderTranslatedChildren, renderSkeleton, defaultRenderSettings };
69
15
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mFAA6D;AAiB7C,4BAjBT,2BAAiB,CAiBS;AAhBjC,+EAAyD;AAerD,0BAfG,yBAAe,CAeH;AAdnB,6FAAuE;AAclD,iCAdd,gCAAsB,CAcc;AAb3C,uFAAiE;AAe7D,0BAfG,yBAAe,CAeH;AAdnB,6FAAuE;AAapC,6BAb5B,4BAAkB,CAa4B;AAZrD,iGAA2E;AAatD,+BAbd,8BAAoB,CAac;AAZzC,oFAA6D;AAWN,2BAXhD,2BAAgB,CAWgD;AAVvE,yFAAmE;AAStB,2BATtC,0BAAgB,CASsC;AAR7D,6EAAuF;AAWnF,0BAXG,yBAAe,CAWH;AAAE,wGAXK,yCAAuB,OAWL;AAV5C,qGAA+E;AAW3E,gCAXG,+BAAqB,CAWH;AAVzB,2GAAqF;AAU1D,mCAVpB,kCAAwB,CAUoB;AATnD,oFAAmF;AAWjE,sGAXT,6CAAqB,OAWS;AAVvC,uFAAiE;AAS7D,yBATG,wBAAc,CASH;AAPlB,uCAAmD;AAS8B,mGATxE,0BAAkB,OASwE"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAC7D,OAAO,eAAe,MAAM,4BAA4B,CAAC;AACzD,OAAO,sBAAsB,MAAM,mCAAmC,CAAC;AACvE,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AACvE,OAAO,oBAAoB,MAAM,yCAAyC,CAAC;AAC3E,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,eAAe,EAAE,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,qBAAqB,MAAM,4CAA4C,CAAC;AAC/E,OAAO,wBAAwB,MAAM,+CAA+C,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,cAAc,MAAM,qCAAqC,CAAC;AAEjE,OAAO,EACH,eAAe,EAAE,sBAAsB,EAAE,gBAAgB,EAC7C,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EACnE,eAAe,EAAE,oBAAoB,EACrC,eAAe,EAAE,uBAAuB,EACxC,qBAAqB,EAAE,wBAAwB,EAC/C,cAAc,EACA,qBAAqB,EAGtC,CAAA"}
@@ -0,0 +1,17 @@
1
+ export declare const projectIdMissingError = "gt-react Error: General Translation cloud services require a project ID! Find yours at www.generaltranslation.com/dashboard.";
2
+ export declare const createPluralMissingError: (children: any) => string;
3
+ export declare const createClientSideTWithoutIdError: (children: any) => string;
4
+ export declare const createStringTranslationError: (content: string, id?: string) => string;
5
+ export declare const createClientSideTDictionaryCollisionError: (id: string) => string;
6
+ export declare const createClientSideTHydrationError: (id: string) => string;
7
+ export declare const createNestedDataGTError: (child: any) => string;
8
+ export declare const createNestedTError: (child: any) => string;
9
+ export declare const renderingError = "General Translation: Rendering error.";
10
+ export declare const dynamicTranslationError = "Error fetching batched translations:";
11
+ export declare const createGenericRuntimeTranslationError: (id: string | undefined, hash: string) => string;
12
+ export declare const createLibraryNoEntryWarning: (id: string) => string;
13
+ export declare const createNoEntryWarning: (id: string, prefixedId: string) => string;
14
+ export declare const createInvalidElementEntryWarning: (id: string, prefixedId: string) => string;
15
+ export declare const createMismatchingHashWarning: (expectedHash: string, receivedHash: string) => string;
16
+ export declare const createMismatchingIdHashWarning: (expectedId: string, expectedHash: string, receivedId: string, receivedHash: string) => string;
17
+ //# sourceMappingURL=createMessages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMessages.d.ts","sourceRoot":"","sources":["../../src/messages/createMessages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,iIAAiI,CAAA;AAEnK,eAAO,MAAM,wBAAwB,aAAc,GAAG,WAA0E,CAAA;AAEhI,eAAO,MAAM,+BAA+B,aAAc,GAAG,WAA0E,CAAA;AAEvI,eAAO,MAAM,4BAA4B,YAAa,MAAM,OAAO,MAAM,WAAiG,CAAA;AAE1K,eAAO,MAAM,yCAAyC,OAAQ,MAAM,WAAoI,CAAA;AAExM,eAAO,MAAM,+BAA+B,OAAQ,MAAM,WACuE,CAAA;AAEjI,eAAO,MAAM,uBAAuB,UAAW,GAAG,WAAmM,CAAA;AAErP,eAAO,MAAM,kBAAkB,UAAW,GAAG,WAAmG,CAAA;AAEhJ,eAAO,MAAM,cAAc,0CAA0C,CAAA;AAErE,eAAO,MAAM,uBAAuB,yCAAyC,CAAA;AAE7E,eAAO,MAAM,oCAAoC,OAAQ,MAAM,GAAG,SAAS,QAAQ,MAAM,WAMxF,CAAA;AAID,eAAO,MAAM,2BAA2B,OAAQ,MAAM,WAA0D,CAAA;AAEhH,eAAO,MAAM,oBAAoB,OAAQ,MAAM,cAAc,MAAM,WAA4E,CAAA;AAE/I,eAAO,MAAM,gCAAgC,OAAQ,MAAM,cAAc,MAAM,WAA6J,CAAA;AAE5O,eAAO,MAAM,4BAA4B,iBAAkB,MAAM,gBAAgB,MAAM,WAA+M,CAAA;AAEtS,eAAO,MAAM,8BAA8B,eAAgB,MAAM,gBAAgB,MAAM,cAAc,MAAM,gBAAgB,MAAM,WAA4P,CAAA"}
@@ -0,0 +1,27 @@
1
+ // ---- ERRORS ---- //
2
+ export var projectIdMissingError = 'gt-react Error: General Translation cloud services require a project ID! Find yours at www.generaltranslation.com/dashboard.';
3
+ export var createPluralMissingError = function (children) { return "<Plural> component with children \"".concat(children, "\" requires \"n\" option."); };
4
+ export var createClientSideTWithoutIdError = function (children) { return "Client-side <T> with no provided 'id' prop. Children: \"".concat(children, "\""); };
5
+ export var createStringTranslationError = function (content, id) { return "gt-next string translation error. tx(\"".concat(content, "\")").concat(id ? " with id \"".concat(id, "\"") : '', " failed."); };
6
+ export var createClientSideTDictionaryCollisionError = function (id) { return "<T id=\"".concat(id, "\">, \"").concat(id, "\" is also used as a key in the dictionary. Don't give <T> components the same ID as dictionary entries."); };
7
+ export var createClientSideTHydrationError = function (id) { return "<T id=\"".concat(id, "\"> is used in a client component without a valid saved translation. This can cause hydration errors.")
8
+ + "\n\nTo fix this error, consider using a dictionary with useGT() or pushing translations from the command line in advance."; };
9
+ export var createNestedDataGTError = function (child) { return "General Translation already in use on child with props: ".concat(child.props, ". This usually occurs when you nest <T> components within the same file. Remove one of the <T> components to continue."); };
10
+ export var createNestedTError = function (child) { var _a; return "General Translation: Nested <T> components. The inner <T> has the id: \"".concat((_a = child === null || child === void 0 ? void 0 : child.props) === null || _a === void 0 ? void 0 : _a.id, "\"."); };
11
+ export var renderingError = 'General Translation: Rendering error.';
12
+ export var dynamicTranslationError = "Error fetching batched translations:";
13
+ export var createGenericRuntimeTranslationError = function (id, hash) {
14
+ if (!id) {
15
+ return "Translation failed for hash: ".concat(hash);
16
+ }
17
+ else {
18
+ return "Translation failed for id: ".concat(id, ", hash: ").concat(hash, " ");
19
+ }
20
+ };
21
+ // ---- WARNINGS ---- //
22
+ export var createLibraryNoEntryWarning = function (id) { return "gt-react: No dictionary entry found for id: \"".concat(id, "\""); };
23
+ export var createNoEntryWarning = function (id, prefixedId) { return "t('".concat(id, "') finding no translation for dictionary item ").concat(prefixedId, " !"); };
24
+ export var createInvalidElementEntryWarning = function (id, prefixedId) { return "t('".concat(id, "') invalid dictionary entry for ").concat(prefixedId, " ! useElement() can only be used to render JSX elements. Strings and other types are not allowed."); };
25
+ export var createMismatchingHashWarning = function (expectedHash, receivedHash) { return "Mismatching hashes! Expected hash: ".concat(expectedHash, ", but got hash: ").concat(receivedHash, ". We will still render your translation, but make sure to update to the newest version: www.generaltranslation.com/docs"); };
26
+ export var createMismatchingIdHashWarning = function (expectedId, expectedHash, receivedId, receivedHash) { return "Mismatching ids or hashes! Expected id: ".concat(expectedId, ", hash: ").concat(expectedHash, ", but got id: ").concat(receivedId, ", hash: ").concat(receivedHash, ". We will still render your translation, but make sure to update to the newest version: www.generaltranslation.com/docs"); };
27
+ //# sourceMappingURL=createMessages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMessages.js","sourceRoot":"","sources":["../../src/messages/createMessages.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,MAAM,CAAC,IAAM,qBAAqB,GAAG,8HAA8H,CAAA;AAEnK,MAAM,CAAC,IAAM,wBAAwB,GAAG,UAAC,QAAa,IAAK,OAAA,6CAAqC,QAAQ,8BAAwB,EAArE,CAAqE,CAAA;AAEhI,MAAM,CAAC,IAAM,+BAA+B,GAAG,UAAC,QAAa,IAAK,OAAA,kEAA0D,QAAQ,OAAG,EAArE,CAAqE,CAAA;AAEvI,MAAM,CAAC,IAAM,4BAA4B,GAAG,UAAC,OAAe,EAAE,EAAW,IAAK,OAAA,iDAAyC,OAAO,gBAAK,EAAE,CAAC,CAAC,CAAC,qBAAa,EAAE,OAAG,CAAC,CAAC,CAAC,EAAE,aAAW,EAA5F,CAA4F,CAAA;AAE1K,MAAM,CAAC,IAAM,yCAAyC,GAAG,UAAC,EAAU,IAAK,OAAA,kBAAU,EAAE,oBAAQ,EAAE,6GAAyG,EAA/H,CAA+H,CAAA;AAExM,MAAM,CAAC,IAAM,+BAA+B,GAAG,UAAC,EAAU,IAAK,OAAA,kBAAU,EAAE,0GAAsG;MAC3K,2HAA2H,EADlE,CACkE,CAAA;AAEjI,MAAM,CAAC,IAAM,uBAAuB,GAAG,UAAC,KAAU,IAAK,OAAA,kEAA2D,KAAK,CAAC,KAAK,2HAAwH,EAA9L,CAA8L,CAAA;AAErP,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,KAAU,YAAK,OAAA,kFAA0E,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,EAAE,QAAI,CAAA,EAAA,CAAA;AAEhJ,MAAM,CAAC,IAAM,cAAc,GAAG,uCAAuC,CAAA;AAErE,MAAM,CAAC,IAAM,uBAAuB,GAAG,sCAAsC,CAAA;AAE7E,MAAM,CAAC,IAAM,oCAAoC,GAAG,UAAC,EAAsB,EAAE,IAAY;IACrF,IAAI,CAAC,EAAE,EAAE,CAAC;QACN,OAAO,uCAAgC,IAAI,CAAE,CAAC;IAClD,CAAC;SAAM,CAAC;QACJ,OAAO,qCAA8B,EAAE,qBAAW,IAAI,MAAG,CAAC;IAC9D,CAAC;AACL,CAAC,CAAA;AAED,wBAAwB;AAExB,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,EAAU,IAAK,OAAA,wDAAgD,EAAE,OAAG,EAArD,CAAqD,CAAA;AAEhH,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,EAAU,EAAE,UAAkB,IAAK,OAAA,aAAM,EAAE,2DAAiD,UAAU,OAAI,EAAvE,CAAuE,CAAA;AAE/I,MAAM,CAAC,IAAM,gCAAgC,GAAG,UAAC,EAAU,EAAE,UAAkB,IAAK,OAAA,aAAM,EAAE,6CAAmC,UAAU,sGAAmG,EAAxJ,CAAwJ,CAAA;AAE5O,MAAM,CAAC,IAAM,4BAA4B,GAAG,UAAC,YAAoB,EAAE,YAAoB,IAAK,OAAA,6CAAsC,YAAY,6BAAmB,YAAY,4HAAyH,EAA1M,CAA0M,CAAA;AAEtS,MAAM,CAAC,IAAM,8BAA8B,GAAG,UAAC,UAAkB,EAAE,YAAoB,EAAE,UAAkB,EAAE,YAAoB,IAAK,OAAA,kDAA2C,UAAU,qBAAW,YAAY,2BAAiB,UAAU,qBAAW,YAAY,4HAAyH,EAAvP,CAAuP,CAAA"}
@@ -1,13 +1,9 @@
1
- "use strict";
2
1
  'use client';
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.GTContext = void 0;
5
- exports.default = useGTContext;
6
- var react_1 = require("react");
7
- exports.GTContext = (0, react_1.createContext)(undefined);
8
- function useGTContext(errorString) {
2
+ import { createContext, useContext } from "react";
3
+ export var GTContext = createContext(undefined);
4
+ export default function useGTContext(errorString) {
9
5
  if (errorString === void 0) { errorString = 'useGTContext() must be used within a <GTProvider>!'; }
10
- var context = (0, react_1.useContext)(exports.GTContext);
6
+ var context = useContext(GTContext);
11
7
  if (typeof context === 'undefined') {
12
8
  throw new Error(errorString);
13
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GTContext.js","sourceRoot":"","sources":["../../src/provider/GTContext.ts"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;AAQZ,+BAMC;AAZD,+BAAkD;AAIrC,QAAA,SAAS,GAAG,IAAA,qBAAa,EAA4B,SAAS,CAAC,CAAC;AAE7E,SAAwB,YAAY,CAAC,WAAkE;IAAlE,4BAAA,EAAA,kEAAkE;IACnG,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,iBAAS,CAAC,CAAC;IACtC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAAA,CAAC"}
1
+ {"version":3,"file":"GTContext.js","sourceRoot":"","sources":["../../src/provider/GTContext.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAIlD,MAAM,CAAC,IAAM,SAAS,GAAG,aAAa,CAA4B,SAAS,CAAC,CAAC;AAE7E,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,WAAkE;IAAlE,4BAAA,EAAA,kEAAkE;IACnG,IAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAAA,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Dictionary, RenderMethod } from "../types/types";
1
+ import { RenderMethod } from "../types/types";
2
2
  import React from "react";
3
3
  /**
4
4
  * Provides General Translation context to its children, which can then access `useGT`, `useLocale`, and `useDefaultLocale`.
@@ -14,9 +14,9 @@ import React from "react";
14
14
  * @returns {JSX.Element} The provider component for General Translation context.
15
15
  */
16
16
  export default function GTProvider({ children, projectId, dictionary, locales, defaultLocale, locale, cacheUrl, runtimeUrl, renderSettings, devApiKey, ...metadata }: {
17
- children?: any;
17
+ children?: React.ReactNode;
18
18
  projectId: string;
19
- dictionary?: Dictionary;
19
+ dictionary?: any;
20
20
  locales?: string[];
21
21
  defaultLocale?: string;
22
22
  locale?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"GTProvider.d.ts","sourceRoot":"","sources":["../../src/provider/GTProvider.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,UAAU,EACV,YAAY,EAIb,MAAM,gBAAgB,CAAC;AAqBxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,QAAQ,EACR,SAAS,EACT,UAAe,EACf,OAAgC,EAChC,aAAoC,EACpC,MAAkE,EAClE,QAA0B,EAC1B,UAAiC,EACjC,cAAsC,EACtC,SAAS,EACT,GAAG,QAAQ,EACZ,EAAE;IACC,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE;QACb,MAAM,EAAE,YAAY,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAyLpB"}
1
+ {"version":3,"file":"GTProvider.d.ts","sourceRoot":"","sources":["../../src/provider/GTProvider.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEL,YAAY,EAGb,MAAM,gBAAgB,CAAC;AAgBxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,QAAQ,EACR,SAAS,EACT,UAAe,EACf,OAAgC,EAChC,aAAoC,EACpC,MAAkE,EAClE,QAA0B,EAC1B,UAAiC,EACjC,cAAsC,EACtC,SAAS,EACT,GAAG,QAAQ,EACZ,EAAE;IACC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE;QACb,MAAM,EAAE,YAAY,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA0NpB"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __assign = (this && this.__assign) || function () {
3
2
  __assign = Object.assign || function(t) {
4
3
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -57,30 +56,22 @@ var __rest = (this && this.__rest) || function (s, e) {
57
56
  }
58
57
  return t;
59
58
  };
60
- var __importDefault = (this && this.__importDefault) || function (mod) {
61
- return (mod && mod.__esModule) ? mod : { "default": mod };
62
- };
63
- Object.defineProperty(exports, "__esModule", { value: true });
64
- exports.default = GTProvider;
65
- var jsx_runtime_1 = require("react/jsx-runtime");
66
- var react_1 = require("react");
67
- var generaltranslation_1 = require("generaltranslation");
68
- var react_2 = require("react");
69
- var useBrowserLocale_1 = __importDefault(require("../hooks/useBrowserLocale"));
70
- var GTContext_1 = require("./GTContext");
71
- var getDictionaryEntry_1 = __importDefault(require("./helpers/getDictionaryEntry"));
72
- var internal_1 = require("../internal");
73
- var extractEntryMetadata_1 = __importDefault(require("./helpers/extractEntryMetadata"));
74
- var renderDefaultChildren_1 = __importDefault(require("./rendering/renderDefaultChildren"));
75
- var renderTranslatedChildren_1 = __importDefault(require("./rendering/renderTranslatedChildren"));
76
- var internal_2 = require("generaltranslation/internal");
77
- var renderVariable_1 = __importDefault(require("./rendering/renderVariable"));
78
- var createErrors_1 = require("../errors/createErrors");
79
- var supported_locales_1 = require("@generaltranslation/supported-locales");
80
- var useRuntimeTranslation_1 = __importDefault(require("./dynamic/useRuntimeTranslation"));
81
- var defaultRenderSettings_1 = require("./rendering/defaultRenderSettings");
82
- var id_1 = require("generaltranslation/id");
83
- var renderSkeleton_1 = __importDefault(require("./rendering/renderSkeleton"));
59
+ import { jsx as _jsx } from "react/jsx-runtime";
60
+ import { useMemo } from "react";
61
+ import { isSameLanguage, renderContentToString, requiresTranslation, splitStringToContent } from "generaltranslation";
62
+ import { useCallback, useEffect, useState } from "react";
63
+ import useBrowserLocale from "../hooks/useBrowserLocale";
64
+ import { GTContext } from "./GTContext";
65
+ import getDictionaryEntry from "./helpers/getDictionaryEntry";
66
+ import { flattenDictionary } from "../internal";
67
+ import extractEntryMetadata from "./helpers/extractEntryMetadata";
68
+ import { defaultCacheUrl, defaultRuntimeApiUrl, libraryDefaultLocale, } from "generaltranslation/internal";
69
+ import { projectIdMissingError } from "../messages/createMessages";
70
+ import { listSupportedLocales } from "@generaltranslation/supported-locales";
71
+ import useRuntimeTranslation from "./runtime/useRuntimeTranslation";
72
+ import { defaultRenderSettings } from "./rendering/defaultRenderSettings";
73
+ import { hashJsxChildren } from "generaltranslation/id";
74
+ import T from "../inline/T";
84
75
  /**
85
76
  * Provides General Translation context to its children, which can then access `useGT`, `useLocale`, and `useDefaultLocale`.
86
77
  *
@@ -94,11 +85,11 @@ var renderSkeleton_1 = __importDefault(require("./rendering/renderSkeleton"));
94
85
  *
95
86
  * @returns {JSX.Element} The provider component for General Translation context.
96
87
  */
97
- function GTProvider(_a) {
88
+ export default function GTProvider(_a) {
98
89
  var _this = this;
99
- var children = _a.children, projectId = _a.projectId, _b = _a.dictionary, dictionary = _b === void 0 ? {} : _b, _c = _a.locales, locales = _c === void 0 ? (0, supported_locales_1.listSupportedLocales)() : _c, _d = _a.defaultLocale, defaultLocale = _d === void 0 ? internal_2.libraryDefaultLocale : _d, _e = _a.locale, locale = _e === void 0 ? (0, useBrowserLocale_1.default)(defaultLocale, locales) || defaultLocale : _e, _f = _a.cacheUrl, cacheUrl = _f === void 0 ? internal_2.defaultCacheUrl : _f, _g = _a.runtimeUrl, runtimeUrl = _g === void 0 ? internal_2.defaultRuntimeApiUrl : _g, _h = _a.renderSettings, renderSettings = _h === void 0 ? defaultRenderSettings_1.defaultRenderSettings : _h, devApiKey = _a.devApiKey, metadata = __rest(_a, ["children", "projectId", "dictionary", "locales", "defaultLocale", "locale", "cacheUrl", "runtimeUrl", "renderSettings", "devApiKey"]);
100
- if (!projectId && (cacheUrl === internal_2.defaultCacheUrl || runtimeUrl === internal_2.defaultRuntimeApiUrl)) {
101
- throw new Error(createErrors_1.projectIdMissingError);
90
+ var children = _a.children, projectId = _a.projectId, _b = _a.dictionary, dictionary = _b === void 0 ? {} : _b, _c = _a.locales, locales = _c === void 0 ? listSupportedLocales() : _c, _d = _a.defaultLocale, defaultLocale = _d === void 0 ? libraryDefaultLocale : _d, _e = _a.locale, locale = _e === void 0 ? useBrowserLocale(defaultLocale, locales) || defaultLocale : _e, _f = _a.cacheUrl, cacheUrl = _f === void 0 ? defaultCacheUrl : _f, _g = _a.runtimeUrl, runtimeUrl = _g === void 0 ? defaultRuntimeApiUrl : _g, _h = _a.renderSettings, renderSettings = _h === void 0 ? defaultRenderSettings : _h, devApiKey = _a.devApiKey, metadata = __rest(_a, ["children", "projectId", "dictionary", "locales", "defaultLocale", "locale", "cacheUrl", "runtimeUrl", "renderSettings", "devApiKey"]);
91
+ if (!projectId && (cacheUrl === defaultCacheUrl || runtimeUrl === defaultRuntimeApiUrl)) {
92
+ throw new Error(projectIdMissingError);
102
93
  }
103
94
  ;
104
95
  // disable subtle for development
@@ -107,153 +98,171 @@ function GTProvider(_a) {
107
98
  renderSettings.method = 'default';
108
99
  }
109
100
  // get tx required info
110
- var _j = (0, react_1.useMemo)(function () {
111
- var regionalTranslation = (0, generaltranslation_1.requiresRegionalTranslation)(defaultLocale, locale, locales);
112
- return [(0, generaltranslation_1.requiresTranslation)(defaultLocale, locale, locales) || regionalTranslation, regionalTranslation];
113
- }, [defaultLocale, locale, locales]), translationRequired = _j[0], regionalTranslationRequired = _j[1];
101
+ var _j = useMemo(function () {
102
+ var translationRequired = requiresTranslation(defaultLocale, locale, locales);
103
+ var dialectTranslationRequired = translationRequired && isSameLanguage(defaultLocale, locale);
104
+ return [translationRequired, dialectTranslationRequired];
105
+ }, [defaultLocale, locale, locales]), translationRequired = _j[0], dialectTranslationRequired = _j[1];
114
106
  // tracking translations
115
- var _k = (0, react_2.useState)(cacheUrl ? null : {}), translations = _k[0], setTranslations = _k[1];
116
- // fetch from cache
117
- (0, react_2.useEffect)(function () {
118
- if (!translations) {
119
- if (!translationRequired) {
120
- setTranslations({}); // no translation required
121
- }
122
- else {
123
- (function () { return __awaiter(_this, void 0, void 0, function () {
124
- var response, result, error_1;
125
- return __generator(this, function (_a) {
126
- switch (_a.label) {
127
- case 0:
128
- _a.trys.push([0, 3, , 4]);
129
- return [4 /*yield*/, fetch("".concat(cacheUrl, "/").concat(projectId, "/").concat(locale))];
130
- case 1:
131
- response = _a.sent();
132
- return [4 /*yield*/, response.json()];
133
- case 2:
134
- result = _a.sent();
135
- setTranslations(result);
136
- return [3 /*break*/, 4];
137
- case 3:
138
- error_1 = _a.sent();
139
- setTranslations({}); // not classified as a tx error, bc we can still fetch from API
140
- return [3 /*break*/, 4];
141
- case 4: return [2 /*return*/];
142
- }
143
- });
144
- }); })();
145
- }
146
- }
147
- }, [translationRequired, cacheUrl, projectId, locale]);
148
- // translate function for dictionaries
149
- var translate = (0, react_2.useCallback)(function (id, options) {
107
+ /** Key for translation tracking:
108
+ * Cache Loading -> translations = null
109
+ * Cache Fail (for locale) -> translations = {}
110
+ * Cache Fail (for id) -> translations[id] = undefined
111
+ * Cache Fail (for hash) -> translations[id][hash] = undefined
112
+ *
113
+ * API Loading -> translations[id][hash] = TranslationLoading
114
+ * API Fail (for batch) -> translations[id][hash] = TranslationError
115
+ * API Fail (for hash) -> translations[id][hash] = TranslationError
116
+ *
117
+ * Success (Cache/API) -> translations[id][hash] = TranslationSuccess
118
+ *
119
+ * Possible scenarios:
120
+ * Cache Loading -> Success
121
+ * Cache Loading -> Cache Fail -> API Loading -> Success
122
+ * Cache Loading -> Cache Fail -> API Loading -> API Fail
123
+ */
124
+ var _k = useState((cacheUrl && translationRequired) ? null : {}), translations = _k[0], setTranslations = _k[1];
125
+ // ----- CHECK CACHE FOR TX ----- //
126
+ useEffect(function () {
127
+ // check if cache fetch is necessary
128
+ if (translations || !translationRequired)
129
+ return;
130
+ // fetch translations from cache
131
+ (function () { return __awaiter(_this, void 0, void 0, function () {
132
+ var response, result, parsedResult, error_1;
133
+ return __generator(this, function (_a) {
134
+ switch (_a.label) {
135
+ case 0:
136
+ _a.trys.push([0, 3, , 4]);
137
+ return [4 /*yield*/, fetch("".concat(cacheUrl, "/").concat(projectId, "/").concat(locale))];
138
+ case 1:
139
+ response = _a.sent();
140
+ return [4 /*yield*/, response.json()];
141
+ case 2:
142
+ result = _a.sent();
143
+ parsedResult = Object.entries(result).reduce(function (acc, _a) {
144
+ var id = _a[0], hashToTranslation = _a[1];
145
+ acc[id] = Object.entries(hashToTranslation).reduce(function (acc, _a) {
146
+ var hash = _a[0], content = _a[1];
147
+ acc[hash] = { state: 'success', entry: content };
148
+ return acc;
149
+ }, {});
150
+ return acc;
151
+ }, {});
152
+ setTranslations(parsedResult);
153
+ return [3 /*break*/, 4];
154
+ case 3:
155
+ error_1 = _a.sent();
156
+ setTranslations({}); // not classified as a tx error, bc we can still fetch from API
157
+ return [3 /*break*/, 4];
158
+ case 4: return [2 /*return*/];
159
+ }
160
+ });
161
+ }); })();
162
+ }, [translations, translationRequired, cacheUrl, projectId, locale]);
163
+ // ----- PERFORM DICTIONARY TRANSLATION ----- //
164
+ // Flatten dictionaries for processing while waiting for translations
165
+ var flattenedDictionary = useMemo(function () { return flattenDictionary(dictionary); }, [dictionary]);
166
+ var stringData = useMemo(function () {
167
+ if (!translationRequired)
168
+ return {};
169
+ return Object.entries(flattenedDictionary).filter(function (_a) {
170
+ var _ = _a[0], entryWithMetadata = _a[1];
171
+ var entry = extractEntryMetadata(entryWithMetadata).entry;
172
+ if (typeof entry === 'string')
173
+ return true;
174
+ }).reduce(function (acc, _a) {
175
+ var id = _a[0], entryWithMetadata = _a[1];
176
+ var _b = extractEntryMetadata(entryWithMetadata), entry = _b.entry, metadata = _b.metadata;
177
+ var context = metadata === null || metadata === void 0 ? void 0 : metadata.context;
178
+ var source = splitStringToContent(entry);
179
+ var hash = hashJsxChildren(__assign({ source: source }, (context && { context: context })));
180
+ acc[id] = { source: source, hash: hash };
181
+ return acc;
182
+ }, {});
183
+ }, [flattenedDictionary, translationRequired]);
184
+ var _l = useMemo(function () {
185
+ var stringIsLoading = false;
186
+ var unresolvedDictionaryStringsAndHashes = Object.entries(stringData).filter(function (_a) {
187
+ var _b, _c, _d;
188
+ var id = _a[0], hash = _a[1].hash;
189
+ if (((_c = (_b = translations === null || translations === void 0 ? void 0 : translations[id]) === null || _b === void 0 ? void 0 : _b[hash]) === null || _c === void 0 ? void 0 : _c.state) === 'loading')
190
+ stringIsLoading = true;
191
+ return !((_d = translations === null || translations === void 0 ? void 0 : translations[id]) === null || _d === void 0 ? void 0 : _d[hash]);
192
+ });
193
+ var dictionaryStringsResolved = !stringIsLoading && unresolvedDictionaryStringsAndHashes.length === 0;
194
+ return [unresolvedDictionaryStringsAndHashes, dictionaryStringsResolved];
195
+ }, [translations, stringData]), unresolvedDictionaryStringsAndHashes = _l[0], dictionaryStringsResolved = _l[1];
196
+ // do translation strings (API)
197
+ // this useEffect is for translating strings in the dictionary before the page loads
198
+ // page will block until strings are loaded (so errors or translations)
199
+ useEffect(function () {
200
+ // tx required or dict strings already resolved
201
+ if (!translationRequired || !unresolvedDictionaryStringsAndHashes.length)
202
+ return;
203
+ // iterate through unresolvedDictionaryStringsAndHashes
204
+ unresolvedDictionaryStringsAndHashes.forEach(function (_a) {
205
+ var id = _a[0], _b = _a[1], hash = _b.hash, source = _b.source;
206
+ var metadata = extractEntryMetadata(flattenedDictionary[id]).metadata;
207
+ // Translate the content
208
+ translateContent({
209
+ source: source,
210
+ targetLocale: locale,
211
+ metadata: __assign(__assign({}, metadata), { id: id, hash: hash })
212
+ });
213
+ });
214
+ // is this already translated? if so, skip
215
+ }, [translationRequired, unresolvedDictionaryStringsAndHashes, flattenedDictionary]);
216
+ // ----- TRANSLATE FUNCTION FOR DICTIONARIES ----- //
217
+ var translateDictionaryEntry = useCallback(function (id, options) {
218
+ // ----- SETUP ----- //
150
219
  var _a;
151
220
  if (options === void 0) { options = {}; }
152
221
  // get the dictionary entry
153
- var dictionaryEntry = (0, getDictionaryEntry_1.default)(dictionary, id);
154
- if (dictionaryEntry === undefined ||
155
- dictionaryEntry === null ||
156
- (typeof dictionaryEntry === "object" && !Array.isArray(dictionaryEntry))) {
157
- console.warn((0, createErrors_1.createLibraryNoEntryWarning)(id));
158
- return undefined;
222
+ var dictionaryEntry = getDictionaryEntry(flattenedDictionary, id);
223
+ if (dictionaryEntry === undefined) {
224
+ return undefined; // dictionary entry not found
159
225
  }
160
- var _b = (0, extractEntryMetadata_1.default)(dictionaryEntry), entry = _b.entry, metadata = _b.metadata;
161
- // Get variables and variable options
226
+ // Parse the dictionary entry
227
+ var _b = extractEntryMetadata(dictionaryEntry), entry = _b.entry, metadata = _b.metadata;
162
228
  var variables = options;
163
229
  var variablesOptions = metadata === null || metadata === void 0 ? void 0 : metadata.variablesOptions;
164
- var taggedEntry = (0, internal_1.addGTIdentifier)(entry, id);
165
- // ----- RENDER METHODS ----- //
166
- // render default locale string
167
- var renderDefaultContent = function () {
168
- return (0, generaltranslation_1.renderContentToString)(taggedEntry, defaultLocale, variables, variablesOptions);
169
- };
170
- // render default locale
171
- var renderDefaultLocale = function () {
172
- if (typeof taggedEntry === 'string')
173
- return renderDefaultContent();
174
- return (0, renderDefaultChildren_1.default)({
175
- children: taggedEntry,
176
- variables: variables,
177
- variablesOptions: variablesOptions,
178
- defaultLocale: defaultLocale,
179
- renderVariable: renderVariable_1.default
180
- });
181
- };
182
- // render skeleton
183
- var renderLoadingSkeleton = function () {
184
- if (typeof taggedEntry === 'string')
185
- return renderDefaultContent();
186
- return (0, renderSkeleton_1.default)({
187
- children: taggedEntry,
188
- variables: variables,
189
- defaultLocale: defaultLocale,
190
- renderVariable: renderVariable_1.default
191
- });
192
- };
193
- // default behavior (skeleton except when language is same ie en-US -> en-GB)
194
- var renderDefault = function () {
195
- if (regionalTranslationRequired)
196
- return renderDefaultLocale();
197
- return renderLoadingSkeleton();
198
- };
199
- // render translated content
200
- var renderTranslation = function (target) {
201
- if (typeof taggedEntry === 'string')
202
- return (0, generaltranslation_1.renderContentToString)(target, [locale, defaultLocale], variables, variablesOptions);
203
- return (0, renderTranslatedChildren_1.default)({
204
- source: taggedEntry,
205
- target: target,
206
- variables: variables,
207
- variablesOptions: variablesOptions,
208
- locales: [locale, defaultLocale],
209
- renderVariable: renderVariable_1.default
210
- });
211
- };
212
- // ----- RENDER LOGIC ----- //
213
- // If no translations are required
214
- if (!translationRequired) {
215
- renderDefaultLocale();
216
- }
217
- // get hash
218
- var context = metadata === null || metadata === void 0 ? void 0 : metadata.context;
219
- var childrenAsObjects = (0, internal_1.writeChildrenAsObjects)(taggedEntry);
220
- var hash = (0, id_1.hashJsxChildren)(context
221
- ? { source: childrenAsObjects, context: context }
222
- : { source: childrenAsObjects });
223
- // error behavior -> fallback to default language
224
- if ((0, internal_1.isTranslationError)(translations === null || translations === void 0 ? void 0 : translations[id])) {
225
- return renderDefaultLocale();
226
- }
227
- // loading
228
- if (!translations || !((_a = translations[id]) === null || _a === void 0 ? void 0 : _a[hash])) {
229
- if (renderSettings.method === 'skeleton') {
230
- return renderLoadingSkeleton();
231
- }
232
- if (renderSettings.method === 'replace') {
233
- return renderDefaultLocale();
230
+ // ----- RENDER STRINGS ----- //
231
+ if (typeof entry === 'string') { // render strings
232
+ // no translation required
233
+ var source = splitStringToContent(entry);
234
+ if (!translationRequired) {
235
+ return renderContentToString(source, locales, variables, variablesOptions);
234
236
  }
235
- if (renderSettings.method === 'subtle') {
236
- return renderDefaultLocale();
237
+ // get translation entry
238
+ var context = metadata === null || metadata === void 0 ? void 0 : metadata.context;
239
+ var hash = (metadata === null || metadata === void 0 ? void 0 : metadata.hash) || hashJsxChildren(__assign({ source: source }, (context && { context: context })));
240
+ var translationEntry = (_a = translations === null || translations === void 0 ? void 0 : translations[id]) === null || _a === void 0 ? void 0 : _a[hash];
241
+ // error behavior
242
+ if (!translationEntry || (translationEntry === null || translationEntry === void 0 ? void 0 : translationEntry.state) !== 'success') {
243
+ return renderContentToString(source, locales, variables, variablesOptions);
237
244
  }
238
- return renderDefault(); // default
245
+ // render translated content
246
+ return renderContentToString(translationEntry.entry, [locale, defaultLocale], variables, variablesOptions);
239
247
  }
240
- // render translated content
241
- var target = translations[id][hash];
242
- return renderTranslation(target);
243
- }, [dictionary, translations, translationRequired, defaultLocale]);
244
- var _l = (0, useRuntimeTranslation_1.default)(__assign({ targetLocale: locale, projectId: projectId, defaultLocale: defaultLocale, devApiKey: devApiKey, runtimeUrl: runtimeUrl, setTranslations: setTranslations }, metadata)), translateChildren = _l.translateChildren, translateContent = _l.translateContent, translationEnabled = _l.translationEnabled;
245
- return ((0, jsx_runtime_1.jsx)(GTContext_1.GTContext.Provider, { value: {
246
- translate: translate,
248
+ // ----- RENDER JSX ----- //
249
+ return _jsx(T, __assign({ id: id, variables: variables, variablesOptions: variablesOptions }, metadata, { children: entry }));
250
+ }, [dictionary, translations, translationRequired, defaultLocale, flattenedDictionary, dictionaryStringsResolved]);
251
+ var _m = useRuntimeTranslation(__assign({ targetLocale: locale, projectId: projectId, defaultLocale: defaultLocale, devApiKey: devApiKey, runtimeUrl: runtimeUrl, setTranslations: setTranslations }, metadata)), translateChildren = _m.translateChildren, translateContent = _m.translateContent, translationEnabled = _m.translationEnabled;
252
+ // hang until cache response, then render translations or loading state (when waiting on API response)
253
+ return (_jsx(GTContext.Provider, { value: {
254
+ translateDictionaryEntry: translateDictionaryEntry,
247
255
  translateContent: translateContent,
248
256
  translateChildren: translateChildren,
249
257
  locale: locale,
250
258
  defaultLocale: defaultLocale,
259
+ dictionary: dictionary,
251
260
  translations: translations,
252
261
  translationRequired: translationRequired,
253
- regionalTranslationRequired: regionalTranslationRequired,
262
+ dialectTranslationRequired: dialectTranslationRequired,
254
263
  projectId: projectId,
255
264
  translationEnabled: translationEnabled,
256
265
  renderSettings: renderSettings,
257
- }, children: children }));
266
+ }, children: dictionaryStringsResolved && translations && children }));
258
267
  }
259
268
  //# sourceMappingURL=GTProvider.js.map