gt-react-native 0.0.0 → 0.0.1-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/GtReactNative.podspec +21 -0
- package/LICENSE +105 -0
- package/README.md +27 -1
- package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeGtReactNativeSpec.java +51 -0
- package/android/app/build/generated/source/codegen/jni/CMakeLists.txt +28 -0
- package/android/app/build/generated/source/codegen/jni/GtReactNativeSpec-generated.cpp +50 -0
- package/android/app/build/generated/source/codegen/jni/GtReactNativeSpec.h +31 -0
- package/android/app/build/generated/source/codegen/jni/react/renderer/components/GtReactNativeSpec/GtReactNativeSpecJSI-generated.cpp +51 -0
- package/android/app/build/generated/source/codegen/jni/react/renderer/components/GtReactNativeSpec/GtReactNativeSpecJSI.h +98 -0
- package/android/build.gradle +88 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/com/gtreactnative/GtReactNativeModuleImpl.kt +56 -0
- package/android/src/main/java/com/gtreactnative/GtReactNativePackage.kt +35 -0
- package/android/src/newarch/com/gtreactnative/GtReactNativeModule.kt +30 -0
- package/android/src/oldarch/com/gtreactnative/GtReactNativeModule.kt +36 -0
- package/ios/GtReactNative.h +13 -0
- package/ios/GtReactNative.mm +99 -0
- package/lib/module/NativeGtReactNative.js +5 -0
- package/lib/module/NativeGtReactNative.js.map +1 -0
- package/lib/module/errors-dir/constants.js +4 -0
- package/lib/module/errors-dir/constants.js.map +1 -0
- package/lib/module/index.js +11 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/provider/GTProvider.js +19 -0
- package/lib/module/provider/GTProvider.js.map +1 -0
- package/lib/module/provider/hooks/locale/useDetermineLocale.js +142 -0
- package/lib/module/provider/hooks/locale/useDetermineLocale.js.map +1 -0
- package/lib/module/provider/hooks/useRegionState.js +43 -0
- package/lib/module/provider/hooks/useRegionState.js.map +1 -0
- package/lib/module/types/config.js +4 -0
- package/lib/module/types/config.js.map +1 -0
- package/lib/module/utils/getNativeLocales.js +54 -0
- package/lib/module/utils/getNativeLocales.js.map +1 -0
- package/lib/module/utils/nativeStore.js +34 -0
- package/lib/module/utils/nativeStore.js.map +1 -0
- package/lib/module/utils/polyfill.js +33 -0
- package/lib/module/utils/polyfill.js.map +1 -0
- package/lib/module/utils/utils.js +13 -0
- package/lib/module/utils/utils.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/NativeGtReactNative.d.ts +10 -0
- package/lib/typescript/src/NativeGtReactNative.d.ts.map +1 -0
- package/lib/typescript/src/errors-dir/constants.d.ts +2 -0
- package/lib/typescript/src/errors-dir/constants.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +7 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/provider/GTProvider.d.ts +4 -0
- package/lib/typescript/src/provider/GTProvider.d.ts.map +1 -0
- package/lib/typescript/src/provider/hooks/locale/useDetermineLocale.d.ts +4 -0
- package/lib/typescript/src/provider/hooks/locale/useDetermineLocale.d.ts.map +1 -0
- package/lib/typescript/src/provider/hooks/useRegionState.d.ts +3 -0
- package/lib/typescript/src/provider/hooks/useRegionState.d.ts.map +1 -0
- package/lib/typescript/src/types/config.d.ts +30 -0
- package/lib/typescript/src/types/config.d.ts.map +1 -0
- package/lib/typescript/src/utils/getNativeLocales.d.ts +10 -0
- package/lib/typescript/src/utils/getNativeLocales.d.ts.map +1 -0
- package/lib/typescript/src/utils/nativeStore.d.ts +16 -0
- package/lib/typescript/src/utils/nativeStore.d.ts.map +1 -0
- package/lib/typescript/src/utils/polyfill.d.ts +28 -0
- package/lib/typescript/src/utils/polyfill.d.ts.map +1 -0
- package/lib/typescript/src/utils/utils.d.ts +3 -0
- package/lib/typescript/src/utils/utils.d.ts.map +1 -0
- package/package.json +152 -7
- package/src/NativeGtReactNative.ts +10 -0
- package/src/errors-dir/constants.ts +1 -0
- package/src/index.tsx +68 -0
- package/src/provider/GTProvider.tsx +20 -0
- package/src/provider/hooks/locale/useDetermineLocale.ts +194 -0
- package/src/provider/hooks/useRegionState.ts +51 -0
- package/src/types/config.ts +35 -0
- package/src/utils/getNativeLocales.ts +53 -0
- package/src/utils/nativeStore.ts +31 -0
- package/src/utils/polyfill.ts +36 -0
- package/src/utils/utils.ts +12 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
package com.gtreactnative
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
+
import com.facebook.react.bridge.WritableArray
|
|
5
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
6
|
+
|
|
7
|
+
@ReactModule(name = GtReactNativeModuleImpl.NAME)
|
|
8
|
+
class GtReactNativeModule(reactContext: ReactApplicationContext) :
|
|
9
|
+
NativeGtReactNativeSpec(reactContext) {
|
|
10
|
+
|
|
11
|
+
override fun getName(): String {
|
|
12
|
+
return GtReactNativeModuleImpl.NAME
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
override fun multiply(a: Double, b: Double): Double {
|
|
16
|
+
return GtReactNativeModuleImpl.multiply(a, b)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
override fun getNativeLocales(): WritableArray {
|
|
20
|
+
return GtReactNativeModuleImpl.getNativeLocales(reactApplicationContext)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
override fun nativeStoreGet(key: String): String? {
|
|
24
|
+
return GtReactNativeModuleImpl.nativeStoreGet(reactApplicationContext, key)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
override fun nativeStoreSet(key: String, value: String) {
|
|
28
|
+
GtReactNativeModuleImpl.nativeStoreSet(reactApplicationContext, key, value)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
package com.gtreactnative
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
5
|
+
import com.facebook.react.bridge.ReactMethod
|
|
6
|
+
import com.facebook.react.bridge.WritableArray
|
|
7
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
8
|
+
|
|
9
|
+
@ReactModule(name = GtReactNativeModuleImpl.NAME)
|
|
10
|
+
class GtReactNativeModule(reactContext: ReactApplicationContext) :
|
|
11
|
+
ReactContextBaseJavaModule(reactContext) {
|
|
12
|
+
|
|
13
|
+
override fun getName(): String {
|
|
14
|
+
return GtReactNativeModuleImpl.NAME
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
18
|
+
fun multiply(a: Double, b: Double): Double {
|
|
19
|
+
return GtReactNativeModuleImpl.multiply(a, b)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
23
|
+
fun getNativeLocales(): WritableArray {
|
|
24
|
+
return GtReactNativeModuleImpl.getNativeLocales(reactApplicationContext)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
28
|
+
fun nativeStoreGet(key: String): String? {
|
|
29
|
+
return GtReactNativeModuleImpl.nativeStoreGet(reactApplicationContext, key)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@ReactMethod
|
|
33
|
+
fun nativeStoreSet(key: String, value: String) {
|
|
34
|
+
GtReactNativeModuleImpl.nativeStoreSet(reactApplicationContext, key, value)
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
|
|
3
|
+
#import <GtReactNativeSpec/GtReactNativeSpec.h>
|
|
4
|
+
@interface GtReactNative : NSObject <NativeGtReactNativeSpec>
|
|
5
|
+
|
|
6
|
+
#else
|
|
7
|
+
|
|
8
|
+
#import <React/RCTBridgeModule.h>
|
|
9
|
+
@interface GtReactNative : NSObject <RCTBridgeModule>
|
|
10
|
+
|
|
11
|
+
#endif
|
|
12
|
+
|
|
13
|
+
@end
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#import "GtReactNative.h"
|
|
2
|
+
|
|
3
|
+
@implementation GtReactNative {
|
|
4
|
+
NSUserDefaults *_defaults;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
RCT_EXPORT_MODULE();
|
|
8
|
+
|
|
9
|
+
- (instancetype)init
|
|
10
|
+
{
|
|
11
|
+
if ((self = [super init])) {
|
|
12
|
+
_defaults = [NSUserDefaults standardUserDefaults];
|
|
13
|
+
}
|
|
14
|
+
return self;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Internal implementation methods
|
|
18
|
+
- (NSNumber *)multiplyImpl:(double)a b:(double)b {
|
|
19
|
+
return @(a * b);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
- (NSArray<NSString *> *)getNativeLocalesImpl {
|
|
23
|
+
NSMutableArray<NSString *> *locales = [[NSMutableArray alloc] init];
|
|
24
|
+
|
|
25
|
+
// Add current locale first
|
|
26
|
+
NSString *currentLocale = [[NSLocale currentLocale] localeIdentifier];
|
|
27
|
+
if (currentLocale) {
|
|
28
|
+
[locales addObject:currentLocale];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Add preferred languages
|
|
32
|
+
NSArray<NSString *> *preferredLanguages = [NSLocale preferredLanguages];
|
|
33
|
+
for (NSString *language in preferredLanguages) {
|
|
34
|
+
// Avoid duplicates
|
|
35
|
+
if (![locales containsObject:language]) {
|
|
36
|
+
[locales addObject:language];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return [locales copy];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
- (nullable NSString *)nativeStoreGetImpl:(NSString *)key
|
|
44
|
+
{
|
|
45
|
+
if (key == nil) { return nil; }
|
|
46
|
+
return [_defaults stringForKey:key];
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
- (void)nativeStoreSetImpl:(NSString *)key value:(NSString *)value
|
|
50
|
+
{
|
|
51
|
+
if (key == nil || value == nil) { return; }
|
|
52
|
+
[_defaults setObject:value forKey:key];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
56
|
+
|
|
57
|
+
// New architecture
|
|
58
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params {
|
|
59
|
+
return std::make_shared<facebook::react::NativeGtReactNativeSpecJSI>(params);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
- (NSNumber *)multiply:(double)a b:(double)b {
|
|
63
|
+
return [self multiplyImpl:a b:b];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
- (NSArray<NSString *> *)getNativeLocales {
|
|
67
|
+
return [self getNativeLocalesImpl];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
- (NSString *)nativeStoreGet:(NSString *)key {
|
|
71
|
+
return [self nativeStoreGetImpl:key];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
- (void)nativeStoreSet:(NSString *)key value:(NSString *)value {
|
|
75
|
+
[self nativeStoreSetImpl:key value:value];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
#else
|
|
79
|
+
|
|
80
|
+
// Old architecture
|
|
81
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(multiply:(double)a b:(double)b) {
|
|
82
|
+
return [self multiplyImpl:a b:b];
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getNativeLocales) {
|
|
86
|
+
return [self getNativeLocalesImpl];
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(nativeStoreGet:(NSString *)key) {
|
|
90
|
+
return [self nativeStoreGetImpl:key];
|
|
91
|
+
}
|
|
92
|
+
t
|
|
93
|
+
RCT_EXPORT_METHOD(nativeStoreSet:(NSString *)key value:(NSString *)value) {
|
|
94
|
+
[self nativeStoreSetImpl:key value:value];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
#endif
|
|
98
|
+
|
|
99
|
+
@end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeGtReactNative.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAQlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,eAAe,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PACKAGE_NAME"],"sourceRoot":"../../../src","sources":["errors-dir/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,YAAY,GAAG,UAAU","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import "./utils/polyfill.js";
|
|
4
|
+
import GtReactNative from "./NativeGtReactNative.js";
|
|
5
|
+
import { GTProvider } from "./provider/GTProvider.js";
|
|
6
|
+
export function multiply(a, b) {
|
|
7
|
+
return GtReactNative.multiply(a, b);
|
|
8
|
+
}
|
|
9
|
+
import { T, useGT, useTranslations, useDefaultLocale, useLocale, useRegion, Var, Num, Currency, DateTime, Plural, Branch, useLocales, useLocaleSelector, useSetLocale, useGTClass, useLocaleProperties, useRegionSelector, useLocaleDirection, useMessages, msg, decodeMsg, decodeOptions } from '@generaltranslation/react-core';
|
|
10
|
+
export { Var, Num, Currency, DateTime, T, GTProvider, Plural, Branch, useGT, useTranslations, useDefaultLocale, useLocale, useLocales, useSetLocale, useLocaleSelector, useRegion, useRegionSelector, useGTClass, useLocaleProperties, useLocaleDirection, msg, decodeMsg, decodeOptions, useMessages };
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["GtReactNative","GTProvider","multiply","a","b","T","useGT","useTranslations","useDefaultLocale","useLocale","useRegion","Var","Num","Currency","DateTime","Plural","Branch","useLocales","useLocaleSelector","useSetLocale","useGTClass","useLocaleProperties","useRegionSelector","useLocaleDirection","useMessages","msg","decodeMsg","decodeOptions"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAO,qBAAkB;AACzB,OAAOA,aAAa,MAAM,0BAAuB;AAEjD,SAASC,UAAU,QAAQ,0BAAuB;AAClD,OAAO,SAASC,QAAQA,CAACC,CAAS,EAAEC,CAAS,EAAU;EACrD,OAAOJ,aAAa,CAACE,QAAQ,CAACC,CAAC,EAAEC,CAAC,CAAC;AACrC;AAEA,SACEC,CAAC,EACDC,KAAK,EACLC,eAAe,EACfC,gBAAgB,EAChBC,SAAS,EACTC,SAAS,EACTC,GAAG,EACHC,GAAG,EACHC,QAAQ,EACRC,QAAQ,EACRC,MAAM,EACNC,MAAM,EACNC,UAAU,EACVC,iBAAiB,EACjBC,YAAY,EACZC,UAAU,EACVC,mBAAmB,EACnBC,iBAAiB,EACjBC,kBAAkB,EAClBC,WAAW,EACXC,GAAG,EACHC,SAAS,EACTC,aAAa,QACR,gCAAgC;AAOvC,SACEhB,GAAG,EACHC,GAAG,EACHC,QAAQ,EACRC,QAAQ,EACRT,CAAC,EACDJ,UAAU,EACVc,MAAM,EACNC,MAAM,EACNV,KAAK,EACLC,eAAe,EACfC,gBAAgB,EAChBC,SAAS,EACTQ,UAAU,EACVE,YAAY,EACZD,iBAAiB,EACjBR,SAAS,EACTY,iBAAiB,EACjBF,UAAU,EACVC,mBAAmB,EACnBE,kBAAkB,EAIlBE,GAAG,EACHC,SAAS,EACTC,aAAa,EACbH,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useDetermineLocale } from "./hooks/locale/useDetermineLocale.js";
|
|
4
|
+
import { GTProvider as _GTProvider } from '@generaltranslation/react-core';
|
|
5
|
+
import { readAuthFromEnv } from "../utils/utils.js";
|
|
6
|
+
import { useRegionState } from "./hooks/useRegionState.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export function GTProvider(props) {
|
|
9
|
+
return /*#__PURE__*/_jsx(_GTProvider, {
|
|
10
|
+
ssr: false,
|
|
11
|
+
environment: __DEV__ ? 'development' : 'production',
|
|
12
|
+
...props,
|
|
13
|
+
readAuthFromEnv: readAuthFromEnv,
|
|
14
|
+
useDetermineLocale: useDetermineLocale,
|
|
15
|
+
useRegionState: useRegionState
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export default GTProvider;
|
|
19
|
+
//# sourceMappingURL=GTProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useDetermineLocale","GTProvider","_GTProvider","readAuthFromEnv","useRegionState","jsx","_jsx","props","ssr","environment","__DEV__"],"sourceRoot":"../../../src","sources":["provider/GTProvider.tsx"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,sCAAmC;AAEtE,SAASC,UAAU,IAAIC,WAAW,QAAQ,gCAAgC;AAC1E,SAASC,eAAe,QAAQ,mBAAgB;AAChD,SAASC,cAAc,QAAQ,2BAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExD,OAAO,SAASL,UAAUA,CAACM,KAAsB,EAAqB;EACpE,oBACED,IAAA,CAACJ,WAAW;IACVM,GAAG,EAAE,KAAM;IACXC,WAAW,EAAEC,OAAO,GAAG,aAAa,GAAG,YAAa;IAAA,GAChDH,KAAK;IACTJ,eAAe,EAAEA,eAAgB;IACjCH,kBAAkB,EAAEA,kBAAmB;IACvCI,cAAc,EAAEA;EAAe,CAChC,CAAC;AAEN;AAEA,eAAeH,UAAU","ignoreList":[]}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
|
+
import { determineLocale, resolveAliasLocale } from 'generaltranslation';
|
|
5
|
+
import { libraryDefaultLocale } from 'generaltranslation/internal';
|
|
6
|
+
import { getNativeLocales } from "../../../utils/getNativeLocales.js";
|
|
7
|
+
import { nativeStoreGet, nativeStoreSet } from "../../../utils/nativeStore.js";
|
|
8
|
+
export function useDetermineLocale({
|
|
9
|
+
locale: _locale = '',
|
|
10
|
+
defaultLocale = libraryDefaultLocale,
|
|
11
|
+
locales = [],
|
|
12
|
+
localeCookieName = 'generaltranslation.locale',
|
|
13
|
+
ssr = false,
|
|
14
|
+
// not relevant
|
|
15
|
+
customMapping
|
|
16
|
+
}) {
|
|
17
|
+
// resolve alias locale
|
|
18
|
+
_locale = resolveAliasLocale(_locale, customMapping);
|
|
19
|
+
locales = locales.map(locale => resolveAliasLocale(locale, customMapping));
|
|
20
|
+
const initializeLocale = () => {
|
|
21
|
+
const result = resolveAliasLocale(ssr ? _locale ? determineLocale(_locale, locales, customMapping) || '' : '' : getNewLocale({
|
|
22
|
+
_locale,
|
|
23
|
+
locale: _locale,
|
|
24
|
+
locales,
|
|
25
|
+
defaultLocale,
|
|
26
|
+
localeCookieName,
|
|
27
|
+
customMapping
|
|
28
|
+
}), customMapping);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// maintaining the state of locale
|
|
33
|
+
const [locale, _setLocale] = useState(initializeLocale());
|
|
34
|
+
|
|
35
|
+
// Functions for setting internal locale state
|
|
36
|
+
const [setLocale, setLocaleWithoutPersist] = createSetLocale({
|
|
37
|
+
locale,
|
|
38
|
+
locales,
|
|
39
|
+
defaultLocale,
|
|
40
|
+
localeCookieName,
|
|
41
|
+
_setLocale,
|
|
42
|
+
customMapping
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// check browser for locales
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
const newLocale = getNewLocale({
|
|
48
|
+
_locale,
|
|
49
|
+
locale,
|
|
50
|
+
locales,
|
|
51
|
+
defaultLocale,
|
|
52
|
+
localeCookieName,
|
|
53
|
+
customMapping
|
|
54
|
+
});
|
|
55
|
+
setLocaleWithoutPersist(newLocale);
|
|
56
|
+
}, [_locale, locale, locales, defaultLocale, localeCookieName, customMapping, setLocaleWithoutPersist]);
|
|
57
|
+
return [locale, setLocale];
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// ----- HELPER FUNCTIONS ---- //
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Choose a locale to use
|
|
64
|
+
* (1) use provided locale
|
|
65
|
+
* (2) use cookie locale
|
|
66
|
+
* (3) use preferred locale
|
|
67
|
+
* (5) fallback to defaultLocale
|
|
68
|
+
* Update the cookie locale to be correct
|
|
69
|
+
*/
|
|
70
|
+
function getNewLocale({
|
|
71
|
+
_locale,
|
|
72
|
+
locale,
|
|
73
|
+
locales,
|
|
74
|
+
defaultLocale,
|
|
75
|
+
localeCookieName,
|
|
76
|
+
customMapping
|
|
77
|
+
}) {
|
|
78
|
+
// No change, return
|
|
79
|
+
if (_locale && _locale === locale && determineLocale(_locale, locales, customMapping) === locale) {
|
|
80
|
+
return resolveAliasLocale(_locale, customMapping);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Check for locale in native store
|
|
84
|
+
let storedLocale = nativeStoreGet(localeCookieName);
|
|
85
|
+
if (storedLocale) {
|
|
86
|
+
storedLocale = resolveAliasLocale(storedLocale, customMapping);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// check user's configured locales
|
|
90
|
+
let preferredLocales = getNativeLocales();
|
|
91
|
+
if (preferredLocales.length === 0) preferredLocales = [defaultLocale];
|
|
92
|
+
preferredLocales = preferredLocales.map(l => resolveAliasLocale(l, customMapping));
|
|
93
|
+
|
|
94
|
+
// determine locale
|
|
95
|
+
let newLocale = determineLocale([...(_locale ? [_locale] : []),
|
|
96
|
+
// prefer user passed locale
|
|
97
|
+
...(storedLocale ? [storedLocale] : []),
|
|
98
|
+
// then prefer stored locale
|
|
99
|
+
...preferredLocales // then prefer browser locale
|
|
100
|
+
], locales, customMapping) || defaultLocale;
|
|
101
|
+
if (newLocale) {
|
|
102
|
+
newLocale = resolveAliasLocale(newLocale, customMapping);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// if stored locale not valid, change it back to whatever we use for fallback
|
|
106
|
+
if (storedLocale && storedLocale !== newLocale) {
|
|
107
|
+
nativeStoreSet(localeCookieName, newLocale);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// return new locale
|
|
111
|
+
return newLocale;
|
|
112
|
+
}
|
|
113
|
+
function createSetLocale({
|
|
114
|
+
locale,
|
|
115
|
+
locales,
|
|
116
|
+
defaultLocale,
|
|
117
|
+
_setLocale,
|
|
118
|
+
localeCookieName,
|
|
119
|
+
customMapping
|
|
120
|
+
}) {
|
|
121
|
+
locale = resolveAliasLocale(locale, customMapping);
|
|
122
|
+
// Just update the internal state, don't persist it
|
|
123
|
+
const setLocaleWithoutPersist = newLocale => {
|
|
124
|
+
// validate locale
|
|
125
|
+
const validatedLocale = resolveAliasLocale(determineLocale(newLocale, locales, customMapping) || locale || defaultLocale, customMapping);
|
|
126
|
+
if (validatedLocale !== newLocale) {
|
|
127
|
+
console.warn(`[gt-react-native] Unsupported locale: ${validatedLocale} -> ${newLocale}`);
|
|
128
|
+
}
|
|
129
|
+
// persist locale
|
|
130
|
+
_setLocale(validatedLocale);
|
|
131
|
+
return validatedLocale;
|
|
132
|
+
};
|
|
133
|
+
// update locale and persist it in native store
|
|
134
|
+
const setLocale = newLocale => {
|
|
135
|
+
newLocale = resolveAliasLocale(newLocale, customMapping);
|
|
136
|
+
setLocaleWithoutPersist(newLocale);
|
|
137
|
+
const validatedLocale = setLocaleWithoutPersist(newLocale);
|
|
138
|
+
nativeStoreSet(localeCookieName, validatedLocale);
|
|
139
|
+
};
|
|
140
|
+
return [setLocale, setLocaleWithoutPersist];
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=useDetermineLocale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useState","determineLocale","resolveAliasLocale","libraryDefaultLocale","getNativeLocales","nativeStoreGet","nativeStoreSet","useDetermineLocale","locale","_locale","defaultLocale","locales","localeCookieName","ssr","customMapping","map","initializeLocale","result","getNewLocale","_setLocale","setLocale","setLocaleWithoutPersist","createSetLocale","newLocale","storedLocale","preferredLocales","length","l","validatedLocale","console","warn"],"sourceRoot":"../../../../../src","sources":["provider/hooks/locale/useDetermineLocale.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
|
+
import { nativeStoreGet, nativeStoreSet } from "../../utils/nativeStore.js";
|
|
5
|
+
function getNewRegion({
|
|
6
|
+
_region,
|
|
7
|
+
regionCookieName
|
|
8
|
+
}) {
|
|
9
|
+
// Check for region in native store
|
|
10
|
+
const cookieRegion = nativeStoreGet(regionCookieName) || undefined;
|
|
11
|
+
const newRegion = _region || cookieRegion;
|
|
12
|
+
|
|
13
|
+
// if state not valid, change it to newRegion
|
|
14
|
+
if (cookieRegion && cookieRegion !== newRegion) {
|
|
15
|
+
nativeStoreSet(regionCookieName, newRegion || '');
|
|
16
|
+
}
|
|
17
|
+
return newRegion;
|
|
18
|
+
}
|
|
19
|
+
export function useRegionState({
|
|
20
|
+
_region,
|
|
21
|
+
ssr,
|
|
22
|
+
regionCookieName
|
|
23
|
+
}) {
|
|
24
|
+
const [region, _setRegion] = useState(ssr ? undefined : getNewRegion({
|
|
25
|
+
_region,
|
|
26
|
+
regionCookieName
|
|
27
|
+
}));
|
|
28
|
+
const setRegion = newRegion => {
|
|
29
|
+
_setRegion(newRegion);
|
|
30
|
+
nativeStoreSet(regionCookieName, newRegion || '');
|
|
31
|
+
};
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
_setRegion(getNewRegion({
|
|
34
|
+
_region,
|
|
35
|
+
regionCookieName
|
|
36
|
+
}));
|
|
37
|
+
}, [_region, regionCookieName]);
|
|
38
|
+
return {
|
|
39
|
+
region,
|
|
40
|
+
setRegion
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=useRegionState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useState","nativeStoreGet","nativeStoreSet","getNewRegion","_region","regionCookieName","cookieRegion","undefined","newRegion","useRegionState","ssr","region","_setRegion","setRegion"],"sourceRoot":"../../../../src","sources":["provider/hooks/useRegionState.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAK3C,SAASC,cAAc,EAAEC,cAAc,QAAQ,4BAAyB;AAExE,SAASC,YAAYA,CAAC;EACpBC,OAAO;EACPC;AAIF,CAAC,EAAE;EACD;EACA,MAAMC,YAAY,GAAGL,cAAc,CAACI,gBAAgB,CAAC,IAAIE,SAAS;EAClE,MAAMC,SAAS,GAAGJ,OAAO,IAAIE,YAAY;;EAEzC;EACA,IAAIA,YAAY,IAAIA,YAAY,KAAKE,SAAS,EAAE;IAC9CN,cAAc,CAACG,gBAAgB,EAAEG,SAAS,IAAI,EAAE,CAAC;EACnD;EAEA,OAAOA,SAAS;AAClB;AAEA,OAAO,SAASC,cAAcA,CAAC;EAC7BL,OAAO;EACPM,GAAG;EACHL;AACoB,CAAC,EAAwB;EAC7C,MAAM,CAACM,MAAM,EAAEC,UAAU,CAAC,GAAGZ,QAAQ,CACnCU,GAAG,GACCH,SAAS,GACTJ,YAAY,CAAC;IACXC,OAAO;IACPC;EACF,CAAC,CACP,CAAC;EACD,MAAMQ,SAAS,GAAIL,SAA6B,IAAK;IACnDI,UAAU,CAACJ,SAAS,CAAC;IACrBN,cAAc,CAACG,gBAAgB,EAAEG,SAAS,IAAI,EAAE,CAAC;EACnD,CAAC;EACDT,SAAS,CAAC,MAAM;IACda,UAAU,CAACT,YAAY,CAAC;MAAEC,OAAO;MAAEC;IAAiB,CAAC,CAAC,CAAC;EACzD,CAAC,EAAE,CAACD,OAAO,EAAEC,gBAAgB,CAAC,CAAC;EAC/B,OAAO;IACLM,MAAM;IACNE;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/config.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Platform } from 'react-native';
|
|
4
|
+
import GtReactNative from "../NativeGtReactNative.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Get native device locales in preference order
|
|
8
|
+
* Returns an empty array if detection fails or is not supported
|
|
9
|
+
*
|
|
10
|
+
* iOS: Returns current locale first, followed by preferred languages
|
|
11
|
+
* Android: Returns user's preferred language list (LocaleList on API 24+, single locale on older versions)
|
|
12
|
+
* Web: Returns browser language preferences from navigator
|
|
13
|
+
*/
|
|
14
|
+
export function getNativeLocales() {
|
|
15
|
+
try {
|
|
16
|
+
// Web platform - use browser locale detection
|
|
17
|
+
if (Platform.OS === 'web') {
|
|
18
|
+
return getWebLocales();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Try to get locales from native module
|
|
22
|
+
return GtReactNative.getNativeLocales() || [];
|
|
23
|
+
} catch (error) {
|
|
24
|
+
// Return empty array on any error (native module not available, etc.)
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Get browser locales for web platform
|
|
31
|
+
*/
|
|
32
|
+
function getWebLocales() {
|
|
33
|
+
try {
|
|
34
|
+
if (typeof navigator === 'undefined') {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
const locales = [];
|
|
38
|
+
|
|
39
|
+
// Use navigator.languages if available (most browsers)
|
|
40
|
+
if (navigator.languages && Array.isArray(navigator.languages)) {
|
|
41
|
+
locales.push(...navigator.languages);
|
|
42
|
+
} else if (navigator.language) {
|
|
43
|
+
// Fallback to single language
|
|
44
|
+
locales.push(navigator.language);
|
|
45
|
+
} else if (navigator.userLanguage) {
|
|
46
|
+
// IE fallback
|
|
47
|
+
locales.push(navigator.userLanguage);
|
|
48
|
+
}
|
|
49
|
+
return locales;
|
|
50
|
+
} catch (error) {
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=getNativeLocales.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Platform","GtReactNative","getNativeLocales","OS","getWebLocales","error","navigator","locales","languages","Array","isArray","push","language","userLanguage"],"sourceRoot":"../../../src","sources":["utils/getNativeLocales.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,OAAOC,aAAa,MAAM,2BAAwB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAA,EAAa;EAC3C,IAAI;IACF;IACA,IAAIF,QAAQ,CAACG,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOC,aAAa,CAAC,CAAC;IACxB;;IAEA;IACA,OAAOH,aAAa,CAACC,gBAAgB,CAAC,CAAC,IAAI,EAAE;EAC/C,CAAC,CAAC,OAAOG,KAAK,EAAE;IACd;IACA,OAAO,EAAE;EACX;AACF;;AAEA;AACA;AACA;AACA,SAASD,aAAaA,CAAA,EAAa;EACjC,IAAI;IACF,IAAI,OAAOE,SAAS,KAAK,WAAW,EAAE;MACpC,OAAO,EAAE;IACX;IAEA,MAAMC,OAAiB,GAAG,EAAE;;IAE5B;IACA,IAAID,SAAS,CAACE,SAAS,IAAIC,KAAK,CAACC,OAAO,CAACJ,SAAS,CAACE,SAAS,CAAC,EAAE;MAC7DD,OAAO,CAACI,IAAI,CAAC,GAAGL,SAAS,CAACE,SAAS,CAAC;IACtC,CAAC,MAAM,IAAIF,SAAS,CAACM,QAAQ,EAAE;MAC7B;MACAL,OAAO,CAACI,IAAI,CAACL,SAAS,CAACM,QAAQ,CAAC;IAClC,CAAC,MAAM,IAAKN,SAAS,CAASO,YAAY,EAAE;MAC1C;MACAN,OAAO,CAACI,IAAI,CAAEL,SAAS,CAASO,YAAY,CAAC;IAC/C;IAEA,OAAON,OAAO;EAChB,CAAC,CAAC,OAAOF,KAAK,EAAE;IACd,OAAO,EAAE;EACX;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Platform } from 'react-native';
|
|
4
|
+
import GtReactNative from "../NativeGtReactNative.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Native store interface, used to replace cookie behavior from gt-react
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Get a value from the native store
|
|
12
|
+
* @param key - The key to get the value for
|
|
13
|
+
* @returns The value for the key
|
|
14
|
+
*/
|
|
15
|
+
export function nativeStoreGet(key) {
|
|
16
|
+
if (Platform.OS === 'web') {
|
|
17
|
+
return localStorage.getItem(key);
|
|
18
|
+
}
|
|
19
|
+
return GtReactNative.nativeStoreGet(key);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Set a value in the native store
|
|
24
|
+
* @param key - The key to set the value for
|
|
25
|
+
* @param value - The value to set
|
|
26
|
+
*/
|
|
27
|
+
export function nativeStoreSet(key, value) {
|
|
28
|
+
if (Platform.OS === 'web') {
|
|
29
|
+
localStorage.setItem(key, value);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
GtReactNative.nativeStoreSet(key, value);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=nativeStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Platform","GtReactNative","nativeStoreGet","key","OS","localStorage","getItem","nativeStoreSet","value","setItem"],"sourceRoot":"../../../src","sources":["utils/nativeStore.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,OAAOC,aAAa,MAAM,2BAAwB;;AAElD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAACC,GAAW,EAAiB;EACzD,IAAIH,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,YAAY,CAACC,OAAO,CAACH,GAAG,CAAC;EAClC;EACA,OAAOF,aAAa,CAACC,cAAc,CAACC,GAAG,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,cAAcA,CAACJ,GAAW,EAAEK,KAAa,EAAQ;EAC/D,IAAIR,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;IACzBC,YAAY,CAACI,OAAO,CAACN,GAAG,EAAEK,KAAK,CAAC;IAChC;EACF;EACAP,aAAa,CAACM,cAAc,CAACJ,GAAG,EAAEK,KAAK,CAAC;AAC1C","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Intl object not natively supported, see: https://formatjs.github.io/docs/polyfills
|
|
4
|
+
// See also: The Ultimate Guide to React Native Optimization - page 124
|
|
5
|
+
|
|
6
|
+
import '@formatjs/intl-getcanonicallocales/polyfill';
|
|
7
|
+
import '@formatjs/intl-locale/polyfill';
|
|
8
|
+
import '@formatjs/intl-displaynames/polyfill';
|
|
9
|
+
import '@formatjs/intl-listformat/polyfill';
|
|
10
|
+
import '@formatjs/intl-pluralrules/polyfill-force'; // https://github.com/formatjs/formatjs/issues/4463
|
|
11
|
+
import '@formatjs/intl-numberformat/polyfill';
|
|
12
|
+
import '@formatjs/intl-relativetimeformat/polyfill';
|
|
13
|
+
import '@formatjs/intl-datetimeformat/polyfill';
|
|
14
|
+
import '@formatjs/intl-datetimeformat/add-all-tz';
|
|
15
|
+
import '@formatjs/intl-displaynames/locale-data/en';
|
|
16
|
+
import '@formatjs/intl-displaynames/locale-data/zh';
|
|
17
|
+
import '@formatjs/intl-displaynames/locale-data/es';
|
|
18
|
+
import '@formatjs/intl-listformat/locale-data/en';
|
|
19
|
+
import '@formatjs/intl-listformat/locale-data/zh';
|
|
20
|
+
import '@formatjs/intl-listformat/locale-data/es';
|
|
21
|
+
import '@formatjs/intl-pluralrules/locale-data/en';
|
|
22
|
+
import '@formatjs/intl-pluralrules/locale-data/zh';
|
|
23
|
+
import '@formatjs/intl-pluralrules/locale-data/es';
|
|
24
|
+
import '@formatjs/intl-numberformat/locale-data/en';
|
|
25
|
+
import '@formatjs/intl-numberformat/locale-data/zh';
|
|
26
|
+
import '@formatjs/intl-numberformat/locale-data/es';
|
|
27
|
+
import '@formatjs/intl-relativetimeformat/locale-data/en';
|
|
28
|
+
import '@formatjs/intl-relativetimeformat/locale-data/zh';
|
|
29
|
+
import '@formatjs/intl-relativetimeformat/locale-data/es';
|
|
30
|
+
import '@formatjs/intl-datetimeformat/locale-data/en';
|
|
31
|
+
import '@formatjs/intl-datetimeformat/locale-data/zh';
|
|
32
|
+
import '@formatjs/intl-datetimeformat/locale-data/es';
|
|
33
|
+
//# sourceMappingURL=polyfill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/polyfill.ts"],"mappings":";;AAAA;AACA;;AAEA,OAAO,6CAA6C;AACpD,OAAO,gCAAgC;AACvC,OAAO,sCAAsC;AAC7C,OAAO,oCAAoC;AAC3C,OAAO,2CAA2C,CAAC,CAAC;AACpD,OAAO,sCAAsC;AAC7C,OAAO,4CAA4C;AACnD,OAAO,wCAAwC;AAC/C,OAAO,0CAA0C;AAEjD,OAAO,4CAA4C;AACnD,OAAO,4CAA4C;AACnD,OAAO,4CAA4C;AAEnD,OAAO,0CAA0C;AACjD,OAAO,0CAA0C;AACjD,OAAO,0CAA0C;AAEjD,OAAO,2CAA2C;AAClD,OAAO,2CAA2C;AAClD,OAAO,2CAA2C;AAElD,OAAO,4CAA4C;AACnD,OAAO,4CAA4C;AACnD,OAAO,4CAA4C;AAEnD,OAAO,kDAAkD;AACzD,OAAO,kDAAkD;AACzD,OAAO,kDAAkD;AAEzD,OAAO,8CAA8C;AACrD,OAAO,8CAA8C;AACrD,OAAO,8CAA8C","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["readAuthFromEnv","params","projectId","devApiKey"],"sourceRoot":"../../../src","sources":["utils/utils.ts"],"mappings":";;AAKA,OAAO,SAASA,eAAeA,CAACC,MAAyB,EAAqB;EAC5E,MAAM;IAAEC,SAAS;IAAEC;EAAU,CAAC,GAAGF,MAAM;EACvC,OAAO;IACLC,SAAS,EAAEA,SAAS,IAAI,EAAE;IAC1BC,SAAS,EAAEA;EACb,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
export interface Spec extends TurboModule {
|
|
3
|
+
multiply(a: number, b: number): number;
|
|
4
|
+
getNativeLocales(): string[];
|
|
5
|
+
nativeStoreGet(key: string): string | null;
|
|
6
|
+
nativeStoreSet(key: string, value: string): void;
|
|
7
|
+
}
|
|
8
|
+
declare const _default: Spec;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=NativeGtReactNative.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeGtReactNative.d.ts","sourceRoot":"","sources":["../../../src/NativeGtReactNative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,gBAAgB,IAAI,MAAM,EAAE,CAAC;IAC7B,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAClD;;AAED,wBAAuE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/errors-dir/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,aAAa,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import './utils/polyfill';
|
|
2
|
+
import { GTProvider } from './provider/GTProvider';
|
|
3
|
+
export declare function multiply(a: number, b: number): number;
|
|
4
|
+
import { T, useGT, useTranslations, useDefaultLocale, useLocale, useRegion, Var, Num, Currency, DateTime, Plural, Branch, useLocales, useLocaleSelector, useSetLocale, useGTClass, useLocaleProperties, useRegionSelector, useLocaleDirection, useMessages, msg, decodeMsg, decodeOptions } from '@generaltranslation/react-core';
|
|
5
|
+
import type { DictionaryTranslationOptions, InlineTranslationOptions, RuntimeTranslationOptions } from '@generaltranslation/react-core/types';
|
|
6
|
+
export { Var, Num, Currency, DateTime, T, GTProvider, Plural, Branch, useGT, useTranslations, useDefaultLocale, useLocale, useLocales, useSetLocale, useLocaleSelector, useRegion, useRegionSelector, useGTClass, useLocaleProperties, useLocaleDirection, type DictionaryTranslationOptions, type InlineTranslationOptions, type RuntimeTranslationOptions, msg, decodeMsg, decodeOptions, useMessages, };
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,OAAO,EACL,CAAC,EACD,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,GAAG,EACH,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,GAAG,EACH,SAAS,EACT,aAAa,EACd,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EACV,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,GAAG,EACH,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,CAAC,EACD,UAAU,EACV,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,GAAG,EACH,SAAS,EACT,aAAa,EACb,WAAW,GACZ,CAAC"}
|