@jsverse/transloco-persist-lang 7.0.2 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,3 @@
1
1
  # Transloco Persist Language
2
2
 
3
- Please visit the [official Transloco docs](https://jsverse.github.io/transloco/docs/plugins/persist-lang).
3
+ Discover more about this plugin and how it can enhance your workflow in the [official Transloco documentation](https://jsverse.gitbook.io/transloco/plugins/persist-lang).
@@ -1,4 +1,5 @@
1
- import { getBrowserCultureLang, getBrowserLang, isBrowser, isFunction, TranslocoService, } from '@jsverse/transloco';
1
+ import { getBrowserCultureLang, getBrowserLang, isBrowser, TranslocoService, } from '@jsverse/transloco';
2
+ import { isFunction } from '@jsverse/utils';
2
3
  import { skip } from 'rxjs/operators';
3
4
  import { inject, Injectable } from '@angular/core';
4
5
  import { TRANSLOCO_PERSIST_LANG_CONFIG, TRANSLOCO_PERSIST_LANG_STORAGE, } from './persist-lang.config';
@@ -61,11 +62,11 @@ export class TranslocoPersistLangService {
61
62
  // callback within its `destination` property, preventing classes from being GC'd.
62
63
  this.subscription = null;
63
64
  }
64
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TranslocoPersistLangService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
65
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TranslocoPersistLangService, providedIn: 'root' });
65
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoPersistLangService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
66
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoPersistLangService, providedIn: 'root' });
66
67
  }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TranslocoPersistLangService, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoPersistLangService, decorators: [{
68
69
  type: Injectable,
69
70
  args: [{ providedIn: 'root' }]
70
71
  }], ctorParameters: () => [] });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdC1sYW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3RyYW5zbG9jby1wZXJzaXN0LWxhbmcvc3JjL2xpYi9wZXJzaXN0LWxhbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxTQUFTLEVBQ1QsVUFBVSxFQUNWLGdCQUFnQixHQUNqQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDhCQUE4QixHQUMvQixNQUFNLHVCQUF1QixDQUFDOztBQUcvQixNQUFNLE9BQU8sMkJBQTJCO0lBQzlCLE9BQU8sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNuQyxPQUFPLEdBQUcsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDakQsTUFBTSxHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBRS9DLFlBQVksR0FBd0IsSUFBSSxDQUFDO0lBQ3pDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxlQUFlLENBQUM7SUFFL0Q7UUFDRSxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEUsQ0FBQztJQUVELEtBQUs7UUFDSCxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLElBQUk7UUFDVixrRUFBa0U7UUFDbEUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3BELElBQUksVUFBVSxHQUFHLFVBQVUsSUFBSSxXQUFXLENBQUM7UUFFM0MsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixFQUFFLENBQUM7WUFDNUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNqQyxXQUFXO2dCQUNYLFdBQVc7Z0JBQ1gsV0FBVztnQkFDWCxVQUFVO2FBQ1gsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVPLElBQUksQ0FBQyxJQUFZO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxPQUFPLENBQUMsR0FBRyxDQUNULGdCQUFnQixJQUFJLGFBQWEsRUFDakMsbUNBQW1DLENBQ3BDLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsb0dBQW9HO1FBQ3BHLGtGQUFrRjtRQUNsRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO3VHQXZFVSwyQkFBMkI7MkdBQTNCLDJCQUEyQixjQURkLE1BQU07OzJGQUNuQiwyQkFBMkI7a0JBRHZDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZ2V0QnJvd3NlckN1bHR1cmVMYW5nLFxuICBnZXRCcm93c2VyTGFuZyxcbiAgaXNCcm93c2VyLFxuICBpc0Z1bmN0aW9uLFxuICBUcmFuc2xvY29TZXJ2aWNlLFxufSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBza2lwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgVFJBTlNMT0NPX1BFUlNJU1RfTEFOR19DT05GSUcsXG4gIFRSQU5TTE9DT19QRVJTSVNUX0xBTkdfU1RPUkFHRSxcbn0gZnJvbSAnLi9wZXJzaXN0LWxhbmcuY29uZmlnJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xvY29QZXJzaXN0TGFuZ1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHNlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XG4gIHByaXZhdGUgc3RvcmFnZSA9IGluamVjdChUUkFOU0xPQ09fUEVSU0lTVF9MQU5HX1NUT1JBR0UpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChUUkFOU0xPQ09fUEVSU0lTVF9MQU5HX0NPTkZJRyk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHN0b3JhZ2VLZXkgPSB0aGlzLmNvbmZpZy5zdG9yYWdlS2V5IHx8ICd0cmFuc2xvY29MYW5nJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldENhY2hlZExhbmcoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIGlzQnJvd3NlcigpID8gdGhpcy5zdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KSA6IG51bGw7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICBpc0Jyb3dzZXIoKSAmJiB0aGlzLnN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdG9yYWdlT25MYW5nQ2hhbmdlKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5sYW5nQ2hhbmdlcyQucGlwZShza2lwKDEpKS5zdWJzY3JpYmUoKGxhbmcpID0+IHtcbiAgICAgIHRoaXMuc2F2ZShsYW5nKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdCgpIHtcbiAgICAvLyBXZSBuZWVkIHRvIGZpcnN0IHNldCB0aGUgY2FjaGVkIGxhbmcgYW5kIHRoZW4gbGlzdGVuIHRvIGNoYW5nZXNcbiAgICB0aGlzLnNldEFjdGl2ZUxhbmcoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudXBkYXRlU3RvcmFnZU9uTGFuZ0NoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVMYW5nKCkge1xuICAgIGNvbnN0IGNhY2hlZExhbmcgPSB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xuICAgIGNvbnN0IGRlZmF1bHRMYW5nID0gdGhpcy5zZXJ2aWNlLmNvbmZpZy5kZWZhdWx0TGFuZztcbiAgICBsZXQgYWN0aXZlTGFuZyA9IGNhY2hlZExhbmcgfHwgZGVmYXVsdExhbmc7XG5cbiAgICBpZiAoaXNGdW5jdGlvbih0aGlzLmNvbmZpZy5nZXRMYW5nRm4pKSB7XG4gICAgICBjb25zdCBicm93c2VyTGFuZyA9IGdldEJyb3dzZXJMYW5nKCk7XG4gICAgICBjb25zdCBjdWx0dXJlTGFuZyA9IGdldEJyb3dzZXJDdWx0dXJlTGFuZygpO1xuICAgICAgYWN0aXZlTGFuZyA9IHRoaXMuY29uZmlnLmdldExhbmdGbih7XG4gICAgICAgIGJyb3dzZXJMYW5nLFxuICAgICAgICBkZWZhdWx0TGFuZyxcbiAgICAgICAgY3VsdHVyZUxhbmcsXG4gICAgICAgIGNhY2hlZExhbmcsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoYWN0aXZlTGFuZykge1xuICAgICAgdGhpcy5zZXJ2aWNlLnNldEFjdGl2ZUxhbmcoYWN0aXZlTGFuZyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzYXZlKGxhbmc6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5zZXJ2aWNlLmNvbmZpZy5wcm9kTW9kZSkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGAlYyDwn427IFNhdmluZyAke2xhbmd9IHRvIHN0b3JhZ2VgLFxuICAgICAgICAnYmFja2dyb3VuZDogI2ZmZjsgY29sb3I6ICMyMTk2RjM7JyxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgbGFuZyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAvLyBDYXJldGFrZXIgbm90ZTogaXQncyBpbXBvcnRhbnQgdG8gY2xlYW4gdXAgcmVmZXJlbmNlcyB0byBzdWJzY3JpcHRpb25zIHNpbmNlIHRoZXkgc2F2ZSB0aGUgYG5leHRgXG4gICAgLy8gY2FsbGJhY2sgd2l0aGluIGl0cyBgZGVzdGluYXRpb25gIHByb3BlcnR5LCBwcmV2ZW50aW5nIGNsYXNzZXMgZnJvbSBiZWluZyBHQydkLlxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgfVxufVxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdC1sYW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3RyYW5zbG9jby1wZXJzaXN0LWxhbmcvc3JjL2xpYi9wZXJzaXN0LWxhbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDhCQUE4QixHQUMvQixNQUFNLHVCQUF1QixDQUFDOztBQUcvQixNQUFNLE9BQU8sMkJBQTJCO0lBQzlCLE9BQU8sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNuQyxPQUFPLEdBQUcsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDakQsTUFBTSxHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBRS9DLFlBQVksR0FBd0IsSUFBSSxDQUFDO0lBQ3pDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxlQUFlLENBQUM7SUFFL0Q7UUFDRSxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEUsQ0FBQztJQUVELEtBQUs7UUFDSCxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLElBQUk7UUFDVixrRUFBa0U7UUFDbEUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3BELElBQUksVUFBVSxHQUFHLFVBQVUsSUFBSSxXQUFXLENBQUM7UUFFM0MsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixFQUFFLENBQUM7WUFDNUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNqQyxXQUFXO2dCQUNYLFdBQVc7Z0JBQ1gsV0FBVztnQkFDWCxVQUFVO2FBQ1gsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVPLElBQUksQ0FBQyxJQUFZO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxPQUFPLENBQUMsR0FBRyxDQUNULGdCQUFnQixJQUFJLGFBQWEsRUFDakMsbUNBQW1DLENBQ3BDLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsb0dBQW9HO1FBQ3BHLGtGQUFrRjtRQUNsRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO3VHQXZFVSwyQkFBMkI7MkdBQTNCLDJCQUEyQixjQURkLE1BQU07OzJGQUNuQiwyQkFBMkI7a0JBRHZDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZ2V0QnJvd3NlckN1bHR1cmVMYW5nLFxuICBnZXRCcm93c2VyTGFuZyxcbiAgaXNCcm93c2VyLFxuICBUcmFuc2xvY29TZXJ2aWNlLFxufSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJ0Bqc3ZlcnNlL3V0aWxzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFRSQU5TTE9DT19QRVJTSVNUX0xBTkdfQ09ORklHLFxuICBUUkFOU0xPQ09fUEVSU0lTVF9MQU5HX1NUT1JBR0UsXG59IGZyb20gJy4vcGVyc2lzdC1sYW5nLmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVHJhbnNsb2NvUGVyc2lzdExhbmdTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xuICBwcml2YXRlIHN0b3JhZ2UgPSBpbmplY3QoVFJBTlNMT0NPX1BFUlNJU1RfTEFOR19TVE9SQUdFKTtcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoVFJBTlNMT0NPX1BFUlNJU1RfTEFOR19DT05GSUcpO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzdG9yYWdlS2V5ID0gdGhpcy5jb25maWcuc3RvcmFnZUtleSB8fCAndHJhbnNsb2NvTGFuZyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICB0aGlzLmluaXQoKTtcbiAgICB9XG4gIH1cblxuICBnZXRDYWNoZWRMYW5nKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiBpc0Jyb3dzZXIoKSA/IHRoaXMuc3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSkgOiBudWxsO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgaXNCcm93c2VyKCkgJiYgdGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RvcmFnZU9uTGFuZ0NoYW5nZSgpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2UubGFuZ0NoYW5nZXMkLnBpcGUoc2tpcCgxKSkuc3Vic2NyaWJlKChsYW5nKSA9PiB7XG4gICAgICB0aGlzLnNhdmUobGFuZyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXQoKSB7XG4gICAgLy8gV2UgbmVlZCB0byBmaXJzdCBzZXQgdGhlIGNhY2hlZCBsYW5nIGFuZCB0aGVuIGxpc3RlbiB0byBjaGFuZ2VzXG4gICAgdGhpcy5zZXRBY3RpdmVMYW5nKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnVwZGF0ZVN0b3JhZ2VPbkxhbmdDaGFuZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZlTGFuZygpIHtcbiAgICBjb25zdCBjYWNoZWRMYW5nID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcbiAgICBjb25zdCBkZWZhdWx0TGFuZyA9IHRoaXMuc2VydmljZS5jb25maWcuZGVmYXVsdExhbmc7XG4gICAgbGV0IGFjdGl2ZUxhbmcgPSBjYWNoZWRMYW5nIHx8IGRlZmF1bHRMYW5nO1xuXG4gICAgaWYgKGlzRnVuY3Rpb24odGhpcy5jb25maWcuZ2V0TGFuZ0ZuKSkge1xuICAgICAgY29uc3QgYnJvd3NlckxhbmcgPSBnZXRCcm93c2VyTGFuZygpO1xuICAgICAgY29uc3QgY3VsdHVyZUxhbmcgPSBnZXRCcm93c2VyQ3VsdHVyZUxhbmcoKTtcbiAgICAgIGFjdGl2ZUxhbmcgPSB0aGlzLmNvbmZpZy5nZXRMYW5nRm4oe1xuICAgICAgICBicm93c2VyTGFuZyxcbiAgICAgICAgZGVmYXVsdExhbmcsXG4gICAgICAgIGN1bHR1cmVMYW5nLFxuICAgICAgICBjYWNoZWRMYW5nLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGFjdGl2ZUxhbmcpIHtcbiAgICAgIHRoaXMuc2VydmljZS5zZXRBY3RpdmVMYW5nKGFjdGl2ZUxhbmcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2F2ZShsYW5nOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuc2VydmljZS5jb25maWcucHJvZE1vZGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgJWMg8J+NuyBTYXZpbmcgJHtsYW5nfSB0byBzdG9yYWdlYCxcbiAgICAgICAgJ2JhY2tncm91bmQ6ICNmZmY7IGNvbG9yOiAjMjE5NkYzOycsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXksIGxhbmcpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IGl0J3MgaW1wb3J0YW50IHRvIGNsZWFuIHVwIHJlZmVyZW5jZXMgdG8gc3Vic2NyaXB0aW9ucyBzaW5jZSB0aGV5IHNhdmUgdGhlIGBuZXh0YFxuICAgIC8vIGNhbGxiYWNrIHdpdGhpbiBpdHMgYGRlc3RpbmF0aW9uYCBwcm9wZXJ0eSwgcHJldmVudGluZyBjbGFzc2VzIGZyb20gYmVpbmcgR0MnZC5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
