gt-react 5.0.2 → 5.0.4

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 (89) hide show
  1. package/dist/branches/Branch.js +41 -0
  2. package/dist/branches/Branch.js.map +1 -0
  3. package/dist/branches/plurals/Plural.js +48 -0
  4. package/dist/branches/plurals/Plural.js.map +1 -0
  5. package/dist/branches/plurals/getPluralBranch.js +75 -0
  6. package/dist/branches/plurals/getPluralBranch.js.map +1 -0
  7. package/dist/client.d.ts +6 -67
  8. package/dist/client.js +6 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/cookies/getLocaleCookie.js +25 -0
  11. package/dist/cookies/getLocaleCookie.js.map +1 -0
  12. package/dist/hooks/useBrowserLocale.js +41 -0
  13. package/dist/hooks/useBrowserLocale.js.map +1 -0
  14. package/dist/hooks/useDefaultLocale.js +16 -0
  15. package/dist/hooks/useDefaultLocale.js.map +1 -0
  16. package/dist/hooks/useGT.js +44 -0
  17. package/dist/hooks/useGT.js.map +1 -0
  18. package/dist/hooks/useLocale.js +14 -0
  19. package/dist/hooks/useLocale.js.map +1 -0
  20. package/dist/index.js +13 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/inline/T.d.ts.map +1 -1
  23. package/dist/inline/T.js +110 -0
  24. package/dist/inline/T.js.map +1 -0
  25. package/dist/internal/addGTIdentifier.js +99 -0
  26. package/dist/internal/addGTIdentifier.js.map +1 -0
  27. package/dist/internal/flattenDictionary.js +35 -0
  28. package/dist/internal/flattenDictionary.js.map +1 -0
  29. package/dist/internal/hashReactChildrenObjects.js +54 -0
  30. package/dist/internal/hashReactChildrenObjects.js.map +1 -0
  31. package/dist/internal/writeChildrenAsObjects.js +89 -0
  32. package/dist/internal/writeChildrenAsObjects.js.map +1 -0
  33. package/dist/internal.js +12 -0
  34. package/dist/internal.js.map +1 -0
  35. package/dist/primitives/primitives.js +12 -0
  36. package/dist/primitives/primitives.js.map +1 -0
  37. package/dist/primitives/types.js +2 -0
  38. package/dist/primitives/types.js.map +1 -0
  39. package/dist/provider/GTContext.js +12 -0
  40. package/dist/provider/GTContext.js.map +1 -0
  41. package/dist/provider/GTProvider.js +160 -0
  42. package/dist/provider/GTProvider.js.map +1 -0
  43. package/dist/provider/helpers/extractEntryMetadata.js +12 -0
  44. package/dist/provider/helpers/extractEntryMetadata.js.map +1 -0
  45. package/dist/provider/helpers/getDictionaryEntry.js +18 -0
  46. package/dist/provider/helpers/getDictionaryEntry.js.map +1 -0
  47. package/dist/provider/helpers/getGTProp.js +7 -0
  48. package/dist/provider/helpers/getGTProp.js.map +1 -0
  49. package/dist/provider/helpers/isValidDictionaryEntry.js +2 -0
  50. package/dist/provider/helpers/isValidDictionaryEntry.js.map +1 -0
  51. package/dist/provider/helpers/isVariableObject.js +14 -0
  52. package/dist/provider/helpers/isVariableObject.js.map +1 -0
  53. package/dist/provider/rendering/renderDefaultChildren.js +70 -0
  54. package/dist/provider/rendering/renderDefaultChildren.js.map +1 -0
  55. package/dist/provider/rendering/renderTranslatedChildren.d.ts +0 -6
  56. package/dist/provider/rendering/renderTranslatedChildren.d.ts.map +1 -1
  57. package/dist/provider/rendering/renderTranslatedChildren.js +158 -0
  58. package/dist/provider/rendering/renderTranslatedChildren.js.map +1 -0
  59. package/dist/provider/rendering/renderVariable.d.ts +7 -0
  60. package/dist/provider/rendering/renderVariable.d.ts.map +1 -0
  61. package/dist/provider/rendering/renderVariable.js +19 -0
  62. package/dist/provider/rendering/renderVariable.js.map +1 -0
  63. package/dist/variables/Currency.js +52 -0
  64. package/dist/variables/Currency.js.map +1 -0
  65. package/dist/variables/DateTime.js +50 -0
  66. package/dist/variables/DateTime.js.map +1 -0
  67. package/dist/variables/Num.js +40 -0
  68. package/dist/variables/Num.js.map +1 -0
  69. package/dist/variables/Var.js +28 -0
  70. package/dist/variables/Var.js.map +1 -0
  71. package/dist/variables/_defaultVariableNames.js +8 -0
  72. package/dist/variables/_defaultVariableNames.js.map +1 -0
  73. package/dist/variables/_getVariableProps.js +21 -0
  74. package/dist/variables/_getVariableProps.js.map +1 -0
  75. package/package.json +6 -10
  76. package/tsconfig.json +0 -1
  77. package/dist/client.cjs.min.cjs +0 -2
  78. package/dist/client.cjs.min.cjs.map +0 -1
  79. package/dist/client.esm.min.mjs +0 -2
  80. package/dist/client.esm.min.mjs.map +0 -1
  81. package/dist/index.cjs.min.cjs +0 -2
  82. package/dist/index.cjs.min.cjs.map +0 -1
  83. package/dist/index.esm.min.mjs +0 -2
  84. package/dist/index.esm.min.mjs.map +0 -1
  85. package/dist/internal.cjs.min.cjs +0 -2
  86. package/dist/internal.cjs.min.cjs.map +0 -1
  87. package/dist/internal.esm.min.mjs +0 -2
  88. package/dist/internal.esm.min.mjs.map +0 -1
  89. package/rollup.config.mjs +0 -117
