@cloarec/transloco-mf2
Version:
The implementation of the TranslocoTranspiler interface in this project uses [messageformat V4](https://messageformat.github.io/documents/Project_Overview.html). Since V4, the library [messageformat](https://github.com/messageformat/messageformat) provi
1 lines • 5.39 kB
Source Map (JSON)
{"version":3,"file":"cloarec-transloco-mf2.mjs","sources":["../../../projects/transloco-mf2/src/lib/transloco-mf2.transpiler.ts","../../../projects/transloco-mf2/src/lib/transloco-mf2.providers.ts","../../../projects/transloco-mf2/src/public-api.ts","../../../projects/transloco-mf2/src/cloarec-transloco-mf2.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\r\nimport { DefaultTranspiler, getValue, isObject, setValue, TranspileParams } from '@jsverse/transloco';\r\nimport { MessageFormat, MessageFormatOptions } from 'messageformat';\r\n\r\nexport interface TranslocoMF2Config extends MessageFormatOptions<string> {\r\n includeDraftFunctions: boolean;\r\n}\r\n\r\nexport const TRANSLOCO_MF2_CONFIG = new InjectionToken<TranslocoMF2Config>('TRANSLOCO_MF2_CONFIG');\r\n\r\n@Injectable()\r\nexport class TranslocoMF2Transpiler extends DefaultTranspiler {\r\n mf2Config = inject(TRANSLOCO_MF2_CONFIG, { optional: true });\r\n private locale?: string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n onLangChanged(lang: string) {\r\n this.locale = lang;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n override transpile(transpileParams: TranspileParams): any {\r\n let value = transpileParams.value;\r\n if (!value) {\r\n return value;\r\n }\r\n const { params, translation, key } = transpileParams;\r\n if (isObject(value) && params) {\r\n Object.keys(params).forEach((p) => {\r\n const param = getValue(params, p);\r\n const transpiled = super.transpile({\r\n value: getValue(value as Record<string, unknown>, p),\r\n params: param,\r\n translation,\r\n key,\r\n });\r\n const mf = new MessageFormat(this.locale, transpiled, this.mf2Config || {});\r\n value = setValue(value, p, mf.format(param));\r\n });\r\n return value;\r\n }\r\n if (!Array.isArray(value)) {\r\n const transpiled = super.transpile(transpileParams);\r\n const mf = new MessageFormat(this.locale, transpiled, this.mf2Config || {});\r\n return mf.format(params);\r\n }\r\n return value;\r\n }\r\n}\r\n","import { makeEnvironmentProviders } from '@angular/core';\r\nimport { provideTranslocoTranspiler } from '@jsverse/transloco';\r\nimport { DraftFunctions } from 'messageformat/functions';\r\nimport { TranslocoMF2Config, TRANSLOCO_MF2_CONFIG, TranslocoMF2Transpiler } from './transloco-mf2.transpiler';\r\n\r\nexport function provideTranslocoMF2Transpiler(config?: TranslocoMF2Config) {\r\n return makeEnvironmentProviders([\r\n {\r\n provide: TRANSLOCO_MF2_CONFIG,\r\n useValue: {\r\n ...config,\r\n functions: config?.includeDraftFunctions\r\n ? {\r\n ...DraftFunctions,\r\n ...config?.functions,\r\n }\r\n : config?.functions,\r\n },\r\n },\r\n provideTranslocoTranspiler(TranslocoMF2Transpiler),\r\n ]);\r\n}\r\n","/*\r\n * Public API Surface of transloco-mf2\r\n */\r\n\r\nexport * from './lib/transloco-mf2.transpiler';\r\nexport { provideTranslocoMF2Transpiler } from './lib/transloco-mf2.providers';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAQa,oBAAoB,GAAG,IAAI,cAAc,CAAqB,sBAAsB;AAG3F,MAAO,sBAAuB,SAAQ,iBAAiB,CAAA;IACzD,SAAS,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACpD,IAAA,MAAM;AAEd,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;;AAGX,IAAA,aAAa,CAAC,IAAY,EAAA;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;;;AAIb,IAAA,SAAS,CAAC,eAAgC,EAAA;AAC/C,QAAA,IAAI,KAAK,GAAG,eAAe,CAAC,KAAK;QACjC,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,KAAK;;QAEhB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,eAAe;AACpD,QAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,EAAE;YAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;gBAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACjC,gBAAA,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC;AAC/B,oBAAA,KAAK,EAAE,QAAQ,CAAC,KAAgC,EAAE,CAAC,CAAC;AACpD,oBAAA,MAAM,EAAE,KAAK;oBACb,WAAW;oBACX,GAAG;AACN,iBAAA,CAAC;AACF,gBAAA,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;AAC3E,gBAAA,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChD,aAAC,CAAC;AACF,YAAA,OAAO,KAAK;;QAEhB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACvB,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;AACnD,YAAA,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;AAC3E,YAAA,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;;AAE5B,QAAA,OAAO,KAAK;;uGAtCP,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAtB,sBAAsB,EAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;;ACLK,SAAU,6BAA6B,CAAC,MAA2B,EAAA;AACrE,IAAA,OAAO,wBAAwB,CAAC;AAC5B,QAAA;AACI,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,QAAQ,EAAE;AACN,gBAAA,GAAG,MAAM;gBACT,SAAS,EAAE,MAAM,EAAE;AACf,sBAAE;AACI,wBAAA,GAAG,cAAc;wBACjB,GAAG,MAAM,EAAE,SAAS;AACvB;sBACD,MAAM,EAAE,SAAS;AAC1B,aAAA;AACJ,SAAA;QACD,0BAA0B,CAAC,sBAAsB,CAAC;AACrD,KAAA,CAAC;AACN;;ACrBA;;AAEG;;ACFH;;AAEG;;;;"}