@acorex/core 21.0.1-next.6 → 21.0.1-next.61
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/acorex-core-components.mjs +5 -5
- package/fesm2022/acorex-core-components.mjs.map +1 -1
- package/fesm2022/acorex-core-config.mjs +3 -3
- package/fesm2022/acorex-core-config.mjs.map +1 -1
- package/fesm2022/acorex-core-constants.mjs +214 -3
- package/fesm2022/acorex-core-constants.mjs.map +1 -1
- package/fesm2022/acorex-core-date-time.mjs +30 -31
- package/fesm2022/acorex-core-date-time.mjs.map +1 -1
- package/fesm2022/acorex-core-events.mjs +3 -3
- package/fesm2022/acorex-core-events.mjs.map +1 -1
- package/fesm2022/acorex-core-file.mjs +10 -10
- package/fesm2022/acorex-core-file.mjs.map +1 -1
- package/fesm2022/acorex-core-format.mjs +19 -19
- package/fesm2022/acorex-core-format.mjs.map +1 -1
- package/fesm2022/acorex-core-full-screen.mjs +16 -6
- package/fesm2022/acorex-core-full-screen.mjs.map +1 -1
- package/fesm2022/acorex-core-icon.mjs +3 -3
- package/fesm2022/acorex-core-icon.mjs.map +1 -1
- package/fesm2022/acorex-core-image.mjs +3 -3
- package/fesm2022/acorex-core-image.mjs.map +1 -1
- package/fesm2022/acorex-core-locale.mjs +10 -10
- package/fesm2022/acorex-core-locale.mjs.map +1 -1
- package/fesm2022/acorex-core-memoize.mjs.map +1 -1
- package/fesm2022/acorex-core-network.mjs +3 -3
- package/fesm2022/acorex-core-network.mjs.map +1 -1
- package/fesm2022/acorex-core-pipes.mjs +3 -3
- package/fesm2022/acorex-core-pipes.mjs.map +1 -1
- package/fesm2022/acorex-core-platform.mjs +10 -10
- package/fesm2022/acorex-core-platform.mjs.map +1 -1
- package/fesm2022/acorex-core-storage.mjs +9 -9
- package/fesm2022/acorex-core-storage.mjs.map +1 -1
- package/fesm2022/acorex-core-translation.mjs +145 -63
- package/fesm2022/acorex-core-translation.mjs.map +1 -1
- package/fesm2022/acorex-core-utils.mjs +4 -5
- package/fesm2022/acorex-core-utils.mjs.map +1 -1
- package/fesm2022/acorex-core-validation.mjs +40 -40
- package/fesm2022/acorex-core-validation.mjs.map +1 -1
- package/fesm2022/acorex-core-z-index.mjs +44 -0
- package/fesm2022/acorex-core-z-index.mjs.map +1 -0
- package/fesm2022/acorex-core.mjs.map +1 -1
- package/package.json +30 -28
- package/{components/index.d.ts → types/acorex-core-components.d.ts} +2 -2
- package/{constants/index.d.ts → types/acorex-core-constants.d.ts} +2 -1
- package/{format/index.d.ts → types/acorex-core-format.d.ts} +2 -2
- package/{full-screen/index.d.ts → types/acorex-core-full-screen.d.ts} +5 -0
- package/{translation/index.d.ts → types/acorex-core-translation.d.ts} +29 -4
- package/{validation/index.d.ts → types/acorex-core-validation.d.ts} +10 -10
- package/types/acorex-core-z-index.d.ts +20 -0
- package/z-index/README.md +3 -0
- /package/{config/index.d.ts → types/acorex-core-config.d.ts} +0 -0
- /package/{date-time/index.d.ts → types/acorex-core-date-time.d.ts} +0 -0
- /package/{events/index.d.ts → types/acorex-core-events.d.ts} +0 -0
- /package/{file/index.d.ts → types/acorex-core-file.d.ts} +0 -0
- /package/{icon/index.d.ts → types/acorex-core-icon.d.ts} +0 -0
- /package/{image/index.d.ts → types/acorex-core-image.d.ts} +0 -0
- /package/{locale/index.d.ts → types/acorex-core-locale.d.ts} +0 -0
- /package/{memoize/index.d.ts → types/acorex-core-memoize.d.ts} +0 -0
- /package/{network/index.d.ts → types/acorex-core-network.d.ts} +0 -0
- /package/{pipes/index.d.ts → types/acorex-core-pipes.d.ts} +0 -0
- /package/{platform/index.d.ts → types/acorex-core-platform.d.ts} +0 -0
- /package/{storage/index.d.ts → types/acorex-core-storage.d.ts} +0 -0
- /package/{utils/index.d.ts → types/acorex-core-utils.d.ts} +0 -0
- /package/{index.d.ts → types/acorex-core.d.ts} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, inject, Injectable, TemplateRef, ViewContainerRef, Directive, Pipe, provideAppInitializer, NgModule } from '@angular/core';
|
|
3
3
|
import { get } from 'lodash-es';
|
|
4
|
-
import { of, tap, shareReplay, firstValueFrom, BehaviorSubject, switchMap, from } from 'rxjs';
|
|
4
|
+
import { of, tap, shareReplay, firstValueFrom, BehaviorSubject, distinctUntilChanged, switchMap, from } from 'rxjs';
|
|
5
5
|
import { AXEventService, AXSystemEvents } from '@acorex/core/events';
|
|
6
6
|
import { AXLocaleService } from '@acorex/core/locale';
|
|
7
7
|
import { waitFor } from '@acorex/core/utils';
|
|
@@ -157,10 +157,10 @@ class AXTranslationLoaderService {
|
|
|
157
157
|
getFallbackScopes(scope) {
|
|
158
158
|
return this.config.fallbacks?.scopes?.[scope] ?? [];
|
|
159
159
|
}
|
|
160
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
161
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
160
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTranslationLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
161
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTranslationLoaderService, providedIn: 'root' }); }
|
|
162
162
|
}
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTranslationLoaderService, decorators: [{
|
|
164
164
|
type: Injectable,
|
|
165
165
|
args: [{ providedIn: 'root' }]
|
|
166
166
|
}] });
|
|
@@ -215,36 +215,18 @@ function escapeRegExp(string) {
|
|
|
215
215
|
class TranslationResolverService {
|
|
216
216
|
constructor() {
|
|
217
217
|
this.loaderService = inject(AXTranslationLoaderService);
|
|
218
|
-
this.cache = new Map();
|
|
219
|
-
this.inflight = new Map();
|
|
220
218
|
this.parser = new TranslationParserService();
|
|
221
219
|
}
|
|
222
220
|
async resolve(lang, scope, key, params) {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
const fetchPromise = firstValueFrom(this.loaderService.load(lang, scope));
|
|
228
|
-
this.inflight.set(cacheKey, fetchPromise);
|
|
229
|
-
try {
|
|
230
|
-
const data = await fetchPromise;
|
|
231
|
-
this.cache.set(cacheKey, data);
|
|
232
|
-
}
|
|
233
|
-
finally {
|
|
234
|
-
this.inflight.delete(cacheKey);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
await this.inflight.get(cacheKey);
|
|
239
|
-
}
|
|
221
|
+
let result = this.loaderService.peek(lang, scope, key);
|
|
222
|
+
if (result == null) {
|
|
223
|
+
await firstValueFrom(this.loaderService.load(lang, scope));
|
|
224
|
+
result = this.loaderService.peek(lang, scope, key);
|
|
240
225
|
}
|
|
241
|
-
|
|
242
|
-
if (!translations) {
|
|
243
|
-
console.warn(`Translations not found for ${cacheKey} after attempting to load.`);
|
|
226
|
+
if (result == null) {
|
|
244
227
|
const unresolvedResult = key;
|
|
245
228
|
return this.format(unresolvedResult, params);
|
|
246
229
|
}
|
|
247
|
-
let result = get(translations, key, key);
|
|
248
230
|
// Recursively resolve references
|
|
249
231
|
if (typeof result === 'string' && this.parser.isExpression(result)) {
|
|
250
232
|
const tokens = this.parser.parse(result, lang, scope);
|
|
@@ -284,6 +266,57 @@ class TranslationResolverService {
|
|
|
284
266
|
}
|
|
285
267
|
}
|
|
286
268
|
|
|
269
|
+
const LOCALE_KEY_REGEX = /^(\*-\*|[a-z]{2}-[A-Z]{2})$/;
|
|
270
|
+
function resolveMultiLanguageValue(value, locale) {
|
|
271
|
+
return value[locale] ?? value['en-US'] ?? Object.values(value).find((item) => item != null) ?? '';
|
|
272
|
+
}
|
|
273
|
+
function isValidMultiLanguageObject(value) {
|
|
274
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
275
|
+
return false;
|
|
276
|
+
}
|
|
277
|
+
const entries = Object.entries(value);
|
|
278
|
+
if (!entries.length) {
|
|
279
|
+
return false;
|
|
280
|
+
}
|
|
281
|
+
return entries.every(([key, entryValue]) => LOCALE_KEY_REGEX.test(key) && typeof entryValue === 'string');
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Resolves {@link AXMultiLanguageString} to a single string for the given locale.
|
|
285
|
+
* Fallback order: `currentLocale` → `en-US` → first map value.
|
|
286
|
+
*/
|
|
287
|
+
function resolveMultiLanguageString(content, currentLocale) {
|
|
288
|
+
if (content == null || content === '') {
|
|
289
|
+
return '';
|
|
290
|
+
}
|
|
291
|
+
if (typeof content === 'string') {
|
|
292
|
+
return content;
|
|
293
|
+
}
|
|
294
|
+
if (!isValidMultiLanguageObject(content)) {
|
|
295
|
+
return String(content);
|
|
296
|
+
}
|
|
297
|
+
return resolveMultiLanguageValue(content, currentLocale);
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Creates an {@link AXMultiLanguageMap} with `en-US` and `fa-IR` entries.
|
|
301
|
+
* Use for seed data, tests, and demos that supply English and Persian copy explicitly.
|
|
302
|
+
*/
|
|
303
|
+
function createMultiLanguageString(enUs, faIr) {
|
|
304
|
+
return { 'en-US': enUs, 'fa-IR': faIr };
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* True when there is no displayable text in any locale (plain string or ML map).
|
|
308
|
+
*/
|
|
309
|
+
function isEffectivelyEmptyLocalizedValue(value) {
|
|
310
|
+
if (value == null)
|
|
311
|
+
return true;
|
|
312
|
+
if (typeof value === 'string')
|
|
313
|
+
return value.trim() === '';
|
|
314
|
+
if (typeof value !== 'object' || Array.isArray(value))
|
|
315
|
+
return false;
|
|
316
|
+
const record = value;
|
|
317
|
+
return Object.values(record).every((v) => v == null || String(v).trim() === '');
|
|
318
|
+
}
|
|
319
|
+
|
|
287
320
|
let singletonInstance;
|
|
288
321
|
function translateSync(key, options) {
|
|
289
322
|
return singletonInstance.translateSync(key, options);
|
|
@@ -298,6 +331,7 @@ class AXTranslationService {
|
|
|
298
331
|
this.resolver = new TranslationResolverService();
|
|
299
332
|
this.activeLang = new BehaviorSubject(this.config.defaults.lang);
|
|
300
333
|
this.langChanges$ = this.activeLang.asObservable();
|
|
334
|
+
this.currentLocale$ = this.langChanges$.pipe(distinctUntilChanged());
|
|
301
335
|
singletonInstance = this;
|
|
302
336
|
this.localeService.profileChanged$.subscribe((locale) => {
|
|
303
337
|
if (locale?.localeInfo?.code) {
|
|
@@ -320,37 +354,55 @@ class AXTranslationService {
|
|
|
320
354
|
getDefaultLang() {
|
|
321
355
|
return this.config.defaults.lang;
|
|
322
356
|
}
|
|
323
|
-
|
|
324
|
-
if (
|
|
325
|
-
return
|
|
357
|
+
resolve(value, locale) {
|
|
358
|
+
if (value == null) {
|
|
359
|
+
return '';
|
|
326
360
|
}
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
361
|
+
if (typeof value === 'string') {
|
|
362
|
+
return value;
|
|
363
|
+
}
|
|
364
|
+
if (!isValidMultiLanguageObject(value)) {
|
|
365
|
+
return '';
|
|
366
|
+
}
|
|
367
|
+
return resolveMultiLanguageValue(value, locale ?? this.getActiveLang());
|
|
368
|
+
}
|
|
369
|
+
toLocaleMap(value, activeLocale = this.getActiveLang()) {
|
|
370
|
+
if (isValidMultiLanguageObject(value)) {
|
|
371
|
+
return { ...value };
|
|
372
|
+
}
|
|
373
|
+
return {
|
|
374
|
+
[activeLocale]: typeof value === 'string' ? value : '',
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
translate$(value, options) {
|
|
378
|
+
if (isValidMultiLanguageObject(value)) {
|
|
379
|
+
return this.langChanges$.pipe(switchMap((activeLang) => {
|
|
380
|
+
const targetLang = options?.lang ?? activeLang;
|
|
381
|
+
const selectedValue = resolveMultiLanguageValue(value, targetLang);
|
|
382
|
+
const scope = options?.scope ?? this.config.defaults.scope;
|
|
383
|
+
return from(this.translateAsync(selectedValue, {
|
|
384
|
+
...options,
|
|
385
|
+
lang: targetLang,
|
|
386
|
+
scope,
|
|
387
|
+
}));
|
|
334
388
|
}));
|
|
335
|
-
}
|
|
389
|
+
}
|
|
390
|
+
return this.translateValue$(value, options);
|
|
336
391
|
}
|
|
337
392
|
async translateAsync(text, options) {
|
|
338
|
-
const lang
|
|
339
|
-
const scope = options?.scope ?? this.config.defaults.scope;
|
|
393
|
+
const { lang, scope } = this.resolveContext(options);
|
|
340
394
|
const params = options?.params;
|
|
341
395
|
if (!this.parser.isExpression(text)) {
|
|
342
|
-
|
|
343
|
-
return this.resolver.format(resolved, params);
|
|
396
|
+
return this.resolver.resolve(lang, scope, text, params);
|
|
344
397
|
}
|
|
345
398
|
const tokens = this.parser.parse(text, lang, scope);
|
|
346
399
|
const results = await Promise.all(tokens.map((token) => this.resolver
|
|
347
400
|
.resolve(token.lang ?? lang, token.scope ?? scope, token.key, params)
|
|
348
|
-
.then((translated) => [token.fullMatch,
|
|
401
|
+
.then((translated) => [token.fullMatch, translated])));
|
|
349
402
|
return results.reduce((output, [match, translated]) => output.replace(match, translated), text);
|
|
350
403
|
}
|
|
351
404
|
translateSync(text, options) {
|
|
352
|
-
const lang
|
|
353
|
-
const scope = options?.scope ?? this.config.defaults.scope;
|
|
405
|
+
const { lang, scope } = this.resolveContext(options);
|
|
354
406
|
const params = options?.params;
|
|
355
407
|
const waitForLoad = options?.waitForLoad ?? false;
|
|
356
408
|
const timeoutMs = options?.timeoutMs ?? 100;
|
|
@@ -376,10 +428,40 @@ class AXTranslationService {
|
|
|
376
428
|
}
|
|
377
429
|
return result;
|
|
378
430
|
}
|
|
379
|
-
|
|
380
|
-
|
|
431
|
+
translateValue$(text, options) {
|
|
432
|
+
if (!text) {
|
|
433
|
+
return of('');
|
|
434
|
+
}
|
|
435
|
+
const staticOptions = { ...options };
|
|
436
|
+
const staticScope = staticOptions.scope ?? this.config.defaults.scope;
|
|
437
|
+
return this.langChanges$.pipe(switchMap((lang) => {
|
|
438
|
+
return from(this.translateAsync(text, {
|
|
439
|
+
...staticOptions,
|
|
440
|
+
lang: staticOptions.lang ?? lang,
|
|
441
|
+
scope: staticScope,
|
|
442
|
+
}));
|
|
443
|
+
}), shareReplay({ bufferSize: 1, refCount: true }));
|
|
444
|
+
}
|
|
445
|
+
resolveContext(options) {
|
|
446
|
+
return {
|
|
447
|
+
lang: options?.lang ?? this.getActiveLang() ?? this.config.defaults.lang,
|
|
448
|
+
scope: options?.scope ?? this.config.defaults.scope,
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
isValidMultiLanguageObject(value) {
|
|
452
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
453
|
+
return false;
|
|
454
|
+
}
|
|
455
|
+
const entries = Object.entries(value);
|
|
456
|
+
if (!entries.length) {
|
|
457
|
+
return false;
|
|
458
|
+
}
|
|
459
|
+
return entries.every(([key, entryValue]) => LOCALE_KEY_REGEX.test(key) && typeof entryValue === 'string');
|
|
460
|
+
}
|
|
461
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTranslationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
462
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTranslationService, providedIn: 'root' }); }
|
|
381
463
|
}
|
|
382
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
464
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTranslationService, decorators: [{
|
|
383
465
|
type: Injectable,
|
|
384
466
|
args: [{
|
|
385
467
|
providedIn: 'root',
|
|
@@ -413,10 +495,10 @@ class AXTranslatorDirective {
|
|
|
413
495
|
this.vc.clear();
|
|
414
496
|
this.vc.createEmbeddedView(this.templateRef, { $implicit: t });
|
|
415
497
|
}
|
|
416
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
417
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
498
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTranslatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
499
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: AXTranslatorDirective, isStandalone: true, selector: "[translate]", ngImport: i0 }); }
|
|
418
500
|
}
|
|
419
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
501
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTranslatorDirective, decorators: [{
|
|
420
502
|
type: Directive,
|
|
421
503
|
args: [{ selector: '[translate]' }]
|
|
422
504
|
}] });
|
|
@@ -425,16 +507,16 @@ class AXTranslatorPipe {
|
|
|
425
507
|
constructor() {
|
|
426
508
|
this.service = inject(AXTranslationService);
|
|
427
509
|
}
|
|
428
|
-
transform(
|
|
429
|
-
if (!
|
|
430
|
-
return of('');
|
|
510
|
+
transform(value, options) {
|
|
511
|
+
if (!value) {
|
|
512
|
+
return of('');
|
|
431
513
|
}
|
|
432
|
-
return this.service.translate$(
|
|
514
|
+
return this.service.translate$(value, options);
|
|
433
515
|
}
|
|
434
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
435
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
516
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTranslatorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
517
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: AXTranslatorPipe, isStandalone: true, name: "translate" }); }
|
|
436
518
|
}
|
|
437
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
519
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTranslatorPipe, decorators: [{
|
|
438
520
|
type: Pipe,
|
|
439
521
|
args: [{
|
|
440
522
|
name: 'translate',
|
|
@@ -448,16 +530,16 @@ function initializeApp(translatorService) {
|
|
|
448
530
|
};
|
|
449
531
|
}
|
|
450
532
|
class AXTranslationModule {
|
|
451
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
452
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
453
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
533
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTranslationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
534
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: AXTranslationModule, imports: [AXTranslatorPipe, AXTranslatorDirective], exports: [AXTranslatorPipe, AXTranslatorDirective] }); }
|
|
535
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTranslationModule, providers: [
|
|
454
536
|
provideAppInitializer(() => {
|
|
455
537
|
const initializerFn = initializeApp(inject(AXTranslationLoaderService));
|
|
456
538
|
return initializerFn();
|
|
457
539
|
}),
|
|
458
540
|
] }); }
|
|
459
541
|
}
|
|
460
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
542
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXTranslationModule, decorators: [{
|
|
461
543
|
type: NgModule,
|
|
462
544
|
args: [{
|
|
463
545
|
imports: [AXTranslatorPipe, AXTranslatorDirective],
|
|
@@ -475,5 +557,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
475
557
|
* Generated bundle index. Do not edit.
|
|
476
558
|
*/
|
|
477
559
|
|
|
478
|
-
export { AXTranslationDefaultConfig, AXTranslationLoaderDefault, AXTranslationModule, AXTranslationService, AXTranslatorDirective, AXTranslatorPipe, AX_TRANSLATION_CONFIG, AX_TRANSLATION_LOADER, loadTranslationScope, translateSync, translationConfig };
|
|
560
|
+
export { AXTranslationDefaultConfig, AXTranslationLoaderDefault, AXTranslationModule, AXTranslationService, AXTranslatorDirective, AXTranslatorPipe, AX_TRANSLATION_CONFIG, AX_TRANSLATION_LOADER, LOCALE_KEY_REGEX, createMultiLanguageString, isEffectivelyEmptyLocalizedValue, isValidMultiLanguageObject, loadTranslationScope, resolveMultiLanguageString, resolveMultiLanguageValue, translateSync, translationConfig };
|
|
479
561
|
//# sourceMappingURL=acorex-core-translation.mjs.map
|