@@ -0,0 +1,99 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import React, { isValidElement } from 'react';
24
+ import { isAcceptedPluralForm } from '../primitives/primitives';
25
+ export default function addGTIdentifier(children, outerID, startingIndex) {
26
+ if (startingIndex === void 0) { startingIndex = 0; }
27
+ // Object to keep track of the current index for GT IDs
28
+ var index = startingIndex;
29
+ /**
30
+ * Function to create a GTProp object for a ReactElement
31
+ * @param child - The ReactElement for which the GTProp is created
32
+ * @returns - The GTProp object
33
+ */
34
+ var createGTProp = function (child) {
35
+ var type = child.type, props = child.props;
36
+ index += 1;
37
+ var result = { id: index };
38
+ var transformation = typeof type === 'function' ? (type.gtTransformation || '') : '';
39
+ if (transformation) {
40
+ var transformationParts = transformation.split('-');
41
+ if (transformationParts[0] === "variable") {
42
+ result.variableType = (transformationParts === null || transformationParts === void 0 ? void 0 : transformationParts[1]) || "variable";
43
+ }
44
+ if (transformationParts[0] === "plural") {
45
+ var pluralBranches = Object.entries(props).reduce(function (acc, _a) {
46
+ var branchName = _a[0], branch = _a[1];
47
+ if (isAcceptedPluralForm(branchName)) {
48
+ acc[branchName] = addGTIdentifier(branch, branchName, index);
49
+ }
50
+ return acc;
51
+ }, {});
52
+ if (Object.keys(pluralBranches).length)
53
+ result.branches = pluralBranches;
54
+ }
55
+ if (transformationParts[0] === "branch") {
56
+ var children_1 = props.children, branch = props.branch, branches = __rest(props, ["children", "branch"]);
57
+ var resultBranches = Object.entries(branches).reduce(function (acc, _a) {
58
+ var branchName = _a[0], branch = _a[1];
59
+ acc[branchName] = addGTIdentifier(branch, branchName, index);
60
+ return acc;
61
+ }, {});
62
+ if (Object.keys(resultBranches).length)
63
+ result.branches = resultBranches;
64
+ }
65
+ result.transformation = transformationParts[0];
66
+ }
67
+ return result;
68
+ };
69
+ function handleSingleChild(child) {
70
+ if (isValidElement(child)) {
71
+ var props = child.props;
72
+ // Create new props for the element, including the GT identifier and a key
73
+ var generaltranslation = createGTProp(child);
74
+ var newProps = __assign(__assign({}, props), { 'data-generaltranslation': generaltranslation });
75
+ if (outerID) {
76
+ newProps.key = outerID;
77
+ outerID = undefined;
78
+ }
79
+ // Recursively add IDs to children
80
+ if (props.children) {
81
+ newProps.children = handleChildren(props.children);
82
+ }
83
+ return React.cloneElement(child, newProps);
84
+ }
85
+ return child;
86
+ }
87
+ function handleChildren(children) {
88
+ if (Array.isArray(children)) {
89
+ outerID = undefined;
90
+ return React.Children.map(children, handleSingleChild);
91
+ }
92
+ else {
93
+ return handleSingleChild(children);
94
+ }
95
+ }
96
+ return handleChildren(children);
97
+ }
98
+ ;
99
+ //# sourceMappingURL=addGTIdentifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addGTIdentifier.js","sourceRoot":"","sources":["../../src/internal/addGTIdentifier.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import React from "react";
2
+ /**
3
+ * Flattens a nested dictionary by concatenating nested keys.
4
+ * Throws an error if two keys result in the same flattened key.
5
+ * @param {Record<string, any>} dictionary - The dictionary to flatten.
6
+ * @param {string} [prefix=''] - The prefix for nested keys.
7
+ * @returns {Record<string, React.ReactNode>} The flattened dictionary object.
8
+ * @throws {Error} If two keys result in the same flattened key.
9
+ */
10
+ export default function flattenDictionary(dictionary, prefix) {
11
+ if (prefix === void 0) { prefix = ''; }
12
+ var flattened = {};
13
+ for (var key in dictionary) {
14
+ if (dictionary.hasOwnProperty(key)) {
15
+ var newKey = prefix ? "".concat(prefix, ".").concat(key) : key;
16
+ if (typeof dictionary[key] === 'object' && dictionary[key] !== null && !Array.isArray(dictionary[key]) && !(React.isValidElement(dictionary[key]))) {
17
+ var nestedFlattened = flattenDictionary(dictionary[key], newKey);
18
+ for (var flatKey in nestedFlattened) {
19
+ if (flattened.hasOwnProperty(flatKey)) {
20
+ throw new Error("Duplicate key found in dictionary: ".concat(flatKey));
21
+ }
22
+ flattened[flatKey] = nestedFlattened[flatKey];
23
+ }
24
+ }
25
+ else {
26
+ if (flattened.hasOwnProperty(newKey)) {
27
+ throw new Error("Duplicate key found in dictionary: ".concat(newKey));
28
+ }
29
+ flattened[newKey] = dictionary[key];
30
+ }
31
+ }
32
+ }
33
+ return flattened;
34
+ }
35
+ //# sourceMappingURL=flattenDictionary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flattenDictionary.js","sourceRoot":"","sources":["../../src/internal/flattenDictionary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,UAA+B,EAAE,MAAmB;IAAnB,uBAAA,EAAA,WAAmB;IAC1F,IAAM,SAAS,GAAwB,EAAE,CAAC;IAC1C,KAAK,IAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,UAAG,MAAM,cAAI,GAAG,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACjD,IAAI,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjJ,IAAM,eAAe,GAAG,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;gBACnE,KAAK,IAAM,OAAO,IAAI,eAAe,EAAE,CAAC;oBACpC,IAAI,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;wBACpC,MAAM,IAAI,KAAK,CAAC,6CAAsC,OAAO,CAAE,CAAC,CAAC;oBACrE,CAAC;oBACD,SAAS,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;gBAClD,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAI,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,6CAAsC,MAAM,CAAE,CAAC,CAAC;gBACpE,CAAC;gBACD,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -0,0 +1,54 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import { hashString } from 'generaltranslation/internal';
24
+ /**
25
+ * Calculates a unique ID for the given children objects by hashing their sanitized JSON string representation.
26
+ *
27
+ * @param {any} childrenAsObjects - The children objects to be hashed.
28
+ * @returns {string} - A promise that resolves to the unique ID.
29
+ */
30
+ export default function hashReactChildrenObjects(childrenAsObjects) {
31
+ var unhashedKey = JSON.stringify(sanitizeChildrenAsObjects(childrenAsObjects));
32
+ return hashString(unhashedKey);
33
+ }
34
+ function sanitizeChildrenAsObjects(childrenAsObjects) {
35
+ var sanitizeChild = function (child) {
36
+ var _a;
37
+ if (child && typeof child === 'object' && child.props) {
38
+ if ((_a = child === null || child === void 0 ? void 0 : child.props) === null || _a === void 0 ? void 0 : _a.children) {
39
+ var type = child.type, rest = __rest(child, ["type"]);
40
+ return __assign(__assign({}, rest), { props: __assign(__assign({}, child.props), { children: sanitizeChildren(child.props.children) }) });
41
+ }
42
+ else {
43
+ var type = child.type, rest = __rest(child, ["type"]);
44
+ return rest;
45
+ }
46
+ }
47
+ return child;
48
+ };
49
+ var sanitizeChildren = function (children) {
50
+ return Array.isArray(children) ? children.map(sanitizeChild) : sanitizeChild(children);
51
+ };
52
+ return sanitizeChildren(childrenAsObjects);
53
+ }
54
+ //# sourceMappingURL=hashReactChildrenObjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashReactChildrenObjects.js","sourceRoot":"","sources":["../../src/internal/hashReactChildrenObjects.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,iBAAsB;IACnE,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACjF,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,yBAAyB,CAAC,iBAAsB;IACrD,IAAM,aAAa,GAAG,UAAC,KAAU;;QAC7B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACpD,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,QAAQ,EAAE,CAAC;gBACjB,IAAA,IAAI,GAAc,KAAK,KAAnB,EAAK,IAAI,UAAK,KAAK,EAAzB,QAAiB,CAAF,CAAW;gBAChC,6BACO,IAAI,KACP,KAAK,wBACE,KAAK,CAAC,KAAK,KACd,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAEvD;YACL,CAAC;iBAAM,CAAC;gBACI,IAAA,IAAI,GAAc,KAAK,KAAnB,EAAK,IAAI,UAAK,KAAK,EAAzB,QAAiB,CAAF,CAAW;gBAChC,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAA;IACD,IAAM,gBAAgB,GAAG,UAAC,QAAa;QACnC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC1F,CAAC,CAAA;IACD,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,89 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import React from 'react';
13
+ import defaultVariableNames from '../variables/_defaultVariableNames';
14
+ /**
15
+ * Gets the tag name of a React element.
16
+ * @param {ReactElement} child - The React element.
17
+ * @returns {string} - The tag name of the React element.
18
+ */
19
+ var getTagName = function (child) {
20
+ var _a;
21
+ if (!child)
22
+ return '';
23
+ var type = child.type, props = child.props;
24
+ if (type && typeof type === 'function') {
25
+ if ('displayName' in type && typeof type.displayName === 'string' && type.displayName)
26
+ return type.displayName;
27
+ if ('name' in type && typeof type.name === 'string' && type.name)
28
+ return type.name;
29
+ }
30
+ if (type && typeof type === 'string')
31
+ return type;
32
+ if (props.href)
33
+ return 'a';
34
+ if ((_a = props['data-generaltranslation']) === null || _a === void 0 ? void 0 : _a.id)
35
+ return "C".concat(props['data-generaltranslation'].id);
36
+ return 'function';
37
+ };
38
+ var handleSingleChild = function (child) {
39
+ if (React.isValidElement(child)) {
40
+ var _a = child, type = _a.type, props = _a.props;
41
+ var objectElement = {
42
+ type: getTagName(child),
43
+ props: {}
44
+ };
45
+ if (props['data-generaltranslation']) {
46
+ var generaltranslation = props['data-generaltranslation'];
47
+ var newGTProp = __assign({}, generaltranslation);
48
+ var transformation = generaltranslation.transformation;
49
+ if (transformation === "variable") {
50
+ var variableName = props.name || defaultVariableNames[generaltranslation === null || generaltranslation === void 0 ? void 0 : generaltranslation.variableType] || "value";
51
+ return { variable: generaltranslation.variableType || "variable", key: variableName };
52
+ }
53
+ if (transformation === "plural" && generaltranslation.branches) {
54
+ objectElement.type = 'Plural';
55
+ var newBranches_1 = {};
56
+ Object.entries(generaltranslation.branches).forEach(function (_a) {
57
+ var key = _a[0], value = _a[1];
58
+ newBranches_1[key] = writeChildrenAsObjects(value);
59
+ });
60
+ newGTProp = __assign(__assign({}, newGTProp), { branches: newBranches_1 });
61
+ }
62
+ if (transformation === "branch" && generaltranslation.branches) {
63
+ objectElement.type = 'Branch';
64
+ var newBranches_2 = {};
65
+ Object.entries(generaltranslation.branches).forEach(function (_a) {
66
+ var key = _a[0], value = _a[1];
67
+ newBranches_2[key] = writeChildrenAsObjects(value);
68
+ });
69
+ newGTProp = __assign(__assign({}, newGTProp), { branches: newBranches_2 });
70
+ }
71
+ objectElement.props['data-generaltranslation'] = newGTProp;
72
+ }
73
+ if (props.children) {
74
+ objectElement.props.children = writeChildrenAsObjects(props.children);
75
+ }
76
+ return objectElement;
77
+ }
78
+ ;
79
+ return child;
80
+ };
81
+ /**
82
+ * Transforms children elements into objects, processing each child recursively if needed.
83
+ * @param {Children} children - The children to process.
84
+ * @returns {object} The processed children as objects.
85
+ */
86
+ export default function writeChildrenAsObjects(children) {
87
+ return Array.isArray(children) ? children.map(handleSingleChild) : handleSingleChild(children);
88
+ }
89
+ //# sourceMappingURL=writeChildrenAsObjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeChildrenAsObjects.js","sourceRoot":"","sources":["../../src/internal/writeChildrenAsObjects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import * as primitives from './primitives/primitives';
2
+ import hashReactChildrenObjects from "./internal/hashReactChildrenObjects";
3
+ import flattenDictionary from "./internal/flattenDictionary";
4
+ import addGTIdentifier from "./internal/addGTIdentifier";
5
+ import writeChildrenAsObjects from "./internal/writeChildrenAsObjects";
6
+ import getPluralBranch from "./branches/plurals/getPluralBranch";
7
+ import getDictionaryEntry from "./provider/helpers/getDictionaryEntry";
8
+ import extractEntryMetadata from "./provider/helpers/extractEntryMetadata";
9
+ import getVariableProps from './variables/_getVariableProps';
10
+ import isVariableObject from './provider/helpers/isVariableObject';
11
+ export { addGTIdentifier, writeChildrenAsObjects, isVariableObject, flattenDictionary, getDictionaryEntry, getVariableProps, hashReactChildrenObjects, getPluralBranch, extractEntryMetadata, primitives };
12
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAA;AACrD,OAAO,wBAAwB,MAAM,qCAAqC,CAAC;AAC3E,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;AAEnE,OAAO,EACH,eAAe,EAAE,sBAAsB,EAAE,gBAAgB,EACzD,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EACvD,wBAAwB,EAAE,eAAe,EAAE,oBAAoB,EAAE,UAAU,EAC9E,CAAA"}
@@ -0,0 +1,12 @@
1
+ import _defaultVariableNames from "../variables/_defaultVariableNames";
2
+ export var defaultVariableNames = _defaultVariableNames;
3
+ export var localeCookieName = "generaltranslation-locale";
4
+ export var libraryDefaultLocale = "en"; // language to use as default if none is provided
5
+ export var pluralForms = ["singular", "plural", "dual", "zero", "one", "two", "few", "many", "other"];
6
+ export function isAcceptedPluralForm(form) {
7
+ return pluralForms.includes(form);
8
+ }
9
+ export var defaultDictionary = {};
10
+ export var defaultDictionaryName = "default";
11
+ export var defaultCacheURL = "https://cache.gtx.dev";
12
+ //# sourceMappingURL=primitives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/primitives/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AAEvE,MAAM,CAAC,IAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAE1D,MAAM,CAAC,IAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAE5D,MAAM,CAAC,IAAM,oBAAoB,GAAG,IAAI,CAAC,CAAC,iDAAiD;AAE3F,MAAM,CAAC,IAAM,WAAW,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAEjH,MAAM,UAAU,oBAAoB,CAChC,IAAY;IAEZ,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAoC,CAAC,CAAC;AACpE,CAAC;AAEH,MAAM,CAAC,IAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC,MAAM,CAAC,IAAM,qBAAqB,GAAG,SAAS,CAAC;AAE/C,MAAM,CAAC,IAAM,eAAe,GAAG,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/primitives/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { createContext, useContext } from "react";
2
+ export var GTContext = createContext(undefined);
3
+ export default function useGTContext(errorString) {
4
+ if (errorString === void 0) { errorString = 'useGTContext() must be used within a <GTProvider>!'; }
5
+ var context = useContext(GTContext);
6
+ if (typeof context === 'undefined') {
7
+ throw new Error(errorString);
8
+ }
9
+ return context;
10
+ }
11
+ ;
12
+ //# sourceMappingURL=GTContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GTContext.js","sourceRoot":"","sources":["../../src/provider/GTContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAMlD,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"}
@@ -0,0 +1,160 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { jsx as _jsx } from "react/jsx-runtime";
38
+ import { determineLanguage, renderContentToString, requiresTranslation } from "generaltranslation";
39
+ import { useCallback, useEffect, useState } from "react";
40
+ import useBrowserLocale from "../hooks/useBrowserLocale";
41
+ import { defaultDictionary, defaultDictionaryName, libraryDefaultLocale, localeCookieName } from "../primitives/primitives";
42
+ import { GTContext } from "./GTContext";
43
+ import getDictionaryEntry from "./helpers/getDictionaryEntry";
44
+ import { addGTIdentifier } from "../internal";
45
+ import extractEntryMetadata from "./helpers/extractEntryMetadata";
46
+ import renderDefaultChildren from "./rendering/renderDefaultChildren";
47
+ import renderTranslatedChildren from "./rendering/renderTranslatedChildren";
48
+ /**
49
+ * Provides General Translation context to its children, which can then access `useGT`, `useLocale`, and `useDefaultLocale`.
50
+ *
51
+ * @param {React.ReactNode} children - The children components that will use the translation context.
52
+ * @param {string} [projectID] - The project ID required for General Translation cloud services.
53
+ * @param {Dictionary} [dictionary=defaultDictionary] - The translation dictionary for the project.
54
+ * @param {string} [dictionaryName=defaultDictionaryName] - The name of the translation dictionary.
55
+ * @param {string[]} [locales] - The list of approved locales for the project.
56
+ * @param {string} [defaultLocale=libraryDefaultLocale] - The default locale to use if no other locale is found.
57
+ * @param {string} [locale] - The current locale, if already set.
58
+ * @param {string} [cacheURL='https://cache.gtx.dev'] - The URL of the cache service for fetching translations.
59
+ *
60
+ * @returns {JSX.Element} The provider component for General Translation context.
61
+ */
62
+ export default function GTProvider(_a) {
63
+ var _this = this;
64
+ var children = _a.children, projectID = _a.projectID, _b = _a.dictionary, dictionary = _b === void 0 ? defaultDictionary : _b, _c = _a.dictionaryName, dictionaryName = _c === void 0 ? defaultDictionaryName : _c, locales = _a.locales, _d = _a.defaultLocale, defaultLocale = _d === void 0 ? (locales === null || locales === void 0 ? void 0 : locales[0]) || libraryDefaultLocale : _d, locale = _a.locale, _e = _a.cacheURL, cacheURL = _e === void 0 ? 'https://cache.gtx.dev' : _e;
65
+ if (!projectID && cacheURL === 'https://cache.gtx.dev') {
66
+ throw new Error("gt-react Error: General Translation cloud services require a project ID! Find yours at www.generaltranslation.com/dashboard.");
67
+ }
68
+ var browserLocale = useBrowserLocale(defaultLocale, localeCookieName, locales);
69
+ locale = locale || browserLocale;
70
+ if (locales) {
71
+ locale = determineLanguage([locale, browserLocale], locales) || locale;
72
+ }
73
+ var translationRequired = requiresTranslation(defaultLocale, locale, locales);
74
+ var _f = useState(cacheURL ? null : {}), translations = _f[0], setTranslations = _f[1];
75
+ useEffect(function () {
76
+ if (!translations) {
77
+ if (!translationRequired) {
78
+ setTranslations({}); // no translation required
79
+ }
80
+ else {
81
+ (function () { return __awaiter(_this, void 0, void 0, function () {
82
+ var response, result;
83
+ return __generator(this, function (_a) {
84
+ switch (_a.label) {
85
+ case 0: return [4 /*yield*/, fetch("".concat(cacheURL, "/").concat(projectID, "/").concat(locale, "/").concat(dictionaryName))];
86
+ case 1:
87
+ response = _a.sent();
88
+ return [4 /*yield*/, response.json()];
89
+ case 2:
90
+ result = _a.sent();
91
+ setTranslations(result);
92
+ return [2 /*return*/];
93
+ }
94
+ });
95
+ }); })();
96
+ }
97
+ }
98
+ }, [translations, translationRequired]);
99
+ var translate = useCallback(function (id, options, f) {
100
+ if (options === void 0) { options = {}; }
101
+ // get the dictionary entry
102
+ var _a = extractEntryMetadata(getDictionaryEntry(dictionary, id)), entry = _a.entry, metadata = _a.metadata;
103
+ if (entry === undefined || entry === null) {
104
+ console.warn("Dictionary entry with id \"".concat(id, "\" is null or undefined"));
105
+ return;
106
+ }
107
+ ;
108
+ // Get variables and variable options
109
+ var variables;
110
+ var variablesOptions;
111
+ if (options) {
112
+ variables = options;
113
+ if (metadata === null || metadata === void 0 ? void 0 : metadata.variablesOptions) {
114
+ variablesOptions = metadata.variablesOptions;
115
+ }
116
+ }
117
+ // Handle if the entry is a function
118
+ if (typeof f === 'function') {
119
+ entry = f(options);
120
+ }
121
+ else if (typeof entry === 'function') {
122
+ entry = entry(options);
123
+ }
124
+ var taggedEntry = addGTIdentifier(entry, id);
125
+ // If no translations are required
126
+ if (!translationRequired) {
127
+ if (typeof taggedEntry === 'string') {
128
+ return renderContentToString(taggedEntry, defaultLocale, variables, variablesOptions);
129
+ }
130
+ return renderDefaultChildren({
131
+ children: taggedEntry,
132
+ variables: variables,
133
+ variablesOptions: variablesOptions,
134
+ defaultLocale: defaultLocale
135
+ });
136
+ }
137
+ // If a translation is required
138
+ if (translations) {
139
+ var translation = translations[id];
140
+ if (typeof taggedEntry === 'string') {
141
+ return renderContentToString(translation.t, [locale, defaultLocale], variables, variablesOptions);
142
+ }
143
+ return renderTranslatedChildren({
144
+ source: taggedEntry,
145
+ target: translation.t,
146
+ variables: variables,
147
+ variablesOptions: variablesOptions,
148
+ locales: [locale, defaultLocale]
149
+ });
150
+ }
151
+ }, [dictionary, translations, translationRequired, defaultLocale]);
152
+ return (_jsx(GTContext.Provider, { value: {
153
+ translate: translate,
154
+ locale: locale,
155
+ defaultLocale: defaultLocale,
156
+ translations: translations
157
+ }, children: (translations && browserLocale) ?
158
+ children : undefined }));
159
+ }
160
+ //# sourceMappingURL=GTProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GTProvider.js","sourceRoot":"","sources":["../../src/provider/GTProvider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export default function extractEntryMetadata(value) {
2
+ if (Array.isArray(value)) {
3
+ if (value.length === 1) {
4
+ return { entry: value[0] };
5
+ }
6
+ if (value.length === 2) {
7
+ return { entry: value[0], metadata: value[1] };
8
+ }
9
+ }
10
+ return { entry: value };
11
+ }
12
+ //# sourceMappingURL=extractEntryMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractEntryMetadata.js","sourceRoot":"","sources":["../../../src/provider/helpers/extractEntryMetadata.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAsB;IAI/D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9B,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAClD,CAAC;IACL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ export default function getDictionaryEntry(dictionary, id) {
3
+ if (!id || typeof id !== 'string') {
4
+ throw new Error("Invalid dictionary id: \"".concat(id, "\""));
5
+ }
6
+ ;
7
+ var current = dictionary;
8
+ var dictionaryPath = id.split(".");
9
+ for (var _i = 0, dictionaryPath_1 = dictionaryPath; _i < dictionaryPath_1.length; _i++) {
10
+ var key = dictionaryPath_1[_i];
11
+ if (typeof current !== 'object' || Array.isArray(current) || React.isValidElement(current)) {
12
+ throw new Error("Invalid dictionary id: \"".concat(id, "\""));
13
+ }
14
+ current = current[key];
15
+ }
16
+ return current;
17
+ }
18
+ //# sourceMappingURL=getDictionaryEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDictionaryEntry.js","sourceRoot":"","sources":["../../../src/provider/helpers/getDictionaryEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACtC,UAAsB,EACtB,EAAU;IAEV,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,mCAA2B,EAAE,OAAG,CAAC,CAAA;IACrD,CAAC;IAAA,CAAC;IACF,IAAI,OAAO,GAAiC,UAAU,CAAC;IACvD,IAAI,cAAc,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,KAAkB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE,CAAC;QAA9B,IAAM,GAAG,uBAAA;QACV,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACzF,MAAM,IAAI,KAAK,CAAC,mCAA2B,EAAE,OAAG,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,GAAI,OAAsB,CAAC,GAAG,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export default function getGTProp(child) {
2
+ if (child && child.props && child.props['data-generaltranslation']) {
3
+ return child.props['data-generaltranslation'];
4
+ }
5
+ return null;
6
+ }
7
+ //# sourceMappingURL=getGTProp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGTProp.js","sourceRoot":"","sources":["../../../src/provider/helpers/getGTProp.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,SAAS,CAC7B,KAAuC;IAEvC,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACjE,OAAO,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=isValidDictionaryEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isValidDictionaryEntry.js","sourceRoot":"","sources":["../../../src/provider/helpers/isValidDictionaryEntry.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ export default function isVariableObject(obj) {
2
+ if (obj && typeof obj === 'object' && typeof obj.key === 'string') {
3
+ var keys = Object.keys(obj);
4
+ if (keys.length === 1)
5
+ return true;
6
+ if (keys.length === 2) {
7
+ var variableObj = obj;
8
+ return (typeof variableObj.variable === 'string') &&
9
+ ["variable", "number", "date", "currency"].includes(variableObj.variable);
10
+ }
11
+ }
12
+ return false;
13
+ }
14
+ //# sourceMappingURL=isVariableObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isVariableObject.js","sourceRoot":"","sources":["../../../src/provider/helpers/isVariableObject.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAY;IACjD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAQ,GAAsB,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpF,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,IAAM,WAAW,GAAI,GAAsB,CAAC;YAC5C,OAAO,CAAC,OAAO,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC;gBAC7C,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QACjF,CAAC;IAEL,CAAC;IACF,OAAO,KAAK,CAAC;AAChB,CAAC"}