- import { TranslocoService, isBrowser, isFunction, getBrowserLang, getBrowserCultureLang } from '@jsverse/transloco';
1
+ import { TranslocoService, isBrowser, getBrowserLang, getBrowserCultureLang } from '@jsverse/transloco';
2
+ import { isFunction } from '@jsverse/utils';
2
3
  import { skip } from 'rxjs/operators';
3
4
  import * as i0 from '@angular/core';
4
5
  import { InjectionToken, inject, Injectable, makeEnvironmentProviders, APP_INITIALIZER } from '@angular/core';
@@ -64,10 +65,10 @@ class TranslocoPersistLangService {
64
65
  // callback within its `destination` property, preventing classes from being GC'd.
65
66
  this.subscription = null;
66
67
  }
67
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TranslocoPersistLangService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
68
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TranslocoPersistLangService, providedIn: 'root' });
68
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoPersistLangService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
69
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoPersistLangService, providedIn: 'root' });
69
70
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TranslocoPersistLangService, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoPersistLangService, decorators: [{
71
72
  type: Injectable,
72
73
  args: [{ providedIn: 'root' }]
73
74
  }], ctorParameters: () => [] });
@@ -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 isFunction,\n TranslocoService,\n} from '@jsverse/transloco';\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 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":";;;;;;MAgBa,8BAA8B,GACzC,IAAI,cAAc,CAAiB,gCAAgC;MAExD,6BAA6B,GACxC,IAAI,cAAc,CAAoB,+BAA+B;;MCH1D,2BAA2B,CAAA;AAC9B,IAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAClC,IAAA,OAAO,GAAG,MAAM,CAAC,8BAA8B,CAAC;AAChD,IAAA,MAAM,GAAG,MAAM,CAAC,6BAA6B,CAAC;IAE9C,YAAY,GAAwB,IAAI;IACxC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,eAAe;AAE9D,IAAA,WAAA,GAAA;QACE,IAAI,SAAS,EAAE,EAAE;YACf,IAAI,CAAC,IAAI,EAAE;;;IAIf,aAAa,GAAA;AACX,QAAA,OAAO,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI;;IAGnE,KAAK,GAAA;AACH,QAAA,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;;IAGjD,yBAAyB,GAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AAChE,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjB,SAAC,CAAC;;IAGI,IAAI,GAAA;;QAEV,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,yBAAyB,EAAE;;IAG9C,aAAa,GAAA;AACnB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW;AACnD,QAAA,IAAI,UAAU,GAAG,UAAU,IAAI,WAAW;QAE1C,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACrC,YAAA,MAAM,WAAW,GAAG,cAAc,EAAE;AACpC,YAAA,MAAM,WAAW,GAAG,qBAAqB,EAAE;AAC3C,YAAA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;gBACjC,WAAW;gBACX,WAAW;gBACX,WAAW;gBACX,UAAU;AACX,aAAA,CAAC;;QAGJ,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;;;AAIlC,IAAA,IAAI,CAAC,IAAY,EAAA;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;YACjC,OAAO,CAAC,GAAG,CACT,CAAA,aAAA,EAAgB,IAAI,CAAa,WAAA,CAAA,EACjC,mCAAmC,CACpC;;QAEH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;;IAG7C,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;;;AAGhC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;;uGAtEf,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cADd,MAAM,EAAA,CAAA;;2FACnB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACdlC,MAAM,kBAAkB,GAAG,SAAS;AACpC,MAAM,YAAY,GAAG,GAAG;AAER,SAAA,cAAc,CAAC,YAAY,GAAG,YAAY,EAAA;IACxD,OAAO;AACL,QAAA,OAAO,CAAC,GAAW,EAAA;AACjB,YAAA,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC;AACpC,YAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,gBAAgB,EAClD,GAAG,CACJ;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAE3C,YAAA,OAAO,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;SACrD;QACD,OAAO,CAAC,GAAW,EAAE,KAAa,EAAA;AAChC,YAAA,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC;AACpC,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE;AACvB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,YAAY,GAAG,kBAAkB,CAAC;AAChE,YAAA,QAAQ,CAAC,MAAM,GAAG,CAAG,EAAA,IAAI,IAAI,kBAAkB,CAC7C,KAAK,CACN,YAAY,IAAI,CAAC,WAAW,EAAE,SAAS;SACzC;;AAED,QAAA,UAAU,MAAW;KACtB;AACH;;ACZA;AACA,SAAS,IAAI;AAOP,SAAU,2BAA2B,CAAC,EAC1C,OAAO,EACP,GAAG,MAAM,EACsC,EAAA;AAC/C,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA;AACE,YAAA,OAAO,EAAE,6BAA6B;YACtC,QAAQ,EAAE,MAAM,IAAI,EAAE;AACvB,SAAA;;AAED,QAAA;AACE,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,UAAU,EAAE,MAAM,IAAI;AACtB,YAAA,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,CAAC,2BAA2B,CAAC;AACpC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,8BAA8B;AACvC,YAAA,GAAG,OAAO;AACX,SAAA;AACF,KAAA,CAAC;AACJ;;AC7CA;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsverse/transloco-persist-lang",
3
- "version": "7.0.2",
3
+ "version": "8.0.1",
4
4
  "description": "Transloco persist active language",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -8,28 +8,30 @@
