{"version":3,"file":"ngx-translate-http-loader.mjs","sources":["../../../projects/http-loader/src/lib/http-loader.ts","../../../projects/http-loader/src/ngx-translate-http-loader.ts"],"sourcesContent":["import { HttpBackend, HttpClient } from \"@angular/common/http\";\nimport { inject, Injectable, InjectionToken, Provider } from \"@angular/core\";\nimport { TranslateLoader, TranslationObject } from \"@ngx-translate/core\";\nimport { Observable } from \"rxjs\";\n\nexport interface TranslateHttpLoaderConfig {\n    prefix: string;\n    suffix: string;\n    enforceLoading: boolean;\n    useHttpBackend: boolean;\n}\n\nexport const TRANSLATE_HTTP_LOADER_CONFIG = new InjectionToken<Partial<TranslateHttpLoaderConfig>>(\n    \"TRANSLATE_HTTP_LOADER_CONFIG\",\n);\n\n@Injectable()\nexport class TranslateHttpLoader implements TranslateLoader {\n    private http: HttpClient;\n    private config: TranslateHttpLoaderConfig;\n\n    constructor() {\n        this.config = {\n            prefix: \"/assets/i18n/\",\n            suffix: \".json\",\n            enforceLoading: false,\n            useHttpBackend: false,\n            ...inject(TRANSLATE_HTTP_LOADER_CONFIG),\n        };\n\n        this.http = this.config.useHttpBackend\n            ? new HttpClient(inject(HttpBackend))\n            : inject(HttpClient);\n    }\n\n    /**\n     * Gets the translations from the server\n     */\n    public getTranslation(lang: string): Observable<TranslationObject> {\n        const cacheBuster = this.config.enforceLoading ? `?enforceLoading=${Date.now()}` : \"\";\n\n        return this.http.get(\n            `${this.config.prefix}${lang}${this.config.suffix}${cacheBuster}`,\n        ) as Observable<TranslationObject>;\n    }\n}\n\nexport function provideTranslateHttpLoader(\n    config: Partial<TranslateHttpLoaderConfig> = {},\n): Provider[] {\n    const useBackend = config.useHttpBackend ?? false;\n\n    return [\n        {\n            provide: TRANSLATE_HTTP_LOADER_CONFIG,\n            useValue: config,\n        },\n        {\n            provide: TranslateLoader,\n            useClass: TranslateHttpLoader,\n            deps: [useBackend ? HttpBackend : HttpClient, TRANSLATE_HTTP_LOADER_CONFIG],\n        },\n    ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAYa,4BAA4B,GAAG,IAAI,cAAc,CAC1D,8BAA8B;MAIrB,mBAAmB,CAAA;AACpB,IAAA,IAAI;AACJ,IAAA,MAAM;AAEd,IAAA,WAAA,GAAA;QACI,IAAI,CAAC,MAAM,GAAG;AACV,YAAA,MAAM,EAAE,eAAe;AACvB,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,cAAc,EAAE,KAAK;YACrB,GAAG,MAAM,CAAC,4BAA4B,CAAC;SAC1C;AAED,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;cAClB,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC;AACpC,cAAE,MAAM,CAAC,UAAU,CAAC;;AAG5B;;AAEG;AACI,IAAA,cAAc,CAAC,IAAY,EAAA;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,mBAAmB,IAAI,CAAC,GAAG,EAAE,CAAA,CAAE,GAAG,EAAE;QAErF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,CAAG,EAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAG,EAAA,WAAW,CAAE,CAAA,CACnC;;uGA1B7B,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAnB,mBAAmB,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;AA+Be,SAAA,0BAA0B,CACtC,MAAA,GAA6C,EAAE,EAAA;AAE/C,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK;IAEjD,OAAO;AACH,QAAA;AACI,YAAA,OAAO,EAAE,4BAA4B;AACrC,YAAA,QAAQ,EAAE,MAAM;AACnB,SAAA;AACD,QAAA;AACI,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,QAAQ,EAAE,mBAAmB;AAC7B,YAAA,IAAI,EAAE,CAAC,UAAU,GAAG,WAAW,GAAG,UAAU,EAAE,4BAA4B,CAAC;AAC9E,SAAA;KACJ;AACL;;AC/DA;;AAEG;;;;"}