@jsverse/transloco-messageformat 7.0.0 → 8.0.0
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/LICENSE +1 -1
- package/README.md +1 -1
- package/esm2022/lib/messageformat.factory.mjs +1 -1
- package/esm2022/lib/messageformat.transpiler.mjs +6 -5
- package/fesm2022/jsverse-transloco-messageformat.mjs +5 -4
- package/fesm2022/jsverse-transloco-messageformat.mjs.map +1 -1
- package/package.json +14 -13
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2019-
|
|
3
|
+
Copyright (c) 2019-2024 Netanel Basal, Shahar Kazaz, and Itay Oded.
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
# Transloco MessageFormat
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Discover more about this plugin and how it can enhance your workflow in the [official Transloco documentation](https://jsverse.gitbook.io/transloco/plugins/message-format).
|
|
@@ -19,4 +19,4 @@ export function cachedFactory(locales, messageConfig) {
|
|
|
19
19
|
};
|
|
20
20
|
return mf;
|
|
21
21
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZWZvcm1hdC5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy90cmFuc2xvY28tbWVzc2FnZWZvcm1hdC9zcmMvbGliL21lc3NhZ2Vmb3JtYXQuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGFBR04sTUFBTSxxQkFBcUIsQ0FBQztBQVM3QixNQUFNLFVBQVUsY0FBYyxDQUM1QixPQUFpQixFQUNqQixhQUE2QztJQUU3QyxPQUFPLElBQUksYUFBYSxDQUFXLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsT0FBaUIsRUFDakIsYUFBNkM7SUFFN0MsTUFBTSxFQUFFLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNsRCxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO0lBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFxQyxDQUFDO0lBQzNELE1BQU0sU0FBUyxHQUFHLEtBQUssT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLGFBQWEsQ0FBQyxhQUFhLElBQUksQ0FBQztJQUU5RSxFQUFFLENBQUMsT0FBTyxHQUFHLFVBQVUsUUFBZ0I7UUFDckMsTUFBTSxRQUFRLEdBQUcsR0FBRyxTQUFTLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFDM0MsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV0QyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXpCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0lBRUYsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1lc3NhZ2VGb3JtYXQsIHtcbiAgTWVzc2FnZUZvcm1hdE9wdGlvbnMsXG4gIE1lc3NhZ2VGdW5jdGlvbixcbn0gZnJvbSAnQG1lc3NhZ2Vmb3JtYXQvY29yZSc7XG5cbmltcG9ydCB7IE1GTG9jYWxlIH0gZnJvbSAnLi9tZXNzYWdlZm9ybWF0LmNvbmZpZyc7XG5cbmV4cG9ydCB0eXBlIE1GRmFjdG9yeSA9IChcbiAgbG9jYWxlczogTUZMb2NhbGUsXG4gIG1lc3NhZ2VDb25maWc6IE1lc3NhZ2VGb3JtYXRPcHRpb25zPCdzdHJpbmcnPixcbikgPT4gTWVzc2FnZUZvcm1hdDtcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRGYWN0b3J5KFxuICBsb2NhbGVzOiBNRkxvY2FsZSxcbiAgbWVzc2FnZUNvbmZpZzogTWVzc2FnZUZvcm1hdE9wdGlvbnM8J3N0cmluZyc+LFxuKTogTWVzc2FnZUZvcm1hdCB7XG4gIHJldHVybiBuZXcgTWVzc2FnZUZvcm1hdDwnc3RyaW5nJz4obG9jYWxlcywgbWVzc2FnZUNvbmZpZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWNoZWRGYWN0b3J5KFxuICBsb2NhbGVzOiBNRkxvY2FsZSxcbiAgbWVzc2FnZUNvbmZpZzogTWVzc2FnZUZvcm1hdE9wdGlvbnM8J3N0cmluZyc+LFxuKTogTWVzc2FnZUZvcm1hdCB7XG4gIGNvbnN0IG1mID0gZGVmYXVsdEZhY3RvcnkobG9jYWxlcywgbWVzc2FnZUNvbmZpZyk7XG4gIGNvbnN0IG9yaWdpbmFsID0gbWYuY29tcGlsZTtcbiAgY29uc3QgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgTWVzc2FnZUZ1bmN0aW9uPCdzdHJpbmcnPj4oKTtcbiAgY29uc3QgbG9jYWxlS2V5ID0gYF9fJHtsb2NhbGVzPy50b1N0cmluZygpIHx8IE1lc3NhZ2VGb3JtYXQuZGVmYXVsdExvY2FsZX1fX2A7XG5cbiAgbWYuY29tcGlsZSA9IGZ1bmN0aW9uIChtZXNzYWdlczogc3RyaW5nKTogTWVzc2FnZUZ1bmN0aW9uPCdzdHJpbmcnPiB7XG4gICAgY29uc3QgY2FjaGVLZXkgPSBgJHtsb2NhbGVLZXl9JHttZXNzYWdlc31gO1xuICAgIGNvbnN0IGNhY2hlZE1zZyA9IGNhY2hlLmdldChjYWNoZUtleSk7XG5cbiAgICBpZiAoY2FjaGVkTXNnKSB7XG4gICAgICByZXR1cm4gY2FjaGVkTXNnO1xuICAgIH1cblxuICAgIGNvbnN0IG1zZyA9IG9yaWdpbmFsLmNhbGwodGhpcywgbWVzc2FnZXMpO1xuICAgIGNhY2hlLnNldChjYWNoZUtleSwgbXNnKTtcblxuICAgIHJldHVybiBtc2c7XG4gIH07XG5cbiAgcmV0dXJuIG1mO1xufVxuIl19
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
-
import { DefaultTranspiler, getValue,
|
|
2
|
+
import { DefaultTranspiler, getValue, setValue, } from '@jsverse/transloco';
|
|
3
|
+
import { isObject } from '@jsverse/utils';
|
|
3
4
|
import { TRANSLOCO_MESSAGE_FORMAT_CONFIG, } from './messageformat.config';
|
|
4
5
|
import { cachedFactory, defaultFactory, } from './messageformat.factory';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
@@ -43,10 +44,10 @@ export class MessageFormatTranspiler extends DefaultTranspiler {
|
|
|
43
44
|
setLocale(locale) {
|
|
44
45
|
this.messageFormat = this.mfFactory(locale, this.messageConfig);
|
|
45
46
|
}
|
|
46
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
47
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
47
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MessageFormatTranspiler, deps: [{ token: TRANSLOCO_MESSAGE_FORMAT_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
48
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MessageFormatTranspiler });
|
|
48
49
|
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MessageFormatTranspiler, decorators: [{
|
|
50
51
|
type: Injectable
|
|
51
52
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
52
53
|
type: Optional
|
|
@@ -54,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImpor
|
|
|
54
55
|
type: Inject,
|
|
55
56
|
args: [TRANSLOCO_MESSAGE_FORMAT_CONFIG]
|
|
56
57
|
}] }] });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZWZvcm1hdC50cmFuc3BpbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy90cmFuc2xvY28tbWVzc2FnZWZvcm1hdC9zcmMvbGliL21lc3NhZ2Vmb3JtYXQudHJhbnNwaWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsUUFBUSxHQUVULE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE9BQU8sRUFHTCwrQkFBK0IsR0FDaEMsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLGNBQWMsR0FFZixNQUFNLHlCQUF5QixDQUFDOztBQUdqQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsaUJBQWlCO0lBQ3BELGFBQWEsQ0FBZ0I7SUFDcEIsYUFBYSxDQUFpQztJQUM5QyxTQUFTLENBQVk7SUFFdEMsWUFHRSxNQUEyQjtRQUUzQixLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sRUFDSixPQUFPLEVBQ1AsV0FBVyxHQUFHLElBQUksRUFDbEIsR0FBRyxhQUFhLEVBQ2pCLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1FBQzlELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQW1CO1FBQ2pFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7b0JBQ2pDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBZ0MsRUFBRSxDQUFDLENBQUM7b0JBQ3BELE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDM0IsV0FBVztvQkFDWCxHQUFHO2lCQUNKLENBQUMsQ0FBQztnQkFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdkQsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFFeEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFZO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFnQjtRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRSxDQUFDO3VHQXJEVSx1QkFBdUIsa0JBT3hCLCtCQUErQjsyR0FQOUIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOzswQkFPTixRQUFROzswQkFDUixNQUFNOzJCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERlZmF1bHRUcmFuc3BpbGVyLFxuICBnZXRWYWx1ZSxcbiAgc2V0VmFsdWUsXG4gIFRyYW5zcGlsZVBhcmFtcyxcbn0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnQGpzdmVyc2UvdXRpbHMnO1xuaW1wb3J0IE1lc3NhZ2VGb3JtYXQsIHsgTWVzc2FnZUZvcm1hdE9wdGlvbnMgfSBmcm9tICdAbWVzc2FnZWZvcm1hdC9jb3JlJztcblxuaW1wb3J0IHtcbiAgTWVzc2FnZWZvcm1hdENvbmZpZyxcbiAgTUZMb2NhbGUsXG4gIFRSQU5TTE9DT19NRVNTQUdFX0ZPUk1BVF9DT05GSUcsXG59IGZyb20gJy4vbWVzc2FnZWZvcm1hdC5jb25maWcnO1xuaW1wb3J0IHtcbiAgY2FjaGVkRmFjdG9yeSxcbiAgZGVmYXVsdEZhY3RvcnksXG4gIE1GRmFjdG9yeSxcbn0gZnJvbSAnLi9tZXNzYWdlZm9ybWF0LmZhY3RvcnknO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWVzc2FnZUZvcm1hdFRyYW5zcGlsZXIgZXh0ZW5kcyBEZWZhdWx0VHJhbnNwaWxlciB7XG4gIHByaXZhdGUgbWVzc2FnZUZvcm1hdDogTWVzc2FnZUZvcm1hdDtcbiAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlQ29uZmlnOiBNZXNzYWdlRm9ybWF0T3B0aW9uczwnc3RyaW5nJz47XG4gIHByaXZhdGUgcmVhZG9ubHkgbWZGYWN0b3J5OiBNRkZhY3Rvcnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19NRVNTQUdFX0ZPUk1BVF9DT05GSUcpXG4gICAgY29uZmlnOiBNZXNzYWdlZm9ybWF0Q29uZmlnLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHtcbiAgICAgIGxvY2FsZXMsXG4gICAgICBlbmFibGVDYWNoZSA9IHRydWUsXG4gICAgICAuLi5tZXNzYWdlQ29uZmlnXG4gICAgfSA9IHsgbG9jYWxlczogbnVsbCwgLi4uY29uZmlnIH07XG4gICAgdGhpcy5tZXNzYWdlQ29uZmlnID0gbWVzc2FnZUNvbmZpZztcbiAgICB0aGlzLm1mRmFjdG9yeSA9IGVuYWJsZUNhY2hlID8gY2FjaGVkRmFjdG9yeSA6IGRlZmF1bHRGYWN0b3J5O1xuICAgIHRoaXMubWVzc2FnZUZvcm1hdCA9IHRoaXMubWZGYWN0b3J5KGxvY2FsZXMsIG1lc3NhZ2VDb25maWcpO1xuICB9XG5cbiAgdHJhbnNwaWxlKHsgdmFsdWUsIHBhcmFtcyA9IHt9LCB0cmFuc2xhdGlvbiwga2V5IH06IFRyYW5zcGlsZVBhcmFtcykge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAoaXNPYmplY3QodmFsdWUpICYmIHBhcmFtcykge1xuICAgICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKChwKSA9PiB7XG4gICAgICAgIGNvbnN0IHRyYW5zcGlsZWQgPSBzdXBlci50cmFuc3BpbGUoe1xuICAgICAgICAgIHZhbHVlOiBnZXRWYWx1ZSh2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgcCksXG4gICAgICAgICAgcGFyYW1zOiBnZXRWYWx1ZShwYXJhbXMsIHApLFxuICAgICAgICAgIHRyYW5zbGF0aW9uLFxuICAgICAgICAgIGtleSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2VGb3JtYXQuY29tcGlsZSh0cmFuc3BpbGVkKTtcbiAgICAgICAgdmFsdWUgPSBzZXRWYWx1ZSh2YWx1ZSwgcCwgbWVzc2FnZShwYXJhbXNbcF0pKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBjb25zdCB0cmFuc3BpbGVkID0gc3VwZXIudHJhbnNwaWxlKHsgdmFsdWUsIHBhcmFtcywgdHJhbnNsYXRpb24sIGtleSB9KTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubWVzc2FnZUZvcm1hdC5jb21waWxlKHRyYW5zcGlsZWQpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2UocGFyYW1zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBvbkxhbmdDaGFuZ2VkKGxhbmc6IHN0cmluZykge1xuICAgIHRoaXMuc2V0TG9jYWxlKGxhbmcpO1xuICB9XG5cbiAgc2V0TG9jYWxlKGxvY2FsZTogTUZMb2NhbGUpIHtcbiAgICB0aGlzLm1lc3NhZ2VGb3JtYXQgPSB0aGlzLm1mRmFjdG9yeShsb2NhbGUsIHRoaXMubWVzc2FnZUNvbmZpZyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, Injectable, Optional, Inject, makeEnvironmentProviders } from '@angular/core';
|
|
3
|
-
import { DefaultTranspiler,
|
|
3
|
+
import { DefaultTranspiler, getValue, setValue, TRANSLOCO_TRANSPILER } from '@jsverse/transloco';
|
|
4
|
+
import { isObject } from '@jsverse/utils';
|
|
4
5
|
import MessageFormat from '@messageformat/core';
|
|
5
6
|
|
|
6
7
|
const TRANSLOCO_MESSAGE_FORMAT_CONFIG = new InjectionToken('TRANSLOCO_MESSAGE_FORMAT_CONFIG');
|
|
@@ -66,10 +67,10 @@ class MessageFormatTranspiler extends DefaultTranspiler {
|
|
|
66
67
|
setLocale(locale) {
|
|
67
68
|
this.messageFormat = this.mfFactory(locale, this.messageConfig);
|
|
68
69
|
}
|
|
69
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
70
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
70
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MessageFormatTranspiler, deps: [{ token: TRANSLOCO_MESSAGE_FORMAT_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
71
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MessageFormatTranspiler });
|
|
71
72
|
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MessageFormatTranspiler, decorators: [{
|
|
73
74
|
type: Injectable
|
|
74
75
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
75
76
|
type: Optional
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsverse-transloco-messageformat.mjs","sources":["../../../../libs/transloco-messageformat/src/lib/messageformat.config.ts","../../../../libs/transloco-messageformat/src/lib/messageformat.factory.ts","../../../../libs/transloco-messageformat/src/lib/messageformat.transpiler.ts","../../../../libs/transloco-messageformat/src/lib/messageformat.providers.ts","../../../../libs/transloco-messageformat/src/jsverse-transloco-messageformat.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport MessageFormat, { MessageFormatOptions } from '@messageformat/core';\n\nexport const TRANSLOCO_MESSAGE_FORMAT_CONFIG =\n new InjectionToken<MessageformatConfig>('TRANSLOCO_MESSAGE_FORMAT_CONFIG');\n\nexport type MFLocale = ConstructorParameters<typeof MessageFormat>[0];\n\nexport interface MessageformatConfig extends MessageFormatOptions<'string'> {\n locales?: MFLocale;\n enableCache?: boolean;\n}\n","import MessageFormat, {\n MessageFormatOptions,\n MessageFunction,\n} from '@messageformat/core';\n\nimport { MFLocale } from './messageformat.config';\n\nexport type MFFactory = (\n locales: MFLocale,\n messageConfig: MessageFormatOptions<'string'
|
|
1
|
+
{"version":3,"file":"jsverse-transloco-messageformat.mjs","sources":["../../../../libs/transloco-messageformat/src/lib/messageformat.config.ts","../../../../libs/transloco-messageformat/src/lib/messageformat.factory.ts","../../../../libs/transloco-messageformat/src/lib/messageformat.transpiler.ts","../../../../libs/transloco-messageformat/src/lib/messageformat.providers.ts","../../../../libs/transloco-messageformat/src/jsverse-transloco-messageformat.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport MessageFormat, { MessageFormatOptions } from '@messageformat/core';\n\nexport const TRANSLOCO_MESSAGE_FORMAT_CONFIG =\n new InjectionToken<MessageformatConfig>('TRANSLOCO_MESSAGE_FORMAT_CONFIG');\n\nexport type MFLocale = ConstructorParameters<typeof MessageFormat>[0];\n\nexport interface MessageformatConfig extends MessageFormatOptions<'string'> {\n locales?: MFLocale;\n enableCache?: boolean;\n}\n","import MessageFormat, {\n MessageFormatOptions,\n MessageFunction,\n} from '@messageformat/core';\n\nimport { MFLocale } from './messageformat.config';\n\nexport type MFFactory = (\n locales: MFLocale,\n messageConfig: MessageFormatOptions<'string'>,\n) => MessageFormat;\n\nexport function defaultFactory(\n locales: MFLocale,\n messageConfig: MessageFormatOptions<'string'>,\n): MessageFormat {\n return new MessageFormat<'string'>(locales, messageConfig);\n}\n\nexport function cachedFactory(\n locales: MFLocale,\n messageConfig: MessageFormatOptions<'string'>,\n): MessageFormat {\n const mf = defaultFactory(locales, messageConfig);\n const original = mf.compile;\n const cache = new Map<string, MessageFunction<'string'>>();\n const localeKey = `__${locales?.toString() || MessageFormat.defaultLocale}__`;\n\n mf.compile = function (messages: string): MessageFunction<'string'> {\n const cacheKey = `${localeKey}${messages}`;\n const cachedMsg = cache.get(cacheKey);\n\n if (cachedMsg) {\n return cachedMsg;\n }\n\n const msg = original.call(this, messages);\n cache.set(cacheKey, msg);\n\n return msg;\n };\n\n return mf;\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport {\n DefaultTranspiler,\n getValue,\n setValue,\n TranspileParams,\n} from '@jsverse/transloco';\nimport { isObject } from '@jsverse/utils';\nimport MessageFormat, { MessageFormatOptions } from '@messageformat/core';\n\nimport {\n MessageformatConfig,\n MFLocale,\n TRANSLOCO_MESSAGE_FORMAT_CONFIG,\n} from './messageformat.config';\nimport {\n cachedFactory,\n defaultFactory,\n MFFactory,\n} from './messageformat.factory';\n\n@Injectable()\nexport class MessageFormatTranspiler extends DefaultTranspiler {\n private messageFormat: MessageFormat;\n private readonly messageConfig: MessageFormatOptions<'string'>;\n private readonly mfFactory: MFFactory;\n\n constructor(\n @Optional()\n @Inject(TRANSLOCO_MESSAGE_FORMAT_CONFIG)\n config: MessageformatConfig,\n ) {\n super();\n const {\n locales,\n enableCache = true,\n ...messageConfig\n } = { locales: null, ...config };\n this.messageConfig = messageConfig;\n this.mfFactory = enableCache ? cachedFactory : defaultFactory;\n this.messageFormat = this.mfFactory(locales, messageConfig);\n }\n\n transpile({ value, params = {}, translation, key }: TranspileParams) {\n if (!value) {\n return value;\n }\n\n if (isObject(value) && params) {\n Object.keys(params).forEach((p) => {\n const transpiled = super.transpile({\n value: getValue(value as Record<string, unknown>, p),\n params: getValue(params, p),\n translation,\n key,\n });\n const message = this.messageFormat.compile(transpiled);\n value = setValue(value, p, message(params[p]));\n });\n } else if (!Array.isArray(value)) {\n const transpiled = super.transpile({ value, params, translation, key });\n\n const message = this.messageFormat.compile(transpiled);\n return message(params);\n }\n\n return value;\n }\n\n onLangChanged(lang: string) {\n this.setLocale(lang);\n }\n\n setLocale(locale: MFLocale) {\n this.messageFormat = this.mfFactory(locale, this.messageConfig);\n }\n}\n","import { makeEnvironmentProviders } from '@angular/core';\nimport { TRANSLOCO_TRANSPILER } from '@jsverse/transloco';\n\nimport {\n MessageformatConfig,\n TRANSLOCO_MESSAGE_FORMAT_CONFIG,\n} from './messageformat.config';\nimport { MessageFormatTranspiler } from './messageformat.transpiler';\n\nexport function provideTranslocoMessageformat(config?: MessageformatConfig) {\n return makeEnvironmentProviders([\n { provide: TRANSLOCO_MESSAGE_FORMAT_CONFIG, useValue: config },\n {\n provide: TRANSLOCO_TRANSPILER,\n useClass: MessageFormatTranspiler,\n },\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAGa,+BAA+B,GAC1C,IAAI,cAAc,CAAsB,iCAAiC;;ACQ3D,SAAA,cAAc,CAC5B,OAAiB,EACjB,aAA6C,EAAA;AAE7C,IAAA,OAAO,IAAI,aAAa,CAAW,OAAO,EAAE,aAAa,CAAC;AAC5D;AAEgB,SAAA,aAAa,CAC3B,OAAiB,EACjB,aAA6C,EAAA;IAE7C,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC;AACjD,IAAA,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO;AAC3B,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqC;AAC1D,IAAA,MAAM,SAAS,GAAG,CAAK,EAAA,EAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,aAAa,CAAC,aAAa,CAAA,EAAA,CAAI;AAE7E,IAAA,EAAE,CAAC,OAAO,GAAG,UAAU,QAAgB,EAAA;AACrC,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,SAAS,CAAG,EAAA,QAAQ,EAAE;QAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAErC,IAAI,SAAS,EAAE;AACb,YAAA,OAAO,SAAS;;QAGlB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AACzC,QAAA,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;AAExB,QAAA,OAAO,GAAG;AACZ,KAAC;AAED,IAAA,OAAO,EAAE;AACX;;ACrBM,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AACpD,IAAA,aAAa;AACJ,IAAA,aAAa;AACb,IAAA,SAAS;AAE1B,IAAA,WAAA,CAGE,MAA2B,EAAA;AAE3B,QAAA,KAAK,EAAE;AACP,QAAA,MAAM,EACJ,OAAO,EACP,WAAW,GAAG,IAAI,EAClB,GAAG,aAAa,EACjB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc;QAC7D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;;IAG7D,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,WAAW,EAAE,GAAG,EAAmB,EAAA;QACjE,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,KAAK;;AAGd,QAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,EAAE;YAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAChC,gBAAA,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC;AACjC,oBAAA,KAAK,EAAE,QAAQ,CAAC,KAAgC,EAAE,CAAC,CAAC;AACpD,oBAAA,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC3B,WAAW;oBACX,GAAG;AACJ,iBAAA,CAAC;gBACF,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC;AACtD,gBAAA,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,aAAC,CAAC;;aACG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChC,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;YAEvE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC;AACtD,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC;;AAGxB,QAAA,OAAO,KAAK;;AAGd,IAAA,aAAa,CAAC,IAAY,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;AAGtB,IAAA,SAAS,CAAC,MAAgB,EAAA;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC;;AApDtD,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAOxB,+BAA+B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAP9B,uBAAuB,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;0BAOI;;0BACA,MAAM;2BAAC,+BAA+B;;;ACpBrC,SAAU,6BAA6B,CAAC,MAA4B,EAAA;AACxE,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC9D,QAAA;AACE,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,QAAQ,EAAE,uBAAuB;AAClC,SAAA;AACF,KAAA,CAAC;AACJ;;ACjBA;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsverse/transloco-messageformat",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"description": "Transpiler for Transloco that uses messageformat.js to compile translations using ICU syntax for handling pluralization and gender",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -8,33 +8,35 @@
|
|
|
8
8
|
"bugs": {
|
|
9
9
|
"url": "https://github.com/jsverse/transloco/issues"
|
|
10
10
|
},
|
|
11
|
-
"homepage": "https://jsverse.
|
|
11
|
+
"homepage": "https://jsverse.gitbook.io/transloco/plugins/message-format",
|
|
12
12
|
"repository": {
|
|
13
13
|
"type": "git",
|
|
14
14
|
"url": "https://github.com/jsverse/transloco"
|
|
15
15
|
},
|
|
16
16
|
"keywords": [
|
|
17
|
-
"
|
|
18
|
-
"angular 2",
|
|
19
|
-
"declension",
|
|
17
|
+
"Angular",
|
|
20
18
|
"i18n",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
19
|
+
"Translate",
|
|
20
|
+
"Angular Translate",
|
|
21
|
+
"Transloco",
|
|
22
|
+
"Declension",
|
|
23
|
+
"ICU",
|
|
24
|
+
"Gender",
|
|
25
|
+
"Messageformat",
|
|
26
|
+
"Pluralization"
|
|
27
27
|
],
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"peerDependencies": {
|
|
30
30
|
"@angular/core": ">=16.0.0",
|
|
31
31
|
"@jsverse/transloco": ">=7.0.0",
|
|
32
|
+
"@jsverse/utils": "1.0.0-beta.5",
|
|
32
33
|
"rxjs": ">=6.0.0"
|
|
33
34
|
},
|
|
34
35
|
"dependencies": {
|
|
35
36
|
"@messageformat/core": "^3.0.0",
|
|
36
37
|
"tslib": "^2.2.0"
|
|
37
38
|
},
|
|
39
|
+
"sideEffects": false,
|
|
38
40
|
"module": "fesm2022/jsverse-transloco-messageformat.mjs",
|
|
39
41
|
"typings": "index.d.ts",
|
|
40
42
|
"exports": {
|
|
@@ -47,6 +49,5 @@
|
|
|
47
49
|
"esm": "./esm2022/jsverse-transloco-messageformat.mjs",
|
|
48
50
|
"default": "./fesm2022/jsverse-transloco-messageformat.mjs"
|
|
49
51
|
}
|
|
50
|
-
}
|
|
51
|
-
"sideEffects": false
|
|
52
|
+
}
|
|
52
53
|
}
|