@sheet-i18n/react-client 1.6.0-canary.5 → 1.6.0-canary.8
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/dist/index.d.mts +62 -64
- package/dist/index.d.ts +62 -64
- package/dist/index.js +2 -14
- package/dist/index.mjs +1 -7
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,44 +1,37 @@
|
|
|
1
1
|
import { I18nStore } from '@sheet-i18n/react-core';
|
|
2
|
-
import { ObserverManager } from '@sheet-i18n/shared-utils';
|
|
3
|
-
import { MessageDescriptor, IntlShape } from 'react-intl';
|
|
4
|
-
export { IntlShape, MessageDescriptor, MessageFormatElement, ResolvedIntlConfig } from 'react-intl';
|
|
5
2
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { ObserverManager } from '@sheet-i18n/shared-utils';
|
|
6
4
|
import * as react from 'react';
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
type IntlProviderProps<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false> = {
|
|
7
|
+
i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
8
|
+
currentLocale?: TSupportedLocales[number];
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
};
|
|
11
|
+
declare function IntlProvider<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false>({ i18nStore, currentLocale, children, }: IntlProviderProps<TSupportedLocales, TLocaleSet, TTypeSafe>): react_jsx_runtime.JSX.Element;
|
|
12
|
+
|
|
13
|
+
interface Message {
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
type MessageIds = Message extends {
|
|
16
|
+
ids: infer T;
|
|
17
|
+
} ? T extends string ? T : string : string;
|
|
18
|
+
interface MessageDescriptor {
|
|
19
|
+
id?: MessageIds;
|
|
20
|
+
description?: string | object;
|
|
21
|
+
defaultMessage?: any[];
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
getLocale: () => TSupportedLocales[number];
|
|
30
|
-
setLocale: (locale: TSupportedLocales[number]) => void;
|
|
23
|
+
type PrimitiveType = string | number | boolean | null | undefined | Date;
|
|
24
|
+
type FormatXMLElementFn<T, R = string | T | (string | T)[]> = (parts: Array<string | T>) => R;
|
|
25
|
+
interface ParserOptions {
|
|
26
|
+
ignoreTag?: boolean;
|
|
27
|
+
requiresOtherClause?: boolean;
|
|
28
|
+
shouldParseSkeletons?: boolean;
|
|
29
|
+
captureLocation?: boolean;
|
|
31
30
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
* @param(optional) storage - storage service
|
|
37
|
-
* If storage is not provided, it will use the window.localStorage.
|
|
38
|
-
*/
|
|
39
|
-
declare const getLocaleStorageManager: <TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false>(i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>, storage?: IStorageService<string>) => LocaleStorageManager<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
40
|
-
|
|
41
|
-
type UseIntlParams<D = MessageDescriptor> = Parameters<IntlShape['$t']> extends [D, ...infer R] ? [...R, Omit<D, 'id'>] : never;
|
|
31
|
+
interface Options extends ParserOptions {
|
|
32
|
+
}
|
|
33
|
+
type $T<T extends unknown = unknown> = (this: void, descriptor: MessageDescriptor, values?: Record<string, PrimitiveType | T | FormatXMLElementFn<T>>, opts?: Options) => string | T | (T | string)[];
|
|
34
|
+
type UseIntlParams<D = MessageDescriptor> = Parameters<$T> extends [D, ...infer R] ? [...R, Omit<D, 'id'>] : never;
|
|
42
35
|
type ExtendedUseIntlParams<D = MessageDescriptor> = UseIntlParams<D> extends [infer A, infer B, ...infer Rest] ? A extends Record<string, infer V> ? [Record<string, V | React.ReactNode>, B, ...Rest] : [A, B, ...Rest] : UseIntlParams<D>;
|
|
43
36
|
type $TParams = Partial<ExtendedUseIntlParams>;
|
|
44
37
|
/**
|
|
@@ -61,68 +54,73 @@ type RuleKey = string;
|
|
|
61
54
|
type RuleFn<TSupportedLocales extends SupportedLocales, TLocaleSet extends LocaleSet, TI18nStore extends I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>, TTypeSafe extends TypeSafe, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>, TValues = any> = (values: TValues, currentLocaleSet: ReturnType<TI18nStore['getCurrentLocaleSet']>) => TMessageId;
|
|
62
55
|
type Rules<TSupportedLocales extends SupportedLocales = SupportedLocales, TLocaleSet extends LocaleSet = LocaleSet, TTypeSafe extends TypeSafe = TypeSafe, TI18nStore extends I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe> = I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe> = SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe> = SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>> = Record<RuleKey, RuleFn<TSupportedLocales, TLocaleSet, TI18nStore, TTypeSafe, TSheetTitle, TMessageId>>;
|
|
63
56
|
|
|
64
|
-
|
|
65
|
-
sheetTitle: TSheetTitle;
|
|
66
|
-
i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
67
|
-
}
|
|
68
|
-
type GetTranslationReturn<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>> = {
|
|
57
|
+
type UseTranslationReturn<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Partial<Record<TSupportedLocales[number], Record<string, any>>>>, TTypeSafe extends boolean, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TRules extends Rules> = {
|
|
69
58
|
t: <TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>, TValues extends $TParams[0], TOpts extends $TParams[1], TDescriptor extends $TParams[2]>(id: TMessageId, values?: TValues, opts?: TOpts, _descriptor?: TDescriptor) => TTypeSafe extends true ? TMessageId : any;
|
|
70
59
|
} & {
|
|
71
60
|
t: {
|
|
72
61
|
dynamic: <TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>, TValues extends $TParams[0], TOpts extends $TParams[1], TDescriptor extends $TParams[2]>(id: string, values?: TValues, opts?: TOpts, _descriptor?: TDescriptor) => TTypeSafe extends true ? string : any;
|
|
73
|
-
|
|
62
|
+
rule: <TRuleKey extends keyof TRules, TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>>(ruleKey: TRuleKey, values?: Parameters<TRules[TRuleKey]>[0]) => TTypeSafe extends true ? TMessageId : any;
|
|
74
63
|
};
|
|
75
64
|
};
|
|
76
|
-
declare function getTranslation<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>>({ sheetTitle, i18nStore, }: GetTranslationParams<TSupportedLocales, TLocaleSet, TTypeSafe, TSheetTitle>): GetTranslationReturn<TSupportedLocales, TLocaleSet, TTypeSafe, TSheetTitle>;
|
|
77
65
|
|
|
78
|
-
|
|
79
|
-
sheetTitle: TSheetTitle;
|
|
80
|
-
i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
81
|
-
rules?: TRules;
|
|
82
|
-
}
|
|
83
|
-
type UseTranslationReturn<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Partial<Record<TSupportedLocales[number], Record<string, any>>>>, TTypeSafe extends boolean, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TRules extends Rules> = {
|
|
66
|
+
type GetTranslationReturn<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>> = {
|
|
84
67
|
t: <TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>, TValues extends $TParams[0], TOpts extends $TParams[1], TDescriptor extends $TParams[2]>(id: TMessageId, values?: TValues, opts?: TOpts, _descriptor?: TDescriptor) => TTypeSafe extends true ? TMessageId : any;
|
|
85
68
|
} & {
|
|
86
69
|
t: {
|
|
87
70
|
dynamic: <TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>, TValues extends $TParams[0], TOpts extends $TParams[1], TDescriptor extends $TParams[2]>(id: string, values?: TValues, opts?: TOpts, _descriptor?: TDescriptor) => TTypeSafe extends true ? string : any;
|
|
88
|
-
|
|
71
|
+
promise: <TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>, TValues extends $TParams[0], TOpts extends $TParams[1], TDescriptor extends $TParams[2]>(id: TMessageId, values?: TValues, opts?: TOpts, _descriptor?: TDescriptor) => TTypeSafe extends true ? Promise<TMessageId> : any;
|
|
89
72
|
};
|
|
90
73
|
};
|
|
91
|
-
declare function useTranslation<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TRules extends Rules, TTypeSafe extends boolean, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>>({ sheetTitle, i18nStore, rules, }: UseTranslationParams<TSupportedLocales, TLocaleSet, TRules, TTypeSafe, TSheetTitle>): UseTranslationReturn<TSupportedLocales, TLocaleSet, TTypeSafe, TSheetTitle, TRules>;
|
|
92
74
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
75
|
+
interface IStorageService<V extends string> {
|
|
76
|
+
getItem(key: string): V;
|
|
77
|
+
setItem(key: string, value: V): boolean;
|
|
78
|
+
removeItem(key: string): boolean;
|
|
79
|
+
clear(): boolean;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* locale storage manager
|
|
83
|
+
* implements ILocaleStorageManager (injected StorageService)
|
|
84
|
+
*/
|
|
85
|
+
interface ILocaleStorageManager<TSupportedLocales extends readonly string[]> {
|
|
86
|
+
getLocale(): TSupportedLocales[number];
|
|
87
|
+
setLocale(locale: TSupportedLocales[number]): void;
|
|
88
|
+
}
|
|
89
|
+
declare class LocaleStorageManager<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false> implements ILocaleStorageManager<TSupportedLocales> {
|
|
90
|
+
private readonly storageService;
|
|
91
|
+
private readonly i18nStore;
|
|
92
|
+
private readonly localeStorageKey;
|
|
93
|
+
observerManager: ObserverManager<TSupportedLocales[number]>;
|
|
94
|
+
constructor(storageService: IStorageService<TSupportedLocales[number]>, i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>, localeStorageKey?: string);
|
|
95
|
+
private initializeCurrentLocale;
|
|
96
|
+
getLocale: () => TSupportedLocales[number];
|
|
97
|
+
setLocale: (locale: TSupportedLocales[number]) => void;
|
|
98
|
+
}
|
|
99
99
|
|
|
100
100
|
declare function useLocaleStorage<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false>(localeStorageManager: LocaleStorageManager<TSupportedLocales, TLocaleSet, TTypeSafe>): {
|
|
101
101
|
locale: TSupportedLocales[number] | undefined;
|
|
102
102
|
};
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
interface StorageBasedIntlProviderProps<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false> {
|
|
105
105
|
i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
106
106
|
storageManager: LocaleStorageManager<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
107
107
|
fallbackUI?: React.ReactNode;
|
|
108
108
|
children: React.ReactNode;
|
|
109
|
-
}
|
|
109
|
+
}
|
|
110
110
|
declare function StorageBasedIntlProvider<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false>({ i18nStore, storageManager, fallbackUI, children, }: StorageBasedIntlProviderProps<TSupportedLocales, TLocaleSet, TTypeSafe>): string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null;
|
|
111
111
|
|
|
112
112
|
interface Plugins<TRules extends Rules> {
|
|
113
113
|
rules?: TRules;
|
|
114
114
|
}
|
|
115
|
-
|
|
116
|
-
IntlProvider: (
|
|
117
|
-
|
|
118
|
-
children?: React.ReactNode;
|
|
119
|
-
}) => react_jsx_runtime.JSX.Element;
|
|
120
|
-
StorageBasedIntlProvider: ({ storageManager, children, }: Omit<StorageBasedIntlProviderProps<TSupportedLocales, TLocaleSet, TTypeSafe>, "i18nStore">) => react_jsx_runtime.JSX.Element;
|
|
115
|
+
type CreateI18nContextReturn<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TRules extends Rules, TTypeSafe extends boolean = false> = {
|
|
116
|
+
IntlProvider: (props: IntlProviderProps<TSupportedLocales, TLocaleSet, TTypeSafe>) => ReturnType<typeof IntlProvider<TSupportedLocales, TLocaleSet, TTypeSafe>>;
|
|
117
|
+
StorageBasedIntlProvider: (props: StorageBasedIntlProviderProps<TSupportedLocales, TLocaleSet, TTypeSafe>) => ReturnType<typeof StorageBasedIntlProvider<TSupportedLocales, TLocaleSet, TTypeSafe>>;
|
|
121
118
|
useTranslation: <TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>>(sheetTitle: TSheetTitle) => UseTranslationReturn<TSupportedLocales, TLocaleSet, TTypeSafe, TSheetTitle, TRules>;
|
|
122
119
|
getTranslation: <TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>>(sheetTitle: TSheetTitle) => GetTranslationReturn<TSupportedLocales, TLocaleSet, TTypeSafe, TSheetTitle>;
|
|
123
120
|
getLocaleStorageManager: (storageService?: IStorageService<string>) => LocaleStorageManager<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
124
121
|
useLocaleStorage: typeof useLocaleStorage;
|
|
125
122
|
};
|
|
123
|
+
declare function createI18nContext<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TRules extends Rules, TTypeSafe extends boolean = false>(i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>, plugins?: Plugins<TRules>): CreateI18nContextReturn<TSupportedLocales, TLocaleSet, TRules, TTypeSafe>;
|
|
126
124
|
|
|
127
125
|
declare class RuleService<TSupportedLocales extends SupportedLocales, TLocaleSet extends LocaleSet, TTypeSafe extends TypeSafe, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>> {
|
|
128
126
|
private readonly i18nStore;
|
|
@@ -131,4 +129,4 @@ declare class RuleService<TSupportedLocales extends SupportedLocales, TLocaleSet
|
|
|
131
129
|
}
|
|
132
130
|
declare const ruleFactory: <TSupportedLocales extends SupportedLocales, TLocaleSet extends LocaleSet, TTypeSafe extends TypeSafe>(i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>) => RuleService<TSupportedLocales, TLocaleSet, TTypeSafe, SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, SafeMessageId<TSupportedLocales, TLocaleSet, SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TTypeSafe>>;
|
|
133
131
|
|
|
134
|
-
export { type IStorageService
|
|
132
|
+
export { type IStorageService as Storage, createI18nContext, ruleFactory };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,44 +1,37 @@
|
|
|
1
1
|
import { I18nStore } from '@sheet-i18n/react-core';
|
|
2
|
-
import { ObserverManager } from '@sheet-i18n/shared-utils';
|
|
3
|
-
import { MessageDescriptor, IntlShape } from 'react-intl';
|
|
4
|
-
export { IntlShape, MessageDescriptor, MessageFormatElement, ResolvedIntlConfig } from 'react-intl';
|
|
5
2
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { ObserverManager } from '@sheet-i18n/shared-utils';
|
|
6
4
|
import * as react from 'react';
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
type IntlProviderProps<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false> = {
|
|
7
|
+
i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
8
|
+
currentLocale?: TSupportedLocales[number];
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
};
|
|
11
|
+
declare function IntlProvider<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false>({ i18nStore, currentLocale, children, }: IntlProviderProps<TSupportedLocales, TLocaleSet, TTypeSafe>): react_jsx_runtime.JSX.Element;
|
|
12
|
+
|
|
13
|
+
interface Message {
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
type MessageIds = Message extends {
|
|
16
|
+
ids: infer T;
|
|
17
|
+
} ? T extends string ? T : string : string;
|
|
18
|
+
interface MessageDescriptor {
|
|
19
|
+
id?: MessageIds;
|
|
20
|
+
description?: string | object;
|
|
21
|
+
defaultMessage?: any[];
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
getLocale: () => TSupportedLocales[number];
|
|
30
|
-
setLocale: (locale: TSupportedLocales[number]) => void;
|
|
23
|
+
type PrimitiveType = string | number | boolean | null | undefined | Date;
|
|
24
|
+
type FormatXMLElementFn<T, R = string | T | (string | T)[]> = (parts: Array<string | T>) => R;
|
|
25
|
+
interface ParserOptions {
|
|
26
|
+
ignoreTag?: boolean;
|
|
27
|
+
requiresOtherClause?: boolean;
|
|
28
|
+
shouldParseSkeletons?: boolean;
|
|
29
|
+
captureLocation?: boolean;
|
|
31
30
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
* @param(optional) storage - storage service
|
|
37
|
-
* If storage is not provided, it will use the window.localStorage.
|
|
38
|
-
*/
|
|
39
|
-
declare const getLocaleStorageManager: <TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false>(i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>, storage?: IStorageService<string>) => LocaleStorageManager<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
40
|
-
|
|
41
|
-
type UseIntlParams<D = MessageDescriptor> = Parameters<IntlShape['$t']> extends [D, ...infer R] ? [...R, Omit<D, 'id'>] : never;
|
|
31
|
+
interface Options extends ParserOptions {
|
|
32
|
+
}
|
|
33
|
+
type $T<T extends unknown = unknown> = (this: void, descriptor: MessageDescriptor, values?: Record<string, PrimitiveType | T | FormatXMLElementFn<T>>, opts?: Options) => string | T | (T | string)[];
|
|
34
|
+
type UseIntlParams<D = MessageDescriptor> = Parameters<$T> extends [D, ...infer R] ? [...R, Omit<D, 'id'>] : never;
|
|
42
35
|
type ExtendedUseIntlParams<D = MessageDescriptor> = UseIntlParams<D> extends [infer A, infer B, ...infer Rest] ? A extends Record<string, infer V> ? [Record<string, V | React.ReactNode>, B, ...Rest] : [A, B, ...Rest] : UseIntlParams<D>;
|
|
43
36
|
type $TParams = Partial<ExtendedUseIntlParams>;
|
|
44
37
|
/**
|
|
@@ -61,68 +54,73 @@ type RuleKey = string;
|
|
|
61
54
|
type RuleFn<TSupportedLocales extends SupportedLocales, TLocaleSet extends LocaleSet, TI18nStore extends I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>, TTypeSafe extends TypeSafe, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>, TValues = any> = (values: TValues, currentLocaleSet: ReturnType<TI18nStore['getCurrentLocaleSet']>) => TMessageId;
|
|
62
55
|
type Rules<TSupportedLocales extends SupportedLocales = SupportedLocales, TLocaleSet extends LocaleSet = LocaleSet, TTypeSafe extends TypeSafe = TypeSafe, TI18nStore extends I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe> = I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe> = SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe> = SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>> = Record<RuleKey, RuleFn<TSupportedLocales, TLocaleSet, TI18nStore, TTypeSafe, TSheetTitle, TMessageId>>;
|
|
63
56
|
|
|
64
|
-
|
|
65
|
-
sheetTitle: TSheetTitle;
|
|
66
|
-
i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
67
|
-
}
|
|
68
|
-
type GetTranslationReturn<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>> = {
|
|
57
|
+
type UseTranslationReturn<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Partial<Record<TSupportedLocales[number], Record<string, any>>>>, TTypeSafe extends boolean, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TRules extends Rules> = {
|
|
69
58
|
t: <TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>, TValues extends $TParams[0], TOpts extends $TParams[1], TDescriptor extends $TParams[2]>(id: TMessageId, values?: TValues, opts?: TOpts, _descriptor?: TDescriptor) => TTypeSafe extends true ? TMessageId : any;
|
|
70
59
|
} & {
|
|
71
60
|
t: {
|
|
72
61
|
dynamic: <TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>, TValues extends $TParams[0], TOpts extends $TParams[1], TDescriptor extends $TParams[2]>(id: string, values?: TValues, opts?: TOpts, _descriptor?: TDescriptor) => TTypeSafe extends true ? string : any;
|
|
73
|
-
|
|
62
|
+
rule: <TRuleKey extends keyof TRules, TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>>(ruleKey: TRuleKey, values?: Parameters<TRules[TRuleKey]>[0]) => TTypeSafe extends true ? TMessageId : any;
|
|
74
63
|
};
|
|
75
64
|
};
|
|
76
|
-
declare function getTranslation<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>>({ sheetTitle, i18nStore, }: GetTranslationParams<TSupportedLocales, TLocaleSet, TTypeSafe, TSheetTitle>): GetTranslationReturn<TSupportedLocales, TLocaleSet, TTypeSafe, TSheetTitle>;
|
|
77
65
|
|
|
78
|
-
|
|
79
|
-
sheetTitle: TSheetTitle;
|
|
80
|
-
i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
81
|
-
rules?: TRules;
|
|
82
|
-
}
|
|
83
|
-
type UseTranslationReturn<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Partial<Record<TSupportedLocales[number], Record<string, any>>>>, TTypeSafe extends boolean, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TRules extends Rules> = {
|
|
66
|
+
type GetTranslationReturn<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>> = {
|
|
84
67
|
t: <TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>, TValues extends $TParams[0], TOpts extends $TParams[1], TDescriptor extends $TParams[2]>(id: TMessageId, values?: TValues, opts?: TOpts, _descriptor?: TDescriptor) => TTypeSafe extends true ? TMessageId : any;
|
|
85
68
|
} & {
|
|
86
69
|
t: {
|
|
87
70
|
dynamic: <TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>, TValues extends $TParams[0], TOpts extends $TParams[1], TDescriptor extends $TParams[2]>(id: string, values?: TValues, opts?: TOpts, _descriptor?: TDescriptor) => TTypeSafe extends true ? string : any;
|
|
88
|
-
|
|
71
|
+
promise: <TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>, TValues extends $TParams[0], TOpts extends $TParams[1], TDescriptor extends $TParams[2]>(id: TMessageId, values?: TValues, opts?: TOpts, _descriptor?: TDescriptor) => TTypeSafe extends true ? Promise<TMessageId> : any;
|
|
89
72
|
};
|
|
90
73
|
};
|
|
91
|
-
declare function useTranslation<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TRules extends Rules, TTypeSafe extends boolean, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>>({ sheetTitle, i18nStore, rules, }: UseTranslationParams<TSupportedLocales, TLocaleSet, TRules, TTypeSafe, TSheetTitle>): UseTranslationReturn<TSupportedLocales, TLocaleSet, TTypeSafe, TSheetTitle, TRules>;
|
|
92
74
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
75
|
+
interface IStorageService<V extends string> {
|
|
76
|
+
getItem(key: string): V;
|
|
77
|
+
setItem(key: string, value: V): boolean;
|
|
78
|
+
removeItem(key: string): boolean;
|
|
79
|
+
clear(): boolean;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* locale storage manager
|
|
83
|
+
* implements ILocaleStorageManager (injected StorageService)
|
|
84
|
+
*/
|
|
85
|
+
interface ILocaleStorageManager<TSupportedLocales extends readonly string[]> {
|
|
86
|
+
getLocale(): TSupportedLocales[number];
|
|
87
|
+
setLocale(locale: TSupportedLocales[number]): void;
|
|
88
|
+
}
|
|
89
|
+
declare class LocaleStorageManager<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false> implements ILocaleStorageManager<TSupportedLocales> {
|
|
90
|
+
private readonly storageService;
|
|
91
|
+
private readonly i18nStore;
|
|
92
|
+
private readonly localeStorageKey;
|
|
93
|
+
observerManager: ObserverManager<TSupportedLocales[number]>;
|
|
94
|
+
constructor(storageService: IStorageService<TSupportedLocales[number]>, i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>, localeStorageKey?: string);
|
|
95
|
+
private initializeCurrentLocale;
|
|
96
|
+
getLocale: () => TSupportedLocales[number];
|
|
97
|
+
setLocale: (locale: TSupportedLocales[number]) => void;
|
|
98
|
+
}
|
|
99
99
|
|
|
100
100
|
declare function useLocaleStorage<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false>(localeStorageManager: LocaleStorageManager<TSupportedLocales, TLocaleSet, TTypeSafe>): {
|
|
101
101
|
locale: TSupportedLocales[number] | undefined;
|
|
102
102
|
};
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
interface StorageBasedIntlProviderProps<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false> {
|
|
105
105
|
i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
106
106
|
storageManager: LocaleStorageManager<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
107
107
|
fallbackUI?: React.ReactNode;
|
|
108
108
|
children: React.ReactNode;
|
|
109
|
-
}
|
|
109
|
+
}
|
|
110
110
|
declare function StorageBasedIntlProvider<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false>({ i18nStore, storageManager, fallbackUI, children, }: StorageBasedIntlProviderProps<TSupportedLocales, TLocaleSet, TTypeSafe>): string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null;
|
|
111
111
|
|
|
112
112
|
interface Plugins<TRules extends Rules> {
|
|
113
113
|
rules?: TRules;
|
|
114
114
|
}
|
|
115
|
-
|
|
116
|
-
IntlProvider: (
|
|
117
|
-
|
|
118
|
-
children?: React.ReactNode;
|
|
119
|
-
}) => react_jsx_runtime.JSX.Element;
|
|
120
|
-
StorageBasedIntlProvider: ({ storageManager, children, }: Omit<StorageBasedIntlProviderProps<TSupportedLocales, TLocaleSet, TTypeSafe>, "i18nStore">) => react_jsx_runtime.JSX.Element;
|
|
115
|
+
type CreateI18nContextReturn<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TRules extends Rules, TTypeSafe extends boolean = false> = {
|
|
116
|
+
IntlProvider: (props: IntlProviderProps<TSupportedLocales, TLocaleSet, TTypeSafe>) => ReturnType<typeof IntlProvider<TSupportedLocales, TLocaleSet, TTypeSafe>>;
|
|
117
|
+
StorageBasedIntlProvider: (props: StorageBasedIntlProviderProps<TSupportedLocales, TLocaleSet, TTypeSafe>) => ReturnType<typeof StorageBasedIntlProvider<TSupportedLocales, TLocaleSet, TTypeSafe>>;
|
|
121
118
|
useTranslation: <TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>>(sheetTitle: TSheetTitle) => UseTranslationReturn<TSupportedLocales, TLocaleSet, TTypeSafe, TSheetTitle, TRules>;
|
|
122
119
|
getTranslation: <TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>>(sheetTitle: TSheetTitle) => GetTranslationReturn<TSupportedLocales, TLocaleSet, TTypeSafe, TSheetTitle>;
|
|
123
120
|
getLocaleStorageManager: (storageService?: IStorageService<string>) => LocaleStorageManager<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
124
121
|
useLocaleStorage: typeof useLocaleStorage;
|
|
125
122
|
};
|
|
123
|
+
declare function createI18nContext<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TRules extends Rules, TTypeSafe extends boolean = false>(i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>, plugins?: Plugins<TRules>): CreateI18nContextReturn<TSupportedLocales, TLocaleSet, TRules, TTypeSafe>;
|
|
126
124
|
|
|
127
125
|
declare class RuleService<TSupportedLocales extends SupportedLocales, TLocaleSet extends LocaleSet, TTypeSafe extends TypeSafe, TSheetTitle extends SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TMessageId extends SafeMessageId<TSupportedLocales, TLocaleSet, TSheetTitle, TTypeSafe>> {
|
|
128
126
|
private readonly i18nStore;
|
|
@@ -131,4 +129,4 @@ declare class RuleService<TSupportedLocales extends SupportedLocales, TLocaleSet
|
|
|
131
129
|
}
|
|
132
130
|
declare const ruleFactory: <TSupportedLocales extends SupportedLocales, TLocaleSet extends LocaleSet, TTypeSafe extends TypeSafe>(i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>) => RuleService<TSupportedLocales, TLocaleSet, TTypeSafe, SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, SafeMessageId<TSupportedLocales, TLocaleSet, SafeSheetTitle<TSupportedLocales, TLocaleSet, TTypeSafe>, TTypeSafe>>;
|
|
133
131
|
|
|
134
|
-
export { type IStorageService
|
|
132
|
+
export { type IStorageService as Storage, createI18nContext, ruleFactory };
|
package/dist/index.js
CHANGED
|
@@ -38,14 +38,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
38
38
|
// src/index.ts
|
|
39
39
|
var src_exports = {};
|
|
40
40
|
__export(src_exports, {
|
|
41
|
-
IntlProvider: () => IntlProvider,
|
|
42
|
-
LocaleStorageManager: () => LocaleStorageManager,
|
|
43
|
-
StorageBasedIntlProvider: () => StorageBasedIntlProvider,
|
|
44
41
|
createI18nContext: () => createI18nContext,
|
|
45
|
-
|
|
46
|
-
getTranslation: () => getTranslation,
|
|
47
|
-
ruleFactory: () => ruleFactory,
|
|
48
|
-
useTranslation: () => useTranslation
|
|
42
|
+
ruleFactory: () => ruleFactory
|
|
49
43
|
});
|
|
50
44
|
module.exports = __toCommonJS(src_exports);
|
|
51
45
|
|
|
@@ -568,12 +562,6 @@ var ruleFactory = (i18nStore) => {
|
|
|
568
562
|
};
|
|
569
563
|
// Annotate the CommonJS export names for ESM import in node:
|
|
570
564
|
0 && (module.exports = {
|
|
571
|
-
IntlProvider,
|
|
572
|
-
LocaleStorageManager,
|
|
573
|
-
StorageBasedIntlProvider,
|
|
574
565
|
createI18nContext,
|
|
575
|
-
|
|
576
|
-
getTranslation,
|
|
577
|
-
ruleFactory,
|
|
578
|
-
useTranslation
|
|
566
|
+
ruleFactory
|
|
579
567
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -537,12 +537,6 @@ var ruleFactory = (i18nStore) => {
|
|
|
537
537
|
return new RuleService(i18nStore);
|
|
538
538
|
};
|
|
539
539
|
export {
|
|
540
|
-
IntlProvider,
|
|
541
|
-
LocaleStorageManager,
|
|
542
|
-
StorageBasedIntlProvider,
|
|
543
540
|
createI18nContext,
|
|
544
|
-
|
|
545
|
-
getTranslation,
|
|
546
|
-
ruleFactory,
|
|
547
|
-
useTranslation
|
|
541
|
+
ruleFactory
|
|
548
542
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sheet-i18n/react-client",
|
|
3
|
-
"version": "1.6.0-canary.
|
|
3
|
+
"version": "1.6.0-canary.8",
|
|
4
4
|
"description": "a client package for react modules used by sheet-i18n",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@sheet-i18n/errors": "1.8.1",
|
|
29
29
|
"@sheet-i18n/shared-utils": "1.8.2",
|
|
30
|
-
"@sheet-i18n/react-core": "1.6.0-canary.
|
|
30
|
+
"@sheet-i18n/react-core": "1.6.0-canary.8"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/react": "^19.0.2",
|