8
8
  "bugs": {
9
9
  "url": "https://github.com/jsverse/transloco/issues"
10
10
  },
11
- "homepage": "https://jsverse.github.io/transloco/docs/plugins/persist-lang",
11
+ "homepage": "https://jsverse.gitbook.io/transloco/plugins/persist-lang",
12
12
  "repository": {
13
13
  "type": "git",
14
14
  "url": "https://github.com/jsverse/transloco"
15
15
  },
16
16
  "keywords": [
17
- "angular",
18
- "angular 2",
17
+ "Angular",
19
18
  "i18n",
20
- "transloco",
21
- "translate",
22
- "persist",
23
- "storage"
19
+ "Translate",
20
+ "Angular Translate",
21
+ "Transloco",
22
+ "Persist",
23
+ "Storage"
24
24
  ],
25
25
  "license": "MIT",
26
26
  "peerDependencies": {
27
27
  "@angular/core": ">=16.0.0",
28
- "@jsverse/transloco": ">=7.0.0"
28
+ "@jsverse/transloco": ">=8.0.0",
29
+ "@jsverse/utils": "1.0.0-beta.5"
29
30
  },
30
31
  "dependencies": {
31
32
  "tslib": "^2.2.0"
32
33
  },
34
+ "sideEffects": false,
33
35
  "module": "fesm2022/jsverse-transloco-persist-lang.mjs",
34
36
  "typings": "index.d.ts",
35
37
  "exports": {
@@ -42,6 +44,5 @@
42
44
  "esm": "./esm2022/jsverse-transloco-persist-lang.mjs",
43
45
  "default": "./fesm2022/jsverse-transloco-persist-lang.mjs"
44
46
  }
45
- },
46
- "sideEffects": false
47
+ }
47
48
  }