@mmstack/translate 20.0.0 → 20.0.2
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/fesm2022/mmstack-translate.mjs +39 -29
- package/fesm2022/mmstack-translate.mjs.map +1 -1
- package/index.d.ts +95 -6
- package/package.json +2 -2
- package/lib/compile.d.ts +0 -24
- package/lib/create-namespace.d.ts +0 -9
- package/lib/delim.d.ts +0 -2
- package/lib/parameterize.type.d.ts +0 -31
- package/lib/register-namespace.d.ts +0 -16
- package/lib/string-key-object.type.d.ts +0 -1
- package/lib/translate.directive.d.ts +0 -10
- package/lib/translate.pipe.d.ts +0 -6
- package/lib/translation.store.d.ts +0 -21
|
@@ -69,22 +69,22 @@ function injectDefaultLocale() {
|
|
|
69
69
|
class TranslationStore {
|
|
70
70
|
cache = createIntlCache();
|
|
71
71
|
config = injectIntlConfig();
|
|
72
|
-
locale = signal(inject(LOCALE_ID));
|
|
72
|
+
locale = signal(inject(LOCALE_ID), ...(ngDevMode ? [{ debugName: "locale" }] : []));
|
|
73
73
|
defaultLocale = injectDefaultLocale();
|
|
74
74
|
translations = signal({
|
|
75
75
|
[this.defaultLocale]: {},
|
|
76
|
-
});
|
|
76
|
+
}, ...(ngDevMode ? [{ debugName: "translations" }] : []));
|
|
77
77
|
nonMessageConfig = computed(() => ({
|
|
78
78
|
...this.config,
|
|
79
79
|
locale: this.locale(),
|
|
80
|
-
}));
|
|
80
|
+
}), ...(ngDevMode ? [{ debugName: "nonMessageConfig" }] : []));
|
|
81
81
|
messages = computed(() => this.translations()[this.locale()] ??
|
|
82
82
|
this.translations()[this.defaultLocale] ??
|
|
83
|
-
{});
|
|
83
|
+
{}, ...(ngDevMode ? [{ debugName: "messages" }] : []));
|
|
84
84
|
intl = computed(() => createIntl({
|
|
85
85
|
...this.nonMessageConfig(),
|
|
86
86
|
messages: this.messages(),
|
|
87
|
-
}, this.cache));
|
|
87
|
+
}, this.cache), ...(ngDevMode ? [{ debugName: "intl" }] : []));
|
|
88
88
|
formatMessage(key, values) {
|
|
89
89
|
const message = this.translations()[this.locale()]?.[key] ?? '';
|
|
90
90
|
if (!message)
|
|
@@ -108,10 +108,10 @@ class TranslationStore {
|
|
|
108
108
|
}, { ...cur });
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
112
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
111
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: TranslationStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
112
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: TranslationStore, providedIn: 'root' });
|
|
113
113
|
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: TranslationStore, decorators: [{
|
|
115
115
|
type: Injectable,
|
|
116
116
|
args: [{
|
|
117
117
|
providedIn: 'root',
|
|
@@ -188,7 +188,6 @@ function registerNamespace(defaultTranslation, other) {
|
|
|
188
188
|
if (promise !== defaultTranslation &&
|
|
189
189
|
translation.locale !== locale &&
|
|
190
190
|
isDevMode()) {
|
|
191
|
-
console.log('hre');
|
|
192
191
|
return console.warn(`Expected locale to be ${locale} but got ${translation.locale}`);
|
|
193
192
|
}
|
|
194
193
|
store.register(translation.namespace, {
|
|
@@ -212,38 +211,49 @@ function registerNamespace(defaultTranslation, other) {
|
|
|
212
211
|
|
|
213
212
|
class BaseTranslateDirective {
|
|
214
213
|
t = createT(inject(TranslationStore));
|
|
215
|
-
translate = input.required();
|
|
214
|
+
translate = input.required(...(ngDevMode ? [{ debugName: "translate" }] : []));
|
|
216
215
|
constructor() {
|
|
217
216
|
const key = computed(() => {
|
|
218
217
|
const vars = this.translate();
|
|
219
218
|
return (Array.isArray(vars) ? vars[0] : vars);
|
|
220
|
-
});
|
|
219
|
+
}, ...(ngDevMode ? [{ debugName: "key" }] : []));
|
|
221
220
|
const args = computed(() => {
|
|
222
221
|
const vars = this.translate();
|
|
223
222
|
return (Array.isArray(vars) ? vars[1] : undefined);
|
|
224
|
-
}, {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
return
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
223
|
+
}, ...(ngDevMode ? [{ debugName: "args", equal: (a, b) => {
|
|
224
|
+
if (a === undefined && b === undefined)
|
|
225
|
+
return true;
|
|
226
|
+
if (a === undefined || b === undefined)
|
|
227
|
+
return false;
|
|
228
|
+
const aObj = a;
|
|
229
|
+
const keys = Object.keys(aObj);
|
|
230
|
+
const bObj = b;
|
|
231
|
+
if (!keys.length)
|
|
232
|
+
return !Object.keys(bObj).length;
|
|
233
|
+
return keys.every((key) => aObj[key] === bObj[key]);
|
|
234
|
+
} }] : [{
|
|
235
|
+
equal: (a, b) => {
|
|
236
|
+
if (a === undefined && b === undefined)
|
|
237
|
+
return true;
|
|
238
|
+
if (a === undefined || b === undefined)
|
|
239
|
+
return false;
|
|
240
|
+
const aObj = a;
|
|
241
|
+
const keys = Object.keys(aObj);
|
|
242
|
+
const bObj = b;
|
|
243
|
+
if (!keys.length)
|
|
244
|
+
return !Object.keys(bObj).length;
|
|
245
|
+
return keys.every((key) => aObj[key] === bObj[key]);
|
|
246
|
+
},
|
|
247
|
+
}]));
|
|
248
|
+
const translation = computed(() => this.t(key(), args()), ...(ngDevMode ? [{ debugName: "translation" }] : []));
|
|
239
249
|
const renderer = inject(Renderer2);
|
|
240
250
|
const el = inject(ElementRef);
|
|
241
251
|
effect(() => renderer.setProperty(el.nativeElement, 'textContent', translation()));
|
|
242
252
|
}
|
|
243
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
244
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0
|
|
253
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BaseTranslateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
254
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.0", type: BaseTranslateDirective, isStandalone: true, inputs: { translate: { classPropertyName: "translate", publicName: "translate", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });
|
|
245
255
|
}
|
|
246
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
256
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BaseTranslateDirective, decorators: [{
|
|
247
257
|
type: Directive
|
|
248
258
|
}], ctorParameters: () => [] });
|
|
249
259
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mmstack-translate.mjs","sources":["../../../../packages/translate/src/lib/delim.ts","../../../../packages/translate/src/lib/compile.ts","../../../../packages/translate/src/lib/create-namespace.ts","../../../../packages/translate/src/lib/translation.store.ts","../../../../packages/translate/src/lib/register-namespace.ts","../../../../packages/translate/src/lib/translate.directive.ts","../../../../packages/translate/src/lib/translate.pipe.ts","../../../../packages/translate/src/mmstack-translate.ts"],"sourcesContent":["const KEY_DELIM = '::MMT_DELIM::';\r\n\r\nexport function prependDelim(prefix: string, key: string): string {\r\n return `${prefix}${KEY_DELIM}${key}`;\r\n}\r\n\r\nexport function replaceWithDelim(str: string, repl = '.'): string {\r\n return str.replaceAll(repl, KEY_DELIM);\r\n}\r\n","import { prependDelim } from './delim';\r\nimport type {\r\n inferTranslationParamMap,\r\n inferTranslationShape,\r\n} from './parameterize.type';\r\nimport type { UnknownStringKeyObject } from './string-key-object.type';\r\n\r\nconst INTERNAL_SYMBOL = Symbol.for('mmstack-translate-internal');\r\n\r\ntype InternalSymbol = typeof INTERNAL_SYMBOL;\r\n\r\nexport type CompiledTranslation<\r\n T extends UnknownStringKeyObject,\r\n TNS extends string,\r\n TLocale extends string = string,\r\n> = {\r\n flat: Record<string, string>;\r\n locale?: TLocale;\r\n namespace: TNS;\r\n [INTERNAL_SYMBOL]: {\r\n shape: inferTranslationShape<T>;\r\n map: inferTranslationParamMap<TNS, T>;\r\n };\r\n};\r\n\r\nexport type mergeTranslationMaps<\r\n TMain extends CompiledTranslation<UnknownStringKeyObject, string>,\r\n TOther extends CompiledTranslation<UnknownStringKeyObject, string>,\r\n> = Omit<TMain, InternalSymbol> & {\r\n [INTERNAL_SYMBOL]: {\r\n shape: inferCompiledTranslationShape<TMain>;\r\n map: inferCompiledTranslationMap<TOther> &\r\n inferCompiledTranslationMap<TMain>;\r\n };\r\n};\r\n\r\nexport type inferCompiledTranslationNamespace<\r\n T extends CompiledTranslation<UnknownStringKeyObject, string>,\r\n> = T['namespace'];\r\n\r\nexport type inferCompiledTranslationShape<\r\n T extends CompiledTranslation<UnknownStringKeyObject, string>,\r\n> = T[InternalSymbol]['shape'];\r\n\r\nexport type inferCompiledTranslationMap<\r\n T extends CompiledTranslation<UnknownStringKeyObject, string>,\r\n> = T[InternalSymbol]['map'];\r\n\r\nfunction isTranslationObject(t: unknown): t is UnknownStringKeyObject {\r\n return typeof t === 'object' && t !== null;\r\n}\r\n\r\nfunction flattenTranslation<T extends UnknownStringKeyObject>(obj: T) {\r\n return Object.entries(obj).reduce(\r\n (acc, [key, value]) => {\r\n if (typeof value === 'string') {\r\n acc[key] = value;\r\n } else if (isTranslationObject(value)) {\r\n Object.entries(flattenTranslation(value)).forEach(\r\n ([nestedKey, nestedValue]) => {\r\n acc[prependDelim(key, nestedKey)] = nestedValue;\r\n },\r\n );\r\n }\r\n\r\n return acc;\r\n },\r\n {} as Record<string, string>,\r\n );\r\n}\r\n\r\nexport function compileTranslation<\r\n T extends UnknownStringKeyObject,\r\n TNS extends string,\r\n TLocale extends string = string,\r\n>(\r\n translation: T,\r\n ns: TNS,\r\n locale?: TLocale,\r\n): CompiledTranslation<T, TNS, TLocale> {\r\n type $Shape = inferTranslationShape<T>;\r\n type $Map = inferTranslationParamMap<TNS, T>;\r\n\r\n return {\r\n locale,\r\n flat: flattenTranslation(translation),\r\n namespace: ns,\r\n [INTERNAL_SYMBOL]: {\r\n shape: {} as $Shape,\r\n map: {} as $Map,\r\n },\r\n };\r\n}\r\n","import {\r\n CompiledTranslation,\r\n compileTranslation,\r\n inferCompiledTranslationShape,\r\n mergeTranslationMaps,\r\n} from './compile';\r\nimport { UnknownStringKeyObject } from './string-key-object.type';\r\n\r\ntype TranslationNamespace<\r\n TNS extends string,\r\n T extends CompiledTranslation<UnknownStringKeyObject, TNS>,\r\n TShape extends UnknownStringKeyObject,\r\n> = {\r\n translation: T;\r\n createTranslation: <TLocale extends string>(\r\n locale: TLocale,\r\n translation: TShape,\r\n ) => CompiledTranslation<TShape, TNS, TLocale>;\r\n createMergedNamespace: <\r\n TOtherNS extends string,\r\n const TOther extends UnknownStringKeyObject,\r\n TOtherCompiled extends CompiledTranslation<TOther, TOtherNS>,\r\n >(\r\n ns: TOtherNS,\r\n translation: TOther,\r\n ) => TranslationNamespace<\r\n TOtherNS,\r\n mergeTranslationMaps<TOtherCompiled, T>,\r\n inferCompiledTranslationShape<TOtherCompiled>\r\n >;\r\n};\r\n\r\nexport function createNamespace<\r\n const T extends UnknownStringKeyObject,\r\n TNS extends string,\r\n>(ns: TNS, translation: T) {\r\n const compiled = compileTranslation<T, TNS>(translation, ns);\r\n\r\n type TCompiled = typeof compiled;\r\n type TShape = inferCompiledTranslationShape<typeof compiled>;\r\n\r\n const namespace: TranslationNamespace<TNS, TCompiled, TShape> = {\r\n translation: compileTranslation(translation, ns),\r\n createTranslation: <TLocale extends string>(\r\n locale: TLocale,\r\n translation: TShape,\r\n ) => {\r\n return compileTranslation(translation, ns, locale);\r\n },\r\n createMergedNamespace: <\r\n TOther extends UnknownStringKeyObject,\r\n TOtherNS extends string,\r\n TOtherCompiled extends CompiledTranslation<\r\n TOther,\r\n TOtherNS\r\n > = CompiledTranslation<TOther, TOtherNS>,\r\n >(\r\n otherNs: TOtherNS,\r\n otherTranslation: TOther,\r\n ) => {\r\n return createNamespace(otherNs, otherTranslation) as TranslationNamespace<\r\n TOtherNS,\r\n mergeTranslationMaps<TOtherCompiled, TCompiled>,\r\n inferCompiledTranslationShape<TOtherCompiled>\r\n > as unknown as any;\r\n },\r\n };\r\n\r\n return namespace;\r\n}\r\n","import {\r\n computed,\r\n inject,\r\n Injectable,\r\n InjectionToken,\r\n LOCALE_ID,\r\n Provider,\r\n signal,\r\n} from '@angular/core';\r\nimport { createIntl, createIntlCache, IntlConfig } from '@formatjs/intl';\r\nimport { prependDelim } from './delim';\r\n\r\nconst CONFIG_TOKEN = new InjectionToken<\r\n Omit<IntlConfig, 'locale' | 'messages'>\r\n>('mmstack-intl-config');\r\n\r\nexport function provideIntlConfig(\r\n config: Omit<IntlConfig, 'locale' | 'messages'>,\r\n): Provider {\r\n return {\r\n useValue: config,\r\n provide: CONFIG_TOKEN,\r\n };\r\n}\r\n\r\nexport function injectIntlConfig() {\r\n return inject(CONFIG_TOKEN, { optional: true }) ?? undefined;\r\n}\r\n\r\nexport function injectDefaultLocale() {\r\n return injectIntlConfig()?.defaultLocale ?? 'en-US';\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TranslationStore {\r\n private readonly cache = createIntlCache();\r\n private readonly config = injectIntlConfig();\r\n private readonly locale = signal(inject(LOCALE_ID));\r\n private readonly defaultLocale = injectDefaultLocale();\r\n private readonly translations = signal<\r\n Record<string, Record<string, string>>\r\n >({\r\n [this.defaultLocale]: {},\r\n });\r\n\r\n private readonly nonMessageConfig = computed(() => ({\r\n ...this.config,\r\n locale: this.locale(),\r\n }));\r\n\r\n private readonly messages = computed(\r\n () =>\r\n this.translations()[this.locale()] ??\r\n this.translations()[this.defaultLocale] ??\r\n {},\r\n );\r\n\r\n readonly intl = computed(() =>\r\n createIntl(\r\n {\r\n ...this.nonMessageConfig(),\r\n messages: this.messages(),\r\n },\r\n this.cache,\r\n ),\r\n );\r\n\r\n formatMessage(key: string, values?: Record<string, string | number>) {\r\n const message = this.translations()[this.locale()]?.[key] ?? '';\r\n\r\n if (!message) return '';\r\n\r\n return this.intl().formatMessage(\r\n { id: key, defaultMessage: message },\r\n values,\r\n );\r\n }\r\n\r\n register(\r\n namespace: string,\r\n flat: Partial<Record<string, Record<string, string>>>,\r\n locale: string,\r\n ) {\r\n this.locale.set(locale);\r\n this.translations.update((cur) => {\r\n return Object.entries(flat).reduce(\r\n (acc, [locale, translation]) => {\r\n const localeTranslation = acc[locale] ?? {};\r\n\r\n const withNS = Object.entries(translation ?? {}).reduce(\r\n (acc, [key, value]) => {\r\n acc[prependDelim(namespace, key)] = value;\r\n return acc;\r\n },\r\n {} as Record<string, string>,\r\n );\r\n\r\n acc[locale] = {\r\n ...localeTranslation,\r\n ...withNS,\r\n };\r\n\r\n return acc;\r\n },\r\n { ...cur },\r\n );\r\n });\r\n }\r\n}\r\n\r\nexport function injectIntl() {\r\n return inject(TranslationStore).intl;\r\n}\r\n","import {\r\n computed,\r\n inject,\r\n isDevMode,\r\n isSignal,\r\n LOCALE_ID,\r\n Signal,\r\n} from '@angular/core';\r\nimport { CompiledTranslation, inferCompiledTranslationMap } from './compile';\r\nimport { replaceWithDelim } from './delim';\r\nimport { UnknownStringKeyObject } from './string-key-object.type';\r\nimport { TranslationStore } from './translation.store';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\ntype AnyStringRecord = Record<string, any>;\r\n\r\nfunction createEqualsRecord<T extends AnyStringRecord>(keys: (keyof T)[] = []) {\r\n let keyMatcher: (a: T, b: T) => boolean;\r\n\r\n if (keys.length === 0) {\r\n keyMatcher = () => true;\r\n } else if (keys.length === 1) {\r\n const key = keys[0];\r\n keyMatcher = (a, b) => a[key] === b[key];\r\n } else {\r\n keyMatcher = (a, b) => {\r\n return keys.every((k) => a[k] === b[k]);\r\n };\r\n }\r\n\r\n return (a?: T, b?: T): boolean => {\r\n if (!a && !b) return true;\r\n if (!a || !b) return false;\r\n return keyMatcher(a, b);\r\n };\r\n}\r\n\r\ntype TFunction<TMap extends AnyStringRecord> = <\r\n TKey extends keyof TMap & string,\r\n>(\r\n key: TKey,\r\n ...args: TMap[TKey] extends void ? [] : [TMap[TKey]]\r\n) => string;\r\n\r\ntype SignalTFunction<TMap extends AnyStringRecord> = <\r\n TKey extends keyof TMap & string,\r\n>(\r\n key: TKey,\r\n ...args: TMap[TKey] extends void ? [] : [() => TMap[TKey]]\r\n) => Signal<string>;\r\n\r\ntype TFunctionWithSignalConstructor<\r\n TMap extends AnyStringRecord,\r\n TFN extends TFunction<TMap>,\r\n> = TFN & {\r\n asSignal: SignalTFunction<TMap>;\r\n};\r\n\r\nfunction addSignalFn<TMap extends AnyStringRecord, TFn extends TFunction<TMap>>(\r\n fn: TFn,\r\n store: TranslationStore,\r\n): TFunctionWithSignalConstructor<TMap, TFn> {\r\n const withSig = fn as TFunctionWithSignalConstructor<TMap, TFn>;\r\n\r\n const asSignal = <TKey extends keyof TMap & string>(\r\n key: TKey,\r\n ...args: TMap[TKey] extends void ? [] : [() => TMap[TKey]]\r\n ): Signal<string> => {\r\n const variables = args[0] as () => AnyStringRecord | undefined;\r\n const stringKey = key as string;\r\n\r\n const flatPath = replaceWithDelim(stringKey);\r\n\r\n const varsFn = variables === undefined ? () => undefined : variables;\r\n const varsSignal = isSignal(varsFn)\r\n ? varsFn\r\n : computed(varsFn, {\r\n equal: createEqualsRecord(Object.keys(varsFn() ?? {})),\r\n });\r\n\r\n return computed(() => store.formatMessage(flatPath, varsSignal()));\r\n };\r\n\r\n withSig.asSignal = asSignal;\r\n\r\n return withSig;\r\n}\r\n\r\nexport function createT<TMap extends AnyStringRecord>(\r\n store: TranslationStore,\r\n): TFunction<TMap> {\r\n return <TKey extends keyof TMap & string>(\r\n key: TKey,\r\n ...args: TMap[TKey] extends void ? [] : [TMap[TKey]]\r\n ): string => {\r\n const variables = args[0] as AnyStringRecord | undefined;\r\n const stringKey = key as string;\r\n\r\n return store.formatMessage(replaceWithDelim(stringKey), variables);\r\n };\r\n}\r\n\r\nexport function registerNamespace<\r\n TDefault extends CompiledTranslation<UnknownStringKeyObject, string>,\r\n TOther extends CompiledTranslation<UnknownStringKeyObject, string>,\r\n>(\r\n defaultTranslation: () => Promise<TDefault>,\r\n other: Record<string, () => Promise<TOther>>,\r\n) {\r\n type $Map = inferCompiledTranslationMap<TDefault>;\r\n type $BaseTFN = TFunction<$Map>;\r\n type $TFN = TFunctionWithSignalConstructor<$Map, $BaseTFN>;\r\n\r\n const injectT = (): $TFN => {\r\n const store = inject(TranslationStore);\r\n\r\n return addSignalFn(createT(store), store);\r\n };\r\n\r\n let defaultTranslationLoaded = false;\r\n const resolver = async () => {\r\n const locale = inject(LOCALE_ID);\r\n const store = inject(TranslationStore);\r\n\r\n const tPromise = other[locale] as (() => Promise<TOther>) | undefined;\r\n\r\n const promise = tPromise ?? defaultTranslation;\r\n if (!promise && isDevMode()) {\r\n return console.warn(`No translation found for locale: ${locale}`);\r\n }\r\n\r\n if (promise === defaultTranslation && defaultTranslationLoaded) return;\r\n\r\n try {\r\n const translation = await promise();\r\n\r\n if (\r\n promise !== defaultTranslation &&\r\n translation.locale !== locale &&\r\n isDevMode()\r\n ) {\r\n console.log('hre');\r\n return console.warn(\r\n `Expected locale to be ${locale} but got ${translation.locale}`,\r\n );\r\n }\r\n\r\n store.register(\r\n translation.namespace,\r\n {\r\n [locale]: translation.flat,\r\n },\r\n locale,\r\n );\r\n if (promise === defaultTranslation) {\r\n defaultTranslationLoaded = true;\r\n }\r\n } catch {\r\n if (isDevMode()) {\r\n console.warn(`Failed to load translation for locale: ${locale}`);\r\n }\r\n }\r\n };\r\n\r\n return {\r\n injectNamespaceT: injectT,\r\n resolveNamespaceTranslation: resolver,\r\n };\r\n}\r\n","import {\r\n computed,\r\n Directive,\r\n effect,\r\n ElementRef,\r\n inject,\r\n input,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { CompiledTranslation, inferCompiledTranslationMap } from './compile';\r\nimport { createT } from './register-namespace';\r\nimport { UnknownStringKeyObject } from './string-key-object.type';\r\nimport { TranslationStore } from './translation.store';\r\n\r\n@Directive()\r\nexport abstract class BaseTranslateDirective<\r\n TInput extends string,\r\n T extends CompiledTranslation<UnknownStringKeyObject, string>,\r\n TMap extends inferCompiledTranslationMap<T> = inferCompiledTranslationMap<T>,\r\n TKey extends TInput & keyof TMap & string = TInput & keyof TMap & string,\r\n> {\r\n private readonly t = createT(inject(TranslationStore));\r\n\r\n readonly translate =\r\n input.required<\r\n TMap[TKey] extends void\r\n ? TKey | [key: TKey]\r\n : [key: TKey, vars: TMap[TKey]]\r\n >();\r\n\r\n constructor() {\r\n const key = computed(() => {\r\n const vars = this.translate();\r\n return (Array.isArray(vars) ? vars[0] : vars) as TKey;\r\n });\r\n\r\n const args = computed(\r\n () => {\r\n const vars = this.translate();\r\n return (Array.isArray(vars) ? vars[1] : undefined) as TMap[TKey];\r\n },\r\n {\r\n equal: (a, b) => {\r\n if (a === undefined && b === undefined) return true;\r\n if (a === undefined || b === undefined) return false;\r\n\r\n const aObj = a as Record<string, string>;\r\n const keys = Object.keys(aObj);\r\n const bObj = b as Record<string, string>;\r\n\r\n if (!keys.length) return !Object.keys(bObj).length;\r\n\r\n return keys.every((key) => aObj[key] === bObj[key]);\r\n },\r\n },\r\n );\r\n\r\n const translation = computed(() => this.t(key(), args()));\r\n\r\n const renderer = inject(Renderer2);\r\n const el = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\r\n effect(() =>\r\n renderer.setProperty(el.nativeElement, 'textContent', translation()),\r\n );\r\n }\r\n}\r\n","import { inject } from '@angular/core';\r\nimport { CompiledTranslation, inferCompiledTranslationMap } from './compile';\r\nimport { createT } from './register-namespace';\r\nimport { UnknownStringKeyObject } from './string-key-object.type';\r\nimport { TranslationStore } from './translation.store';\r\n\r\nexport abstract class BaseTranslatePipe<\r\n T extends CompiledTranslation<UnknownStringKeyObject, string>,\r\n TMap extends inferCompiledTranslationMap<T> = inferCompiledTranslationMap<T>,\r\n> {\r\n private readonly t = createT<TMap>(inject(TranslationStore));\r\n\r\n transform<K extends keyof TMap & string>(\r\n key: K,\r\n ...args: TMap[K] extends void ? [] : [TMap[K]]\r\n ): string {\r\n return this.t(key, ...args);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mmstack-translate.mjs","sources":["../tmp-esm2022/lib/delim.js","../tmp-esm2022/lib/compile.js","../tmp-esm2022/lib/create-namespace.js","../tmp-esm2022/lib/translation.store.js","../tmp-esm2022/lib/register-namespace.js","../tmp-esm2022/lib/translate.directive.js","../tmp-esm2022/lib/translate.pipe.js","../tmp-esm2022/mmstack-translate.js"],"sourcesContent":["const KEY_DELIM = '::MMT_DELIM::';\nexport function prependDelim(prefix, key) {\n return `${prefix}${KEY_DELIM}${key}`;\n}\nexport function replaceWithDelim(str, repl = '.') {\n return str.replaceAll(repl, KEY_DELIM);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90cmFuc2xhdGUvc3JjL2xpYi9kZWxpbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUM7QUFFbEMsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUFjLEVBQUUsR0FBVztJQUN0RCxPQUFPLEdBQUcsTUFBTSxHQUFHLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEdBQVcsRUFBRSxJQUFJLEdBQUcsR0FBRztJQUN0RCxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBLRVlfREVMSU0gPSAnOjpNTVRfREVMSU06Oic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJlcGVuZERlbGltKHByZWZpeDogc3RyaW5nLCBrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIGAke3ByZWZpeH0ke0tFWV9ERUxJTX0ke2tleX1gO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZVdpdGhEZWxpbShzdHI6IHN0cmluZywgcmVwbCA9ICcuJyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHN0ci5yZXBsYWNlQWxsKHJlcGwsIEtFWV9ERUxJTSk7XHJcbn1cclxuIl19","import { prependDelim } from './delim';\nconst INTERNAL_SYMBOL = Symbol.for('mmstack-translate-internal');\nfunction isTranslationObject(t) {\n return typeof t === 'object' && t !== null;\n}\nfunction flattenTranslation(obj) {\n return Object.entries(obj).reduce((acc, [key, value]) => {\n if (typeof value === 'string') {\n acc[key] = value;\n }\n else if (isTranslationObject(value)) {\n Object.entries(flattenTranslation(value)).forEach(([nestedKey, nestedValue]) => {\n acc[prependDelim(key, nestedKey)] = nestedValue;\n });\n }\n return acc;\n }, {});\n}\nexport function compileTranslation(translation, ns, locale) {\n return {\n locale,\n flat: flattenTranslation(translation),\n namespace: ns,\n [INTERNAL_SYMBOL]: {\n shape: {},\n map: {},\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RyYW5zbGF0ZS9zcmMvbGliL2NvbXBpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU92QyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUF5Q2pFLFNBQVMsbUJBQW1CLENBQUMsQ0FBVTtJQUNyQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFtQyxHQUFNO0lBQ2xFLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQy9CLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDcEIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ25CLENBQUM7YUFBTSxJQUFJLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDL0MsQ0FBQyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO2dCQUMzQixHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQztZQUNsRCxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFDRCxFQUE0QixDQUM3QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FLaEMsV0FBYyxFQUNkLEVBQU8sRUFDUCxNQUFnQjtJQUtoQixPQUFPO1FBQ0wsTUFBTTtRQUNOLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7UUFDckMsU0FBUyxFQUFFLEVBQUU7UUFDYixDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ2pCLEtBQUssRUFBRSxFQUFZO1lBQ25CLEdBQUcsRUFBRSxFQUFVO1NBQ2hCO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcmVwZW5kRGVsaW0gfSBmcm9tICcuL2RlbGltJztcclxuaW1wb3J0IHR5cGUge1xyXG4gIGluZmVyVHJhbnNsYXRpb25QYXJhbU1hcCxcclxuICBpbmZlclRyYW5zbGF0aW9uU2hhcGUsXHJcbn0gZnJvbSAnLi9wYXJhbWV0ZXJpemUudHlwZSc7XHJcbmltcG9ydCB0eXBlIHsgVW5rbm93blN0cmluZ0tleU9iamVjdCB9IGZyb20gJy4vc3RyaW5nLWtleS1vYmplY3QudHlwZSc7XHJcblxyXG5jb25zdCBJTlRFUk5BTF9TWU1CT0wgPSBTeW1ib2wuZm9yKCdtbXN0YWNrLXRyYW5zbGF0ZS1pbnRlcm5hbCcpO1xyXG5cclxudHlwZSBJbnRlcm5hbFN5bWJvbCA9IHR5cGVvZiBJTlRFUk5BTF9TWU1CT0w7XHJcblxyXG5leHBvcnQgdHlwZSBDb21waWxlZFRyYW5zbGF0aW9uPFxyXG4gIFQgZXh0ZW5kcyBVbmtub3duU3RyaW5nS2V5T2JqZWN0LFxyXG4gIFROUyBleHRlbmRzIHN0cmluZyxcclxuICBUTG9jYWxlIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxyXG4+ID0ge1xyXG4gIGZsYXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbiAgbG9jYWxlPzogVExvY2FsZTtcclxuICBuYW1lc3BhY2U6IFROUztcclxuICBbSU5URVJOQUxfU1lNQk9MXToge1xyXG4gICAgc2hhcGU6IGluZmVyVHJhbnNsYXRpb25TaGFwZTxUPjtcclxuICAgIG1hcDogaW5mZXJUcmFuc2xhdGlvblBhcmFtTWFwPFROUywgVD47XHJcbiAgfTtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIG1lcmdlVHJhbnNsYXRpb25NYXBzPFxyXG4gIFRNYWluIGV4dGVuZHMgQ29tcGlsZWRUcmFuc2xhdGlvbjxVbmtub3duU3RyaW5nS2V5T2JqZWN0LCBzdHJpbmc+LFxyXG4gIFRPdGhlciBleHRlbmRzIENvbXBpbGVkVHJhbnNsYXRpb248VW5rbm93blN0cmluZ0tleU9iamVjdCwgc3RyaW5nPixcclxuPiA9IE9taXQ8VE1haW4sIEludGVybmFsU3ltYm9sPiAmIHtcclxuICBbSU5URVJOQUxfU1lNQk9MXToge1xyXG4gICAgc2hhcGU6IGluZmVyQ29tcGlsZWRUcmFuc2xhdGlvblNoYXBlPFRNYWluPjtcclxuICAgIG1hcDogaW5mZXJDb21waWxlZFRyYW5zbGF0aW9uTWFwPFRPdGhlcj4gJlxyXG4gICAgICBpbmZlckNvbXBpbGVkVHJhbnNsYXRpb25NYXA8VE1haW4+O1xyXG4gIH07XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBpbmZlckNvbXBpbGVkVHJhbnNsYXRpb25OYW1lc3BhY2U8XHJcbiAgVCBleHRlbmRzIENvbXBpbGVkVHJhbnNsYXRpb248VW5rbm93blN0cmluZ0tleU9iamVjdCwgc3RyaW5nPixcclxuPiA9IFRbJ25hbWVzcGFjZSddO1xyXG5cclxuZXhwb3J0IHR5cGUgaW5mZXJDb21waWxlZFRyYW5zbGF0aW9uU2hhcGU8XHJcbiAgVCBleHRlbmRzIENvbXBpbGVkVHJhbnNsYXRpb248VW5rbm93blN0cmluZ0tleU9iamVjdCwgc3RyaW5nPixcclxuPiA9IFRbSW50ZXJuYWxTeW1ib2xdWydzaGFwZSddO1xyXG5cclxuZXhwb3J0IHR5cGUgaW5mZXJDb21waWxlZFRyYW5zbGF0aW9uTWFwPFxyXG4gIFQgZXh0ZW5kcyBDb21waWxlZFRyYW5zbGF0aW9uPFVua25vd25TdHJpbmdLZXlPYmplY3QsIHN0cmluZz4sXHJcbj4gPSBUW0ludGVybmFsU3ltYm9sXVsnbWFwJ107XHJcblxyXG5mdW5jdGlvbiBpc1RyYW5zbGF0aW9uT2JqZWN0KHQ6IHVua25vd24pOiB0IGlzIFVua25vd25TdHJpbmdLZXlPYmplY3Qge1xyXG4gIHJldHVybiB0eXBlb2YgdCA9PT0gJ29iamVjdCcgJiYgdCAhPT0gbnVsbDtcclxufVxyXG5cclxuZnVuY3Rpb24gZmxhdHRlblRyYW5zbGF0aW9uPFQgZXh0ZW5kcyBVbmtub3duU3RyaW5nS2V5T2JqZWN0PihvYmo6IFQpIHtcclxuICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqKS5yZWR1Y2UoXHJcbiAgICAoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBhY2Nba2V5XSA9IHZhbHVlO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzVHJhbnNsYXRpb25PYmplY3QodmFsdWUpKSB7XHJcbiAgICAgICAgT2JqZWN0LmVudHJpZXMoZmxhdHRlblRyYW5zbGF0aW9uKHZhbHVlKSkuZm9yRWFjaChcclxuICAgICAgICAgIChbbmVzdGVkS2V5LCBuZXN0ZWRWYWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgYWNjW3ByZXBlbmREZWxpbShrZXksIG5lc3RlZEtleSldID0gbmVzdGVkVmFsdWU7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LFxyXG4gICAge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZVRyYW5zbGF0aW9uPFxyXG4gIFQgZXh0ZW5kcyBVbmtub3duU3RyaW5nS2V5T2JqZWN0LFxyXG4gIFROUyBleHRlbmRzIHN0cmluZyxcclxuICBUTG9jYWxlIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxyXG4+KFxyXG4gIHRyYW5zbGF0aW9uOiBULFxyXG4gIG5zOiBUTlMsXHJcbiAgbG9jYWxlPzogVExvY2FsZSxcclxuKTogQ29tcGlsZWRUcmFuc2xhdGlvbjxULCBUTlMsIFRMb2NhbGU+IHtcclxuICB0eXBlICRTaGFwZSA9IGluZmVyVHJhbnNsYXRpb25TaGFwZTxUPjtcclxuICB0eXBlICRNYXAgPSBpbmZlclRyYW5zbGF0aW9uUGFyYW1NYXA8VE5TLCBUPjtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGxvY2FsZSxcclxuICAgIGZsYXQ6IGZsYXR0ZW5UcmFuc2xhdGlvbih0cmFuc2xhdGlvbiksXHJcbiAgICBuYW1lc3BhY2U6IG5zLFxyXG4gICAgW0lOVEVSTkFMX1NZTUJPTF06IHtcclxuICAgICAgc2hhcGU6IHt9IGFzICRTaGFwZSxcclxuICAgICAgbWFwOiB7fSBhcyAkTWFwLFxyXG4gICAgfSxcclxuICB9O1xyXG59XHJcbiJdfQ==","import { compileTranslation, } from './compile';\nexport function createNamespace(ns, translation) {\n const compiled = compileTranslation(translation, ns);\n const namespace = {\n translation: compileTranslation(translation, ns),\n createTranslation: (locale, translation) => {\n return compileTranslation(translation, ns, locale);\n },\n createMergedNamespace: (otherNs, otherTranslation) => {\n return createNamespace(otherNs, otherTranslation);\n },\n };\n return namespace;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW5hbWVzcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RyYW5zbGF0ZS9zcmMvbGliL2NyZWF0ZS1uYW1lc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGtCQUFrQixHQUduQixNQUFNLFdBQVcsQ0FBQztBQTJCbkIsTUFBTSxVQUFVLGVBQWUsQ0FHN0IsRUFBTyxFQUFFLFdBQWM7SUFDdkIsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQVMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBSzdELE1BQU0sU0FBUyxHQUFpRDtRQUM5RCxXQUFXLEVBQUUsa0JBQWtCLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUNoRCxpQkFBaUIsRUFBRSxDQUNqQixNQUFlLEVBQ2YsV0FBbUIsRUFDbkIsRUFBRTtZQUNGLE9BQU8sa0JBQWtCLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QscUJBQXFCLEVBQUUsQ0FRckIsT0FBaUIsRUFDakIsZ0JBQXdCLEVBQ3hCLEVBQUU7WUFDRixPQUFPLGVBQWUsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBSTdCLENBQUM7UUFDdEIsQ0FBQztLQUNGLENBQUM7SUFFRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21waWxlZFRyYW5zbGF0aW9uLFxyXG4gIGNvbXBpbGVUcmFuc2xhdGlvbixcclxuICBpbmZlckNvbXBpbGVkVHJhbnNsYXRpb25TaGFwZSxcclxuICBtZXJnZVRyYW5zbGF0aW9uTWFwcyxcclxufSBmcm9tICcuL2NvbXBpbGUnO1xyXG5pbXBvcnQgeyBVbmtub3duU3RyaW5nS2V5T2JqZWN0IH0gZnJvbSAnLi9zdHJpbmcta2V5LW9iamVjdC50eXBlJztcclxuXHJcbnR5cGUgVHJhbnNsYXRpb25OYW1lc3BhY2U8XHJcbiAgVE5TIGV4dGVuZHMgc3RyaW5nLFxyXG4gIFQgZXh0ZW5kcyBDb21waWxlZFRyYW5zbGF0aW9uPFVua25vd25TdHJpbmdLZXlPYmplY3QsIFROUz4sXHJcbiAgVFNoYXBlIGV4dGVuZHMgVW5rbm93blN0cmluZ0tleU9iamVjdCxcclxuPiA9IHtcclxuICB0cmFuc2xhdGlvbjogVDtcclxuICBjcmVhdGVUcmFuc2xhdGlvbjogPFRMb2NhbGUgZXh0ZW5kcyBzdHJpbmc+KFxyXG4gICAgbG9jYWxlOiBUTG9jYWxlLFxyXG4gICAgdHJhbnNsYXRpb246IFRTaGFwZSxcclxuICApID0+IENvbXBpbGVkVHJhbnNsYXRpb248VFNoYXBlLCBUTlMsIFRMb2NhbGU+O1xyXG4gIGNyZWF0ZU1lcmdlZE5hbWVzcGFjZTogPFxyXG4gICAgVE90aGVyTlMgZXh0ZW5kcyBzdHJpbmcsXHJcbiAgICBjb25zdCBUT3RoZXIgZXh0ZW5kcyBVbmtub3duU3RyaW5nS2V5T2JqZWN0LFxyXG4gICAgVE90aGVyQ29tcGlsZWQgZXh0ZW5kcyBDb21waWxlZFRyYW5zbGF0aW9uPFRPdGhlciwgVE90aGVyTlM+LFxyXG4gID4oXHJcbiAgICBuczogVE90aGVyTlMsXHJcbiAgICB0cmFuc2xhdGlvbjogVE90aGVyLFxyXG4gICkgPT4gVHJhbnNsYXRpb25OYW1lc3BhY2U8XHJcbiAgICBUT3RoZXJOUyxcclxuICAgIG1lcmdlVHJhbnNsYXRpb25NYXBzPFRPdGhlckNvbXBpbGVkLCBUPixcclxuICAgIGluZmVyQ29tcGlsZWRUcmFuc2xhdGlvblNoYXBlPFRPdGhlckNvbXBpbGVkPlxyXG4gID47XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTmFtZXNwYWNlPFxyXG4gIGNvbnN0IFQgZXh0ZW5kcyBVbmtub3duU3RyaW5nS2V5T2JqZWN0LFxyXG4gIFROUyBleHRlbmRzIHN0cmluZyxcclxuPihuczogVE5TLCB0cmFuc2xhdGlvbjogVCkge1xyXG4gIGNvbnN0IGNvbXBpbGVkID0gY29tcGlsZVRyYW5zbGF0aW9uPFQsIFROUz4odHJhbnNsYXRpb24sIG5zKTtcclxuXHJcbiAgdHlwZSBUQ29tcGlsZWQgPSB0eXBlb2YgY29tcGlsZWQ7XHJcbiAgdHlwZSBUU2hhcGUgPSBpbmZlckNvbXBpbGVkVHJhbnNsYXRpb25TaGFwZTx0eXBlb2YgY29tcGlsZWQ+O1xyXG5cclxuICBjb25zdCBuYW1lc3BhY2U6IFRyYW5zbGF0aW9uTmFtZXNwYWNlPFROUywgVENvbXBpbGVkLCBUU2hhcGU+ID0ge1xyXG4gICAgdHJhbnNsYXRpb246IGNvbXBpbGVUcmFuc2xhdGlvbih0cmFuc2xhdGlvbiwgbnMpLFxyXG4gICAgY3JlYXRlVHJhbnNsYXRpb246IDxUTG9jYWxlIGV4dGVuZHMgc3RyaW5nPihcclxuICAgICAgbG9jYWxlOiBUTG9jYWxlLFxyXG4gICAgICB0cmFuc2xhdGlvbjogVFNoYXBlLFxyXG4gICAgKSA9PiB7XHJcbiAgICAgIHJldHVybiBjb21waWxlVHJhbnNsYXRpb24odHJhbnNsYXRpb24sIG5zLCBsb2NhbGUpO1xyXG4gICAgfSxcclxuICAgIGNyZWF0ZU1lcmdlZE5hbWVzcGFjZTogPFxyXG4gICAgICBUT3RoZXIgZXh0ZW5kcyBVbmtub3duU3RyaW5nS2V5T2JqZWN0LFxyXG4gICAgICBUT3RoZXJOUyBleHRlbmRzIHN0cmluZyxcclxuICAgICAgVE90aGVyQ29tcGlsZWQgZXh0ZW5kcyBDb21waWxlZFRyYW5zbGF0aW9uPFxyXG4gICAgICAgIFRPdGhlcixcclxuICAgICAgICBUT3RoZXJOU1xyXG4gICAgICA+ID0gQ29tcGlsZWRUcmFuc2xhdGlvbjxUT3RoZXIsIFRPdGhlck5TPixcclxuICAgID4oXHJcbiAgICAgIG90aGVyTnM6IFRPdGhlck5TLFxyXG4gICAgICBvdGhlclRyYW5zbGF0aW9uOiBUT3RoZXIsXHJcbiAgICApID0+IHtcclxuICAgICAgcmV0dXJuIGNyZWF0ZU5hbWVzcGFjZShvdGhlck5zLCBvdGhlclRyYW5zbGF0aW9uKSBhcyBUcmFuc2xhdGlvbk5hbWVzcGFjZTxcclxuICAgICAgICBUT3RoZXJOUyxcclxuICAgICAgICBtZXJnZVRyYW5zbGF0aW9uTWFwczxUT3RoZXJDb21waWxlZCwgVENvbXBpbGVkPixcclxuICAgICAgICBpbmZlckNvbXBpbGVkVHJhbnNsYXRpb25TaGFwZTxUT3RoZXJDb21waWxlZD5cclxuICAgICAgPiBhcyB1bmtub3duIGFzIGFueTtcclxuICAgIH0sXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIG5hbWVzcGFjZTtcclxufVxyXG4iXX0=","import { computed, inject, Injectable, InjectionToken, LOCALE_ID, signal, } from '@angular/core';\nimport { createIntl, createIntlCache } from '@formatjs/intl';\nimport { prependDelim } from './delim';\nimport * as i0 from \"@angular/core\";\nconst CONFIG_TOKEN = new InjectionToken('mmstack-intl-config');\nexport function provideIntlConfig(config) {\n return {\n useValue: config,\n provide: CONFIG_TOKEN,\n };\n}\nexport function injectIntlConfig() {\n return inject(CONFIG_TOKEN, { optional: true }) ?? undefined;\n}\nexport function injectDefaultLocale() {\n return injectIntlConfig()?.defaultLocale ?? 'en-US';\n}\nexport class TranslationStore {\n cache = createIntlCache();\n config = injectIntlConfig();\n locale = signal(inject(LOCALE_ID), ...(ngDevMode ? [{ debugName: \"locale\" }] : []));\n defaultLocale = injectDefaultLocale();\n translations = signal({\n [this.defaultLocale]: {},\n }, ...(ngDevMode ? [{ debugName: \"translations\" }] : []));\n nonMessageConfig = computed(() => ({\n ...this.config,\n locale: this.locale(),\n }), ...(ngDevMode ? [{ debugName: \"nonMessageConfig\" }] : []));\n messages = computed(() => this.translations()[this.locale()] ??\n this.translations()[this.defaultLocale] ??\n {}, ...(ngDevMode ? [{ debugName: \"messages\" }] : []));\n intl = computed(() => createIntl({\n ...this.nonMessageConfig(),\n messages: this.messages(),\n }, this.cache), ...(ngDevMode ? [{ debugName: \"intl\" }] : []));\n formatMessage(key, values) {\n const message = this.translations()[this.locale()]?.[key] ?? '';\n if (!message)\n return '';\n return this.intl().formatMessage({ id: key, defaultMessage: message }, values);\n }\n register(namespace, flat, locale) {\n this.locale.set(locale);\n this.translations.update((cur) => {\n return Object.entries(flat).reduce((acc, [locale, translation]) => {\n const localeTranslation = acc[locale] ?? {};\n const withNS = Object.entries(translation ?? {}).reduce((acc, [key, value]) => {\n acc[prependDelim(namespace, key)] = value;\n return acc;\n }, {});\n acc[locale] = {\n ...localeTranslation,\n ...withNS,\n };\n return acc;\n }, { ...cur });\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: TranslationStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: TranslationStore, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: TranslationStore, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\nexport function injectIntl() {\n return inject(TranslationStore).intl;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90cmFuc2xhdGUvc3JjL2xpYi90cmFuc2xhdGlvbi5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1YsY0FBYyxFQUNkLFNBQVMsRUFFVCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV2QyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FFckMscUJBQXFCLENBQUMsQ0FBQztBQUV6QixNQUFNLFVBQVUsaUJBQWlCLENBQy9CLE1BQStDO0lBRS9DLE9BQU87UUFDTCxRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsWUFBWTtLQUN0QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0I7SUFDOUIsT0FBTyxNQUFNLENBQUMsWUFBWSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksU0FBUyxDQUFDO0FBQy9ELENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE9BQU8sZ0JBQWdCLEVBQUUsRUFBRSxhQUFhLElBQUksT0FBTyxDQUFDO0FBQ3RELENBQUM7QUFLRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ1YsS0FBSyxHQUFHLGVBQWUsRUFBRSxDQUFDO0lBQzFCLE1BQU0sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrREFBQyxDQUFDO0lBQ25DLGFBQWEsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO0lBQ3RDLFlBQVksR0FBRyxNQUFNLENBRXBDO1FB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ZSxcclxuICBJbmplY3Rpb25Ub2tlbixcclxuICBMT0NBTEVfSUQsXHJcbiAgUHJvdmlkZXIsXHJcbiAgc2lnbmFsLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjcmVhdGVJbnRsLCBjcmVhdGVJbnRsQ2FjaGUsIEludGxDb25maWcgfSBmcm9tICdAZm9ybWF0anMvaW50bCc7XHJcbmltcG9ydCB7IHByZXBlbmREZWxpbSB9IGZyb20gJy4vZGVsaW0nO1xyXG5cclxuY29uc3QgQ09ORklHX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFxyXG4gIE9taXQ8SW50bENvbmZpZywgJ2xvY2FsZScgfCAnbWVzc2FnZXMnPlxyXG4+KCdtbXN0YWNrLWludGwtY29uZmlnJyk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUludGxDb25maWcoXHJcbiAgY29uZmlnOiBPbWl0PEludGxDb25maWcsICdsb2NhbGUnIHwgJ21lc3NhZ2VzJz4sXHJcbik6IFByb3ZpZGVyIHtcclxuICByZXR1cm4ge1xyXG4gICAgdXNlVmFsdWU6IGNvbmZpZyxcclxuICAgIHByb3ZpZGU6IENPTkZJR19UT0tFTixcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SW50bENvbmZpZygpIHtcclxuICByZXR1cm4gaW5qZWN0KENPTkZJR19UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3REZWZhdWx0TG9jYWxlKCkge1xyXG4gIHJldHVybiBpbmplY3RJbnRsQ29uZmlnKCk/LmRlZmF1bHRMb2NhbGUgPz8gJ2VuLVVTJztcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uU3RvcmUge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGUgPSBjcmVhdGVJbnRsQ2FjaGUoKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdEludGxDb25maWcoKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZSA9IHNpZ25hbChpbmplY3QoTE9DQUxFX0lEKSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0TG9jYWxlID0gaW5qZWN0RGVmYXVsdExvY2FsZSgpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25zID0gc2lnbmFsPFxyXG4gICAgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj5cclxuICA+KHtcclxuICAgIFt0aGlzLmRlZmF1bHRMb2NhbGVdOiB7fSxcclxuICB9KTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBub25NZXNzYWdlQ29uZmlnID0gY29tcHV0ZWQoKCkgPT4gKHtcclxuICAgIC4uLnRoaXMuY29uZmlnLFxyXG4gICAgbG9jYWxlOiB0aGlzLmxvY2FsZSgpLFxyXG4gIH0pKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlcyA9IGNvbXB1dGVkKFxyXG4gICAgKCkgPT5cclxuICAgICAgdGhpcy50cmFuc2xhdGlvbnMoKVt0aGlzLmxvY2FsZSgpXSA/P1xyXG4gICAgICB0aGlzLnRyYW5zbGF0aW9ucygpW3RoaXMuZGVmYXVsdExvY2FsZV0gPz9cclxuICAgICAge30sXHJcbiAgKTtcclxuXHJcbiAgcmVhZG9ubHkgaW50bCA9IGNvbXB1dGVkKCgpID0+XHJcbiAgICBjcmVhdGVJbnRsKFxyXG4gICAgICB7XHJcbiAgICAgICAgLi4udGhpcy5ub25NZXNzYWdlQ29uZmlnKCksXHJcbiAgICAgICAgbWVzc2FnZXM6IHRoaXMubWVzc2FnZXMoKSxcclxuICAgICAgfSxcclxuICAgICAgdGhpcy5jYWNoZSxcclxuICAgICksXHJcbiAgKTtcclxuXHJcbiAgZm9ybWF0TWVzc2FnZShrZXk6IHN0cmluZywgdmFsdWVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPikge1xyXG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRpb25zKClbdGhpcy5sb2NhbGUoKV0/LltrZXldID8/ICcnO1xyXG5cclxuICAgIGlmICghbWVzc2FnZSkgcmV0dXJuICcnO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmludGwoKS5mb3JtYXRNZXNzYWdlKFxyXG4gICAgICB7IGlkOiBrZXksIGRlZmF1bHRNZXNzYWdlOiBtZXNzYWdlIH0sXHJcbiAgICAgIHZhbHVlcyxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZWdpc3RlcihcclxuICAgIG5hbWVzcGFjZTogc3RyaW5nLFxyXG4gICAgZmxhdDogUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pj4sXHJcbiAgICBsb2NhbGU6IHN0cmluZyxcclxuICApIHtcclxuICAgIHRoaXMubG9jYWxlLnNldChsb2NhbGUpO1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbnMudXBkYXRlKChjdXIpID0+IHtcclxuICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGZsYXQpLnJlZHVjZShcclxuICAgICAgICAoYWNjLCBbbG9jYWxlLCB0cmFuc2xhdGlvbl0pID0+IHtcclxuICAgICAgICAgIGNvbnN0IGxvY2FsZVRyYW5zbGF0aW9uID0gYWNjW2xvY2FsZV0gPz8ge307XHJcblxyXG4gICAgICAgICAgY29uc3Qgd2l0aE5TID0gT2JqZWN0LmVudHJpZXModHJhbnNsYXRpb24gPz8ge30pLnJlZHVjZShcclxuICAgICAgICAgICAgKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgYWNjW3ByZXBlbmREZWxpbShuYW1lc3BhY2UsIGtleSldID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgYWNjW2xvY2FsZV0gPSB7XHJcbiAgICAgICAgICAgIC4uLmxvY2FsZVRyYW5zbGF0aW9uLFxyXG4gICAgICAgICAgICAuLi53aXRoTlMsXHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgfSxcclxuICAgICAgICB7IC4uLmN1ciB9LFxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SW50bCgpIHtcclxuICByZXR1cm4gaW5qZWN0KFRyYW5zbGF0aW9uU3RvcmUpLmludGw7XHJcbn1cclxuIl19","import { computed, inject, isDevMode, isSignal, LOCALE_ID, } from '@angular/core';\nimport { replaceWithDelim } from './delim';\nimport { TranslationStore } from './translation.store';\nfunction createEqualsRecord(keys = []) {\n let keyMatcher;\n if (keys.length === 0) {\n keyMatcher = () => true;\n }\n else if (keys.length === 1) {\n const key = keys[0];\n keyMatcher = (a, b) => a[key] === b[key];\n }\n else {\n keyMatcher = (a, b) => {\n return keys.every((k) => a[k] === b[k]);\n };\n }\n return (a, b) => {\n if (!a && !b)\n return true;\n if (!a || !b)\n return false;\n return keyMatcher(a, b);\n };\n}\nfunction addSignalFn(fn, store) {\n const withSig = fn;\n const asSignal = (key, ...args) => {\n const variables = args[0];\n const stringKey = key;\n const flatPath = replaceWithDelim(stringKey);\n const varsFn = variables === undefined ? () => undefined : variables;\n const varsSignal = isSignal(varsFn)\n ? varsFn\n : computed(varsFn, {\n equal: createEqualsRecord(Object.keys(varsFn() ?? {})),\n });\n return computed(() => store.formatMessage(flatPath, varsSignal()));\n };\n withSig.asSignal = asSignal;\n return withSig;\n}\nexport function createT(store) {\n return (key, ...args) => {\n const variables = args[0];\n const stringKey = key;\n return store.formatMessage(replaceWithDelim(stringKey), variables);\n };\n}\nexport function registerNamespace(defaultTranslation, other) {\n const injectT = () => {\n const store = inject(TranslationStore);\n return addSignalFn(createT(store), store);\n };\n let defaultTranslationLoaded = false;\n const resolver = async () => {\n const locale = inject(LOCALE_ID);\n const store = inject(TranslationStore);\n const tPromise = other[locale];\n const promise = tPromise ?? defaultTranslation;\n if (!promise && isDevMode()) {\n return console.warn(`No translation found for locale: ${locale}`);\n }\n if (promise === defaultTranslation && defaultTranslationLoaded)\n return;\n try {\n const translation = await promise();\n if (promise !== defaultTranslation &&\n translation.locale !== locale &&\n isDevMode()) {\n return console.warn(`Expected locale to be ${locale} but got ${translation.locale}`);\n }\n store.register(translation.namespace, {\n [locale]: translation.flat,\n }, locale);\n if (promise === defaultTranslation) {\n defaultTranslationLoaded = true;\n }\n }\n catch {\n if (isDevMode()) {\n console.warn(`Failed to load translation for locale: ${locale}`);\n }\n }\n };\n return {\n injectNamespaceT: injectT,\n resolveNamespaceTranslation: resolver,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItbmFtZXNwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdHJhbnNsYXRlL3NyYy9saWIvcmVnaXN0ZXItbmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxRQUFRLEVBQ1IsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUt2RCxTQUFTLGtCQUFrQixDQUE0QixPQUFvQixFQUFFO0lBQzNFLElBQUksVUFBbUMsQ0FBQztJQUV4QyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEIsVUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO1NBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzdCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixVQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7U0FBTSxDQUFDO1FBQ04sVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBSyxF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QUksQ0FBQztZQUNILE1BQU0sV0FBVyxHQUFHLE1BQU0sT0FBTyxFQUFFLENBQUM7WUFFcEMsSUFDRSxPQUFPLEtBQUssa0JBQWtCO2dCQUM5QixXQUFXLENBQUMsTUFBTSxLQUFLLE1BQU07Z0JBQzdCLFNBQVMsRUFBRSxFQUNYLENBQUM7Z0JBQ0QsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUNqQix5QkFBeUIsTUFBTSxZQUFZLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FDaEUsQ0FBQztZQUNKLENBQUM7WUFFRCxLQUFLLENBQUMsUUFBUSxDQUNaLFdBQVcsQ0FBQyxTQUFTLEVBQ3JCO2dCQUNFLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxDQUFDLElBQUk7YUFDM0IsRUFDRCxNQUFNLENBQ1AsQ0FBQztZQUNGLElBQUksT0FBTyxLQUFLLGtCQUFrQixFQUFFLENBQUM7Z0JBQ25DLHdCQUF3QixHQUFHLElBQUksQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQywwQ0FBMEMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNuRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxnQkFBZ0IsRUFBRSxPQUFPO1FBQ3pCLDJCQUEyQixFQUFFLFFBQVE7S0FDdEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGNvbXB1dGVkLFxyXG4gIGluamVjdCxcclxuICBpc0Rldk1vZGUsXHJcbiAgaXNTaWduYWwsXHJcbiAgTE9DQUxFX0lELFxyXG4gIFNpZ25hbCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcGlsZWRUcmFuc2xhdGlvbiwgaW5mZXJDb21waWxlZFRyYW5zbGF0aW9uTWFwIH0gZnJvbSAnLi9jb21waWxlJztcclxuaW1wb3J0IHsgcmVwbGFjZVdpdGhEZWxpbSB9IGZyb20gJy4vZGVsaW0nO1xyXG5pbXBvcnQgeyBVbmtub3duU3RyaW5nS2V5T2JqZWN0IH0gZnJvbSAnLi9zdHJpbmcta2V5LW9iamVjdC50eXBlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TdG9yZSB9IGZyb20gJy4vdHJhbnNsYXRpb24uc3RvcmUnO1xyXG5cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxudHlwZSBBbnlTdHJpbmdSZWNvcmQgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cclxuZnVuY3Rpb24gY3JlYXRlRXF1YWxzUmVjb3JkPFQgZXh0ZW5kcyBBbnlTdHJpbmdSZWNvcmQ+KGtleXM6IChrZXlvZiBUKVtdID0gW10pIHtcclxuICBsZXQga2V5TWF0Y2hlcjogKGE6IFQsIGI6IFQpID0+IGJvb2xlYW47XHJcblxyXG4gIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAga2V5TWF0Y2hlciA9ICgpID0+IHRydWU7XHJcbiAgfSBlbHNlIGlmIChrZXlzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgY29uc3Qga2V5ID0ga2V5c1swXTtcclxuICAgIGtleU1hdGNoZXIgPSAoYSwgYikgPT4gYVtrZXldID09PSBiW2tleV07XHJcbiAgfSBlbHNlIHtcclxuICAgIGtleU1hdGNoZXIgPSAoYSwgYikgPT4ge1xyXG4gICAgICByZXR1cm4ga2V5cy5ldmVyeSgoaykgPT4gYVtrXSA9PT0gYltrXSk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChhPzogVCwgYj86IFQpOiBib29sZWFuID0+IHtcclxuICAgIGlmICghYSAmJiAhYikgcmV0dXJuIHRydWU7XHJcbiAgICBpZiAoIWEgfHwgIWIpIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiBrZXlNYXRjaGVyKGEsIGIpO1xyXG4gIH07XHJcbn1cclxuXHJcbnR5cGUgVEZ1bmN0aW9uPFRNYXAgZXh0ZW5kcyBBbnlTdHJpbmdSZWNvcmQ+ID0gPFxyXG4gIFRLZXkgZXh0ZW5kcyBrZXlvZiBUTWFwICYgc3RyaW5nLFxyXG4+KFxyXG4gIGtleTogVEtleSxcclxuICAuLi5hcmdzOiBUTWFwW1RLZXldIGV4dGVuZHMgdm9pZCA/IFtdIDogW1RNYXBbVEtleV1dXHJcbikgPT4gc3RyaW5nO1xyXG5cclxudHlwZSBTaWduYWxURnVuY3Rpb248VE1hcCBleHRlbmRzIEFueVN0cmluZ1JlY29yZD4gPSA8XHJcbiAgVEtleSBleHRlbmRzIGtleW9mIFRNYXAgJiBzdHJpbmcsXHJcbj4oXHJcbiAga2V5OiBUS2V5LFxyXG4gIC4uLmFyZ3M6IFRNYXBbVEtleV0gZXh0ZW5kcyB2b2lkID8gW10gOiBbKCkgPT4gVE1hcFtUS2V5XV1cclxuKSA9PiBTaWduYWw8c3RyaW5nPjtcclxuXHJcbnR5cGUgVEZ1bmN0aW9uV2l0aFNpZ25hbENvbnN0cnVjdG9yPFxyXG4gIFRNYXAgZXh0ZW5kcyBBbnlTdHJpbmdSZWNvcmQsXHJcbiAgVEZOIGV4dGVuZHMgVEZ1bmN0aW9uPFRNYXA+LFxyXG4+ID0gVEZOICYge1xyXG4gIGFzU2lnbmFsOiBTaWduYWxURnVuY3Rpb248VE1hcD47XHJcbn07XHJcblxyXG5mdW5jdGlvbiBhZGRTaWduYWxGbjxUTWFwIGV4dGVuZHMgQW55U3RyaW5nUmVjb3JkLCBURm4gZXh0ZW5kcyBURnVuY3Rpb248VE1hcD4+KFxyXG4gIGZuOiBURm4sXHJcbiAgc3RvcmU6IFRyYW5zbGF0aW9uU3RvcmUsXHJcbik6IFRGdW5jdGlvbldpdGhTaWduYWxDb25zdHJ1Y3RvcjxUTWFwLCBURm4+IHtcclxuICBjb25zdCB3aXRoU2lnID0gZm4gYXMgVEZ1bmN0aW9uV2l0aFNpZ25hbENvbnN0cnVjdG9yPFRNYXAsIFRGbj47XHJcblxyXG4gIGNvbnN0IGFzU2lnbmFsID0gPFRLZXkgZXh0ZW5kcyBrZXlvZiBUTWFwICYgc3RyaW5nPihcclxuICAgIGtleTogVEtleSxcclxuICAgIC4uLmFyZ3M6IFRNYXBbVEtleV0gZXh0ZW5kcyB2b2lkID8gW10gOiBbKCkgPT4gVE1hcFtUS2V5XV1cclxuICApOiBTaWduYWw8c3RyaW5nPiA9PiB7XHJcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBhcmdzWzBdIGFzICgpID0+IEFueVN0cmluZ1JlY29yZCB8IHVuZGVmaW5lZDtcclxuICAgIGNvbnN0IHN0cmluZ0tleSA9IGtleSBhcyBzdHJpbmc7XHJcblxyXG4gICAgY29uc3QgZmxhdFBhdGggPSByZXBsYWNlV2l0aERlbGltKHN0cmluZ0tleSk7XHJcblxyXG4gICAgY29uc3QgdmFyc0ZuID0gdmFyaWFibGVzID09PSB1bmRlZmluZWQgPyAoKSA9PiB1bmRlZmluZWQgOiB2YXJpYWJsZXM7XHJcbiAgICBjb25zdCB2YXJzU2lnbmFsID0gaXNTaWduYWwodmFyc0ZuKVxyXG4gICAgICA/IHZhcnNGblxyXG4gICAgICA6IGNvbXB1dGVkKHZhcnNGbiwge1xyXG4gICAgICAgICAgZXF1YWw6IGNyZWF0ZUVxdWFsc1JlY29yZChPYmplY3Qua2V5cyh2YXJzRm4oKSA/PyB7fSkpLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjb21wdXRlZCgoKSA9PiBzdG9yZS5mb3JtYXRNZXNzYWdlKGZsYXRQYXRoLCB2YXJzU2lnbmFsKCkpKTtcclxuICB9O1xyXG5cclxuICB3aXRoU2lnLmFzU2lnbmFsID0gYXNTaWduYWw7XHJcblxyXG4gIHJldHVybiB3aXRoU2lnO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVDxUTWFwIGV4dGVuZHMgQW55U3RyaW5nUmVjb3JkPihcclxuICBzdG9yZTogVHJhbnNsYXRpb25TdG9yZSxcclxuKTogVEZ1bmN0aW9uPFRNYXA+IHtcclxuICByZXR1cm4gPFRLZXkgZXh0ZW5kcyBrZXlvZiBUTWFwICYgc3RyaW5nPihcclxuICAgIGtleTogVEtleSxcclxuICAgIC4uLmFyZ3M6IFRNYXBbVEtleV0gZXh0ZW5kcyB2b2lkID8gW10gOiBbVE1hcFtUS2V5XV1cclxuICApOiBzdHJpbmcgPT4ge1xyXG4gICAgY29uc3QgdmFyaWFibGVzID0gYXJnc1swXSBhcyBBbnlTdHJpbmdSZWNvcmQgfCB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBzdHJpbmdLZXkgPSBrZXkgYXMgc3RyaW5nO1xyXG5cclxuICAgIHJldHVybiBzdG9yZS5mb3JtYXRNZXNzYWdlKHJlcGxhY2VXaXRoRGVsaW0oc3RyaW5nS2V5KSwgdmFyaWFibGVzKTtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJOYW1lc3BhY2U8XHJcbiAgVERlZmF1bHQgZXh0ZW5kcyBDb21waWxlZFRyYW5zbGF0aW9uPFVua25vd25TdHJpbmdLZXlPYmplY3QsIHN0cmluZz4sXHJcbiAgVE90aGVyIGV4dGVuZHMgQ29tcGlsZWRUcmFuc2xhdGlvbjxVbmtub3duU3RyaW5nS2V5T2JqZWN0LCBzdHJpbmc+LFxyXG4+KFxyXG4gIGRlZmF1bHRUcmFuc2xhdGlvbjogKCkgPT4gUHJvbWlzZTxURGVmYXVsdD4sXHJcbiAgb3RoZXI6IFJlY29yZDxzdHJpbmcsICgpID0+IFByb21pc2U8VE90aGVyPj4sXHJcbikge1xyXG4gIHR5cGUgJE1hcCA9IGluZmVyQ29tcGlsZWRUcmFuc2xhdGlvbk1hcDxURGVmYXVsdD47XHJcbiAgdHlwZSAkQmFzZVRGTiA9IFRGdW5jdGlvbjwkTWFwPjtcclxuICB0eXBlICRURk4gPSBURnVuY3Rpb25XaXRoU2lnbmFsQ29uc3RydWN0b3I8JE1hcCwgJEJhc2VURk4+O1xyXG5cclxuICBjb25zdCBpbmplY3RUID0gKCk6ICRURk4gPT4ge1xyXG4gICAgY29uc3Qgc3RvcmUgPSBpbmplY3QoVHJhbnNsYXRpb25TdG9yZSk7XHJcblxyXG4gICAgcmV0dXJuIGFkZFNpZ25hbEZuKGNyZWF0ZVQoc3RvcmUpLCBzdG9yZSk7XHJcbiAgfTtcclxuXHJcbiAgbGV0IGRlZmF1bHRUcmFuc2xhdGlvbkxvYWRlZCA9IGZhbHNlO1xyXG4gIGNvbnN0IHJlc29sdmVyID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgbG9jYWxlID0gaW5qZWN0KExPQ0FMRV9JRCk7XHJcbiAgICBjb25zdCBzdG9yZSA9IGluamVjdChUcmFuc2xhdGlvblN0b3JlKTtcclxuXHJcbiAgICBjb25zdCB0UHJvbWlzZSA9IG90aGVyW2xvY2FsZV0gYXMgKCgpID0+IFByb21pc2U8VE90aGVyPikgfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgY29uc3QgcHJvbWlzZSA9IHRQcm9taXNlID8/IGRlZmF1bHRUcmFuc2xhdGlvbjtcclxuICAgIGlmICghcHJvbWlzZSAmJiBpc0Rldk1vZGUoKSkge1xyXG4gICAgICByZXR1cm4gY29uc29sZS53YXJuKGBObyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgbG9jYWxlOiAke2xvY2FsZX1gKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocHJvbWlzZSA9PT0gZGVmYXVsdFRyYW5zbGF0aW9uICYmIGRlZmF1bHRUcmFuc2xhdGlvbkxvYWRlZCkgcmV0dXJuO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gYXdhaXQgcHJvbWlzZSgpO1xyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgIHByb21pc2UgIT09IGRlZmF1bHRUcmFuc2xhdGlvbiAmJlxyXG4gICAgICAgIHRyYW5zbGF0aW9uLmxvY2FsZSAhPT0gbG9jYWxlICYmXHJcbiAgICAgICAgaXNEZXZNb2RlKClcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbnNvbGUud2FybihcclxuICAgICAgICAgIGBFeHBlY3RlZCBsb2NhbGUgdG8gYmUgJHtsb2NhbGV9IGJ1dCBnb3QgJHt0cmFuc2xhdGlvbi5sb2NhbGV9YCxcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdG9yZS5yZWdpc3RlcihcclxuICAgICAgICB0cmFuc2xhdGlvbi5uYW1lc3BhY2UsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW2xvY2FsZV06IHRyYW5zbGF0aW9uLmZsYXQsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsb2NhbGUsXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChwcm9taXNlID09PSBkZWZhdWx0VHJhbnNsYXRpb24pIHtcclxuICAgICAgICBkZWZhdWx0VHJhbnNsYXRpb25Mb2FkZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKGBGYWlsZWQgdG8gbG9hZCB0cmFuc2xhdGlvbiBmb3IgbG9jYWxlOiAke2xvY2FsZX1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBpbmplY3ROYW1lc3BhY2VUOiBpbmplY3RULFxyXG4gICAgcmVzb2x2ZU5hbWVzcGFjZVRyYW5zbGF0aW9uOiByZXNvbHZlcixcclxuICB9O1xyXG59XHJcbiJdfQ==","import { computed, Directive, effect, ElementRef, inject, input, Renderer2, } from '@angular/core';\nimport { createT } from './register-namespace';\nimport { TranslationStore } from './translation.store';\nimport * as i0 from \"@angular/core\";\nexport class BaseTranslateDirective {\n t = createT(inject(TranslationStore));\n translate = input.required(...(ngDevMode ? [{ debugName: \"translate\" }] : []));\n constructor() {\n const key = computed(() => {\n const vars = this.translate();\n return (Array.isArray(vars) ? vars[0] : vars);\n }, ...(ngDevMode ? [{ debugName: \"key\" }] : []));\n const args = computed(() => {\n const vars = this.translate();\n return (Array.isArray(vars) ? vars[1] : undefined);\n }, ...(ngDevMode ? [{ debugName: \"args\", equal: (a, b) => {\n if (a === undefined && b === undefined)\n return true;\n if (a === undefined || b === undefined)\n return false;\n const aObj = a;\n const keys = Object.keys(aObj);\n const bObj = b;\n if (!keys.length)\n return !Object.keys(bObj).length;\n return keys.every((key) => aObj[key] === bObj[key]);\n } }] : [{\n equal: (a, b) => {\n if (a === undefined && b === undefined)\n return true;\n if (a === undefined || b === undefined)\n return false;\n const aObj = a;\n const keys = Object.keys(aObj);\n const bObj = b;\n if (!keys.length)\n return !Object.keys(bObj).length;\n return keys.every((key) => aObj[key] === bObj[key]);\n },\n }]));\n const translation = computed(() => this.t(key(), args()), ...(ngDevMode ? [{ debugName: \"translation\" }] : []));\n const renderer = inject(Renderer2);\n const el = inject(ElementRef);\n effect(() => renderer.setProperty(el.nativeElement, 'textContent', translation()));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: BaseTranslateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.0\", type: BaseTranslateDirective, isStandalone: true, inputs: { translate: { classPropertyName: \"translate\", publicName: \"translate\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: BaseTranslateDirective, decorators: [{\n type: Directive\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RyYW5zbGF0ZS9zcmMvbGliL3RyYW5zbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBR3ZELE1BQU0sT0FBZ0Isc0JBQXNCO0lBTXpCLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUU5QyxTQUFTLEdBQ2hCLEtBQUssQ0FBQyxRQUFRLG9EQUlYLENBQUM7SUFFTjtRQUNFLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBUyxDQUFDO1FBQ3hELENBQUMsK0NBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FDbkIsR0FBRyxFQUFFO1lBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBZSxDQUFDO1FBQ25FLENBQUMsd0NBRUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNkLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLEtBQUssU0FBUzt3QkFBRSxPQUFPLElBQUksQ0FBQztvQkFDcEQsSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxTQUFTO3dCQUFFLE9BQU8sS0FBSyxDQUFDO29CQUVyRCxNQUFNLElBQUksR0FBRyxDQUEyQixDQUFDO29CQUN6QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMvQixNQUFNLElBQUksR0FBRyxDQUEyQixDQUFDO29CQUV6QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07d0JBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO29CQUVuRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDdEQsQ0FBQyxPQVpIO2dCQUNFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDZCxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLFNBQVM7d0JBQUUsT0FBTyxJQUFJLENBQUM7b0JBQ3BELElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLEtBQUssU0FBUzt3QkFBRSxPQUFPLEtBQUssQ0FBQztvQkFFckQsTUFBTSxJQUFJLEdBQUcsQ0FBMkIsQ0FBQztvQkFDekMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDL0IsTUFBTSxJQUFJLEdBQUcsQ0FBMkIsQ0FBQztvQkFFekMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO3dCQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztvQkFFbkQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELENBQUM7YUFDRixHQUNGLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyx1REFBQyxDQUFDO1FBRTFELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRXZELE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FDVixRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQ3JFLENBQUM7SUFDSixDQUFDO3VHQWxEbUIsc0JBQXNCOzJGQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRDNDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGNvbXB1dGVkLFxyXG4gIERpcmVjdGl2ZSxcclxuICBlZmZlY3QsXHJcbiAgRWxlbWVudFJlZixcclxuICBpbmplY3QsXHJcbiAgaW5wdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21waWxlZFRyYW5zbGF0aW9uLCBpbmZlckNvbXBpbGVkVHJhbnNsYXRpb25NYXAgfSBmcm9tICcuL2NvbXBpbGUnO1xyXG5pbXBvcnQgeyBjcmVhdGVUIH0gZnJvbSAnLi9yZWdpc3Rlci1uYW1lc3BhY2UnO1xyXG5pbXBvcnQgeyBVbmtub3duU3RyaW5nS2V5T2JqZWN0IH0gZnJvbSAnLi9zdHJpbmcta2V5LW9iamVjdC50eXBlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TdG9yZSB9IGZyb20gJy4vdHJhbnNsYXRpb24uc3RvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlVHJhbnNsYXRlRGlyZWN0aXZlPFxyXG4gIFRJbnB1dCBleHRlbmRzIHN0cmluZyxcclxuICBUIGV4dGVuZHMgQ29tcGlsZWRUcmFuc2xhdGlvbjxVbmtub3duU3RyaW5nS2V5T2JqZWN0LCBzdHJpbmc+LFxyXG4gIFRNYXAgZXh0ZW5kcyBpbmZlckNvbXBpbGVkVHJhbnNsYXRpb25NYXA8VD4gPSBpbmZlckNvbXBpbGVkVHJhbnNsYXRpb25NYXA8VD4sXHJcbiAgVEtleSBleHRlbmRzIFRJbnB1dCAmIGtleW9mIFRNYXAgJiBzdHJpbmcgPSBUSW5wdXQgJiBrZXlvZiBUTWFwICYgc3RyaW5nLFxyXG4+IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IHQgPSBjcmVhdGVUKGluamVjdChUcmFuc2xhdGlvblN0b3JlKSk7XHJcblxyXG4gIHJlYWRvbmx5IHRyYW5zbGF0ZSA9XHJcbiAgICBpbnB1dC5yZXF1aXJlZDxcclxuICAgICAgVE1hcFtUS2V5XSBleHRlbmRzIHZvaWRcclxuICAgICAgICA/IFRLZXkgfCBba2V5OiBUS2V5XVxyXG4gICAgICAgIDogW2tleTogVEtleSwgdmFyczogVE1hcFtUS2V5XV1cclxuICAgID4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBjb25zdCBrZXkgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhcnMgPSB0aGlzLnRyYW5zbGF0ZSgpO1xyXG4gICAgICByZXR1cm4gKEFycmF5LmlzQXJyYXkodmFycykgPyB2YXJzWzBdIDogdmFycykgYXMgVEtleTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGFyZ3MgPSBjb21wdXRlZChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhcnMgPSB0aGlzLnRyYW5zbGF0ZSgpO1xyXG4gICAgICAgIHJldHVybiAoQXJyYXkuaXNBcnJheSh2YXJzKSA/IHZhcnNbMV0gOiB1bmRlZmluZWQpIGFzIFRNYXBbVEtleV07XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBlcXVhbDogKGEsIGIpID0+IHtcclxuICAgICAgICAgIGlmIChhID09PSB1bmRlZmluZWQgJiYgYiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgIGlmIChhID09PSB1bmRlZmluZWQgfHwgYiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgICAgICAgY29uc3QgYU9iaiA9IGEgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhhT2JqKTtcclxuICAgICAgICAgIGNvbnN0IGJPYmogPSBiIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcblxyXG4gICAgICAgICAgaWYgKCFrZXlzLmxlbmd0aCkgcmV0dXJuICFPYmplY3Qua2V5cyhiT2JqKS5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIGtleXMuZXZlcnkoKGtleSkgPT4gYU9ialtrZXldID09PSBiT2JqW2tleV0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KGtleSgpLCBhcmdzKCkpKTtcclxuXHJcbiAgICBjb25zdCByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xyXG4gICAgY29uc3QgZWwgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xyXG5cclxuICAgIGVmZmVjdCgoKSA9PlxyXG4gICAgICByZW5kZXJlci5zZXRQcm9wZXJ0eShlbC5uYXRpdmVFbGVtZW50LCAndGV4dENvbnRlbnQnLCB0cmFuc2xhdGlvbigpKSxcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { inject } from '@angular/core';\nimport { createT } from './register-namespace';\nimport { TranslationStore } from './translation.store';\nexport class BaseTranslatePipe {\n t = createT(inject(TranslationStore));\n transform(key, ...args) {\n return this.t(key, ...args);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90cmFuc2xhdGUvc3JjL2xpYi90cmFuc2xhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxNQUFNLE9BQWdCLGlCQUFpQjtJQUlwQixDQUFDLEdBQUcsT0FBTyxDQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFFN0QsU0FBUyxDQUNQLEdBQU0sRUFDTixHQUFHLElBQTJDO1FBRTlDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcGlsZWRUcmFuc2xhdGlvbiwgaW5mZXJDb21waWxlZFRyYW5zbGF0aW9uTWFwIH0gZnJvbSAnLi9jb21waWxlJztcclxuaW1wb3J0IHsgY3JlYXRlVCB9IGZyb20gJy4vcmVnaXN0ZXItbmFtZXNwYWNlJztcclxuaW1wb3J0IHsgVW5rbm93blN0cmluZ0tleU9iamVjdCB9IGZyb20gJy4vc3RyaW5nLWtleS1vYmplY3QudHlwZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU3RvcmUgfSBmcm9tICcuL3RyYW5zbGF0aW9uLnN0b3JlJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlVHJhbnNsYXRlUGlwZTxcclxuICBUIGV4dGVuZHMgQ29tcGlsZWRUcmFuc2xhdGlvbjxVbmtub3duU3RyaW5nS2V5T2JqZWN0LCBzdHJpbmc+LFxyXG4gIFRNYXAgZXh0ZW5kcyBpbmZlckNvbXBpbGVkVHJhbnNsYXRpb25NYXA8VD4gPSBpbmZlckNvbXBpbGVkVHJhbnNsYXRpb25NYXA8VD4sXHJcbj4ge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgdCA9IGNyZWF0ZVQ8VE1hcD4oaW5qZWN0KFRyYW5zbGF0aW9uU3RvcmUpKTtcclxuXHJcbiAgdHJhbnNmb3JtPEsgZXh0ZW5kcyBrZXlvZiBUTWFwICYgc3RyaW5nPihcclxuICAgIGtleTogSyxcclxuICAgIC4uLmFyZ3M6IFRNYXBbS10gZXh0ZW5kcyB2b2lkID8gW10gOiBbVE1hcFtLXV1cclxuICApOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudChrZXksIC4uLmFyZ3MpO1xyXG4gIH1cclxufVxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW1zdGFjay10cmFuc2xhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy90cmFuc2xhdGUvc3JjL21tc3RhY2stdHJhbnNsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,6 +1,95 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Provider, Signal } from '@angular/core';
|
|
3
|
+
import * as _formatjs_intl from '@formatjs/intl';
|
|
4
|
+
import { IntlConfig } from '@formatjs/intl';
|
|
5
|
+
|
|
6
|
+
type UnknownStringKeyObject = Record<string, unknown>;
|
|
7
|
+
|
|
8
|
+
type Simplify<T> = T extends infer U ? {
|
|
9
|
+
[K in keyof U]: Simplify<U[K]>;
|
|
10
|
+
} : never;
|
|
11
|
+
type Autocomplete<T extends string> = T | Omit<string, T>;
|
|
12
|
+
type extractSelectOptions<TOpt extends string> = TOpt extends `${infer Option}{${infer _}} ${infer Rest}` ? Option | extractSelectOptions<Rest> : TOpt extends `${infer Option}{${infer _}}` ? Option : never;
|
|
13
|
+
type Trimmed<T extends string> = T extends `${infer Trimmed} ${infer _}` ? Trimmed : T extends `${infer _} ${infer Trimmed}` ? Trimmed : T;
|
|
14
|
+
type extractSelectParam<TName extends string, TOpt extends string> = [
|
|
15
|
+
TName,
|
|
16
|
+
Autocomplete<Exclude<Trimmed<extractSelectOptions<TOpt>>, 'other'>>
|
|
17
|
+
];
|
|
18
|
+
type extractComplexParam<T extends string> = T extends `{${infer VarName}, plural, ${infer _}}}${infer REST}` | `{${infer VarName}, selectordinal, ${infer _}}}${infer REST}` ? [VarName, number] | extractParams<REST> : T extends `{${infer VarName}, select, ${infer SelectOptions}}}${infer REST}` ? extractSelectParam<VarName, `${SelectOptions}}`> | extractParams<REST> : never;
|
|
19
|
+
type extractParams<T extends string> = T extends `${infer _Start}{${infer Var}}${infer End}` ? Var extends `${infer _}, ${infer __}` ? extractComplexParam<`{${Var}}${End}`> : [Var, string] | extractParams<End> : never;
|
|
20
|
+
type mergeParams<TExtracted extends [string, any]> = {
|
|
21
|
+
[K in TExtracted as K[0]]: K[1];
|
|
22
|
+
};
|
|
23
|
+
type flattenParams<TKey extends string, TVal> = TVal extends UnknownStringKeyObject ? inferParamTupples<TVal, `${TKey}.`> : TVal extends string ? extractParams<TVal> extends never ? [TKey] : [TKey, mergeParams<extractParams<TVal>>] : never;
|
|
24
|
+
type inferParamTupples<T extends UnknownStringKeyObject, TPrefix extends string = ''> = Simplify<{
|
|
25
|
+
[K in keyof T]: K extends string ? flattenParams<`${TPrefix}${K}`, T[K]> : never;
|
|
26
|
+
}[keyof T]>;
|
|
27
|
+
type inferTranslationParamMap<TNS extends string, T extends UnknownStringKeyObject> = Simplify<{
|
|
28
|
+
[Tuple in inferParamTupples<T> as Tuple[0] extends string ? `${TNS}.${Tuple[0]}` : never]: Tuple extends [string, infer Vars] ? Vars : void;
|
|
29
|
+
}>;
|
|
30
|
+
type StringContaining<Placeholder extends string> = `${string}${Placeholder}${string}`;
|
|
31
|
+
type TypeEnsuringAllPlaceholders<PlaceholdersUnion extends string> = StringContaining<PlaceholdersUnion>;
|
|
32
|
+
type extractParamString<T extends string> = T extends `${infer _Start}{${infer Var}}${infer End}` ? Var extends `${infer VarName},${string}` ? `{${VarName}, ${string}}` | extractParamString<End> : `{${Var}}` | extractParamString<End> : never;
|
|
33
|
+
type inferParamsFromValue<V extends string> = extractParamString<V> extends never ? string : TypeEnsuringAllPlaceholders<extractParamString<V>>;
|
|
34
|
+
type inferTranslationShape<T extends UnknownStringKeyObject> = {
|
|
35
|
+
[K in keyof T]: T[K] extends UnknownStringKeyObject ? inferTranslationShape<T[K]> : T[K] extends string ? inferParamsFromValue<T[K]> : never;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
declare const INTERNAL_SYMBOL: unique symbol;
|
|
39
|
+
type InternalSymbol = typeof INTERNAL_SYMBOL;
|
|
40
|
+
type CompiledTranslation<T extends UnknownStringKeyObject, TNS extends string, TLocale extends string = string> = {
|
|
41
|
+
flat: Record<string, string>;
|
|
42
|
+
locale?: TLocale;
|
|
43
|
+
namespace: TNS;
|
|
44
|
+
[INTERNAL_SYMBOL]: {
|
|
45
|
+
shape: inferTranslationShape<T>;
|
|
46
|
+
map: inferTranslationParamMap<TNS, T>;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
type mergeTranslationMaps<TMain extends CompiledTranslation<UnknownStringKeyObject, string>, TOther extends CompiledTranslation<UnknownStringKeyObject, string>> = Omit<TMain, InternalSymbol> & {
|
|
50
|
+
[INTERNAL_SYMBOL]: {
|
|
51
|
+
shape: inferCompiledTranslationShape<TMain>;
|
|
52
|
+
map: inferCompiledTranslationMap<TOther> & inferCompiledTranslationMap<TMain>;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
type inferCompiledTranslationNamespace<T extends CompiledTranslation<UnknownStringKeyObject, string>> = T['namespace'];
|
|
56
|
+
type inferCompiledTranslationShape<T extends CompiledTranslation<UnknownStringKeyObject, string>> = T[InternalSymbol]['shape'];
|
|
57
|
+
type inferCompiledTranslationMap<T extends CompiledTranslation<UnknownStringKeyObject, string>> = T[InternalSymbol]['map'];
|
|
58
|
+
declare function compileTranslation<T extends UnknownStringKeyObject, TNS extends string, TLocale extends string = string>(translation: T, ns: TNS, locale?: TLocale): CompiledTranslation<T, TNS, TLocale>;
|
|
59
|
+
|
|
60
|
+
type TranslationNamespace<TNS extends string, T extends CompiledTranslation<UnknownStringKeyObject, TNS>, TShape extends UnknownStringKeyObject> = {
|
|
61
|
+
translation: T;
|
|
62
|
+
createTranslation: <TLocale extends string>(locale: TLocale, translation: TShape) => CompiledTranslation<TShape, TNS, TLocale>;
|
|
63
|
+
createMergedNamespace: <TOtherNS extends string, const TOther extends UnknownStringKeyObject, TOtherCompiled extends CompiledTranslation<TOther, TOtherNS>>(ns: TOtherNS, translation: TOther) => TranslationNamespace<TOtherNS, mergeTranslationMaps<TOtherCompiled, T>, inferCompiledTranslationShape<TOtherCompiled>>;
|
|
64
|
+
};
|
|
65
|
+
declare function createNamespace<const T extends UnknownStringKeyObject, TNS extends string>(ns: TNS, translation: T): TranslationNamespace<TNS, CompiledTranslation<T, TNS, string>, inferTranslationShape<T>>;
|
|
66
|
+
|
|
67
|
+
declare function provideIntlConfig(config: Omit<IntlConfig, 'locale' | 'messages'>): Provider;
|
|
68
|
+
declare function injectIntl(): i0.Signal<_formatjs_intl.IntlShape<string>>;
|
|
69
|
+
|
|
70
|
+
type AnyStringRecord = Record<string, any>;
|
|
71
|
+
type TFunction<TMap extends AnyStringRecord> = <TKey extends keyof TMap & string>(key: TKey, ...args: TMap[TKey] extends void ? [] : [TMap[TKey]]) => string;
|
|
72
|
+
type SignalTFunction<TMap extends AnyStringRecord> = <TKey extends keyof TMap & string>(key: TKey, ...args: TMap[TKey] extends void ? [] : [() => TMap[TKey]]) => Signal<string>;
|
|
73
|
+
type TFunctionWithSignalConstructor<TMap extends AnyStringRecord, TFN extends TFunction<TMap>> = TFN & {
|
|
74
|
+
asSignal: SignalTFunction<TMap>;
|
|
75
|
+
};
|
|
76
|
+
declare function registerNamespace<TDefault extends CompiledTranslation<UnknownStringKeyObject, string>, TOther extends CompiledTranslation<UnknownStringKeyObject, string>>(defaultTranslation: () => Promise<TDefault>, other: Record<string, () => Promise<TOther>>): {
|
|
77
|
+
injectNamespaceT: () => TFunctionWithSignalConstructor<inferCompiledTranslationMap<TDefault>, TFunction<inferCompiledTranslationMap<TDefault>>>;
|
|
78
|
+
resolveNamespaceTranslation: () => Promise<void>;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
declare abstract class BaseTranslateDirective<TInput extends string, T extends CompiledTranslation<UnknownStringKeyObject, string>, TMap extends inferCompiledTranslationMap<T> = inferCompiledTranslationMap<T>, TKey extends TInput & keyof TMap & string = TInput & keyof TMap & string> {
|
|
82
|
+
private readonly t;
|
|
83
|
+
readonly translate: i0.InputSignal<TMap[TKey] extends void ? TKey | [key: TKey] : [key: TKey, vars: TMap[TKey]]>;
|
|
84
|
+
constructor();
|
|
85
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BaseTranslateDirective<any, any, any, any>, never>;
|
|
86
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseTranslateDirective<any, any, any, any>, never, never, { "translate": { "alias": "translate"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
declare abstract class BaseTranslatePipe<T extends CompiledTranslation<UnknownStringKeyObject, string>, TMap extends inferCompiledTranslationMap<T> = inferCompiledTranslationMap<T>> {
|
|
90
|
+
private readonly t;
|
|
91
|
+
transform<K extends keyof TMap & string>(key: K, ...args: TMap[K] extends void ? [] : [TMap[K]]): string;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export { BaseTranslateDirective, BaseTranslatePipe, compileTranslation, createNamespace, injectIntl, provideIntlConfig, registerNamespace };
|
|
95
|
+
export type { CompiledTranslation, inferCompiledTranslationMap, inferCompiledTranslationNamespace, inferCompiledTranslationShape, mergeTranslationMaps };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmstack/translate",
|
|
3
|
-
"version": "20.0.
|
|
3
|
+
"version": "20.0.2",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"angular",
|
|
6
6
|
"localize",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"url": "https://github.com/mihajm/mmstack"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@angular/core": "~20.0
|
|
17
|
+
"@angular/core": "~20.1.0",
|
|
18
18
|
"@formatjs/intl": "~3.1.6"
|
|
19
19
|
},
|
|
20
20
|
"homepage": "https://github.com/mihajm/mmstack/blob/master/packages/translate",
|
package/lib/compile.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { inferTranslationParamMap, inferTranslationShape } from './parameterize.type';
|
|
2
|
-
import type { UnknownStringKeyObject } from './string-key-object.type';
|
|
3
|
-
declare const INTERNAL_SYMBOL: unique symbol;
|
|
4
|
-
type InternalSymbol = typeof INTERNAL_SYMBOL;
|
|
5
|
-
export type CompiledTranslation<T extends UnknownStringKeyObject, TNS extends string, TLocale extends string = string> = {
|
|
6
|
-
flat: Record<string, string>;
|
|
7
|
-
locale?: TLocale;
|
|
8
|
-
namespace: TNS;
|
|
9
|
-
[INTERNAL_SYMBOL]: {
|
|
10
|
-
shape: inferTranslationShape<T>;
|
|
11
|
-
map: inferTranslationParamMap<TNS, T>;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
export type mergeTranslationMaps<TMain extends CompiledTranslation<UnknownStringKeyObject, string>, TOther extends CompiledTranslation<UnknownStringKeyObject, string>> = Omit<TMain, InternalSymbol> & {
|
|
15
|
-
[INTERNAL_SYMBOL]: {
|
|
16
|
-
shape: inferCompiledTranslationShape<TMain>;
|
|
17
|
-
map: inferCompiledTranslationMap<TOther> & inferCompiledTranslationMap<TMain>;
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
export type inferCompiledTranslationNamespace<T extends CompiledTranslation<UnknownStringKeyObject, string>> = T['namespace'];
|
|
21
|
-
export type inferCompiledTranslationShape<T extends CompiledTranslation<UnknownStringKeyObject, string>> = T[InternalSymbol]['shape'];
|
|
22
|
-
export type inferCompiledTranslationMap<T extends CompiledTranslation<UnknownStringKeyObject, string>> = T[InternalSymbol]['map'];
|
|
23
|
-
export declare function compileTranslation<T extends UnknownStringKeyObject, TNS extends string, TLocale extends string = string>(translation: T, ns: TNS, locale?: TLocale): CompiledTranslation<T, TNS, TLocale>;
|
|
24
|
-
export {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { CompiledTranslation, inferCompiledTranslationShape, mergeTranslationMaps } from './compile';
|
|
2
|
-
import { UnknownStringKeyObject } from './string-key-object.type';
|
|
3
|
-
type TranslationNamespace<TNS extends string, T extends CompiledTranslation<UnknownStringKeyObject, TNS>, TShape extends UnknownStringKeyObject> = {
|
|
4
|
-
translation: T;
|
|
5
|
-
createTranslation: <TLocale extends string>(locale: TLocale, translation: TShape) => CompiledTranslation<TShape, TNS, TLocale>;
|
|
6
|
-
createMergedNamespace: <TOtherNS extends string, const TOther extends UnknownStringKeyObject, TOtherCompiled extends CompiledTranslation<TOther, TOtherNS>>(ns: TOtherNS, translation: TOther) => TranslationNamespace<TOtherNS, mergeTranslationMaps<TOtherCompiled, T>, inferCompiledTranslationShape<TOtherCompiled>>;
|
|
7
|
-
};
|
|
8
|
-
export declare function createNamespace<const T extends UnknownStringKeyObject, TNS extends string>(ns: TNS, translation: T): TranslationNamespace<TNS, CompiledTranslation<T, TNS, string>, import("./parameterize.type").inferTranslationShape<T>>;
|
|
9
|
-
export {};
|
package/lib/delim.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { UnknownStringKeyObject } from './string-key-object.type';
|
|
2
|
-
type Simplify<T> = T extends infer U ? {
|
|
3
|
-
[K in keyof U]: Simplify<U[K]>;
|
|
4
|
-
} : never;
|
|
5
|
-
type Autocomplete<T extends string> = T | Omit<string, T>;
|
|
6
|
-
type extractSelectOptions<TOpt extends string> = TOpt extends `${infer Option}{${infer _}} ${infer Rest}` ? Option | extractSelectOptions<Rest> : TOpt extends `${infer Option}{${infer _}}` ? Option : never;
|
|
7
|
-
type Trimmed<T extends string> = T extends `${infer Trimmed} ${infer _}` ? Trimmed : T extends `${infer _} ${infer Trimmed}` ? Trimmed : T;
|
|
8
|
-
type extractSelectParam<TName extends string, TOpt extends string> = [
|
|
9
|
-
TName,
|
|
10
|
-
Autocomplete<Exclude<Trimmed<extractSelectOptions<TOpt>>, 'other'>>
|
|
11
|
-
];
|
|
12
|
-
type extractComplexParam<T extends string> = T extends `{${infer VarName}, plural, ${infer _}}}${infer REST}` | `{${infer VarName}, selectordinal, ${infer _}}}${infer REST}` ? [VarName, number] | extractParams<REST> : T extends `{${infer VarName}, select, ${infer SelectOptions}}}${infer REST}` ? extractSelectParam<VarName, `${SelectOptions}}`> | extractParams<REST> : never;
|
|
13
|
-
export type extractParams<T extends string> = T extends `${infer _Start}{${infer Var}}${infer End}` ? Var extends `${infer _}, ${infer __}` ? extractComplexParam<`{${Var}}${End}`> : [Var, string] | extractParams<End> : never;
|
|
14
|
-
type mergeParams<TExtracted extends [string, any]> = {
|
|
15
|
-
[K in TExtracted as K[0]]: K[1];
|
|
16
|
-
};
|
|
17
|
-
type flattenParams<TKey extends string, TVal> = TVal extends UnknownStringKeyObject ? inferParamTupples<TVal, `${TKey}.`> : TVal extends string ? extractParams<TVal> extends never ? [TKey] : [TKey, mergeParams<extractParams<TVal>>] : never;
|
|
18
|
-
type inferParamTupples<T extends UnknownStringKeyObject, TPrefix extends string = ''> = Simplify<{
|
|
19
|
-
[K in keyof T]: K extends string ? flattenParams<`${TPrefix}${K}`, T[K]> : never;
|
|
20
|
-
}[keyof T]>;
|
|
21
|
-
export type inferTranslationParamMap<TNS extends string, T extends UnknownStringKeyObject> = Simplify<{
|
|
22
|
-
[Tuple in inferParamTupples<T> as Tuple[0] extends string ? `${TNS}.${Tuple[0]}` : never]: Tuple extends [string, infer Vars] ? Vars : void;
|
|
23
|
-
}>;
|
|
24
|
-
type StringContaining<Placeholder extends string> = `${string}${Placeholder}${string}`;
|
|
25
|
-
type TypeEnsuringAllPlaceholders<PlaceholdersUnion extends string> = StringContaining<PlaceholdersUnion>;
|
|
26
|
-
export type extractParamString<T extends string> = T extends `${infer _Start}{${infer Var}}${infer End}` ? Var extends `${infer VarName},${string}` ? `{${VarName}, ${string}}` | extractParamString<End> : `{${Var}}` | extractParamString<End> : never;
|
|
27
|
-
type inferParamsFromValue<V extends string> = extractParamString<V> extends never ? string : TypeEnsuringAllPlaceholders<extractParamString<V>>;
|
|
28
|
-
export type inferTranslationShape<T extends UnknownStringKeyObject> = {
|
|
29
|
-
[K in keyof T]: T[K] extends UnknownStringKeyObject ? inferTranslationShape<T[K]> : T[K] extends string ? inferParamsFromValue<T[K]> : never;
|
|
30
|
-
};
|
|
31
|
-
export {};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Signal } from '@angular/core';
|
|
2
|
-
import { CompiledTranslation, inferCompiledTranslationMap } from './compile';
|
|
3
|
-
import { UnknownStringKeyObject } from './string-key-object.type';
|
|
4
|
-
import { TranslationStore } from './translation.store';
|
|
5
|
-
type AnyStringRecord = Record<string, any>;
|
|
6
|
-
type TFunction<TMap extends AnyStringRecord> = <TKey extends keyof TMap & string>(key: TKey, ...args: TMap[TKey] extends void ? [] : [TMap[TKey]]) => string;
|
|
7
|
-
type SignalTFunction<TMap extends AnyStringRecord> = <TKey extends keyof TMap & string>(key: TKey, ...args: TMap[TKey] extends void ? [] : [() => TMap[TKey]]) => Signal<string>;
|
|
8
|
-
type TFunctionWithSignalConstructor<TMap extends AnyStringRecord, TFN extends TFunction<TMap>> = TFN & {
|
|
9
|
-
asSignal: SignalTFunction<TMap>;
|
|
10
|
-
};
|
|
11
|
-
export declare function createT<TMap extends AnyStringRecord>(store: TranslationStore): TFunction<TMap>;
|
|
12
|
-
export declare function registerNamespace<TDefault extends CompiledTranslation<UnknownStringKeyObject, string>, TOther extends CompiledTranslation<UnknownStringKeyObject, string>>(defaultTranslation: () => Promise<TDefault>, other: Record<string, () => Promise<TOther>>): {
|
|
13
|
-
injectNamespaceT: () => TFunctionWithSignalConstructor<inferCompiledTranslationMap<TDefault>, TFunction<inferCompiledTranslationMap<TDefault>>>;
|
|
14
|
-
resolveNamespaceTranslation: () => Promise<void>;
|
|
15
|
-
};
|
|
16
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type UnknownStringKeyObject = Record<string, unknown>;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { CompiledTranslation, inferCompiledTranslationMap } from './compile';
|
|
2
|
-
import { UnknownStringKeyObject } from './string-key-object.type';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare abstract class BaseTranslateDirective<TInput extends string, T extends CompiledTranslation<UnknownStringKeyObject, string>, TMap extends inferCompiledTranslationMap<T> = inferCompiledTranslationMap<T>, TKey extends TInput & keyof TMap & string = TInput & keyof TMap & string> {
|
|
5
|
-
private readonly t;
|
|
6
|
-
readonly translate: import("@angular/core").InputSignal<TMap[TKey] extends void ? TKey | [key: TKey] : [key: TKey, vars: TMap[TKey]]>;
|
|
7
|
-
constructor();
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BaseTranslateDirective<any, any, any, any>, never>;
|
|
9
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseTranslateDirective<any, any, any, any>, never, never, { "translate": { "alias": "translate"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
10
|
-
}
|
package/lib/translate.pipe.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { CompiledTranslation, inferCompiledTranslationMap } from './compile';
|
|
2
|
-
import { UnknownStringKeyObject } from './string-key-object.type';
|
|
3
|
-
export declare abstract class BaseTranslatePipe<T extends CompiledTranslation<UnknownStringKeyObject, string>, TMap extends inferCompiledTranslationMap<T> = inferCompiledTranslationMap<T>> {
|
|
4
|
-
private readonly t;
|
|
5
|
-
transform<K extends keyof TMap & string>(key: K, ...args: TMap[K] extends void ? [] : [TMap[K]]): string;
|
|
6
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Provider } from '@angular/core';
|
|
2
|
-
import { IntlConfig } from '@formatjs/intl';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare function provideIntlConfig(config: Omit<IntlConfig, 'locale' | 'messages'>): Provider;
|
|
5
|
-
export declare function injectIntlConfig(): Omit<IntlConfig, "locale" | "messages"> | undefined;
|
|
6
|
-
export declare function injectDefaultLocale(): string;
|
|
7
|
-
export declare class TranslationStore {
|
|
8
|
-
private readonly cache;
|
|
9
|
-
private readonly config;
|
|
10
|
-
private readonly locale;
|
|
11
|
-
private readonly defaultLocale;
|
|
12
|
-
private readonly translations;
|
|
13
|
-
private readonly nonMessageConfig;
|
|
14
|
-
private readonly messages;
|
|
15
|
-
readonly intl: import("@angular/core").Signal<import("@formatjs/intl").IntlShape<string>>;
|
|
16
|
-
formatMessage(key: string, values?: Record<string, string | number>): string;
|
|
17
|
-
register(namespace: string, flat: Partial<Record<string, Record<string, string>>>, locale: string): void;
|
|
18
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TranslationStore, never>;
|
|
19
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<TranslationStore>;
|
|
20
|
-
}
|
|
21
|
-
export declare function injectIntl(): import("@angular/core").Signal<import("@formatjs/intl").IntlShape<string>>;
|