@cause-911/core
Version:
Run `npm install @cause-911/core --save` to add this library to your project
67 lines • 6.18 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable, Inject } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { CAUSE_CORE_MODULE_OPTIONS, CoreModuleOptions } from './shared/models/core-module-options';
import { Configuration } from './shared/classes/configuration';
import * as i0 from "@angular/core";
import * as i1 from "./shared/models/core-module-options";
import * as i2 from "@ngx-translate/core";
export class CoreService {
/**
* @param {?} options
* @param {?} translateService
*/
constructor(options, translateService) {
this.translateService = translateService;
this.config = new Configuration(options);
this.config.locale = localStorage.getItem('locale') || this.config.locale || 'fr';
this.config.languages = this.config.languages || ['fr', 'en'];
this.translateService.addLangs(this.config.languages);
this.translateService.setDefaultLang(this.config.locale);
this.translateService.use(this.config.locale);
}
/**
* @return {?}
*/
getConfig() {
return this.config;
}
/**
* @return {?}
*/
toggleLanguage() {
if (this.config.languages.length < 2) {
throw new Error('You need to configure at least two languages.');
}
else if (this.config.languages.length === 2) {
localStorage.setItem('locale', this.config.locale === 'fr' ? 'en' : 'fr');
}
}
}
CoreService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
CoreService.ctorParameters = () => [
{ type: CoreModuleOptions, decorators: [{ type: Inject, args: [CAUSE_CORE_MODULE_OPTIONS,] }] },
{ type: TranslateService }
];
/** @nocollapse */ CoreService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function CoreService_Factory() { return new CoreService(i0.ɵɵinject(i1.CAUSE_CORE_MODULE_OPTIONS), i0.ɵɵinject(i2.TranslateService)); }, token: CoreService, providedIn: "root" });
if (false) {
/**
* @type {?}
* @private
*/
CoreService.prototype.config;
/**
* @type {?}
* @private
*/
CoreService.prototype.translateService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNhdXNlLTkxMS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLHlCQUF5QixFQUFFLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDakcsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBSzdELE1BQU0sT0FBTyxXQUFXOzs7OztJQUdwQixZQUN1QyxPQUEwQixFQUNyRCxnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUUxQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBQ2xGLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7SUFFTSxTQUFTO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7Ozs7SUFFTSxjQUFjO1FBQ2pCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDcEU7YUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDM0MsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdFO0lBQ0wsQ0FBQzs7O1lBNUJKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7OztZQUxrQyxpQkFBaUIsdUJBVTNDLE1BQU0sU0FBQyx5QkFBeUI7WUFYakMsZ0JBQWdCOzs7Ozs7OztJQVFwQiw2QkFBOEI7Ozs7O0lBSTFCLHVDQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NBVVNFX0NPUkVfTU9EVUxFX09QVElPTlMsIENvcmVNb2R1bGVPcHRpb25zfSBmcm9tICcuL3NoYXJlZC9tb2RlbHMvY29yZS1tb2R1bGUtb3B0aW9ucyc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb259IGZyb20gJy4vc2hhcmVkL2NsYXNzZXMvY29uZmlndXJhdGlvbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29yZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWd1cmF0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoQ0FVU0VfQ09SRV9NT0RVTEVfT1BUSU9OUykgb3B0aW9uczogQ29yZU1vZHVsZU9wdGlvbnMsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IG5ldyBDb25maWd1cmF0aW9uKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmNvbmZpZy5sb2NhbGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbG9jYWxlJykgfHwgdGhpcy5jb25maWcubG9jYWxlIHx8ICdmcic7XG4gICAgICAgIHRoaXMuY29uZmlnLmxhbmd1YWdlcyA9IHRoaXMuY29uZmlnLmxhbmd1YWdlcyB8fCBbJ2ZyJywgJ2VuJ107XG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5hZGRMYW5ncyh0aGlzLmNvbmZpZy5sYW5ndWFnZXMpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc2V0RGVmYXVsdExhbmcodGhpcy5jb25maWcubG9jYWxlKTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZSh0aGlzLmNvbmZpZy5sb2NhbGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb25maWcoKTogQ29uZmlndXJhdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZztcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlTGFuZ3VhZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sYW5ndWFnZXMubGVuZ3RoIDwgMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbmVlZCB0byBjb25maWd1cmUgYXQgbGVhc3QgdHdvIGxhbmd1YWdlcy4nKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZy5sYW5ndWFnZXMubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbG9jYWxlJywgdGhpcy5jb25maWcubG9jYWxlID09PSAnZnInID8gJ2VuJyA6ICdmcicpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19