@bravobit/bb-foundation 0.22.4 → 0.23.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.
Files changed (37) hide show
  1. package/elements/lib/pipes/relative-time.pipe.d.ts +1 -1
  2. package/esm2020/localize/lib/dictionary/dictionary.class.mjs +92 -0
  3. package/esm2020/localize/lib/dictionary/dictionary.context.mjs +26 -0
  4. package/esm2020/localize/lib/dictionary/dictionary.data.mjs +6 -0
  5. package/esm2020/localize/lib/functions/lowercase.function.mjs +2 -2
  6. package/esm2020/localize/lib/functions/uppercase.function.mjs +2 -2
  7. package/esm2020/localize/lib/handlers/missing.handler.mjs +2 -2
  8. package/esm2020/localize/lib/interfaces/config.interfaces.mjs +1 -1
  9. package/esm2020/localize/lib/interfaces/options.interfaces.mjs +1 -1
  10. package/esm2020/localize/lib/interfaces/transforms.interfaces.mjs +3 -0
  11. package/esm2020/localize/lib/localize.module.mjs +11 -3
  12. package/esm2020/localize/lib/localize.pipe.mjs +4 -5
  13. package/esm2020/localize/lib/localize.service.mjs +84 -128
  14. package/esm2020/localize/lib/transforms/abstract.transform.mjs +30 -0
  15. package/esm2020/localize/lib/transforms/interpolate.transform.mjs +54 -0
  16. package/esm2020/localize/lib/transforms/reference.transform.mjs +25 -0
  17. package/esm2020/localize/public_api.mjs +8 -2
  18. package/fesm2015/bravobit-bb-foundation-localize.mjs +339 -167
  19. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  20. package/fesm2020/bravobit-bb-foundation-localize.mjs +321 -160
  21. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  22. package/localize/lib/dictionary/dictionary.class.d.ts +28 -0
  23. package/localize/lib/dictionary/dictionary.context.d.ts +7 -0
  24. package/localize/lib/dictionary/dictionary.data.d.ts +7 -0
  25. package/localize/lib/interfaces/config.interfaces.d.ts +4 -6
  26. package/localize/lib/interfaces/options.interfaces.d.ts +1 -0
  27. package/localize/lib/interfaces/transforms.interfaces.d.ts +3 -0
  28. package/localize/lib/localize.module.d.ts +1 -1
  29. package/localize/lib/localize.pipe.d.ts +1 -1
  30. package/localize/lib/localize.service.d.ts +25 -21
  31. package/localize/lib/transforms/abstract.transform.d.ts +13 -0
  32. package/localize/lib/transforms/interpolate.transform.d.ts +14 -0
  33. package/localize/lib/transforms/reference.transform.d.ts +10 -0
  34. package/localize/public_api.d.ts +7 -1
  35. package/package.json +1 -1
  36. package/esm2020/localize/lib/localize.dictionary.mjs +0 -24
  37. package/localize/lib/localize.dictionary.d.ts +0 -7
