@jsverse/transloco-persist-lang 8.2.1 → 8.4.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.
@@ -1,4 +1,10 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- export const TRANSLOCO_PERSIST_LANG_STORAGE = new InjectionToken('TRANSLOCO_PERSIST_LANG_STORAGE');
3
- export const TRANSLOCO_PERSIST_LANG_CONFIG = new InjectionToken('TRANSLOCO_PERSIST_LANG_CONFIG');
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdC1sYW5nLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdHJhbnNsb2NvLXBlcnNpc3QtbGFuZy9zcmMvbGliL3BlcnNpc3QtbGFuZy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWdCL0MsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQ3pDLElBQUksY0FBYyxDQUFpQixnQ0FBZ0MsQ0FBQyxDQUFDO0FBRXZFLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUN4QyxJQUFJLGNBQWMsQ0FBb0IsK0JBQStCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBlcnNpc3RTdG9yYWdlIH0gZnJvbSAnLi9wZXJzaXN0LWxhbmcudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldExhbmdQYXJhbXMge1xuICBjYWNoZWRMYW5nOiBzdHJpbmcgfCBudWxsO1xuICBicm93c2VyTGFuZz86IHN0cmluZztcbiAgY3VsdHVyZUxhbmc6IHN0cmluZztcbiAgZGVmYXVsdExhbmc6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZXJzaXN0TGFuZ0NvbmZpZyB7XG4gIHN0b3JhZ2VLZXk/OiBzdHJpbmc7XG4gIGdldExhbmdGbj8obGFuZ3M6IEdldExhbmdQYXJhbXMpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBUUkFOU0xPQ09fUEVSU0lTVF9MQU5HX1NUT1JBR0UgPVxuICBuZXcgSW5qZWN0aW9uVG9rZW48UGVyc2lzdFN0b3JhZ2U+KCdUUkFOU0xPQ09fUEVSU0lTVF9MQU5HX1NUT1JBR0UnKTtcblxuZXhwb3J0IGNvbnN0IFRSQU5TTE9DT19QRVJTSVNUX0xBTkdfQ09ORklHID1cbiAgbmV3IEluamVjdGlvblRva2VuPFBlcnNpc3RMYW5nQ29uZmlnPignVFJBTlNMT0NPX1BFUlNJU1RfTEFOR19DT05GSUcnKTtcbiJdfQ==
2
+ export const TRANSLOCO_PERSIST_LANG_STORAGE =
3
+ /* @__PURE__ */ new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode
4
+ ? 'TRANSLOCO_PERSIST_LANG_STORAGE'
5
+ : '');
6
+ export const TRANSLOCO_PERSIST_LANG_CONFIG =
7
+ /* @__PURE__ */ new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode
8
+ ? 'TRANSLOCO_PERSIST_LANG_CONFIG'
9
+ : '');
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdC1sYW5nLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdHJhbnNsb2NvLXBlcnNpc3QtbGFuZy9zcmMvbGliL3BlcnNpc3QtbGFuZy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWdCL0MsTUFBTSxDQUFDLE1BQU0sOEJBQThCO0FBQ3pDLGVBQWUsQ0FBQyxJQUFJLGNBQWMsQ0FDaEMsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVM7SUFDM0MsQ0FBQyxDQUFDLGdDQUFnQztJQUNsQyxDQUFDLENBQUMsRUFBRSxDQUNQLENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSw2QkFBNkI7QUFDeEMsZUFBZSxDQUFDLElBQUksY0FBYyxDQUNoQyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUztJQUMzQyxDQUFDLENBQUMsK0JBQStCO0lBQ2pDLENBQUMsQ0FBQyxFQUFFLENBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBlcnNpc3RTdG9yYWdlIH0gZnJvbSAnLi9wZXJzaXN0LWxhbmcudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldExhbmdQYXJhbXMge1xuICBjYWNoZWRMYW5nOiBzdHJpbmcgfCBudWxsO1xuICBicm93c2VyTGFuZz86IHN0cmluZztcbiAgY3VsdHVyZUxhbmc6IHN0cmluZztcbiAgZGVmYXVsdExhbmc6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZXJzaXN0TGFuZ0NvbmZpZyB7XG4gIHN0b3JhZ2VLZXk/OiBzdHJpbmc7XG4gIGdldExhbmdGbj8obGFuZ3M6IEdldExhbmdQYXJhbXMpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBUUkFOU0xPQ09fUEVSU0lTVF9MQU5HX1NUT1JBR0UgPVxuICAvKiBAX19QVVJFX18gKi8gbmV3IEluamVjdGlvblRva2VuPFBlcnNpc3RTdG9yYWdlPihcbiAgICB0eXBlb2YgbmdEZXZNb2RlICE9PSAndW5kZWZpbmVkJyAmJiBuZ0Rldk1vZGVcbiAgICAgID8gJ1RSQU5TTE9DT19QRVJTSVNUX0xBTkdfU1RPUkFHRSdcbiAgICAgIDogJycsXG4gICk7XG5cbmV4cG9ydCBjb25zdCBUUkFOU0xPQ09fUEVSU0lTVF9MQU5HX0NPTkZJRyA9XG4gIC8qIEBfX1BVUkVfXyAqLyBuZXcgSW5qZWN0aW9uVG9rZW48UGVyc2lzdExhbmdDb25maWc+KFxuICAgIHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZVxuICAgICAgPyAnVFJBTlNMT0NPX1BFUlNJU1RfTEFOR19DT05GSUcnXG4gICAgICA6ICcnLFxuICApO1xuIl19
@@ -51,7 +51,7 @@ export class TranslocoPersistLangService {
51
51
  }
52
52
  }
53
53
  save(lang) {
54
- if (!this.service.config.prodMode) {
54
+ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
55
55
  console.log(`%c 🍻 Saving ${lang} to storage`, 'background: #fff; color: #2196F3;');
56
56
  }
57
57
  this.storage.setItem(this.storageKey, lang);
@@ -69,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
69
69
  type: Injectable,
70
70
  args: [{ providedIn: 'root' }]
71
71
  }], ctorParameters: () => [] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdC1sYW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3RyYW5zbG9jby1wZXJzaXN0LWxhbmcvc3JjL2xpYi9wZXJzaXN0LWxhbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDhCQUE4QixHQUMvQixNQUFNLHVCQUF1QixDQUFDOztBQUcvQixNQUFNLE9BQU8sMkJBQTJCO0lBQzlCLE9BQU8sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNuQyxPQUFPLEdBQUcsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDakQsTUFBTSxHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBRS9DLFlBQVksR0FBd0IsSUFBSSxDQUFDO0lBQ3pDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxlQUFlLENBQUM7SUFFL0Q7UUFDRSxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEUsQ0FBQztJQUVELEtBQUs7UUFDSCxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLElBQUk7UUFDVixrRUFBa0U7UUFDbEUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3BELElBQUksVUFBVSxHQUFHLFVBQVUsSUFBSSxXQUFXLENBQUM7UUFFM0MsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixFQUFFLENBQUM7WUFDNUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNqQyxXQUFXO2dCQUNYLFdBQVc7Z0JBQ1gsV0FBVztnQkFDWCxVQUFVO2FBQ1gsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVPLElBQUksQ0FBQyxJQUFZO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxPQUFPLENBQUMsR0FBRyxDQUNULGdCQUFnQixJQUFJLGFBQWEsRUFDakMsbUNBQW1DLENBQ3BDLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsb0dBQW9HO1FBQ3BHLGtGQUFrRjtRQUNsRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO3VHQXZFVSwyQkFBMkI7MkdBQTNCLDJCQUEyQixjQURkLE1BQU07OzJGQUNuQiwyQkFBMkI7a0JBRHZDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZ2V0QnJvd3NlckN1bHR1cmVMYW5nLFxuICBnZXRCcm93c2VyTGFuZyxcbiAgaXNCcm93c2VyLFxuICBUcmFuc2xvY29TZXJ2aWNlLFxufSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJ0Bqc3ZlcnNlL3V0aWxzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFRSQU5TTE9DT19QRVJTSVNUX0xBTkdfQ09ORklHLFxuICBUUkFOU0xPQ09fUEVSU0lTVF9MQU5HX1NUT1JBR0UsXG59IGZyb20gJy4vcGVyc2lzdC1sYW5nLmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVHJhbnNsb2NvUGVyc2lzdExhbmdTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xuICBwcml2YXRlIHN0b3JhZ2UgPSBpbmplY3QoVFJBTlNMT0NPX1BFUlNJU1RfTEFOR19TVE9SQUdFKTtcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoVFJBTlNMT0NPX1BFUlNJU1RfTEFOR19DT05GSUcpO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzdG9yYWdlS2V5ID0gdGhpcy5jb25maWcuc3RvcmFnZUtleSB8fCAndHJhbnNsb2NvTGFuZyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICB0aGlzLmluaXQoKTtcbiAgICB9XG4gIH1cblxuICBnZXRDYWNoZWRMYW5nKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiBpc0Jyb3dzZXIoKSA/IHRoaXMuc3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSkgOiBudWxsO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgaXNCcm93c2VyKCkgJiYgdGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RvcmFnZU9uTGFuZ0NoYW5nZSgpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2UubGFuZ0NoYW5nZXMkLnBpcGUoc2tpcCgxKSkuc3Vic2NyaWJlKChsYW5nKSA9PiB7XG4gICAgICB0aGlzLnNhdmUobGFuZyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXQoKSB7XG4gICAgLy8gV2UgbmVlZCB0byBmaXJzdCBzZXQgdGhlIGNhY2hlZCBsYW5nIGFuZCB0aGVuIGxpc3RlbiB0byBjaGFuZ2VzXG4gICAgdGhpcy5zZXRBY3RpdmVMYW5nKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnVwZGF0ZVN0b3JhZ2VPbkxhbmdDaGFuZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZlTGFuZygpIHtcbiAgICBjb25zdCBjYWNoZWRMYW5nID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcbiAgICBjb25zdCBkZWZhdWx0TGFuZyA9IHRoaXMuc2VydmljZS5jb25maWcuZGVmYXVsdExhbmc7XG4gICAgbGV0IGFjdGl2ZUxhbmcgPSBjYWNoZWRMYW5nIHx8IGRlZmF1bHRMYW5nO1xuXG4gICAgaWYgKGlzRnVuY3Rpb24odGhpcy5jb25maWcuZ2V0TGFuZ0ZuKSkge1xuICAgICAgY29uc3QgYnJvd3NlckxhbmcgPSBnZXRCcm93c2VyTGFuZygpO1xuICAgICAgY29uc3QgY3VsdHVyZUxhbmcgPSBnZXRCcm93c2VyQ3VsdHVyZUxhbmcoKTtcbiAgICAgIGFjdGl2ZUxhbmcgPSB0aGlzLmNvbmZpZy5nZXRMYW5nRm4oe1xuICAgICAgICBicm93c2VyTGFuZyxcbiAgICAgICAgZGVmYXVsdExhbmcsXG4gICAgICAgIGN1bHR1cmVMYW5nLFxuICAgICAgICBjYWNoZWRMYW5nLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGFjdGl2ZUxhbmcpIHtcbiAgICAgIHRoaXMuc2VydmljZS5zZXRBY3RpdmVMYW5nKGFjdGl2ZUxhbmcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2F2ZShsYW5nOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuc2VydmljZS5jb25maWcucHJvZE1vZGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgJWMg8J+NuyBTYXZpbmcgJHtsYW5nfSB0byBzdG9yYWdlYCxcbiAgICAgICAgJ2JhY2tncm91bmQ6ICNmZmY7IGNvbG9yOiAjMjE5NkYzOycsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXksIGxhbmcpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IGl0J3MgaW1wb3J0YW50IHRvIGNsZWFuIHVwIHJlZmVyZW5jZXMgdG8gc3Vic2NyaXB0aW9ucyBzaW5jZSB0aGV5IHNhdmUgdGhlIGBuZXh0YFxuICAgIC8vIGNhbGxiYWNrIHdpdGhpbiBpdHMgYGRlc3RpbmF0aW9uYCBwcm9wZXJ0eSwgcHJldmVudGluZyBjbGFzc2VzIGZyb20gYmVpbmcgR0MnZC5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdC1sYW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3RyYW5zbG9jby1wZXJzaXN0LWxhbmcvc3JjL2xpYi9wZXJzaXN0LWxhbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDhCQUE4QixHQUMvQixNQUFNLHVCQUF1QixDQUFDOztBQUcvQixNQUFNLE9BQU8sMkJBQTJCO0lBQzlCLE9BQU8sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNuQyxPQUFPLEdBQUcsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDakQsTUFBTSxHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBRS9DLFlBQVksR0FBd0IsSUFBSSxDQUFDO0lBQ3pDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxlQUFlLENBQUM7SUFFL0Q7UUFDRSxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEUsQ0FBQztJQUVELEtBQUs7UUFDSCxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLElBQUk7UUFDVixrRUFBa0U7UUFDbEUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3BELElBQUksVUFBVSxHQUFHLFVBQVUsSUFBSSxXQUFXLENBQUM7UUFFM0MsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixFQUFFLENBQUM7WUFDNUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNqQyxXQUFXO2dCQUNYLFdBQVc7Z0JBQ1gsV0FBVztnQkFDWCxVQUFVO2FBQ1gsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVPLElBQUksQ0FBQyxJQUFZO1FBQ3ZCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQ1QsZ0JBQWdCLElBQUksYUFBYSxFQUNqQyxtQ0FBbUMsQ0FDcEMsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNqQyxvR0FBb0c7UUFDcEcsa0ZBQWtGO1FBQ2xGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7dUdBdkVVLDJCQUEyQjsyR0FBM0IsMkJBQTJCLGNBRGQsTUFBTTs7MkZBQ25CLDJCQUEyQjtrQkFEdkMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBnZXRCcm93c2VyQ3VsdHVyZUxhbmcsXG4gIGdldEJyb3dzZXJMYW5nLFxuICBpc0Jyb3dzZXIsXG4gIFRyYW5zbG9jb1NlcnZpY2UsXG59IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnQGpzdmVyc2UvdXRpbHMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBza2lwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgVFJBTlNMT0NPX1BFUlNJU1RfTEFOR19DT05GSUcsXG4gIFRSQU5TTE9DT19QRVJTSVNUX0xBTkdfU1RPUkFHRSxcbn0gZnJvbSAnLi9wZXJzaXN0LWxhbmcuY29uZmlnJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xvY29QZXJzaXN0TGFuZ1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHNlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XG4gIHByaXZhdGUgc3RvcmFnZSA9IGluamVjdChUUkFOU0xPQ09fUEVSU0lTVF9MQU5HX1NUT1JBR0UpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChUUkFOU0xPQ09fUEVSU0lTVF9MQU5HX0NPTkZJRyk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHN0b3JhZ2VLZXkgPSB0aGlzLmNvbmZpZy5zdG9yYWdlS2V5IHx8ICd0cmFuc2xvY29MYW5nJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldENhY2hlZExhbmcoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIGlzQnJvd3NlcigpID8gdGhpcy5zdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KSA6IG51bGw7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICBpc0Jyb3dzZXIoKSAmJiB0aGlzLnN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdG9yYWdlT25MYW5nQ2hhbmdlKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5sYW5nQ2hhbmdlcyQucGlwZShza2lwKDEpKS5zdWJzY3JpYmUoKGxhbmcpID0+IHtcbiAgICAgIHRoaXMuc2F2ZShsYW5nKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdCgpIHtcbiAgICAvLyBXZSBuZWVkIHRvIGZpcnN0IHNldCB0aGUgY2FjaGVkIGxhbmcgYW5kIHRoZW4gbGlzdGVuIHRvIGNoYW5nZXNcbiAgICB0aGlzLnNldEFjdGl2ZUxhbmcoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudXBkYXRlU3RvcmFnZU9uTGFuZ0NoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVMYW5nKCkge1xuICAgIGNvbnN0IGNhY2hlZExhbmcgPSB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xuICAgIGNvbnN0IGRlZmF1bHRMYW5nID0gdGhpcy5zZXJ2aWNlLmNvbmZpZy5kZWZhdWx0TGFuZztcbiAgICBsZXQgYWN0aXZlTGFuZyA9IGNhY2hlZExhbmcgfHwgZGVmYXVsdExhbmc7XG5cbiAgICBpZiAoaXNGdW5jdGlvbih0aGlzLmNvbmZpZy5nZXRMYW5nRm4pKSB7XG4gICAgICBjb25zdCBicm93c2VyTGFuZyA9IGdldEJyb3dzZXJMYW5nKCk7XG4gICAgICBjb25zdCBjdWx0dXJlTGFuZyA9IGdldEJyb3dzZXJDdWx0dXJlTGFuZygpO1xuICAgICAgYWN0aXZlTGFuZyA9IHRoaXMuY29uZmlnLmdldExhbmdGbih7XG4gICAgICAgIGJyb3dzZXJMYW5nLFxuICAgICAgICBkZWZhdWx0TGFuZyxcbiAgICAgICAgY3VsdHVyZUxhbmcsXG4gICAgICAgIGNhY2hlZExhbmcsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoYWN0aXZlTGFuZykge1xuICAgICAgdGhpcy5zZXJ2aWNlLnNldEFjdGl2ZUxhbmcoYWN0aXZlTGFuZyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzYXZlKGxhbmc6IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlICE9PSAndW5kZWZpbmVkJyAmJiBuZ0Rldk1vZGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgJWMg8J+NuyBTYXZpbmcgJHtsYW5nfSB0byBzdG9yYWdlYCxcbiAgICAgICAgJ2JhY2tncm91bmQ6ICNmZmY7IGNvbG9yOiAjMjE5NkYzOycsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXksIGxhbmcpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IGl0J3MgaW1wb3J0YW50IHRvIGNsZWFuIHVwIHJlZmVyZW5jZXMgdG8gc3Vic2NyaXB0aW9ucyBzaW5jZSB0aGV5IHNhdmUgdGhlIGBuZXh0YFxuICAgIC8vIGNhbGxiYWNrIHdpdGhpbiBpdHMgYGRlc3RpbmF0aW9uYCBwcm9wZXJ0eSwgcHJldmVudGluZyBjbGFzc2VzIGZyb20gYmVpbmcgR0MnZC5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -4,8 +4,14 @@ import { skip } from 'rxjs/operators';