@@ -5,7 +5,7 @@ export declare class BbRelativeTime implements PipeTransform {
5
5
  private _localeId;
6
6
  private _localize?;
7
7
  constructor(_localeId: string, _localize?: Localize);
8
- transform(value: string | number | Date): any;
8
+ transform(value: string | number | Date): string | number | Date;
9
9
  private format;
10
10
  private formatString;
11
11
  private get locale();
@@ -0,0 +1,92 @@
1
+ import { LocalizeDictionaryContext } from './dictionary.context';
2
+ export class LocalizeDictionary {
3
+ constructor(_id, _locale, _supported, _dataValues, _localize) {
4
+ this._id = _id;
5
+ this._locale = _locale;
6
+ this._supported = _supported;
7
+ this._dataValues = _dataValues;
8
+ this._localize = _localize;
9
+ this._data = this.formatData(this._dataValues);
10
+ }
11
+ get id() {
12
+ return this._id ?? null;
13
+ }
14
+ get locale() {
15
+ return this._locale ?? null;
16
+ }
17
+ get supported() {
18
+ return this._supported ?? [];
19
+ }
20
+ get(token) {
21
+ const key = Array.isArray(token) ? token.join('.') : token;
22
+ return this._data?.[key] ?? null;
23
+ }
24
+ has(token) {
25
+ return !!this.get(token);
26
+ }
27
+ all() {
28
+ return this.some(context => context);
29
+ }
30
+ some(callback) {
31
+ const defaultContext = new LocalizeDictionaryContext();
32
+ const context = !!callback ? callback(defaultContext) : defaultContext;
33
+ return Object.keys(this._data ?? {})
34
+ .filter(key => context.regexp.test(key))
35
+ .reduce((previous, current) => ([
36
+ ...previous,
37
+ { token: current, value: this.get(current) }
38
+ ]), []);
39
+ }
40
+ async compare(to) {
41
+ if ((typeof ngDevMode === 'undefined' || ngDevMode)) {
42
+ const dictionaryIds = (Array.isArray(to) ? to : [to]);
43
+ const dictionaries = [];
44
+ for (const dictionaryId of dictionaryIds) {
45
+ console.log(`Making sure dictionary "${dictionaryId}" is loaded.`);
46
+ const dictionary = await this._localize.load(dictionaryId);
47
+ dictionaries.push(dictionary);
48
+ }
49
+ const warnings = [];
50
+ const items = this.all();
51
+ for (const item of items) {
52
+ for (const dictionary of dictionaries) {
53
+ if (!dictionary.has(item?.token)) {
54
+ warnings.push({ dictionary: dictionary?.id, value: item?.token });
55
+ }
56
+ }
57
+ }
58
+ for (const dictionary of dictionaries) {
59
+ const items = dictionary.all();
60
+ for (const item of items) {
61
+ if (!this.has(item?.token)) {
62
+ warnings.push({ dictionary: this.id, value: item?.token });
63
+ }
64
+ }
65
+ }
66
+ const compareDictionaryIds = dictionaries.map(dictionary => dictionary?.id).join(', ');
67
+ console.log(`Comparing currency dictionary [${this.id}] with [${compareDictionaryIds}]...`);
68
+ for (const warning of warnings) {
69
+ console?.warn?.(`Dictionary "${warning.dictionary}" is missing token "${warning.value}"`);
70
+ }
71
+ console?.warn?.(`Total of ${warnings.length} warning(s) found.`);
72
+ }
73
+ }
74
+ count() {
75
+ return Object.keys(this._data ?? {}).length;
76
+ }
77
+ formatData(data, scope = null) {
78
+ return Object.keys(data ?? {}).reduce((previous, current) => {
79
+ const value = data?.[current];
80
+ if (typeof value === 'object' && value !== null) {
81
+ const reformatted = this.formatData(value, current);
82
+ return { ...previous, ...reformatted };
83
+ }
84
+ const token = [scope, current].filter(item => !!item).join('.');
85
+ if (previous[token] && (typeof ngDevMode === 'undefined' || ngDevMode)) {
86
+ console?.warn?.(`Duplicate key "${token}" was found, please verify your translation files.`);
87
+ }
88
+ return { ...previous, [token]: value };
89
+ }, {});
90
+ }
91
+ }
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9kaWN0aW9uYXJ5L2RpY3Rpb25hcnkuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFLL0QsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixZQUFvQixHQUFXLEVBQ1gsT0FBZSxFQUNmLFVBQW9CLEVBQ3BCLFdBQXlDLEVBQ3pDLFNBQW1CO1FBSm5CLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDWCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBVTtRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBOEI7UUFDekMsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQU50QixVQUFLLEdBQTJCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBT25GLENBQUM7SUFFRCxJQUFJLEVBQUU7UUFDRixPQUFPLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBd0I7UUFDeEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FB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QUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEUsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDLEVBQUU7Z0JBQ3BFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsS0FBSyxvREFBb0QsQ0FBQyxDQUFDO2FBQ2hHO1lBRUQsT0FBTyxFQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFDLENBQUM7UUFDekMsQ0FBQyxFQUEwQixFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplRGljdGlvbmFyeURhdGFWYWx1ZXN9IGZyb20gJy4vZGljdGlvbmFyeS5kYXRhJztcbmltcG9ydCB7TG9jYWxpemVEaWN0aW9uYXJ5Q29udGV4dH0gZnJvbSAnLi9kaWN0aW9uYXJ5LmNvbnRleHQnO1xuaW1wb3J0IHtMb2NhbGl6ZX0gZnJvbSAnLi4vbG9jYWxpemUuc2VydmljZSc7XG5cbmRlY2xhcmUgbGV0IG5nRGV2TW9kZTtcblxuZXhwb3J0IGNsYXNzIExvY2FsaXplRGljdGlvbmFyeSB7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gdGhpcy5mb3JtYXREYXRhKHRoaXMuX2RhdGFWYWx1ZXMpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfaWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9zdXBwb3J0ZWQ6IHN0cmluZ1tdLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2RhdGFWYWx1ZXM6IExvY2FsaXplRGljdGlvbmFyeURhdGFWYWx1ZXMsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9jYWxpemU6IExvY2FsaXplKSB7XG4gICAgfVxuXG4gICAgZ2V0IGlkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faWQgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgbG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlID8/IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IHN1cHBvcnRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1cHBvcnRlZCA/PyBbXTtcbiAgICB9XG5cbiAgICBnZXQodG9rZW46IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IEFycmF5LmlzQXJyYXkodG9rZW4pID8gdG9rZW4uam9pbignLicpIDogdG9rZW47XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhPy5ba2V5XSA/PyBudWxsO1xuICAgIH1cblxuICAgIGhhcyh0b2tlbjogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5nZXQodG9rZW4pO1xuICAgIH1cblxuICAgIGFsbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc29tZShjb250ZXh0ID0+IGNvbnRleHQpO1xuICAgIH1cblxuICAgIHNvbWUoY2FsbGJhY2s6IChjb250ZXh0OiBMb2NhbGl6ZURpY3Rpb25hcnlDb250ZXh0KSA9PiBMb2NhbGl6ZURpY3Rpb25hcnlDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDb250ZXh0ID0gbmV3IExvY2FsaXplRGljdGlvbmFyeUNvbnRleHQoKTtcbiAgICAgICAgY29uc3QgY29udGV4dCA9ICEhY2FsbGJhY2sgPyBjYWxsYmFjayhkZWZhdWx0Q29udGV4dCkgOiBkZWZhdWx0Q29udGV4dDtcblxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5fZGF0YSA/PyB7fSlcbiAgICAgICAgICAgIC5maWx0ZXIoa2V5ID0+IGNvbnRleHQucmVnZXhwLnRlc3Qoa2V5KSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiAoW1xuICAgICAgICAgICAgICAgIC4uLnByZXZpb3VzLFxuICAgICAgICAgICAgICAgIHt0b2tlbjogY3VycmVudCwgdmFsdWU6IHRoaXMuZ2V0KGN1cnJlbnQpfVxuICAgICAgICAgICAgXSksIDx7IHRva2VuOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfVtdPltdKTtcbiAgICB9XG5cbiAgICBhc3luYyBjb21wYXJlKHRvOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgICAgICBpZiAoKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpY3Rpb25hcnlJZHMgPSAoQXJyYXkuaXNBcnJheSh0bykgPyB0byA6IFt0b10pO1xuICAgICAgICAgICAgY29uc3QgZGljdGlvbmFyaWVzOiBMb2NhbGl6ZURpY3Rpb25hcnlbXSA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBkaWN0aW9uYXJ5SWQgb2YgZGljdGlvbmFyeUlkcykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBNYWtpbmcgc3VyZSBkaWN0aW9uYXJ5IFwiJHtkaWN0aW9uYXJ5SWR9XCIgaXMgbG9hZGVkLmApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpY3Rpb25hcnkgPSBhd2FpdCB0aGlzLl9sb2NhbGl6ZS5sb2FkKGRpY3Rpb25hcnlJZCk7XG4gICAgICAgICAgICAgICAgZGljdGlvbmFyaWVzLnB1c2goZGljdGlvbmFyeSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHdhcm5pbmdzID0gW107XG5cbiAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5hbGwoKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZGljdGlvbmFyeSBvZiBkaWN0aW9uYXJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkaWN0aW9uYXJ5LmhhcyhpdGVtPy50b2tlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLnB1c2goe2RpY3Rpb25hcnk6IGRpY3Rpb25hcnk/LmlkLCB2YWx1ZTogaXRlbT8udG9rZW59KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChjb25zdCBkaWN0aW9uYXJ5IG9mIGRpY3Rpb25hcmllcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gZGljdGlvbmFyeS5hbGwoKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhcyhpdGVtPy50b2tlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLnB1c2goe2RpY3Rpb25hcnk6IHRoaXMuaWQsIHZhbHVlOiBpdGVtPy50b2tlbn0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb21wYXJlRGljdGlvbmFyeUlkcyA9IGRpY3Rpb25hcmllcy5tYXAoZGljdGlvbmFyeSA9PiBkaWN0aW9uYXJ5Py5pZCkuam9pbignLCAnKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDb21wYXJpbmcgY3VycmVuY3kgZGljdGlvbmFyeSBbJHt0aGlzLmlkfV0gd2l0aCBbJHtjb21wYXJlRGljdGlvbmFyeUlkc31dLi4uYCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHdhcm5pbmcgb2Ygd2FybmluZ3MpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlPy53YXJuPy4oYERpY3Rpb25hcnkgXCIke3dhcm5pbmcuZGljdGlvbmFyeX1cIiBpcyBtaXNzaW5nIHRva2VuIFwiJHt3YXJuaW5nLnZhbHVlfVwiYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zb2xlPy53YXJuPy4oYFRvdGFsIG9mICR7d2FybmluZ3MubGVuZ3RofSB3YXJuaW5nKHMpIGZvdW5kLmApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY291bnQoKSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLl9kYXRhID8/IHt9KS5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXREYXRhKGRhdGE6IExvY2FsaXplRGljdGlvbmFyeURhdGFWYWx1ZXMsIHNjb3BlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZGF0YSA/PyB7fSkucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5bY3VycmVudF07XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZm9ybWF0dGVkID0gdGhpcy5mb3JtYXREYXRhKHZhbHVlLCBjdXJyZW50KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gey4uLnByZXZpb3VzLCAuLi5yZWZvcm1hdHRlZH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gW3Njb3BlLCBjdXJyZW50XS5maWx0ZXIoaXRlbSA9PiAhIWl0ZW0pLmpvaW4oJy4nKTtcbiAgICAgICAgICAgIGlmIChwcmV2aW91c1t0b2tlbl0gJiYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlPy53YXJuPy4oYER1cGxpY2F0ZSBrZXkgXCIke3Rva2VufVwiIHdhcyBmb3VuZCwgcGxlYXNlIHZlcmlmeSB5b3VyIHRyYW5zbGF0aW9uIGZpbGVzLmApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gey4uLnByZXZpb3VzLCBbdG9rZW5dOiB2YWx1ZX07XG4gICAgICAgIH0sIDxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pnt9KTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ export class LocalizeDictionaryContext {
2
+ constructor() {
3
+ this.regexp = /^.*$/;
4
+ }
5
+ pattern(regexp) {
6
+ this.regexp = regexp;
7
+ return this;
8
+ }
9
+ matches(value) {
10
+ const formatted = this.formatValue(value);
11
+ const regex = (formatted ?? '')
12
+ .replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
13
+ .replace(/\\\*/g, '.*');
14
+ return this.pattern(new RegExp(`^${regex}$`));
15
+ }
16
+ group(value) {
17
+ const formatted = this.formatValue(value);
18
+ return this.matches([formatted, '*']);
19
+ }
20
+ formatValue(value) {
21
+ return Array.isArray(value)
22
+ ? value.filter(item => !!item).join('.')
23
+ : value;
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2RpY3Rpb25hcnkvZGljdGlvbmFyeS5jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyx5QkFBeUI7SUFBdEM7UUFFSSxXQUFNLEdBQVcsTUFBTSxDQUFDO0lBMEI1QixDQUFDO0lBeEJHLE9BQU8sQ0FBQyxNQUFjO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBd0I7UUFDNUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxNQUFNLEtBQUssR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7YUFDMUIsT0FBTyxDQUFDLDBCQUEwQixFQUFFLE1BQU0sQ0FBQzthQUMzQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQXdCO1FBQzFCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUF3QjtRQUN4QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDeEMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoQixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTG9jYWxpemVEaWN0aW9uYXJ5Q29udGV4dCB7XG5cbiAgICByZWdleHA6IFJlZ0V4cCA9IC9eLiokLztcblxuICAgIHBhdHRlcm4ocmVnZXhwOiBSZWdFeHApIHtcbiAgICAgICAgdGhpcy5yZWdleHAgPSByZWdleHA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG1hdGNoZXModmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IHRoaXMuZm9ybWF0VmFsdWUodmFsdWUpO1xuICAgICAgICBjb25zdCByZWdleCA9IChmb3JtYXR0ZWQgPz8gJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvWy1bXFxde30oKSorPy4sXFxcXF4kfCNcXHNdL2csICdcXFxcJCYnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcXFxcXCovZywgJy4qJyk7XG4gICAgICAgIHJldHVybiB0aGlzLnBhdHRlcm4obmV3IFJlZ0V4cChgXiR7cmVnZXh9JGApKTtcbiAgICB9XG5cbiAgICBncm91cCh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gdGhpcy5mb3JtYXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzLm1hdGNoZXMoW2Zvcm1hdHRlZCwgJyonXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXRWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgICAgICA/IHZhbHVlLmZpbHRlcihpdGVtID0+ICEhaXRlbSkuam9pbignLicpXG4gICAgICAgICAgICA6IHZhbHVlO1xuICAgIH1cblxufVxuIl19
@@ -0,0 +1,6 @@
1
+ export class LocalizeDictionaryData {
2
+ constructor(data) {
3
+ this.data = data;
4
+ }
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2RpY3Rpb25hcnkvZGljdGlvbmFyeS5kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxzQkFBc0I7SUFFL0IsWUFBbUIsSUFBa0M7UUFBbEMsU0FBSSxHQUFKLElBQUksQ0FBOEI7SUFDckQsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTG9jYWxpemVEaWN0aW9uYXJ5RGF0YVZhbHVlcyA9IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgTG9jYWxpemVEaWN0aW9uYXJ5RGF0YVZhbHVlcyB9O1xuXG5leHBvcnQgY2xhc3MgTG9jYWxpemVEaWN0aW9uYXJ5RGF0YSB7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YTogTG9jYWxpemVEaWN0aW9uYXJ5RGF0YVZhbHVlcykge1xuICAgIH1cblxufVxuIl19
@@ -7,7 +7,7 @@ export class LocalizeLowercaseFunction {
7
7
  return 'lowercase';
8
8
  }
9
9
  transform(value) {
10
- return (value || '').toLowerCase();
10
+ return (value ?? '').toLowerCase();
11
11
  }
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG93ZXJjYXNlLmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2Z1bmN0aW9ucy9sb3dlcmNhc2UuZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsRUFBRTtBQUNGLG9DQUFvQztBQUNwQyx1Q0FBdUM7QUFDdkMsRUFBRTtBQUVGLE1BQU0sT0FBTyx5QkFBeUI7SUFFbEMsT0FBTztRQUNILE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNuQixPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9jYWxpemVGdW5jdGlvbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mdW5jdGlvbnMuaW50ZXJmYWNlcyc7XG5cbi8vXG4vLyBUaGlzIGZ1bmN0aW9uIHRyYW5zZm9ybSB0aGUgdmFsdWVcbi8vIHRvIGEgbG93ZXJjYXNlIHZhcmlhbnQgb2YgdGhlIHZhbHVlLlxuLy9cblxuZXhwb3J0IGNsYXNzIExvY2FsaXplTG93ZXJjYXNlRnVuY3Rpb24gaW1wbGVtZW50cyBMb2NhbGl6ZUZ1bmN0aW9uIHtcblxuICAgIGtleXdvcmQoKSB7XG4gICAgICAgIHJldHVybiAnbG93ZXJjYXNlJztcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gKHZhbHVlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cblxufVxuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG93ZXJjYXNlLmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2Z1bmN0aW9ucy9sb3dlcmNhc2UuZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsRUFBRTtBQUNGLG9DQUFvQztBQUNwQyx1Q0FBdUM7QUFDdkMsRUFBRTtBQUVGLE1BQU0sT0FBTyx5QkFBeUI7SUFFbEMsT0FBTztRQUNILE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNuQixPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9jYWxpemVGdW5jdGlvbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mdW5jdGlvbnMuaW50ZXJmYWNlcyc7XG5cbi8vXG4vLyBUaGlzIGZ1bmN0aW9uIHRyYW5zZm9ybSB0aGUgdmFsdWVcbi8vIHRvIGEgbG93ZXJjYXNlIHZhcmlhbnQgb2YgdGhlIHZhbHVlLlxuLy9cblxuZXhwb3J0IGNsYXNzIExvY2FsaXplTG93ZXJjYXNlRnVuY3Rpb24gaW1wbGVtZW50cyBMb2NhbGl6ZUZ1bmN0aW9uIHtcblxuICAgIGtleXdvcmQoKSB7XG4gICAgICAgIHJldHVybiAnbG93ZXJjYXNlJztcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gKHZhbHVlID8/ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cblxufVxuIl19
@@ -7,7 +7,7 @@ export class LocalizeUppercaseFunction {
7
7
  return 'uppercase';
8
8
  }
9
9
  transform(value) {
10
- return (value || '').toUpperCase();
10
+ return (value ?? '').toUpperCase();
11
11
  }
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBwZXJjYXNlLmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2Z1bmN0aW9ucy91cHBlcmNhc2UuZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsRUFBRTtBQUNGLG9DQUFvQztBQUNwQyx1Q0FBdUM7QUFDdkMsRUFBRTtBQUVGLE1BQU0sT0FBTyx5QkFBeUI7SUFFbEMsT0FBTztRQUNILE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNuQixPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9jYWxpemVGdW5jdGlvbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mdW5jdGlvbnMuaW50ZXJmYWNlcyc7XG5cbi8vXG4vLyBUaGlzIGZ1bmN0aW9uIHRyYW5zZm9ybSB0aGUgdmFsdWVcbi8vIHRvIGEgdXBwZXJjYXNlIHZhcmlhbnQgb2YgdGhlIHZhbHVlLlxuLy9cblxuZXhwb3J0IGNsYXNzIExvY2FsaXplVXBwZXJjYXNlRnVuY3Rpb24gaW1wbGVtZW50cyBMb2NhbGl6ZUZ1bmN0aW9uIHtcblxuICAgIGtleXdvcmQoKSB7XG4gICAgICAgIHJldHVybiAndXBwZXJjYXNlJztcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gKHZhbHVlIHx8ICcnKS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cblxufVxuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBwZXJjYXNlLmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2Z1bmN0aW9ucy91cHBlcmNhc2UuZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsRUFBRTtBQUNGLG9DQUFvQztBQUNwQyx1Q0FBdUM7QUFDdkMsRUFBRTtBQUVGLE1BQU0sT0FBTyx5QkFBeUI7SUFFbEMsT0FBTztRQUNILE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNuQixPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9jYWxpemVGdW5jdGlvbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mdW5jdGlvbnMuaW50ZXJmYWNlcyc7XG5cbi8vXG4vLyBUaGlzIGZ1bmN0aW9uIHRyYW5zZm9ybSB0aGUgdmFsdWVcbi8vIHRvIGEgdXBwZXJjYXNlIHZhcmlhbnQgb2YgdGhlIHZhbHVlLlxuLy9cblxuZXhwb3J0IGNsYXNzIExvY2FsaXplVXBwZXJjYXNlRnVuY3Rpb24gaW1wbGVtZW50cyBMb2NhbGl6ZUZ1bmN0aW9uIHtcblxuICAgIGtleXdvcmQoKSB7XG4gICAgICAgIHJldHVybiAndXBwZXJjYXNlJztcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gKHZhbHVlID8/ICcnKS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cblxufVxuIl19
@@ -6,10 +6,10 @@ export class LocalizeMissingHandler {
6
6
  // Log to the console when the token was not found
7
7
  // if the user did not mark it as optional.
8
8
  if (!params?.optional) {
9
- this.log(`Localize: The token with name: "${params?.token}" was not found.`);
9
+ this.log(`The token with name: "${params?.token}" was not found.`);
10
10
  }
11
11
  // Return the default token back.
12
12
  return params?.token ?? null;
13
13
  }
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzc2luZy5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2hhbmRsZXJzL21pc3NpbmcuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sc0JBQXNCO0lBQW5DO1FBYVksUUFBRyxHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFaEUsQ0FBQztJQWJHLE1BQU0sQ0FBQyxNQUFzQjtRQUN6QixrREFBa0Q7UUFDbEQsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO1lBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsbUNBQW1DLE1BQU0sRUFBRSxLQUFLLGtCQUFrQixDQUFDLENBQUM7U0FDaEY7UUFFRCxpQ0FBaUM7UUFDakMsT0FBTyxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztJQUNqQyxDQUFDO0NBSUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplSGFuZGxlclByb3RvY29sfSBmcm9tICcuLi9pbnRlcmZhY2VzL2hhbmRsZXJzLmludGVyZmFjZXMnO1xuaW1wb3J0IHtMb2NhbGl6ZVBhcmFtc30gZnJvbSAnLi4vaW50ZXJmYWNlcy9vcHRpb25zLmludGVyZmFjZXMnO1xuXG5leHBvcnQgY2xhc3MgTG9jYWxpemVNaXNzaW5nSGFuZGxlciBpbXBsZW1lbnRzIExvY2FsaXplSGFuZGxlclByb3RvY29sIHtcblxuICAgIGhhbmRsZShwYXJhbXM6IExvY2FsaXplUGFyYW1zKSB7XG4gICAgICAgIC8vIExvZyB0byB0aGUgY29uc29sZSB3aGVuIHRoZSB0b2tlbiB3YXMgbm90IGZvdW5kXG4gICAgICAgIC8vIGlmIHRoZSB1c2VyIGRpZCBub3QgbWFyayBpdCBhcyBvcHRpb25hbC5cbiAgICAgICAgaWYgKCFwYXJhbXM/Lm9wdGlvbmFsKSB7XG4gICAgICAgICAgICB0aGlzLmxvZyhgTG9jYWxpemU6IFRoZSB0b2tlbiB3aXRoIG5hbWU6IFwiJHtwYXJhbXM/LnRva2VufVwiIHdhcyBub3QgZm91bmQuYCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXR1cm4gdGhlIGRlZmF1bHQgdG9rZW4gYmFjay5cbiAgICAgICAgcmV0dXJuIHBhcmFtcz8udG9rZW4gPz8gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvZyA9IChtZXNzYWdlOiBzdHJpbmcpID0+IGNvbnNvbGU/Lndhcm4/LihtZXNzYWdlKTtcblxufVxuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzc2luZy5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2hhbmRsZXJzL21pc3NpbmcuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sc0JBQXNCO0lBQW5DO1FBYVksUUFBRyxHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFaEUsQ0FBQztJQWJHLE1BQU0sQ0FBQyxNQUFzQjtRQUN6QixrREFBa0Q7UUFDbEQsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO1lBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQXlCLE1BQU0sRUFBRSxLQUFLLGtCQUFrQixDQUFDLENBQUM7U0FDdEU7UUFFRCxpQ0FBaUM7UUFDakMsT0FBTyxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztJQUNqQyxDQUFDO0NBSUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplSGFuZGxlclByb3RvY29sfSBmcm9tICcuLi9pbnRlcmZhY2VzL2hhbmRsZXJzLmludGVyZmFjZXMnO1xuaW1wb3J0IHtMb2NhbGl6ZVBhcmFtc30gZnJvbSAnLi4vaW50ZXJmYWNlcy9vcHRpb25zLmludGVyZmFjZXMnO1xuXG5leHBvcnQgY2xhc3MgTG9jYWxpemVNaXNzaW5nSGFuZGxlciBpbXBsZW1lbnRzIExvY2FsaXplSGFuZGxlclByb3RvY29sIHtcblxuICAgIGhhbmRsZShwYXJhbXM6IExvY2FsaXplUGFyYW1zKSB7XG4gICAgICAgIC8vIExvZyB0byB0aGUgY29uc29sZSB3aGVuIHRoZSB0b2tlbiB3YXMgbm90IGZvdW5kXG4gICAgICAgIC8vIGlmIHRoZSB1c2VyIGRpZCBub3QgbWFyayBpdCBhcyBvcHRpb25hbC5cbiAgICAgICAgaWYgKCFwYXJhbXM/Lm9wdGlvbmFsKSB7XG4gICAgICAgICAgICB0aGlzLmxvZyhgVGhlIHRva2VuIHdpdGggbmFtZTogXCIke3BhcmFtcz8udG9rZW59XCIgd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJldHVybiB0aGUgZGVmYXVsdCB0b2tlbiBiYWNrLlxuICAgICAgICByZXR1cm4gcGFyYW1zPy50b2tlbiA/PyBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9nID0gKG1lc3NhZ2U6IHN0cmluZykgPT4gY29uc29sZT8ud2Fybj8uKG1lc3NhZ2UpO1xuXG59XG4iXX0=
@@ -4,4 +4,4 @@
4
4
  //
5
5
  export class LocalizeConfig {
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2xvY2FsaXplL3NyYy9saWIvaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxFQUFFO0FBQ0YsNENBQTRDO0FBQzVDLDRDQUE0QztBQUM1QyxFQUFFO0FBRUYsTUFBTSxPQUFPLGNBQWM7Q0FPMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplRGljdGlvbmFyeX0gZnJvbSAnLi4vbG9jYWxpemUuZGljdGlvbmFyeSc7XG5cbi8vXG4vLyBUaGUgY29uZmlndXJhdGlvbiB0aGF0IGNhbiBiZSBwYXNzZWQgd2hlblxuLy8gdGhlIHVzZXIgaW5pdGlhbGl6ZXMgdGhlIGxvY2FsaXplIG1vZHVsZS5cbi8vXG5cbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZUNvbmZpZyB7XG4gICAgbGFuZ3VhZ2VzOiBMb2NhbGl6ZUNvbmZpZ0xhbmd1YWdlW107XG4gICAgYXV0b21hdGljPzogYm9vbGVhbjtcbiAgICBzdWJzdGl0dXRpb25zPzoge1xuICAgICAgICByZWZlcmVuY2VzPzogW2xlZnRTdWJzdGl0dXRpb246IHN0cmluZywgcmlnaHRTdWJzdGl0dXRpb246IHN0cmluZ107XG4gICAgICAgIGludGVycG9sYXRpb24/OiBbbGVmdFN1YnN0aXR1dGlvbjogc3RyaW5nLCByaWdodFN1YnN0aXR1dGlvbjogc3RyaW5nXTtcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsaXplQ29uZmlnTGFuZ3VhZ2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbG9jYWxlOiBzdHJpbmc7XG4gICAgc3VwcG9ydGVkOiBzdHJpbmdbXTtcbiAgICBkYXRhOiAoKSA9PiBMb2NhbGl6ZURpY3Rpb25hcnkgfCBQcm9taXNlPExvY2FsaXplRGljdGlvbmFyeT47XG59XG5cbmV4cG9ydCB0eXBlIExvY2FsaXplRGljdGlvbmFyeURhdGEgPSB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IExvY2FsaXplRGljdGlvbmFyeURhdGEgfTsiXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2xvY2FsaXplL3NyYy9saWIvaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxFQUFFO0FBQ0YsNENBQTRDO0FBQzVDLDRDQUE0QztBQUM1QyxFQUFFO0FBRUYsTUFBTSxPQUFPLGNBQWM7Q0FRMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplRGljdGlvbmFyeURhdGF9IGZyb20gJy4uL2RpY3Rpb25hcnkvZGljdGlvbmFyeS5kYXRhJztcblxuLy9cbi8vIFRoZSBjb25maWd1cmF0aW9uIHRoYXQgY2FuIGJlIHBhc3NlZCB3aGVuXG4vLyB0aGUgdXNlciBpbml0aWFsaXplcyB0aGUgbG9jYWxpemUgbW9kdWxlLlxuLy9cblxuZXhwb3J0IGNsYXNzIExvY2FsaXplQ29uZmlnIHtcbiAgICBsYW5ndWFnZXM6IExvY2FsaXplQ29uZmlnTGFuZ3VhZ2VbXTtcbiAgICBtb2RlPzogJ2F1dG9tYXRpYycgfCAnbWFudWFsJztcbiAgICBzdG9yYWdlVG9rZW4/OiBzdHJpbmc7XG4gICAgc3Vic3RpdHV0aW9ucz86IHtcbiAgICAgICAgcmVmZXJlbmNlcz86IFtsZWZ0U3Vic3RpdHV0aW9uOiBzdHJpbmcsIHJpZ2h0U3Vic3RpdHV0aW9uOiBzdHJpbmddO1xuICAgICAgICBpbnRlcnBvbGF0aW9uPzogW2xlZnRTdWJzdGl0dXRpb246IHN0cmluZywgcmlnaHRTdWJzdGl0dXRpb246IHN0cmluZ107XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbGl6ZUNvbmZpZ0xhbmd1YWdlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGxvY2FsZTogc3RyaW5nO1xuICAgIHN1cHBvcnRlZDogc3RyaW5nW107XG4gICAgZGF0YTogKCkgPT4gTG9jYWxpemVEaWN0aW9uYXJ5RGF0YSB8IFByb21pc2U8TG9jYWxpemVEaWN0aW9uYXJ5RGF0YT47XG59XG4iXX0=
@@ -3,4 +3,4 @@
3
3
  // when localizing the token.
4
4
  //
5
5
  export {};
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2ludGVyZmFjZXMvb3B0aW9ucy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLEVBQUU7QUFDRiwwQ0FBMEM7QUFDMUMsNkJBQTZCO0FBQzdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy8gVGhlc2UgYXJlIHRoZSBvcHRpb25zIHRoYXQgdGhlIHVzZXIgaGFzXG4vLyB3aGVuIGxvY2FsaXppbmcgdGhlIHRva2VuLlxuLy9cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbGl6ZU9wdGlvbnMge1xuICAgIG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgICBkYXRhPzogTG9jYWxpemVPcHRpb25zRGF0YTtcbn1cblxuLy9cbi8vIFRoaXMgaXMgdGhlIGRhdGEgdGhhdCB0aGUgdXNlciBjYW4gaW50ZXJwb2xhdGVcbi8vIGluIHRoZSBsb2NhbGl6ZWQgc3RyaW5ncy5cbi8vXG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxpemVPcHRpb25zRGF0YSB7XG4gICAgW3Rva2VuOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZTtcbn1cblxuLy9cbi8vIFRoZXNlIGFyZSB0aGUgcGFyYW1zIHRoYXQgdGhlIHVzZXIgY2FuIHNldFxuLy8gd2hlbiBoZSB3YW50cyB0byBsb2NhbGl6ZSBhIHRva2VuICh3aXRoIHRoZVxuLy8gb3B0aW9uYWwgb3B0aW9ucykuXG4vL1xuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsaXplUGFyYW1zIGV4dGVuZHMgTG9jYWxpemVPcHRpb25zIHtcbiAgICB0b2tlbjogc3RyaW5nO1xufVxuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2ludGVyZmFjZXMvb3B0aW9ucy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLEVBQUU7QUFDRiwwQ0FBMEM7QUFDMUMsNkJBQTZCO0FBQzdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy8gVGhlc2UgYXJlIHRoZSBvcHRpb25zIHRoYXQgdGhlIHVzZXIgaGFzXG4vLyB3aGVuIGxvY2FsaXppbmcgdGhlIHRva2VuLlxuLy9cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbGl6ZU9wdGlvbnMge1xuICAgIG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgICBkaWN0aW9uYXJ5Pzogc3RyaW5nO1xuICAgIGRhdGE/OiBMb2NhbGl6ZU9wdGlvbnNEYXRhO1xufVxuXG4vL1xuLy8gVGhpcyBpcyB0aGUgZGF0YSB0aGF0IHRoZSB1c2VyIGNhbiBpbnRlcnBvbGF0ZVxuLy8gaW4gdGhlIGxvY2FsaXplZCBzdHJpbmdzLlxuLy9cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbGl6ZU9wdGlvbnNEYXRhIHtcbiAgICBbdG9rZW46IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBEYXRlO1xufVxuXG4vL1xuLy8gVGhlc2UgYXJlIHRoZSBwYXJhbXMgdGhhdCB0aGUgdXNlciBjYW4gc2V0XG4vLyB3aGVuIGhlIHdhbnRzIHRvIGxvY2FsaXplIGEgdG9rZW4gKHdpdGggdGhlXG4vLyBvcHRpb25hbCBvcHRpb25zKS5cbi8vXG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxpemVQYXJhbXMgZXh0ZW5kcyBMb2NhbGl6ZU9wdGlvbnMge1xuICAgIHRva2VuOiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const LOCALIZE_TRANSFORM = new InjectionToken('localize_transform');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3Jtcy5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2ludGVyZmFjZXMvdHJhbnNmb3Jtcy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0MsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBRXpCLElBQUksY0FBYyxDQUFDLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplVHJhbnNmb3JtfSBmcm9tICcuLi90cmFuc2Zvcm1zL2Fic3RyYWN0LnRyYW5zZm9ybSc7XG5pbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IExPQ0FMSVpFX1RSQU5TRk9STVxuICAgIDogSW5qZWN0aW9uVG9rZW48TG9jYWxpemVUcmFuc2Zvcm1bXT5cbiAgICA9IG5ldyBJbmplY3Rpb25Ub2tlbignbG9jYWxpemVfdHJhbnNmb3JtJyk7XG4iXX0=
@@ -1,8 +1,11 @@
1
1
  import { APP_INITIALIZER, LOCALE_ID, NgModule } from '@angular/core';
2
2
  import { BbLocalizeString } from './views/localize-string/localize-string.component';
3
+ import { LocalizeInterpolateTransform } from './transforms/interpolate.transform';
4
+ import { LocalizeReferenceTransform } from './transforms/reference.transform';
3
5
  import { LocalizeLowercaseFunction } from './functions/lowercase.function';
4
6
  import { LocalizeUppercaseFunction } from './functions/uppercase.function';
5
7
  import { BbLocalizeTemplate } from './views/localize-template.directive';
8
+ import { LOCALIZE_TRANSFORM } from './interfaces/transforms.interfaces';
6
9
  import { LOCALIZE_FUNCTION } from './interfaces/functions.interfaces';
7
10
  import { LocalizeMissingHandler } from './handlers/missing.handler';
8
11
  import { LocalizeDateFunction } from './functions/date.function';
@@ -14,12 +17,14 @@ import { BbLocalize } from './localize.pipe';
14
17
  import * as i0 from "@angular/core";
15
18
  export class LocalizeModule {
16
19
  static forRoot(config) {
17
- const automatic = config?.automatic ?? true;
20
+ if (config?.languages?.length <= 0) {
21
+ throw new Error('One or more languages should be supplied.');
22
+ }
18
23
  return {
19
24
  ngModule: LocalizeModule,
20
25
  providers: [
21
26
  // Angular providers.
22
- ...(automatic ? [
27
+ ...(config?.mode === 'automatic' ? [
23
28
  { provide: APP_INITIALIZER, deps: [Localize], useFactory: initializeLocale, multi: true },
24
29
  { provide: LOCALE_ID, deps: [Localize], useFactory: getLocale }
25
30
  ] : []),
@@ -29,6 +34,9 @@ export class LocalizeModule {
29
34
  { provide: LOCALIZE_FUNCTION, useClass: LocalizeLowercaseFunction, multi: true },
30
35
  { provide: LOCALIZE_FUNCTION, useClass: LocalizeUppercaseFunction, multi: true },
31
36
  { provide: LOCALIZE_FUNCTION, useClass: LocalizeDateFunction, multi: true },
37
+ // Transform providers.
38
+ { provide: LOCALIZE_TRANSFORM, useClass: LocalizeReferenceTransform, deps: [LocalizeConfig], multi: true },
39
+ { provide: LOCALIZE_TRANSFORM, useClass: LocalizeInterpolateTransform, deps: [LocalizeConfig, LOCALIZE_FUNCTION], multi: true },
32
40
  // Handler providers.
33
41
  { provide: LocalizeMissingHandler, useClass: LocalizeMissingHandler },
34
42
  // Service providers.
@@ -66,4 +74,4 @@ export function initializeLocale(localize) {
66
74
  export function getLocale(localize) {
67
75
  return localize?.current?.locale ?? null;
68
76
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2xvY2FsaXplLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBdUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBZTNDLE1BQU0sT0FBTyxjQUFjO0lBRXZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBc0I7UUFDakMsTUFBTSxTQUFTLEdBQUcsTUFBTSxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUM7UUFDNUMsT0FBTztZQUNILFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDUCxxQkFBcUI7Z0JBQ3JCLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO29CQUNaLEVBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztvQkFDdkYsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUM7aUJBQ2hFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDUCxtQkFBbUI7Z0JBQ25CLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDO2dCQUMzQyxzQkFBc0I7Z0JBQ3RCLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO2dCQUM5RSxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztnQkFDOUUsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7Z0JBQ3pFLHFCQUFxQjtnQkFDckIsRUFBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFDO2dCQUNuRSxxQkFBcUI7Z0JBQ3JCLFFBQVE7YUFDWDtTQUNKLENBQUM7SUFDTixDQUFDOzsyR0F4QlEsY0FBYzs0R0FBZCxjQUFjLGlCQVZuQixVQUFVO1FBQ1YsZ0JBQWdCO1FBQ2hCLGtCQUFrQixhQUpaLFlBQVksRUFBRSxXQUFXLGFBTy9CLFVBQVU7UUFDVixnQkFBZ0I7UUFDaEIsa0JBQWtCOzRHQUdiLGNBQWMsWUFaYixZQUFZLEVBQUUsV0FBVzsyRkFZMUIsY0FBYztrQkFiMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO29CQUNwQyxZQUFZLEVBQUU7d0JBQ1YsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFVBQVU7d0JBQ1YsZ0JBQWdCO3dCQUNoQixrQkFBa0I7cUJBQ3JCO2lCQUNKOztBQTZCRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBa0I7SUFDL0MsT0FBTyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsUUFBa0I7SUFDeEMsT0FBTyxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QVBQX0lOSVRJQUxJWkVSLCBMT0NBTEVfSUQsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmJMb2NhbGl6ZVN0cmluZ30gZnJvbSAnLi92aWV3cy9sb2NhbGl6ZS1zdHJpbmcvbG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvY2FsaXplTG93ZXJjYXNlRnVuY3Rpb259IGZyb20gJy4vZnVuY3Rpb25zL2xvd2VyY2FzZS5mdW5jdGlvbic7XG5pbXBvcnQge0xvY2FsaXplVXBwZXJjYXNlRnVuY3Rpb259IGZyb20gJy4vZnVuY3Rpb25zL3VwcGVyY2FzZS5mdW5jdGlvbic7XG5pbXBvcnQge0JiTG9jYWxpemVUZW1wbGF0ZX0gZnJvbSAnLi92aWV3cy9sb2NhbGl6ZS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtMT0NBTElaRV9GVU5DVElPTn0gZnJvbSAnLi9pbnRlcmZhY2VzL2Z1bmN0aW9ucy5pbnRlcmZhY2VzJztcbmltcG9ydCB7TG9jYWxpemVNaXNzaW5nSGFuZGxlcn0gZnJvbSAnLi9oYW5kbGVycy9taXNzaW5nLmhhbmRsZXInO1xuaW1wb3J0IHtMb2NhbGl6ZURhdGVGdW5jdGlvbn0gZnJvbSAnLi9mdW5jdGlvbnMvZGF0ZS5mdW5jdGlvbic7XG5pbXBvcnQge0xvY2FsaXplQ29uZmlnfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZXMnO1xuaW1wb3J0IHtVdGlsc01vZHVsZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vdXRpbHMnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0xvY2FsaXplfSBmcm9tICcuL2xvY2FsaXplLnNlcnZpY2UnO1xuaW1wb3J0IHtCYkxvY2FsaXplfSBmcm9tICcuL2xvY2FsaXplLnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFV0aWxzTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgQmJMb2NhbGl6ZSxcbiAgICAgICAgQmJMb2NhbGl6ZVN0cmluZyxcbiAgICAgICAgQmJMb2NhbGl6ZVRlbXBsYXRlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEJiTG9jYWxpemUsXG4gICAgICAgIEJiTG9jYWxpemVTdHJpbmcsXG4gICAgICAgIEJiTG9jYWxpemVUZW1wbGF0ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9jYWxpemVNb2R1bGUge1xuXG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBMb2NhbGl6ZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TG9jYWxpemVNb2R1bGU+IHtcbiAgICAgICAgY29uc3QgYXV0b21hdGljID0gY29uZmlnPy5hdXRvbWF0aWMgPz8gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBMb2NhbGl6ZU1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIC8vIEFuZ3VsYXIgcHJvdmlkZXJzLlxuICAgICAgICAgICAgICAgIC4uLihhdXRvbWF0aWMgPyBbXG4gICAgICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsIGRlcHM6IFtMb2NhbGl6ZV0sIHVzZUZhY3Rvcnk6IGluaXRpYWxpemVMb2NhbGUsIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgICAgICAgICAge3Byb3ZpZGU6IExPQ0FMRV9JRCwgZGVwczogW0xvY2FsaXplXSwgdXNlRmFjdG9yeTogZ2V0TG9jYWxlfVxuICAgICAgICAgICAgICAgIF0gOiBbXSksXG4gICAgICAgICAgICAgICAgLy8gQ29uZmlnIHByb3ZpZGVyLlxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBMb2NhbGl6ZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZ30sXG4gICAgICAgICAgICAgICAgLy8gRnVuY3Rpb24gcHJvdmlkZXJzLlxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBMT0NBTElaRV9GVU5DVElPTiwgdXNlQ2xhc3M6IExvY2FsaXplTG93ZXJjYXNlRnVuY3Rpb24sIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTE9DQUxJWkVfRlVOQ1RJT04sIHVzZUNsYXNzOiBMb2NhbGl6ZVVwcGVyY2FzZUZ1bmN0aW9uLCBtdWx0aTogdHJ1ZX0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IExPQ0FMSVpFX0ZVTkNUSU9OLCB1c2VDbGFzczogTG9jYWxpemVEYXRlRnVuY3Rpb24sIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGVyIHByb3ZpZGVycy5cbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTG9jYWxpemVNaXNzaW5nSGFuZGxlciwgdXNlQ2xhc3M6IExvY2FsaXplTWlzc2luZ0hhbmRsZXJ9LFxuICAgICAgICAgICAgICAgIC8vIFNlcnZpY2UgcHJvdmlkZXJzLlxuICAgICAgICAgICAgICAgIExvY2FsaXplXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplTG9jYWxlKGxvY2FsaXplOiBMb2NhbGl6ZSkge1xuICAgIHJldHVybiBsb2NhbGl6ZS5pbml0aWFsaXplKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGUobG9jYWxpemU6IExvY2FsaXplKSB7XG4gICAgcmV0dXJuIGxvY2FsaXplPy5jdXJyZW50Py5sb2NhbGUgPz8gbnVsbDtcbn1cbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2xvY2FsaXplLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBdUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBZTNDLE1BQU0sT0FBTyxjQUFjO0lBRXZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBc0I7UUFDakMsSUFBSSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1NBQ2hFO1FBRUQsT0FBTztZQUNILFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDUCxxQkFBcUI7Z0JBQ3JCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQy9CLEVBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztvQkFDdkYsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUM7aUJBQ2hFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDUCxtQkFBbUI7Z0JBQ25CLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDO2dCQUMzQyxzQkFBc0I7Z0JBQ3RCLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO2dCQUM5RSxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztnQkFDOUUsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7Z0JBQ3pFLHVCQUF1QjtnQkFDdkIsRUFBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7Z0JBQ3hHLEVBQUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSw0QkFBNEIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO2dCQUM3SCxxQkFBcUI7Z0JBQ3JCLEVBQUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBQztnQkFDbkUscUJBQXFCO2dCQUNyQixRQUFRO2FBQ1g7U0FDSixDQUFDO0lBQ04sQ0FBQzs7MkdBOUJRLGNBQWM7NEdBQWQsY0FBYyxpQkFWbkIsVUFBVTtRQUNWLGdCQUFnQjtRQUNoQixrQkFBa0IsYUFKWixZQUFZLEVBQUUsV0FBVyxhQU8vQixVQUFVO1FBQ1YsZ0JBQWdCO1FBQ2hCLGtCQUFrQjs0R0FHYixjQUFjLFlBWmIsWUFBWSxFQUFFLFdBQVc7MkZBWTFCLGNBQWM7a0JBYjFCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsWUFBWSxFQUFFO3dCQUNWLFVBQVU7d0JBQ1YsZ0JBQWdCO3dCQUNoQixrQkFBa0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3FCQUNyQjtpQkFDSjs7QUFtQ0QsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFFBQWtCO0lBQy9DLE9BQU8sUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLFFBQWtCO0lBQ3hDLE9BQU8sUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FQUF9JTklUSUFMSVpFUiwgTE9DQUxFX0lELCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JiTG9jYWxpemVTdHJpbmd9IGZyb20gJy4vdmlld3MvbG9jYWxpemUtc3RyaW5nL2xvY2FsaXplLXN0cmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2NhbGl6ZUludGVycG9sYXRlVHJhbnNmb3JtfSBmcm9tICcuL3RyYW5zZm9ybXMvaW50ZXJwb2xhdGUudHJhbnNmb3JtJztcbmltcG9ydCB7TG9jYWxpemVSZWZlcmVuY2VUcmFuc2Zvcm19IGZyb20gJy4vdHJhbnNmb3Jtcy9yZWZlcmVuY2UudHJhbnNmb3JtJztcbmltcG9ydCB7TG9jYWxpemVMb3dlcmNhc2VGdW5jdGlvbn0gZnJvbSAnLi9mdW5jdGlvbnMvbG93ZXJjYXNlLmZ1bmN0aW9uJztcbmltcG9ydCB7TG9jYWxpemVVcHBlcmNhc2VGdW5jdGlvbn0gZnJvbSAnLi9mdW5jdGlvbnMvdXBwZXJjYXNlLmZ1bmN0aW9uJztcbmltcG9ydCB7QmJMb2NhbGl6ZVRlbXBsYXRlfSBmcm9tICcuL3ZpZXdzL2xvY2FsaXplLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0xPQ0FMSVpFX1RSQU5TRk9STX0gZnJvbSAnLi9pbnRlcmZhY2VzL3RyYW5zZm9ybXMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0xPQ0FMSVpFX0ZVTkNUSU9OfSBmcm9tICcuL2ludGVyZmFjZXMvZnVuY3Rpb25zLmludGVyZmFjZXMnO1xuaW1wb3J0IHtMb2NhbGl6ZU1pc3NpbmdIYW5kbGVyfSBmcm9tICcuL2hhbmRsZXJzL21pc3NpbmcuaGFuZGxlcic7XG5pbXBvcnQge0xvY2FsaXplRGF0ZUZ1bmN0aW9ufSBmcm9tICcuL2Z1bmN0aW9ucy9kYXRlLmZ1bmN0aW9uJztcbmltcG9ydCB7TG9jYWxpemVDb25maWd9IGZyb20gJy4vaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlcyc7XG5pbXBvcnQge1V0aWxzTW9kdWxlfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi91dGlscyc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TG9jYWxpemV9IGZyb20gJy4vbG9jYWxpemUuc2VydmljZSc7XG5pbXBvcnQge0JiTG9jYWxpemV9IGZyb20gJy4vbG9jYWxpemUucGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVXRpbHNNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBCYkxvY2FsaXplLFxuICAgICAgICBCYkxvY2FsaXplU3RyaW5nLFxuICAgICAgICBCYkxvY2FsaXplVGVtcGxhdGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgQmJMb2NhbGl6ZSxcbiAgICAgICAgQmJMb2NhbGl6ZVN0cmluZyxcbiAgICAgICAgQmJMb2NhbGl6ZVRlbXBsYXRlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZU1vZHVsZSB7XG5cbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWc6IExvY2FsaXplQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxMb2NhbGl6ZU1vZHVsZT4ge1xuICAgICAgICBpZiAoY29uZmlnPy5sYW5ndWFnZXM/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09uZSBvciBtb3JlIGxhbmd1YWdlcyBzaG91bGQgYmUgc3VwcGxpZWQuJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IExvY2FsaXplTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgLy8gQW5ndWxhciBwcm92aWRlcnMuXG4gICAgICAgICAgICAgICAgLi4uKGNvbmZpZz8ubW9kZSA9PT0gJ2F1dG9tYXRpYycgPyBbXG4gICAgICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsIGRlcHM6IFtMb2NhbGl6ZV0sIHVzZUZhY3Rvcnk6IGluaXRpYWxpemVMb2NhbGUsIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgICAgICAgICAge3Byb3ZpZGU6IExPQ0FMRV9JRCwgZGVwczogW0xvY2FsaXplXSwgdXNlRmFjdG9yeTogZ2V0TG9jYWxlfVxuICAgICAgICAgICAgICAgIF0gOiBbXSksXG4gICAgICAgICAgICAgICAgLy8gQ29uZmlnIHByb3ZpZGVyLlxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBMb2NhbGl6ZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZ30sXG4gICAgICAgICAgICAgICAgLy8gRnVuY3Rpb24gcHJvdmlkZXJzLlxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBMT0NBTElaRV9GVU5DVElPTiwgdXNlQ2xhc3M6IExvY2FsaXplTG93ZXJjYXNlRnVuY3Rpb24sIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTE9DQUxJWkVfRlVOQ1RJT04sIHVzZUNsYXNzOiBMb2NhbGl6ZVVwcGVyY2FzZUZ1bmN0aW9uLCBtdWx0aTogdHJ1ZX0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IExPQ0FMSVpFX0ZVTkNUSU9OLCB1c2VDbGFzczogTG9jYWxpemVEYXRlRnVuY3Rpb24sIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgICAgICAvLyBUcmFuc2Zvcm0gcHJvdmlkZXJzLlxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBMT0NBTElaRV9UUkFOU0ZPUk0sIHVzZUNsYXNzOiBMb2NhbGl6ZVJlZmVyZW5jZVRyYW5zZm9ybSwgZGVwczogW0xvY2FsaXplQ29uZmlnXSwgbXVsdGk6IHRydWV9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBMT0NBTElaRV9UUkFOU0ZPUk0sIHVzZUNsYXNzOiBMb2NhbGl6ZUludGVycG9sYXRlVHJhbnNmb3JtLCBkZXBzOiBbTG9jYWxpemVDb25maWcsIExPQ0FMSVpFX0ZVTkNUSU9OXSwgbXVsdGk6IHRydWV9LFxuICAgICAgICAgICAgICAgIC8vIEhhbmRsZXIgcHJvdmlkZXJzLlxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBMb2NhbGl6ZU1pc3NpbmdIYW5kbGVyLCB1c2VDbGFzczogTG9jYWxpemVNaXNzaW5nSGFuZGxlcn0sXG4gICAgICAgICAgICAgICAgLy8gU2VydmljZSBwcm92aWRlcnMuXG4gICAgICAgICAgICAgICAgTG9jYWxpemVcbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVMb2NhbGUobG9jYWxpemU6IExvY2FsaXplKSB7XG4gICAgcmV0dXJuIGxvY2FsaXplLmluaXRpYWxpemUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZShsb2NhbGl6ZTogTG9jYWxpemUpIHtcbiAgICByZXR1cm4gbG9jYWxpemU/LmN1cnJlbnQ/LmxvY2FsZSA/PyBudWxsO1xufVxuIl19
@@ -6,8 +6,7 @@ export class BbLocalize {
6
6
  this._localize = _localize;
7
7
  }
8
8
  transform(tokenOrParams, args) {
9
- // Validate that the localize service
10
- // exists in the pipe.
9
+ // Validate that the localize service exists in the pipe.
11
10
  if (!this._localize) {
12
11
  return tokenOrParams;
13
12
  }
@@ -19,7 +18,7 @@ export class BbLocalize {
19
18
  }
20
19
  combineParamsWithOptions(tokenOrParams, args) {
21
20
  // Gather the extras.
22
- const extras = args || {};
21
+ const extras = args ?? {};
23
22
  // Loop through all the keys to find the set options.
24
23
  const options = Object.keys(extras).reduce((previous, current) => {
25
24
  if (typeof extras[current] === 'undefined') {
@@ -30,7 +29,7 @@ export class BbLocalize {
30
29
  }, {});
31
30
  // Convert the string token to a params object.
32
31
  const params = typeof tokenOrParams === 'string'
33
- ? { token: tokenOrParams, optional: false, data: {} }
32
+ ? { token: tokenOrParams, optional: false, data: {}, dictionary: null }
34
33
  : tokenOrParams;
35
34
  // Return the combined params and options.
36
35
  return { ...params, ...options };
@@ -46,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
46
45
  }], ctorParameters: function () { return [{ type: i1.Localize, decorators: [{
47
46
  type: Optional
48
47
  }] }]; } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9sb2NhbGl6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7O0FBTTVELE1BQU0sT0FBTyxVQUFVO0lBRW5CLFlBQWdDLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7SUFDbkQsQ0FBQztJQUVELFNBQVMsQ0FBQyxhQUFzQyxFQUFFLElBQXNCO1FBQ3BFLHFDQUFxQztRQUNyQyxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsT0FBTyxhQUFhLENBQUM7U0FDeEI7UUFFRCxzQ0FBc0M7UUFDdEMsK0JBQStCO1FBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFbEUsNkJBQTZCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLHdCQUF3QixDQUFDLGFBQXNDLEVBQUUsSUFBc0I7UUFDM0YscUJBQXFCO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFMUIscURBQXFEO1FBQ3JELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQzdELElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssV0FBVyxFQUFFO2dCQUN4QyxPQUFPLFFBQVEsQ0FBQzthQUNuQjtZQUVELFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRVAsK0NBQStDO1FBQy9DLE1BQU0sTUFBTSxHQUFHLE9BQU8sYUFBYSxLQUFLLFFBQVE7WUFDNUMsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUM7WUFDbkQsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUVwQiwwQ0FBMEM7UUFDMUMsT0FBTyxFQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFDLENBQUM7SUFDbkMsQ0FBQzs7dUdBekNRLFVBQVU7cUdBQVYsVUFBVTsyRkFBVixVQUFVO2tCQUh0QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxZQUFZO2lCQUNyQjs7MEJBR2dCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplT3B0aW9ucywgTG9jYWxpemVQYXJhbXN9IGZyb20gJy4vaW50ZXJmYWNlcy9vcHRpb25zLmludGVyZmFjZXMnO1xuaW1wb3J0IHtPcHRpb25hbCwgUGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvY2FsaXplfSBmcm9tICcuL2xvY2FsaXplLnNlcnZpY2UnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2JiTG9jYWxpemUnXG59KVxuZXhwb3J0IGNsYXNzIEJiTG9jYWxpemUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgX2xvY2FsaXplOiBMb2NhbGl6ZSkge1xuICAgIH1cblxuICAgIHRyYW5zZm9ybSh0b2tlbk9yUGFyYW1zOiBzdHJpbmcgfCBMb2NhbGl6ZVBhcmFtcywgYXJncz86IExvY2FsaXplT3B0aW9ucykge1xuICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSBsb2NhbGl6ZSBzZXJ2aWNlXG4gICAgICAgIC8vIGV4aXN0cyBpbiB0aGUgcGlwZS5cbiAgICAgICAgaWYgKCF0aGlzLl9sb2NhbGl6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRva2VuT3JQYXJhbXM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb21iaW5lIHRoZSBwYXJhbXMgd2l0aCB0aGUgb3B0aW9uc1xuICAgICAgICAvLyB0byBmb3JtIHRoZSBsb2NhbGl6ZSBwYXJhbXMuXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29tYmluZVBhcmFtc1dpdGhPcHRpb25zKHRva2VuT3JQYXJhbXMsIGFyZ3MpO1xuXG4gICAgICAgIC8vIFRyeSB0byBsb2NhbGl6ZSB0aGUgdmFsdWUuXG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGl6ZS50cmFuc2xhdGUocGFyYW1zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbWJpbmVQYXJhbXNXaXRoT3B0aW9ucyh0b2tlbk9yUGFyYW1zOiBzdHJpbmcgfCBMb2NhbGl6ZVBhcmFtcywgYXJncz86IExvY2FsaXplT3B0aW9ucykge1xuICAgICAgICAvLyBHYXRoZXIgdGhlIGV4dHJhcy5cbiAgICAgICAgY29uc3QgZXh0cmFzID0gYXJncyB8fCB7fTtcblxuICAgICAgICAvLyBMb29wIHRocm91Z2ggYWxsIHRoZSBrZXlzIHRvIGZpbmQgdGhlIHNldCBvcHRpb25zLlxuICAgICAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmtleXMoZXh0cmFzKS5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhc1tjdXJyZW50XSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHByZXZpb3VzW2N1cnJlbnRdID0gZXh0cmFzW2N1cnJlbnRdO1xuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzO1xuICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgLy8gQ29udmVydCB0aGUgc3RyaW5nIHRva2VuIHRvIGEgcGFyYW1zIG9iamVjdC5cbiAgICAgICAgY29uc3QgcGFyYW1zID0gdHlwZW9mIHRva2VuT3JQYXJhbXMgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/IHt0b2tlbjogdG9rZW5PclBhcmFtcywgb3B0aW9uYWw6IGZhbHNlLCBkYXRhOiB7fX1cbiAgICAgICAgICAgIDogdG9rZW5PclBhcmFtcztcblxuICAgICAgICAvLyBSZXR1cm4gdGhlIGNvbWJpbmVkIHBhcmFtcyBhbmQgb3B0aW9ucy5cbiAgICAgICAgcmV0dXJuIHsuLi5wYXJhbXMsIC4uLm9wdGlvbnN9O1xuICAgIH1cblxufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9sb2NhbGl6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7O0FBTTVELE1BQU0sT0FBTyxVQUFVO0lBRW5CLFlBQWdDLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7SUFDbkQsQ0FBQztJQUVELFNBQVMsQ0FBQyxhQUFzQyxFQUFFLElBQXNCO1FBQ3BFLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixPQUFPLGFBQWEsQ0FBQztTQUN4QjtRQUVELHNDQUFzQztRQUN0QywrQkFBK0I7UUFDL0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVsRSw2QkFBNkI7UUFDN0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sd0JBQXdCLENBQUMsYUFBc0MsRUFBRSxJQUFzQjtRQUMzRixxQkFBcUI7UUFDckIsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUUxQixxREFBcUQ7UUFDckQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDN0QsSUFBSSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxXQUFXLEVBQUU7Z0JBQ3hDLE9BQU8sUUFBUSxDQUFDO2FBQ25CO1lBRUQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFUCwrQ0FBK0M7UUFDL0MsTUFBTSxNQUFNLEdBQUcsT0FBTyxhQUFhLEtBQUssUUFBUTtZQUM1QyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDO1lBQ3JFLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFFcEIsMENBQTBDO1FBQzFDLE9BQU8sRUFBQyxHQUFHLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBQyxDQUFDO0lBQ25DLENBQUM7O3VHQXhDUSxVQUFVO3FHQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFIdEIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsWUFBWTtpQkFDckI7OzBCQUdnQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhbGl6ZU9wdGlvbnMsIExvY2FsaXplUGFyYW1zfSBmcm9tICcuL2ludGVyZmFjZXMvb3B0aW9ucy5pbnRlcmZhY2VzJztcbmltcG9ydCB7T3B0aW9uYWwsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2NhbGl6ZX0gZnJvbSAnLi9sb2NhbGl6ZS5zZXJ2aWNlJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdiYkxvY2FsaXplJ1xufSlcbmV4cG9ydCBjbGFzcyBCYkxvY2FsaXplIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIF9sb2NhbGl6ZTogTG9jYWxpemUpIHtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm0odG9rZW5PclBhcmFtczogc3RyaW5nIHwgTG9jYWxpemVQYXJhbXMsIGFyZ3M/OiBMb2NhbGl6ZU9wdGlvbnMpIHtcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgbG9jYWxpemUgc2VydmljZSBleGlzdHMgaW4gdGhlIHBpcGUuXG4gICAgICAgIGlmICghdGhpcy5fbG9jYWxpemUpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbk9yUGFyYW1zO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ29tYmluZSB0aGUgcGFyYW1zIHdpdGggdGhlIG9wdGlvbnNcbiAgICAgICAgLy8gdG8gZm9ybSB0aGUgbG9jYWxpemUgcGFyYW1zLlxuICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmNvbWJpbmVQYXJhbXNXaXRoT3B0aW9ucyh0b2tlbk9yUGFyYW1zLCBhcmdzKTtcblxuICAgICAgICAvLyBUcnkgdG8gbG9jYWxpemUgdGhlIHZhbHVlLlxuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxpemUudHJhbnNsYXRlKHBhcmFtcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21iaW5lUGFyYW1zV2l0aE9wdGlvbnModG9rZW5PclBhcmFtczogc3RyaW5nIHwgTG9jYWxpemVQYXJhbXMsIGFyZ3M/OiBMb2NhbGl6ZU9wdGlvbnMpIHtcbiAgICAgICAgLy8gR2F0aGVyIHRoZSBleHRyYXMuXG4gICAgICAgIGNvbnN0IGV4dHJhcyA9IGFyZ3MgPz8ge307XG5cbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIGFsbCB0aGUga2V5cyB0byBmaW5kIHRoZSBzZXQgb3B0aW9ucy5cbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5rZXlzKGV4dHJhcykucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHRyYXNbY3VycmVudF0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwcmV2aW91c1tjdXJyZW50XSA9IGV4dHJhc1tjdXJyZW50XTtcbiAgICAgICAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICAgICAgfSwge30pO1xuXG4gICAgICAgIC8vIENvbnZlcnQgdGhlIHN0cmluZyB0b2tlbiB0byBhIHBhcmFtcyBvYmplY3QuXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHR5cGVvZiB0b2tlbk9yUGFyYW1zID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyB7dG9rZW46IHRva2VuT3JQYXJhbXMsIG9wdGlvbmFsOiBmYWxzZSwgZGF0YToge30sIGRpY3Rpb25hcnk6IG51bGx9XG4gICAgICAgICAgICA6IHRva2VuT3JQYXJhbXM7XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSBjb21iaW5lZCBwYXJhbXMgYW5kIG9wdGlvbnMuXG4gICAgICAgIHJldHVybiB7Li4ucGFyYW1zLCAuLi5vcHRpb25zfTtcbiAgICB9XG5cbn1cbiJdfQ==