4
4
  import * as i0 from '@angular/core';
5
5
  import { InjectionToken, inject, Injectable, makeEnvironmentProviders, APP_INITIALIZER } from '@angular/core';
6
6
 
7
- const TRANSLOCO_PERSIST_LANG_STORAGE = new InjectionToken('TRANSLOCO_PERSIST_LANG_STORAGE');
8
- const TRANSLOCO_PERSIST_LANG_CONFIG = new InjectionToken('TRANSLOCO_PERSIST_LANG_CONFIG');
7
+ const TRANSLOCO_PERSIST_LANG_STORAGE =
8
+ /* @__PURE__ */ new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode
9
+ ? 'TRANSLOCO_PERSIST_LANG_STORAGE'
10
+ : '');
11
+ const TRANSLOCO_PERSIST_LANG_CONFIG =
12
+ /* @__PURE__ */ new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode
13
+ ? 'TRANSLOCO_PERSIST_LANG_CONFIG'
14
+ : '');
9
15
 
10
16
  class TranslocoPersistLangService {
11
17
  service = inject(TranslocoService);
@@ -54,7 +60,7 @@ class TranslocoPersistLangService {
54
60
  }
55
61
  }
56
62
  save(lang) {
57
- if (!this.service.config.prodMode) {
63
+ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
58
64
  console.log(`%c 🍻 Saving ${lang} to storage`, 'background: #fff; color: #2196F3;');
59
65
  }
60
66
  this.storage.setItem(this.storageKey, lang);
@@ -1 +1 @@
1
- {"version":3,"file":"jsverse-transloco-persist-lang.mjs","sources":["../../../../libs/transloco-persist-lang/src/lib/persist-lang.config.ts","../../../../libs/transloco-persist-lang/src/lib/persist-lang.service.ts","../../../../libs/transloco-persist-lang/src/lib/cookie-storage.ts","../../../../libs/transloco-persist-lang/src/lib/persist-lang.providers.ts","../../../../libs/transloco-persist-lang/src/jsverse-transloco-persist-lang.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { PersistStorage } from './persist-lang.types';\n\nexport interface GetLangParams {\n cachedLang: string | null;\n browserLang?: string;\n cultureLang: string;\n defaultLang: string;\n}\n\nexport interface PersistLangConfig {\n storageKey?: string;\n getLangFn?(langs: GetLangParams): string;\n}\n\nexport const TRANSLOCO_PERSIST_LANG_STORAGE =\n new InjectionToken<PersistStorage>('TRANSLOCO_PERSIST_LANG_STORAGE');\n\nexport const TRANSLOCO_PERSIST_LANG_CONFIG =\n new InjectionToken<PersistLangConfig>('TRANSLOCO_PERSIST_LANG_CONFIG');\n","import {\n getBrowserCultureLang,\n getBrowserLang,\n isBrowser,\n TranslocoService,\n} from '@jsverse/transloco';\nimport { isFunction } from '@jsverse/utils';\nimport { Subscription } from 'rxjs';\nimport { skip } from 'rxjs/operators';\nimport { inject, Injectable, OnDestroy } from '@angular/core';\n\nimport {\n TRANSLOCO_PERSIST_LANG_CONFIG,\n TRANSLOCO_PERSIST_LANG_STORAGE,\n} from './persist-lang.config';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslocoPersistLangService implements OnDestroy {\n private service = inject(TranslocoService);\n private storage = inject(TRANSLOCO_PERSIST_LANG_STORAGE);\n private config = inject(TRANSLOCO_PERSIST_LANG_CONFIG);\n\n private subscription: Subscription | null = null;\n private storageKey = this.config.storageKey || 'translocoLang';\n\n constructor() {\n if (isBrowser()) {\n this.init();\n }\n }\n\n getCachedLang(): string | null {\n return isBrowser() ? this.storage.getItem(this.storageKey) : null;\n }\n\n clear() {\n isBrowser() && this.storage.removeItem(this.storageKey);\n }\n\n private updateStorageOnLangChange(): Subscription {\n return this.service.langChanges$.pipe(skip(1)).subscribe((lang) => {\n this.save(lang);\n });\n }\n\n private init() {\n // We need to first set the cached lang and then listen to changes\n this.setActiveLang();\n this.subscription?.unsubscribe();\n this.subscription = this.updateStorageOnLangChange();\n }\n\n private setActiveLang() {\n const cachedLang = this.storage.getItem(this.storageKey);\n const defaultLang = this.service.config.defaultLang;\n let activeLang = cachedLang || defaultLang;\n\n if (isFunction(this.config.getLangFn)) {\n const browserLang = getBrowserLang();\n const cultureLang = getBrowserCultureLang();\n activeLang = this.config.getLangFn({\n browserLang,\n defaultLang,\n cultureLang,\n cachedLang,\n });\n }\n\n if (activeLang) {\n this.service.setActiveLang(activeLang);\n }\n }\n\n private save(lang: string) {\n if (!this.service.config.prodMode) {\n console.log(\n `%c 🍻 Saving ${lang} to storage`,\n 'background: #fff; color: #2196F3;',\n );\n }\n this.storage.setItem(this.storageKey, lang);\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n // Caretaker note: it's important to clean up references to subscriptions since they save the `next`\n // callback within its `destination` property, preventing classes from being GC'd.\n this.subscription = null;\n }\n}\n","import { PersistStorage } from './persist-lang.types';\n\nconst millisecondsInHour = 3_600_000;\nconst hoursInMonth = 720;\n\nexport function cookiesStorage(cookieExpiry = hoursInMonth): PersistStorage {\n return {\n getItem(key: string) {\n const name = encodeURIComponent(key);\n const regexp = new RegExp(\n '(?:^' + name + '|;\\\\s*' + name + ')=(.*?)(?:;|$)',\n 'g',\n );\n const result = regexp.exec(document.cookie);\n\n return result ? decodeURIComponent(result[1]) : null;\n },\n setItem(key: string, value: string) {\n const name = encodeURIComponent(key);\n const date = new Date();\n date.setTime(date.getTime() + cookieExpiry * millisecondsInHour);\n document.cookie = `${name}=${encodeURIComponent(\n value,\n )};expires=${date.toUTCString()};path=/`;\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n removeItem(): void {},\n };\n}\n","import {\n APP_INITIALIZER,\n ClassProvider,\n ExistingProvider,\n FactoryProvider,\n makeEnvironmentProviders,\n ValueProvider,\n} from '@angular/core';\n\nimport {\n PersistLangConfig,\n TRANSLOCO_PERSIST_LANG_CONFIG,\n TRANSLOCO_PERSIST_LANG_STORAGE,\n} from './persist-lang.config';\nimport { TranslocoPersistLangService } from './persist-lang.service';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n\ntype providerValue =\n | Pick<ValueProvider, 'useValue'>\n | Pick<ClassProvider, 'useClass'>\n | Pick<ExistingProvider, 'useExisting'>\n | Pick<FactoryProvider, 'useFactory' | 'deps'>;\nexport function provideTranslocoPersistLang({\n storage,\n ...config\n}: PersistLangConfig & { storage: providerValue }) {\n return makeEnvironmentProviders([\n {\n provide: TRANSLOCO_PERSIST_LANG_CONFIG,\n useValue: config ?? {},\n },\n // Initialize the service\n {\n provide: APP_INITIALIZER,\n useFactory: () => noop,\n multi: true,\n deps: [TranslocoPersistLangService],\n },\n {\n provide: TRANSLOCO_PERSIST_LANG_STORAGE,\n ...storage,\n },\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsverse-transloco-persist-lang.mjs","sources":["../../../../libs/transloco-persist-lang/src/lib/persist-lang.config.ts","../../../../libs/transloco-persist-lang/src/lib/persist-lang.service.ts","../../../../libs/transloco-persist-lang/src/lib/cookie-storage.ts","../../../../libs/transloco-persist-lang/src/lib/persist-lang.providers.ts","../../../../libs/transloco-persist-lang/src/jsverse-transloco-persist-lang.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { PersistStorage } from './persist-lang.types';\n\nexport interface GetLangParams {\n cachedLang: string | null;\n browserLang?: string;\n cultureLang: string;\n defaultLang: string;\n}\n\nexport interface PersistLangConfig {\n storageKey?: string;\n getLangFn?(langs: GetLangParams): string;\n}\n\nexport const TRANSLOCO_PERSIST_LANG_STORAGE =\n /* @__PURE__ */ new InjectionToken<PersistStorage>(\n typeof ngDevMode !== 'undefined' && ngDevMode\n ? 'TRANSLOCO_PERSIST_LANG_STORAGE'\n : '',\n );\n\nexport const TRANSLOCO_PERSIST_LANG_CONFIG =\n /* @__PURE__ */ new InjectionToken<PersistLangConfig>(\n typeof ngDevMode !== 'undefined' && ngDevMode\n ? 'TRANSLOCO_PERSIST_LANG_CONFIG'\n : '',\n );\n","import {\n getBrowserCultureLang,\n getBrowserLang,\n isBrowser,\n TranslocoService,\n} from '@jsverse/transloco';\nimport { isFunction } from '@jsverse/utils';\nimport { Subscription } from 'rxjs';\nimport { skip } from 'rxjs/operators';\nimport { inject, Injectable, OnDestroy } from '@angular/core';\n\nimport {\n TRANSLOCO_PERSIST_LANG_CONFIG,\n TRANSLOCO_PERSIST_LANG_STORAGE,\n} from './persist-lang.config';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslocoPersistLangService implements OnDestroy {\n private service = inject(TranslocoService);\n private storage = inject(TRANSLOCO_PERSIST_LANG_STORAGE);\n private config = inject(TRANSLOCO_PERSIST_LANG_CONFIG);\n\n private subscription: Subscription | null = null;\n private storageKey = this.config.storageKey || 'translocoLang';\n\n constructor() {\n if (isBrowser()) {\n this.init();\n }\n }\n\n getCachedLang(): string | null {\n return isBrowser() ? this.storage.getItem(this.storageKey) : null;\n }\n\n clear() {\n isBrowser() && this.storage.removeItem(this.storageKey);\n }\n\n private updateStorageOnLangChange(): Subscription {\n return this.service.langChanges$.pipe(skip(1)).subscribe((lang) => {\n this.save(lang);\n });\n }\n\n private init() {\n // We need to first set the cached lang and then listen to changes\n this.setActiveLang();\n this.subscription?.unsubscribe();\n this.subscription = this.updateStorageOnLangChange();\n }\n\n private setActiveLang() {\n const cachedLang = this.storage.getItem(this.storageKey);\n const defaultLang = this.service.config.defaultLang;\n let activeLang = cachedLang || defaultLang;\n\n if (isFunction(this.config.getLangFn)) {\n const browserLang = getBrowserLang();\n const cultureLang = getBrowserCultureLang();\n activeLang = this.config.getLangFn({\n browserLang,\n defaultLang,\n cultureLang,\n cachedLang,\n });\n }\n\n if (activeLang) {\n this.service.setActiveLang(activeLang);\n }\n }\n\n private save(lang: string) {\n if (typeof ngDevMode !== 'undefined' && ngDevMode) {\n console.log(\n `%c 🍻 Saving ${lang} to storage`,\n 'background: #fff; color: #2196F3;',\n );\n }\n this.storage.setItem(this.storageKey, lang);\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n // Caretaker note: it's important to clean up references to subscriptions since they save the `next`\n // callback within its `destination` property, preventing classes from being GC'd.\n this.subscription = null;\n }\n}\n","import { PersistStorage } from './persist-lang.types';\n\nconst millisecondsInHour = 3_600_000;\nconst hoursInMonth = 720;\n\nexport function cookiesStorage(cookieExpiry = hoursInMonth): PersistStorage {\n return {\n getItem(key: string) {\n const name = encodeURIComponent(key);\n const regexp = new RegExp(\n '(?:^' + name + '|;\\\\s*' + name + ')=(.*?)(?:;|$)',\n 'g',\n );\n const result = regexp.exec(document.cookie);\n\n return result ? decodeURIComponent(result[1]) : null;\n },\n setItem(key: string, value: string) {\n const name = encodeURIComponent(key);\n const date = new Date();\n date.setTime(date.getTime() + cookieExpiry * millisecondsInHour);\n document.cookie = `${name}=${encodeURIComponent(\n value,\n )};expires=${date.toUTCString()};path=/`;\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n removeItem(): void {},\n };\n}\n","import {\n APP_INITIALIZER,\n ClassProvider,\n ExistingProvider,\n FactoryProvider,\n makeEnvironmentProviders,\n ValueProvider,\n} from '@angular/core';\n\nimport {\n PersistLangConfig,\n TRANSLOCO_PERSIST_LANG_CONFIG,\n TRANSLOCO_PERSIST_LANG_STORAGE,\n} from './persist-lang.config';\nimport { TranslocoPersistLangService } from './persist-lang.service';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n\ntype providerValue =\n | Pick<ValueProvider, 'useValue'>\n | Pick<ClassProvider, 'useClass'>\n | Pick<ExistingProvider, 'useExisting'>\n | Pick<FactoryProvider, 'useFactory' | 'deps'>;\nexport function provideTranslocoPersistLang({\n storage,\n ...config\n}: PersistLangConfig & { storage: providerValue }) {\n return makeEnvironmentProviders([\n {\n provide: TRANSLOCO_PERSIST_LANG_CONFIG,\n useValue: config ?? {},\n },\n // Initialize the service\n {\n provide: APP_INITIALIZER,\n useFactory: () => noop,\n multi: true,\n deps: [TranslocoPersistLangService],\n },\n {\n provide: TRANSLOCO_PERSIST_LANG_STORAGE,\n ...storage,\n },\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsverse/transloco-persist-lang",
3
- "version": "8.2.1",
3
+ "version": "8.4.0",
4
4
  "description": "Transloco persist active language",
5
5
  "publishConfig": {
6
6
  "access": "public"